From dcook@prosentient.com.au Wed May 5 06:07:21 2021
From: dcook@prosentient.com.au
To: koha-devel@lists.koha-community.org
Subject: [Koha-devel] Embedding JSON data in HTML
Date: Wed, 05 May 2021 14:07:11 +1000
Message-ID: <05a501d74164$1f87af80$5e970e80$@prosentient.com.au>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="===============6843457748756175807=="
--===============6843457748756175807==
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Hi all,
I was just reflecting on bugs like
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=26942 and
reviewing https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script
when I saw the following method for embedding JSON in HTML:
I thought that was neat.
David Cook
Software Engineer
Prosentient Systems
Suite 7.03
6a Glen St
Milsons Point NSW 2061
Australia
Office: 02 9212 0899
Online: 02 8005 0595
--===============6843457748756175807==
Content-Type: text/html
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="attachment.html"
MIME-Version: 1.0
PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+PGhlYWQ+PE1FVEEgSFRUUC1FUVVJVj0iQ29udGVudC1UeXBlIiBDT05U
RU5UPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXMtYXNjaWkiPjxtZXRhIG5hbWU9R2VuZXJhdG9yIGNv
bnRlbnQ9Ik1pY3Jvc29mdCBXb3JkIDE1IChmaWx0ZXJlZCBtZWRpdW0pIj48c3R5bGU+PCEtLQov
KiBGb250IERlZmluaXRpb25zICovCkBmb250LWZhY2UKCXtmb250LWZhbWlseToiQ2FtYnJpYSBN
YXRoIjsKCXBhbm9zZS0xOjIgNCA1IDMgNSA0IDYgMyAyIDQ7fQpAZm9udC1mYWNlCgl7Zm9udC1m
YW1pbHk6RGVuZ1hpYW47CglwYW5vc2UtMToyIDEgNiAwIDMgMSAxIDEgMSAxO30KQGZvbnQtZmFj
ZQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7CglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIgNDt9
CkBmb250LWZhY2UKCXtmb250LWZhbWlseToiXEBEZW5nWGlhbiI7CglwYW5vc2UtMToyIDEgNiAw
IDMgMSAxIDEgMSAxO30KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8KcC5Nc29Ob3JtYWwsIGxpLk1z
b05vcm1hbCwgZGl2Lk1zb05vcm1hbAoJe21hcmdpbjowY207Cglmb250LXNpemU6MTEuMHB0OwoJ
Zm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQphOmxpbmssIHNwYW4uTXNvSHlwZXJs
aW5rCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5OwoJY29sb3I6IzA1NjNDMTsKCXRleHQtZGVjb3Jh
dGlvbjp1bmRlcmxpbmU7fQpzcGFuLkVtYWlsU3R5bGUxNwoJe21zby1zdHlsZS10eXBlOnBlcnNv
bmFsLWNvbXBvc2U7Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsKCWNvbG9yOndp
bmRvd3RleHQ7fQouTXNvQ2hwRGVmYXVsdAoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5O30K
QHBhZ2UgV29yZFNlY3Rpb24xCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7CgltYXJnaW46NzIuMHB0
IDcyLjBwdCA3Mi4wcHQgNzIuMHB0O30KZGl2LldvcmRTZWN0aW9uMQoJe3BhZ2U6V29yZFNlY3Rp
b24xO30KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4KPG86c2hhcGVkZWZhdWx0
cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtp
ZiBndGUgbXNvIDldPjx4bWw+CjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4KPG86aWRtYXAg
djpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+CjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0t
LT48L2hlYWQ+PGJvZHkgbGFuZz1FTi1BVSBsaW5rPSIjMDU2M0MxIiB2bGluaz0iIzk1NEY3MiIg
c3R5bGU9J3dvcmQtd3JhcDpicmVhay13b3JkJz48ZGl2IGNsYXNzPVdvcmRTZWN0aW9uMT48cCBj
bGFzcz1Nc29Ob3JtYWw+SGkgYWxsLDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48
bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+SSB3YXMganVzdCByZWZsZWN0
aW5nIG9uIGJ1Z3MgbGlrZSA8YSBocmVmPSJodHRwczovL2J1Z3Mua29oYS1jb21tdW5pdHkub3Jn
L2J1Z3ppbGxhMy9zaG93X2J1Zy5jZ2k/aWQ9MjY5NDIiPmh0dHBzOi8vYnVncy5rb2hhLWNvbW11
bml0eS5vcmcvYnVnemlsbGEzL3Nob3dfYnVnLmNnaT9pZD0yNjk0MjwvYT4gYW5kIHJldmlld2lu
ZyA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9I
VE1ML0VsZW1lbnQvc2NyaXB0Ij5odHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9k
b2NzL1dlYi9IVE1ML0VsZW1lbnQvc2NyaXB0PC9hPiB3aGVuIEkgc2F3IHRoZSBmb2xsb3dpbmcg
bWV0aG9kIGZvciBlbWJlZGRpbmcgSlNPTiBpbiBIVE1MOjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNz
PU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+Jmx0OyEt
LSBHZW5lcmF0ZWQgYnkgdGhlIHNlcnZlciAtLSZndDs8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1N
c29Ob3JtYWw+Jmx0O3NjcmlwdCBpZD0mcXVvdDtkYXRhJnF1b3Q7IHR5cGU9JnF1b3Q7YXBwbGlj
YXRpb24vanNvbiZxdW90OyZndDt7JnF1b3Q7dXNlcklkJnF1b3Q7OjEyMzQsJnF1b3Q7dXNlck5h
bWUmcXVvdDs6JnF1b3Q7Sm9obiBEb2UmcXVvdDssJnF1b3Q7bWVtYmVyU2luY2UmcXVvdDs6JnF1
b3Q7MjAwMC0wMS0wMVQwMDowMDowMC4wMDBaJnF1b3Q7fSZsdDsvc2NyaXB0Jmd0OzxvOnA+PC9v
OnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1N
c29Ob3JtYWw+Jmx0OyEtLSBTdGF0aWMgLS0mZ3Q7PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNv
Tm9ybWFsPiZsdDtzY3JpcHQmZ3Q7PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPiZu
YnNwOyBjb25zdCB1c2VySW5mbyA9IEpTT04ucGFyc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
JnF1b3Q7ZGF0YSZxdW90OykudGV4dCk7PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFs
PiZuYnNwOyBjb25zb2xlLmxvZygmcXVvdDtVc2VyIGluZm9ybWF0aW9uOiAlbyZxdW90OywgdXNl
ckluZm8pOzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD4mbHQ7L3NjcmlwdCZndDs8
bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAg
Y2xhc3M9TXNvTm9ybWFsPkkgdGhvdWdodCB0aGF0IHdhcyBuZWF0LjxvOnA+PC9vOnA+PC9wPjxw
IGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+
RGF2aWQgQ29vazxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5Tb2Z0d2FyZSBFbmdp
bmVlcjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5Qcm9zZW50aWVudCBTeXN0ZW1z
PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlN1aXRlIDcuMDM8bzpwPjwvbzpwPjwv
cD48cCBjbGFzcz1Nc29Ob3JtYWw+NmEgR2xlbiBTdDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1z
b05vcm1hbD5NaWxzb25zIFBvaW50IE5TVyAyMDYxPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNv
Tm9ybWFsPkF1c3RyYWxpYTxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZu
YnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+T2ZmaWNlOiAwMiA5MjEyIDA4OTk8bzpw
PjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+T25saW5lOiAwMiA4MDA1IDA1OTU8bzpwPjwv
bzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PC9kaXY+PC9i
b2R5PjwvaHRtbD4=
--===============6843457748756175807==--
From tomascohen@gmail.com Thu May 6 16:28:35 2021
From: Tomas Cohen Arazi
To: koha-devel@lists.koha-community.org
Subject: Re: [Koha-devel] Embedding JSON data in HTML
Date: Thu, 06 May 2021 11:28:07 -0300
Message-ID:
In-Reply-To: <05a501d74164$1f87af80$5e970e80$@prosentient.com.au>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="===============6305717351485308569=="
--===============6305717351485308569==
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Nice finding, David. I've come across that in the context of Koha and
Template::Toolkit, and did something similar, using a data- attribute. I
used [% USE JSON.Escape %] to escape the data that comes from Perl.
Here, I set the data structure to a data-pickup-locations attribute:
https://gitlab.com/thekesolutions/Koha/-/commit/8b63154b866863aae6ac981b37c98=
864cd8875f4#f9b348ee995ab14b7c8a47e5ef2b7fe07838ec38_811_822
And then I use it:
https://gitlab.com/thekesolutions/Koha/-/commit/8b63154b866863aae6ac981b37c98=
864cd8875f4#f9b348ee995ab14b7c8a47e5ef2b7fe07838ec38_1245_1274
Best regards
El mi=C3=A9, 5 may 2021 a las 1:07, escribi=C3=B3:
> Hi all,
>
>
>
> I was just reflecting on bugs like
> https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=3D26942 and
> reviewing https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script
> when I saw the following method for embedding JSON in HTML:
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> I thought that was neat.
>
>
>
> David Cook
>
> Software Engineer
>
> Prosentient Systems
>
> Suite 7.03
>
> 6a Glen St
>
> Milsons Point NSW 2061
>
> Australia
>
>
>
> Office: 02 9212 0899
>
> Online: 02 8005 0595
>
>
> _______________________________________________
> Koha-devel mailing list
> Koha-devel@lists.koha-community.org
> https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
> website : https://www.koha-community.org/
> git : https://git.koha-community.org/
> bugs : https://bugs.koha-community.org/
>
--=20
Tom=C3=A1s Cohen Arazi
Theke Solutions (http://theke.io)
=E2=9C=86 +54 9351 3513384
GPG: B2F3C15F
--===============6305717351485308569==
Content-Type: text/html
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="attachment.html"
MIME-Version: 1.0
PGRpdiBkaXI9Imx0ciI+TmljZSBmaW5kaW5nLCBEYXZpZC4gSSYjMzk7dmUgY29tZSBhY3Jvc3Mg
dGhhdCBpbiB0aGUgY29udGV4dCBvZiBLb2hhIGFuZCBUZW1wbGF0ZTo6VG9vbGtpdCwgYW5kIGRp
ZCBzb21ldGhpbmcgc2ltaWxhciwgdXNpbmcgYSBkYXRhLSBhdHRyaWJ1dGUuIEkgdXNlZCBbJSBV
U0UgSlNPTi5Fc2NhcGUgJV0gdG8gZXNjYXBlIHRoZSBkYXRhIHRoYXQgY29tZXMgZnJvbSBQZXJs
LjxkaXY+PGJyPjwvZGl2PjxkaXY+SGVyZSwgSSBzZXQgdGhlIGRhdGEgc3RydWN0dXJlIHRvIGEg
ZGF0YS1waWNrdXAtbG9jYXRpb25zIGF0dHJpYnV0ZTo8L2Rpdj48ZGl2PjxhIGhyZWY9Imh0dHBz
Oi8vZ2l0bGFiLmNvbS90aGVrZXNvbHV0aW9ucy9Lb2hhLy0vY29tbWl0LzhiNjMxNTRiODY2ODYz
YWFlNmFjOTgxYjM3Yzk4ODY0Y2Q4ODc1ZjQjZjliMzQ4ZWU5OTVhYjE0YjdjOGE0N2U1ZWYyYjdm
ZTA3ODM4ZWMzOF84MTFfODIyIj5odHRwczovL2dpdGxhYi5jb20vdGhla2Vzb2x1dGlvbnMvS29o
YS8tL2NvbW1pdC84YjYzMTU0Yjg2Njg2M2FhZTZhYzk4MWIzN2M5ODg2NGNkODg3NWY0I2Y5YjM0
OGVlOTk1YWIxNGI3YzhhNDdlNWVmMmI3ZmUwNzgzOGVjMzhfODExXzgyMjwvYT48YnI+PC9kaXY+
PGRpdj48YnI+PC9kaXY+PGRpdj5BbmQgdGhlbiBJIHVzZSBpdDo8L2Rpdj48ZGl2PjxhIGhyZWY9
Imh0dHBzOi8vZ2l0bGFiLmNvbS90aGVrZXNvbHV0aW9ucy9Lb2hhLy0vY29tbWl0LzhiNjMxNTRi
ODY2ODYzYWFlNmFjOTgxYjM3Yzk4ODY0Y2Q4ODc1ZjQjZjliMzQ4ZWU5OTVhYjE0YjdjOGE0N2U1
ZWYyYjdmZTA3ODM4ZWMzOF8xMjQ1XzEyNzQiPmh0dHBzOi8vZ2l0bGFiLmNvbS90aGVrZXNvbHV0
aW9ucy9Lb2hhLy0vY29tbWl0LzhiNjMxNTRiODY2ODYzYWFlNmFjOTgxYjM3Yzk4ODY0Y2Q4ODc1
ZjQjZjliMzQ4ZWU5OTVhYjE0YjdjOGE0N2U1ZWYyYjdmZTA3ODM4ZWMzOF8xMjQ1XzEyNzQ8L2E+
PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+QmVzdCByZWdhcmRzPC9kaXY+PGRpdj48YnI+
PC9kaXY+PGRpdj48YnI+PC9kaXY+PC9kaXY+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48
ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+RWwgbWnDqSwgNSBtYXkgMjAyMSBhIGxh
cyAxOjA3LCAmbHQ7PGEgaHJlZj0ibWFpbHRvOmRjb29rQHByb3NlbnRpZW50LmNvbS5hdSI+ZGNv
b2tAcHJvc2VudGllbnQuY29tLmF1PC9hPiZndDsgZXNjcmliacOzOjxicj48L2Rpdj48YmxvY2tx
dW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHggMC44ZXg7
Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFleCI+
PGRpdiBsYW5nPSJFTi1BVSIgc3R5bGU9Im92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7Ij48ZGl2
IGNsYXNzPSJnbWFpbC1tXzMxNzc5ODgyNDQ0NzQ2NzI4NDlXb3JkU2VjdGlvbjEiPjxwIGNsYXNz
PSJNc29Ob3JtYWwiPkhpIGFsbCw8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFs
Ij48dT48L3U+wqA8dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPkkgd2FzIGp1c3QgcmVm
bGVjdGluZyBvbiBidWdzIGxpa2UgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmtvaGEtY29tbXVuaXR5
Lm9yZy9idWd6aWxsYTMvc2hvd19idWcuY2dpP2lkPTI2OTQyIiB0YXJnZXQ9Il9ibGFuayI+aHR0
cHM6Ly9idWdzLmtvaGEtY29tbXVuaXR5Lm9yZy9idWd6aWxsYTMvc2hvd19idWcuY2dpP2lkPTI2
OTQyPC9hPiBhbmQgcmV2aWV3aW5nIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEu
b3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9zY3JpcHQiIHRhcmdldD0iX2JsYW5rIj5o
dHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQv
c2NyaXB0PC9hPiB3aGVuIEkgc2F3IHRoZSBmb2xsb3dpbmcgbWV0aG9kIGZvciBlbWJlZGRpbmcg
SlNPTiBpbiBIVE1MOjx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjx1Pjwv
dT7CoDx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmx0OyEtLSBHZW5lcmF0ZWQgYnkg
dGhlIHNlcnZlciAtLSZndDs8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj4m
bHQ7c2NyaXB0IGlkPSZxdW90O2RhdGEmcXVvdDsgdHlwZT0mcXVvdDthcHBsaWNhdGlvbi9qc29u
JnF1b3Q7Jmd0O3smcXVvdDt1c2VySWQmcXVvdDs6MTIzNCwmcXVvdDt1c2VyTmFtZSZxdW90Ozom
cXVvdDtKb2huIERvZSZxdW90OywmcXVvdDttZW1iZXJTaW5jZSZxdW90OzomcXVvdDsyMDAwLTAx
LTAxVDAwOjAwOjAwLjAwMFomcXVvdDt9Jmx0Oy9zY3JpcHQmZ3Q7PHU+PC91Pjx1PjwvdT48L3A+
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PC91PsKgPHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9y
bWFsIj4mbHQ7IS0tIFN0YXRpYyAtLSZndDs8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNv
Tm9ybWFsIj4mbHQ7c2NyaXB0Jmd0Ozx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPsKgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgmcXVvdDtkYXRhJnF1b3Q7KS50ZXh0KTs8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNv
Tm9ybWFsIj7CoCBjb25zb2xlLmxvZygmcXVvdDtVc2VyIGluZm9ybWF0aW9uOiAlbyZxdW90Oywg
dXNlckluZm8pOzx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZsdDsvc2Ny
aXB0Jmd0Ozx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjx1PjwvdT7CoDx1
PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+SSB0aG91Z2h0IHRoYXQgd2FzIG5lYXQuPHU+
PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PC91PsKgPHU+PC91PjwvcD48
cCBjbGFzcz0iTXNvTm9ybWFsIj5EYXZpZCBDb29rPHU+PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9
Ik1zb05vcm1hbCI+U29mdHdhcmUgRW5naW5lZXI8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0i
TXNvTm9ybWFsIj5Qcm9zZW50aWVudCBTeXN0ZW1zPHU+PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9
Ik1zb05vcm1hbCI+U3VpdGUgNy4wMzx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjZhIEdsZW4gU3Q8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj5NaWxz
b25zIFBvaW50IE5TVyAyMDYxPHU+PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+
QXVzdHJhbGlhPHU+PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PC91PsKg
PHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj5PZmZpY2U6IDAyIDkyMTIgMDg5OTx1Pjwv
dT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPk9ubGluZTogMDIgODAwNSAwNTk1PHU+
PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PC91PsKgPHU+PC91PjwvcD48
L2Rpdj48L2Rpdj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Xzxicj4KS29oYS1kZXZlbCBtYWlsaW5nIGxpc3Q8YnI+CjxhIGhyZWY9Im1haWx0bzpLb2hhLWRl
dmVsQGxpc3RzLmtvaGEtY29tbXVuaXR5Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPktvaGEtZGV2ZWxA
bGlzdHMua29oYS1jb21tdW5pdHkub3JnPC9hPjxicj4KPGEgaHJlZj0iaHR0cHM6Ly9saXN0cy5r
b2hhLWNvbW11bml0eS5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL2tvaGEtZGV2ZWwiIHJl
bD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vbGlzdHMua29oYS1jb21tdW5p
dHkub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9rb2hhLWRldmVsPC9hPjxicj4Kd2Vic2l0
ZSA6IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmtvaGEtY29tbXVuaXR5Lm9yZy8iIHJlbD0ibm9yZWZl
cnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd3d3LmtvaGEtY29tbXVuaXR5Lm9yZy88L2E+
PGJyPgpnaXQgOiA8YSBocmVmPSJodHRwczovL2dpdC5rb2hhLWNvbW11bml0eS5vcmcvIiByZWw9
Im5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdC5rb2hhLWNvbW11bml0eS5v
cmcvPC9hPjxicj4KYnVncyA6IDxhIGhyZWY9Imh0dHBzOi8vYnVncy5rb2hhLWNvbW11bml0eS5v
cmcvIiByZWw9Im5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2J1Z3Mua29oYS1j
b21tdW5pdHkub3JnLzwvYT48YnI+CjwvYmxvY2txdW90ZT48L2Rpdj48YnIgY2xlYXI9ImFsbCI+
PGRpdj48YnI+PC9kaXY+LS0gPGJyPjxkaXYgZGlyPSJsdHIiIGNsYXNzPSJnbWFpbF9zaWduYXR1
cmUiPjxkaXYgZGlyPSJsdHIiPjxkaXY+PGRpdiBkaXI9Imx0ciI+PGRpdiBzdHlsZT0iZm9udC1z
aXplOjEyLjhweCI+VG9tw6FzIENvaGVuIEFyYXppPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXpl
OjEyLjhweCI+VGhla2UgU29sdXRpb25zICg8YSBocmVmPSJodHRwOi8vdGhla2UuaW8vIiB0YXJn
ZXQ9Il9ibGFuayI+aHR0cDovL3RoZWtlLmlvPC9hPik8YnI+4pyGICs1NCA5MzUxIDM1MTMzODQ8
YnI+R1BHOiBCMkYzQzE1RjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pgo=
--===============6305717351485308569==--