{"id":65021,"date":"2023-09-05T15:53:24","date_gmt":"2023-09-05T13:53:24","guid":{"rendered":"https:\/\/www.graphistudio.com\/?page_id=65021"},"modified":"2023-09-05T15:53:33","modified_gmt":"2023-09-05T13:53:33","slug":"the-pursuit-of-excellence-workshop-2-2","status":"publish","type":"page","link":"https:\/\/www.graphistudio.com\/es\/accademia-ceconi\/normal-is-boring\/the-pursuit-of-excellence-workshop-2-2\/","title":{"rendered":"Workshop Registration (Normal is Boring)"},"content":{"rendered":"<div class=\"wpb-content-wrapper\" id=\"wpb-content-root\"><p>[vc_row bg_color=\u00bb#eae6df\u00bb bottom_padding=\u00bb20&#8243;][vc_column width=\u00bb1\/1&#8243;][vc_row_inner][vc_column_inner]<div class=\"spacer\" style=\"height: 40px;\"><\/div>[vc_column_text]<\/p>\n<h1 style=\"text-align: center; margin-bottom: 0;\">GRAPHISTUDIO WORKSHOP 2023<\/h1>\n<h3 class=\"title_principal\" style=\"text-align: center; font-size: 25px;\"><strong>NORMAL IS BORING<br \/>\n<\/strong><\/h3>\n<h2 style=\"text-align: center;\">27 | 28 | 29 November, 2023<\/h2>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row top_padding=\u00bb0&#8243; bottom_padding=\u00bb60&#8243;][vc_column width=\u00bb1\/1&#8243;][vc_row_inner][vc_column_inner][vc_column_text el_id=\u00bbif-sold-out\u00bb]<\/p>\n<div class=\"disclaymer\" style=\"text-align: center;\" data-available=\"20\">\n<h3>Sold Out!<\/h3>\n<\/div>\n<p>[\/vc_column_text][vc_raw_html]ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vdG9hc3RpZnktanMvc3JjL3RvYXN0aWZ5Lm1pbi5jc3MiPg0KPGRpdiBjbGFzcz0iY29udGFpbmVyIGRpc2FibGVkIiBkYXRhLXR5cGU9InBheS1mb3JtIiBkYXRhLWF2YWlsYWJsZT0iW2F2YWlsYWJsZV9zZWF0c19mb3JfZ3Nfd29ya3Nob3AgZXZlbnRfaWQ9NyBhbHJlYWR5X3NvbGQ9MCBhdmFpbGFibGVfc2VhdHM9MjBdWy9hdmFpbGFibGVfc2VhdHNfZm9yX2dzX3dvcmtzaG9wXSI+DQogICAgICAgIDxoNCBjbGFzcz0idGl0bGVfcHJpbmNpcGFsIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAzMnB4OyI+UkVTRVJWRSBZT1VSIFNFQVQ8L2JyPldPUktTSE9QIFRJQ0tFVCDCoyA5OTk8L2g0Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZW50ZXJlZCIgZGF0YS10eXBlPSJvdXRwdXQiPjwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiPg0KICAgICAgICAgICAgICAgIDxsYWJlbD5GaXJzdCBOYW1lIDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJleC4gTWFyaW8iIG5hbWU9Im5hbWUiIHJlcXVpcmVkPSIiIGF1dG9jb21wbGV0ZT0ib2ZmIj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICA8bGFiZWw+TGFzdCBOYW1lIDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJleC4gUm9zc2kiIG5hbWU9InN1cm5hbWUiIHJlcXVpcmVkPSIiIGF1dG9jb21wbGV0ZT0ib2ZmIj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICA8bGFiZWw+RW1haWwgPHN1cD4qPC9zdXA+PC9sYWJlbD4NCiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJleC4geW91ckBlbWFpbC5pdCIgbmFtZT0iZW1haWwiIHJlcXVpcmVkPSIiIGF1dG9jb21wbGV0ZT0ib2ZmIj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiPg0KICAgICAgICAgICAgICAgIDxsYWJlbD5UZWxlcGhvbmUgPHN1cD4qPC9zdXA+PC9sYWJlbD4NCiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9ImV4LiArMzkgMzQwIDEyMzQ1NiIgbmFtZT0idGVsZXBob25lIiByZXF1aXJlZD0iIiBhdXRvY29tcGxldGU9Im9mZiI+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cyI+DQogICAgICAgICAgICAgICAgPGxhYmVsPkNvdW50cnkgPHN1cD4qPC9zdXA+PC9sYWJlbD4NCiAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9ImNvdW50cnlfY29kZSIgcmVxdWlyZWQ9IiI+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiI+U2VsZWN0Li4uLjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8b3B0Z3JvdXAgbGFiZWw9IiI+PG9wdGlvbiB2YWx1ZT0iQVUiPkF1c3RyYWxpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRFIj5HZXJtYW55PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRVMiPlNwYWluPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRlIiPkZyYW5jZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdCIj5Vbml0ZWQgS2luZ2RvbTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IklUIj5JdGFsaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJVUyI+VW5pdGVkIFN0YXRlczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNBIj5DYW5hZGE8L29wdGlvbj48L29wdGdyb3VwPjxvcHRncm91cCBsYWJlbD0iIj48b3B0aW9uIHZhbHVlPSJBRiI+QWZnaGFuaXN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBTCI+QWxiYW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRaIj5BbGdlcmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQVMiPkFtZXJpY2FuIFNhbW9hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQUQiPkFuZG9ycmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBTyI+QW5nb2xhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQUkiPkFuZ3VpbGxhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQVEiPkFudGFyY3RpY2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBRyI+QW50aWd1YSBhbmQgQmFyYnVkYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkFSIj5BcmdlbnRpbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBTSI+QXJtZW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkFXIj5BcnViYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkFVIj5BdXN0cmFsaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBVCI+QXVzdHJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkFaIj5BemVyYmFpamFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQlMiPkJhaGFtYXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCSCI+QmFocmFpbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJEIj5CYW5nbGFkZXNoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQkIiPkJhcmJhZG9zPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQlkiPkJlbGFydXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCRSI+QmVsZ2l1bTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJaIj5CZWxpemU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCSiI+QmVuaW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCTSI+QmVybXVkYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJUIj5CaHV0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCTyI+Qm9saXZpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJBIj5Cb3NuaWEgYW5kIEhlcnplZ292aW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQlciPkJvdHN3YW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQlYiPkJvdXZldCBJc2xhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCUiI+QnJhemlsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSU8iPkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJOIj5CcnVuZWkgRGFydXNzYWxhbTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJHIj5CdWxnYXJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJGIj5CdXJraW5hIEZhc288L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCSSI+QnVydW5kaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IktIIj5DYW1ib2RpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNNIj5DYW1lcm9vbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNWIj5DYXBlIFZlcmRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iS1kiPkNheW1hbiBJc2xhbmRzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ0YiPkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlREIj5DaGFkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ0wiPkNoaWxlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ04iPkNoaW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ1giPkNocmlzdG1hcyBJc2xhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJDQyI+Q29jb3MgKEtlZWxpbmcpIElzbGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJDTyI+Q29sb21iaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJLTSI+Q29tb3Jvczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNHIj5Db25nbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNEIj5Db25nbywgdGhlIERlbW9jcmF0aWMgUmVwdWJsaWMgb2YgdGhlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ0siPkNvb2sgSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNSIj5Db3N0YSBSaWNhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ0kiPkNvdGUgRCdJdm9pcmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJIUiI+Q3JvYXRpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNVIj5DdWJhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ1kiPkN5cHJ1czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNaIj5DemVjaCBSZXB1YmxpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRLIj5EZW5tYXJrPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iREoiPkRqaWJvdXRpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRE0iPkRvbWluaWNhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRE8iPkRvbWluaWNhbiBSZXB1YmxpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkVDIj5FY3VhZG9yPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRUciPkVneXB0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU1YiPkVsIFNhbHZhZG9yPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR1EiPkVxdWF0b3JpYWwgR3VpbmVhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRVIiPkVyaXRyZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJFRSI+RXN0b25pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkVUIj5FdGhpb3BpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZLIj5GYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJGTyI+RmFyb2UgSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZKIj5GaWppPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRkkiPkZpbmxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJHRiI+RnJlbmNoIEd1aWFuYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBGIj5GcmVuY2ggUG9seW5lc2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVEYiPkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdBIj5HYWJvbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdNIj5HYW1iaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJHRSI+R2VvcmdpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRFIj5HZXJtYW55PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR0giPkdoYW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR0kiPkdpYnJhbHRhcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdSIj5HcmVlY2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJHTCI+R3JlZW5sYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR0QiPkdyZW5hZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJHUCI+R3VhZGVsb3VwZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdVIj5HdWFtPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR1QiPkd1YXRlbWFsYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdOIj5HdWluZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJHVyI+R3VpbmVhLUJpc3NhdTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdZIj5HdXlhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJIVCI+SGFpdGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJITSI+SGVhcmQgSXNsYW5kIGFuZCBNY2RvbmFsZCBJc2xhbmRzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVkEiPkhvbHkgU2VlIChWYXRpY2FuIENpdHkgU3RhdGUpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSE4iPkhvbmR1cmFzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSEsiPkhvbmcgS29uZzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkhVIj5IdW5nYXJ5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSVMiPkljZWxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJJTiI+SW5kaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJJRCI+SW5kb25lc2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSVIiPklyYW4sIElzbGFtaWMgUmVwdWJsaWMgb2Y8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJJUSI+SXJhcTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IklFIj5JcmVsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSUwiPklzcmFlbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkpNIj5KYW1haWNhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSlAiPkphcGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSk8iPkpvcmRhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IktaIj5LYXpha2hzdGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iS0UiPktlbnlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iS0kiPktpcmliYXRpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iS1AiPktvcmVhLCBEZW1vY3JhdGljIFBlb3BsZSdzIFJlcHVibGljIG9mPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iS1IiPktvcmVhLCBSZXB1YmxpYyBvZjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IktXIj5LdXdhaXQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJLRyI+S3lyZ3l6c3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxBIj5MYW8gUGVvcGxlJ3MgRGVtb2NyYXRpYyBSZXB1YmxpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxWIj5MYXR2aWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJMQiI+TGViYW5vbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxTIj5MZXNvdGhvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTFIiPkxpYmVyaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJMWSI+TGlieWFuIEFyYWIgSmFtYWhpcml5YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxJIj5MaWVjaHRlbnN0ZWluPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTFQiPkxpdGh1YW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxVIj5MdXhlbWJvdXJnPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTU8iPk1hY2FvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUsiPk1hY2Vkb25pYSwgdGhlIEZvcm1lciBZdWdvc2xhdiBSZXB1YmxpYyBvZjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1HIj5NYWRhZ2FzY2FyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVciPk1hbGF3aTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1ZIj5NYWxheXNpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1WIj5NYWxkaXZlczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1MIj5NYWxpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVQiPk1hbHRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUgiPk1hcnNoYWxsIElzbGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNUSI+TWFydGluaXF1ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1SIj5NYXVyaXRhbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVUiPk1hdXJpdGl1czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IllUIj5NYXlvdHRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVgiPk1leGljbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZNIj5NaWNyb25lc2lhLCBGZWRlcmF0ZWQgU3RhdGVzIG9mPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUQiPk1vbGRvdmEsIFJlcHVibGljIG9mPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUMiPk1vbmFjbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1OIj5Nb25nb2xpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1TIj5Nb250c2VycmF0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUEiPk1vcm9jY288L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNWiI+TW96YW1iaXF1ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1NIj5NeWFubWFyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTkEiPk5hbWliaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOUiI+TmF1cnU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOUCI+TmVwYWw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOTCI+TmV0aGVybGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBTiI+TmV0aGVybGFuZHMgQW50aWxsZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOQyI+TmV3IENhbGVkb25pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5aIj5OZXcgWmVhbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5JIj5OaWNhcmFndWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJORSI+TmlnZXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJORyI+TmlnZXJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5VIj5OaXVlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTkYiPk5vcmZvbGsgSXNsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVAiPk5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5PIj5Ob3J3YXk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJPTSI+T21hbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBLIj5QYWtpc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBXIj5QYWxhdTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBTIj5QYWxlc3RpbmlhbiBUZXJyaXRvcnksIE9jY3VwaWVkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUEEiPlBhbmFtYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBHIj5QYXB1YSBOZXcgR3VpbmVhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUFkiPlBhcmFndWF5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUEUiPlBlcnU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQSCI+UGhpbGlwcGluZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQTiI+UGl0Y2Fpcm48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQTCI+UG9sYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUFQiPlBvcnR1Z2FsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUFIiPlB1ZXJ0byBSaWNvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUUEiPlFhdGFyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUkUiPlJldW5pb248L29wdGlvbj48b3B0aW9uIHZhbHVlPSJSTyI+Um9tYW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlJVIj5SdXNzaWFuIEZlZGVyYXRpb248L29wdGlvbj48b3B0aW9uIHZhbHVlPSJSVyI+UndhbmRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU0giPlNhaW50IEhlbGVuYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IktOIj5TYWludCBLaXR0cyBhbmQgTmV2aXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJMQyI+U2FpbnQgTHVjaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQTSI+U2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlZDIj5TYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IldTIj5TYW1vYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNNIj5TYW4gTWFyaW5vPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU1QiPlNhbyBUb21lIGFuZCBQcmluY2lwZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNBIj5TYXVkaSBBcmFiaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTTiI+U2VuZWdhbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNTIj5TZXJiaWEgYW5kIE1vbnRlbmVncm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTQyI+U2V5Y2hlbGxlczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNMIj5TaWVycmEgTGVvbmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTRyI+U2luZ2Fwb3JlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU0siPlNsb3Zha2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU0kiPlNsb3ZlbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU0IiPlNvbG9tb24gSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNPIj5Tb21hbGlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iWkEiPlNvdXRoIEFmcmljYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdTIj5Tb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkVTIj5TcGFpbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxLIj5TcmkgTGFua2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTRCI+U3VkYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTUiI+U3VyaW5hbWU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTSiI+U3ZhbGJhcmQgYW5kIEphbiBNYXllbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNaIj5Td2F6aWxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTRSI+U3dlZGVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ0giPlN3aXR6ZXJsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU1kiPlN5cmlhbiBBcmFiIFJlcHVibGljPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVFciPlRhaXdhbiwgUHJvdmluY2Ugb2YgQ2hpbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJUSiI+VGFqaWtpc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlRaIj5UYW56YW5pYSwgVW5pdGVkIFJlcHVibGljIG9mPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVEgiPlRoYWlsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVEwiPlRpbW9yLUxlc3RlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVEciPlRvZ288L29wdGlvbj48b3B0aW9uIHZhbHVlPSJUSyI+VG9rZWxhdTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlRPIj5Ub25nYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlRUIj5UcmluaWRhZCBhbmQgVG9iYWdvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVE4iPlR1bmlzaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJUUiI+VHVya2V5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVE0iPlR1cmttZW5pc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlRDIj5UdXJrcyBhbmQgQ2FpY29zIElzbGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJUViI+VHV2YWx1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVUciPlVnYW5kYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlVBIj5Va3JhaW5lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQUUiPlVuaXRlZCBBcmFiIEVtaXJhdGVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVU0iPlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlVZIj5VcnVndWF5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVVoiPlV6YmVraXN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJWVSI+VmFudWF0dTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlZFIj5WZW5lenVlbGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJWTiI+VmlldCBOYW08L29wdGlvbj48b3B0aW9uIHZhbHVlPSJWRyI+VmlyZ2luIElzbGFuZHMsIEJyaXRpc2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJWSSI+VmlyZ2luIElzbGFuZHMsIFUucy48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJXRiI+V2FsbGlzIGFuZCBGdXR1bmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJFSCI+V2VzdGVybiBTYWhhcmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJZRSI+WWVtZW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJaTSI+WmFtYmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iWlciPlppbWJhYndlPC9vcHRpb24+PC9vcHRncm91cD4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBkYXRhLXR5cGU9InN0YXRlIiBjbGFzcz0iY29sLXhzIGNvbC14cy0yIHN0YXRlcy1jb2wiPg0KICAgICAgICAgICAgICAgIDxsYWJlbD5TdGF0ZSA8c3VwPio8L3N1cD48L2xhYmVsPg0KICAgICAgICAgICAgICAgIDxzZWxlY3QgZGF0YS1mb3I9InVzYSIgbmFtZT0ic3RhdGUiIGRpc2FibGVkPSIiPg0KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPlNlbGVjdC4uLi48L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQUwiPkFsYWJhbWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBSyI+QWxhc2thPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQVoiPkFyaXpvbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBUiI+QXJrYW5zYXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJDQSI+Q2FsaWZvcm5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNPIj5Db2xvcmFkbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNUIj5Db25uZWN0aWN1dDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRFIj5EZWxhd2FyZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRDIj5EaXN0cmljdCBPZiBDb2x1bWJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZMIj5GbG9yaWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR0EiPkdlb3JnaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJISSI+SGF3YWlpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSUQiPklkYWhvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSUwiPklsbGlub2lzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSU4iPkluZGlhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJJQSI+SW93YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IktTIj5LYW5zYXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJLWSI+S2VudHVja3k8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJMQSI+TG91aXNpYW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUUiPk1haW5lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUQiPk1hcnlsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUEiPk1hc3NhY2h1c2V0dHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNSSI+TWljaGlnYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNTiI+TWlubmVzb3RhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVMiPk1pc3Npc3NpcHBpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTU8iPk1pc3NvdXJpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVQiPk1vbnRhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJORSI+TmVicmFza2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOViI+TmV2YWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTkgiPk5ldyBIYW1wc2hpcmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOSiI+TmV3IEplcnNleTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5NIj5OZXcgTWV4aWNvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTlkiPk5ldyBZb3JrPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTkMiPk5vcnRoIENhcm9saW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTkQiPk5vcnRoIERha290YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik9IIj5PaGlvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iT0siPk9rbGFob21hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iT1IiPk9yZWdvbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBBIj5QZW5uc3lsdmFuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJSSSI+UmhvZGUgSXNsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU0MiPlNvdXRoIENhcm9saW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU0QiPlNvdXRoIERha290YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlROIj5UZW5uZXNzZWU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJUWCI+VGV4YXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJVVCI+VXRhaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlZUIj5WZXJtb250PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVkEiPlZpcmdpbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iV0EiPldhc2hpbmd0b248L29wdGlvbj48b3B0aW9uIHZhbHVlPSJXViI+V2VzdCBWaXJnaW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IldJIj5XaXNjb25zaW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJXWSI+V3lvbWluZzwvb3B0aW9uPiAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgICAgICA8c2VsZWN0IGRhdGEtZm9yPSJjYW5hZGEiIG5hbWU9InN0YXRlIiBkaXNhYmxlZD0iIj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5TZWxlY3QuLi4uPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJDIj5Ccml0aXNoIENvbHVtYmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iT04iPk9udGFyaW88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOTCI+TmV3Zm91bmRsYW5kIGFuZCBMYWJyYWRvcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5TIj5Ob3ZhIFNjb3RpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBFIj5QcmluY2UgRWR3YXJkIElzbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5CIj5OZXcgQnJ1bnN3aWNrPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUUMiPlF1ZWJlYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1CIj5NYW5pdG9iYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNLIj5TYXNrYXRjaGV3YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBQiI+QWxiZXJ0YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5UIj5Ob3J0aHdlc3QgVGVycml0b3JpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOVSI+TnVuYXZ1dDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IllUIj5ZdWtvbiBUZXJyaXRvcnk8L29wdGlvbj4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93IiBkYXRhLXR5cGU9ImFkZHJlc3MtYmxvY2siPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICA8bGFiZWw+Q2l0eSA8c3VwPio8L3N1cD48L2xhYmVsPg0KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iZXguIEFyYmEiIG5hbWU9ImNpdHkiIHJlcXVpcmVkPSIiIGF1dG9jb21wbGV0ZT0ib2ZmIj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMgY29sLXhzLTIiPg0KICAgICAgICAgICAgICAgIDxsYWJlbD5BZGRyZXNzIDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJleC4gTW9udGUgUmF1dCwgMSIgbmFtZT0ic3RyZWV0IiByZXF1aXJlZD0iIiBhdXRvY29tcGxldGU9Im9mZiI+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICA8bGFiZWw+WmlwIDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG1pbj0iNSIgcGxhY2Vob2xkZXI9ImV4LiAzMzA4MCIgbmFtZT0iemlwIiByZXF1aXJlZD0iIiBhdXRvY29tcGxldGU9Im9mZiI+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgDQogICAgICAgIDxkaXYgZGF0YS10eXBlPSJ2YXQtYmxvY2siIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJhcHBsZS1zd2l0Y2giIGlkPSJoYXZlX2FfY29tcGFueSIgbmFtZT0iaGF2ZV9hX2NvbXBhbnkiIHZhbHVlPSIxIiBhdXRvY29tcGxldGU9Im9mZiI+DQogICAgICAgICAgICA8bGFiZWwgZm9yPSJoYXZlX2FfY29tcGFueSI+SSBoYXZlIGEgdmFsaWQgVkFUIE51bWJlcjwvbGFiZWw+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyIgZGF0YS10eXBlPSJmb3ItY29tcGFueSI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkNvbXBhbnkgTmFtZSA8c3VwPio8L3N1cD48L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9ImV4LiBHcmFwaGlzdHVkaW8iIG5hbWU9ImNvbXBhbnkiIGF1dG9jb21wbGV0ZT0ib2ZmIj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VmF0IDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iZXguIDAxMjM0NTY4NyIgbmFtZT0idmF0IiBhdXRvY29tcGxldGU9Im9mZiI+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93IiBkYXRhLXR5cGU9ImZvci1jb21wYW55Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+Q29tcGFueSBBZGRyZXNzIDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBwbGFjZWhvbGRlcj0iWW91ciBjb21wYW55IGZ1bGwgYWRkcmVzcy4uLiIgbmFtZT0iYWRkcmVzcyIgcm93cz0iNCIgY29scz0iNTAiIGF1dG9jb21wbGV0ZT0ib2ZmIj48L3RleHRhcmVhPg0KICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5Pk5lZWQgaGVscCB3aXRoIHRoaXMgZmllbGQ\/PC9zdW1tYXJ5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkEgZnVsbCBhZGRyZXNzIGV4YW1wbGU6PC9zdHJvbmc+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPjxicj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldCBuYW1lLCBudW1iZXI8YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHppcCAtIGNpdHkgKHN0YXRlKTxicj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VtPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGRhdGEtc3VidHlwZT0iZGlzY2xhaW1lciI+DQogICAgICAgICAgICAgICAgICAgIElmIHRoZSBWQVQgbnVtYmVyIHByb3ZpZGVkIGlzIHZhbGlkLCBHcmFwaGlzdHVkaW8gd2lsbCByZWZ1bmQgeW91IHRoZSBmdWxsIFZBVCBhbW91bnQhDQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93IiBkYXRhLXR5cGU9InNwbGl0LXBheW1lbnQiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICA8bGFiZWw+UGF5bWVudCBPcHRpb24gPHN1cD4qPC9zdXA+PC9sYWJlbD4NCiAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9InBheW1lbnQtdHlwZSIgcmVxdWlyZWQ+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImZ1bGwiIGNoZWNrZWQ+SSB3YW50IHRvIHBheSB0aGUgZnVsbCBhbW91bnQgaW1tZWRpYXRlbHk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iaGFsZiI+SSBwcmVmZXIgdG8gcGF5IGhhbGYgbm93IGFuZCB0aGUgcmVtYWluaW5nIGhhbGYgMiB3ZWVrcyBiZWZvcmUgdGhlIGV2ZW50PC9vcHRpb24+DQogICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgPHA+DQogICAgICAgICAgICAgICAgICAgIFlvdSBjYW4gY2hvb3NlIHRvIHBheSB0aGUgd2hvbGUgYW1vdW50IGltbWVkaWF0ZWx5IG9yIHJlc2VydmUgeW91ciBzZWF0IGJ5IHBheWluZyBoYWxmIGFtb3VudCBub3cNCiAgICAgICAgICAgICAgICAgICAgYW5kIHRoZSByZW1haW5pbmcgaGFsZiAyIHdlZWtzIGJlZm9yZSB0aGUgZXZlbnQhDQogICAgICAgICAgICAgICAgPC9wPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiIGRhdGEtdHlwZT0iY291cG9uLWNvZGUiPg0KICAgICAgICAgICAgICAgIDxwPkRvIHlvdSBoYXZlIGEgRGlzY291bnQgQ29kZT8gQXBwbHkgaGVyZSE8L3A+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InNlYXJjaCIgbmFtZT0icHJvbW8tY29kZSIgYXV0b2NvbXBsZXRlPSJvZmYiPg0KICAgICAgICAgICAgICAgIDxwIGRhdGEtdHlwZT0iYXBwbGllZC1jb3Vwb24iPjwvcD4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIiBkYXRhLXR5cGU9InByaXZhY3kiPg0KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImFwcGxlLXN3aXRjaCIgaWQ9InByaXZhY3kiIG5hbWU9InByaXZhY3kiIHZhbHVlPSIxIiByZXF1aXJlZD0iIiBhdXRvY29tcGxldGU9Im9mZiI+DQogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0icHJpdmFjeSI+Q29uc2VudCB0byB0aGUgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgPHA+DQogICAgICAgICAgICAgICAgICAgIEkgaGF2ZSByZWFkIHRoZSA8YSBocmVmPSJodHRwczovL3d3dy5ncmFwaGlzdHVkaW8uY29tL2VzL3ByaXZhY3kvIiB0YXJnZXQ9Il9ibGFuayI+cHJpdmFjeSBwb2xpY3k8L2E+IGFuZCBJIGF1dGhvcmlzZSB0aGUgdHJlYXRtZW50IG9mIG15IHBlcnNvbmFsIGRhdGEgaGVyZSBwcm92aWRlZC4NCiAgICAgICAgICAgICAgICA8L3A+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiIGRhdGEtdHlwZT0idGVybXMiIGRhdGEtZm9yPSJhbGwiPg0KICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICAgIDxoMz5UZXJtcyAmIENvbmRpdGlvbnM8L2gzPg0KICAgICAgICAgICAgICAgICAgICA8dWw+DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGwgdGlja2V0cyBmb3IgdGhlIHdvcmtzaG9wIHNoYWxsIGJlIG5vbi1yZWZ1bmRhYmxlIOKAkyBpZiB5b3UgaGF2ZSBhIHN1YnN0aXR1dGUgdG8gYXR0ZW5kIHRoZSB3b3Jrc2hvcCwgcGxlYXNlIGNvbnRhY3QgeW91ciBHcmFwaGlzdHVkaW8gc2FsZXMgcmVwcmVzZW50YXRpdmUgd2l0aCB0aGUgZGV0YWlscy4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5DYW5jZWxsYXRpb24gUG9saWN5Ojwvc3Ryb25nPjxicj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGUgd29ya3Nob3AgaXMgY2FuY2VsbGVkIGZvciByZWFzb25zIG91ciBvZiBvdXIgY29udHJvbCB5b3Ugd2lsbCBiZSBwcm92aWRlZCB3aXRoIGEgZnVsbCByZWZ1bmQuDQogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+UHJvbW90aW9uYWw6PC9zdHJvbmc+PGJyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlvdSBhZ3JlZSB0aGF0IHdlIG1heSBpbmNsdWRlIHlvdXIgZGV0YWlscyBpbiBhbnkgcHJvbW90aW9uYWwgbWF0ZXJpYWxzIHJlbGF0aW5nIHRvIHRoZSB3b3Jrc2hvcCBhbmQgb3IgbWF0ZXJpYWxzIHVzZWQgYXQgdGhlIHdvcmtzaG9wLg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlBob3RvdG9ncmFwaHkgJiBmaWxtaW5nIC8gbW9kZWwgcmVsZWFzZTo8L3N0cm9uZz48YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2UgbWF5IHBob3RvZ3JhcGggb3IgZmlsbSB0aGUgd29ya3Nob3AgYW5kIHJlc2VydmUgdGhlIHJpZ2h0IHRvIGRvIHNvIGZvciBwdXJwb3NlcyBvZiBwcm9tb3RpbmcgZnV0dXJlIHdvcmtzaG9wcyBvciBvdGhlcndpc2UuICBZb3UgY29uc2VudCB0byB1cyBwaG90b2dyYXBoaW5nIG9yIGZpbG1pbmcgeW91IGFuZCBhbnkgYXR0ZW5kZWUgYXR0ZW5kaW5nIHRoZSB3b3Jrc2hvcC4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5UcmF2ZWwgJiBhY2NvbW1vZGF0aW9uczo8L3N0cm9uZz48YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBtYWtpbmcgYW5kIHBheWluZyB5b3VyIGFpcmZhcmUgYW5kIGhvdGVsIGFjY29tbW9kYXRpb25zIGZvciB0aGUgd29ya3Nob3AuIElmIHlvdSBhcnJpdmUgYXQgYSBkZXNpZ25lZCB0aW1lIG91dHNpZGUgb2YgdGhlIHByZS1hcnJhbmdlZCBwaWNrIHVwIHRpbWVzLCB5b3Ugd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgeW91ciBvd24gdHJhbnNwb3J0YXRpb24uDQogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+RmFtaWx5IG1lbWJlcnM6PC9zdHJvbmc+PGJyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSB3b3Jrc2hvcCwgdHJhbnNwb3J0YXRpb24sIGFuZCBtZWFsIHNlcnZpY2VzIGFyZSBwcm92aWRlZCBmb3IgcGFpZCBhdHRlbmRlZXMgb25seSwgdGhpcyBpcyBub3QgZXh0ZW5kZWQgdG8gYW5kIGZvciBhdHRlbmRlZSBmYW1pbHkgbWVtYmVycy4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5UcmFuc2xhdGlvbjo8L3N0cm9uZz48YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm8gdHJhbnNsYXRpb24gd2lsbCBiZSBwcm92aWRlZCwgdGhlIHdvcmtzaG9wIHdpbGwgYmUgaW4gRW5nbGlzaC4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5UcmF2ZWwgSW5zdXJhbmNlOjwvc3Ryb25nPjxicj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFYWNoIHBhcnRpY2lwYW50IGNvbmZpcm1zIHRoZXkgdW5kZXJzdGFuZCBhbmQgYWdyZWUgdG8gcHVyY2hhc2UgdGhlIHJlcXVpcmVkIGluc3VyYW5jZSB0aGF0IGlzIHZhbGlkIGludGVybmF0aW9uYWxseS4gU3VnZ2VzdGVkIGluc3VyYW5jZSBpbmNsdWRlczogQWNjaWRlbnQgJiBTaWNrbmVzcyBNZWRpY2FsIEV4cGVuc2UgQ292ZXJhZ2UuIFN0b2xlbiwgbG9zdCBvciBkYW1hZ2VkIHByb3BlcnR5IGNvdmVyYWdlLiBUcmlwIGNhbmNlbGxhdGlvbiBjb3ZlcmFnZS4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5Bc3N1bXB0aW9uIG9mIFJpc2s6PC9zdHJvbmc+PGJyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsbCBhdHRlbmRlZXMgdW5kZXJzdGFuZCBhbmQgYXJlIGluIGZ1bGwgYXdhcmVuZXNzIGFuZCBhc3N1bWUgZnVsbCBhbmQgY29tcGxldGUgcmVzcG9uc2liaWxpdHkgZm9yIGFsbCByaXNrcyBpbmhlcmVudCBpbiB0cmF2ZWwgYW5kIGF0dGVuZGVlIHRoZSB3b3Jrc2hvcCB3b3VsZCBjb3VsZCBpbmNsdWRlIGluanVyeSwgY292aWQsIHByb3BlcnR5IGRhbWFnZSwgYW5kIG9yIGFueSBvdGhlciBraW5kIG9mIGxpYWJpbGl0eS4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5UcmFuc3BvcnRhdGlvbjo8L3N0cm9uZz48YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIGF0dGVuZGVlcyBuZWVkIHRyYW5zcG9ydGF0aW9uIG91dHNpZGUgb2YgdGhlIGFncmVlZCB0aW1pbmdzIHRoZXkgYXJlIHJlc3BvbnNpYmxlIGZvciBhcnJhbmdpbmcgYW5kIHBheWluZyBmb3IgdGhpcy4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5Gb29kIHJlc3RyaWN0aW9uczo8L3N0cm9uZz48YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0ZW5kZWVzIHdpdGggZm9vZCByZXN0cmljdGlvbnMsIHdlIHdpbGwgaGF2ZSBnbHV0ZW4gZnJlZSBhbmQgdmVnYW4vdmVnZXRhcmlhbiBvcHRpb25zICBmb3IgbHVuY2ggYW5kIGRpbm5lcg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ib25seS1mb3ItZXUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+VkFUIElORk86PC9zdHJvbmc+PGJyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0YWxpYW4gVkFUIHdpbGwgYmUgY2hhcmdlZCBvbiByZXNlcnZhdGlvbnMgcGxhY2VkIGJ5IGNsaWVudHMgZnJvbSBFdXJvcGVhbiBVbmlvbi4gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJub3QtZm9yLUlUIj4sIGJ1dCBpZiB0aGUgVkFUIG51bWJlciBwcm92aWRlZCBpcyB2YWxpZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpc3R1ZGlvIHdpbGwgbGF0ZXIgcmVmdW5kIHlvdSB0aGUgZnVsbCBWQVQgYW1vdW50Lg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImFwcGxlLXN3aXRjaCIgaWQ9InRlcm1zIiBuYW1lPSJ0ZXJtcyIgdmFsdWU9IjEiIHJlcXVpcmVkIGF1dG9jb21wbGV0ZT0ib2ZmIj4NCiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJ0ZXJtcyI+SSBhY2NlcHQgdGhlIFRlcm1zICYgQ29uZGl0aW9ucyA8c3VwPio8L3N1cD48L2xhYmVsPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXIiPg0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InBheXBhbC1idXR0b24tY29udGFpbmVyIj48L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCg0KDQoNCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS90b2FzdGlmeS1qcyI+PC9zY3JpcHQ+DQoNCjwhLS1bIFBST0RVQ1RJT04gXSAtLT4NCjxzY3JpcHQgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL3Nkay9qcz9jbGllbnQtaWQ9QVRtZFpablpfVk5fcnNENGplRXJneE9tOWFPNTB5ZFZmdFNkdlhfQ3VpdlMzakRsU01YTktWMktlaWdIbGo5aDV6RTl6TTN3UVFONkNuQzUmY3VycmVuY3k9R0JQJmludGVudD1jYXB0dXJlJmxvY2FsZT1lbl9VUyI+PC9zY3JpcHQ+DQo8IS0tWyBFTkQgUFJPRFVDVElPTiBdIC0tPg0KDQo8IS0tWyBTQU5EQk9YIF0gLS0+DQo8IS0tPHNjcmlwdCBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vc2RrL2pzP2NsaWVudC1pZD1BVTdyZ0hfclJnY3VaWDNMdWg0NUtIQ2lJRFhYbWhBYUpLcm5JbTh2SDFoV1dTc2xscThyZkNYelFYelhhR1BZNG5CclVEN0t5WGxoVFozdyZjdXJyZW5jeT1HQlAmaW50ZW50PWNhcHR1cmUmbG9jYWxlPWVuX1VTIj48L3NjcmlwdD4tLT4NCjwhLS1bIEVORCBTQU5EQk9YIF0gLS0+DQoNCjxzY3JpcHQ+DQogICAgLy8gT1JERVIgREFUQS4uLi4NCiAgICB2YXIgZW52ID0gJ3Byb2R1Y3Rpb24nOw0KICAgIHZhciBldmVudF9pZCA9IDc7IC8vUkVRVUlSRUQ7DQogICAgdmFyIGV2ZW50TmFtZSA9ICdHUkFQSElTVFVESU8gRURVQ0FUSU9OQUwgUFJPR1JBTSAyMDIzJw0KICAgIHZhciBjdXJyZW5jeSA9ICdHQlAnOw0KICAgIHZhciBjdXJyZW5jeV9zeW1ib2wgPSAnwqMnOw0KICAgIHZhciBwcmljZSA9IDk5OTsNCiAgICB2YXIgYmFzZV9wcmljZSA9IDk5OTsNCiAgICB2YXIgdmF0ID0gMC4yMjsNCiAgICB2YXIgc2t1ID0gJ0dTLU5JU0JHU1dTLTIwMjMnOw0KICAgIHZhciByZWZlcmVuY2VfaWQgPSAnR1MtRURVUFJPLU5PVi0yMDIzJzsNCiAgICB2YXIgaW52b2ljZV9pZCA9ICdHUy1OSVNCR1NXUy0yMDIzJzsNCiAgICB2YXIgcHJvZHVjdF9uYW1lID0gJ0dSQVBISVNUVURJTyBFRFVDQVRJT05BTCBQUk9HUkFNIDIwMjMnOw0KICAgIHZhciB0aGFua3NVUkwgPSAnaHR0cHM6Ly93d3cuZ3JhcGhpc3R1ZGlvLmNvbS9lbi9hY2NhZGVtaWEvbm9ybWFsLWlzLWJvcmluZy90aGFua3MnOw0KICAgIHZhciBwcm9kdWN0X2Rlc2NyaXB0aW9uID0gJyc7DQogICAgdmFyIG9yZGVyRGF0YSA9IHsNCiAgICAgICAgcmVmZXJlbmNlX2lkOiByZWZlcmVuY2VfaWQsIC8vREVGQVVMVCBSRUZFUkVOQ0UgSUQhDQogICAgICAgIGFtb3VudDogew0KICAgICAgICAgICAgdmFsdWU6IHByaWNlLA0KICAgICAgICAgICAgY3VycmVuY3lfY29kZTogY3VycmVuY3ksDQogICAgICAgICAgICBicmVha2Rvd246IHsNCiAgICAgICAgICAgICAgICBpdGVtX3RvdGFsOiB7IHZhbHVlOiBwcmljZSwgY3VycmVuY3lfY29kZTogY3VycmVuY3kgfSwNCiAgICAgICAgICAgICAgICB0YXhfdG90YWw6IHsgdmFsdWU6IDAsIGN1cnJlbmN5X2NvZGU6IGN1cnJlbmN5IH0sDQogICAgICAgICAgICAgICAgc2hpcHBpbmc6IHsgdmFsdWU6IDAsIGN1cnJlbmN5X2NvZGU6IGN1cnJlbmN5IH0sDQogICAgICAgICAgICAgICAgZGlzY291bnQ6IHsgdmFsdWU6IDAsIGN1cnJlbmN5X2NvZGU6IGN1cnJlbmN5IH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgaW52b2ljZV9pZDogaW52b2ljZV9pZCwgLy9ERUZBVUxUIElOVk9JQ0UgSUQhDQogICAgICAgIGl0ZW1zOiBbIHsgbmFtZTogcHJvZHVjdF9uYW1lLCBxdWFudGl0eTogMSwgJ3NrdSc6IHNrdSwgZGVzY3JpcHRpb246IHByb2R1Y3RfZGVzY3JpcHRpb24sIHVuaXRfYW1vdW50OiB7IGN1cnJlbmN5X2NvZGU6IGN1cnJlbmN5LCB2YWx1ZTogcHJpY2UgfSB9IF0NCiAgICB9Ow0KDQoNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCl7DQogICAgICAgICJ1c2Ugc3RyaWN0IjsNCg0KICAgICAgIGZ1bmN0aW9uIF9zZW5kRGF0YShkYXRhLCB0cmFuc2FjdGlvbl9pZCl7DQogICAgICAgICAgICBUb2FzdGlmeSh7DQogICAgICAgICAgICAgICAgdGV4dDogcHJvY2Vzc2luZ1lvdXJEYXRhLA0KICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAxMDAwMCwNCiAgICAgICAgICAgICAgICBjbG9zZTogdHJ1ZSwNCiAgICAgICAgICAgICAgICBncmF2aXR5OiAiYm90dG9tIiwNCiAgICAgICAgICAgICAgICBwb3NpdGlvbjogInJpZ2h0IiwNCiAgICAgICAgICAgICAgICBzdG9wT25Gb2N1czogdHJ1ZSwNCiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzdWNjZXNzJywNCiAgICAgICAgICAgICAgICBlc2NhcGVNYXJrdXA6IGZhbHNlLA0KICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uKCl7fSAvLyBDYWxsYmFjayBhZnRlciBjbGljaw0KICAgICAgICAgICAgfSkuc2hvd1RvYXN0KCk7DQogICAgICAgICAgICBsZXQgcCwgcmVxdWVzdCwgZmQgPSBuZXcgRm9ybURhdGEoKTsNCiAgICAgICAgICAgIGZvcihwIGluIGRhdGEpew0KICAgICAgICAgICAgICAgIGlmKCFkYXRhLmhhc093blByb3BlcnR5KHApKSBjb250aW51ZTsNCiAgICAgICAgICAgICAgICBpZihwID09PSAncHJvbW8tY29kZScpew0KICAgICAgICAgICAgICAgICAgICBmZC5hcHBlbmQoJ2NvdXBvbicsIGRhdGFbcF0uY291cG9uLmxhYmVsKTsNCiAgICAgICAgICAgICAgICAgICAgZmQuYXBwZW5kKCdjb3Vwb24tdmFsdWUnLCBNYXRoLmFicyhkYXRhW3BdLmNvdXBvbi52YWx1ZSkpOw0KICAgICAgICAgICAgICAgICAgICBmZC5hcHBlbmQoJ2NvdXBvbi1sYWJlbCcsIGBDb3Vwb24gYXBwbGllZCAke2RhdGFbcF0uY291cG9uLmxhYmVsfTogJHtjdXJyZW5jeX0gJHtNYXRoLmFicyhkYXRhW3BdLmNvdXBvbi52YWx1ZSl9YCk7DQogICAgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICAgIGZkLmFwcGVuZChwLCBkYXRhW3BdKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZmQuYXBwZW5kKCdldmVudF9pZCcsIGV2ZW50X2lkKTsNCiAgICAgICAgICAgIGZkLmFwcGVuZCgndHJhbnNhY3Rpb25faWQnLCB0cmFuc2FjdGlvbl9pZCk7DQogICAgICAgICAgICBmZC5hcHBlbmQoJ2Ftb3VudCcsIGAke29yZGVyRGF0YS5hbW91bnQuYnJlYWtkb3duLml0ZW1fdG90YWwudmFsdWV9ICR7Y3VycmVuY3l9YCk7DQogICAgICAgICAgICBpZihkYXRhWydoYXZlX2FfY29tcGFueSddIHx8IGNvdW50cmllc193aXRoX3ZhdC5pbmRleE9mKGRhdGFbJ2NvdW50cnlfY29kZSddKSAhPT0gLTEpew0KICAgICAgICAgICAgICAgIGZkLmFwcGVuZCgndGF4JywgYCR7b3JkZXJEYXRhLmFtb3VudC5icmVha2Rvd24udGF4X3RvdGFsLnZhbHVlfSAke2N1cnJlbmN5fWApOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZmQuYXBwZW5kKCdldmVudF9uYW1lJywgZXZlbnROYW1lKTsNCiAgICAgICAgICAgIGZkLmFwcGVuZCgndGFzaycsJ3JlY2VpcHQnKTsNCiAgICAgICAgICAgIHJldHVybiBmZXRjaCgiaHR0cHM6Ly93d3cuZ3JhcGhpc3R1ZGlvLmNvbS9UcmFkZU5ldy9hcGkvZWR1Y2F0aW9uYWwvc2VuZC1lbWFpbCIsIHsNCiAgICAgICAgICAgICAgICBtZXRob2Q6ICdwb3N0JywNCiAgICAgICAgICAgICAgICBib2R5OiBmZCwNCiAgICAgICAgICAgIH0pDQoNCiAgICAgICAgICAgIC8vcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOw0KICAgICAgICAgICAgLy9yZXF1ZXN0Lm9wZW4oIlBPU1QiLCAiaHR0cHM6Ly93d3cuZ3JhcGhpc3R1ZGlvLmNvbS9UcmFkZU5ldy9hcGkvc2VuZF9lbWFpbC5waHAiLCBmYWxzZSk7IC8vU1lOQyBSRVFVRVNULi4uLg0KICAgICAgICAgICAgLy9yZXF1ZXN0LnNlbmQoZmQpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gX3VwZGF0ZVByaWNlKHZhdCl7DQogICAgICAgICAgICBsZXQgdXNlX3ByaWNlOw0KICAgICAgICAgICAgaWYoX2RhdGFbJ3Byb21vLWNvZGUnXSkgew0KICAgICAgICAgICAgICAgIC8vb3JkZXJEYXRhLmFtb3VudC5icmVha2Rvd24uZGlzY291bnQudmFsdWUgPSBNYXRoLmFicyhfZGF0YVsncHJvbW8tY29kZSddLmNvdXBvbi52YWx1ZSk7DQogICAgICAgICAgICAgICAgb3JkZXJEYXRhLmFtb3VudC5icmVha2Rvd24uZGlzY291bnQudmFsdWUgPSAwOw0KICAgICAgICAgICAgICAgIHVzZV9wcmljZSA9IGJhc2VfcHJpY2UgLSBNYXRoLmFicyhfZGF0YVsncHJvbW8tY29kZSddLmNvdXBvbi52YWx1ZSkgLSAgb3JkZXJEYXRhLmFtb3VudC5icmVha2Rvd24uZGlzY291bnQudmFsdWU7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBvcmRlckRhdGEuYW1vdW50LmJyZWFrZG93bi5kaXNjb3VudC52YWx1ZSA9IDA7DQogICAgICAgICAgICAgICAgdXNlX3ByaWNlID0gYmFzZV9wcmljZSAtIG9yZGVyRGF0YS5hbW91bnQuYnJlYWtkb3duLmRpc2NvdW50LnZhbHVlOw0KICAgICAgICAgICAgICAgDQogICAgICAgICAgICB9DQogICAgICAgICAgICAgaWYoX2RhdGFbJ3BheW1lbnQtdHlwZSddID09PSAnaGFsZicpIHVzZV9wcmljZSAqPSAwLjU7IA0KDQogICAgICAgICAgICBpZih2YXQpew0KICAgICAgICAgICAgICAgIG9yZGVyRGF0YS5hbW91bnQudmFsdWUgPSBOdW1iZXIodXNlX3ByaWNlICsgKHVzZV9wcmljZSAqIHZhdCkpLnRvRml4ZWQoMik7DQogICAgICAgICAgICAgICAgb3JkZXJEYXRhLmFtb3VudC5icmVha2Rvd24udGF4X3RvdGFsLnZhbHVlID0gTnVtYmVyKHVzZV9wcmljZSAqIHZhdCkudG9GaXhlZCgyKTsNCiAgICAgICAgICAgICAgICBvcmRlckRhdGEuYW1vdW50LmJyZWFrZG93bi5pdGVtX3RvdGFsLnZhbHVlID0gTnVtYmVyKHVzZV9wcmljZSkudG9GaXhlZCgyKTsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIG9yZGVyRGF0YS5hbW91bnQudmFsdWUgPSBOdW1iZXIodXNlX3ByaWNlLnRvRml4ZWQoMikpOw0KICAgICAgICAgICAgICAgIG9yZGVyRGF0YS5hbW91bnQuYnJlYWtkb3duLnRheF90b3RhbC52YWx1ZSA9IDA7DQogICAgICAgICAgICAgICAgb3JkZXJEYXRhLmFtb3VudC5icmVha2Rvd24uaXRlbV90b3RhbC52YWx1ZSA9IE51bWJlcih1c2VfcHJpY2UudG9GaXhlZCgyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIG9yZGVyRGF0YS5pdGVtc1swXS51bml0X2Ftb3VudC52YWx1ZSA9IE51bWJlcih1c2VfcHJpY2UudG9GaXhlZCgyKSk7DQogICAgICAgICAgICBjb25zb2xlLndhcm4ob3JkZXJEYXRhLCBvcmRlckRhdGEuYW1vdW50KTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIFZBTElEQVRJTkcgVEhFIFVTRVIgREFUQSBCRUZPUkUgSU5JVCBUSEUgUEFZTUVOVCBQUk9DRVNTIQ0KICAgICAgICBmdW5jdGlvbiBfdmFsaWRhdGVEYXRhKGRhdGEsIGNoZWNrcyl7DQogICAgICAgICAgICBpZighYXZhaWxhYmxlX3NlYXRzKSByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICBsZXQgaW52YWxpZCA9IGNoZWNrcy5zb21lKGZ1bmN0aW9uKHApew0KICAgICAgICAgICAgICAgIHJldHVybiAhZGF0YVtwXTsNCiAgICAgICAgICAgIH0pDQogICAgICAgICAgICBpZihkYXRhWydoYXZlX2FfY29tcGFueSddKXsNCiAgICAgICAgICAgICAgICBpZighZGF0YVsndmF0J10gfHwgIWRhdGFbJ2NvbXBhbnknXSB8fCAhZGF0YVsnYWRkcmVzcyddKSBpbnZhbGlkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAvL191cGRhdGVQcmljZSh2YXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICANCiAgICAgICAgICAgIF91cGRhdGVQcmljZSgoY291bnRyaWVzX3dpdGhfdmF0LmluZGV4T2YoZGF0YVsnY291bnRyeV9jb2RlJ10pICE9PSAtMSkgPyB2YXQgOiBudWxsKTsNCiAgICAgICAgICAgIHJldHVybiAhaW52YWxpZDsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIEdFTkVSQVRJTkcgQU4gVU5JUVVFIElOVk9JQ0UgSUQgRk9SIFRIRSBDVVJSRU5UIFBBWU1FTlQgU0VTU0lPTi9GTE9XIQ0KICAgICAgICBmdW5jdGlvbiBnZXRSZWNlaXB0VUlEKCkgew0KICAgICAgICAgICAgbGV0IGEgPSBuZXcgVWludDMyQXJyYXkoMyk7DQogICAgICAgICAgICB3aW5kb3cuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhKTsNCiAgICAgICAgICAgIHJldHVybiBgJHtpbnZvaWNlX2lkfS1gKyhwZXJmb3JtYW5jZS5ub3coKS50b1N0cmluZygzNikrQXJyYXkuZnJvbShhKS5tYXAoDQogICAgICAgICAgICAgICAgZnVuY3Rpb24oQSkgeyByZXR1cm4gQS50b1N0cmluZygzNik7IH0NCiAgICAgICAgICAgICkuam9pbigiIikpLnJlcGxhY2UoL1wuL2csIiIpLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLyBDSEVDSyBJTiBCQU5ORUQgTElTVCENCiAgICAgICAgZnVuY3Rpb24gX2NoZWNrQmFuTGlzdChkYXRhKXsNCiAgICAgICAgICAgIGlmKFsiaGF1c29mamFpQGdtYWlsLmNvbSIsImluZm9AaGF1c29mamFpLmNvbSJdLmluZGV4T2YoZGF0YVsnZW1haWwnXS50b0xvd2VyQ2FzZSgpLnRyaW0oKSkgIT09IC0xKSByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIGlmKFsia2FwYWRpYSJdLmluZGV4T2YoZGF0YVsnc3VybmFtZSddLnRvTG93ZXJDYXNlKCkudHJpbSgpKSAhPT0gLTEpIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgaWYoWyJqYWkiLCJqYWdydXRpIl0uaW5kZXhPZihkYXRhWyduYW1lJ10udG9Mb3dlckNhc2UoKS50cmltKCkpICE9PSAtMSkgcmV0dXJuIHRydWU7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vIFJFUE9SVCBCQU5ORUQhDQogICAgICAgIGZ1bmN0aW9uIF9sb2dCYW5uZWQoZGF0YSl7DQogICAgICAgICAgICBsZXQgcCwgZmQgPSBuZXcgRm9ybURhdGEoKTsNCiAgICAgICAgICAgIGZvcihwIGluIGRhdGEpew0KICAgICAgICAgICAgICAgIGlmKCFkYXRhLmhhc093blByb3BlcnR5KHApKSBjb250aW51ZTsNCiAgICAgICAgICAgICAgICBmZC5hcHBlbmQocCwgZGF0YVtwXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmZC5hcHBlbmQoJ2V2ZW50X2lkJywgZXZlbnRfaWQpOw0KICAgICAgICAgICAgZmQuYXBwZW5kKCdldmVudF9uYW1lJywgZXZlbnROYW1lKTsNCiAgICAgICAgICAgIGZkLmFwcGVuZCgndGFzaycsJ2Jhbm5lZCcpOw0KICAgICAgICAgICAgcmV0dXJuIGZldGNoKCJodHRwczovL3d3dy5ncmFwaGlzdHVkaW8uY29tL1RyYWRlTmV3L2FwaS9lZHVjYXRpb25hbC9zZW5kLWVtYWlsIiwgew0KICAgICAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLA0KICAgICAgICAgICAgICAgIGJvZHk6IGZkLA0KICAgICAgICAgICAgfSkNCg0KICAgICAgICB9DQoNCmZ1bmN0aW9uIF91c2VyRmVlZGJhY2sodHlwZSwgbWVzc2FnZSl7DQogICAgICAgICAgICBpZih3aW5kb3cuVG9hc3RpZnkgJiYgbWVzc2FnZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBUb2FzdGlmeSh7DQogICAgICAgICAgICAgICAgICAgIHRleHQ6IG1lc3NhZ2UsDQogICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLA0KICAgICAgICAgICAgICAgICAgICBjbG9zZTogdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgZ3Jhdml0eTogImJvdHRvbSIsDQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAicmlnaHQiLA0KICAgICAgICAgICAgICAgICAgICBzdG9wT25Gb2N1czogdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0eXBlLA0KICAgICAgICAgICAgICAgICAgICBlc2NhcGVNYXJrdXA6IGZhbHNlLA0KICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIH0gLy8gQ2FsbGJhY2sgYWZ0ZXIgY2xpY2sNCiAgICAgICAgICAgICAgICB9KS5zaG93VG9hc3QoKTsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIGlmKG91dHB1dCkgb3V0cHV0LmlubmVySFRNTCA9IG1lc3NhZ2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBfdmFsaWRhdGVQcm9tb0NvZGUodmFsdWUpew0KDQogICAgICAgICAgICBjb25zb2xlLndhcm4oJ1ZBTElEQVRJTkcgQ09VUE9OOiAiJXMiJywgdmFsdWUpOw0KICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGZ1bGxmaWxsLCByZWplY3Qpew0KICAgICAgICAgICAgICAgIGxldCB1ZiwgdmFsaWQsIHdVSUQ7DQogICAgICAgICAgICAgICAgaWYodmFsdWUudHJpbSgpID09PSAnJyB8fCAhdmFsdWUpIHsNCiAgICAgICAgICAgICAgICAgICAgZnVsbGZpbGwobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYocGF5Q2FyZCkgcGF5Q2FyZC5jbGFzc0xpc3QuYWRkKCdsb2FkaW5nJyk7DQogICAgICAgICAgICAgICAgd1VJRCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgICB1bCA9IF91c2VyRmVlZGJhY2soJ3dhcm4nLCBjaGVja2luZ1lvdXJDb3Vwb24pOw0KICAgICAgICAgICAgICAgIH0sNTAwKTsNCiAgICAgICAgICAgICAgICBmZXRjaCgiaHR0cHM6Ly9hcGkuZ3JhcGhpc3R1ZGlvLmNvbS9hcGkvd29ya3Nob3AvdmFsaWRhdGUtY291cG9uLyIrdmFsdWUsIHsNCiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnZ2V0Jw0KICAgICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2Upew0KICAgICAgICAgICAgICAgICAgICBpZihyZXNwb25zZS5zdGF0dXMgPT09IDIwMCl7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBmdWxsZmlsbChyZXNwb25zZS5qc29uKCkpDQogICAgICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpew0KICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsNCiAgICAgICAgICAgICAgICB9KS5maW5hbGx5KGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQod1VJRCk7DQogICAgICAgICAgICAgICAgICAgIGlmKHVmKSB1Zi5oaWRlVG9hc3QoKTsNCiAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICAgICAgICAgIF91c2VyRmVlZGJhY2sodmFsaWQgPyAnc3VjY2VzcycgOiAnZXJyb3InLCB2YWxpZCA\/IHZhbGlkQ291cG9uIDogaW52YWxpZENvdXBvbik7DQogICAgICAgICAgICAgICAgICAgICAgICBpZihwYXlDYXJkKSBwYXlDYXJkLmNsYXNzTGlzdC5yZW1vdmUoJ2xvYWRpbmcnKTsNCiAgICAgICAgICAgICAgICAgICAgfSwgMTAwMCk7DQogICAgICAgICAgICAgICAgfSkNCg0KICAgICAgICAgICAgfSkNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIF9jaGVja0Zvcm0oX2RhdGEsIF9jaGVja3MsIGFjdGlvbnMpew0KICAgICAgICAgICAgaWYoX3ZhbGlkYXRlRGF0YShfZGF0YSwgX2NoZWNrcykpew0KICAgICAgICAgICAgICAgIHBheUNhcmQuY2xhc3NMaXN0LnJlbW92ZSgnZGlzYWJsZWQnKTsNCiAgICAgICAgICAgICAgICBhY3Rpb25zLmVuYWJsZSgpOw0KICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgcGF5Q2FyZC5jbGFzc0xpc3QuYWRkKCdkaXNhYmxlZCcpOw0KICAgICAgICAgICAgICAgIGFjdGlvbnMuZGlzYWJsZSgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgb3JkZXJEYXRhLmludm9pY2VfaWQgPSBnZXRSZWNlaXB0VUlEKCk7DQogICAgICAgIGlmKHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmluZm8pIHsNCiAgICAgICAgICAgICBjb25zb2xlLmluZm8oJ1NFU1NJT04gSU5WT0lDRSBJRDogJXMnLCAgb3JkZXJEYXRhLmludm9pY2VfaWQpOw0KDQogICAgICAgIH0NCg0KICAgICAgICAvLyBMRVhJQ08gRk9SIEFMRVJUUyBCQURHRS4uLg0KICAgICAgICBsZXQgc3VjY2Vzc01lc3NhZ2UgPSAnPHN0cm9uZz5QQVlNRU5UIERPTkUhPC9zdHJvbmc+PGJyPlRoYW5rIHlvdSBmb3IgeW91ciBwYXltZW50ISc7DQogICAgICAgIGxldCBjYW5jZWxNZXNzYWdlID0gJzxzdHJvbmc+UEFZTUVOVCBDQU5DRUxMRUQhPC9zdHJvbmc+PGJyPk5vIHRyYW5zYWN0aW9uIG1hZGUhJzsNCiAgICAgICAgbGV0IGVycm9yTWVzc2FnZSA9ICc8c3Ryb25nPlVOQUJMRSBUTyBQUk9DRVNTIFlPVVIgUEFZTUVOVCE8L3N0cm9uZz48YnI+V2UgYXJlIHNvcnJ5LCBidXQgd2UgY2FuXCd0IHByb2Nlc3MgeW91ciBwYXltZW50IGF0IHRoaXMgdGltZSEnOw0KICAgICAgICBsZXQgZXJyb3JTb2xkT3V0TWVzc2FnZSA9ICc8c3Ryb25nPkVWRU5UIFNPTEQgT1VUITwvc3Ryb25nPjxicj5XZSBhcmUgc29ycnksIGJ1dCBhbGwgYXZhaWxhYmxlIHNlYXRzIGFyZSBzb2xkIG91dC4hJzsNCiAgICAgICAgbGV0IHByb2Nlc3NpbmdZb3VyRGF0YSA9ICc8c3Ryb25nPlBST0NFU1NJTkcgWU9VUiBEQVRBITwvc3Ryb25nPjxicj5QbGVhc2Ugd2FpdCEnOw0KDQogICAgICAgIGxldCBjaGVja2luZ1lvdXJDb3Vwb24gPSAnPHN0cm9uZz5WQUxJREFUSU5HIFlPVVIgQ09ERSE8L3N0cm9uZz48YnI+UGxlYXNlIHdhaXQhJzsNCiAgICAgICAgbGV0IHZhbGlkQ291cG9uID0gJzxzdHJvbmc+WU9VUiBDT1VQT04gQ09ERSBJUyBWQUxJRCE8L3N0cm9uZz48YnI+V2Ugd2lsbCBhcHBseSB0aGUgZGlzY291bnQhJzsNCiAgICAgICAgbGV0IGludmFsaWRDb3Vwb24gPSAnPHN0cm9uZz5ZT1VSIENPVVBPTiBDT0RFIElTIElOVkFMSUQhPC9zdHJvbmc+PGJyPlBsZWFzZSBkb3VibGUgY2hlY2sgeW91ciBjb3Vwb24gY29kZSEnOw0KDQogICAgICAgIC8vIEVMRU1FTlRTIC4uLg0KICAgICAgICBsZXQgcGF5Q2FyZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXR5cGU9InBheS1mb3JtIl0nKTsNCiAgICAgICAgbGV0IG91dHB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXR5cGU9Im91dHB1dCJdJyk7DQogICAgICAgIGxldCB2YXRCbG9jayA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXR5cGU9InZhdC1ibG9jayJdJyk7DQogICAgICAgIGxldCBzdGF0ZUJsb2NrID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdHlwZT0ic3RhdGUiXScpOw0KICAgICAgICBsZXQgYWRkcmVzc0Jsb2NrID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdHlwZT0iYWRkcmVzcy1ibG9jayJdJyk7DQogICAgICAgIGxldCB0ZXJtc0Jsb2NrID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdHlwZT0idGVybXMiXScpOw0KICAgICAgICBsZXQgYXBwbGllZENvdXBvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXR5cGU9ImFwcGxpZWQtY291cG9uIl0nKTsNCiAgICAgICAgbGV0IHBheXBhbEJ1dHRvbkNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwYXlwYWwtYnV0dG9uLWNvbnRhaW5lcicpOw0KICAgICAgICBsZXQgX2RhdGE7DQogICAgICAgIGxldCBjb3VudHJpZXNfd2l0aF92YXQgPSBbJ0lUJywnQVQnLCdCRScsJ0JHJywnSFInLCdDWScsJ0NaJywnREsnLCdFRScsJ0ZJJywnRlInLCdERScsJ0VMJywnSFUnLCdJRScsJ0xWJywnTFQnLCdMVScsJ01UJywnTkwnLCdQTCcsJ1BUJywnUk8nLCdTSycsJ1NJJywnRVMnLCdTRSddOw0KICAgICAgICBsZXQgdmF0SW5wOw0KICAgICAgICBsZXQgaXNBQ29tcGFueSwgdXNhU3RhdGVzLCBjYW5TdGF0ZXMsIG90aGVyU3RhdGVzOw0KICAgICAgICBsZXQgYXZhaWxhYmxlX3NlYXRzID0gTnVtYmVyKHBheUNhcmQuZGF0YXNldC5hdmFpbGFibGUgfHwgMCk7DQoNCiAgICAgICAgY29uc29sZS5pbmZvKCdDT1VOVFJJRVMgV0lUSCBWQVQ6ICVzJywgY291bnRyaWVzX3dpdGhfdmF0Lmxlbmd0aCwgb3JkZXJEYXRhKTsNCiAgICAgICAgY29uc29sZS5pbmZvKCdBVkFJTEFCTEUgU0VBVFMgQVJFOiAlcycsIGF2YWlsYWJsZV9zZWF0cyk7DQoNCiAgICAgICBpZighYXZhaWxhYmxlX3NlYXRzKXsNCiAgICAgICAgICAgIGlmKHdpbmRvdy5Ub2FzdGlmeSl7DQogICAgICAgICAgICAgICAgVG9hc3RpZnkoew0KICAgICAgICAgICAgICAgICAgICB0ZXh0OiBlcnJvclNvbGRPdXRNZXNzYWdlLA0KICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMTAwMDAsDQogICAgICAgICAgICAgICAgICAgIGNsb3NlOiB0cnVlLA0KICAgICAgICAgICAgICAgICAgICBncmF2aXR5OiAiYm90dG9tIiwNCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICJyaWdodCIsDQogICAgICAgICAgICAgICAgICAgIHN0b3BPbkZvY3VzOiB0cnVlLA0KICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdlcnJvcicsDQogICAgICAgICAgICAgICAgICAgIGVzY2FwZU1hcmt1cDogZmFsc2UsDQogICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uKCl7fSAvLyBDYWxsYmFjayBhZnRlciBjbGljaw0KICAgICAgICAgICAgICAgIH0pLnNob3dUb2FzdCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQoNCiAgICAgICAgcGF5cGFsLkJ1dHRvbnMoew0KICAgICAgICAgICAgZW52OiBlbnYsDQogICAgICAgICAgICBsb2NhbGU6ICdlbl9VUycsDQogICAgICAgICAgICBzdHlsZTogew0KICAgICAgICAgICAgICAgIGxheW91dDogJ2hvcml6b250YWwnLA0KICAgICAgICAgICAgICAgIHNpemU6ICdyZXNwb25zaXZlJywNCiAgICAgICAgICAgICAgICBjb2xvcjogJ2dvbGQnLA0KICAgICAgICAgICAgICAgIHNoYXBlOiAncGlsbCcsDQogICAgICAgICAgICAgICAgbGFiZWw6ICdidXlub3cnLA0KICAgICAgICAgICAgICAgIHRhZ2xpbmU6ICdmYWxzZScsDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgLy8gV0hFTiBUSEUgUEFZUEFMIExJQlJBUlkgSU5JVCwgV0UgRElTQUJMRSBUSEUgUEFZTUVOVCBCVVRUT04gLi4uLg0KICAgICAgICAgICAgb25Jbml0OiBmdW5jdGlvbihkYXRhLCBhY3Rpb25zKSAgew0KICAgICAgICAgICAgICAgIGxldCBfY2hlY2tzLCBpbnB1dHM7DQogICAgICAgICAgICAgICAgLy8gRElTQUJMRSBUSEUgQlVUVE9OKFMpDQogICAgICAgICAgICAgICAgcGF5Q2FyZC5jbGFzc0xpc3QuYWRkKCdkaXNhYmxlZCcpOw0KDQoNCiAgICAgICAgICAgICAgICBhY3Rpb25zLmRpc2FibGUoKTsNCiAgICAgICAgICAgICAgICBfZGF0YSA9IHt9Ow0KICAgICAgICAgICAgICAgIF9jaGVja3MgPSBbXTsNCiAgICAgICAgICAgICAgICAvL2lmKF9wcmVmaWxsT25UZXN0ICkgX2RhdGEgPSBfcHJlZmlsbE9uVGVzdDsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpbnB1dHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsICgnW2RhdGEtdHlwZT0icGF5LWZvcm0iXSBpbnB1dCwgW2RhdGEtdHlwZT0icGF5LWZvcm0iXSBzZWxlY3QsICBbZGF0YS10eXBlPSJwYXktZm9ybSJdIHRleHRhcmVhJyk7DQogICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGlucHV0cywgZnVuY3Rpb24oaW5wdXQpew0KDQogICAgICAgICAgICAgICAgICAgIC8vaWYoX3ByZWZpbGxPblRlc3QgJiYgX3ByZWZpbGxPblRlc3RbaW5wdXQubmFtZV0pIGlucHV0LnZhbHVlID0gX3ByZWZpbGxPblRlc3RbaW5wdXQubmFtZV07DQogICAgICAgICAgICAgICAgICAgIGlmKGlucHV0LnJlcXVpcmVkKSBfY2hlY2tzLnB1c2goaW5wdXQubmFtZSk7DQogICAgICAgICAgICAgICAgICAgIGlmKGlucHV0Lm5hbWUgPT09ICdoYXZlX2FfY29tcGFueScpIGlzQUNvbXBhbnkgPSBpbnB1dDsNCiAgICAgICAgICAgICAgICAgICAgaWYoaW5wdXQubmFtZSA9PT0gJ3N0YXRlJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoaW5wdXQuZGF0YXNldC5mb3IgPT09ICd1c2EnKSB1c2FTdGF0ZXMgPSBpbnB1dDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlucHV0LmRhdGFzZXQuZm9yID09PSAnY2FuYWRhJykgY2FuU3RhdGVzID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgICAgICAgICBpZihpbnB1dC5kYXRhc2V0LmZvciA9PT0gJ290aGVycycpIG90aGVyU3RhdGVzID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZihpbnB1dC5uYW1lID09PSAncGF5bWVudC10eXBlJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgX2RhdGFbaW5wdXQubmFtZV0gPSBbJ2Z1bGwnLCdoYWxmJ10uaW5kZXhPZihpbnB1dC52YWx1ZSkgIT09IC0xID8gaW5wdXQudmFsdWUgOiAnZnVsbCc7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZihpbnB1dC5uYW1lID09PSAncHJvbW8tY29kZScpIGlucHV0LnZhbHVlID0gJyc7DQoNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24oZSl7DQogICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGUuY3VycmVudFRhcmdldC5uYW1lKXsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ25hbWUnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N1cm5hbWUnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvdW50cnknOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvdW50cnlfY29kZSc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSA9IC9eXHMqXHd7Mix9XHMqLiokLy50ZXN0KGUuY3VycmVudFRhcmdldC52YWx1ZSkgPyBlLmN1cnJlbnRUYXJnZXQudmFsdWUudHJpbSgpIDogbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZS5jdXJyZW50VGFyZ2V0Lm5hbWUgPT09ICdjb3VudHJ5X2NvZGUnKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlzQUNvbXBhbnkpIGlzQUNvbXBhbnkuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodXNhU3RhdGVzKSB1c2FTdGF0ZXMuZGlzYWJsZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2FuU3RhdGVzKSBjYW5TdGF0ZXMuZGlzYWJsZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob3RoZXJTdGF0ZXMpIG90aGVyU3RhdGVzLmRpc2FibGVkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhWydoYXZlX2FfY29tcGFueSddID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhdElucC5kaXNhYmxlZCA9ICEoY291bnRyaWVzX3dpdGhfdmF0LmluZGV4T2YoX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdKSAhPT0gLTEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc3RhdGVCbG9jaykgc3RhdGVCbG9jay5kYXRhc2V0LmNvdW50cnkgPSBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih2YXRCbG9jaykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhdEJsb2NrLmRhdGFzZXQuY291bnRyeSA9IF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXRCbG9jay5zdHlsZS5kaXNwbGF5ID0gKGNvdW50cmllc193aXRoX3ZhdC5pbmRleE9mKF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSkgIT09IC0xKSA\/ICdibG9jaycgOiAnbm9uZSc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRlcm1zQmxvY2spew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlcm1zQmxvY2suZGF0YXNldC5mb3IgPSAoY291bnRyaWVzX3dpdGhfdmF0LmluZGV4T2YoX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdKSAhPT0gLTEpID8gJ3VlJyA6ICdhbGwnOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlcm1zQmxvY2suZGF0YXNldC5jb3VudHJ5ID0gX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdXBkYXRlUHJpY2UoY291bnRyaWVzX3dpdGhfdmF0LmluZGV4T2YoX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPT09ICdVUycgJiYgdXNhU3RhdGVzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNhU3RhdGVzLmRpc2FibGVkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNhU3RhdGVzLnNlbGVjdGVkSW5kZXggPSAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdID09PSAnQ0EnICYmIGNhblN0YXRlcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhblN0YXRlcy5kaXNhYmxlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhblN0YXRlcy5zZWxlY3RlZEluZGV4ID0gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKFsiVVMiLCJDQSJdLmluZGV4T2YoX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdKSA9PT0gLTEgJiYgb3RoZXJTdGF0ZXMpIG90aGVyU3RhdGVzLmRpc2FibGVkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihbIlVTIiwiQ0EiXS5pbmRleE9mKF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSkgIT09IC0xKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY2hlY2tzLnB1c2goJ3N0YXRlJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2NoZWNrcy5maWx0ZXIoZnVuY3Rpb24ocHJvcCwgaW5keCl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfY2hlY2tzLmluZGV4T2YocHJvcCkgPT09IGluZHgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jaGVja3MgPSBfY2hlY2tzLmZpbHRlcihmdW5jdGlvbihwcm9wLCBpbmR4KXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb3AgIT09ICdzdGF0ZSc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhWydzdGF0ZSddID0gbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBfZGF0YVsnc3RhdGUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFkZHJlc3NCbG9jaykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NCbG9jay5kYXRhc2V0LmZvcj1fZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGRyZXNzQmxvY2suc3R5bGUuZGlzcGxheSA9IF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSA\/ICdibG9jaycgOiAnbm9uZSc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjaXR5JzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdID0gL15ccypcd3szLH1ccyouKiQvLnRlc3QoZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSA\/IGUuY3VycmVudFRhcmdldC52YWx1ZS50cmltKCkgOiBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbXBhbnknOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPSAvXlxzKi57NSx9JC8udGVzdChlLmN1cnJlbnRUYXJnZXQudmFsdWUpID8gZS5jdXJyZW50VGFyZ2V0LnZhbHVlLnRyaW0oKSA6IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RlbGVwaG9uZSc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSA9IC9eXHMqLns1LH0kL20udGVzdChlLmN1cnJlbnRUYXJnZXQudmFsdWUpID8gZS5jdXJyZW50VGFyZ2V0LnZhbHVlLnRyaW0oKSA6IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmVldCc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSA9IC9eXHMqLns1LH0kL20udGVzdChlLmN1cnJlbnRUYXJnZXQudmFsdWUpID8gZS5jdXJyZW50VGFyZ2V0LnZhbHVlLnRyaW0oKSA6IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ppcCc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSA9IC9eXHMqLns0LH0kL20udGVzdChlLmN1cnJlbnRUYXJnZXQudmFsdWUpID8gZS5jdXJyZW50VGFyZ2V0LnZhbHVlLnRyaW0oKSA6IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2FkZHJlc3MnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPSAvXlxzKi57NSx9JC9tLnRlc3QoZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSA\/IGUuY3VycmVudFRhcmdldC52YWx1ZS50cmltKCkgOiBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd0ZXJtcyc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJpdmFjeSc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaGF2ZV9hX2NvbXBhbnknOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPSBlLmN1cnJlbnRUYXJnZXQuY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAndmF0JzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdID0gL15ccypbYS16QS1aMC05XXs2LH1ccyokLy50ZXN0KGUuY3VycmVudFRhcmdldC52YWx1ZSkgPyBlLmN1cnJlbnRUYXJnZXQudmFsdWUudHJpbSgpIDogbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZW1haWwnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPSAvXlx3KyhbXC4tXT9cdyspKkBcdysoW1wuLV0\/XHcrKSooXC5cd3syLDN9KSskLy50ZXN0KGUuY3VycmVudFRhcmdldC52YWx1ZSkgPyBlLmN1cnJlbnRUYXJnZXQudmFsdWUgOiBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzdGF0ZSc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSAhPT0gJycgPyBlLmN1cnJlbnRUYXJnZXQudmFsdWUgOiBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwYXltZW50LXR5cGUnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPSBbJ2Z1bGwnLCdoYWxmJ10uaW5kZXhPZihlLmN1cnJlbnRUYXJnZXQudmFsdWUpICE9PSAtMSA\/IGUuY3VycmVudFRhcmdldC52YWx1ZSA6ICdmdWxsJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdID09PSAnaGFsZicpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2UgPSBOdW1iZXIoKGJhc2VfcHJpY2UqLjUpLnRvRml4ZWQoMCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmljZSA9IGJhc2VfcHJpY2U7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Byb21vLWNvZGUnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY2hlY2tzLnB1c2goZS5jdXJyZW50VGFyZ2V0Lm5hbWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihlLmN1cnJlbnRUYXJnZXQudmFsdWUudHJpbSgpID09PSAnJyl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYXBwbGllZENvdXBvbikgYXBwbGllZENvdXBvbi5pbm5lckhUTUwgPSAnJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jaGVja3MgPSBfY2hlY2tzLmZpbHRlcihmdW5jdGlvbihwcm9wKXsgcmV0dXJuIHByb3AgIT09IGUuY3VycmVudFRhcmdldC5uYW1lfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF9yZXN1bHQgPSBlLmN1cnJlbnRUYXJnZXQubmV4dEVsZW1lbnRTaWJsaW5nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbGlkYXRlUHJvbW9Db2RlKGUuY3VycmVudFRhcmdldC52YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmluZm8oJ1ZBTElEQVRJT04gUkVTVUxUJywgcmVzdWx0LCBfY2hlY2tzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVsncHJvbW8tY29kZSddID0gcmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdQcmljZSA9IGJhc2VfcHJpY2UgKyByZXN1bHQuY291cG9uLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFwcGxpZWRDb3Vwb24pIGFwcGxpZWRDb3Vwb24uaW5uZXJIVE1MID0gYDxzdHJpa2U+JHtiYXNlX3ByaWNlfSAke2N1cnJlbmN5fTwvc3RyaWtlPiAke25ld1ByaWNlfSAke2N1cnJlbmN5fWA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2NoZWNrRm9ybShfZGF0YSwgX2NoZWNrcywgYWN0aW9ucyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbigpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS53YXJuKCdWQUxJREFUSU9OIEVSUk9SIScsIF9jaGVja3MpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhWydwcm9tby1jb2RlJ10gPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFwcGxpZWRDb3Vwb24pIGFwcGxpZWRDb3Vwb24uaW5uZXJIVE1MID0gJyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2NoZWNrRm9ybShfZGF0YSwgX2NoZWNrcywgYWN0aW9ucyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZihlLmN1cnJlbnRUYXJnZXQubmFtZSA9PT0gJ3Byb21vLWNvZGUnIHx8IF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5jdXJyZW50VGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoJ2ludmFsaWQnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuY3VycmVudFRhcmdldC5jbGFzc0xpc3QuYWRkKCdpbnZhbGlkJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIF9jaGVja0Zvcm0oX2RhdGEsIF9jaGVja3MsIGFjdGlvbnMpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmluZm8oX2RhdGEpOw0KICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHBheUNhcmQuY2xhc3NMaXN0LnJlbW92ZSgnbG9hZGluZycpOw0KICAgICAgICAgICAgfSwNCg0KICAgICAgICAgICAgLy8gU0VUUyBVUCBUSEUgVFJBTlNBQ1RJT04gV0hFTiBBIFBBWU1FTlQgQlVUVE9OIElTIENMSUNLRUQgLi4uDQogICAgICAgICAgICBjcmVhdGVPcmRlcjogZnVuY3Rpb24oZGF0YSwgYWN0aW9ucykgew0KICAgICAgICAgICAgICAgIGlmKG91dHB1dCkgb3V0cHV0LmlubmVySFRNTCA9ICcnOw0KICAgICAgICAgICAgICAgIGlmKHBheUNhcmQpIHBheUNhcmQuY2xhc3NMaXN0LmFkZCgncHJvY2Vzc2luZycpOw0KICAgICAgICAgICAgICAgIGlmKF9jaGVja0Jhbkxpc3QoX2RhdGEpKSB7DQogICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5lcnJvcignQkFOTkVEIScpOw0KICAgICAgICAgICAgICAgICAgICBfbG9nQmFubmVkKF9kYXRhKTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gYWN0aW9ucy5vcmRlci5jcmVhdGUoew0KICAgICAgICAgICAgICAgICAgICBwdXJjaGFzZV91bml0czogWyBvcmRlckRhdGEgXSwNCiAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25fY29udGV4dDogew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJhbmRfbmFtZTogJ0dyYXBoaXN0dWRpbyAtIEl0YWx5JywNCiAgICAgICAgICAgICAgICAgICAgICAgIHNoaXBwaW5nX3ByZWZlcmVuY2U6ICdOT19TSElQUElORycNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfSwNCg0KICAgICAgICAgICAgLy8gRklOQUxJWkUgVEhFIFRSQU5TQUNUSU9OIC4uLg0KICAgICAgICAgICAgb25BcHByb3ZlOiBmdW5jdGlvbihkYXRhLCBhY3Rpb25zKSB7DQogICAgICAgICAgICAgICAgb3V0cHV0LmNsYXNzTGlzdC5yZW1vdmUoJ2Vycm9yJyk7DQogICAgICAgICAgICAgICAgaWYocGF5Q2FyZCkgcGF5Q2FyZC5jbGFzc0xpc3QuYWRkKCdwcm9jZXNzaW5nJyk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGFjdGlvbnMub3JkZXIuY2FwdHVyZSgpLnRoZW4oZnVuY3Rpb24ob3JkZXJEYXRhKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDQVBUVVJFIFBBWU1FTlQgUkVTVUxUJywgb3JkZXJEYXRhLCBKU09OLnN0cmluZ2lmeShvcmRlckRhdGEsIG51bGwsIDIpKTsNCiAgICAgICAgICAgICAgICAgICAgbGV0IHRyYW5zYWN0aW9uID0gb3JkZXJEYXRhLnB1cmNoYXNlX3VuaXRzWzBdLnBheW1lbnRzLmNhcHR1cmVzWzBdOw0KICAgICAgICAgICAgICAgICAgICBvdXRwdXQuY2xhc3NMaXN0LmFkZCgnc3VjY2VzcycpOw0KDQoNCiAgICAgICAgICAgICAgICAgICAgX3NlbmREYXRhKF9kYXRhLCB0cmFuc2FjdGlvbi5pZCkNCiAgICAgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignREFUQSBQUk9DRVNTRUQhJyk7DQogICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zLnJlZGlyZWN0KHRoYW5rc1VSTCk7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICAgICAgICAgIF91c2VyRmVlZGJhY2soJ3N1Y2Nlc3MnLCBzdWNjZXNzTWVzc2FnZSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9LA0KDQoNCiAgICAgICAgICAgIC8vIEhBTkRMRSBQQVlNRU5UIENBTkNFTCBFVkVOVCAuLi4uDQogICAgICAgICAgICBvbkNhbmNlbDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGlmKHBheUNhcmQpIHBheUNhcmQuY2xhc3NMaXN0LnJlbW92ZSgncHJvY2Vzc2luZycpOw0KICAgICAgICAgICAgICAgIF91c2VyRmVlZGJhY2soJ3dhcm4nLCBjYW5jZWxNZXNzYWdlKTsNCiAgICAgICAgICAgICAgICBpZihvdXRwdXQpICBvdXRwdXQuY2xhc3NMaXN0LnJlbW92ZSgnZXJyb3InKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ09QRVJBVElPTiBDQU5DRUxMRUQgQlkgVVNFUicpDQogICAgICAgICAgICAgICAgLy8gd2luZG93LmxvY2F0aW9uLmhyZWYgPSAiL3lvdXItZXJyb3ItcGFnZS1oZXJlIjsNCiAgICAgICAgICAgIH0sDQoNCiAgICAgICAgICAgIC8vIFBST0NFU1MgUEFZTUVOVCBFUlJPUlMuLi4uDQogICAgICAgICAgICBvbkVycm9yOiBmdW5jdGlvbiAoZXJyKSB7DQogICAgICAgICAgICAgICAgaWYocGF5Q2FyZCkgcGF5Q2FyZC5jbGFzc0xpc3QucmVtb3ZlKCdwcm9jZXNzaW5nJyk7DQogICAgICAgICAgICAgICAgX3VzZXJGZWVkYmFjaygnZXJyb3InLCBlcnJvck1lc3NhZ2UpOw0KICAgICAgICAgICAgICAgIGlmKG91dHB1dCl7DQogICAgICAgICAgICAgICAgICAgIG91dHB1dC5jbGFzc0xpc3QuYWRkKCdlcnJvcicpOw0KICAgICAgICAgICAgICAgICAgICBvdXRwdXQuaW5uZXJIVE1MID0gZXJyb3JNZXNzYWdlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFUlJPUiBEVVJJTkcgUEFZTUVOVCBGTE9XJywgZXJyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSkucmVuZGVyKHBheXBhbEJ1dHRvbkNvbnRhaW5lcik7DQogICAgfSk7DQoNCmxldCBwYXJhbXMgPSAobmV3IFVSTChkb2N1bWVudC5sb2NhdGlvbikpLnNlYXJjaFBhcmFtczsNCmxldCBzaG93U3BsaXRQYXltZW50ID0gTnVtYmVyKHBhcmFtcy5nZXQoInNwIikpOw0KaWYoc2hvd1NwbGl0UGF5bWVudCA9PT0gMSnCoHsNCiAgIGxldCBzcFJvdyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXR5cGU9InNwbGl0LXBheW1lbnQiXScpOw0KICAgaWYoc3BSb3cpIHNwUm93LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTpibG9jayAhaW1wb3J0YW50Jyk7IA0KfQ0KDQo8L3NjcmlwdD4=[\/vc_raw_html][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row bg_color=\u00bb#eae6df\u00bb bottom_padding=\u00bb20&#8243;][vc_column width=\u00bb1\/1&#8243;][vc_row_inner][vc_column_inner][vc_column_text] GRAPHISTUDIO WORKSHOP 2023 NORMAL IS BORING 27 | 28 | 29 November, 2023 [\/vc_column_text][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row top_padding=\u00bb0&#8243; bottom_padding=\u00bb60&#8243;][vc_column width=\u00bb1\/1&#8243;][vc_row_inner][vc_column_inner][vc_column_text el_id=\u00bbif-sold-out\u00bb] Sold Out! [\/vc_column_text][vc_raw_html]ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vdG9hc3RpZnktanMvc3JjL3RvYXN0aWZ5Lm1pbi5jc3MiPg0KPGRpdiBjbGFzcz0iY29udGFpbmVyIGRpc2FibGVkIiBkYXRhLXR5cGU9InBheS1mb3JtIiBkYXRhLWF2YWlsYWJsZT0iW2F2YWlsYWJsZV9zZWF0c19mb3JfZ3Nfd29ya3Nob3AgZXZlbnRfaWQ9NyBhbHJlYWR5X3NvbGQ9MCBhdmFpbGFibGVfc2VhdHM9MjBdWy9hdmFpbGFibGVfc2VhdHNfZm9yX2dzX3dvcmtzaG9wXSI+DQogICAgICAgIDxoNCBjbGFzcz0idGl0bGVfcHJpbmNpcGFsIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAzMnB4OyI+UkVTRVJWRSBZT1VSIFNFQVQ8L2JyPldPUktTSE9QIFRJQ0tFVCDCoyA5OTk8L2g0Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZW50ZXJlZCIgZGF0YS10eXBlPSJvdXRwdXQiPjwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiPg0KICAgICAgICAgICAgICAgIDxsYWJlbD5GaXJzdCBOYW1lIDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJleC4gTWFyaW8iIG5hbWU9Im5hbWUiIHJlcXVpcmVkPSIiIGF1dG9jb21wbGV0ZT0ib2ZmIj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICA8bGFiZWw+TGFzdCBOYW1lIDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJleC4gUm9zc2kiIG5hbWU9InN1cm5hbWUiIHJlcXVpcmVkPSIiIGF1dG9jb21wbGV0ZT0ib2ZmIj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICA8bGFiZWw+RW1haWwgPHN1cD4qPC9zdXA+PC9sYWJlbD4NCiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJleC4geW91ckBlbWFpbC5pdCIgbmFtZT0iZW1haWwiIHJlcXVpcmVkPSIiIGF1dG9jb21wbGV0ZT0ib2ZmIj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiPg0KICAgICAgICAgICAgICAgIDxsYWJlbD5UZWxlcGhvbmUgPHN1cD4qPC9zdXA+PC9sYWJlbD4NCiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9ImV4LiArMzkgMzQwIDEyMzQ1NiIgbmFtZT0idGVsZXBob25lIiByZXF1aXJlZD0iIiBhdXRvY29tcGxldGU9Im9mZiI+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cyI+DQogICAgICAgICAgICAgICAgPGxhYmVsPkNvdW50cnkgPHN1cD4qPC9zdXA+PC9sYWJlbD4NCiAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9ImNvdW50cnlfY29kZSIgcmVxdWlyZWQ9IiI+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiI+U2VsZWN0Li4uLjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8b3B0Z3JvdXAgbGFiZWw9IiI+PG9wdGlvbiB2YWx1ZT0iQVUiPkF1c3RyYWxpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRFIj5HZXJtYW55PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRVMiPlNwYWluPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRlIiPkZyYW5jZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdCIj5Vbml0ZWQgS2luZ2RvbTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IklUIj5JdGFsaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJVUyI+VW5pdGVkIFN0YXRlczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNBIj5DYW5hZGE8L29wdGlvbj48L29wdGdyb3VwPjxvcHRncm91cCBsYWJlbD0iIj48b3B0aW9uIHZhbHVlPSJBRiI+QWZnaGFuaXN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBTCI+QWxiYW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRaIj5BbGdlcmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQVMiPkFtZXJpY2FuIFNhbW9hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQUQiPkFuZG9ycmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBTyI+QW5nb2xhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQUkiPkFuZ3VpbGxhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQVEiPkFudGFyY3RpY2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBRyI+QW50aWd1YSBhbmQgQmFyYnVkYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkFSIj5BcmdlbnRpbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBTSI+QXJtZW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkFXIj5BcnViYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkFVIj5BdXN0cmFsaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBVCI+QXVzdHJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkFaIj5BemVyYmFpamFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQlMiPkJhaGFtYXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCSCI+QmFocmFpbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJEIj5CYW5nbGFkZXNoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQkIiPkJhcmJhZG9zPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQlkiPkJlbGFydXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCRSI+QmVsZ2l1bTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJaIj5CZWxpemU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCSiI+QmVuaW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCTSI+QmVybXVkYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJUIj5CaHV0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCTyI+Qm9saXZpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJBIj5Cb3NuaWEgYW5kIEhlcnplZ292aW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQlciPkJvdHN3YW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQlYiPkJvdXZldCBJc2xhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCUiI+QnJhemlsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSU8iPkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJOIj5CcnVuZWkgRGFydXNzYWxhbTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJHIj5CdWxnYXJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJGIj5CdXJraW5hIEZhc288L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCSSI+QnVydW5kaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IktIIj5DYW1ib2RpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNNIj5DYW1lcm9vbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNWIj5DYXBlIFZlcmRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iS1kiPkNheW1hbiBJc2xhbmRzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ0YiPkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlREIj5DaGFkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ0wiPkNoaWxlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ04iPkNoaW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ1giPkNocmlzdG1hcyBJc2xhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJDQyI+Q29jb3MgKEtlZWxpbmcpIElzbGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJDTyI+Q29sb21iaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJLTSI+Q29tb3Jvczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNHIj5Db25nbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNEIj5Db25nbywgdGhlIERlbW9jcmF0aWMgUmVwdWJsaWMgb2YgdGhlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ0siPkNvb2sgSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNSIj5Db3N0YSBSaWNhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ0kiPkNvdGUgRCdJdm9pcmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJIUiI+Q3JvYXRpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNVIj5DdWJhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ1kiPkN5cHJ1czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNaIj5DemVjaCBSZXB1YmxpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRLIj5EZW5tYXJrPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iREoiPkRqaWJvdXRpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRE0iPkRvbWluaWNhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRE8iPkRvbWluaWNhbiBSZXB1YmxpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkVDIj5FY3VhZG9yPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRUciPkVneXB0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU1YiPkVsIFNhbHZhZG9yPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR1EiPkVxdWF0b3JpYWwgR3VpbmVhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRVIiPkVyaXRyZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJFRSI+RXN0b25pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkVUIj5FdGhpb3BpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZLIj5GYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJGTyI+RmFyb2UgSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZKIj5GaWppPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRkkiPkZpbmxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJHRiI+RnJlbmNoIEd1aWFuYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBGIj5GcmVuY2ggUG9seW5lc2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVEYiPkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdBIj5HYWJvbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdNIj5HYW1iaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJHRSI+R2VvcmdpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRFIj5HZXJtYW55PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR0giPkdoYW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR0kiPkdpYnJhbHRhcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdSIj5HcmVlY2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJHTCI+R3JlZW5sYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR0QiPkdyZW5hZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJHUCI+R3VhZGVsb3VwZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdVIj5HdWFtPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR1QiPkd1YXRlbWFsYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdOIj5HdWluZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJHVyI+R3VpbmVhLUJpc3NhdTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdZIj5HdXlhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJIVCI+SGFpdGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJITSI+SGVhcmQgSXNsYW5kIGFuZCBNY2RvbmFsZCBJc2xhbmRzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVkEiPkhvbHkgU2VlIChWYXRpY2FuIENpdHkgU3RhdGUpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSE4iPkhvbmR1cmFzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSEsiPkhvbmcgS29uZzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkhVIj5IdW5nYXJ5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSVMiPkljZWxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJJTiI+SW5kaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJJRCI+SW5kb25lc2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSVIiPklyYW4sIElzbGFtaWMgUmVwdWJsaWMgb2Y8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJJUSI+SXJhcTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IklFIj5JcmVsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSUwiPklzcmFlbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkpNIj5KYW1haWNhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSlAiPkphcGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSk8iPkpvcmRhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IktaIj5LYXpha2hzdGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iS0UiPktlbnlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iS0kiPktpcmliYXRpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iS1AiPktvcmVhLCBEZW1vY3JhdGljIFBlb3BsZSdzIFJlcHVibGljIG9mPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iS1IiPktvcmVhLCBSZXB1YmxpYyBvZjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IktXIj5LdXdhaXQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJLRyI+S3lyZ3l6c3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxBIj5MYW8gUGVvcGxlJ3MgRGVtb2NyYXRpYyBSZXB1YmxpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxWIj5MYXR2aWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJMQiI+TGViYW5vbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxTIj5MZXNvdGhvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTFIiPkxpYmVyaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJMWSI+TGlieWFuIEFyYWIgSmFtYWhpcml5YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxJIj5MaWVjaHRlbnN0ZWluPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTFQiPkxpdGh1YW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxVIj5MdXhlbWJvdXJnPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTU8iPk1hY2FvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUsiPk1hY2Vkb25pYSwgdGhlIEZvcm1lciBZdWdvc2xhdiBSZXB1YmxpYyBvZjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1HIj5NYWRhZ2FzY2FyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVciPk1hbGF3aTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1ZIj5NYWxheXNpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1WIj5NYWxkaXZlczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1MIj5NYWxpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVQiPk1hbHRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUgiPk1hcnNoYWxsIElzbGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNUSI+TWFydGluaXF1ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1SIj5NYXVyaXRhbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVUiPk1hdXJpdGl1czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IllUIj5NYXlvdHRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVgiPk1leGljbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZNIj5NaWNyb25lc2lhLCBGZWRlcmF0ZWQgU3RhdGVzIG9mPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUQiPk1vbGRvdmEsIFJlcHVibGljIG9mPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUMiPk1vbmFjbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1OIj5Nb25nb2xpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1TIj5Nb250c2VycmF0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUEiPk1vcm9jY288L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNWiI+TW96YW1iaXF1ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1NIj5NeWFubWFyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTkEiPk5hbWliaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOUiI+TmF1cnU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOUCI+TmVwYWw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOTCI+TmV0aGVybGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBTiI+TmV0aGVybGFuZHMgQW50aWxsZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOQyI+TmV3IENhbGVkb25pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5aIj5OZXcgWmVhbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5JIj5OaWNhcmFndWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJORSI+TmlnZXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJORyI+TmlnZXJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5VIj5OaXVlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTkYiPk5vcmZvbGsgSXNsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVAiPk5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5PIj5Ob3J3YXk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJPTSI+T21hbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBLIj5QYWtpc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBXIj5QYWxhdTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBTIj5QYWxlc3RpbmlhbiBUZXJyaXRvcnksIE9jY3VwaWVkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUEEiPlBhbmFtYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBHIj5QYXB1YSBOZXcgR3VpbmVhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUFkiPlBhcmFndWF5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUEUiPlBlcnU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQSCI+UGhpbGlwcGluZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQTiI+UGl0Y2Fpcm48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQTCI+UG9sYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUFQiPlBvcnR1Z2FsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUFIiPlB1ZXJ0byBSaWNvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUUEiPlFhdGFyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUkUiPlJldW5pb248L29wdGlvbj48b3B0aW9uIHZhbHVlPSJSTyI+Um9tYW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlJVIj5SdXNzaWFuIEZlZGVyYXRpb248L29wdGlvbj48b3B0aW9uIHZhbHVlPSJSVyI+UndhbmRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU0giPlNhaW50IEhlbGVuYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IktOIj5TYWludCBLaXR0cyBhbmQgTmV2aXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJMQyI+U2FpbnQgTHVjaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQTSI+U2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlZDIj5TYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IldTIj5TYW1vYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNNIj5TYW4gTWFyaW5vPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU1QiPlNhbyBUb21lIGFuZCBQcmluY2lwZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNBIj5TYXVkaSBBcmFiaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTTiI+U2VuZWdhbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNTIj5TZXJiaWEgYW5kIE1vbnRlbmVncm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTQyI+U2V5Y2hlbGxlczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNMIj5TaWVycmEgTGVvbmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTRyI+U2luZ2Fwb3JlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU0siPlNsb3Zha2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU0kiPlNsb3ZlbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU0IiPlNvbG9tb24gSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNPIj5Tb21hbGlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iWkEiPlNvdXRoIEFmcmljYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdTIj5Tb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkVTIj5TcGFpbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxLIj5TcmkgTGFua2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTRCI+U3VkYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTUiI+U3VyaW5hbWU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTSiI+U3ZhbGJhcmQgYW5kIEphbiBNYXllbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNaIj5Td2F6aWxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTRSI+U3dlZGVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ0giPlN3aXR6ZXJsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU1kiPlN5cmlhbiBBcmFiIFJlcHVibGljPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVFciPlRhaXdhbiwgUHJvdmluY2Ugb2YgQ2hpbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJUSiI+VGFqaWtpc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlRaIj5UYW56YW5pYSwgVW5pdGVkIFJlcHVibGljIG9mPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVEgiPlRoYWlsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVEwiPlRpbW9yLUxlc3RlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVEciPlRvZ288L29wdGlvbj48b3B0aW9uIHZhbHVlPSJUSyI+VG9rZWxhdTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlRPIj5Ub25nYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlRUIj5UcmluaWRhZCBhbmQgVG9iYWdvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVE4iPlR1bmlzaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJUUiI+VHVya2V5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVE0iPlR1cmttZW5pc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlRDIj5UdXJrcyBhbmQgQ2FpY29zIElzbGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJUViI+VHV2YWx1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVUciPlVnYW5kYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlVBIj5Va3JhaW5lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQUUiPlVuaXRlZCBBcmFiIEVtaXJhdGVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVU0iPlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlVZIj5VcnVndWF5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVVoiPlV6YmVraXN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJWVSI+VmFudWF0dTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlZFIj5WZW5lenVlbGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJWTiI+VmlldCBOYW08L29wdGlvbj48b3B0aW9uIHZhbHVlPSJWRyI+VmlyZ2luIElzbGFuZHMsIEJyaXRpc2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJWSSI+VmlyZ2luIElzbGFuZHMsIFUucy48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJXRiI+V2FsbGlzIGFuZCBGdXR1bmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJFSCI+V2VzdGVybiBTYWhhcmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJZRSI+WWVtZW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJaTSI+WmFtYmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iWlciPlppbWJhYndlPC9vcHRpb24+PC9vcHRncm91cD4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBkYXRhLXR5cGU9InN0YXRlIiBjbGFzcz0iY29sLXhzIGNvbC14cy0yIHN0YXRlcy1jb2wiPg0KICAgICAgICAgICAgICAgIDxsYWJlbD5TdGF0ZSA8c3VwPio8L3N1cD48L2xhYmVsPg0KICAgICAgICAgICAgICAgIDxzZWxlY3QgZGF0YS1mb3I9InVzYSIgbmFtZT0ic3RhdGUiIGRpc2FibGVkPSIiPg0KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPlNlbGVjdC4uLi48L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQUwiPkFsYWJhbWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBSyI+QWxhc2thPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQVoiPkFyaXpvbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBUiI+QXJrYW5zYXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJDQSI+Q2FsaWZvcm5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNPIj5Db2xvcmFkbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNUIj5Db25uZWN0aWN1dDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRFIj5EZWxhd2FyZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRDIj5EaXN0cmljdCBPZiBDb2x1bWJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZMIj5GbG9yaWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR0EiPkdlb3JnaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJISSI+SGF3YWlpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSUQiPklkYWhvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSUwiPklsbGlub2lzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSU4iPkluZGlhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJJQSI+SW93YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IktTIj5LYW5zYXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJLWSI+S2VudHVja3k8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJMQSI+TG91aXNpYW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUUiPk1haW5lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUQiPk1hcnlsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUEiPk1hc3NhY2h1c2V0dHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNSSI+TWljaGlnYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNTiI+TWlubmVzb3RhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVMiPk1pc3Npc3NpcHBpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTU8iPk1pc3NvdXJpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTVQiPk1vbnRhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJORSI+TmVicmFza2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOViI+TmV2YWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTkgiPk5ldyBIYW1wc2hpcmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOSiI+TmV3IEplcnNleTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5NIj5OZXcgTWV4aWNvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTlkiPk5ldyBZb3JrPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTkMiPk5vcnRoIENhcm9saW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTkQiPk5vcnRoIERha290YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik9IIj5PaGlvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iT0siPk9rbGFob21hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iT1IiPk9yZWdvbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBBIj5QZW5uc3lsdmFuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJSSSI+UmhvZGUgSXNsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU0MiPlNvdXRoIENhcm9saW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU0QiPlNvdXRoIERha290YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlROIj5UZW5uZXNzZWU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJUWCI+VGV4YXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJVVCI+VXRhaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlZUIj5WZXJtb250PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVkEiPlZpcmdpbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iV0EiPldhc2hpbmd0b248L29wdGlvbj48b3B0aW9uIHZhbHVlPSJXViI+V2VzdCBWaXJnaW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IldJIj5XaXNjb25zaW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJXWSI+V3lvbWluZzwvb3B0aW9uPiAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgICAgICA8c2VsZWN0IGRhdGEtZm9yPSJjYW5hZGEiIG5hbWU9InN0YXRlIiBkaXNhYmxlZD0iIj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5TZWxlY3QuLi4uPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJDIj5Ccml0aXNoIENvbHVtYmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iT04iPk9udGFyaW88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOTCI+TmV3Zm91bmRsYW5kIGFuZCBMYWJyYWRvcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5TIj5Ob3ZhIFNjb3RpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBFIj5QcmluY2UgRWR3YXJkIElzbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5CIj5OZXcgQnJ1bnN3aWNrPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUUMiPlF1ZWJlYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1CIj5NYW5pdG9iYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNLIj5TYXNrYXRjaGV3YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBQiI+QWxiZXJ0YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5UIj5Ob3J0aHdlc3QgVGVycml0b3JpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOVSI+TnVuYXZ1dDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IllUIj5ZdWtvbiBUZXJyaXRvcnk8L29wdGlvbj4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93IiBkYXRhLXR5cGU9ImFkZHJlc3MtYmxvY2siPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICA8bGFiZWw+Q2l0eSA8c3VwPio8L3N1cD48L2xhYmVsPg0KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iZXguIEFyYmEiIG5hbWU9ImNpdHkiIHJlcXVpcmVkPSIiIGF1dG9jb21wbGV0ZT0ib2ZmIj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMgY29sLXhzLTIiPg0KICAgICAgICAgICAgICAgIDxsYWJlbD5BZGRyZXNzIDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJleC4gTW9udGUgUmF1dCwgMSIgbmFtZT0ic3RyZWV0IiByZXF1aXJlZD0iIiBhdXRvY29tcGxldGU9Im9mZiI+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICA8bGFiZWw+WmlwIDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG1pbj0iNSIgcGxhY2Vob2xkZXI9ImV4LiAzMzA4MCIgbmFtZT0iemlwIiByZXF1aXJlZD0iIiBhdXRvY29tcGxldGU9Im9mZiI+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgDQogICAgICAgIDxkaXYgZGF0YS10eXBlPSJ2YXQtYmxvY2siIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJhcHBsZS1zd2l0Y2giIGlkPSJoYXZlX2FfY29tcGFueSIgbmFtZT0iaGF2ZV9hX2NvbXBhbnkiIHZhbHVlPSIxIiBhdXRvY29tcGxldGU9Im9mZiI+DQogICAgICAgICAgICA8bGFiZWwgZm9yPSJoYXZlX2FfY29tcGFueSI+SSBoYXZlIGEgdmFsaWQgVkFUIE51bWJlcjwvbGFiZWw+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyIgZGF0YS10eXBlPSJmb3ItY29tcGFueSI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkNvbXBhbnkgTmFtZSA8c3VwPio8L3N1cD48L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9ImV4LiBHcmFwaGlzdHVkaW8iIG5hbWU9ImNvbXBhbnkiIGF1dG9jb21wbGV0ZT0ib2ZmIj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VmF0IDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iZXguIDAxMjM0NTY4NyIgbmFtZT0idmF0IiBhdXRvY29tcGxldGU9Im9mZiI+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93IiBkYXRhLXR5cGU9ImZvci1jb21wYW55Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+Q29tcGFueSBBZGRyZXNzIDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBwbGFjZWhvbGRlcj0iWW91ciBjb21wYW55IGZ1bGwgYWRkcmVzcy4uLiIgbmFtZT0iYWRkcmVzcyIgcm93cz0iNCIgY29scz0iNTAiIGF1dG9jb21wbGV0ZT0ib2ZmIj48L3RleHRhcmVhPg0KICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5Pk5lZWQgaGVscCB3aXRoIHRoaXMgZmllbGQ\/PC9zdW1tYXJ5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkEgZnVsbCBhZGRyZXNzIGV4YW1wbGU6PC9zdHJvbmc+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPjxicj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldCBuYW1lLCBudW1iZXI8YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHppcCAtIGNpdHkgKHN0YXRlKTxicj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VtPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGRhdGEtc3VidHlwZT0iZGlzY2xhaW1lciI+DQogICAgICAgICAgICAgICAgICAgIElmIHRoZSBWQVQgbnVtYmVyIHByb3ZpZGVkIGlzIHZhbGlkLCBHcmFwaGlzdHVkaW8gd2lsbCByZWZ1bmQgeW91IHRoZSBmdWxsIFZBVCBhbW91bnQhDQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93IiBkYXRhLXR5cGU9InNwbGl0LXBheW1lbnQiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIj4NCiAgICAgICAgICAgICAgICA8bGFiZWw+UGF5bWVudCBPcHRpb24gPHN1cD4qPC9zdXA+PC9sYWJlbD4NCiAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9InBheW1lbnQtdHlwZSIgcmVxdWlyZWQ+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImZ1bGwiIGNoZWNrZWQ+SSB3YW50IHRvIHBheSB0aGUgZnVsbCBhbW91bnQgaW1tZWRpYXRlbHk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iaGFsZiI+SSBwcmVmZXIgdG8gcGF5IGhhbGYgbm93IGFuZCB0aGUgcmVtYWluaW5nIGhhbGYgMiB3ZWVrcyBiZWZvcmUgdGhlIGV2ZW50PC9vcHRpb24+DQogICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgPHA+DQogICAgICAgICAgICAgICAgICAgIFlvdSBjYW4gY2hvb3NlIHRvIHBheSB0aGUgd2hvbGUgYW1vdW50IGltbWVkaWF0ZWx5IG9yIHJlc2VydmUgeW91ciBzZWF0IGJ5IHBheWluZyBoYWxmIGFtb3VudCBub3cNCiAgICAgICAgICAgICAgICAgICAgYW5kIHRoZSByZW1haW5pbmcgaGFsZiAyIHdlZWtzIGJlZm9yZSB0aGUgZXZlbnQhDQogICAgICAgICAgICAgICAgPC9wPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiIGRhdGEtdHlwZT0iY291cG9uLWNvZGUiPg0KICAgICAgICAgICAgICAgIDxwPkRvIHlvdSBoYXZlIGEgRGlzY291bnQgQ29kZT8gQXBwbHkgaGVyZSE8L3A+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InNlYXJjaCIgbmFtZT0icHJvbW8tY29kZSIgYXV0b2NvbXBsZXRlPSJvZmYiPg0KICAgICAgICAgICAgICAgIDxwIGRhdGEtdHlwZT0iYXBwbGllZC1jb3Vwb24iPjwvcD4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzIiBkYXRhLXR5cGU9InByaXZhY3kiPg0KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImFwcGxlLXN3aXRjaCIgaWQ9InByaXZhY3kiIG5hbWU9InByaXZhY3kiIHZhbHVlPSIxIiByZXF1aXJlZD0iIiBhdXRvY29tcGxldGU9Im9mZiI+DQogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0icHJpdmFjeSI+Q29uc2VudCB0byB0aGUgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIDxzdXA+Kjwvc3VwPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgPHA+DQogICAgICAgICAgICAgICAgICAgIEkgaGF2ZSByZWFkIHRoZSA8YSBocmVmPSJodHRwczovL3d3dy5ncmFwaGlzdHVkaW8uY29tL2VzL3ByaXZhY3kvIiB0YXJnZXQ9Il9ibGFuayI+cHJpdmFjeSBwb2xpY3k8L2E+IGFuZCBJIGF1dGhvcmlzZSB0aGUgdHJlYXRtZW50IG9mIG15IHBlcnNvbmFsIGRhdGEgaGVyZSBwcm92aWRlZC4NCiAgICAgICAgICAgICAgICA8L3A+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiIGRhdGEtdHlwZT0idGVybXMiIGRhdGEtZm9yPSJhbGwiPg0KICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICAgIDxoMz5UZXJtcyAmIENvbmRpdGlvbnM8L2gzPg0KICAgICAgICAgICAgICAgICAgICA8dWw+DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGwgdGlja2V0cyBmb3IgdGhlIHdvcmtzaG9wIHNoYWxsIGJlIG5vbi1yZWZ1bmRhYmxlIOKAkyBpZiB5b3UgaGF2ZSBhIHN1YnN0aXR1dGUgdG8gYXR0ZW5kIHRoZSB3b3Jrc2hvcCwgcGxlYXNlIGNvbnRhY3QgeW91ciBHcmFwaGlzdHVkaW8gc2FsZXMgcmVwcmVzZW50YXRpdmUgd2l0aCB0aGUgZGV0YWlscy4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5DYW5jZWxsYXRpb24gUG9saWN5Ojwvc3Ryb25nPjxicj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGUgd29ya3Nob3AgaXMgY2FuY2VsbGVkIGZvciByZWFzb25zIG91ciBvZiBvdXIgY29udHJvbCB5b3Ugd2lsbCBiZSBwcm92aWRlZCB3aXRoIGEgZnVsbCByZWZ1bmQuDQogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+UHJvbW90aW9uYWw6PC9zdHJvbmc+PGJyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlvdSBhZ3JlZSB0aGF0IHdlIG1heSBpbmNsdWRlIHlvdXIgZGV0YWlscyBpbiBhbnkgcHJvbW90aW9uYWwgbWF0ZXJpYWxzIHJlbGF0aW5nIHRvIHRoZSB3b3Jrc2hvcCBhbmQgb3IgbWF0ZXJpYWxzIHVzZWQgYXQgdGhlIHdvcmtzaG9wLg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlBob3RvdG9ncmFwaHkgJiBmaWxtaW5nIC8gbW9kZWwgcmVsZWFzZTo8L3N0cm9uZz48YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2UgbWF5IHBob3RvZ3JhcGggb3IgZmlsbSB0aGUgd29ya3Nob3AgYW5kIHJlc2VydmUgdGhlIHJpZ2h0IHRvIGRvIHNvIGZvciBwdXJwb3NlcyBvZiBwcm9tb3RpbmcgZnV0dXJlIHdvcmtzaG9wcyBvciBvdGhlcndpc2UuICBZb3UgY29uc2VudCB0byB1cyBwaG90b2dyYXBoaW5nIG9yIGZpbG1pbmcgeW91IGFuZCBhbnkgYXR0ZW5kZWUgYXR0ZW5kaW5nIHRoZSB3b3Jrc2hvcC4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5UcmF2ZWwgJiBhY2NvbW1vZGF0aW9uczo8L3N0cm9uZz48YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBtYWtpbmcgYW5kIHBheWluZyB5b3VyIGFpcmZhcmUgYW5kIGhvdGVsIGFjY29tbW9kYXRpb25zIGZvciB0aGUgd29ya3Nob3AuIElmIHlvdSBhcnJpdmUgYXQgYSBkZXNpZ25lZCB0aW1lIG91dHNpZGUgb2YgdGhlIHByZS1hcnJhbmdlZCBwaWNrIHVwIHRpbWVzLCB5b3Ugd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgeW91ciBvd24gdHJhbnNwb3J0YXRpb24uDQogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+RmFtaWx5IG1lbWJlcnM6PC9zdHJvbmc+PGJyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSB3b3Jrc2hvcCwgdHJhbnNwb3J0YXRpb24sIGFuZCBtZWFsIHNlcnZpY2VzIGFyZSBwcm92aWRlZCBmb3IgcGFpZCBhdHRlbmRlZXMgb25seSwgdGhpcyBpcyBub3QgZXh0ZW5kZWQgdG8gYW5kIGZvciBhdHRlbmRlZSBmYW1pbHkgbWVtYmVycy4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5UcmFuc2xhdGlvbjo8L3N0cm9uZz48YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm8gdHJhbnNsYXRpb24gd2lsbCBiZSBwcm92aWRlZCwgdGhlIHdvcmtzaG9wIHdpbGwgYmUgaW4gRW5nbGlzaC4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5UcmF2ZWwgSW5zdXJhbmNlOjwvc3Ryb25nPjxicj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFYWNoIHBhcnRpY2lwYW50IGNvbmZpcm1zIHRoZXkgdW5kZXJzdGFuZCBhbmQgYWdyZWUgdG8gcHVyY2hhc2UgdGhlIHJlcXVpcmVkIGluc3VyYW5jZSB0aGF0IGlzIHZhbGlkIGludGVybmF0aW9uYWxseS4gU3VnZ2VzdGVkIGluc3VyYW5jZSBpbmNsdWRlczogQWNjaWRlbnQgJiBTaWNrbmVzcyBNZWRpY2FsIEV4cGVuc2UgQ292ZXJhZ2UuIFN0b2xlbiwgbG9zdCBvciBkYW1hZ2VkIHByb3BlcnR5IGNvdmVyYWdlLiBUcmlwIGNhbmNlbGxhdGlvbiBjb3ZlcmFnZS4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5Bc3N1bXB0aW9uIG9mIFJpc2s6PC9zdHJvbmc+PGJyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsbCBhdHRlbmRlZXMgdW5kZXJzdGFuZCBhbmQgYXJlIGluIGZ1bGwgYXdhcmVuZXNzIGFuZCBhc3N1bWUgZnVsbCBhbmQgY29tcGxldGUgcmVzcG9uc2liaWxpdHkgZm9yIGFsbCByaXNrcyBpbmhlcmVudCBpbiB0cmF2ZWwgYW5kIGF0dGVuZGVlIHRoZSB3b3Jrc2hvcCB3b3VsZCBjb3VsZCBpbmNsdWRlIGluanVyeSwgY292aWQsIHByb3BlcnR5IGRhbWFnZSwgYW5kIG9yIGFueSBvdGhlciBraW5kIG9mIGxpYWJpbGl0eS4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5UcmFuc3BvcnRhdGlvbjo8L3N0cm9uZz48YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIGF0dGVuZGVlcyBuZWVkIHRyYW5zcG9ydGF0aW9uIG91dHNpZGUgb2YgdGhlIGFncmVlZCB0aW1pbmdzIHRoZXkgYXJlIHJlc3BvbnNpYmxlIGZvciBhcnJhbmdpbmcgYW5kIHBheWluZyBmb3IgdGhpcy4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5Gb29kIHJlc3RyaWN0aW9uczo8L3N0cm9uZz48YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0ZW5kZWVzIHdpdGggZm9vZCByZXN0cmljdGlvbnMsIHdlIHdpbGwgaGF2ZSBnbHV0ZW4gZnJlZSBhbmQgdmVnYW4vdmVnZXRhcmlhbiBvcHRpb25zICBmb3IgbHVuY2ggYW5kIGRpbm5lcg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ib25seS1mb3ItZXUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+VkFUIElORk86PC9zdHJvbmc+PGJyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0YWxpYW4gVkFUIHdpbGwgYmUgY2hhcmdlZCBvbiByZXNlcnZhdGlvbnMgcGxhY2VkIGJ5IGNsaWVudHMgZnJvbSBFdXJvcGVhbiBVbmlvbi4gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJub3QtZm9yLUlUIj4sIGJ1dCBpZiB0aGUgVkFUIG51bWJlciBwcm92aWRlZCBpcyB2YWxpZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpc3R1ZGlvIHdpbGwgbGF0ZXIgcmVmdW5kIHlvdSB0aGUgZnVsbCBWQVQgYW1vdW50Lg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImFwcGxlLXN3aXRjaCIgaWQ9InRlcm1zIiBuYW1lPSJ0ZXJtcyIgdmFsdWU9IjEiIHJlcXVpcmVkIGF1dG9jb21wbGV0ZT0ib2ZmIj4NCiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJ0ZXJtcyI+SSBhY2NlcHQgdGhlIFRlcm1zICYgQ29uZGl0aW9ucyA8c3VwPio8L3N1cD48L2xhYmVsPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXIiPg0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InBheXBhbC1idXR0b24tY29udGFpbmVyIj48L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCg0KDQoNCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS90b2FzdGlmeS1qcyI+PC9zY3JpcHQ+DQoNCjwhLS1bIFBST0RVQ1RJT04gXSAtLT4NCjxzY3JpcHQgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL3Nkay9qcz9jbGllbnQtaWQ9QVRtZFpablpfVk5fcnNENGplRXJneE9tOWFPNTB5ZFZmdFNkdlhfQ3VpdlMzakRsU01YTktWMktlaWdIbGo5aDV6RTl6TTN3UVFONkNuQzUmY3VycmVuY3k9R0JQJmludGVudD1jYXB0dXJlJmxvY2FsZT1lbl9VUyI+PC9zY3JpcHQ+DQo8IS0tWyBFTkQgUFJPRFVDVElPTiBdIC0tPg0KDQo8IS0tWyBTQU5EQk9YIF0gLS0+DQo8IS0tPHNjcmlwdCBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vc2RrL2pzP2NsaWVudC1pZD1BVTdyZ0hfclJnY3VaWDNMdWg0NUtIQ2lJRFhYbWhBYUpLcm5JbTh2SDFoV1dTc2xscThyZkNYelFYelhhR1BZNG5CclVEN0t5WGxoVFozdyZjdXJyZW5jeT1HQlAmaW50ZW50PWNhcHR1cmUmbG9jYWxlPWVuX1VTIj48L3NjcmlwdD4tLT4NCjwhLS1bIEVORCBTQU5EQk9YIF0gLS0+DQoNCjxzY3JpcHQ+DQogICAgLy8gT1JERVIgREFUQS4uLi4NCiAgICB2YXIgZW52ID0gJ3Byb2R1Y3Rpb24nOw0KICAgIHZhciBldmVudF9pZCA9IDc7IC8vUkVRVUlSRUQ7DQogICAgdmFyIGV2ZW50TmFtZSA9ICdHUkFQSElTVFVESU8gRURVQ0FUSU9OQUwgUFJPR1JBTSAyMDIzJw0KICAgIHZhciBjdXJyZW5jeSA9ICdHQlAnOw0KICAgIHZhciBjdXJyZW5jeV9zeW1ib2wgPSAnwqMnOw0KICAgIHZhciBwcmljZSA9IDk5OTsNCiAgICB2YXIgYmFzZV9wcmljZSA9IDk5OTsNCiAgICB2YXIgdmF0ID0gMC4yMjsNCiAgICB2YXIgc2t1ID0gJ0dTLU5JU0JHU1dTLTIwMjMnOw0KICAgIHZhciByZWZlcmVuY2VfaWQgPSAnR1MtRURVUFJPLU5PVi0yMDIzJzsNCiAgICB2YXIgaW52b2ljZV9pZCA9ICdHUy1OSVNCR1NXUy0yMDIzJzsNCiAgICB2YXIgcHJvZHVjdF9uYW1lID0gJ0dSQVBISVNUVURJTyBFRFVDQVRJT05BTCBQUk9HUkFNIDIwMjMnOw0KICAgIHZhciB0aGFua3NVUkwgPSAnaHR0cHM6Ly93d3cuZ3JhcGhpc3R1ZGlvLmNvbS9lbi9hY2NhZGVtaWEvbm9ybWFsLWlzLWJvcmluZy90aGFua3MnOw0KICAgIHZhciBwcm9kdWN0X2Rlc2NyaXB0aW9uID0gJyc7DQogICAgdmFyIG9yZGVyRGF0YSA9IHsNCiAgICAgICAgcmVmZXJlbmNlX2lkOiByZWZlcmVuY2VfaWQsIC8vREVGQVVMVCBSRUZFUkVOQ0UgSUQhDQogICAgICAgIGFtb3VudDogew0KICAgICAgICAgICAgdmFsdWU6IHByaWNlLA0KICAgICAgICAgICAgY3VycmVuY3lfY29kZTogY3VycmVuY3ksDQogICAgICAgICAgICBicmVha2Rvd246IHsNCiAgICAgICAgICAgICAgICBpdGVtX3RvdGFsOiB7IHZhbHVlOiBwcmljZSwgY3VycmVuY3lfY29kZTogY3VycmVuY3kgfSwNCiAgICAgICAgICAgICAgICB0YXhfdG90YWw6IHsgdmFsdWU6IDAsIGN1cnJlbmN5X2NvZGU6IGN1cnJlbmN5IH0sDQogICAgICAgICAgICAgICAgc2hpcHBpbmc6IHsgdmFsdWU6IDAsIGN1cnJlbmN5X2NvZGU6IGN1cnJlbmN5IH0sDQogICAgICAgICAgICAgICAgZGlzY291bnQ6IHsgdmFsdWU6IDAsIGN1cnJlbmN5X2NvZGU6IGN1cnJlbmN5IH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgaW52b2ljZV9pZDogaW52b2ljZV9pZCwgLy9ERUZBVUxUIElOVk9JQ0UgSUQhDQogICAgICAgIGl0ZW1zOiBbIHsgbmFtZTogcHJvZHVjdF9uYW1lLCBxdWFudGl0eTogMSwgJ3NrdSc6IHNrdSwgZGVzY3JpcHRpb246IHByb2R1Y3RfZGVzY3JpcHRpb24sIHVuaXRfYW1vdW50OiB7IGN1cnJlbmN5X2NvZGU6IGN1cnJlbmN5LCB2YWx1ZTogcHJpY2UgfSB9IF0NCiAgICB9Ow0KDQoNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCl7DQogICAgICAgICJ1c2Ugc3RyaWN0IjsNCg0KICAgICAgIGZ1bmN0aW9uIF9zZW5kRGF0YShkYXRhLCB0cmFuc2FjdGlvbl9pZCl7DQogICAgICAgICAgICBUb2FzdGlmeSh7DQogICAgICAgICAgICAgICAgdGV4dDogcHJvY2Vzc2luZ1lvdXJEYXRhLA0KICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAxMDAwMCwNCiAgICAgICAgICAgICAgICBjbG9zZTogdHJ1ZSwNCiAgICAgICAgICAgICAgICBncmF2aXR5OiAiYm90dG9tIiwNCiAgICAgICAgICAgICAgICBwb3NpdGlvbjogInJpZ2h0IiwNCiAgICAgICAgICAgICAgICBzdG9wT25Gb2N1czogdHJ1ZSwNCiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzdWNjZXNzJywNCiAgICAgICAgICAgICAgICBlc2NhcGVNYXJrdXA6IGZhbHNlLA0KICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uKCl7fSAvLyBDYWxsYmFjayBhZnRlciBjbGljaw0KICAgICAgICAgICAgfSkuc2hvd1RvYXN0KCk7DQogICAgICAgICAgICBsZXQgcCwgcmVxdWVzdCwgZmQgPSBuZXcgRm9ybURhdGEoKTsNCiAgICAgICAgICAgIGZvcihwIGluIGRhdGEpew0KICAgICAgICAgICAgICAgIGlmKCFkYXRhLmhhc093blByb3BlcnR5KHApKSBjb250aW51ZTsNCiAgICAgICAgICAgICAgICBpZihwID09PSAncHJvbW8tY29kZScpew0KICAgICAgICAgICAgICAgICAgICBmZC5hcHBlbmQoJ2NvdXBvbicsIGRhdGFbcF0uY291cG9uLmxhYmVsKTsNCiAgICAgICAgICAgICAgICAgICAgZmQuYXBwZW5kKCdjb3Vwb24tdmFsdWUnLCBNYXRoLmFicyhkYXRhW3BdLmNvdXBvbi52YWx1ZSkpOw0KICAgICAgICAgICAgICAgICAgICBmZC5hcHBlbmQoJ2NvdXBvbi1sYWJlbCcsIGBDb3Vwb24gYXBwbGllZCAke2RhdGFbcF0uY291cG9uLmxhYmVsfTogJHtjdXJyZW5jeX0gJHtNYXRoLmFicyhkYXRhW3BdLmNvdXBvbi52YWx1ZSl9YCk7DQogICAgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICAgIGZkLmFwcGVuZChwLCBkYXRhW3BdKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZmQuYXBwZW5kKCdldmVudF9pZCcsIGV2ZW50X2lkKTsNCiAgICAgICAgICAgIGZkLmFwcGVuZCgndHJhbnNhY3Rpb25faWQnLCB0cmFuc2FjdGlvbl9pZCk7DQogICAgICAgICAgICBmZC5hcHBlbmQoJ2Ftb3VudCcsIGAke29yZGVyRGF0YS5hbW91bnQuYnJlYWtkb3duLml0ZW1fdG90YWwudmFsdWV9ICR7Y3VycmVuY3l9YCk7DQogICAgICAgICAgICBpZihkYXRhWydoYXZlX2FfY29tcGFueSddIHx8IGNvdW50cmllc193aXRoX3ZhdC5pbmRleE9mKGRhdGFbJ2NvdW50cnlfY29kZSddKSAhPT0gLTEpew0KICAgICAgICAgICAgICAgIGZkLmFwcGVuZCgndGF4JywgYCR7b3JkZXJEYXRhLmFtb3VudC5icmVha2Rvd24udGF4X3RvdGFsLnZhbHVlfSAke2N1cnJlbmN5fWApOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZmQuYXBwZW5kKCdldmVudF9uYW1lJywgZXZlbnROYW1lKTsNCiAgICAgICAgICAgIGZkLmFwcGVuZCgndGFzaycsJ3JlY2VpcHQnKTsNCiAgICAgICAgICAgIHJldHVybiBmZXRjaCgiaHR0cHM6Ly93d3cuZ3JhcGhpc3R1ZGlvLmNvbS9UcmFkZU5ldy9hcGkvZWR1Y2F0aW9uYWwvc2VuZC1lbWFpbCIsIHsNCiAgICAgICAgICAgICAgICBtZXRob2Q6ICdwb3N0JywNCiAgICAgICAgICAgICAgICBib2R5OiBmZCwNCiAgICAgICAgICAgIH0pDQoNCiAgICAgICAgICAgIC8vcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOw0KICAgICAgICAgICAgLy9yZXF1ZXN0Lm9wZW4oIlBPU1QiLCAiaHR0cHM6Ly93d3cuZ3JhcGhpc3R1ZGlvLmNvbS9UcmFkZU5ldy9hcGkvc2VuZF9lbWFpbC5waHAiLCBmYWxzZSk7IC8vU1lOQyBSRVFVRVNULi4uLg0KICAgICAgICAgICAgLy9yZXF1ZXN0LnNlbmQoZmQpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gX3VwZGF0ZVByaWNlKHZhdCl7DQogICAgICAgICAgICBsZXQgdXNlX3ByaWNlOw0KICAgICAgICAgICAgaWYoX2RhdGFbJ3Byb21vLWNvZGUnXSkgew0KICAgICAgICAgICAgICAgIC8vb3JkZXJEYXRhLmFtb3VudC5icmVha2Rvd24uZGlzY291bnQudmFsdWUgPSBNYXRoLmFicyhfZGF0YVsncHJvbW8tY29kZSddLmNvdXBvbi52YWx1ZSk7DQogICAgICAgICAgICAgICAgb3JkZXJEYXRhLmFtb3VudC5icmVha2Rvd24uZGlzY291bnQudmFsdWUgPSAwOw0KICAgICAgICAgICAgICAgIHVzZV9wcmljZSA9IGJhc2VfcHJpY2UgLSBNYXRoLmFicyhfZGF0YVsncHJvbW8tY29kZSddLmNvdXBvbi52YWx1ZSkgLSAgb3JkZXJEYXRhLmFtb3VudC5icmVha2Rvd24uZGlzY291bnQudmFsdWU7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBvcmRlckRhdGEuYW1vdW50LmJyZWFrZG93bi5kaXNjb3VudC52YWx1ZSA9IDA7DQogICAgICAgICAgICAgICAgdXNlX3ByaWNlID0gYmFzZV9wcmljZSAtIG9yZGVyRGF0YS5hbW91bnQuYnJlYWtkb3duLmRpc2NvdW50LnZhbHVlOw0KICAgICAgICAgICAgICAgDQogICAgICAgICAgICB9DQogICAgICAgICAgICAgaWYoX2RhdGFbJ3BheW1lbnQtdHlwZSddID09PSAnaGFsZicpIHVzZV9wcmljZSAqPSAwLjU7IA0KDQogICAgICAgICAgICBpZih2YXQpew0KICAgICAgICAgICAgICAgIG9yZGVyRGF0YS5hbW91bnQudmFsdWUgPSBOdW1iZXIodXNlX3ByaWNlICsgKHVzZV9wcmljZSAqIHZhdCkpLnRvRml4ZWQoMik7DQogICAgICAgICAgICAgICAgb3JkZXJEYXRhLmFtb3VudC5icmVha2Rvd24udGF4X3RvdGFsLnZhbHVlID0gTnVtYmVyKHVzZV9wcmljZSAqIHZhdCkudG9GaXhlZCgyKTsNCiAgICAgICAgICAgICAgICBvcmRlckRhdGEuYW1vdW50LmJyZWFrZG93bi5pdGVtX3RvdGFsLnZhbHVlID0gTnVtYmVyKHVzZV9wcmljZSkudG9GaXhlZCgyKTsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIG9yZGVyRGF0YS5hbW91bnQudmFsdWUgPSBOdW1iZXIodXNlX3ByaWNlLnRvRml4ZWQoMikpOw0KICAgICAgICAgICAgICAgIG9yZGVyRGF0YS5hbW91bnQuYnJlYWtkb3duLnRheF90b3RhbC52YWx1ZSA9IDA7DQogICAgICAgICAgICAgICAgb3JkZXJEYXRhLmFtb3VudC5icmVha2Rvd24uaXRlbV90b3RhbC52YWx1ZSA9IE51bWJlcih1c2VfcHJpY2UudG9GaXhlZCgyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIG9yZGVyRGF0YS5pdGVtc1swXS51bml0X2Ftb3VudC52YWx1ZSA9IE51bWJlcih1c2VfcHJpY2UudG9GaXhlZCgyKSk7DQogICAgICAgICAgICBjb25zb2xlLndhcm4ob3JkZXJEYXRhLCBvcmRlckRhdGEuYW1vdW50KTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIFZBTElEQVRJTkcgVEhFIFVTRVIgREFUQSBCRUZPUkUgSU5JVCBUSEUgUEFZTUVOVCBQUk9DRVNTIQ0KICAgICAgICBmdW5jdGlvbiBfdmFsaWRhdGVEYXRhKGRhdGEsIGNoZWNrcyl7DQogICAgICAgICAgICBpZighYXZhaWxhYmxlX3NlYXRzKSByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICBsZXQgaW52YWxpZCA9IGNoZWNrcy5zb21lKGZ1bmN0aW9uKHApew0KICAgICAgICAgICAgICAgIHJldHVybiAhZGF0YVtwXTsNCiAgICAgICAgICAgIH0pDQogICAgICAgICAgICBpZihkYXRhWydoYXZlX2FfY29tcGFueSddKXsNCiAgICAgICAgICAgICAgICBpZighZGF0YVsndmF0J10gfHwgIWRhdGFbJ2NvbXBhbnknXSB8fCAhZGF0YVsnYWRkcmVzcyddKSBpbnZhbGlkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAvL191cGRhdGVQcmljZSh2YXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICANCiAgICAgICAgICAgIF91cGRhdGVQcmljZSgoY291bnRyaWVzX3dpdGhfdmF0LmluZGV4T2YoZGF0YVsnY291bnRyeV9jb2RlJ10pICE9PSAtMSkgPyB2YXQgOiBudWxsKTsNCiAgICAgICAgICAgIHJldHVybiAhaW52YWxpZDsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIEdFTkVSQVRJTkcgQU4gVU5JUVVFIElOVk9JQ0UgSUQgRk9SIFRIRSBDVVJSRU5UIFBBWU1FTlQgU0VTU0lPTi9GTE9XIQ0KICAgICAgICBmdW5jdGlvbiBnZXRSZWNlaXB0VUlEKCkgew0KICAgICAgICAgICAgbGV0IGEgPSBuZXcgVWludDMyQXJyYXkoMyk7DQogICAgICAgICAgICB3aW5kb3cuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhKTsNCiAgICAgICAgICAgIHJldHVybiBgJHtpbnZvaWNlX2lkfS1gKyhwZXJmb3JtYW5jZS5ub3coKS50b1N0cmluZygzNikrQXJyYXkuZnJvbShhKS5tYXAoDQogICAgICAgICAgICAgICAgZnVuY3Rpb24oQSkgeyByZXR1cm4gQS50b1N0cmluZygzNik7IH0NCiAgICAgICAgICAgICkuam9pbigiIikpLnJlcGxhY2UoL1wuL2csIiIpLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLyBDSEVDSyBJTiBCQU5ORUQgTElTVCENCiAgICAgICAgZnVuY3Rpb24gX2NoZWNrQmFuTGlzdChkYXRhKXsNCiAgICAgICAgICAgIGlmKFsiaGF1c29mamFpQGdtYWlsLmNvbSIsImluZm9AaGF1c29mamFpLmNvbSJdLmluZGV4T2YoZGF0YVsnZW1haWwnXS50b0xvd2VyQ2FzZSgpLnRyaW0oKSkgIT09IC0xKSByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIGlmKFsia2FwYWRpYSJdLmluZGV4T2YoZGF0YVsnc3VybmFtZSddLnRvTG93ZXJDYXNlKCkudHJpbSgpKSAhPT0gLTEpIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgaWYoWyJqYWkiLCJqYWdydXRpIl0uaW5kZXhPZihkYXRhWyduYW1lJ10udG9Mb3dlckNhc2UoKS50cmltKCkpICE9PSAtMSkgcmV0dXJuIHRydWU7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vIFJFUE9SVCBCQU5ORUQhDQogICAgICAgIGZ1bmN0aW9uIF9sb2dCYW5uZWQoZGF0YSl7DQogICAgICAgICAgICBsZXQgcCwgZmQgPSBuZXcgRm9ybURhdGEoKTsNCiAgICAgICAgICAgIGZvcihwIGluIGRhdGEpew0KICAgICAgICAgICAgICAgIGlmKCFkYXRhLmhhc093blByb3BlcnR5KHApKSBjb250aW51ZTsNCiAgICAgICAgICAgICAgICBmZC5hcHBlbmQocCwgZGF0YVtwXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmZC5hcHBlbmQoJ2V2ZW50X2lkJywgZXZlbnRfaWQpOw0KICAgICAgICAgICAgZmQuYXBwZW5kKCdldmVudF9uYW1lJywgZXZlbnROYW1lKTsNCiAgICAgICAgICAgIGZkLmFwcGVuZCgndGFzaycsJ2Jhbm5lZCcpOw0KICAgICAgICAgICAgcmV0dXJuIGZldGNoKCJodHRwczovL3d3dy5ncmFwaGlzdHVkaW8uY29tL1RyYWRlTmV3L2FwaS9lZHVjYXRpb25hbC9zZW5kLWVtYWlsIiwgew0KICAgICAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLA0KICAgICAgICAgICAgICAgIGJvZHk6IGZkLA0KICAgICAgICAgICAgfSkNCg0KICAgICAgICB9DQoNCmZ1bmN0aW9uIF91c2VyRmVlZGJhY2sodHlwZSwgbWVzc2FnZSl7DQogICAgICAgICAgICBpZih3aW5kb3cuVG9hc3RpZnkgJiYgbWVzc2FnZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBUb2FzdGlmeSh7DQogICAgICAgICAgICAgICAgICAgIHRleHQ6IG1lc3NhZ2UsDQogICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLA0KICAgICAgICAgICAgICAgICAgICBjbG9zZTogdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgZ3Jhdml0eTogImJvdHRvbSIsDQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAicmlnaHQiLA0KICAgICAgICAgICAgICAgICAgICBzdG9wT25Gb2N1czogdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0eXBlLA0KICAgICAgICAgICAgICAgICAgICBlc2NhcGVNYXJrdXA6IGZhbHNlLA0KICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIH0gLy8gQ2FsbGJhY2sgYWZ0ZXIgY2xpY2sNCiAgICAgICAgICAgICAgICB9KS5zaG93VG9hc3QoKTsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIGlmKG91dHB1dCkgb3V0cHV0LmlubmVySFRNTCA9IG1lc3NhZ2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBfdmFsaWRhdGVQcm9tb0NvZGUodmFsdWUpew0KDQogICAgICAgICAgICBjb25zb2xlLndhcm4oJ1ZBTElEQVRJTkcgQ09VUE9OOiAiJXMiJywgdmFsdWUpOw0KICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGZ1bGxmaWxsLCByZWplY3Qpew0KICAgICAgICAgICAgICAgIGxldCB1ZiwgdmFsaWQsIHdVSUQ7DQogICAgICAgICAgICAgICAgaWYodmFsdWUudHJpbSgpID09PSAnJyB8fCAhdmFsdWUpIHsNCiAgICAgICAgICAgICAgICAgICAgZnVsbGZpbGwobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYocGF5Q2FyZCkgcGF5Q2FyZC5jbGFzc0xpc3QuYWRkKCdsb2FkaW5nJyk7DQogICAgICAgICAgICAgICAgd1VJRCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgICB1bCA9IF91c2VyRmVlZGJhY2soJ3dhcm4nLCBjaGVja2luZ1lvdXJDb3Vwb24pOw0KICAgICAgICAgICAgICAgIH0sNTAwKTsNCiAgICAgICAgICAgICAgICBmZXRjaCgiaHR0cHM6Ly9hcGkuZ3JhcGhpc3R1ZGlvLmNvbS9hcGkvd29ya3Nob3AvdmFsaWRhdGUtY291cG9uLyIrdmFsdWUsIHsNCiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnZ2V0Jw0KICAgICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2Upew0KICAgICAgICAgICAgICAgICAgICBpZihyZXNwb25zZS5zdGF0dXMgPT09IDIwMCl7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBmdWxsZmlsbChyZXNwb25zZS5qc29uKCkpDQogICAgICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpew0KICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsNCiAgICAgICAgICAgICAgICB9KS5maW5hbGx5KGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQod1VJRCk7DQogICAgICAgICAgICAgICAgICAgIGlmKHVmKSB1Zi5oaWRlVG9hc3QoKTsNCiAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICAgICAgICAgIF91c2VyRmVlZGJhY2sodmFsaWQgPyAnc3VjY2VzcycgOiAnZXJyb3InLCB2YWxpZCA\/IHZhbGlkQ291cG9uIDogaW52YWxpZENvdXBvbik7DQogICAgICAgICAgICAgICAgICAgICAgICBpZihwYXlDYXJkKSBwYXlDYXJkLmNsYXNzTGlzdC5yZW1vdmUoJ2xvYWRpbmcnKTsNCiAgICAgICAgICAgICAgICAgICAgfSwgMTAwMCk7DQogICAgICAgICAgICAgICAgfSkNCg0KICAgICAgICAgICAgfSkNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIF9jaGVja0Zvcm0oX2RhdGEsIF9jaGVja3MsIGFjdGlvbnMpew0KICAgICAgICAgICAgaWYoX3ZhbGlkYXRlRGF0YShfZGF0YSwgX2NoZWNrcykpew0KICAgICAgICAgICAgICAgIHBheUNhcmQuY2xhc3NMaXN0LnJlbW92ZSgnZGlzYWJsZWQnKTsNCiAgICAgICAgICAgICAgICBhY3Rpb25zLmVuYWJsZSgpOw0KICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgcGF5Q2FyZC5jbGFzc0xpc3QuYWRkKCdkaXNhYmxlZCcpOw0KICAgICAgICAgICAgICAgIGFjdGlvbnMuZGlzYWJsZSgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgb3JkZXJEYXRhLmludm9pY2VfaWQgPSBnZXRSZWNlaXB0VUlEKCk7DQogICAgICAgIGlmKHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmluZm8pIHsNCiAgICAgICAgICAgICBjb25zb2xlLmluZm8oJ1NFU1NJT04gSU5WT0lDRSBJRDogJXMnLCAgb3JkZXJEYXRhLmludm9pY2VfaWQpOw0KDQogICAgICAgIH0NCg0KICAgICAgICAvLyBMRVhJQ08gRk9SIEFMRVJUUyBCQURHRS4uLg0KICAgICAgICBsZXQgc3VjY2Vzc01lc3NhZ2UgPSAnPHN0cm9uZz5QQVlNRU5UIERPTkUhPC9zdHJvbmc+PGJyPlRoYW5rIHlvdSBmb3IgeW91ciBwYXltZW50ISc7DQogICAgICAgIGxldCBjYW5jZWxNZXNzYWdlID0gJzxzdHJvbmc+UEFZTUVOVCBDQU5DRUxMRUQhPC9zdHJvbmc+PGJyPk5vIHRyYW5zYWN0aW9uIG1hZGUhJzsNCiAgICAgICAgbGV0IGVycm9yTWVzc2FnZSA9ICc8c3Ryb25nPlVOQUJMRSBUTyBQUk9DRVNTIFlPVVIgUEFZTUVOVCE8L3N0cm9uZz48YnI+V2UgYXJlIHNvcnJ5LCBidXQgd2UgY2FuXCd0IHByb2Nlc3MgeW91ciBwYXltZW50IGF0IHRoaXMgdGltZSEnOw0KICAgICAgICBsZXQgZXJyb3JTb2xkT3V0TWVzc2FnZSA9ICc8c3Ryb25nPkVWRU5UIFNPTEQgT1VUITwvc3Ryb25nPjxicj5XZSBhcmUgc29ycnksIGJ1dCBhbGwgYXZhaWxhYmxlIHNlYXRzIGFyZSBzb2xkIG91dC4hJzsNCiAgICAgICAgbGV0IHByb2Nlc3NpbmdZb3VyRGF0YSA9ICc8c3Ryb25nPlBST0NFU1NJTkcgWU9VUiBEQVRBITwvc3Ryb25nPjxicj5QbGVhc2Ugd2FpdCEnOw0KDQogICAgICAgIGxldCBjaGVja2luZ1lvdXJDb3Vwb24gPSAnPHN0cm9uZz5WQUxJREFUSU5HIFlPVVIgQ09ERSE8L3N0cm9uZz48YnI+UGxlYXNlIHdhaXQhJzsNCiAgICAgICAgbGV0IHZhbGlkQ291cG9uID0gJzxzdHJvbmc+WU9VUiBDT1VQT04gQ09ERSBJUyBWQUxJRCE8L3N0cm9uZz48YnI+V2Ugd2lsbCBhcHBseSB0aGUgZGlzY291bnQhJzsNCiAgICAgICAgbGV0IGludmFsaWRDb3Vwb24gPSAnPHN0cm9uZz5ZT1VSIENPVVBPTiBDT0RFIElTIElOVkFMSUQhPC9zdHJvbmc+PGJyPlBsZWFzZSBkb3VibGUgY2hlY2sgeW91ciBjb3Vwb24gY29kZSEnOw0KDQogICAgICAgIC8vIEVMRU1FTlRTIC4uLg0KICAgICAgICBsZXQgcGF5Q2FyZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXR5cGU9InBheS1mb3JtIl0nKTsNCiAgICAgICAgbGV0IG91dHB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXR5cGU9Im91dHB1dCJdJyk7DQogICAgICAgIGxldCB2YXRCbG9jayA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXR5cGU9InZhdC1ibG9jayJdJyk7DQogICAgICAgIGxldCBzdGF0ZUJsb2NrID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdHlwZT0ic3RhdGUiXScpOw0KICAgICAgICBsZXQgYWRkcmVzc0Jsb2NrID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdHlwZT0iYWRkcmVzcy1ibG9jayJdJyk7DQogICAgICAgIGxldCB0ZXJtc0Jsb2NrID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdHlwZT0idGVybXMiXScpOw0KICAgICAgICBsZXQgYXBwbGllZENvdXBvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXR5cGU9ImFwcGxpZWQtY291cG9uIl0nKTsNCiAgICAgICAgbGV0IHBheXBhbEJ1dHRvbkNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwYXlwYWwtYnV0dG9uLWNvbnRhaW5lcicpOw0KICAgICAgICBsZXQgX2RhdGE7DQogICAgICAgIGxldCBjb3VudHJpZXNfd2l0aF92YXQgPSBbJ0lUJywnQVQnLCdCRScsJ0JHJywnSFInLCdDWScsJ0NaJywnREsnLCdFRScsJ0ZJJywnRlInLCdERScsJ0VMJywnSFUnLCdJRScsJ0xWJywnTFQnLCdMVScsJ01UJywnTkwnLCdQTCcsJ1BUJywnUk8nLCdTSycsJ1NJJywnRVMnLCdTRSddOw0KICAgICAgICBsZXQgdmF0SW5wOw0KICAgICAgICBsZXQgaXNBQ29tcGFueSwgdXNhU3RhdGVzLCBjYW5TdGF0ZXMsIG90aGVyU3RhdGVzOw0KICAgICAgICBsZXQgYXZhaWxhYmxlX3NlYXRzID0gTnVtYmVyKHBheUNhcmQuZGF0YXNldC5hdmFpbGFibGUgfHwgMCk7DQoNCiAgICAgICAgY29uc29sZS5pbmZvKCdDT1VOVFJJRVMgV0lUSCBWQVQ6ICVzJywgY291bnRyaWVzX3dpdGhfdmF0Lmxlbmd0aCwgb3JkZXJEYXRhKTsNCiAgICAgICAgY29uc29sZS5pbmZvKCdBVkFJTEFCTEUgU0VBVFMgQVJFOiAlcycsIGF2YWlsYWJsZV9zZWF0cyk7DQoNCiAgICAgICBpZighYXZhaWxhYmxlX3NlYXRzKXsNCiAgICAgICAgICAgIGlmKHdpbmRvdy5Ub2FzdGlmeSl7DQogICAgICAgICAgICAgICAgVG9hc3RpZnkoew0KICAgICAgICAgICAgICAgICAgICB0ZXh0OiBlcnJvclNvbGRPdXRNZXNzYWdlLA0KICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMTAwMDAsDQogICAgICAgICAgICAgICAgICAgIGNsb3NlOiB0cnVlLA0KICAgICAgICAgICAgICAgICAgICBncmF2aXR5OiAiYm90dG9tIiwNCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICJyaWdodCIsDQogICAgICAgICAgICAgICAgICAgIHN0b3BPbkZvY3VzOiB0cnVlLA0KICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdlcnJvcicsDQogICAgICAgICAgICAgICAgICAgIGVzY2FwZU1hcmt1cDogZmFsc2UsDQogICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uKCl7fSAvLyBDYWxsYmFjayBhZnRlciBjbGljaw0KICAgICAgICAgICAgICAgIH0pLnNob3dUb2FzdCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQoNCiAgICAgICAgcGF5cGFsLkJ1dHRvbnMoew0KICAgICAgICAgICAgZW52OiBlbnYsDQogICAgICAgICAgICBsb2NhbGU6ICdlbl9VUycsDQogICAgICAgICAgICBzdHlsZTogew0KICAgICAgICAgICAgICAgIGxheW91dDogJ2hvcml6b250YWwnLA0KICAgICAgICAgICAgICAgIHNpemU6ICdyZXNwb25zaXZlJywNCiAgICAgICAgICAgICAgICBjb2xvcjogJ2dvbGQnLA0KICAgICAgICAgICAgICAgIHNoYXBlOiAncGlsbCcsDQogICAgICAgICAgICAgICAgbGFiZWw6ICdidXlub3cnLA0KICAgICAgICAgICAgICAgIHRhZ2xpbmU6ICdmYWxzZScsDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgLy8gV0hFTiBUSEUgUEFZUEFMIExJQlJBUlkgSU5JVCwgV0UgRElTQUJMRSBUSEUgUEFZTUVOVCBCVVRUT04gLi4uLg0KICAgICAgICAgICAgb25Jbml0OiBmdW5jdGlvbihkYXRhLCBhY3Rpb25zKSAgew0KICAgICAgICAgICAgICAgIGxldCBfY2hlY2tzLCBpbnB1dHM7DQogICAgICAgICAgICAgICAgLy8gRElTQUJMRSBUSEUgQlVUVE9OKFMpDQogICAgICAgICAgICAgICAgcGF5Q2FyZC5jbGFzc0xpc3QuYWRkKCdkaXNhYmxlZCcpOw0KDQoNCiAgICAgICAgICAgICAgICBhY3Rpb25zLmRpc2FibGUoKTsNCiAgICAgICAgICAgICAgICBfZGF0YSA9IHt9Ow0KICAgICAgICAgICAgICAgIF9jaGVja3MgPSBbXTsNCiAgICAgICAgICAgICAgICAvL2lmKF9wcmVmaWxsT25UZXN0ICkgX2RhdGEgPSBfcHJlZmlsbE9uVGVzdDsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpbnB1dHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsICgnW2RhdGEtdHlwZT0icGF5LWZvcm0iXSBpbnB1dCwgW2RhdGEtdHlwZT0icGF5LWZvcm0iXSBzZWxlY3QsICBbZGF0YS10eXBlPSJwYXktZm9ybSJdIHRleHRhcmVhJyk7DQogICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGlucHV0cywgZnVuY3Rpb24oaW5wdXQpew0KDQogICAgICAgICAgICAgICAgICAgIC8vaWYoX3ByZWZpbGxPblRlc3QgJiYgX3ByZWZpbGxPblRlc3RbaW5wdXQubmFtZV0pIGlucHV0LnZhbHVlID0gX3ByZWZpbGxPblRlc3RbaW5wdXQubmFtZV07DQogICAgICAgICAgICAgICAgICAgIGlmKGlucHV0LnJlcXVpcmVkKSBfY2hlY2tzLnB1c2goaW5wdXQubmFtZSk7DQogICAgICAgICAgICAgICAgICAgIGlmKGlucHV0Lm5hbWUgPT09ICdoYXZlX2FfY29tcGFueScpIGlzQUNvbXBhbnkgPSBpbnB1dDsNCiAgICAgICAgICAgICAgICAgICAgaWYoaW5wdXQubmFtZSA9PT0gJ3N0YXRlJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoaW5wdXQuZGF0YXNldC5mb3IgPT09ICd1c2EnKSB1c2FTdGF0ZXMgPSBpbnB1dDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlucHV0LmRhdGFzZXQuZm9yID09PSAnY2FuYWRhJykgY2FuU3RhdGVzID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgICAgICAgICBpZihpbnB1dC5kYXRhc2V0LmZvciA9PT0gJ290aGVycycpIG90aGVyU3RhdGVzID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZihpbnB1dC5uYW1lID09PSAncGF5bWVudC10eXBlJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgX2RhdGFbaW5wdXQubmFtZV0gPSBbJ2Z1bGwnLCdoYWxmJ10uaW5kZXhPZihpbnB1dC52YWx1ZSkgIT09IC0xID8gaW5wdXQudmFsdWUgOiAnZnVsbCc7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZihpbnB1dC5uYW1lID09PSAncHJvbW8tY29kZScpIGlucHV0LnZhbHVlID0gJyc7DQoNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24oZSl7DQogICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGUuY3VycmVudFRhcmdldC5uYW1lKXsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ25hbWUnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N1cm5hbWUnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvdW50cnknOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvdW50cnlfY29kZSc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSA9IC9eXHMqXHd7Mix9XHMqLiokLy50ZXN0KGUuY3VycmVudFRhcmdldC52YWx1ZSkgPyBlLmN1cnJlbnRUYXJnZXQudmFsdWUudHJpbSgpIDogbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZS5jdXJyZW50VGFyZ2V0Lm5hbWUgPT09ICdjb3VudHJ5X2NvZGUnKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlzQUNvbXBhbnkpIGlzQUNvbXBhbnkuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodXNhU3RhdGVzKSB1c2FTdGF0ZXMuZGlzYWJsZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2FuU3RhdGVzKSBjYW5TdGF0ZXMuZGlzYWJsZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob3RoZXJTdGF0ZXMpIG90aGVyU3RhdGVzLmRpc2FibGVkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhWydoYXZlX2FfY29tcGFueSddID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhdElucC5kaXNhYmxlZCA9ICEoY291bnRyaWVzX3dpdGhfdmF0LmluZGV4T2YoX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdKSAhPT0gLTEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc3RhdGVCbG9jaykgc3RhdGVCbG9jay5kYXRhc2V0LmNvdW50cnkgPSBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih2YXRCbG9jaykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhdEJsb2NrLmRhdGFzZXQuY291bnRyeSA9IF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXRCbG9jay5zdHlsZS5kaXNwbGF5ID0gKGNvdW50cmllc193aXRoX3ZhdC5pbmRleE9mKF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSkgIT09IC0xKSA\/ICdibG9jaycgOiAnbm9uZSc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRlcm1zQmxvY2spew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlcm1zQmxvY2suZGF0YXNldC5mb3IgPSAoY291bnRyaWVzX3dpdGhfdmF0LmluZGV4T2YoX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdKSAhPT0gLTEpID8gJ3VlJyA6ICdhbGwnOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlcm1zQmxvY2suZGF0YXNldC5jb3VudHJ5ID0gX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdXBkYXRlUHJpY2UoY291bnRyaWVzX3dpdGhfdmF0LmluZGV4T2YoX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPT09ICdVUycgJiYgdXNhU3RhdGVzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNhU3RhdGVzLmRpc2FibGVkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNhU3RhdGVzLnNlbGVjdGVkSW5kZXggPSAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdID09PSAnQ0EnICYmIGNhblN0YXRlcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhblN0YXRlcy5kaXNhYmxlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhblN0YXRlcy5zZWxlY3RlZEluZGV4ID0gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKFsiVVMiLCJDQSJdLmluZGV4T2YoX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdKSA9PT0gLTEgJiYgb3RoZXJTdGF0ZXMpIG90aGVyU3RhdGVzLmRpc2FibGVkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihbIlVTIiwiQ0EiXS5pbmRleE9mKF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSkgIT09IC0xKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY2hlY2tzLnB1c2goJ3N0YXRlJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2NoZWNrcy5maWx0ZXIoZnVuY3Rpb24ocHJvcCwgaW5keCl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfY2hlY2tzLmluZGV4T2YocHJvcCkgPT09IGluZHgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jaGVja3MgPSBfY2hlY2tzLmZpbHRlcihmdW5jdGlvbihwcm9wLCBpbmR4KXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb3AgIT09ICdzdGF0ZSc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhWydzdGF0ZSddID0gbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBfZGF0YVsnc3RhdGUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFkZHJlc3NCbG9jaykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NCbG9jay5kYXRhc2V0LmZvcj1fZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGRyZXNzQmxvY2suc3R5bGUuZGlzcGxheSA9IF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSA\/ICdibG9jaycgOiAnbm9uZSc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjaXR5JzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdID0gL15ccypcd3szLH1ccyouKiQvLnRlc3QoZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSA\/IGUuY3VycmVudFRhcmdldC52YWx1ZS50cmltKCkgOiBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbXBhbnknOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPSAvXlxzKi57NSx9JC8udGVzdChlLmN1cnJlbnRUYXJnZXQudmFsdWUpID8gZS5jdXJyZW50VGFyZ2V0LnZhbHVlLnRyaW0oKSA6IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RlbGVwaG9uZSc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSA9IC9eXHMqLns1LH0kL20udGVzdChlLmN1cnJlbnRUYXJnZXQudmFsdWUpID8gZS5jdXJyZW50VGFyZ2V0LnZhbHVlLnRyaW0oKSA6IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmVldCc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSA9IC9eXHMqLns1LH0kL20udGVzdChlLmN1cnJlbnRUYXJnZXQudmFsdWUpID8gZS5jdXJyZW50VGFyZ2V0LnZhbHVlLnRyaW0oKSA6IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ppcCc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSA9IC9eXHMqLns0LH0kL20udGVzdChlLmN1cnJlbnRUYXJnZXQudmFsdWUpID8gZS5jdXJyZW50VGFyZ2V0LnZhbHVlLnRyaW0oKSA6IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2FkZHJlc3MnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPSAvXlxzKi57NSx9JC9tLnRlc3QoZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSA\/IGUuY3VycmVudFRhcmdldC52YWx1ZS50cmltKCkgOiBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd0ZXJtcyc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJpdmFjeSc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaGF2ZV9hX2NvbXBhbnknOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPSBlLmN1cnJlbnRUYXJnZXQuY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAndmF0JzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdID0gL15ccypbYS16QS1aMC05XXs2LH1ccyokLy50ZXN0KGUuY3VycmVudFRhcmdldC52YWx1ZSkgPyBlLmN1cnJlbnRUYXJnZXQudmFsdWUudHJpbSgpIDogbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZW1haWwnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPSAvXlx3KyhbXC4tXT9cdyspKkBcdysoW1wuLV0\/XHcrKSooXC5cd3syLDN9KSskLy50ZXN0KGUuY3VycmVudFRhcmdldC52YWx1ZSkgPyBlLmN1cnJlbnRUYXJnZXQudmFsdWUgOiBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzdGF0ZSc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSAhPT0gJycgPyBlLmN1cnJlbnRUYXJnZXQudmFsdWUgOiBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwYXltZW50LXR5cGUnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPSBbJ2Z1bGwnLCdoYWxmJ10uaW5kZXhPZihlLmN1cnJlbnRUYXJnZXQudmFsdWUpICE9PSAtMSA\/IGUuY3VycmVudFRhcmdldC52YWx1ZSA6ICdmdWxsJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdID09PSAnaGFsZicpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2UgPSBOdW1iZXIoKGJhc2VfcHJpY2UqLjUpLnRvRml4ZWQoMCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmljZSA9IGJhc2VfcHJpY2U7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Byb21vLWNvZGUnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVtlLmN1cnJlbnRUYXJnZXQubmFtZV0gPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY2hlY2tzLnB1c2goZS5jdXJyZW50VGFyZ2V0Lm5hbWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihlLmN1cnJlbnRUYXJnZXQudmFsdWUudHJpbSgpID09PSAnJyl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgX2RhdGFbZS5jdXJyZW50VGFyZ2V0Lm5hbWVdOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYXBwbGllZENvdXBvbikgYXBwbGllZENvdXBvbi5pbm5lckhUTUwgPSAnJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jaGVja3MgPSBfY2hlY2tzLmZpbHRlcihmdW5jdGlvbihwcm9wKXsgcmV0dXJuIHByb3AgIT09IGUuY3VycmVudFRhcmdldC5uYW1lfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF9yZXN1bHQgPSBlLmN1cnJlbnRUYXJnZXQubmV4dEVsZW1lbnRTaWJsaW5nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbGlkYXRlUHJvbW9Db2RlKGUuY3VycmVudFRhcmdldC52YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmluZm8oJ1ZBTElEQVRJT04gUkVTVUxUJywgcmVzdWx0LCBfY2hlY2tzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YVsncHJvbW8tY29kZSddID0gcmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdQcmljZSA9IGJhc2VfcHJpY2UgKyByZXN1bHQuY291cG9uLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFwcGxpZWRDb3Vwb24pIGFwcGxpZWRDb3Vwb24uaW5uZXJIVE1MID0gYDxzdHJpa2U+JHtiYXNlX3ByaWNlfSAke2N1cnJlbmN5fTwvc3RyaWtlPiAke25ld1ByaWNlfSAke2N1cnJlbmN5fWA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2NoZWNrRm9ybShfZGF0YSwgX2NoZWNrcywgYWN0aW9ucyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbigpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS53YXJuKCdWQUxJREFUSU9OIEVSUk9SIScsIF9jaGVja3MpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhWydwcm9tby1jb2RlJ10gPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFwcGxpZWRDb3Vwb24pIGFwcGxpZWRDb3Vwb24uaW5uZXJIVE1MID0gJyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2NoZWNrRm9ybShfZGF0YSwgX2NoZWNrcywgYWN0aW9ucyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZihlLmN1cnJlbnRUYXJnZXQubmFtZSA9PT0gJ3Byb21vLWNvZGUnIHx8IF9kYXRhW2UuY3VycmVudFRhcmdldC5uYW1lXSl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5jdXJyZW50VGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoJ2ludmFsaWQnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuY3VycmVudFRhcmdldC5jbGFzc0xpc3QuYWRkKCdpbnZhbGlkJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIF9jaGVja0Zvcm0oX2RhdGEsIF9jaGVja3MsIGFjdGlvbnMpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmluZm8oX2RhdGEpOw0KICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHBheUNhcmQuY2xhc3NMaXN0LnJlbW92ZSgnbG9hZGluZycpOw0KICAgICAgICAgICAgfSwNCg0KICAgICAgICAgICAgLy8gU0VUUyBVUCBUSEUgVFJBTlNBQ1RJT04gV0hFTiBBIFBBWU1FTlQgQlVUVE9OIElTIENMSUNLRUQgLi4uDQogICAgICAgICAgICBjcmVhdGVPcmRlcjogZnVuY3Rpb24oZGF0YSwgYWN0aW9ucykgew0KICAgICAgICAgICAgICAgIGlmKG91dHB1dCkgb3V0cHV0LmlubmVySFRNTCA9ICcnOw0KICAgICAgICAgICAgICAgIGlmKHBheUNhcmQpIHBheUNhcmQuY2xhc3NMaXN0LmFkZCgncHJvY2Vzc2luZycpOw0KICAgICAgICAgICAgICAgIGlmKF9jaGVja0Jhbkxpc3QoX2RhdGEpKSB7DQogICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5lcnJvcignQkFOTkVEIScpOw0KICAgICAgICAgICAgICAgICAgICBfbG9nQmFubmVkKF9kYXRhKTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gYWN0aW9ucy5vcmRlci5jcmVhdGUoew0KICAgICAgICAgICAgICAgICAgICBwdXJjaGFzZV91bml0czogWyBvcmRlckRhdGEgXSwNCiAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25fY29udGV4dDogew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJhbmRfbmFtZTogJ0dyYXBoaXN0dWRpbyAtIEl0YWx5JywNCiAgICAgICAgICAgICAgICAgICAgICAgIHNoaXBwaW5nX3ByZWZlcmVuY2U6ICdOT19TSElQUElORycNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfSwNCg0KICAgICAgICAgICAgLy8gRklOQUxJWkUgVEhFIFRSQU5TQUNUSU9OIC4uLg0KICAgICAgICAgICAgb25BcHByb3ZlOiBmdW5jdGlvbihkYXRhLCBhY3Rpb25zKSB7DQogICAgICAgICAgICAgICAgb3V0cHV0LmNsYXNzTGlzdC5yZW1vdmUoJ2Vycm9yJyk7DQogICAgICAgICAgICAgICAgaWYocGF5Q2FyZCkgcGF5Q2FyZC5jbGFzc0xpc3QuYWRkKCdwcm9jZXNzaW5nJyk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGFjdGlvbnMub3JkZXIuY2FwdHVyZSgpLnRoZW4oZnVuY3Rpb24ob3JkZXJEYXRhKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDQVBUVVJFIFBBWU1FTlQgUkVTVUxUJywgb3JkZXJEYXRhLCBKU09OLnN0cmluZ2lmeShvcmRlckRhdGEsIG51bGwsIDIpKTsNCiAgICAgICAgICAgICAgICAgICAgbGV0IHRyYW5zYWN0aW9uID0gb3JkZXJEYXRhLnB1cmNoYXNlX3VuaXRzWzBdLnBheW1lbnRzLmNhcHR1cmVzWzBdOw0KICAgICAgICAgICAgICAgICAgICBvdXRwdXQuY2xhc3NMaXN0LmFkZCgnc3VjY2VzcycpOw0KDQoNCiAgICAgICAgICAgICAgICAgICAgX3NlbmREYXRhKF9kYXRhLCB0cmFuc2FjdGlvbi5pZCkNCiAgICAgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignREFUQSBQUk9DRVNTRUQhJyk7DQogICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zLnJlZGlyZWN0KHRoYW5rc1VSTCk7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICAgICAgICAgIF91c2VyRmVlZGJhY2soJ3N1Y2Nlc3MnLCBzdWNjZXNzTWVzc2FnZSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9LA0KDQoNCiAgICAgICAgICAgIC8vIEhBTkRMRSBQQVlNRU5UIENBTkNFTCBFVkVOVCAuLi4uDQogICAgICAgICAgICBvbkNhbmNlbDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGlmKHBheUNhcmQpIHBheUNhcmQuY2xhc3NMaXN0LnJlbW92ZSgncHJvY2Vzc2luZycpOw0KICAgICAgICAgICAgICAgIF91c2VyRmVlZGJhY2soJ3dhcm4nLCBjYW5jZWxNZXNzYWdlKTsNCiAgICAgICAgICAgICAgICBpZihvdXRwdXQpICBvdXRwdXQuY2xhc3NMaXN0LnJlbW92ZSgnZXJyb3InKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ09QRVJBVElPTiBDQU5DRUxMRUQgQlkgVVNFUicpDQogICAgICAgICAgICAgICAgLy8gd2luZG93LmxvY2F0aW9uLmhyZWYgPSAiL3lvdXItZXJyb3ItcGFnZS1oZXJlIjsNCiAgICAgICAgICAgIH0sDQoNCiAgICAgICAgICAgIC8vIFBST0NFU1MgUEFZTUVOVCBFUlJPUlMuLi4uDQogICAgICAgICAgICBvbkVycm9yOiBmdW5jdGlvbiAoZXJyKSB7DQogICAgICAgICAgICAgICAgaWYocGF5Q2FyZCkgcGF5Q2FyZC5jbGFzc0xpc3QucmVtb3ZlKCdwcm9jZXNzaW5nJyk7DQogICAgICAgICAgICAgICAgX3VzZXJGZWVkYmFjaygnZXJyb3InLCBlcnJvck1lc3NhZ2UpOw0KICAgICAgICAgICAgICAgIGlmKG91dHB1dCl7DQogICAgICAgICAgICAgICAgICAgIG91dHB1dC5jbGFzc0xpc3QuYWRkKCdlcnJvcicpOw0KICAgICAgICAgICAgICAgICAgICBvdXRwdXQuaW5uZXJIVE1MID0gZXJyb3JNZXNzYWdlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFUlJPUiBEVVJJTkcgUEFZTUVOVCBGTE9XJywgZXJyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSkucmVuZGVyKHBheXBhbEJ1dHRvbkNvbnRhaW5lcik7DQogICAgfSk7DQoNCmxldCBwYXJhbXMgPSAobmV3IFVSTChkb2N1bWVudC5sb2NhdGlvbikpLnNlYXJjaFBhcmFtczsNCmxldCBzaG93U3BsaXRQYXltZW50ID0gTnVtYmVyKHBhcmFtcy5nZXQoInNwIikpOw0KaWYoc2hvd1NwbGl0UGF5bWVudCA9PT0gMSnCoHsNCiAgIGxldCBzcFJvdyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXR5cGU9InNwbGl0LXBheW1lbnQiXScpOw0KICAgaWYoc3BSb3cpIHNwUm93LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTpibG9jayAhaW1wb3J0YW50Jyk7IA0KfQ0KDQo8L3NjcmlwdD4=[\/vc_raw_html][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row]<\/p>\n","protected":false},"author":11,"featured_media":0,"parent":63925,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"cybocfi_hide_featured_image":"","footnotes":""},"class_list":["post-65021","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Workshop Registration (Normal is Boring) - Graphistudio<\/title>\n<meta name=\"description\" content=\"Graphistudio Workshop with Chris Denner and Liam Crawley in the amazing setting of Castle Ceconi, Italy.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.graphistudio.com\/en\/accademia\/normal-is-boring\/registration\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Normal is boring - workshop\" \/>\n<meta property=\"og:description\" content=\"Graphistudio Workshop with Chris Denner and Liam Crawley in the amazing setting of Castle Ceconi, Italy.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.graphistudio.com\/en\/accademia\/normal-is-boring\/registration\/\" \/>\n<meta property=\"og:site_name\" content=\"Graphistudio\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-05T13:53:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.graphistudio.com\/wp-content\/uploads\/2022\/06\/upcoming-1795x1024.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Normal is boring - workshop\" \/>\n<meta name=\"twitter:description\" content=\"Graphistudio Workshop with Chris Denner and Liam Crawley in the amazing setting of Castle Ceconi, Italy.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.graphistudio.com\/wp-content\/uploads\/2022\/06\/upcoming-1795x1024.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"33 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.graphistudio.com\\\/en\\\/accademia\\\/normal-is-boring\\\/registration\\\/\",\"url\":\"https:\\\/\\\/www.graphistudio.com\\\/en\\\/accademia\\\/normal-is-boring\\\/registration\\\/\",\"name\":\"Workshop Registration (Normal is Boring) - Graphistudio\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.graphistudio.com\\\/it\\\/#website\"},\"datePublished\":\"2023-09-05T13:53:24+00:00\",\"dateModified\":\"2023-09-05T13:53:33+00:00\",\"description\":\"Graphistudio Workshop with Chris Denner and Liam Crawley in the amazing setting of Castle Ceconi, Italy.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.graphistudio.com\\\/en\\\/accademia\\\/normal-is-boring\\\/registration\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.graphistudio.com\\\/en\\\/accademia\\\/normal-is-boring\\\/registration\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.graphistudio.com\\\/en\\\/accademia\\\/normal-is-boring\\\/registration\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.graphistudio.com\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Accademia Ceconi\",\"item\":\"https:\\\/\\\/www.graphistudio.com\\\/en\\\/accademia\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Normal is Boring\",\"item\":\"https:\\\/\\\/www.graphistudio.com\\\/en\\\/?page_id=63924\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Workshop Registration (Normal is Boring)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.graphistudio.com\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/www.graphistudio.com\\\/it\\\/\",\"name\":\"Graphistudio\",\"description\":\"Handmade books made in Italy\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.graphistudio.com\\\/it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.graphistudio.com\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.graphistudio.com\\\/it\\\/#organization\",\"name\":\"Graphistudio\",\"url\":\"https:\\\/\\\/www.graphistudio.com\\\/it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.graphistudio.com\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.graphistudio.com\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/Logo_nero.png\",\"contentUrl\":\"https:\\\/\\\/www.graphistudio.com\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/Logo_nero.png\",\"width\":160,\"height\":34,\"caption\":\"Graphistudio\"},\"image\":{\"@id\":\"https:\\\/\\\/www.graphistudio.com\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Workshop Registration (Normal is Boring) - Graphistudio","description":"Graphistudio Workshop with Chris Denner and Liam Crawley in the amazing setting of Castle Ceconi, Italy.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.graphistudio.com\/en\/accademia\/normal-is-boring\/registration\/","og_locale":"es_ES","og_type":"article","og_title":"Normal is boring - workshop","og_description":"Graphistudio Workshop with Chris Denner and Liam Crawley in the amazing setting of Castle Ceconi, Italy.","og_url":"https:\/\/www.graphistudio.com\/en\/accademia\/normal-is-boring\/registration\/","og_site_name":"Graphistudio","article_modified_time":"2023-09-05T13:53:33+00:00","og_image":[{"url":"https:\/\/www.graphistudio.com\/wp-content\/uploads\/2022\/06\/upcoming-1795x1024.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_title":"Normal is boring - workshop","twitter_description":"Graphistudio Workshop with Chris Denner and Liam Crawley in the amazing setting of Castle Ceconi, Italy.","twitter_image":"https:\/\/www.graphistudio.com\/wp-content\/uploads\/2022\/06\/upcoming-1795x1024.jpg","twitter_misc":{"Tiempo de lectura":"33 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.graphistudio.com\/en\/accademia\/normal-is-boring\/registration\/","url":"https:\/\/www.graphistudio.com\/en\/accademia\/normal-is-boring\/registration\/","name":"Workshop Registration (Normal is Boring) - Graphistudio","isPartOf":{"@id":"https:\/\/www.graphistudio.com\/it\/#website"},"datePublished":"2023-09-05T13:53:24+00:00","dateModified":"2023-09-05T13:53:33+00:00","description":"Graphistudio Workshop with Chris Denner and Liam Crawley in the amazing setting of Castle Ceconi, Italy.","breadcrumb":{"@id":"https:\/\/www.graphistudio.com\/en\/accademia\/normal-is-boring\/registration\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.graphistudio.com\/en\/accademia\/normal-is-boring\/registration\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.graphistudio.com\/en\/accademia\/normal-is-boring\/registration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.graphistudio.com\/es\/"},{"@type":"ListItem","position":2,"name":"Accademia Ceconi","item":"https:\/\/www.graphistudio.com\/en\/accademia\/"},{"@type":"ListItem","position":3,"name":"Normal is Boring","item":"https:\/\/www.graphistudio.com\/en\/?page_id=63924"},{"@type":"ListItem","position":4,"name":"Workshop Registration (Normal is Boring)"}]},{"@type":"WebSite","@id":"https:\/\/www.graphistudio.com\/it\/#website","url":"https:\/\/www.graphistudio.com\/it\/","name":"Graphistudio","description":"Handmade books made in Italy","publisher":{"@id":"https:\/\/www.graphistudio.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.graphistudio.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.graphistudio.com\/it\/#organization","name":"Graphistudio","url":"https:\/\/www.graphistudio.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.graphistudio.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/www.graphistudio.com\/wp-content\/uploads\/2018\/01\/Logo_nero.png","contentUrl":"https:\/\/www.graphistudio.com\/wp-content\/uploads\/2018\/01\/Logo_nero.png","width":160,"height":34,"caption":"Graphistudio"},"image":{"@id":"https:\/\/www.graphistudio.com\/it\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.graphistudio.com\/es\/wp-json\/wp\/v2\/pages\/65021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.graphistudio.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.graphistudio.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.graphistudio.com\/es\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.graphistudio.com\/es\/wp-json\/wp\/v2\/comments?post=65021"}],"version-history":[{"count":4,"href":"https:\/\/www.graphistudio.com\/es\/wp-json\/wp\/v2\/pages\/65021\/revisions"}],"predecessor-version":[{"id":65779,"href":"https:\/\/www.graphistudio.com\/es\/wp-json\/wp\/v2\/pages\/65021\/revisions\/65779"}],"up":[{"embeddable":true,"href":"https:\/\/www.graphistudio.com\/es\/wp-json\/wp\/v2\/pages\/63925"}],"wp:attachment":[{"href":"https:\/\/www.graphistudio.com\/es\/wp-json\/wp\/v2\/media?parent=65021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}