### SYNC-TRANSFER 1/1 -- mit sync-entpacken.bat entpacken ### Base64 ### FILE: Synchron_test.html | 19050 PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImRlIj48aGVhZD48bWV0YSBjaGFyc2V0PSJ1dGYt OCI+PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5p dGlhbC1zY2FsZT0xIj4KPHRpdGxlPlBvcnRhbCBVbmlvbiAtIFN5bmNocm9uLVRlc3Q8L3RpdGxl Pgo8c3R5bGU+CiAgYm9keXtmb250OjE0cHgvMS41ICJTZWdvZSBVSSIsc3lzdGVtLXVpLHNhbnMt c2VyaWY7bWFyZ2luOjA7YmFja2dyb3VuZDojMGYxNzIyO2NvbG9yOiNlN2VlZjd9CiAgaGVhZGVy e3BhZGRpbmc6MTZweCAyMHB4O2JhY2tncm91bmQ6IzEyM2M2Njtjb2xvcjojZmZmfQogIGhlYWRl ciBoMXttYXJnaW46MDtmb250LXNpemU6MThweH0KICBoZWFkZXIgLnN1YntvcGFjaXR5Oi44NTtm b250LXNpemU6MTJweDttYXJnaW4tdG9wOjRweDttYXgtd2lkdGg6OTAwcHh9CiAgbWFpbntwYWRk aW5nOjE2cHggMjBweDttYXgtd2lkdGg6MTA0MHB4O21hcmdpbjowIGF1dG99CiAgLmJhcntkaXNw bGF5OmZsZXg7Z2FwOjE0cHg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwO21hcmdp bjo4cHggMCAxNHB4fQogIGJ1dHRvbntmb250OmluaGVyaXQ7cGFkZGluZzo4cHggMTRweDtib3Jk ZXItcmFkaXVzOjhweDtib3JkZXI6MXB4IHNvbGlkICMyYjQ2NjA7YmFja2dyb3VuZDojMWMyYzNm O2NvbG9yOiNlN2VlZjc7Y3Vyc29yOnBvaW50ZXJ9CiAgYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6 IzI0M2E1Mn0KICAuc3VtbWFyeXtmb250LXdlaWdodDo2MDB9CiAgLmJhbm5lcntwYWRkaW5nOjEy cHggMTRweDtib3JkZXItcmFkaXVzOjhweDttYXJnaW46MTBweCAwO2ZvbnQtd2VpZ2h0OjYwMH0K ICAuYmFubmVyLmVycntiYWNrZ3JvdW5kOiM1YTFmMjQ7Y29sb3I6I2ZmZDlkZDtib3JkZXI6MXB4 IHNvbGlkICM4YTJmMzh9CiAgLmJhbm5lci5va3tiYWNrZ3JvdW5kOiMxZTRhMmU7Y29sb3I6I2Q2 ZjVlMDtib3JkZXI6MXB4IHNvbGlkICMyZjdhNGF9CiAgdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNv bGxhcHNlO3dpZHRoOjEwMCU7Zm9udC1zaXplOjEzcHh9CiAgdGgsdGR7dGV4dC1hbGlnbjpsZWZ0 O3BhZGRpbmc6NnB4IDEwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzI0MzI0NH0KICB0aHtw b3NpdGlvbjpzdGlja3k7dG9wOjA7YmFja2dyb3VuZDojMTYyMDJlfQogIHRkLm51bXt0ZXh0LWFs aWduOnJpZ2h0O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztmb250LWZhbWlseTpD b25zb2xhcyxtb25vc3BhY2V9CiAgLnN0e2ZvbnQtd2VpZ2h0OjcwMDt3aGl0ZS1zcGFjZTpub3dy YXB9CiAgLm9rIC5zdHtjb2xvcjojNWZkMDhhfQogIC5iYWQgLnN0e2NvbG9yOiNmZjdiODd9CiAg LmV4dHJhIC5zdHtjb2xvcjojZmZjZjZifQogIHRyLmJhZCB0ZHtiYWNrZ3JvdW5kOiMyYTE0MTh9 CiAgdHIuZXh0cmEgdGR7YmFja2dyb3VuZDojMmEyNDEwfQogIC5wYXRoe2ZvbnQtZmFtaWx5OkNv bnNvbGFzLG1vbm9zcGFjZX0KICAubXV0ZWR7b3BhY2l0eTouN30KICAucGlsbHMgc3BhbntkaXNw bGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjJweCA4cHg7Ym9yZGVyLXJhZGl1czoxMHB4O21hcmdp bi1yaWdodDo4cHg7Zm9udC1zaXplOjEycHh9Cjwvc3R5bGU+PC9oZWFkPgo8Ym9keT4KPGhlYWRl cj4KICA8aDE+UG9ydGFsIFVuaW9uIC0gU3luY2hyb24tVGVzdDwvaDE+CiAgPGRpdiBjbGFzcz0i c3ViIj5MaWVzdCBiZWltIExhZGVuIGRhcyBlY2h0ZSBWZXJ6ZWljaG5pcyB1ZWJlciBkZW4gbGF1 ZmVuZGVuIEhlbGZlciAoL2FwaS90cmVlKSB1bmQgdmVyZ2xlaWNodCBqZWRlIERhdGVpZ3JvZXNz ZSBtaXQgZGVuIGhpZXIgaGludGVybGVndGVuIDxiPlNvbGw8L2I+LUdyb2Vzc2VuICg9IFJlcG8t U3RhbmQgenVtIEJ1aWxkOyBuYWNoIGRlbSBTeW5jIG11c3MgYWxsZXMgaWRlbnRpc2NoIHNlaW4p LiBGaW5kZXQgPGI+RkVITFQ8L2I+ICh2ZXJnZXNzZW4vbmljaHQgZ2VzeW5jdCksIDxiPlZFUkFM VEVUPC9iPiAoR3JvZXNzZSBhYndlaWNoZW5kKSB1bmQgPGI+VU5FUldBUlRFVDwvYj4gKHp1IHZp ZWwpLiBEaWVzZSBTZWl0ZSB1ZWJlciBodHRwOi8vMTI3LjAuMC4xOiZsdDtQb3J0Jmd0Oy9TeW5j aHJvbl90ZXN0Lmh0bWwgYmVpIGxhdWZlbmRlciBwb3J0YWxfaGVsZmVyLnBzMSBvZWZmbmVuLjwv ZGl2Pgo8L2hlYWRlcj4KPG1haW4+CiAgPGRpdiBpZD0iYmFubmVyIj48L2Rpdj4KICA8ZGl2IGNs YXNzPSJiYXIiPgogICAgPGJ1dHRvbiBvbmNsaWNrPSJydW4oKSI+RXJuZXV0IHBydWVmZW48L2J1 dHRvbj4KICAgIDxzcGFuIGNsYXNzPSJzdW1tYXJ5IiBpZD0ic3VtbWFyeSI+UHJ1ZWZlIC4uLjwv c3Bhbj4KICAgIDxsYWJlbCBjbGFzcz0ibXV0ZWQiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9 Im9ubHliYWQiIGNoZWNrZWQ+IG51ciBQcm9ibGVtZTwvbGFiZWw+CiAgPC9kaXY+CiAgPHRhYmxl Pjx0aGVhZD48dHI+PHRoPlN0YXR1czwvdGg+PHRoPkRhdGVpPC90aD48dGggY2xhc3M9Im51bSI+ U29sbDwvdGg+PHRoIGNsYXNzPSJudW0iPkxva2FsPC90aD48dGggY2xhc3M9Im51bSI+RGlmZjwv dGg+PC90cj48L3RoZWFkPgogIDx0Ym9keSBpZD0icm93cyI+PC90Ym9keT48L3RhYmxlPgogIDxw IGNsYXNzPSJtdXRlZCIgaWQ9InN0YW1wIj48L3A+CjwvbWFpbj4KPHNjcmlwdD4KY29uc3QgRVhQ RUNURUQgPSB7ImFzc2V0cy9jc3MvcG9ydGFsLmNzcyI6IDExNjU3MSwgImFzc2V0cy9pbWcvcG9s aXplaXN0ZXJuLnBuZyI6IDY2MTkxLCAiYXNzZXRzL2ltZy9wb3J0YWwtcmVhZG1lLnBuZyI6IDY1 MTEyLCAiYXNzZXRzL2ltZy9wb3J0YWwucG5nIjogMTcxOTMsICJhc3NldHMvanMvYWRtaW4vaGlz dG9yaWUuanMiOiA3NDEwLCAiYXNzZXRzL2pzL2FkbWluL25hdmVkaXQuanMiOiAxNDE4NywgImFz c2V0cy9qcy9hZG1pbi9yb2xlcy5qcyI6IDE3MzY2LCAiYXNzZXRzL2pzL2FkbWluL3NldHRpbmdz LmpzIjogMjQ5NjIsICJhc3NldHMvanMvY29sbGFiL2NvbGxhYi5qcyI6IDE1OTcyLCAiYXNzZXRz L2pzL2NvcmUvY29yZS5qcyI6IDUzNzEwLCAiYXNzZXRzL2pzL2NvcmUvZGF0YXBmbGVnZS5qcyI6 IDM1MjgsICJhc3NldHMvanMvY29yZS9tYWluLmpzIjogOTE0NSwgImFzc2V0cy9qcy9jb3JlL21v ZGFsLmpzIjogNjMyMCwgImFzc2V0cy9qcy9kYXRhLWJhby5qcyI6IDI4NTU0LCAiYXNzZXRzL2pz L2ZlYXR1cmVzL2FydGljbGUuanMiOiAyNDE1NiwgImFzc2V0cy9qcy9mZWF0dXJlcy9hcnp0bGlz dGUuanMiOiAxNDgwNywgImFzc2V0cy9qcy9mZWF0dXJlcy9iYW8uanMiOiAxNTkwNiwgImFzc2V0 cy9qcy9mZWF0dXJlcy9icmVhZGNydW1icy5qcyI6IDI1NDIsICJhc3NldHMvanMvZmVhdHVyZXMv Y29tbWFuZHMuanMiOiA0MDQ2LCAiYXNzZXRzL2pzL2ZlYXR1cmVzL2ZlZWQuanMiOiAxMjUxMywg ImFzc2V0cy9qcy9mZWF0dXJlcy9pbXByZXNzdW0uanMiOiAxMzM2MywgImFzc2V0cy9qcy9mZWF0 dXJlcy9rZW5ud29lcnRlci5qcyI6IDM5NDksICJhc3NldHMvanMvZmVhdHVyZXMvbGlua2NoZWNr LmpzIjogNzc4MiwgImFzc2V0cy9qcy9mZWF0dXJlcy9saW5rY29sLmpzIjogOTkyMywgImFzc2V0 cy9qcy9mZWF0dXJlcy9taWdyYXRlLXVpLmpzIjogMjA4NDksICJhc3NldHMvanMvZmVhdHVyZXMv bmF2LmpzIjogMzU4MTcsICJhc3NldHMvanMvZmVhdHVyZXMvcGFuZWxzLWVkaXQuanMiOiA2ODAy LCAiYXNzZXRzL2pzL2ZlYXR1cmVzL3BhbmVscy5qcyI6IDc1NDMsICJhc3NldHMvanMvZmVhdHVy ZXMvcHJ1ZWZ1bmcuanMiOiA4MTc0LCAiYXNzZXRzL2pzL2ZlYXR1cmVzL3Jvc3Rlci1lZGl0Lmpz IjogMTAxODksICJhc3NldHMvanMvZmVhdHVyZXMvc2VhcmNoLmpzIjogMTMyMTEsICJhc3NldHMv anMvZmVhdHVyZXMvdG9jLmpzIjogMjgyNSwgImFzc2V0cy9qcy9mZWF0dXJlcy93aGF0c25ldy5q cyI6IDM0MzMsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvaWNvbnMvZGVmYXVsdC9pY29ucy5qcyI6 IDg4NzQ2LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL2ljb25zL2RlZmF1bHQvaWNvbnMubWluLmpz IjogODcxOTQsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvaWNvbnMvZGVmYXVsdC9pbmRleC5qcyI6 IDE5OSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9sYW5ncy9kZS5qcyI6IDE4NTczLCAiYXNzZXRz L3ZlbmRvci90aW55bWNlL2xpY2Vuc2UubWQiOiAzMDMsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uv bW9kZWxzL2RvbS9pbmRleC5qcyI6IDE4OSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9tb2RlbHMv ZG9tL21vZGVsLmpzIjogMjk4MjAzLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL21vZGVscy9kb20v bW9kZWwubWluLmpzIjogOTc4NzUsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGFja2FnZS5qc29u IjogNjczLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYWNjb3JkaW9uL2luZGV4Lmpz IjogMjExLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYWNjb3JkaW9uL3BsdWdpbi5q cyI6IDM1MjgxLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYWNjb3JkaW9uL3BsdWdp bi5taW4uanMiOiAxMzU3MSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2Fkdmxpc3Qv aW5kZXguanMiOiAyMDUsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9hZHZsaXN0L3Bs dWdpbi5qcyI6IDEwMDUxLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYWR2bGlzdC9w bHVnaW4ubWluLmpzIjogNDE0OCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2FuY2hv ci9pbmRleC5qcyI6IDIwMiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2FuY2hvci9w bHVnaW4uanMiOiA2NDQ3LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYW5jaG9yL3Bs dWdpbi5taW4uanMiOiAyNjkyLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYXV0b2xp bmsvaW5kZXguanMiOiAyMDgsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9hdXRvbGlu ay9wbHVnaW4uanMiOiA3NjU5LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYXV0b2xp bmsvcGx1Z2luLm1pbi5qcyI6IDMyNjQsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9h dXRvcmVzaXplL2luZGV4LmpzIjogMjE0LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMv YXV0b3Jlc2l6ZS9wbHVnaW4uanMiOiA2MjUzLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdp bnMvYXV0b3Jlc2l6ZS9wbHVnaW4ubWluLmpzIjogMjQ5OSwgImFzc2V0cy92ZW5kb3IvdGlueW1j ZS9wbHVnaW5zL2F1dG9zYXZlL2luZGV4LmpzIjogMjA4LCAiYXNzZXRzL3ZlbmRvci90aW55bWNl L3BsdWdpbnMvYXV0b3NhdmUvcGx1Z2luLmpzIjogNzU5OSwgImFzc2V0cy92ZW5kb3IvdGlueW1j ZS9wbHVnaW5zL2F1dG9zYXZlL3BsdWdpbi5taW4uanMiOiAzMzY1LCAiYXNzZXRzL3ZlbmRvci90 aW55bWNlL3BsdWdpbnMvY2hhcm1hcC9pbmRleC5qcyI6IDIwNSwgImFzc2V0cy92ZW5kb3IvdGlu eW1jZS9wbHVnaW5zL2NoYXJtYXAvcGx1Z2luLmpzIjogMzU5MDMsICJhc3NldHMvdmVuZG9yL3Rp bnltY2UvcGx1Z2lucy9jaGFybWFwL3BsdWdpbi5taW4uanMiOiAxMTE2MCwgImFzc2V0cy92ZW5k b3IvdGlueW1jZS9wbHVnaW5zL2NvZGUvaW5kZXguanMiOiAxOTYsICJhc3NldHMvdmVuZG9yL3Rp bnltY2UvcGx1Z2lucy9jb2RlL3BsdWdpbi5qcyI6IDE4OTksICJhc3NldHMvdmVuZG9yL3Rpbnlt Y2UvcGx1Z2lucy9jb2RlL3BsdWdpbi5taW4uanMiOiA4NzcsICJhc3NldHMvdmVuZG9yL3Rpbnlt Y2UvcGx1Z2lucy9jb2Rlc2FtcGxlL2luZGV4LmpzIjogMjE0LCAiYXNzZXRzL3ZlbmRvci90aW55 bWNlL3BsdWdpbnMvY29kZXNhbXBsZS9wbHVnaW4uanMiOiA5NDMyOCwgImFzc2V0cy92ZW5kb3Iv dGlueW1jZS9wbHVnaW5zL2NvZGVzYW1wbGUvcGx1Z2luLm1pbi5qcyI6IDQ4Mjc5LCAiYXNzZXRz L3ZlbmRvci90aW55bWNlL3BsdWdpbnMvZGlyZWN0aW9uYWxpdHkvaW5kZXguanMiOiAyMjYsICJh c3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9kaXJlY3Rpb25hbGl0eS9wbHVnaW4uanMiOiAx MjMwOSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2RpcmVjdGlvbmFsaXR5L3BsdWdp bi5taW4uanMiOiA0NDc1LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvZW1vdGljb25z L2luZGV4LmpzIjogMjExLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvZW1vdGljb25z L2pzL2Vtb2ppaW1hZ2VzLmpzIjogNDEwMTEyLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdp bnMvZW1vdGljb25zL2pzL2Vtb2ppaW1hZ2VzLm1pbi5qcyI6IDQxNjA5NSwgImFzc2V0cy92ZW5k b3IvdGlueW1jZS9wbHVnaW5zL2Vtb3RpY29ucy9qcy9lbW9qaXMuanMiOiAxODY5MjEsICJhc3Nl dHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9lbW90aWNvbnMvanMvZW1vamlzLm1pbi5qcyI6IDE5 Mjg1NiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2Vtb3RpY29ucy9wbHVnaW4uanMi OiAxNzE1NCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2Vtb3RpY29ucy9wbHVnaW4u bWluLmpzIjogNjYwMSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2Z1bGxzY3JlZW4v aW5kZXguanMiOiAyMTQsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9mdWxsc2NyZWVu L3BsdWdpbi5qcyI6IDQxMDgwLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvZnVsbHNj cmVlbi9wbHVnaW4ubWluLmpzIjogMTU3MzYsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lu cy9oZWxwL2luZGV4LmpzIjogMTk2LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVs cC9qcy9pMThuL2tleW5hdi9hci5qcyI6IDYzNTksICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1 Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L2JnX0JHLmpzIjogNzE3NSwgImFzc2V0cy92ZW5kb3Iv dGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvY2EuanMiOiA1MDc0LCAiYXNzZXRz L3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9jcy5qcyI6IDUwMTMs ICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L2RhLmpz IjogNDQxMCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXlu YXYvZGUuanMiOiA1MTEyLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9p MThuL2tleW5hdi9lbC5qcyI6IDc3MzUsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9o ZWxwL2pzL2kxOG4va2V5bmF2L2VuLmpzIjogNDA2OCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9w bHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvZXMuanMiOiA1MDE5LCAiYXNzZXRzL3ZlbmRvci90 aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9ldS5qcyI6IDQ0MTMsICJhc3NldHMv dmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L2ZhLmpzIjogNTgxOSwg ImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvZmkuanMi OiA0OTUyLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5h di9mcl9GUi5qcyI6IDUwNjMsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pz L2kxOG4va2V5bmF2L2hlX0lMLmpzIjogNTM2NSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVn aW5zL2hlbHAvanMvaTE4bi9rZXluYXYvaGkuanMiOiA3MzIzLCAiYXNzZXRzL3ZlbmRvci90aW55 bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9oci5qcyI6IDQ5NTgsICJhc3NldHMvdmVu ZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L2h1X0hVLmpzIjogNDkyOSwg ImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvaWQuanMi OiA0MzQwLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5h di9pdC5qcyI6IDUyMjYsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kx OG4va2V5bmF2L2phLmpzIjogNTE0MiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hl bHAvanMvaTE4bi9rZXluYXYva2suanMiOiA2OTY4LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3Bs dWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9rb19LUi5qcyI6IDQ4MzAsICJhc3NldHMvdmVuZG9y L3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L21zLmpzIjogNDIyNywgImFzc2V0 cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvbmJfTk8uanMiOiA0 Njg3LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9u bC5qcyI6IDQ2MDksICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4v a2V5bmF2L3BsLmpzIjogNTA3NSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAv anMvaTE4bi9rZXluYXYvcHRfQlIuanMiOiA0NDYwLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3Bs dWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9wdF9QVC5qcyI6IDQ1NTMsICJhc3NldHMvdmVuZG9y L3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L3JvLmpzIjogNTA2NiwgImFzc2V0 cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvcnUuanMiOiA3MTM5 LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9zay5q cyI6IDUxMTgsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5 bmF2L3NsX1NJLmpzIjogNDc3MSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAv anMvaTE4bi9rZXluYXYvc3ZfU0UuanMiOiA0NDAwLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3Bs dWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi90aF9USC5qcyI6IDc3NjcsICJhc3NldHMvdmVuZG9y L3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L3RyLmpzIjogNDcyMywgImFzc2V0 cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvdWsuanMiOiA3NjAy LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi92aS5q cyI6IDUyMjksICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5 bmF2L3poX0NOLmpzIjogNDAyMiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAv anMvaTE4bi9rZXluYXYvemhfVFcuanMiOiA0MTMxLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3Bs dWdpbnMvaGVscC9wbHVnaW4uanMiOiAyMzY2NiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVn aW5zL2hlbHAvcGx1Z2luLm1pbi5qcyI6IDEwOTQ4LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3Bs dWdpbnMvaW1hZ2UvaW5kZXguanMiOiAxOTksICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lu cy9pbWFnZS9wbHVnaW4uanMiOiA0OTE2NywgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5z L2ltYWdlL3BsdWdpbi5taW4uanMiOiAxOTYyNCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVn aW5zL2ltcG9ydGNzcy9pbmRleC5qcyI6IDIxMSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVn aW5zL2ltcG9ydGNzcy9wbHVnaW4uanMiOiAxMTg5MCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9w bHVnaW5zL2ltcG9ydGNzcy9wbHVnaW4ubWluLmpzIjogNDA5MiwgImFzc2V0cy92ZW5kb3IvdGlu eW1jZS9wbHVnaW5zL2luc2VydGRhdGV0aW1lL2luZGV4LmpzIjogMjI2LCAiYXNzZXRzL3ZlbmRv ci90aW55bWNlL3BsdWdpbnMvaW5zZXJ0ZGF0ZXRpbWUvcGx1Z2luLmpzIjogNjY2NiwgImFzc2V0 cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2luc2VydGRhdGV0aW1lL3BsdWdpbi5taW4uanMiOiAz MDY0LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvbGluay9pbmRleC5qcyI6IDE5Niwg ImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2xpbmsvcGx1Z2luLmpzIjogNDM2NTAsICJh c3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9saW5rL3BsdWdpbi5taW4uanMiOiAxNjY5OCwg ImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2xpc3RzL2luZGV4LmpzIjogMTk5LCAiYXNz ZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvbGlzdHMvcGx1Z2luLmpzIjogNzgzNjgsICJhc3Nl dHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9saXN0cy9wbHVnaW4ubWluLmpzIjogMjgyOTIsICJh c3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9tZWRpYS9pbmRleC5qcyI6IDE5OSwgImFzc2V0 cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL21lZGlhL3BsdWdpbi5qcyI6IDQxNTM2LCAiYXNzZXRz L3ZlbmRvci90aW55bWNlL3BsdWdpbnMvbWVkaWEvcGx1Z2luLm1pbi5qcyI6IDE3NTE2LCAiYXNz ZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvbm9uYnJlYWtpbmcvaW5kZXguanMiOiAyMTcsICJh c3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9ub25icmVha2luZy9wbHVnaW4uanMiOiAzNjM1 LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvbm9uYnJlYWtpbmcvcGx1Z2luLm1pbi5q cyI6IDE1NzEsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9wYWdlYnJlYWsvaW5kZXgu anMiOiAyMTEsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9wYWdlYnJlYWsvcGx1Z2lu LmpzIjogMzcwOSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3BhZ2VicmVhay9wbHVn aW4ubWluLmpzIjogMTY0NiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3ByZXZpZXcv aW5kZXguanMiOiAyMDUsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9wcmV2aWV3L3Bs dWdpbi5qcyI6IDM1MTAsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9wcmV2aWV3L3Bs dWdpbi5taW4uanMiOiAxNzQ2LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvcXVpY2ti YXJzL2luZGV4LmpzIjogMjExLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvcXVpY2ti YXJzL3BsdWdpbi5qcyI6IDE0NDM0LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvcXVp Y2tiYXJzL3BsdWdpbi5taW4uanMiOiA1NDA2LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdp bnMvc2F2ZS9pbmRleC5qcyI6IDE5NiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3Nh dmUvcGx1Z2luLmpzIjogMzUyMiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3NhdmUv cGx1Z2luLm1pbi5qcyI6IDE2MTAsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9zZWFy Y2hyZXBsYWNlL2luZGV4LmpzIjogMjIzLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMv c2VhcmNocmVwbGFjZS9wbHVnaW4uanMiOiAzNjE5NywgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9w bHVnaW5zL3NlYXJjaHJlcGxhY2UvcGx1Z2luLm1pbi5qcyI6IDEzNDE5LCAiYXNzZXRzL3ZlbmRv ci90aW55bWNlL3BsdWdpbnMvdGFibGUvaW5kZXguanMiOiAxOTksICJhc3NldHMvdmVuZG9yL3Rp bnltY2UvcGx1Z2lucy90YWJsZS9wbHVnaW4uanMiOiAxMTk4NTMsICJhc3NldHMvdmVuZG9yL3Rp bnltY2UvcGx1Z2lucy90YWJsZS9wbHVnaW4ubWluLmpzIjogNDc5MzEsICJhc3NldHMvdmVuZG9y L3RpbnltY2UvcGx1Z2lucy92aXN1YWxibG9ja3MvaW5kZXguanMiOiAyMjAsICJhc3NldHMvdmVu ZG9yL3RpbnltY2UvcGx1Z2lucy92aXN1YWxibG9ja3MvcGx1Z2luLmpzIjogMjk0NSwgImFzc2V0 cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3Zpc3VhbGJsb2Nrcy9wbHVnaW4ubWluLmpzIjogMTI1 OCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3Zpc3VhbGNoYXJzL2luZGV4LmpzIjog MjE3LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvdmlzdWFsY2hhcnMvcGx1Z2luLmpz IjogMTY3MTksICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy92aXN1YWxjaGFycy9wbHVn aW4ubWluLmpzIjogNTg5NywgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3dvcmRjb3Vu dC9pbmRleC5qcyI6IDIxMSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3dvcmRjb3Vu dC9wbHVnaW4uanMiOiAyMTczMywgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3dvcmRj b3VudC9wbHVnaW4ubWluLmpzIjogMTIxNDksICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMv Y29udGVudC9kYXJrL2NvbnRlbnQuY3NzIjogMTc3MCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9z a2lucy9jb250ZW50L2RhcmsvY29udGVudC5qcyI6IDEyNjcsICJhc3NldHMvdmVuZG9yL3Rpbnlt Y2Uvc2tpbnMvY29udGVudC9kYXJrL2NvbnRlbnQubWluLmNzcyI6IDEyMTYsICJhc3NldHMvdmVu ZG9yL3RpbnltY2Uvc2tpbnMvY29udGVudC9kZWZhdWx0L2NvbnRlbnQuY3NzIjogMTY4NywgImFz c2V0cy92ZW5kb3IvdGlueW1jZS9za2lucy9jb250ZW50L2RlZmF1bHQvY29udGVudC5qcyI6IDEy MDMsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvY29udGVudC9kZWZhdWx0L2NvbnRlbnQu bWluLmNzcyI6IDExNDksICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvY29udGVudC9kb2N1 bWVudC9jb250ZW50LmNzcyI6IDE4MjQsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvY29u dGVudC9kb2N1bWVudC9jb250ZW50LmpzIjogMTMwMywgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9z a2lucy9jb250ZW50L2RvY3VtZW50L2NvbnRlbnQubWluLmNzcyI6IDEyNDgsICJhc3NldHMvdmVu ZG9yL3RpbnltY2Uvc2tpbnMvY29udGVudC90aW55bWNlLTUtZGFyay9jb250ZW50LmNzcyI6IDE3 NzMsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvY29udGVudC90aW55bWNlLTUtZGFyay9j b250ZW50LmpzIjogMTI4MCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9za2lucy9jb250ZW50L3Rp bnltY2UtNS1kYXJrL2NvbnRlbnQubWluLmNzcyI6IDEyMTksICJhc3NldHMvdmVuZG9yL3Rpbnlt Y2Uvc2tpbnMvY29udGVudC93cml0ZXIvY29udGVudC5jc3MiOiAxNzEyLCAiYXNzZXRzL3ZlbmRv ci90aW55bWNlL3NraW5zL2NvbnRlbnQvd3JpdGVyL2NvbnRlbnQuanMiOiAxMjIzLCAiYXNzZXRz L3ZlbmRvci90aW55bWNlL3NraW5zL2NvbnRlbnQvd3JpdGVyL2NvbnRlbnQubWluLmNzcyI6IDEx NzAsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUtZGFyay9jb250ZW50LmNz cyI6IDI4ODI4LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3NraW5zL3VpL294aWRlLWRhcmsvY29u dGVudC5pbmxpbmUuY3NzIjogMjkwNDQsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkv b3hpZGUtZGFyay9jb250ZW50LmlubGluZS5qcyI6IDI2MDc5LCAiYXNzZXRzL3ZlbmRvci90aW55 bWNlL3NraW5zL3VpL294aWRlLWRhcmsvY29udGVudC5pbmxpbmUubWluLmNzcyI6IDI2MDIwLCAi YXNzZXRzL3ZlbmRvci90aW55bWNlL3NraW5zL3VpL294aWRlLWRhcmsvY29udGVudC5qcyI6IDI1 OTQ2LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3NraW5zL3VpL294aWRlLWRhcmsvY29udGVudC5t aW4uY3NzIjogMjU4OTQsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUtZGFy ay9za2luLmNzcyI6IDExNzU5OCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9za2lucy91aS9veGlk ZS1kYXJrL3NraW4uanMiOiA5OTE3OCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9za2lucy91aS9v eGlkZS1kYXJrL3NraW4ubWluLmNzcyI6IDk5MTI5LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3Nr aW5zL3VpL294aWRlLWRhcmsvc2tpbi5zaGFkb3dkb20uY3NzIjogNTk5LCAiYXNzZXRzL3ZlbmRv ci90aW55bWNlL3NraW5zL3VpL294aWRlLWRhcmsvc2tpbi5zaGFkb3dkb20uanMiOiA1NjcsICJh c3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUtZGFyay9za2luLnNoYWRvd2RvbS5t aW4uY3NzIjogNTA4LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3NraW5zL3VpL294aWRlL2NvbnRl bnQuY3NzIjogMjkxMTksICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUvY29u dGVudC5pbmxpbmUuY3NzIjogMjkwNDQsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkv b3hpZGUvY29udGVudC5pbmxpbmUuanMiOiAyNjA3NCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9z a2lucy91aS9veGlkZS9jb250ZW50LmlubGluZS5taW4uY3NzIjogMjYwMjAsICJhc3NldHMvdmVu ZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUvY29udGVudC5qcyI6IDI2MTI2LCAiYXNzZXRzL3Zl bmRvci90aW55bWNlL3NraW5zL3VpL294aWRlL2NvbnRlbnQubWluLmNzcyI6IDI2MDc5LCAiYXNz ZXRzL3ZlbmRvci90aW55bWNlL3NraW5zL3VpL294aWRlL3NraW4uY3NzIjogMTE3NjExLCAiYXNz ZXRzL3ZlbmRvci90aW55bWNlL3NraW5zL3VpL294aWRlL3NraW4uanMiOiA5OTE1MCwgImFzc2V0 cy92ZW5kb3IvdGlueW1jZS9za2lucy91aS9veGlkZS9za2luLm1pbi5jc3MiOiA5OTEwNiwgImFz c2V0cy92ZW5kb3IvdGlueW1jZS9za2lucy91aS9veGlkZS9za2luLnNoYWRvd2RvbS5jc3MiOiA1 OTksICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUvc2tpbi5zaGFkb3dkb20u anMiOiA1NjIsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUvc2tpbi5zaGFk b3dkb20ubWluLmNzcyI6IDUwOCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS90aGVtZXMvc2lsdmVy L2luZGV4LmpzIjogMTk4LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3RoZW1lcy9zaWx2ZXIvdGhl bWUuanMiOiAxMTczMjY2LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3RoZW1lcy9zaWx2ZXIvdGhl bWUubWluLmpzIjogNDQ2NDQxLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3RpbnltY2UubWluLmpz IjogNDU2ODkwLCAiaGVsZmVyL0hlbGZlci1iZWVuZGVuLmJhdCI6IDEzNDksICJoZWxmZXIvUG9y dGFsLVBmbGVnZS1zdGFydGVuLmJhdCI6IDM4ODQsICJoZWxmZXIvY29udHJhY3QuanNvbiI6IDMw NjIsICJoZWxmZXIvcG9ydGFsX2hlbGZlci5wczEiOiA1MzUyMCwgImluZGV4Lmh0bWwiOiAxNDc3 NX07CmNvbnN0IFNUQU1QID0gIlNvbGwgPSBsb2thbGVyIFJlcG8tU3RhbmQgenVtIEJ1aWxkICgy MjAgRGF0ZWllbiwgNjg3NTQyNiBCeXRlcykiOwovLyBEYXRlaWVuLCBkaWUgbG9rYWwgbGllZ2Vu IERVRVJGRU4sIGFiZXIgbmljaHQgenVtIFNvbGwgZ2Vob2VyZW4gKGtlaW4gIlVORVJXQVJURVQi KToKY29uc3QgSUdOT1JFX05BTUVTID0gWyJkYXRhLW5hdi5qcyIsImRhdGEtY29udGVudC5qcyIs InBvcnRhbF9oZWxmZXIucHkiLCJwb3J0YWwtcGZsZWdlLXN0YXJ0ZW4uc2giLCJhZG1pbnMudHh0 IiwicmVkYWt0ZXVyZS50eHQiLCJTeW5jaHJvbl90ZXN0Lmh0bWwiXTsKZnVuY3Rpb24gaWdub3Jl ZChwKXsKICBjb25zdCBiPXAuc3BsaXQoIi8iKS5wb3AoKTsKICBpZihJR05PUkVfTkFNRVMuaW5k ZXhPZihiKT49MCkgcmV0dXJuIHRydWU7CiAgaWYoL1wuKGJha3xzbmFwfGxvZ3xtZHx0bXApJC9p LnRlc3QoYikpIHJldHVybiB0cnVlOwogIGlmKGIuY2hhckF0KDApPT09Il8iICYmIGIuc2xpY2Uo LTMpPT09Ii5weSIpIHJldHVybiB0cnVlOwogIHJldHVybiBmYWxzZTsKfQpmdW5jdGlvbiBmbXQo bil7cmV0dXJuIChuPDB8fG49PT1udWxsKT8iLSI6bi50b0xvY2FsZVN0cmluZygiZGUtREUiKTt9 CmFzeW5jIGZ1bmN0aW9uIHJ1bigpewogIGNvbnN0IHRib2R5PWRvY3VtZW50LmdldEVsZW1lbnRC eUlkKCJyb3dzIik7IHRib2R5LmlubmVySFRNTD0iIjsKICBjb25zdCBiYW5uZXI9ZG9jdW1lbnQu Z2V0RWxlbWVudEJ5SWQoImJhbm5lciIpOyBiYW5uZXIuaW5uZXJIVE1MPSIiOwogIGNvbnN0IG9u bHliYWQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHliYWQiKS5jaGVja2VkOwogIGxldCBh Y3R1YWw9e30sIGVuZHBvaW50TWlzc2luZz1mYWxzZSwgdW5yZWFjaGFibGU9ZmFsc2U7CiAgYXN5 bmMgZnVuY3Rpb24gdHJlZShkaXIpewogICAgY29uc3Qgcj1hd2FpdCBmZXRjaCgiL2FwaS90cmVl P2Rpcj0iK2VuY29kZVVSSUNvbXBvbmVudChkaXIpLHtjYWNoZToibm8tc3RvcmUifSk7CiAgICBp ZihyLnN0YXR1cz09PTQwNCl7ZW5kcG9pbnRNaXNzaW5nPXRydWU7cmV0dXJuO30KICAgIGNvbnN0 IGo9YXdhaXQgci5qc29uKCk7IGlmKGomJmoub2smJmouZmlsZXMpe2ouZmlsZXMuZm9yRWFjaChm PT5hY3R1YWxbZi5wYXRoXT1mLnNpemUpO30KICB9CiAgdHJ5ewogICAgYXdhaXQgdHJlZSgiYXNz ZXRzIik7IGF3YWl0IHRyZWUoImhlbGZlciIpOwogICAgY29uc3Qgcj1hd2FpdCBmZXRjaCgiL2Fw aS9maWxlc2l6ZT9wYXRoPWluZGV4Lmh0bWwiLHtjYWNoZToibm8tc3RvcmUifSk7CiAgICBpZihy LnN0YXR1cz09PTQwNCl7ZW5kcG9pbnRNaXNzaW5nPXRydWU7fSBlbHNlIHsgY29uc3Qgaj1hd2Fp dCByLmpzb24oKTsgaWYoaiYmai5vayYmai5leGlzdHMpe2FjdHVhbFsiaW5kZXguaHRtbCJdPWou c2l6ZTt9IH0KICB9Y2F0Y2goZSl7IHVucmVhY2hhYmxlPXRydWU7IH0KICBpZih1bnJlYWNoYWJs ZSl7CiAgICBiYW5uZXIuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJiYW5uZXIgZXJyIj5IZWxmZXIg bmljaHQgZXJyZWljaGJhci4gRGllc2UgU2VpdGUgYml0dGUgdWViZXIgPGI+aHR0cDovLzEyNy4w LjAuMTombHQ7UG9ydCZndDsvU3luY2hyb25fdGVzdC5odG1sPC9iPiBiZWkgbGF1ZmVuZGVyIHBv cnRhbF9oZWxmZXIucHMxIG9lZmZuZW4gKG5pY2h0IHBlciBmaWxlOi8vKS48L2Rpdj4nOwogICAg ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1bW1hcnkiKS50ZXh0Q29udGVudD0iIjsgcmV0dXJu OwogIH0KICBpZihlbmRwb2ludE1pc3NpbmcpewogICAgYmFubmVyLmlubmVySFRNTD0nPGRpdiBj bGFzcz0iYmFubmVyIGVyciI+RGVyIEhlbGZlciBrZW5udCAvYXBpL3RyZWUgbmljaHQgLT4gPGI+ cG9ydGFsX2hlbGZlci5wczEgaXN0IFZFUkFMVEVUPC9iPi4gRXJzdCBIZWxmZXItYmVlbmRlbi5i YXQsIGRhbm4gcG9ydGFsX2hlbGZlci5wczEgZXJzZXR6ZW4gdW5kIG5ldSBzdGFydGVuLCBkYW5u IGhpZXIgZXJuZXV0IHBydWVmZW4uPC9kaXY+JzsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk KCJzdW1tYXJ5IikudGV4dENvbnRlbnQ9IiI7IHJldHVybjsKICB9CiAgY29uc3Qgcm93cz1bXTsK ICBsZXQgb2tOPTAsIGZlaGx0Tj0wLCBhbHROPTAsIGV4dHJhTj0wOwogIGZvcihjb25zdCBwIG9m IE9iamVjdC5rZXlzKEVYUEVDVEVEKSl7CiAgICBjb25zdCBleHA9RVhQRUNURURbcF0sIGxvYz0o cCBpbiBhY3R1YWwpP2FjdHVhbFtwXTpudWxsOwogICAgaWYobG9jPT09bnVsbCl7IHJvd3MucHVz aChbIkZFSExUIiwiYmFkIixwLGV4cCxudWxsXSk7IGZlaGx0TisrOyB9CiAgICBlbHNlIGlmKGxv YyE9PWV4cCl7IHJvd3MucHVzaChbIlZFUkFMVEVUIiwiYmFkIixwLGV4cCxsb2NdKTsgYWx0Tisr OyB9CiAgICBlbHNlIHsgb2tOKys7IGlmKCFvbmx5YmFkKSByb3dzLnB1c2goWyJha3R1ZWxsIiwi b2siLHAsZXhwLGxvY10pOyB9CiAgfQogIGZvcihjb25zdCBwIG9mIE9iamVjdC5rZXlzKGFjdHVh bCkpewogICAgaWYoIShwIGluIEVYUEVDVEVEKSAmJiAhaWdub3JlZChwKSl7IHJvd3MucHVzaChb IlVORVJXQVJURVQiLCJleHRyYSIscCxudWxsLGFjdHVhbFtwXV0pOyBleHRyYU4rKzsgfQogIH0K ICByb3dzLnNvcnQoKGEsYik9Pntjb25zdCBvPXtGRUhMVDowLFZFUkFMVEVUOjEsVU5FUldBUlRF VDoyLGFrdHVlbGw6M307cmV0dXJuIChvW2FbMF1dLW9bYlswXV0pfHxhWzJdLmxvY2FsZUNvbXBh cmUoYlsyXSk7fSk7CiAgZm9yKGNvbnN0IHIgb2Ygcm93cyl7CiAgICBjb25zdCB0cj1kb2N1bWVu dC5jcmVhdGVFbGVtZW50KCJ0ciIpOyB0ci5jbGFzc05hbWU9clsxXTsKICAgIGNvbnN0IGRpZmY9 KHJbM10hPT1udWxsJiZyWzRdIT09bnVsbCk/Zm10KHJbNF0tclszXSk6Ii0iOwogICAgdHIuaW5u ZXJIVE1MPSc8dGQgY2xhc3M9InN0Ij4nK3JbMF0rJzwvdGQ+PHRkIGNsYXNzPSJwYXRoIj4nK3Jb Ml0rJzwvdGQ+PHRkIGNsYXNzPSJudW0iPicrZm10KHJbM10pKyc8L3RkPjx0ZCBjbGFzcz0ibnVt Ij4nK2ZtdChyWzRdKSsnPC90ZD48dGQgY2xhc3M9Im51bSI+JytkaWZmKyc8L3RkPic7CiAgICB0 Ym9keS5hcHBlbmRDaGlsZCh0cik7CiAgfQogIGNvbnN0IHByb2JsZW1zPWZlaGx0TithbHROK2V4 dHJhTjsKICBpZihwcm9ibGVtcz09PTApeyBiYW5uZXIuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJi YW5uZXIgb2siPkFsbGVzIHN5bmNocm9uOiAnK29rTisnIERhdGVpZW4gc3RpbW1lbi48L2Rpdj4n OyB9CiAgZWxzZSB7IGJhbm5lci5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJhbm5lciBlcnIiPicr cHJvYmxlbXMrJyBQcm9ibGVtKGUpOiAnK2ZlaGx0TisnIEZFSExULCAnK2FsdE4rJyBWRVJBTFRF VCwgJytleHRyYU4rJyBVTkVSV0FSVEVULjwvZGl2Pic7IH0KICBkb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgic3VtbWFyeSIpLnRleHRDb250ZW50PW9rTisiIG9rLCAiK2ZlaGx0TisiIGZlaGxlbiwg IithbHROKyIgdmVyYWx0ZXQsICIrZXh0cmFOKyIgdW5lcndhcnRldCAoU29sbDogIitPYmplY3Qu a2V5cyhFWFBFQ1RFRCkubGVuZ3RoKyIpLiI7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0 YW1wIikudGV4dENvbnRlbnQ9U1RBTVA7Cn0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHli YWQiKS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHJ1bik7CnJ1bigpOwo8L3NjcmlwdD4KPC9i b2R5PjwvaHRtbD4K ### FILE: VERSION | 6 MS4wLjAK ### FILE: assets/css/portal.css | 116571 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDCtyBMZWl0c3RlbGxlLUluZm9ybWF0aW9u c3BvcnRhbAogICBwb3J0YWwuY3NzIOKAlCBEZXNpZ25zeXN0ZW0gKE9wcy1EYXNoYm9hcmQsIGhl bGwgKyBkdW5rZWwpCiAgIEtvbXBsZXR0IG9mZmxpbmUgKGZpbGU6Ly8pLCBrZWluZSBleHRlcm5l biBSZXNzb3VyY2VuLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRva2VucyAqLwo6cm9vdCB7 CiAgLS1mb250OiAiU2Vnb2UgVUkiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFJvYm90bywg IkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgLS1tb25vOiB1aS1tb25vc3Bh Y2UsICJDYXNjYWRpYSBNb25vIiwgIkNvbnNvbGFzIiwgIlNGIE1vbm8iLCBNZW5sbywgbW9ub3Nw YWNlOwoKICAvKiBFY2stUnVuZHVuZ2VuIOKAlCBlaW4gTWFzdGVyICgtLXJhZGl1cykgdHJlaWJ0 IGRpZSBnYW56ZSBTa2FsYSAoUGhhc2UgMTIsIGRhdGVuZ2V0cmllYmVuIHZpYSBQLlVJX1ZBUlMp LgogICAgIEJlaG9lcmRlbi1DRCAoUGhhc2UgMTQpOiBydWhpZyAmIG1vZGVyYXQ7IC0tci1tZCA9 PSAtLXJhZGl1cywgZGllIGFuZGVyZW4gbGVpdGVuIHBlciBjYWxjKCkgYWIKICAgICAtPiA1Lzgv MTAvMTQgcHggKGRlY2t1bmdzZ2xlaWNoIHp1ciBEZXNpZ24tUmVmZXJlbnopLiBEaWNodGUtUHJl c2V0IHNrYWxpZXJ0IG51ciAtLXJhZGl1cy4gKi8KICAtLXJhZGl1czogOHB4OwogIC0tci1zbTog Y2FsYyh2YXIoLS1yYWRpdXMpIC0gM3B4KTsgIC0tci1tZDogdmFyKC0tcmFkaXVzKTsgIC0tci1s ZzogY2FsYyh2YXIoLS1yYWRpdXMpICsgMnB4KTsgIC0tci14bDogY2FsYyh2YXIoLS1yYWRpdXMp ICsgNnB4KTsKICAtLXItcGlsbDogOTk5cHg7CiAgLS1zcDogNHB4OwogIC0tcmFpbC1sOiAyNjhw eDsKICAtLXJhaWwtcjogNTYwcHg7CiAgLS1iYXItaDogNjJweDsKICAtLXJlYWQ6IDc0Y2g7ICAg ICAgICAgICAgICAgICAvKiBMZXNlYnJlaXRlIGZ1ZXIgQXJ0aWtlbCAoUGhhc2UgOCkgKi8KICAt LWhlYWRlci1iZzogIzE0NTI5YjsgICAgICAgICAvKiBEZWZhdWx0LUhlYWRlciAoc291dmVyYWVu ZXMgQmxhdSk7IENELU1hcmtlIHVlYmVyc2NocmVpYnQgdmlhIGFwcGx5QnJhbmRDb2xvcnMgKi8K ICAtLXJpbmc6IDAgMCAwIDJweCB2YXIoLS1iZyksIDAgMCAwIDRweCB2YXIoLS1icmFuZCk7ICAg ICAvKiBGb2t1cy1SaW5nIChQaGFzZSA4KSAqLwogIC0tZWFzZTogY3ViaWMtYmV6aWVyKC4yMiwu NjEsLjM2LDEpOwogIC8qIE1vdGlvbi1Ub2tlbnMgKFBoYXNlIDEyLCBBcHBsZS1ISUcpOiBrbGFy ZSBEYXVlcm4gKyBEZWNlbC0vYmV0b250ZSBFYXNpbmdzLiBSZWR1Y2VkLU1vdGlvbiBuZXV0cmFs aXNpZXJ0LiAqLwogIC0tZHVyLTE6IDEyMG1zOyAgLS1kdXItMjogMjAwbXM7ICAtLWR1ci0zOiAz MjBtczsKICAtLWVhc2Utb3V0OiBjdWJpYy1iZXppZXIoLjMyLC43MiwwLDEpOyAgICAgICAgICAv KiBzYW5mdGVzIEF1c3NjaHdpbmdlbiAoQXBwbGUtRGVjZWwpICovCiAgLS1lYXNlLWVtcGg6IGN1 YmljLWJlemllciguNSwxLjMsLjcsMSk7ICAgICAgICAgLyogYmV0b250L2ZlZGVybmQgKFRvZ2ds ZXMsIFBvcCkgKi8KICAvKiBNYXRlcmlhbGllbiAoUGhhc2UgMTIsIGRlemVudGUgVHJhbnNsdXpl bnovVmlicmFuY3kpOiBmcm9zdGVkIENocm9tZSDigJQgVG9wYmFyICYgT3ZlcmxheXMuCiAgICAg SW5oYWx0cy1LYXJ0ZW4gYmxlaWJlbiBvcGFrLiAtLW1hdC1iYXIgZm9sZ3QgZGVyIENELU1hcmtl ICgtLWhlYWRlci1iZykuIC0tbWF0LXBvcCBwcm8gVGhlbWUuCiAgICAgQmVpIHByZWZlcnMtcmVk dWNlZC10cmFuc3BhcmVuY3kgLT4gb3Bha2UgRmxhZWNoZW4gKyBCbHVyIDAgKEJsb2NrIHVudGVu KS4gKi8KICAtLWJsdXItYmFyOiAyMHB4OyAgLS1ibHVyLXBvcDogMTRweDsgIC0tbWF0LXNhdHVy YXRlOiAxLjY7CiAgLS1tYXQtYmFyOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWhlYWRlci1i ZykgODYlLCB0cmFuc3BhcmVudCk7CgogIC8qIC0tLSBWaXN1ZWxsZSBJZGVudGl0YWV0IChha2Fk ZW1pc2NoLXNhY2hsaWNoKTogYmVuYW5udGUgU2thbGVuIHN0YXR0IE1hZ2ljLU51bWJlcnMgLS0t ICovCiAgLyogVHlwby1Ta2FsYSAoUGhhc2UgMTI6IGFuIEFwcGxlLVJhbXAganVzdGllcnQsIEJh c2lzIDE1cHgpICovCiAgLS1mcy0yeHM6IDExcHg7ICAgIC0tZnMteHM6IDEycHg7ICAgIC0tZnMt c206IDEzcHg7ICAgLS1mcy1iYXNlOiAxNXB4OwogIC0tZnMtbWQ6IDE3cHg7ICAgICAtLWZzLWxn OiAyMHB4OyAgICAtLWZzLXhsOiAyNHB4OyAgIC0tZnMtMnhsOiAzMHB4OwogIC0tbGgtdGlnaHQ6 IDEuMjU7ICAtLWxoLWJhc2U6IDEuNDc7ICAtLWxoLXJlYWQ6IDEuNjU7CiAgLS10cmFja2luZy10 aWdodDogLTAuMDEyZW07ICAgLyogbGVpY2h0ZSBuZWdhdGl2ZSBMYXVmd2VpdGUgZnVlciBncm9z c2UgSGVhZGluZ3MgKEhJRykgKi8KICAtLXRyYWNraW5nLWNhcDogLjA4ZW07ICAgICAgICAvKiB1 cHBlcmNhc2UtbW9ubyBMYWJlbHMgKFJhaWwtS29lcGZlLCBLYXJ0ZW4pIOKAlCBlbnRzY2hhZXJm dCAqLwogIC8qIFNwYWNpbmctU2thbGEgKEJhc2lzIC0tc3ApICovCiAgLS1zcC0xOiA0cHg7ICAt LXNwLTI6IDhweDsgIC0tc3AtMzogMTJweDsgIC0tc3AtNDogMTZweDsgIC0tc3AtNTogMjBweDsg IC0tc3AtNjogMjRweDsgIC0tc3AtNzogMjhweDsgIC0tc3AtODogMzJweDsKICAvKiBNb2RhbC1H cm9lc3NlbnN0dWZlbiAobG9lc2VuIGFkLWhvYyBweC1CcmVpdGVuIGFiKSAqLwogIC0tbW9kYWwt c206IDQ4MHB4OyAgLS1tb2RhbC1tZDogNjQwcHg7ICAtLW1vZGFsLWxnOiA4NjBweDsgIC0tbW9k YWwteGw6IDExMDBweDsKICAvKiBaLUluZGV4LUxlaXRlciAobG9lc3QgdmVyc3RyZXV0ZSBNYWdp Yy1OdW1iZXJzIGFiKSAqLwogIC0tei1yYWlsOiA1MDsgIC0tei10b3BiYXI6IDQwOyAgLS16LWRy b3Bkb3duOiA2MDsgIC0tei1vdmVybGF5OiA4MDsKICAtLXotcG9wb3ZlcjogMTEwMDsgIC0tei1t b2RhbDogMTIwMDsgIC0tei1saWdodGJveDogMTMwMDsgIC0tei10b2FzdDogMTQwMDsKICAvKiBT ZW1hbnRpc2NoZSBGbGFlY2hlbi1BbGlhc2UgKHN1YnN0aXR1aWVyZW4gdGhlbWVkIC0tYmcqIHp1 ciBOdXR6dW5nc3plaXQpICovCiAgLS1zdXJmYWNlLTE6IHZhcigtLWJnKTsgIC0tc3VyZmFjZS0y OiB2YXIoLS1iZy0yKTsgIC0tc3VyZmFjZS0zOiB2YXIoLS1iZy0zKTsKICAtLW9uLWJyYW5kOiB2 YXIoLS1hY2NlbnQtaW5rKTsgICAvKiBUZXh0ZmFyYmUgYXVmIEJyYW5kLUZsYWVjaGVuICovCiAg LS1lbGV2LTM6IHZhcigtLXNoYWRvdyk7ICAgICAgICAgIC8qIE1vZGFsZS9MaWdodGJveCDigJQg PSBCZXN0YW5kcy1TY2hhdHRlbiAqLwogIC8qIFBERi1TeW1ib2wgYWxzIFNWRy1NYXNrZSAoZnVl ciBmaWd1cmUuZW1iZWQucGRmOjpiZWZvcmUpICovCiAgLS1wZGYtaWNvOiB1cmwoImRhdGE6aW1h Z2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3 Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nYmxhY2snIHN0cm9rZS13aWR0aD0n Micgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ3Bh dGggZD0nTTE0IDNIN2EyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAw IDItMlY4WicvJTNFJTNDcGF0aCBkPSdNMTQgM3Y1aDVNOSAxM2g2TTkgMTdoNicvJTNFJTNDL3N2 ZyUzRSIpOwoKICAvKiBTaWduYWxmYXJiZW4g4oCTIGtvbnN0YW50ZSBDaHJvbWEvSGVsbGlna2Vp dCwgbnVyIEh1ZSB2YXJpaWVydCAqLwogIC0tZGFuZ2VyOiAgb2tsY2goMC42MiAwLjIwIDI1KTsK ICAtLWRhbmdlci1kOm9rbGNoKDAuNTIgMC4yMCAyNSk7CiAgLS13YXJuOiAgICBva2xjaCgwLjc3 IDAuMTQgNzUpOwogIC0tb2s6ICAgICAgb2tsY2goMC43MCAwLjEyIDE2Mik7CiAgLS1pbmZvOiAg ICBva2xjaCgwLjY4IDAuMTEgMjM1KTsKICAtLXZpb2xldDogIG9rbGNoKDAuNjYgMC4xMyAzMDAp OwogIC0tdGVhbDogICAgb2tsY2goMC43MCAwLjEwIDIwMCk7Cn0KCi8qIEhFTEwgKFN0YW5kYXJk KSDigJQgcnVoaWdlcywgaGVsbGVzIEJlaG9lcmRlbi1DRCwgZWluIHNvdXZlcmFlbmVzIEJsYXUg KFBoYXNlIDE0KS4KICAgV2VydGUgZGVja3VuZ3NnbGVpY2ggenVyIERlc2lnbi1SZWZlcmVuejsg YmVuYW5udGUgVG9rZW5zICgtLWJyYW5kLXN0cm9uZy8tc29mdCwgLS1jcmVzdCwKICAgLS0qLXNv ZnQsIC0tZm9jdXMsIC0tc2hhZG93LXNtKSBlcmdhZW56dCwgZGFtaXQgS29tcG9uZW50ZW4gMTox IHBvcnRpZXJ0IHdlcmRlbiBrb2VubmVuLiAqLwo6cm9vdCwgOnJvb3RbZGF0YS10aGVtZT0ibGln aHQiXSB7CiAgY29sb3Itc2NoZW1lOiBsaWdodDsKICAtLWJnOiAgICAgICAgI2VjZWZmNDsKICAt LWJnLTI6ICAgICAgI2ZmZmZmZjsKICAtLWJnLTM6ICAgICAgI2YzZjZmYTsKICAtLWJnLWhvdjog ICAgI2U4ZWRmNDsKICAtLWxpbmU6ICAgICAgI2RiZTFlYTsKICAtLWxpbmUtMjogICAgI2M0Y2Rk YTsKICAtLXRleHQ6ICAgICAgIzE1MjAyZTsKICAtLXRleHQtZGltOiAgIzQ1NTc2YzsKICAtLXRl eHQtZm50OiAgIzcyODM5YTsKICAtLWJyYW5kOiAgICAgICAgIzE0NTI5YjsKICAtLWJyYW5kLTI6 ICAgICAgIzE0NTI5YjsgICAvKiBnZWZ1ZWxsdGVyIEFremVudCAoPSAtLWJyYW5kIGltIEJlaC4t Q0QpOyBhcHBseUJyYW5kQ29sb3JzIGxlaXRldCBiZWkgTWFya2UgYWIgKi8KICAtLWJyYW5kLXN0 cm9uZzogIzBlNDE3YjsKICAtLWJyYW5kLXNvZnQ6ICAgI2U3ZjBmYjsKICAtLWFjY2VudC1pbms6 I2ZmZmZmZjsKICAtLWNyZXN0OiAgICAgIzEwM2E2YjsgICAgICAvKiBmZXN0ZXMgSWRlbnRpdGFl dHMtQmxhdSBmdWVycyBMb2dvLUZlbGQgKi8KICAtLWZvY3VzOiAgICAgIzFmNmZkNjsKICAtLWRh bmdlcjogICAgI2MwMjgzYTsgIC0tZGFuZ2VyLWQ6ICNhMDFlMmU7ICAtLWRhbmdlci1zb2Z0OiAj ZmRlY2VlOwogIC0td2FybjogICAgICAjOWE2NjA4OyAgLS13YXJuLXNvZnQ6ICNmYmYyZGQ7CiAg LS1vazogICAgICAgICMxYzdhNGQ7CiAgLS1obC1pbmZvOiAgICMyZjZmYjA7ICAtLWhsLWFsZXJ0 OiAgI2MwMzkyYjsgIC0taGwtdXJnZW50OiAjYzQ2YTEwOyAgIC8qIE1lbGR1bmdzLUhlcnZvcmhl YnVuZyAoRWluc3RlbGx1bmdlbikgKi8KICAtLW5mZDogICAgICAgI2I1NjUxZDsgICAvKiBWUy1O ZkQtRWluc3R1ZnVuZ3MtQmFkZ2UgKi8KICAtLXNoYWRvdy1zbTogMCAxcHggMnB4IHJnYmEoMTUs MzMsNTUsLjA3KSwgMCAxcHggMXB4IHJnYmEoMTUsMzMsNTUsLjA0KTsKICAtLXNoYWRvdzogICAg MCAxOHB4IDQ0cHggLTIwcHggcmdiYSgxNSwzMyw1NSwuMzQpLCAwIDRweCAxMnB4IC04cHggcmdi YSgxNSwzMyw1NSwuMjIpOwogIC0tZ2xvdzogIDAgMCAwIDFweCBjb2xvci1taXgoaW4gb2tsYWIs IHZhcigtLWJyYW5kKSA0MCUsIHRyYW5zcGFyZW50KTsKICAtLWVsZXYtMTogMCAxcHggMnB4IHJn YmEoMjAsMzUsNjAsLjA2KSwgMCA4cHggMjBweCAtMTJweCByZ2JhKDIwLDM1LDYwLC4xOCk7ICAg LyogS2FydGVuICovCiAgLS1lbGV2LTI6IDAgMTRweCAzNnB4IC0xNnB4IHJnYmEoMjAsMzUsNjAs LjI0KSwgMCA0cHggMTBweCAtNnB4IHJnYmEoMjAsMzUsNjAsLjEyKTsgLyogUG9wb3ZlciAqLwog IC0tbWF0LXBvcDogdmFyKC0tYmctMik7ICAgLyogUG9wb3Zlci9PdmVybGF5IG9wYWsgKEJlaC4t Q0QpICovCn0KCi8qIERVTktFTCAoc2FjaGxpY2hlciBVbXNjaGFsdGVyKSAqLwo6cm9vdFtkYXRh LXRoZW1lPSJkYXJrIl0gewogIGNvbG9yLXNjaGVtZTogZGFyazsKICAtLWJnOiAgICAgICAgIzBm MTUxZDsKICAtLWJnLTI6ICAgICAgIzE4MjIzMDsKICAtLWJnLTM6ICAgICAgIzFmMmIzYTsKICAt LWJnLWhvdjogICAgIzI4MzU0NTsKICAtLWxpbmU6ICAgICAgIzJjM2E0YzsKICAtLWxpbmUtMjog ICAgIzNiNGI2MDsKICAtLXRleHQ6ICAgICAgI2VlZjJmODsKICAtLXRleHQtZGltOiAgI2FhYjhj OTsKICAtLXRleHQtZm50OiAgIzdhOGE5ZDsKICAtLWJyYW5kOiAgICAgICAgIzZhYTllZjsKICAt LWJyYW5kLTI6ICAgICAgIzZhYTllZjsKICAtLWJyYW5kLXN0cm9uZzogIzg2YmJmNDsKICAtLWJy YW5kLXNvZnQ6ICAgcmdiYSgxMDYsMTY5LDIzOSwuMTYpOwogIC0tYWNjZW50LWluazojMGExNDIw OwogIC0tY3Jlc3Q6ICAgICAjMGMyYTRmOwogIC0tZm9jdXM6ICAgICAjNmFhOWVmOwogIC0tZGFu Z2VyOiAgICAjZTA1NjZhOyAgLS1kYW5nZXItZDogI2M0M2U1MjsgIC0tZGFuZ2VyLXNvZnQ6IHJn YmEoMjI0LDg2LDEwNiwuMTYpOwogIC0td2FybjogICAgICAjZTBhODM4OyAgLS13YXJuLXNvZnQ6 IHJnYmEoMjI0LDE2OCw1NiwuMTYpOwogIC0tb2s6ICAgICAgICAjNDZiZTg2OwogIC0taGwtaW5m bzogICAjNWFhMGUwOyAgLS1obC1hbGVydDogICNlMDU2NmE7ICAtLWhsLXVyZ2VudDogI2YwYTIz YTsgICAvKiBNZWxkdW5ncy1IZXJ2b3JoZWJ1bmcgKEVpbnN0ZWxsdW5nZW4pICovCiAgLS1uZmQ6 ICAgICAgICNkNjk0M2Y7ICAgLyogVlMtTmZELUVpbnN0dWZ1bmdzLUJhZGdlIChEdW5rZWwpICov CiAgLS1zaGFkb3ctc206IDAgMXB4IDJweCByZ2JhKDAsMCwwLC40KTsKICAtLXNoYWRvdzogICAg MCAyMnB4IDUwcHggLTIycHggcmdiYSgwLDAsMCwuNzUpLCAwIDRweCAxNHB4IC04cHggcmdiYSgw LDAsMCwuNik7CiAgLS1nbG93OiAgMCAwIDAgMXB4IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0t YnJhbmQpIDM1JSwgdHJhbnNwYXJlbnQpOwogIC0tZWxldi0xOiAwIDFweCAzcHggcmdiYSgwLDAs MCwuMzApLCAwIDZweCAxNnB4IC0xMHB4IHJnYmEoMCwwLDAsLjUpOyAgIC8qIEthcnRlbiAqLwog IC0tZWxldi0yOiAwIDEycHggMzJweCAtMTRweCByZ2JhKDAsMCwwLC42MiksIDAgNHB4IDEwcHgg LTZweCByZ2JhKDAsMCwwLC40NSk7IC8qIFBvcG92ZXIgKi8KICAtLW1hdC1wb3A6IHZhcigtLWJn LTIpOwp9CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSBSZXNldCAqLwoqIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQpodG1s LCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9CmJvZHkgewogIG1hcmdpbjogMDsKICBmb250LWZhbWls eTogdmFyKC0tZm9udCk7CiAgYmFja2dyb3VuZDogdmFyKC0tYmcpOwogIGNvbG9yOiB2YXIoLS10 ZXh0KTsKICBmb250LXNpemU6IHZhcigtLWZzLWJhc2UpOwogIGxpbmUtaGVpZ2h0OiB2YXIoLS1s aC1iYXNlKTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICB0ZXh0LXJl bmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5Owp9Cjo6c2VsZWN0aW9uIHsgYmFja2dyb3VuZDog dmFyKC0tYnJhbmQtc29mdCk7IGNvbG9yOiB2YXIoLS1icmFuZC1zdHJvbmcpOyB9CmEgeyBjb2xv cjogaW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9CmJ1dHRvbiB7IGZvbnQ6IGluaGVy aXQ7IGNvbG9yOiBpbmhlcml0OyBjdXJzb3I6IHBvaW50ZXI7IGJvcmRlcjogMDsgYmFja2dyb3Vu ZDogbm9uZTsgfQppbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCB7IGZvbnQ6IGluaGVyaXQ7IGNvbG9y OiBpbmhlcml0OyB9Cjpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZv Y3VzKTsgb3V0bGluZS1vZmZzZXQ6IDJweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IH0K Ci8qIFJlZHVjZWQtTW90aW9uOiBBbmltYXRpb25lbi9UcmFuc2l0aW9ucy9TbW9vdGgtU2Nyb2xs IHJlc3Bla3R2b2xsIGFic2NoYWx0ZW4gKFBoYXNlIDgsIGExMXkpLiAqLwpAbWVkaWEgKHByZWZl cnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogICosICo6OmJlZm9yZSwgKjo6YWZ0ZXIgeyBh bmltYXRpb24tZHVyYXRpb246IC4wMDFtcyAhaW1wb3J0YW50OyBhbmltYXRpb24taXRlcmF0aW9u LWNvdW50OiAxICFpbXBvcnRhbnQ7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMDAxbXMgIWlt cG9ydGFudDsgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvICFpbXBvcnRhbnQ7IH0KfQoKLyogUmVkdWNl ZC1UcmFuc3BhcmVuY3k6IE1hdGVyaWFsaWVuIG9wYWsgc2NoYWx0ZW4sIEJsdXIgZW50ZmVybmVu IChQaGFzZSAxMiwgYTExeSkuICovCkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLXRyYW5zcGFyZW5j eTogcmVkdWNlKSB7CiAgOnJvb3QgeyAtLW1hdC1iYXI6IHZhcigtLWhlYWRlci1iZyk7IC0tbWF0 LXBvcDogdmFyKC0tYmctMik7IH0KICAudG9wYmFyLCAuY21kLXJlc3VsdHMsIC5hei1wYW5lbCwg Lm92ZXJsYXktYmcsCiAgZGlhbG9nLmRsZzo6YmFja2Ryb3AsIGRpYWxvZy5tb2RhbDo6YmFja2Ry b3AgeyBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7IH0KfQoKLyogRGljaHRlLVByZXNldCAoUGhhc2Ug MTIsIGRhdGVuZ2V0cmllYmVuIHZpYSBQLmFwcGx5RGVuc2l0eSAvIHNldHRpbmdzLnVpLmRlbnNp dHkpLgogICBEZWZhdWx0IG9obmUgQXR0cmlidXQgPSAiYXVzZ2V3b2dlbiIuIEdyZWlmdCB1ZWJl ciB3ZW5pZ2UgVG9rZW5zLCBkYWhlciBrb25zaXN0ZW50LiAqLwo6cm9vdFtkYXRhLWRlbnNpdHk9 ImNvbXBhY3QiXSAgICAgIHsgLS1mcy1iYXNlOiAxNHB4OyAtLXJhZGl1czogNnB4OyAgLS1zcC00 OiAxM3B4OyAtLXNwLTU6IDE2cHg7IC0tc3AtNjogMjBweDsgfQo6cm9vdFtkYXRhLWRlbnNpdHk9 ImNvbWZvcnRhYmxlIl0gIHsgLS1mcy1iYXNlOiAxNnB4OyAtLXJhZGl1czogMTFweDsgLS1zcC00 OiAxOHB4OyAtLXNwLTU6IDI0cHg7IC0tc3AtNjogMzBweDsgfQoKLyogU2Nyb2xsYmFyICovCiog eyBzY3JvbGxiYXItd2lkdGg6IHRoaW47IHNjcm9sbGJhci1jb2xvcjogdmFyKC0tbGluZS0yKSB0 cmFuc3BhcmVudDsgfQoqOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6 IDEwcHg7IH0KKjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1s aW5lLTIpOyBib3JkZXItcmFkaXVzOiA4cHg7IGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50 OyBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyB9Cio6Oi13ZWJraXQtc2Nyb2xsYmFyLXRo dW1iOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1mbnQpOyB9CgoubW9ubyB7IGZvbnQt ZmFtaWx5OiB2YXIoLS1tb25vKTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsg fQoubXV0ZWQgeyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyB9CltoaWRkZW5dIHsgZGlzcGxheTog bm9uZSAhaW1wb3J0YW50OyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBUFAtUkFITUVOCiAgID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09ICovCi5hcHAgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBo ZWlnaHQ6IDEwMHZoOyBvdmVyZmxvdzogaGlkZGVuOyB9CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUb3BiYXIgKi8KLnRvcGJh ciB7CiAgZmxleDogMCAwIHZhcigtLWJhci1oKTsKICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBnYXA6IDE2cHg7CiAgcGFkZGluZzogMCAxOHB4OwogIC8qIEJlaG9lcmRlbi1D RCAoUGhhc2UgMTQpOiBydWhpZ2UsIGhlbGxlLCBvcGFrZSBLb3BmbGVpc3RlIChrZWluZSBkdW5r bGUgTWFya2VuLUJhbmRlLAogICAgIGtlaW4gRnJvc3QpLiBEaWUgQ0QtTWFya2VuZmFyYmUgbGVi dCBudW4gaW4gLS1icmFuZC9Ba3plbnRlbiwgbmljaHQgaW0gVG9wYmFyLUJhbmQuICovCiAgYmFj a2dyb3VuZDogdmFyKC0tYmctMik7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxp bmUpOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogdmFyKC0tei10b3BiYXIpOwp9Ci5i cmFuZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTFweDsgbWlu LXdpZHRoOiAwOyB9Ci5sb2dvLXNsb3QgewogIGhlaWdodDogNDRweDsgd2lkdGg6IDQ0cHg7IGZs ZXg6IDAgMCBhdXRvOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLW1kKTsKICBkaXNwbGF5OiBncmlk OyBwbGFjZS1pdGVtczogY2VudGVyOyBvdmVyZmxvdzogaGlkZGVuOyBwYWRkaW5nOiAycHg7CiAg YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50Owog IHBvc2l0aW9uOiByZWxhdGl2ZTsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBiYWNrZ3Jv dW5kIHZhcigtLWR1ci0xKSwgYm94LXNoYWRvdyB2YXIoLS1kdXItMSk7Cn0KLmxvZ28tc2xvdDpo b3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdik7IGJveC1zaGFkb3c6IDAgMCAwIDFweCB2 YXIoLS1saW5lKTsgfQoubG9nby1zbG90IGltZyB7IGhlaWdodDogMTAwJTsgd2lkdGg6IGF1dG87 IG1heC13aWR0aDogMTAwJTsgb2JqZWN0LWZpdDogY29udGFpbjsgZGlzcGxheTogYmxvY2s7IH0K LmxvZ28tc2xvdC53b3JkbWFyayBpbWcgeyB3aWR0aDogYXV0bzsgbWF4LXdpZHRoOiAxNTBweDsg fQoubG9nby1zbG90IC5waCB7IGZvbnQtc2l6ZTogOHB4OyBsaW5lLWhlaWdodDogMS4xOyB0ZXh0 LWFsaWduOiBjZW50ZXI7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IGZvbnQtZmFtaWx5OiB2YXIo LS1tb25vKTsgbGV0dGVyLXNwYWNpbmc6IC4wMmVtOyBwYWRkaW5nOiAycHg7IH0KLmxvZ28tc2xv dCBpbnB1dCB7IGRpc3BsYXk6IG5vbmU7IH0KLmJyYW5kLW5hbWUgeyBkaXNwbGF5OiBmbGV4OyBm bGV4LWRpcmVjdGlvbjogY29sdW1uOyBsaW5lLWhlaWdodDogMS4wNTsgbWluLXdpZHRoOiAwOyBw YWRkaW5nLXJpZ2h0OiA0cHg7IH0KLmJyYW5kLW5hbWUgYiB7IGZvbnQtc2l6ZTogMThweDsgZm9u dC13ZWlnaHQ6IDgwMDsgbGV0dGVyLXNwYWNpbmc6IC4xNWVtOyB0ZXh0LXRyYW5zZm9ybTogdXBw ZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmJyYW5kLW5hbWUgc3BhbiB7IGZvbnQtc2l6 ZTogOS41cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGxldHRlci1zcGFjaW5nOiAuMmVtOyB0ZXh0LXRy YW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyB9CgoubGFnZS1waWxs IHsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA3cHg7 CiAgcGFkZGluZzogNnB4IDEycHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7CiAgYmFj a2dyb3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOwogIGZv bnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQou bGFnZS1waWxsIC5kb3QgeyB3aWR0aDogOHB4OyBoZWlnaHQ6IDhweDsgYm9yZGVyLXJhZGl1czog NTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1vayk7IGJveC1zaGFkb3c6IDAgMCAwIDRweCBjb2xvci1t aXgoaW4gb2tsY2gsIHZhcigtLW9rKSAyMiUsIHRyYW5zcGFyZW50KTsgYW5pbWF0aW9uOiBwdWxz ZSAyLjRzIHZhcigtLWVhc2UpIGluZmluaXRlOyB9CkBrZXlmcmFtZXMgcHVsc2UgeyA1MCUgeyBi b3gtc2hhZG93OiAwIDAgMCA3cHggY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1vaykgMCUsIHRy YW5zcGFyZW50KTsgfSB9Ci5sYWdlLXBpbGwuYWxlcnQgLmRvdCB7IGJhY2tncm91bmQ6IHZhcigt LWRhbmdlcik7IGJveC1zaGFkb3c6IDAgMCAwIDRweCBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigt LWRhbmdlcikgMjQlLCB0cmFuc3BhcmVudCk7IH0KLmxhZ2UtcGlsbCAubGJsLWsgeyBjb2xvcjog dmFyKC0tdGV4dC1mbnQpOyBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7IGZvbnQtc2l6ZTogMTBw eDsgbGV0dGVyLXNwYWNpbmc6IC4xNGVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9Cgov KiBHbG9iYWxlIFN1Y2hlIC8gQ29tbWFuZCDigJQgcnVoaWdlcywgZ2VydW5kZXRlcyBGZWxkIChC ZWguLUNEKTsgd2VpdGV0IHNpY2ggYmVpIEZva3VzCiAgIGFrdGl2IGF1cyAoZGllIEHigJNaLUJ1 Y2hzdGFiZW5sZWlzdGUgdGVpbHQgc2ljaCBkaWUgVG9wYmFyLU1pdHRlIGFscyBCZXN0YW5kcy1G ZWF0dXJlKS4gKi8KLnNlYXJjaCB7CiAgZmxleDogMCAwIGF1dG87IHBvc2l0aW9uOiByZWxhdGl2 ZTsKICB3aWR0aDogMjYwcHg7IHRyYW5zaXRpb246IHdpZHRoIC4yMnMgdmFyKC0tZWFzZSk7Cn0K LnNlYXJjaDpmb2N1cy13aXRoaW4geyB3aWR0aDogbWluKDQ4MHB4LCA0MnZ3KTsgfQouc2VhcmNo LWJveCB7CiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4Owog IGhlaWdodDogNDJweDsgcGFkZGluZzogMCAxM3B4OwogIGJhY2tncm91bmQ6IHZhcigtLWJnLTMp OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOwogIGJvcmRlci1yYWRpdXM6IHZhcigt LXItbWQpOyB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tZHVyLTEpLCBib3gtc2hhZG93 IHZhcigtLWR1ci0xKSwgYmFja2dyb3VuZCB2YXIoLS1kdXItMSk7Cn0KLnNlYXJjaC1ib3g6Zm9j dXMtd2l0aGluIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IGJhY2tncm91bmQ6IHZhcigt LWJnLTIpOyBib3gtc2hhZG93OiAwIDAgMCAzcHggdmFyKC0tYnJhbmQtc29mdCk7IH0KLnNlYXJj aC1ib3ggc3ZnIHsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgZmxleDogMCAwIGF1dG87IGNv bG9yOiB2YXIoLS10ZXh0LWZudCk7IH0KLnNlYXJjaC1ib3ggaW5wdXQgeyBmbGV4OiAxOyBib3Jk ZXI6IDA7IGJhY2tncm91bmQ6IG5vbmU7IG91dGxpbmU6IG5vbmU7IGZvbnQtc2l6ZTogMTRweDsg fQouc2VhcmNoLWJveCBpbnB1dDo6cGxhY2Vob2xkZXIgeyBjb2xvcjogdmFyKC0tdGV4dC1mbnQp OyB9Ci5zZWFyY2gtYm94ID4gc3BhbiB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyB9Ci5rYmQgeyBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7IGZvbnQtc2l6ZTog MTFweDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMik7IGJv cmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20p OyBwYWRkaW5nOiAzcHggN3B4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9CgovKiBUb3BiYXItQWt0 aW9uZW4gKi8KLnRvcC1hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRl cjsgZ2FwOiA4cHg7IGZsZXg6IDAgMCBhdXRvOyB9Ci5pY29uLWJ0biB7CiAgd2lkdGg6IDQycHg7 IGhlaWdodDogNDJweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1tZCk7CiAgZGlzcGxheTogZ3Jp ZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVy OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgdHJhbnNp dGlvbjogYmFja2dyb3VuZCB2YXIoLS1kdXItMSkgdmFyKC0tZWFzZS1vdXQpLCBjb2xvciB2YXIo LS1kdXItMSk7Cn0KLmljb24tYnRuOmhvdmVyIHsgY29sb3I6IHZhcigtLXRleHQpOyBiYWNrZ3Jv dW5kOiB2YXIoLS1iZy1ob3YpOyB9Ci5pY29uLWJ0bjphY3RpdmUgeyB0cmFuc2Zvcm06IHNjYWxl KC45NCk7IH0KLmljb24tYnRuIHN2ZyB7IHdpZHRoOiAxOXB4OyBoZWlnaHQ6IDE5cHg7IGRpc3Bs YXk6IGJsb2NrOyB9Ci5pY29uLWJ0biBzcGFuIHsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6 IGNlbnRlcjsgfSAgIC8qIHBlci1KUyBpbmppemllcnRlIEljb24tU3BhbnMgZXhha3QgbWl0dGln ICovCi5waWxsLWJ0biB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50 ZXI7IGdhcDogOHB4OyBoZWlnaHQ6IDQycHg7IHBhZGRpbmc6IDAgMTVweDsKICBib3JkZXItcmFk aXVzOiB2YXIoLS1yLW1kKTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogMXB4IHNv bGlkIHZhcigtLWxpbmUtMik7CiAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgZm9udC1zaXplOiAx M3B4OyBmb250LXdlaWdodDogNjAwOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWR1ci0x KSB2YXIoLS1lYXNlLW91dCksIGNvbG9yIHZhcigtLWR1ci0xKSwgYm9yZGVyLWNvbG9yIHZhcigt LWR1ci0xKTsgfQoucGlsbC1idG46aG92ZXIgeyBjb2xvcjogdmFyKC0tdGV4dCk7IGJhY2tncm91 bmQ6IHZhcigtLWJnLWhvdik7IH0KLnBpbGwtYnRuIHN2ZyB7IHdpZHRoOiAxN3B4OyBoZWlnaHQ6 IDE3cHg7IGRpc3BsYXk6IGJsb2NrOyB9Ci5waWxsLWJ0biA+IHNwYW4geyBkaXNwbGF5OiBpbmxp bmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQoucGlsbC1idG4uYXJtZWQgeyBiYWNrZ3Jv dW5kOiB2YXIoLS1icmFuZCk7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgYm9yZGVyLWNvbG9y OiB2YXIoLS1icmFuZCk7IH0KLnBpbGwtYnRuLmFybWVkOmhvdmVyIHsgYmFja2dyb3VuZDogdmFy KC0tYnJhbmQtc3Ryb25nKTsgfQouZGl2aWRlci12IHsgd2lkdGg6IDFweDsgaGVpZ2h0OiAyNnB4 OyBiYWNrZ3JvdW5kOiB2YXIoLS1saW5lKTsgbWFyZ2luOiAwIDJweDsgfQoKLyogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQeKAk1ot UmVnaXN0ZXJsZWlzdGUgKGluIGRlciBUb3BiYXIpICovCi5hei1yYWlsIHsKICBmbGV4OiAxIDEg YXV0bzsgbWluLXdpZHRoOiAwOyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IG5vd3JhcDsgYWxp Z24taXRlbXM6IGNlbnRlcjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxcHg7IG92 ZXJmbG93OiBoaWRkZW47Cn0KLmF6LWxldHRlciB7CiAgZmxleDogMCAwIGF1dG87IG1pbi13aWR0 aDogMS43ZW07IHBhZGRpbmc6IDNweCA0cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOwog IGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IGZvbnQtd2VpZ2h0OiA3MDA7CiAg Zm9udC1zaXplOiB2YXIoLS1hei1mcywgdmFyKC0tZnMteHMpKTsgICAvKiBhZG1pbi1laW5zdGVs bGJhciAoUC5VSV9WQVJTIGF6Rm9udFNpemUpICovCiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRh YnVsYXItbnVtczsgY29sb3I6IHZhcigtLXRleHQtZGltKTsKICBib3JkZXI6IDFweCBzb2xpZCB0 cmFuc3BhcmVudDsgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMTJzLCBjb2xvciAuMTJzOwp9Ci5h ei1sZXR0ZXI6aG92ZXI6bm90KDpkaXNhYmxlZCkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC0y KTsgY29sb3I6IHZhcigtLW9uLWJyYW5kKTsgfQouYXotbGV0dGVyOmRpc2FibGVkIHsgY29sb3I6 IHZhcigtLXRleHQtZm50KTsgb3BhY2l0eTogLjM1OyBjdXJzb3I6IGRlZmF1bHQ7IH0KCi8qID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAgIEdSSUQtTEFZT1VUCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5zaGVsbCB7CiAgZmxl eDogMTsgbWluLWhlaWdodDogMDsKICBkaXNwbGF5OiBncmlkOwogIGdyaWQtdGVtcGxhdGUtY29s dW1uczogdmFyKC0tcmFpbC1sKSBtaW5tYXgoMCwxZnIpIHZhcigtLXJhaWwtcik7CiAgZ2FwOiAw Owp9Ci5zaGVsbC5jb2xsYXBzZS1sIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAwIG1pbm1heCgw LDFmcikgdmFyKC0tcmFpbC1yKTsgfQouc2hlbGwuY29sbGFwc2UtciB7IGdyaWQtdGVtcGxhdGUt Y29sdW1uczogdmFyKC0tcmFpbC1sKSBtaW5tYXgoMCwxZnIpIDA7IH0KLnNoZWxsLmNvbGxhcHNl LWwuY29sbGFwc2UtciB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMCBtaW5tYXgoMCwxZnIpIDA7 IH0KLnJhaWwgeyBvdmVyZmxvdzogaGlkZGVuOyB0cmFuc2l0aW9uOiB3aWR0aCAuMnMgdmFyKC0t ZWFzZSk7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IG1pbi1oZWlnaHQ6 IDA7IH0KLnJhaWwtbCB7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBiYWNr Z3JvdW5kOiB2YXIoLS1iZy0yKTsgfQoucmFpbC1yIHsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2 YXIoLS1saW5lKTsgYmFja2dyb3VuZDogdmFyKC0tYmcpOyB9Ci5jZW50ZXIgeyBtaW4td2lkdGg6 IDA7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IG1pbi1oZWlnaHQ6IDA7 IGJhY2tncm91bmQ6IHZhcigtLWJnKTsgfQoKLnJhaWwtaGVhZCB7CiAgZmxleDogMCAwIGF1dG87 IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3Bh Y2UtYmV0d2VlbjsKICBwYWRkaW5nOiAxNnB4IDE4cHggMTBweDsgZ2FwOiA4cHg7Cn0KLnJhaWwt aGVhZCBoMiB7IG1hcmdpbjogMDsgZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNzAwOyBs ZXR0ZXItc3BhY2luZzogLjA4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2 YXIoLS10ZXh0LWZudCk7IH0KLnJhaWwtc2Nyb2xsIHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0 bzsgcGFkZGluZzogMCAxMHB4IDIycHg7IH0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNpZGViYXItTmF2ICovCi5zaWRlLWdy b3VwIHsgbWFyZ2luLWJvdHRvbTogMnB4OyB9Ci5ncnAtdG9nZ2xlIHsKICB3aWR0aDogMTAwJTsg ZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA5cHg7CiAgcGFkZGluZzog OXB4IDEwcHggOXB4IDhweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7CiAgLyogU2VrdGlv bnMtSGVhZGVyIGhlYmVuIHNpY2ggbGVpY2h0IGZhcmJsaWNoIGFiIChBa3plbnRiYWxrZW4gKyB6 YXJ0ZSBUw7ZudW5nKS4gKi8KICBjb2xvcjogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1icmFu ZCkgMzIlLCB2YXIoLS10ZXh0LWRpbSkpOwogIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xj aCwgdmFyKC0tYnJhbmQpIDUlLCB0cmFuc3BhcmVudCk7CiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xp ZCBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWJyYW5kKSAzOCUsIHZhcigtLWxpbmUpKTsKICBm b250LXNpemU6IDExLjVweDsgZm9udC13ZWlnaHQ6IDcwMDsgbGV0dGVyLXNwYWNpbmc6IC4wNWVt OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFy KC0tZHVyLTEpIHZhcigtLWVhc2Utb3V0KSwgY29sb3IgdmFyKC0tZHVyLTEpOwp9Ci5ncnAtdG9n Z2xlOmhvdmVyIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1icmFuZCkg MTIlLCB0cmFuc3BhcmVudCk7IGNvbG9yOiB2YXIoLS1icmFuZC1zdHJvbmcpOyB9Ci8qIERhdGVu Z2V0cmllYmVuZSBCZXJlaWNoc2ZhcmJlIChOYXYtRWRpdG9yIC0+IHMuY29sb3IpOiBmYXJiaWdl ciBBa3plbnQgKyBnZXRvZW50ZXIgVGl0ZWwuICovCi5zaWRlLWdyb3VwLmdycC1jb2xvcmVkID4g LmdycC10b2dnbGUgeyBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWdycC1jb2xvcik7IHBh ZGRpbmctbGVmdDogOHB4OyBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWdy cC1jb2xvcikgOSUsIHRyYW5zcGFyZW50KTsgfQouc2lkZS1ncm91cC5ncnAtY29sb3JlZCA+IC5n cnAtdG9nZ2xlOmhvdmVyIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1n cnAtY29sb3IpIDE2JSwgdHJhbnNwYXJlbnQpOyB9Ci8qIFRpdGVsIHp1bSBUZXh0LVRva2VuIGhp biBtaXNjaGVuIC0+IGluIEhlbGwgVU5EIER1bmtlbCBsZXNiYXIgKFdDQUcpLCBibGVpYnQgZGF0 ZW5nZXRyaWViZW4uICovCi5zaWRlLWdyb3VwLmdycC1jb2xvcmVkID4gLmdycC10b2dnbGUgPiBz cGFuOmZpcnN0LW9mLXR5cGUgeyBjb2xvcjogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1ncnAt Y29sb3IpIDQ1JSwgdmFyKC0tdGV4dCkpOyB9Ci5ncnAtdG9nZ2xlIC5jaGV2IHsgbWFyZ2luLWxl ZnQ6IGF1dG87IHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMThzIHZhcigtLWVhc2UpOyBjb2xvcjog dmFyKC0tdGV4dC1mbnQpOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfQovKiBDaGV2cm9uLUZpeDog SW5saW5lLVNWRyBvaG5lIEdyb2Vzc2VuYXR0cmlidXRlIHp3aW5nZW5kIHNrYWxpZXJlbiAoc29u c3Qgcmllc2lnKS4gKi8KLmdycC10b2dnbGUgLmNoZXYgc3ZnLCAuc3ViLXRvZ2dsZSAuY2hldiBz dmcgeyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyBkaXNwbGF5OiBibG9jazsgfQouZ3JwLXRv Z2dsZVthcmlhLWV4cGFuZGVkPSJ0cnVlIl0gLmNoZXYgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRl Zyk7IH0KLmdycC10b2dnbGUgPiBzdmcgeyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyBjb2xv cjogdmFyKC0tYnJhbmQpOyB9Ci5zaWRlLWxpc3QgeyBsaXN0LXN0eWxlOiBub25lOyBtYXJnaW46 IDJweCAwIDhweDsgcGFkZGluZzogMDsgfQouc2lkZS1saXN0LnN1YiB7IG1hcmdpbi1sZWZ0OiAx MXB4OyBwYWRkaW5nLWxlZnQ6IDExcHg7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tbGlu ZSk7IH0KLnNpZGUtbGlzdCBsaSB7IG1hcmdpbjogMXB4IDA7IH0KLnNpZGUtbGlzdCBhLCAuc2lk ZS1saXN0IC5zdWItdG9nZ2xlIHsKICB3aWR0aDogMTAwJTsgZGlzcGxheTogZmxleDsgYWxpZ24t aXRlbXM6IGNlbnRlcjsgZ2FwOiA5cHg7CiAgcGFkZGluZzogN3B4IDEwcHg7IGJvcmRlci1yYWRp dXM6IHZhcigtLXItc20pOwogIGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGZvbnQtc2l6ZTogMTMu NXB4OwogIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tZHVyLTEpIHZhcigtLWVhc2Utb3V0 KSwgY29sb3IgdmFyKC0tZHVyLTEpOwogIHRleHQtYWxpZ246IGxlZnQ7Cn0KLnNpZGUtbGlzdCBh OmhvdmVyLCAuc2lkZS1saXN0IC5zdWItdG9nZ2xlOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0t YmctMyk7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQovKiBBa3RpdmVyIEVpbnRyYWcgPSBnZXRvZW50 ZSBQaWxsZSArIEluc2V0LUJhbGtlbiAoQmVoLi1DRCkuICovCi5zaWRlLWxpc3QgYS5pcy1jdXJy ZW50IHsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQtc29mdCk7IGNvbG9yOiB2YXIoLS1icmFuZC1z dHJvbmcpOyBmb250LXdlaWdodDogNjAwOyBib3gtc2hhZG93OiBpbnNldCAzcHggMCAwIHZhcigt LWJyYW5kKTsgfQouc2lkZS1saXN0IGEuaXMtY3VycmVudCA+IHN2ZyB7IGNvbG9yOiB2YXIoLS1i cmFuZCk7IH0KLyogQWt6ZW50LUVpbnRyYWcgKHouQi4gS2VubnfDtnJ0ZXIpIOKAlCBoZWJ0IHNp Y2ggYWxzIEJ1dHRvbiB2b20gUmVzdCBhYi4gKi8KLnNpZGUtbGlzdCBhLm5hdi1hY2NlbnQgeyBi YWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWJyYW5kKSAxMSUsIHZhcigtLWJn LTIpKTsgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1icmFuZCkg MzIlLCB2YXIoLS1saW5lKSk7IGNvbG9yOiB2YXIoLS1icmFuZC1zdHJvbmcpOyBmb250LXdlaWdo dDogNjAwOyB9Ci5zaWRlLWxpc3QgYS5uYXYtYWNjZW50OmhvdmVyIHsgYmFja2dyb3VuZDogY29s b3ItbWl4KGluIG9rbGNoLCB2YXIoLS1icmFuZCkgMTglLCB2YXIoLS1iZy0yKSk7IGNvbG9yOiB2 YXIoLS1icmFuZC1zdHJvbmcpOyB9Ci5zaWRlLWxpc3QgYS5uYXYtYWNjZW50ID4gLmxpLWljIHsg Y29sb3I6IHZhcigtLWJyYW5kKTsgfQovKiBQcsO8ZnVuZ3MtTGluazogcm90LCBwdWxzaWVyZW5k IChBdWZtZXJrc2Fta2VpdCkuICovCi5zaWRlLWxpc3QgYS5uYXYtcHJ1ZWYgeyBwb3NpdGlvbjog cmVsYXRpdmU7IGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tZGFuZ2VyKSAx NiUsIHZhcigtLWJnLTIpKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFuZ2VyKTsgY29sb3I6 IHZhcigtLWRhbmdlcik7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KLnNpZGUtbGlzdCBhLm5hdi1wcnVl ZiA+IC5saS1pYyB7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9Ci5zaWRlLWxpc3QgYS5uYXYtcHJ1 ZWY6OmFmdGVyIHsgY29udGVudDogIiI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IGJv cmRlci1yYWRpdXM6IGluaGVyaXQ7IHBvaW50ZXItZXZlbnRzOiBub25lOyBib3gtc2hhZG93OiAw IDAgMCAzcHggY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1kYW5nZXIpIDU1JSwgdHJhbnNwYXJl bnQpOyBhbmltYXRpb246IHBydWVmLXB1bHNlIDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH0K QGtleWZyYW1lcyBwcnVlZi1wdWxzZSB7IDAlLCAxMDAlIHsgb3BhY2l0eTogLjI7IH0gNTAlIHsg b3BhY2l0eTogMTsgfSB9Ci5zaWRlLWxpc3QgYS5uYXYtcHJ1ZWY6aG92ZXIgeyBiYWNrZ3JvdW5k OiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWRhbmdlcikgMjQlLCB2YXIoLS1iZy0yKSk7IH0K OnJvb3RbZGF0YS1ub3B1bHNlXSAuc2lkZS1saXN0IGEubmF2LXBydWVmOjphZnRlciB7IGFuaW1h dGlvbjogbm9uZTsgb3BhY2l0eTogLjU1OyB9CkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlv bjogcmVkdWNlKSB7IC5zaWRlLWxpc3QgYS5uYXYtcHJ1ZWY6OmFmdGVyIHsgYW5pbWF0aW9uOiBu b25lOyBvcGFjaXR5OiAuNTU7IH0gfQouc2lkZS1saXN0IGEgLmxibCwgLnN1Yi10b2dnbGUgLmxi bCB7IGZsZXg6IDE7IG1pbi13aWR0aDogMDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxv dzogZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KLnNpZGUtbGlzdCBhID4gc3ZnLCAu c3ViLXRvZ2dsZSA+IHN2ZyB7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7IGZsZXg6IDAgMCBh dXRvOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyB9Ci5zdWItdG9nZ2xlIC5jaGV2IHsgbWFyZ2lu LWxlZnQ6IGF1dG87IHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMThzIHZhcigtLWVhc2UpOyBjb2xv cjogdmFyKC0tdGV4dC1mbnQpOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfQouc3ViLXRvZ2dsZVth cmlhLWV4cGFuZGVkPSJ0cnVlIl0gLmNoZXYgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH0K LmdycC1oZWFkIHsgcGFkZGluZzogOXB4IDEwcHggM3B4OyBmb250LXNpemU6IDEwLjVweDsgZm9u dC13ZWlnaHQ6IDcwMDsgbGV0dGVyLXNwYWNpbmc6IC4wN2VtOyB0ZXh0LXRyYW5zZm9ybTogdXBw ZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyB9Ci5zaWRlLWxpc3QgLm11dGVkIHsgcGFk ZGluZzogN3B4IDEwcHg7IGZvbnQtc2l6ZTogMTIuNXB4OyB9CgovKiBJbmxpbmUtQWt0aW9uc2tu b3BmIGluIGRlciBOYXZpZ2F0aW9uc2xpc3RlIChBcnRpa2VsIGJlYXJiZWl0ZW4pICovCi5zdGFy IHsgbWFyZ2luLWxlZnQ6IGF1dG87IHdpZHRoOiAyNnB4OyBoZWlnaHQ6IDI2cHg7IGJvcmRlci1y YWRpdXM6IDVweDsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgY29sb3I6IHZh cigtLXRleHQtZm50KTsgb3BhY2l0eTogMDsgdHJhbnNpdGlvbjogLjEyczsgZmxleDogMCAwIGF1 dG87IH0KLnNpZGUtbGlzdCBsaTpob3ZlciAuc3RhciB7IG9wYWNpdHk6IDE7IH0KLnN0YXI6aG92 ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBjb2xvcjogdmFyKC0td2Fybik7IH0KLnN0 YXIgc3ZnIHsgd2lkdGg6IDE1cHg7IGhlaWdodDogMTVweDsgfQoKLyogQmFkZ2VzICovCi5iYWRn ZSB7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDcwMDsgcGFkZGluZzogMnB4IDdweDsg Ym9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsKTsgbGV0dGVyLXNwYWNpbmc6IC4wMmVtOyBsaW5l LWhlaWdodDogMS40OyBmbGV4OiAwIDAgYXV0bzsgfQouYmFkZ2UucmVkLCAuYmFkZ2UuZGFuZ2Vy IHsgYmFja2dyb3VuZDogdmFyKC0tZGFuZ2VyKTsgY29sb3I6ICNmZmY7IH0KLmJhZGdlLm5ldSB7 IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kKTsgY29sb3I6IHZhcigtLWFjY2VudC1pbmspOyB9Ci5i YWRnZS5icm9rZW4geyBiYWNrZ3JvdW5kOiB2YXIoLS13YXJuLXNvZnQpOyBjb2xvcjogdmFyKC0t d2Fybik7IH0KLmJhZGdlLmV4dCB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogdmFy KC0tdGV4dC1mbnQpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyB9Ci5iYWRnZS5h bGlhcyB7IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXNvZnQpOyBjb2xvcjogdmFyKC0tYnJhbmQt c3Ryb25nKTsgfQouaXMtYnJva2VuIHsgb3BhY2l0eTogLjU1OyB9CgovKiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog ICBDRU5URVIgwrcgRkVFRAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwouZmVlZC1oZWFkIHsgZmxleDogMCAw IGF1dG87IHBhZGRpbmc6IDE4cHggMjZweCAwOyB9Ci5mZWVkLXRpdGxlIHsgZGlzcGxheTogZmxl eDsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyBnYXA6IDEycHg7IGZsZXgtd3JhcDogd3JhcDsgfQou ZmVlZC10aXRsZSBoMSB7IG1hcmdpbjogMDsgZm9udC1zaXplOiAyMnB4OyBmb250LXdlaWdodDog NzAwOyBsZXR0ZXItc3BhY2luZzogLS4wMWVtOyB9Ci5mZWVkLXRpdGxlIC5zdWIgeyBjb2xvcjog dmFyKC0tdGV4dC1mbnQpOyBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7IGZvbnQtc2l6ZTogMTEu NXB4OyBsZXR0ZXItc3BhY2luZzogLjA2ZW07IH0KLmZlZWQtdG9vbHMgeyBkaXNwbGF5OiBmbGV4 OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbjogMTRweCAwIDRweDsgZmxl eC13cmFwOiB3cmFwOyB9CgouZmVlZC1zZWFyY2ggeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBnYXA6IDhweDsgaGVpZ2h0OiAzNHB4OyBwYWRkaW5nOiAwIDExcHg7IGJhY2tn cm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYm9yZGVy LXJhZGl1czogdmFyKC0tci1zbSk7IHdpZHRoOiAyMTBweDsgfQouZmVlZC1zZWFyY2g6Zm9jdXMt d2l0aGluIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLmZlZWQtc2VhcmNoIHN2ZyB7 IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IH0KLmZl ZWQtc2VhcmNoIGlucHV0IHsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kOiBub25lOyBvdXRsaW5lOiBu b25lOyB3aWR0aDogMTAwJTsgZm9udC1zaXplOiAxM3B4OyB9CgovKiDigJ4rIE1lbGR1bmciLUFr dGlvbnNsZWlzdGUg4oCUIG51ciBpbSBQZmxlZ2UtTW9kdXMgKERhdGVucGZsZWdlIGFrdGl2KSwg RmVlZC1BbnNpY2h0IChQaGFzZSAxMikuICovCi8qIEFrdGlvbnNsZWlzdGUgbWl0IOKAnisgTWVs ZHVuZyIgcmVjaHRzYnVlbmRpZywgYW4gZGVyIDk4MGVyIEluaGFsdHNzcGFsdGUgYXVzZ2VyaWNo dGV0LiAqLwouZmVlZC1hY3Rpb25iYXIgeyBkaXNwbGF5OiBub25lOyBqdXN0aWZ5LWNvbnRlbnQ6 IGZsZXgtZW5kOyBwYWRkaW5nOiB2YXIoLS1zcC00KSAzMHB4IDA7IG1heC13aWR0aDogOTgwcHg7 IG1hcmdpbi1pbmxpbmU6IGF1dG87IH0KYm9keS5lZGl0aW5nIC5jZW50ZXI6bm90KC5kb2MpOm5v dCguYXJ0aWNsZSkgLmZlZWQtYWN0aW9uYmFyIHsgZGlzcGxheTogZmxleDsgfQouZmVlZC1zY3Jv bGwgeyBmbGV4OiAxOyBvdmVyZmxvdy15OiBhdXRvOyBwYWRkaW5nOiAyNHB4IDMwcHggNjRweDsg fQovKiBJbmhhbHRzc3BhbHRlIHJ1aGlnIG1pdHRpZyBiZWdyZW56ZW4gKEJlaC4tQ0QpLiAqLwoj ZmVlZC1zY3JvbGwgPiAjZmVlZCB7IG1heC13aWR0aDogOTgwcHg7IG1hcmdpbi1pbmxpbmU6IGF1 dG87IH0KLmZlZWQtc2VjdGlvbi1sYWJlbCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBj ZW50ZXI7IGdhcDogOXB4OyBtYXJnaW46IDE4cHggMnB4IDEycHg7IGZvbnQtc2l6ZTogdmFyKC0t ZnMtc20pOyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogMDsgY29sb3I6IHZhcigt LXRleHQtZGltKTsgfQouZmVlZC1zZWN0aW9uLWxhYmVsOjphZnRlciB7IGNvbnRlbnQ6ICIiOyBm bGV4OiAxOyBoZWlnaHQ6IDFweDsgYmFja2dyb3VuZDogdmFyKC0tbGluZSk7IH0KLmZlZWQtc2Vj dGlvbi1sYWJlbCBzdmcgeyB3aWR0aDogMTNweDsgaGVpZ2h0OiAxM3B4OyBjb2xvcjogdmFyKC0t d2Fybik7IH0KCi8qIEJ1bGxldGluLUthcnRlICovCi5idWxsIHsKICBwb3NpdGlvbjogcmVsYXRp dmU7IGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5l KTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsgcGFkZGluZzogMThweCAyMHB4IDE2cHg7 IG1hcmdpbi1ib3R0b206IDEzcHg7CiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtKTsgdHJh bnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xNXMsIGJveC1zaGFkb3cgLjE1czsKfQouYnVsbDpob3Zl ciB7IGJvcmRlci1jb2xvcjogdmFyKC0tbGluZS0yKTsgfQouYnVsbC5waW5uZWQgeyBib3JkZXIt Y29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0td2FybikgMzAlLCB2YXIoLS1saW5lKSk7 IGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0td2FybikgNCUsIHZhcigtLWJn LTIpKTsgfQovKiBIZXJ2b3JoZWJ1bmcgKFdpY2h0aWdrZWl0KSDigJQgRmFyYmVuIGRhdGVuZ2V0 cmllYmVuICgtLWhsLSogdmlhIEVpbnN0ZWxsdW5nZW4sIHBybyBUaGVtZSkuICovCi5idWxsLmhs LWluZm8gICB7IGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1obC1pbmZv KSA0NSUsIHZhcigtLWxpbmUpKTsgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xhYiwgdmFy KC0taGwtaW5mbykgOCUsIHZhcigtLWJnLTIpKTsgIGJveC1zaGFkb3c6IGluc2V0IDRweCAwIDAg dmFyKC0taGwtaW5mbyk7IH0KLmJ1bGwuaGwtYWxlcnQgIHsgYm9yZGVyLWNvbG9yOiBjb2xvci1t aXgoaW4gb2tsYWIsIHZhcigtLWhsLWFsZXJ0KSA1MCUsIHZhcigtLWxpbmUpKTsgYmFja2dyb3Vu ZDogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1obC1hbGVydCkgOSUsIHZhcigtLWJnLTIpKTsg Ym94LXNoYWRvdzogaW5zZXQgNHB4IDAgMCB2YXIoLS1obC1hbGVydCk7IH0KLmJ1bGwuaGwtdXJn ZW50IHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1obC11cmdlbnQpOyBiYWNrZ3JvdW5kOiBjb2xvci1t aXgoaW4gb2tsYWIsIHZhcigtLWhsLXVyZ2VudCkgMTMlLCB2YXIoLS1iZy0yKSk7IGJveC1zaGFk b3c6IGluc2V0IDRweCAwIDAgdmFyKC0taGwtdXJnZW50KTsgfQovKiBQdWxzIEdQVS1zY2hvbmVu ZDogc3RhdGlzY2hlciBSaW5nIGF1ZiA6OmFmdGVyLCBudXIgb3BhY2l0eSB3aXJkIGFuaW1pZXJ0 IChrZWluIERhdWVyLVJlcGFpbnQpLiAqLwouYnVsbC5obC11cmdlbnQ6OmFmdGVyIHsgY29udGVu dDogIiI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IGJvcmRlci1yYWRpdXM6IGluaGVy aXQ7IHBvaW50ZXItZXZlbnRzOiBub25lOwogIGJveC1zaGFkb3c6IDAgMCAwIDNweCBjb2xvci1t aXgoaW4gb2tsYWIsIHZhcigtLWhsLXVyZ2VudCkgNTUlLCB0cmFuc3BhcmVudCk7IGFuaW1hdGlv bjogYnVsbC1wdWxzZSAxLjhzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9CkBrZXlmcmFtZXMgYnVs bC1wdWxzZSB7IDAlLCAxMDAlIHsgb3BhY2l0eTogLjI1OyB9IDUwJSB7IG9wYWNpdHk6IDE7IH0g fQovKiBQdWxzIGdsb2JhbCBhYnNjaGFsdGJhciAoRWluc3RlbGx1bmdlbiAtPiBNb2R1bGU6ICJX aWNodGlnLU1lbGR1bmdlbiBwdWxzaWVyZW4iKS4gKi8KOnJvb3RbZGF0YS1ub3B1bHNlXSAuYnVs bC5obC11cmdlbnQ6OmFmdGVyIHsgYW5pbWF0aW9uOiBub25lOyBvcGFjaXR5OiAuNjsgfQpAbWVk aWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogIC5idWxsLmhsLXVyZ2VudDo6 YWZ0ZXIgeyBhbmltYXRpb246IG5vbmU7IG9wYWNpdHk6IC42OyB9Cn0KLyogSGVydm9yaGVidW5n cy1BdXN3YWhsIGltIE1lbGR1bmdzLURpYWxvZyAqLwouaGwtcGljayB7IGRpc3BsYXk6IGZsZXg7 IGdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXA7IH0KLmhsLW9wdCB7IGRpc3BsYXk6IGlubGluZS1m bGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDdweDsgcGFkZGluZzogNnB4IDEzcHg7IGJv cmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUt Mik7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyBmb250 LXNpemU6IDEyLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsgY3Vyc29yOiBwb2ludGVyOyB9Ci5obC1v cHQ6OmJlZm9yZSB7IGNvbnRlbnQ6ICIiOyB3aWR0aDogMTFweDsgaGVpZ2h0OiAxMXB4OyBib3Jk ZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLWxpbmUtMik7IGZsZXg6IDAgMCBhdXRv OyB9Ci5obC1vcHQuaGwtaW5mbzo6YmVmb3JlIHsgYmFja2dyb3VuZDogdmFyKC0taGwtaW5mbyk7 IH0KLmhsLW9wdC5obC1hbGVydDo6YmVmb3JlIHsgYmFja2dyb3VuZDogdmFyKC0taGwtYWxlcnQp OyB9Ci5obC1vcHQuaGwtdXJnZW50OjpiZWZvcmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1obC11cmdl bnQpOyBib3gtc2hhZG93OiAwIDAgMCAzcHggY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1obC11 cmdlbnQpIDMwJSwgdHJhbnNwYXJlbnQpOyB9Ci5obC1vcHQuc2VsIHsgYm9yZGVyLWNvbG9yOiB2 YXIoLS1icmFuZCk7IGNvbG9yOiB2YXIoLS10ZXh0KTsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQt c29mdCk7IH0KCi8qIC0tLS0gSW1wcmVzc3VtLU1vZGFsIC0tLS0gKi8KLmltcHJlc3N1bS1pbmhh bHQgaDQgeyBtYXJnaW46IDE0cHggMCA0cHg7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBmb250 LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgfQouaW1wcmVzc3VtLWlu aGFsdCBoNDpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDA7IH0KLmltcHJlc3N1bS1pbmhhbHQg cCwgLmltcHJlc3N1bS1pbmhhbHQgdWwgeyBtYXJnaW46IDAgMCA4cHg7IGNvbG9yOiB2YXIoLS10 ZXh0LWRpbSk7IGZvbnQtc2l6ZTogMTMuNXB4OyBsaW5lLWhlaWdodDogMS42OyB9Ci5pbXByZXNz dW0taW5oYWx0IHVsIHsgcGFkZGluZy1sZWZ0OiAyMHB4OyB9Ci5pbXByZXNzdW0taW5oYWx0IGEg eyBjb2xvcjogdmFyKC0tYnJhbmQpOyB9Ci5pbXByZXNzdW0tbm90ZmFsbCB7IG1hcmdpbi10b3A6 IDE2cHg7IHBhZGRpbmc6IDE0cHggMTZweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1sZyk7IGJv cmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0td2FybikgNDAlLCB2YXIo LS1saW5lKSk7IGJhY2tncm91bmQ6IHZhcigtLXdhcm4tc29mdCk7IH0KLmltcHJlc3N1bS1ub3Rm YWxsLXRpdGVsIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7 IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS13YXJuKTsgbWFyZ2luLWJvdHRvbTogNnB4 OyB9Ci5pbXByZXNzdW0tbm90ZmFsbC10aXRlbCBzdmcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAx NnB4OyB9Ci5pbXByZXNzdW0tbm90ZmFsbC10ZXh0IHsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjog dmFyKC0tdGV4dC1kaW0pOyBsaW5lLWhlaWdodDogMS41NTsgbWFyZ2luOiAwIDAgMTJweDsgfQou aW1wcmVzc3VtLW5vdGZhbGwtdGV4dCBjb2RlLCAuaW1wcmVzc3VtLWluaGFsdCBjb2RlIHsgZm9u dC1mYW1pbHk6IHZhcigtLW1vbm8pOyBmb250LXNpemU6IDEycHg7IGJhY2tncm91bmQ6IHZhcigt LWJnLTMpOyBwYWRkaW5nOiAxcHggNXB4OyBib3JkZXItcmFkaXVzOiA0cHg7IH0KLmltcHJlc3N1 bS1tYWlsLWJ0biB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBn YXA6IDhweDsgfQouaW1wcmVzc3VtLW1haWwtYnRuIHN2ZyB7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6 IDE2cHg7IH0KLyogQWxsZ2VtZWluZXIgU3VwcG9ydC1CbG9jayAoVGVhbSA1LCBhbGxlIFJvbGxl bikgKi8KLmltcHJlc3N1bS1zdXBwb3J0IHsgbWFyZ2luLXRvcDogMTZweDsgcGFkZGluZzogMTRw eCAxNnB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsgYm9yZGVyOiAxcHggc29saWQgY29s b3ItbWl4KGluIG9rbGFiLCB2YXIoLS1icmFuZCkgMzUlLCB2YXIoLS1saW5lKSk7IGJhY2tncm91 bmQ6IHZhcigtLWJyYW5kLXNvZnQpOyB9Ci5pbXByZXNzdW0tc3VwcG9ydC10aXRlbCB7IGRpc3Bs YXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBmb250LXdlaWdodDogNzAw OyBjb2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgbWFyZ2luLWJvdHRvbTogNnB4OyB9Ci5pbXBy ZXNzdW0tc3VwcG9ydC10aXRlbCBzdmcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyB9Ci5p bXByZXNzdW0tc3VwcG9ydC10ZXh0IHsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tdGV4 dC1kaW0pOyBsaW5lLWhlaWdodDogMS41NTsgbWFyZ2luOiAwIDAgMTJweDsgfQovKiBSZWRha3Rp b24gJiBBZG1pbmlzdHJhdGlvbiAoYXV0b21hdGlzY2ggYXVzIHNldHRpbmdzLnRlYW0pICovCi5p bXByZXNzdW0tdGVhbSBoNCB7IG1hcmdpbjogMTRweCAwIDRweDsgZm9udC1zaXplOiB2YXIoLS1m cy1zbSk7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS1icmFuZC1zdHJvbmcpOyB9Ci5p bXByZXNzdW0tdGVhbS1oIHsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogNzAwOyBjb2xv cjogdmFyKC0tdGV4dC1kaW0pOyBtYXJnaW46IDZweCAwIDJweDsgfQouaW1wcmVzc3VtLXRlYW0g dWwgeyBtYXJnaW46IDAgMCA2cHg7IHBhZGRpbmctbGVmdDogMjBweDsgfQouaW1wcmVzc3VtLXRl YW0gbGkgeyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGxpbmUtaGVp Z2h0OiAxLjU7IH0KCi8qIFNldHRpbmdzOiBncm9zc2UgVGV4dGFyZWFzIChJbXByZXNzdW0gLyBT dXBwb3J0LVZvcmxhZ2UpICovCi5zZXQtYmlndGEgeyB3aWR0aDogMTAwJTsgYm94LXNpemluZzog Ym9yZGVyLWJveDsgZm9udDogaW5oZXJpdDsgZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDog MS41OyBwYWRkaW5nOiAxMHB4IDEycHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOyBib3Jk ZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0zKTsgY29s b3I6IHZhcigtLXRleHQpOyByZXNpemU6IHZlcnRpY2FsOyB9Ci5zZXQtYmlndGE6Zm9jdXMgeyBv dXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRvdzogMCAw IDAgM3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9CgovKiBGdcOfemVpbGUgbGlua2UgU3BhbHRlIChJ bXByZXNzdW0tTGluaywgYWxsZSBSb2xsZW4pICovCi5yYWlsLWZvb3QgeyBmbGV4OiAwIDAgYXV0 bzsgcGFkZGluZzogOHB4IDE0cHg7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsg fQoucmFpbC1mb290LWxpbmsgeyBiYWNrZ3JvdW5kOiBub25lOyBib3JkZXI6IDA7IHBhZGRpbmc6 IDRweCAycHg7IGZvbnQ6IGluaGVyaXQ7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXRl eHQtZm50KTsgY3Vyc29yOiBwb2ludGVyOyB9Ci5yYWlsLWZvb3QtbGluazpob3ZlciB7IGNvbG9y OiB2YXIoLS1icmFuZCk7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9Ci5idWxsIC5hY2Nl bnQgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMTRweDsgYm90dG9tOiAxNHB4 OyB3aWR0aDogM3B4OyBib3JkZXItcmFkaXVzOiAzcHg7IGJhY2tncm91bmQ6IHZhcigtLWNhdCwg dmFyKC0tYnJhbmQpKTsgfQouYnVsbC10b3AgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczog Y2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi1ib3R0b206IDdweDsgZmxleC13cmFwOiB3cmFwOyB9 Ci5idWxsLWRhdGUgeyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgZm9udC13ZWlnaHQ6IDUwMDsg Y29sb3I6IHZhcigtLXRleHQtZm50KTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVt czsgfQouYnVsbC1zcGFjZXIgeyBmbGV4OiAxOyB9Ci5idWxsIGgzIHsgbWFyZ2luOiAwIDAgN3B4 OyBmb250LXNpemU6IDE3cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGxpbmUtaGVpZ2h0OiAxLjM1OyBs ZXR0ZXItc3BhY2luZzogLS4wMDVlbTsgfQouYnVsbCAuYm9keSB7IGNvbG9yOiB2YXIoLS10ZXh0 LWRpbSk7IGZvbnQtc2l6ZTogMTMuNzVweDsgbGluZS1oZWlnaHQ6IDEuNjg7IHdoaXRlLXNwYWNl OiBwcmUtd3JhcDsgfQouYnVsbCAuYm9keSBzdHJvbmcgeyBjb2xvcjogdmFyKC0tdGV4dCk7IGZv bnQtd2VpZ2h0OiA3MDA7IH0KLmJ1bGwgLmJvZHkgYSB7IGNvbG9yOiB2YXIoLS1icmFuZCk7IHRl eHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweDsgfQou YnVsbC1tZXRhIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxM3B4 OyBtYXJnaW4tdG9wOiAxM3B4OyBwYWRkaW5nLXRvcDogMTFweDsgYm9yZGVyLXRvcDogMXB4IHNv bGlkIHZhcigtLWxpbmUpOyBmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7 IH0KLmJ1bGwtbWV0YSAud2hvIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBj ZW50ZXI7IGdhcDogNnB4OyBmb250LXdlaWdodDogNjAwOyB9Ci5idWxsLW1ldGEgLndobyBzdmcg eyB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyB9Ci5idWxsLWFjdGlvbnMgeyBtYXJnaW4tbGVm dDogYXV0bzsgZGlzcGxheTogZmxleDsgZ2FwOiAzcHg7IH0KLm1pbmktYnRuIHsgd2lkdGg6IDMw cHg7IGhlaWdodDogMzBweDsgYm9yZGVyLXJhZGl1czogNnB4OyBkaXNwbGF5OiBncmlkOyBwbGFj ZS1pdGVtczogY2VudGVyOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyB0cmFuc2l0aW9uOiAuMTJz OyB9Ci5taW5pLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdik7IGNvbG9yOiB2 YXIoLS10ZXh0KTsgfQoubWluaS1idG4gc3ZnIHsgd2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsg fQoubWluaS1idG4ub24geyBjb2xvcjogdmFyKC0td2Fybik7IH0KLm1pbmktYnRuLmRhbmdlcjpo b3ZlciB7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyBiYWNrZ3JvdW5kOiB2YXIoLS1kYW5nZXItc29m dCk7IH0KLmJ1bGwtbmV3IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IC03cHg7IHJpZ2h0OiAx NHB4OyB9CgouZmVlZC1lbXB0eSB7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogNzBweCAy MHB4OyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyB9Ci5mZWVkLWVtcHR5IHN2ZyB7IHdpZHRoOiA0 NnB4OyBoZWlnaHQ6IDQ2cHg7IG9wYWNpdHk6IC40OyBtYXJnaW4tYm90dG9tOiAxNHB4OyB9Cgov KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSBDb250ZW50LVZpZXcgKERva3VtZW50KSAqLwouY29udGVudC12aWV3IHsgZGlzcGxheTog bm9uZTsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZmxleDogMTsgbWluLWhlaWdodDogMDsgfQou Y2VudGVyLmRvYyAuZmVlZC1oZWFkLCAuY2VudGVyLmRvYyAuZmVlZC1zY3JvbGwgeyBkaXNwbGF5 OiBub25lOyB9Ci5jZW50ZXIuZG9jIC5jb250ZW50LXZpZXcgeyBkaXNwbGF5OiBmbGV4OyB9Ci5j di1iYXIgeyBmbGV4OiAwIDAgYXV0bzsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRl cjsgZ2FwOiAxMnB4OyBwYWRkaW5nOiAxMnB4IDIycHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xp ZCB2YXIoLS1saW5lKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMik7IH0KLmN2LWJhciAucGF0aCB7 IGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0t dGV4dC1kaW0pOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hp dGUtc3BhY2U6IG5vd3JhcDsgfQouY3YtZnJhbWUgeyBmbGV4OiAxOyBib3JkZXI6IDA7IHdpZHRo OiAxMDAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZyk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIFJJR0hU IFJBSUwgwrcgU29mb3J0bWHDn25haG1lbiAmIFF1aWNrbGlua3MKICAgPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8K LnBhbmVsIHsgbWFyZ2luOiAwIDEwcHggMTZweDsgYmFja2dyb3VuZDogdmFyKC0tYmctMik7IGJv cmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsg Ym94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtKTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoucGFuZWwt aGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOXB4OyBwYWRk aW5nOiAxMnB4IDE0cHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgfQou cGFuZWwtaGVhZCAuaWNvIHsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgYm9yZGVyLXJhZGl1 czogNnB4OyBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOyBmbGV4OiAwIDAgYXV0 bzsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQtc29mdCk7IGNvbG9yOiB2YXIoLS1icmFuZCk7IH0K LnBhbmVsLWhlYWQgLmljbyBzdmcgeyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyB9Ci5wYW5l bC1oZWFkIGgzIHsgbWFyZ2luOiAwOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiA3MDA7 IGxldHRlci1zcGFjaW5nOiAuMDVlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6 IHZhcigtLXRleHQtZGltKTsgfQoucGFuZWwtaGVhZCAuYWRkIHsgbWFyZ2luLWxlZnQ6IGF1dG87 IH0KLnBhbmVsID4gLnFsLWdyaWQgeyBwYWRkaW5nOiAxMnB4OyB9Ci8qIExpbmtzYW1tbHVuZ3Mt TW9kdWwgKHJlY2h0cywgZXJzZXR6dCB0ZW1wb3JhZXIgZGllIERpZW5zdGdydXBwZSkgKi8KLnBh bmVsLmxpbmtjb2wgeyBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tYnJh bmQpIDM1JSwgdmFyKC0tbGluZSkpOyB9Ci5saW5rY29sLWhlYWQgaDMgeyBtYXJnaW4tcmlnaHQ6 IDRweDsgfQoubGlua2NvbC1oZWFkIC5pY28geyBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC1zb2Z0 KTsgY29sb3I6IHZhcigtLWJyYW5kKTsgfQoubGlua2NvbC1hY3RzIHsgbWFyZ2luLWxlZnQ6IGF1 dG87IGRpc3BsYXk6IGlubGluZS1mbGV4OyBnYXA6IDJweDsgfQoubGlua2NvbCA+IC5saW5rY29s LWJvZHkgeyBwYWRkaW5nOiAxMnB4OyB9Ci8qIEVkaXRvcjogTGlua3NhbW1sdW5ncy1aZWlsZSAq LwoubGMtcm93IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjFmciAx LjVmciAxMTZweCBhdXRvOyBnYXA6IDZweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQoubGMtbW9k ZSB7IHBhZGRpbmc6IDZweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGJvcmRlcjogMXB4 IHNvbGlkIHZhcigtLWxpbmUtMik7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBjb2xvcjogdmFy KC0tdGV4dCk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyB9Ci5sYy1zZWMgLnJlLXNlYy1oZWFk IC5tb25vIHsgZmxleDogMCAwIGF1dG87IGZvbnQtc2l6ZTogMTFweDsgfQoKLnFsLWdyaWQgeyBk aXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogN3B4OyB9 Ci5xbC0zIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsgfQoucWwtMyAu cWwgeyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNp emU6IDExLjVweDsgcGFkZGluZzogOHB4OyBtaW4taGVpZ2h0OiAzOHB4OyBnYXA6IDVweDsgfQou cWwtMyAucWwgLmxibCB7IGZsZXg6IDAgMSBhdXRvOyB9Ci5xbCB7CiAgcG9zaXRpb246IHJlbGF0 aXZlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsKICBwYWRk aW5nOiA5cHggMTFweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7CiAgYmFja2dyb3VuZDog dmFyKC0tYmctMyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBjb2xvcjogdmFyKC0t dGV4dC1kaW0pOwogIGZvbnQtc2l6ZTogMTIuNXB4OyBmb250LXdlaWdodDogNjAwOyB0cmFuc2l0 aW9uOiAuMTJzOyBtaW4taGVpZ2h0OiA0MHB4OyB0ZXh0LWFsaWduOiBsZWZ0Owp9Ci5xbDpob3Zl ciB7IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXNvZnQpOyBib3JkZXItY29sb3I6IHZhcigtLWJy YW5kKTsgY29sb3I6IHZhcigtLWJyYW5kLXN0cm9uZyk7IH0KLnFsIC5sYmwgeyBmbGV4OiAxOyBt aW4td2lkdGg6IDA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9 Ci5xbCAuZXh0IHsgd2lkdGg6IDEycHg7IGhlaWdodDogMTJweDsgY29sb3I6IHZhcigtLXRleHQt Zm50KTsgZmxleDogMCAwIGF1dG87IH0KLnFsOmhvdmVyIC5leHQgeyBjb2xvcjogdmFyKC0tYnJh bmQpOyB9Ci8qIFByby1MaW5rLVZhcmlhbnRlbiAoYmVpIGRlciBFcnN0ZWxsdW5nIHdhZWhsYmFy KSAqLwoucWwucHJpbWFyeSB7IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kKTsgYm9yZGVyLWNvbG9y OiB2YXIoLS1icmFuZCk7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgfQoucWwucHJpbWFyeTpo b3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXN0cm9uZyk7IGJvcmRlci1jb2xvcjogdmFy KC0tYnJhbmQtc3Ryb25nKTsgY29sb3I6IHZhcigtLWFjY2VudC1pbmspOyB9Ci5xbC5wcmltYXJ5 IC5leHQsIC5xbC5wcmltYXJ5OmhvdmVyIC5leHQgeyBjb2xvcjogdmFyKC0tYWNjZW50LWluayk7 IH0KLnFsLmRhbmdlciB7IGJhY2tncm91bmQ6IHZhcigtLWRhbmdlci1zb2Z0KTsgYm9yZGVyLWNv bG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWRhbmdlcikgMzQlLCB2YXIoLS1saW5lKSk7 IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9Ci5xbC5kYW5nZXI6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2 YXIoLS1kYW5nZXIpOyBib3JkZXItY29sb3I6IHZhcigtLWRhbmdlcik7IGNvbG9yOiAjZmZmOyB9 Ci5xbC5kYW5nZXI6aG92ZXIgLmV4dCB7IGNvbG9yOiAjZmZmOyB9Ci8qIExvZXNjaGVuIGltIFBm bGVnZS1Nb2R1czogVmllcmVjayBiw7xuZGlnIGluIGRlciBvYmVyZW4gcmVjaHRlbiBFY2tlIOKA lCB3aXJrdCB3aWUgZWluCiAgIGlubmVubGllZ2VuZGVyIFRlaWwgZGVzIEJ1dHRvbnMgKGF1c3Nl biA9IEJ1dHRvbi1SYWRpdXMsIGlubmVuIGxlaWNodCBnZXJ1bmRldCwga2VpbiBLcmVpcykuICov Ci5xbCAucWRlbCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyByaWdodDogMDsgd2lkdGg6 IDE5cHg7IGhlaWdodDogMTlweDsKICBib3JkZXItcmFkaXVzOiAwIHZhcigtLXItc20pIDAgdmFy KC0tci1zbSk7IGJhY2tncm91bmQ6IHZhcigtLWRhbmdlcik7IGNvbG9yOiAjZmZmOwogIGRpc3Bs YXk6IG5vbmU7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IH0KLmVkaXRpbmcgLnFsIC5xZGVsIHsgZGlz cGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlm eS1jb250ZW50OiBjZW50ZXI7IH0KLmVkaXRpbmcgLnFsIHsgcGFkZGluZy1yaWdodDogMjZweDsg fSAgIC8qIFBsYXR6IGZ1ZXIgZGFzIExvZXNjaC1WaWVyZWNrICovCi5xbCAucWRlbDpob3ZlciB7 IGJhY2tncm91bmQ6IHZhcigtLWRhbmdlci1kKTsgfQoucWwgLnFkZWwgc3ZnIHsgd2lkdGg6IDEw cHg7IGhlaWdodDogMTBweDsgZGlzcGxheTogYmxvY2s7IH0KCi8qIFNvZm9ydC1CbG9jayAoTm90 ZmFsbCkg4oCUIEthcnRlIG1pdCByYW5kdm9sbGVtIEtvcGYgKyAxMnB4LUJvZHkgKi8KLnBhbmVs LnNvcyB7IGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1kYW5nZXIpIDM0 JSwgdmFyKC0tbGluZSkpOyB9Ci5wYW5lbC5zb3MgLnBhbmVsLWhlYWQgeyBiYWNrZ3JvdW5kOiB2 YXIoLS1kYW5nZXItc29mdCk7IGJvcmRlci1ib3R0b20tY29sb3I6IGNvbG9yLW1peChpbiBva2xh YiwgdmFyKC0tZGFuZ2VyKSAyNCUsIHZhcigtLWxpbmUpKTsgfQoucGFuZWwuc29zIC5wYW5lbC1o ZWFkIGgzIHsgY29sb3I6IHZhcigtLWRhbmdlcik7IH0KLnBhbmVsLnNvcyAucGFuZWwtaGVhZCAu aWNvIHsgYmFja2dyb3VuZDogdmFyKC0tZGFuZ2VyKTsgY29sb3I6ICNmZmY7IH0KLnBhbmVsLnNv cyA+IC5zb3MtcHJpbWFyeSB7IG1hcmdpbjogMTJweCAxMnB4IDA7IH0KLnBhbmVsLnNvcyA+IC5x bC1ncmlkIHsgcGFkZGluZzogMTJweDsgfQouc29zLXByaW1hcnkgewogIGRpc3BsYXk6IGZsZXg7 IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgd2lkdGg6IGNhbGMoMTAwJSAtIDI0cHgp OwogIHBhZGRpbmc6IDEycHggMTVweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1tZCk7CiAgYmFj a2dyb3VuZDogdmFyKC0tZGFuZ2VyKTsgY29sb3I6ICNmZmY7IGZvbnQtd2VpZ2h0OiA3MDA7IGZv bnQtc2l6ZTogMTRweDsgdHJhbnNpdGlvbjogLjE0czsKfQouc29zLXByaW1hcnk6aG92ZXIgeyBi YWNrZ3JvdW5kOiB2YXIoLS1kYW5nZXItZCk7IH0KLnNvcy1wcmltYXJ5IHN2ZyB7IHdpZHRoOiAx OHB4OyBoZWlnaHQ6IDE4cHg7IH0KLnNvcyAucWwgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsg fQouc29zIC5xbDpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWRhbmdlci1zb2Z0KTsgYm9yZGVy LWNvbG9yOiB2YXIoLS1kYW5nZXIpOyBjb2xvcjogdmFyKC0tZGFuZ2VyKTsgfQoKLmFkZC1idG4g eyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA1cHg7IGhl aWdodDogMjhweDsgcGFkZGluZzogMCAxMHB4OyBib3JkZXItcmFkaXVzOiA2cHg7IGJhY2tncm91 bmQ6IHZhcigtLWJnLTMpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyBjb2xvcjog dmFyKC0tdGV4dC1kaW0pOyBmb250LXNpemU6IDExLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsgfQou YWRkLWJ0bjpob3ZlciB7IGNvbG9yOiB2YXIoLS1icmFuZCk7IGJvcmRlci1jb2xvcjogdmFyKC0t YnJhbmQpOyB9Ci5hZGQtYnRuIHN2ZyB7IHdpZHRoOiAxM3B4OyBoZWlnaHQ6IDEzcHg7IH0KCi8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tIERpZW5zdGdydXBwZSAvIFZvcnN0cnVrdHVyaWVydW5nICovCi5yb3N0ZXIgeyBtYXJnaW46 IDAgMTBweCAyMHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsgYm9yZGVyOiAxcHggc29saWQg dmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbGcpOyBib3gtc2hhZG93OiB2YXIo LS1zaGFkb3ctc20pOyBvdmVyZmxvdzogaGlkZGVuOyB9Ci5yb3N0ZXItaGVhZCB7IGRpc3BsYXk6 IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vl bjsgZ2FwOiAxMHB4OyBwYWRkaW5nOiAxM3B4IDE2cHg7IGZsZXgtd3JhcDogd3JhcDsgYmFja2dy b3VuZDogdmFyKC0tYnJhbmQtc29mdCk7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1s aW5lKTsgfQoucm9zdGVyLXRpdGxlIHsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogODAw OyBsZXR0ZXItc3BhY2luZzogLS4wMWVtOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogYmFz ZWxpbmU7IGdhcDogM3B4OyBjb2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgfQouci1ncm91cCB7 IHdpZHRoOiA0OHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtd2VpZ2h0OiA4MDA7IGZvbnQt c2l6ZTogMTZweDsgYmFja2dyb3VuZDogdmFyKC0tYmctMik7IGJvcmRlcjogMXB4IHNvbGlkIHZh cigtLWxpbmUtMik7IGJvcmRlci1yYWRpdXM6IDZweDsgcGFkZGluZzogMXB4IDA7IGNvbG9yOiB2 YXIoLS1icmFuZC1zdHJvbmcpOyB9Ci5yLWdyb3VwOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIo LS1icmFuZCk7IH0KLnItZ3JvdXA6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6 IHZhcigtLWJyYW5kKTsgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9 Ci5yb3N0ZXItYWN0aW9ucyB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2Vu dGVyOyBnYXA6IDRweDsgfQouaWNvbi1taW5pIHsgd2lkdGg6IDI2cHg7IGhlaWdodDogMjZweDsg Ym9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBj ZW50ZXI7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFy ZW50OyB0cmFuc2l0aW9uOiAuMTJzOyB9Ci5pY29uLW1pbmk6aG92ZXIgeyBjb2xvcjogdmFyKC0t dGV4dCk7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdik7IGJvcmRlci1jb2xvcjogdmFyKC0tbGlu ZSk7IH0KLmljb24tbWluaSBzdmcgeyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyB9Ci5yb3N0 ZXItY2xvY2sgeyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgY29sb3I6IHZhcigtLXRleHQtZGlt KTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgd2hpdGUtc3BhY2U6IG5vd3Jh cDsgfQouci1ncm91cC1oIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyBn YXA6IDZweDsgbWFyZ2luOiAxMnB4IDRweCA2cHg7IGZvbnQtd2VpZ2h0OiA4MDA7IH0KLnItZ3Jv dXAtaDpmaXJzdC1vZi10eXBlIHsgbWFyZ2luLXRvcDogMnB4OyB9Ci5yLWdyb3VwLWxibCB7IGZv bnQtc2l6ZTogdmFyKC0tZnMtc20pOyBsZXR0ZXItc3BhY2luZzogLjAxZW07IH0KLnItc2VjLWgg eyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNp bmc6IDA7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IHBhZGRpbmc6IDJweCA0cHggNHB4OyB9Cgov KiBSb3N0ZXItRWRpdG9yIChmZWF0dXJlcy9yb3N0ZXItZWRpdC5qcykgKi8KLnJlLWJvZHkgeyBn YXA6IHZhcigtLXNwLTQpOyB9Ci5yZS1ncm91cCB7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxp bmUpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsgcGFkZGluZzogdmFyKC0tc3AtMyk7IGJh Y2tncm91bmQ6IHZhcigtLXN1cmZhY2UtMSk7IH0KLnJlLWdyb3VwLWhlYWQgeyBkaXNwbGF5OiBm bGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTIpOyBtYXJnaW4tYm90dG9t OiB2YXIoLS1zcC0yKTsgfQoucmUtZ2xhYmVsLXByZSB7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQt c2l6ZTogdmFyKC0tZnMtc20pOyB9Ci5yZS1nbGFiZWwgeyB3aWR0aDogNTZweDsgdGV4dC1hbGln bjogY2VudGVyOyBmb250LXdlaWdodDogODAwOyBwYWRkaW5nOiA2cHggNHB4OyBib3JkZXItcmFk aXVzOiB2YXIoLS1yLXNtKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4IHNv bGlkIHZhcigtLWxpbmUpOyBjb2xvcjogdmFyKC0tYnJhbmQpOyB9CnNlbGVjdC5yZS1nbGFiZWwg eyB3aWR0aDogNzBweDsgdGV4dC1hbGlnbjogbGVmdDsgY3Vyc29yOiBwb2ludGVyOyB9Ci5yZS1z ZWNzIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiB2YXIoLS1z cC0zKTsgfQoucmUtc2VjIHsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1y YWRpdXM6IHZhcigtLXItbWQpOyBwYWRkaW5nOiB2YXIoLS1zcC0yKTsgYmFja2dyb3VuZDogdmFy KC0tc3VyZmFjZS0yKTsgfQoucmUtc2VjLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBnYXA6IHZhcigtLXNwLTIpOyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC0yKTsg fQoucmUtc2VjLXRpdGxlIHsgZmxleDogMTsgcGFkZGluZzogNnB4IDEwcHg7IGJvcmRlci1yYWRp dXM6IHZhcigtLXItc20pOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0zKTsgYm9yZGVyOiAxcHggc29s aWQgdmFyKC0tbGluZSk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KLnJlLXJvd3MgeyBkaXNwbGF5OiBm bGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsgfQoucmUtcm93IHsgZGlzcGxh eTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxNnB4IG1pbm1heCgxMjBweCwxLjJmcikg bWlubWF4KDgwcHgsLjhmcikgbWlubWF4KDEyMHB4LDEuMmZyKSBhdXRvOyBhbGlnbi1pdGVtczog Y2VudGVyOyBnYXA6IDZweDsgcGFkZGluZzogM3B4IDRweDsgYm9yZGVyLXJhZGl1czogdmFyKC0t ci1zbSk7IH0KLnJlLXJvdy5kcmFnZ2luZyB7IG9wYWNpdHk6IC41OyB9Ci5yZS1yb3cuZHJvcC1i ZWZvcmUgeyBib3gtc2hhZG93OiBpbnNldCAwIDJweCAwIHZhcigtLWJyYW5kKTsgfQoucmUtcm93 LmRyb3AtYWZ0ZXIgeyBib3gtc2hhZG93OiBpbnNldCAwIC0ycHggMCB2YXIoLS1icmFuZCk7IH0K LnJlLXJvdyBpbnB1dCB7IHBhZGRpbmc6IDZweCA5cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIt c20pOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0zKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGlu ZSk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyB9Ci5yZS1yb3cgaW5wdXQ6Zm9jdXMgeyBvdXRs aW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRvdzogMCAwIDAg M3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9Ci8qIEFQVy0vV0QtQXVzd2FobCAoRHJvcGRvd24gKyBh dXRvbWF0aXNjaGVyLCBuaWNodCBlZGl0aWVyYmFyZXIgUnVmbmFtZSkgKi8KLnJlLXJvdyBzZWxl Y3QucmUtYXB3IHsgcGFkZGluZzogNnB4IDlweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7 IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsg Zm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGNvbG9yOiB2YXIoLS10ZXh0KTsgd2lkdGg6IDEwMCU7 IH0KLnJlLXJvdyBzZWxlY3QucmUtYXB3OmZvY3VzIHsgb3V0bGluZTogbm9uZTsgYm9yZGVyLWNv bG9yOiB2YXIoLS1icmFuZCk7IGJveC1zaGFkb3c6IDAgMCAwIDNweCB2YXIoLS1icmFuZC1zb2Z0 KTsgfQoucmUtYXB3LWNhbGwgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNl bnRlcjsgcGFkZGluZzogNnB4IDlweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGJhY2tn cm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tbGluZSk7IGNvbG9y OiB2YXIoLS10ZXh0LWRpbSk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBtaW4td2lkdGg6IDA7 IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTog bm93cmFwOyB9Ci5udi1taW5pLnJlLWFwdy10b2cgeyB3aWR0aDogYXV0bzsgcGFkZGluZzogMCA3 cHg7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDgwMDsgbGV0dGVyLXNwYWNpbmc6IC4w M2VtOyB9Ci5udi1taW5pLnJlLWFwdy10b2cub24geyBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC1z b2Z0KTsgY29sb3I6IHZhcigtLWJyYW5kLXN0cm9uZyk7IH0KLnJlLWFjdHMgeyBkaXNwbGF5OiBp bmxpbmUtZmxleDsgZ2FwOiAycHg7IH0KLnJlLWFkZCB7IGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7 IG1hcmdpbi10b3A6IHZhcigtLXNwLTIpOyBwYWRkaW5nOiA2cHggMTJweDsgZm9udC1zaXplOiB2 YXIoLS1mcy1zbSk7IH0KLnJlLWdyb3VwIC5yZS1ncmlwLCAucmUtcm93IC5udi1ncmlwIHsgY29s b3I6IHZhcigtLXRleHQtZm50KTsgY3Vyc29yOiBncmFiOyBmb250LXNpemU6IDEycHg7IH0KCi8q IE5hdi1QaWNrZXIgKGludGVybmVyIExpbmssIGZlYXR1cmVzL25hdi5qcyBvcGVuTmF2UGlja2Vy KSAqLwoubnAtc2VhcmNoIHsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDlweCAxMnB4OyBib3JkZXIt cmFkaXVzOiB2YXIoLS1yLXNtKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4 IHNvbGlkIHZhcigtLWxpbmUpOyBmb250LXNpemU6IHZhcigtLWZzLWJhc2UpOyB9Ci5ucC1zZWFy Y2g6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94 LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9Ci5ucC1saXN0IHsgZGlzcGxh eTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAycHg7IG1heC1oZWlnaHQ6IDUy dmg7IG92ZXJmbG93OiBhdXRvOyB9Ci5ucC1yb3cgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBnYXA6IHZhcigtLXNwLTIpOyBwYWRkaW5nOiA4cHggMTBweDsgYm9yZGVyLXJh ZGl1czogdmFyKC0tci1zbSk7IHRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBjb2xvcjog dmFyKC0tdGV4dC1kaW0pOyB0cmFuc2l0aW9uOiAuMTJzOyB9Ci5ucC1yb3c6aG92ZXIgeyBiYWNr Z3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLm5wLWljIHsgZGlz cGxheTogaW5saW5lLWZsZXg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IGZsZXg6IDAgMCBhdXRv OyB9Ci5ucC1pYyBzdmcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyB9Ci5ucC1sYmwgeyBm bGV4OiAxOyBtaW4td2lkdGg6IDA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVs bGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBmb250LXdlaWdodDogNjAwOyB9Ci5ucC1raW5k IHsgZm9udC1zaXplOiB2YXIoLS1mcy0yeHMpOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBsZXR0 ZXItc3BhY2luZzogLjA0ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZsZXg6IDAgMCBh dXRvOyB9CgovKiBQYW5lbHMtVmVyd2FsdGVuLUVpbnN0aWVnIChyZWNodGUgU3BhbHRlLCBlZGl0 LW9ubHkpICovCi5wYW5lbHMtdG9vbGJhciB7IG1hcmdpbjogNHB4IDlweCAxMHB4OyB9Ci5wYW5l bHMtdG9vbGJhciAuYWRkLWJ0biB7IHdpZHRoOiAxMDAlOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRl cjsgfQoKLyogUGFuZWwtRWRpdG9yIChmZWF0dXJlcy9wYW5lbHMtZWRpdC5qcykgKi8KLnBlLWJv ZHkgeyBnYXA6IHZhcigtLXNwLTQpOyB9Ci5wZS1wYW5lbCB7IGJvcmRlcjogMXB4IHNvbGlkIHZh cigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsgcGFkZGluZzogdmFyKC0tc3At Myk7IGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UtMSk7IH0KLnBlLXBhbmVsLWhlYWQgeyBkaXNw bGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTIpOyBtYXJnaW4t Ym90dG9tOiB2YXIoLS1zcC0yKTsgfQoucGUtcHR5cGUgeyBmb250LWZhbWlseTogdmFyKC0tbW9u byk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtMnhzKTsgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXRyYWNr aW5nLWNhcCk7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0LWZu dCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1y LXNtKTsgcGFkZGluZzogM3B4IDdweDsgZmxleDogMCAwIGF1dG87IH0KLnBlLXB0aXRsZSB7IGZs ZXg6IDE7IHBhZGRpbmc6IDZweCAxMHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXNtKTsgYmFj a2dyb3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBmb250 LXdlaWdodDogNjAwOyB9Ci5wZS1saW5rcyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9u OiBjb2x1bW47IGdhcDogNHB4OyB9Ci5wZS1saW5rIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1w bGF0ZS1jb2x1bW5zOiBtaW5tYXgoMTEwcHgsMS4xZnIpIG1pbm1heCgxMzBweCwxLjRmcikgYXV0 byBhdXRvOyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsgfQoucGUtbGluayBpbnB1dCwg LnBlLXZhcmlhbnQgeyBwYWRkaW5nOiA2cHggOXB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXNt KTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUp OyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgfQoucGUtdmFyaWFudCB7IGNvbG9yOiB2YXIoLS10 ZXh0LWRpbSk7IH0KLnBlLWxpbmsgaW5wdXQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXIt Y29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLWJyYW5kLXNv ZnQpOyB9Ci5wZS1sdGFyZ2V0IHsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IHBhZGRpbmc6IDZw eCA5cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0 LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQoucGUtaW50ZXJuIHsg Y29sb3I6IHZhcigtLWJyYW5kKTsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIo LS1icmFuZCkgMTAlLCB0cmFuc3BhcmVudCk7IH0KLnBlLWFkZCB7IGRpc3BsYXk6IGZsZXg7IGdh cDogdmFyKC0tc3AtMik7IG1hcmdpbi10b3A6IHZhcigtLXNwLTIpOyBmbGV4LXdyYXA6IHdyYXA7 IH0KLnBlLWFkZCAuYnRuIHsgcGFkZGluZzogNnB4IDEycHg7IGZvbnQtc2l6ZTogdmFyKC0tZnMt c20pOyB9CgovKiBJbnRlcm5lciBMaW5rIGltIGdlcmVuZGVydGVuIEFydGlrZWwvRmVlZCAoUGhh c2UgOSkgKi8KLmFydC1ib2R5IGEucG9ydGFsLWxpbmssIC5idWxsLWJvZHkgYS5wb3J0YWwtbGlu ayB7IGNvbG9yOiB2YXIoLS1icmFuZCk7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvci1t aXgoaW4gb2tsY2gsIHZhcigtLWJyYW5kKSA0MCUsIHRyYW5zcGFyZW50KTsgY3Vyc29yOiBwb2lu dGVyOyB9Ci5hcnQtYm9keSBhLnBvcnRhbC1saW5rOmhvdmVyLCAuYnVsbC1ib2R5IGEucG9ydGFs LWxpbms6aG92ZXIgeyBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLnItc2Vj IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgcGFkZGluZzogOHB4OyBn YXA6IDNweDsgfQouci1zZWMgKyAuci1zZWMgeyBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0t bGluZSk7IH0KLnItcm93IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBt aW5tYXgoMTMycHgsIDIwMHB4KSAxZnI7IGFsaWduLWl0ZW1zOiBzdHJldGNoOyBnYXA6IDhweDsg fQouci1sYWJlbCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4 OyBwYWRkaW5nOiA1cHggNHB4IDVweCA4cHg7IG1pbi1oZWlnaHQ6IDMycHg7IH0KLnItbGFiZWwg LnJvbGUgeyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDEyLjVweDsgY29sb3I6IHZhcigt LXRleHQtZGltKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1v dmVyZmxvdzogZWxsaXBzaXM7IH0KLnItbGFiZWwgLnN1YiB7IG1hcmdpbi1sZWZ0OiBhdXRvOyBj b2xvcjogdmFyKC0tdGV4dC1mbnQpOyBmb250LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5OiB2YXIo LS1tb25vKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQouci1uYW1lLWNlbGwgeyBkaXNwbGF5OiBm bGV4OyB9Ci5yLW5hbWUgeyB3aWR0aDogMTAwJTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGJv cmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiA2cHg7IHBhZGRpbmc6 IDVweCAxMHB4OyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDEzcHg7IHRyYW5zaXRpb246 IC4xMnM7IH0KLnItbmFtZTo6cGxhY2Vob2xkZXIgeyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBm b250LXdlaWdodDogNDAwOyB9Ci5yLW5hbWU6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWxp bmUtMik7IH0KLnItbmFtZTpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IGJvcmRlci1jb2xvcjogdmFy KC0tYnJhbmQpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsgYm94LXNoYWRvdzogMCAwIDAgM3B4 IHZhcigtLWJyYW5kLXNvZnQpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBDT01NQU5ELVBBTEVUVEUg KGdsb2JhbGUgU3VjaGUpCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5jbWQtcmVzdWx0cyB7CiAgcG9zaXRp b246IGFic29sdXRlOyB0b3A6IGNhbGMoMTAwJSArIDhweCk7IGxlZnQ6IDA7IHJpZ2h0OiAwOwog IGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIp OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3cp OyBtYXgtaGVpZ2h0OiBtaW4oNjR2aCwgNTIwcHgpOyBvdmVyZmxvdy15OiBhdXRvOyBwYWRkaW5n OiA3cHg7IHotaW5kZXg6IHZhcigtLXotZHJvcGRvd24pOwp9Ci5jbWQtc2NvcGVzIHsgZGlzcGxh eTogZmxleDsgZ2FwOiA2cHg7IHBhZGRpbmc6IDhweCAxMHB4OyBib3JkZXItYm90dG9tOiAxcHgg c29saWQgdmFyKC0tbGluZSk7IGZsZXgtd3JhcDogd3JhcDsgfQouY21kLXNjb3BlIHsgZm9udC1z aXplOiAxMnB4OyBwYWRkaW5nOiA0cHggMTFweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxs KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgYmFja2dyb3VuZDogdmFyKC0tYmct Myk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsgfQouY21kLXNjb3Bl OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92KTsgY29sb3I6IHZhcigtLXRleHQpOyB9 Ci5jbWQtc2NvcGUuc2VsIHsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQpOyBib3JkZXItY29sb3I6 IHZhcigtLWJyYW5kKTsgY29sb3I6IHZhcigtLWFjY2VudC1pbmspOyB9Ci5jbWQtY2F0IHsgcGFk ZGluZzogMTBweCAxMXB4IDVweDsgZm9udC1zaXplOiAxMC41cHg7IGZvbnQtd2VpZ2h0OiA3MDA7 IGxldHRlci1zcGFjaW5nOiAuMDdlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6 IHZhcigtLXRleHQtZm50KTsgfQouY21kLWl0ZW0geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBnYXA6IDEycHg7IHBhZGRpbmc6IDlweCAxMXB4OyBib3JkZXItcmFkaXVzOiB2 YXIoLS1yLXNtKTsgY3Vyc29yOiBwb2ludGVyOyB9Ci5jbWQtaXRlbTpob3ZlciwgLmNtZC1pdGVt LnNlbCB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdik7IH0KLmNtZC1pdGVtLnNlbCB7IGJveC1z aGFkb3c6IGluc2V0IDNweCAwIDAgdmFyKC0tYnJhbmQpOyB9Ci5jbWQtaXRlbSAuY2ktaWNvIHsg d2lkdGg6IDMwcHg7IGhlaWdodDogMzBweDsgYm9yZGVyLXJhZGl1czogN3B4OyBiYWNrZ3JvdW5k OiB2YXIoLS1iZy0zKTsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgZmxleDog MCAwIGF1dG87IGNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLmNtZC1pdGVtIC5jaS1pY28gc3ZnIHsg d2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsgfQouY21kLWl0ZW0gLmNpLW1haW4geyBmbGV4OiAx OyBtaW4td2lkdGg6IDA7IH0KLmNtZC1pdGVtIC5jaS1sYWJlbCB7IGZvbnQtc2l6ZTogMTMuNXB4 OyBmb250LXdlaWdodDogNjAwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxp cHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQouY21kLWl0ZW0gLmNpLXBhdGggeyBmb250LXNp emU6IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IGZvbnQtZmFtaWx5OiB2YXIoLS1tb25v KTsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IHdoaXRlLXNwYWNl OiBub3dyYXA7IH0KLmNtZC1pdGVtIC5jaS1raW5kIHsgZm9udC1zaXplOiAxMHB4OyBmb250LWZh bWlseTogdmFyKC0tbW9ubyk7IGxldHRlci1zcGFjaW5nOiAuMWVtOyB0ZXh0LXRyYW5zZm9ybTog dXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBwYWRkaW5nOiAycHggN3B4OyBib3Jk ZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsKTsg ZmxleDogMCAwIGF1dG87IH0KLmNtZC1lbXB0eSB7IHBhZGRpbmc6IDI2cHg7IHRleHQtYWxpZ246 IGNlbnRlcjsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgfQoKLyogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQeKA k1ogUkVHSVNURVIgKE92ZXJsYXkpCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5vdmVybGF5IHsgcG9zaXRp b246IGZpeGVkOyBpbnNldDogMDsgei1pbmRleDogdmFyKC0tei1vdmVybGF5KTsgZGlzcGxheTog bm9uZTsgfQoub3ZlcmxheS5vcGVuIHsgZGlzcGxheTogYmxvY2s7IH0KLm92ZXJsYXktYmcgeyBw b3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyBiYWNrZ3JvdW5kOiByZ2JhKDE1LDI1LDQwLC40 Nik7IGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpOyB9Ci5hei1wYW5lbCB7CiAgcG9zaXRpb246 IGFic29sdXRlOyBsZWZ0OiA1MCU7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAl LC01MCUpOwogIHdpZHRoOiBtaW4oOTAwcHgsIDkydncpOyBtYXgtaGVpZ2h0OiA4NnZoOyBvdmVy ZmxvdzogaGlkZGVuOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGJh Y2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyBi b3JkZXItcmFkaXVzOiB2YXIoLS1yLXhsKTsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTsKfQou YXotaGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsg cGFkZGluZzogMTZweCAyMHB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGluZSk7 IH0KLmF6LWhlYWQgaDIgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTZweDsgbGV0dGVyLXNwYWNp bmc6IC4wNGVtOyB9Ci5hei1oZWFkIC5tb25vIHsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgZm9u dC1zaXplOiAxMnB4OyB9Ci5hei1zdHJpcCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3Jh cDsgZ2FwOiA2cHg7IHBhZGRpbmc6IDE0cHggMjBweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlk IHZhcigtLWxpbmUpOyB9Ci5hei1rZXkgewogIHdpZHRoOiAzOHB4OyBoZWlnaHQ6IDM4cHg7IGJv cmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2Vu dGVyOwogIGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1s aW5lKTsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAxNXB4OyBjb2xvcjogdmFyKC0tdGV4 dC1kaW0pOyB0cmFuc2l0aW9uOiAuMTJzOwp9Ci5hei1rZXk6aG92ZXI6bm90KDpkaXNhYmxlZCkg eyBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZCk7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgYm9y ZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLmF6LWtleS5hY3RpdmUgeyBiYWNrZ3JvdW5kOiB2 YXIoLS1icmFuZCk7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgYm9yZGVyLWNvbG9yOiB2YXIo LS1icmFuZCk7IH0KLmF6LWtleTpkaXNhYmxlZCB7IG9wYWNpdHk6IC4zMjsgY3Vyc29yOiBkZWZh dWx0OyB9Ci5hei1ib2R5IHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogMTZw eCAyMnB4IDI2cHg7IGNvbHVtbi13aWR0aDogMjQ4cHg7IGNvbHVtbi1nYXA6IDI4cHg7IH0KLmF6 LWxldHRlci1oIHsgZm9udC1zaXplOiAyMHB4OyBmb250LXdlaWdodDogODAwOyBjb2xvcjogdmFy KC0tYnJhbmQpOyBtYXJnaW46IDhweCAwIDZweDsgYnJlYWstYWZ0ZXI6IGF2b2lkOyB9Ci5hei1s aW5rIHsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IDZweCA5cHg7IGJvcmRlci1yYWRpdXM6IDZw eDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgZm9udC1zaXplOiAxMy41cHg7IGJyZWFrLWluc2lk ZTogYXZvaWQ7IH0KLmF6LWxpbms6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBj b2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgfQovKiBQZmxlZ2UtTW9kdXM6IEHigJNaLVplaWxl IG1pdCBFZGl0aWVyLVN0aWZ0IHJlY2h0cyAoZ2xlaWNoZXIgS25vdGVuLUVkaXRvciB3aWUgaW4g ZGVyIFNlaXRlbmxlaXN0ZSkuICovCi5hei1yb3cgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBnYXA6IDRweDsgYnJlYWstaW5zaWRlOiBhdm9pZDsgfQouYXotcm93IC5hei1s aW5rIHsgZmxleDogMSAxIGF1dG87IG1pbi13aWR0aDogMDsgfQouYXotZWRpdCB7IGZsZXg6IDAg MCBhdXRvOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlm eS1jb250ZW50OiBjZW50ZXI7IHdpZHRoOiAyNnB4OyBoZWlnaHQ6IDI2cHg7IHBhZGRpbmc6IDA7 IGJvcmRlcjogMDsgYm9yZGVyLXJhZGl1czogNnB4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsg Y29sb3I6IHZhcigtLXRleHQtZGltKTsgY3Vyc29yOiBwb2ludGVyOyBvcGFjaXR5OiAwOyB0cmFu c2l0aW9uOiBvcGFjaXR5IHZhcigtLWR1ci0xKSB2YXIoLS1lYXNlLW91dCksIGJhY2tncm91bmQg dmFyKC0tZHVyLTEpIHZhcigtLWVhc2Utb3V0KTsgfQouYXotZWRpdCBzdmcgeyB3aWR0aDogMTVw eDsgaGVpZ2h0OiAxNXB4OyB9Ci5hei1yb3c6aG92ZXIgLmF6LWVkaXQsIC5hei1lZGl0OmZvY3Vz LXZpc2libGUgeyBvcGFjaXR5OiAuNzU7IH0KLmF6LWVkaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2 YXIoLS1iZy1ob3YpOyBjb2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgb3BhY2l0eTogMTsgfQpA bWVkaWEgKGhvdmVyOiBub25lKSB7IC5hei1lZGl0IHsgb3BhY2l0eTogLjY7IH0gfSAgIC8qIFRv dWNoOiBrZWluIEhvdmVyIC0+IFN0aWZ0IGRhdWVyaGFmdCBzaWNodGJhciAqLwoKLyogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KICAgRElBTE9HIChCdWxsZXRpbiAvIExpbmsgYmVhcmJlaXRlbikKICAgPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0gKi8KLyogVmlzdWVsbCBhbiAubW9kYWwgYW5nZWdsaWNoZW4gKFBoYXNlIDUpOiBnbGVpY2hl IEZsYWVjaGUvU2NoYXR0ZW4vQmFja2Ryb3AvQWJzdGFlbmRlLiAqLwpkaWFsb2cuZGxnIHsKICB3 aWR0aDogbWluKHZhcigtLW1vZGFsLW1kKSwgOTR2dyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigt LWxpbmUtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIteGwpOwogIGJhY2tncm91bmQ6IHZhcigt LWJnLTIpOyBjb2xvcjogdmFyKC0tdGV4dCk7IHBhZGRpbmc6IDA7IGJveC1zaGFkb3c6IHZhcigt LXNoYWRvdyk7Cn0KZGlhbG9nLmRsZzo6YmFja2Ryb3AgeyBiYWNrZ3JvdW5kOiByZ2JhKDE1LDI1 LDQwLC40Nik7IGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpOyB9Ci5kbGctaGVhZCB7IGRpc3Bs YXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogdmFyKC0tc3AtMyk7IHBhZGRpbmc6 IHZhcigtLXNwLTQpIHZhcigtLXNwLTUpOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0t bGluZSk7IH0KLmRsZy1oZWFkIGgyIHsgbWFyZ2luOiAwOyBmb250LXNpemU6IHZhcigtLWZzLW1k KTsgZm9udC13ZWlnaHQ6IDYwMDsgfQouZGxnLWhlYWQgLnggeyBtYXJnaW4tbGVmdDogYXV0bzsg fQouZGxnLWJvZHkgeyBwYWRkaW5nOiB2YXIoLS1zcC00KSB2YXIoLS1zcC01KTsgbWF4LWhlaWdo dDogNzB2aDsgb3ZlcmZsb3cteTogYXV0bzsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246 IGNvbHVtbjsgZ2FwOiB2YXIoLS1zcC0zKTsgfQouZmllbGQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4 LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDZweDsgfQouZmllbGQgPiBsYWJlbCB7IGZvbnQtc2l6 ZTogdmFyKC0tZnMtc20pOyBsZXR0ZXItc3BhY2luZzogMDsgY29sb3I6IHZhcigtLXRleHQtZGlt KTsgZm9udC13ZWlnaHQ6IDYwMDsgfQouZmllbGQgaW5wdXQsIC5maWVsZCB0ZXh0YXJlYSwgLmZp ZWxkIHNlbGVjdCB7CiAgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDExcHggMTNweDsgYm9yZGVyLXJh ZGl1czogdmFyKC0tci1zbSk7CiAgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4 IHNvbGlkIHZhcigtLWxpbmUpOyBmb250LXNpemU6IHZhcigtLWZzLWJhc2UpOyB0cmFuc2l0aW9u OiBib3JkZXItY29sb3IgdmFyKC0tZHVyLTEpLCBib3gtc2hhZG93IHZhcigtLWR1ci0xKTsKfQov KiBXZWljaGVyIEhJRy1Gb2t1c3JpbmcgKFBoYXNlIDEyKTogQnJhbmQtQm9yZGVyICsgZGV6ZW50 ZXIgZ2V0b2VudGVyIEhhbG8gc3RhdHQgaGFydGVyIEdsb3cuICovCi5maWVsZCBpbnB1dDpmb2N1 cywgLmZpZWxkIHRleHRhcmVhOmZvY3VzLCAuZmllbGQgc2VsZWN0OmZvY3VzIHsgb3V0bGluZTog bm9uZTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IGJhY2tncm91bmQ6IHZhcigtLWJnLTIp OyBib3gtc2hhZG93OiAwIDAgMCAzcHggdmFyKC0tYnJhbmQtc29mdCk7IH0KLmZpZWxkIHRleHRh cmVhIHsgcmVzaXplOiB2ZXJ0aWNhbDsgbWluLWhlaWdodDogMTMwcHg7IGxpbmUtaGVpZ2h0OiAx LjY7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsgfQouZmllbGQgLmhpbnQgeyBmb250LXNpemU6 IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IH0KLnJvdzIgeyBkaXNwbGF5OiBncmlkOyBn cmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTRweDsgfQoudG9nZ2xlLXJvdyB7 IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgfQouc3dpdGNo IHsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogNDJweDsgaGVpZ2h0OiAyNHB4OyBib3JkZXIt cmFkaXVzOiB2YXIoLS1yLXBpbGwpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZyk7IGJvcmRlcjogMXB4 IHNvbGlkIHZhcigtLWxpbmUtMik7IHRyYW5zaXRpb246IC4xNXM7IGZsZXg6IDAgMCBhdXRvOyB9 Ci5zd2l0Y2g6OmFmdGVyIHsgY29udGVudDogIiI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAy cHg7IGxlZnQ6IDJweDsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgYm9yZGVyLXJhZGl1czog NTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS10ZXh0LWRpbSk7IHRyYW5zaXRpb246IGxlZnQgdmFyKC0t ZHVyLTIpIHZhcigtLWVhc2UtZW1waCksIGJhY2tncm91bmQgdmFyKC0tZHVyLTIpOyB9Ci5zd2l0 Y2gub24geyBiYWNrZ3JvdW5kOiB2YXIoLS1vayk7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7 IH0gICAvKiBISUc6IGFrdGl2ID0gR3J1ZW4gKFBoYXNlIDEyKSAqLwouc3dpdGNoLm9uOjphZnRl ciB7IGxlZnQ6IDIwcHg7IGJhY2tncm91bmQ6ICNmZmY7IH0KLmRsZy1mb290IHsgZGlzcGxheTog ZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1zcC0zKTsgcGFkZGluZzogdmFy KC0tc3AtNCkgdmFyKC0tc3AtNSk7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsg fQouZGxnLWZvb3QgLmdyb3cgeyBmbGV4OiAxOyB9Ci8qIEVpbmhlaXRsaWNoZXMgQnV0dG9uLURl c2lnbiDigJQgb3JpZW50aWVydCBzaWNoIGFuIGRlbiBRdWlja2xpbmtzIGRlciByZWNodGVuIFNw YWx0ZSAoLnFsKToKICAgZ2VydW5kZXRlIEJveCAoa2VpbiBQaWxsKSwgcnVoaWdlIEZsYWVjaGUs IGJyYW5kLXNvZnQtSG92ZXIuIFZhcmlhbnRlbjogcHJpbWFyeS90aW50ZWQvZGFuZ2VyLiAqLwou YnRuIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnkt Y29udGVudDogY2VudGVyOyBnYXA6IDdweDsgcGFkZGluZzogMTBweCAxNnB4OyBib3JkZXItcmFk aXVzOiB2YXIoLS1yLW1kKTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiB2YXIoLS1mcy1z bSk7IGxpbmUtaGVpZ2h0OiAxOwogIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1kdXItMSkg dmFyKC0tZWFzZS1vdXQpLCBiYWNrZ3JvdW5kIHZhcigtLWR1ci0xKSwgYm9yZGVyLWNvbG9yIHZh cigtLWR1ci0xKSwgY29sb3IgdmFyKC0tZHVyLTEpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1s aW5lKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0K LmJ0biBzdmcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyB9Ci5idG46aG92ZXIgeyBiYWNr Z3JvdW5kOiB2YXIoLS1icmFuZC1zb2Z0KTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IGNv bG9yOiB2YXIoLS1icmFuZC1zdHJvbmcpOyB9ICAgLyogPSAucWwtSG92ZXIgKi8KLmJ0bjphY3Rp dmUgeyB0cmFuc2Zvcm06IHNjYWxlKC45Nyk7IH0gICAvKiBISUctVGFwLUZlZWRiYWNrICovCi5i dG4ucHJpbWFyeSB7IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kKTsgYm9yZGVyLWNvbG9yOiB2YXIo LS1icmFuZCk7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgfQouYnRuLnByaW1hcnk6aG92ZXIg eyBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC1zdHJvbmcpOyBib3JkZXItY29sb3I6IHZhcigtLWJy YW5kLXN0cm9uZyk7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgfQouYnRuLnRpbnRlZCB7IGJh Y2tncm91bmQ6IHZhcigtLWJyYW5kLXNvZnQpOyBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyBj b2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgfQouYnRuLnRpbnRlZDpob3ZlciB7IGJhY2tncm91 bmQ6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tYnJhbmQpIDIyJSwgdHJhbnNwYXJlbnQpOyBi b3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9Ci5idG4uZ2hvc3QgeyBiYWNrZ3JvdW5kOiB2YXIo LS1iZy0zKTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1saW5lKTsgY29sb3I6IHZhcigtLXRleHQtZGlt KTsgfQouYnRuLmdob3N0OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQtc29mdCk7IGJv cmRlci1jb2xvcjogdmFyKC0tYnJhbmQpOyBjb2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgfQou YnRuLmRhbmdlciB7IGJhY2tncm91bmQ6IHZhcigtLWRhbmdlci1zb2Z0KTsgY29sb3I6IHZhcigt LWRhbmdlcik7IGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1kYW5nZXIp IDM0JSwgdmFyKC0tbGluZSkpOyB9Ci5idG4uZGFuZ2VyOmhvdmVyIHsgYmFja2dyb3VuZDogdmFy KC0tZGFuZ2VyKTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1kYW5nZXIpOyBjb2xvcjogI2ZmZjsgfQou ZXJyIHsgY29sb3I6IHZhcigtLWRhbmdlcik7IGZvbnQtc2l6ZTogMTIuNXB4OyB9CgovKiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogICBNT0RBTCDigJQgZWluaGVpdGxpY2hlIEtvbXBvbmVudGUgKGNvcmUvbW9kYWwu anMpCiAgIEhUTUw1LTxkaWFsb2c+IGFscyBCYWNrZHJvcC1TY2hpY2h0LCAubW9kYWwtY2FyZCBh bHMgc2ljaHRiYXJlciBLYXN0ZW4uCiAgIExvZXN0IC5jb2xsYWItb3ZlcmxheS8uY29sbGFiLWRs ZyB1bmQgcGVyc3Bla3RpdmlzY2ggLmRsZyBhYi4KICAgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KZGlhbG9nLm1v ZGFsIHsKICBwb3NpdGlvbjogZml4ZWQ7IGluc2V0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAx MDAlOyBtYXgtd2lkdGg6IG5vbmU7IG1heC1oZWlnaHQ6IG5vbmU7CiAgbWFyZ2luOiAwOyBib3Jk ZXI6IDA7IHBhZGRpbmc6IHZhcigtLXNwLTYpOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29s b3I6IHZhcigtLXRleHQpOwogIG92ZXJmbG93OiBhdXRvOwp9CmRpYWxvZy5tb2RhbFtvcGVuXSB7 IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2Vu dGVyOyB9CmRpYWxvZy5tb2RhbDo6YmFja2Ryb3AgeyBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4g b2tsY2gsIHZhcigtLWJnKSAzOCUsIHJnYmEoMCwwLDAsLjYpKTsgYmFja2Ryb3AtZmlsdGVyOiBi bHVyKHZhcigtLWJsdXItcG9wKSk7IH0KLm1vZGFsLWNhcmQgewogIGRpc3BsYXk6IGZsZXg7IGZs ZXgtZGlyZWN0aW9uOiBjb2x1bW47IHdpZHRoOiAxMDAlOyBtYXgtd2lkdGg6IHZhcigtLW1vZGFs LW1kKTsgbWF4LWhlaWdodDogOTB2aDsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsgYm9yZGVy OiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci14bCk7CiAg Ym94LXNoYWRvdzogdmFyKC0tc2hhZG93KTsgb3ZlcmZsb3c6IGhpZGRlbjsKfQoubW9kYWwtc20g Lm1vZGFsLWNhcmQgeyBtYXgtd2lkdGg6IHZhcigtLW1vZGFsLXNtKTsgfQoubW9kYWwtbGcgLm1v ZGFsLWNhcmQgeyBtYXgtd2lkdGg6IHZhcigtLW1vZGFsLWxnKTsgfQoubW9kYWwteGwgLm1vZGFs LWNhcmQgeyBtYXgtd2lkdGg6IHZhcigtLW1vZGFsLXhsKTsgfQoKLm1vZGFsLWhlYWQgeyBkaXNw bGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTMpOyBwYWRkaW5n OiB2YXIoLS1zcC00KSB2YXIoLS1zcC01KTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigt LWxpbmUpOyBmbGV4OiAwIDAgYXV0bzsgfQoubW9kYWwtaWNvIHsgZGlzcGxheTogaW5saW5lLWZs ZXg7IGNvbG9yOiB2YXIoLS1icmFuZCk7IGZsZXg6IDAgMCBhdXRvOyB9Ci5tb2RhbC1pY28gc3Zn IHsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgfQoubW9kYWwtdGl0bGUgeyBtYXJnaW46IDA7 IGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQpOyBmb250LXdlaWdodDogNjAwOyBmbGV4OiAxOyBtaW4t d2lkdGg6IDA7IH0KLm1vZGFsLXggeyB3aWR0aDogMzBweDsgaGVpZ2h0OiAzMHB4OyBib3JkZXIt cmFkaXVzOiB2YXIoLS1yLXNtKTsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsg Y29sb3I6IHZhcigtLXRleHQtZGltKTsgZmxleDogMCAwIGF1dG87IHRyYW5zaXRpb246IC4xNHM7 IH0KLm1vZGFsLXg6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBjb2xvcjogdmFy KC0tdGV4dCk7IH0KLm1vZGFsLXggc3ZnIHsgd2lkdGg6IDE3cHg7IGhlaWdodDogMTdweDsgfQou bW9kYWwtYm9keSB7IHBhZGRpbmc6IHZhcigtLXNwLTQpIHZhcigtLXNwLTUpOyBvdmVyZmxvdzog YXV0bzsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiB2YXIoLS1z cC0zKTsgZmxleDogMSAxIGF1dG87IH0KLm1vZGFsLWZvb3QgeyBkaXNwbGF5OiBmbGV4OyBhbGln bi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTMpOyBwYWRkaW5nOiB2YXIoLS1zcC00KSB2 YXIoLS1zcC01KTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBmbGV4LXdyYXA6 IHdyYXA7IGZsZXg6IDAgMCBhdXRvOyB9Ci5tb2RhbC1zcGFjZXIgeyBmbGV4OiAxIDEgYXV0bzsg fQoKLyogQWRtaW4tSHViIOKAlCBLYWNoZWxyYXN0ZXIgaW0gTW9kYWwgKFBoYXNlIDEyKTogYsO8 bmRlbHQgZGllIHZpZXIgQWRtaW4tV2Vya3pldWdlLiAqLwouYWRtaW4taHViIHsgZGlzcGxheTog Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IHZhcigtLXNwLTMpOyB9 Ci5hZG1pbi10aWxlIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGdh cDogdmFyKC0tc3AtMyk7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmc6IHZhcigtLXNwLTQpOwog IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0zKTsgYm9y ZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7CiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIo LS1kdXItMSkgdmFyKC0tZWFzZS1vdXQpLCBib3JkZXItY29sb3IgdmFyKC0tZHVyLTEpLCB0cmFu c2Zvcm0gdmFyKC0tZHVyLTEpIHZhcigtLWVhc2Utb3V0KTsgfQouYWRtaW4tdGlsZTpob3ZlciB7 IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdik7IGJvcmRlci1jb2xvcjogdmFyKC0tbGluZS0yKTsg dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyB9Ci5hZG1pbi10aWxlOmFjdGl2ZSB7IHRyYW5z Zm9ybTogc2NhbGUoLjk5KTsgfQouYWRtaW4tdGlsZS1pYyB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0 aDogMzhweDsgaGVpZ2h0OiAzOHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXNtKTsgZGlzcGxh eTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsKICBjb2xvcjogdmFyKC0tYnJhbmQpOyBiYWNr Z3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWJyYW5kKSAxNCUsIHRyYW5zcGFyZW50 KTsgfQouYWRtaW4tdGlsZS1pYyBzdmcgeyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyB9Ci5h ZG1pbi10aWxlLXR4IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2Fw OiAzcHg7IG1pbi13aWR0aDogMDsgfQouYWRtaW4tdGlsZS10eCBiIHsgZm9udC1zaXplOiB2YXIo LS1mcy1zbSk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KLmFkbWluLXRpbGUtZCB7IGZvbnQtc2l6ZTog dmFyKC0tZnMteHMpOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBsaW5lLWhlaWdodDogMS40OyB9 CkBtZWRpYSAobWF4LXdpZHRoOiA1NjBweCkgeyAuYWRtaW4taHViIHsgZ3JpZC10ZW1wbGF0ZS1j b2x1bW5zOiAxZnI7IH0gfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgREFURU5QRkxFR0UtTEVJU1RFIChF ZGl0LU1vZHVzIGFrdGl2KQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwouZWRpdC1iYW5uZXIgewogIGRpc3Bs YXk6IG5vbmU7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTRweDsgcGFkZGluZzogMTFweCAy MnB4OwogIGJhY2tncm91bmQ6IHZhcigtLXdhcm4tc29mdCk7IGJvcmRlci1ib3R0b206IDFweCBz b2xpZCBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLXdhcm4pIDM0JSwgdmFyKC0tbGluZSkpOwog IGZvbnQtc2l6ZTogMTNweDsgZmxleDogMCAwIGF1dG87Cn0KLmVkaXRpbmcgLmVkaXQtYmFubmVy IHsgZGlzcGxheTogZmxleDsgfQouZWRpdC1iYW5uZXIgLnRhZyB7IGZvbnQtd2VpZ2h0OiA3MDA7 IGZvbnQtc2l6ZTogMTEuNXB4OyBsZXR0ZXItc3BhY2luZzogLjA0ZW07IHRleHQtdHJhbnNmb3Jt OiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS13YXJuKTsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFs aWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9Ci5lZGl0LWJhbm5lciAudGFnIHN2ZyB7IHdp ZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IH0KLmVkaXQtYmFubmVyIC5zcGFjZXIgeyBmbGV4OiAx OyB9Ci5lZGl0LWJhbm5lciAuZHJhZnQtaW5mbyB7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0K LmVkaXQtYmFubmVyIC5idG4sIC5lZGl0LWJhbm5lciBidXR0b24geyBwYWRkaW5nOiA4cHggMTRw eDsgZm9udC1zaXplOiAxMi41cHg7IH0KCi8qIEVkaXQtb25seSBTaWNodGJhcmtlaXQgKi8KLmVk aXQtb25seSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfQouZWRpdGluZyAuZWRpdC1vbmx5 IHsgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsgfQouZWRpdGluZyAuYnVsbC1hY3Rp b25zIC5lZGl0LW9ubHkgeyBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7IH0KCi8qIEFkbWluLW9u bHkgU2ljaHRiYXJrZWl0IChudXIgUm9sbGUgJ2FkbWluJzsgUmVkYWt0ZXVyZSBzZWhlbiBlcyBu aWNodCkuCiAgIFNlcnZlciBlcnp3aW5ndCBkaWUgUmVjaHRlIHp1c2FldHpsaWNoIOKAlCBkYXMg aGllciBpc3QgcmVpbmUgVUktS29zbWV0aWsuICovCi5hZG1pbi1vbmx5IHsgZGlzcGxheTogbm9u ZSAhaW1wb3J0YW50OyB9Ci8qIC5lZGl0aW5nIGlzdCBlaW5lIEtsYXNzZSBhdWYgPGJvZHk+IHNl bGJzdCAtPiBLRUlOIE5hY2hmYWhyZW4tU2VsZWt0b3IgKFB1bmt0LCBuaWNodCBMZWVyemVpY2hl bikuCiAgIGRpc3BsYXk6Z3JpZCBzdGF0dCBpbmxpbmUtZmxleCwgZGFtaXQgZGllIEljb24tQnV0 dG9ucyAoI2FkbWluLWh1Yi1idG4pIGlocmUgWmVudHJpZXJ1bmcgYmVoYWx0ZW4uICovCmJvZHku cm9sZS1hZG1pbi5lZGl0aW5nIC5hZG1pbi1vbmx5LApib2R5LnJvbGUtYWRtaW4gLmFkbWluLW9u bHkuYWx3YXlzIHsgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50OyB9CgovKiBOdXIgZnVlciBNaXRh cmJlaXRlciBtaXQgU2NocmVpYnJvbGxlIChSZWRha3RldXIgT0RFUiBBZG1pbikgc2ljaHRiYXI7 IExlc2VyIHNlaGVuIGVzIG5pZS4gKi8KLnN0YWZmLW9ubHkgeyBkaXNwbGF5OiBub25lICFpbXBv cnRhbnQ7IH0KYm9keS5yb2xlLXJlZGFrdGV1ciAuc3RhZmYtb25seSwKYm9keS5yb2xlLWFkbWlu IC5zdGFmZi1vbmx5IHsgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50OyB9CgovKiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogICBUT0FTVAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoudG9hc3QgewogIHBvc2l0aW9uOiBmaXhlZDsg bGVmdDogNTAlOyBib3R0b206IDI2cHg7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFu c2xhdGVZKDEycHgpOwogIGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xp ZCB2YXIoLS1saW5lLTIpOyBjb2xvcjogdmFyKC0tdGV4dCk7CiAgcGFkZGluZzogMTJweCAxOHB4 OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLW1kKTsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTsK ICBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgei1pbmRleDogdmFyKC0tei10b2FzdCk7IG9wYWNp dHk6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyB0cmFuc2l0aW9uOiAuMjVzIHZhcigtLWVhc2Up OwogIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgbWF4LXdp ZHRoOiA0NjBweDsKfQoudG9hc3Quc2hvdyB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNs YXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApOyB9Ci50b2FzdCBzdmcgeyB3aWR0aDogMTdweDsgaGVp Z2h0OiAxN3B4OyBjb2xvcjogdmFyKC0tb2spOyBmbGV4OiAwIDAgYXV0bzsgfQoudG9hc3Qud2Fy biBzdmcgeyBjb2xvcjogdmFyKC0td2Fybik7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIFJFU1BPTlNJ VkUKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0gKi8KLm1lbnUtdG9nZ2xlIHsgZGlzcGxheTogbm9uZTsgfQpAbWVk aWEgKG1heC13aWR0aDogMTYwMHB4KSB7IDpyb290IHsgLS1yYWlsLXI6IDQ2MHB4OyB9IH0KQG1l ZGlhIChtYXgtd2lkdGg6IDEzODBweCkgeyA6cm9vdCB7IC0tcmFpbC1yOiA0MDBweDsgLS1yYWls LWw6IDI0MHB4OyB9IH0KQG1lZGlhIChtYXgtd2lkdGg6IDExODBweCkgewogIDpyb290IHsgLS1y YWlsLXI6IDM2MHB4OyAtLXJhaWwtbDogMjI4cHg7IH0KfQpAbWVkaWEgKG1heC13aWR0aDogOTgw cHgpIHsKICAuc2hlbGwgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLDFmcik7IH0K ICAucmFpbC1sLCAucmFpbC1yIHsgcG9zaXRpb246IGZpeGVkOyB0b3A6IHZhcigtLWJhci1oKTsg Ym90dG9tOiAwOyB3aWR0aDogMzAwcHg7IHotaW5kZXg6IHZhcigtLXotcmFpbCk7IGJveC1zaGFk b3c6IHZhcigtLXNoYWRvdyk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTEwJSk7IHRyYW5zaXRp b246IHRyYW5zZm9ybSAuMjJzIHZhcigtLWVhc2UpOyB9CiAgLnJhaWwtciB7IHJpZ2h0OiAwOyBs ZWZ0OiBhdXRvOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTEwJSk7IH0KICAucmFpbC1sLm9wZW4s IC5yYWlsLXIub3BlbiB7IHRyYW5zZm9ybTogbm9uZTsgfQogIC5zZWFyY2ggeyBtYXgtd2lkdGg6 IG5vbmU7IH0KICAubWVudS10b2dnbGUgeyBkaXNwbGF5OiBncmlkOyB9CiAgLm1vYmlsZS1iZyB7 IHBvc2l0aW9uOiBmaXhlZDsgaW5zZXQ6IHZhcigtLWJhci1oKSAwIDA7IGJhY2tncm91bmQ6IHJn YmEoMCwwLDAsLjUpOyB6LWluZGV4OiA0NTsgfQp9CkBtZWRpYSAobWF4LXdpZHRoOiA1NjBweCkg ewogIC5icmFuZC1uYW1lIHNwYW4geyBkaXNwbGF5OiBub25lOyB9CiAgLmxhZ2UtcGlsbCwgLmhp ZGUtc20geyBkaXNwbGF5OiBub25lOyB9CiAgLmZlZWQtc2Nyb2xsLCAuZmVlZC1oZWFkIHsgcGFk ZGluZy1sZWZ0OiAxNnB4OyBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9Cn0KCi8qID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogICBORVVBVUZCQVUg4oCUIEFydGlrZWwtQXV0aG9yaW5nLCBXWVNJV1lHLCBBcnRpa2VsLUFu c2ljaHQsIEZlaW5zY2hsaWZmCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKLyogYnJlaXRlciBEaWFsb2cg Ki8KLmRsZy5kbGctd2lkZSB7IHdpZHRoOiBtaW4odmFyKC0tbW9kYWwtbGcpLCA5NHZ3KTsgfQov KiBBcnRpa2VsLUVkaXRvciBncm9zcyB6ZWlnZW4gKGtvbWZvcnRhYmxlcyBTY2hyZWliZW4vUHJ1 ZWZlbiwgdmllbCBFZGl0b3JmbGFlY2hlKS4gKi8KZGlhbG9nI2FydC1kbGcgeyB3aWR0aDogbWlu KHZhcigtLW1vZGFsLXhsKSwgOTZ2dyk7IH0KZGlhbG9nI2FydC1kbGcgLmRsZy1ib2R5IHsgbWF4 LWhlaWdodDogODR2aDsgfQpkaWFsb2cjYXJ0LWRsZyAud3ktYm9keSB7IG1pbi1oZWlnaHQ6IDQ4 dmg7IH0KZGlhbG9nI2FydC1kbGcgLnRveC10aW55bWNlIHsgbWluLWhlaWdodDogNTZ2aCAhaW1w b3J0YW50OyB9CgovKiBTZWxlY3Qgd2llIGRpZSBJbnB1dHMgKi8KLmRsZyBzZWxlY3QgeyB3aWR0 aDogMTAwJTsgZm9udDogaW5oZXJpdDsgcGFkZGluZzogOXB4IDExcHg7IGJvcmRlci1yYWRpdXM6 IHZhcigtLXItc20sIDhweCk7CiAgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGNvbG9yOiB2YXIo LS10ZXh0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IH0KLmRsZyBzZWxlY3Q6Zm9j dXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRv dzogMCAwIDAgM3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9CgovKiBXWVNJV1lHICovCi53eXNpd3ln IHsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIt c20sIDhweCk7IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyB9Ci53 eS10b29scyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAzcHg7IHBhZGRp bmc6IDZweDsgYmFja2dyb3VuZDogdmFyKC0tYmctMik7IGJvcmRlci1ib3R0b206IDFweCBzb2xp ZCB2YXIoLS1saW5lKTsgfQoud3ktYnRuIHsgd2lkdGg6IDMycHg7IGhlaWdodDogMzBweDsgZGlz cGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDog Y2VudGVyOwogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDFweCBzb2xpZCB0cmFu c3BhcmVudDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGNvbG9yOiB2YXIoLS10ZXh0LWRp bSk7IGN1cnNvcjogcG9pbnRlcjsgfQoud3ktYnRuOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0t YmctaG92KTsgY29sb3I6IHZhcigtLXRleHQpOyBib3JkZXItY29sb3I6IHZhcigtLWxpbmUpOyB9 Ci53eS1idG4gc3ZnIHsgd2lkdGg6IDE3cHg7IGhlaWdodDogMTdweDsgfQoud3ktYm9keSB7IG1p bi1oZWlnaHQ6IDE3MHB4OyBtYXgtaGVpZ2h0OiAzMjBweDsgb3ZlcmZsb3c6IGF1dG87IHBhZGRp bmc6IDEycHggMTRweDsgY29sb3I6IHZhcigtLXRleHQpOwogIGZvbnQtc2l6ZTogMTRweDsgbGlu ZS1oZWlnaHQ6IDEuNjsgb3V0bGluZTogbm9uZTsgfQoud3ktYm9keTpmb2N1cyB7IGJveC1zaGFk b3c6IGluc2V0IDAgMCAwIDJweCB2YXIoLS1icmFuZCk7IH0KLnd5LWJvZHkgaDIsIC53eS1ib2R5 IGgzIHsgbWFyZ2luOiAuN2VtIDAgLjNlbTsgfQoud3ktYm9keSB1bCwgLnd5LWJvZHkgb2wgeyBw YWRkaW5nLWxlZnQ6IDEuNGVtOyBtYXJnaW46IC40ZW0gMDsgfQoud3ktYm9keSBhIHsgY29sb3I6 IHZhcigtLWJyYW5kKTsgfQoud3ktYm9keSBwIHsgbWFyZ2luOiAuNDVlbSAwOyB9Ci53eS1ib2R5 OmVtcHR5OjpiZWZvcmUgeyBjb250ZW50OiAiVGV4dCBlaW5nZWJlbuKApiI7IGNvbG9yOiB2YXIo LS10ZXh0LWZudCwgdmFyKC0tdGV4dC1kaW0pKTsgfQoKLyogU2VnbWVudC1VbXNjaGFsdGVyIChp T1MtU3RpbCwgUGhhc2UgMTJiKTogV2FubmUgKyBpbm5lbiBnbGVpdGVuZGUgUGlsbGUuICovCi5z ZWcgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZ2FwOiAycHg7IHBhZGRpbmc6IDNweDsgYmFja2dy b3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXIt cmFkaXVzOiB2YXIoLS1yLXBpbGwpOyB9Ci5zZWctb3B0IHsgcGFkZGluZzogOHB4IDE2cHg7IGJh Y2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyBib3JkZXI6IDA7 IGN1cnNvcjogcG9pbnRlcjsKICBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgZm9udC13ZWlnaHQ6 IDYwMDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsKTsgdHJhbnNpdGlvbjogYmFja2dyb3Vu ZCB2YXIoLS1kdXItMSkgdmFyKC0tZWFzZS1vdXQpLCBjb2xvciB2YXIoLS1kdXItMSk7IH0KLnNl Zy1vcHQ6aG92ZXIgeyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLnNlZy1vcHQuc2VsIHsgYmFja2dy b3VuZDogdmFyKC0tYnJhbmQtMik7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgYm94LXNoYWRv dzogdmFyKC0tZWxldi0xKTsgfQoKLyogQXJ0aWtlbC1BbnNpY2h0IGluIGRlciBNaXR0ZSAqLwou Y3YtYXJ0aWNsZSB7IGRpc3BsYXk6IG5vbmU7IH0KLmNlbnRlci5hcnRpY2xlIC5jdi1mcmFtZSB7 IGRpc3BsYXk6IG5vbmU7IH0KLmNlbnRlci5hcnRpY2xlIC5jdi1hcnRpY2xlIHsgZGlzcGxheTog YmxvY2s7IGZsZXg6IDE7IG92ZXJmbG93OiBhdXRvOyBwYWRkaW5nOiAyNnB4IGNsYW1wKDIwcHgs IDR2dywgNDhweCkgNjBweDsgfQouY3YtYXJ0aWNsZSAuYXJ0LWhlYWQgeyBwb3NpdGlvbjogcmVs YXRpdmU7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgcGFkZGluZy1ib3R0 b206IDE0cHg7IG1hcmdpbi1ib3R0b206IDIycHg7IG1heC13aWR0aDogdmFyKC0tcmVhZCk7IG1h cmdpbi1pbmxpbmU6IGF1dG87IH0KLmN2LWFydGljbGUgLmFydC1oZWFkIGgxIHsgZm9udC1zaXpl OiB2YXIoLS1mcy14bCk7IG1hcmdpbjogMCAwIDhweDsgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXRp Z2h0KTsgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXRyYWNraW5nLXRpZ2h0KTsgcGFkZGluZy1yaWdo dDogOXJlbTsgfQouY3YtYXJ0aWNsZSAuYXJ0LWRhdGUgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRv cDogMnB4OyByaWdodDogMDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgZm9udC1zaXplOiAxMnB4 OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5jdi1hcnRpY2xlIC5hcnQtZGF0ZS5hcnQtdXBkYXRl ZCB7IHRvcDogMTlweDsgfSAgIC8qICJnZcOkbmRlcnQiIGRpcmVrdCB1bnRlciAiU3RhbmQiICov Ci5jdi1hcnRpY2xlIC5hcnQtY2xhc3MgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6 ZTogMTFweDsgZm9udC13ZWlnaHQ6IDgwMDsgbGV0dGVyLXNwYWNpbmc6IC4wNGVtOyBwYWRkaW5n OiAycHggOXB4OyBib3JkZXItcmFkaXVzOiA5OTlweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9Ci5j di1hcnRpY2xlIC5hcnQtY2xhc3MuY2xzLXZzLW5mZCB7IGJhY2tncm91bmQ6IHZhcigtLWRhbmdl ci1zb2Z0KTsgY29sb3I6IHZhcigtLWRhbmdlcik7IH0KLmN2LWFydGljbGUgLmFydC1jbGFzcy5j bHMtbmZkIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1uZmQpIDIwJSwg dHJhbnNwYXJlbnQpOyBjb2xvcjogdmFyKC0tbmZkKTsgfQouY3YtYXJ0aWNsZSAuYXJ0LXRhZ3Mg eyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogNnB4OyBtYXJnaW4tdG9wOiAx MnB4OyB9Ci5jdi1hcnRpY2xlIC5hcnQtdGFnIHsgZm9udC1zaXplOiAxMXB4OyBwYWRkaW5nOiAy cHggMTBweDsgYm9yZGVyLXJhZGl1czogOTk5cHg7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBj b2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9Ci5hcnQtZXh0cmEgeyBkaXNwbGF5OiBncmlkOyBncmlk LXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTBweCAxNHB4OyB9Ci5hcnQtZXh0cmEg LmZpZWxkIHsgbWFyZ2luOiAwOyB9Ci5jdi1hcnRpY2xlIC5hcnQtbWV0YSB7IGRpc3BsYXk6IGZs ZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxNHB4OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyBm b250LXNpemU6IDEycHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0KLmN2LWFydGljbGUgLmFydC1t ZXRhIHNwYW4geyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2Fw OiA1cHg7IH0KLmN2LWFydGljbGUgLmFydC1tZXRhIHN2ZyB7IHdpZHRoOiAxNHB4OyBoZWlnaHQ6 IDE0cHg7IH0KLmN2LWFydGljbGUgLmFydC1jYXQgLmNkb3QgeyB3aWR0aDogOXB4OyBoZWlnaHQ6 IDlweDsgYm9yZGVyLXJhZGl1czogNTAlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0KLmN2LWFy dGljbGUgLmFydC1ib2R5IHsgbWF4LXdpZHRoOiB2YXIoLS1yZWFkKTsgbWFyZ2luLWlubGluZTog YXV0bzsgZm9udC1zaXplOiAxNXB4OyBsaW5lLWhlaWdodDogMS43OyB9Ci8qIEtlbm53w7ZydGVy LU1pdHRlbGFuc2ljaHQgKi8KLmt3LWJhciB7IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4 LXdyYXA6IHdyYXA7IG1hcmdpbjogOHB4IDAgMnB4OyB9Ci5rdy10YmwgeyBkaXNwbGF5OiBmbGV4 OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBtYXJnaW4tdG9wOiAxMnB4OyBtYXgtd2lkdGg6IDcy MHB4OyB9Ci5rdy1yb3cgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1p bm1heCgxNTBweCwgMWZyKSBtaW5tYXgoMTgwcHgsIDEuNWZyKTsgZ2FwOiAxNHB4OyBhbGlnbi1p dGVtczogY2VudGVyOyBwYWRkaW5nOiA4cHggMDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZh cigtLWxpbmUpOyB9Ci5rdy1yb3cua3ctbWFuYWdlIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBt aW5tYXgoMTUwcHgsIDFmcikgbWlubWF4KDE4MHB4LCAxLjVmcikgYXV0bzsgfQoua3ctbGFiZWwt cm8geyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9Ci5rdy12YWx1 ZS1ybyB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgdXNlci1zZWxlY3Q6IGFsbDsgfQoua3ctdmFsdWUt cm8ubW9ubywgLmt3LXZhbHVlLm1vbm8geyBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7IH0KLmt3 LWxhYmVsLCAua3ctdmFsdWUgeyB3aWR0aDogMTAwJTsgYm94LXNpemluZzogYm9yZGVyLWJveDsg Zm9udDogaW5oZXJpdDsgcGFkZGluZzogN3B4IDlweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0t bGluZS0yKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGJhY2tncm91bmQ6IHZhcigtLWJn LTMpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmt3LWxhYmVsOmZvY3VzLCAua3ctdmFsdWU6Zm9j dXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRv dzogMCAwIDAgM3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9Ci8qIFByw7xmLUFuc2ljaHQgKE1pZ3Jh dGlvbnMtTGlua3MgZHVyY2hnZWhlbikgKi8KLnBydWVmLXN0YXRzIHsgZm9udC1zaXplOiAxMnB4 OyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBtYXJnaW4tdG9wOiA0cHg7IH0KLnBydWVmLWFjdGJh ciB7IG1hcmdpbi10b3A6IDhweDsgfQoucHJ1ZWYtc3BsaXQgeyBkaXNwbGF5OiBncmlkOyBncmlk LXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgzMDBweCwgNDYwcHgpIDFmcjsgZ2FwOiAxNnB4OyBh bGlnbi1pdGVtczogc3RhcnQ7IG1hcmdpbi10b3A6IDEycHg7IH0KLnBydWVmLWxpc3QgeyBtaW4t d2lkdGg6IDA7IH0KLnBydWVmLWdyb3VwIHsgZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDog NzAwOyBsZXR0ZXItc3BhY2luZzogLjA0ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNv bG9yOiB2YXIoLS10ZXh0LWZudCk7IG1hcmdpbjogMTJweCAwIDRweDsgfQoucHJ1ZWYtcm93IHsg Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20p OyBwYWRkaW5nOiA3cHggOXB4OyBtYXJnaW4tYm90dG9tOiA1cHg7IGJhY2tncm91bmQ6IHZhcigt LWJnLTIpOyBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWxpbmUpOyB9Ci5wcnVlZi1yb3cu c2VsIHsgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWJyYW5kLXNvZnQpOyBib3JkZXItY29s b3I6IHZhcigtLWJyYW5kKTsgfQoucHJ1ZWYtcm93LnN0LWtlZXAgeyBib3JkZXItbGVmdC1jb2xv cjogdmFyKC0tb2spOyB9Ci5wcnVlZi1yb3cuc3QtZWRpdCB7IGJvcmRlci1sZWZ0LWNvbG9yOiB2 YXIoLS13YXJuKTsgfQoucHJ1ZWYtcm93LnN0LWRlbGV0ZSB7IGJvcmRlci1sZWZ0LWNvbG9yOiB2 YXIoLS1kYW5nZXIpOyBvcGFjaXR5OiAuNzI7IH0KLnBydWVmLXJvd3RvcCB7IGRpc3BsYXk6IGZs ZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9Ci5wcnVlZi10aXRsZSB7IGZsZXg6 IDE7IG1pbi13aWR0aDogMDsgdGV4dC1hbGlnbjogbGVmdDsgZm9udC1zaXplOiAxMy41cHg7IGNv bG9yOiB2YXIoLS10ZXh0KTsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBz aXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IGJhY2tncm91bmQ6IG5vbmU7IGJvcmRlcjogMDsgY3Vy c29yOiBwb2ludGVyOyBwYWRkaW5nOiAycHggMDsgfQoucHJ1ZWYtdGl0bGU6aG92ZXIgeyBjb2xv cjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH0KLnBy dWVmLW9wdHMgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZ2FwOiAzcHg7IGZsZXg6IDAgMCBhdXRv OyB9Ci5wcnVlZi1vcHQgeyBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IHBhZGRp bmc6IDNweCA4cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7IGJvcmRlcjogMXB4IHNv bGlkIHZhcigtLWxpbmUtMik7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBjb2xvcjogdmFyKC0t dGV4dC1kaW0pOyBjdXJzb3I6IHBvaW50ZXI7IH0KLnBydWVmLW9wdC5vcHQta2VlcC5vbiB7IGJh Y2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tb2spIDE4JSwgdHJhbnNwYXJlbnQp OyBib3JkZXItY29sb3I6IHZhcigtLW9rKTsgY29sb3I6IHZhcigtLW9rKTsgfQoucHJ1ZWYtb3B0 Lm9wdC1lZGl0Lm9uIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS13YXJu KSAyMCUsIHRyYW5zcGFyZW50KTsgYm9yZGVyLWNvbG9yOiB2YXIoLS13YXJuKTsgY29sb3I6IHZh cigtLXdhcm4pOyB9Ci5wcnVlZi1vcHQub3B0LWRlbGV0ZS5vbiB7IGJhY2tncm91bmQ6IGNvbG9y LW1peChpbiBva2xjaCwgdmFyKC0tZGFuZ2VyKSAxNiUsIHRyYW5zcGFyZW50KTsgYm9yZGVyLWNv bG9yOiB2YXIoLS1kYW5nZXIpOyBjb2xvcjogdmFyKC0tZGFuZ2VyKTsgfQoucHJ1ZWYtbm90ZSB7 IG1hcmdpbi10b3A6IDZweDsgfQoucHJ1ZWYtbm90ZS10YSB7IHdpZHRoOiAxMDAlOyBib3gtc2l6 aW5nOiBib3JkZXItYm94OyBmb250OiBpbmhlcml0OyBmb250LXNpemU6IDEyLjVweDsgcGFkZGlu ZzogNnB4IDhweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgYm9yZGVyLXJhZGl1 czogdmFyKC0tci1zbSk7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBjb2xvcjogdmFyKC0tdGV4 dCk7IHJlc2l6ZTogdmVydGljYWw7IH0KLnBydWVmLW5vdGUtdGE6Zm9jdXMgeyBvdXRsaW5lOiBu b25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZh cigtLWJyYW5kLXNvZnQpOyB9Ci5wcnVlZi1wcmV2aWV3IHsgcG9zaXRpb246IHN0aWNreTsgdG9w OiA2cHg7IG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1iYXItaCkgLSAxMzBweCk7IG92 ZXJmbG93OiBhdXRvOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYm9yZGVyLXJhZGl1 czogdmFyKC0tci1tZCk7IGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyB9Ci5wcnVlZi1wdi1oZWFk IHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBhbGlnbi1pdGVtczogY2VudGVyOyBn YXA6IDhweDsgcGFkZGluZzogMTBweCAxMnB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFy KC0tbGluZSk7IHBvc2l0aW9uOiBzdGlja3k7IHRvcDogMDsgYmFja2dyb3VuZDogdmFyKC0tYmct Mik7IHotaW5kZXg6IDE7IH0KLnBydWVmLXB2LXRpdGxlIHsgZm9udC13ZWlnaHQ6IDcwMDsgZmxl eDogMSAxIDEwMCU7IH0KLnBydWVmLXB2LXRhcmdldCB7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6 IHZhcigtLXRleHQtZm50KTsgZmxleDogMSAxIDYwJTsgbWluLXdpZHRoOiAwOyBvdmVyZmxvdzog aGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfQoucHJ1ZWYtcHYtYm9keSB7IHBhZGRp bmc6IDEycHggMTRweDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42OyB9Ci5wcnVl Zi1mcmFtZSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDYwdmg7IGJvcmRlcjogMXB4IHNvbGlkIHZh cigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXNtKTsgYmFja2dyb3VuZDogI2ZmZjsg fQouY3YtYXJ0aWNsZSAuYXJ0LWJvZHkgaDIsIC5jdi1hcnRpY2xlIC5hcnQtYm9keSBoMyB7IG1h cmdpbjogMS40ZW0gMCAuNGVtOyB9Ci5jdi1hcnRpY2xlIC5hcnQtYm9keSB1bCwgLmN2LWFydGlj bGUgLmFydC1ib2R5IG9sIHsgcGFkZGluZy1sZWZ0OiAxLjRlbTsgfQouY3YtYXJ0aWNsZSAuYXJ0 LWJvZHkgYSB7IGNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLmN2LWFydGljbGUgLmFydC1ib2R5IGJs b2NrcXVvdGUgeyBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWxpbmUtMik7IG1hcmdpbjog MWVtIDA7IHBhZGRpbmc6IC4yZW0gMWVtOyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9CgovKiBB cnRpa2VsLUljb24gaW0gU2lkZWJhci1FaW50cmFnICovCi5zaWRlLWxpc3QgYSAubGktaWMgeyBk aXNwbGF5OiBpbmxpbmUtZmxleDsgZmxleDogMCAwIGF1dG87IGNvbG9yOiB2YXIoLS1icmFuZCk7 IH0KLnNpZGUtbGlzdCBhIC5saS1pYyBzdmcgeyB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyB9 CgovKiBWZXLDtmZmZW50bGljaGVuLUJ1dHRvbiDigJ5oZWnDn+KAnCwgd2VubiBFbnR3dXJmIHZv cmxpZWd0ICovCi5idG4ucHJpbWFyeS5ob3QgeyBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0t YnJhbmQpLCB2YXIoLS1nbG93KTsgfQoKLyogTWVsZHVuZyBiZWltIEFuc3ByaW5nZW4ga3VyeiBo ZXJ2b3JoZWJlbiAqLwouYnVsbC5mbGFzaCB7IGJveC1zaGFkb3c6IHZhcigtLWdsb3cpOyBib3Jk ZXItY29sb3I6IHZhcigtLWJyYW5kKTsgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAuM3MsIGJvcmRl ci1jb2xvciAuM3M7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBFcndlaXRlcnRlciBFZGl0b3I6IFRv b2xiYXItVHJlbm5lcgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KLnd5LXNlcCB7IHdpZHRoOiAxcHg7IGFs aWduLXNlbGY6IHN0cmV0Y2g7IG1hcmdpbjogMnB4IDNweDsgYmFja2dyb3VuZDogdmFyKC0tbGlu ZSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogICBFaW5nZWJldHRldGUgQmlsZGVyICYgUERGcyAoVGh1 bWJuYWlsIC0+IEtsaWNrIG9lZmZuZXQgTGlnaHRib3gpCiAgIEdpbHQgaW4gQXJ0aWtlbC1BbnNp Y2h0ICguYXJ0LWJvZHkpIHdpZSBpbSBFZGl0b3IgKC53eS1ib2R5IC8gVGlueU1DRSkuCiAgID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PSAqLwpmaWd1cmUuZW1iZWQgeyBtYXJnaW46IDE0cHggMDsgfQpmaWd1cmUuZW1i ZWQuaW1nIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXgtd2lkdGg6IDEwMCU7IH0KZmlndXJl LmVtYmVkLmltZyBpbWcgewogIG1heC13aWR0aDogbWluKDM2MHB4LCAxMDAlKTsgbWF4LWhlaWdo dDogMjYwcHg7IHdpZHRoOiBhdXRvOyBoZWlnaHQ6IGF1dG87CiAgYm9yZGVyOiAxcHggc29saWQg dmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBjdXJzb3I6IHpvb20taW47 CiAgZGlzcGxheTogYmxvY2s7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOwp9CmZpZ3VyZS5lbWJl ZC5pbWcgZmlnY2FwdGlvbiB7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGZvbnQtc2l6ZTogLjhy ZW07IG1hcmdpbi10b3A6IDVweDsgfQpmaWd1cmUuZW1iZWQucGRmIHsKICBkaXNwbGF5OiBpbmxp bmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBjdXJzb3I6IHBvaW50ZXI7 CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIt c20pOyBwYWRkaW5nOiA5cHggMTNweDsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0zKTsgY29sb3I6 IHZhcigtLXRleHQpOyB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjE1cywgYmFja2dyb3VuZCAu MTVzOwp9CmZpZ3VyZS5lbWJlZC5wZGY6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5k KTsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92KTsgfQovKiBQREYtSWNvbiBwZXIgQ1NTLU1hc2tl IChJbmxpbmUtU1ZHIHVlYmVybGVidCBkZW4gU2FuaXRpemVyIG5pY2h0KSAqLwpmaWd1cmUuZW1i ZWQucGRmOjpiZWZvcmUgewogIGNvbnRlbnQ6ICIiOyBmbGV4OiAwIDAgYXV0bzsgd2lkdGg6IDIy cHg7IGhlaWdodDogMjJweDsgYmFja2dyb3VuZDogdmFyKC0tZGFuZ2VyKTsKICAtd2Via2l0LW1h c2s6IHZhcigtLXBkZi1pY28pIGNlbnRlciAvIGNvbnRhaW4gbm8tcmVwZWF0OyBtYXNrOiB2YXIo LS1wZGYtaWNvKSBjZW50ZXIgLyBjb250YWluIG5vLXJlcGVhdDsKfQpmaWd1cmUuZW1iZWQucGRm IC5wZGYtbmFtZSB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KZmlndXJlLmVtYmVkLnBkZiAucGRmLW1l dGEgeyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyBmb250LXNpemU6IC43OHJlbTsgfQoKLyogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAgIExpZ2h0Ym94LU1vZGFsIChncm9zc2VzIEJpbGQgLyBQREYpCiAgID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PSAqLwoubGlnaHRib3ggewogIHBvc2l0aW9uOiBmaXhlZDsgaW5zZXQ6IDA7IHotaW5k ZXg6IHZhcigtLXotbGlnaHRib3gpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVy OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBwYWRkaW5nOiAzMnB4OyBiYWNrZ3JvdW5kOiBj b2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWJnKSAxOCUsIHJnYmEoMCwwLDAsLjgyKSk7IG9wYWNp dHk6IDA7IHRyYW5zaXRpb246IG9wYWNpdHkgLjE2cyB2YXIoLS1lYXNlKTsKfQoubGlnaHRib3gu c2hvdyB7IG9wYWNpdHk6IDE7IH0KLmxpZ2h0Ym94IC5sYi1ib3ggeyBtYXgtd2lkdGg6IDk0dnc7 IG1heC1oZWlnaHQ6IDkydmg7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47 IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9Ci5saWdodGJveCAubGItYm94LnBkZiB7 IHdpZHRoOiA5MHZ3OyBoZWlnaHQ6IDkwdmg7IH0KLmxpZ2h0Ym94IC5sYi1pbWcgeyBtYXgtd2lk dGg6IDk0dnc7IG1heC1oZWlnaHQ6IDg2dmg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBi YWNrZ3JvdW5kOiAjZmZmOyBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3cpOyB9Ci5saWdodGJveCAu bGItcGRmIHsgd2lkdGg6IDkwdnc7IGhlaWdodDogOTB2aDsgYm9yZGVyOiAwOyBib3JkZXItcmFk aXVzOiB2YXIoLS1yLXNtKTsgYmFja2dyb3VuZDogI2ZmZjsgYm94LXNoYWRvdzogdmFyKC0tc2hh ZG93KTsgfQoubGlnaHRib3ggLmxiLWNhcCB7IGNvbG9yOiAjZmZmOyBmb250LXNpemU6IC44NXJl bTsgdGV4dC1hbGlnbjogY2VudGVyOyB9Ci5saWdodGJveCAubGIteCwgLmxpZ2h0Ym94IC5sYi1l eHQgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNnB4OyB3aWR0aDogMzhweDsgaGVpZ2h0 OiAzOHB4OyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlm eS1jb250ZW50OiBjZW50ZXI7CiAgYm9yZGVyOiAwOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLW1k KTsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuMTIpOyBjb2xvcjogI2ZmZjsgY3Vyc29y OiBwb2ludGVyOwp9Ci5saWdodGJveCAubGIteCB7IHJpZ2h0OiAxOHB4OyB9Ci5saWdodGJveCAu bGItZXh0IHsgcmlnaHQ6IDY0cHg7IH0KLmxpZ2h0Ym94IC5sYi14OmhvdmVyLCAubGlnaHRib3gg LmxiLWV4dDpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjI0KTsgfQoubGln aHRib3ggLmxiLXggc3ZnLCAubGlnaHRib3ggLmxiLWV4dCBzdmcgeyB3aWR0aDogMTlweDsgaGVp Z2h0OiAxOXB4OyB9CgovKiBMZXNlci1Nb2R1czoga2VpbmUgUGZsZWdlLUhpbndlaXNlL0J1dHRv bnMgKi8KYm9keS5yZWFkZXIgLmVkaXQtYmFubmVyIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50 OyB9CgovKiBUaW55TUNFIGltIEFydGlrZWwtRGlhbG9nIHNhdWJlciBlaW5wYXNzZW4gKi8KI2Fy dC10bWNlICsgLnRveC10aW55bWNlLCAudG94LXRpbnltY2UgeyBib3JkZXItcmFkaXVzOiB2YXIo LS1yLXNtKSAhaW1wb3J0YW50OyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgUmVmaW5lbWVudHM6IExh Z2Uga2xpY2tiYXIsIEFydGlrZWwtQmVhcmJlaXRlbiwgTmF2LUtvcGYgbWl0ICIrQXJ0aWtlbCIK ICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09ICovCi8qIExhZ2UtU3RhdHVzIG51ciBpbSBSZWRha3RldXItTW9kdXMg YW5rbGlja2JhciAqLwoubGFnZS1waWxsLmVkaXRhYmxlIHsgY3Vyc29yOiBwb2ludGVyOyB9Ci5s YWdlLXBpbGwuZWRpdGFibGU6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgfQou bGFnZS1waWxsIC5sYWdlLXR4dCB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KCi8qICJCZWFyYmVpdGVu Ii1Lbm9wZiBudXIgaW4gZGVyIEFydGlrZWwtQW5zaWNodCAobmljaHQgYmVpIERva3VtZW50ZW4p ICovCi5jZW50ZXI6bm90KC5hcnRpY2xlKSAjY3YtZWRpdCB7IGRpc3BsYXk6IG5vbmUgIWltcG9y dGFudDsgfQoKLyogTmF2aWdhdGlvbnMtS29wZjogVGl0ZWwgbGlua3MsICIrQXJ0aWtlbCIgcmVj aHRzICovCi5yYWlsLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBq dXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogOHB4OyB9CgovKiBTdGlmdCB6dW0g QXJ0aWtlbC1CZWFyYmVpdGVuIGluIGRlciBTZWl0ZW5sZWlzdGUgKG51dHp0IC5zdGFyLUJhc2lz KSAqLwouc2lkZS1saXN0IGEgLmFydC1lZGl0IHsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgfQou c2lkZS1saXN0IGEgLmFydC1lZGl0OmhvdmVyIHsgY29sb3I6IHZhcigtLWJyYW5kKTsgfQoKLyog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAgIFBIQVNFIDQg4oCUIEtvbGxhYm9yYXRpb246IFByYWVzZW56LCBLb25m bGlrdC1EaWZmLCBBa3Rpdml0YWV0cy1Qb3BvdmVyCiAgID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwovKiAid2ly ZCBnZXJhZGUgYmVhcmJlaXRldCItQmFkZ2UgYW4gTmF2LUVpbnRyYWVnZW4gLyBNZWxkdW5nZW4g Ki8KLmNvbGxhYi1iYWRnZSB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBj ZW50ZXI7IGdhcDogNHB4OyBtYXJnaW4tbGVmdDogNnB4OwogIHBhZGRpbmc6IDFweCA3cHg7IGJv cmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6 IDcwMDsKICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLXdhcm4pIDIyJSwg dmFyKC0tYmctMykpOyBjb2xvcjogdmFyKC0td2Fybik7CiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsg ZmxleDogMCAwIGF1dG87Cn0KLmNvbGxhYi1iYWRnZSBzdmcgeyB3aWR0aDogMTFweDsgaGVpZ2h0 OiAxMXB4OyB9CgovKiBDb2xsYWItQnV0dG9uICJoZWlzcyIsIHdlbm4gYW5kZXJlIGdlcmFkZSBi ZWFyYmVpdGVuICovCiNjb2xsYWItYnRuLmhvdCB7IGNvbG9yOiB2YXIoLS13YXJuKTsgYm9yZGVy LWNvbG9yOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLXdhcm4pIDUwJSwgdmFyKC0tbGluZSkp OyB9CiNjb2xsYWItYnRuLmhvdDo6YWZ0ZXIgeyBjb250ZW50OiAiIjsgcG9zaXRpb246IGFic29s dXRlOyB0b3A6IDdweDsgcmlnaHQ6IDdweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA3cHg7IGJvcmRl ci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0td2Fybik7IH0KI2NvbGxhYi1idG4geyBw b3NpdGlvbjogcmVsYXRpdmU7IH0KCi8qIEtvbmZsaWt0LURpYWxvZyAoZWlnZW5lcyBPdmVybGF5 KSAqLwouY29sbGFiLW92ZXJsYXkgeyBwb3NpdGlvbjogZml4ZWQ7IGluc2V0OiAwOyB6LWluZGV4 OiB2YXIoLS16LW1vZGFsKTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVz dGlmeS1jb250ZW50OiBjZW50ZXI7CiAgcGFkZGluZzogMjhweDsgYmFja2dyb3VuZDogY29sb3It bWl4KGluIG9rbGNoLCB2YXIoLS1iZykgMzUlLCByZ2JhKDAsMCwwLC42KSk7IGJhY2tkcm9wLWZp bHRlcjogYmx1cigzcHgpOyB9Ci5jb2xsYWItZGxnIHsgd2lkdGg6IG1pbig3ODBweCwgOTZ2dyk7 IG1heC1oZWlnaHQ6IDg4dmg7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47 CiAgYmFja2dyb3VuZDogdmFyKC0tYmctMik7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUt Mik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIteGwpOyBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3cp OyBvdmVyZmxvdzogaGlkZGVuOyB9Ci5jb2xsYWItZGxnLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBh bGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IHBhZGRpbmc6IDE2cHggMjBweDsgYm9yZGVy LWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyB9Ci5jb2xsYWItZGxnLWhlYWQgc3ZnIHsg d2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgY29sb3I6IHZhcigtLXdhcm4pOyB9Ci5jb2xsYWIt ZGxnLWhlYWQgaDIgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTZweDsgfQouY29sbGFiLWRsZy1z dWIgeyBwYWRkaW5nOiAxMnB4IDIwcHg7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLXRl eHQtZGltKTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyB9Ci5jb2xsYWIt ZGxnLWZvb3QgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDEwcHg7IGp1c3RpZnktY29udGVudDogZmxl eC1lbmQ7IHBhZGRpbmc6IDE0cHggMjBweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWxp bmUpOyBmbGV4LXdyYXA6IHdyYXA7IH0KCi8qIERpZmYtQW5zaWNodCAqLwouZGlmZi12aWV3IHsg ZmxleDogMTsgb3ZlcmZsb3c6IGF1dG87IHBhZGRpbmc6IDEycHggMTZweDsgZm9udC1mYW1pbHk6 IHZhcigtLW1vbm8pOyBmb250LXNpemU6IDEycHg7IGxpbmUtaGVpZ2h0OiAxLjU7IGJhY2tncm91 bmQ6IHZhcigtLWJnKTsgfQouZGlmZi1saW5lIHsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB3b3Jk LWJyZWFrOiBicmVhay13b3JkOyBwYWRkaW5nOiAwIDZweDsgYm9yZGVyLXJhZGl1czogM3B4OyB9 Ci5kaWZmLWxpbmUuYWRkIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1v aykgMTYlLCB0cmFuc3BhcmVudCk7IGNvbG9yOiB2YXIoLS1vayk7IH0KLmRpZmYtbGluZS5kZWwg eyBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWRhbmdlcikgMTQlLCB0cmFu c3BhcmVudCk7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9Ci5kaWZmLWxpbmUuY3R4IHsgY29sb3I6 IHZhcigtLXRleHQtZm50KTsgfQouZGlmZi1nYXAgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9y OiB2YXIoLS10ZXh0LWZudCk7IHBhZGRpbmc6IDJweCAwOyB9CgovKiBBa3Rpdml0YWV0cy0vWndp c2NoZW5zdGFuZHMtUG9wb3ZlciAqLwouY29sbGFiLXBvcCB7IHBvc2l0aW9uOiBmaXhlZDsgei1p bmRleDogdmFyKC0tei1wb3BvdmVyKTsgd2lkdGg6IG1pbigzNjBweCwgOTJ2dyk7IG1heC1oZWln aHQ6IDcwdmg7IG92ZXJmbG93OiBhdXRvOwogIGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3Jk ZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsg Ym94LXNoYWRvdzogdmFyKC0tZWxldi0yKTsgcGFkZGluZzogOHB4OyB9Ci5jb2xsYWItc2VjICsg LmNvbGxhYi1zZWMgeyBtYXJnaW4tdG9wOiA2cHg7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIo LS1saW5lKTsgcGFkZGluZy10b3A6IDZweDsgfQouY29sbGFiLXNlYy1oIHsgZm9udC1zaXplOiB2 YXIoLS1mcy1zbSk7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwOyBjb2xvcjog dmFyKC0tdGV4dC1kaW0pOyBwYWRkaW5nOiAxMHB4IDhweCA0cHg7IH0KLmNvbGxhYi1lbXB0eSB7 IHBhZGRpbmc6IDJweCA4cHggNnB4OyBmb250LXNpemU6IDEycHg7IH0KLmNvbGxhYi1yb3cgeyBk aXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDlweDsgcGFkZGluZzogN3B4 IDhweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IH0KLmNvbGxhYi1yb3cuYWN0IHsgY3Vy c29yOiBwb2ludGVyOyB9Ci5jb2xsYWItcm93LmFjdDpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigt LWJnLWhvdik7IH0KLmNvbGxhYi1yb3ctaWMgeyB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBm bGV4OiAwIDAgYXV0bzsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgYm9yZGVy LXJhZGl1czogdmFyKC0tci1zbSk7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBjb2xvcjogdmFy KC0tYnJhbmQpOyB9Ci5jb2xsYWItcm93LWljIHN2ZyB7IHdpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0 cHg7IH0KLmNvbGxhYi1yb3ctbWFpbiB7IG1pbi13aWR0aDogMDsgZmxleDogMTsgfQouY29sbGFi LXJvdy10IHsgZm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNjAwOyBvdmVyZmxvdzogaGlk ZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQouY29s bGFiLXJvdy1zIHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBvdmVy ZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3Jh cDsgfQoKLyogVmVyc2lvbnMtSGlzdG9yaWUgKGFkbWluL2hpc3RvcmllLmpzLCBQaGFzZSA1KSAq LwouaGlzdC1kbGcgeyB3aWR0aDogbWluKDExMDBweCwgOTZ2dyk7IH0KLmhpc3QtZGxnIC5jb2xs YWItZGxnLWhlYWQgc3ZnIHsgY29sb3I6IHZhcigtLWJyYW5kKTsgfQouaGlzdC1ncmlkIHsgZmxl eDogMTsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNDBweCAxZnI7IG1p bi1oZWlnaHQ6IDA7IH0KLmhpc3QtbGlzdCB7IG92ZXJmbG93OiBhdXRvOyBib3JkZXItcmlnaHQ6 IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgcGFkZGluZzogOHB4OyB9Ci5oaXN0LWdycC1oIHsgZm9u dC1zaXplOiB2YXIoLS1mcy14cyk7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAw OwogIGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IHBhZGRpbmc6IDEycHggOHB4IDRweDsgcG9zaXRp b246IHN0aWNreTsgdG9wOiAwOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsgfQouaGlzdC1pdGVt IHsgcGFkZGluZzogOHB4IDEwcHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBjdXJzb3I6 IHBvaW50ZXI7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9Ci5oaXN0LWl0ZW06aG92 ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyB9Ci5oaXN0LWl0ZW0uc2VsIHsgYmFja2dy b3VuZDogdmFyKC0tYmctaG92KTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLmhpc3Qt aXRlbS10b3AgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsg anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9Ci5oaXN0LXdoZW4geyBmb250LXNpemU6 IDEycHg7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0KLmhpc3QtaXRlbS1zdWIgeyBmb250LXNp emU6IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IG1hcmdpbi10b3A6IDJweDsgb3ZlcmZs b3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7 IH0KLmhpc3QtYWN0IHsgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNzAwOyBsZXR0ZXIt c3BhY2luZzogLjA0ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHBhZGRpbmc6IDJweCA3 cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7IH0KLmhpc3QtYWN0LnB1Ymxpc2ggeyBi YWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWJyYW5kKSAxOCUsIHRyYW5zcGFy ZW50KTsgY29sb3I6IHZhcigtLWJyYW5kKTsgfQouaGlzdC1hY3QucmVzdG9yZSB7IGJhY2tncm91 bmQ6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0td2FybikgMjAlLCB0cmFuc3BhcmVudCk7IGNv bG9yOiB2YXIoLS13YXJuKTsgfQouaGlzdC1wYW5lIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJl Y3Rpb246IGNvbHVtbjsgbWluLXdpZHRoOiAwOyBtaW4taGVpZ2h0OiAwOyB9Ci5oaXN0LXBhbmUt ZW1wdHkgeyBwYWRkaW5nOiAyOHB4IDIwcHg7IH0KLmhpc3QtcGFuZS1oZWFkIHsgcGFkZGluZzog MTJweCAxNnB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGluZSk7IH0KLmhpc3Qt cGFuZS10IHsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNjAwOyB9Ci5oaXN0LXBhbmUt cyB7IGZvbnQtc2l6ZTogMTJweDsgbWFyZ2luLXRvcDogMnB4OyB9Ci5oaXN0LXBhbmUgLmRpZmYt dmlldyB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgfQouaGlzdC1wYW5l LWZvb3QgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEycHg7IHBh ZGRpbmc6IDEycHggMTZweDsgfQouaGlzdC1wYW5lLWZvb3QgLm11dGVkIHsgZm9udC1zaXplOiAx MnB4OyB9Ci5oaXN0LXBhbmUtZm9vdCAuYnRuIHN2ZyB7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1 cHg7IH0KLmhpc3QtZm9vdC1oaW50IHsgZm9udC1zaXplOiAxMnB4OyB9CkBtZWRpYSAobWF4LXdp ZHRoOiA4MjBweCkgeyAuaGlzdC1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH0g Lmhpc3QtbGlzdCB7IGJvcmRlci1yaWdodDogMDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZh cigtLWxpbmUpOyBtYXgtaGVpZ2h0OiAzOHZoOyB9IH0KCi8qID09PT09PT09PT09PT09PT09PT09 PSBBcnRpa2VsIGFscyBQREYgKEJyb3dzZXItRHJ1Y2ssIFBoYXNlIDYpID09PT09PT09PT09PT09 PT09PT09PSAqLwovKiAiQWxzIFBERiItS25vcGYgbnVyIGluIGRlciBBcnRpa2VsLUFuc2ljaHQg emVpZ2VuIChuaWNodCBiZWkgaWZyYW1lLURva3MvRmVlZCkuICovCi5jdi1wZGYgeyBkaXNwbGF5 OiBub25lOyB9Ci5jZW50ZXIuYXJ0aWNsZSAuY3YtcGRmIHsgZGlzcGxheTogaW5saW5lLWZsZXg7 IH0KLnByaW50LWZvb3QgeyBkaXNwbGF5OiBub25lOyB9CgovKiBQb3J0YWwtRWluc3RlbGx1bmdl biArIEthdGVnb3JpZW4gKFBoYXNlIDcpICovCi5zZXQtZGxnIHsgd2lkdGg6IG1pbig1NjBweCwg OTZ2dyk7IH0KLnNldC1ib2R5IHsgcGFkZGluZzogMTRweCAyMHB4OyBvdmVyZmxvdzogYXV0bzsg ZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4OyB9Ci5zZXQt Ym9keSAuc2VnIHsgd2lkdGg6IG1heC1jb250ZW50OyB9Ci5zZXQtY29sb3IgeyBkaXNwbGF5OiBm bGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgfQouc2V0LWNvbG9yIGlucHV0IHsg ZmxleDogMTsgcGFkZGluZzogOHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLW1kKTsgYm9yZGVy OiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGNvbG9y OiB2YXIoLS10ZXh0KTsgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pOyBmb250LXNpemU6IDEycHg7 IH0KLnNldC1sb2dvIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4 cHg7IH0KLnNldC1sb2dvIGlucHV0IHsgZmxleDogMTsgcGFkZGluZzogOHB4OyBib3JkZXItcmFk aXVzOiB2YXIoLS1yLW1kKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgYmFja2dy b3VuZDogdmFyKC0tYmctMyk7IGNvbG9yOiB2YXIoLS10ZXh0KTsgZm9udC1zaXplOiAxMnB4OyB9 Ci5zZXQtbG9nby1wcmV2IHsgaGVpZ2h0OiAzMHB4OyB3aWR0aDogYXV0bzsgbWF4LXdpZHRoOiA4 MHB4OyBvYmplY3QtZml0OiBjb250YWluOyBib3JkZXItcmFkaXVzOiA0cHg7IGJhY2tncm91bmQ6 ICMwYzJhNDk7IHBhZGRpbmc6IDJweCA0cHg7IH0KLnNldC1wcmVzZXRzIHsgZGlzcGxheTogZmxl eDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA2cHg7IH0KLnNldC1wcmVzZXQtcm93IHsg ZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0byBhdXRvOyBnYXA6 IDhweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQouc2V0LXByZXNldC1yb3cgaW5wdXQsIC5zZXQt cHJlc2V0LXJvdyBzZWxlY3QgeyBwYWRkaW5nOiA4cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIt bWQpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyBiYWNrZ3JvdW5kOiB2YXIoLS1i Zy0zKTsgY29sb3I6IHZhcigtLXRleHQpOyB9Ci5hZGQtcm93IHsgYWxpZ24tc2VsZjogZmxleC1z dGFydDsgfQoKLyog4oCeWnVsZXR6dCBnZcOkbmRlcnQiLVdpZGdldCAoUGhhc2UgOCkgKi8KCi8q IEluaGFsdHN2ZXJ6ZWljaG5pcyAvIFRPQyAoUGhhc2UgOCkgKi8KLmFydC10b2MgeyBkaXNwbGF5 OiBub25lOyB9Ci5hcnQtdG9jLWggeyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgZm9udC13ZWln aHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDA7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IG1hcmdp bi1ib3R0b206IDhweDsgfQouYXJ0LXRvYyB1bCB7IGxpc3Qtc3R5bGU6IG5vbmU7IG1hcmdpbjog MDsgcGFkZGluZzogMDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2Fw OiAycHg7IH0KLmFydC10b2MgYSB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDEyLjVweDsg Y29sb3I6IHZhcigtLXRleHQtZGltKTsgcGFkZGluZzogM3B4IDhweDsgYm9yZGVyLWxlZnQ6IDJw eCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7IH0KLmFydC10 b2MgYS5sdmwzIHsgcGFkZGluZy1sZWZ0OiAxOHB4OyBmb250LXNpemU6IDEycHg7IH0KLmFydC10 b2MgYTpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92 KTsgfQouYXJ0LXRvYyBhLmFjdGl2ZSB7IGNvbG9yOiB2YXIoLS1icmFuZCk7IGJvcmRlci1sZWZ0 LWNvbG9yOiB2YXIoLS1icmFuZCk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KQG1lZGlhIChtaW4td2lk dGg6IDEyODBweCkgewogIC5jZW50ZXIuYXJ0aWNsZSAuYXJ0LXRvYyB7IGRpc3BsYXk6IGJsb2Nr OyBmbG9hdDogcmlnaHQ7IHBvc2l0aW9uOiBzdGlja3k7IHRvcDogNnB4OyB3aWR0aDogMjEwcHg7 IG1hcmdpbjogNnB4IDAgMTZweCAyOHB4OyBtYXgtaGVpZ2h0OiA4MnZoOyBvdmVyZmxvdzogYXV0 bzsgfQp9CkBtZWRpYSAobWF4LXdpZHRoOiAxMjc5cHgpIHsKICAuY2VudGVyLmFydGljbGUgLmFy dC10b2MgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAwIGF1dG8gMThweDsgbWF4LXdpZHRoOiB2 YXIoLS1yZWFkKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6 IHZhcigtLXItbWQpOyBwYWRkaW5nOiAxMHB4IDEycHg7IH0KfQoKLyogQnJvdGtydW1lbiAoUGhh c2UgOCkgKi8KI2N2LXBhdGgucGF0aCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50 ZXI7IGdhcDogM3B4OyBmbGV4LXdyYXA6IHdyYXA7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsg bWluLXdpZHRoOiAwOyB9Ci5jcnVtYiB7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXRl eHQtZGltKTsgbWF4LXdpZHRoOiAyNmNoOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93 OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQphLmNydW1iIHsgY3Vyc29yOiBwb2lu dGVyOyB9CmEuY3J1bWI6aG92ZXIgeyBjb2xvcjogdmFyKC0tYnJhbmQpOyB0ZXh0LWRlY29yYXRp b246IHVuZGVybGluZTsgfQouY3J1bWItc2VjIHsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgfQou Y3J1bWItY3VyIHsgY29sb3I6IHZhcigtLXRleHQpOyBmb250LXdlaWdodDogNjAwOyB9Ci5jcnVt Yi1zZXAgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgfQou Y3J1bWItc2VwIHN2ZyB7IHdpZHRoOiAxMnB4OyBoZWlnaHQ6IDEycHg7IH0KCi8qIE5hdmlnYXRp b25zLUVkaXRvciAoUGhhc2UgNykgKi8KLm52LWRsZyB7IHdpZHRoOiBtaW4oNzIwcHgsIDk2dncp OyB9Ci5udi10cmVlIHsgZmxleDogMTsgb3ZlcmZsb3c6IGF1dG87IHBhZGRpbmc6IDEycHggMTZw eDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4OyB9Ci5u di1zZWMgeyBmbGV4OiAwIDAgYXV0bzsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJv cmRlci1yYWRpdXM6IHZhcigtLXItbGcpOyBvdmVyZmxvdzogaGlkZGVuOyB9Ci5udi1zZWMtaGVh ZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBwYWRkaW5n OiA4cHggMTBweDsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGN1cnNvcjogZ3JhYjsgfQoubnYt c2VjLWhlYWQuaXMtdG9wYmFyIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIo LS13YXJuKSAxMCUsIHZhcigtLWJnLTMpKTsgfQoubnYtc2VjLWhlYWQuZHJhZ2dpbmcsIC5udi1y b3cuZHJhZ2dpbmcgeyBvcGFjaXR5OiAuNDU7IH0KLm52LXNlYy1oZWFkLmRyb3AtYmVmb3JlLCAu bnYtcm93LmRyb3AtYmVmb3JlIHsgYm94LXNoYWRvdzogaW5zZXQgMCAycHggMCAwIHZhcigtLWJy YW5kKTsgfQoubnYtc2VjLWhlYWQuZHJvcC1hZnRlciwgLm52LXJvdy5kcm9wLWFmdGVyIHsgYm94 LXNoYWRvdzogaW5zZXQgMCAtMnB4IDAgMCB2YXIoLS1icmFuZCk7IH0KLm52LXNlYy10aXRsZSB7 IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTRweDsgY3Vyc29yOiB0ZXh0OyB9Ci5udi1w bGFjZSB7IHBhZGRpbmc6IDRweCA2cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBib3Jk ZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsgY29s b3I6IHZhcigtLXRleHQpOyBmb250LXNpemU6IDEycHg7IH0KLm52LWNvbG9yIHsgd2lkdGg6IDI2 cHg7IGhlaWdodDogMjZweDsgcGFkZGluZzogMDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGlu ZS0yKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGJhY2tncm91bmQ6IHZhcigtLWJnLTIp OyBjdXJzb3I6IHBvaW50ZXI7IGZsZXg6IDAgMCBhdXRvOyB9Ci5udi1jb2xvcjo6LXdlYmtpdC1j b2xvci1zd2F0Y2gtd3JhcHBlciB7IHBhZGRpbmc6IDJweDsgfQoubnYtY29sb3I6Oi13ZWJraXQt Y29sb3Itc3dhdGNoIHsgYm9yZGVyOiAwOyBib3JkZXItcmFkaXVzOiAzcHg7IH0KLm52LWJhZGdl IHsgZm9udC1zaXplOiAxMHB4OyBwYWRkaW5nOiAycHggN3B4OyBib3JkZXItcmFkaXVzOiB2YXIo LS1yLXBpbGwpOyBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLXdhcm4pIDIy JSwgdHJhbnNwYXJlbnQpOyBjb2xvcjogdmFyKC0td2Fybik7IH0KLm52LWJhZGdlLndhcm4geyBi YWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWRhbmdlcikgMTglLCB0cmFuc3Bh cmVudCk7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9Ci5udi1hY3RzIHsgbWFyZ2luLWxlZnQ6IGF1 dG87IGRpc3BsYXk6IGZsZXg7IGdhcDogMnB4OyBmbGV4OiAwIDAgYXV0bzsgfQoubnYtbGlzdCB7 IHBhZGRpbmc6IDZweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2Fw OiAzcHg7IH0KLm52LXJvdyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdh cDogOHB4OyBwYWRkaW5nOiA1cHggOHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXNtKTsgYmFj a2dyb3VuZDogdmFyKC0tYmctMik7IGN1cnNvcjogZ3JhYjsgfQoubnYtcm93OmhvdmVyIHsgYmFj a2dyb3VuZDogdmFyKC0tYmctaG92KTsgfQoubnYtZ3JpcCB7IGNvbG9yOiB2YXIoLS10ZXh0LWZu dCk7IGN1cnNvcjogZ3JhYjsgZm9udC1zaXplOiAxMXB4OyBsZXR0ZXItc3BhY2luZzogLTJweDsg dXNlci1zZWxlY3Q6IG5vbmU7IH0KLm52LWljIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGNvbG9y OiB2YXIoLS1icmFuZCk7IH0gLm52LWljIHN2ZyB7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7 IH0KLm52LWxibCB7IGZvbnQtc2l6ZTogMTNweDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVy ZmxvdzogZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KLm52LWtpZHMgeyB9IC8qIEVp bnJ1ZWNrdW5nIHZpYSBpbmxpbmUgbWFyZ2luLWxlZnQgcHJvIFRpZWZlICovCi5udi1taW5pIHsg d2lkdGg6IDI2cHg7IGhlaWdodDogMjZweDsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNl bnRlcjsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHZhcigtLXRl eHQtZGltKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGN1cnNvcjogcG9pbnRlcjsgZm9u dC1zaXplOiAxMnB4OyB9Ci5udi1taW5pOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7 IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQoubnYtbWluaSBzdmcgeyB3aWR0aDogMTRweDsgaGVpZ2h0 OiAxNHB4OyB9Ci5udi1kcm9wIHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1m bnQpOyBwYWRkaW5nOiA2cHggOHB4OyBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tbGluZS0yKTsg Ym9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IHRleHQtYWxpZ246IGNlbnRlcjsgfQoubnYtZHJv cC5vdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IGNvbG9yOiB2YXIoLS1icmFuZCk7 IGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tYnJhbmQpIDglLCB0cmFuc3Bh cmVudCk7IH0KCi8qIFJvbGxlbi1WZXJ3YWx0dW5nIChQaGFzZSA3KSAqLwoucm9sZXMtZGxnIHsg d2lkdGg6IG1pbig1NjBweCwgOTZ2dyk7IH0KLnJvbGVzLWJvZHkgeyBwYWRkaW5nOiAxNHB4IDIw cHg7IG92ZXJmbG93OiBhdXRvOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1u OyBnYXA6IDEycHg7IH0KLnJvbGVzLWhpbnQgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDlweDsgYWxp Z24taXRlbXM6IGZsZXgtc3RhcnQ7IHBhZGRpbmc6IDEwcHggMTJweDsgYm9yZGVyLXJhZGl1czog dmFyKC0tci1tZCk7CiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS13YXJu KSAxNCUsIHRyYW5zcGFyZW50KTsgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIG9rbGNo LCB2YXIoLS13YXJuKSA0MCUsIHZhcigtLWxpbmUpKTsgZm9udC1zaXplOiAxMi41cHg7IH0KLnJv bGVzLWhpbnQgc3ZnIHsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgZmxleDogMCAwIGF1dG87 IGNvbG9yOiB2YXIoLS13YXJuKTsgfQoucm9sZXMtbGlzdCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgt ZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyB9Ci5yb2xlcy1yb3cgeyBkaXNwbGF5OiBncmlk OyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgxMTBweCwgYXV0bykgMWZyIGF1dG87IGdh cDogMTBweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBwYWRkaW5nOiA2cHggOHB4OyBib3JkZXIt cmFkaXVzOiB2YXIoLS1yLXNtKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IH0KLnJvbGVzLWsg eyBmb250LXNpemU6IDEzcHg7IH0KLnJvbGVzLW4geyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2 YXIoLS10ZXh0LWRpbSk7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lz OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5yb2xlcy1lbXB0eSB7IHBhZGRpbmc6IDRweCA4cHg7 IH0KLnJvbGVzLWFkZCB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlu bWF4KDExMHB4LCAxZnIpIDEuNGZyIGF1dG87IGdhcDogOHB4OyBtYXJnaW4tdG9wOiA2cHg7IH0K LnJvbGVzLWFkZCBpbnB1dCB7IHBhZGRpbmc6IDhweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1t ZCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUtMik7IGJhY2tncm91bmQ6IHZhcigtLWJn LTMpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLm1pbmktYnRuLm9mZiB7IG9wYWNpdHk6IC40OyB9 CgovKiBMYWdlLVZvcmxhZ2VuLVBpY2tlciAoUGhhc2UgNykgKi8KLmxhZ2UtcGljayB7IHBhZGRp bmc6IDE0cHggMjBweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2Fw OiA4cHg7IH0KLmxhZ2UtY2hpcHMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdh cDogOHB4OyB9Ci5sYWdlLWNoaXAgeyBwYWRkaW5nOiA3cHggMTJweDsgYm9yZGVyLXJhZGl1czog dmFyKC0tci1waWxsKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgYmFja2dyb3Vu ZDogdmFyKC0tYmctMyk7CiAgY29sb3I6IHZhcigtLXRleHQpOyBjdXJzb3I6IHBvaW50ZXI7IGZv bnQtc2l6ZTogMTNweDsgfQoubGFnZS1jaGlwOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmct aG92KTsgfQoubGFnZS1jaGlwLmFsZXJ0IHsgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gb2ts Y2gsIHZhcigtLXdhcm4pIDUwJSwgdmFyKC0tbGluZS0yKSk7IH0KLmxhZ2UtY2hpcC5vayB7IGJv cmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1vaykgNTAlLCB2YXIoLS1saW5l LTIpKTsgfQoubGFnZS1mcmVlIHsgcGFkZGluZzogMTBweDsgYm9yZGVyLXJhZGl1czogdmFyKC0t ci1tZCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUtMik7IGJhY2tncm91bmQ6IHZhcigt LWJnLTMpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBFSU5TVEVM TFVOR1MtS09OU09MRSAoYWRtaW4vc2V0dGluZ3MuanMpIOKAlCBUYWItTmF2aWdhdGlvbiBpbSBD RC1TdGlsCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PSAqLwouYWRtLWhvc3QgeyBwYWRkaW5nOiAwICFpbXBvcnRh bnQ7IGdhcDogMCAhaW1wb3J0YW50OyB9Ci5hZG0tc2hlbGwgeyBkaXNwbGF5OiBncmlkOyBncmlk LXRlbXBsYXRlLWNvbHVtbnM6IDIzMHB4IDFmcjsgbWluLWhlaWdodDogbWluKDYydmgsIDU2MHB4 KTsgfQouYWRtLW5hdiB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdh cDogM3B4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZyk7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZh cigtLWxpbmUpOyBwYWRkaW5nOiAxNHB4IDEycHg7IG92ZXJmbG93LXk6IGF1dG87IH0KLmFkbS10 YWIgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IHBhZGRp bmc6IDEwcHggMTFweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGNvbG9yOiB2YXIoLS10 ZXh0LWRpbSk7IGZvbnQtc2l6ZTogMTMuNXB4OyBmb250LXdlaWdodDogNjAwOyB0ZXh0LWFsaWdu OiBsZWZ0OyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWR1ci0xKSwgY29sb3IgdmFyKC0t ZHVyLTEpOyB9Ci5hZG0tdGFiIHN2ZyB7IHdpZHRoOiAxN3B4OyBoZWlnaHQ6IDE3cHg7IGZsZXg6 IDAgMCBhdXRvOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBkaXNwbGF5OiBibG9jazsgfQouYWRt LXRhYjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBjb2xvcjogdmFyKC0tdGV4dCk7 IH0KLmFkbS10YWIuYWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQtc29mdCk7IGNvbG9y OiB2YXIoLS1icmFuZC1zdHJvbmcpOyBmb250LXdlaWdodDogNzAwOyBib3gtc2hhZG93OiBpbnNl dCAzcHggMCAwIHZhcigtLWJyYW5kKTsgfQouYWRtLXRhYi5hY3RpdmUgc3ZnIHsgY29sb3I6IHZh cigtLWJyYW5kKTsgfQouYWRtLXBhbmUgeyBwYWRkaW5nOiAxOHB4IDIwcHggMjRweDsgb3ZlcmZs b3cteTogYXV0bzsgbWluLXdpZHRoOiAwOyB9Ci5hZG0tc2VjaGVhZCB7IG1hcmdpbjogMCAwIDE2 cHg7IH0KLmFkbS1zZWNoZWFkIGgzIHsgbWFyZ2luOiAwIDAgM3B4OyBmb250LXNpemU6IHZhcigt LWZzLW1kKTsgZm9udC13ZWlnaHQ6IDcwMDsgfQouYWRtLXNlY2hlYWQgcCB7IG1hcmdpbjogMDsg Zm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IH0KLmFkbS1n cm91cCB7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiB2YXIo LS1yLWxnKTsgcGFkZGluZzogMTRweCAxNnB4OyBtYXJnaW4tYm90dG9tOiAxNHB4OyBiYWNrZ3Jv dW5kOiB2YXIoLS1iZy0yKTsgfQouYWRtLWdyb3VwLWggeyBmb250LXNpemU6IDExcHg7IGZvbnQt d2VpZ2h0OiA3MDA7IGxldHRlci1zcGFjaW5nOiAuMDdlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVy Y2FzZTsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgbWFyZ2luLWJvdHRvbTogMTJweDsgfQouYWRt LWdyaWQyIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBn YXA6IDZweCAxOHB4OyB9Ci5hZG0tbm90ZSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTJweDsgcGFk ZGluZzogMTRweCAxNnB4OyBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gb2tsYWIsIHZh cigtLXdhcm4pIDMwJSwgdmFyKC0tbGluZSkpOyBiYWNrZ3JvdW5kOiB2YXIoLS13YXJuLXNvZnQp OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGxp bmUtaGVpZ2h0OiAxLjU1OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyBtYXJnaW4tYm90dG9tOiAx NHB4OyB9Ci5hZG0tbm90ZSBzdmcgeyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBjb2xvcjog dmFyKC0td2Fybik7IGZsZXg6IDAgMCBhdXRvOyB9Ci5hZG0tbm90ZSBiIHsgY29sb3I6IHZhcigt LXRleHQpOyB9Ci5hZG0tY29sb3IgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVy OyBnYXA6IDhweDsgfQouYWRtLWNvbG9yIGlucHV0W3R5cGU9ImNvbG9yIl0geyB3aWR0aDogMzhw eDsgaGVpZ2h0OiAzNHB4OyBwYWRkaW5nOiAycHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxp bmUtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0z KTsgY3Vyc29yOiBwb2ludGVyOyBmbGV4OiAwIDAgYXV0bzsgfQouYWRtLWNvbG9yIGlucHV0W3R5 cGU9InRleHQiXSB7IGZsZXg6IDE7IG1pbi13aWR0aDogMDsgcGFkZGluZzogOHB4IDEwcHg7IGJv cmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0zKTsgYm9yZGVy OiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pOyBmb250 LXNpemU6IDEycHg7IH0KLmFkbS1jb2xvciBpbnB1dFt0eXBlPSJ0ZXh0Il06Zm9jdXMgeyBvdXRs aW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRvdzogMCAwIDAg M3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9CkBtZWRpYSAobWF4LXdpZHRoOiA3NjBweCkgewogIC5h ZG0tc2hlbGwgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfQogIC5hZG0tbmF2IHsgZmxl eC1kaXJlY3Rpb246IHJvdzsgZmxleC13cmFwOiB3cmFwOyBib3JkZXItcmlnaHQ6IDA7IGJvcmRl ci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgfQogIC5hZG0tZ3JpZDIgeyBncmlkLXRl bXBsYXRlLWNvbHVtbnM6IDFmcjsgfQp9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgTElOSy1QUsOcRlVO RyAoZmVhdHVyZXMvbGlua2NoZWNrLmpzKSDigJQgUmVwb3J0IGltIENELVN0aWwKICAgPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09ICovCi5sYy1zdW0tdCB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBjb2xvcjogdmFy KC0tdGV4dC1kaW0pOyB9Ci5sYy1zdW0tdCBiIHsgY29sb3I6IHZhcigtLXRleHQpOyBmb250LXdl aWdodDogNzAwOyB9Ci5sYy1iYXIgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IHZhcigtLXNwLTIpOyBm bGV4LXdyYXA6IHdyYXA7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IG1hcmdpbjogNHB4IDAgMnB4OyB9 Ci5sYy1iYXIgLmJ0biBzdmcgeyBkaXNwbGF5OiBibG9jazsgfQoubGMtbGlzdCB7IGRpc3BsYXk6 IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNXB4OyBtYXgtaGVpZ2h0OiA1NnZo OyBvdmVyZmxvdy15OiBhdXRvOyBwYWRkaW5nOiAycHg7IH0KLmxjLWxpc3QgLmZlZWQtc2VjdGlv bi1sYWJlbCB7IG1hcmdpbjogMTJweCAycHggNnB4OyB9Ci5sYy1yb3cgeyBkaXNwbGF5OiBmbGV4 OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDExcHg7IHBhZGRpbmc6IDlweCAxMnB4OyBib3Jk ZXItcmFkaXVzOiB2YXIoLS1yLW1kKTsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsg YmFja2dyb3VuZDogdmFyKC0tYmctMik7IHRleHQtYWxpZ246IGxlZnQ7IHRyYW5zaXRpb246IGJh Y2tncm91bmQgLjEycywgYm9yZGVyLWNvbG9yIC4xMnM7IHdpZHRoOiAxMDAlOyB9Ci5sYy1yb3c6 aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBib3JkZXItY29sb3I6IHZhcigtLWxp bmUtMik7IH0KLmxjLW1haW4geyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1u OyBtaW4td2lkdGg6IDA7IGZsZXg6IDE7IGdhcDogMXB4OyB9Ci5sYy1sYmwgeyBmb250LXNpemU6 IDEzLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxv dzogZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KLmxjLXBhdGggeyBmb250LXNpemU6 IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3Zl cmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5sYy1iYWRnZSB7IGZsZXg6 IDAgMCBhdXRvOyBtaW4td2lkdGg6IDUycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXpl OiAxMC41cHg7IGZvbnQtd2VpZ2h0OiA3MDA7CiAgbGV0dGVyLXNwYWNpbmc6IC4wMmVtOyBwYWRk aW5nOiAzcHggOXB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwpOyB9Ci5sYy1iYWRnZS5v ayAgIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1vaykgMTYlLCB0cmFu c3BhcmVudCk7IGNvbG9yOiB2YXIoLS1vayk7IH0KLmxjLWJhZGdlLmJhZCAgeyBiYWNrZ3JvdW5k OiB2YXIoLS1kYW5nZXItc29mdCk7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9Ci5sYy1iYWRnZS5l eHQgIHsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IGJv cmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUtMik7IH0KLmxjLWJhZGdlLmlkbGUgeyBiYWNrZ3Jv dW5kOiB2YXIoLS1iZy0zKTsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgfQoubGMtYmFkZ2Uud2Fp dCB7IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXNvZnQpOyBjb2xvcjogdmFyKC0tYnJhbmQtc3Ry b25nKTsgfQoubGMtZW1wdHkgeyBwYWRkaW5nOiAyNnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNv bG9yOiB2YXIoLS10ZXh0LWZudCk7IGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1saW5lLTIpOyBi b3JkZXItcmFkaXVzOiB2YXIoLS1yLW1kKTsgfQoubGMtaGludCB7IGZvbnQtc2l6ZTogMTIuNXB4 OyB9Ci8qIElubGluZS1JY29ucyBpbiBkZW4gTGlzdGVuemVpbGVuICh6LiBCLiBNaWdyYXRpb25z LVdhcm51bmcpIGtsZWluIGhhbHRlbi4gKi8KLmxjLXBhdGggc3ZnIHsgd2lkdGg6IDEzcHg7IGhl aWdodDogMTNweDsgdmVydGljYWwtYWxpZ246IC0ycHg7IGZsZXg6IDAgMCBhdXRvOyB9Ci8qIE1p Z3JhdGlvbnMtUGFuZWw6IFZvcmZpbHRlci1MZWlzdGUgKyBUeXAtQmFkZ2UuICovCi5taWctZmls dGVyIHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBhbGlnbi1pdGVtczogY2VudGVy OyBnYXA6IDZweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgfQoubWlnLWZpbHRlciAubWlnLWNoaXAg eyBwYWRkaW5nOiAzcHggMTFweDsgZm9udC1zaXplOiAxMi41cHg7IGJvcmRlci1yYWRpdXM6IDk5 OXB4OyB9Ci5taWctc2VwIHsgd2lkdGg6IDFweDsgYWxpZ24tc2VsZjogc3RyZXRjaDsgYmFja2dy b3VuZDogdmFyKC0tbGluZS0yKTsgbWFyZ2luOiAycHggNHB4OyB9Ci5taWctc2VhcmNoIHsgd2lk dGg6IDEwMCU7IG1hcmdpbi1ib3R0b206IDEycHg7IHBhZGRpbmc6IDhweCAxMnB4OyBib3JkZXI6 IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOyBi YWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsgY29sb3I6IHZhcigtLXRleHQpOyBmb250LXNpemU6IDEz LjVweDsgfQoubWlnLXNlYXJjaDpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IGJvcmRlci1jb2xvcjog dmFyKC0tYnJhbmQpOyB9Ci5taWctdGFnIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4t bGVmdDogOHB4OyBwYWRkaW5nOiAxcHggOHB4OyBmb250LXNpemU6IDEwLjVweDsgZm9udC13ZWln aHQ6IDcwMDsKICBib3JkZXItcmFkaXVzOiA5OTlweDsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQt c29mdCk7IGNvbG9yOiB2YXIoLS1icmFuZC1zdHJvbmcpOyB2ZXJ0aWNhbC1hbGlnbjogMXB4OyB9 Ci5taWctY2xzIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tbGVmdDogOHB4OyBwYWRk aW5nOiAxcHggOHB4OyBmb250LXNpemU6IDEwLjVweDsgZm9udC13ZWlnaHQ6IDgwMDsKICBib3Jk ZXItcmFkaXVzOiA5OTlweDsgdmVydGljYWwtYWxpZ246IDFweDsgfQoubWlnLWNscy5jbHMtdnMt bmZkIHsgYmFja2dyb3VuZDogdmFyKC0tZGFuZ2VyLXNvZnQpOyBjb2xvcjogdmFyKC0tZGFuZ2Vy KTsgfQoubWlnLWNscy5jbHMtbmZkIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGFiLCB2 YXIoLS1uZmQpIDIwJSwgdHJhbnNwYXJlbnQpOyBjb2xvcjogdmFyKC0tbmZkKTsgfQoubWlnLXJv dy1jaGVjayB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyBtYXJn aW46IDAgMnB4OyB9Ci5taWctYnVsayB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50 ZXI7IGdhcDogMTBweDsgbWFyZ2luOiA0cHggMCAxMHB4OyBwYWRkaW5nOiA4cHggMTJweDsKICBi b3JkZXI6IDFweCBzb2xpZCB2YXIoLS1icmFuZCk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQp OyBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC1zb2Z0KTsgfQoubWlnLXByZXZiYXIgeyBkaXNwbGF5 OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTBweDsgZm9udC1z aXplOiAxMnB4OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyBtYXJnaW4tYm90dG9tOiA2cHg7IH0K Lm1pZy1wcmV2aWV3IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIg MWZyOyBnYXA6IDEwcHg7IGhlaWdodDogNjJ2aDsgfQoubWlnLXByZXZpZXcgaWZyYW1lIHsgd2lk dGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsg Ym9yZGVyLXJhZGl1czogdmFyKC0tci1tZCk7IGJhY2tncm91bmQ6ICNmZmY7IH0KCi8qIE9yZG5l ci1Lbm90ZW4tTW9kYWw6IFZlcnplaWNobmlzYW5zaWNodCAoSUUtTW9kdXMpICovCi5mb2xkZXIt YmFyIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMnB4OyBtYXJn aW4tYm90dG9tOiAxMHB4OyBmbGV4LXdyYXA6IHdyYXA7IH0KLmZvbGRlci1iYXIgLm1vbm8geyBm b250LXNpemU6IDEycHg7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgfQouZm9sZGVyLWZyYW1lIHsg d2lkdGg6IDEwMCU7IGhlaWdodDogNjB2aDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0y KTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1tZCk7IGJhY2tncm91bmQ6ICNmZmY7IH0KLmZvbGRl ci1saXN0IHsgbWF4LWhlaWdodDogNjJ2aDsgb3ZlcmZsb3c6IGF1dG87IGJvcmRlcjogMXB4IHNv bGlkIHZhcigtLWxpbmUtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOyB9Ci5mb2xkZXIt cm93IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBwYWRk aW5nOiA4cHggMTJweDsgY3Vyc29yOiBwb2ludGVyOyBib3JkZXItYm90dG9tOiAxcHggc29saWQg dmFyKC0tbGluZSk7IH0KLmZvbGRlci1yb3c6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IDA7 IH0KLmZvbGRlci1yb3c6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ob3ZlciwgcmdiYSgxMjcs MTI3LDEyNywuMTApKTsgfQouZm9sZGVyLXJvdyAuZnItaWMgeyBkaXNwbGF5OiBpbmxpbmUtZmxl eDsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgb3BhY2l0eTogLjg7IGZsZXg6IDAgMCBhdXRv OyB9Ci5mb2xkZXItcm93IC5mci1pYyBzdmcgeyB3aWR0aDogMThweDsgaGVpZ2h0OiAxOHB4OyB9 Ci5mb2xkZXItcm93IC5mci1uYW1lIHsgZmxleDogMSAxIGF1dG87IHdvcmQtYnJlYWs6IGJyZWFr LWFsbDsgfQouZm9sZGVyLXJvdyAuZnItbWV0YSB7IGZvbnQtc2l6ZTogMTFweDsgZmxleDogMCAw IGF1dG87IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KLm5lLXJvdyB7IGRpc3BsYXk6IGZsZXg7IGZs ZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyBtYXJnaW4tYm90dG9tOiAxMnB4OyB9Ci5u ZS1yb3cgLm5lLWxibCB7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTNweDsgfQoubmUt cm93IGlucHV0LCAubmUtcm93IHNlbGVjdCB7IGZvbnQ6IGluaGVyaXQ7IHBhZGRpbmc6IDdweCAx MHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLW1kLCA4cHgpOyBib3JkZXI6IDFweCBzb2xpZCB2 YXIoLS1saW5lLTIsICM4ODgpOyB3aWR0aDogMTAwJTsgYm94LXNpemluZzogYm9yZGVyLWJveDsg fQoubmUtaWNvd3JhcCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDog MTBweDsgfQoubmUtaWNvd3JhcCBzZWxlY3QgeyBmbGV4OiAxIDEgYXV0bzsgfQoubmUtcHJldiB7 IGRpc3BsYXk6IGlubGluZS1mbGV4OyB3aWR0aDogMjJweDsgaGVpZ2h0OiAyMnB4OyBvcGFjaXR5 OiAuOTsgZmxleDogMCAwIGF1dG87IH0KLm5lLXByZXYgc3ZnIHsgd2lkdGg6IDIycHg7IGhlaWdo dDogMjJweDsgfQovKiBBcnp0LUFuZm9yZGVydW5nc3JlZ2lzdGVyIChNb2RhbCkgKi8KLm1vZGFs Lm1vZGFsLXhsIC5tb2RhbC1jYXJkIHsgbWF4LXdpZHRoOiBtaW4oOTZ2dywgMTUwMHB4KTsgd2lk dGg6IDk2dnc7IH0KLm1vZGFsLWJvZHkuYXJ6dC1ib2R5IHsgb3ZlcmZsb3c6IGhpZGRlbjsgZGlz cGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgbWluLWhlaWdodDogMDsgfQouYXJ6 dC1ob3N0IHsgd2lkdGg6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1 bW47IG1pbi1oZWlnaHQ6IDA7IGZsZXg6IDEgMSBhdXRvOyB9Ci5hcnp0LXRibHdyYXAgeyBmbGV4 OiAxIDEgYXV0bzsgbWluLWhlaWdodDogMDsgb3ZlcmZsb3c6IGF1dG87IGJvcmRlcjogMXB4IHNv bGlkIHZhcigtLWxpbmUtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOyB9Ci5hcnp0LXRi bCB7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IHdpZHRoOiAxMDAlOyBmb250LXNpemU6IDEz cHg7IH0KLmFyenQtdGJsIHRoLCAuYXJ6dC10YmwgdGQgeyBib3JkZXI6IDFweCBzb2xpZCB2YXIo LS1saW5lLTIpOyB0ZXh0LWFsaWduOiBsZWZ0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyBwYWRkaW5n OiAwOyB9Ci5hcnp0LXRibCB0aCB7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMsIHJnYmEoMTI3LDEy NywxMjcsLjE0KSk7IHBvc2l0aW9uOiBzdGlja3k7IHRvcDogMDsgei1pbmRleDogMTsgZm9udC13 ZWlnaHQ6IDYwMDsgcGFkZGluZzogNXB4IDdweDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQouYXJ6 dC10YmwgdGQucm8geyB3aGl0ZS1zcGFjZTogbm93cmFwOyBjb2xvcjogdmFyKC0tdGV4dC1kaW0p OyBwYWRkaW5nOiA0cHggN3B4OyBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOyB9 Ci5hcnp0LXRibCB0ZCA+IHNwYW4geyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogNHB4IDdweDsg fQouYXJ6dC10YmwgaW5wdXQgeyB3aWR0aDogMTAwJTsgYm94LXNpemluZzogYm9yZGVyLWJveDsg Ym9yZGVyOiAwOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgZm9udDogaW5oZXJpdDsgY29sb3I6 IGluaGVyaXQ7IHBhZGRpbmc6IDRweCA3cHg7IH0KLmFyenQtdGJsIGlucHV0OmZvY3VzIHsgb3V0 bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzKTsgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IGJhY2tn cm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXItcmFkaXVzOiAzcHg7IH0KLmFyenQtdGJsIHRib2R5 IHRyOm50aC1jaGlsZChldmVuKSB7IGJhY2tncm91bmQ6IHJnYmEoMTI3LDEyNywxMjcsLjA1KTsg fQouYXJ6dC10YmwgdGJvZHkgdHIuYXJ6dC1pbmNvbXBsZXRlIHsgYmFja2dyb3VuZDogdmFyKC0t ZGFuZ2VyLXNvZnQsIHJnYmEoMjAwLDYwLDYwLC4xMykpOyB9Ci5hcnp0LXRibCB0ZC5jb2wtZGVs IHsgd2lkdGg6IDM0cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMnB4OyB9Ci5hcnp0 LXRibCB0ZC5jb2wtZGVsIC5taW5pLWJ0biB7IHBhZGRpbmc6IDNweDsgfQovKiBCZXN0YWV0aWd1 bmdzLS9IaW53ZWlzLU1vZGFsIChQLmNvbmZpcm0gLyBQLmFsZXJ0KSAqLwouYXNrLWJvZHkgeyB0 ZXh0LWFsaWduOiBjZW50ZXI7IH0KLmFzay1ib2R5IC5hc2stbG9nbyB7IG1heC1oZWlnaHQ6IDU2 cHg7IG1heC13aWR0aDogNzAlOyBtYXJnaW46IDJweCBhdXRvIDE0cHg7IGRpc3BsYXk6IGJsb2Nr OyBvYmplY3QtZml0OiBjb250YWluOyB9Ci5hc2stYm9keSAuYXNrLW1zZyB7IGZvbnQtc2l6ZTog MTVweDsgbGluZS1oZWlnaHQ6IDEuNTsgd2hpdGUtc3BhY2U6IHByZS1saW5lOyBtYXJnaW46IDA7 IH0KLyogUGVyc29uYWxsaXN0ZSAoQWRtaW4pICovCi5wbC10Ymx3cmFwIHsgb3ZlcmZsb3cteDog YXV0bzsgfQoucGwtdGJsIHsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgd2lkdGg6IDEwMCU7 IGZvbnQtc2l6ZTogMTNweDsgbWFyZ2luLXRvcDogMTBweDsgfQoucGwtdGJsIHRkIGlucHV0W3R5 cGU9dGV4dF0geyBtaW4td2lkdGg6IDdjaDsgfQoucGwtdGJsIHRoLCAucGwtdGJsIHRkIHsgYm9y ZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBwYWRkaW5nOiA0cHggNnB4OyB0ZXh0 LWFsaWduOiBsZWZ0OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9Ci5wbC10YmwgdGggeyBmb250 LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9Ci5wbC10YmwgdGgucGwtYywg LnBsLXRibCB0ZC5wbC1jIHsgdGV4dC1hbGlnbjogY2VudGVyOyB3aWR0aDogNjRweDsgfQoucGwt dGJsIHRkIGlucHV0W3R5cGU9dGV4dF0geyB3aWR0aDogMTAwJTsgYm94LXNpemluZzogYm9yZGVy LWJveDsgZm9udDogaW5oZXJpdDsgcGFkZGluZzogNHB4IDZweDsgYm9yZGVyOiAxcHggc29saWQg dmFyKC0tbGluZS0yLCAjODg4KTsgYm9yZGVyLXJhZGl1czogNnB4OyBiYWNrZ3JvdW5kOiB0cmFu c3BhcmVudDsgY29sb3I6IGluaGVyaXQ7IH0KLnBsLXRibCBpbnB1dFt0eXBlPWNoZWNrYm94XSB7 IHdpZHRoOiAxN3B4OyBoZWlnaHQ6IDE3cHg7IH0KLnBsLWFkZCB7IGRpc3BsYXk6IGZsZXg7IGZs ZXgtd3JhcDogd3JhcDsgZ2FwOiA4cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IG1hcmdpbi10b3A6 IDE0cHg7IHBhZGRpbmctdG9wOiAxMnB4OyBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tbGlu ZSk7IH0KLnBsLWFkZCBpbnB1dFt0eXBlPXRleHRdIHsgZm9udDogaW5oZXJpdDsgcGFkZGluZzog N3B4IDlweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yLCAjODg4KTsgYm9yZGVyLXJh ZGl1czogOHB4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IGluaGVyaXQ7IH0KLnBs LWFkZCAucGwtYWRkLWsgeyB3aWR0aDogMTIwcHg7IH0gLnBsLWFkZCAucGwtYWRkLWcgeyB3aWR0 aDogOTZweDsgfSAucGwtYWRkIC5wbC1hZGQtdiwgLnBsLWFkZCAucGwtYWRkLW4geyB3aWR0aDog MTMwcHg7IH0KLnBsLWFkZCAucGwtYWRkLWNiIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWdu LWl0ZW1zOiBjZW50ZXI7IGdhcDogNHB4OyBmb250LXNpemU6IDEycHg7IH0KLyogTGluayBpbSBN b2RhbC1GZW5zdGVyIChPZWZmbmVuLU1vZHVzICJtb2RhbCIpICovCi5saW5rLW1vZGFsLWJvZHkg eyBwYWRkaW5nOiAwOyB9Ci5saW5rLW1vZGFsLWZyYW1lIHsgd2lkdGg6IDEwMCU7IGhlaWdodDog Nzh2aDsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kOiAjZmZmOyB9Ci5wZS1saW5rIC5wZS1vcGVuIHsg ZmxleDogMCAwIGF1dG87IH0KLyogTWVsZHVuZ2VuOiBBYnNhdHotL1plaWxlbnVtYnJ1ZWNoZSBp bSBCb2R5IGVyaGFsdGVuIChmdWVyIGltcG9ydGllcnRlIE1laHJ6ZWlsZXIpICovCi5idWxsIC5i b2R5IHsgd2hpdGUtc3BhY2U6IHByZS1saW5lOyB9Ci5uZXdzLWltcG9ydC10YSB7IHdpZHRoOiAx MDAlOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBmb250OiAxM3B4LzEuNDUgQ29uc29sYXMsIG1v bm9zcGFjZTsgcGFkZGluZzogMTBweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yLCAj ODg4KTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1tZCwgOHB4KTsgYmFja2dyb3VuZDogdmFyKC0t YmcsICNmZmYpOyBjb2xvcjogaW5oZXJpdDsgcmVzaXplOiB2ZXJ0aWNhbDsgfQoKQG1lZGlhIHBy aW50IHsKICAvKiBBcHAtQ2hyb21lIGF1c2JsZW5kZW4sIG51ciBkZW4gQXJ0aWtlbCBhdWZzIEJs YXR0IChnZXNjb3B0IGF1ZiBib2R5LnByaW50aW5nLAogICAgIGdlc2V0enQgdm9uIFAucHJpbnRB cnRpY2xlIC0+IHZlcnNlaGVudGxpY2hlcyBTdHJnK1AgYmxlaWJ0IFN0YW5kYXJkdmVyaGFsdGVu KS4gKi8KICBib2R5LnByaW50aW5nIC50b3BiYXIsIGJvZHkucHJpbnRpbmcgLnJhaWwtbCwgYm9k eS5wcmludGluZyAucmFpbC1yLAogIGJvZHkucHJpbnRpbmcgLmZlZWQtaGVhZCwgYm9keS5wcmlu dGluZyAuZmVlZC1zY3JvbGwsIGJvZHkucHJpbnRpbmcgLmN2LWJhciwKICBib2R5LnByaW50aW5n IC5jdi1mcmFtZSwgYm9keS5wcmludGluZyAudG9hc3QsIGJvZHkucHJpbnRpbmcgLm92ZXJsYXks CiAgYm9keS5wcmludGluZyBkaWFsb2csIGJvZHkucHJpbnRpbmcgLmNvbGxhYi1vdmVybGF5LCBi b2R5LnByaW50aW5nICNjb2xsYWItcG9wIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9Cgog IGJvZHkucHJpbnRpbmcsIGJvZHkucHJpbnRpbmcgLmFwcCwgYm9keS5wcmludGluZyAuc2hlbGws IGJvZHkucHJpbnRpbmcgLmNlbnRlciwKICBib2R5LnByaW50aW5nIC5jb250ZW50LXZpZXcgeyBk aXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgIG92 ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDsg Y29sb3I6ICMwMDAgIWltcG9ydGFudDsgfQoKICBib2R5LnByaW50aW5nIC5jdi1hcnRpY2xlIHsg ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50Owog ICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDsgcGFkZGluZzogMCAhaW1wb3J0YW50OyBt YXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfQoKICAvKiBEcnVja2ZyZXVuZGxpY2g6IGR1bmts ZSBUb2tlbnMgLT4gU2Nod2Fyei9XZWlzcywgTGlua3MgYWxzIFRleHQsIFVtYnJ1ZWNoZSBzY2hv bmVuLiAqLwogIGJvZHkucHJpbnRpbmcgLmN2LWFydGljbGUsIGJvZHkucHJpbnRpbmcgLmFydC1o ZWFkIGgxLAogIGJvZHkucHJpbnRpbmcgLmFydC1tZXRhLCBib2R5LnByaW50aW5nIC5hcnQtZGF0 ZSwgYm9keS5wcmludGluZyAuYXJ0LWJvZHkgeyBjb2xvcjogIzAwMCAhaW1wb3J0YW50OyB9CiAg Ym9keS5wcmludGluZyAuYXJ0LWJvZHkgYSB7IGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7IHRleHQt ZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CiAgYm9keS5wcmludGluZyBmaWd1cmUsIGJvZHkucHJp bnRpbmcgaW1nLCBib2R5LnByaW50aW5nIHRhYmxlLAogIGJvZHkucHJpbnRpbmcgdHIsIGJvZHku cHJpbnRpbmcgaDIsIGJvZHkucHJpbnRpbmcgaDMgeyBicmVhay1pbnNpZGU6IGF2b2lkOyBwYWdl LWJyZWFrLWluc2lkZTogYXZvaWQ7IH0KICBib2R5LnByaW50aW5nIC5wcmludC1mb290IHsgZGlz cGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDI0cHg7IHBhZGRpbmctdG9wOiA4cHg7CiAgICBib3Jk ZXItdG9wOiAxcHggc29saWQgIzk5OTsgZm9udC1zaXplOiAxMHB4OyBjb2xvcjogIzU1NTsgfQog IEBwYWdlIHsgbWFyZ2luOiAxOG1tIDE2bW07IH0KfQoKLyogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog KiAgQkFPLVBPUlRBTCDigJQgZWlnZW5zdMOkbmRpZyByZS1nZXRoZW10ZXIgVm9sbGJpbGQtQmVy ZWljaCAoIlNwcnVuZyBpbiBkaWUgQkFPIikKICogIEVyYnQgSGVsbC9EdW5rZWwgw7xiZXIgZGll IEJlc3RhbmRzLVRva2VuczsgLS1iYW8tYnJhbmQgZsOkcmJ0IGRpZSBab25lIHVtLgogKiAgS2F0 ZWdvcmllLUFremVudCBrb21tdCBkYXRlbmdldHJpZWJlbiBwZXIgSW5saW5lIC0tY2F0IGF1cyBQ T1JUQUxfQkFPLgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwpib2R5LmJhbyB7IG92ZXJmbG93OiBo aWRkZW47IH0gICAvKiBIaW50ZXJncnVuZC1TaGVsbCBydWhpZ3N0ZWxsZW4gKi8KCi5iYW8tcm9v dFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfQouYmFvLXJvb3QgewogIHBvc2l0aW9uOiBmaXhl ZDsgaW5zZXQ6IDA7IHotaW5kZXg6IDYwOwogIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9u OiBjb2x1bW47CiAgYmFja2dyb3VuZDogdmFyKC0tYmcpOyBjb2xvcjogdmFyKC0tdGV4dCk7ICAg LyogZXJidCBQb3J0YWwtQnJhbmQgKyBIZWxsL0R1bmtlbCAxOjEgKi8KICBhbmltYXRpb246IGJh by1pbiAuMnMgdmFyKC0tZWFzZS1vdXQsIGVhc2UpOwp9CkBrZXlmcmFtZXMgYmFvLWluIHsgZnJv bSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoLjk5NCk7IH0gdG8geyBvcGFjaXR5OiAx OyB0cmFuc2Zvcm06IG5vbmU7IH0gfQpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJl ZHVjZSkgeyAuYmFvLXJvb3QgeyBhbmltYXRpb246IG5vbmU7IH0gfQoKLyogLS0tLSBLb3BmemVp bGU6IGlkZW50aXNjaCB6dXIgUG9ydGFsLVRvcGJhciAoaGVsbC9vcGFrLCBCcmFuZCBhbHMgQWt6 ZW50KSAtLS0tICovCi5iYW8tdG9wIHsKICBmbGV4OiAwIDAgdmFyKC0tYmFyLWgsIDU2cHgpOyBk aXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDE0cHg7CiAgcGFkZGluZzog MCAxOHB4OwogIGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXItYm90dG9tOiAxcHggc29s aWQgdmFyKC0tbGluZSk7CiAgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAyOwp9Ci5iYW8t ZXhpdCB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDog N3B4OwogIGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXNvZnQpOyBjb2xvcjogdmFyKC0tYnJhbmQp OwogIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tYnJhbmQpIDMw JSwgdmFyKC0tbGluZSkpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOyBwYWRkaW5nOiA3 cHggMTNweDsKICBmb250OiBpbmhlcml0OyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IHZh cigtLWZzLXNtKTsgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFy KC0tZHVyLTEsIC4xNXMpIHZhcigtLWVhc2UsIGVhc2UpOwp9Ci5iYW8tZXhpdDpob3ZlciB7IGJh Y2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tYnJhbmQpIDE4JSwgdmFyKC0tYmct MikpOyB9Ci5iYW8tZXhpdCBzdmcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyB9Ci5iYW8t dGl0bGUgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBsaW5lLWhlaWdo dDogMS4xOyBjdXJzb3I6IHBvaW50ZXI7IHBhZGRpbmc6IDJweCA0cHg7IH0KLmJhby10aXRsZSBi IHsgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IGxldHRlci1zcGFjaW5nOiAuMDZlbTsgdGV4dC10 cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQpOyB9Ci5iYW8tdGl0bGUgc3Bh biB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtMnhzKTsgZm9udC13ZWlnaHQ6IDcwMDsgbGV0dGVyLXNw YWNpbmc6IC4xMmVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4 dC1mbnQpOyB9Ci5iYW8tY2F0cyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNnB4OyBtYXJnaW4tbGVm dDogNnB4OyBmbGV4LXdyYXA6IHdyYXA7IH0KLmJhby1jYXRqdW1wIHsKICBiYWNrZ3JvdW5kOiB2 YXIoLS1iZyk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7CiAgYm9yZGVyOiAxcHggc29saWQgdmFy KC0tbGluZSk7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tY2F0LCB2YXIoLS1icmFuZCkp OwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBwYWRkaW5nOiA1cHggMTBweDsgZm9udDog aW5oZXJpdDsgZm9udC1zaXplOiB2YXIoLS1mcy14cyk7IGZvbnQtd2VpZ2h0OiA2MDA7IGN1cnNv cjogcG9pbnRlcjsKfQouYmFvLWNhdGp1bXA6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1o b3YpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmJhby10b3AtcmlnaHQgeyBtYXJnaW4tbGVmdDog YXV0bzsgZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0KCi8q IC0tLS0gS29wZi1NZW7DvHM6IHdpZSAucGlsbC1idG4gLS0tLSAqLwouYmFvLW1lbnUgeyBwb3Np dGlvbjogcmVsYXRpdmU7IH0KLmJhby1tZW51LWJ0biB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7 IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OwogIGJhY2tncm91bmQ6IG5vbmU7IGNvbG9y OiB2YXIoLS10ZXh0LWRpbSk7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRl ci1yYWRpdXM6IHZhcigtLXItbWQpOwogIHBhZGRpbmc6IDdweCAxMnB4OyBmb250OiBpbmhlcml0 OyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgZm9udC13ZWlnaHQ6IDYwMDsgY3Vyc29yOiBwb2lu dGVyOwp9Ci5iYW8tbWVudS1idG46aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBj b2xvcjogdmFyKC0tdGV4dCk7IH0KLmJhby1tZW51LWJ0biBzdmcgeyB3aWR0aDogMTNweDsgaGVp Z2h0OiAxM3B4OyBvcGFjaXR5OiAuNzU7IH0KLmJhby1tZW51LXBvcCB7CiAgcG9zaXRpb246IGFi c29sdXRlOyByaWdodDogMDsgdG9wOiBjYWxjKDEwMCUgKyA2cHgpOyB6LWluZGV4OiA1OwogIG1p bi13aWR0aDogMjUwcHg7IG1heC1oZWlnaHQ6IDcwdmg7IG92ZXJmbG93LXk6IGF1dG87CiAgYmFj a2dyb3VuZDogdmFyKC0tbWF0LXBvcCwgdmFyKC0tYmctMikpOyBjb2xvcjogdmFyKC0tdGV4dCk7 CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIt bGcpOyBib3gtc2hhZG93OiB2YXIoLS1lbGV2LTIpOwogIHBhZGRpbmc6IDZweDsKfQouYmFvLW1l bnUtcG9wLndpZGUgeyBtaW4td2lkdGg6IDMyMHB4OyB9Ci5iYW8tbWVudS1wb3BbaGlkZGVuXSB7 IGRpc3BsYXk6IG5vbmU7IH0KLmJhby1tZW51LWdycCB7IHBhZGRpbmc6IDhweCAxMHB4IDRweDsg Zm9udC1zaXplOiB2YXIoLS1mcy0yeHMpOyBmb250LXdlaWdodDogNzAwOyBsZXR0ZXItc3BhY2lu ZzogLjA2ZW07CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQt Zm50KTsgfQouYmFvLW1lbnUtaXRlbSB7CiAgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlOyB0 ZXh0LWFsaWduOiBsZWZ0OyBiYWNrZ3JvdW5kOiBub25lOyBib3JkZXI6IDA7CiAgYm9yZGVyLXJh ZGl1czogdmFyKC0tci1zbSk7IHBhZGRpbmc6IDhweCAxMHB4OyBmb250OiBpbmhlcml0OyBmb250 LXNpemU6IHZhcigtLWZzLXNtKTsgY29sb3I6IHZhcigtLXRleHQpOyBjdXJzb3I6IHBvaW50ZXI7 Cn0KLmJhby1tZW51LWl0ZW0gc21hbGwgeyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiB2YXIo LS1mcy0yeHMpOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBtYXJnaW4tdG9wOiAxcHg7IH0KLmJh by1tZW51LWl0ZW06aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyB9CgovKiAtLS0t IEJvZHkgKERhc2hib2FyZCAvIFdvcmtzcGFjZSkgLS0tLSAqLwouYmFvLWJvZHkgeyBmbGV4OiAx OyBtaW4taGVpZ2h0OiAwOyBvdmVyZmxvdy15OiBhdXRvOyB9CgovKiAtLS0tIERhc2hib2FyZCAt LS0tICovCi5iYW8tZGFzaCB7IG1heC13aWR0aDogMTUwMHB4OyBtYXJnaW46IDAgYXV0bzsgcGFk ZGluZzogMjJweCAyMnB4IDYwcHg7IH0KLmJhby1jYXRzZWMgeyBtYXJnaW4tYm90dG9tOiAyNnB4 OyB9Ci5iYW8tY2F0aGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdh cDogOXB4OyBtYXJnaW46IDAgMCAxMnB4OwogIGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQpOyBmb250 LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmJhby1jYXRkb3QgeyB3aWR0aDog MTJweDsgaGVpZ2h0OiAxMnB4OyBib3JkZXItcmFkaXVzOiAzcHg7IGJhY2tncm91bmQ6IHZhcigt LWNhdCwgdmFyKC0tYnJhbmQpKTsgZmxleDogMCAwIGF1dG87IH0KLmJhby1ncmlkIHsgZGlzcGxh eTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgo MjEwcHgsIDFmcikpOyBnYXA6IDE0cHg7IH0KLmJhby1jYXJkIHsKICBkaXNwbGF5OiBmbGV4OyBm bGV4LWRpcmVjdGlvbjogY29sdW1uOyBvdmVyZmxvdzogaGlkZGVuOwogIGJhY2tncm91bmQ6IHZh cigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsKICBib3JkZXItdG9wOiAz cHggc29saWQgdmFyKC0tY2F0LCB2YXIoLS1icmFuZCkpOwogIGJvcmRlci1yYWRpdXM6IHZhcigt LXItbGcpOyBib3gtc2hhZG93OiB2YXIoLS1lbGV2LTEpOwogIHRyYW5zaXRpb246IGJveC1zaGFk b3cgLjE1cyB2YXIoLS1lYXNlLCBlYXNlKSwgdHJhbnNmb3JtIC4xNXMgdmFyKC0tZWFzZSwgZWFz ZSk7Cn0KLmJhby1jYXJkOmhvdmVyIHsgYm94LXNoYWRvdzogdmFyKC0tZWxldi0yKTsgdHJhbnNm b3JtOiB0cmFuc2xhdGVZKC0ycHgpOyB9Ci5iYW8tY2FyZC1oZWFkIHsKICBwYWRkaW5nOiAxMnB4 IDE0cHg7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxp bmUpOwogIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY2F0LCB2YXIoLS1i cmFuZCkpIDklLCB2YXIoLS1iZy0yKSk7Cn0KLmJhby1jYXJkLWhlYWQgc3Ryb25nIHsgZm9udC1z aXplOiB2YXIoLS1mcy1iYXNlKTsgY29sb3I6IHZhcigtLXRleHQpOyB9Ci5iYW8tY2FyZC1oZWFk OmhvdmVyIHN0cm9uZyB7IGNvbG9yOiB2YXIoLS1jYXQsIHZhcigtLWJyYW5kKSk7IH0KLmJhby1j YXJkLWRvY3MgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBwYWRkaW5n OiA3cHg7IGdhcDogMnB4OyB9Ci5iYW8tY2FyZC1kb2MgewogIHRleHQtYWxpZ246IGxlZnQ7IGJh Y2tncm91bmQ6IG5vbmU7IGJvcmRlcjogMDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7CiAg cGFkZGluZzogN3B4IDlweDsgZm9udDogaW5oZXJpdDsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7 IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsKfQouYmFvLWNhcmQtZG9j OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92KTsgY29sb3I6IHZhcigtLXRleHQpOyB9 Ci5iYW8tY2FyZC1kb2MuaXMtZGVmYXVsdCB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgZm9udC13ZWln aHQ6IDYwMDsgfQouYmFvLWNhcmQtZG9jLmlzLWRlZmF1bHQ6OmJlZm9yZSB7IGNvbnRlbnQ6ICIi OyB9CgovKiAtLS0tIFdvcmtzcGFjZSAtLS0tICovCi5iYW8td3MgeyBkaXNwbGF5OiBncmlkOyBn cmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI2NHB4IDFmcjsgaGVpZ2h0OiAxMDAlOyBtaW4taGVpZ2h0 OiAwOyB9Ci5iYW8td3MtbmF2IHsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tbGluZSk7 IGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyBvdmVyZmxvdy15OiBhdXRvOwogIGRpc3BsYXk6IGZs ZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IHBhZGRpbmc6IDEycHggMTBweCAyNHB4OyB9Ci5i YW8td3MtYmFjayB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7 IGdhcDogNnB4OyBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogIGJhY2tncm91bmQ6IG5vbmU7IGJv cmRlcjogMDsgcGFkZGluZzogNXB4IDZweDsgZm9udDogaW5oZXJpdDsgZm9udC1zaXplOiB2YXIo LS1mcy1zbSk7CiAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgY3Vyc29yOiBwb2ludGVyOyBib3Jk ZXItcmFkaXVzOiB2YXIoLS1yLXNtKTsKfQouYmFvLXdzLWJhY2s6aG92ZXIgeyBiYWNrZ3JvdW5k OiB2YXIoLS1iZy1ob3YpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmJhby13cy1iYWNrIHN2ZyB7 IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7IH0KLmJhby13cy10aXRsZSB7IG1hcmdpbjogMTBw eCA2cHggMTJweDsgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IGZvbnQtd2VpZ2h0OiA3MDA7CiAg Y29sb3I6IHZhcigtLXRleHQpOyBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWNhdCwgdmFy KC0tYnJhbmQpKTsgcGFkZGluZy1sZWZ0OiA5cHg7IH0KLmJhby1kb2NsaXN0IHsgZGlzcGxheTog ZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAycHg7IH0KLmJhby1kb2NsaXN0LWdy cCB7IHBhZGRpbmc6IDEwcHggOHB4IDNweDsgZm9udC1zaXplOiB2YXIoLS1mcy0yeHMpOyBmb250 LXdlaWdodDogNzAwOyBsZXR0ZXItc3BhY2luZzogLjA2ZW07CiAgdGV4dC10cmFuc2Zvcm06IHVw cGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgfQouYmFvLWRvYyB7CiAgZGlzcGxheTog ZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA5cHg7IHRleHQtYWxpZ246IGxlZnQ7CiAg YmFja2dyb3VuZDogbm9uZTsgYm9yZGVyOiAwOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXNtKTsg cGFkZGluZzogOHB4IDEwcHg7CiAgZm9udDogaW5oZXJpdDsgZm9udC1zaXplOiB2YXIoLS1mcy1z bSk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsKfQouYmFvLWRvYyBz bWFsbCB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IHZhcigtLWZzLTJ4cyk7IGNvbG9yOiB2 YXIoLS10ZXh0LWZudCk7IGZvbnQtd2VpZ2h0OiA0MDA7IH0KLmJhby1kb2M6aG92ZXIgeyBiYWNr Z3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmJhby1kb2MuYWN0 aXZlIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jYXQsIHZhcigtLWJy YW5kKSkgMTQlLCB2YXIoLS1iZy0yKSk7CiAgY29sb3I6IHZhcigtLXRleHQpOyBmb250LXdlaWdo dDogNjAwOyBib3gtc2hhZG93OiBpbnNldCAzcHggMCAwIHZhcigtLWNhdCwgdmFyKC0tYnJhbmQp KTsgfQouYmFvLWRvYy1pYyB7IGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IGNv bG9yOiB2YXIoLS1jYXQsIHZhcigtLWJyYW5kKSk7IGZsZXg6IDAgMCBhdXRvOyB9Ci5iYW8tZG9j LWljIHN2ZyB7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IH0KCi5iYW8td3MtbWFpbiB7IG1p bi13aWR0aDogMDsgbWluLWhlaWdodDogMDsgb3ZlcmZsb3cteTogYXV0bzsgZGlzcGxheTogZmxl eDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IH0KCi8q IFBERi1BbnplaWdlICovCi5iYW8tZG9jYmFyIHsgZmxleDogMCAwIGF1dG87IGRpc3BsYXk6IGZs ZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsgcGFkZGluZzogOXB4IDE2cHg7CiAg YmFja2dyb3VuZDogdmFyKC0tYmctMik7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1s aW5lKTsgfQouYmFvLWRvY2Jhci10IHsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiB2YXIo LS1mcy1zbSk7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQouYmFvLWRvY2Jhci1wYXRoIHsgZm9udC1z aXplOiB2YXIoLS1mcy0yeHMpOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBvdmVyZmxvdzogaGlk ZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQouYmFv LWRvY2Jhci1vcGVuIHsgbWFyZ2luLWxlZnQ6IGF1dG87IGZsZXg6IDAgMCBhdXRvOyB9Ci5iYW8t cGRmIHsgZmxleDogMTsgd2lkdGg6IDEwMCU7IGJvcmRlcjogMDsgYmFja2dyb3VuZDogIzUyNTY1 OTsgbWluLWhlaWdodDogMDsgfQoKLyogQXJ0aWtlbC1BbnplaWdlIChuYXRpdjsgbnV0enQgY3Yt YXJ0aWNsZS1UeXBvKSAqLwouYmFvLWFydGljbGUgeyBtYXgtd2lkdGg6IHZhcigtLXJlYWQsIDc0 Y2gpOyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMzBweCAyOHB4IDY0cHg7IHdpZHRoOiAxMDAl OyB9Ci5iYW8tYXJ0aWNsZSBoMSB7IG1hcmdpbjogMCAwIDE4cHg7IGZvbnQtc2l6ZTogdmFyKC0t ZnMteGwpOyBsaW5lLWhlaWdodDogMS4yOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmJhby1hcnQt Y3R4IHsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiB2 YXIoLS10ZXh0LWZudCk7IG1hcmdpbi1sZWZ0OiA4cHg7IH0KLmJhby1hcnQtYm9keSB7IGZvbnQt c2l6ZTogdmFyKC0tZnMtYmFzZSk7IGxpbmUtaGVpZ2h0OiAxLjc7IGNvbG9yOiB2YXIoLS10ZXh0 KTsgfQouYmFvLWFydC1taXNzaW5nIHsgcGFkZGluZzogMThweDsgYm9yZGVyOiAxcHggZGFzaGVk IHZhcigtLWxpbmUtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOwogIGNvbG9yOiB2YXIo LS10ZXh0LWRpbSk7IGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyB9CgovKiBBcnRpa2VsLUluaGFs dHMtVHlwb2dyYWZpZSAoZWlnZW5lLCBkYSAuY3YtYXJ0aWNsZSBkaXNwbGF5Om5vbmUgdG9nZ2Vs dCkgKi8KLmJhby1hcnQtYm9keSA+IDpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDA7IH0KLmJh by1hcnQtYm9keSBwIHsgbWFyZ2luOiAwIDAgLjllbTsgfQouYmFvLWFydC1ib2R5IGgyIHsgZm9u dC1zaXplOiB2YXIoLS1mcy1sZyk7IG1hcmdpbjogMS40ZW0gMCAuNGVtOyBsaW5lLWhlaWdodDog MS4yNTsgfQouYmFvLWFydC1ib2R5IGgzIHsgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IG1hcmdp bjogMS4yZW0gMCAuMzVlbTsgbGluZS1oZWlnaHQ6IDEuMzsgfQouYmFvLWFydC1ib2R5IGg0IHsg Zm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsgbWFyZ2luOiAxLjFlbSAwIC4zZW07IGZvbnQtd2Vp Z2h0OiA3MDA7IH0KLmJhby1hcnQtYm9keSB1bCwgLmJhby1hcnQtYm9keSBvbCB7IHBhZGRpbmct bGVmdDogMS40ZW07IG1hcmdpbjogMCAwIC45ZW07IH0KLmJhby1hcnQtYm9keSBsaSB7IG1hcmdp bjogLjJlbSAwOyB9Ci5iYW8tYXJ0LWJvZHkgYSB7IGNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLmJh by1hcnQtYm9keSBibG9ja3F1b3RlIHsgbWFyZ2luOiAwIDAgLjllbTsgcGFkZGluZzogNnB4IDE0 cHg7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tbGluZS0yKTsgY29sb3I6IHZhcigtLXRl eHQtZGltKTsgfQouYmFvLWFydC1ib2R5IGhyIHsgYm9yZGVyOiAwOyBib3JkZXItdG9wOiAxcHgg c29saWQgdmFyKC0tbGluZSk7IG1hcmdpbjogMS40ZW0gMDsgfQouYmFvLWFydC1ib2R5IGZpZ3Vy ZSB7IG1hcmdpbjogMWVtIDA7IH0KLmJhby1hcnQtYm9keSBmaWd1cmUuZW1iZWQuaW1nIHsgdGV4 dC1hbGlnbjogY2VudGVyOyB9Ci5iYW8tYXJ0LWJvZHkgaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBo ZWlnaHQ6IGF1dG87IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyB9Ci5iYW8tYXJ0LWJvZHkg dGFibGUgeyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyB3aWR0aDogMTAwJTsgbWFyZ2luOiAw IDAgMWVtOyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgfQouYmFvLWFydC1ib2R5IHRoLCAuYmFv LWFydC1ib2R5IHRkIHsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgcGFkZGluZzog NnB4IDlweDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcDsgfQouYmFvLWFy dC1ib2R5IHRoIHsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGZvbnQtd2VpZ2h0OiA3MDA7IH0K Ci8qIFN0YW5kYXJkLcOcYmVyc2ljaHQ6IEhhdXB0IChFcmtsw6RydW5nKSArIHJlY2h0ZSBTcGFs dGUgKEdydW5kc8OkdHplICsgQ2hlY2tsaXN0ZSkgKi8KLmJhby1kYXNoMyB7IGRpc3BsYXk6IGdy aWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsMS40NWZyKSBtaW5tYXgoMzMwcHgs MWZyKTsgZ2FwOiAxOHB4OwogIGFsaWduLWl0ZW1zOiBzdGFydDsgcGFkZGluZzogMjJweCBjbGFt cCgxNnB4LDIuNXZ3LDMycHgpIDQ4cHg7IGhlaWdodDogMTAwJTsgYm94LXNpemluZzogYm9yZGVy LWJveDsgb3ZlcmZsb3c6IGF1dG87IH0KLmJhby1kYXNoLW1haW4geyBtaW4td2lkdGg6IDA7IGJh Y2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsKICBi b3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtKTsg cGFkZGluZzogOHB4IGNsYW1wKDE0cHgsMnZ3LDI2cHgpIDI0cHg7IH0KLmJhby1kYXNoLW1haW4g LmJhby1hcnRpY2xlIHsgbWF4LXdpZHRoOiBub25lOyBwYWRkaW5nOiAxOHB4IDAgMDsgfQouYmFv LWRhc2gtc2lkZSB7IG1pbi13aWR0aDogMDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246 IGNvbHVtbjsgZ2FwOiAxOHB4OyB9Ci5iYW8tZGFzaC1jYXJkIHsgYmFja2dyb3VuZDogdmFyKC0t YmctMik7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiB2YXIo LS1yLWxnKTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc20pOyBvdmVyZmxvdzogaGlkZGVu OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9Ci5iYW8tZGFzaC1jYXJk LWggeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgcGFkZGlu ZzogMTBweCAxNHB4OwogIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYmFj a2dyb3VuZDogdmFyKC0tYmctMyk7CiAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGZvbnQtd2Vp Z2h0OiA3MDA7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQouYmFvLWRhc2gtY2FyZC1oIC5iYW8tZG9j LWljIHN2ZyB7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7IH0KLmJhby1kYXNoLW9wZW4geyBt YXJnaW4tbGVmdDogYXV0bzsgZmxleDogMCAwIGF1dG87IH0KLmJhby1kYXNoLWNhcmQtYiB7IHBh ZGRpbmc6IDEycHggMTRweDsgb3ZlcmZsb3c6IGF1dG87IH0KLmJhby1kYXNoLWNhcmQtYiAuYmFv LWFydC1ib2R5IHsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGxpbmUtaGVpZ2h0OiAxLjU1OyB9 Ci5iYW8tZGFzaC1jYXJkLXBkZiB7IGZsZXg6IDEgMSBhdXRvOyBtaW4taGVpZ2h0OiA0ODBweDsg fQouYmFvLWRhc2gtcGRmIHsgZmxleDogMTsgd2lkdGg6IDEwMCU7IGJvcmRlcjogMDsgYmFja2dy b3VuZDogIzUyNTY1OTsgbWluLWhlaWdodDogNDYwcHg7IH0KCkBtZWRpYSAobWF4LXdpZHRoOiAx MTAwcHgpIHsgLmJhby1kYXNoMyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9IC5iYW8t ZGFzaC1jYXJkLXBkZiB7IG1pbi1oZWlnaHQ6IDcwdmg7IH0gfQoKQG1lZGlhIChtYXgtd2lkdGg6 IDc2MHB4KSB7CiAgLmJhby13cyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9CiAgLmJh by13cy1uYXYgeyBib3JkZXItcmlnaHQ6IDA7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIo LS1saW5lKTsgbWF4LWhlaWdodDogMzh2aDsgfQogIC5iYW8tY2F0cyB7IGRpc3BsYXk6IG5vbmU7 IH0KfQoK ### FILE: assets/img/polizeistern.png | 66191 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 Z6wAAAAASUVORK5CYII= ### FILE: assets/img/portal-readme.png | 65112 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 S3vbk1VgAAAAAElFTkSuQmCC ### FILE: assets/img/portal.png | 17193 iVBORw0KGgoAAAANSUhEUgAAAL4AAABJCAYAAACD45w8AAAGFWlUWHRYTUw6Y29tLmFkb2JlLnht cAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi Pz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUg NS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIy LXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1s bnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczpwaG90b3No b3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICB4bWxuczp0aWZmPSJo dHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFk b2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOmV4aWZFWD0iaHR0cDovL2NpcGEuanAvZXhpZi8x LjAvIgogICAgeG1sbnM6YXV4PSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wL2F1eC8iCiAg IGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgZXhpZjpEYXRlVGltZU9yaWdpbmFsPSIyMDE4LTEyLTI5 VDEwOjU3OjIzIgogICBleGlmOkV4aWZWZXJzaW9uPSIwMjIxIgogICBleGlmOkZsYXNocGl4VmVy c2lvbj0iMDEwMCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjIxMDAiCiAgIGV4aWY6UGl4ZWxZ RGltZW5zaW9uPSI4MDciCiAgIGV4aWY6U2NlbmVDYXB0dXJlVHlwZT0iMCIKICAgcGhvdG9zaG9w OkRhdGVDcmVhdGVkPSIyMDE4LTEyLTI5VDEwOjU3OjIzIgogICB0aWZmOkNvbXByZXNzaW9uPSI2 IgogICB0aWZmOkltYWdlTGVuZ3RoPSI4MDciCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMjEwMCIKICAg dGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIKICAgdGlmZjpYUmVzb2x1dGlvbj0iNzIvMSIKICAgdGlm ZjpZQ2JDclBvc2l0aW9uaW5nPSIxIgogICB0aWZmOllSZXNvbHV0aW9uPSI3Mi8xIgogICB4bXA6 Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBNaXggMi44LjEiCiAgIGV4aWZFWDpMZW5zTW9k ZWw9IiIKICAgYXV4OkxlbnM9IiI+CiAgIDxleGlmOkNvbXBvbmVudHNDb25maWd1cmF0aW9uPgog ICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaT4xPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4yPC9yZGY6 bGk+CiAgICAgPHJkZjpsaT4zPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4wPC9yZGY6bGk+CiAgICA8 L3JkZjpTZXE+CiAgIDwvZXhpZjpDb21wb25lbnRzQ29uZmlndXJhdGlvbj4KICAgPHRpZmY6Qml0 c1BlclNhbXBsZT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGk+ODwvcmRmOmxpPgogICAgPC9y ZGY6U2VxPgogICA8L3RpZmY6Qml0c1BlclNhbXBsZT4KICAgPHRpZmY6WUNiQ3JTdWJTYW1wbGlu Zz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGk+MjwvcmRmOmxpPgogICAgIDxyZGY6bGk+Mjwv cmRmOmxpPgogICAgPC9yZGY6U2VxPgogICA8L3RpZmY6WUNiQ3JTdWJTYW1wbGluZz4KICA8L3Jk ZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InIi Pz7+3PLrAAABhGlDQ1BzUkdCIElFQzYxOTY2LTIuMQAAKJF1kc0rRFEYh5+ZIfLRKBYWFjdhNTRD iY0yk4aSNEb52sxc86HmztzuvdJkq2ynKLHxteAvYKuslSJSsrGxJjZM13tnpkbinM77Pv3Oed/O +R1wRzOqZtb4QctaRiQcVObmF5S6Zzy00UIfnphq6qPT05P8Oz7ucDn5ptfp9f+5P0fjcsJUwVUv PKLqhiU8Ljy5ZukObwu3qenYsvCpsM+QCwrfOnq8zC8Op8r85bARjYTA3SKspH5w/AeraUMTlpfT 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 ### FILE: assets/js/admin/historie.js | 7410 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgYWRtaW4vaGlzdG9yaWUuanMgIChQ aGFzZSA1KQogICBBZG1pbi1XZXJremV1ZzogVmVyc2lvbnMtSGlzdG9yaWUgZGVyIHZlcsO2ZmZl bnRsaWNodGVuIERhdGVuZGF0ZWllbgogICAoZGF0YS1jb250ZW50LmpzIC8gZGF0YS1uYXYuanMg LyBBcnRpa2VsLUhUTUwpLiBaZWlndCBqZSBEYXRlaSBlaW5lCiAgIFplaXRsZWlzdGUgZGVyIFNu YXBzaG90cywgZWluZW4gRGlmZiAod2FzIGVpbmUgV2llZGVyaGVyc3RlbGx1bmcgw6RuZGVybgog ICB3w7xyZGUpIHVuZCBzdGVsbHQgZWluZW4gZnLDvGhlcmVuIFN0YW5kIHdpZWRlciBoZXIuCgog ICBTZXJ2ZXI6IEdFVCAvYXBpL2hpc3RvcnlbP3RhcmdldD1dIMK3IEdFVCAvYXBpL2hpc3Rvcnkv PGlkPiDCtwogICAgICAgICAgIFBPU1QgL2FwaS9oaXN0b3J5L3Jlc3RvcmUge2lkfSAgIOKAlCBh bGxlIGFkbWluLW9ubHkgKDQwMyBzb25zdCkuCiAgIE51ciBpbSBQZmxlZ2UtTW9kdXMgYWxzIEFk bWluIHNpbm52b2xsOyBMZXNlciBsYWRlbiBkYXMgbmllIGF1ZnJ1ZmJhci4KICAgPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgZWwgPSBQLmVsLCAk ID0gUC4kLCBpYyA9IFAuaWMsIGVzYyA9IFAuZXNjYXBlSHRtbDsKCiAgLy8gU3ByZWNoZW5kZSBC ZXplaWNobnVuZyBmw7xyIGVpbiBQdWJsaXNoLVppZWwuCiAgZnVuY3Rpb24gdGFyZ2V0TGFiZWwo dCkgewogICAgaWYgKHQgPT09ICJhc3NldHMvanMvZGF0YS1jb250ZW50LmpzIikgcmV0dXJuICJJ bmhhbHRlIChNZWxkdW5nZW4gwrcgQXJ0aWtlbC1EYXRlbiDCtyBQYW5lbHMgwrcgTGFnZSkiOwog ICAgaWYgKHQgPT09ICJhc3NldHMvanMvZGF0YS1uYXYuanMiKSByZXR1cm4gIk5hdmlnYXRpb24i OwogICAgdmFyIG0gPSAvKFteL10rKVwuaHRtbCQvLmV4ZWModCB8fCAiIik7CiAgICBpZiAobSkg cmV0dXJuICJBcnRpa2VsOiAiICsgbVsxXTsKICAgIHJldHVybiB0IHx8ICIodW5iZWthbm50KSI7 CiAgfQogIGZ1bmN0aW9uIGFjdExhYmVsKGEpIHsgcmV0dXJuIGEgPT09ICJyZXN0b3JlIiA/ICJX aWVkZXJoZXJzdGVsbHVuZyIgOiAiVmVyw7ZmZmVudGxpY2h0IjsgfQoKICBmdW5jdGlvbiBmbXRU cyhzKSB7CiAgICBpZiAoIXMpIHJldHVybiAiIjsKICAgIHZhciBkID0gbmV3IERhdGUoU3RyaW5n KHMpLnJlcGxhY2UoIiAiLCAiVCIpKTsKICAgIGlmIChpc05hTihkLmdldFRpbWUoKSkpIHJldHVy biBTdHJpbmcocyk7CiAgICByZXR1cm4gZC50b0xvY2FsZVN0cmluZygiZGUtREUiLCB7IGRheTog IjItZGlnaXQiLCBtb250aDogIjItZGlnaXQiLCB5ZWFyOiAibnVtZXJpYyIsIGhvdXI6ICIyLWRp Z2l0IiwgbWludXRlOiAiMi1kaWdpdCIgfSk7CiAgfQoKICBQLm9wZW5IaXN0b3J5ID0gZnVuY3Rp b24gKCkgewogICAgaWYgKFAucm9sZSAhPT0gImFkbWluIikgeyBQLnRvYXN0KCJWZXJzaW9ucy1I aXN0b3JpZSBpc3QgQWRtaW5zIHZvcmJlaGFsdGVuLiIpOyByZXR1cm47IH0KICAgIFAubW9kYWwo ewogICAgICB0aXRsZTogIlZlcnNpb25lbiAmIFdpZWRlcmhlcnN0ZWxsZW4iLCBpY29uOiAiY2xv Y2siLCBzaXplOiAieGwiLAogICAgICBib2R5OiBmdW5jdGlvbiAoaG9zdCkgewogICAgICAgIGhv c3QuY2xhc3NMaXN0LmFkZCgiaGlzdC1ib2R5Iik7CiAgICAgICAgdmFyIGdyaWQgPSBlbCgiZGl2 IiwgeyBjbGFzczogImhpc3QtZ3JpZCIgfSk7CiAgICAgICAgdmFyIGxpc3QgPSBlbCgiZGl2Iiwg eyBjbGFzczogImhpc3QtbGlzdCIsIGlkOiAiaGlzdC1saXN0IiB9LCBbZWwoImRpdiIsIHsgY2xh c3M6ICJtdXRlZCIsIHRleHQ6ICJMYWRlIEhpc3Rvcmll4oCmIiB9KV0pOwogICAgICAgIHZhciBw YW5lID0gZWwoImRpdiIsIHsgY2xhc3M6ICJoaXN0LXBhbmUiLCBpZDogImhpc3QtcGFuZSIgfSwg W2VsKCJkaXYiLCB7IGNsYXNzOiAiaGlzdC1wYW5lLWVtcHR5IG11dGVkIiwgdGV4dDogIkxpbmtz IGVpbmVuIFN0YW5kIHfDpGhsZW4sIHVtIGRlbiBVbnRlcnNjaGllZCB6dW0gYWt0dWVsbGVuIFN0 YW5kIHp1IHNlaGVuLiIgfSldKTsKICAgICAgICBncmlkLmFwcGVuZENoaWxkKGxpc3QpOyBncmlk LmFwcGVuZENoaWxkKHBhbmUpOwogICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQoZ3JpZCk7CiAgICAg ICAgaG9zdC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImhpc3QtZm9vdC1oaW50IG11 dGVkIiwgaWQ6ICJoaXN0LWZvb3QiIH0pKTsKCiAgICAgICAgZmV0Y2goIi9hcGkvaGlzdG9yeSIp LnRoZW4oZnVuY3Rpb24gKHIpIHsKICAgICAgICAgIGlmIChyLnN0YXR1cyA9PT0gNDAzKSB0aHJv dyBuZXcgRXJyb3IoIjQwMyIpOwogICAgICAgICAgcmV0dXJuIHIuanNvbigpOwogICAgICAgIH0p LnRoZW4oZnVuY3Rpb24gKGopIHsKICAgICAgICAgIGlmICghaiB8fCAhai5vaykgdGhyb3cgbmV3 IEVycm9yKCJsb2FkIik7CiAgICAgICAgICByZW5kZXJMaXN0KGouaXRlbXMgfHwgW10sIGoubGlt aXRzIHx8IHt9KTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZSkgewogICAgICAgICAgbGlz dC5pbm5lckhUTUwgPSAiIjsKICAgICAgICAgIGxpc3QuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsg Y2xhc3M6ICJtdXRlZCIsIHRleHQ6IGUubWVzc2FnZSA9PT0gIjQwMyIgPyAiS2VpbmUgQWRtaW4t UmVjaHRlLiIgOiAiSGlzdG9yaWUgbmljaHQgbGFkYmFyLiIgfSkpOwogICAgICAgIH0pOwogICAg ICB9LAogICAgICBhY3Rpb25zOiBbeyBsYWJlbDogIlNjaGxpZcOfZW4iLCBraW5kOiAiZ2hvc3Qi IH1dCiAgICB9KTsKICB9OwoKICBmdW5jdGlvbiByZW5kZXJMaXN0KGl0ZW1zLCBsaW1pdHMpIHsK ICAgIHZhciBsaXN0ID0gJCgiI2hpc3QtbGlzdCIpOyBpZiAoIWxpc3QpIHJldHVybjsKICAgIGxp c3QuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIgZm9vdCA9ICQoIiNoaXN0LWZvb3QiKTsKICAgIGlm IChmb290KSBmb290LnRleHRDb250ZW50ID0gaXRlbXMubGVuZ3RoCiAgICAgID8gKGl0ZW1zLmxl bmd0aCArICIgU3TDpG5kZSDCtyBBdWZiZXdhaHJ1bmcgIiArIChsaW1pdHMucHJ1bmVEYXlzIHx8 IDkwKSArICIgVGFnZSAvIG1heC4gIiArIChsaW1pdHMubWF4UGVyVGFyZ2V0IHx8IDUwKSArICIg amUgRGF0ZWkiKQogICAgICA6ICIiOwogICAgaWYgKCFpdGVtcy5sZW5ndGgpIHsgbGlzdC5hcHBl bmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogIm11dGVkIiwgdGV4dDogIk5vY2gga2VpbmUgVmVy c2lvbmVuIHZvcmhhbmRlbiDigJQgc2llIGVudHN0ZWhlbiBhYiBkZW0gbsOkY2hzdGVuIFZlcsO2 ZmZlbnRsaWNoZW4uIiB9KSk7IHJldHVybjsgfQoKICAgIC8vIG5hY2ggWmllbCBncnVwcGllcmVu LCBSZWloZW5mb2xnZSBuYWNoIGrDvG5nc3RlbSBFaW50cmFnIGplIFppZWwKICAgIHZhciBncm91 cHMgPSB7fSwgb3JkZXIgPSBbXTsKICAgIGl0ZW1zLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAg ICAgdmFyIHQgPSBlLnRhcmdldCB8fCAiKHVuYmVrYW5udCkiOwogICAgICBpZiAoIWdyb3Vwc1t0 XSkgeyBncm91cHNbdF0gPSBbXTsgb3JkZXIucHVzaCh0KTsgfQogICAgICBncm91cHNbdF0ucHVz aChlKTsKICAgIH0pOwogICAgb3JkZXIuZm9yRWFjaChmdW5jdGlvbiAodCkgewogICAgICBsaXN0 LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiaGlzdC1ncnAtaCIsIHRleHQ6IHRhcmdl dExhYmVsKHQpIH0pKTsKICAgICAgZ3JvdXBzW3RdLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAg ICAgICB2YXIgcm93ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJoaXN0LWl0ZW0iLCAiZGF0YS1pZCI6 IGUuaWQgfSwgWwogICAgICAgICAgZWwoImRpdiIsIHsgY2xhc3M6ICJoaXN0LWl0ZW0tdG9wIiB9 LCBbCiAgICAgICAgICAgIGVsKCJzcGFuIiwgeyBjbGFzczogImhpc3QtYWN0ICIgKyAoZS5hY3Rp b24gPT09ICJyZXN0b3JlIiA/ICJyZXN0b3JlIiA6ICJwdWJsaXNoIiksIHRleHQ6IGFjdExhYmVs KGUuYWN0aW9uKSB9KSwKICAgICAgICAgICAgZWwoInNwYW4iLCB7IGNsYXNzOiAiaGlzdC13aGVu IiwgdGV4dDogZm10VHMoZS50cykgfSkKICAgICAgICAgIF0pLAogICAgICAgICAgZWwoImRpdiIs IHsgY2xhc3M6ICJoaXN0LWl0ZW0tc3ViIiwgdGV4dDogKGUubmFtZSB8fCBlLnVzZXIgfHwgIiIp ICsgKGUubm90ZSA/ICIgwrcgIiArIGUubm90ZSA6ICIiKSArICh0eXBlb2YgZS5ieXRlcyA9PT0g Im51bWJlciIgPyAiIMK3ICIgKyBmbXRCeXRlcyhlLmJ5dGVzKSA6ICIiKSB9KQogICAgICAgIF0p OwogICAgICAgIHJvdy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsgc2Vs ZWN0RW50cnkoZSwgcm93KTsgfSk7CiAgICAgICAgbGlzdC5hcHBlbmRDaGlsZChyb3cpOwogICAg ICB9KTsKICAgIH0pOwogIH0KICBmdW5jdGlvbiBmbXRCeXRlcyhuKSB7IHJldHVybiBuIDwgMTAy NCA/IG4gKyAiIEIiIDogbiA8IDEwNDg1NzYgPyAobiAvIDEwMjQpLnRvRml4ZWQoMSkgKyAiIEtC IiA6IChuIC8gMTA0ODU3NikudG9GaXhlZCgxKSArICIgTUIiOyB9CgogIGZ1bmN0aW9uIHNlbGVj dEVudHJ5KGUsIHJvdykgewogICAgUC4kJCgiLmhpc3QtaXRlbS5zZWwiKS5mb3JFYWNoKGZ1bmN0 aW9uICh4KSB7IHguY2xhc3NMaXN0LnJlbW92ZSgic2VsIik7IH0pOwogICAgaWYgKHJvdykgcm93 LmNsYXNzTGlzdC5hZGQoInNlbCIpOwogICAgdmFyIHBhbmUgPSAkKCIjaGlzdC1wYW5lIik7IGlm ICghcGFuZSkgcmV0dXJuOwogICAgcGFuZS5pbm5lckhUTUwgPSAiIjsKICAgIHBhbmUuYXBwZW5k Q2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJoaXN0LXBhbmUtaGVhZCIgfSwgWwogICAgICBlbCgi ZGl2IiwgeyBjbGFzczogImhpc3QtcGFuZS10IiwgdGV4dDogdGFyZ2V0TGFiZWwoZS50YXJnZXQp IH0pLAogICAgICBlbCgiZGl2IiwgeyBjbGFzczogImhpc3QtcGFuZS1zIG11dGVkIiwgdGV4dDog YWN0TGFiZWwoZS5hY3Rpb24pICsgIiDCtyAiICsgZm10VHMoZS50cykgKyAiIMK3ICIgKyAoZS5u YW1lIHx8IGUudXNlciB8fCAiIikgfSkKICAgIF0pKTsKICAgIHZhciBkaWZmSG9zdCA9IGVsKCJk aXYiLCB7IGNsYXNzOiAiZGlmZi12aWV3IiwgaWQ6ICJoaXN0LWRpZmYiIH0sIFtlbCgiZGl2Iiwg eyBjbGFzczogIm11dGVkIiwgdGV4dDogIlZlcmdsZWljaGUgbWl0IGFrdHVlbGxlbSBTdGFuZOKA piIgfSldKTsKICAgIHBhbmUuYXBwZW5kQ2hpbGQoZGlmZkhvc3QpOwogICAgdmFyIGZvb3QgPSBl bCgiZGl2IiwgeyBjbGFzczogImhpc3QtcGFuZS1mb290IiB9KTsKICAgIHZhciBidG4gPSBlbCgi YnV0dG9uIiwgeyBjbGFzczogImJ0biBwcmltYXJ5IiwgaHRtbDogaWMoImRvd25sb2FkIikgKyAi IERpZXNlbiBTdGFuZCB3aWVkZXJoZXJzdGVsbGVuIiwKICAgICAgb25jbGljazogZnVuY3Rpb24g KCkgeyBkb1Jlc3RvcmUoZSk7IH0gfSk7CiAgICBmb290LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwg eyBjbGFzczogIm11dGVkIiwgdGV4dDogIkRlciBha3R1ZWxsZSBTdGFuZCB3aXJkIHZvcmhlciBn ZXNpY2hlcnQgKHLDvGNrbmVobWJhcikuIiB9KSk7CiAgICBmb290LmFwcGVuZENoaWxkKGVsKCJz cGFuIiwgeyBzdHlsZTogImZsZXg6MSIgfSkpOwogICAgZm9vdC5hcHBlbmRDaGlsZChidG4pOwog ICAgcGFuZS5hcHBlbmRDaGlsZChmb290KTsKCiAgICAvLyBTbmFwc2hvdC1JbmhhbHQgKyBha3R1 ZWxsZW4gRGF0ZWktSW5oYWx0IGhvbGVuLCBkYW5uIERpZmYgcmVuZGVybi4KICAgIHZhciBzbmFw UCA9IGZldGNoKCIvYXBpL2hpc3RvcnkvIiArIGVuY29kZVVSSUNvbXBvbmVudChlLmlkKSkudGhl bihmdW5jdGlvbiAocikgeyByZXR1cm4gci5qc29uKCk7IH0pOwogICAgdmFyIGN1clAgPSBmZXRj aCgiLyIgKyBlLnRhcmdldCArICI/dD0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCkpLnRoZW4oZnVu Y3Rpb24gKHIpIHsgcmV0dXJuIHIub2sgPyByLnRleHQoKSA6ICIiOyB9KS5jYXRjaChmdW5jdGlv biAoKSB7IHJldHVybiAiIjsgfSk7CiAgICBQcm9taXNlLmFsbChbc25hcFAsIGN1clBdKS50aGVu KGZ1bmN0aW9uIChyZXMpIHsKICAgICAgdmFyIHNuYXAgPSByZXNbMF0sIGN1ciA9IHJlc1sxXTsK ICAgICAgaWYgKCFzbmFwIHx8ICFzbmFwLm9rKSB7IGRpZmZIb3N0LmlubmVySFRNTCA9ICIiOyBk aWZmSG9zdC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogIm11dGVkIiwgdGV4dDogIlNu YXBzaG90IG5pY2h0IGxhZGJhci4iIH0pKTsgcmV0dXJuOyB9CiAgICAgIHZhciBkaWZmID0gUC5k aWZmTGluZXMoY3VyLCBzbmFwLnRleHQpOyAgICAgLy8gY3VycmVudCAtPiBzbmFwc2hvdDogJysn ID0gd8O8cmRlIHp1csO8Y2trb21tZW4sICctJyA9IGVudGbDpGxsdAogICAgICBpZiAoUC5yZW5k ZXJEaWZmKSBQLnJlbmRlckRpZmYoZGlmZkhvc3QsIGRpZmYpOwogICAgfSk7CiAgfQoKICBmdW5j dGlvbiBkb1Jlc3RvcmUoZSkgewogICAgUC5jb25maXJtKCLigJ4iICsgdGFyZ2V0TGFiZWwoZS50 YXJnZXQpICsgIuKAnCBhdWYgZGVuIFN0YW5kIHZvbSAiICsgZm10VHMoZS50cykgKyAiIHp1csO8 Y2tzZXR6ZW4/XG5cbkRlciBha3R1ZWxsZSBTdGFuZCB3aXJkIHZvcmhlciBhbHMgbmV1ZXIgVmVy c2lvbnNwdW5rdCBnZXNpY2hlcnQuIiwgZnVuY3Rpb24gKCkgewogICAgICBQLnRvYXN0KCJTdGVs bGUgd2llZGVyIGhlcuKApiIpOwogICAgICBmZXRjaCgiL2FwaS9oaXN0b3J5L3Jlc3RvcmUiLCB7 IG1ldGhvZDogIlBPU1QiLCBoZWFkZXJzOiB7ICJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24v anNvbiIgfSwgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBpZDogZS5pZCB9KSB9KQogICAgICAgIC50 aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiByLmpzb24oKTsgfSkKICAgICAgICAudGhlbihmdW5j dGlvbiAoaikgewogICAgICAgICAgaWYgKGogJiYgai5vaykgeyBQLnRvYXN0KCJXaWVkZXJoZXJn ZXN0ZWxsdCDigJQgbGFkZSBuZXVlbiBTdGFuZOKApiIpOyBzZXRUaW1lb3V0KGZ1bmN0aW9uICgp IHsgbG9jYXRpb24ucmVsb2FkKCk7IH0sIDYwMCk7IH0KICAgICAgICAgIGVsc2UgeyBQLnRvYXN0 KCJXaWVkZXJoZXJzdGVsbHVuZyBmZWhsZ2VzY2hsYWdlbiIgKyAoaiAmJiBqLmVycm9yID8gIjog IiArIGouZXJyb3IgOiAiLiIpKTsgfQogICAgICAgIH0pCiAgICAgICAgLmNhdGNoKGZ1bmN0aW9u ICgpIHsgUC50b2FzdCgiV2llZGVyaGVyc3RlbGx1bmcgZmVobGdlc2NobGFnZW4gKFZlcmJpbmR1 bmcpLiIpOyB9KTsKICAgIH0sIHsgZGFuZ2VyOiB0cnVlIH0pOwogIH0KCn0pKHdpbmRvdy5QKTsK ### FILE: assets/js/admin/navedit.js | 14187 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgYWRtaW4vbmF2ZWRpdC5qcyAgKFBo YXNlIDcpCiAgIEFkbWluLVdlcmt6ZXVnOiBOYXZpZ2F0aW9ucy1TdHJ1a3R1ciBiZWFyYmVpdGVu IOKAlCBCZXJlaWNoZSB1bmQgRWludHLDpGdlCiAgIHBlciBEcmFnICYgRHJvcCB1bXNvcnRpZXJl bi92ZXJzY2hpZWJlbiwgcGx1cyBUYXN0ZW4gKOKWsuKWvCAvIGVpbi0vYXVzcsO8Y2tlbiksCiAg IGFubGVnZW4sIHVtYmVuZW5uZW4sIFppZWwgw6RuZGVybiwgbMO2c2NoZW4uIFZlcsO2ZmZlbnRs aWNodCB2aWEgUC5wZXJzaXN0TmF2KCkKICAgKGRhdGEtbmF2LmpzKS4gQXJ0aWtlbC1FaW50csOk Z2Ugw7ZmZm5lbiBkZW4gYmVzdGVoZW5kZW4gQXJ0aWtlbC1EaWFsb2cuCiAgIFplaWd0IEFMTEUg QmVyZWljaGU7IOKAnnRvcGJhciIgd2lyZCBtYXJraWVydCAoaW0gUG9ydGFsIGRlcnplaXQgbmlj aHQgaW4gZGVyCiAgIFNlaXRlbmxlaXN0ZSBzaWNodGJhcikgdW5kIGlzdCBhdWYg4oCec2lkZWJh ciIgdW1zdGVsbGJhci4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ug c3RyaWN0IjsKICB2YXIgZWwgPSBQLmVsLCAkID0gUC4kLCBpYyA9IFAuaWMsIGVzYyA9IFAuZXNj YXBlSHRtbDsKICB2YXIgZHJhZyA9IG51bGw7ICAgLy8geyBraW5kOiJpdGVtInwic2VjdGlvbiIs IHJlZiB9CiAgdmFyIGN1ck1vZGFsID0gbnVsbDsKCiAgZnVuY3Rpb24gY2xvc2UoKSB7IGlmIChj dXJNb2RhbCkgY3VyTW9kYWwuY2xvc2UoKTsgfQogIGZ1bmN0aW9uIGFmdGVyQ2hhbmdlKCkgeyBQ LnBlcnNpc3ROYXYoKTsgUC5idWlsZEluZGV4KCk7IFAucmVuZGVyU2lkZWJhcigpOyBidWlsZFRy ZWUoKTsgfQogIGZ1bmN0aW9uIGNsZWFySW5kKCkgeyBQLiQkKCIubnYtcm93LmRyb3AtYmVmb3Jl LC5udi1yb3cuZHJvcC1hZnRlciwubnYtc2VjLmRyb3AtYmVmb3JlLC5udi1zZWMuZHJvcC1hZnRl ciwubnYtZHJvcC5vdmVyIikuZm9yRWFjaChmdW5jdGlvbiAobikgeyBuLmNsYXNzTGlzdC5yZW1v dmUoImRyb3AtYmVmb3JlIiwgImRyb3AtYWZ0ZXIiLCAib3ZlciIpOyB9KTsgfQoKICBQLm9wZW5O YXZFZGl0b3IgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoUC5yb2xlICE9PSAiYWRtaW4iKSB7IFAu dG9hc3QoIk5hdmlnYXRpb25zLUVkaXRvciBpc3QgQWRtaW5zIHZvcmJlaGFsdGVuLiIpOyByZXR1 cm47IH0KICAgIGN1ck1vZGFsID0gUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiTmF2aWdhdGlvbiBi ZWFyYmVpdGVuIiwgaWNvbjogIm1lbnUiLCBzaXplOiAieGwiLAogICAgICBib2R5OiBmdW5jdGlv biAoaG9zdCkgewogICAgICAgIGhvc3QuY2xhc3NMaXN0LmFkZCgibnYtdHJlZSIpOwogICAgICAg IGhvc3QuaWQgPSAibmF2ZWRpdC10cmVlIjsKICAgICAgICBidWlsZFRyZWUoaG9zdCk7ICAgLy8g SG9zdCBkaXJla3QgZHVyY2hyZWljaGVuOiB6dW0gQm9keS1DYWxsYmFjay1aZWl0cHVua3QgaGFl bmd0IGRhcyBNb2RhbCBub2NoIG5pY2h0IGltIERPTSAoJCBmaW5kZXQgZXMgc29uc3QgbmljaHQg LT4gbGVlcikKICAgICAgfSwKICAgICAgb25DbG9zZTogZnVuY3Rpb24gKCkgeyBjdXJNb2RhbCA9 IG51bGw7IH0sCiAgICAgIGFjdGlvbnM6IFsKICAgICAgICB7IGxhYmVsOiAiQmVyZWljaCIsIGtp bmQ6ICJnaG9zdCIsIGljb246ICJwbHVzIiwgYWxpZ246ICJsZWZ0Iiwga2VlcE9wZW46IHRydWUs IG9uQ2xpY2s6IGFkZFNlY3Rpb24gfSwKICAgICAgICB7IGxhYmVsOiAiU2NobGllw59lbiIsIGtp bmQ6ICJnaG9zdCIgfQogICAgICBdCiAgICB9KTsKICB9OwoKICBmdW5jdGlvbiBidWlsZFRyZWUo aG9zdCkgewogICAgaG9zdCA9IGhvc3QgfHwgJCgiI25hdmVkaXQtdHJlZSIpOyBpZiAoIWhvc3Qp IHJldHVybjsKICAgIGhvc3QuaW5uZXJIVE1MID0gIiI7CiAgICBpZiAoIVAuTkFWLnNlY3Rpb25z Lmxlbmd0aCkgeyBob3N0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAibXV0ZWQiLCB0 ZXh0OiAiS2VpbmUgQmVyZWljaGUuIiB9KSk7IHJldHVybjsgfQogICAgUC5OQVYuc2VjdGlvbnMu Zm9yRWFjaChmdW5jdGlvbiAocywgc2kpIHsgaG9zdC5hcHBlbmRDaGlsZChzZWN0aW9uRWwocywg c2kpKTsgfSk7CiAgfQoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEJlcmVpY2ggKi8KICBmdW5jdGlvbiBzZWN0aW9u RWwocywgc2kpIHsKICAgIHZhciB3cmFwID0gZWwoImRpdiIsIHsgY2xhc3M6ICJudi1zZWMiIH0p OwogICAgdmFyIHRvcGJhciA9IHMucGxhY2VtZW50ICYmIHMucGxhY2VtZW50ICE9PSAic2lkZWJh ciIgJiYgcy5wbGFjZW1lbnQgIT09ICJib3RoIjsKICAgIHZhciBoZWFkID0gZWwoImRpdiIsIHsg Y2xhc3M6ICJudi1zZWMtaGVhZCIgKyAodG9wYmFyID8gIiBpcy10b3BiYXIiIDogIiIpLCBkcmFn Z2FibGU6ICJ0cnVlIiB9KTsKICAgIGhlYWQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0Iiwg ZnVuY3Rpb24gKGUpIHsgZS5zdG9wUHJvcGFnYXRpb24oKTsgZHJhZyA9IHsga2luZDogInNlY3Rp b24iLCByZWY6IHMgfTsgaGVhZC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpOyB0cnkgeyBlLmRh dGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIiwgIiIpOyB9IGNhdGNoIChfKSB7fSB9KTsK ICAgIGhlYWQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsIGZ1bmN0aW9uICgpIHsgZHJhZyA9 IG51bGw7IGNsZWFySW5kKCk7IGhlYWQuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKTsgfSk7 CiAgICBoZWFkLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZnVuY3Rpb24gKGUpIHsgaWYg KCFkcmFnIHx8IGRyYWcua2luZCAhPT0gInNlY3Rpb24iKSByZXR1cm47IGUucHJldmVudERlZmF1 bHQoKTsgdmFyIHIgPSBoZWFkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOyB2YXIgYmVmb3JlID0g KGUuY2xpZW50WSAtIHIudG9wKSA8IHIuaGVpZ2h0IC8gMjsgaGVhZC5jbGFzc0xpc3QudG9nZ2xl KCJkcm9wLWJlZm9yZSIsIGJlZm9yZSk7IGhlYWQuY2xhc3NMaXN0LnRvZ2dsZSgiZHJvcC1hZnRl ciIsICFiZWZvcmUpOyB9KTsKICAgIGhlYWQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIiwg ZnVuY3Rpb24gKCkgeyBoZWFkLmNsYXNzTGlzdC5yZW1vdmUoImRyb3AtYmVmb3JlIiwgImRyb3At YWZ0ZXIiKTsgfSk7CiAgICBoZWFkLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5jdGlvbiAo ZSkgeyBpZiAoIWRyYWcgfHwgZHJhZy5raW5kICE9PSAic2VjdGlvbiIpIHJldHVybjsgZS5wcmV2 ZW50RGVmYXVsdCgpOyB2YXIgciA9IGhlYWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7IGRyb3BT ZWN0aW9uKGRyYWcucmVmLCBzLCAoZS5jbGllbnRZIC0gci50b3ApIDwgci5oZWlnaHQgLyAyKTsg fSk7CgogICAgaGVhZC5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJudi1ncmlwIiwg aHRtbDogIuKLruKLriIsIHRpdGxlOiAiWmllaGVuIHp1bSBVbXNvcnRpZXJlbiIgfSkpOwogICAg aGVhZC5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJudi1zZWMtdGl0bGUiLCB0ZXh0 OiBzLnRpdGxlIHx8ICIob2huZSBUaXRlbCkiLCB0aXRsZTogIktsaWNrZW4genVtIFVtYmVuZW5u ZW4iLAogICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IHZhciB2ID0gcHJvbXB0KCJCZXJlaWNo cy1OYW1lOiIsIHMudGl0bGUgfHwgIiIpOyBpZiAodiAhPSBudWxsKSB7IHMudGl0bGUgPSB2LnRy aW0oKSB8fCBzLnRpdGxlOyBhZnRlckNoYW5nZSgpOyB9IH0gfSkpOwogICAgaWYgKHRvcGJhcikg aGVhZC5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJudi1iYWRnZSIsIHRleHQ6ICJU b3BiYXIg4oCUIG5pY2h0IGluIFNlaXRlbmxlaXN0ZSIsIHRpdGxlOiAiUGxhdHppZXJ1bmcgYXVm IOKAnlNlaXRlbmxlaXN0ZeKAnCBzdGVsbGVuLCB1bSBzaWNodGJhciB6dSBtYWNoZW4iIH0pKTsK ICAgIHZhciBzZWwgPSBlbCgic2VsZWN0IiwgeyBjbGFzczogIm52LXBsYWNlIiwgdGl0bGU6ICJQ bGF0emllcnVuZyIsIG9uY2hhbmdlOiBmdW5jdGlvbiAoKSB7IHMucGxhY2VtZW50ID0gdGhpcy52 YWx1ZTsgYWZ0ZXJDaGFuZ2UoKTsgfSB9KTsKICAgIFtbInNpZGViYXIiLCAiU2VpdGVubGVpc3Rl Il0sIFsiYm90aCIsICJCZWlkZXMiXSwgWyJ0b3BiYXIiLCAiVG9wYmFyIl0sIFsiYXoiLCAiQeKA k1oiXV0uZm9yRWFjaChmdW5jdGlvbiAobykgewogICAgICBzZWwuYXBwZW5kQ2hpbGQoZWwoIm9w dGlvbiIsIHsgdmFsdWU6IG9bMF0sIHRleHQ6IG9bMV0sIHNlbGVjdGVkOiAocy5wbGFjZW1lbnQg fHwgInNpZGViYXIiKSA9PT0gb1swXSA/ICJzZWxlY3RlZCIgOiBudWxsIH0pKTsKICAgIH0pOwog ICAgaGVhZC5hcHBlbmRDaGlsZChzZWwpOwogICAgLy8gQmVyZWljaHNmYXJiZSAoZGF0ZW5nZXRy aWViZW4gLT4gZmFlcmJ0IGRpZSBTZWl0ZW5sZWlzdGVuLVVlYmVyc2NocmlmdCkuIExlZXIgPSBv aG5lIEZhcmJlLgogICAgaWYgKHMuY29sb3IpIGhlYWQuc3R5bGUuYm9yZGVyTGVmdCA9ICI0cHgg c29saWQgIiArIHMuY29sb3I7CiAgICB2YXIgY29sID0gZWwoImlucHV0IiwgeyB0eXBlOiAiY29s b3IiLCBjbGFzczogIm52LWNvbG9yIiwgdGl0bGU6ICJCZXJlaWNoc2ZhcmJlIiwgdmFsdWU6IHMu Y29sb3IgfHwgIiMxMjNjNjYiIH0pOwogICAgY29sLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIs IGZ1bmN0aW9uICgpIHsgcy5jb2xvciA9IGNvbC52YWx1ZTsgYWZ0ZXJDaGFuZ2UoKTsgfSk7CiAg ICBoZWFkLmFwcGVuZENoaWxkKGNvbCk7CiAgICB2YXIgYWN0cyA9IGVsKCJzcGFuIiwgeyBjbGFz czogIm52LWFjdHMiIH0pOwogICAgYWN0cy5hcHBlbmRDaGlsZChtaW5pKCLilrIiLCAiQmVyZWlj aCBob2NoIiwgZnVuY3Rpb24gKCkgeyBtb3ZlU2VjdGlvbihzaSwgLTEpOyB9KSk7CiAgICBhY3Rz LmFwcGVuZENoaWxkKG1pbmkoIuKWvCIsICJCZXJlaWNoIHJ1bnRlciIsIGZ1bmN0aW9uICgpIHsg bW92ZVNlY3Rpb24oc2ksIDEpOyB9KSk7CiAgICBpZiAocy5jb2xvcikgYWN0cy5hcHBlbmRDaGls ZChtaW5pKCLiqK8iLCAiQmVyZWljaHNmYXJiZSBlbnRmZXJuZW4iLCBmdW5jdGlvbiAoKSB7IGRl bGV0ZSBzLmNvbG9yOyBhZnRlckNoYW5nZSgpOyB9KSk7CiAgICBhY3RzLmFwcGVuZENoaWxkKG1p bmlJYygicGx1cyIsICJMaW5rIGhpbnp1ZsO8Z2VuIiwgZnVuY3Rpb24gKCkgeyBhZGRMaW5rKHMp OyB9KSk7CiAgICBhY3RzLmFwcGVuZENoaWxkKG1pbmkoIu+8i+KWviIsICJVbnRlcm1lbsO8IGhp bnp1ZsO8Z2VuIiwgZnVuY3Rpb24gKCkgeyBhZGRTdWJtZW51KHMpOyB9KSk7CiAgICBhY3RzLmFw cGVuZENoaWxkKG1pbmlJYygidHJhc2giLCAiQmVyZWljaCBsw7ZzY2hlbiIsIGZ1bmN0aW9uICgp IHsgZGVsU2VjdGlvbihzKTsgfSkpOwogICAgaGVhZC5hcHBlbmRDaGlsZChhY3RzKTsKICAgIHdy YXAuYXBwZW5kQ2hpbGQoaGVhZCk7CgogICAgdmFyIGxpc3QgPSBlbCgiZGl2IiwgeyBjbGFzczog Im52LWxpc3QiIH0pOwogICAgKHMuaXRlbXMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGl0KSB7 IGxpc3QuYXBwZW5kQ2hpbGQoaXRlbUVsKGl0LCAwKSk7IH0pOwogICAgLy8gRHJvcC1ab25lOiBF aW50cmFnIGluIGRpZXNlbiBCZXJlaWNoIChhbnMgRW5kZSkgemllaGVuCiAgICB2YXIgem9uZSA9 IGVsKCJkaXYiLCB7IGNsYXNzOiAibnYtZHJvcCIsIHRleHQ6ICJoaWVyaGVyIHppZWhlbiDihpIg aW4g4oCeIiArIChzLnRpdGxlIHx8ICIiKSArICLigJwiIH0pOwogICAgem9uZS5hZGRFdmVudExp c3RlbmVyKCJkcmFnb3ZlciIsIGZ1bmN0aW9uIChlKSB7IGlmICghZHJhZyB8fCBkcmFnLmtpbmQg IT09ICJpdGVtIikgcmV0dXJuOyBlLnByZXZlbnREZWZhdWx0KCk7IHpvbmUuY2xhc3NMaXN0LmFk ZCgib3ZlciIpOyB9KTsKICAgIHpvbmUuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIiwgZnVu Y3Rpb24gKCkgeyB6b25lLmNsYXNzTGlzdC5yZW1vdmUoIm92ZXIiKTsgfSk7CiAgICB6b25lLmFk ZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5jdGlvbiAoZSkgeyBpZiAoIWRyYWcgfHwgZHJhZy5r aW5kICE9PSAiaXRlbSIpIHJldHVybjsgZS5wcmV2ZW50RGVmYXVsdCgpOyB6b25lLmNsYXNzTGlz dC5yZW1vdmUoIm92ZXIiKTsgdmFyIHNyYyA9IGRyYWcucmVmOyBQLm5hdlJlbW92ZUZyb20oc3Jj KTsgKHMuaXRlbXMgPSBzLml0ZW1zIHx8IFtdKS5wdXNoKHNyYyk7IGFmdGVyQ2hhbmdlKCk7IH0p OwogICAgbGlzdC5hcHBlbmRDaGlsZCh6b25lKTsKICAgIHdyYXAuYXBwZW5kQ2hpbGQobGlzdCk7 CiAgICByZXR1cm4gd3JhcDsKICB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRWludHJhZyAocmVrdXJzaXYpICov CiAgZnVuY3Rpb24gaXRlbUVsKGl0LCBkZXB0aCkgewogICAgdmFyIG5vZGUgPSBlbCgiZGl2Iiwg eyBjbGFzczogIm52LW5vZGUiIH0pOwogICAgdmFyIHJvdyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAi bnYtcm93IiwgZHJhZ2dhYmxlOiAidHJ1ZSIsIHN0eWxlOiAibWFyZ2luLWxlZnQ6IiArIChkZXB0 aCAqIDE2KSArICJweCIgfSk7CiAgICByb3cuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0Iiwg ZnVuY3Rpb24gKGUpIHsgZS5zdG9wUHJvcGFnYXRpb24oKTsgZHJhZyA9IHsga2luZDogIml0ZW0i LCByZWY6IGl0IH07IHJvdy5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpOyB0cnkgeyBlLmRhdGFU cmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIiwgIiIpOyB9IGNhdGNoIChfKSB7fSB9KTsKICAg IHJvdy5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW5kIiwgZnVuY3Rpb24gKCkgeyBkcmFnID0gbnVs bDsgY2xlYXJJbmQoKTsgcm93LmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIik7IH0pOwogICAg cm93LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZnVuY3Rpb24gKGUpIHsgaWYgKCFkcmFn IHx8IGRyYWcua2luZCAhPT0gIml0ZW0iKSByZXR1cm47IGUucHJldmVudERlZmF1bHQoKTsgZS5z dG9wUHJvcGFnYXRpb24oKTsgdmFyIHIgPSByb3cuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7IHZh ciBiZWZvcmUgPSAoZS5jbGllbnRZIC0gci50b3ApIDwgci5oZWlnaHQgLyAyOyByb3cuY2xhc3NM aXN0LnRvZ2dsZSgiZHJvcC1iZWZvcmUiLCBiZWZvcmUpOyByb3cuY2xhc3NMaXN0LnRvZ2dsZSgi ZHJvcC1hZnRlciIsICFiZWZvcmUpOyB9KTsKICAgIHJvdy5hZGRFdmVudExpc3RlbmVyKCJkcmFn bGVhdmUiLCBmdW5jdGlvbiAoKSB7IHJvdy5jbGFzc0xpc3QucmVtb3ZlKCJkcm9wLWJlZm9yZSIs ICJkcm9wLWFmdGVyIik7IH0pOwogICAgcm93LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5j dGlvbiAoZSkgeyBpZiAoIWRyYWcgfHwgZHJhZy5raW5kICE9PSAiaXRlbSIpIHJldHVybjsgZS5w cmV2ZW50RGVmYXVsdCgpOyBlLnN0b3BQcm9wYWdhdGlvbigpOyB2YXIgciA9IHJvdy5nZXRCb3Vu ZGluZ0NsaWVudFJlY3QoKTsgZHJvcEl0ZW0oZHJhZy5yZWYsIGl0LCAoZS5jbGllbnRZIC0gci50 b3ApIDwgci5oZWlnaHQgLyAyKTsgfSk7CgogICAgcm93LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwg eyBjbGFzczogIm52LWdyaXAiLCBodG1sOiAi4ouu4ouuIiB9KSk7CiAgICB2YXIgY2Fub24gPSBp dC5yZWYgPyBQLmZpbmROYXZJdGVtQnlJZChpdC5yZWYpIDogbnVsbDsKICAgIHZhciB0eXAgPSBp dC5yZWYgPyAicmVmIiA6IGl0LmhlYWRpbmcgPyAiaGVhZGluZyIgOiBpdC5hcnRpY2xlID8gImFy dGljbGUiIDogaXQuY2hpbGRyZW4gPyAibWVudSIgOiAoaXQudGFyZ2V0ID09PSAiX2JsYW5rIiA/ ICJleHQiIDogImxpbmsiKTsKICAgIHZhciBpY29uID0geyBoZWFkaW5nOiAiYXoiLCBhcnRpY2xl OiAiYXJ0aWNsZSIsIG1lbnU6ICJtZW51IiwgZXh0OiAiZXh0IiwgbGluazogImxpbmsiLCByZWY6 ICJsaW5rIiB9W3R5cF07CiAgICByb3cuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi bnYtaWMiLCBodG1sOiBpYyhpY29uKSB9KSk7CiAgICB2YXIgbGJsID0gaXQubGFiZWwgfHwgKGl0 LmFydGljbGUgJiYgaXQuYXJ0aWNsZS50aXRsZSkgfHwgKGNhbm9uICYmIGNhbm9uLmxhYmVsKSB8 fCAiKG9obmUgTGFiZWwpIjsKICAgIHJvdy5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6 ICJudi1sYmwiLCB0ZXh0OiBsYmwgfSkpOwogICAgaWYgKGl0LnJlZikgcm93LmFwcGVuZENoaWxk KGVsKCJzcGFuIiwgeyBjbGFzczogIm52LWJhZGdlIiwgdGl0bGU6IGNhbm9uID8gIlZlcndlaXMg YXVmOiAiICsgKGNhbm9uLmxhYmVsIHx8ICIiKSA6ICJWZXJ3ZWlzLVppZWwgZmVobHQiLCB0ZXh0 OiBjYW5vbiA/ICLihqogVmVyd2VpcyIgOiAi4oaqIFppZWwgZmVobHQiIH0pKTsKICAgIGlmIChp dC5icm9rZW4pIHJvdy5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJudi1iYWRnZSB3 YXJuIiwgdGV4dDogImZlaGx0IiB9KSk7CgogICAgdmFyIGFjdHMgPSBlbCgic3BhbiIsIHsgY2xh c3M6ICJudi1hY3RzIiB9KTsKICAgIGFjdHMuYXBwZW5kQ2hpbGQobWluaSgi4payIiwgImhvY2gi LCBmdW5jdGlvbiAoKSB7IGlmIChQLm5hdk1vdmUoaXQsIC0xKSkgYWZ0ZXJDaGFuZ2UoKTsgfSkp OwogICAgYWN0cy5hcHBlbmRDaGlsZChtaW5pKCLilrwiLCAicnVudGVyIiwgZnVuY3Rpb24gKCkg eyBpZiAoUC5uYXZNb3ZlKGl0LCAxKSkgYWZ0ZXJDaGFuZ2UoKTsgfSkpOwogICAgaWYgKCFpdC5y ZWYpIHsKICAgICAgYWN0cy5hcHBlbmRDaGlsZChtaW5pKCLilrgiLCAiZWlucsO8Y2tlbiAoVW50 ZXJtZW7DvCkiLCBmdW5jdGlvbiAoKSB7IGluZGVudChpdCk7IH0pKTsKICAgICAgYWN0cy5hcHBl bmRDaGlsZChtaW5pKCLil4IiLCAiYXVzcsO8Y2tlbiIsIGZ1bmN0aW9uICgpIHsgb3V0ZGVudChp dCk7IH0pKTsKICAgICAgYWN0cy5hcHBlbmRDaGlsZChtaW5pSWMoImVkaXQiLCAiQmV6ZWljaG51 bmcgw6RuZGVybiIsIGZ1bmN0aW9uICgpIHsgdmFyIHYgPSBwcm9tcHQoIkJlemVpY2hudW5nOiIs IGl0LmxhYmVsIHx8ICIiKTsgaWYgKHYgIT0gbnVsbCkgeyBpdC5sYWJlbCA9IHYudHJpbSgpIHx8 IGl0LmxhYmVsOyBhZnRlckNoYW5nZSgpOyB9IH0pKTsKICAgICAgaWYgKGl0LmFydGljbGUpIGFj dHMuYXBwZW5kQ2hpbGQobWluaUljKCJhcnRpY2xlIiwgIkFydGlrZWwtSW5oYWx0IGJlYXJiZWl0 ZW4iLCBmdW5jdGlvbiAoKSB7IGNsb3NlKCk7IGlmIChQLm9wZW5BcnRpY2xlRGxnKSBQLm9wZW5B cnRpY2xlRGxnKGl0KTsgfSkpOwogICAgICBlbHNlIGlmICghaXQuaGVhZGluZykgYWN0cy5hcHBl bmRDaGlsZChtaW5pSWMoImxpbmsiLCAiWmllbCDDpG5kZXJuIiwgZnVuY3Rpb24gKCkgeyBlZGl0 VGFyZ2V0KGl0KTsgfSkpOwogICAgICBpZiAoaXQuYXJ0aWNsZSB8fCBpdC5ocmVmKSBhY3RzLmFw cGVuZENoaWxkKG1pbmkoIuKGqiIsICJBbHMgVmVyd2VpcyBkdXBsaXppZXJlbiAoYW4gYW5kZXJl ciBTdGVsbGUgZWluYmluZGVuKSIsIGZ1bmN0aW9uICgpIHsgbWFrZVJlZihpdCk7IH0pKTsKICAg IH0gZWxzZSB7CiAgICAgIGFjdHMuYXBwZW5kQ2hpbGQobWluaUljKCJlZGl0IiwgIkFuemVpZ2Ut QmV6ZWljaG51bmcgZGVzIFZlcndlaXNlcyDDpG5kZXJuIiwgZnVuY3Rpb24gKCkgeyB2YXIgdiA9 IHByb21wdCgiQmV6ZWljaG51bmcgKGxlZXIgPSBPcmlnaW5hbCk6IiwgaXQubGFiZWwgfHwgIiIp OyBpZiAodiAhPSBudWxsKSB7IHYgPSB2LnRyaW0oKTsgaWYgKHYpIGl0LmxhYmVsID0gdjsgZWxz ZSBkZWxldGUgaXQubGFiZWw7IGFmdGVyQ2hhbmdlKCk7IH0gfSkpOwogICAgfQogICAgYWN0cy5h cHBlbmRDaGlsZChtaW5pSWMoInRyYXNoIiwgImzDtnNjaGVuIiwgZnVuY3Rpb24gKCkgeyBQLmNv bmZpcm0oIuKAniIgKyBsYmwgKyAi4oCcIGzDtnNjaGVuPyIsIGZ1bmN0aW9uICgpIHsgUC5uYXZS ZW1vdmVGcm9tKGl0KTsgYWZ0ZXJDaGFuZ2UoKTsgfSwgeyBkYW5nZXI6IHRydWUgfSk7IH0pKTsK ICAgIHJvdy5hcHBlbmRDaGlsZChhY3RzKTsKICAgIG5vZGUuYXBwZW5kQ2hpbGQocm93KTsKCiAg ICBpZiAoaXQuY2hpbGRyZW4gJiYgaXQuY2hpbGRyZW4ubGVuZ3RoKSB7CiAgICAgIHZhciBraWRz ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJudi1raWRzIiB9KTsKICAgICAgaXQuY2hpbGRyZW4uZm9y RWFjaChmdW5jdGlvbiAoYykgeyBraWRzLmFwcGVuZENoaWxkKGl0ZW1FbChjLCBkZXB0aCArIDEp KTsgfSk7CiAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoa2lkcyk7CiAgICB9CiAgICByZXR1cm4gbm9k ZTsKICB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gQWt0aW9uZW4gKi8KICBmdW5jdGlvbiBkcm9wSXRlbShzcmMs IHRhcmdldCwgYmVmb3JlKSB7CiAgICBpZiAoc3JjID09PSB0YXJnZXQpIHJldHVybjsKICAgIGlm IChQLm5hdklzQW5jZXN0b3Ioc3JjLCB0YXJnZXQpKSB7IFAudG9hc3QoIkthbm4gbmljaHQgaW4g ZGVuIGVpZ2VuZW4gVW50ZXJiYXVtIHZlcnNjaG9iZW4gd2VyZGVuLiIpOyByZXR1cm47IH0KICAg IFAubmF2UmVtb3ZlRnJvbShzcmMpOwogICAgdmFyIGYgPSBQLm5hdkZpbmQodGFyZ2V0KTsgaWYg KCFmKSB7IGFmdGVyQ2hhbmdlKCk7IHJldHVybjsgfQogICAgZi5hcnIuc3BsaWNlKGYuaWR4ICsg KGJlZm9yZSA/IDAgOiAxKSwgMCwgc3JjKTsKICAgIGFmdGVyQ2hhbmdlKCk7CiAgfQogIGZ1bmN0 aW9uIGRyb3BTZWN0aW9uKHNyYywgdGFyZ2V0LCBiZWZvcmUpIHsKICAgIGlmIChzcmMgPT09IHRh cmdldCkgcmV0dXJuOwogICAgdmFyIGFyciA9IFAuTkFWLnNlY3Rpb25zOwogICAgdmFyIGkgPSBh cnIuaW5kZXhPZihzcmMpOyBpZiAoaSA+PSAwKSBhcnIuc3BsaWNlKGksIDEpOwogICAgdmFyIGog PSBhcnIuaW5kZXhPZih0YXJnZXQpOyBpZiAoaiA8IDApIGogPSBhcnIubGVuZ3RoOwogICAgYXJy LnNwbGljZShqICsgKGJlZm9yZSA/IDAgOiAxKSwgMCwgc3JjKTsKICAgIGFmdGVyQ2hhbmdlKCk7 CiAgfQogIGZ1bmN0aW9uIGluZGVudChpdCkgewogICAgdmFyIGYgPSBQLm5hdkZpbmQoaXQpOyBp ZiAoIWYpIHJldHVybjsKICAgIGlmIChmLmlkeCA8PSAwKSB7IFAudG9hc3QoIktlaW4gdm9yaGVy aWdlciBFaW50cmFnIHp1bSBFaW5yw7xja2VuLiIpOyByZXR1cm47IH0KICAgIHZhciBwcmV2ID0g Zi5hcnJbZi5pZHggLSAxXTsKICAgIGlmIChwcmV2LmFydGljbGUpIHsgUC50b2FzdCgiVW50ZXIg ZWluZW0gQXJ0aWtlbCBrYW5uIGtlaW4gVW50ZXJtZW7DvCBsaWVnZW4uIik7IHJldHVybjsgfQog ICAgUC5uYXZSZW1vdmVGcm9tKGl0KTsKICAgIFAubmF2RW5zdXJlQ2hpbGRyZW4ocHJldikucHVz aChpdCk7CiAgICBhZnRlckNoYW5nZSgpOwogIH0KICBmdW5jdGlvbiBvdXRkZW50KGl0KSB7CiAg ICB2YXIgZiA9IFAubmF2RmluZChpdCk7IGlmICghZikgcmV0dXJuOwogICAgaWYgKCFmLnBhcmVu dCkgeyBQLnRvYXN0KCJCZXJlaXRzIGF1ZiBvYmVyc3RlciBFYmVuZS4iKTsgcmV0dXJuOyB9CiAg ICB2YXIgcGFyZW50ID0gZi5wYXJlbnQ7CiAgICBQLm5hdlJlbW92ZUZyb20oaXQpOwogICAgdmFy IHBmID0gUC5uYXZGaW5kKHBhcmVudCk7IGlmICghcGYpIHsgYWZ0ZXJDaGFuZ2UoKTsgcmV0dXJu OyB9CiAgICBwZi5hcnIuc3BsaWNlKHBmLmlkeCArIDEsIDAsIGl0KTsKICAgIGFmdGVyQ2hhbmdl KCk7CiAgfQogIGZ1bmN0aW9uIGVkaXRUYXJnZXQoaXQpIHsKICAgIHZhciBocmVmID0gcHJvbXB0 KCJaaWVsIChQZmFkIC8gVVJMKToiLCBpdC5ocmVmIHx8ICIiKTsgaWYgKGhyZWYgPT0gbnVsbCkg cmV0dXJuOwogICAgaXQuaHJlZiA9IGhyZWYudHJpbSgpOwogICAgdmFyIHQgPSBwcm9tcHQoIlRh cmdldCAoY29udGVudCA9IGltIFBvcnRhbCwgX2JsYW5rID0gbmV1ZXIgVGFiKToiLCBpdC50YXJn ZXQgfHwgImNvbnRlbnQiKTsKICAgIGlmICh0ICE9IG51bGwpIHsgdCA9IHQudHJpbSgpOyBpZiAo dCkgaXQudGFyZ2V0ID0gdDsgZWxzZSBkZWxldGUgaXQudGFyZ2V0OyB9CiAgICBhZnRlckNoYW5n ZSgpOwogIH0KICAvLyBWZXJ3ZWlzIChBbGlhcykgYXVmIGRlbiBrYW5vbmlzY2hlbiBFaW50cmFn IGVyemV1Z2VuIOKAlCBNZWhyZmFjaC1FaW5iaW5kdW5nLgogIC8vIFdpcmQgZGlyZWt0IGhpbnRl ciBkYXMgT3JpZ2luYWwgZ2VzZXR6dDsgZGVyIEFkbWluIHppZWh0IGlobiBhbiBkaWUgWmllbHN0 ZWxsZS4KICBmdW5jdGlvbiBtYWtlUmVmKGl0KSB7CiAgICBpZiAoIWl0Ll9pZCkgaXQuX2lkID0g UC51aWQoIm4iKTsKICAgIHZhciBmID0gUC5uYXZGaW5kKGl0KTsgaWYgKCFmKSByZXR1cm47CiAg ICBmLmFyci5zcGxpY2UoZi5pZHggKyAxLCAwLCB7IHJlZjogaXQuX2lkIH0pOwogICAgYWZ0ZXJD aGFuZ2UoKTsKICAgIFAudG9hc3QoIlZlcndlaXMgYW5nZWxlZ3Qg4oCUIGFuIGRpZSBnZXfDvG5z Y2h0ZSBTdGVsbGUgemllaGVuLiIpOwogIH0KICBmdW5jdGlvbiBhZGRMaW5rKHMpIHsKICAgIHZh ciBsYWJlbCA9IHByb21wdCgiQmV6ZWljaG51bmcgZGVzIExpbmtzOiIsICIiKTsgaWYgKGxhYmVs ID09IG51bGwgfHwgIWxhYmVsLnRyaW0oKSkgcmV0dXJuOwogICAgdmFyIGhyZWYgPSBwcm9tcHQo IlppZWwgKFBmYWQgLyBVUkwpOiIsICIiKTsgaWYgKGhyZWYgPT0gbnVsbCkgcmV0dXJuOwogICAg KHMuaXRlbXMgPSBzLml0ZW1zIHx8IFtdKS5wdXNoKHsgbGFiZWw6IGxhYmVsLnRyaW0oKSwgaHJl ZjogaHJlZi50cmltKCksIHRhcmdldDogImNvbnRlbnQiIH0pOwogICAgYWZ0ZXJDaGFuZ2UoKTsK ICB9CiAgZnVuY3Rpb24gYWRkU3VibWVudShzKSB7CiAgICB2YXIgbGFiZWwgPSBwcm9tcHQoIk5h bWUgZGVzIFVudGVybWVuw7xzOiIsICIiKTsgaWYgKGxhYmVsID09IG51bGwgfHwgIWxhYmVsLnRy aW0oKSkgcmV0dXJuOwogICAgKHMuaXRlbXMgPSBzLml0ZW1zIHx8IFtdKS5wdXNoKHsgbGFiZWw6 IGxhYmVsLnRyaW0oKSwgY2hpbGRyZW46IFtdIH0pOwogICAgYWZ0ZXJDaGFuZ2UoKTsKICB9CiAg ZnVuY3Rpb24gYWRkU2VjdGlvbigpIHsKICAgIHZhciB0aXRsZSA9IHByb21wdCgiTmFtZSBkZXMg bmV1ZW4gQmVyZWljaHM6IiwgIiIpOyBpZiAodGl0bGUgPT0gbnVsbCB8fCAhdGl0bGUudHJpbSgp KSByZXR1cm47CiAgICBQLk5BVi5zZWN0aW9ucy5wdXNoKHsgaWQ6IFAudWlkKCJzZWMiKSwgdGl0 bGU6IHRpdGxlLnRyaW0oKSwgcGxhY2VtZW50OiAic2lkZWJhciIsIGl0ZW1zOiBbXSB9KTsKICAg IGFmdGVyQ2hhbmdlKCk7CiAgfQogIGZ1bmN0aW9uIGRlbFNlY3Rpb24ocykgewogICAgZnVuY3Rp b24gZG9EZWwoKSB7IHZhciBpID0gUC5OQVYuc2VjdGlvbnMuaW5kZXhPZihzKTsgaWYgKGkgPj0g MCkgUC5OQVYuc2VjdGlvbnMuc3BsaWNlKGksIDEpOyBhZnRlckNoYW5nZSgpOyB9CiAgICBpZiAo KHMuaXRlbXMgfHwgW10pLmxlbmd0aCkgeyBQLmNvbmZpcm0oIkJlcmVpY2gg4oCeIiArIChzLnRp dGxlIHx8ICIiKSArICLigJwgZW50aMOkbHQgRWludHLDpGdlIOKAlCB3aXJrbGljaCBsw7ZzY2hl bj8iLCBkb0RlbCwgeyBkYW5nZXI6IHRydWUgfSk7IH0KICAgIGVsc2UgZG9EZWwoKTsKICB9CiAg ZnVuY3Rpb24gbW92ZVNlY3Rpb24oc2ksIGRpcikgewogICAgdmFyIGFyciA9IFAuTkFWLnNlY3Rp b25zLCBqID0gc2kgKyBkaXI7IGlmIChqIDwgMCB8fCBqID49IGFyci5sZW5ndGgpIHJldHVybjsK ICAgIHZhciBzID0gYXJyLnNwbGljZShzaSwgMSlbMF07IGFyci5zcGxpY2UoaiwgMCwgcyk7IGFm dGVyQ2hhbmdlKCk7CiAgfQoKICBmdW5jdGlvbiBtaW5pKGdseXBoLCB0aXRsZSwgb24pIHsgcmV0 dXJuIGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYtbWluaSIsIHRpdGxlOiB0aXRsZSwgdGV4dDog Z2x5cGgsIG9uY2xpY2s6IG9uIH0pOyB9CiAgZnVuY3Rpb24gbWluaUljKGljb24sIHRpdGxlLCBv bikgeyByZXR1cm4gZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJudi1taW5pIiwgdGl0bGU6IHRpdGxl LCBodG1sOiBpYyhpY29uKSwgb25jbGljazogb24gfSk7IH0KCn0pKHdpbmRvdy5QKTsK ### FILE: assets/js/admin/roles.js | 17366 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgYWRtaW4vcm9sZXMuanMgIChQZXJz b25hbGxpc3RlKQogICBFaW5lIFVzZXJsaXN0ZTogTlctS2VubnVuZyDCtyBEaWVuc3RncmFkIMK3 IFZvcm5hbWUgwrcgTmFjaG5hbWUgdW5kIEhhZWtjaGVuCiAgICJSZWRha3RldXIiLyJBZG1pbiIu IExpZXN0L3NjaHJlaWJ0IHVlYmVyIC9hcGkvYWRtaW4vcm9sZXMgKGFkbWluLW9ubHksCiAgIHNl cnZlci1zZWl0aWcgZXJ6d3VuZ2VuKS4gRHJlaSBRdWVsbGVuOiBkZXIgUGVyc29uZW5zcGVpY2hl ciBwZXJzb25hbC5qc29uCiAgIChBTExFIFBlcnNvbmVuLCBhdWNoIG9obmUgUm9sbGUvS2VubnVu ZyDigJQgei5CLiBhdXMgZGVyIEFyenRsaXN0ZSBnZXNlZWRldCkgcGx1cwogICBkaWUgUm9sbGVu bGlzdGVuIHJlZGFrdGV1cmUudHh0L2FkbWlucy50eHQgKG51ciBQZXJzb25lbiBNSVQgZ3VlbHRp Z2VyIEtlbm51bmc7CiAgIE5hbWUgPSAiRGllbnN0Z3JhZCBWb3JuYW1lIE5hY2huYW1lIikuIEtl bm51bmcgaXN0IGVkaXRpZXJiYXIgLT4gU2VlZC1QZXJzb25lbgogICBvaG5lIEtlbm51bmcgbGFz c2VuIHNpY2ggaGFlbmRpc2NoIHZlcnZvbGxzdGFlbmRpZ2VuLiBTcGVpY2hlcm4gc2NocmVpYnQg ZGVuCiAgIGtvbXBsZXR0ZW4gUm9zdGVyIG5hY2ggcGVyc29uYWwuanNvbiB1bmQgZGllIFJvbGxl bmluaGFiZXIgaW4gZGllIC50eHQtTGlzdGVuLgogICBXSUNIVElHOiBSb2xsZW4gd2lya2VuIGVy c3QgYmVpbSBuYWVjaHN0ZW4gU3RhcnQgZGVzIFBmbGVnZS1IZWxmZXJzIGRlciBQZXJzb24uCiAg ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PSAqLwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIGVs ID0gUC5lbCwgJCA9IFAuJCwgaWMgPSBQLmljLCBlc2MgPSBQLmVzY2FwZUh0bWw7CgogIHZhciBz dGF0ZSA9IG51bGw7ICAgLy8ge2FkbWlucywgcmVkYWt0ZXVyZSwgcGVyc29uYWwsIG1lLCByZXN0 YXJ0SGludH0KICB2YXIgdXNlcnMgPSBbXTsgICAgIC8vIEFyYmVpdHNtb2RlbGw6IFt7a2VubnVu ZywgZ3JhZCwgdm9ybmFtZSwgbmFjaG5hbWUsIHJlZGFrdGV1ciwgYWRtaW59XQogIHZhciBzYXZl VGltZXIgPSBudWxsOwogIHZhciBLUkUgPSAvXltBLVphLXowLTlfXXsyLDMyfSQvOwogIGZ1bmN0 aW9uIHZhbGlkS2VubnVuZyh1KSB7IHJldHVybiBLUkUudGVzdCgodS5rZW5udW5nIHx8ICIiKS50 cmltKCkpOyB9CgogIC8vICJkdXJjaCBTQiIgZGVyIEFyenRsaXN0ZSAtPiB7Z3JhZCwgbmFjaG5h bWV9LiBLb252ZW50aW9uICJOYWNobmFtZSwgR3JhZCI7IG9obmUgS29tbWE6CiAgLy8gbGV0enRl cyBUb2tlbiBpc3QgR3JhZCwgd2VubiBlcyB3aWUgZWluIERpZW5zdGdyYWQgYXVzc2llaHQgKFBL L1BPSy9QSEsgK2luLydpbikuCiAgdmFyIFJBTksgPSAvXlBbT0hdP0soPzpbJ+KAmV0/aW4pPyQv aTsKICBmdW5jdGlvbiBwYXJzZVNCKHNiKSB7CiAgICBzYiA9IChzYiB8fCAiIikudHJpbSgpOyBp ZiAoIXNiKSByZXR1cm4gbnVsbDsKICAgIHZhciBjID0gL14oLis/KSxccyooLispJC8uZXhlYyhz Yik7IGlmIChjKSByZXR1cm4geyBncmFkOiBjWzJdLnRyaW0oKSwgbmFjaG5hbWU6IGNbMV0udHJp bSgpIH07CiAgICB2YXIgdCA9IHNiLnNwbGl0KC9ccysvKTsKICAgIGlmICh0Lmxlbmd0aCA+PSAy ICYmIFJBTksudGVzdCh0W3QubGVuZ3RoIC0gMV0pKSByZXR1cm4geyBncmFkOiB0W3QubGVuZ3Ro IC0gMV0sIG5hY2huYW1lOiB0LnNsaWNlKDAsIC0xKS5qb2luKCIgIikgfTsKICAgIHJldHVybiB7 IGdyYWQ6ICIiLCBuYWNobmFtZTogc2IgfTsKICB9CiAgLy8gUGVyc29uYWxsaXN0ZSBhdXMgZGVy IFNCLVNwYWx0ZSBkZXIgQXJ6dGxpc3RlIHZvcmJlZnVlbGxlbiAobnVyIEdyYWQrTmFjaG5hbWU7 IEtlbm51bmcgaGFlbmRpc2NoKS4KICBmdW5jdGlvbiBwcmVmaWxsRnJvbUFyenQoKSB7CiAgICBp ZiAoIVAubGl2ZSkgeyBQLnRvYXN0KCJOdXIgaW0gUGZsZWdlLU1vZHVzLiIpOyByZXR1cm47IH0K ICAgIGZldGNoKCIvYXBpL2FyenRsaXN0ZSIsIHsgY2FjaGU6ICJuby1zdG9yZSIgfSkudGhlbihm dW5jdGlvbiAocikgeyByZXR1cm4gci5qc29uKCk7IH0pLnRoZW4oZnVuY3Rpb24gKGopIHsKICAg ICAgdmFyIGVudHJpZXMgPSAoaiAmJiBqLm9rICYmIGouZW50cmllcykgPyBqLmVudHJpZXMgOiBb XTsKICAgICAgdmFyIGhhdmUgPSB7fTsKICAgICAgdXNlcnMuZm9yRWFjaChmdW5jdGlvbiAodSkg eyBoYXZlWygodS5ncmFkIHx8ICIiKSArICJ8IiArICh1Lm5hY2huYW1lIHx8ICIiKSkudG9Mb3dl ckNhc2UoKV0gPSAxOyB9KTsKICAgICAgdmFyIHRvQWRkID0gW107CiAgICAgIGVudHJpZXMuZm9y RWFjaChmdW5jdGlvbiAoZSkgewogICAgICAgIHZhciBwID0gcGFyc2VTQihlLnNiKTsgaWYgKCFw IHx8ICFwLm5hY2huYW1lKSByZXR1cm47CiAgICAgICAgdmFyIGtleSA9ICgocC5ncmFkIHx8ICIi KSArICJ8IiArIChwLm5hY2huYW1lIHx8ICIiKSkudG9Mb3dlckNhc2UoKTsKICAgICAgICBpZiAo aGF2ZVtrZXldKSByZXR1cm47IGhhdmVba2V5XSA9IDE7CiAgICAgICAgdG9BZGQucHVzaCh7IGtl bm51bmc6ICIiLCBncmFkOiBwLmdyYWQsIHZvcm5hbWU6ICIiLCBuYWNobmFtZTogcC5uYWNobmFt ZSwgcmVkYWt0ZXVyOiBmYWxzZSwgYWRtaW46IGZhbHNlIH0pOwogICAgICB9KTsKICAgICAgaWYg KCF0b0FkZC5sZW5ndGgpIHsgUC50b2FzdCgiS2VpbmUgbmV1ZW4gUGVyc29uZW4gYXVzIGRlciBB cnp0bGlzdGUgZ2VmdW5kZW4uIik7IHJldHVybjsgfQogICAgICBQLmNvbmZpcm0oIkF1cyBkZXIg QXJ6dGxpc3RlIHdlcmRlbiAiICsgdG9BZGQubGVuZ3RoICsgIiBQZXJzb24oZW4pIChEaWVuc3Rn cmFkICsgTmFjaG5hbWUpIGluIGRpZSBQZXJzb25hbGxpc3RlIMO8YmVybm9tbWVuLiBEaWUgTlct S2VubnVuZyB0csOkZ3N0IGR1IGRhbmFjaCBow6RuZGlzY2ggbmFjaC4gw5xiZXJuZWhtZW4/IiwK ICAgICAgICBmdW5jdGlvbiAoKSB7IHRvQWRkLmZvckVhY2goZnVuY3Rpb24gKHUpIHsgdXNlcnMu cHVzaCh1KTsgfSk7IHBlcnNpc3QodHJ1ZSk7IH0pOwogICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkg eyBQLnRvYXN0KCJBcnp0bGlzdGUgbmljaHQgbGFkYmFyIChsw6R1ZnQgZGVyIEhlbGZlcj8pLiIs IHRydWUpOyB9KTsKICB9CgogIGZ1bmN0aW9uIHNwbGl0TmFtZShuYW1lKSB7CiAgICBuYW1lID0g KG5hbWUgfHwgIiIpLnRyaW0oKTsKICAgIGlmICghbmFtZSkgcmV0dXJuIHsgZ3JhZDogIiIsIHZv cm5hbWU6ICIiLCBuYWNobmFtZTogIiIgfTsKICAgIHZhciBjID0gL14oLis/KSxccyooLispJC8u ZXhlYyhuYW1lKTsgICAgICAgICAgICAgICAgIC8vICJOYWNobmFtZSwgR3JhZCIKICAgIGlmIChj KSByZXR1cm4geyBncmFkOiBjWzJdLnRyaW0oKSwgdm9ybmFtZTogIiIsIG5hY2huYW1lOiBjWzFd LnRyaW0oKSB9OwogICAgdmFyIHQgPSBuYW1lLnNwbGl0KC9ccysvKTsKICAgIGlmICh0Lmxlbmd0 aCA9PT0gMSkgcmV0dXJuIHsgZ3JhZDogIiIsIHZvcm5hbWU6ICIiLCBuYWNobmFtZTogdFswXSB9 OwogICAgaWYgKHQubGVuZ3RoID09PSAyKSByZXR1cm4geyBncmFkOiB0WzBdLCB2b3JuYW1lOiAi IiwgbmFjaG5hbWU6IHRbMV0gfTsKICAgIHJldHVybiB7IGdyYWQ6IHRbMF0sIHZvcm5hbWU6IHQu c2xpY2UoMSwgLTEpLmpvaW4oIiAiKSwgbmFjaG5hbWU6IHRbdC5sZW5ndGggLSAxXSB9OwogIH0K ICBmdW5jdGlvbiBqb2luTmFtZSh1KSB7IHJldHVybiBbdS5ncmFkLCB1LnZvcm5hbWUsIHUubmFj aG5hbWVdLm1hcChmdW5jdGlvbiAocykgeyByZXR1cm4gKHMgfHwgIiIpLnRyaW0oKTsgfSkuZmls dGVyKEJvb2xlYW4pLmpvaW4oIiAiKTsgfQoKICAvLyBTY2hsdWVzc2VsOiBuYWNoIEtlbm51bmcg KHdlbm4gdm9yaGFuZGVuKSwgc29uc3QgbmFjaCBOYW1lIChHcmFkK05hY2huYW1lKSAtPiBzbyBs YXNzZW4gc2ljaAogIC8vIFNlZWQtUGVyc29uZW4gb2huZSBLZW5udW5nIHNwYWV0ZXIgbWl0IGlo cmVyIFJvbGxlbmVpbnRyYWd1bmcgKG1pdCBLZW5udW5nKSB6dXNhbW1lbmZ1ZWhyZW4uCiAgZnVu Y3Rpb24ga2tleShrZW5udW5nKSB7IHJldHVybiAiazoiICsgKGtlbm51bmcgfHwgIiIpLnRyaW0o KS50b0xvd2VyQ2FzZSgpOyB9CiAgZnVuY3Rpb24gbmtleSh1KSB7IHJldHVybiAibjoiICsgKCh1 LmdyYWQgfHwgIiIpICsgInwiICsgKHUubmFjaG5hbWUgfHwgIiIpKS50cmltKCkudG9Mb3dlckNh c2UoKTsgfQoKICBmdW5jdGlvbiBidWlsZFVzZXJzKHN0KSB7CiAgICB2YXIgbGlzdCA9IFtdLCBi eUtleSA9IHt9OwogICAgZnVuY3Rpb24gcHV0KHUsIGtleSkgeyBieUtleVtrZXldID0gdTsgbGlz dC5wdXNoKHUpOyB9CiAgICAvLyAxKSBQZXJzb25lbnNwZWljaGVyIGFscyBCYXNpcyAoYXVjaCBQ ZXJzb25lbiBPSE5FIFJvbGxlL0tlbm51bmcpCiAgICAoc3QucGVyc29uYWwgfHwgW10pLmZvckVh Y2goZnVuY3Rpb24gKGUsIGkpIHsKICAgICAgdmFyIHUgPSB7IGtlbm51bmc6IChlLmtlbm51bmcg fHwgIiIpLnRyaW0oKSwgZ3JhZDogKGUuZ3JhZCB8fCAiIikudHJpbSgpLCB2b3JuYW1lOiAoZS52 b3JuYW1lIHx8ICIiKS50cmltKCksIG5hY2huYW1lOiAoZS5uYWNobmFtZSB8fCAiIikudHJpbSgp LCByZWRha3RldXI6IGZhbHNlLCBhZG1pbjogZmFsc2UgfTsKICAgICAgaWYgKHUua2VubnVuZykg ewogICAgICAgIHZhciBrayA9IGtrZXkodS5rZW5udW5nKTsKICAgICAgICBpZiAoYnlLZXlba2td KSByZXR1cm47ICAgICAgICAgICAgLy8gZ2xlaWNoZSBLZW5udW5nIC0+IGVjaHRlIER1YmxldHRl LCB1ZWJlcnNwcmluZ2VuCiAgICAgICAgcHV0KHUsIGtrKTsKICAgICAgfSBlbHNlIHsKICAgICAg ICAvLyBPSE5FIEtlbm51bmc6IE5JRSB3ZWdlbiBOYW1lbnNnbGVpY2hoZWl0IHZlcndlcmZlbiAo c29uc3QgRGF0ZW52ZXJsdXN0IGJlaW0gUmVsb2FkKS4KICAgICAgICAvLyBVbnRlciBua2V5IGF1 ZmZpbmRiYXIgZnVlciBkZW4gUm9sbGVuLU1lcmdlOyBiZWkgTmFtZW5zLUtvbGxpc2lvbiBlaW5k ZXV0aWdlbiBLZXkgdmVyZ2ViZW4uCiAgICAgICAgdmFyIG5rID0gbmtleSh1KTsKICAgICAgICBw dXQodSwgYnlLZXlbbmtdID8gKG5rICsgIiMiICsgaSkgOiBuayk7CiAgICAgIH0KICAgIH0pOwog ICAgLy8gMikgUm9sbGVuaW5oYWJlciAoaGFiZW4gaW1tZXIgZWluZSBLZW5udW5nKSAtPiBGbGFn IHNldHplbjsgdWViZXIgS2VubnVuZyBPREVSIE5hbWUgenVzYW1tZW5mdWVocmVuCiAgICBmdW5j dGlvbiBhcHBseVJvbGUoYXJyLCBmbGFnKSB7CiAgICAgIChhcnIgfHwgW10pLmZvckVhY2goZnVu Y3Rpb24gKGUpIHsKICAgICAgICB2YXIgayA9IChlLmtlbm51bmcgfHwgIiIpLnRyaW0oKTsgaWYg KCFrKSByZXR1cm47CiAgICAgICAgdmFyIHNwID0gc3BsaXROYW1lKGUubmFtZSk7CiAgICAgICAg dmFyIHUgPSBieUtleVtra2V5KGspXTsKICAgICAgICBpZiAoIXUpIHsKICAgICAgICAgIHZhciBu ayA9ICJuOiIgKyAoKHNwLmdyYWQgfHwgIiIpICsgInwiICsgKHNwLm5hY2huYW1lIHx8ICIiKSku dHJpbSgpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICBpZiAoYnlLZXlbbmtdICYmICFieUtleVtu a10ua2VubnVuZykgeyB1ID0gYnlLZXlbbmtdOyB1Lmtlbm51bmcgPSBrOyBkZWxldGUgYnlLZXlb bmtdOyBieUtleVtra2V5KGspXSA9IHU7IH0KICAgICAgICAgIGVsc2UgeyB1ID0geyBrZW5udW5n OiBrLCBncmFkOiBzcC5ncmFkLCB2b3JuYW1lOiBzcC52b3JuYW1lLCBuYWNobmFtZTogc3AubmFj aG5hbWUsIHJlZGFrdGV1cjogZmFsc2UsIGFkbWluOiBmYWxzZSB9OyBwdXQodSwga2tleShrKSk7 IH0KICAgICAgICB9CiAgICAgICAgaWYgKCFqb2luTmFtZSh1KSAmJiBlLm5hbWUpIHsgdS5ncmFk ID0gc3AuZ3JhZDsgdS52b3JuYW1lID0gc3Audm9ybmFtZTsgdS5uYWNobmFtZSA9IHNwLm5hY2hu YW1lOyB9CiAgICAgICAgdVtmbGFnXSA9IHRydWU7CiAgICAgIH0pOwogICAgfQogICAgYXBwbHlS b2xlKHN0LnJlZGFrdGV1cmUsICJyZWRha3RldXIiKTsKICAgIGFwcGx5Um9sZShzdC5hZG1pbnMs ICJhZG1pbiIpOwogICAgcmV0dXJuIGxpc3Quc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4g KGEubmFjaG5hbWUgfHwgYS5rZW5udW5nIHx8ICIiKS5sb2NhbGVDb21wYXJlKGIubmFjaG5hbWUg fHwgYi5rZW5udW5nIHx8ICIiKTsgfSk7CiAgfQoKICBQLm9wZW5Sb2xlQWRtaW4gPSBmdW5jdGlv biAoKSB7CiAgICBpZiAoUC5yb2xlICE9PSAiYWRtaW4iKSB7IFAudG9hc3QoIlBlcnNvbmFsbGlz dGUgaXN0IEFkbWlucyB2b3JiZWhhbHRlbi4iKTsgcmV0dXJuOyB9CiAgICBQLm1vZGFsKHsKICAg ICAgdGl0bGU6ICJQZXJzb25hbGxpc3RlIMK3IFJvbGxlbiIsIGljb246ICJ1c2VyIiwgc2l6ZTog InhsIiwKICAgICAgYm9keTogZnVuY3Rpb24gKGhvc3QpIHsKICAgICAgICBob3N0LmNsYXNzTGlz dC5hZGQoInJvbGVzLWJvZHkiKTsgaG9zdC5pZCA9ICJyb2xlcy1ib2R5IjsKICAgICAgICBob3N0 LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAibXV0ZWQiLCB0ZXh0OiAiTGFkZeKApiIg fSkpOwogICAgICAgIGZldGNoKCIvYXBpL2FkbWluL3JvbGVzIikudGhlbihmdW5jdGlvbiAocikg eyBpZiAoci5zdGF0dXMgPT09IDQwMykgdGhyb3cgbmV3IEVycm9yKCI0MDMiKTsgcmV0dXJuIHIu anNvbigpOyB9KQogICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKGopIHsgaWYgKCFqIHx8ICFqLm9r KSB0aHJvdyBuZXcgRXJyb3IoImxvYWQiKTsgc3RhdGUgPSBqOyB1c2VycyA9IGJ1aWxkVXNlcnMo c3RhdGUpOyByZW5kZXIoKTsgfSkKICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZSkgeyBob3N0 LmlubmVySFRNTCA9ICIiOyBob3N0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAibXV0 ZWQiLCB0ZXh0OiBlLm1lc3NhZ2UgPT09ICI0MDMiID8gIktlaW5lIEFkbWluLVJlY2h0ZS4iIDog IlBlcnNvbmFsbGlzdGUgbmljaHQgbGFkYmFyLiIgfSkpOyB9KTsKICAgICAgfSwKICAgICAgYWN0 aW9uczogWwogICAgICAgIHsgbGFiZWw6ICJBdXMgQXJ6dGxpc3RlIHZvcmJlZsO8bGxlbiIsIGtp bmQ6ICJnaG9zdCIsIGljb246ICJpbmJveCIsIGFsaWduOiAibGVmdCIsIGtlZXBPcGVuOiB0cnVl LCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IHByZWZpbGxGcm9tQXJ6dCgpOyB9IH0sCiAgICAgICAg eyBsYWJlbDogIlNjaGxpZcOfZW4iLCBraW5kOiAiZ2hvc3QiIH0KICAgICAgXQogICAgfSk7CiAg fTsKCiAgZnVuY3Rpb24gYWRtaW5Db3VudCgpIHsgcmV0dXJuIHVzZXJzLmZpbHRlcihmdW5jdGlv biAodSkgeyByZXR1cm4gdS5hZG1pbjsgfSkubGVuZ3RoOyB9CgogIGZ1bmN0aW9uIHJlbmRlcigp IHsKICAgIHZhciBib2R5ID0gJCgiI3JvbGVzLWJvZHkiKTsgaWYgKCFib2R5IHx8ICFzdGF0ZSkg cmV0dXJuOwogICAgYm9keS5pbm5lckhUTUwgPSAiIjsKICAgIGJvZHkuYXBwZW5kQ2hpbGQoZWwo ImRpdiIsIHsgY2xhc3M6ICJyb2xlcy1oaW50IiwgaHRtbDogaWMoImFsZXJ0IikgKyAiPHNwYW4+ IiArIGVzYyhzdGF0ZS5yZXN0YXJ0SGludCB8fCAiUm9sbGVuLUFlbmRlcnVuZ2VuIHdpcmtlbiBl cnN0IGJlaW0gbmFlY2hzdGVuIFN0YXJ0IGRlcyBQZmxlZ2UtSGVsZmVycyBkZXIgYmV0cm9mZmVu ZW4gUGVyc29uLiIpICsgIjwvc3Bhbj4iIH0pKTsKICAgIGJvZHkuYXBwZW5kQ2hpbGQoZWwoImRp diIsIHsgY2xhc3M6ICJyb2xlcy1oaW50IiwgaHRtbDogaWMoInVzZXIiKSArICI8c3Bhbj5FaW5l IFJvbGxlIChSZWRha3RldXIvQWRtaW4pIGlzdCBudXIgbWl0IGfDvGx0aWdlciBOVy1LZW5udW5n IHNldHpiYXIuIEJlaSB2b3JiZWbDvGxsdGVuIFBlcnNvbmVuIChvaG5lIEtlbm51bmcpIHNpbmQg ZGllIEhha2VuIGF1c2dlZ3JhdXQg4oCUIHp1ZXJzdCBkaWUgTlctS2VubnVuZyBlaW50cmFnZW4s IGRhbm4gbGFzc2VuIHNpZSBzaWNoIHNldHplbi48L3NwYW4+IiB9KSk7CgogICAgdmFyIG1lID0g KHN0YXRlLm1lIHx8ICIiKS50b0xvd2VyQ2FzZSgpOwogICAgdmFyIHRibCA9IGVsKCJ0YWJsZSIs IHsgY2xhc3M6ICJwbC10YmwiIH0pOwogICAgdmFyIHRoZWFkID0gZWwoInRoZWFkIik7CiAgICB0 aGVhZC5hcHBlbmRDaGlsZChlbCgidHIiLCBudWxsLCBbCiAgICAgIGVsKCJ0aCIsIHsgdGV4dDog Ik5XLUtlbm51bmciIH0pLCBlbCgidGgiLCB7IHRleHQ6ICJEaWVuc3RncmFkIiB9KSwgZWwoInRo IiwgeyB0ZXh0OiAiVm9ybmFtZSIgfSksIGVsKCJ0aCIsIHsgdGV4dDogIk5hY2huYW1lIiB9KSwK ICAgICAgZWwoInRoIiwgeyBjbGFzczogInBsLWMiLCB0ZXh0OiAiUmVkYWt0ZXVyIiB9KSwgZWwo InRoIiwgeyBjbGFzczogInBsLWMiLCB0ZXh0OiAiQWRtaW4iIH0pLCBlbCgidGgiLCB7IGNsYXNz OiAicGwtYyIsIHRleHQ6ICIiIH0pCiAgICBdKSk7CiAgICB0YmwuYXBwZW5kQ2hpbGQodGhlYWQp OwogICAgdmFyIHRiID0gZWwoInRib2R5Iik7CiAgICB1c2Vycy5mb3JFYWNoKGZ1bmN0aW9uICh1 KSB7CiAgICAgIHZhciBsayA9ICh1Lmtlbm51bmcgfHwgIiIpLnRvTG93ZXJDYXNlKCk7CiAgICAg IHZhciBpc01lID0gbGsgPT09IG1lOwogICAgICB2YXIgdHIgPSBlbCgidHIiKTsKICAgICAgLy8g S2VubnVuZyBqZXR6dCBlZGl0aWVyYmFyIChTZWVkLVBlcnNvbmVuIGtvbW1lbiBvaG5lIEtlbm51 bmcgLT4gaGFlbmRpc2NoIG5hY2h0cmFnZW4pCiAgICAgIHZhciBrSW5wID0gZWwoImlucHV0Iiwg eyB0eXBlOiAidGV4dCIsIGNsYXNzOiAibW9ubyIsIHZhbHVlOiB1Lmtlbm51bmcgfHwgIiIsIHBs YWNlaG9sZGVyOiAiTlctS2VubnVuZyIgfSk7CiAgICAgIGlmIChpc01lKSB7IGtJbnAuZGlzYWJs ZWQgPSB0cnVlOyBrSW5wLnRpdGxlID0gIkRpZSBlaWdlbmUgS2VubnVuZyBrYW5uIGhpZXIgbmlj aHQgZ2VhZW5kZXJ0IHdlcmRlbi4iOyB9CiAgICAgIGtJbnAuYWRkRXZlbnRMaXN0ZW5lcigiaW5w dXQiLCBmdW5jdGlvbiAoKSB7IHUua2VubnVuZyA9IGtJbnAudmFsdWU7IGFwcGx5Um9sZUVuYWJs ZSgpOyBzY2hlZHVsZVNhdmUoKTsgfSk7CiAgICAgIHRyLmFwcGVuZENoaWxkKGVsKCJ0ZCIsIG51 bGwsIFtrSW5wXSkpOwogICAgICBbImdyYWQiLCAidm9ybmFtZSIsICJuYWNobmFtZSJdLmZvckVh Y2goZnVuY3Rpb24gKGYpIHsKICAgICAgICB2YXIgaW5wID0gZWwoImlucHV0IiwgeyB0eXBlOiAi dGV4dCIsIHZhbHVlOiB1W2ZdIHx8ICIiIH0pOwogICAgICAgIGlucC5hZGRFdmVudExpc3RlbmVy KCJpbnB1dCIsIGZ1bmN0aW9uICgpIHsgdVtmXSA9IGlucC52YWx1ZTsgc2NoZWR1bGVTYXZlKCk7 IH0pOwogICAgICAgIHRyLmFwcGVuZENoaWxkKGVsKCJ0ZCIsIG51bGwsIFtpbnBdKSk7CiAgICAg IH0pOwogICAgICAvLyBSb2xsZSBzZXR6ZW4gZ2VodCBudXIgbWl0IGd1ZWx0aWdlciBLZW5udW5n IChSb2xsZW5saXN0ZW4gYnJhdWNoZW4gZGllIEtlbm51bmcpCiAgICAgIGZ1bmN0aW9uIGd1YXJk Um9sZShjYiwgZmxhZykgewogICAgICAgIGlmIChjYi5jaGVja2VkICYmICF2YWxpZEtlbm51bmco dSkpIHsgUC50b2FzdCgiRXJzdCBlaW5lIGfDvGx0aWdlIE5XLUtlbm51bmcgZWludHJhZ2VuICgy 4oCTMzI6IEHigJNaIDDigJM5IF8pLiIpOyBjYi5jaGVja2VkID0gZmFsc2U7IHJldHVybiBmYWxz ZTsgfQogICAgICAgIHVbZmxhZ10gPSBjYi5jaGVja2VkOyByZXR1cm4gdHJ1ZTsKICAgICAgfQog ICAgICAvLyBSZWRha3RldXIgKyBBZG1pbi4gUm9sbGVuIGJyYXVjaGVuIGVpbmUgZ3VlbHRpZ2Ug TlctS2VubnVuZyAtPiBvaG5lIEtlbm51bmcKICAgICAgLy8gc2luZCBkaWUgSGFrZW4gc2ljaHRi YXIgZGVha3RpdmllcnQgKHN0YXR0IGJlaW0gS2xpY2sgenVydWVja3p1c3ByaW5nZW4pIHVuZAog ICAgICAvLyB3ZXJkZW4gbGl2ZSBha3Rpdiwgc29iYWxkIGVpbmUgZ3VlbHRpZ2UgS2VubnVuZyBl aW5nZXRpcHB0IHdpcmQuCiAgICAgIHZhciByY2IgPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJjaGVj a2JveCIgfSk7IHJjYi5jaGVja2VkID0gISF1LnJlZGFrdGV1cjsKICAgICAgdmFyIGFjYiA9IGVs KCJpbnB1dCIsIHsgdHlwZTogImNoZWNrYm94IiB9KTsgYWNiLmNoZWNrZWQgPSAhIXUuYWRtaW47 CiAgICAgIHZhciBsb2NrQWRtaW4gPSAoaXNNZSAmJiB1LmFkbWluKSB8fCAodS5hZG1pbiAmJiBh ZG1pbkNvdW50KCkgPD0gMSk7CiAgICAgIHZhciBOT19LID0gIkVyc3QgZWluZSBnw7xsdGlnZSBO Vy1LZW5udW5nIGVpbnRyYWdlbiDigJQgZGFubiBpc3QgZGllIFJvbGxlIHNldHpiYXIuIjsKICAg ICAgZnVuY3Rpb24gYXBwbHlSb2xlRW5hYmxlKCkgewogICAgICAgIHZhciBvayA9IHZhbGlkS2Vu bnVuZyh1KTsKICAgICAgICByY2IuZGlzYWJsZWQgPSAhb2s7IHJjYi50aXRsZSA9IG9rID8gIiIg OiBOT19LOwogICAgICAgIGFjYi5kaXNhYmxlZCA9ICFvayB8fCBsb2NrQWRtaW47CiAgICAgICAg YWNiLnRpdGxlID0gbG9ja0FkbWluID8gIk1pbmRlc3RlbnMgZWluIEFkbWluIG11c3MgYmxlaWJl bjsgZWlnZW5lIEFkbWluLVJlY2h0ZSBuaWNodCBzZWxic3QgZW50emllaGJhci4iIDogKG9rID8g IiIgOiBOT19LKTsKICAgICAgfQogICAgICBhcHBseVJvbGVFbmFibGUoKTsKICAgICAgcmNiLmFk ZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uICgpIHsgaWYgKGd1YXJkUm9sZShyY2Is ICJyZWRha3RldXIiKSkgcGVyc2lzdCh0cnVlKTsgfSk7CiAgICAgIHRyLmFwcGVuZENoaWxkKGVs KCJ0ZCIsIHsgY2xhc3M6ICJwbC1jIiB9LCBbcmNiXSkpOwogICAgICBhY2IuYWRkRXZlbnRMaXN0 ZW5lcigiY2hhbmdlIiwgZnVuY3Rpb24gKCkgeyBpZiAoZ3VhcmRSb2xlKGFjYiwgImFkbWluIikp IHBlcnNpc3QodHJ1ZSk7IH0pOwogICAgICB0ci5hcHBlbmRDaGlsZChlbCgidGQiLCB7IGNsYXNz OiAicGwtYyIgfSwgW2FjYl0pKTsKICAgICAgLy8gTG9lc2NoZW4KICAgICAgdmFyIGRlbCA9IGVs KCJidXR0b24iLCB7IGNsYXNzOiAibWluaS1idG4iLCB0aXRsZTogIkF1cyBkZXIgUGVyc29uYWxs aXN0ZSBlbnRmZXJuZW4iLCBodG1sOiBpYygidHJhc2giKSwKICAgICAgICBvbmNsaWNrOiBmdW5j dGlvbiAoKSB7CiAgICAgICAgICBpZiAoaXNNZSAmJiB1LmFkbWluKSB7IFAudG9hc3QoIkR1IGth bm5zdCBkaWNoIG5pY2h0IHNlbGJzdCBlbnRmZXJuZW4uIik7IHJldHVybjsgfQogICAgICAgICAg aWYgKHUuYWRtaW4gJiYgYWRtaW5Db3VudCgpIDw9IDEpIHsgUC50b2FzdCgiTWluZGVzdGVucyBl aW4gQWRtaW4gbXVzcyBibGVpYmVuLiIpOyByZXR1cm47IH0KICAgICAgICAgIFAuY29uZmlybSgi 4oCeIiArIChqb2luTmFtZSh1KSB8fCB1Lmtlbm51bmcpICsgIuKAnCBhdXMgZGVyIFBlcnNvbmFs bGlzdGUgZW50ZmVybmVuPyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdXNlcnMgPSB1c2Vy cy5maWx0ZXIoZnVuY3Rpb24gKHgpIHsgcmV0dXJuIHggIT09IHU7IH0pOyBwZXJzaXN0KHRydWUp OwogICAgICAgICAgfSwgeyBkYW5nZXI6IHRydWUgfSk7CiAgICAgICAgfSB9KTsKICAgICAgdHIu YXBwZW5kQ2hpbGQoZWwoInRkIiwgeyBjbGFzczogInBsLWMiIH0sIFtkZWxdKSk7CiAgICAgIHRi LmFwcGVuZENoaWxkKHRyKTsKICAgIH0pOwogICAgdGJsLmFwcGVuZENoaWxkKHRiKTsKICAgIGJv ZHkuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJwbC10Ymx3cmFwIiB9LCBbdGJsXSkp OwogICAgaWYgKCF1c2Vycy5sZW5ndGgpIGJvZHkuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xh c3M6ICJtdXRlZCIsIHRleHQ6ICJOb2NoIGtlaW5lIFBlcnNvbmVuLiIgfSkpOwoKICAgIC8vIEhp bnp1ZnVlZ2VuCiAgICB2YXIga0luID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHBsYWNl aG9sZGVyOiAiTlctS2VubnVuZyIsIGNsYXNzOiAicGwtYWRkLWsiIH0pOwogICAgdmFyIGdJbiA9 IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCBwbGFjZWhvbGRlcjogIkRpZW5zdGdyYWQiLCBj bGFzczogInBsLWFkZC1nIiB9KTsKICAgIHZhciB2SW4gPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJ0 ZXh0IiwgcGxhY2Vob2xkZXI6ICJWb3JuYW1lIiwgY2xhc3M6ICJwbC1hZGQtdiIgfSk7CiAgICB2 YXIgbkluID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHBsYWNlaG9sZGVyOiAiTmFjaG5h bWUiLCBjbGFzczogInBsLWFkZC1uIiB9KTsKICAgIHZhciByQ2IgPSBlbCgiaW5wdXQiLCB7IHR5 cGU6ICJjaGVja2JveCIsIHRpdGxlOiAiUmVkYWt0ZXVyIiB9KTsKICAgIHZhciBhQ2IgPSBlbCgi aW5wdXQiLCB7IHR5cGU6ICJjaGVja2JveCIsIHRpdGxlOiAiQWRtaW4iIH0pOwogICAgdmFyIGFk ZEJ0biA9IGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYnRuIHByaW1hcnkiLCBodG1sOiBpYygicGx1 cyIpICsgIiBIaW56dWbDvGdlbiIsCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsKICAgICAg ICB2YXIgayA9IChrSW4udmFsdWUgfHwgIiIpLnRyaW0oKTsKICAgICAgICB2YXIgbm4gPSAobklu LnZhbHVlIHx8ICIiKS50cmltKCksIGdnID0gKGdJbi52YWx1ZSB8fCAiIikudHJpbSgpLCB2diA9 ICh2SW4udmFsdWUgfHwgIiIpLnRyaW0oKTsKICAgICAgICB2YXIgd2FudHNSb2xlID0gISFyQ2Iu Y2hlY2tlZCB8fCAhIWFDYi5jaGVja2VkOwogICAgICAgIGlmIChrICYmICFLUkUudGVzdChrKSkg eyBQLnRvYXN0KCJVbmfDvGx0aWdlIE5XLUtlbm51bmcgKDLigJMzMiBaZWljaGVuOiBB4oCTWiAw 4oCTOSBfKS4iKTsgcmV0dXJuOyB9CiAgICAgICAgaWYgKCFrICYmIHdhbnRzUm9sZSkgeyBQLnRv YXN0KCJGw7xyIGVpbmUgUm9sbGUgKFJlZGFrdGV1ci9BZG1pbikgaXN0IGVpbmUgZ8O8bHRpZ2Ug TlctS2VubnVuZyBuw7Z0aWcuIik7IHJldHVybjsgfQogICAgICAgIGlmICghayAmJiAhbm4pIHsg UC50b2FzdCgiQml0dGUgbWluZGVzdGVucyBOVy1LZW5udW5nIG9kZXIgTmFjaG5hbWUgYW5nZWJl bi4iKTsgcmV0dXJuOyB9CiAgICAgICAgaWYgKGsgJiYgdXNlcnMuc29tZShmdW5jdGlvbiAoeCkg eyByZXR1cm4gKHgua2VubnVuZyB8fCAiIikudG9Mb3dlckNhc2UoKSA9PT0gay50b0xvd2VyQ2Fz ZSgpOyB9KSkgeyBQLnRvYXN0KCJEaWVzZSBLZW5udW5nIGlzdCBiZXJlaXRzIGluIGRlciBMaXN0 ZS4iKTsgcmV0dXJuOyB9CiAgICAgICAgdXNlcnMucHVzaCh7IGtlbm51bmc6IGssIGdyYWQ6IGdn LCB2b3JuYW1lOiB2diwgbmFjaG5hbWU6IG5uLCByZWRha3RldXI6ICEhckNiLmNoZWNrZWQsIGFk bWluOiAhIWFDYi5jaGVja2VkIH0pOwogICAgICAgIHBlcnNpc3QodHJ1ZSk7CiAgICAgIH0gfSk7 CiAgICBib2R5LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAicGwtYWRkIiB9LCBbCiAg ICAgIGtJbiwgZ0luLCB2SW4sIG5JbiwKICAgICAgZWwoImxhYmVsIiwgeyBjbGFzczogInBsLWFk ZC1jYiIgfSwgW3JDYiwgZWwoInNwYW4iLCB7IHRleHQ6ICJSZWQuIiB9KV0pLAogICAgICBlbCgi bGFiZWwiLCB7IGNsYXNzOiAicGwtYWRkLWNiIiB9LCBbYUNiLCBlbCgic3BhbiIsIHsgdGV4dDog IkFkbWluIiB9KV0pLAogICAgICBhZGRCdG4KICAgIF0pKTsKICB9CgogIGZ1bmN0aW9uIHNjaGVk dWxlU2F2ZSgpIHsgaWYgKHNhdmVUaW1lcikgY2xlYXJUaW1lb3V0KHNhdmVUaW1lcik7IHNhdmVU aW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBzYXZlVGltZXIgPSBudWxsOyBwZXJzaXN0 KGZhbHNlKTsgfSwgNzAwKTsgfQoKICBmdW5jdGlvbiBwZXJzaXN0KHJlbG9hZEFmdGVyKSB7CiAg ICAvLyAxKSBQZXJzb25lbnNwZWljaGVyID0gQUxMRSBQZXJzb25lbiAoYXVjaCBvaG5lIFJvbGxl L0tlbm51bmcpIC0+IHBlcnNvbmFsLmpzb24KICAgIHZhciByb3N0ZXIgPSB1c2Vycy5tYXAoZnVu Y3Rpb24gKHUpIHsgcmV0dXJuIHsga2VubnVuZzogKHUua2VubnVuZyB8fCAiIikudHJpbSgpLCBn cmFkOiAodS5ncmFkIHx8ICIiKS50cmltKCksIHZvcm5hbWU6ICh1LnZvcm5hbWUgfHwgIiIpLnRy aW0oKSwgbmFjaG5hbWU6ICh1Lm5hY2huYW1lIHx8ICIiKS50cmltKCkgfTsgfSkKICAgICAgLmZp bHRlcihmdW5jdGlvbiAodSkgeyByZXR1cm4gdS5rZW5udW5nIHx8IHUuZ3JhZCB8fCB1LnZvcm5h bWUgfHwgdS5uYWNobmFtZTsgfSk7CiAgICAvLyAyKSBSb2xsZW5saXN0ZW4gbnVyIGZ1ZXIgUGVy c29uZW4gbWl0IGd1ZWx0aWdlciBLZW5udW5nIChhZG1pbnMudHh0L3JlZGFrdGV1cmUudHh0KQog ICAgdmFyIHJlZGFrcyA9IHVzZXJzLmZpbHRlcihmdW5jdGlvbiAodSkgeyByZXR1cm4gdS5yZWRh a3RldXIgJiYgdmFsaWRLZW5udW5nKHUpOyB9KS5tYXAoZnVuY3Rpb24gKHUpIHsgcmV0dXJuIHsg a2VubnVuZzogdS5rZW5udW5nLnRyaW0oKSwgbmFtZTogam9pbk5hbWUodSkgfTsgfSk7CiAgICB2 YXIgYWRtaW5zID0gdXNlcnMuZmlsdGVyKGZ1bmN0aW9uICh1KSB7IHJldHVybiB1LmFkbWluICYm IHZhbGlkS2VubnVuZyh1KTsgfSkubWFwKGZ1bmN0aW9uICh1KSB7IHJldHVybiB7IGtlbm51bmc6 IHUua2VubnVuZy50cmltKCksIG5hbWU6IGpvaW5OYW1lKHUpIH07IH0pOwogICAgLy8gRHJlaSBV TkFCSEFFTkdJR0UgU3BlaWNoZXJ6aWVsZTogZWluIEZlaGxlciBiZWkgZWluZW0gKHouQi4gYWx0 ZXIgSGVsZmVyIG9obmUgcGVyc29uYWwtCiAgICAvLyBFbmRwb2ludCwgb2RlciBBZG1pbi1Mb2Nr b3V0KSBkYXJmIGRpZSBhbmRlcmVuIE5JQ0hUIGJsb2NraWVyZW4gLT4gc29uc3QgZ2VoZW4gUm9s bGVuIHZlcmxvcmVuLgogICAgUHJvbWlzZS5hbGwoWwogICAgICBzYXZlTGlzdCgicGVyc29uYWwi LCByb3N0ZXIpLAogICAgICBzYXZlTGlzdCgicmVkYWt0ZXVyIiwgcmVkYWtzKSwKICAgICAgc2F2 ZUxpc3QoImFkbWluIiwgYWRtaW5zKQogICAgXSkudGhlbihmdW5jdGlvbiAob2tzKSB7CiAgICAg IGlmIChva3NbMV0gJiYgb2tzWzJdKSB7IHN5bmNUZWFtVG9TZXR0aW5ncygpOyBQLnRvYXN0KCJH ZXNwZWljaGVydC4gV2lya3QgYmVpbSBuw6RjaHN0ZW4gSGVsZmVyLVN0YXJ0LiIpOyB9CiAgICAg IGVsc2UgaWYgKG9rc1sxXSB8fCBva3NbMl0pIFAudG9hc3QoIlRlaWx3ZWlzZSBnZXNwZWljaGVy dCDigJQgc2llaGUgTWVsZHVuZyhlbikuIiwgdHJ1ZSk7CiAgICAgIGlmIChyZWxvYWRBZnRlcikg cmVsb2FkKCk7CiAgICB9KTsKICB9CiAgLy8gQW56ZWlnZW5hbWVuIGRlciBSb2xsZW5pbmhhYmVy IChPSE5FIE5vdGZhbGwtS2VubnVuZ2VuID0gImljaCIvRGV2KSBsZXNlci1zaWNodGJhciBuYWNo CiAgLy8gc2V0dGluZ3MudGVhbSB2ZXJvZWZmZW50bGljaGVuIC0+IGRhcyBJbXByZXNzdW0gbGlz dGV0IFJlZGFrdGlvbi9BZG1pbmlzdHJhdGlvbiBhdXRvbWF0aXNjaC4KICBmdW5jdGlvbiBzeW5j VGVhbVRvU2V0dGluZ3MoKSB7CiAgICBpZiAoIVAuY29udGVudCB8fCAhUC5jb250ZW50LnNldHRp bmdzKSByZXR1cm47CiAgICB2YXIgZW1lcmcgPSB7fTsgKChzdGF0ZSAmJiBzdGF0ZS5lbWVyZ2Vu Y3kpIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7IGVtZXJnW1N0cmluZyhrKS50b0xvd2Vy Q2FzZSgpXSA9IDE7IH0pOwogICAgZnVuY3Rpb24gZGlzcCh1KSB7IHJldHVybiB7IGdyYWQ6IHUu Z3JhZCB8fCAiIiwgdm9ybmFtZTogdS52b3JuYW1lIHx8ICIiLCBuYWNobmFtZTogdS5uYWNobmFt ZSB8fCAiIiwga2VubnVuZzogdS5rZW5udW5nIHx8ICIiIH07IH0KICAgIGZ1bmN0aW9uIHBpY2so ZmxhZykgeyByZXR1cm4gdXNlcnMuZmlsdGVyKGZ1bmN0aW9uICh1KSB7IHJldHVybiB1W2ZsYWdd ICYmICFlbWVyZ1sodS5rZW5udW5nIHx8ICIiKS50b0xvd2VyQ2FzZSgpXTsgfSkubWFwKGRpc3Ap OyB9CiAgICB2YXIgdGVhbSA9IHsgYWRtaW5zOiBwaWNrKCJhZG1pbiIpLCByZWRha3RldXJlOiBw aWNrKCJyZWRha3RldXIiKSB9OwogICAgaWYgKEpTT04uc3RyaW5naWZ5KHRlYW0pID09PSBKU09O LnN0cmluZ2lmeShQLmNvbnRlbnQuc2V0dGluZ3MudGVhbSB8fCBudWxsKSkgcmV0dXJuOyAgIC8v IHVudmVyYWVuZGVydCAtPiBrZWluIFJlLVB1Ymxpc2gKICAgIFAuY29udGVudC5zZXR0aW5ncy50 ZWFtID0gdGVhbTsKICAgIGlmIChQLnBlcnNpc3QpIFAucGVyc2lzdCgpOyAgIC8vIHZlcm9lZmZl bnRsaWNodCBkYXRhLWNvbnRlbnQuanMgKGlua2wuIHNldHRpbmdzLnRlYW0pCiAgfQogIC8vIFNw ZWljaGVydCBFSU5FIExpc3RlOyBnaWJ0IFByb21pc2U8Ym9vbGVhbj4gKEVyZm9sZykgenVydWVj ayB1bmQgYmxvY2tpZXJ0IGRpZSBhbmRlcmVuIG5pY2h0LgogIGZ1bmN0aW9uIHNhdmVMaXN0KHdo aWNoLCBlbnRyaWVzKSB7CiAgICB2YXIgcGZ4ID0gd2hpY2ggPT09ICJwZXJzb25hbCIgPyAiUGVy c29uZW5zcGVpY2hlcjogIiA6IHdoaWNoID09PSAiYWRtaW4iID8gIkFkbWluLUxpc3RlOiAiIDog IlJlZGFrdGV1ci1MaXN0ZTogIjsKICAgIHJldHVybiBmZXRjaCgiL2FwaS9hZG1pbi9yb2xlcyIs IHsgbWV0aG9kOiAiUE9TVCIsIGhlYWRlcnM6IHsgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlv bi9qc29uIiB9LCBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGxpc3Q6IHdoaWNoLCBlbnRyaWVzOiBl bnRyaWVzIH0pIH0pCiAgICAgIC50aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiByLmpzb24oKS50 aGVuKGZ1bmN0aW9uIChqKSB7IHJldHVybiB7IHN0YXR1czogci5zdGF0dXMsIGo6IGogfTsgfSwg ZnVuY3Rpb24gKCkgeyByZXR1cm4geyBzdGF0dXM6IHIuc3RhdHVzLCBqOiBudWxsIH07IH0pOyB9 KQogICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5qICYmIHJlcy5q Lm9rKSByZXR1cm4gdHJ1ZTsKICAgICAgICBQLnRvYXN0KHBmeCArICgocmVzLmogJiYgcmVzLmou ZXJyb3IpIHx8ICgiU3BlaWNoZXJuIGZlaGxnZXNjaGxhZ2VuICgiICsgcmVzLnN0YXR1cyArICIp LiIpKSwgdHJ1ZSk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9KQogICAgICAuY2F0Y2go ZnVuY3Rpb24gKCkgeyBQLnRvYXN0KHBmeCArICJTcGVpY2hlcm4gZmVobGdlc2NobGFnZW4gKFZl cmJpbmR1bmcpLiIsIHRydWUpOyByZXR1cm4gZmFsc2U7IH0pOwogIH0KICBmdW5jdGlvbiByZWxv YWQoKSB7CiAgICBmZXRjaCgiL2FwaS9hZG1pbi9yb2xlcyIpLnRoZW4oZnVuY3Rpb24gKHIpIHsg cmV0dXJuIHIuanNvbigpOyB9KS50aGVuKGZ1bmN0aW9uIChqKSB7IGlmIChqICYmIGoub2spIHsg c3RhdGUgPSBqOyB1c2VycyA9IGJ1aWxkVXNlcnMoc3RhdGUpOyByZW5kZXIoKTsgfSB9KS5jYXRj aChmdW5jdGlvbiAoKSB7fSk7CiAgfQoKfSkod2luZG93LlApOwo= ### FILE: assets/js/admin/settings.js | 24962 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgYWRtaW4vc2V0dGluZ3MuanMKICAg QWRtaW4tS29uc29sZTogcG9ydGFsd2VpdGUgRWluc3RlbGx1bmdlbiAoUE9SVEFMX1NFVFRJTkdT KSBiZWFyYmVpdGVuLgogICBEYXRlbmdldHJpZWJlbmUgVGFiLUtvbnNvbGUgKFBoYXNlIDEzIOKA lCDigJ5hbGxlcyBlaW5zdGVsbGJhciIpOiBqZWRlIFNla3Rpb24KICAgd2lyZCBhdXMgZWluZXIg UmVnaXN0cnkgZXJ6ZXVndCAoUC5VSV9URVhUUywgUC5ERVNJR05fVE9LRU5TLCBQLlVJX1ZBUlMs CiAgIFAuTU9EVUxFX1ZBUlMpLiBMaXZlLVZvcnNjaGF1IHVlYmVyIGRpcmVrdGUgRE9NLS88c3R5 bGU+LVVwZGF0ZXMgYXVmIGRlcgogICBBcmJlaXRza29waWUgUzsgU3BlaWNoZXJuIHNjaHJlaWJ0 IFAuY29udGVudC5zZXR0aW5ncyArIHZlcm9lZmZlbnRsaWNodC4KICAgU2ljaGVyaGVpdHMtS2Vy biAoSFRNTC1TYW5pdGl6ZXIsIGNvbnRyYWN0Lmpzb24pIGlzdCBiZXd1c3N0IE5JQ0hUIGVkaXRp ZXJiYXIuCiAgIE51ciBBZG1pbi4gS2xhc3Npc2NoZXMgPHNjcmlwdD4sIGtlaW5lIEVTLU1vZHVs ZS4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKICB2 YXIgZWwgPSBQLmVsLCAkID0gUC4kLCBpYyA9IFAuaWMsIGVzYyA9IFAuZXNjYXBlSHRtbDsKCiAg UC5vcGVuU2V0dGluZ3MgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoUC5yb2xlICE9PSAiYWRtaW4i KSB7IFAudG9hc3QoIkVpbnN0ZWxsdW5nZW4gc2luZCBBZG1pbnMgdm9yYmVoYWx0ZW4uIik7IHJl dHVybjsgfQogICAgdmFyIFMgPSBQLmNsb25lKFAuY29udGVudC5zZXR0aW5ncyB8fCBQLmRlZmF1 bHRTZXR0aW5ncygpKTsKICAgIGlmICghUy5icmFuZGluZykgUy5icmFuZGluZyA9IFAuZGVmYXVs dFNldHRpbmdzKCkuYnJhbmRpbmc7CiAgICBpZiAoIVMubGFnZVByZXNldHMpIFMubGFnZVByZXNl dHMgPSBbXTsKICAgIFAubm9ybWFsaXplU2V0dGluZ3MoUyk7CgogICAgdmFyIGFjdGl2ZSA9ICJ0 ZXh0cyIsIGJyYW5kRXJyID0gbnVsbDsKCiAgICAvKiAtLS0tLS0tLS0tIEJhdXN0ZWluZSAtLS0t LS0tLS0tICovCiAgICBmdW5jdGlvbiBoZWFkKHBhbmUsIHRpdGxlLCBkZXNjKSB7CiAgICAgIHBh bmUuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJhZG0tc2VjaGVhZCIgfSwgWwogICAg ICAgIGVsKCJoMyIsIHsgdGV4dDogdGl0bGUgfSksCiAgICAgICAgZGVzYyA/IGVsKCJwIiwgeyB0 ZXh0OiBkZXNjIH0pIDogZWwoInNwYW4iKQogICAgICBdKSk7CiAgICB9CiAgICBmdW5jdGlvbiBn cm91cEJveChwYW5lLCB0aXRsZSkgewogICAgICB2YXIgZyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAi YWRtLWdyb3VwIiB9KTsKICAgICAgaWYgKHRpdGxlKSBnLmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7 IGNsYXNzOiAiYWRtLWdyb3VwLWgiLCB0ZXh0OiB0aXRsZSB9KSk7CiAgICAgIHBhbmUuYXBwZW5k Q2hpbGQoZyk7IHJldHVybiBnOwogICAgfQogICAgZnVuY3Rpb24gZmllbGRSb3cobGFiZWwsIGNv bnRyb2wsIGhpbnQpIHsKICAgICAgdmFyIGtpZHMgPSBbZWwoImxhYmVsIiwgeyB0ZXh0OiBsYWJl bCB9KSwgY29udHJvbF07CiAgICAgIGlmIChoaW50KSBraWRzLnB1c2goZWwoInNwYW4iLCB7IGNs YXNzOiAiaGludCIsIHRleHQ6IGhpbnQgfSkpOwogICAgICByZXR1cm4gZWwoImRpdiIsIHsgY2xh c3M6ICJmaWVsZCIgfSwga2lkcyk7CiAgICB9CiAgICBmdW5jdGlvbiByZXNldEJ0bihsYWJlbCwg Zm4pIHsKICAgICAgcmV0dXJuIGVsKCJidXR0b24iLCB7IHR5cGU6ICJidXR0b24iLCBjbGFzczog ImJ0biBnaG9zdCIsIGh0bWw6IGljKCJ4IikgKyAiPHNwYW4+IiArIGVzYyhsYWJlbCkgKyAiPC9z cGFuPiIsIG9uY2xpY2s6IGZuIH0pOwogICAgfQogICAgZnVuY3Rpb24gcHJldmlld1Rva2Vucygp IHsgUC5hcHBseU92ZXJyaWRlQ3NzKFMudWkpOyB9CiAgICBmdW5jdGlvbiB0b0hleCh2KSB7IHJl dHVybiAvXiMoWzAtOWEtZl17M318WzAtOWEtZl17Nn0pJC9pLnRlc3QodikgPyB2IDogIiM4ODg4 ODgiOyB9CgogICAgLyogLS0tLS0tLS0tLSBTZWt0aW9uOiBCZXNjaHJpZnR1bmdlbiAoQUxMRSBM YWJlbHMsIGRhdGVuZ2V0cmllYmVuKSAtLS0tLS0tLS0tICovCiAgICBmdW5jdGlvbiBwcmV2aWV3 VGV4dChrZXksIGRlZikgewogICAgICB2YXIgdiA9IChTLnVpLnRleHRzW2tleV0gIT0gbnVsbCAm JiBTLnVpLnRleHRzW2tleV0gIT09ICIiKSA/IFMudWkudGV4dHNba2V5XSA6IGRlZjsKICAgICAg Ly8gZHluYW1pc2NoZSBVSV9URVhUUyBtaXQgc2VsCiAgICAgIFAuVUlfVEVYVFMuZm9yRWFjaChm dW5jdGlvbiAoZCkgeyBpZiAoZC5rZXkgPT09IGtleSAmJiBkLnNlbCkgeyB2YXIgbiA9ICQoZC5z ZWwpOyBpZiAobikgeyBpZiAoZC5hdHRyKSBuLnNldEF0dHJpYnV0ZShkLmF0dHIsIHYpOyBlbHNl IG4udGV4dENvbnRlbnQgPSB2OyB9IH0gfSk7CiAgICAgIC8vIHN0YXRpc2NoZSBMYWJlbHMgbWl0 IGRhdGEtdGtleSAoZWluZSBvZGVyIG1laHJlcmUgU3RlbGxlbikKICAgICAgdmFyIG5vZGVzID0g ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtdGtleT0iJyArIGtleSArICciXScpOwog ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7IHZhciBuMiA9IG5v ZGVzW2ldLCBhID0gbjIuZ2V0QXR0cmlidXRlKCJkYXRhLXRhdHRyIikgfHwgIiI7IGlmIChhKSBu Mi5zZXRBdHRyaWJ1dGUoYSwgdik7IGVsc2UgbjIudGV4dENvbnRlbnQgPSB2OyB9CiAgICB9CiAg ICBmdW5jdGlvbiBzZWNUZXh0cyhwYW5lKSB7CiAgICAgIGhlYWQocGFuZSwgIkJlc2NocmlmdHVu Z2VuIiwgIkFsbGUgc2ljaHRiYXJlbiBUZXh0ZSBkZXIgT2JlcmZsw6RjaGUuIExlZXIgPSBTdGFu ZGFyZC4iKTsKICAgICAgdmFyIGl0ZW1zID0gUC5hbGxUZXh0cygpOwogICAgICB2YXIgZyA9IGdy b3VwQm94KHBhbmUsICJUZXh0ZSAoIiArIGl0ZW1zLmxlbmd0aCArICIpIik7IHZhciBncmlkID0g ZWwoImRpdiIsIHsgY2xhc3M6ICJhZG0tZ3JpZDIiIH0pOyBnLmFwcGVuZENoaWxkKGdyaWQpOwog ICAgICBpdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7CiAgICAgICAgdmFyIGlucCA9IGVsKCJp bnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogUy51aS50ZXh0c1tkLmtleV0gfHwgIiIsIHBs YWNlaG9sZGVyOiAiU3RhbmRhcmQ6ICIgKyBkLmRlZiwKICAgICAgICAgIG9uaW5wdXQ6IGZ1bmN0 aW9uICgpIHsgdmFyIHYgPSB0aGlzLnZhbHVlOyBpZiAodiAhPT0gIiIpIFMudWkudGV4dHNbZC5r ZXldID0gdjsgZWxzZSBkZWxldGUgUy51aS50ZXh0c1tkLmtleV07IHByZXZpZXdUZXh0KGQua2V5 LCBkLmRlZik7IH0gfSk7CiAgICAgICAgZ3JpZC5hcHBlbmRDaGlsZChmaWVsZFJvdyhkLmxhYmVs LCBpbnApKTsKICAgICAgfSk7CiAgICAgIGcuYXBwZW5kQ2hpbGQocmVzZXRCdG4oIlRleHRlIHp1 csO8Y2tzZXR6ZW4iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgUy51aS50ZXh0cyA9IHt9OyBpdGVt cy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7IHByZXZpZXdUZXh0KGQua2V5LCBkLmRlZik7IH0pOyBy ZW5kZXJQYW5lKCk7CiAgICAgIH0pKTsKICAgIH0KCiAgICAvKiAtLS0tLS0tLS0tIFNla3Rpb246 IE1hcmtlICYgTG9nbyAtLS0tLS0tLS0tICovCiAgICBmdW5jdGlvbiBwcmV2aWV3QnJhbmQoc3cp IHsKICAgICAgdmFyIHYgPSBTLmJyYW5kaW5nLmJyYW5kQ29sb3IsIHJvb3QgPSBkb2N1bWVudC5k b2N1bWVudEVsZW1lbnQuc3R5bGU7CiAgICAgIGlmICh2KSB7CiAgICAgICAgcm9vdC5zZXRQcm9w ZXJ0eSgiLS1icmFuZCIsIHYpOwogICAgICAgIHJvb3Quc2V0UHJvcGVydHkoIi0tYnJhbmQtMiIs IFMuYnJhbmRpbmcuYnJhbmRDb2xvcjIgfHwgKCJjb2xvci1taXgoaW4gb2tsY2gsICIgKyB2ICsg IiA4MiUsIGJsYWNrKSIpKTsKICAgICAgICByb290LnNldFByb3BlcnR5KCItLWhlYWRlci1iZyIs ICJsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCBjb2xvci1taXgoaW4gb2tsY2gsICIgKyB2ICsgIiA0 MiUsIGJsYWNrKSwgY29sb3ItbWl4KGluIG9rbGNoLCAiICsgdiArICIgMjYlLCBibGFjaykpIik7 CiAgICAgIH0gZWxzZSB7IFAuYXBwbHlCcmFuZENvbG9ycygpOyB9CiAgICAgIGlmIChzdykgc3cu c3R5bGUuYmFja2dyb3VuZCA9IHYgfHwgInZhcigtLWJyYW5kKSI7CiAgICB9CiAgICBmdW5jdGlv biBzZWNCcmFuZChwYW5lKSB7CiAgICAgIGhlYWQocGFuZSwgIk1hcmtlICYgTG9nbyIsICJOYW1l LCBVbnRlcnRpdGVsLCBNYXJrZW5mYXJiZSB1bmQgTG9nby4iKTsKICAgICAgdmFyIGcgPSBncm91 cEJveChwYW5lLCAiQmVzY2hyaWZ0dW5nIik7CiAgICAgIGZ1bmN0aW9uIGJGaWVsZChsYWJlbCwg a2V5KSB7CiAgICAgICAgdmFyIGlucCA9IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1 ZTogUy5icmFuZGluZ1trZXldIHx8ICIiLAogICAgICAgICAgb25pbnB1dDogZnVuY3Rpb24gKCkg eyBTLmJyYW5kaW5nW2tleV0gPSB0aGlzLnZhbHVlOyBpZiAoa2V5ID09PSAiYnJhbmROYW1lIikg eyB2YXIgYm4gPSAkKCIuYnJhbmQtbmFtZSBiIik7IGlmIChibikgYm4udGV4dENvbnRlbnQgPSB0 aGlzLnZhbHVlOyB9IGlmIChrZXkgPT09ICJicmFuZFN1YnRpdGxlIikgeyB2YXIgYnMgPSAkKCIu YnJhbmQtbmFtZSBzcGFuIik7IGlmIChicykgYnMudGV4dENvbnRlbnQgPSB0aGlzLnZhbHVlOyB9 IH0gfSk7CiAgICAgICAgZy5hcHBlbmRDaGlsZChmaWVsZFJvdyhsYWJlbCwgaW5wKSk7CiAgICAg IH0KICAgICAgYkZpZWxkKCJCcm93c2VyLS9QREYtVGl0ZWwiLCAicG9ydGFsVGl0bGUiKTsKICAg ICAgYkZpZWxkKCJNYXJrZW5uYW1lIChLb3BmemVpbGUpIiwgImJyYW5kTmFtZSIpOwogICAgICBi RmllbGQoIlVudGVydGl0ZWwiLCAiYnJhbmRTdWJ0aXRsZSIpOwogICAgICBiRmllbGQoIlBERi1E cnVja2Z1w58iLCAicHJpbnRGb290ZXIiKTsKICAgICAgYnJhbmRFcnIgPSBlbCgiZGl2IiwgeyBj bGFzczogImVyciIsIGhpZGRlbjogImhpZGRlbiIgfSk7IGcuYXBwZW5kQ2hpbGQoYnJhbmRFcnIp OwoKICAgICAgdmFyIGdjID0gZ3JvdXBCb3gocGFuZSwgIk1hcmtlbmZhcmJlIChDRCkiKTsKICAg ICAgdmFyIHN3ID0gZWwoInNwYW4iLCB7IGNsYXNzOiAiY2F0LXN3YXRjaCIsIHN0eWxlOiAiYmFj a2dyb3VuZDoiICsgKFMuYnJhbmRpbmcuYnJhbmRDb2xvciB8fCAidmFyKC0tYnJhbmQpIikgfSk7 CiAgICAgIHZhciBjb2xvckluID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHZhbHVlOiBT LmJyYW5kaW5nLmJyYW5kQ29sb3IgfHwgIiIsIHBsYWNlaG9sZGVyOiAibGVlciA9IFN0YW5kYXJk IMK3IHouIEIuICMxNDUyOWIgb2RlciBva2xjaCgwLjUgMC4xMyAyNTIpIiwKICAgICAgICBvbmlu cHV0OiBmdW5jdGlvbiAoKSB7IFMuYnJhbmRpbmcuYnJhbmRDb2xvciA9IHRoaXMudmFsdWUudHJp bSgpOyBwcmV2aWV3QnJhbmQoc3cpOyB9IH0pOwogICAgICBnYy5hcHBlbmRDaGlsZChlbCgiZGl2 IiwgeyBjbGFzczogImZpZWxkIiB9LCBbZWwoImxhYmVsIiwgeyB0ZXh0OiAiTWFya2VuZmFyYmUi IH0pLCBlbCgiZGl2IiwgeyBjbGFzczogInNldC1jb2xvciIgfSwgW3N3LCBjb2xvckluXSldKSk7 CiAgICAgIGdjLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImhpbnQiLCB0ZXh0OiAi RXhha3RlbiBCZWjDtnJkZW4tQ0QtRmFyYndlcnQgaGllciBlaW50cmFnZW4uIEhhdCBWb3JyYW5n IHZvciBkZW0gLS1icmFuZC1GYXJidG9rZW4uIiB9KSk7CgogICAgICB2YXIgZ2wgPSBncm91cEJv eChwYW5lLCAiTG9nbyIpOwogICAgICB2YXIgbG9nb1ByZXYgPSBlbCgiaW1nIiwgeyBjbGFzczog InNldC1sb2dvLXByZXYiLCBhbHQ6ICIiLCBzcmM6IFMuYnJhbmRpbmcubG9nb1VybCB8fCAiYXNz ZXRzL2ltZy9wb2xpemVpc3Rlcm4ucG5nIiB9KTsKICAgICAgdmFyIGxvZ29JbiA9IGVsKCJpbnB1 dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogUy5icmFuZGluZy5sb2dvVXJsIHx8ICIiLCBwbGFj ZWhvbGRlcjogImxlZXIgPSBTdGFuZGFyZCAoYXNzZXRzL2ltZy9wb2xpemVpc3Rlcm4ucG5nKSIs CiAgICAgICAgb25pbnB1dDogZnVuY3Rpb24gKCkgeyBTLmJyYW5kaW5nLmxvZ29VcmwgPSB0aGlz LnZhbHVlLnRyaW0oKTsgbG9nb1ByZXYuc3JjID0gUy5icmFuZGluZy5sb2dvVXJsIHx8ICJhc3Nl dHMvaW1nL3BvbGl6ZWlzdGVybi5wbmciOyB9IH0pOwogICAgICB2YXIgdXAgPSBlbCgiYnV0dG9u IiwgeyB0eXBlOiAiYnV0dG9uIiwgY2xhc3M6ICJidG4gZ2hvc3QiLCBodG1sOiBpYygidXBsb2Fk IikgKyAiPHNwYW4+IEhvY2hsYWRlbuKApjwvc3Bhbj4iLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0 aW9uICgpIHsKICAgICAgICAgIHZhciBmaSA9IGVsKCJpbnB1dCIsIHsgdHlwZTogImZpbGUiLCBh Y2NlcHQ6ICJpbWFnZS8qIiwgc3R5bGU6ICJkaXNwbGF5Om5vbmUiLAogICAgICAgICAgICBvbmNo YW5nZTogZnVuY3Rpb24gKCkgeyB2YXIgZiA9IHRoaXMuZmlsZXMgJiYgdGhpcy5maWxlc1swXTsg aWYgKCFmKSByZXR1cm47IHVwLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAgICAgICBQLnVwbG9h ZEFzc2V0KGYsIGZ1bmN0aW9uIChlMiwgcmVzKSB7IHVwLmRpc2FibGVkID0gZmFsc2U7IGlmIChl MiB8fCAhcmVzIHx8ICFyZXMub2spIHsgUC50b2FzdCgiTG9nby1VcGxvYWQgZmVobGdlc2NobGFn ZW4uIiwgdHJ1ZSk7IHJldHVybjsgfQogICAgICAgICAgICAgICAgUy5icmFuZGluZy5sb2dvVXJs ID0gcmVzLnBhdGg7IGxvZ29Jbi52YWx1ZSA9IHJlcy5wYXRoOyBsb2dvUHJldi5zcmMgPSByZXMu cGF0aDsgUC50b2FzdCgiTG9nbyBob2NoZ2VsYWRlbi4iKTsgfSk7IH0gfSk7CiAgICAgICAgICBk b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZpKTsgZmkuY2xpY2soKTsgc2V0VGltZW91dChmdW5j dGlvbiAoKSB7IGZpLnJlbW92ZSgpOyB9LCAwKTsKICAgICAgICB9IH0pOwogICAgICBnbC5hcHBl bmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImZpZWxkIiB9LCBbZWwoImxhYmVsIiwgeyB0ZXh0 OiAiTG9nbyIgfSksIGVsKCJkaXYiLCB7IGNsYXNzOiAic2V0LWxvZ28iIH0sIFtsb2dvUHJldiwg bG9nb0luLCB1cF0pXSkpOwogICAgfQoKICAgIC8qIC0tLS0tLS0tLS0gU2VrdGlvbjogTGFnZS1W b3JsYWdlbiAtLS0tLS0tLS0tICovCiAgICBmdW5jdGlvbiBzZWNMYWdlKHBhbmUpIHsKICAgICAg aGVhZChwYW5lLCAiTGFnZS1Wb3JsYWdlbiIsICJTY2huZWxsIHfDpGhsYmFyZSBMYWdldGV4dGUg KG1pdCBTdHVmZSkuIik7CiAgICAgIHZhciBnID0gZ3JvdXBCb3gocGFuZSwgIlZvcmxhZ2VuIik7 CiAgICAgIHZhciBob3N0UCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAic2V0LXByZXNldHMiIH0pOwog ICAgICBmdW5jdGlvbiByZW5kZXJQcmVzZXRzKCkgewogICAgICAgIGhvc3RQLmlubmVySFRNTCA9 ICIiOwogICAgICAgIFMubGFnZVByZXNldHMuZm9yRWFjaChmdW5jdGlvbiAocCwgaSkgewogICAg ICAgICAgdmFyIHR4dCA9IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogcC50ZXh0 IHx8ICIiLCBwbGFjZWhvbGRlcjogIkxhZ2UtVGV4dCIsIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsg Uy5sYWdlUHJlc2V0c1tpXS50ZXh0ID0gdGhpcy52YWx1ZTsgfSB9KTsKICAgICAgICAgIHZhciBs dmwgPSBlbCgic2VsZWN0IiwgeyBvbmNoYW5nZTogZnVuY3Rpb24gKCkgeyBTLmxhZ2VQcmVzZXRz W2ldLmxldmVsID0gdGhpcy52YWx1ZTsgfSB9KTsKICAgICAgICAgIGx2bC5hcHBlbmRDaGlsZChl bCgib3B0aW9uIiwgeyB2YWx1ZTogIm9rIiwgdGV4dDogIm5vcm1hbCIsIHNlbGVjdGVkOiBwLmxl dmVsICE9PSAiYWxlcnQiID8gInNlbGVjdGVkIiA6IG51bGwgfSkpOwogICAgICAgICAgbHZsLmFw cGVuZENoaWxkKGVsKCJvcHRpb24iLCB7IHZhbHVlOiAiYWxlcnQiLCB0ZXh0OiAiQWxhcm0iLCBz ZWxlY3RlZDogcC5sZXZlbCA9PT0gImFsZXJ0IiA/ICJzZWxlY3RlZCIgOiBudWxsIH0pKTsKICAg ICAgICAgIHZhciBkZWwgPSBlbCgiYnV0dG9uIiwgeyB0eXBlOiAiYnV0dG9uIiwgY2xhc3M6ICJt aW5pLWJ0biIsIHRpdGxlOiAiVm9ybGFnZSBlbnRmZXJuZW4iLCBodG1sOiBpYygidHJhc2giKSwg b25jbGljazogZnVuY3Rpb24gKCkgeyBTLmxhZ2VQcmVzZXRzLnNwbGljZShpLCAxKTsgcmVuZGVy UHJlc2V0cygpOyB9IH0pOwogICAgICAgICAgaG9zdFAuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsg Y2xhc3M6ICJzZXQtcHJlc2V0LXJvdyIgfSwgW3R4dCwgbHZsLCBkZWxdKSk7CiAgICAgICAgfSk7 CiAgICAgIH0KICAgICAgcmVuZGVyUHJlc2V0cygpOyBnLmFwcGVuZENoaWxkKGhvc3RQKTsKICAg ICAgZy5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyB0eXBlOiAiYnV0dG9uIiwgY2xhc3M6ICJi dG4gZ2hvc3QgYWRkLXJvdyIsIGh0bWw6IGljKCJwbHVzIikgKyAiPHNwYW4+IFZvcmxhZ2U8L3Nw YW4+IiwKICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IFMubGFnZVByZXNldHMucHVzaCh7 IHRleHQ6ICIiLCBsZXZlbDogIm9rIiB9KTsgcmVuZGVyUHJlc2V0cygpOyB9IH0pKTsKICAgIH0K CiAgICAvKiAtLS0tLS0tLS0tIFNla3Rpb246IEZhcmJlbiAocHJvIFRoZW1lKSAtLS0tLS0tLS0t ICovCiAgICBmdW5jdGlvbiBjb2xvckZpZWxkKHQsIHN0b3JlKSB7CiAgICAgIHZhciBoZXggPSBl bCgiaW5wdXQiLCB7IHR5cGU6ICJjb2xvciIsIHZhbHVlOiB0b0hleChzdG9yZVt0LmtleV0gfHwg dC5kZWYpIH0pOwogICAgICB2YXIgdHh0ID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHZh bHVlOiBzdG9yZVt0LmtleV0gfHwgIiIsIHBsYWNlaG9sZGVyOiAiU3RhbmRhcmQ6ICIgKyB0LmRl ZiB9KTsKICAgICAgZnVuY3Rpb24gc2V0KHYpIHsgdiA9ICh2IHx8ICIiKS50cmltKCk7IGlmICh2 KSBzdG9yZVt0LmtleV0gPSB2OyBlbHNlIGRlbGV0ZSBzdG9yZVt0LmtleV07IHByZXZpZXdUb2tl bnMoKTsgfQogICAgICBoZXgub25pbnB1dCA9IGZ1bmN0aW9uICgpIHsgdHh0LnZhbHVlID0gdGhp cy52YWx1ZTsgc2V0KHRoaXMudmFsdWUpOyB9OwogICAgICB0eHQub25pbnB1dCA9IGZ1bmN0aW9u ICgpIHsgdmFyIHYgPSB0aGlzLnZhbHVlLnRyaW0oKTsgaWYgKC9eIyhbMC05YS1mXXszfXxbMC05 YS1mXXs2fSkkL2kudGVzdCh2KSkgaGV4LnZhbHVlID0gdjsgc2V0KHYpOyB9OwogICAgICByZXR1 cm4gZmllbGRSb3codC5sYWJlbCwgZWwoImRpdiIsIHsgY2xhc3M6ICJhZG0tY29sb3IiIH0sIFto ZXgsIHR4dF0pKTsKICAgIH0KICAgIGZ1bmN0aW9uIHNlY0NvbG9ycyh0aGVtZSkgewogICAgICBy ZXR1cm4gZnVuY3Rpb24gKHBhbmUpIHsKICAgICAgICBoZWFkKHBhbmUsIHRoZW1lID09PSAibGln aHQiID8gIkZhcmJlbiAoSGVsbCkiIDogIkZhcmJlbiAoRHVua2VsKSIsCiAgICAgICAgICAiRmFy YnBhbGV0dGUgZsO8ciBkYXMgIiArICh0aGVtZSA9PT0gImxpZ2h0IiA/ICJoZWxsZSIgOiAiZHVu a2xlIikgKyAiIFRoZW1lLiBMZWVyID0gU3RhbmRhcmQuIik7CiAgICAgICAgdmFyIGN1clRoZW1l ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS10aGVtZSIpIHx8 ICJsaWdodCI7CiAgICAgICAgaWYgKGN1clRoZW1lICE9PSB0aGVtZSkgewogICAgICAgICAgdmFy IG5vdGUgPSBlbCgiZGl2IiwgeyBjbGFzczogImFkbS1ub3RlIiB9KTsKICAgICAgICAgIG5vdGUu YXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGh0bWw6IGljKCJhbGVydCIpIH0pKTsKICAgICAgICAg IHZhciBib3ggPSBlbCgiZGl2Iik7CiAgICAgICAgICBib3guYXBwZW5kQ2hpbGQoZG9jdW1lbnQu Y3JlYXRlVGV4dE5vZGUoIlZvcnNjaGF1IG51ciBzaWNodGJhciwgd2VubiBkYXMgIiArICh0aGVt ZSA9PT0gImxpZ2h0IiA/ICJoZWxsZSIgOiAiZHVua2xlIikgKyAiIFRoZW1lIGFrdGl2IGlzdC4i KSk7CiAgICAgICAgICBib3guYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHt9LCBbZWwoImJ1dHRvbiIs IHsgdHlwZTogImJ1dHRvbiIsIGNsYXNzOiAiYnRuIGdob3N0Iiwgc3R5bGU6ICJtYXJnaW4tdG9w OjhweCIsCiAgICAgICAgICAgIGh0bWw6IGljKHRoZW1lID09PSAibGlnaHQiID8gInN1biIgOiAi bW9vbiIpICsgIjxzcGFuPiBadSAiICsgKHRoZW1lID09PSAibGlnaHQiID8gIkhlbGwiIDogIkR1 bmtlbCIpICsgIiB3ZWNoc2Vsbjwvc3Bhbj4iLAogICAgICAgICAgICBvbmNsaWNrOiBmdW5jdGlv biAoKSB7IFAud3JpdGUoUC5MUy50aGVtZSwgdGhlbWUpOyBQLmFwcGx5VGhlbWUodGhlbWUpOyBy ZW5kZXJQYW5lKCk7IH0gfSldKSk7CiAgICAgICAgICBub3RlLmFwcGVuZENoaWxkKGJveCk7IHBh bmUuYXBwZW5kQ2hpbGQobm90ZSk7CiAgICAgICAgfQogICAgICAgIHZhciBzdG9yZSA9IFMudWku Y29sb3JzW3RoZW1lXTsKICAgICAgICB2YXIgZyA9IGdyb3VwQm94KHBhbmUsICJGYXJiLVRva2Vu cyIpOyB2YXIgZ3JpZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYWRtLWdyaWQyIiB9KTsgZy5hcHBl bmRDaGlsZChncmlkKTsKICAgICAgICBQLkRFU0lHTl9UT0tFTlMuZmlsdGVyKGZ1bmN0aW9uICh0 KSB7IHJldHVybiB0LnRoZW1lID09PSB0aGVtZTsgfSkuZm9yRWFjaChmdW5jdGlvbiAodCkgeyBn cmlkLmFwcGVuZENoaWxkKGNvbG9yRmllbGQodCwgc3RvcmUpKTsgfSk7CiAgICAgICAgZy5hcHBl bmRDaGlsZChyZXNldEJ0bigiRmFyYmVuICgiICsgKHRoZW1lID09PSAibGlnaHQiID8gIkhlbGwi IDogIkR1bmtlbCIpICsgIikgenVyw7xja3NldHplbiIsIGZ1bmN0aW9uICgpIHsgUy51aS5jb2xv cnNbdGhlbWVdID0ge307IHByZXZpZXdUb2tlbnMoKTsgcmVuZGVyUGFuZSgpOyB9KSk7CiAgICAg IH07CiAgICB9CgogICAgLyogLS0tLS0tLS0tLSBTZWt0aW9uOiBUb2tlbi1HcnVwcGUgKFR5cG8g LyBCZXdlZ3VuZykgLS0tLS0tLS0tLSAqLwogICAgZnVuY3Rpb24gbGVuRmllbGQodCkgewogICAg ICB2YXIgaW5wID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHZhbHVlOiBTLnVpLnRva2Vu c1t0LmtleV0gfHwgIiIsIHBsYWNlaG9sZGVyOiAiU3RhbmRhcmQ6ICIgKyB0LmRlZiArICh0LnVu aXQgfHwgIiIpLAogICAgICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgdmFyIHYgPSB0aGlzLnZh bHVlLnRyaW0oKTsgaWYgKHYpIFMudWkudG9rZW5zW3Qua2V5XSA9IHY7IGVsc2UgZGVsZXRlIFMu dWkudG9rZW5zW3Qua2V5XTsgcHJldmlld1Rva2VucygpOyB9IH0pOwogICAgICByZXR1cm4gZmll bGRSb3codC5sYWJlbCArICh0LnVuaXQgPyAiICgiICsgdC51bml0ICsgIikiIDogIiIpLCBpbnAp OwogICAgfQogICAgZnVuY3Rpb24gc2VjVG9rZW5zKGdyb3VwLCB0aXRsZSwgZGVzYywgaGludCkg ewogICAgICByZXR1cm4gZnVuY3Rpb24gKHBhbmUpIHsKICAgICAgICBoZWFkKHBhbmUsIHRpdGxl LCBkZXNjKTsKICAgICAgICBpZiAoaGludCkgcGFuZS5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBj bGFzczogImFkbS1ub3RlIiB9LCBbZWwoInNwYW4iLCB7IGh0bWw6IGljKCJhbGVydCIpIH0pLCBl bCgiZGl2IiwgeyB0ZXh0OiBoaW50IH0pXSkpOwogICAgICAgIHZhciBnID0gZ3JvdXBCb3gocGFu ZSwgdGl0bGUpOyB2YXIgZ3JpZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYWRtLWdyaWQyIiB9KTsg Zy5hcHBlbmRDaGlsZChncmlkKTsKICAgICAgICBQLkRFU0lHTl9UT0tFTlMuZmlsdGVyKGZ1bmN0 aW9uICh0KSB7IHJldHVybiB0Lmdyb3VwID09PSBncm91cDsgfSkuZm9yRWFjaChmdW5jdGlvbiAo dCkgeyBncmlkLmFwcGVuZENoaWxkKGxlbkZpZWxkKHQpKTsgfSk7CiAgICAgICAgZy5hcHBlbmRD aGlsZChyZXNldEJ0bigiWnVyw7xja3NldHplbiIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgIFAu REVTSUdOX1RPS0VOUy5mb3JFYWNoKGZ1bmN0aW9uICh0KSB7IGlmICh0Lmdyb3VwID09PSBncm91 cCkgZGVsZXRlIFMudWkudG9rZW5zW3Qua2V5XTsgfSk7CiAgICAgICAgICBwcmV2aWV3VG9rZW5z KCk7IHJlbmRlclBhbmUoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CgogICAgLyogLS0t LS0tLS0tLSBTZWt0aW9uOiBMYXlvdXQgJiBBYnN0w6RuZGUgKFVJX1ZBUlMgKyBEaWNodGUgKyBB YnN0YW5kLVRva2VucykgLS0tLS0tLS0tLSAqLwogICAgZnVuY3Rpb24gc2VjTGF5b3V0KHBhbmUp IHsKICAgICAgaGVhZChwYW5lLCAiTGF5b3V0ICYgQWJzdMOkbmRlIiwgIlNwYWx0ZW5icmVpdGVu LCBIw7ZoZW4sIEVjay1SdW5kdW5nLCBEaWNodGUgdW5kIEFic3TDpG5kZS4gTGVlciA9IFN0YW5k YXJkLiIpOwogICAgICB2YXIgZyA9IGdyb3VwQm94KHBhbmUsICJEaWNodGUgJiBHcsO2w59lbiIp OwogICAgICB2YXIgZGVuc1NlZyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAic2VnIiB9KTsKICAgICAg W1siY29tcGFjdCIsICJLb21wYWt0Il0sIFsiIiwgIkF1c2dld29nZW4iXSwgWyJjb21mb3J0YWJs ZSIsICJLb21mb3J0YWJlbCJdXS5mb3JFYWNoKGZ1bmN0aW9uIChwYWlyKSB7CiAgICAgICAgdmFy IHZhbCA9IHBhaXJbMF0sIGN1ciA9IFMudWkuZGVuc2l0eSB8fCAiIjsKICAgICAgICBkZW5zU2Vn LmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IHR5cGU6ICJidXR0b24iLCBjbGFzczogInNlZy1v cHQiICsgKGN1ciA9PT0gdmFsID8gIiBzZWwiIDogIiIpLCB0ZXh0OiBwYWlyWzFdLAogICAgICAg ICAgb25jbGljazogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAodmFsKSBTLnVpLmRlbnNp dHkgPSB2YWw7IGVsc2UgZGVsZXRlIFMudWkuZGVuc2l0eTsKICAgICAgICAgICAgUC4kJCgiLnNl Zy1vcHQiLCBkZW5zU2VnKS5mb3JFYWNoKGZ1bmN0aW9uIChiKSB7IGIuY2xhc3NMaXN0LnJlbW92 ZSgic2VsIik7IH0pOyB0aGlzLmNsYXNzTGlzdC5hZGQoInNlbCIpOwogICAgICAgICAgICB2YXIg cm9vdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsgaWYgKHZhbCkgcm9vdC5zZXRBdHRyaWJ1 dGUoImRhdGEtZGVuc2l0eSIsIHZhbCk7IGVsc2Ugcm9vdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEt ZGVuc2l0eSIpOwogICAgICAgICAgfSB9KSk7CiAgICAgIH0pOwogICAgICBnLmFwcGVuZENoaWxk KGZpZWxkUm93KCJEaWNodGUiLCBkZW5zU2VnKSk7CiAgICAgIHZhciBncmlkID0gZWwoImRpdiIs IHsgY2xhc3M6ICJhZG0tZ3JpZDIiIH0pOyBnLmFwcGVuZENoaWxkKGdyaWQpOwogICAgICAoUC5V SV9WQVJTIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChmKSB7CiAgICAgICAgdmFyIGlucCA9IGVs KCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogUy51aVtmLmtleV0gfHwgIiIsIHBsYWNl aG9sZGVyOiAiU3RhbmRhcmQ6ICIgKyBmLmRlZiArIChmLnVuaXQgfHwgIiIpLAogICAgICAgICAg b25pbnB1dDogZnVuY3Rpb24gKCkgeyB2YXIgdiA9IHRoaXMudmFsdWUudHJpbSgpOyBpZiAodikg Uy51aVtmLmtleV0gPSB2OyBlbHNlIGRlbGV0ZSBTLnVpW2Yua2V5XTsKICAgICAgICAgICAgdmFy IHJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGU7IGlmICh2KSByb290LnNldFBy b3BlcnR5KGYuY3NzVmFyLCB2ICsgKGYudW5pdCB8fCAiIikpOyBlbHNlIHJvb3QucmVtb3ZlUHJv cGVydHkoZi5jc3NWYXIpOyB9IH0pOwogICAgICAgIGdyaWQuYXBwZW5kQ2hpbGQoZmllbGRSb3co Zi5sYWJlbCArIChmLnVuaXQgPyAiICgiICsgZi51bml0ICsgIikiIDogIiIpLCBpbnAsIGYuaGlu dCkpOwogICAgICB9KTsKICAgICAgdmFyIGdhID0gZ3JvdXBCb3gocGFuZSwgIkFic3TDpG5kZSIp OyB2YXIgZ3JpZDIgPSBlbCgiZGl2IiwgeyBjbGFzczogImFkbS1ncmlkMiIgfSk7IGdhLmFwcGVu ZENoaWxkKGdyaWQyKTsKICAgICAgUC5ERVNJR05fVE9LRU5TLmZpbHRlcihmdW5jdGlvbiAodCkg eyByZXR1cm4gdC5ncm91cCA9PT0gImFic3RhbmQiOyB9KS5mb3JFYWNoKGZ1bmN0aW9uICh0KSB7 IGdyaWQyLmFwcGVuZENoaWxkKGxlbkZpZWxkKHQpKTsgfSk7CiAgICAgIGcuYXBwZW5kQ2hpbGQo cmVzZXRCdG4oIkxheW91dCB6dXLDvGNrc2V0emVuIiwgZnVuY3Rpb24gKCkgewogICAgICAgIHZh ciByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlOwogICAgICAgIChQLlVJX1ZB UlMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGYpIHsgZGVsZXRlIFMudWlbZi5rZXldOyByb290 LnJlbW92ZVByb3BlcnR5KGYuY3NzVmFyKTsgfSk7CiAgICAgICAgUC5ERVNJR05fVE9LRU5TLmZv ckVhY2goZnVuY3Rpb24gKHQpIHsgaWYgKHQuZ3JvdXAgPT09ICJhYnN0YW5kIikgZGVsZXRlIFMu dWkudG9rZW5zW3Qua2V5XTsgfSk7CiAgICAgICAgZGVsZXRlIFMudWkuZGVuc2l0eTsgZG9jdW1l bnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1kZW5zaXR5Iik7IHByZXZp ZXdUb2tlbnMoKTsgcmVuZGVyUGFuZSgpOwogICAgICB9KSk7CiAgICB9CgogICAgLyogLS0tLS0t LS0tLSBTZWt0aW9uOiBNb2R1bGUgJiBMaW1pdHMgLS0tLS0tLS0tLSAqLwogICAgZnVuY3Rpb24g c2VjTW9kdWxlcyhwYW5lKSB7CiAgICAgIGhlYWQocGFuZSwgIk1vZHVsZSAmIExpbWl0cyIsICJT aWNodGJhcmtlaXQgdm9uIENvY2twaXQtV2lkZ2V0cyB1bmQgTWF4aW1hbHphaGxlbi4gR3JlaWZl biBuYWNoIGRlbSBTcGVpY2hlcm4uIik7CiAgICAgIHZhciBnID0gZ3JvdXBCb3gocGFuZSwgIkVp bnN0ZWxsdW5nZW4iKTsKICAgICAgUC5NT0RVTEVfVkFSUy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7 CiAgICAgICAgdmFyIGN0cmw7CiAgICAgICAgaWYgKGQudHlwZSA9PT0gImJvb2wiKSB7CiAgICAg ICAgICB2YXIgY3VyID0gKFMudWkubW9kdWxlc1tkLmtleV0gIT0gbnVsbCkgPyAoUy51aS5tb2R1 bGVzW2Qua2V5XSA9PT0gdHJ1ZSB8fCBTLnVpLm1vZHVsZXNbZC5rZXldID09PSAidHJ1ZSIpIDog ZC5kZWY7CiAgICAgICAgICBjdHJsID0gZWwoImJ1dHRvbiIsIHsgdHlwZTogImJ1dHRvbiIsIGNs YXNzOiAic3dpdGNoIiArIChjdXIgPyAiIG9uIiA6ICIiKSwgcm9sZTogInN3aXRjaCIsICJhcmlh LWNoZWNrZWQiOiBjdXIgPyAidHJ1ZSIgOiAiZmFsc2UiLAogICAgICAgICAgICBvbmNsaWNrOiBm dW5jdGlvbiAoKSB7IGN1ciA9ICFjdXI7IHRoaXMuY2xhc3NMaXN0LnRvZ2dsZSgib24iLCBjdXIp OyB0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1jaGVja2VkIiwgY3VyID8gInRydWUiIDogImZhbHNl Iik7CiAgICAgICAgICAgICAgaWYgKGN1ciA9PT0gZC5kZWYpIGRlbGV0ZSBTLnVpLm1vZHVsZXNb ZC5rZXldOyBlbHNlIFMudWkubW9kdWxlc1tkLmtleV0gPSBjdXI7IH0gfSk7CiAgICAgICAgICBn LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAidG9nZ2xlLXJvdyIgfSwgW2N0cmwsIGVs KCJsYWJlbCIsIHsgdGV4dDogZC5sYWJlbCwgc3R5bGU6ICJmb250LXdlaWdodDo2MDA7Y29sb3I6 dmFyKC0tdGV4dC1kaW0pIiB9KV0pKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY3RybCA9 IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogKFMudWkubW9kdWxlc1tkLmtleV0g IT0gbnVsbCA/IFMudWkubW9kdWxlc1tkLmtleV0gOiAiIiksIHBsYWNlaG9sZGVyOiAiU3RhbmRh cmQ6ICIgKyBkLmRlZiwKICAgICAgICAgICAgb25pbnB1dDogZnVuY3Rpb24gKCkgeyB2YXIgdiA9 IHRoaXMudmFsdWUudHJpbSgpOyBpZiAodiA9PT0gIiIpIGRlbGV0ZSBTLnVpLm1vZHVsZXNbZC5r ZXldOyBlbHNlIFMudWkubW9kdWxlc1tkLmtleV0gPSB2OyB9IH0pOwogICAgICAgICAgZy5hcHBl bmRDaGlsZChmaWVsZFJvdyhkLmxhYmVsLCBjdHJsKSk7CiAgICAgICAgfQogICAgICB9KTsKICAg ICAgZy5hcHBlbmRDaGlsZChyZXNldEJ0bigiTW9kdWxlIHp1csO8Y2tzZXR6ZW4iLCBmdW5jdGlv biAoKSB7IFMudWkubW9kdWxlcyA9IHt9OyByZW5kZXJQYW5lKCk7IH0pKTsKICAgIH0KCiAgICAv KiAtLS0tLS0tLS0tIFNla3Rpb246IEFsbGdlbWVpbiAoVGhlbWUtRGVmYXVsdCArIFNpY2hlcmhl aXRzLVNwZXJyaGlud2VpcykgLS0tLS0tLS0tLSAqLwogICAgZnVuY3Rpb24gc2VjR2VuZXJhbChw YW5lKSB7CiAgICAgIGhlYWQocGFuZSwgIkFsbGdlbWVpbiIsICJTdGFuZGFyZC1EZXNpZ24gdW5k IFNpY2hlcmhlaXRzaGlud2Vpc2UuIik7CiAgICAgIHZhciBnID0gZ3JvdXBCb3gocGFuZSwgIlN0 YW5kYXJkLURlc2lnbiAocG9ydGFsd2VpdCkiKTsKICAgICAgdmFyIHNlZyA9IGVsKCJkaXYiLCB7 IGNsYXNzOiAic2VnIiB9KTsKICAgICAgW1siZGFyayIsICJEdW5rZWwiXSwgWyJsaWdodCIsICJI ZWxsIl1dLmZvckVhY2goZnVuY3Rpb24gKHBhaXIpIHsKICAgICAgICBzZWcuYXBwZW5kQ2hpbGQo ZWwoImJ1dHRvbiIsIHsgdHlwZTogImJ1dHRvbiIsIGNsYXNzOiAic2VnLW9wdCIgKyAoUy5kZWZh dWx0VGhlbWUgPT09IHBhaXJbMF0gPyAiIHNlbCIgOiAiIiksIHRleHQ6IHBhaXJbMV0sCiAgICAg ICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IFMuZGVmYXVsdFRoZW1lID0gcGFpclswXTsgUC4k JCgiLnNlZy1vcHQiLCBzZWcpLmZvckVhY2goZnVuY3Rpb24gKGIpIHsgYi5jbGFzc0xpc3QucmVt b3ZlKCJzZWwiKTsgfSk7IHRoaXMuY2xhc3NMaXN0LmFkZCgic2VsIik7IH0gfSkpOwogICAgICB9 KTsKICAgICAgZy5hcHBlbmRDaGlsZChmaWVsZFJvdygiU3RhbmRhcmQiLCBzZWcsICJTdGFuZGFy ZCBmw7xyIG5ldWUgQmVzdWNoZXIuIERpZSBwZXJzw7ZubGljaGUgV2FobCBqZWRlcyBOdXR6ZXJz IGJsZWlidCB2b3JyYW5naWcuIikpOwoKICAgICAgdmFyIGxvY2sgPSBlbCgiZGl2IiwgeyBjbGFz czogImFkbS1ub3RlIiB9KTsKICAgICAgbG9jay5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgaHRt bDogaWMoInNoaWVsZCIpIH0pKTsKICAgICAgbG9jay5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBo dG1sOgogICAgICAgICI8Yj5CZXd1c3N0IGdlc3BlcnJ0IChTaWNoZXJoZWl0cy1LZXJuKTo8L2I+ IERlciBIVE1MLVNhbml0aXplciAoWFNTLVNjaHV0eiBmw7xyIExlc2VyLCBpbiAiICsKICAgICAg ICAiPGNvZGU+ZmVhdHVyZXMvbmF2LmpzPC9jb2RlPikgdW5kIGRpZSBTZXJ2ZXItUG9saWN5IDxj b2RlPmhlbGZlci9jb250cmFjdC5qc29uPC9jb2RlPiAiICsKICAgICAgICAiKFB1Ymxpc2gtQWxs b3dsaXN0LCBBc3NldC1MaW1pdCwgUm9sbGVuLUVuZHBvaW50cywgSGlzdG9yeS1QcnVuaW5nLCBD U1JGKSBzaW5kIGFic2ljaHRsaWNoICIgKwogICAgICAgICJuaWNodCDDvGJlciBkaWUgT2JlcmZs w6RjaGUgZWRpdGllcmJhci4gw4RuZGVydW5nZW4gZXJmb2xnZW4gbnVyIGRpcmVrdCBpbSBDb2Rl L1NlcnZlci4iIH0pKTsKICAgICAgcGFuZS5hcHBlbmRDaGlsZChsb2NrKTsKCiAgICAgIHBhbmUu YXBwZW5kQ2hpbGQocmVzZXRCdG4oIkFMTEVTIGF1ZiBTdGFuZGFyZCB6dXLDvGNrc2V0emVuIiwg ZnVuY3Rpb24gKCkgewogICAgICAgIFMudWkgPSB7IGNvbG9yczogeyBsaWdodDoge30sIGRhcms6 IHt9IH0sIHRva2Vuczoge30sIHRleHRzOiB7fSwgbW9kdWxlczoge30gfTsKICAgICAgICAvLyBM aXZlLVZvcnNjaGF1IHPDpHViZXJuOgogICAgICAgIHZhciByb290ID0gZG9jdW1lbnQuZG9jdW1l bnRFbGVtZW50LnN0eWxlOwogICAgICAgIChQLlVJX1ZBUlMgfHwgW10pLmZvckVhY2goZnVuY3Rp b24gKGYpIHsgcm9vdC5yZW1vdmVQcm9wZXJ0eShmLmNzc1Zhcik7IH0pOwogICAgICAgIGRvY3Vt ZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZGVuc2l0eSIpOwogICAg ICAgIHByZXZpZXdUb2tlbnMoKTsgUC5hbGxUZXh0cygpLmZvckVhY2goZnVuY3Rpb24gKGQpIHsg cHJldmlld1RleHQoZC5rZXksIGQuZGVmKTsgfSk7IHJlbmRlclBhbmUoKTsKICAgICAgICBQLnRv YXN0KCJadXLDvGNrZ2VzZXR6dCDigJQgbWl0IFNwZWljaGVybiBiZXN0w6R0aWdlbi4iKTsKICAg ICAgfSkpOwogICAgfQoKICAgIC8qIC0tLS0tLS0tLS0gU2VrdGlvbjogSW1wcmVzc3VtICYgU3Vw cG9ydCAtLS0tLS0tLS0tICovCiAgICBmdW5jdGlvbiBzZWNJbmZvKHBhbmUpIHsKICAgICAgaGVh ZChwYW5lLCAiSW1wcmVzc3VtICYgU3VwcG9ydCIsICJJbXByZXNzdW1zLVRleHQgKyB6d2VpIFN1 cHBvcnQtV2VnZTogVGVhbSA1IChhbGxlIFJvbGxlbikgdW5kIFBISyBSb2VzZ2VuIChFc2thbGF0 aW9uLCBudXIgUmVkYWt0ZXVyL0FkbWluKS4gTGVlciA9IGRpZSBoaW50ZXJsZWd0ZW4gU3RhbmRh cmQtVGV4dGUuIik7CiAgICAgIHZhciBQSCA9ICJQbGF0emhhbHRlciAoYXV0b20uIGVyc2V0enQp OiB7bndfa2VubnVuZ30ge3JvbGxlfSB7YW5zaWNodH0ge2RhdHVtfSB7dWhyemVpdH0ge2F1Zmxv ZXN1bmd9IHt2ZXJzaW9ufSB7YnJvd3Nlcn0uIFJlaW5lciBUZXh0LiI7CgogICAgICB2YXIgZ2kg PSBncm91cEJveChwYW5lLCAiSW1wcmVzc3VtIChIVE1MKSIpOwogICAgICB2YXIgdGEgPSBlbCgi dGV4dGFyZWEiLCB7IGNsYXNzOiAic2V0LWJpZ3RhIiwgcm93czogIjEyIiwgdmFsdWU6IFMuaW1w cmVzc3VtIHx8ICIiLAogICAgICAgIHBsYWNlaG9sZGVyOiAiTGVlciA9IFN0YW5kYXJkLUltcHJl c3N1bS4gRXJsYXVidGUgVGFnczogaDQsIHAsIHVsLCBsaSwgc3Ryb25nLCBlbSwgYnIsIGEg4oCm ICh3aXJkIGJlaW0gQW56ZWlnZW4gc2FuaXRpc2llcnQpLiBIaWVyIGF1Y2ggZGllIGJlbmFubnRl biBSZWRha3RldXI6aW5uZW4vQWRtaW5zIGF1Zmxpc3Rlbi4iIH0pOwogICAgICB0YS5hZGRFdmVu dExpc3RlbmVyKCJpbnB1dCIsIGZ1bmN0aW9uICgpIHsgUy5pbXByZXNzdW0gPSB0YS52YWx1ZTsg fSk7CiAgICAgIGdpLmFwcGVuZENoaWxkKHRhKTsKICAgICAgZ2kuYXBwZW5kQ2hpbGQocmVzZXRC dG4oIkltcHJlc3N1bSBhdWYgU3RhbmRhcmQiLCBmdW5jdGlvbiAoKSB7IFMuaW1wcmVzc3VtID0g IiI7IHJlbmRlclBhbmUoKTsgfSkpOwoKICAgICAgLy8gLS0tIFN1cHBvcnQgVGVhbSA1IChhbGxn ZW1laW4sIGbDvHIgYWxsZSBSb2xsZW4gc2ljaHRiYXIpIC0tLQogICAgICB2YXIgZzUgPSBncm91 cEJveChwYW5lLCAiU3VwcG9ydCBUZWFtIDUgKGFsbGdlbWVpbmVyIFdlZywgYWxsZSBSb2xsZW4p Iik7CiAgICAgIHZhciBlNSA9IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogKFMu c3VwcG9ydC50ZWFtNUVtYWlsIHx8ICIiKSwgcGxhY2Vob2xkZXI6ICJ6LiBCLiB0ZWFtNS1zdXBw b3J0QHBvbGl6ZWkubnJ3LmRlIiwKICAgICAgICBvbmlucHV0OiBmdW5jdGlvbiAoKSB7IFMuc3Vw cG9ydC50ZWFtNUVtYWlsID0gdGhpcy52YWx1ZS50cmltKCk7IH0gfSk7CiAgICAgIGc1LmFwcGVu ZENoaWxkKGZpZWxkUm93KCJFbXBmw6RuZ2VyIChFLU1haWwpIiwgZTUsICJMZWVyID0gT3V0bG9v ayDDtmZmbmV0IG9obmUgRW1wZsOkbmdlciAobWFudWVsbCB3w6RobGVuKS4gQml0dGUgZGllIFRl YW0tNS1TdXBwb3J0LUFkcmVzc2UgZWludHJhZ2VuLiIpKTsKICAgICAgdmFyIHM1ID0gZWwoImlu cHV0IiwgeyB0eXBlOiAidGV4dCIsIHZhbHVlOiAoUy5zdXBwb3J0LnRlYW01U3ViamVjdCB8fCAi IiksIHBsYWNlaG9sZGVyOiAiUG9ydGFsIFVuaW9uIOKAkyBTdXBwb3J0IChUZWFtIDUpIiwKICAg ICAgICBvbmlucHV0OiBmdW5jdGlvbiAoKSB7IFMuc3VwcG9ydC50ZWFtNVN1YmplY3QgPSB0aGlz LnZhbHVlOyB9IH0pOwogICAgICBnNS5hcHBlbmRDaGlsZChmaWVsZFJvdygiQmV0cmVmZiIsIHM1 KSk7CiAgICAgIHZhciBtNSA9IGVsKCJ0ZXh0YXJlYSIsIHsgY2xhc3M6ICJzZXQtYmlndGEiLCBy b3dzOiAiMTIiLCB2YWx1ZTogKFMuc3VwcG9ydC50ZWFtNU1haWwgfHwgIiIpLCBwbGFjZWhvbGRl cjogIkxlZXIgPSBTdGFuZGFyZC1GcmFnZW5rYXRhbG9nIChUZWFtIDUpLiIgfSk7CiAgICAgIG01 LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgZnVuY3Rpb24gKCkgeyBTLnN1cHBvcnQudGVhbTVN YWlsID0gbTUudmFsdWU7IH0pOwogICAgICBnNS5hcHBlbmRDaGlsZChmaWVsZFJvdygiTWFpbC1W b3JsYWdlIChGcmFnZW5rYXRhbG9nKSIsIG01LCBQSCkpOwogICAgICBnNS5hcHBlbmRDaGlsZChy ZXNldEJ0bigiVGVhbS01LVZvcmxhZ2UgYXVmIFN0YW5kYXJkIiwgZnVuY3Rpb24gKCkgeyBTLnN1 cHBvcnQudGVhbTVNYWlsID0gIiI7IHJlbmRlclBhbmUoKTsgfSkpOwoKICAgICAgLy8gLS0tIFN1 cHBvcnQgUEhLIFJvZXNnZW4gKEVza2FsYXRpb24sIG51ciBSZWRha3RldXIvQWRtaW4gc2ljaHRi YXIpIC0tLQogICAgICB2YXIgZ3IgPSBncm91cEJveChwYW5lLCAiU3VwcG9ydCBQSEsgUm9lc2dl biAoRXNrYWxhdGlvbiwgbnVyIFJlZGFrdGV1ci9BZG1pbikiKTsKICAgICAgdmFyIGVtID0gZWwo ImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHZhbHVlOiAoUy5zdXBwb3J0LmVtYWlsIHx8ICIiKSwg cGxhY2Vob2xkZXI6ICJwaGlsaXBwLnJvZXNnZW5AcG9saXplaS5ucncuZGUiLAogICAgICAgIG9u aW5wdXQ6IGZ1bmN0aW9uICgpIHsgUy5zdXBwb3J0LmVtYWlsID0gdGhpcy52YWx1ZS50cmltKCk7 IH0gfSk7CiAgICAgIGdyLmFwcGVuZENoaWxkKGZpZWxkUm93KCJFbXBmw6RuZ2VyIChFLU1haWwp IiwgZW0sICJEZXIgSGlud2VpcyArIEJ1dHRvbiBzaW5kIGltIEltcHJlc3N1bSBudXIgZsO8ciBS ZWRha3RldXIvQWRtaW4gc2ljaHRiYXIuIikpOwogICAgICB2YXIgc3UgPSBlbCgiaW5wdXQiLCB7 IHR5cGU6ICJ0ZXh0IiwgdmFsdWU6IChTLnN1cHBvcnQuc3ViamVjdCB8fCAiIiksIHBsYWNlaG9s ZGVyOiAiUG9ydGFsIFVuaW9uIOKAkyBTdXBwb3J0IiwKICAgICAgICBvbmlucHV0OiBmdW5jdGlv biAoKSB7IFMuc3VwcG9ydC5zdWJqZWN0ID0gdGhpcy52YWx1ZTsgfSB9KTsKICAgICAgZ3IuYXBw ZW5kQ2hpbGQoZmllbGRSb3coIkJldHJlZmYiLCBzdSkpOwogICAgICB2YXIgdG0gPSBlbCgidGV4 dGFyZWEiLCB7IGNsYXNzOiAic2V0LWJpZ3RhIiwgcm93czogIjEyIiwgdmFsdWU6IChTLnN1cHBv cnQubWFpbCB8fCAiIiksIHBsYWNlaG9sZGVyOiAiTGVlciA9IFN0YW5kYXJkLUZyYWdlbmthdGFs b2cuIiB9KTsKICAgICAgdG0uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCBmdW5jdGlvbiAoKSB7 IFMuc3VwcG9ydC5tYWlsID0gdG0udmFsdWU7IH0pOwogICAgICBnci5hcHBlbmRDaGlsZChmaWVs ZFJvdygiTWFpbC1Wb3JsYWdlIChGcmFnZW5rYXRhbG9nKSIsIHRtLCBQSCkpOwogICAgICBnci5h cHBlbmRDaGlsZChyZXNldEJ0bigiUm9lc2dlbi1Wb3JsYWdlIGF1ZiBTdGFuZGFyZCIsIGZ1bmN0 aW9uICgpIHsgUy5zdXBwb3J0Lm1haWwgPSAiIjsgcmVuZGVyUGFuZSgpOyB9KSk7CiAgICB9Cgog ICAgLyogLS0tLS0tLS0tLSBUYWJzIC0tLS0tLS0tLS0gKi8KICAgIHZhciBUQUJTID0gWwogICAg ICB7IGlkOiAidGV4dHMiLCAgIGxhYmVsOiAiQmVzY2hyaWZ0dW5nZW4iLCAgICAgaWNvbjogImVk aXQiLCAgICByZW5kZXI6IHNlY1RleHRzIH0sCiAgICAgIHsgaWQ6ICJicmFuZCIsICAgbGFiZWw6 ICJNYXJrZSAmIExvZ28iLCAgICAgICBpY29uOiAic3RhciIsICAgIHJlbmRlcjogc2VjQnJhbmQg fSwKICAgICAgeyBpZDogImxhZ2UiLCAgICBsYWJlbDogIkxhZ2UtVm9ybGFnZW4iLCAgICAgIGlj b246ICJhbGVydCIsICAgcmVuZGVyOiBzZWNMYWdlIH0sCiAgICAgIHsgaWQ6ICJjbCIsICAgICAg bGFiZWw6ICJGYXJiZW4gKEhlbGwpIiwgICAgICBpY29uOiAic3VuIiwgICAgIHJlbmRlcjogc2Vj Q29sb3JzKCJsaWdodCIpIH0sCiAgICAgIHsgaWQ6ICJjZCIsICAgICAgbGFiZWw6ICJGYXJiZW4g KER1bmtlbCkiLCAgICBpY29uOiAibW9vbiIsICAgIHJlbmRlcjogc2VjQ29sb3JzKCJkYXJrIikg fSwKICAgICAgeyBpZDogInR5cG8iLCAgICBsYWJlbDogIlR5cG9ncmFmaWUiLCAgICAgICAgIGlj b246ICJoZWFkaW5nIiwgcmVuZGVyOiBzZWNUb2tlbnMoInR5cG8iLCAiVHlwb2dyYWZpZSIsICJT Y2hyaWZ0Z3LDtsOfZW4gdW5kIFplaWxlbmjDtmhlbi4gTGVlciA9IFN0YW5kYXJkLiIpIH0sCiAg ICAgIHsgaWQ6ICJsYXlvdXQiLCAgbGFiZWw6ICJMYXlvdXQgJiBBYnN0w6RuZGUiLCAgaWNvbjog ImdyaWQiLCAgICByZW5kZXI6IHNlY0xheW91dCB9LAogICAgICB7IGlkOiAibW90aW9uIiwgIGxh YmVsOiAiQmV3ZWd1bmciLCAgICAgICAgICAgaWNvbjogImJvbHQiLCAgICByZW5kZXI6IHNlY1Rv a2VucygiYmV3ZWd1bmciLCAiQmV3ZWd1bmciLCAiw5xiZXJnYW5nc2RhdWVybi4gTGVlciA9IFN0 YW5kYXJkLiIsICJCZWkgYWt0aXZpZXJ0ZXIgU3lzdGVtZWluc3RlbGx1bmcgQmV3ZWd1bmctcmVk dXppZXJlbiB3ZXJkZW4gQW5pbWF0aW9uZW4gdW5hYmjDpG5naWcgZGF2b24gYWJnZXNjaGFsdGV0 IChCYXJyaWVyZWZyZWloZWl0KS4iKSB9LAogICAgICB7IGlkOiAibW9kdWxlcyIsIGxhYmVsOiAi TW9kdWxlICYgTGltaXRzIiwgICAgaWNvbjogInBhbmVsUiIsICByZW5kZXI6IHNlY01vZHVsZXMg fSwKICAgICAgeyBpZDogImluZm8iLCAgICBsYWJlbDogIkltcHJlc3N1bSAmIFN1cHBvcnQiLCBp Y29uOiAiaW5ib3giLCAgcmVuZGVyOiBzZWNJbmZvIH0sCiAgICAgIHsgaWQ6ICJnZW5lcmFsIiwg bGFiZWw6ICJBbGxnZW1laW4iLCAgICAgICAgICBpY29uOiAic2hpZWxkIiwgIHJlbmRlcjogc2Vj R2VuZXJhbCB9CiAgICBdOwogICAgdmFyIG5hdiwgcGFuZTsKICAgIGZ1bmN0aW9uIHJlbmRlck5h digpIHsKICAgICAgbmF2LmlubmVySFRNTCA9ICIiOwogICAgICBUQUJTLmZvckVhY2goZnVuY3Rp b24gKHQpIHsKICAgICAgICBuYXYuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgdHlwZTogImJ1 dHRvbiIsIGNsYXNzOiAiYWRtLXRhYiIgKyAodC5pZCA9PT0gYWN0aXZlID8gIiBhY3RpdmUiIDog IiIpLAogICAgICAgICAgaHRtbDogaWModC5pY29uKSArICI8c3Bhbj4iICsgZXNjKHQubGFiZWwp ICsgIjwvc3Bhbj4iLAogICAgICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBhY3RpdmUgPSB0 LmlkOyByZW5kZXJOYXYoKTsgcmVuZGVyUGFuZSgpOyB9IH0pKTsKICAgICAgfSk7CiAgICB9CiAg ICBmdW5jdGlvbiByZW5kZXJQYW5lKCkgewogICAgICBwYW5lLmlubmVySFRNTCA9ICIiOwogICAg ICB2YXIgdCA9IFRBQlMuZmlsdGVyKGZ1bmN0aW9uICh4KSB7IHJldHVybiB4LmlkID09PSBhY3Rp dmU7IH0pWzBdOwogICAgICBpZiAodCkgdC5yZW5kZXIocGFuZSk7CiAgICAgIHBhbmUuc2Nyb2xs VG9wID0gMDsKICAgIH0KICAgIGZ1bmN0aW9uIGJ1aWxkKGhvc3QpIHsKICAgICAgaG9zdC5jbGFz c0xpc3QuYWRkKCJhZG0taG9zdCIpOwogICAgICBuYXYgPSBlbCgiZGl2IiwgeyBjbGFzczogImFk bS1uYXYiIH0pOwogICAgICBwYW5lID0gZWwoImRpdiIsIHsgY2xhc3M6ICJhZG0tcGFuZSIgfSk7 CiAgICAgIHJlbmRlck5hdigpOyByZW5kZXJQYW5lKCk7CiAgICAgIGhvc3QuYXBwZW5kQ2hpbGQo ZWwoImRpdiIsIHsgY2xhc3M6ICJhZG0tc2hlbGwiIH0sIFtuYXYsIHBhbmVdKSk7CiAgICB9Cgog ICAgZnVuY3Rpb24gY2xlYW4ocykgeyByZXR1cm4gU3RyaW5nKHMgPT0gbnVsbCA/ICIiIDogcyku cmVwbGFjZSgvW1xyXG5dKy9nLCAiICIpLnRyaW0oKTsgfQogICAgZnVuY3Rpb24gc2F2ZSgpIHsK ICAgICAgUy5icmFuZGluZy5wb3J0YWxUaXRsZSA9IGNsZWFuKFMuYnJhbmRpbmcucG9ydGFsVGl0 bGUpOwogICAgICBTLmJyYW5kaW5nLmJyYW5kTmFtZSA9IGNsZWFuKFMuYnJhbmRpbmcuYnJhbmRO YW1lKTsKICAgICAgUy5icmFuZGluZy5icmFuZFN1YnRpdGxlID0gY2xlYW4oUy5icmFuZGluZy5i cmFuZFN1YnRpdGxlKTsKICAgICAgUy5icmFuZGluZy5wcmludEZvb3RlciA9IGNsZWFuKFMuYnJh bmRpbmcucHJpbnRGb290ZXIpOwogICAgICBpZiAoIVMuYnJhbmRpbmcucG9ydGFsVGl0bGUgfHwg IVMuYnJhbmRpbmcuYnJhbmROYW1lKSB7CiAgICAgICAgYWN0aXZlID0gImJyYW5kIjsgcmVuZGVy TmF2KCk7IHJlbmRlclBhbmUoKTsKICAgICAgICBpZiAoYnJhbmRFcnIpIHsgYnJhbmRFcnIudGV4 dENvbnRlbnQgPSAiVGl0ZWwgdW5kIE1hcmtlbm5hbWUgZMO8cmZlbiBuaWNodCBsZWVyIHNlaW4u IjsgYnJhbmRFcnIuaGlkZGVuID0gZmFsc2U7IH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg IH0KICAgICAgUy5sYWdlUHJlc2V0cyA9IFMubGFnZVByZXNldHMuZmlsdGVyKGZ1bmN0aW9uIChw KSB7IHJldHVybiBjbGVhbihwLnRleHQpOyB9KQogICAgICAgIC5tYXAoZnVuY3Rpb24gKHApIHsg cmV0dXJuIHsgdGV4dDogY2xlYW4ocC50ZXh0KSwgbGV2ZWw6IHAubGV2ZWwgPT09ICJhbGVydCIg PyAiYWxlcnQiIDogIm9rIiB9OyB9KTsKICAgICAgUC5jb250ZW50LnNldHRpbmdzID0gUzsKICAg ICAgUC5wZXJzaXN0KCk7IFAuYXBwbHlTZXR0aW5ncygpOyBQLnJlbmRlckFsbCgpOwogICAgICBQ LnRvYXN0KCJFaW5zdGVsbHVuZ2VuIGdlc3BlaWNoZXJ0IiArIChQLmxpdmUgPyAiICYgdmVyw7Zm ZmVudGxpY2h0LiIgOiAiLiIpKTsKICAgIH0KCiAgICBQLm1vZGFsKHsKICAgICAgdGl0bGU6ICJQ b3J0YWwtRWluc3RlbGx1bmdlbiIsIGljb246ICJncmlkIiwgc2l6ZTogInhsIiwKICAgICAgYm9k eTogYnVpbGQsCiAgICAgIG9uQ2xvc2U6IGZ1bmN0aW9uICgpIHsgUC5hcHBseVNldHRpbmdzKCk7 IH0sICAgLy8gTGl2ZS1Wb3JzY2hhdSBhdWYgZ2VzcGVpY2hlcnRlbiBTdGFuZCB6dXJ1ZWNrc2V0 emVuCiAgICAgIGFjdGlvbnM6IFsKICAgICAgICB7IGxhYmVsOiAiQWJicmVjaGVuIiwga2luZDog Imdob3N0IiB9LAogICAgICAgIHsgbGFiZWw6ICJTcGVpY2hlcm4iLCBraW5kOiAicHJpbWFyeSIs IG9uQ2xpY2s6IHNhdmUgfQogICAgICBdCiAgICB9KTsKICB9OwoKfSkod2luZG93LlApOwo= ### FILE: assets/js/collab/collab.js | 15972 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgY29sbGFiLmpzICAoUGhhc2UgNCkK ICAgS29sbGFib3JhdGlvbiBhdWYgZGVtIGdlbWVpbnNhbWVuIFNoYXJlOiBzZXJ2ZXJzZWl0aWdl IFp3aXNjaGVuc3RhZW5kZQogICAoQXV0b3NhdmUsIGFic3R1cnpzaWNoZXIpLCBQcmFlc2VueiAo IndpcmQgZ2VyYWRlIGJlYXJiZWl0ZXQiKSwKICAgQWt0aXZpdGFldHMtL1p3aXNjaGVuc3RhbmRz LVVlYmVyc2ljaHQgdW5kIEtvbmZsaWt0LUVya2VubnVuZyBiZWltCiAgIFZlcm9lZmZlbnRsaWNo ZW4gKDQwOSkgbWl0IERpZmYtQW5zaWNodC4gTnVyIGltIFBmbGVnZS1Nb2R1cyBha3Rpdi4KICAg PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgZWwg PSBQLmVsLCAkID0gUC4kLCBpYyA9IFAuaWMsIGVzYyA9IFAuZXNjYXBlSHRtbDsKCiAgUC5jb2xs YWJTdGF0ZSA9IHsgZHJhZnRzOiBbXSwgbG9ja3M6IFtdLCBhY3Rpdml0eTogW10sIHJldnM6IHt9 IH07CiAgdmFyIHBvbGxUaW1lciA9IG51bGwsIGVkaXQgPSBudWxsLCB3cmFwcGVkID0gZmFsc2U7 CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tIEhUVFAgKi8KICBmdW5jdGlvbiBqcG9zdChwYXRoLCBib2R5KSB7CiAgICByZXR1 cm4gZmV0Y2gocGF0aCwgeyBtZXRob2Q6ICJQT1NUIiwgaGVhZGVyczogeyAiQ29udGVudC1UeXBl IjogImFwcGxpY2F0aW9uL2pzb24iIH0sIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpIH0pCiAg ICAgIC50aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiByLmpzb24oKTsgfSkuY2F0Y2goZnVuY3Rp b24gKCkgeyByZXR1cm4gbnVsbDsgfSk7CiAgfQogIGZ1bmN0aW9uIGpkZWwocGF0aCkgeyByZXR1 cm4gZmV0Y2gocGF0aCwgeyBtZXRob2Q6ICJERUxFVEUiIH0pLnRoZW4oZnVuY3Rpb24gKHIpIHsg cmV0dXJuIHIuanNvbigpOyB9KS5jYXRjaChmdW5jdGlvbiAoKSB7IHJldHVybiBudWxsOyB9KTsg fQogIGZ1bmN0aW9uIHFzKG8pIHsgdmFyIGEgPSBbXTsgZm9yICh2YXIgayBpbiBvKSBhLnB1c2go ZW5jb2RlVVJJQ29tcG9uZW50KGspICsgIj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KG9ba10pKTsg cmV0dXJuIGEuam9pbigiJiIpOyB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFplaWxlbi1EaWZmIChMQ1MsIG1pdCBGYWxs YmFjaykgKi8KICBQLmRpZmZMaW5lcyA9IGZ1bmN0aW9uIChhVGV4dCwgYlRleHQpIHsKICAgIHZh ciBhID0gKGFUZXh0ID09IG51bGwgPyAiIiA6IFN0cmluZyhhVGV4dCkpLnNwbGl0KCJcbiIpLCBi ID0gKGJUZXh0ID09IG51bGwgPyAiIiA6IFN0cmluZyhiVGV4dCkpLnNwbGl0KCJcbiIpOwogICAg dmFyIG91dCA9IFtdLCBpLCBqOwogICAgaWYgKGEubGVuZ3RoID4gMTIwMCB8fCBiLmxlbmd0aCA+ IDEyMDApIHsgICAgICAgIC8vIHp1IGdyb3NzIGZ1ZXIgTENTIC0+IE1lbmdlbi1EaWZmCiAgICAg IHZhciBzYSA9IHt9LCBzYiA9IHt9OwogICAgICBhLmZvckVhY2goZnVuY3Rpb24gKGwpIHsgc2Fb bF0gPSAxOyB9KTsgYi5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7IHNiW2xdID0gMTsgfSk7CiAgICAg IGEuZm9yRWFjaChmdW5jdGlvbiAobCkgeyBpZiAoIXNiW2xdKSBvdXQucHVzaCh7IHQ6ICItIiwg bDogbCB9KTsgfSk7CiAgICAgIGIuZm9yRWFjaChmdW5jdGlvbiAobCkgeyBpZiAoIXNhW2xdKSBv dXQucHVzaCh7IHQ6ICIrIiwgbDogbCB9KTsgfSk7CiAgICAgIHJldHVybiBvdXQ7CiAgICB9CiAg ICB2YXIgbiA9IGEubGVuZ3RoLCBtID0gYi5sZW5ndGgsIGRwID0gW107CiAgICBmb3IgKGkgPSAw OyBpIDw9IG47IGkrKykgeyBkcFtpXSA9IG5ldyBBcnJheShtICsgMSk7IGRwW2ldW21dID0gMDsg fQogICAgZm9yIChqID0gMDsgaiA8PSBtOyBqKyspIGRwW25dW2pdID0gMDsKICAgIGZvciAoaSA9 IG4gLSAxOyBpID49IDA7IGktLSkgZm9yIChqID0gbSAtIDE7IGogPj0gMDsgai0tKSBkcFtpXVtq XSA9IGFbaV0gPT09IGJbal0gPyBkcFtpICsgMV1baiArIDFdICsgMSA6IE1hdGgubWF4KGRwW2kg KyAxXVtqXSwgZHBbaV1baiArIDFdKTsKICAgIGkgPSAwOyBqID0gMDsKICAgIHdoaWxlIChpIDwg biAmJiBqIDwgbSkgewogICAgICBpZiAoYVtpXSA9PT0gYltqXSkgeyBvdXQucHVzaCh7IHQ6ICIg IiwgbDogYVtpXSB9KTsgaSsrOyBqKys7IH0KICAgICAgZWxzZSBpZiAoZHBbaSArIDFdW2pdID49 IGRwW2ldW2ogKyAxXSkgeyBvdXQucHVzaCh7IHQ6ICItIiwgbDogYVtpXSB9KTsgaSsrOyB9CiAg ICAgIGVsc2UgeyBvdXQucHVzaCh7IHQ6ICIrIiwgbDogYltqXSB9KTsgaisrOyB9CiAgICB9CiAg ICB3aGlsZSAoaSA8IG4pIG91dC5wdXNoKHsgdDogIi0iLCBsOiBhW2krK10gfSk7CiAgICB3aGls ZSAoaiA8IG0pIG91dC5wdXNoKHsgdDogIisiLCBsOiBiW2orK10gfSk7CiAgICByZXR1cm4gb3V0 OwogIH07CiAgLy8gTnVyIGdlYWVuZGVydGUgWmVpbGVuICsgZXR3YXMgS29udGV4dCByZW5kZXJu LgogIGZ1bmN0aW9uIHJlbmRlckRpZmYoaG9zdCwgZGlmZikgewogICAgaG9zdC5pbm5lckhUTUwg PSAiIjsKICAgIHZhciBzaG93ID0gW107CiAgICBkaWZmLmZvckVhY2goZnVuY3Rpb24gKGQsIGlk eCkgewogICAgICBpZiAoZC50ICE9PSAiICIpIHsKICAgICAgICBmb3IgKHZhciBrID0gTWF0aC5t YXgoMCwgaWR4IC0gMSk7IGsgPCBpZHg7IGsrKykgaWYgKHNob3cuaW5kZXhPZihrKSA8IDApIHNo b3cucHVzaChrKTsKICAgICAgICBzaG93LnB1c2goaWR4KTsKICAgICAgICBpZiAoZGlmZltpZHgg KyAxXSAmJiBkaWZmW2lkeCArIDFdLnQgPT09ICIgIikgc2hvdy5wdXNoKGlkeCArIDEpOwogICAg ICB9CiAgICB9KTsKICAgIHNob3cgPSBzaG93LmZpbHRlcihmdW5jdGlvbiAodiwgaywgYXJyKSB7 IHJldHVybiBhcnIuaW5kZXhPZih2KSA9PT0gazsgfSkuc29ydChmdW5jdGlvbiAoeCwgeSkgeyBy ZXR1cm4geCAtIHk7IH0pOwogICAgaWYgKCFzaG93Lmxlbmd0aCkgeyBob3N0LmFwcGVuZENoaWxk KGVsKCJkaXYiLCB7IGNsYXNzOiAibXV0ZWQiLCB0ZXh0OiAiS2VpbmUgaW5oYWx0bGljaGVuIFVu dGVyc2NoaWVkZSBnZWZ1bmRlbi4iIH0pKTsgcmV0dXJuOyB9CiAgICB2YXIgbGFzdCA9IC0yOwog ICAgc2hvdy5mb3JFYWNoKGZ1bmN0aW9uIChpZHgpIHsKICAgICAgaWYgKGlkeCA+IGxhc3QgKyAx KSBob3N0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiZGlmZi1nYXAiLCB0ZXh0OiAi 4ouvIiB9KSk7CiAgICAgIHZhciBkID0gZGlmZltpZHhdOwogICAgICBob3N0LmFwcGVuZENoaWxk KGVsKCJkaXYiLCB7IGNsYXNzOiAiZGlmZi1saW5lICIgKyAoZC50ID09PSAiKyIgPyAiYWRkIiA6 IGQudCA9PT0gIi0iID8gImRlbCIgOiAiY3R4IiksCiAgICAgICAgdGV4dDogKGQudCA9PT0gIisi ID8gIisgIiA6IGQudCA9PT0gIi0iID8gIi0gIiA6ICIgICIpICsgZC5sIH0pKTsKICAgICAgbGFz dCA9IGlkeDsKICAgIH0pOwogIH0KICBQLnJlbmRlckRpZmYgPSByZW5kZXJEaWZmOyAgIC8vIHZv biBhZG1pbi9oaXN0b3JpZS5qcyB3aWVkZXJ2ZXJ3ZW5kZXQKCiAgLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gS29uZmxpa3QgYmVp bSBWZXJvZWZmZW50bGljaGVuICovCiAgUC5vblB1Ymxpc2hDb25mbGljdCA9IGZ1bmN0aW9uIChy ZXMsIGZpbGVzKSB7CiAgICB2YXIgbWluZUZpbGUgPSBudWxsOwogICAgZmlsZXMuZm9yRWFjaChm dW5jdGlvbiAoZikgeyBpZiAoZi5uYW1lID09PSByZXMubmFtZSkgbWluZUZpbGUgPSBmOyB9KTsK ICAgIHZhciB1cmwgPSAiLyIgKyByZXMubmFtZSArICI/dD0iICsgbmV3IERhdGUoKS5nZXRUaW1l KCk7CiAgICBmZXRjaCh1cmwpLnRoZW4oZnVuY3Rpb24gKHIpIHsgcmV0dXJuIHIudGV4dCgpOyB9 KS50aGVuKGZ1bmN0aW9uIChjdXJyZW50VGV4dCkgewogICAgICBzaG93Q29uZmxpY3QocmVzLCBm aWxlcywgbWluZUZpbGUsIGN1cnJlbnRUZXh0KTsKICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsg c2hvd0NvbmZsaWN0KHJlcywgZmlsZXMsIG1pbmVGaWxlLCAiIik7IH0pOwogIH07CiAgdmFyIGNv bmZsaWN0TW9kYWwgPSBudWxsOwogIGZ1bmN0aW9uIHNob3dDb25mbGljdChyZXMsIGZpbGVzLCBt aW5lRmlsZSwgY3VycmVudFRleHQpIHsKICAgIGNsb3NlQ29uZmxpY3QoKTsKICAgIHZhciBkaWZm ID0gUC5kaWZmTGluZXMoY3VycmVudFRleHQsIG1pbmVGaWxlID8gbWluZUZpbGUudGV4dCA6ICIi KTsKICAgIGNvbmZsaWN0TW9kYWwgPSBQLm1vZGFsKHsKICAgICAgdGl0bGU6ICJWZXLDtmZmZW50 bGljaHVuZ3MtS29uZmxpa3QiLCBpY29uOiAiYWxlcnQiLCBzaXplOiAibGciLAogICAgICBib2R5 OiBmdW5jdGlvbiAoaG9zdCkgewogICAgICAgIGhvc3Quc3R5bGUucGFkZGluZyA9ICIwIjsgICAv LyBTdWItWmVpbGUgKyBEaWZmIHJhbmRsb3Mgd2llIHp1dm9yCiAgICAgICAgaG9zdC5hcHBlbmRD aGlsZChlbCgiZGl2IiwgeyBjbGFzczogImNvbGxhYi1kbGctc3ViIiwgaHRtbDoKICAgICAgICAg ICJKZW1hbmQgaGF0IDxiPiIgKyBlc2MocmVzLm5hbWUpICsgIjwvYj4gendpc2NoZW56ZWl0bGlj aCB2ZXLDtmZmZW50bGljaHQgKFN0YW5kICIgKyBlc2MoU3RyaW5nKHJlcy5jdXJyZW50UmV2KSkg KwogICAgICAgICAgIiwgZGVpbiBTdGFuZCAiICsgZXNjKFN0cmluZyhyZXMueW91clJldikpICsg IikuIFVudGVuIHNpZWhzdCBkdSwgd2FzIGRlaW5lIFZlcnNpb24gw6RuZGVybiB3w7xyZGUuIiB9 KSk7CiAgICAgICAgdmFyIGRpZmZIb3N0ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJkaWZmLXZpZXci IH0pOyByZW5kZXJEaWZmKGRpZmZIb3N0LCBkaWZmKTsgaG9zdC5hcHBlbmRDaGlsZChkaWZmSG9z dCk7CiAgICAgIH0sCiAgICAgIG9uQ2xvc2U6IGZ1bmN0aW9uICgpIHsgY29uZmxpY3RNb2RhbCA9 IG51bGw7IH0sCiAgICAgIGFjdGlvbnM6IFsKICAgICAgICB7IGxhYmVsOiAiQWJicmVjaGVuIChs b2thbCBiZWhhbHRlbikiLCBraW5kOiAiZ2hvc3QiIH0sCiAgICAgICAgeyBsYWJlbDogIkFrdHVl bGxlbiBTdGFuZCBsYWRlbiAobWVpbmUgdmVyd2VyZmVuKSIsIGtpbmQ6ICJkYW5nZXIiLAogICAg ICAgICAgb25DbGljazogZnVuY3Rpb24gKCkgeyB0cnkgeyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRl bShQLkxTLmNvbnRlbnQpOyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShQLkxTLm5hdik7IH0gY2F0 Y2ggKGUpIHt9IGxvY2F0aW9uLnJlbG9hZCgpOyB9IH0sCiAgICAgICAgeyBsYWJlbDogIk1laW5l IFZlcnNpb24gdmVyw7ZmZmVudGxpY2hlbiIsIGtpbmQ6ICJwcmltYXJ5IiwKICAgICAgICAgIG9u Q2xpY2s6IGZ1bmN0aW9uICgpIHsgdmFyIGN1ciA9IHt9OyBjdXJbcmVzLm5hbWVdID0gcmVzLmN1 cnJlbnRSZXY7IFAucmVwdWJsaXNoT3ZlcndyaXRlKGZpbGVzLCBjdXIpOyBQLnRvYXN0KCJEZWlu ZSBWZXJzaW9uIHdpcmQgdmVyw7ZmZmVudGxpY2h0IOKApiIpOyB9IH0KICAgICAgXQogICAgfSk7 CiAgfQogIGZ1bmN0aW9uIGNsb3NlQ29uZmxpY3QoKSB7IGlmIChjb25mbGljdE1vZGFsKSBjb25m bGljdE1vZGFsLmNsb3NlKCk7IH0KCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQXV0b3NhdmUgLyBMb2NrIHBybyBFZGl0b3Ig Ki8KICBmdW5jdGlvbiBiZWdpbkVkaXQoa2luZCwgdGFyZ2V0LCBsYWJlbCwgZGxnU2VsLCBzbmFw Rm4sIGFwcGx5Rm4pIHsKICAgIGVuZEVkaXQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBldnRsLiB2b3JoZXJpZ2UgQmVhcmJlaXR1bmcgc2F1YmVyIHNjaGxpZXNzZW4KICAgIGVk aXQgPSB7IGtpbmQ6IGtpbmQsIHRhcmdldDogdGFyZ2V0LCBsYWJlbDogbGFiZWwsIHNuYXA6IHNu YXBGbiwgZGxnOiBkbGdTZWwsIGRpcnR5OiBmYWxzZSB9OwogICAganBvc3QoIi9hcGkvbG9jayIs IHsga2luZDoga2luZCwgdGFyZ2V0SWQ6IHRhcmdldCwgbGFiZWw6IGxhYmVsIH0pOwogICAgLy8g Q3Jhc2gtUmVjb3Zlcnk6IGxpZWd0IGVpbiBad2lzY2hlbnN0YW5kIGZ1ZXIgZGllc2VzIFppZWwg dm9yPwogICAgdmFyIGQgPSBmaW5kRHJhZnQoa2luZCwgdGFyZ2V0KTsKICAgIGlmIChkICYmIGQu cGF5bG9hZCAmJiBhcHBseUZuKSB7CiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAg ICAgIFAuY29uZmlybSgiRsO8ciDigJ4iICsgbGFiZWwgKyAi4oCcIGdpYnQgZXMgZWluZW4gbmlj aHQgYWJnZXNjaGxvc3NlbmVuIFp3aXNjaGVuc3RhbmQgKCIgKyAoZC5uYW1lIHx8IGQuYXV0aG9y KSArICIsICIgKyAoZC51cGRhdGVkQXQgfHwgIiIpICsgIikuXG5cbldpZWRlcmhlcnN0ZWxsZW4/ IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgYXBwbHlGbihkLnBheWxvYWQpOyBQLnRvYXN0KCJa d2lzY2hlbnN0YW5kIHdpZWRlcmhlcmdlc3RlbGx0LiIpOwogICAgICAgIH0pOwogICAgICB9LCA4 MCk7CiAgICB9CiAgICAvLyBBdXRvc2F2ZTogYmVpIEVpbmdhYmUgKGVudHByZWxsdCkgKyByZWdl bG1hZXNzaWcuCiAgICBlZGl0Lm9uSW5wdXQgPSBmdW5jdGlvbiAoKSB7IGVkaXQuZGlydHkgPSB0 cnVlOyBzY2hlZHVsZVNhdmUoKTsgfTsKICAgIHZhciBkbGcgPSAkKGRsZ1NlbCk7IGlmIChkbGcp IGRsZy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIGVkaXQub25JbnB1dCk7CiAgICBlZGl0Lml2 ID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgeyBpZiAoZWRpdCAmJiBlZGl0LmRpcnR5KSBzYXZl RHJhZnQoKTsgfSwgNDAwMCk7CiAgICBlZGl0LmhiID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkg eyBpZiAoZWRpdCkganBvc3QoIi9hcGkvbG9jayIsIHsga2luZDogZWRpdC5raW5kLCB0YXJnZXRJ ZDogZWRpdC50YXJnZXQsIGxhYmVsOiBlZGl0LmxhYmVsIH0pOyB9LCA2MDAwMCk7CiAgICBlZGl0 Lm9uQ2xvc2UgPSBmdW5jdGlvbiAoKSB7IGVuZEVkaXQodHJ1ZSk7IH07CiAgICBpZiAoZGxnKSBk bGcuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCBlZGl0Lm9uQ2xvc2UpOwogIH0KICB2YXIgc2F2 ZVQgPSBudWxsOwogIGZ1bmN0aW9uIHNjaGVkdWxlU2F2ZSgpIHsgY2xlYXJUaW1lb3V0KHNhdmVU KTsgc2F2ZVQgPSBzZXRUaW1lb3V0KHNhdmVEcmFmdCwgMTUwMCk7IH0KICBmdW5jdGlvbiBzYXZl RHJhZnQoKSB7CiAgICBpZiAoIWVkaXQpIHJldHVybjsKICAgIHZhciBwYXlsb2FkOyB0cnkgeyBw YXlsb2FkID0gZWRpdC5zbmFwKCk7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuOyB9CiAgICBlZGl0LmRp cnR5ID0gZmFsc2U7CiAgICBqcG9zdCgiL2FwaS9kcmFmdCIsIHsga2luZDogZWRpdC5raW5kLCB0 YXJnZXRJZDogZWRpdC50YXJnZXQsIHBheWxvYWQ6IHBheWxvYWQsIGJhc2VSZXY6IFAuc2VydmVy UmV2IH0pOwogIH0KICAvLyBiZWltIFNjaGxpZXNzZW4gZGVzIERpYWxvZ3M6IExvY2sgKyBad2lz Y2hlbnN0YW5kIGF1ZnJhZXVtZW4gKGJld3Vzc3QgYmVlbmRldCkuCiAgLy8gQmVpIEFic3R1cnog KGtlaW4gY2xvc2UtRXZlbnQpIGJsZWlidCBkZXIgWndpc2NoZW5zdGFuZCBzZXJ2ZXJzZWl0aWcg ZXJoYWx0ZW4uCiAgZnVuY3Rpb24gZW5kRWRpdChyZW1vdmVEcmFmdCkgewogICAgaWYgKCFlZGl0 KSByZXR1cm47CiAgICBjbGVhclRpbWVvdXQoc2F2ZVQpOyBjbGVhckludGVydmFsKGVkaXQuaXYp OyBjbGVhckludGVydmFsKGVkaXQuaGIpOwogICAgdmFyIGRsZyA9ICQoZWRpdC5kbGcpOyBpZiAo ZGxnICYmIGVkaXQub25JbnB1dCkgZGxnLnJlbW92ZUV2ZW50TGlzdGVuZXIoImlucHV0IiwgZWRp dC5vbklucHV0KTsKICAgIGlmIChkbGcgJiYgZWRpdC5vbkNsb3NlKSBkbGcucmVtb3ZlRXZlbnRM aXN0ZW5lcigiY2xvc2UiLCBlZGl0Lm9uQ2xvc2UpOwogICAgamRlbCgiL2FwaS9sb2NrPyIgKyBx cyh7IGtpbmQ6IGVkaXQua2luZCwgdGFyZ2V0SWQ6IGVkaXQudGFyZ2V0IH0pKTsKICAgIGlmIChy ZW1vdmVEcmFmdCkgamRlbCgiL2FwaS9kcmFmdD8iICsgcXMoeyBraW5kOiBlZGl0LmtpbmQsIHRh cmdldElkOiBlZGl0LnRhcmdldCB9KSk7CiAgICBlZGl0ID0gbnVsbDsKICB9CiAgZnVuY3Rpb24g ZmluZERyYWZ0KGtpbmQsIHRhcmdldCkgewogICAgdmFyIGxpc3QgPSBQLmNvbGxhYlN0YXRlLmRy YWZ0cyB8fCBbXSwgaGl0ID0gbnVsbDsKICAgIGxpc3QuZm9yRWFjaChmdW5jdGlvbiAoZCkgeyBp ZiAoZC5raW5kID09PSBraW5kICYmIGQudGFyZ2V0SWQgPT09IHRhcmdldCkgaGl0ID0gZDsgfSk7 CiAgICByZXR1cm4gaGl0OwogIH0KCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRWRpdG9yLUZ1bmt0aW9uZW4gdW1odWVsbGVu ICovCiAgZnVuY3Rpb24gd3JhcEVkaXRvcnMoKSB7CiAgICBpZiAod3JhcHBlZCkgcmV0dXJuOyB3 cmFwcGVkID0gdHJ1ZTsKICAgIGlmIChQLm9wZW5BcnRpY2xlRGxnKSB7CiAgICAgIHZhciBvYSA9 IFAub3BlbkFydGljbGVEbGc7CiAgICAgIFAub3BlbkFydGljbGVEbGcgPSBmdW5jdGlvbiAoeCkg eyBvYSh4KTsgaWYgKFAuYXJ0aWNsZVRhcmdldCkgYmVnaW5FZGl0KCJhcnRpY2xlIiwgUC5hcnRp Y2xlVGFyZ2V0KCksIFAuYXJ0aWNsZUxhYmVsKCksICIjYXJ0LWRsZyIsIFAuYXJ0aWNsZVNuYXBz aG90LCBQLmFydGljbGVBcHBseSk7IH07CiAgICB9CiAgICBpZiAoUC5vcGVuQnVsbGV0aW5EbGcp IHsKICAgICAgdmFyIG9iID0gUC5vcGVuQnVsbGV0aW5EbGc7CiAgICAgIFAub3BlbkJ1bGxldGlu RGxnID0gZnVuY3Rpb24gKHgpIHsgb2IoeCk7IGlmIChQLmJ1bGxldGluVGFyZ2V0KSBiZWdpbkVk aXQoImJ1bGxldGluIiwgUC5idWxsZXRpblRhcmdldCgpLCBQLmJ1bGxldGluTGFiZWwoKSwgIiNi dWxsLWRsZyIsIFAuYnVsbGV0aW5TbmFwc2hvdCwgUC5idWxsZXRpbkFwcGx5KTsgfTsKICAgIH0K ICAgIC8vIExldHp0ZW4gWndpc2NoZW5zdGFuZCBiZWkgQnJvd3Nlci0vVGFiLVNjaGx1c3Mgbm9j aCBzaWNoZXJuIChDcmFzaC1GYWxsKS4KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZv cmV1bmxvYWQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGlmIChlZGl0ICYmIG5hdmlnYXRvci5zZW5k QmVhY29uKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHZhciBib2R5ID0gSlNPTi5zdHJpbmdp ZnkoeyBraW5kOiBlZGl0LmtpbmQsIHRhcmdldElkOiBlZGl0LnRhcmdldCwgcGF5bG9hZDogZWRp dC5zbmFwKCksIGJhc2VSZXY6IFAuc2VydmVyUmV2IH0pOwogICAgICAgICAgbmF2aWdhdG9yLnNl bmRCZWFjb24oIi9hcGkvZHJhZnQiLCBuZXcgQmxvYihbYm9keV0sIHsgdHlwZTogImFwcGxpY2F0 aW9uL2pzb24iIH0pKTsKICAgICAgICB9IGNhdGNoIChlKSB7fQogICAgICB9CiAgICB9KTsKICB9 CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tIFByYWVzZW56LURlY29yYXRpb24gKi8KICBmdW5jdGlvbiBkZWNvcmF0ZVByZXNl bmNlKCkgewogICAgUC4kJCgiLmNvbGxhYi1iYWRnZSIpLmZvckVhY2goZnVuY3Rpb24gKGIpIHsg Yi5yZW1vdmUoKTsgfSk7CiAgICAoUC5jb2xsYWJTdGF0ZS5sb2NrcyB8fCBbXSkuZm9yRWFjaChm dW5jdGlvbiAobGspIHsKICAgICAgaWYgKGxrLmF1dGhvciAmJiBQLnVzZXIgJiYgbGsuYXV0aG9y LnRvTG93ZXJDYXNlKCkgPT09IFN0cmluZyhQLnVzZXIpLnRvTG93ZXJDYXNlKCkpIHJldHVybjsg IC8vIGVpZ2VuZSBuaWNodAogICAgICB2YXIgd2hvID0gbGsubmFtZSB8fCBsay5hdXRob3IgfHwg ImplbWFuZCI7CiAgICAgIGlmIChsay5raW5kID09PSAiYXJ0aWNsZSIpIHsKICAgICAgICB2YXIg YSA9ICQoJyNzaWRlYmFyIGFbZGF0YS1rZXk9IicgKyBjc3NFc2MobGsudGFyZ2V0SWQpICsgJyJd Jyk7CiAgICAgICAgaWYgKGEpIGEuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAiY29s bGFiLWJhZGdlIiwgdGl0bGU6IHdobyArICIgYmVhcmJlaXRldCBkYXMgZ2VyYWRlIiwgaHRtbDog aWMoImVkaXQiKSArIGVzYyhzaG9ydCh3aG8pKSB9KSk7CiAgICAgICAgLy8gUGhhc2UgODogYXVj aCBkZXIgb2ZmZW5lIEFydGlrZWwtS29wZiBiZWtvbW10IGRlbiBQcmFlc2Vuei1CYWRnZS4KICAg ICAgICBpZiAoUC5jdXJBcnRpY2xlICYmIGxrLnRhcmdldElkID09PSAoImFydDoiICsgKFAuY3Vy QXJ0aWNsZS5faWQgfHwgUC5jdXJBcnRpY2xlLmxhYmVsKSkpIHsKICAgICAgICAgIHZhciBtZXRh ID0gJCgiI2N2LWFydGljbGUgLmFydC1tZXRhIik7CiAgICAgICAgICBpZiAobWV0YSkgbWV0YS5h cHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJjb2xsYWItYmFkZ2UiLCB0aXRsZTogd2hv ICsgIiBiZWFyYmVpdGV0IGRhcyBnZXJhZGUiLCBodG1sOiBpYygiZWRpdCIpICsgZXNjKHNob3J0 KHdobykpIH0pKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAobGsua2luZCA9PT0gImJ1bGxl dGluIikgewogICAgICAgIHZhciBiaWQgPSBsay50YXJnZXRJZC5yZXBsYWNlKC9eYnVsbDovLCAi Iik7CiAgICAgICAgdmFyIGNhcmQgPSAkKCcjZmVlZCAuYnVsbFtkYXRhLWJpZD0iJyArIGNzc0Vz YyhiaWQpICsgJyJdJyk7CiAgICAgICAgaWYgKGNhcmQpIHsgdmFyIHRvcCA9ICQoIi5idWxsLXRv cCIsIGNhcmQpOyBpZiAodG9wKSB0b3AuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi Y29sbGFiLWJhZGdlIiwgdGl0bGU6IHdobyArICIgYmVhcmJlaXRldCBkYXMgZ2VyYWRlIiwgaHRt bDogaWMoImVkaXQiKSArIGVzYyhzaG9ydCh3aG8pKSB9KSk7IH0KICAgICAgfQogICAgfSk7CiAg fQogIGZ1bmN0aW9uIHNob3J0KHMpIHsgcyA9IFN0cmluZyhzKTsgcmV0dXJuIHMubGVuZ3RoID4g MTQgPyBzLnNsaWNlKDAsIDEzKSArICLigKYiIDogczsgfQogIGZ1bmN0aW9uIGNzc0VzYyhzKSB7 IHJldHVybiBTdHJpbmcocykucmVwbGFjZSgvWyJcXF0vZywgIlxcJCYiKTsgfQoKICAvKiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBT dGF0ZS1Qb2xsICovCiAgZnVuY3Rpb24gcG9sbCgpIHsKICAgIGZldGNoKCIvYXBpL3N0YXRlIiku dGhlbihmdW5jdGlvbiAocikgeyByZXR1cm4gci5qc29uKCk7IH0pLnRoZW4oZnVuY3Rpb24gKGop IHsKICAgICAgaWYgKCFqIHx8ICFqLm9rKSByZXR1cm47CiAgICAgIC8vIFBTNS4xIGthbm4gMS1l bGVtZW50aWdlIEFycmF5cyBhbHMgT2JqZWt0IGxpZWZlcm4gLT4gbm9ybWFsaXNpZXJlbi4KICAg ICAgUC5jb2xsYWJTdGF0ZSA9IHsgZHJhZnRzOiBhcnIoai5kcmFmdHMpLCBsb2NrczogYXJyKGou bG9ja3MpLCBhY3Rpdml0eTogYXJyKGouYWN0aXZpdHkpLCByZXZzOiBqLnJldnMgfHwge30gfTsK ICAgICAgaWYgKGoucmV2cykgUC5zZXJ2ZXJSZXYgPSBqLnJldnM7CiAgICAgIGRlY29yYXRlUHJl c2VuY2UoKTsKICAgICAgdXBkYXRlQnV0dG9uKCk7CiAgICAgIFAuZW1pdCgiY29sbGFiOnN0YXRl IiwgUC5jb2xsYWJTdGF0ZSk7CiAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgfQogIGZ1 bmN0aW9uIGFycih2KSB7IHJldHVybiB2ID09IG51bGwgPyBbXSA6IChPYmplY3QucHJvdG90eXBl LnRvU3RyaW5nLmNhbGwodikgPT09ICJbb2JqZWN0IEFycmF5XSIgPyB2IDogW3ZdKTsgfQoKICAv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSBBa3Rpdml0YWV0cy0vWndpc2NoZW5zdGFuZHMtUG9wb3ZlciAqLwogIGZ1bmN0aW9uIHVw ZGF0ZUJ1dHRvbigpIHsKICAgIHZhciBidG4gPSAkKCIjY29sbGFiLWJ0biIpOyBpZiAoIWJ0bikg cmV0dXJuOwogICAgdmFyIG90aGVycyA9IChQLmNvbGxhYlN0YXRlLmxvY2tzIHx8IFtdKS5maWx0 ZXIoZnVuY3Rpb24gKGxrKSB7IHJldHVybiAhKGxrLmF1dGhvciAmJiBQLnVzZXIgJiYgbGsuYXV0 aG9yLnRvTG93ZXJDYXNlKCkgPT09IFN0cmluZyhQLnVzZXIpLnRvTG93ZXJDYXNlKCkpOyB9KTsK ICAgIGJ0bi5jbGFzc0xpc3QudG9nZ2xlKCJob3QiLCBvdGhlcnMubGVuZ3RoID4gMCk7CiAgICBi dG4uc2V0QXR0cmlidXRlKCJ0aXRsZSIsIG90aGVycy5sZW5ndGggPyAob3RoZXJzLmxlbmd0aCAr ICIgYmVhcmJlaXRlbiBnZXJhZGUiKSA6ICJBa3Rpdml0w6R0ICYgWndpc2NoZW5zdMOkbmRlIik7 CiAgfQogIFAudG9nZ2xlQ29sbGFiUGFuZWwgPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIgZXggPSAk KCIjY29sbGFiLXBvcCIpOyBpZiAoZXgpIHsgZXgucmVtb3ZlKCk7IHJldHVybjsgfQogICAgdmFy IHBvcCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiY29sbGFiLXBvcCIsIGlkOiAiY29sbGFiLXBvcCIg fSk7CiAgICBwb3AuYXBwZW5kQ2hpbGQoc2VjdGlvbigiV2lyZCBnZXJhZGUgYmVhcmJlaXRldCIs IChQLmNvbGxhYlN0YXRlLmxvY2tzIHx8IFtdKS5tYXAoZnVuY3Rpb24gKGxrKSB7CiAgICAgIHJl dHVybiByb3coaWMoImVkaXQiKSwgbGsubGFiZWwgfHwgbGsudGFyZ2V0SWQsIChsay5uYW1lIHx8 IGxrLmF1dGhvcikgKyAiIMK3ICIgKyAobGsudHMgfHwgIiIpLCBudWxsKTsKICAgIH0pKSk7CiAg ICBwb3AuYXBwZW5kQ2hpbGQoc2VjdGlvbigiT2ZmZW5lIFp3aXNjaGVuc3TDpG5kZSIsIChQLmNv bGxhYlN0YXRlLmRyYWZ0cyB8fCBbXSkubWFwKGZ1bmN0aW9uIChkKSB7CiAgICAgIHJldHVybiBy b3coaWMoImluYm94IiksIGRyYWZ0TGFiZWwoZCksIChkLm5hbWUgfHwgZC5hdXRob3IpICsgIiDC tyAiICsgKGQudXBkYXRlZEF0IHx8ICIiKSwgZnVuY3Rpb24gKCkgeyByZXN0b3JlRHJhZnQoZCk7 IH0pOwogICAgfSkpKTsKICAgIHBvcC5hcHBlbmRDaGlsZChzZWN0aW9uKCJMZXR6dGUgw4RuZGVy dW5nZW4iLCAoUC5jb2xsYWJTdGF0ZS5hY3Rpdml0eSB8fCBbXSkuc2xpY2UoMCwgMTIpLm1hcChm dW5jdGlvbiAoYSkgewogICAgICByZXR1cm4gcm93KGljKCJjbG9jayIpLCAoYS5hY3Rpb24gPT09 ICJwdWJsaXNoIiA/ICJWZXLDtmZmZW50bGljaHQiIDogYS5hY3Rpb24pICsgIjogIiArIChhLnRh cmdldCB8fCAiIiksIChhLm5hbWUgfHwgYS51c2VyKSArICIgwrcgIiArIChhLnRzIHx8ICIiKSwg bnVsbCk7CiAgICB9KSkpOwogICAgdmFyIGJ0biA9ICQoIiNjb2xsYWItYnRuIik7IGRvY3VtZW50 LmJvZHkuYXBwZW5kQ2hpbGQocG9wKTsKICAgIGlmIChidG4pIHsgdmFyIHIgPSBidG4uZ2V0Qm91 bmRpbmdDbGllbnRSZWN0KCk7IHBvcC5zdHlsZS50b3AgPSAoci5ib3R0b20gKyA4KSArICJweCI7 IHBvcC5zdHlsZS5yaWdodCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAtIHIucmlnaHQpICsgInB4Ijsg fQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIo ImNsaWNrIiwgb2ZmQ2xpY2spOyB9LCAwKTsKICB9OwogIGZ1bmN0aW9uIG9mZkNsaWNrKGUpIHsg aWYgKCFlLnRhcmdldC5jbG9zZXN0KCIjY29sbGFiLXBvcCIpICYmICFlLnRhcmdldC5jbG9zZXN0 KCIjY29sbGFiLWJ0biIpKSB7IHZhciBwID0gJCgiI2NvbGxhYi1wb3AiKTsgaWYgKHApIHAucmVt b3ZlKCk7IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIiwgb2ZmQ2xpY2spOyB9 IH0KICBmdW5jdGlvbiBzZWN0aW9uKHRpdGxlLCByb3dzKSB7CiAgICB2YXIgcyA9IGVsKCJkaXYi LCB7IGNsYXNzOiAiY29sbGFiLXNlYyIgfSwgW2VsKCJkaXYiLCB7IGNsYXNzOiAiY29sbGFiLXNl Yy1oIiwgdGV4dDogdGl0bGUgfSldKTsKICAgIGlmICghcm93cy5sZW5ndGgpIHMuYXBwZW5kQ2hp bGQoZWwoImRpdiIsIHsgY2xhc3M6ICJtdXRlZCBjb2xsYWItZW1wdHkiLCB0ZXh0OiAi4oCUIiB9 KSk7CiAgICBlbHNlIHJvd3MuZm9yRWFjaChmdW5jdGlvbiAocikgeyBzLmFwcGVuZENoaWxkKHIp OyB9KTsKICAgIHJldHVybiBzOwogIH0KICBmdW5jdGlvbiByb3coaWNvbiwgdGl0bGUsIHN1Yiwg b25jbGljaykgewogICAgcmV0dXJuIGVsKCJkaXYiLCB7IGNsYXNzOiAiY29sbGFiLXJvdyIgKyAo b25jbGljayA/ICIgYWN0IiA6ICIiKSwgb25jbGljazogb25jbGljayB8fCBudWxsIH0sIFsKICAg ICAgZWwoInNwYW4iLCB7IGNsYXNzOiAiY29sbGFiLXJvdy1pYyIsIGh0bWw6IGljb24gfSksCiAg ICAgIGVsKCJkaXYiLCB7IGNsYXNzOiAiY29sbGFiLXJvdy1tYWluIiB9LCBbZWwoImRpdiIsIHsg Y2xhc3M6ICJjb2xsYWItcm93LXQiLCB0ZXh0OiB0aXRsZSB9KSwgZWwoImRpdiIsIHsgY2xhc3M6 ICJjb2xsYWItcm93LXMiLCB0ZXh0OiBzdWIgfSldKQogICAgXSk7CiAgfQogIGZ1bmN0aW9uIGRy YWZ0TGFiZWwoZCkgewogICAgdmFyIHAgPSBkLnBheWxvYWQgfHwge307CiAgICByZXR1cm4gKHAu dGl0bGUgfHwgZC50YXJnZXRJZCB8fCBkLmtpbmQpICsgKGQua2luZCA9PT0gImFydGljbGUiID8g IiAoQXJ0aWtlbCkiIDogZC5raW5kID09PSAiYnVsbGV0aW4iID8gIiAoTWVsZHVuZykiIDogIiIp OwogIH0KICBmdW5jdGlvbiByZXN0b3JlRHJhZnQoZCkgewogICAgdmFyIHAgPSAkKCIjY29sbGFi LXBvcCIpOyBpZiAocCkgcC5yZW1vdmUoKTsKICAgIGlmIChkLmtpbmQgPT09ICJhcnRpY2xlIiAm JiBQLm9wZW5BcnRpY2xlRGxnKSB7CiAgICAgIHZhciBpdGVtID0gbnVsbDsgaWYgKGQudGFyZ2V0 SWQgIT09ICJhcnQ6bmV3IiAmJiBQLmZpbmROYXZJdGVtQnlJZCkgaXRlbSA9IFAuZmluZE5hdkl0 ZW1CeUlkKGQudGFyZ2V0SWQucmVwbGFjZSgvXmFydDovLCAiIikpOwogICAgICBQLm9wZW5BcnRp Y2xlRGxnKGl0ZW0pOyAgIC8vIGJlZ2luRWRpdCBiaWV0ZXQgZGVuIFp3aXNjaGVuc3RhbmQgenVy IFdpZWRlcmhlcnN0ZWxsdW5nIGFuCiAgICB9IGVsc2UgaWYgKGQua2luZCA9PT0gImJ1bGxldGlu IiAmJiBQLm9wZW5CdWxsZXRpbkRsZykgewogICAgICB2YXIgYiA9IG51bGw7CiAgICAgIGlmIChk LnRhcmdldElkICE9PSAiYnVsbDpuZXciKSB7IHZhciBiaWQgPSBkLnRhcmdldElkLnJlcGxhY2Uo L15idWxsOi8sICIiKTsgKFAuY29udGVudC5idWxsZXRpbnMgfHwgW10pLmZvckVhY2goZnVuY3Rp b24gKHgpIHsgaWYgKCh4LmlkIHx8IHgudGl0bGUpID09PSBiaWQpIGIgPSB4OyB9KTsgfQogICAg ICBQLm9wZW5CdWxsZXRpbkRsZyhiKTsKICAgIH0KICB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEluaXQgKGF1cyBtYWlu LnNldEVkaXRvcikgKi8KICBQLmluaXRDb2xsYWIgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoIVAu bGl2ZSkgcmV0dXJuOwogICAgd3JhcEVkaXRvcnMoKTsKICAgIHZhciBidG4gPSAkKCIjY29sbGFi LWJ0biIpOwogICAgaWYgKGJ0biAmJiAhYnRuLmRhdGFzZXQud2lyZWQpIHsgYnRuLmRhdGFzZXQu d2lyZWQgPSAiMSI7IGJ0bi5zdHlsZS5kaXNwbGF5ID0gIiI7IGJ0bi5hZGRFdmVudExpc3RlbmVy KCJjbGljayIsIFAudG9nZ2xlQ29sbGFiUGFuZWwpOyB9CiAgICBwb2xsKCk7CiAgICBpZiAocG9s bFRpbWVyKSBjbGVhckludGVydmFsKHBvbGxUaW1lcik7CiAgICBwb2xsVGltZXIgPSBzZXRJbnRl cnZhbChmdW5jdGlvbiAoKSB7IGlmICghZG9jdW1lbnQuaGlkZGVuKSBwb2xsKCk7IH0sIDEyMDAw KTsKICAgIFAub24oInJlbmRlcmVkIiwgZnVuY3Rpb24gKCkgeyBkZWNvcmF0ZVByZXNlbmNlKCk7 IH0pOyAgIC8vIG5hY2ggUmUtUmVuZGVyIEJhZGdlcyBuZXUgc2V0emVuCiAgICBQLm9uKCJwdWJs aXNoZWQiLCBmdW5jdGlvbiAoKSB7IHNldFRpbWVvdXQocG9sbCwgNDAwKTsgfSk7CiAgfTsKCn0p KHdpbmRvdy5QKTsK ### FILE: assets/js/core/core.js | 53710 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgY29yZS5qcwogICBGdW5kYW1lbnQ6 IE5hbWVzcGFjZSBQLCBJY29ucywgSGVsZmVyLCBTdGF0ZSwgUGVyc2lzdGVueiwgVGhlbWUsIFRv YXN0LgogICBLbGFzc2lzY2hlcyBTY3JpcHQgKGtlaW4gRVMtTW9kdWwpIOKGkiBmaWxlOi8vLXRh dWdsaWNoLiBXaXJkIHZvciBhbGxlbgogICBhbmRlcmVuIFAuKi1Nb2R1bGVuIGdlbGFkZW4uCiAg ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PSAqLwp3aW5kb3cuUCA9IHdpbmRvdy5QIHx8IHt9OwooZnVuY3Rpb24gKFAp IHsKICAidXNlIHN0cmljdCI7CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEV2ZW50LUJ1cyAoUGhhc2UgMikKICAgICBFbnRr b3BwZWx0ICJldHdhcyBoYXQgc2ljaCBnZWFlbmRlcnQiIHZvbiAid2VyIHJlYWdpZXJ0IGRhcmF1 ZiIuIE1vZHVsZQogICAgIGtvZW5uZW4gdWViZXIgUC5vbiguLi4pIHJlYWdpZXJlbiwgb2huZSBk YXNzIGRpZSBhZW5kZXJuZGUgU3RlbGxlIHNpZSBrZW5udC4KICAgICBGdW5kYW1lbnQgZnVlciBQ aGFzZSA0IChBdXRvc2F2ZS9Ba3Rpdml0YWV0L1ByYWVzZW56KS4gKi8KICB2YXIgc3VicyA9IHt9 OwogIFAub24gPSBmdW5jdGlvbiAoZXZ0LCBmbikgeyAoc3Vic1tldnRdIHx8IChzdWJzW2V2dF0g PSBbXSkpLnB1c2goZm4pOyByZXR1cm4gZm47IH07CiAgUC5vZmYgPSBmdW5jdGlvbiAoZXZ0LCBm bikgeyB2YXIgYSA9IHN1YnNbZXZ0XTsgaWYgKCFhKSByZXR1cm47IHZhciBpID0gYS5pbmRleE9m KGZuKTsgaWYgKGkgPj0gMCkgYS5zcGxpY2UoaSwgMSk7IH07CiAgUC5lbWl0ID0gZnVuY3Rpb24g KGV2dCwgZGF0YSkgeyB2YXIgYSA9IHN1YnNbZXZ0XTsgaWYgKGEpIGEuc2xpY2UoKS5mb3JFYWNo KGZ1bmN0aW9uIChmbikgeyB0cnkgeyBmbihkYXRhLCBldnQpOyB9IGNhdGNoIChlKSB7fSB9KTsg fTsKCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gQ29udGVudC1UeXBlLVJlZ2lzdHJ5IChQaGFzZSAzKQogICAgIEVpbiBPcnQs IGFuIGRlbSBzaWNoIEluaGFsdHN0eXBlbiBtaXQgU3VjaGUgLyBBLVogKGJ1aWxkSW5kZXgpLCBM aXZlLVN1Y2hlCiAgICAgKHNlYXJjaExpdmUpIHVuZCBzcGFldGVyIFJlbmRlci9FZGl0b3IgYW5t ZWxkZW4uIEJlc3RlaGVuZGUgVHlwZW4KICAgICByZWdpc3RyaWVyZW4gc2ljaCBpbiBpaHJlbiBN b2R1bGVuOyBuZXVlIFR5cGVuIChQaGFzZSA2OiBUZXJtaW5lLCBLb250YWt0ZSwKICAgICBEb3du bG9hZHMsIExpc3RlbikgaGFlbmdlbiBzaWNoIGhpZXIgZWluLCBvaG5lIHNlYXJjaC5qcyB6dSBh ZW5kZXJuLgogICAgICAgZGVmID0geyBrZXksIGxhYmVsLCBpY29uLAogICAgICAgICAgICAgICBi dWlsZEluZGV4KHB1c2gpLCBzZWFyY2hMaXZlKHRva3MsIG5xKSwgICAgIC8vIG9wdGlvbmFsCiAg ICAgICAgICAgICAgIHJlbmRlcihpdGVtKSwgZWRpdG9yKGl0ZW18bnVsbCksIG1pblJvbGUgfSAg Ly8gb3B0aW9uYWwgKFBoYXNlIDYpICovCiAgUC50eXBlcyA9IFtdOwogIFAucmVnaXN0ZXJUeXBl ID0gZnVuY3Rpb24gKGRlZikgeyBpZiAoZGVmICYmIGRlZi5rZXkpIFAudHlwZXMucHVzaChkZWYp OyByZXR1cm4gZGVmOyB9OwogIFAudHlwZUJ5S2V5ID0gZnVuY3Rpb24gKGspIHsgZm9yICh2YXIg aSA9IDA7IGkgPCBQLnR5cGVzLmxlbmd0aDsgaSsrKSBpZiAoUC50eXBlc1tpXS5rZXkgPT09IGsp IHJldHVybiBQLnR5cGVzW2ldOyByZXR1cm4gbnVsbDsgfTsKICBQLmVhY2hUeXBlID0gZnVuY3Rp b24gKGZuKSB7IFAudHlwZXMuZm9yRWFjaChmbik7IH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEljb25zIChpbmxpbmUg U1ZHKSAqLwogIHZhciBJID0gewogICAgc2VhcmNoOic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIg ZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tl LWxpbmVjYXA9InJvdW5kIj48Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI3Ii8+PHBhdGggZD0i bTIxIDIxLTQuMy00LjMiLz48L3N2Zz4nLAogICAgYXo6Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0 IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJv a2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZo MTNNMyAxMmgxM00zIDE4aDkiLz48cGF0aCBkPSJtMTcgOCAzLTMgMyAzTTIwIDV2MTQiLz48L3N2 Zz4nLAogICAgZWRpdDonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9r ZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIg c3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDIwaDkiLz48cGF0aCBkPSJNMTYu NSAzLjVhMi4xIDIuMSAwIDAgMSAzIDNMNyAxOWwtNCAxIDEtNFoiLz48L3N2Zz4nLAogICAgc3Vu Oic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29s b3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48Y2lyY2xlIGN4PSIx MiIgY3k9IjEyIiByPSI0Ii8+PHBhdGggZD0iTTEyIDJ2Mk0xMiAyMHYyTTQuOSA0LjlsMS40IDEu NE0xNy43IDE3LjdsMS40IDEuNE0yIDEyaDJNMjAgMTJoMk00LjkgMTkuMWwxLjQtMS40TTE3Ljcg Ni4zbDEuNC0xLjQiLz48L3N2Zz4nLAogICAgbW9vbjonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQi IGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9r ZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIxIDEy LjhBOSA5IDAgMSAxIDExLjIgMyA3IDcgMCAwIDAgMjEgMTIuOFoiLz48L3N2Zz4nLAogICAgcGx1 czonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENv bG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48cGF0aCBkPSJN MTIgNXYxNE01IDEyaDE0Ii8+PC9zdmc+JywKICAgIHBpbjonPHN2ZyB2aWV3Qm94PSIwIDAgMjQg MjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0 cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEy IDE3djVNOSAzaDZsLTEgNyAzIDNIN2wzLTMtMS03WiIvPjwvc3ZnPicsCiAgICB0cmFzaDonPHN2 ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBz dHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJy b3VuZCI+PHBhdGggZD0iTTMgNmgxOE04IDZWNGg4djJNNiA2bDEgMTRoMTBsMS0xNCIvPjwvc3Zn PicsCiAgICB4Oic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJj dXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48cGF0 aCBkPSJNMTggNiA2IDE4TTYgNmwxMiAxMiIvPjwvc3ZnPicsCiAgICBjaGVjazonPHN2ZyB2aWV3 Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Ut d2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5k Ij48cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiLz48L3N2Zz4nLAogICAgZXh0Oic8c3ZnIHZpZXdC b3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13 aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48 cGF0aCBkPSJNMTQgNGg2djZNMjAgNCA5IDE1TTE5IDEzdjZhMSAxIDAgMCAxLTEgMUg1YTEgMSAw IDAgMS0xLTFWNmExIDEgMCAwIDEgMS0xaDYiLz48L3N2Zz4nLAogICAgY2hldjonPHN2ZyB2aWV3 Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Ut d2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5k Ij48cGF0aCBkPSJtOSA2IDYgNi02IDYiLz48L3N2Zz4nLAogICAgYmFjazonPHN2ZyB2aWV3Qm94 PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lk dGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBh dGggZD0iTTE5IDEySDVNMTIgMTlsLTctNyA3LTciLz48L3N2Zz4nLAogICAgdXNlcjonPHN2ZyB2 aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJv a2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3Vu ZCI+PGNpcmNsZSBjeD0iMTIiIGN5PSI4IiByPSIzLjUiLz48cGF0aCBkPSJNNSAyMGMwLTMuMyAz LjEtNiA3LTZzNyAyLjcgNyA2Ii8+PC9zdmc+JywKICAgIGNsb2NrOic8c3ZnIHZpZXdCb3g9IjAg MCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0i MiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xl IGN4PSIxMiIgY3k9IjEyIiByPSI5Ii8+PHBhdGggZD0iTTEyIDd2NWwzIDIiLz48L3N2Zz4nLAog ICAgc3RhcjonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ry b2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWpvaW49InJv dW5kIj48cGF0aCBkPSJtMTIgMyAyLjYgNS40IDUuOS44LTQuMyA0LjEgMSA1LjlMMTIgMTYuOSA2 LjggMTkuMmwxLTUuOUwzLjUgOS4ybDUuOS0uOFoiLz48L3N2Zz4nLAogICAgc3Rhck86Jzxzdmcg dmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ry b2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJtMTIgMyAyLjYg NS40IDUuOS44LTQuMyA0LjEgMSA1LjlMMTIgMTYuOSA2LjggMTkuMmwxLTUuOUwzLjUgOS4ybDUu OS0uOFoiLz48L3N2Zz4nLAogICAgZ3JpZDonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9 Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5l Y2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHJlY3QgeD0iMyIgeT0iMyIgd2lk dGg9IjciIGhlaWdodD0iNyIgcng9IjEiLz48cmVjdCB4PSIxNCIgeT0iMyIgd2lkdGg9IjciIGhl aWdodD0iNyIgcng9IjEiLz48cmVjdCB4PSIzIiB5PSIxNCIgd2lkdGg9IjciIGhlaWdodD0iNyIg cng9IjEiLz48cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI3IiBoZWlnaHQ9IjciIHJ4PSIxIi8+ PC9zdmc+JywKICAgIG1hcDonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0 cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3Vu ZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTkgNCAzIDZ2MTRsNi0yIDYgMiA2 LTJWNGwtNiAyLTYtMloiLz48cGF0aCBkPSJNOSA0djE0TTE1IDZ2MTQiLz48L3N2Zz4nLAogICAg YWxlcnQ6Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJl bnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1s aW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiA5djRNMTIgMTdoLjAxTTEwLjMgMy45IDIuNCAx OGEyIDIgMCAwIDAgMS43IDNoMTUuOGEyIDIgMCAwIDAgMS43LTNMMTMuNyAzLjlhMiAyIDAgMCAw LTMuNCAwWiIvPjwvc3ZnPicsCiAgICBib2x0Oic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmls bD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMTMgMiA0LjUgMTMuNUgxMWwtMSA4LjVMMTkuNSAx MEgxM1oiLz48L3N2Zz4nLAogICAgZG9jOic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0i bm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVj YXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTQgM0g3YTIgMiAw IDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjhaIi8+PHBhdGggZD0i TTE0IDN2NWg1TTkgMTNoNk05IDE3aDYiLz48L3N2Zz4nLAogICAgbGluazonPHN2ZyB2aWV3Qm94 PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lk dGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBh dGggZD0iTTEwIDEzYTUgNSAwIDAgMCA3IDBsMi0yYTUgNSAwIDAgMC03LTdsLTEgMSIvPjxwYXRo IGQ9Ik0xNCAxMWE1IDUgMCAwIDAtNyAwbC0yIDJhNSA1IDAgMCAwIDcgN2wxLTEiLz48L3N2Zz4n LAogICAgbWVudTonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0i Y3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PHBh dGggZD0iTTMgNmgxOE0zIDEyaDE4TTMgMThoMTgiLz48L3N2Zz4nLAogICAgcGFuZWxMOic8c3Zn IHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0 cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJv dW5kIj48cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMTgiIGhlaWdodD0iMTYiIHJ4PSIyIi8+PHBh dGggZD0iTTkgNHYxNiIvPjwvc3ZnPicsCiAgICBwYW5lbFI6Jzxzdmcgdmlld0JveD0iMCAwIDI0 IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBz dHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjMi IHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNiIgcng9IjIiLz48cGF0aCBkPSJNMTUgNHYxNiIv Pjwvc3ZnPicsCiAgICB1cGxvYWQ6Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25l IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0i cm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAxNlY0TTcgOWw1LTUg NSA1TTUgMjBoMTQiLz48L3N2Zz4nLAogICAgZG93bmxvYWQ6Jzxzdmcgdmlld0JveD0iMCAwIDI0 IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBz dHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0x MiA0djEyTTcgMTFsNSA1IDUtNU01IDIwaDE0Ii8+PC9zdmc+JywKICAgIHByaW50Oic8c3ZnIHZp ZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9r ZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5k Ij48cGF0aCBkPSJNNiA5VjNoMTJ2NiIvPjxyZWN0IHg9IjUiIHk9IjEzIiB3aWR0aD0iMTQiIGhl aWdodD0iOCIgcng9IjEiLz48cGF0aCBkPSJNNiAxN0g0YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAg MCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMmgtMiIvPjwvc3ZnPicsCiAg ICBpbmJveDonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3Vy cmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJv a2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyAxMmg1bDIgM2g0bDItM2g1Ii8+PHBhdGgg ZD0iTTUgNmgxNGwyIDZ2NmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXYtNloiLz48L3N2 Zz4nLAogICAgYXJ0aWNsZTonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0 cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3Vu ZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTQgNGgxNnYxNkg0eiIvPjxwYXRo IGQ9Ik04IDhoOE04IDEyaDhNOCAxNmg1Ii8+PC9zdmc+JywKICAgIGJvbGQ6Jzxzdmcgdmlld0Jv eD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdp ZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+ PHBhdGggZD0iTTcgNWg2YTMuNSAzLjUgMCAwIDEgMCA3SDd6TTcgMTJoN2EzLjUgMy41IDAgMCAx IDAgN0g3eiIvPjwvc3ZnPicsCiAgICBpdGFsaWM6Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBm aWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2Ut bGluZWNhcD0icm91bmQiPjxwYXRoIGQ9Ik0xOSA1aC03TTE0IDE5SDZNMTUgNSA5IDE5Ii8+PC9z dmc+JywKICAgIHVsaXN0Oic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ry b2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5k IiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNOCA2aDEyTTggMTJoMTJNOCAxOGgx MiIvPjxjaXJjbGUgY3g9IjMuNSIgY3k9IjYiIHI9IjEuMyIgZmlsbD0iY3VycmVudENvbG9yIi8+ PGNpcmNsZSBjeD0iMy41IiBjeT0iMTIiIHI9IjEuMyIgZmlsbD0iY3VycmVudENvbG9yIi8+PGNp cmNsZSBjeD0iMy41IiBjeT0iMTgiIHI9IjEuMyIgZmlsbD0iY3VycmVudENvbG9yIi8+PC9zdmc+ JywKICAgIG9saXN0Oic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tl PSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBz dHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTAgNmgxME0xMCAxMmgxME0xMCAxOGgx ME00IDZoMXYzTTQgMTJoMmwtMiAzaDIiLz48L3N2Zz4nLAogICAgaGVhZGluZzonPHN2ZyB2aWV3 Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Ut d2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5k Ij48cGF0aCBkPSJNNiA0djE2TTE4IDR2MTZNNiAxMmgxMiIvPjwvc3ZnPicsCiAgICBzaGllbGQ6 Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xv ciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9p bj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAzIDUgNnY1YzAgNC40IDMgOC40IDcgOS41IDQtMS4xIDct NS4xIDctOS41VjZaIi8+PHBhdGggZD0ibTkgMTIgMiAyIDQtNCIvPjwvc3ZnPicKICB9OwogIFAu aWMgPSBmdW5jdGlvbiAobikgeyByZXR1cm4gSVtuXSB8fCAiIjsgfTsKICBQLkkgPSBJOwoKICAv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSBET00tSGVsZmVyICovCiAgUC5lbCA9IGZ1bmN0aW9uICh0YWcsIGF0dHJzLCBraWRzKSB7 CiAgICB2YXIgbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTsKICAgIGlmIChhdHRycykg Zm9yICh2YXIgayBpbiBhdHRycykgewogICAgICBpZiAoayA9PT0gImNsYXNzIikgbi5jbGFzc05h bWUgPSBhdHRyc1trXTsKICAgICAgZWxzZSBpZiAoayA9PT0gImh0bWwiKSBuLmlubmVySFRNTCA9 IGF0dHJzW2tdOwogICAgICBlbHNlIGlmIChrID09PSAidGV4dCIpIG4udGV4dENvbnRlbnQgPSBh dHRyc1trXTsKICAgICAgZWxzZSBpZiAoay5zbGljZSgwLCAyKSA9PT0gIm9uIikgbi5hZGRFdmVu dExpc3RlbmVyKGsuc2xpY2UoMiksIGF0dHJzW2tdKTsKICAgICAgZWxzZSBpZiAoYXR0cnNba10g IT0gbnVsbCkgbi5zZXRBdHRyaWJ1dGUoaywgYXR0cnNba10pOwogICAgfQogICAgKGtpZHMgfHwg W10pLmZvckVhY2goZnVuY3Rpb24gKGMpIHsgaWYgKGMpIG4uYXBwZW5kQ2hpbGQodHlwZW9mIGMg PT09ICJzdHJpbmciID8gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYykgOiBjKTsgfSk7CiAgICBy ZXR1cm4gbjsKICB9OwogIFAuJCA9IGZ1bmN0aW9uIChzLCByKSB7IHJldHVybiAociB8fCBkb2N1 bWVudCkucXVlcnlTZWxlY3RvcihzKTsgfTsKICBQLiQkID0gZnVuY3Rpb24gKHMsIHIpIHsgcmV0 dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKChyIHx8IGRvY3VtZW50KS5xdWVyeVNlbGVj dG9yQWxsKHMpKTsgfTsKICBQLmRlYWNjZW50ID0gZnVuY3Rpb24gKHMpIHsgcmV0dXJuIChzIHx8 ICIiKS5ub3JtYWxpemUoIk5GRCIpLnJlcGxhY2UoL1vMgC3Nr10vZywgIiIpLnJlcGxhY2UoL8Of L2csICJzcyIpLnRvTG93ZXJDYXNlKCk7IH07CiAgUC5lc2NhcGVIdG1sID0gZnVuY3Rpb24gKHMp IHsgcmV0dXJuIChzIHx8ICIiKS5yZXBsYWNlKC9bJjw+Il0vZywgZnVuY3Rpb24gKGMpIHsgcmV0 dXJuIHsgIiYiOiAiJmFtcDsiLCAiPCI6ICImbHQ7IiwgIj4iOiAiJmd0OyIsICciJzogIiZxdW90 OyIgfVtjXTsgfSk7IH07CiAgUC5yZWFkID0gZnVuY3Rpb24gKGssIGQpIHsgdHJ5IHsgdmFyIHYg PSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrKTsgcmV0dXJuIHYgPyBKU09OLnBhcnNlKHYpIDogZDsg fSBjYXRjaCAoZSkgeyByZXR1cm4gZDsgfSB9OwogIFAud3JpdGUgPSBmdW5jdGlvbiAoaywgdikg eyB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrLCBKU09OLnN0cmluZ2lmeSh2KSk7IH0gY2F0 Y2ggKGUpIHt9IH07CiAgUC51aWQgPSBmdW5jdGlvbiAocCkgeyByZXR1cm4gKHAgfHwgIngiKSAr ICItIiArIERhdGUubm93KCkudG9TdHJpbmcoMzYpICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygz Nikuc2xpY2UoMiwgNSk7IH07CiAgUC5jbG9uZSA9IGZ1bmN0aW9uIChvKSB7IHJldHVybiBKU09O LnBhcnNlKEpTT04uc3RyaW5naWZ5KG8pKTsgfTsKICAvLyBaZW50cmFsZSBVUkwtU2NoZW1hLUFs bG93bGlzdCAoaWRlbnRpc2NoIHp1bSBTYW5pdGl6ZXItaHJlZi1DaGVjayBpbiBuYXYuanMpIOKA lAogIC8vIGVpbmUgUXVlbGxlIGRlciBXYWhyaGVpdC4gTGllZmVydCBkaWUgVVJMIHp1cnVlY2ss IHdlbm4gc2ljaGVyLCBzb25zdCAiIi4KICAvLyBCbG9ja3QgamF2YXNjcmlwdDovZGF0YTovZmls ZTogdS4gYS4gZnVlciBGZWVkLUxpbmtzLCBQYW5lbC1MaW5rcywgd2luZG93Lm9wZW4uCiAgUC5z YWZlVXJsID0gZnVuY3Rpb24gKHUpIHsKICAgIHUgPSBTdHJpbmcodSA9PSBudWxsID8gIiIgOiB1 KS50cmltKCk7CiAgICByZXR1cm4gKC9eKGh0dHBzPzp8bWFpbHRvOnxkb2t1bWVudGVcL3xcL1wv fFwuXC5cL3wjKS9pLnRlc3QodSkgfHwgL15wb3J0YWw6W1x3LV0rJC9pLnRlc3QodSkpID8gdSA6 ICIiOwogIH07CgogIC8vIC0tLSBXaW5kb3dzLVNoYXJlLS9PcmRuZXItUGZhZGUgKE5VUiBmdWVy IHN0cnVrdHVyaWVydGUgT3JkbmVyLUtub3RlbiwgTklDSFQgZnVlciBmcmVpZXMKICAvLyBBcnRp a2VsLUhUTUwhKS4gRGVyIFNhbml0aXplci9zYWZlVXJsIGxhc3NlbiBmaWxlOi9VTkMgYmV3dXNz dCBOSUNIVCB6dSDigJQgZWluIE9yZG5lci1Lbm90ZW4KICAvLyB0cmFlZ3Qgc2VpbmVuIFBmYWQg YWxzIGVpZ2VuZXMgRGF0ZW5mZWxkIChhZG1pbi0vcmVkYWt0aW9uZWxsIGdlcGZsZWd0KSwgbmlj aHQgaW0gQm9keS4KICAvLyBFcmxhdWJ0IG51ciBQZmFkZSBhdWYgZGVuIGJla2FubnRlbiBCZWhv ZXJkZW4tU2hhcmUgKGtlaW4gYmVsaWViaWdlcyBmaWxlOikuICovCiAgUC5zYWZlRm9sZGVyUGF0 aCA9IGZ1bmN0aW9uIChwKSB7CiAgICBwID0gU3RyaW5nKHAgPT0gbnVsbCA/ICIiIDogcCkudHJp bSgpOwogICAgLy8gVU5DIFxcaG9zdFwuLiAgfCAgcHJvdG9rb2xsLXJlbGF0aXYgLy9ob3N0Ly4u ICB8ICBmaWxlOi8vLy4uICBtaXQgU2hhcmUtSG9zdAogICAgaWYgKC9wb2xpemVpXC5ucndcLmRl L2kudGVzdChwKSB8fCAvXlxcXFxbXHcuJC1dK1xcLy50ZXN0KHApKSB7CiAgICAgIGlmICgvXihc XFxcfFwvXC98ZmlsZTopL2kudGVzdChwKSkgcmV0dXJuIHA7CiAgICB9CiAgICBpZiAoL15bQS1a YS16XTpbXFxcL10vLnRlc3QocCkpIHJldHVybiBwOyAgIC8vIGdlbWFwcHRlcyBOZXR6bGF1Zndl cmsgKHouIEIuIE86XOKApikKICAgIHJldHVybiAiIjsKICB9OwogIC8vIFNoYXJlLUxJTksgaW0g QXJ0aWtlbC1IVE1MIChhLWhyZWYpOiBOVVIgYXVmIGRlbiBCZWhvZXJkZW4tSG9zdCBwb2xpemVp Lm5ydy5kZSwgYWxzIFVOQwogIC8vIChcXHBvbGl6ZWkubnJ3LmRlXC4uKSBvZGVyIHByb3Rva29s bC1yZWxhdGl2ICgvL3BvbGl6ZWkubnJ3LmRlLy4uKS4gU3RyZW5nZXIgYWxzCiAgLy8gc2FmZUZv bGRlclBhdGggKGhvc3QtZ2VidW5kZW4pIC0+IGVybGF1YnQgbWlncmllcnRlIERva3UtVmVyd2Vp c2UgYXVmIEdlc2Nod2lzdGVyLVNoYXJlLQogIC8vIE9yZG5lciwgb2huZSBiZWxpZWJpZ2UgZmls ZTovVU5DLVppZWxlIHp1IG9lZmZuZW4uIFdpcmQgaW0gU2FuaXRpemVyIHp1c2FldHpsaWNoIHp1 IHNhZmVVcmwKICAvLyBha3plcHRpZXJ0OyBzb2xjaGUgTGlua3MgYmVrb21tZW4gdGFyZ2V0PV9i bGFuayAob2VmZm5lbiBpbSBEYXRlaS1FeHBsb3Jlci9JRSkuCiAgUC5zYWZlU2hhcmVIcmVmID0g ZnVuY3Rpb24gKHUpIHsKICAgIHUgPSBTdHJpbmcodSA9PSBudWxsID8gIiIgOiB1KS50cmltKCk7 CiAgICBpZiAoL14oXFxcXHxcL1wvKXBvbGl6ZWlcLm5yd1wuZGVbXFxcL10vaS50ZXN0KHUpKSBy ZXR1cm4gdTsgICAvLyBCZWhvZXJkZW4tU2hhcmUgKFVOQy9wcm90b2tvbGwtcmVsLikKICAgIGlm ICgvXltBLVphLXpdOltcXFwvXS8udGVzdCh1KSkgcmV0dXJuIHU7ICAgICAgICAgICAgICAgICAg ICAgICAvLyBnZW1hcHB0ZXMgTmV0emxhdWZ3ZXJrCiAgICByZXR1cm4gIiI7CiAgfTsKCiAgLy8g UGZhZCAtPiBpZnJhbWUtL0xpbmstWmllbC4gQmVob2VyZGVuLVNoYXJlIGFscyBVTkMgKEJhY2tz bGFzaGVzKTsgaW0gSUUtTW9kdXMgemVpZ3QgZGFzCiAgLy8gZGllIFZlcnplaWNobmlzbGlzdGUs IE9mZmljZS1EYXRlaWVuIG9lZmZuZW4gcmVhZC13cml0ZSBkaXJla3QgaW0gU2hhcmUuCiAgLy8g SElOV0VJUzogZXhha3RlIFVSTC1Gb3JtIChVTkMgdnMuIGZpbGU6Ly8vLy8pIGVyc3QgYW0gZWNo dGVuIElFLUFyYmVpdHNwbGF0eiBmaW5hbCBwcnVlZmVuLgogIFAuZm9sZGVyU3JjID0gZnVuY3Rp b24gKHApIHsKICAgIHAgPSBQLnNhZmVGb2xkZXJQYXRoKHApOwogICAgaWYgKCFwKSByZXR1cm4g IiI7CiAgICBpZiAoL15cL1wvLy50ZXN0KHApICYmICEvXlwvXC9cLy8udGVzdChwKSkgcmV0dXJu ICJcXFxcIiArIHAuc2xpY2UoMikucmVwbGFjZSgvXC8vZywgIlxcIik7ICAvLyAvL2hvc3QvLi4g LT4gXFxob3N0XC4uCiAgICByZXR1cm4gcDsKICB9OwoKICAvLyBEYXRlbiBzaWNoZXIgaW4gZWlu ZW4gPHNjcmlwdD4tQmxvY2sgZWluYmV0dGVuOiBKU09OLnN0cmluZ2lmeSBlc2NhcGVkIHdlZGVy ICI8L3NjcmlwdCIKICAvLyBub2NoICI8IS0tIiBub2NoIGRpZSBaZWlsZW50cmVubmVyIFUrMjAy OC9VKzIwMjkg4oCUIHNvbnN0IGJyaWNodCBkYXMgRGF0ZW5maWxlIGJlaW0gTGFkZW4KICAvLyAo QXVzZmFsbCBmdWVyIEFMTEUgTGVzZXIpIGJ6dy4gd2FlcmUgZWluIFNjcmlwdC1JbmplY3Rpb24t VmVrdG9yLiBFaW5lIFF1ZWxsZSBmdWVyIGFsbGUgU2VyaWFsaXplci4KICBQLmpzU2FmZSA9IGZ1 bmN0aW9uIChzKSB7CiAgICByZXR1cm4gU3RyaW5nKHMpLnJlcGxhY2UoLzxcLyhzY3JpcHQpL2dp LCAiPFxcLyQxIikucmVwbGFjZSgvPCEtLS9nLCAiPFxcIS0tIikKICAgICAgLnJlcGxhY2UoL1x1 MjAyOC9nLCAiXFx1MjAyOCIpLnJlcGxhY2UoL1x1MjAyOS9nLCAiXFx1MjAyOSIpOwogIH07Cgog IC8vIERhdGVuZ2V0cmllYmVuZSBBcnRpa2VsLVp1c2F0emZlbGRlcjogRUlORSBEZWZpbml0aW9u IHNwZWlzdCBFZGl0b3ItRm9ybXVsYXIgVU5EIEFuemVpZ2UuCiAgLy8gS2VybiAodGl0bGUvZGF0 ZS9hdXRob3IvaHRtbCkgYmxlaWJ0IGZlc3Q7IGhpZXIgZGllIG9wdGlvbmFsZW4vZXJ3ZWl0ZXJ0 ZW4gRmVsZGVyLgogIC8vIHR5cGU6IHNlbGVjdHx0YWdzfGRhdGV8dGV4dCDCtyBiYWRnZTogYWxz IGZhcmJpZ2UgUGxha2V0dGUgYW56ZWlnZW4uCiAgUC5BUlRJQ0xFX0ZJRUxEUyA9IFsKICAgIHsg a2V5OiAiY2xhc3NpZmljYXRpb24iLCBsYWJlbDogIkVpbnN0dWZ1bmciLCB0eXBlOiAic2VsZWN0 Iiwgb3B0aW9uczogWyJvZmZlbiIsICJOZkQiLCAiVlMtTmZEIl0sIGJhZGdlOiB0cnVlIH0sCiAg ICB7IGtleTogInRhZ3MiLCAgICAgICBsYWJlbDogIlNjaGxhZ3dvcnRlIChtaXQgS29tbWEgdHJl bm5lbikiLCB0eXBlOiAidGFncyIgfSwKICAgIHsga2V5OiAidmFsaWRVbnRpbCIsIGxhYmVsOiAi R8O8bHRpZyBiaXMiLCB0eXBlOiAiZGF0ZSIgfSwKICAgIHsga2V5OiAicmV2aWV3ZWRBdCIsIGxh YmVsOiAiWnVsZXR6dCBnZXByw7xmdCIsIHR5cGU6ICJkYXRlIiB9LAogICAgeyBrZXk6ICJyZXZp ZXdlZEJ5IiwgbGFiZWw6ICJHZXByw7xmdCB2b24iLCB0eXBlOiAidGV4dCIgfQogIF07CiAgUC5z bHVnID0gZnVuY3Rpb24gKHMpIHsKICAgIHJldHVybiBQLmRlYWNjZW50KHMpLnJlcGxhY2UoL1te YS16MC05XSsvZywgIl8iKS5yZXBsYWNlKC9eXyt8XyskL2csICIiKS5zbGljZSgwLCA2MCkgfHwg ImFydGlrZWwiOwogIH07CiAgUC5mbXREYXRlID0gZnVuY3Rpb24gKGlzbykgewogICAgaWYgKCFp c28pIHJldHVybiAiIjsKICAgIHZhciBwID0gU3RyaW5nKGlzbykuc2xpY2UoMCwgMTApLnNwbGl0 KCItIik7CiAgICByZXR1cm4gcC5sZW5ndGggPT09IDMgPyBwWzJdICsgIi4iICsgcFsxXSArICIu IiArIHBbMF0gOiBpc287CiAgfTsKICBQLmRvd25sb2FkID0gZnVuY3Rpb24gKGZpbGVuYW1lLCB0 ZXh0LCBtaW1lKSB7CiAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFt0ZXh0XSwgeyB0eXBlOiAobWlt ZSB8fCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpICsgIjtjaGFyc2V0PXV0Zi04IiB9KTsKICAg IHZhciB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOwogICAgdmFyIGEgPSBQLmVsKCJh IiwgeyBocmVmOiB1cmwsIGRvd25sb2FkOiBmaWxlbmFtZSB9KTsKICAgIGRvY3VtZW50LmJvZHku YXBwZW5kQ2hpbGQoYSk7IGEuY2xpY2soKTsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBV UkwucmV2b2tlT2JqZWN0VVJMKHVybCk7IGEucmVtb3ZlKCk7IH0sIDEyMCk7CiAgfTsKCiAgLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gUGZsZWdlLUhlbGZlciAoUG93ZXJTaGVsbCwgbG9jYWxob3N0KSAqLwogIC8vIFAubGl2ZSB3 aXJkIGluIG1haW4uanMgZ2VzZXR6dCAodHJ1ZSBudXIsIHdlbm4gZGFzIFBvcnRhbCB1ZWJlciBk ZW4KICAvLyBQb3dlclNoZWxsLUhlbGZlciBnZW9lZmZuZXQgd3VyZGUgLT4gU2NocmVpYnJlY2h0 ZSkuIExlc2VyIG9lZmZuZW4gZGFzCiAgLy8gUG9ydGFsIGRpcmVrdCBwZXIgZmlsZTovLyAtPiBQ LmxpdmUgYmxlaWJ0IGZhbHNlLCBhbGxlcyBudXIgbGVzYmFyLgogIFAubGl2ZSA9IGZhbHNlOwog IFAucm9sZSA9ICJyZWFkZXIiOyAgICAgLy8gcmVhZGVyIHwgcmVkYWt0ZXVyIHwgYWRtaW4gICh2 b20gSGVsZmVyIHZpYSAvYXBpL3BpbmcpCiAgUC51c2VyID0gbnVsbDsgICAgICAgICAvLyBBbm1l bGRlbmFtZSAoJVVTRVJOQU1FJSkKICBQLnVzZXJOYW1lID0gbnVsbDsgICAgIC8vIEFuemVpZ2Vu YW1lIGF1cyBkZW4gUm9sbGVuLUxpc3RlbgogIFAuaXNBZG1pbiA9IGZ1bmN0aW9uICgpIHsgcmV0 dXJuIFAucm9sZSA9PT0gImFkbWluIjsgfTsKICBQLmNhbkVkaXQgPSBmdW5jdGlvbiAoKSB7IHJl dHVybiBQLnJvbGUgPT09ICJyZWRha3RldXIiIHx8IFAucm9sZSA9PT0gImFkbWluIjsgfTsKICBQ LnB1YlN0YXRlID0gImlkbGUiOyAgIC8vIGlkbGUgfCBzYXZpbmcgfCBvayB8IGVycm9yCiAgUC5z ZXRQdWJTdGF0ZSA9IGZ1bmN0aW9uIChzKSB7IFAucHViU3RhdGUgPSBzOyBpZiAoUC51cGRhdGVC YW5uZXIpIFAudXBkYXRlQmFubmVyKCk7IH07CiAgLy8gU2VydmVyc2VpdGlnZXIgVmVyc2lvbnNz dGFuZCBqZSBEYXRlbmRhdGVpIChiZWltIEVkaXRvci1TdGFydCB2aWEgL2FwaS9zdGF0ZQogIC8v IGdlbGFkZW4pLiBXaXJkIGJlaW0gVmVyb2VmZmVudGxpY2hlbiBhbHMgYmFzZVJldiBtaXRnZXNj aGlja3QgLT4gS29uZmxpa3QtRXJrZW5udW5nLgogIFAuc2VydmVyUmV2ID0ge307CgogIC8vIFNj aHJlaWJ0IERhdGVpZW4gc2VydmVyc2VpdGlnIGF1ZiBkaWUgRnJlaWdhYmUuIGZpbGVzID0gW3tu YW1lLCB0ZXh0fV0uCiAgLy8gYmFzZVJldk92ZXJyaWRlOiBudXIgZnVlciBiZXd1c3N0ZXMgVWVi ZXJzY2hyZWliZW4gbmFjaCBLb25mbGlrdC4KICBQLnNlcnZlcldyaXRlID0gZnVuY3Rpb24gKGZp bGVzLCBjYiwgYmFzZVJldk92ZXJyaWRlKSB7CiAgICBmZXRjaCgiL2FwaS9wdWJsaXNoIiwgewog ICAgICBtZXRob2Q6ICJQT1NUIiwgaGVhZGVyczogeyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0 aW9uL2pzb24iIH0sCiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgZmlsZXM6IGZpbGVzLCBi YXNlUmV2OiBiYXNlUmV2T3ZlcnJpZGUgfHwgUC5zZXJ2ZXJSZXYgfSkKICAgIH0pLnRoZW4oZnVu Y3Rpb24gKHIpIHsgcmV0dXJuIHIuanNvbigpOyB9KQogICAgICAudGhlbihmdW5jdGlvbiAoaikg eyBjYihudWxsLCBqKTsgfSkKICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlKSB7IGNiKGUpOyB9KTsK ICB9OwoKICAvLyBBdXRvLVZlcm9lZmZlbnRsaWNodW5nOiBnZWJ1ZW5kZWx0L2VudHByZWxsdCBu YWNoIGplZGVyIEFlbmRlcnVuZy4KICB2YXIgcHViVGltZXIsIHB1YkluRmxpZ2h0ID0gZmFsc2Us IHB1Yk5lZWQgPSB7IGNvbnRlbnQ6IGZhbHNlLCBuYXY6IGZhbHNlIH0sIHB1YkFydGljbGVzID0g eyBkaXJ0eTogZmFsc2UgfTsKICBQLnNjaGVkdWxlU2VydmVyUHVibGlzaCA9IGZ1bmN0aW9uICh3 aGljaCkgewogICAgcHViTmVlZFt3aGljaF0gPSB0cnVlOwogICAgY2xlYXJUaW1lb3V0KHB1YlRp bWVyKTsKICAgIHB1YlRpbWVyID0gc2V0VGltZW91dChQLmZsdXNoU2VydmVyUHVibGlzaCwgNzAw KTsKICB9OwoKICAvLyAtLS0gQXVzZ2VsYWdlcnRlIEFydGlrZWwtQm9kaWVzIChnZWdlbiBkYXMg QXVmYmxhZWhlbiB2b24gZGF0YS1uYXYuanMpIC0tLQogIC8vIEFMTEUgQXJ0aWtlbC1Cb2R5cyBp biBFSU5FUiBEYXRlaSBkb2t1bWVudGUvanNvbi9hcnRpa2VsLmpzOiB3aW5kb3cuUE9SVEFMX0FS VD17IjxpZD4iOiI8aHRtbD4iLOKApn0uCiAgLy8gV2lyZCBiZWltIFN0YXJ0IHBlciA8c2NyaXB0 PiAoaW5kZXguaHRtbCkgZ2VsYWRlbiAtPiBCb2R5cyBzaW5kIHNvZm9ydCBpbSBDYWNoZS4gQmVp bQogIC8vIFNwZWljaGVybiB3aXJkIGRpZSBnYW56ZSBEYXRlaSBuZXUgZ2VzY2hyaWViZW4gKGVp biBQdWJsaXNoLVppZWwpLiBmaWxlOi8vLXRhdWdsaWNoICguanMpLgogIHdpbmRvdy5QT1JUQUxf QVJUID0gd2luZG93LlBPUlRBTF9BUlQgfHwge307CiAgdmFyIEFSVElDTEVfQlVORExFID0gImRv a3VtZW50ZS9qc29uL2FydGlrZWwuanMiOwogIGZ1bmN0aW9uIGJ1aWxkQXJ0aWNsZUJ1bmRsZSgp IHsKICAgIHJldHVybiBQLmpzU2FmZSgid2luZG93LlBPUlRBTF9BUlQ9IiArIEpTT04uc3RyaW5n aWZ5KHdpbmRvdy5QT1JUQUxfQVJUKSArICI7XG4iKTsKICB9CiAgLy8gQm9keSBzb2ZvcnQgY2Fj aGVuICsgZGllIEJ1ZW5kZWwtRGF0ZWkgZnVlciBkZW4gbmFlY2hzdGVuIFB1Ymxpc2ggdm9ybWVy a2VuLgogIFAucGVyc2lzdEFydGljbGVCb2R5ID0gZnVuY3Rpb24gKGlkLCBodG1sKSB7CiAgICB3 aW5kb3cuUE9SVEFMX0FSVFtpZF0gPSBodG1sIHx8ICIiOwogICAgcHViQXJ0aWNsZXMuZGlydHkg PSB0cnVlOwogICAgUC5zY2hlZHVsZVNlcnZlclB1Ymxpc2goIm5hdiIpOwogIH07CiAgLy8gQm9k eSBzdGVodCBuYWNoIGRlbSBTdGFydCBiZXJlaXRzIGltIENhY2hlIChnZWJ1ZW5kZWx0IGdlbGFk ZW4pIC0+IGRpcmVrdCBsaWVmZXJuLgogIFAubG9hZEFydGljbGVCb2R5ID0gZnVuY3Rpb24gKGlk LCBjYikgewogICAgd2luZG93LlBPUlRBTF9BUlQgPSB3aW5kb3cuUE9SVEFMX0FSVCB8fCB7fTsK ICAgIGNiKHdpbmRvdy5QT1JUQUxfQVJUW2lkXSAhPSBudWxsID8gd2luZG93LlBPUlRBTF9BUlRb aWRdIDogIiIsCiAgICAgICB3aW5kb3cuUE9SVEFMX0FSVFtpZF0gPT0gbnVsbCA/IG5ldyBFcnJv cigibmljaHQgdm9yaGFuZGVuIikgOiBudWxsKTsKICB9OwogIC8vIEVyZm9sZy9GZWhsZXIgZWlu ZXMgUHVibGlzaC1WZXJzdWNocyB6ZW50cmFsIGJlaGFuZGVsbiAoYXVjaCBmdWVyIGRhcwogIC8v IGJld3Vzc3RlIFVlYmVyc2NocmVpYmVuIG5hY2ggS29uZmxpa3Qgd2llZGVydmVyd2VuZGV0KS4K ICBmdW5jdGlvbiBoYW5kbGVQdWJsaXNoUmVzdWx0KGZpbGVzLCBlcnIsIHJlcywgaXNPdmVyd3Jp dGUpIHsKICAgIGlmICghZXJyICYmIHJlcyAmJiByZXMuY29uZmxpY3QpIHsKICAgICAgUC5zZXRQ dWJTdGF0ZSgiZXJyb3IiKTsKICAgICAgaWYgKFAub25QdWJsaXNoQ29uZmxpY3QpIFAub25QdWJs aXNoQ29uZmxpY3QocmVzLCBmaWxlcyk7CiAgICAgIGVsc2UgUC50b2FzdCgiS29uZmxpa3Q6IGpl bWFuZCBoYXQgendpc2NoZW56ZWl0bGljaCB2ZXLDtmZmZW50bGljaHQuIEJpdHRlIG5ldSBsYWRl bi4iLCB0cnVlKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGVyciB8fCAhcmVzIHx8ICFy ZXMub2spIHsKICAgICAgUC5zZXRQdWJTdGF0ZSgiZXJyb3IiKTsKICAgICAgUC50b2FzdCgiS29u bnRlIG5pY2h0IGF1ZiBkaWUgRnJlaWdhYmUgc2NocmVpYmVuIOKAlCDDhG5kZXJ1bmcgaXN0IG51 ciBsb2thbCEiLCB0cnVlKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHJlcy5yZXZzKSBQ LnNlcnZlclJldiA9IHJlcy5yZXZzOwogICAgUC5oYXNEcmFmdCA9IGZhbHNlOyBQLmhhc05hdkRy YWZ0ID0gZmFsc2U7CiAgICB0cnkgeyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShQLkxTLmNvbnRl bnQpOyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShQLkxTLm5hdik7IH0gY2F0Y2ggKGUpIHt9CiAg ICBQLlNFRUQgPSBQLmNsb25lKHsgYnVsbGV0aW5zOiBQLmNvbnRlbnQuYnVsbGV0aW5zLCBwYW5l bHM6IFAuY29udGVudC5wYW5lbHMsCiAgICAgIHJvc3RlcjogUC5jb250ZW50LnJvc3RlciwgbGlu a2NvbHM6IFAuY29udGVudC5saW5rY29scywga2VubndvZXJ0ZXI6IFAuY29udGVudC5rZW5ud29l cnRlciwgcHJ1ZWZ1bmc6IFAuY29udGVudC5wcnVlZnVuZywgbGFnZTogUC5jb250ZW50LmxhZ2Us IHNldHRpbmdzOiBQLmNvbnRlbnQuc2V0dGluZ3MgfSk7CiAgICBQLnNldFB1YlN0YXRlKCJvayIp OwogICAgUC5lbWl0KCJwdWJsaXNoZWQiLCB7IGZpbGVzOiBmaWxlcy5tYXAoZnVuY3Rpb24gKGYp IHsgcmV0dXJuIGYubmFtZTsgfSksIHVzZXI6IFAudXNlciB9KTsKICB9CgogIFAuZmx1c2hTZXJ2 ZXJQdWJsaXNoID0gZnVuY3Rpb24gKCkgewogICAgLy8gS2VpbiB1ZWJlcmxhcHBlbmRlcyBQdWJs aXNoOiBsYWV1ZnQgc2Nob24gZWluZXMsIGt1cnogZXJuZXV0IHZlcnN1Y2hlbiAoQWVuZGVydW5n ZW4KICAgIC8vIGJsZWliZW4gaW4gcHViTmVlZCBnZW1lcmt0KSDigJQgdmVyaGluZGVydCB2ZXJh bHRldGUgYmFzZVJldiAvIFNlbGJzdC00MDkgYmVpIGxhbmdzYW1lbSBTaGFyZS4KICAgIGlmIChw dWJJbkZsaWdodCkgeyBjbGVhclRpbWVvdXQocHViVGltZXIpOyBwdWJUaW1lciA9IHNldFRpbWVv dXQoUC5mbHVzaFNlcnZlclB1Ymxpc2gsIDMwMCk7IHJldHVybjsgfQogICAgdmFyIGZpbGVzID0g W107CiAgICBpZiAocHViTmVlZC5jb250ZW50ICYmIFAuYnVpbGRDb250ZW50RmlsZSkgZmlsZXMu cHVzaCh7IG5hbWU6ICJhc3NldHMvanMvZGF0YS1jb250ZW50LmpzIiwgdGV4dDogUC5idWlsZENv bnRlbnRGaWxlKCkgfSk7CiAgICBpZiAocHViTmVlZC5uYXYgJiYgUC5idWlsZE5hdkZpbGUpIGZp bGVzLnB1c2goeyBuYW1lOiAiYXNzZXRzL2pzL2RhdGEtbmF2LmpzIiwgdGV4dDogUC5idWlsZE5h dkZpbGUoKSB9KTsKICAgIGlmIChwdWJBcnRpY2xlcy5kaXJ0eSkgZmlsZXMucHVzaCh7IG5hbWU6 IEFSVElDTEVfQlVORExFLCB0ZXh0OiBidWlsZEFydGljbGVCdW5kbGUoKSB9KTsgICAvLyBBcnRp a2VsLUJ1ZW5kZWwgbWl0LXZlcm9lZmZlbnRsaWNoZW4KICAgIHB1Yk5lZWQgPSB7IGNvbnRlbnQ6 IGZhbHNlLCBuYXY6IGZhbHNlIH07IHB1YkFydGljbGVzID0geyBkaXJ0eTogZmFsc2UgfTsKICAg IGlmICghZmlsZXMubGVuZ3RoKSByZXR1cm47CiAgICBQLnNldFB1YlN0YXRlKCJzYXZpbmciKTsK ICAgIHB1YkluRmxpZ2h0ID0gdHJ1ZTsKICAgIFAuc2VydmVyV3JpdGUoZmlsZXMsIGZ1bmN0aW9u IChlcnIsIHJlcykgewogICAgICBwdWJJbkZsaWdodCA9IGZhbHNlOwogICAgICBoYW5kbGVQdWJs aXNoUmVzdWx0KGZpbGVzLCBlcnIsIHJlcywgZmFsc2UpOwogICAgICBpZiAocHViTmVlZC5jb250 ZW50IHx8IHB1Yk5lZWQubmF2KSB7IGNsZWFyVGltZW91dChwdWJUaW1lcik7IHB1YlRpbWVyID0g c2V0VGltZW91dChQLmZsdXNoU2VydmVyUHVibGlzaCwgMTUwKTsgfQogICAgfSk7CiAgfTsKCiAg Ly8gQmV3dXNzdGVzIFVlYmVyc2NocmVpYmVuIG5hY2ggS29uZmxpa3Q6IGJhc2VSZXYgYXVmIGRl biBha3R1ZWxsZW4KICAvLyBTZXJ2ZXJzdGFuZCBzZXR6ZW4sIGRhbWl0IGRlciBTZXJ2ZXIgYWt6 ZXB0aWVydC4KICBQLnJlcHVibGlzaE92ZXJ3cml0ZSA9IGZ1bmN0aW9uIChmaWxlcywgY3VycmVu dEJ5TmFtZSkgewogICAgdmFyIGJhc2UgPSB7fTsgZm9yICh2YXIgayBpbiBQLnNlcnZlclJldikg YmFzZVtrXSA9IFAuc2VydmVyUmV2W2tdOwogICAgaWYgKGN1cnJlbnRCeU5hbWUpIGZvciAodmFy IG4gaW4gY3VycmVudEJ5TmFtZSkgYmFzZVtuXSA9IGN1cnJlbnRCeU5hbWVbbl07CiAgICBQLnNl dFB1YlN0YXRlKCJzYXZpbmciKTsKICAgIFAuc2VydmVyV3JpdGUoZmlsZXMsIGZ1bmN0aW9uIChl cnIsIHJlcykgeyBoYW5kbGVQdWJsaXNoUmVzdWx0KGZpbGVzLCBlcnIsIHJlcywgdHJ1ZSk7IH0s IGJhc2UpOwogIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFzc2V0LVVwbG9hZCAoQmlsZGVyIC8gUERGKSAqLwogIFAu SU1HX0VYVCA9IHsgcG5nOjEsIGpwZzoxLCBqcGVnOjEsIGdpZjoxLCB3ZWJwOjEsIGJtcDoxIH07 CiAgUC5BU1NFVF9NQVggPSAyNSAqIDEwMjQgKiAxMDI0OyAgIC8vIDI1IE1CCiAgLy8gTGFlZHQg ZWluZSBEYXRlaSBob2NoLiBMaXZlIC0+IERhdGVpIGF1ZiBkaWUgRnJlaWdhYmUgKGdpYnQgUGZh ZCB6dXJ1ZWNrKS4KICAvLyBGYWxsYmFjayAoZmlsZTovLykgLT4gYmFzZTY0LURhdGEtVVJJLCBk YW1pdCBlcyBhdWNoIG9obmUgSGVsZmVyIGdlaHQuCiAgUC51cGxvYWRBc3NldCA9IGZ1bmN0aW9u IChmaWxlLCBjYiwgbmFtZU92ZXJyaWRlKSB7CiAgICB2YXIgbmFtZSA9IG5hbWVPdmVycmlkZSB8 fCBmaWxlLm5hbWUgfHwgImRhdGVpIjsKICAgIGlmIChmaWxlLnNpemUgPiBQLkFTU0VUX01BWCkg eyBjYihuZXcgRXJyb3IoIkRhdGVpIHp1IGdyb3NzIChtYXguIDI1IE1CKS4iKSk7IHJldHVybjsg fQogICAgaWYgKFAubGl2ZSkgewogICAgICBmZXRjaCgiL2FwaS9hc3NldD9uYW1lPSIgKyBlbmNv ZGVVUklDb21wb25lbnQobmFtZSksIHsKICAgICAgICBtZXRob2Q6ICJQT1NUIiwgaGVhZGVyczog eyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIgfSwgYm9keTogZmls ZQogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiByLmpzb24oKTsgfSkKICAgICAg ICAudGhlbihmdW5jdGlvbiAoaikgeyBpZiAoaiAmJiBqLm9rICYmIGoucGF0aCkgY2IobnVsbCwg eyBwYXRoOiBqLnBhdGggfSk7IGVsc2UgY2IobmV3IEVycm9yKChqICYmIGouZXJyb3IpIHx8ICJV cGxvYWQgZmVobGdlc2NobGFnZW4uIikpOyB9KQogICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZSkg eyBjYihlKTsgfSk7CiAgICB9IGVsc2UgewogICAgICB2YXIgciA9IG5ldyBGaWxlUmVhZGVyKCk7 CiAgICAgIHIub25sb2FkID0gZnVuY3Rpb24gKCkgeyBjYihudWxsLCB7IHBhdGg6IHIucmVzdWx0 IH0pOyB9OyAgIC8vIERhdGEtVVJJCiAgICAgIHIub25lcnJvciA9IGZ1bmN0aW9uICgpIHsgY2Io bmV3IEVycm9yKCJEYXRlaSBuaWNodCBsZXNiYXIuIikpOyB9OwogICAgICByLnJlYWRBc0RhdGFV UkwoZmlsZSk7CiAgICB9CiAgfTsKCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTGlnaHRib3ggKEJpbGQvUERGIGdyb3NzKSAq LwogIFAub3BlbkxpZ2h0Ym94ID0gZnVuY3Rpb24gKGtpbmQsIHNyYywgY2FwdGlvbikgewogICAg aWYgKCFzcmMpIHJldHVybjsKICAgIFAuY2xvc2VMaWdodGJveCgpOwogICAgdmFyIGlubmVyOwog ICAgaWYgKGtpbmQgPT09ICJwZGYiKSBpbm5lciA9IFAuZWwoImlmcmFtZSIsIHsgY2xhc3M6ICJs Yi1wZGYiLCBzcmM6IHNyYywgdGl0bGU6IGNhcHRpb24gfHwgIlBERiIgfSk7CiAgICBlbHNlIGlu bmVyID0gUC5lbCgiaW1nIiwgeyBjbGFzczogImxiLWltZyIsIHNyYzogc3JjLCBhbHQ6IGNhcHRp b24gfHwgIiIgfSk7CiAgICB2YXIgY2FwID0gY2FwdGlvbiA/IFAuZWwoImRpdiIsIHsgY2xhc3M6 ICJsYi1jYXAiLCB0ZXh0OiBjYXB0aW9uIH0pIDogbnVsbDsKICAgIHZhciBvcGVuRXh0ID0gUC5l bCgiYSIsIHsgY2xhc3M6ICJsYi1leHQiLCBocmVmOiBzcmMsIHRhcmdldDogIl9ibGFuayIsIHJl bDogIm5vb3BlbmVyIiwgdGl0bGU6ICJJbiBuZXVlbSBUYWIgb2VmZm5lbiIsIGh0bWw6IFAuaWMo ImV4dCIpIH0pOwogICAgdmFyIGNsb3NlID0gUC5lbCgiYnV0dG9uIiwgeyBjbGFzczogImxiLXgi LCB0aXRsZTogIlNjaGxpZXNzZW4gKEVzYykiLCBvbmNsaWNrOiBQLmNsb3NlTGlnaHRib3gsIGh0 bWw6IFAuaWMoIngiKSB9KTsKICAgIHZhciBib3ggPSBQLmVsKCJkaXYiLCB7IGNsYXNzOiAibGIt Ym94IiArIChraW5kID09PSAicGRmIiA/ICIgcGRmIiA6ICIiKSB9LCBbaW5uZXIsIGNhcF0pOwog ICAgdmFyIG92ID0gUC5lbCgiZGl2IiwgeyBjbGFzczogImxpZ2h0Ym94IiwgaWQ6ICJsaWdodGJv eCIsIG9uY2xpY2s6IGZ1bmN0aW9uIChlKSB7IGlmIChlLnRhcmdldCA9PT0gb3YpIFAuY2xvc2VM aWdodGJveCgpOyB9IH0sIFtib3gsIG9wZW5FeHQsIGNsb3NlXSk7CiAgICBkb2N1bWVudC5ib2R5 LmFwcGVuZENoaWxkKG92KTsKICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7 IG92LmNsYXNzTGlzdC5hZGQoInNob3ciKTsgfSk7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3Rl bmVyKCJrZXlkb3duIiwgbGJFc2MpOwogIH07CiAgZnVuY3Rpb24gbGJFc2MoZSkgeyBpZiAoZS5r ZXkgPT09ICJFc2NhcGUiKSBQLmNsb3NlTGlnaHRib3goKTsgfQogIFAuY2xvc2VMaWdodGJveCA9 IGZ1bmN0aW9uICgpIHsKICAgIHZhciBvdiA9IFAuJCgiI2xpZ2h0Ym94Iik7IGlmIChvdikgb3Yu cmVtb3ZlKCk7CiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgbGJF c2MpOwogIH07CiAgLy8gS2xpY2stRGVsZWdhdGlvbjogRW1iZWRzIGluIEFydGlrZWwtL0ZlZWQt QW5zaWNodCBvZWZmbmVuIGRpZSBMaWdodGJveC4KICAvLyBJbSBFZGl0b3IgKGNvbnRlbnRlZGl0 YWJsZSkgTklDSFQg4oCUIGRvcnQgc29sbGVuIHNpZSBlZGl0aWVyYmFyIGJsZWliZW4uCiAgUC5p bml0RW1iZWRzID0gZnVuY3Rpb24gKCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi Y2xpY2siLCBmdW5jdGlvbiAoZSkgewogICAgICB2YXIgZmlnID0gZS50YXJnZXQuY2xvc2VzdCAm JiBlLnRhcmdldC5jbG9zZXN0KCIuZW1iZWQiKTsKICAgICAgaWYgKCFmaWcpIHJldHVybjsKICAg ICAgaWYgKGZpZy5jbG9zZXN0KCdbY29udGVudGVkaXRhYmxlPSJ0cnVlIl0nKSkgcmV0dXJuOwog ICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGlmIChmaWcuY2xhc3NMaXN0LmNvbnRhaW5z KCJwZGYiKSkgewogICAgICAgIHZhciBubSA9IGZpZy5xdWVyeVNlbGVjdG9yKCIucGRmLW5hbWUi KTsKICAgICAgICBQLm9wZW5MaWdodGJveCgicGRmIiwgZmlnLmdldEF0dHJpYnV0ZSgiZGF0YS1z cmMiKSwgbm0gPyBubS50ZXh0Q29udGVudCA6ICIiKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2 YXIgaW0gPSBmaWcucXVlcnlTZWxlY3RvcigiaW1nIik7CiAgICAgICAgaWYgKGltKSBQLm9wZW5M aWdodGJveCgiaW1nIiwgaW0uZ2V0QXR0cmlidXRlKCJzcmMiKSwgaW0uZ2V0QXR0cmlidXRlKCJh bHQiKSk7CiAgICAgIH0KICAgIH0pOwogIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIExvY2FsU3RvcmFnZS1LZXlzICov CiAgUC5MUyA9IHsgY29udGVudDogInBvcnRhbHUuY29udGVudCIsIG5hdjogInBvcnRhbHUubmF2 IiwgaGlzdDogInBvcnRhbHUuaGlzdCIsCiAgICAgICAgICAgdGhlbWU6ICJwb3J0YWx1LnRoZW1l IiwgdmlzaXQ6ICJwb3J0YWx1Lmxhc3RWaXNpdCIsIGxvZ286ICJwb3J0YWx1LmxvZ28iLCBjb2xs YXBzZTogInBvcnRhbHUuY29sbGFwc2UiIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0YXRlICovCiAgUC5OQVYgPSBu dWxsOyAgICAgICAgICAgIC8vIE5hdmlnYXRpb25zYmF1bSAoa2FubiBsb2thbGVuIEVudHd1cmYg ZW50aGFsdGVuKQogIFAuU0VFRCA9IG51bGw7ICAgICAgICAgIC8vIHZlcsO2ZmZlbnRsaWNodGVy IEluaGFsdHMtU2VlZAogIFAuY29udGVudCA9IG51bGw7ICAgICAgIC8vIGFrdGl2ZXIgSW5oYWx0 IChjYXRzL2J1bGxldGlucy9wYW5lbHMvcm9zdGVyKQogIFAuaGFzRHJhZnQgPSBmYWxzZTsgICAg IC8vIEluaGFsdHMtRW50d3VyZiB2b3JoYW5kZW4/CiAgUC5oYXNOYXZEcmFmdCA9IGZhbHNlOyAg Ly8gTmF2aWdhdGlvbnMtRW50d3VyZiB2b3JoYW5kZW4/CiAgUC5sYXN0VmlzaXQgPSAwOwogIFAu Y3VycmVudEhyZWYgPSBudWxsOwogIC8vIFZlcnNpb25zLVN0ZW1wZWwgZGVyIHZlcm9lZmZlbnRs aWNodGVuIERhdGVuZmlsZXMgKEJhc2lzIGZ1ZXIgc3BhZXRlcmUKICAvLyBvcHRpbWlzdGlzY2hl IEtvbmZsaWt0ZXJrZW5udW5nIGJlaW0gZ2VtZWluc2FtZW4gU2NocmVpYmVuIGF1ZiBkaWUgRnJl aWdhYmUpLgogIFAuY29udGVudFJldiA9IHsgbjogMCwgdHM6IG51bGwsIHVzZXI6IG51bGwgfTsK ICBQLm5hdlJldiA9IHsgbjogMCwgdHM6IG51bGwsIHVzZXI6IG51bGwgfTsKICBQLm5leHRSZXYg PSBmdW5jdGlvbiAoY3VyKSB7IHJldHVybiB7IG46ICgoY3VyICYmIGN1ci5uKSB8fCAwKSArIDEs IHRzOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksIHVzZXI6IFAudXNlciB8fCBudWxsIH07IH07 CgogIC8vIFBvcnRhbHdlaXRlIEVpbnN0ZWxsdW5nZW4gKFBoYXNlIDcpIOKAlCB2ZXJvZWZmZW50 bGljaHQgYWxzIHdpbmRvdy5QT1JUQUxfU0VUVElOR1MuCiAgLy8gRmFsbGJhY2ssIGZhbGxzIGRp ZSBEYXRlaSAobm9jaCkga2VpbmUgU2V0dGluZ3MgZW50aGFlbHQgLT4gYnJpY2h0IExlc2VyIG5p Y2h0LgogIFAuZGVmYXVsdFNldHRpbmdzID0gZnVuY3Rpb24gKCkgewogICAgcmV0dXJuIHsKICAg ICAgZGVmYXVsdFRoZW1lOiAibGlnaHQiLAogICAgICBicmFuZGluZzogeyBwb3J0YWxUaXRsZTog IlBvcnRhbCBVbmlvbiDCtyBMZWl0c3RlbGxlLUluZm9ybWF0aW9uc3BvcnRhbCIsCiAgICAgICAg ICAgICAgICAgIGJyYW5kTmFtZTogIlBvcnRhbCBVbmlvbiIsIGJyYW5kU3VidGl0bGU6ICJMZWl0 c3RlbGxlIERvcnRtdW5kIiwKICAgICAgICAgICAgICAgICAgcHJpbnRGb290ZXI6ICJQb3J0YWwg VW5pb24gwrcgTGVpdHN0ZWxsZSBEb3J0bXVuZCIsCiAgICAgICAgICAgICAgICAgIGJyYW5kQ29s b3I6ICIiLCBicmFuZENvbG9yMjogIiIsIGxvZ29Vcmw6ICIiIH0sICAgLy8gbGVlciA9IENTUy1W b3JnYWJlIChzb3V2ZXJhZW5lcyBCbGF1KQogICAgICBsYWdlUHJlc2V0czogWyB7IHRleHQ6ICJS ZWdlbGJldHJpZWIiLCBsZXZlbDogIm9rIiB9LAogICAgICAgICAgICAgICAgICAgICB7IHRleHQ6 ICJFcmjDtmh0ZSBXYWNoc2Fta2VpdCIsIGxldmVsOiAiYWxlcnQiIH0sCiAgICAgICAgICAgICAg ICAgICAgIHsgdGV4dDogIkdyb8OfZWluc2F0eiIsIGxldmVsOiAiYWxlcnQiIH0gXSwKICAgICAg Ly8gSW1wcmVzc3VtIChIVE1MLCBsZWVyID0gUC5JTVBSRVNTVU1fREVGQVVMVCkgKyBTdXBwb3J0 LU1haWwgKEVtcGZhZW5nZXIvQmV0cmVmZi9Wb3JsYWdlLAogICAgICAvLyBsZWVyID0gUC5TVVBQ T1JUX01BSUxfREVGQVVMVCkg4oCUIGFsbGVzIGltIEFkbWluIHVudGVyICJJbXByZXNzdW0gJiBT dXBwb3J0IiBlZGl0aWVyYmFyLgogICAgICBpbXByZXNzdW06ICIiLAogICAgICAvLyBzdXBwb3J0 ID0gendlaSBaaWVsZTogVGVhbSA1IChhbGxnZW1laW4sIGFsbGUgUm9sbGVuKSArIFJvZXNnZW4g KEVza2FsYXRpb24sIG51ciBSZWRha3RldXIvQWRtaW4pLgogICAgICBzdXBwb3J0OiB7IHRlYW01 RW1haWw6ICJEaXJHRUZMRFRlYW01LkRvcnRtdW5kQHBvbGl6ZWkubnJ3LmRlIiwgdGVhbTVTdWJq ZWN0OiAiUG9ydGFsIFVuaW9uIOKAkyBTdXBwb3J0IChUZWFtIDUpIiwgdGVhbTVNYWlsOiAiIiwK ICAgICAgICAgICAgICAgICBlbWFpbDogInBoaWxpcHAucm9lc2dlbkBwb2xpemVpLm5ydy5kZSIs IHN1YmplY3Q6ICJQb3J0YWwgVW5pb24g4oCTIFN1cHBvcnQiLCBtYWlsOiAiIiB9LAogICAgICAv LyBEYXJzdGVsbHVuZ3MtT3ZlcnJpZGVzLiBGbGFjaGUgS2V5cyAoYXpGb250U2l6ZSDigKYsIGRl bnNpdHkpID0gUC5VSV9WQVJTL0RpY2h0ZS4KICAgICAgLy8gRXJ3ZWl0ZXJ0IChQaGFzZSAxMyDi gJQg4oCeYWxsZXMgZWluc3RlbGxiYXIiKTogY29sb3JzIChwcm8gVGhlbWUpLCB0b2tlbnMgKHRo ZW1lLWFnbm9zdGlzY2gpLAogICAgICAvLyB0ZXh0cyAoVUktQmVzY2hyaWZ0dW5nZW4gdmlhIFAu dCksIG1vZHVsZXMgKExpbWl0cy9TaWNodGJhcmtlaXQgdmlhIFAubW9kKS4gTGVlciA9IENTUy9E ZWZhdWx0LgogICAgICB1aTogeyBjb2xvcnM6IHsgbGlnaHQ6IHt9LCBkYXJrOiB7fSB9LCB0b2tl bnM6IHt9LCB0ZXh0czoge30sIG1vZHVsZXM6IHt9IH0KICAgIH07CiAgfTsKICAvLyBTZXR0aW5n cyBkZWZlbnNpdiB2ZXJ2b2xsc3RhZW5kaWdlbiAoYmFjay1jb21wYXQ6IGFlbHRlcmUgUE9SVEFM X1NFVFRJTkdTIG9obmUgZGllIG5ldWVuIEZlbGRlcikuCiAgUC5ub3JtYWxpemVTZXR0aW5ncyA9 IGZ1bmN0aW9uIChTKSB7CiAgICBTID0gUyB8fCB7fTsKICAgIGlmICghUy51aSB8fCB0eXBlb2Yg Uy51aSAhPT0gIm9iamVjdCIpIFMudWkgPSB7fTsKICAgIGlmICghUy51aS5jb2xvcnMgfHwgdHlw ZW9mIFMudWkuY29sb3JzICE9PSAib2JqZWN0IikgUy51aS5jb2xvcnMgPSB7fTsKICAgIGlmICgh Uy51aS5jb2xvcnMubGlnaHQpIFMudWkuY29sb3JzLmxpZ2h0ID0ge307CiAgICBpZiAoIVMudWku Y29sb3JzLmRhcmspIFMudWkuY29sb3JzLmRhcmsgPSB7fTsKICAgIGlmICghUy51aS50b2tlbnMp IFMudWkudG9rZW5zID0ge307CiAgICBpZiAoIVMudWkudGV4dHMpIFMudWkudGV4dHMgPSB7fTsK ICAgIGlmICghUy51aS5tb2R1bGVzKSBTLnVpLm1vZHVsZXMgPSB7fTsKICAgIGlmICh0eXBlb2Yg Uy5pbXByZXNzdW0gIT09ICJzdHJpbmciKSBTLmltcHJlc3N1bSA9ICIiOwogICAgaWYgKCFTLnN1 cHBvcnQgfHwgdHlwZW9mIFMuc3VwcG9ydCAhPT0gIm9iamVjdCIpIFMuc3VwcG9ydCA9IHt9Owog ICAgcmV0dXJuIFM7CiAgfTsKCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGFyc3RlbGx1bmdzLU9wdGlvbmVuIChkYXRlbmdl dHJpZWJlbikKICAgICBFSU5FIGRla2xhcmF0aXZlIExpc3RlIHRyZWlidCBzb3dvaGwgZGFzIEFu d2VuZGVuIChhbHMgQ1NTLUN1c3RvbS1Qcm9wZXJ0eSBhdWYgOnJvb3QpCiAgICAgYWxzIGF1Y2gg ZGFzIEVpbnN0ZWxsdW5ncy1Gb3JtdWxhci4gTmV1ZSBTdGVsbHNjaHJhdWJlID0gZWluZSBaZWls ZSBoaWVyIGVyZ2Flbnplbi4KICAgICBMZWVyZXIgV2VydCAtPiBDU1MtVm9yZ2FiZSBibGVpYnQg KElubGluZS1Qcm9wIGVudGZlcm50KS4gQmV3dXNzdCBrZWluZSBMYXlvdXQtQnJ1ZWNoZToKICAg ICBnZXNldHp0ZSBXZXJ0ZSB1ZWJlcnNjaHJlaWJlbiBhdWNoIGRpZSByZXNwb25zaXZlbiBEZWZh dWx0cyDigJQgbnVyIHNldHplbiwgd2FzIGdld29sbHQgaXN0LiAqLwogIFAuVUlfVkFSUyA9IFsK ICAgIHsga2V5OiAiYXpGb250U2l6ZSIsICAgbGFiZWw6ICJB4oCTWi1TY2hyaWZ0Z3LDtsOfZSIs ICAgICAgY3NzVmFyOiAiLS1hei1mcyIsICAgdW5pdDogInB4IiwgZGVmOiAiMTEuNSIsIGhpbnQ6 ICJHcsO2w59lIGRlciBCdWNoc3RhYmVuIGluIGRlciBSZWdpc3RlcmxlaXN0ZS4iIH0sCiAgICB7 IGtleTogImJhc2VGb250U2l6ZSIsIGxhYmVsOiAiQmFzaXMtU2NocmlmdGdyw7bDn2UiLCAgICAg Y3NzVmFyOiAiLS1mcy1iYXNlIiwgdW5pdDogInB4IiwgZGVmOiAiMTUiLCAgIGhpbnQ6ICJHcnVu ZHRleHRncsO2w59lIGRlciBnZXNhbXRlbiBPYmVyZmzDpGNoZS4iIH0sCiAgICB7IGtleTogImNv cm5lclJhZGl1cyIsIGxhYmVsOiAiRWNrLVJ1bmR1bmciLCAgICAgICAgICAgIGNzc1ZhcjogIi0t cmFkaXVzIiwgIHVuaXQ6ICJweCIsIGRlZjogIjgiLCAgICBoaW50OiAiTWFzdGVyLVJ1bmR1bmcg 4oCUIGbDpHJidCBhbGxlIEVja2VuIChLYXJ0ZW4sIEtuw7ZwZmUsIEZlbGRlciwgRGlhbG9nZSku IiB9LAogICAgeyBrZXk6ICJyZWFkV2lkdGgiLCAgICBsYWJlbDogIkxlc2VicmVpdGUgQXJ0aWtl bCIsICAgICBjc3NWYXI6ICItLXJlYWQiLCAgICB1bml0OiAiY2giLCBkZWY6ICI3NCIsICAgaGlu dDogIk1heGltYWxlIFRleHRicmVpdGUgbGFuZ2VyIEFydGlrZWwgKGluIFplaWNoZW4pLiIgfSwK ICAgIHsga2V5OiAicmFpbEwiLCAgICAgICAgbGFiZWw6ICJMaW5rZSBTcGFsdGUg4oCTIEJyZWl0 ZSIsICBjc3NWYXI6ICItLXJhaWwtbCIsICB1bml0OiAicHgiLCBkZWY6ICIyNjgiLCAgaGludDog IkJyZWl0ZSBkZXIgTmF2aWdhdGlvbnNzcGFsdGUgKMO8YmVyc2NocmVpYnQgZGllIHJlc3BvbnNp dmUgQW5wYXNzdW5nKS4iIH0sCiAgICB7IGtleTogInJhaWxSIiwgICAgICAgIGxhYmVsOiAiUmVj aHRlIFNwYWx0ZSDigJMgQnJlaXRlIiwgY3NzVmFyOiAiLS1yYWlsLXIiLCAgdW5pdDogInB4Iiwg ZGVmOiAiNTYwIiwgIGhpbnQ6ICJCcmVpdGUgZGVyIFNjaG5lbGx6dWdyaWZmZS1TcGFsdGUgKMO8 YmVyc2NocmVpYnQgZGllIHJlc3BvbnNpdmUgQW5wYXNzdW5nKS4iIH0sCiAgICB7IGtleTogImJh ckgiLCAgICAgICAgIGxhYmVsOiAiS29wZnplaWxlbi1Iw7ZoZSIsICAgICAgICBjc3NWYXI6ICIt LWJhci1oIiwgICB1bml0OiAicHgiLCBkZWY6ICI2MiIsICAgaGludDogIkjDtmhlIGRlciBvYmVy ZW4gTGVpc3RlIChUb3BiYXIpLiIgfQogIF07CiAgLy8gRGFyc3RlbGx1bmdzLU92ZXJyaWRlcyBh dXMgZGVuIFNldHRpbmdzIGFscyBJbmxpbmUtQ1NTLVZhcmlhYmxlbiBhdWYgOnJvb3QgYW53ZW5k ZW4uCiAgUC5hcHBseVVpVmFycyA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciB1aSA9IChQLmNvbnRl bnQgJiYgUC5jb250ZW50LnNldHRpbmdzICYmIFAuY29udGVudC5zZXR0aW5ncy51aSkgfHwge307 CiAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZTsKICAgIFAuVUlf VkFSUy5mb3JFYWNoKGZ1bmN0aW9uIChmKSB7CiAgICAgIHZhciB2ID0gdWlbZi5rZXldOwogICAg ICBpZiAodiAhPSBudWxsICYmIFN0cmluZyh2KS50cmltKCkgIT09ICIiKSByb290LnNldFByb3Bl cnR5KGYuY3NzVmFyLCBTdHJpbmcodikudHJpbSgpICsgKGYudW5pdCB8fCAiIikpOwogICAgICBl bHNlIHJvb3QucmVtb3ZlUHJvcGVydHkoZi5jc3NWYXIpOwogICAgfSk7CiAgfTsKICAvLyBEaWNo dGUtUHJlc2V0IChQaGFzZSAxMik6IGtvbXBha3QgfCBrb21mb3J0YWJlbCDigJQgYWxzIGRhdGEt ZGVuc2l0eSBhdWYgOnJvb3Q7IENTUyByZWdlbHQgZGVuIFJlc3QuCiAgLy8gTGVlci91bmJla2Fu bnQgLT4gQXR0cmlidXQgZW50ZmVybnQgLT4gQ1NTLVZvcmdhYmUgKGF1c2dld29nZW4pIGdpbHQu CiAgUC5hcHBseURlbnNpdHkgPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIgdWkgPSAoUC5jb250ZW50 ICYmIFAuY29udGVudC5zZXR0aW5ncyAmJiBQLmNvbnRlbnQuc2V0dGluZ3MudWkpIHx8IHt9Owog ICAgdmFyIGQgPSB1aS5kZW5zaXR5OwogICAgdmFyIHJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVs ZW1lbnQ7CiAgICBpZiAoZCA9PT0gImNvbXBhY3QiIHx8IGQgPT09ICJjb21mb3J0YWJsZSIpIHJv b3Quc2V0QXR0cmlidXRlKCJkYXRhLWRlbnNpdHkiLCBkKTsKICAgIGVsc2Ugcm9vdC5yZW1vdmVB dHRyaWJ1dGUoImRhdGEtZGVuc2l0eSIpOwogIH07CiAgLy8gTWVsZHVuZ3MtSGVydm9yaGVidW5n OiBQdWxzIGRlciAiV2ljaHRpZyItU3R1ZmUgYW4vYXVzIChkYXRlbmdldHJpZWJlbiB2aWEgTU9E VUxFX1ZBUlMuaGlnaGxpZ2h0UHVsc2UpLgogIFAuYXBwbHlIaWdobGlnaHQgPSBmdW5jdGlvbiAo KSB7CiAgICB2YXIgb24gPSBQLm1vZCA/IFAubW9kKCJoaWdobGlnaHRQdWxzZSIpIDogdHJ1ZTsK ICAgIHZhciByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwogICAgaWYgKG9uKSByb290 LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1ub3B1bHNlIik7IGVsc2Ugcm9vdC5zZXRBdHRyaWJ1dGUo ImRhdGEtbm9wdWxzZSIsICIxIik7CiAgfTsKCiAgLyogLS0tLS0tLS0tLSBEZXNpZ24tVG9rZW5z IChkYXRlbmdldHJpZWJlbiwg4oCeYWxsZXMgZWluc3RlbGxiYXIiIFBoYXNlIDEzKSAtLS0tLS0t LS0tCiAgICAgRUlORSBEZWZpbml0aW9uIHRyZWlidCBBbndlbmRlbiAoZ2VuZXJpZXJ0ZXMgPHN0 eWxlIGlkPSJwdS1vdmVycmlkZXMiPikgVU5EIEZvcm11bGFyLgogICAgIERlZmF1bHRzIHNwaWVn ZWxuIGV4YWt0IGRpZSBDU1MtOnJvb3QtV2VydGUgKGFzc2V0cy9jc3MvcG9ydGFsLmNzcykuIEZh cmJlbiBwcm8gVGhlbWUKICAgICAoSGVsbC9EdW5rZWwpIC0+IHNldHRpbmdzLnVpLmNvbG9yc1t0 aGVtZV1ba2V5XTsgdGhlbWUtYWdub3N0aXNjaCAoVHlwby9BYnN0YW5kL0Jld2VndW5nKQogICAg IC0+IHNldHRpbmdzLnVpLnRva2Vuc1trZXldLiBOSUNIVCBlbnRoYWx0ZW46IC0tZnMtYmFzZSwg LS1yYWRpdXMsIC0tcmVhZCwgLS1yYWlsLWwsCiAgICAgLS1yYWlsLXIsIC0tYmFyLWgsIC0tYXot ZnMgKGRpZSBsaWVnZW4gaW4gUC5VSV9WQVJTLCBTZWt0aW9uIExheW91dCkuIGNzc1ZhciA9ICIt LSIgKyBrZXkuICovCiAgUC5ERVNJR05fVE9LRU5TID0gW107CiAgKGZ1bmN0aW9uICgpIHsKICAg IC8vIFtrZXksIGxhYmVsLCBoZWxsLCBkdW5rZWxdCiAgICB2YXIgQ09MUyA9IFsKICAgICAgWyJi ZyIsIkhpbnRlcmdydW5kIiwiI2VjZWZmNCIsIiMwZjE1MWQiXSwKICAgICAgWyJiZy0yIiwiRmzD pGNoZSAoS2FydGVuL01vZGFsKSIsIiNmZmZmZmYiLCIjMTgyMjMwIl0sCiAgICAgIFsiYmctMyIs IkZsw6RjaGUgMiAoRmVsZGVyL0hvdmVyKSIsIiNmM2Y2ZmEiLCIjMWYyYjNhIl0sCiAgICAgIFsi YmctaG92IiwiSG92ZXItRmzDpGNoZSIsIiNlOGVkZjQiLCIjMjgzNTQ1Il0sCiAgICAgIFsibGlu ZSIsIkxpbmllIiwiI2RiZTFlYSIsIiMyYzNhNGMiXSwKICAgICAgWyJsaW5lLTIiLCJMaW5pZSBr csOkZnRpZyIsIiNjNGNkZGEiLCIjM2I0YjYwIl0sCiAgICAgIFsidGV4dCIsIlRleHQiLCIjMTUy MDJlIiwiI2VlZjJmOCJdLAogICAgICBbInRleHQtZGltIiwiVGV4dCBnZWRpbW10IiwiIzQ1NTc2 YyIsIiNhYWI4YzkiXSwKICAgICAgWyJ0ZXh0LWZudCIsIlRleHQgc2Nod2FjaCIsIiM3MjgzOWEi LCIjN2E4YTlkIl0sCiAgICAgIFsiYnJhbmQiLCJNYXJrZW5mYXJiZSIsIiMxNDUyOWIiLCIjNmFh OWVmIl0sCiAgICAgIFsiYnJhbmQtMiIsIk1hcmtlbi1Ba3plbnQiLCIjMTQ1MjliIiwiIzZhYTll ZiJdLAogICAgICBbImJyYW5kLXN0cm9uZyIsIk1hcmtlIGtyw6RmdGlnIiwiIzBlNDE3YiIsIiM4 NmJiZjQiXSwKICAgICAgWyJicmFuZC1zb2Z0IiwiTWFya2UgemFydCIsIiNlN2YwZmIiLCJyZ2Jh KDEwNiwxNjksMjM5LC4xNikiXSwKICAgICAgWyJhY2NlbnQtaW5rIiwiVGV4dCBhdWYgTWFya2Ui LCIjZmZmZmZmIiwiIzBhMTQyMCJdLAogICAgICBbImNyZXN0IiwiTG9nby1GZWxkIiwiIzEwM2E2 YiIsIiMwYzJhNGYiXSwKICAgICAgWyJmb2N1cyIsIkZva3VzLVJpbmciLCIjMWY2ZmQ2IiwiIzZh YTllZiJdLAogICAgICBbImRhbmdlciIsIkdlZmFociIsIiNjMDI4M2EiLCIjZTA1NjZhIl0sCiAg ICAgIFsiZGFuZ2VyLWQiLCJHZWZhaHIgZHVua2VsIiwiI2EwMWUyZSIsIiNjNDNlNTIiXSwKICAg ICAgWyJkYW5nZXItc29mdCIsIkdlZmFociB6YXJ0IiwiI2ZkZWNlZSIsInJnYmEoMjI0LDg2LDEw NiwuMTYpIl0sCiAgICAgIFsid2FybiIsIldhcm51bmciLCIjOWE2NjA4IiwiI2UwYTgzOCJdLAog ICAgICBbIndhcm4tc29mdCIsIldhcm51bmcgemFydCIsIiNmYmYyZGQiLCJyZ2JhKDIyNCwxNjgs NTYsLjE2KSJdLAogICAgICBbIm9rIiwiT0sgLyBHcsO8biIsIiMxYzdhNGQiLCIjNDZiZTg2Il0s CiAgICAgIFsiaGwtaW5mbyIsIk1lbGR1bmctSGVydm9yaC4gSGVsbGJsYXUiLCIjMmY2ZmIwIiwi IzVhYTBlMCJdLAogICAgICBbImhsLWFsZXJ0IiwiTWVsZHVuZy1IZXJ2b3JoLiBIZWxscm90Iiwi I2MwMzkyYiIsIiNlMDU2NmEiXSwKICAgICAgWyJobC11cmdlbnQiLCJNZWxkdW5nLUhlcnZvcmgu IFdpY2h0aWcgKEdvbGRyb3QsIHB1bHNpZXJ0KSIsIiNjNDZhMTAiLCIjZjBhMjNhIl0KICAgIF07 CiAgICBDT0xTLmZvckVhY2goZnVuY3Rpb24gKGMpIHsKICAgICAgUC5ERVNJR05fVE9LRU5TLnB1 c2goeyBrZXk6IGNbMF0sIGxhYmVsOiBjWzFdLCBjc3NWYXI6ICItLSIgKyBjWzBdLCBncm91cDog ImZhcmJlLWhlbGwiLCAgIHRoZW1lOiAibGlnaHQiLCB0eXBlOiAiY29sb3IiLCB1bml0OiAiIiwg ZGVmOiBjWzJdIH0pOwogICAgICBQLkRFU0lHTl9UT0tFTlMucHVzaCh7IGtleTogY1swXSwgbGFi ZWw6IGNbMV0sIGNzc1ZhcjogIi0tIiArIGNbMF0sIGdyb3VwOiAiZmFyYmUtZHVua2VsIiwgdGhl bWU6ICJkYXJrIiwgIHR5cGU6ICJjb2xvciIsIHVuaXQ6ICIiLCBkZWY6IGNbM10gfSk7CiAgICB9 KTsKICAgIC8vIFtrZXksIGxhYmVsLCBncm91cCwgdW5pdCwgZGVmXQogICAgdmFyIFJFU1QgPSBb CiAgICAgIFsiZnMtMnhzIiwiTWluaS1UZXh0IiwidHlwbyIsInB4IiwiMTEiXSwgWyJmcy14cyIs IktsZWluLVRleHQiLCJ0eXBvIiwicHgiLCIxMiJdLAogICAgICBbImZzLXNtIiwiVGV4dCBrbGVp biIsInR5cG8iLCJweCIsIjEzIl0sIFsiZnMtbWQiLCJUZXh0IG1pdHRlbCIsInR5cG8iLCJweCIs IjE3Il0sCiAgICAgIFsiZnMtbGciLCLDnGJlcnNjaHJpZnQgUyIsInR5cG8iLCJweCIsIjIwIl0s IFsiZnMteGwiLCLDnGJlcnNjaHJpZnQgTSIsInR5cG8iLCJweCIsIjI0Il0sCiAgICAgIFsiZnMt MnhsIiwiw5xiZXJzY2hyaWZ0IEwiLCJ0eXBvIiwicHgiLCIzMCJdLAogICAgICBbImxoLXRpZ2h0 IiwiWmVpbGVuaMO2aGUgZW5nIiwidHlwbyIsIiIsIjEuMjUiXSwgWyJsaC1iYXNlIiwiWmVpbGVu aMO2aGUgbm9ybWFsIiwidHlwbyIsIiIsIjEuNDciXSwKICAgICAgWyJsaC1yZWFkIiwiWmVpbGVu aMO2aGUgTGVzZW4iLCJ0eXBvIiwiIiwiMS42NSJdLAogICAgICBbInNwLTIiLCJBYnN0YW5kIFhT IiwiYWJzdGFuZCIsInB4IiwiOCJdLCBbInNwLTMiLCJBYnN0YW5kIFMiLCJhYnN0YW5kIiwicHgi LCIxMiJdLAogICAgICBbInNwLTQiLCJBYnN0YW5kIE0iLCJhYnN0YW5kIiwicHgiLCIxNiJdLCBb InNwLTUiLCJBYnN0YW5kIEwiLCJhYnN0YW5kIiwicHgiLCIyMCJdLAogICAgICBbInNwLTYiLCJB YnN0YW5kIFhMIiwiYWJzdGFuZCIsInB4IiwiMjQiXSwKICAgICAgWyJkdXItMSIsIkRhdWVyIGt1 cnoiLCJiZXdlZ3VuZyIsIm1zIiwiMTIwIl0sIFsiZHVyLTIiLCJEYXVlciBub3JtYWwiLCJiZXdl Z3VuZyIsIm1zIiwiMjAwIl0sCiAgICAgIFsiZHVyLTMiLCJEYXVlciBsYW5nIiwiYmV3ZWd1bmci LCJtcyIsIjMyMCJdCiAgICBdOwogICAgUkVTVC5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7CiAgICAg IFAuREVTSUdOX1RPS0VOUy5wdXNoKHsga2V5OiByWzBdLCBsYWJlbDogclsxXSwgY3NzVmFyOiAi LS0iICsgclswXSwgZ3JvdXA6IHJbMl0sIHR5cGU6ICJsZW4iLCB1bml0OiByWzNdLCBkZWY6IHJb NF0gfSk7CiAgICB9KTsKICB9KSgpOwoKICAvLyBHZW5lcmllcnQgZGllIE92ZXJyaWRlLVJlZ2Vs biAobnVyIGdlc2V0enRlIFdlcnRlKS4gT3B0aW9uYWxlcyB1aS1BcmcgZnVlciBMaXZlLVZvcnNj aGF1LgogIFAuYnVpbGRPdmVycmlkZUNzcyA9IGZ1bmN0aW9uICh1aSkgewogICAgdWkgPSB1aSB8 fCAoUC5jb250ZW50ICYmIFAuY29udGVudC5zZXR0aW5ncyAmJiBQLmNvbnRlbnQuc2V0dGluZ3Mu dWkpIHx8IHt9OwogICAgdmFyIGNvbG9ycyA9IHVpLmNvbG9ycyB8fCB7fSwgdG9rZW5zID0gdWku dG9rZW5zIHx8IHt9OwogICAgZnVuY3Rpb24gZGVjbHMoZ3JvdXAsIHNyYykgewogICAgICB2YXIg b3V0ID0gW107CiAgICAgIFAuREVTSUdOX1RPS0VOUy5mb3JFYWNoKGZ1bmN0aW9uICh0KSB7CiAg ICAgICAgaWYgKHQuZ3JvdXAgIT09IGdyb3VwIHx8ICFzcmMpIHJldHVybjsKICAgICAgICB2YXIg diA9IHNyY1t0LmtleV07CiAgICAgICAgaWYgKHYgIT0gbnVsbCAmJiBTdHJpbmcodikudHJpbSgp ICE9PSAiIikgb3V0LnB1c2godC5jc3NWYXIgKyAiOiIgKyBTdHJpbmcodikudHJpbSgpICsgKHQu dW5pdCB8fCAiIikgKyAiOyIpOwogICAgICB9KTsKICAgICAgcmV0dXJuIG91dDsKICAgIH0KICAg IHZhciByb290ID0gZGVjbHMoInR5cG8iLCB0b2tlbnMpLmNvbmNhdChkZWNscygiYWJzdGFuZCIs IHRva2VucyksIGRlY2xzKCJiZXdlZ3VuZyIsIHRva2VucykpOwogICAgdmFyIGxpZ2h0ID0gZGVj bHMoImZhcmJlLWhlbGwiLCBjb2xvcnMubGlnaHQpLCBkYXJrID0gZGVjbHMoImZhcmJlLWR1bmtl bCIsIGNvbG9ycy5kYXJrKTsKICAgIHZhciBjc3MgPSAiIjsKICAgIGlmIChyb290Lmxlbmd0aCkg IGNzcyArPSAiOnJvb3R7IiArIHJvb3Quam9pbigiIikgKyAifVxuIjsKICAgIGlmIChsaWdodC5s ZW5ndGgpIGNzcyArPSAnOnJvb3RbZGF0YS10aGVtZT0ibGlnaHQiXXsnICsgbGlnaHQuam9pbigi IikgKyAifVxuIjsKICAgIGlmIChkYXJrLmxlbmd0aCkgIGNzcyArPSAnOnJvb3RbZGF0YS10aGVt ZT0iZGFyayJdeycgKyBkYXJrLmpvaW4oIiIpICsgIn1cbiI7CiAgICByZXR1cm4gY3NzOwogIH07 CiAgLy8gU2NocmVpYnQgZGllIFJlZ2VsbiBpbiBlaW5lbiA8c3R5bGUgaWQ9InB1LW92ZXJyaWRl cyI+LUJsb2NrIChpZGVtcG90ZW50LCBmaWxlOi8vLXRhdWdsaWNoKS4KICBQLmFwcGx5T3ZlcnJp ZGVDc3MgPSBmdW5jdGlvbiAodWkpIHsKICAgIHZhciBub2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoInB1LW92ZXJyaWRlcyIpOwogICAgaWYgKCFub2RlKSB7IG5vZGUgPSBkb2N1bWVudC5j cmVhdGVFbGVtZW50KCJzdHlsZSIpOyBub2RlLmlkID0gInB1LW92ZXJyaWRlcyI7IChkb2N1bWVu dC5oZWFkIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuYXBwZW5kQ2hpbGQobm9kZSk7IH0K ICAgIG5vZGUudGV4dENvbnRlbnQgPSBQLmJ1aWxkT3ZlcnJpZGVDc3ModWkpOwogIH07CgogIC8q IC0tLS0tLS0tLS0gVUktVGV4dGUgKGRhdGVuZ2V0cmllYmVuKSAtLS0tLS0tLS0tCiAgICAgUC50 KGtleSkgbGllZmVydCBkZW4gQWRtaW4tV2VydCAoc2V0dGluZ3MudWkudGV4dHNba2V5XSkgb2Rl ciBkZW4gRGVmYXVsdC4KICAgICBTdGF0aXNjaGUgRE9NLVRleHRlIHdlcmRlbiB2aWEgc2VsL2F0 dHIgZHVyY2ggYXBwbHlUZXh0cygpIGdlc2V0enQ7IGR5bmFtaXNjaGUKICAgICAoaW4gUmVuZGVy LU1vZHVsZW4gZXJ6ZXVndGUpIFN0cmluZ3MgcnVmZW4gUC50KGtleSkgZGlyZWt0IGF1Zi4gKi8K ICAvLyBEeW5hbWlzY2hlIFRleHRlIChpbiBSZW5kZXItTW9kdWxlbiB2aWEgUC50IGVyemV1Z3Q7 IGhhYmVuIGtlaW4gRE9NLVp1aGF1c2UgYmVpbSBMYWRlbikuCiAgLy8gU3RhdGlzY2hlIENocm9t ZS1MYWJlbHMgc3RlaGVuIE5JQ0hUIGhpZXIsIHNvbmRlcm4gYWxzIGRhdGEtdGtleSBpbiBpbmRl eC5odG1sIHVuZCB3ZXJkZW4KICAvLyBwZXIgUC5zbmFwc2hvdFRleHRzKCkgZXJmYXNzdCAtPiBz byBpc3Qgd2lya2xpY2ggSkVERSBCZXplaWNobnVuZyBpbSBBZG1pbi1CZXJlaWNoIGVkaXRpZXJi YXIuCiAgUC5VSV9URVhUUyA9IFsKICAgIHsga2V5OiAibGFnZS5sYWJlbCIsICAgICAgICAgbGFi ZWw6ICJMYWdlLUtlbm51bmciLCAgICAgICAgICAgICAgICBkZWY6ICJMYWdlIiB9LAogICAgeyBr ZXk6ICJsYWdlLmRlZmF1bHQiLCAgICAgICBsYWJlbDogIlN0YW5kYXJkLUxhZ2V0ZXh0IiwgICAg ICAgICAgIGRlZjogIlJlZ2VsYmV0cmllYiIgfSwKICAgIHsga2V5OiAiY29ja3BpdC5waW5uZWQi LCAgICAgbGFiZWw6ICJGZWVkOiBBbmdlcGlubnQiLCAgICAgICAgICAgICBkZWY6ICJBbmdlcGlu bnQiIH0sCiAgICB7IGtleTogImZlZWQuY2hyb25pY2xlIiwgICAgIGxhYmVsOiAiRmVlZDogQ2hy b25payIsICAgICAgICAgICAgICAgZGVmOiAiQ2hyb25payIgfSwKICAgIHsga2V5OiAiZmVlZC5u ZXciLCAgICAgICAgICAgbGFiZWw6ICJEaWFsb2c6IE5ldWUgTWVsZHVuZyIsICAgICAgICBkZWY6 ICJOZXVlIE1lbGR1bmciIH0sCiAgICB7IGtleTogImZlZWQuZWRpdCIsICAgICAgICAgIGxhYmVs OiAiRGlhbG9nOiBNZWxkdW5nIGJlYXJiZWl0ZW4iLCAgZGVmOiAiTWVsZHVuZyBiZWFyYmVpdGVu IiB9LAogICAgeyBrZXk6ICJmZWVkLmVtcHR5IiwgICAgICAgICBsYWJlbDogIkZlZWQ6IGtlaW5l IE1lbGR1bmdlbiIsICAgICAgIGRlZjogIktlaW5lIE1lbGR1bmdlbiIgfSwKICAgIHsga2V5OiAi cm9zdGVyLnRpdGxlIiwgICAgICAgbGFiZWw6ICJEaWVuc3RncnVwcGUtVGl0ZWwiLCAgICAgICAg ICBkZWY6ICJEaWVuc3RncnVwcGUiIH0sCiAgICB7IGtleTogInNlYXJjaC5zY29wZUFsbCIsICAg IGxhYmVsOiAiU3VjaGU6IEZpbHRlciBBbGxlIiwgICAgICAgICAgZGVmOiAiQWxsZSIgfSwKICAg IHsga2V5OiAic2VhcmNoLnNjb3BlQ21kIiwgICAgbGFiZWw6ICJTdWNoZTogRmlsdGVyIEJlZmVo bGUiLCAgICAgICBkZWY6ICJCZWZlaGxlIiB9LAogICAgeyBrZXk6ICJzZWFyY2guc2NvcGVCdWxs IiwgICBsYWJlbDogIlN1Y2hlOiBGaWx0ZXIgTWVsZHVuZ2VuIiwgICAgIGRlZjogIk1lbGR1bmdl biIgfSwKICAgIHsga2V5OiAic2VhcmNoLnNjb3BlRG9jIiwgICAgbGFiZWw6ICJTdWNoZTogRmls dGVyIERva3VtZW50ZSIsICAgICBkZWY6ICJEb2t1bWVudGUiIH0sCiAgICB7IGtleTogIndoYXRz bmV3Lm5hdiIsICAgICAgIGxhYmVsOiAiU2lkZWJhcjogVXBkYXRlcy1FaW50cmFnIiwgICAgZGVm OiAiVXBkYXRlcyIgfSwKICAgIHsga2V5OiAid2hhdHNuZXcudGl0bGUiLCAgICAgbGFiZWw6ICJV cGRhdGVzLU1vZGFsOiBUaXRlbCIsICAgICAgICBkZWY6ICJVcGRhdGVzIiB9LAogICAgeyBrZXk6 ICJ3aGF0c25ldy5zZWVuIiwgICAgICBsYWJlbDogIlVwZGF0ZXMtTW9kYWw6IHNlaXQgQmVzdWNo IiwgIGRlZjogIlNlaXQgZGVpbmVtIGxldHp0ZW4gQmVzdWNoIiB9LAogICAgeyBrZXk6ICJ3aGF0 c25ldy5yZWNlbnQiLCAgICBsYWJlbDogIlVwZGF0ZXMtTW9kYWw6IHp1bGV0enQgZ2XDpG5kZXJ0 IiwgZGVmOiAiWnVsZXR6dCBnZcOkbmRlcnRlcyBXaXNzZW4iIH0sCiAgICB7IGtleTogIndoYXRz bmV3LmVtcHR5IiwgICAgIGxhYmVsOiAiVXBkYXRlcy1Nb2RhbDogbmljaHRzIE5ldWVzIiwgZGVm OiAiQWxsZXMgZ2VzZWhlbiDigJQgbmljaHRzIE5ldWVzLiIgfQogIF07CiAgLy8gQXVzIGluZGV4 Lmh0bWwgZXJmYXNzdGUgRGVmYXVsdC1UZXh0ZSAoZGF0YS10a2V5KS4geyBrZXk6IHtsYWJlbCwg ZGVmLCBhdHRyfSB9CiAgUC5URVhUX0RFRlMgPSB7fTsKICBQLnNuYXBzaG90VGV4dHMgPSBmdW5j dGlvbiAoKSB7CiAgICB2YXIgbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0 YS10a2V5XSIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgewog ICAgICB2YXIgbiA9IG5vZGVzW2ldLCBrID0gbi5nZXRBdHRyaWJ1dGUoImRhdGEtdGtleSIpOyBp ZiAoIWsgfHwgUC5URVhUX0RFRlNba10pIGNvbnRpbnVlOwogICAgICB2YXIgYXR0ciA9IG4uZ2V0 QXR0cmlidXRlKCJkYXRhLXRhdHRyIikgfHwgIiI7CiAgICAgIFAuVEVYVF9ERUZTW2tdID0geyBs YWJlbDogbi5nZXRBdHRyaWJ1dGUoImRhdGEtdGxhYmVsIikgfHwgaywgYXR0cjogYXR0ciwKICAg ICAgICBkZWY6IGF0dHIgPyAobi5nZXRBdHRyaWJ1dGUoYXR0cikgfHwgIiIpIDogKG4udGV4dENv bnRlbnQgfHwgIiIpLnRyaW0oKSB9OwogICAgfQogIH07CiAgUC50ID0gZnVuY3Rpb24gKGtleSwg ZmIpIHsKICAgIHZhciB0eCA9IChQLmNvbnRlbnQgJiYgUC5jb250ZW50LnNldHRpbmdzICYmIFAu Y29udGVudC5zZXR0aW5ncy51aSAmJiBQLmNvbnRlbnQuc2V0dGluZ3MudWkudGV4dHMpIHx8IHt9 OwogICAgaWYgKHR4W2tleV0gIT0gbnVsbCAmJiB0eFtrZXldICE9PSAiIikgcmV0dXJuIHR4W2tl eV07CiAgICBpZiAoUC5URVhUX0RFRlNba2V5XSkgcmV0dXJuIFAuVEVYVF9ERUZTW2tleV0uZGVm OwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBQLlVJX1RFWFRTLmxlbmd0aDsgaSsrKSBpZiAoUC5V SV9URVhUU1tpXS5rZXkgPT09IGtleSkgcmV0dXJuIFAuVUlfVEVYVFNbaV0uZGVmOwogICAgcmV0 dXJuIGZiICE9IG51bGwgPyBmYiA6IGtleTsKICB9OwogIC8vIFZlcmVpbnRlIExpc3RlIGZ1ZXIg ZGFzIEJlc2NocmlmdHVuZ2VuLUZvcm11bGFyIChkeW5hbWlzY2hlICsgRE9NLWVyZmFzc3RlKS4K ICBQLmFsbFRleHRzID0gZnVuY3Rpb24gKCkgewogICAgdmFyIG91dCA9IFtdLCBzZWVuID0ge307 CiAgICBQLlVJX1RFWFRTLmZvckVhY2goZnVuY3Rpb24gKGQpIHsgaWYgKCFzZWVuW2Qua2V5XSkg eyBzZWVuW2Qua2V5XSA9IDE7IG91dC5wdXNoKHsga2V5OiBkLmtleSwgbGFiZWw6IGQubGFiZWws IGRlZjogZC5kZWYgfSk7IH0gfSk7CiAgICBPYmplY3Qua2V5cyhQLlRFWFRfREVGUykuZm9yRWFj aChmdW5jdGlvbiAoaykgeyBpZiAoIXNlZW5ba10pIHsgc2VlbltrXSA9IDE7IG91dC5wdXNoKHsg a2V5OiBrLCBsYWJlbDogUC5URVhUX0RFRlNba10ubGFiZWwsIGRlZjogUC5URVhUX0RFRlNba10u ZGVmIH0pOyB9IH0pOwogICAgcmV0dXJuIG91dDsKICB9OwogIFAuYXBwbHlUZXh0cyA9IGZ1bmN0 aW9uICgpIHsKICAgIFAuVUlfVEVYVFMuZm9yRWFjaChmdW5jdGlvbiAoZCkgewogICAgICBpZiAo IWQuc2VsKSByZXR1cm47CiAgICAgIHZhciBuID0gUC4kKGQuc2VsKTsgaWYgKCFuKSByZXR1cm47 CiAgICAgIGlmIChkLmF0dHIpIG4uc2V0QXR0cmlidXRlKGQuYXR0ciwgUC50KGQua2V5KSk7IGVs c2Ugbi50ZXh0Q29udGVudCA9IFAudChkLmtleSk7CiAgICB9KTsKICAgIHZhciBub2RlcyA9IGRv Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLXRrZXldIik7CiAgICBmb3IgKHZhciBpID0g MDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBuMiA9IG5vZGVzW2ldLCBrID0g bjIuZ2V0QXR0cmlidXRlKCJkYXRhLXRrZXkiKTsgaWYgKCFrKSBjb250aW51ZTsKICAgICAgdmFy IGF0dHIgPSBuMi5nZXRBdHRyaWJ1dGUoImRhdGEtdGF0dHIiKSB8fCAiIjsKICAgICAgaWYgKGF0 dHIpIG4yLnNldEF0dHJpYnV0ZShhdHRyLCBQLnQoaykpOyBlbHNlIG4yLnRleHRDb250ZW50ID0g UC50KGspOwogICAgfQogIH07CgogIC8qIC0tLS0tLS0tLS0gTW9kdWxlL0xpbWl0cyAoZGF0ZW5n ZXRyaWViZW4pIC0tLS0tLS0tLS0KICAgICBQLm1vZChrZXkpIGxpZWZlcnQgZGVuIEFkbWluLVdl cnQgKHNldHRpbmdzLnVpLm1vZHVsZXNba2V5XSkgb2RlciBkZW4gRGVmYXVsdC4gKi8KICBQLk1P RFVMRV9WQVJTID0gWwogICAgeyBrZXk6ICJ3aGF0c25ldy5zZWVuTGltaXQiLCAgIGxhYmVsOiAi TmV1ZXMtTW9kYWw6IG1heC4gbmV1ZSBFaW50csOkZ2UiLCAgICAgdHlwZTogIm51bSIsICBkZWY6 IDEyIH0sCiAgICB7IGtleTogIndoYXRzbmV3LnJlY2VudExpbWl0IiwgbGFiZWw6ICJOZXVlcy1N b2RhbDogbWF4LiB6dWxldHp0IGdlw6RuZGVydCIsICB0eXBlOiAibnVtIiwgIGRlZjogMTIgfSwK ICAgIHsga2V5OiAic2VhcmNoLmRvY0xpbWl0IiwgICAgIGxhYmVsOiAiU3VjaGU6IG1heC4gRG9r dW1lbnRlIiwgICAgICAgICAgICAgICAgdHlwZTogIm51bSIsICBkZWY6IDMwIH0sCiAgICB7IGtl eTogInNlYXJjaC5idWxsTGltaXQiLCAgICBsYWJlbDogIlN1Y2hlOiBtYXguIE1lbGR1bmdlbiIs ICAgICAgICAgICAgICAgIHR5cGU6ICJudW0iLCAgZGVmOiA2IH0sCiAgICB7IGtleTogInNlYXJj aC5jbWRMaW1pdCIsICAgICBsYWJlbDogIlN1Y2hlOiBtYXguIEJlZmVobGUiLCAgICAgICAgICAg ICAgICAgIHR5cGU6ICJudW0iLCAgZGVmOiA4IH0sCiAgICB7IGtleTogImhpZ2hsaWdodFB1bHNl IiwgICAgICBsYWJlbDogIldpY2h0aWctTWVsZHVuZ2VuIHB1bHNpZXJlbiIsICAgICAgICAgIHR5 cGU6ICJib29sIiwgZGVmOiB0cnVlIH0KICBdOwogIFAubW9kID0gZnVuY3Rpb24gKGtleSwgZmIp IHsKICAgIHZhciBtID0gKFAuY29udGVudCAmJiBQLmNvbnRlbnQuc2V0dGluZ3MgJiYgUC5jb250 ZW50LnNldHRpbmdzLnVpICYmIFAuY29udGVudC5zZXR0aW5ncy51aS5tb2R1bGVzKSB8fCB7fTsK ICAgIGlmIChtW2tleV0gIT0gbnVsbCAmJiBtW2tleV0gIT09ICIiKSB7CiAgICAgIGZvciAodmFy IGogPSAwOyBqIDwgUC5NT0RVTEVfVkFSUy5sZW5ndGg7IGorKykgaWYgKFAuTU9EVUxFX1ZBUlNb al0ua2V5ID09PSBrZXkpIHsKICAgICAgICByZXR1cm4gUC5NT0RVTEVfVkFSU1tqXS50eXBlID09 PSAibnVtIiA/IChwYXJzZUZsb2F0KG1ba2V5XSkgfHwgUC5NT0RVTEVfVkFSU1tqXS5kZWYpIDog KG1ba2V5XSA9PT0gdHJ1ZSB8fCBtW2tleV0gPT09ICJ0cnVlIik7CiAgICAgIH0KICAgICAgcmV0 dXJuIG1ba2V5XTsKICAgIH0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgUC5NT0RVTEVfVkFSUy5s ZW5ndGg7IGkrKykgaWYgKFAuTU9EVUxFX1ZBUlNbaV0ua2V5ID09PSBrZXkpIHJldHVybiBQLk1P RFVMRV9WQVJTW2ldLmRlZjsKICAgIHJldHVybiBmYjsKICB9OwoKICAvKiBSb3N0ZXItRGF0ZW5t b2RlbGwgbm9ybWFsaXNpZXJlbiAoUGhhc2UgNikuIFJ1ZWNrd2FlcnRza29tcGF0aWJlbDoKICAg ICBBbHQtRm9ybSB7IGdyb3VwLCBzZWN0aW9uczpbe3Jvd3M6W3tyb2xlLHN1YixuYW1lfV19XSB9 IC0+IG5ldWUgRm9ybQogICAgIHsgZ3JvdXBzOlsge2lkLGxhYmVsLHNlY3Rpb25zOlt7aWQsdGl0 bGU/LHJvd3M6W3tpZCxyb2xlLHN1YixuYW1lfV19XX0gXSwgZ3JvdXAgfS4KICAgICBCZXJlaXRz LW5ldWUgRGF0ZW4gd2VyZGVuIG51ciBkZWZlbnNpdiBtaXQgZmVobGVuZGVuIElEcyBlcmdhZW56 dC4gKi8KICBQLm5vcm1hbGl6ZVJvc3RlciA9IGZ1bmN0aW9uIChSKSB7CiAgICBSID0gUiB8fCB7 fTsKICAgIGZ1bmN0aW9uIHJvd3MoYXJyKSB7IHJldHVybiAoYXJyIHx8IFtdKS5tYXAoZnVuY3Rp b24gKHIpIHsgdmFyIG8gPSB7IGlkOiByLmlkIHx8IFAudWlkKCJyciIpLCByb2xlOiByLnJvbGUg fHwgIiIsIHN1Yjogci5zdWIgfHwgIiIsIG5hbWU6IHIubmFtZSB8fCAiIiB9OyBpZiAoci5hcHcp IG8uYXB3ID0gdHJ1ZTsgcmV0dXJuIG87IH0pOyB9CiAgICBmdW5jdGlvbiBzZWNzKGFycikgeyBy ZXR1cm4gKGFyciB8fCBbXSkubWFwKGZ1bmN0aW9uIChzKSB7IHJldHVybiB7IGlkOiBzLmlkIHx8 IFAudWlkKCJycyIpLCB0aXRsZTogcy50aXRsZSB8fCAiIiwgcm93czogcm93cyhzLnJvd3MpIH07 IH0pOyB9CiAgICBpZiAoIUFycmF5LmlzQXJyYXkoUi5ncm91cHMpIHx8ICFSLmdyb3Vwcy5sZW5n dGgpIHsKICAgICAgUiA9IHsgZ3JvdXA6IFIuZ3JvdXAgfHwgIiIsIGdyb3VwczogWyB7IGlkOiBQ LnVpZCgicmciKSwgbGFiZWw6IFIuZ3JvdXAgfHwgIkEiLCBzZWN0aW9uczogc2VjcyhSLnNlY3Rp b25zKSB9IF0gfTsKICAgIH0gZWxzZSB7CiAgICAgIFIuZ3JvdXBzLmZvckVhY2goZnVuY3Rpb24g KGcpIHsgaWYgKCFnLmlkKSBnLmlkID0gUC51aWQoInJnIik7IGcubGFiZWwgPSBnLmxhYmVsIHx8 ICIiOyBnLnNlY3Rpb25zID0gc2VjcyhnLnNlY3Rpb25zKTsgfSk7CiAgICB9CiAgICBpZiAoIVIu Z3JvdXAgJiYgUi5ncm91cHNbMF0pIFIuZ3JvdXAgPSBSLmdyb3Vwc1swXS5sYWJlbCB8fCAiIjsK ICAgIHJldHVybiBSOwogIH07CgogIFAubG9hZFN0YXRlID0gZnVuY3Rpb24gKCkgewogICAgUC5s YXN0VmlzaXQgPSBQLnJlYWQoUC5MUy52aXNpdCwgMCk7CiAgICBQLmNvbnRlbnRSZXYgPSB3aW5k b3cuUE9SVEFMX0NPTlRFTlRfUkVWIHx8IHsgbjogMCwgdHM6IG51bGwsIHVzZXI6IG51bGwgfTsK ICAgIFAubmF2UmV2ID0gd2luZG93LlBPUlRBTF9OQVZfUkVWIHx8IHsgbjogMCwgdHM6IG51bGws IHVzZXI6IG51bGwgfTsKICAgIC8vIE5hdmlnYXRpb24KICAgIHZhciBuYXZEcmFmdCA9IFAucmVh ZChQLkxTLm5hdiwgbnVsbCk7CiAgICBpZiAobmF2RHJhZnQgJiYgbmF2RHJhZnQuc2VjdGlvbnMp IHsgUC5OQVYgPSBuYXZEcmFmdDsgUC5oYXNOYXZEcmFmdCA9IHRydWU7IH0KICAgIGVsc2UgeyBQ Lk5BViA9IHdpbmRvdy5QT1JUQUxfTkFWIHx8IHsgc2VjdGlvbnM6IFtdIH07IFAuaGFzTmF2RHJh ZnQgPSBmYWxzZTsgfQogICAgLy8gSW5oYWx0CiAgICBQLlNFRUQgPSB7IGJ1bGxldGluczogd2lu ZG93LlBPUlRBTF9CVUxMRVRJTlMgfHwgW10sCiAgICAgICAgICAgICAgIHBhbmVsczogd2luZG93 LlBPUlRBTF9QQU5FTFMgfHwgW10sIHJvc3Rlcjogd2luZG93LlBPUlRBTF9ST1NURVIgfHwgeyBn cm91cDogIiIsIHNlY3Rpb25zOiBbXSB9LAogICAgICAgICAgICAgICBsaW5rY29sczogd2luZG93 LlBPUlRBTF9MSU5LQ09MUyB8fCBbXSwKICAgICAgICAgICAgICAga2VubndvZXJ0ZXI6IHdpbmRv dy5QT1JUQUxfS0VOTldPRVJURVIgfHwgW10sCiAgICAgICAgICAgICAgIHBydWVmdW5nOiB3aW5k b3cuUE9SVEFMX1BSVUVGVU5HIHx8IFtdLAogICAgICAgICAgICAgICBsYWdlOiB3aW5kb3cuUE9S VEFMX0xBR0UgfHwgeyB0ZXh0OiAiUmVnZWxiZXRyaWViIiwgbGV2ZWw6ICJvayIgfSwKICAgICAg ICAgICAgICAgc2V0dGluZ3M6IHdpbmRvdy5QT1JUQUxfU0VUVElOR1MgfHwgUC5kZWZhdWx0U2V0 dGluZ3MoKSB9OwogICAgdmFyIGRyYWZ0ID0gUC5yZWFkKFAuTFMuY29udGVudCwgbnVsbCk7CiAg ICBpZiAoZHJhZnQgJiYgZHJhZnQuYnVsbGV0aW5zKSB7IFAuY29udGVudCA9IGRyYWZ0OyBQLmhh c0RyYWZ0ID0gdHJ1ZTsgfQogICAgZWxzZSB7IFAuY29udGVudCA9IFAuY2xvbmUoUC5TRUVEKTsg UC5oYXNEcmFmdCA9IGZhbHNlOyB9CiAgICBQLmNvbnRlbnQucm9zdGVyID0gUC5ub3JtYWxpemVS b3N0ZXIoUC5jb250ZW50LnJvc3RlciB8fCBQLlNFRUQucm9zdGVyKTsKICAgIGlmICghQXJyYXku aXNBcnJheShQLmNvbnRlbnQubGlua2NvbHMpKSBQLmNvbnRlbnQubGlua2NvbHMgPSBQLmNsb25l KFAuU0VFRC5saW5rY29scyB8fCBbXSk7ICAgLy8gTGlua3NhbW1sdW5nZW4gKHJlY2h0cykKICAg IGlmICghQXJyYXkuaXNBcnJheShQLmNvbnRlbnQua2VubndvZXJ0ZXIpKSBQLmNvbnRlbnQua2Vu bndvZXJ0ZXIgPSBQLmNsb25lKFAuU0VFRC5rZW5ud29lcnRlciB8fCBbXSk7ICAgLy8gS2VubnfD tnJ0ZXIgKE1pdHRlKQogICAgaWYgKCFBcnJheS5pc0FycmF5KFAuY29udGVudC5wcnVlZnVuZykp IFAuY29udGVudC5wcnVlZnVuZyA9IFAuY2xvbmUoUC5TRUVELnBydWVmdW5nIHx8IFtdKTsgICAv LyBQcsO8Zi1MaXN0ZSAoTWlncmF0aW9ucy1MaW5rcykKICAgIGlmICghUC5jb250ZW50LmxhZ2Ug fHwgIVAuY29udGVudC5sYWdlLnRleHQpIFAuY29udGVudC5sYWdlID0gUC5jbG9uZShQLlNFRUQu bGFnZSk7CiAgICBpZiAoIVAuY29udGVudC5zZXR0aW5ncykgUC5jb250ZW50LnNldHRpbmdzID0g UC5jbG9uZShQLlNFRUQuc2V0dGluZ3MpOwogICAgUC5ub3JtYWxpemVTZXR0aW5ncyhQLmNvbnRl bnQuc2V0dGluZ3MpOyAgIC8vIG5ldWUgdWkuKi1GZWxkZXIgZGVmZW5zaXYgZXJnYWVuemVuIChi YWNrLWNvbXBhdCkKICB9OwoKICB2YXIgcGVyc2lzdFRpbWVyOwogIFAuc2NoZWR1bGVQZXJzaXN0 ID0gZnVuY3Rpb24gKCkgeyBjbGVhclRpbWVvdXQocGVyc2lzdFRpbWVyKTsgcGVyc2lzdFRpbWVy ID0gc2V0VGltZW91dChQLnBlcnNpc3QsIDQ1MCk7IH07CiAgLy8gUmVkYWt0ZXVyIChQLmxpdmUp OiBqZWRlIEFlbmRlcnVuZyB3aXJkIHNvZm9ydCBhdWYgZGllIEZyZWlnYWJlIGdlc2NocmllYmVu LgogIC8vIExlc2VyL0ZhbGxiYWNrIChmaWxlOi8vKTogQWVuZGVydW5nIGJsZWlidCBsb2thbGVy IEVudHd1cmYgKGxvY2FsU3RvcmFnZSkuCiAgUC5wZXJzaXN0ID0gZnVuY3Rpb24gKCkgeyBQLndy aXRlKFAuTFMuY29udGVudCwgUC5jb250ZW50KTsgUC5oYXNEcmFmdCA9IHRydWU7IGlmIChQLmxp dmUpIFAuc2NoZWR1bGVTZXJ2ZXJQdWJsaXNoKCJjb250ZW50Iik7IGlmIChQLnVwZGF0ZUJhbm5l cikgUC51cGRhdGVCYW5uZXIoKTsgUC5lbWl0KCJjb250ZW50OmNoYW5nZWQiLCBQLmNvbnRlbnQp OyB9OwogIFAucGVyc2lzdE5hdiA9IGZ1bmN0aW9uICgpIHsgUC53cml0ZShQLkxTLm5hdiwgUC5O QVYpOyBQLmhhc05hdkRyYWZ0ID0gdHJ1ZTsgaWYgKFAubGl2ZSkgUC5zY2hlZHVsZVNlcnZlclB1 Ymxpc2goIm5hdiIpOyBpZiAoUC51cGRhdGVCYW5uZXIpIFAudXBkYXRlQmFubmVyKCk7IFAuZW1p dCgibmF2OmNoYW5nZWQiLCBQLk5BVik7IH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRvYXN0ICovCiAgdmFyIHRvYXN0 VGltZXI7CiAgUC50b2FzdCA9IGZ1bmN0aW9uIChtc2csIHdhcm4pIHsKICAgIHZhciB0ID0gUC4k KCIjdG9hc3QiKTsgaWYgKCF0KSByZXR1cm47CiAgICB0LmNsYXNzTmFtZSA9ICJ0b2FzdCIgKyAo d2FybiA/ICIgd2FybiIgOiAiIik7IHQuaW5uZXJIVE1MID0gKHdhcm4gPyBQLmljKCJhbGVydCIp IDogUC5pYygiY2hlY2siKSkgKyAiPHNwYW4+PC9zcGFuPiI7CiAgICBQLiQoInNwYW4iLCB0KS50 ZXh0Q29udGVudCA9IG1zZzsgdC5jbGFzc0xpc3QuYWRkKCJzaG93Iik7CiAgICBjbGVhclRpbWVv dXQodG9hc3RUaW1lcik7IHRvYXN0VGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdC5j bGFzc0xpc3QucmVtb3ZlKCJzaG93Iik7IH0sIDMyMDApOwogIH07CgogIC8qIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRoZW1lIC8g TGF5b3V0IC8gTG9nbyAvIE1vYmlsZSAqLwogIFAuYXBwbHlUaGVtZSA9IGZ1bmN0aW9uICh0KSB7 CiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2V0QXR0cmlidXRlKCJkYXRhLXRoZW1lIiwg dCk7CiAgICB2YXIgYiA9IFAuJCgiI3RoZW1lLXRvZ2dsZSIpOyBpZiAoYikgeyBiLmlubmVySFRN TCA9IHQgPT09ICJkYXJrIiA/IFAuaWMoInN1biIpIDogUC5pYygibW9vbiIpOyBiLnRpdGxlID0g dCA9PT0gImRhcmsiID8gIkhlbGxlcyBEZXNpZ24iIDogIkR1bmtsZXMgRGVzaWduIjsgfQogICAg UC5hcHBseUJyYW5kQ29sb3JzKCk7ICAgLy8gTWFya2VuLVTDtm51bmcgbmFjaCBUaGVtZS1GbGlw IGVybmV1dCBzaWNoZXJuIChQaGFzZSA4KQogIH07CiAgUC50b2dnbGVUaGVtZSA9IGZ1bmN0aW9u ICgpIHsgdmFyIHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRh LXRoZW1lIikgPT09ICJkYXJrIiA/ICJsaWdodCIgOiAiZGFyayI7IFAud3JpdGUoUC5MUy50aGVt ZSwgdCk7IFAuYXBwbHlUaGVtZSh0KTsgfTsKICBQLmluaXRUaGVtZSA9IGZ1bmN0aW9uICgpIHsK ICAgIC8vIFJlaWhlbmZvbGdlOiBwZXJzb2VubGljaGUgV2FobCAobG9jYWxTdG9yYWdlKSA+IHBv cnRhbHdlaXRlciBTdGFuZGFyZCAoU2V0dGluZ3MpID4gT1MtUHJhZWZlcmVuei4KICAgIHZhciBz ID0gUC5yZWFkKFAuTFMudGhlbWUsIG51bGwpOwogICAgaWYgKHMgIT09ICJkYXJrIiAmJiBzICE9 PSAibGlnaHQiKSB7CiAgICAgIHZhciBkZWYgPSBQLmNvbnRlbnQgJiYgUC5jb250ZW50LnNldHRp bmdzICYmIFAuY29udGVudC5zZXR0aW5ncy5kZWZhdWx0VGhlbWU7CiAgICAgIGlmIChkZWYgPT09 ICJkYXJrIiB8fCBkZWYgPT09ICJsaWdodCIpIHMgPSBkZWY7CiAgICAgIGVsc2UgeyB0cnkgeyBz ID0gbWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBsaWdodCkiKS5tYXRjaGVzID8g ImxpZ2h0IiA6ICJkYXJrIjsgfSBjYXRjaCAoZSkgeyBzID0gImRhcmsiOyB9IH0KICAgIH0KICAg IFAuYXBwbHlUaGVtZShzKTsKICB9OwoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQb3J0YWwtRWluc3RlbGx1bmdlbiBhbndl bmRlbiAoUGhhc2UgNykgKi8KICAvLyBCcmFuZGluZyAoVGl0ZWwvTmFtZS9VbnRlcnRpdGVsL0Ry dWNrZnVzcykgYXVzIGRlbiBTZXR0aW5ncyBpbiBkaWUgU2VpdGUgc2NocmVpYmVuIOKAlCBwZXIg dGV4dENvbnRlbnQgKGtlaW4gSFRNTC1JbmplY3QpLgogIC8vIERhdGVuZ2V0cmllYmVuZSBDRC1N YXJrZSAoUGhhc2UgOCk6IGJyYW5kQ29sb3IvYnJhbmRDb2xvcjIgYWxzIENTUy1DdXN0b20tUHJv cGVydGllcwogIC8vIGF1ZiA6cm9vdC4gTGVlciAtPiBlbnRmZXJuZW4gLT4gZGllIENTUy1UaGVt ZS1Wb3JnYWJlIChEdW5rZWxibGF1KSBibGVpYnQuIElubGluZS1Qcm9wcwogIC8vIHNjaGxhZ2Vu IGRpZSBUaGVtZS1SZWdlbHNhZXR6ZSwgZGFoZXIgVm9ycmFuZyBvaG5lIGRlbiBEZWZhdWx0IHp1 IHVlYmVyc2NocmVpYmVuLgogIFAuYXBwbHlCcmFuZENvbG9ycyA9IGZ1bmN0aW9uICgpIHsKICAg IHZhciBiID0gKFAuY29udGVudCAmJiBQLmNvbnRlbnQuc2V0dGluZ3MgJiYgUC5jb250ZW50LnNl dHRpbmdzLmJyYW5kaW5nKSB8fCB7fTsKICAgIHZhciByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRF bGVtZW50LnN0eWxlOwogICAgaWYgKGIuYnJhbmRDb2xvcikgewogICAgICByb290LnNldFByb3Bl cnR5KCItLWJyYW5kIiwgYi5icmFuZENvbG9yKTsKICAgICAgcm9vdC5zZXRQcm9wZXJ0eSgiLS1i cmFuZC0yIiwgYi5icmFuZENvbG9yMiB8fCAoImNvbG9yLW1peChpbiBva2xjaCwgIiArIGIuYnJh bmRDb2xvciArICIgODIlLCBibGFjaykiKSk7CiAgICAgIC8vIEhlYWRlciBmb2xndCBkZXIgTWFy a2UgKG51ciB3ZW5uIGdlc2V0enQ7IHNvbnN0IENTUy1EZWZhdWx0LUdyYWRpZW50KS4KICAgICAg cm9vdC5zZXRQcm9wZXJ0eSgiLS1oZWFkZXItYmciLCAibGluZWFyLWdyYWRpZW50KDE4MGRlZywg Y29sb3ItbWl4KGluIG9rbGNoLCAiICsgYi5icmFuZENvbG9yICsgIiA0MiUsIGJsYWNrKSwgY29s b3ItbWl4KGluIG9rbGNoLCAiICsgYi5icmFuZENvbG9yICsgIiAyNiUsIGJsYWNrKSkiKTsKICAg IH0gZWxzZSB7CiAgICAgIHJvb3QucmVtb3ZlUHJvcGVydHkoIi0tYnJhbmQiKTsgcm9vdC5yZW1v dmVQcm9wZXJ0eSgiLS1icmFuZC0yIik7IHJvb3QucmVtb3ZlUHJvcGVydHkoIi0taGVhZGVyLWJn Iik7CiAgICB9CiAgfTsKICBQLmFwcGx5QnJhbmRpbmcgPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIg YiA9IChQLmNvbnRlbnQgJiYgUC5jb250ZW50LnNldHRpbmdzICYmIFAuY29udGVudC5zZXR0aW5n cy5icmFuZGluZykgfHwge307CiAgICBpZiAoYi5wb3J0YWxUaXRsZSkgZG9jdW1lbnQudGl0bGUg PSBiLnBvcnRhbFRpdGxlOwogICAgdmFyIGJuID0gUC4kKCIuYnJhbmQtbmFtZSBiIik7IGlmIChi biAmJiBiLmJyYW5kTmFtZSkgYm4udGV4dENvbnRlbnQgPSBiLmJyYW5kTmFtZTsKICAgIHZhciBi cyA9IFAuJCgiLmJyYW5kLW5hbWUgc3BhbiIpOyBpZiAoYnMgJiYgYi5icmFuZFN1YnRpdGxlKSBi cy50ZXh0Q29udGVudCA9IGIuYnJhbmRTdWJ0aXRsZTsKICAgIHZhciBwZiA9IFAuJCgiLnByaW50 LWZvb3QiKTsgaWYgKHBmICYmIGIucHJpbnRGb290ZXIpIHBmLnRleHRDb250ZW50ID0gYi5wcmlu dEZvb3RlcjsKICAgIFAuYXBwbHlCcmFuZENvbG9ycygpOwogICAgUC5hcHBseVVpVmFycygpOyAg IC8vIERhcnN0ZWxsdW5ncy1PdmVycmlkZXMgKFNjaHJpZnRncsO2w59lbi9CcmVpdGVuIOKApikK ICAgIFAuYXBwbHlPdmVycmlkZUNzcygpOyAgIC8vIERlc2lnbi1Ub2tlbnMgKEZhcmJlbiBqZSBU aGVtZSwgVHlwby9BYnN0YW5kL0Jld2VndW5nKSDigJQgUGhhc2UgMTMKICAgIFAuYXBwbHlEZW5z aXR5KCk7ICAvLyBEaWNodGUtUHJlc2V0IChrb21wYWt0L2tvbWZvcnRhYmVsKSDigJQgUGhhc2Ug MTIKICAgIFAuYXBwbHlIaWdobGlnaHQoKTsgLy8gTWVsZHVuZ3MtUHVscyBhbi9hdXMgKE1PRFVM RV9WQVJTLmhpZ2hsaWdodFB1bHNlKQogICAgUC5hcHBseVRleHRzKCk7ICAgIC8vIFVJLUJlc2No cmlmdHVuZ2VuIGF1cyBkZW4gU2V0dGluZ3MgKFBoYXNlIDEzKQogICAgUC5pbml0TG9nbygpOyAg IC8vIExvZ28tVVJMIGF1cyBkZW4gU2V0dGluZ3MgKFBoYXNlIDgpCiAgfTsKICAvLyBPcmNoZXN0 cmllcnQgZGFzIEFud2VuZGVuIGFsbGVyIFNldHRpbmdzIChpZGVtcG90ZW50LCBhdWNoIG5hY2gg ZGVtIFNwZWljaGVybiBhdWZydWZiYXIpLgogIFAuYXBwbHlTZXR0aW5ncyA9IGZ1bmN0aW9uICgp IHsgUC5hcHBseUJyYW5kaW5nKCk7IH07CiAgUC5hcHBseUNvbGxhcHNlID0gZnVuY3Rpb24gKCkg ewogICAgdmFyIGMgPSBQLnJlYWQoUC5MUy5jb2xsYXBzZSwgeyBsOiBmYWxzZSwgcjogZmFsc2Ug fSksIHNoID0gUC4kKCIjc2hlbGwiKTsKICAgIHNoLmNsYXNzTGlzdC50b2dnbGUoImNvbGxhcHNl LWwiLCAhIWMubCk7IHNoLmNsYXNzTGlzdC50b2dnbGUoImNvbGxhcHNlLXIiLCAhIWMucik7CiAg ICBQLiQoIiNjb2xsYXBzZS1sIikuY2xhc3NMaXN0LnRvZ2dsZSgiYXJtZWQiLCAhYy5sKTsgUC4k KCIjY29sbGFwc2UtciIpLmNsYXNzTGlzdC50b2dnbGUoImFybWVkIiwgIWMucik7CiAgfTsKICBQ LnRvZ2dsZUNvbGxhcHNlID0gZnVuY3Rpb24gKHNpZGUpIHsgdmFyIGMgPSBQLnJlYWQoUC5MUy5j b2xsYXBzZSwgeyBsOiBmYWxzZSwgcjogZmFsc2UgfSk7IGNbc2lkZV0gPSAhY1tzaWRlXTsgUC53 cml0ZShQLkxTLmNvbGxhcHNlLCBjKTsgUC5hcHBseUNvbGxhcHNlKCk7IH07CiAgUC5pbml0TG9n byA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciBzbG90ID0gUC4kKCIjbG9nby1zbG90Iik7IGlmICgh c2xvdCkgcmV0dXJuOwogICAgdmFyIGIgPSAoUC5jb250ZW50ICYmIFAuY29udGVudC5zZXR0aW5n cyAmJiBQLmNvbnRlbnQuc2V0dGluZ3MuYnJhbmRpbmcpIHx8IHt9OwogICAgdmFyIHNyYyA9IGIu bG9nb1VybCB8fCAiYXNzZXRzL2ltZy9wb2xpemVpc3Rlcm4ucG5nIjsgICAvLyBQZmFkIE9ERVIg ZGF0YS1VUkkgKGZpbGU6Ly8tdGF1Z2xpY2gpCiAgICBzbG90LmNsYXNzTGlzdC5hZGQoImZpbGxl ZCIpOwogICAgdmFyIGltZyA9IFAuJCgiaW1nIiwgc2xvdCk7IGlmICghaW1nKSB7IHNsb3QuaW5u ZXJIVE1MID0gJzxpbWcgYWx0PSIiPic7IGltZyA9IFAuJCgiaW1nIiwgc2xvdCk7IH0KICAgIGlt Zy5hbHQgPSBiLmJyYW5kTmFtZSB8fCAiUG9ydGFsIFVuaW9uIjsKICAgIGlmIChpbWcuZ2V0QXR0 cmlidXRlKCJzcmMiKSAhPT0gc3JjKSBpbWcuc3JjID0gc3JjOwogIH07CiAgUC5jbG9zZU1vYmls ZSA9IGZ1bmN0aW9uICgpIHsgUC4kKCIucmFpbC1sIikuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIp OyBQLiQoIi5yYWlsLXIiKS5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIik7IHZhciBiID0gUC4kKCIj bW9iaWxlLWJnIik7IGlmIChiKSBiLnJlbW92ZSgpOyB9OwogIFAub3BlblJhaWwgPSBmdW5jdGlv biAoc2VsKSB7IFAuY2xvc2VNb2JpbGUoKTsgUC4kKHNlbCkuY2xhc3NMaXN0LmFkZCgib3BlbiIp OyBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFAuZWwoImRpdiIsIHsgY2xhc3M6ICJtb2JpbGUt YmciLCBpZDogIm1vYmlsZS1iZyIsIG9uY2xpY2s6IFAuY2xvc2VNb2JpbGUgfSkpOyB9OwoKICAv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSBMYWdlLVN0YXR1cyAoS29wZnplaWxlKSAqLwogIFAucmVuZGVyTGFnZSA9IGZ1bmN0aW9u ICgpIHsKICAgIHZhciBwaWxsID0gUC4kKCIjbGFnZSIpOyBpZiAoIXBpbGwpIHJldHVybjsKICAg IHZhciBsID0gKFAuY29udGVudCAmJiBQLmNvbnRlbnQubGFnZSkgfHwgeyB0ZXh0OiAiUmVnZWxi ZXRyaWViIiwgbGV2ZWw6ICJvayIgfTsKICAgIHBpbGwuY2xhc3NOYW1lID0gImxhZ2UtcGlsbCBo aWRlLXNtIiArIChsLmxldmVsID09PSAiYWxlcnQiID8gIiBhbGVydCIgOiAiIikgKyAoUC5saXZl ID8gIiBlZGl0YWJsZSIgOiAiIik7CiAgICBwaWxsLnRpdGxlID0gUC5saXZlID8gIkxhZ2Ugw6Ru ZGVybiAoa2xpY2tlbikiIDogIiI7CiAgICBwaWxsLmlubmVySFRNTCA9ICc8c3BhbiBjbGFzcz0i ZG90Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImxibC1rIj48L3NwYW4+PHNwYW4gY2xhc3M9ImxhZ2Ut dHh0Ij48L3NwYW4+JzsKICAgIFAuJCgiLmxibC1rIiwgcGlsbCkudGV4dENvbnRlbnQgPSBQLnQo ImxhZ2UubGFiZWwiKTsKICAgIFAuJCgiLmxhZ2UtdHh0IiwgcGlsbCkudGV4dENvbnRlbnQgPSBs LnRleHQ7CiAgfTsKICBmdW5jdGlvbiBzZXRMYWdlKHRleHQsIGxldmVsKSB7CiAgICB0ZXh0ID0g KHRleHQgfHwgIiIpLnRyaW0oKSB8fCAiUmVnZWxiZXRyaWViIjsKICAgIGlmIChsZXZlbCAhPT0g Im9rIiAmJiBsZXZlbCAhPT0gImFsZXJ0IikgbGV2ZWwgPSAvXnJlZ2VsYmV0cmllYiQvaS50ZXN0 KHRleHQpID8gIm9rIiA6ICJhbGVydCI7CiAgICBQLmNvbnRlbnQubGFnZSA9IHsgdGV4dDogdGV4 dCwgbGV2ZWw6IGxldmVsIH07CiAgICBQLnBlcnNpc3QoKTsgUC5yZW5kZXJMYWdlKCk7CiAgICBQ LnRvYXN0KFAubGl2ZSA/ICJMYWdlIGdlc2V0enQgJiB2ZXLDtmZmZW50bGljaHQ6ICIgKyB0ZXh0 IDogIkxhZ2UgZ2VzZXR6dDogIiArIHRleHQpOwogIH0KICAvLyBMYWdlIHNldHplbiB1ZWJlciBl aW5lbiBWb3JsYWdlbi1QaWNrZXIgKFByZXNldHMgYXVzIGRlbiBTZXR0aW5ncykgKyBGcmVpdGV4 dC4KICBQLmVkaXRMYWdlID0gZnVuY3Rpb24gKCkgewogICAgaWYgKCFQLmxpdmUpIHJldHVybjsK ICAgIHZhciBlbCA9IFAuZWw7CiAgICB2YXIgY3VyID0gKFAuY29udGVudC5sYWdlICYmIFAuY29u dGVudC5sYWdlLnRleHQpIHx8ICJSZWdlbGJldHJpZWIiOwogICAgdmFyIHByZXNldHMgPSAoUC5j b250ZW50LnNldHRpbmdzICYmIFAuY29udGVudC5zZXR0aW5ncy5sYWdlUHJlc2V0cykgfHwgW107 CiAgICB2YXIgaW5wOwogICAgdmFyIG0gPSBQLm1vZGFsKHsKICAgICAgdGl0bGU6ICJMYWdlIHNl dHplbiIsIGljb246ICJhbGVydCIsIHNpemU6ICJzbSIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uICho b3N0KSB7CiAgICAgICAgdmFyIGJvZHkgPSBlbCgiZGl2IiwgeyBjbGFzczogImxhZ2UtcGljayIg fSk7CiAgICAgICAgaWYgKHByZXNldHMubGVuZ3RoKSB7CiAgICAgICAgICBib2R5LmFwcGVuZENo aWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiY29sbGFiLXNlYy1oIiwgdGV4dDogIlZvcmxhZ2VuIiB9 KSk7CiAgICAgICAgICB2YXIgY2hpcHMgPSBlbCgiZGl2IiwgeyBjbGFzczogImxhZ2UtY2hpcHMi IH0pOwogICAgICAgICAgcHJlc2V0cy5mb3JFYWNoKGZ1bmN0aW9uIChwKSB7CiAgICAgICAgICAg IGNoaXBzLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibGFnZS1jaGlwICIgKyAo cC5sZXZlbCA9PT0gImFsZXJ0IiA/ICJhbGVydCIgOiAib2siKSwgdGV4dDogcC50ZXh0LAogICAg ICAgICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgbS5jbG9zZSgpOyBzZXRMYWdlKHAudGV4 dCwgcC5sZXZlbCk7IH0gfSkpOwogICAgICAgICAgfSk7CiAgICAgICAgICBib2R5LmFwcGVuZENo aWxkKGNoaXBzKTsKICAgICAgICB9CiAgICAgICAgYm9keS5hcHBlbmRDaGlsZChlbCgiZGl2Iiwg eyBjbGFzczogImNvbGxhYi1zZWMtaCIsIHRleHQ6ICJGcmVpdGV4dCIgfSkpOwogICAgICAgIGlu cCA9IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCBjbGFzczogImxhZ2UtZnJlZSIsIHZhbHVl OiBjdXIsICJhcmlhLWxhYmVsIjogIkxhZ2UtVGV4dCIgfSk7CiAgICAgICAgYm9keS5hcHBlbmRD aGlsZChpbnApOwogICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQoYm9keSk7CiAgICAgIH0sCiAgICAg IGFjdGlvbnM6IFsKICAgICAgICB7IGxhYmVsOiAiQWJicmVjaGVuIiwga2luZDogImdob3N0IiB9 LAogICAgICAgIHsgbGFiZWw6ICJTZXR6ZW4iLCBraW5kOiAicHJpbWFyeSIsIG9uQ2xpY2s6IGZ1 bmN0aW9uICgpIHsgc2V0TGFnZShpbnAudmFsdWUpOyB9IH0KICAgICAgXSwKICAgICAgb25PcGVu OiBmdW5jdGlvbiAoKSB7IGlmIChpbnApIHsgdHJ5IHsgaW5wLmZvY3VzKCk7IGlucC5zZWxlY3Qo KTsgfSBjYXRjaCAoZSkge30gfSB9CiAgICB9KTsKICB9OwoKICAvKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZW5kZXItT3JjaGVz dHJpZXJ1bmcgKi8KICBQLnJlbmRlckFsbCA9IGZ1bmN0aW9uICgpIHsgUC5yZW5kZXJMYWdlKCk7 IFAucmVuZGVyU2lkZWJhcigpOyBQLnJlbmRlckZlZWQoKTsgUC5yZW5kZXJQYW5lbHMoKTsgaWYg KFAudXBkYXRlQmFubmVyKSBQLnVwZGF0ZUJhbm5lcigpOyBQLmVtaXQoInJlbmRlcmVkIik7IH07 Cgp9KSh3aW5kb3cuUCk7Cg== ### FILE: assets/js/core/datapflege.js | 3528 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZGF0YXBmbGVnZS5qcwogICBFZGl0 LU1vZHVzLCBWZXLDtmZmZW50bGljaGVuIChkYXRhLWNvbnRlbnQuanMgKyBkYXRhLW5hdi5qcyks IEltcG9ydCwKICAgRW50d3VyZiB2ZXJ3ZXJmZW4uICBQdWJsaXNoLURhdGVpLU1vZGVsbCBlcnNl dHp0IFNlcnZlci9EQi4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ug c3RyaWN0IjsKICB2YXIgJCA9IFAuJDsKCiAgUC50b2dnbGVFZGl0ID0gZnVuY3Rpb24gKCkgewog ICAgdmFyIG9uID0gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJlZGl0aW5nIik7CiAg ICAkKCIjZWRpdC10b2dnbGUiKS5jbGFzc0xpc3QudG9nZ2xlKCJhcm1lZCIsIG9uKTsKICAgIFAu dXBkYXRlQmFubmVyKCk7CiAgICBpZiAob24gJiYgISQoIi5jZW50ZXIiKS5jbGFzc0xpc3QuY29u dGFpbnMoImRvYyIpKSBQLnRvYXN0KCJEYXRlbnBmbGVnZSBha3RpdiDigJQgTWVsZHVuZ2VuLCBB cnRpa2VsICYgTGlua3MgYmVhcmJlaXRiYXIuIik7CiAgfTsKICBQLnVwZGF0ZUJhbm5lciA9IGZ1 bmN0aW9uICgpIHsKICAgIHZhciBkaSA9ICQoIiNkcmFmdC1pbmZvIik7IGlmICghZGkpIHJldHVy bjsKICAgIHZhciBwdWIgPSAkKCIjYnRuLXB1Ymxpc2giKTsKICAgIGlmIChQLmxpdmUpIHsKICAg ICAgdmFyIG1hcCA9IHsKICAgICAgICBpZGxlOiAgICJCZXJlaXQg4oCUIGplZGUgw4RuZGVydW5n IHdpcmQgc29mb3J0IGbDvHIgYWxsZSB2ZXLDtmZmZW50bGljaHQuIiwKICAgICAgICBzYXZpbmc6 ICJTcGVpY2hlcmUgYXVmIGRpZSBGcmVpZ2FiZeKApiIsCiAgICAgICAgb2s6ICAgICAiR2VzcGVp Y2hlcnQgJiB2ZXLDtmZmZW50bGljaHQg4oCUIGFsbGUgc2VoZW4gZXMgYmVpbSBuw6RjaHN0ZW4g TGFkZW4uIiwKICAgICAgICBlcnJvcjogICJGRUhMRVIgYmVpbSBTY2hyZWliZW4gYXVmIGRpZSBG cmVpZ2FiZSDigJQgw4RuZGVydW5nIGlzdCBudXIgbG9rYWwhIgogICAgICB9OwogICAgICB2YXIg cmwgPSB7IHJlYWRlcjogIkxlc2VyIiwgcmVkYWt0ZXVyOiAiUmVkYWt0ZXVyIiwgYWRtaW46ICJB ZG1pbiIgfVtQLnJvbGVdIHx8IFAucm9sZTsKICAgICAgdmFyIHdobyA9IFAudXNlck5hbWUgfHwg UC51c2VyOwogICAgICBkaS50ZXh0Q29udGVudCA9ICh3aG8gPyAoIkFuZ2VtZWxkZXQ6ICIgKyB3 aG8gKyAiICgiICsgcmwgKyAiKSAgwrcgICIpIDogIiIpICsgKG1hcFtQLnB1YlN0YXRlXSB8fCBt YXAuaWRsZSk7CiAgICAgIGlmIChwdWIpIHB1Yi5jbGFzc0xpc3QudG9nZ2xlKCJob3QiLCBQLnB1 YlN0YXRlID09PSAiZXJyb3IiKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIGJpdHMgPSBb XTsKICAgIGlmIChQLmhhc0RyYWZ0KSBiaXRzLnB1c2goIkluaGFsdHMtRW50d3VyZiIpOwogICAg aWYgKFAuaGFzTmF2RHJhZnQpIGJpdHMucHVzaCgiTmF2aWdhdGlvbnMtRW50d3VyZiIpOwogICAg ZGkudGV4dENvbnRlbnQgPSBiaXRzLmxlbmd0aCA/ICgiTG9rYWxlciBFbnR3dXJmICgiICsgYml0 cy5qb2luKCIgKyAiKSArICIpIOKAlCBub2NoIG5pY2h0IHZlcsO2ZmZlbnRsaWNodC4iKSA6ICJL ZWluZSBsb2thbGVuIMOEbmRlcnVuZ2VuLiI7CiAgICBpZiAocHViKSBwdWIuY2xhc3NMaXN0LnRv Z2dsZSgiaG90IiwgUC5oYXNEcmFmdCB8fCBQLmhhc05hdkRyYWZ0KTsKICB9OwoKICAvLyBTaWNo ZXJlIEVpbmJldHR1bmcgaW4gPHNjcmlwdD4tQmxvZWNrZTogemVudHJhbGUgUXVlbGxlIFAuanNT YWZlIChjb3JlLmpzKS4KICB2YXIganNTYWZlID0gUC5qc1NhZmU7CgogIC8vIERhdGVpLUluaGFs dGUgZXJ6ZXVnZW4g4oCUIGlkZW50aXNjaGVzIEZvcm1hdCB3aWUgZGF0YS1jb250ZW50LmpzL2Rh dGEtbmF2LmpzLgogIFAuYnVpbGRDb250ZW50RmlsZSA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciBv dXQgPSBQLmNsb25lKFAuY29udGVudCk7CiAgICB2YXIgcmV2ID0gUC5jb250ZW50UmV2ID0gUC5u ZXh0UmV2KFAuY29udGVudFJldik7ICAgLy8gVmVyc2lvbnMtU3RlbXBlbCBob2NoemFlaGxlbgog ICAgcmV0dXJuIGpzU2FmZSgiLyogUE9SVEFMIFVOSU9OIOKAlCBkYXRhLWNvbnRlbnQuanMgwrcg dmVyw7ZmZmVudGxpY2h0ICIgKyBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCJkZS1ERSIpICsg IiAqL1xuIiArCiAgICAgICJ3aW5kb3cuUE9SVEFMX0JVTExFVElOUyA9ICIgKyBKU09OLnN0cmlu Z2lmeShvdXQuYnVsbGV0aW5zLCBudWxsLCAyKSArICI7XG5cbiIgKwogICAgICAid2luZG93LlBP UlRBTF9QQU5FTFMgPSAiICsgSlNPTi5zdHJpbmdpZnkob3V0LnBhbmVscywgbnVsbCwgMikgKyAi O1xuXG4iICsKICAgICAgIndpbmRvdy5QT1JUQUxfUk9TVEVSID0gIiArIEpTT04uc3RyaW5naWZ5 KG91dC5yb3N0ZXIsIG51bGwsIDIpICsgIjtcblxuIiArCiAgICAgICJ3aW5kb3cuUE9SVEFMX0xJ TktDT0xTID0gIiArIEpTT04uc3RyaW5naWZ5KG91dC5saW5rY29scyB8fCBbXSwgbnVsbCwgMikg KyAiO1xuXG4iICsKICAgICAgIndpbmRvdy5QT1JUQUxfS0VOTldPRVJURVIgPSAiICsgSlNPTi5z dHJpbmdpZnkob3V0Lmtlbm53b2VydGVyIHx8IFtdLCBudWxsLCAyKSArICI7XG5cbiIgKwogICAg ICAid2luZG93LlBPUlRBTF9QUlVFRlVORyA9ICIgKyBKU09OLnN0cmluZ2lmeShvdXQucHJ1ZWZ1 bmcgfHwgW10sIG51bGwsIDIpICsgIjtcblxuIiArCiAgICAgICJ3aW5kb3cuUE9SVEFMX0xBR0Ug PSAiICsgSlNPTi5zdHJpbmdpZnkob3V0LmxhZ2UgfHwgeyB0ZXh0OiAiUmVnZWxiZXRyaWViIiwg bGV2ZWw6ICJvayIgfSwgbnVsbCwgMikgKyAiO1xuXG4iICsKICAgICAgIndpbmRvdy5QT1JUQUxf U0VUVElOR1MgPSAiICsgSlNPTi5zdHJpbmdpZnkob3V0LnNldHRpbmdzIHx8IFAuZGVmYXVsdFNl dHRpbmdzKCksIG51bGwsIDIpICsgIjtcblxuIiArCiAgICAgICJ3aW5kb3cuUE9SVEFMX0NPTlRF TlRfUkVWID0gIiArIEpTT04uc3RyaW5naWZ5KHJldikgKyAiO1xuIik7CiAgfTsKICBQLmJ1aWxk TmF2RmlsZSA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciByZXYgPSBQLm5hdlJldiA9IFAubmV4dFJl dihQLm5hdlJldik7ICAgICAgICAgICAgLy8gVmVyc2lvbnMtU3RlbXBlbCBob2NoemFlaGxlbgog ICAgcmV0dXJuIGpzU2FmZSgiLyogUE9SVEFMIFVOSU9OIOKAlCBkYXRhLW5hdi5qcyDCtyB2ZXLD tmZmZW50bGljaHQgIiArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoImRlLURFIikgKyAiICov XG4iICsKICAgICAgIndpbmRvdy5QT1JUQUxfTkFWID0gIiArIEpTT04uc3RyaW5naWZ5KFAuTkFW LCBudWxsLCAyKSArICI7XG5cbiIgKwogICAgICAid2luZG93LlBPUlRBTF9OQVZfUkVWID0gIiAr IEpTT04uc3RyaW5naWZ5KHJldikgKyAiO1xuIik7CiAgfTsKCn0pKHdpbmRvdy5QKTsK ### FILE: assets/js/core/main.js | 9145 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgbWFpbi5qcwogICBJbml0aWFsaXNp ZXJ1bmc6IGzDpGR0IFN0YXRlLCByZW5kZXJ0IGFsbGVzLCB2ZXJkcmFodGV0IGFsbGUgRXJlaWdu aXNzZS4KICAgV2lyZCBhbHMgTEVUWlRFUyBTY3JpcHQgZ2VsYWRlbiAobmFjaCBjb3JlICsgYWxs ZW4gUC4qLU1vZHVsZW4pLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKGZ1bmN0aW9uIChQKSB7CiAgInVz ZSBzdHJpY3QiOwogIHZhciAkID0gUC4kOwoKICAvKiBBZG1pbi1IdWI6IGVpbiBNb2RhbCBtaXQg S2FjaGVsbiB6dSBkZW4gdmllciBBZG1pbi1XZXJremV1Z2VuIChudXIgQWRtaW4gc2ljaHRiYXIp LgogICAgIEVyc2V0enQgZGllIHZpZXIgZWluemVsbmVuIFRvcGJhci1LbsO2cGZlOyBydWZ0IGRp ZXNlbGJlbiBQLm9wZW4qLUZ1bmt0aW9uZW4gYXVmLiAqLwogIFAub3BlbkFkbWluSHViID0gZnVu Y3Rpb24gKCkgewogICAgdmFyIFRJTEVTID0gWwogICAgICB7IGljOiAiY2xvY2siLCBsYWJlbDog IlZlcnNpb25lbiAmIFdpZWRlcmhlcnN0ZWxsZW4iLCBkZXNjOiAiRnLDvGhlcmUgU3TDpG5kZSBh bnNlaGVuIHVuZCB6dXLDvGNraG9sZW4uIiwgZm46IFAub3Blbkhpc3RvcnkgfSwKICAgICAgeyBp YzogImdyaWQiLCAgbGFiZWw6ICJQb3J0YWwtRWluc3RlbGx1bmdlbiIsICAgICAgICAgZGVzYzog IkJyYW5kaW5nLCBUaGVtZSwgTWFya2VuZmFyYmUsIERhcnN0ZWxsdW5nLiIsIGZuOiBQLm9wZW5T ZXR0aW5ncyB9LAogICAgICB7IGljOiAidXNlciIsICBsYWJlbDogIlJlZGFrdGV1cmUgJiBBZG1p bnMiLCAgICAgICAgICBkZXNjOiAiV2VyIGRhcmYgcGZsZWdlbiwgd2VyIGlzdCBBZG1pbi4iLCBm bjogUC5vcGVuUm9sZUFkbWluIH0sCiAgICAgIHsgaWM6ICJtZW51IiwgIGxhYmVsOiAiTmF2aWdh dGlvbiBiZWFyYmVpdGVuIiwgICAgICAgIGRlc2M6ICJTdHJ1a3R1ciBkZXIgbGlua2VuIE5hdmln YXRpb25zc3BhbHRlLiIsIGZuOiBQLm9wZW5OYXZFZGl0b3IgfSwKICAgICAgeyBpYzogImxpbmsi LCAgbGFiZWw6ICJMaW5rLVByw7xmdW5nIiwgICAgICAgICAgICAgICAgIGRlc2M6ICJGZWhsZW5k ZSBEYXRlaS1MaW5rcyBlcmtlbm5lbiAmIGF1Zmxpc3Rlbi4iLCBmbjogUC5vcGVuTGlua1JlcG9y dCB9CiAgICBdOwogICAgdmFyIG0gPSBQLm1vZGFsKHsKICAgICAgdGl0bGU6ICJBZG1pbi1XZXJr emV1Z2UiLCBpY29uOiAic2hpZWxkIiwgc2l6ZTogIm1kIiwKICAgICAgYm9keTogZnVuY3Rpb24g KGhvc3QpIHsKICAgICAgICB2YXIgZ3JpZCA9IFAuZWwoImRpdiIsIHsgY2xhc3M6ICJhZG1pbi1o dWIiIH0pOwogICAgICAgIFRJTEVTLmZvckVhY2goZnVuY3Rpb24gKHQpIHsKICAgICAgICAgIGdy aWQuYXBwZW5kQ2hpbGQoUC5lbCgiYnV0dG9uIiwgeyB0eXBlOiAiYnV0dG9uIiwgY2xhc3M6ICJh ZG1pbi10aWxlIiwKICAgICAgICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBtLmNsb3NlKCk7 IGlmICh0eXBlb2YgdC5mbiA9PT0gImZ1bmN0aW9uIikgdC5mbigpOyB9IH0sIFsKICAgICAgICAg ICAgUC5lbCgic3BhbiIsIHsgY2xhc3M6ICJhZG1pbi10aWxlLWljIiwgaHRtbDogUC5pYyh0Lmlj KSB9KSwKICAgICAgICAgICAgUC5lbCgic3BhbiIsIHsgY2xhc3M6ICJhZG1pbi10aWxlLXR4IiB9 LCBbCiAgICAgICAgICAgICAgUC5lbCgiYiIsIHsgdGV4dDogdC5sYWJlbCB9KSwKICAgICAgICAg ICAgICBQLmVsKCJzcGFuIiwgeyBjbGFzczogImFkbWluLXRpbGUtZCIsIHRleHQ6IHQuZGVzYyB9 KQogICAgICAgICAgICBdKQogICAgICAgICAgXSkpOwogICAgICAgIH0pOwogICAgICAgIGhvc3Qu YXBwZW5kQ2hpbGQoZ3JpZCk7CiAgICAgIH0sCiAgICAgIGFjdGlvbnM6IFsgeyBsYWJlbDogIlNj aGxpZcOfZW4iLCBraW5kOiAiZ2hvc3QiIH0gXQogICAgfSk7CiAgfTsKCiAgZnVuY3Rpb24gaW5p dCgpIHsKICAgIFAubG9hZFN0YXRlKCk7CiAgICBpZiAoUC5uYXZFbnN1cmVJZHMpIFAubmF2RW5z dXJlSWRzKCk7ICAgLy8gc3RhYmlsZSBJRHMgZnVlciBpbnRlcm5lIExpbmtzIC8gTWVocmZhY2gt RWluYmluZHVuZyAoUGhhc2UgOCkKICAgIGlmIChQLnNuYXBzaG90VGV4dHMpIFAuc25hcHNob3RU ZXh0cygpOyAgIC8vIERlZmF1bHQtVGV4dGUgKGRhdGEtdGtleSkgZXJmYXNzZW4sIEJFVk9SIE92 ZXJyaWRlcyBhbmdld2FuZHQgd2VyZGVuIChQaGFzZSAxMykKICAgIFAuYXBwbHlTZXR0aW5ncygp OyAgICAgICAgLy8gQnJhbmRpbmcgKFRpdGVsL05hbWUvRHJ1Y2tmdXNzKSBhdXMgUE9SVEFMX1NF VFRJTkdTIGFud2VuZGVuCiAgICBQLmluaXRUaGVtZSgpOwogICAgUC5pbml0TG9nbygpOwogICAg UC5hcHBseUNvbGxhcHNlKCk7CiAgICBQLmJ1aWxkSW5kZXgoKTsKICAgIFAucmVuZGVyQWxsKCk7 CiAgICBpZiAoUC5pbml0SW50ZXJuYWxMaW5rcykgUC5pbml0SW50ZXJuYWxMaW5rcygpOyAgIC8v IGludGVybmUgcG9ydGFsOi1MaW5rcyBhYmZhbmdlbiAoUGhhc2UgOSkKCiAgICAvKiBHbG9iYWxl IFN1Y2hlICovCiAgICB2YXIgaW5wID0gJCgiI3NlYXJjaC1pbnB1dCIpOwogICAgaW5wLmFkZEV2 ZW50TGlzdGVuZXIoImlucHV0IiwgZnVuY3Rpb24gKCkgeyBQLnJlbmRlclJlc3VsdHMoaW5wLnZh bHVlKTsgfSk7CiAgICBpbnAuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIGZ1bmN0aW9uIChl KSB7CiAgICAgIGlmIChlLmtleSA9PT0gIkFycm93RG93biIpIHsgZS5wcmV2ZW50RGVmYXVsdCgp OyBQLm1vdmVTZWwoMSk7IH0KICAgICAgZWxzZSBpZiAoZS5rZXkgPT09ICJBcnJvd1VwIikgeyBl LnByZXZlbnREZWZhdWx0KCk7IFAubW92ZVNlbCgtMSk7IH0KICAgICAgZWxzZSBpZiAoZS5rZXkg PT09ICJFbnRlciIpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBQLmFjdGl2YXRlU2VsKCk7IH0KICAg ICAgZWxzZSBpZiAoZS5rZXkgPT09ICJFc2NhcGUiKSB7IFAuY2xlYXJTZWFyY2goKTsgaW5wLmJs dXIoKTsgfQogICAgfSk7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwg ZnVuY3Rpb24gKGUpIHsKICAgICAgdmFyIHRhZyA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFn TmFtZSwgZWRpdGFibGUgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlzQ29udGVudEVkaXRhYmxl OwogICAgICBpZiAoKChlLmN0cmxLZXkgfHwgZS5tZXRhS2V5KSAmJiBlLmtleS50b0xvd2VyQ2Fz ZSgpID09PSAiayIpIHx8CiAgICAgICAgICAoZS5rZXkgPT09ICIvIiAmJiAhZWRpdGFibGUgJiYg IS9JTlBVVHxURVhUQVJFQS8udGVzdCh0YWcpKSkgeyBlLnByZXZlbnREZWZhdWx0KCk7IGlucC5m b2N1cygpOyBpbnAuc2VsZWN0KCk7IH0KICAgICAgZWxzZSBpZiAoZS5rZXkgPT09ICJFc2NhcGUi KSB7IFAuY2xlYXJTZWFyY2goKTsgUC5jbG9zZUFaKCk7IH0KICAgIH0pOwogICAgZG9jdW1lbnQu YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoZSkgeyBpZiAoIWUudGFyZ2V0LmNs b3Nlc3QoIi5zZWFyY2giKSkgJCgiI2NtZC1yZXN1bHRzIikuaGlkZGVuID0gdHJ1ZTsgfSk7Cgog ICAgLyogRmVlZCAqLwogICAgJCgiI2ZlZWQtYWRkIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si LCBmdW5jdGlvbiAoKSB7IFAub3BlbkJ1bGxldGluRGxnKG51bGwpOyB9KTsKCiAgICAvKiBUb3Bi YXIgKi8KICAgICQoIiN0aGVtZS10b2dnbGUiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIFAu dG9nZ2xlVGhlbWUpOwogICAgdmFyIGF6QnRuID0gJCgiI2F6LWJ0biIpOyBpZiAoYXpCdG4pIGF6 QnRuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgUC5vcGVuQVopOyAgIC8vIGFsdGVyIEtub3Bm IG9wdGlvbmFsIChkdXJjaCBSZWdpc3RlcmxlaXN0ZSBlcnNldHp0KQogICAgJCgiI2VkaXQtdG9n Z2xlIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBQLnRvZ2dsZUVkaXQpOwogICAgJCgiI2Nv bGxhcHNlLWwiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsgUC50b2dn bGVDb2xsYXBzZSgibCIpOyB9KTsKICAgICQoIiNjb2xsYXBzZS1yIikuYWRkRXZlbnRMaXN0ZW5l cigiY2xpY2siLCBmdW5jdGlvbiAoKSB7IFAudG9nZ2xlQ29sbGFwc2UoInIiKTsgfSk7CiAgICAk KCIjbWVudS1sIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7IFAub3Bl blJhaWwoIi5yYWlsLWwiKTsgfSk7CiAgICAkKCIjbWVudS1yIikuYWRkRXZlbnRMaXN0ZW5lcigi Y2xpY2siLCBmdW5jdGlvbiAoKSB7IFAub3BlblJhaWwoIi5yYWlsLXIiKTsgfSk7CgogICAgLyog QeKAk1ogKi8KICAgICQoIiNhei1jbG9zZSIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgUC5j bG9zZUFaKTsKICAgICQoIiNhei1iZyIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgUC5jbG9z ZUFaKTsKCiAgICAvKiBBZG1pbi1XZXJremV1Z2UgZ2Viw7xuZGVsdCAobnVyIEFkbWluIHNpY2h0 YmFyKTogZWluIEh1Yi1Lbm9wZiDDtmZmbmV0IGRhcyBLYWNoZWwtTW9kYWwuICovCiAgICB2YXIg YWggPSAkKCIjYWRtaW4taHViLWJ0biIpOyBpZiAoYWgpIGFoLmFkZEV2ZW50TGlzdGVuZXIoImNs aWNrIiwgZnVuY3Rpb24gKCkgeyBpZiAoUC5vcGVuQWRtaW5IdWIpIFAub3BlbkFkbWluSHViKCk7 IH0pOwoKICAgIC8qIERva3VtZW50LS9BcnRpa2VsYW5zaWNodCB6dXLDvGNrICsgQXJ0aWtlbCBi ZWFyYmVpdGVuICovCiAgICAkKCIjY3YtYmFjayIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg UC5jbG9zZURvYyk7CiAgICAkKCIjY3YtZWRpdCIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg ZnVuY3Rpb24gKCkgeyBpZiAoUC5jdXJBcnRpY2xlKSBQLm9wZW5BcnRpY2xlRGxnKFAuY3VyQXJ0 aWNsZSk7IH0pOwogICAgdmFyIHBiID0gJCgiI2N2LXBkZiIpOyBpZiAocGIpIHBiLmFkZEV2ZW50 TGlzdGVuZXIoImNsaWNrIiwgUC5jb3B5QXJ0aWNsZSk7ICAgLy8gRWluLUtsaWNrOiBJbmhhbHQr QmlsZGVyIGtvcGllcmVuCgogICAgLyogTGFnZS1TdGF0dXMgKG51ciBSZWRha3RldXIpIOKAlCBQ aWxsIG9wdGlvbmFsIChrYW5uIGF1c2dlYmxlbmRldCBzZWluKSAqLwogICAgdmFyIGxhZ2VFbCA9 ICQoIiNsYWdlIik7IGlmIChsYWdlRWwpIGxhZ2VFbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs IGZ1bmN0aW9uICgpIHsgaWYgKFAuZWRpdExhZ2UpIFAuZWRpdExhZ2UoKTsgfSk7CgogICAgLyog QnVsbGV0aW4tRGlhbG9nICovCiAgICAkKCIjYmYtcGluIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xp Y2siLCBQLnRvZ2dsZURsZ1Bpbik7CiAgICAkKCIjYmQtc2F2ZSIpLmFkZEV2ZW50TGlzdGVuZXIo ImNsaWNrIiwgUC5zYXZlQnVsbGV0aW4pOwogICAgJCgiI2JkLWNhbmNlbCIpLmFkZEV2ZW50TGlz dGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyAkKCIjYnVsbC1kbGciKS5jbG9zZSgpOyB9KTsK ICAgICQoIiNiZC14IikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7ICQo IiNidWxsLWRsZyIpLmNsb3NlKCk7IH0pOwogICAgJCgiI2JmLWRlbCIpLmFkZEV2ZW50TGlzdGVu ZXIoImNsaWNrIiwgUC5kZWxldGVCdWxsZXRpbik7CiAgICAkKCIjYnVsbC1kbGciKS5hZGRFdmVu dExpc3RlbmVyKCJjYW5jZWwiLCBmdW5jdGlvbiAoZSkgeyBlLnByZXZlbnREZWZhdWx0KCk7ICQo IiNidWxsLWRsZyIpLmNsb3NlKCk7IH0pOwoKICAgIC8qIEFydGlrZWwtRGlhbG9nICovCiAgICAk KCIjYXJ0LWFkZCIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyBQLm9w ZW5BcnRpY2xlRGxnKG51bGwpOyB9KTsKICAgICQoIiNhcnQtc2VjdGlvbiIpLmFkZEV2ZW50TGlz dGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uICgpIHsgZmlsbFBhcmVudE9uQ2hhbmdlKCk7IH0pOwog ICAgJCgiI2FydC1zYXZlIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBQLnNhdmVBcnRpY2xl KTsKICAgICQoIiNhcnQtY2FuY2VsIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlv biAoKSB7ICQoIiNhcnQtZGxnIikuY2xvc2UoKTsgfSk7CiAgICAkKCIjYWQteCIpLmFkZEV2ZW50 TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyAkKCIjYXJ0LWRsZyIpLmNsb3NlKCk7IH0p OwogICAgJCgiI2FydC1kZWwiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIFAuZGVsZXRlQXJ0 aWNsZSk7CiAgICAkKCIjYXJ0LWRsZyIpLmFkZEV2ZW50TGlzdGVuZXIoImNhbmNlbCIsIGZ1bmN0 aW9uIChlKSB7IGUucHJldmVudERlZmF1bHQoKTsgJCgiI2FydC1kbGciKS5jbG9zZSgpOyB9KTsK ICAgIC8vIFN0cmcrQi9JIGltIFdZU0lXWUcgbGF1ZmVuIG5hdGl2IMO8YmVyIGNvbnRlbnRlZGl0 YWJsZQoKICAgIC8qIEVtYmVkcyAoQmlsZC9QREYpIC0+IExpZ2h0Ym94LCBhdWNoIGluIGRlciBM ZXNlYW5zaWNodCAqLwogICAgUC5pbml0RW1iZWRzKCk7CgogICAgLyogUmVkYWt0ZXVyLSB2cy4g TGVzZXItTW9kdXMgYmVzdGltbWVuICovCiAgICBkZXRlY3RNb2RlKCk7CgogICAgLyogQmVzdWNo IG1lcmtlbiAoTkVVLUJhZGdlcykgKi8KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBQLndy aXRlKFAuTFMudmlzaXQsIERhdGUubm93KCkpOyB9LCAxNTAwKTsKICB9CiAgZnVuY3Rpb24gZmls bFBhcmVudE9uQ2hhbmdlKCkgeyBpZiAoUC5fZmlsbFBhcmVudCkgUC5fZmlsbFBhcmVudCgpOyB9 CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIFNjaHJlaWJyZWNodGUgbnVyIHVlYmVyIGRlbiBQb3dl clNoZWxsLVBmbGVnZS1IZWxmZXIgKGh0dHA6Ly8xMjcuMC4wLjEpLgogICAgIExlc2VyIG9lZmZu ZW4gZGFzIFBvcnRhbCBkaXJla3QgcGVyIGZpbGU6Ly8gLT4gbnVyIGxlc2VuLCBrZWluZSBQZmxl Z2UtVUkuCiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAgdmFyIFJPTEVfTEFCRUwgPSB7IHJlYWRlcjog Ikxlc2VyIiwgcmVkYWt0ZXVyOiAiUmVkYWt0ZXVyIiwgYWRtaW46ICJBZG1pbiIgfTsKICBmdW5j dGlvbiBhcHBseVJvbGVDbGFzcyhyb2xlKSB7CiAgICB2YXIgYiA9IGRvY3VtZW50LmJvZHk7CiAg ICBiLmNsYXNzTGlzdC5yZW1vdmUoInJvbGUtcmVhZGVyIiwgInJvbGUtcmVkYWt0ZXVyIiwgInJv bGUtYWRtaW4iKTsKICAgIGIuY2xhc3NMaXN0LmFkZCgicm9sZS0iICsgcm9sZSk7CiAgfQogIGZ1 bmN0aW9uIHNldFJlYWRlcigpIHsKICAgIFAucm9sZSA9ICJyZWFkZXIiOyBQLmxpdmUgPSBmYWxz ZTsgUC51c2VyID0gbnVsbDsgUC51c2VyTmFtZSA9IG51bGw7CiAgICBkb2N1bWVudC5ib2R5LmNs YXNzTGlzdC5hZGQoInJlYWRlciIpOwogICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3Zl KCJlZGl0aW5nIik7CiAgICBhcHBseVJvbGVDbGFzcygicmVhZGVyIik7CiAgICB2YXIgZXQgPSAk KCIjZWRpdC10b2dnbGUiKTsgaWYgKGV0KSBldC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAg dmFyIGZhID0gJCgiI2ZlZWQtYWRkIik7IGlmIChmYSkgZmEuc3R5bGUuZGlzcGxheSA9ICJub25l IjsKICB9CiAgLy8gcm9sZSA9ICJyZWRha3RldXIiIHwgImFkbWluIjsgdXNlciA9ICVVU0VSTkFN RSUsIG5hbWUgPSBBbnplaWdlbmFtZQogIGZ1bmN0aW9uIHNldEVkaXRvcihyb2xlLCB1c2VyLCBu YW1lKSB7CiAgICBQLnJvbGUgPSByb2xlOyBQLmxpdmUgPSB0cnVlOyBQLnVzZXIgPSB1c2VyIHx8 IG51bGw7IFAudXNlck5hbWUgPSBuYW1lIHx8IG51bGw7CiAgICBkb2N1bWVudC5ib2R5LmNsYXNz TGlzdC5yZW1vdmUoInJlYWRlciIpOwogICAgYXBwbHlSb2xlQ2xhc3Mocm9sZSk7CiAgICB2YXIg d2hvID0gUC51c2VyTmFtZSB8fCBQLnVzZXIgfHwgIiI7CiAgICB2YXIgZXQgPSAkKCIjZWRpdC10 b2dnbGUiKTsgaWYgKGV0KSB7IGV0LnN0eWxlLmRpc3BsYXkgPSAiIjsgZXQudGl0bGUgPSAiRGF0 ZW5wZmxlZ2UiICsgKHdobyA/ICIgKCIgKyB3aG8gKyAiIMK3ICIgKyBST0xFX0xBQkVMW3JvbGVd ICsgIikiIDogIiIpOyB9CiAgICB2YXIgZmEgPSAkKCIjZmVlZC1hZGQiKTsgaWYgKGZhKSBmYS5z dHlsZS5kaXNwbGF5ID0gIiI7CiAgICBpZiAoUC5sb2FkRWRpdG9yKSBQLmxvYWRFZGl0b3IoKTsg ICAgICAgLy8gVGlueU1DRSBpbSBIaW50ZXJncnVuZCB2b3JsYWRlbgogICAgaWYgKFAudXBkYXRl QmFubmVyKSBQLnVwZGF0ZUJhbm5lcigpOwogICAgaWYgKFAuaW5pdENvbGxhYikgUC5pbml0Q29s bGFiKCk7ICAgICAgIC8vIEF1dG9zYXZlL1ByYWVzZW56L0tvbmZsaWt0IChQaGFzZSA0KQogICAg UC50b2FzdCgiUGZsZWdlLU1vZHVzIGFrdGl2IiArICh3aG8gPyAiIOKAlCAiICsgd2hvIDogIiIp ICsgIiAoIiArIFJPTEVfTEFCRUxbcm9sZV0gKyAiKS4gw4RuZGVydW5nZW4gc2luZCBzb2ZvcnQg ZsO8ciBhbGxlIHNpY2h0YmFyLiIpOwogIH0KICBmdW5jdGlvbiBkZXRlY3RNb2RlKCkgewogICAg c2V0UmVhZGVyKCk7ICAgLy8gU3RhbmRhcmQ6IG51ciBsZXNlbgogICAgdmFyIGxvY2FsID0gbG9j YXRpb24ucHJvdG9jb2wgPT09ICJodHRwOiIgJiYgL14oMTI3XC4wXC4wXC4xfGxvY2FsaG9zdCkk Ly50ZXN0KGxvY2F0aW9uLmhvc3RuYW1lKTsKICAgIGlmICghbG9jYWwpIHJldHVybjsKICAgIGZl dGNoKCIvYXBpL3BpbmciKS50aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiByLmpzb24oKTsgfSkK ICAgICAgLnRoZW4oZnVuY3Rpb24gKGopIHsgaWYgKGogJiYgai5vayAmJiBqLnJvbGUgJiYgai5y b2xlICE9PSAicmVhZGVyIikgc2V0RWRpdG9yKGoucm9sZSwgai51c2VyLCBqLm5hbWUpOyB9KQog ICAgICAuY2F0Y2goZnVuY3Rpb24gKCkgeyAvKiBrZWluIEhlbGZlciBlcnJlaWNoYmFyIC0+IExl c2VyICovIH0pOwogIH0KCiAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJsb2FkaW5nIikg ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGluaXQpOwogIGVs c2UgaW5pdCgpOwp9KSh3aW5kb3cuUCk7Cg== ### FILE: assets/js/core/modal.js | 6320 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgY29yZS9tb2RhbC5qcwogICBFaW5l IGVpbmhlaXRsaWNoZSBNb2RhbC1Lb21wb25lbnRlIGF1ZiBIVE1MNS08ZGlhbG9nPi1CYXNpcy4g TG9lc3QgZGllCiAgIHp3ZWkgcGFyYWxsZWxlbiBEaWFsb2ctU3lzdGVtZSAoc3RhdGlzY2hlIDxk aWFsb2cgY2xhc3M9ImRsZyI+ICsKICAgZHluYW1pc2NoZSAuY29sbGFiLW92ZXJsYXkvLmNvbGxh Yi1kbGcpIHNjaHJpdHR3ZWlzZSBhYi4gTmF0aXZlcgogICBCYWNrZHJvcC9Fc2MvRm9rdXNmYWxs ZSDihpIgZmlsZTovLy10YXVnbGljaCwga2VpbiBGcmFtZXdvcmsuCgogICBQLm1vZGFsKHsKICAg ICB0aXRsZSwgaWNvbiwgICAgICAgICAgICAvLyBLb3BmIChpY29uID0gUC5pYy1LZXkpCiAgICAg Ym9keSwgICAgICAgICAgICAgICAgICAgLy8gRE9NLU5vZGUgT0RFUiAoaG9zdCk9PnZvaWQgQnVp bGRlcgogICAgIGFjdGlvbnMsICAgICAgICAgICAgICAgIC8vIFt7bGFiZWwsIGtpbmQ6InByaW1h cnkifCJnaG9zdCJ8ImRhbmdlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBp Y29uPywgb25DbGljayhhcGkpLT5mYWxzZSBow6RsdCBvZmZlbiwga2VlcE9wZW4sIGFsaWduOiJs ZWZ0In1dCiAgICAgc2l6ZSwgICAgICAgICAgICAgICAgICAgLy8gInNtInwibWQifCJsZyJ8Inhs IiAgKERlZmF1bHQgbWQpCiAgICAgb25PcGVuKGFwaSksIG9uQ2xvc2UoKSwKICAgICBkaXNtaXNz YWJsZSAgICAgICAgICAgICAvLyBCYWNrZHJvcC9Fc2Mgc2NobGllw590IChEZWZhdWx0IHRydWUp CiAgIH0pIC0+IHsgZWwsIGJvZHksIGNsb3NlKCksIHNldFRpdGxlKHQpIH0KCiAgIEzDpGR0IG5h Y2ggY29yZS5qcywgdm9yIG5hdi5qcyAoYWxsZSBNb2R1bGUgZMO8cmZlbiBQLm1vZGFsIG51dHpl bikuCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PSAqLwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAg dmFyIGVsID0gUC5lbCwgaWMgPSBQLmljOwoKICBQLm1vZGFsID0gZnVuY3Rpb24gKG9wdHMpIHsK ICAgIG9wdHMgPSBvcHRzIHx8IHt9OwogICAgdmFyIGRsZyA9IGVsKCJkaWFsb2ciLCB7IGNsYXNz OiAibW9kYWwgbW9kYWwtIiArIChvcHRzLnNpemUgfHwgIm1kIikgfSk7CiAgICB2YXIgY2FyZCA9 IGVsKCJkaXYiLCB7IGNsYXNzOiAibW9kYWwtY2FyZCIgfSk7CgogICAgdmFyIGFwaSA9IHsKICAg ICAgZWw6IGRsZywKICAgICAgY2xvc2U6IGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoYXBpLl9j bG9zZWQpIHJldHVybjsgYXBpLl9jbG9zZWQgPSB0cnVlOwogICAgICAgIGlmIChvcHRzLm9uQ2xv c2UpIHsgdHJ5IHsgb3B0cy5vbkNsb3NlKCk7IH0gY2F0Y2ggKGUpIHt9IH0KICAgICAgICB0cnkg eyBpZiAoZGxnLm9wZW4pIGRsZy5jbG9zZSgpOyB9IGNhdGNoIChlKSB7fQogICAgICAgIGlmIChk bGcucGFyZW50Tm9kZSkgZGxnLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZGxnKTsKICAgICAgfSwK ICAgICAgc2V0VGl0bGU6IGZ1bmN0aW9uICh0KSB7IHRpdGxlRWwudGV4dENvbnRlbnQgPSB0IHx8 ICIiOyB9CiAgICB9OwoKICAgIC8qIEtvcGY6IEljb24gwrcgVGl0ZWwgwrcgU2NobGllw59lbiAq LwogICAgdmFyIGhlYWQgPSBlbCgiZGl2IiwgeyBjbGFzczogIm1vZGFsLWhlYWQiIH0pOwogICAg aWYgKG9wdHMuaWNvbikgaGVhZC5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJtb2Rh bC1pY28iLCBodG1sOiBpYyhvcHRzLmljb24pIH0pKTsKICAgIHZhciB0aXRsZUVsID0gZWwoImgy IiwgeyBjbGFzczogIm1vZGFsLXRpdGxlIiwgdGV4dDogb3B0cy50aXRsZSB8fCAiIiB9KTsKICAg IGhlYWQuYXBwZW5kQ2hpbGQodGl0bGVFbCk7CiAgICBoZWFkLmFwcGVuZENoaWxkKGVsKCJidXR0 b24iLCB7IHR5cGU6ICJidXR0b24iLCBjbGFzczogIm1vZGFsLXgiLCB0aXRsZTogIlNjaGxpZcOf ZW4iLCAiYXJpYS1sYWJlbCI6ICJTY2hsaWXDn2VuIiwKICAgICAgaHRtbDogaWMoIngiKSwgb25j bGljazogZnVuY3Rpb24gKCkgeyBhcGkuY2xvc2UoKTsgfSB9KSk7CiAgICBjYXJkLmFwcGVuZENo aWxkKGhlYWQpOwoKICAgIC8qIEvDtnJwZXI6IEJ1aWxkZXItRnVua3Rpb24gT0RFUiBmZXJ0aWdl ciBLbm90ZW4gKi8KICAgIHZhciBib2R5ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJtb2RhbC1ib2R5 IiB9KTsKICAgIGlmICh0eXBlb2Ygb3B0cy5ib2R5ID09PSAiZnVuY3Rpb24iKSB7IHRyeSB7IG9w dHMuYm9keShib2R5KTsgfSBjYXRjaCAoZSkge30gfQogICAgZWxzZSBpZiAob3B0cy5ib2R5KSBi b2R5LmFwcGVuZENoaWxkKG9wdHMuYm9keSk7CiAgICBjYXJkLmFwcGVuZENoaWxkKGJvZHkpOwog ICAgYXBpLmJvZHkgPSBib2R5OwoKICAgIC8qIEZ1w586IEFrdGlvbmVuIChsaW5rcy1hdXNnZXJp Y2h0ZXRlIHp1ZXJzdCwgZGFubiBTcGFjZXIsIGRhbm4gcmVjaHRzKSAqLwogICAgaWYgKG9wdHMu YWN0aW9ucyAmJiBvcHRzLmFjdGlvbnMubGVuZ3RoKSB7CiAgICAgIHZhciBmb290ID0gZWwoImRp diIsIHsgY2xhc3M6ICJtb2RhbC1mb290IiB9KTsKICAgICAgdmFyIGxlZnRzID0gb3B0cy5hY3Rp b25zLmZpbHRlcihmdW5jdGlvbiAoYSkgeyByZXR1cm4gYS5hbGlnbiA9PT0gImxlZnQiOyB9KTsK ICAgICAgdmFyIHJpZ2h0cyA9IG9wdHMuYWN0aW9ucy5maWx0ZXIoZnVuY3Rpb24gKGEpIHsgcmV0 dXJuIGEuYWxpZ24gIT09ICJsZWZ0IjsgfSk7CiAgICAgIGZ1bmN0aW9uIG1rQnRuKGEpIHsKICAg ICAgICByZXR1cm4gZWwoImJ1dHRvbiIsIHsgdHlwZTogImJ1dHRvbiIsIGNsYXNzOiAiYnRuICIg KyAoYS5raW5kIHx8ICJnaG9zdCIpLAogICAgICAgICAgaHRtbDogKGEuaWNvbiA/IGljKGEuaWNv bikgKyAiICIgOiAiIikgKyBQLmVzY2FwZUh0bWwoYS5sYWJlbCB8fCAiIiksCiAgICAgICAgICBv bmNsaWNrOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciByID0gYS5vbkNsaWNrID8gYS5v bkNsaWNrKGFwaSkgOiB1bmRlZmluZWQ7ICAgICAvLyBvbkNsaWNrIGRhcmYgZmFsc2UgbGllZmVy biDihpIgb2ZmZW4gaGFsdGVuCiAgICAgICAgICAgIGlmICghYS5rZWVwT3BlbiAmJiByICE9PSBm YWxzZSkgYXBpLmNsb3NlKCk7CiAgICAgICAgICB9IH0pOwogICAgICB9CiAgICAgIGxlZnRzLmZv ckVhY2goZnVuY3Rpb24gKGEpIHsgZm9vdC5hcHBlbmRDaGlsZChta0J0bihhKSk7IH0pOwogICAg ICBmb290LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogIm1vZGFsLXNwYWNlciIgfSkp OwogICAgICByaWdodHMuZm9yRWFjaChmdW5jdGlvbiAoYSkgeyBmb290LmFwcGVuZENoaWxkKG1r QnRuKGEpKTsgfSk7CiAgICAgIGNhcmQuYXBwZW5kQ2hpbGQoZm9vdCk7CiAgICB9CgogICAgZGxn LmFwcGVuZENoaWxkKGNhcmQpOwoKICAgIC8qIEVzYyAoY2FuY2VsLUV2ZW50KSDihpIga29udHJv bGxpZXJ0IHNjaGxpZcOfZW4gKi8KICAgIGRsZy5hZGRFdmVudExpc3RlbmVyKCJjYW5jZWwiLCBm dW5jdGlvbiAoZSkgewogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGlmIChvcHRzLmRp c21pc3NhYmxlID09PSBmYWxzZSkgcmV0dXJuOwogICAgICBhcGkuY2xvc2UoKTsKICAgIH0pOwog ICAgLyogQmFja2Ryb3AtS2xpY2s6IHRyaWZmdCBkaWUgPGRpYWxvZz4gc2VsYnN0IChhdcOfZXJo YWxiIGRlciAubW9kYWwtY2FyZCkgKi8KICAgIGlmIChvcHRzLmRpc21pc3NhYmxlICE9PSBmYWxz ZSkgewogICAgICBkbGcuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgZnVuY3Rpb24gKGUp IHsgYXBpLl9kb3duT25CYWNrZHJvcCA9IChlLnRhcmdldCA9PT0gZGxnKTsgfSk7CiAgICAgIGRs Zy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uIChlKSB7IGlmIChlLnRhcmdldCA9 PT0gZGxnICYmIGFwaS5fZG93bk9uQmFja2Ryb3ApIGFwaS5jbG9zZSgpOyB9KTsKICAgIH0KCiAg ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRsZyk7CiAgICB0cnkgeyBkbGcuc2hvd01vZGFs KCk7IH0gY2F0Y2ggKGUpIHsgZGxnLnNldEF0dHJpYnV0ZSgib3BlbiIsICIiKTsgfQogICAgaWYg KG9wdHMub25PcGVuKSB7IHRyeSB7IG9wdHMub25PcGVuKGFwaSk7IH0gY2F0Y2ggKGUpIHt9IH0K CiAgICAvKiBFcnN0ZXMgc2lubnZvbGxlcyBGZWxkIGZva3Vzc2llcmVuIChuaWNodCBkZW4gU2No bGllw59lbi1Lbm9wZikgKi8KICAgIHZhciBmaXJzdCA9IGNhcmQucXVlcnlTZWxlY3RvcigiaW5w dXQ6bm90KFt0eXBlPWhpZGRlbl0pLHRleHRhcmVhLHNlbGVjdCxbY29udGVudGVkaXRhYmxlXSIp OwogICAgaWYgKGZpcnN0KSB7IHRyeSB7IGZpcnN0LmZvY3VzKCk7IH0gY2F0Y2ggKGUpIHt9IH0K CiAgICByZXR1cm4gYXBpOwogIH07CgogIC8qIEdlc3R5bHRlcyBCZXN0YWV0aWd1bmdzLU1vZGFs IChlcnNldHp0IGRhcyBuYXRpdmUgY29uZmlybSgpKS4gTmljaHQgYmxvY2tpZXJlbmQ6CiAgICAg UC5jb25maXJtKCJXaXJrbGljaCBsb2VzY2hlbj8iLCBmdW5jdGlvbigpeyAuLi5iZWkgT0suLi4g fSwge2Rhbmdlcjp0cnVlfSkKICAgICBvZGVyIFAuY29uZmlybShtc2csIHsgb25Paywgb25DYW5j ZWwsIHRpdGxlLCBva0xhYmVsLCBjYW5jZWxMYWJlbCwgZGFuZ2VyIH0pLiAqLwogIGZ1bmN0aW9u IGJyYW5kTG9nbygpIHsKICAgIHZhciBzID0gUC5jb250ZW50ICYmIFAuY29udGVudC5zZXR0aW5n cyAmJiBQLmNvbnRlbnQuc2V0dGluZ3MuYnJhbmRpbmc7CiAgICB2YXIgdSA9IHMgJiYgcy5sb2dv VXJsOwogICAgcmV0dXJuIHUgPyBlbCgiaW1nIiwgeyBjbGFzczogImFzay1sb2dvIiwgc3JjOiB1 LCBhbHQ6ICIiIH0pIDogbnVsbDsKICB9CiAgUC5jb25maXJtID0gZnVuY3Rpb24gKG1lc3NhZ2Us IG9uT2tPck9wdHMsIG1heWJlT3B0cykgewogICAgdmFyIG9wdHMgPSAodHlwZW9mIG9uT2tPck9w dHMgPT09ICJmdW5jdGlvbiIpID8gKG1heWJlT3B0cyB8fCB7fSkgOiAob25Pa09yT3B0cyB8fCB7 fSk7CiAgICB2YXIgb25PayA9ICh0eXBlb2Ygb25Pa09yT3B0cyA9PT0gImZ1bmN0aW9uIikgPyBv bk9rT3JPcHRzIDogb3B0cy5vbk9rOwogICAgcmV0dXJuIFAubW9kYWwoewogICAgICB0aXRsZTog b3B0cy50aXRsZSB8fCAiQml0dGUgYmVzdMOkdGlnZW4iLCBpY29uOiBvcHRzLmRhbmdlciA/ICJh bGVydCIgOiAiY2hlY2siLCBzaXplOiAic20iLAogICAgICBib2R5OiBmdW5jdGlvbiAoaG9zdCkg ewogICAgICAgIGhvc3QuY2xhc3NMaXN0LmFkZCgiYXNrLWJvZHkiKTsKICAgICAgICB2YXIgbGcg PSBicmFuZExvZ28oKTsgaWYgKGxnKSBob3N0LmFwcGVuZENoaWxkKGxnKTsKICAgICAgICBob3N0 LmFwcGVuZENoaWxkKGVsKCJwIiwgeyBjbGFzczogImFzay1tc2ciLCB0ZXh0OiBtZXNzYWdlIHx8 ICIiIH0pKTsKICAgICAgfSwKICAgICAgYWN0aW9uczogWwogICAgICAgIHsgbGFiZWw6IG9wdHMu Y2FuY2VsTGFiZWwgfHwgIkFiYnJlY2hlbiIsIGtpbmQ6ICJnaG9zdCIsIG9uQ2xpY2s6IGZ1bmN0 aW9uICgpIHsgaWYgKG9wdHMub25DYW5jZWwpIG9wdHMub25DYW5jZWwoKTsgfSB9LAogICAgICAg IHsgbGFiZWw6IG9wdHMub2tMYWJlbCB8fCAiT0siLCBraW5kOiBvcHRzLmRhbmdlciA/ICJkYW5n ZXIiIDogInByaW1hcnkiLCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IGlmIChvbk9rKSBvbk9rKCk7 IH0gfQogICAgICBdCiAgICB9KTsKICB9OwogIFAuYWxlcnQgPSBmdW5jdGlvbiAobWVzc2FnZSwg b3B0cykgewogICAgb3B0cyA9IG9wdHMgfHwge307CiAgICByZXR1cm4gUC5tb2RhbCh7CiAgICAg IHRpdGxlOiBvcHRzLnRpdGxlIHx8ICJIaW53ZWlzIiwgaWNvbjogb3B0cy5kYW5nZXIgPyAiYWxl cnQiIDogImNoZWNrIiwgc2l6ZTogInNtIiwKICAgICAgYm9keTogZnVuY3Rpb24gKGhvc3QpIHsK ICAgICAgICBob3N0LmNsYXNzTGlzdC5hZGQoImFzay1ib2R5Iik7CiAgICAgICAgdmFyIGxnID0g YnJhbmRMb2dvKCk7IGlmIChsZykgaG9zdC5hcHBlbmRDaGlsZChsZyk7CiAgICAgICAgaG9zdC5h cHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6ICJhc2stbXNnIiwgdGV4dDogbWVzc2FnZSB8fCAi IiB9KSk7CiAgICAgIH0sCiAgICAgIGFjdGlvbnM6IFt7IGxhYmVsOiBvcHRzLm9rTGFiZWwgfHwg Ik9LIiwga2luZDogInByaW1hcnkiLCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IGlmIChvcHRzLm9u T2spIG9wdHMub25PaygpOyB9IH1dCiAgICB9KTsKICB9OwoKfSkod2luZG93LlApOwo= ### FILE: assets/js/data-bao.js | 28554 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogKiAgUE9SVEFMX0JBTyDigJQgRGVrbGFyYXRpdmVzIE1v ZGVsbCBkZXMgQkFPLVBvcnRhbHMgKEbDvGhydW5nICYgU3RldWVydW5nLCBGTEQpCiAqICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAqICBRdWVsbGUgPSBkaWUgT3JpZ2luYWwtTGFnZS1TZWl0ZW4gKGA8 bGFnZT5faW5kZXguaHRtbGApOiBsaW5rZSBTaWRlYmFyCiAqICAoZ3J1cHBpZXJ0ZSBEb2t1bWVu dGxpc3RlKSArIDMtU3BhbHRlbi1TdGFuZGFyZGFuc2ljaHQgKMOcYmVyc2ljaHQvRXJrbMOkcnVu ZwogKiAgKyBHcnVuZHPDpHR6ZSArIENoZWNrbGlzdGUvT3JnYW5pZ3JhbW0pLiBWb24gSGFuZCBn ZXBmbGVndCAoa2VpbmUgR2VuZXJhdG9yZW4pLgogKgogKiAgbGFnZSA9IHsga2V5LCBsYWJlbCwg Y2F0LCBvdmVydmlldywgZGFzaHtncnVuZHNhZXR6ZSxvcmdhbmlncmFtbX0sIGdyb3Vwc1tdIH0K ICogICAgb3ZlcnZpZXcgOiBBcnRpa2VsLUlEIGRlciBFcmtsw6RydW5ncy0vU3RhcnRzZWl0ZSAo SGF1cHQgZGVyIFN0YW5kYXJkYW5zaWNodCkKICogICAgZGFzaCAgICAgOiBvcHRpb25hbCDigJQg R3J1bmRzw6R0emUtQXJ0aWtlbCArIE9yZ2FuaWdyYW1tLVBERiAocmVjaHRlIFNwYWx0ZSkKICog ICAgZ3JvdXBzW10gOiB7IHRpdGxlLCBkb2NzW10gfSAgIGdydXBwaWVydGUgU2lkZWJhcgogKiAg ICBkb2MgICAgICA6IHsgbDpMYWJlbCwgZjpQREYtUGZhZCB9ICB8ICB7IGwsIGE6QXJ0aWtlbC1J RCB9ICB8ICB7IGwsIGYsIHBnOlNlaXRlIH0KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8Kd2luZG93 LlBPUlRBTF9CQU8gPSB7CiAgdmVyc2lvbjogIjIuMC4wIiwKCiAgY2F0ZWdvcmllczogWwogICAg eyBrZXk6ICJwNCIsICAgICBsYWJlbDogIsKnIDQgS0hTVFZPIiwgICAgICAgICAgc2hvcnQ6ICLC pyA0IiwgICAgIGNvbG9yOiAiIzJmN2FkNiIgfSwKICAgIHsga2V5OiAicDIiLCAgICAgbGFiZWw6 ICJHQSAmIMKnIDIgS0hTVFZPIiwgICAgIHNob3J0OiAiwqcgMiIsICAgICBjb2xvcjogIiMxZThh NWEiIH0sCiAgICB7IGtleTogInAxIiwgICAgIGxhYmVsOiAiwqcgMSBLSFNUVk8iLCAgICAgICAg ICBzaG9ydDogIsKnIDEiLCAgICAgY29sb3I6ICIjZTA2MDAwIiB9LAogICAgeyBrZXk6ICJiYWIi LCAgICBsYWJlbDogIkJBQiAvIFZlcmtlaHJzbGFnZW4iLCBzaG9ydDogIlZlcmtlaHIiLCBjb2xv cjogIiNlMGExMDAiIH0sCiAgICB7IGtleTogIm5vdHJ1ZiIsIGxhYmVsOiAiU29uZGVybGFnZW4i LCAgICAgICAgIHNob3J0OiAiU29uZGVyIiwgIGNvbG9yOiAiI2IwMDAyMCIgfQogIF0sCgogIGxh Z2VuOiBbCiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSDCpyA0IEtIU1RWTyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAgICB7IGtleTogImFuc2NobGFnX2dzZSIs IGxhYmVsOiAiQW5zY2hsYWcgLyBHU0UiLCBjYXQ6ICJwNCIsCiAgICAgIG92ZXJ2aWV3OiAiYmFv LWFuc2NobGFnX2dzZS1kZmx0IiwKICAgICAgZGFzaDogeyBncnVuZHNhZXR6ZTogImJhby1hbnNj aGxhZ19nc2UtZ3J1bmRzYWV0emUiLCBvcmdhbmlncmFtbTogImJhby9wYXJhZ3JhZl80L2Fuc2No bGFnX2dzZS9kb2t1bWVudGUvYW5zY2hsYWdfcGhhc2UxX29yZ2FuaWdyYW1tLnBkZiIgfSwKICAg ICAgZ3JvdXBzOiBbCiAgICAgICAgeyB0aXRsZTogIkVpbnNhdHpha3RlIiwgZG9jczogWwogICAg ICAgICAgeyBsOiAiQkFPLUFrdGUiLCBmOiAiYmFvL2Rva3VtZW50ZS9iYW9fYWt0ZW4vYmFvX2Fu c2NobGFnLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkNoZWNrbGlzdGUiLCBmOiAiYmFvL3BhcmFn cmFmXzQvYW5zY2hsYWdfZ3NlL2Rva3VtZW50ZS9nc2VfY2hlY2tsaXN0ZS5wZGYiIH0gXSB9LAog ICAgICAgIHsgdGl0bGU6ICJQYXBpZXJlIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiUEYgUGhh c2UgMSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9hbnNjaGxhZ19nc2UvZG9rdW1lbnRlL0dTRV9wZi5w ZGYiIH0sCiAgICAgICAgICB7IGw6ICJGdW5rc3ByZWNoZXIgMTAiLCBmOiAiYmFvL3BhcmFncmFm XzQvYW5zY2hsYWdfZ3NlL2Rva3VtZW50ZS9HU0VfZnVua18xMC5wZGYiIH0sCiAgICAgICAgICB7 IGw6ICJGdW5rc3ByZWNoZXIgMTUiLCBmOiAiYmFvL3BhcmFncmFmXzQvYW5zY2hsYWdfZ3NlL2Rv a3VtZW50ZS9HU0VfZnVua18xNS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJBbGFybWllcmVyIiwg YTogImJhby1hbGFybS1hbnNjaGxhZyIgfSwKICAgICAgICAgIHsgbDogIkxhZ2VkYXJzdGVsbHVu ZyAvIEVsbGEiLCBmOiAiYmFvL3BhcmFncmFmXzQvYW5zY2hsYWdfZ3NlL2Rva3VtZW50ZS9HU0Vf ZWxsYS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGw7xocnVuZ3Nhc3Npc3RlbnQiLCBmOiAiYmFv L3BhcmFncmFmXzQvYW5zY2hsYWdfZ3NlL2Rva3VtZW50ZS9HU0VfYXNzLnBkZiIgfSwKICAgICAg ICAgIHsgbDogImVQb3N0IFZvcmRydWNrZSIsIGE6ICJiYW8tYW5zY2hsYWdfZ3NlLWVwb3N0IiB9 IF0gfSwKICAgICAgICB7IHRpdGxlOiAiQWJwYXNzIiwgZG9jczogWwogICAgICAgICAgeyBsOiAi U2NoYXViaWxkIiwgZjogImJhby9wYXJhZ3JhZl80L2Fuc2NobGFnX2dzZS9kb2t1bWVudGUvYWJw YXNzX3NjaGF1YmlsZC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJadXNhbW1lbmZhc3N1bmciLCBm OiAiYmFvL3BhcmFncmFmXzQvYW5zY2hsYWdfZ3NlL2Rva3VtZW50ZS9hYnBhc3Nfa29tcGxldHQu cGRmIiB9IF0gfSwKICAgICAgICB7IHRpdGxlOiAiWnVncmlmZmUiLCBkb2NzOiBbCiAgICAgICAg ICB7IGw6ICJOb3R6dWdyaWZmIiwgZjogImJhby9wYXJhZ3JhZl80L2Fuc2NobGFnX2dzZS9kb2t1 bWVudGUvYW5zY2hsYWdfbnoucGRmIiB9LAogICAgICAgICAgeyBsOiAiWkdHIiwgZjogImJhby9w YXJhZ3JhZl80L2Fuc2NobGFnX2dzZS9kb2t1bWVudGUvYW5zY2hsYWdfemdnLnBkZiIgfSwKICAg ICAgICAgIHsgbDogIkVpbnNjaHJlaXRzY2h3ZWxsZW4iLCBmOiAiYmFvL3BhcmFncmFmXzQvYW5z Y2hsYWdfZ3NlL2Rva3VtZW50ZS9hbnNjaGxhZ19laW5zY2hyZWl0c2Nod2VsbGVuLnBkZiIgfSwK ICAgICAgICAgIHsgbDogIkxlaXRsaW5pZW4iLCBmOiAiYmFvL3BhcmFncmFmXzQvYW5zY2hsYWdf Z3NlL2Rva3VtZW50ZS9hbnNjaGxhZ19sZWl0bGluaWVuLnBkZiIgfSBdIH0sCiAgICAgICAgeyB0 aXRsZTogIkluZm9ybWF0aW9uIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiRXJuc3RoYWZ0aWdr ZWl0IiwgZjogImJhby9wYXJhZ3JhZl80L2Fuc2NobGFnX2dzZS9kb2t1bWVudGUvYW5zY2hsYWdf ZXJuc3RoYWZ0aWdrZWl0LnBkZiIgfSwKICAgICAgICAgIHsgbDogIkdlZmFocmVuYW5hbHlzZSIs IGY6ICJiYW8vcGFyYWdyYWZfNC9hbnNjaGxhZ19nc2UvZG9rdW1lbnRlL2Fuc2NobGFnX2dlZmFo cmVuYW5hbHlzZS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJMWlBEIC8gTEtBIiwgZjogImJhby9w YXJhZ3JhZl80L2Fuc2NobGFnX2dzZS9kb2t1bWVudGUvYW5zY2hsYWdfbHpwZF9sa2EucGRmIiB9 LAogICAgICAgICAgeyBsOiAiS29tbXVuaWthdGlvbiBCZXYuIiwgZjogImJhby9wYXJhZ3JhZl80 L2Fuc2NobGFnX2dzZS9kb2t1bWVudGUvYW5zY2hsYWdfa29tbXVuaWthdGlvbi5wZGYiIH0sCiAg ICAgICAgICB7IGw6ICJFUMOWQSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9hbnNjaGxhZ19nc2UvZG9r dW1lbnRlL2Fuc2NobGFnX2Vwb2VhLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkVycmVpY2hiYXJr ZWl0ZW4iLCBmOiAiYmFvL3BhcmFncmFmXzQvYW5zY2hsYWdfZ3NlL2Rva3VtZW50ZS9hbnNjaGxh Z19lcnJlaWNoYmFya2VpdGVuLnBkZiIgfSBdIH0KICAgICAgXSB9LAoKICAgIHsga2V5OiAiYW1v ayIsIGxhYmVsOiAiQW1vayIsIGNhdDogInA0IiwKICAgICAgb3ZlcnZpZXc6ICJiYW8tYW1vay1k Zmx0IiwKICAgICAgZGFzaDogeyBncnVuZHNhZXR6ZTogImJhby1hbW9rLWdydW5kc2FldHplIiwg b3JnYW5pZ3JhbW06ICJiYW8vcGFyYWdyYWZfNC9hbW9rL2Rva3VtZW50ZS9hbW9rX3BoYXNlMV9v cmdhbmlncmFtbS5wZGYiIH0sCiAgICAgIGdyb3VwczogWwogICAgICAgIHsgdGl0bGU6ICJFaW5z YXR6YWt0ZSIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkJBTy1Ba3RlIiwgZjogImJhby9kb2t1 bWVudGUvYmFvX2FrdGVuL2Jhb19hbW9rLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkNoZWNrbGlz dGUiLCBmOiAiYmFvL3BhcmFncmFmXzQvYW1vay9kb2t1bWVudGUvYW1va19jaGVja2xpc3RlLnBk ZiIgfSwKICAgICAgICAgIHsgbDogIkbDvGhydW5nc8O8YmVybmFobWUiLCBmOiAiYmFvL3BhcmFn cmFmXzQvYW1vay9kb2t1bWVudGUvYW1va19mdWVocnVuZ3N1ZWJlcm5haG1lLnBkZiIgfSBdIH0s CiAgICAgICAgeyB0aXRsZTogIlBhcGllcmUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJQRiBQ aGFzZSAxIiwgZjogImJhby9wYXJhZ3JhZl80L2Ftb2svZG9rdW1lbnRlL2Ftb2tfcGYucGRmIiB9 LAogICAgICAgICAgeyBsOiAiRnVua3NwcmVjaGVyIDEwIiwgZjogImJhby9wYXJhZ3JhZl80L2Ft b2svZG9rdW1lbnRlL2Ftb2tfZnVua18xMC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGdW5rc3By ZWNoZXIgMTUiLCBmOiAiYmFvL3BhcmFncmFmXzQvYW1vay9kb2t1bWVudGUvYW1va19mdW5rXzE1 LnBkZiIgfSwKICAgICAgICAgIHsgbDogIkFsYXJtaWVyZXIiLCBhOiAiYmFvLWFsYXJtLWFtb2si IH0sCiAgICAgICAgICB7IGw6ICJMYWdlZGFyc3RlbGx1bmcgLyBFbGxhIiwgZjogImJhby9wYXJh Z3JhZl80L2Ftb2svZG9rdW1lbnRlL2Ftb2tfZWxsYS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJG w7xocnVuZ3Nhc3Npc3RlbnQiLCBmOiAiYmFvL3BhcmFncmFmXzQvYW1vay9kb2t1bWVudGUvYW1v a19hc3MucGRmIiB9IF0gfSwKICAgICAgICB7IHRpdGxlOiAiWnVncmlmZmUiLCBkb2NzOiBbCiAg ICAgICAgICB7IGw6ICJOb3R6dWdyaWZmIiwgZjogImJhby9wYXJhZ3JhZl80L2Ftb2svZG9rdW1l bnRlL2Ftb2tfbm90enVncmlmZi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJaZ0cgMSIsIGY6ICJi YW8vcGFyYWdyYWZfNC9hbW9rL2Rva3VtZW50ZS9hbW9rX3pnZzEucGRmIiB9LAogICAgICAgICAg eyBsOiAiWmdHIDIiLCBmOiAiYmFvL3BhcmFncmFmXzQvYW1vay9kb2t1bWVudGUvYW1va196Z2cy LnBkZiIgfSwKICAgICAgICAgIHsgbDogIlpnRyAzIiwgZjogImJhby9wYXJhZ3JhZl80L2Ftb2sv ZG9rdW1lbnRlL2Ftb2tfemdnMy5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJHZXBsYW50ZXIgWnVn cmlmZiAxIiwgZjogImJhby9wYXJhZ3JhZl80L2Ftb2svZG9rdW1lbnRlL2Ftb2tfZ3oxLnBkZiIg fSwKICAgICAgICAgIHsgbDogIkdlcGxhbnRlciBadWdyaWZmIDIiLCBmOiAiYmFvL3BhcmFncmFm XzQvYW1vay9kb2t1bWVudGUvYW1va19nejIucGRmIiB9IF0gfSwKICAgICAgICB7IHRpdGxlOiAi U29uc3RpZ2VzIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiRWluc2F0emdydW5kc8OkdHplIiwg ZjogImJhby9wYXJhZ3JhZl80L2Ftb2svZG9rdW1lbnRlL2Ftb2tfZWluc2F0emdydW5kc2FldHpl LnBkZiIgfSwKICAgICAgICAgIHsgbDogIkVyc3RzcHJlY2hlciIsIGY6ICJiYW8vcGFyYWdyYWZf NC9nZWlzZWwvZG9rdW1lbnRlL2dlaXNlbF9lcnN0c3ByZWNoZXIucGRmIiB9LAogICAgICAgICAg eyBsOiAiQmV0cmV1dW5nIiwgZjogImJhby9wYXJhZ3JhZl80L2Ftb2svZG9rdW1lbnRlL2Ftb2tf YmV0cmV1dW5nLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkVQw5ZBIiwgZjogImJhby9wYXJhZ3Jh Zl80L2Ftb2svZG9rdW1lbnRlL2Ftb2tfZXBvZWEucGRmIiB9LAogICAgICAgICAgeyBsOiAiVmVy aGFuZGx1bmdlbiIsIGY6ICJiYW8vcGFyYWdyYWZfNC9hbW9rL2Rva3VtZW50ZS9hbW9rX3Zlcmhh bmRsdW5nZW4ucGRmIiB9LAogICAgICAgICAgeyBsOiAiVmVyZm9sZ3VuZyIsIGY6ICJiYW8vcGFy YWdyYWZfNC9hbW9rL2Rva3VtZW50ZS9hbW9rX3ZlcmZvbGd1bmcucGRmIiB9IF0gfQogICAgICBd IH0sCgogICAgeyBrZXk6ICJnZWlzZWwiLCBsYWJlbDogIkdlaXNlbG5haG1lIiwgY2F0OiAicDQi LAogICAgICBvdmVydmlldzogImJhby1nZWlzZWwtZGZsdCIsCiAgICAgIGRhc2g6IHsgZ3J1bmRz YWV0emU6ICJiYW8tZ2Vpc2VsLWdydW5kc2FldHplIiwgb3JnYW5pZ3JhbW06ICJiYW8vcGFyYWdy YWZfNC9nZWlzZWwvZG9rdW1lbnRlL2dlaXNlbF9waGFzZTFfb3JnYW5pZ3JhbW0ucGRmIiB9LAog ICAgICBncm91cHM6IFsKICAgICAgICB7IHRpdGxlOiAiRWluc2F0emFrdGUiLCBkb2NzOiBbCiAg ICAgICAgICB7IGw6ICJCQU8tQWt0ZSIsIGY6ICJiYW8vZG9rdW1lbnRlL2Jhb19ha3Rlbi9iYW9f Z2Vpc2VsbmFobWUucGRmIiB9LAogICAgICAgICAgeyBsOiAiQ2hlY2tsaXN0ZSBTdGF0aW9uw6Ry IiwgZjogImJhby9wYXJhZ3JhZl80L2dlaXNlbC9kb2t1bWVudGUvZ2Vpc2VsX2NoZWNrbGlzdGVf cGhhc2UxX3N0YXRpb25hZXIucGRmIiB9LAogICAgICAgICAgeyBsOiAiQ2hlY2tsaXN0ZSBNb2Jp bCIsIGY6ICJiYW8vcGFyYWdyYWZfNC9nZWlzZWwvZG9rdW1lbnRlL2dlaXNlbF9jaGVja2xpc3Rl X3BoYXNlMV9tb2JpbC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJOb3R6dWdyaWZmIiwgZjogImJh by9wYXJhZ3JhZl80L2dlaXNlbC9kb2t1bWVudGUvZ2Vpc2VsX25vdHp1Z3JpZmYucGRmIiB9LAog ICAgICAgICAgeyBsOiAiWmdHIiwgZjogImJhby9wYXJhZ3JhZl80L2dlaXNlbC9kb2t1bWVudGUv Z2Vpc2VsX3pnZy5wZGYiIH0gXSB9LAogICAgICAgIHsgdGl0bGU6ICJTdGF0aW9uw6RyIiwgZG9j czogWwogICAgICAgICAgeyBsOiAiTGVpdGxpbmllbiIsIGY6ICJiYW8vcGFyYWdyYWZfNC9nZWlz ZWwvZG9rdW1lbnRlL2dlaXNlbF9sZWl0bGluaWVuX3N0YXRpb25hZXIucGRmIiB9LAogICAgICAg ICAgeyBsOiAiUEYgUGhhc2UgMSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9nZWlzZWwvZG9rdW1lbnRl L2dlaXNlbF9wZl9zdGF0aW9uYWVyLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkZ1bmtzcHJlY2hl ciAxMCIsIGY6ICJiYW8vcGFyYWdyYWZfNC9nZWlzZWwvZG9rdW1lbnRlL2dlaXNlbF9mdW5rX3N0 YXRpb25hZXJfMTAucGRmIiB9LAogICAgICAgICAgeyBsOiAiRnVua3NwcmVjaGVyIDE1IiwgZjog ImJhby9wYXJhZ3JhZl80L2dlaXNlbC9kb2t1bWVudGUvZ2Vpc2VsX2Z1bmtfc3RhdGlvbmFlcl8x NS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJBbGFybWllcmVyIiwgYTogImJhby1hbGFybS1nZWlz ZWwiIH0sCiAgICAgICAgICB7IGw6ICJMYWdlZGFyc3RlbGx1bmcgLyBFTExBIiwgZjogImJhby9w YXJhZ3JhZl80L2dlaXNlbC9kb2t1bWVudGUvZ2Vpc2VsX2VsbGEucGRmIiB9LAogICAgICAgICAg eyBsOiAiRsO8aHJ1bmdzYXNzaXN0ZW50IiwgZjogImJhby9wYXJhZ3JhZl80L2dlaXNlbC9kb2t1 bWVudGUvZ2Vpc2VsX2Fzcy5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJBdWZ0cmFnIE9CUyIsIGY6 ICJiYW8vcGFyYWdyYWZfNC9nZWlzZWwvZG9rdW1lbnRlL2dlaXNlbF9hdWZ0cmFnX29ic19zdGF0 aW9uYWVyLnBkZiIgfSBdIH0sCiAgICAgICAgeyB0aXRsZTogIk1vYmlsIiwgZG9jczogWwogICAg ICAgICAgeyBsOiAiTGVpdGxpbmllbiIsIGY6ICJiYW8vcGFyYWdyYWZfNC9nZWlzZWwvZG9rdW1l bnRlL2dlaXNlbF9sZWl0bGluaWVuX21vYmlsLnBkZiIgfSwKICAgICAgICAgIHsgbDogIlBGIFBo YXNlIDEiLCBmOiAiYmFvL3BhcmFncmFmXzQvZ2Vpc2VsL2Rva3VtZW50ZS9nZWlzZWxfcGZfbW9i aWwucGRmIiB9LAogICAgICAgICAgeyBsOiAiRnVua3NwcmVjaGVyIDEwIiwgZjogImJhby9wYXJh Z3JhZl80L2dlaXNlbC9kb2t1bWVudGUvZ2Vpc2VsX2Z1bmtfbW9iaWxfMTAucGRmIiB9LAogICAg ICAgICAgeyBsOiAiRnVua3NwcmVjaGVyIDE1IiwgZjogImJhby9wYXJhZ3JhZl80L2dlaXNlbC9k b2t1bWVudGUvZ2Vpc2VsX2Z1bmtfbW9iaWxfMTUucGRmIiB9LAogICAgICAgICAgeyBsOiAiQXVm dHJhZyBPQlMiLCBmOiAiYmFvL3BhcmFncmFmXzQvZ2Vpc2VsL2Rva3VtZW50ZS9nZWlzZWxfYXVm dHJhZ19vYnNfbW9iaWwucGRmIiB9IF0gfSwKICAgICAgICB7IHRpdGxlOiAiU29uc3RpZ2VzIiwg ZG9jczogWwogICAgICAgICAgeyBsOiAiRXJzdHNwcmVjaGVyIiwgZjogImJhby9wYXJhZ3JhZl80 L2dlaXNlbC9kb2t1bWVudGUvZ2Vpc2VsX2Vyc3RzcHJlY2hlci5wZGYiIH0gXSB9CiAgICAgIF0g fSwKCiAgICB7IGtleTogImVudGZ1ZWhydW5nIiwgbGFiZWw6ICJFbnRmw7xocnVuZyIsIGNhdDog InA0IiwKICAgICAgb3ZlcnZpZXc6ICJiYW8tZW50ZnVlaHJ1bmctZGZsdCIsCiAgICAgIGRhc2g6 IHsgZ3J1bmRzYWV0emU6ICJiYW8tZW50ZnVlaHJ1bmctZ3J1bmRzYWV0emUiLCBvcmdhbmlncmFt bTogImJhby9wYXJhZ3JhZl80L2VudGZ1ZWhydW5nL2Rva3VtZW50ZS9lbnRmdWVocnVuZ19waGFz ZTFfb3JnYW5pZ3JhbW0ucGRmIiB9LAogICAgICBncm91cHM6IFsKICAgICAgICB7IHRpdGxlOiAi RWluc2F0emFrdGUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJCQU8tQWt0ZSIsIGY6ICJiYW8v ZG9rdW1lbnRlL2Jhb19ha3Rlbi9iYW9fZW50ZnVlaHJ1bmcucGRmIiB9LAogICAgICAgICAgeyBs OiAiQ2hlY2tsaXN0ZSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9lbnRmdWVocnVuZy9kb2t1bWVudGUv ZW50Zl9jaGVja2xpc3RlLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkbDvGhydW5nc8O8YmVybmFo bWUiLCBmOiAiYmFvL3BhcmFncmFmXzQvZW50ZnVlaHJ1bmcvZG9rdW1lbnRlL2VudGZfZnVlaHJ1 bmdzdWViZXJuYWhtZS5wZGYiIH0gXSB9LAogICAgICAgIHsgdGl0bGU6ICJQYXBpZXJlIiwgZG9j czogWwogICAgICAgICAgeyBsOiAiUEYgUGhhc2UgMSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9lbnRm dWVocnVuZy9kb2t1bWVudGUvZW50Zl9wZi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGdW5rc3By ZWNoZXIgMTAiLCBmOiAiYmFvL3BhcmFncmFmXzQvZW50ZnVlaHJ1bmcvZG9rdW1lbnRlL2VudGZf ZnVua18xMC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGdW5rc3ByZWNoZXIgMTUiLCBmOiAiYmFv L3BhcmFncmFmXzQvZW50ZnVlaHJ1bmcvZG9rdW1lbnRlL2VudGZfZnVua18xNS5wZGYiIH0sCiAg ICAgICAgICB7IGw6ICJBbGFybWllcmVyIiwgYTogImJhby1hbGFybS1lbnRmdWVocnVuZyIgfSwK ICAgICAgICAgIHsgbDogIkVsbGEgKElubmVyaGFsYikiLCBmOiAiYmFvL3BhcmFncmFmXzQvZW50 ZnVlaHJ1bmcvZG9rdW1lbnRlL2VudGZfZWxsYV9pbm5lcmhhbGIucGRmIiB9LAogICAgICAgICAg eyBsOiAiRWxsYSAoQXXDn2VyaGFsYikiLCBmOiAiYmFvL3BhcmFncmFmXzQvZW50ZnVlaHJ1bmcv ZG9rdW1lbnRlL2VudGZfZWxsYV9hdXNzZXJoYWxiLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkbD vGhydW5nc2Fzc2lzdGVudCIsIGY6ICJiYW8vcGFyYWdyYWZfNC9lbnRmdWVocnVuZy9kb2t1bWVu dGUvZW50Zl9hc3MucGRmIiB9IF0gfSwKICAgICAgICB7IHRpdGxlOiAiWkdHIC8gTloiLCBkb2Nz OiBbCiAgICAgICAgICB7IGw6ICJMZWl0bGluaWVuIiwgZjogImJhby9wYXJhZ3JhZl80L2VudGZ1 ZWhydW5nL2Rva3VtZW50ZS9lbnRmX2xlaXQucGRmIiB9LAogICAgICAgICAgeyBsOiAiWkdHMSAt IEZyZWlnYWJlIiwgZjogImJhby9wYXJhZ3JhZl80L2VudGZ1ZWhydW5nL2Rva3VtZW50ZS9lbnRm X3pnZzEucGRmIiB9LAogICAgICAgICAgeyBsOiAiWkdHMSAtIEUuLXNjaHdlbGxlIiwgZjogImJh by9wYXJhZ3JhZl80L2VudGZ1ZWhydW5nL2Rva3VtZW50ZS9lbnRmX2VpbnNjaHJlaXRfemdnMS5w ZGYiIH0sCiAgICAgICAgICB7IGw6ICJaR0cyIC0gRnJlaWdhYmUiLCBmOiAiYmFvL3BhcmFncmFm XzQvZW50ZnVlaHJ1bmcvZG9rdW1lbnRlL2VudGZfemdnMi5wZGYiIH0sCiAgICAgICAgICB7IGw6 ICJOWkcgLSBGcmVpZ2FiZSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9lbnRmdWVocnVuZy9kb2t1bWVu dGUvZW50Zl9ub3QucGRmIiB9LAogICAgICAgICAgeyBsOiAiTlpHIC0gRS4tc2Nod2VsbGUiLCBm OiAiYmFvL3BhcmFncmFmXzQvZW50ZnVlaHJ1bmcvZG9rdW1lbnRlL2VudGZfZWluc2NocmVpdF9u b3QucGRmIiB9IF0gfSwKICAgICAgICB7IHRpdGxlOiAiRXJzdGtvbnRha3QiLCBkb2NzOiBbCiAg ICAgICAgICB7IGw6ICJOb3RydWYgQmVmcmFndW5nIiwgZjogImJhby9wYXJhZ3JhZl80L2VudGZ1 ZWhydW5nL2Rva3VtZW50ZS9lbnRmX2JlZnJhZ3VuZy5wZGYiIH0gXSB9CiAgICAgIF0gfSwKCiAg ICB7IGtleTogInJlbmVnYWRlIiwgbGFiZWw6ICJSZW5lZ2FkZSIsIGNhdDogInA0IiwKICAgICAg b3ZlcnZpZXc6ICJiYW8tcmVuZWdhZGUtZGZsdCIsCiAgICAgIGRhc2g6IHsgZ3J1bmRzYWV0emU6 ICJiYW8tcmVuZWdhZGUtZ3J1bmRzYWV0emUiLCBvcmdhbmlncmFtbTogImJhby9wYXJhZ3JhZl80 L3JlbmVnYWRlL2Rva3VtZW50ZS9yZW5lZ2FkZV9waGFzZTFfb3JnYW5pZ3JhbW0ucGRmIiB9LAog ICAgICBncm91cHM6IFsKICAgICAgICB7IHRpdGxlOiAiRWluc2F0emFrdGUiLCBkb2NzOiBbCiAg ICAgICAgICB7IGw6ICJSZW5lZ2FkZSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9yZW5lZ2FkZS9kb2t1 bWVudGUvYmFvX3JlbmVnYWRlLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkNoZWNrbGlzdGUiLCBm OiAiYmFvL3BhcmFncmFmXzQvcmVuZWdhZGUvZG9rdW1lbnRlL3JlbmVnYWRlX2NoZWNrbGlzdGVf cGhhc2UxLnBkZiIgfSwKICAgICAgICAgIHsgbDogIlNvZm9ydG1lbGR1bmciLCBmOiAiYmFvL3Bh cmFncmFmXzQvcmVuZWdhZGUvZG9rdW1lbnRlL2Jhb19yZW5lZ2FkZS5wZGYiLCBwZzogMzYgfSBd IH0sCiAgICAgICAgeyB0aXRsZTogIlBhcGllcmUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJQ RiBQaGFzZSAxIiwgZjogImJhby9wYXJhZ3JhZl80L3JlbmVnYWRlL2Rva3VtZW50ZS9yZW5lZ2Fk ZV9wZi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGdW5rc3ByZWNoZXIgMTAiLCBmOiAiYmFvL3Bh cmFncmFmXzQvcmVuZWdhZGUvZG9rdW1lbnRlL3JlbmVnYWRlX2Z1bmtfMTAucGRmIiB9LAogICAg ICAgICAgeyBsOiAiRnVua3NwcmVjaGVyIDE1IiwgZjogImJhby9wYXJhZ3JhZl80L3JlbmVnYWRl L2Rva3VtZW50ZS9yZW5lZ2FkZV9mdW5rXzE1LnBkZiIgfSwKICAgICAgICAgIHsgbDogIkFsYXJt aWVyZXIiLCBhOiAiYmFvLWFsYXJtLXJlbmVnYWRlIiB9LAogICAgICAgICAgeyBsOiAiTGFnZWRh cnN0ZWxsdW5nIC8gRWxsYSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9yZW5lZ2FkZS9kb2t1bWVudGUv cmVuZWdhZGVfZWxsYS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGw7xocnVuZ3Nhc3Npc3RlbnQi LCBmOiAiYmFvL3BhcmFncmFmXzQvcmVuZWdhZGUvZG9rdW1lbnRlL3JlbmVnYWRlX2Fzcy5wZGYi IH0gXSB9LAogICAgICAgIHsgdGl0bGU6ICJOWiAvIFpHRyIsIGRvY3M6IFsKICAgICAgICAgIHsg bDogIk5vdHp1Z3JpZmYiLCBmOiAiYmFvL3BhcmFncmFmXzQvcmVuZWdhZGUvZG9rdW1lbnRlL3Jl bmVnYWRlX25vdHp1Z3JpZmYucGRmIiB9LAogICAgICAgICAgeyBsOiAiWkdHMSIsIGY6ICJiYW8v cGFyYWdyYWZfNC9yZW5lZ2FkZS9kb2t1bWVudGUvcmVuZWdhZGVfemdnMS5wZGYiIH0sCiAgICAg ICAgICB7IGw6ICJaR0cyIiwgZjogImJhby9wYXJhZ3JhZl80L3JlbmVnYWRlL2Rva3VtZW50ZS9y ZW5lZ2FkZV96Z2cyLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkVpbnNjaHJlaXRzY2h3LiBOWiIs IGY6ICJiYW8vcGFyYWdyYWZfNC9yZW5lZ2FkZS9kb2t1bWVudGUvcmVuZWdhZGVfZWluc2NocmVp dHNjaHdlbGxlX25vdHp1Z3JpZmYucGRmIiB9LAogICAgICAgICAgeyBsOiAiRWluc2NocmVpdHNj aHcuIFpHRyIsIGY6ICJiYW8vcGFyYWdyYWZfNC9yZW5lZ2FkZS9kb2t1bWVudGUvcmVuZWdhZGVf ZWluc2NocmVpdHNjaHdlbGxlX3pnZy5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJWZXJoaW4uIEF1 c2JydWNoIiwgZjogImJhby9wYXJhZ3JhZl80L3JlbmVnYWRlL2Rva3VtZW50ZS9yZW5lZ2FkZV92 ZXJoaW5kZXJ1bmdfYXVzYnJ1Y2gucGRmIiB9LAogICAgICAgICAgeyBsOiAiTGVpdGxpbmllbiIs IGY6ICJiYW8vcGFyYWdyYWZfNC9yZW5lZ2FkZS9kb2t1bWVudGUvcmVuZWdhZGVfbGVpdGxpbmll bi5wZGYiIH0gXSB9CiAgICAgIF0gfSwKCiAgICB7IGtleTogImp2YSIsIGxhYmVsOiAiU3TDtnJ1 bmcgSlZBIC8gTVJWIiwgY2F0OiAicDQiLAogICAgICBvdmVydmlldzogImJhby1qdmEtZGZsdCIs CiAgICAgIGRhc2g6IHsgZ3J1bmRzYWV0emU6ICJiYW8tanZhLWdydW5kc2FldHplIiwgb3JnYW5p Z3JhbW06ICJiYW8vcGFyYWdyYWZfNC9qdmEvZG9rdW1lbnRlL2p2YV9waGFzZTFfb3JnYW5pZ3Jh bW0ucGRmIiB9LAogICAgICBncm91cHM6IFsKICAgICAgICB7IHRpdGxlOiAiRWluc2F0emFrdGUi LCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJCQU8tQWt0ZSIsIGY6ICJiYW8vZG9rdW1lbnRlL2Jh b19ha3Rlbi9iYW9fanZhX21ydi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJDaGVja2xpc3RlIiwg ZjogImJhby9wYXJhZ3JhZl80L2p2YS9kb2t1bWVudGUvanZhX2NoZWNrbGlzdGUucGRmIiB9LAog ICAgICAgICAgeyBsOiAiRsO8aHJ1bmdzw7xiZXJuYWhtZSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9q dmEvZG9rdW1lbnRlL2p2YV9mdWVocnVuZ3N1ZWJlcm5haG1lLnBkZiIgfSBdIH0sCiAgICAgICAg eyB0aXRsZTogIlBhcGllcmUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJQRiBQaGFzZSAxIiwg ZjogImJhby9wYXJhZ3JhZl80L2p2YS9kb2t1bWVudGUvanZhX3BmLnBkZiIgfSwKICAgICAgICAg IHsgbDogIkZ1bmtzcHJlY2hlciAxMCIsIGY6ICJiYW8vcGFyYWdyYWZfNC9qdmEvZG9rdW1lbnRl L2p2YV9mdW5rXzEwLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkZ1bmtzcHJlY2hlciAxNSIsIGY6 ICJiYW8vcGFyYWdyYWZfNC9qdmEvZG9rdW1lbnRlL2p2YV9mdW5rXzE1LnBkZiIgfSwKICAgICAg ICAgIHsgbDogIkFsYXJtaWVyZXIiLCBhOiAiYmFvLWFsYXJtLWp2YSIgfSwKICAgICAgICAgIHsg bDogIkxhZ2VkYXJzdGVsbHVuZyAvIEVsbGEiLCBmOiAiYmFvL3BhcmFncmFmXzQvanZhL2Rva3Vt ZW50ZS9qdmFfZWxsYS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGw7xocnVuZ3Nhc3Npc3RlbnQi LCBmOiAiYmFvL3BhcmFncmFmXzQvanZhL2Rva3VtZW50ZS9qdmFfYXNzLnBkZiIgfSBdIH0sCiAg ICAgICAgeyB0aXRsZTogIlNvbnN0aWdlcyIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkVpbnNj aHJlaXRzY2h3LiBLcml0LiIsIGY6ICJiYW8vcGFyYWdyYWZfNC9qdmEvZG9rdW1lbnRlL2p2YV9l aW5zY2hyZWl0c2Nod2VsbGVuX2tyaXRlcmllbi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJFaW5z Y2hyZWl0c2Nody4gQWx0MSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9qdmEvZG9rdW1lbnRlL2p2YV9l aW5zY2hyZWl0c2Nod2VsbGVuX2FsdGVybmF0aXZlMS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJF aW5zY2hyZWl0c2Nody4gQWx0MiIsIGY6ICJiYW8vcGFyYWdyYWZfNC9qdmEvZG9rdW1lbnRlL2p2 YV9laW5zY2hyZWl0c2Nod2VsbGVuX2FsdGVybmF0aXZlMi5wZGYiIH0gXSB9LAogICAgICAgIHsg dGl0bGU6ICJFcnN0a29udGFrdCIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkVyc3Rrb250YWt0 IiwgZjogImJhby9wYXJhZ3JhZl80L2p2YS9kb2t1bWVudGUvanZhX2Vyc3Rrb250YWt0LnBkZiIg fSBdIH0KICAgICAgXSB9LAoKICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEdBICYg wqcgMiBLSFNUVk8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KICAgIHsga2V5OiAiZXJw cmVzc3VuZyIsIGxhYmVsOiAiRXJwcmVzc3VuZyIsIGNhdDogInAyIiwKICAgICAgb3ZlcnZpZXc6 ICJiYW8tZXJwcmVzc3VuZy1kZmx0IiwKICAgICAgZGFzaDogeyBncnVuZHNhZXR6ZTogImJhby1l cnByZXNzdW5nLWdydW5kc2FldHplIiwgb3JnYW5pZ3JhbW06ICJiYW8vcGFyYWdyYWZfMi9lcnBy ZXNzdW5nL2Rva3VtZW50ZS9lcnByZXNzdW5nX3BoYXNlMV9vcmdhbmlncmFtbS5wZGYiIH0sCiAg ICAgIGdyb3VwczogWwogICAgICAgIHsgdGl0bGU6ICJFaW5zYXR6YWt0ZSIsIGRvY3M6IFsKICAg ICAgICAgIHsgbDogIkVycHJlc3N1bmciLCBmOiAiYmFvL2Rva3VtZW50ZS9iYW9fYWt0ZW4vYmFv X2VycHJlc3N1bmcucGRmIiB9LAogICAgICAgICAgeyBsOiAiQ2hlY2tsaXN0ZSIsIGY6ICJiYW8v cGFyYWdyYWZfMi9lcnByZXNzdW5nL2Rva3VtZW50ZS9lcnByX2NoZWNrbGlzdGUucGRmIiB9LAog ICAgICAgICAgeyBsOiAiRXJzdG1hw59uYWhtZW4iLCBmOiAiYmFvL3BhcmFncmFmXzIvZXJwcmVz c3VuZy9kb2t1bWVudGUvZXJwcl9lcnN0bWHDn25haG1lbi5wZGYiIH0gXSB9LAogICAgICAgIHsg dGl0bGU6ICJQYXBpZXJlIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiTGVpdGxpbmllbiIsIGY6 ICJiYW8vcGFyYWdyYWZfMi9lcnByZXNzdW5nL2Rva3VtZW50ZS9lcnByX2xlaXRsaW5pZW4ucGRm IiB9LAogICAgICAgICAgeyBsOiAiUEYgUGhhc2UgMSIsIGY6ICJiYW8vcGFyYWdyYWZfMi9lcnBy ZXNzdW5nL2Rva3VtZW50ZS9lcnByX3BmX2lubmVyaGFsYi5wZGYiIH0sCiAgICAgICAgICB7IGw6 ICJGdW5rc3ByZWNoZXIgMTAiLCBmOiAiYmFvL3BhcmFncmFmXzIvZXJwcmVzc3VuZy9kb2t1bWVu dGUvZXJwcl9mdW5rXzEwLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkZ1bmtzcHJlY2hlciAxNSIs IGY6ICJiYW8vcGFyYWdyYWZfMi9lcnByZXNzdW5nL2Rva3VtZW50ZS9lcnByX2Z1bmtfMTUucGRm IiB9LAogICAgICAgICAgeyBsOiAiQWxhcm1pZXJlciIsIGE6ICJiYW8tYWxhcm0tZXJwcmVzc3Vu ZyIgfSwKICAgICAgICAgIHsgbDogIkVsbGEiLCBmOiAiYmFvL3BhcmFncmFmXzIvZXJwcmVzc3Vu Zy9kb2t1bWVudGUvZXJwcl9lbGxhX2lubmVyaGFsYi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJG w7xocnVuZ3Nhc3Npc3RlbnQiLCBmOiAiYmFvL3BhcmFncmFmXzIvZXJwcmVzc3VuZy9kb2t1bWVu dGUvZXJwcl9hc3MucGRmIiB9IF0gfQogICAgICBdIH0sCgogICAgLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gwqcgMSBLSFNUVk8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq LwogICAgeyBrZXk6ICJiZWRyb2h1bmdzbGFnZSIsIGxhYmVsOiAiQmVkcm9odW5nc2xhZ2UiLCBj YXQ6ICJwMSIsCiAgICAgIG92ZXJ2aWV3OiAiYmFvLWJlZHJvaHVuZ3NsYWdlLWRmbHQiLAogICAg ICBkYXNoOiB7IGdydW5kc2FldHplOiAiYmFvLWJlZHJvaHVuZ3NsYWdlLWdydW5kc2FldHplIiwg b3JnYW5pZ3JhbW06ICJiYW8vcGFyYWdyYWZfMS9iZWRyb2h1bmdzbGFnZS9kb2t1bWVudGUvYmVk cm9odW5nX3BoYXNlMV9vcmdhbmlncmFtbS5wZGYiIH0sCiAgICAgIGdyb3VwczogWwogICAgICAg IHsgdGl0bGU6ICJFaW5zYXR6YWt0ZSIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkJlZHJvaHVu Z3NsYWdlIiwgZjogImJhby9kb2t1bWVudGUvYmFvX2FrdGVuL2Jhb19iZWRyb2h1bmdzbGFnZS5w ZGYiIH0sCiAgICAgICAgICB7IGw6ICJDaGVja2xpc3RlIiwgZjogImJhby9wYXJhZ3JhZl8xL2Jl ZHJvaHVuZ3NsYWdlL2Rva3VtZW50ZS9iZWRyX2NoZWNrbGlzdGUucGRmIiB9LAogICAgICAgICAg eyBsOiAiRsO8aHJ1bmdzw7xiZXJuYWhtZSIsIGY6ICJiYW8vcGFyYWdyYWZfMS9iZWRyb2h1bmdz bGFnZS9kb2t1bWVudGUvYmVkcl9mdWVocnVuZ3N1ZWJlcm5haG1lLnBkZiIgfSBdIH0sCiAgICAg ICAgeyB0aXRsZTogIlBhcGllcmUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJQRiBQaGFzZSAx IiwgZjogImJhby9wYXJhZ3JhZl8xL2JlZHJvaHVuZ3NsYWdlL2Rva3VtZW50ZS9iZWRyX3BmLnBk ZiIgfSwKICAgICAgICAgIHsgbDogIkZ1bmtzcHJlY2hlciAxMCIsIGY6ICJiYW8vcGFyYWdyYWZf MS9iZWRyb2h1bmdzbGFnZS9kb2t1bWVudGUvYmVkcl9mdW5rXzEwLnBkZiIgfSwKICAgICAgICAg IHsgbDogIkZ1bmtzcHJlY2hlciAxNSIsIGY6ICJiYW8vcGFyYWdyYWZfMS9iZWRyb2h1bmdzbGFn ZS9kb2t1bWVudGUvYmVkcl9mdW5rXzE1LnBkZiIgfSwKICAgICAgICAgIHsgbDogIkFsYXJtaWVy ZXIiLCBhOiAiYmFvLWFsYXJtLWJlZHJvaHVuZyIgfSwKICAgICAgICAgIHsgbDogIkxhZ2VkYXJz dGVsbHVuZyAvIEVsbGEiLCBmOiAiYmFvL3BhcmFncmFmXzEvYmVkcm9odW5nc2xhZ2UvZG9rdW1l bnRlL2JlZHJfZWxsYS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGw7xocnVuZ3Nhc3Npc3RlbnQi LCBmOiAiYmFvL3BhcmFncmFmXzEvYmVkcm9odW5nc2xhZ2UvZG9rdW1lbnRlL2JlZHJfYXNzLnBk ZiIgfSBdIH0sCiAgICAgICAgeyB0aXRsZTogIk5aIC8gWkdHIiwgZG9jczogWwogICAgICAgICAg eyBsOiAiTGVpdGxpbmllbiIsIGY6ICJiYW8vcGFyYWdyYWZfMS9iZWRyb2h1bmdzbGFnZS9kb2t1 bWVudGUvYmVkcl9sZWl0bGluaWVuLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkbDvGhydW5nc3dl Y2hzZWwiLCBmOiAiYmFvL3BhcmFncmFmXzEvYmVkcm9odW5nc2xhZ2UvZG9rdW1lbnRlL2JlZHJf ZnVlaHJ1bmdzd2VjaHNlbC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJaR0cxIiwgZjogImJhby9w YXJhZ3JhZl8xL2JlZHJvaHVuZ3NsYWdlL2Rva3VtZW50ZS9iZWRyX3pnZzEucGRmIiB9LAogICAg ICAgICAgeyBsOiAiWkdHMSAtIEUuLXNjaHdlbGxlIiwgZjogImJhby9wYXJhZ3JhZl8xL2JlZHJv aHVuZ3NsYWdlL2Rva3VtZW50ZS9iZWRyX2VpbnNjaHJlaXRfemdnMS5wZGYiIH0sCiAgICAgICAg ICB7IGw6ICJaR0cyIiwgZjogImJhby9wYXJhZ3JhZl8xL2JlZHJvaHVuZ3NsYWdlL2Rva3VtZW50 ZS9iZWRyX3pnZzIucGRmIiB9LAogICAgICAgICAgeyBsOiAiTm90enVncmlmZiIsIGY6ICJiYW8v cGFyYWdyYWZfMS9iZWRyb2h1bmdzbGFnZS9kb2t1bWVudGUvYmVkcl9ub3QucGRmIiB9LAogICAg ICAgICAgeyBsOiAiTlpHIC0gRS4tc2Nod2VsbGUiLCBmOiAiYmFvL3BhcmFncmFmXzEvYmVkcm9o dW5nc2xhZ2UvZG9rdW1lbnRlL2JlZHJfZWluc2NocmVpdF9ub3QucGRmIiB9IF0gfSwKICAgICAg ICB7IHRpdGxlOiAiRXJzdHNwcmVjaGVyIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiRXJzdHNw cmVjaGVyIiwgZjogImJhby9wYXJhZ3JhZl8xL2JlZHJvaHVuZ3NsYWdlL2Rva3VtZW50ZS9iZWRy X2Vyc3RzcHJlY2hlci5wZGYiIH0gXSB9CiAgICAgIF0gfSwKCiAgICB7IGtleTogInNwb250YW5l X2FrdGlvbmVuIiwgbGFiZWw6ICJTcG9udGFuZSBBa3Rpb25lbiIsIGNhdDogInAxIiwKICAgICAg b3ZlcnZpZXc6ICJiYW8tc3BvbnRhbmVfYWt0aW9uZW4tZGZsdCIsCiAgICAgIGRhc2g6IHsgZ3J1 bmRzYWV0emU6ICJiYW8tc3BvbnRhbmVfYWt0aW9uZW4tZ3J1bmRzYWV0emUiLCBvcmdhbmlncmFt bTogImJhby9wYXJhZ3JhZl8xL3Nwb250YW5lX2FrdGlvbmVuL2Rva3VtZW50ZS9zcG9udGFrdF9w aGFzZTFfb3JnYW5pZ3JhbW0ucGRmIiB9LAogICAgICBncm91cHM6IFsKICAgICAgICB7IHRpdGxl OiAiRWluc2F0emFrdGUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJTcG9udGFuZSBBa3Rpb25l biIsIGY6ICJiYW8vZG9rdW1lbnRlL2Jhb19ha3Rlbi9iYW9fc3BvbnRhbmVfYWt0aW9uZW4ucGRm IiB9LAogICAgICAgICAgeyBsOiAiQ2hlY2tsaXN0ZSIsIGY6ICJiYW8vcGFyYWdyYWZfMS9zcG9u dGFuZV9ha3Rpb25lbi9kb2t1bWVudGUvc3BvbnRha3RfY2hlY2tsaXN0ZS5wZGYiIH0sCiAgICAg ICAgICB7IGw6ICJGw7xocnVuZ3PDvGJlcm5haG1lIiwgZjogImJhby9wYXJhZ3JhZl8xL3Nwb250 YW5lX2FrdGlvbmVuL2Rva3VtZW50ZS9zcG9udGFrdF9mdWVocnVuZ3N1ZWJlcm5haG1lLnBkZiIg fSBdIH0sCiAgICAgICAgeyB0aXRsZTogIlBhcGllcmUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6 ICJQRiBQaGFzZSAxIiwgZjogImJhby9wYXJhZ3JhZl8xL3Nwb250YW5lX2FrdGlvbmVuL2Rva3Vt ZW50ZS9zcG9udGFrdF9wZi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGdW5rc3ByZWNoZXIgMTAi LCBmOiAiYmFvL3BhcmFncmFmXzEvc3BvbnRhbmVfYWt0aW9uZW4vZG9rdW1lbnRlL3Nwb250YWt0 X2Z1bmtfMTAucGRmIiB9LAogICAgICAgICAgeyBsOiAiRnVua3NwcmVjaGVyIDE1IiwgZjogImJh by9wYXJhZ3JhZl8xL3Nwb250YW5lX2FrdGlvbmVuL2Rva3VtZW50ZS9zcG9udGFrdF9mdW5rXzE1 LnBkZiIgfSwKICAgICAgICAgIHsgbDogIkFsYXJtaWVyZXIiLCBhOiAiYmFvLWFsYXJtLXNwb250 YWt0IiB9LAogICAgICAgICAgeyBsOiAiTGFnZWRhcnN0ZWxsdW5nIC8gRWxsYSIsIGY6ICJiYW8v cGFyYWdyYWZfMS9zcG9udGFuZV9ha3Rpb25lbi9kb2t1bWVudGUvc3BvbnRha3RfZWxsYS5wZGYi IH0sCiAgICAgICAgICB7IGw6ICJGw7xocnVuZ3Nhc3Npc3RlbnQiLCBmOiAiYmFvL3BhcmFncmFm XzEvc3BvbnRhbmVfYWt0aW9uZW4vZG9rdW1lbnRlL3Nwb250YWt0X2Fzcy5wZGYiIH0gXSB9LAog ICAgICAgIHsgdGl0bGU6ICJEZWZpbml0aW9uIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiU2Ft bWx1bmciLCBmOiAiYmFvL3BhcmFncmFmXzEvc3BvbnRhbmVfYWt0aW9uZW4vZG9rdW1lbnRlL2Rl ZmluaXRpb24ucGRmIiB9IF0gfQogICAgICBdIH0sCgogICAgLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSBCQUIgLyBWZXJrZWhyc2xhZ2VuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAg ICB7IGtleTogInR1bm5lbCIsIGxhYmVsOiAiVHVubmVsZXJlaWduaXMiLCBjYXQ6ICJiYWIiLAog ICAgICBvdmVydmlldzogImJhby10dW5uZWwtZGZsdCIsCiAgICAgIGRhc2g6IHsgZ3J1bmRzYWV0 emU6ICJiYW8tdHVubmVsLWdydW5kc2FldHplIiwgb3JnYW5pZ3JhbW06ICJiYW8vdmVya2Voci90 dW5uZWwvZG9rdW1lbnRlL3R1bm5lbF9waGFzZTFfb3JnYW5pZ3JhbW0ucGRmIiB9LAogICAgICBn cm91cHM6IFsKICAgICAgICB7IHRpdGxlOiAiRWluc2F0emFrdGUiLCBkb2NzOiBbCiAgICAgICAg ICB7IGw6ICJUdW5uZWxlcmVpZ25pcyIsIGY6ICJiYW8vZG9rdW1lbnRlL2Jhb19ha3Rlbi9iYW9f dHVubmVsLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkNoZWNrbGlzdGUiLCBmOiAiYmFvL3Zlcmtl aHIvdHVubmVsL2Rva3VtZW50ZS90dW5uZWxfY2hlY2tsaXN0ZS5wZGYiIH0gXSB9LAogICAgICAg IHsgdGl0bGU6ICJJbmZvcm1hdGlvbiIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkxlaXRzdGVs bGVucGFwaWVyIiwgZjogImJhby92ZXJrZWhyL3R1bm5lbC9kb2t1bWVudGUvdHVubmVsX2xlaXRz dGVsbGVucGFwaWVyLnBkZiIgfSwKICAgICAgICAgIHsgbDogIlR1bm5lbGZyZWlnYWJlIiwgZjog ImJhby92ZXJrZWhyL3R1bm5lbC9kb2t1bWVudGUvdHVubmVsX2ZyZWlnYWJlLnBkZiIgfSwKICAg ICAgICAgIHsgbDogIlR1bm5lbGZyZWlnYWJlIEtvbS4iLCBmOiAiYmFvL3ZlcmtlaHIvdHVubmVs L2Rva3VtZW50ZS90dW5uZWxfa29tbXVuaWthdGlvbl9mcmVpZ2FiZS5wZGYiIH0gXSB9CiAgICAg IF0gfSwKCiAgICB7IGtleTogImZhbHNjaGZhaHJlciIsIGxhYmVsOiAiRmFsc2NoZmFocmVyIiwg Y2F0OiAiYmFiIiwKICAgICAgb3ZlcnZpZXc6ICJiYW8tZmFsc2NoZmFocmVyLWRmbHQiLAogICAg ICBkYXNoOiB7IGdydW5kc2FldHplOiAiYmFvLWZhbHNjaGZhaHJlci1ncnVuZHNhZXR6ZSIsIG9y Z2FuaWdyYW1tOiAiYmFvL3ZlcmtlaHIvZmFsc2NoZmFocmVyL2Rva3VtZW50ZS9mYWxzY2hmYWhy ZXJfcGhhc2UxX29yZ2FuaWdyYW1tLnBkZiIgfSwKICAgICAgZ3JvdXBzOiBbCiAgICAgICAgeyB0 aXRsZTogIkVpbnNhdHpha3RlIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiRmFsc2NoZmFocmVy IiwgZjogImJhby92ZXJrZWhyL2ZhbHNjaGZhaHJlci9kb2t1bWVudGUvRmFsc2NoZmFocmVyLnBk ZiIgfSwKICAgICAgICAgIHsgbDogIkNoZWNrbGlzdGUiLCBmOiAiYmFvL3ZlcmtlaHIvZmFsc2No ZmFocmVyL2Rva3VtZW50ZS9mYWxzY2hmYWhyZXJfY2hlY2tsaXN0ZS5wZGYiIH0sCiAgICAgICAg ICB7IGw6ICJGdW5rc3ByZWNoZXIiLCBmOiAiYmFvL3ZlcmtlaHIvZmFsc2NoZmFocmVyL2Rva3Vt ZW50ZS9mYWxzY2hmYWhyZXJfZnVua2VyX3BoYXNlMS5wZGYiIH0gXSB9LAogICAgICAgIHsgdGl0 bGU6ICJJbmZvcm1hdGlvbiIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkVyc3Rhbm5haG1lIiwg ZjogImJhby92ZXJrZWhyL2ZhbHNjaGZhaHJlci9kb2t1bWVudGUvZmFsc2NoZmFocmVyXzA2X2No ZWNrbGlzdGVfZXJzdGFubmFobWUucGRmIiB9LAogICAgICAgICAgeyBsOiAiRUEgQXVma2zDpHJ1 bmciLCBmOiAiYmFvL3ZlcmtlaHIvZmFsc2NoZmFocmVyL2Rva3VtZW50ZS9mYWxzY2hmYWhyZXJf MDdfYXJiZWl0c2JsYXR0X2VhX2F1ZmtsYWVydW5nLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkVB IE9wZXIuIE1hw59uYWhtZW4iLCBmOiAiYmFvL3ZlcmtlaHIvZmFsc2NoZmFocmVyL2Rva3VtZW50 ZS9mYWxzY2hmYWhyZXJfMDhfYXJiZWl0c2JsYXR0X2VhX29wZXJhdGl2ZV9tYcOfbmFobWVuLnBk ZiIgfSwKICAgICAgICAgIHsgbDogIkVBIEVybWl0dGx1bmdlbiIsIGY6ICJiYW8vdmVya2Voci9m YWxzY2hmYWhyZXIvZG9rdW1lbnRlL2ZhbHNjaGZhaHJlcl8wOV9hcmJlaXRzYmxhdHRfZWFfZXJt aXR0bHVuZ2VuLnBkZiIgfSwKICAgICAgICAgIHsgbDogIlNwZXJyZSAtIEtvbnplcHQiLCBmOiAi YmFvL3ZlcmtlaHIvZmFsc2NoZmFocmVyL2Rva3VtZW50ZS9mYWxzY2hmYWhyZXJfMTBfa29uemVw dF9zdGF0aW9uYWVyZV9zcGVycmUucGRmIiB9LAogICAgICAgICAgeyBsOiAiU3BlcnJlIC0gQXVm dHJhZyIsIGY6ICJiYW8vdmVya2Voci9mYWxzY2hmYWhyZXIvZG9rdW1lbnRlL2ZhbHNjaGZhaHJl cl8xMV9hdWZ0cmFnX3N0YXRpb25hZXJlX3NwZXJyZS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJT cGVycnN0ZWxsZW7DvGJlcnNpY2h0IiwgZjogImJhby92ZXJrZWhyL2ZhbHNjaGZhaHJlci9kb2t1 bWVudGUvU3BlcnJzdGVsbGVuw7xiZXJzaWNodC5wZGYiIH0gXSB9CiAgICAgIF0gfSwKCiAgICB7 IGtleTogInZlcmZvbGd1bmdzZmFocnQiLCBsYWJlbDogIlZlcmZvbGd1bmdzZmFocnQiLCBjYXQ6 ICJiYWIiLAogICAgICBvdmVydmlldzogImJhby12ZXJmb2xndW5nc2ZhaHJ0LWRmbHQiLAogICAg ICBkYXNoOiB7IGdydW5kc2FldHplOiAiYmFvLXZlcmZvbGd1bmdzZmFocnQtZ3J1bmRzYWV0emUi LCBvcmdhbmlncmFtbTogImJhby92ZXJrZWhyL3ZlcmZvbGd1bmdzZmFocnQvZG9rdW1lbnRlL3Zl cmZvbGd1bmdfcGhhc2UxX29yZ2FuaWdyYW1tLnBkZiIgfSwKICAgICAgZ3JvdXBzOiBbCiAgICAg ICAgeyB0aXRsZTogIkVpbnNhdHpha3RlIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiVmVyZm9s Z3VuZ3NmYWhydCIsIGY6ICJiYW8vZG9rdW1lbnRlL2Jhb19ha3Rlbi9iYW9fdmVyZm9sZ3VuZ3Nm YWhydC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJDaGVja2xpc3RlIiwgZjogImJhby92ZXJrZWhy L3ZlcmZvbGd1bmdzZmFocnQvZG9rdW1lbnRlL3ZlcmZvbGd1bmdfY2hlY2tsaXN0ZS5wZGYiIH0s CiAgICAgICAgICB7IGw6ICJMYW5kZXN0ZWlsIEsiLCBmOiAiYmFvL3ZlcmtlaHIvdmVyZm9sZ3Vu Z3NmYWhydC9kb2t1bWVudGUvdmVyZm9sZ3VuZ19sYW5kZXN0ZWlsX2sucGRmIiB9LAogICAgICAg ICAgeyBsOiAiRnVua2VyIiwgZjogImJhby92ZXJrZWhyL3ZlcmZvbGd1bmdzZmFocnQvZG9rdW1l bnRlL3ZlcmZvbGd1bmdfZnVua2VyX3BoYXNlMS5wZGYiIH0gXSB9LAogICAgICAgIHsgdGl0bGU6 ICJBYnNjaG5pdHRlIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiRUEgVmVyZm9sZ3VuZyIsIGY6 ICJiYW8vdmVya2Voci92ZXJmb2xndW5nc2ZhaHJ0L2Rva3VtZW50ZS92ZXJmb2xndW5nX2VhX3Zl cmZvbGd1bmcucGRmIiB9LAogICAgICAgICAgeyBsOiAiRmx1Y2h0YmVyZWljaCIsIGY6ICJiYW8v dmVya2Voci92ZXJmb2xndW5nc2ZhaHJ0L2Rva3VtZW50ZS92ZXJmb2xndW5nX2VhX2ZsdWNodGJl cmVpY2gucGRmIiB9LAogICAgICAgICAgeyBsOiAiRXJtaXR0bHVuZ2VuIiwgZjogImJhby92ZXJr ZWhyL3ZlcmZvbGd1bmdzZmFocnQvZG9rdW1lbnRlL3ZlcmZvbGd1bmdfZWFfZXJtaXR0bHVuZ2Vu LnBkZiIgfSBdIH0sCiAgICAgICAgeyB0aXRsZTogIk1hw59uYWhtZW4iLCBkb2NzOiBbCiAgICAg ICAgICB7IGw6ICJBUyBiZXNldHplbiIsIGY6ICJiYW8vdmVya2Voci92ZXJmb2xndW5nc2ZhaHJ0 L2Rva3VtZW50ZS92ZXJmb2xndW5nX2Jlc2V0emVuX2FiZmFocnQucGRmIiB9LAogICAgICAgICAg eyBsOiAiQVMgc3BlcnJlbiIsIGY6ICJiYW8vdmVya2Voci92ZXJmb2xndW5nc2ZhaHJ0L2Rva3Vt ZW50ZS92ZXJmb2xndW5nX3NwZXJyZW5fYWJmYWhydC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJN b2JpbGUgU3BlcnJlIiwgZjogImJhby92ZXJrZWhyL3ZlcmZvbGd1bmdzZmFocnQvZG9rdW1lbnRl L3ZlcmZvbGd1bmdfbW9iaWxlX3NwZXJyZS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJTdGF0aW9u w6RyZSBTcGVycmUiLCBmOiAiYmFvL3ZlcmtlaHIvdmVyZm9sZ3VuZ3NmYWhydC9kb2t1bWVudGUv dmVyZm9sZ3VuZ19zdGF0aW9uYWVyZV9zcGVycmUucGRmIiB9LAogICAgICAgICAgeyBsOiAiQXVm dHJhZyBTdGF0LiBTcGVycmUiLCBmOiAiYmFvL3ZlcmtlaHIvdmVyZm9sZ3VuZ3NmYWhydC9kb2t1 bWVudGUvdmVyZm9sZ3VuZ19zdGF0aW9uYWVyZV9zcGVycmVfYXVmdHJhZy5wZGYiIH0sCiAgICAg ICAgICB7IGw6ICJTcGVycnN0ZWxsZW7DvGJlcnNpY2h0IiwgZjogImJhby92ZXJrZWhyL3ZlcmZv bGd1bmdzZmFocnQvZG9rdW1lbnRlL1NwZXJyc3RlbGxlbsO8YmVyc2ljaHQucGRmIiB9IF0gfQog ICAgICBdIH0sCgogICAgeyBrZXk6ICJzdG9lcmZhZWxsZSIsIGxhYmVsOiAiU3TDtnJmw6RsbGUg QkFCIiwgY2F0OiAiYmFiIiwKICAgICAgb3ZlcnZpZXc6ICJiYW8tc3RvZXJmYWVsbGUtZGZsdCIs CiAgICAgIGRhc2g6IHsgZ3J1bmRzYWV0emU6ICJiYW8tc3RvZXJmYWVsbGUtZ3J1bmRzYWV0emUi LCBvcmdhbmlncmFtbTogImJhby92ZXJrZWhyL3N0b2VyZmFlbGxlL2Rva3VtZW50ZS9zdG9lcmZh bGxfcGhhc2UxX29yZ2FuaWdyYW1tLnBkZiIgfSwKICAgICAgZ3JvdXBzOiBbCiAgICAgICAgeyB0 aXRsZTogIkVpbnNhdHpha3RlIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiU3TDtnJmw6RsbGUi LCBmOiAiYmFvL2Rva3VtZW50ZS9iYW9fYWt0ZW4vYmFvX3N0b2VyZmFlbGxlX2JhYi5wZGYiIH0s CiAgICAgICAgICB7IGw6ICJDaGVja2xpc3RlIiwgZjogImJhby92ZXJrZWhyL3N0b2VyZmFlbGxl L2Rva3VtZW50ZS9zdG9lcmZhZWxsZV9jaGVja2xpc3RlLnBkZiIgfSwKICAgICAgICAgIHsgbDog IkxlaXRzdGVsbGVucGFwaWVyIiwgZjogImJhby92ZXJrZWhyL3N0b2VyZmFlbGxlL2Rva3VtZW50 ZS9zdG9lcmZhZWxsZV9sZWl0c3RlbGxlbnBhcGllci5wZGYiIH0gXSB9LAogICAgICAgIHsgdGl0 bGU6ICJJbmZvcm1hdGlvbiIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkxLVyBXaW50ZXJmYWhy dmVyYm90IiwgZjogImJhby92ZXJrZWhyL3N0b2VyZmFlbGxlL2Rva3VtZW50ZS9zdG9lcmZhZWxs ZV9sa3dfd2ludGVyZmFocnZlcmJvdC5wZGYiIH0gXSB9CiAgICAgIF0gfSwKCiAgICAvKiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTb25kZXJsYWdlbiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gKi8KICAgIHsga2V5OiAibm90cnVmYXVzZmFsbCIsIGxhYmVsOiAiTm90cnVmYXVz ZmFsbCAxMTAiLCBjYXQ6ICJub3RydWYiLAogICAgICBvdmVydmlldzogImJhby1ub3RydWZhdXNm YWxsLWRmbHQiLAogICAgICBncm91cHM6IFsKICAgICAgICB7IHRpdGxlOiAiRWluc2F0emFrdGUi LCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJFaW5zYXR6YWt0ZSIsIGY6ICJiYW8vbm90cnVmYXVz ZmFsbC9kb2t1bWVudGUvRWluc2F0emFrdGVfTm90cnVmYXVzZmFsbC5wZGYiIH0sCiAgICAgICAg ICB7IGw6ICJHcmFwaGlzY2hlciBCZWZlaGwiLCBmOiAiYmFvL25vdHJ1ZmF1c2ZhbGwvZG9rdW1l bnRlL0FubGFnZV8xX0dyYXBoaXNjaGVyX0JlZmVobC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJL T00tUGxhbiIsIGY6ICJiYW8vbm90cnVmYXVzZmFsbC9kb2t1bWVudGUvQW5sYWdlXzJfS29tbXVu aWthdGlvbnNwbGFuLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkNoZWNrbGlzdGUiLCBmOiAiYmFv L25vdHJ1ZmF1c2ZhbGwvZG9rdW1lbnRlL0NoZWNrbGlzdGUucGRmIiB9IF0gfSwKICAgICAgICB7 IHRpdGxlOiAiS29uemVwdGUgLyBBbmxhdWZwdW5rdGUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6 ICJQcsOkc2VuemtvbnplcHQgUEkgMSIsIGY6ICJiYW8vbm90cnVmYXVzZmFsbC9kb2t1bWVudGUv QW5sYWdlXzNfUEkxX0FubGF1ZnB1bmt0ZV9QcsOkc2VuemtvbnplcHQucGRmIiB9LAogICAgICAg ICAgeyBsOiAiUHLDpHNlbnprb256ZXB0IFBJIDIiLCBmOiAiYmFvL25vdHJ1ZmF1c2ZhbGwvZG9r dW1lbnRlL0FubGFnZV80X1BJMl9BbmxhdWZwdW5rdGVfUHLDpHNlbnprb256ZXB0LnBkZiIgfSwK ICAgICAgICAgIHsgbDogIlByw6RzZW56a29uemVwdCBQSSAzIiwgZjogImJhby9ub3RydWZhdXNm YWxsL2Rva3VtZW50ZS9BbmxhZ2VfNV9QSTNfQW5sYXVmcHVua3RlX1Byw6RzZW56a29uemVwdC5w ZGYiIH0sCiAgICAgICAgICB7IGw6ICJQcsOkc2VuemtvbnplcHQgVkkgMyIsIGY6ICJiYW8vbm90 cnVmYXVzZmFsbC9kb2t1bWVudGUvQW5sYWdlXzZfVkkzX1Byw6RzZW56a29uemVwdC5wZGYiIH0g XSB9LAogICAgICAgIHsgdGl0bGU6ICJEb2t1bWVudGUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6 ICJQcm96ZXNzYmVzY2hyZWlidW5nIiwgZjogImJhby9ub3RydWZhdXNmYWxsL2Rva3VtZW50ZS9B bmxhZ2VfOF9Qcm96ZXNzYmVzY2hyZWlidW5nX3RlcnRpYWVyZV9SdWVja2ZhbGxlYmVuZS5wZGYi IH0sCiAgICAgICAgICB7IGw6ICJSw7xja2ZhbGxlYmVuZW4gR3JhZmlrIiwgZjogImJhby9ub3Ry dWZhdXNmYWxsL2Rva3VtZW50ZS9BbmxhZ2VfODFfUHJvemVzc2VfUnVlY2tmYWxsZWJlbmVuX05v dHJ1Zl8xMTAucGRmIiB9IF0gfQogICAgICBdIH0KICBdLAoKICAvKiBJbmZvIC8gU2VydmljZSDi gJMgRG9rdW1lbnRlIGF1cyBkZW4gYmFvX3N0YXJ0LU1vZGFsZW4gKGxva2FsZSBEYXRlaWVuKSAq LwogIGluZm86IFsKICAgIHsga2V5OiAiYmFvX2lubmVuX2F1c3NlbiIsIGxhYmVsOiAiQkFPIGlu bmVyLSAmIGF1w59lcmhhbGIiLCAgICAgICAgdHlwZTogImFydGljbGUiLCBhcnQ6ICJiYW8taW5m by1iYW9faW5uZW5fYXVzc2VuIiB9LAogICAgeyBrZXk6ICJoaW53ZWlzYXVmbmFobWUiLCAgbGFi ZWw6ICJIaW53ZWlzYXVmbmFobWUgQW5zY2hsYWdzbGFnZSIsIHR5cGU6ICJhcnRpY2xlIiwgYXJ0 OiAiYmFvLWluZm8taGlud2Vpc2F1Zm5haG1lIiB9LAogICAgeyBrZXk6ICJmdW5rX3pnZ19ueiIs ICAgICAgbGFiZWw6ICJGdW5rc3ByZWNoZXIgWkdHIC8gTloiLCAgICAgICAgIHR5cGU6ICJhcnRp Y2xlIiwgYXJ0OiAiYmFvLWluZm8tZnVua196Z2dfbnoiIH0sCiAgICB7IGtleTogInBtayIsICAg ICAgICAgICAgICBsYWJlbDogIlBvbGl0aXNjaCBtb3RpdmllcnRlIEtyaW1pbmFsaXTDpHQiLCB0 eXBlOiAiYXJ0aWNsZSIsIGFydDogImJhby1pbmZvLXBtayIgfSwKICAgIHsga2V5OiAidG9ldHVu ZyIsICAgICAgICAgIGxhYmVsOiAiVm9yc8OkdHpsaWNoZSBUw7Z0dW5nIiwgICAgICAgICAgIHR5 cGU6ICJhcnRpY2xlIiwgYXJ0OiAiYmFvLWluZm8tdG9ldHVuZyIgfSwKICAgIHsga2V5OiAiYnRt IiwgICAgICAgICAgICAgIGxhYmVsOiAiSGVyc3RlbGx1bmcgdm9uIEJUTSIsICAgICAgICAgICB0 eXBlOiAiYXJ0aWNsZSIsIGFydDogImJhby1pbmZvLWJ0bSIgfSwKICAgIHsga2V5OiAib2siLCAg ICAgICAgICAgICAgIGxhYmVsOiAiT3JnYW5pc2llcnRlIEtyaW1pbmFsaXTDpHQiLCAgICAgdHlw ZTogImFydGljbGUiLCBhcnQ6ICJiYW8taW5mby1vayIgfSwKICAgIHsga2V5OiAid2lydHNjaGFm dCIsICAgICAgIGxhYmVsOiAiV2lydHNjaGFmdHNzdHJhZnRhdGVuIiwgICAgICAgICB0eXBlOiAi YXJ0aWNsZSIsIGFydDogImJhby1pbmZvLXdpcnRzY2hhZnQiIH0sCiAgICB7IGtleTogImJsYW5r byIsICAgICAgICAgICBsYWJlbDogIkJsYW5rby1Gb3JtdWxhcmUiLCAgICAgICAgICAgICAgdHlw ZTogImFydGljbGUiLCBhcnQ6ICJiYW8taW5mby1ibGFua28iIH0sCiAgICB7IGtleTogIm5vdGZh bGxvcmRuZXIiLCAgICBsYWJlbDogIk5vdGZhbGxvcmRuZXIgU2NodWxlIiwgICAgICAgICAgdHlw ZTogImFydGljbGUiLCBhcnQ6ICJiYW8taW5mby1ub3RmYWxsb3JkbmVyIiB9LAogICAgeyBrZXk6 ICJsb2NrZG93biIsICAgICAgICAgbGFiZWw6ICJMb2NrZG93biIsICAgICAgICAgICAgICAgICAg ICAgIHR5cGU6ICJwZGYiLCBmaWxlOiAiYmFvL2Rva3VtZW50ZS9sb2NrZG93bi5wZGYiIH0KICBd LAoKICAvKiBLcsOkZnRlc2FtbWVsc3RlbGxlbiAoS1NTVCkg4oCTIFBERnMgbWl0IEFuc2Nocmlm dCAqLwogIGtzc3Q6IFsKICAgIHsgZ3JvdXA6ICJQSSAxIiwgbGFiZWw6ICJQUCBEb3J0bXVuZCIs ICAgICAgICAgICAgICAgICAgICAgYWRkcjogIjQ0MTM5IERvcnRtdW5kLCBNYXJrZ3JhZmVuc3Ry LiAxMDIiLCAgIGZpbGU6ICJiYW8vaW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tz YW0xLnBkZiIgfSwKICAgIHsgZ3JvdXA6ICJQSSAxIiwgbGFiZWw6ICJMZW9wb2xkLUhvZXNjaC1C ZXJ1ZnNrb2xsZWciLCAgICAgYWRkcjogIjQ0MTM1IERvcnRtdW5kLCBHcm9uYXVzdHIuIDQiLCAg ICAgICAgIGZpbGU6ICJiYW8vaW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tzYW0y LnBkZiIgfSwKICAgIHsgZ3JvdXA6ICJQSSAxIiwgbGFiZWw6ICJNYXgtUGxhbmNrLUd5bW5hc2l1 bSIsICAgICAgICAgICAgYWRkcjogIjQ0MTM5IERvcnRtdW5kLCBBcmRleXN0ci4gNzAtNzIiLCAg ICAgIGZpbGU6ICJiYW8vaW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tzYW0zLnBk ZiIgfSwKICAgIHsgZ3JvdXA6ICJQSSAxIiwgbGFiZWw6ICJKb2hhbm4tR3V0ZW5iZXJnLVJlYWxz Y2h1bGUiLCAgICAgYWRkcjogIjQ0MjY1IERvcnRtdW5kLCBBbSBMaWViZXJmZWxkIDEzIiwgICAg IGZpbGU6ICJiYW8vaW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tzYW00LnBkZiIg fSwKICAgIHsgZ3JvdXA6ICJQSSAyIiwgbGFiZWw6ICJIZWlzZW5iZXJnLUd5bW5hc2l1bSIsICAg ICAgICAgICAgYWRkcjogIjQ0MzM5IERvcnRtdW5kLCBQcmV1w59pc2NoZSBTdHIuIDIyNSIsICBm aWxlOiAiYmFvL2luZm9fc2VydmljZS9rcmFlZnRlc2FtbWVsc3RlbGxlbi9Lc2FtNS5wZGYiIH0s CiAgICB7IGdyb3VwOiAiUEkgMiIsIGxhYmVsOiAiQmVydC1CcmVjaHQtR3ltbmFzaXVtIiwgICAg ICAgICAgIGFkZHI6ICI0NDM3OSBEb3J0bXVuZCwgQm9ja2VuZmVsZGVyIFN0ci4gNTZhIiwgZmls ZTogImJhby9pbmZvX3NlcnZpY2Uva3JhZWZ0ZXNhbW1lbHN0ZWxsZW4vS3NhbTYucGRmIiB9LAog ICAgeyBncm91cDogIlBJIDIiLCBsYWJlbDogIldlc3Rmw6RsaXNjaGVzIEluZHVzdHJpZW11c2V1 bSIsICAgYWRkcjogIjQ0Mzg4IERvcnRtdW5kLCBHcnViZW53ZWcgNSIsICAgICAgICAgIGZpbGU6 ICJiYW8vaW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tzYW03LnBkZiIgfSwKICAg IHsgZ3JvdXA6ICJQSSAyIiwgbGFiZWw6ICJFREcgLSBFbnRzb3JndW5nIERvcnRtdW5kIiwgICAg ICAgYWRkcjogIjQ0MTQ3IERvcnRtdW5kLCBTdW5kZXJ3ZWcgOTgiLCAgICAgICAgIGZpbGU6ICJi YW8vaW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tzYW04LnBkZiIgfSwKICAgIHsg Z3JvdXA6ICJQSSAzIiwgbGFiZWw6ICJHZXNjaHdpc3Rlci1TY2hvbGwtR2VzYW10c2NodWxlIiwg YWRkcjogIjQ0MzA5IERvcnRtdW5kLCBIYWZlcmZlbGRzdHIuIDMtNSIsICAgIGZpbGU6ICJiYW8v aW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tzYW05LnBkZiIgfSwKICAgIHsgZ3Jv dXA6ICJQSSAzIiwgbGFiZWw6ICJLw6R0aGUtS29sbHdpdHotR2VzYW10c2NodWxlIiwgICAgIGFk ZHI6ICI0NDUzMiBMw7xuZW4sIERhbW13aWVzZSA4IiwgICAgICAgICAgICAgZmlsZTogImJhby9p bmZvX3NlcnZpY2Uva3JhZWZ0ZXNhbW1lbHN0ZWxsZW4vS3NhbTEwLnBkZiIgfQogIF0KfTsK ### FILE: assets/js/features/article.js | 24156 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgYXJ0aWNsZS5qcwogICBBcnRpa2Vs LUF1dGhvcmluZzogRWluZ2FiZWZvcm11bGFyICsga2xlaW5lciBXWVNJV1lHLUVkaXRvci4KICAg RWluc29ydGllcnVuZyBpbiBlaW5lbiBOYXZpZ2F0aW9uc2JlcmVpY2ggKG9wdGlvbmFsIGFscyBT dWJsaW5rKSwKICAgU3BlaWNoZXJuIGFscyBkYXRlbmdldHJpZWJlbmVyIEFydGlrZWwgKEtub3Rl biBpbiBkYXRhLW5hdi5qcywgQm9keQogICBhdXNnZWxhZ2VydCBuYWNoIGRva3VtZW50ZS9qc29u L2FydGlrZWwuanMpLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKGZ1bmN0aW9uIChQKSB7CiAgInVzZSBz dHJpY3QiOwogIHZhciBlbCA9IFAuZWwsICQgPSBQLiQsIGljID0gUC5pYywgZXNjYXBlSHRtbCA9 IFAuZXNjYXBlSHRtbDsKCiAgdmFyIGVkaXRpbmcgPSBudWxsOyAgICAgLy8gYmVzdGVoZW5kZXIg QXJ0aWtlbC1OYXYtRWludHJhZyBvZGVyIG51bGwgKG5ldSkKICB2YXIgaW5QbGFjZSA9IGZhbHNl OyAgICAvLyBJbi1QbGFjZS1NaWdyYXRpb246IGhyZWYtS25vdGVuIGFtIHNlbGJlbiBOYXYtUGxh dHogenVtIEFydGlrZWwgdW13YW5kZWxuCiAgdmFyIHBlbmRpbmdNaWcgPSBudWxsOyAgLy8gdm9y YmVsZWd0ZXMgQXJ0aWtlbC1PYmpla3QgYXVzIGRlciBNaWdyYXRpb24gKGVpbm1hbGlnIGtvbnN1 bWllcnQpCiAgdmFyIG1pZ1NvdXJjZSA9ICIiOyAgICAgLy8gUXVlbGxwZmFkIGRlcyBtaWdyaWVy dGVuIERva3VtZW50cyAoLT4gS25vdGVuLl9taWdTb3VyY2UsIHN0YWJpbGUgWnVvcmRudW5nKQoK ICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KICAgICBUaW55TUNFIChzZWxmLWhvc3RlZCwgR1BMKSDigJQgcHJp bWFlcmUgRWRpdG9yLUVuZ2luZSBmdWVyIFJlZGFrdGV1cmUuCiAgICAgV2lyZCBudXIgaW0gTGl2 ZS1Nb2R1cyAodWViZXIgZGVuIFBmbGVnZS1IZWxmZXIpIGdlbGFkZW4uIEZhZWxsdCBkZXIKICAg ICBMb2FkIGF1cyBvZGVyIGlzdCBtYW4gbmljaHQgbGl2ZSwgZ3JlaWZ0IGRlciBlaW5nZWJhdXRl IExlaWNodC1FZGl0b3IKICAgICAoI2FydC1ib2R5LCBjb250ZW50ZWRpdGFibGUpIGFscyBGYWxs YmFjay4KICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICB2YXIgdG1jZVJlYWR5ID0gZmFsc2UsIHRtY2VM b2FkaW5nID0gZmFsc2UsIHRtY2VFZGl0b3IgPSBudWxsOwoKICBQLmxvYWRFZGl0b3IgPSBmdW5j dGlvbiAoKSB7CiAgICBpZiAoIVAubGl2ZSB8fCB0bWNlUmVhZHkgfHwgdG1jZUxvYWRpbmcpIHJl dHVybjsKICAgIGlmICh3aW5kb3cudGlueW1jZSkgeyB0bWNlUmVhZHkgPSB0cnVlOyBpbml0VG1j ZShmdW5jdGlvbiAoKSB7fSk7IHJldHVybjsgfQogICAgdG1jZUxvYWRpbmcgPSB0cnVlOwogICAg dmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgIHMuc3JjID0gImFz c2V0cy92ZW5kb3IvdGlueW1jZS90aW55bWNlLm1pbi5qcyI7IHMucmVmZXJyZXJQb2xpY3kgPSAi b3JpZ2luIjsKICAgIHMub25sb2FkID0gZnVuY3Rpb24gKCkgeyB0bWNlUmVhZHkgPSB0cnVlOyBp bml0VG1jZShmdW5jdGlvbiAoKSB7fSk7IH07CiAgICBzLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7 IHRtY2VMb2FkaW5nID0gZmFsc2U7IFAudG9hc3QoIlByb2ZpLUVkaXRvciBuaWNodCBsYWRiYXIg 4oCUIGVpbmZhY2hlciBFZGl0b3IgYWt0aXYuIiwgdHJ1ZSk7IH07CiAgICBkb2N1bWVudC5oZWFk LmFwcGVuZENoaWxkKHMpOwogIH07CgogIGZ1bmN0aW9uIGVuc3VyZUFyZWEoKSB7CiAgICB2YXIg YSA9ICQoIiNhcnQtdG1jZSIpOwogICAgaWYgKCFhKSB7IGEgPSBlbCgidGV4dGFyZWEiLCB7IGlk OiAiYXJ0LXRtY2UiIH0pOyB2YXIgdyA9ICQoIiNhcnQtd3lzaXd5ZyIpOyB3LnBhcmVudE5vZGUu aW5zZXJ0QmVmb3JlKGEsIHcubmV4dFNpYmxpbmcpOyB9CiAgICByZXR1cm4gYTsKICB9CiAgZnVu Y3Rpb24gaW5pdFRtY2UoY2IpIHsKICAgIGlmICh0bWNlRWRpdG9yKSB7IGNiKHRtY2VFZGl0b3Ip OyByZXR1cm47IH0KICAgIGlmICghd2luZG93LnRpbnltY2UpIHsgY2IobnVsbCk7IHJldHVybjsg fQogICAgZW5zdXJlQXJlYSgpOwogICAgd2luZG93LnRpbnltY2UuaW5pdCh7CiAgICAgIHNlbGVj dG9yOiAiI2FydC10bWNlIiwKICAgICAgbGljZW5zZV9rZXk6ICJncGwiLAogICAgICBwcm9tb3Rp b246IGZhbHNlLCBicmFuZGluZzogZmFsc2UsIG1lbnViYXI6IGZhbHNlLCBzdGF0dXNiYXI6IGZh bHNlLAogICAgICBoZWlnaHQ6IDU2MCwgdWlfbW9kZTogInNwbGl0IiwgY29udmVydF91cmxzOiBm YWxzZSwKICAgICAgc2tpbjogIm94aWRlLWRhcmsiLCBjb250ZW50X2NzczogImRhcmsiLAogICAg ICBsYW5ndWFnZTogImRlIiwKICAgICAgcGx1Z2luczogImFkdmxpc3QgYXV0b2xpbmsgbGlzdHMg bGluayBpbWFnZSBjaGFybWFwIHNlYXJjaHJlcGxhY2UgdmlzdWFsYmxvY2tzIGNvZGUgZnVsbHNj cmVlbiBtZWRpYSB0YWJsZSB3b3JkY291bnQgaGVscCBxdWlja2JhcnMiLAogICAgICB0b29sYmFy X21vZGU6ICJ3cmFwIiwKICAgICAgdG9vbGJhcjogInVuZG8gcmVkbyB8IGJsb2NrcyBmb250c2l6 ZWlucHV0IHwgYm9sZCBpdGFsaWMgdW5kZXJsaW5lIHN0cmlrZXRocm91Z2ggfCBmb3JlY29sb3Ig YmFja2NvbG9yIHwgIiArCiAgICAgICAgImFsaWdubGVmdCBhbGlnbmNlbnRlciBhbGlnbnJpZ2h0 IGFsaWduanVzdGlmeSB8IGJ1bGxpc3QgbnVtbGlzdCBvdXRkZW50IGluZGVudCB8IGJsb2NrcXVv dGUgaHIgfCAiICsKICAgICAgICAibGluayBpbnRsaW5rIGltYWdlIGF0dGFjaHBkZiBtZWRpYSB0 YWJsZSBjaGFybWFwIHwgcmVtb3ZlZm9ybWF0IHwgc2VhcmNocmVwbGFjZSB2aXN1YWxibG9ja3Mg ZnVsbHNjcmVlbiBjb2RlIHwgaGVscCIsCiAgICAgIGJsb2NrX2Zvcm1hdHM6ICJBYnNhdHo9cDsg w5xiZXJzY2hyaWZ0PWgyOyBad2lzY2hlbnRpdGVsPWgzOyBaaXRhdD1ibG9ja3F1b3RlIiwKICAg ICAgcXVpY2tiYXJzX2luc2VydF90b29sYmFyOiBmYWxzZSwgcXVpY2tiYXJzX3NlbGVjdGlvbl90 b29sYmFyOiAiYm9sZCBpdGFsaWMgfCBxdWlja2xpbmsiLAogICAgICBhdXRvbWF0aWNfdXBsb2Fk czogdHJ1ZSwgcGFzdGVfZGF0YV9pbWFnZXM6IHRydWUsCiAgICAgIGltYWdlc191cGxvYWRfaGFu ZGxlcjogZnVuY3Rpb24gKGJsb2JJbmZvKSB7CiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1 bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgIFAudXBsb2FkQXNzZXQoYmxvYklu Zm8uYmxvYigpLCBmdW5jdGlvbiAoZXJyLCByZXMpIHsKICAgICAgICAgICAgaWYgKGVycikgcmVq ZWN0KHsgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgIlVwbG9hZCBmZWhsZ2VzY2hsYWdlbiIsIHJl bW92ZTogdHJ1ZSB9KTsKICAgICAgICAgICAgZWxzZSByZXNvbHZlKHJlcy5wYXRoKTsKICAgICAg ICAgIH0sIGJsb2JJbmZvLmZpbGVuYW1lKCkpOwogICAgICAgIH0pOwogICAgICB9LAogICAgICBz ZXR1cDogZnVuY3Rpb24gKGVkKSB7CiAgICAgICAgZWQudWkucmVnaXN0cnkuYWRkQnV0dG9uKCJh dHRhY2hwZGYiLCB7CiAgICAgICAgICB0ZXh0OiAiUERGIiwgdG9vbHRpcDogIlBERiBhbmjDpG5n ZW4iLAogICAgICAgICAgb25BY3Rpb246IGZ1bmN0aW9uICgpIHsgcGlja0ZpbGUoImFwcGxpY2F0 aW9uL3BkZiwucGRmIiwgZnVuY3Rpb24gKGYpIHsgaW5zZXJ0UGRmSW50byhlZCwgZik7IH0pOyB9 CiAgICAgICAgfSk7CiAgICAgICAgZWQudWkucmVnaXN0cnkuYWRkQnV0dG9uKCJpbnRsaW5rIiwg ewogICAgICAgICAgdGV4dDogIuKGqiBQb3J0YWwiLCB0b29sdGlwOiAiSW50ZXJuZXIgTGluayAo YXVmIFBvcnRhbC1JbmhhbHQpIiwKICAgICAgICAgIG9uQWN0aW9uOiBmdW5jdGlvbiAoKSB7IGlm IChQLm9wZW5OYXZQaWNrZXIpIFAub3Blbk5hdlBpY2tlcihmdW5jdGlvbiAocikgeyBlZC5pbnNl cnRDb250ZW50KCc8YSBocmVmPSJwb3J0YWw6JyArIHIuX2lkICsgJyI+JyArIGVzY2FwZUh0bWwo ci5sYWJlbCkgKyAiPC9hPiIpOyB9KTsgfQogICAgICAgIH0pOwogICAgICAgIGVkLm9uKCJpbml0 IiwgZnVuY3Rpb24gKCkgeyB0bWNlRWRpdG9yID0gZWQ7IHZhciB3ID0gJCgiI2FydC13eXNpd3ln Iik7IGlmICh3KSB3LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7IGNiKGVkKTsgfSk7CiAgICAgIH0K ICAgIH0pOwogIH0KICBmdW5jdGlvbiBpbnNlcnRQZGZJbnRvKGVkLCBmaWxlKSB7CiAgICBQLnRv YXN0KCJQREYgd2lyZCBob2NoZ2VsYWRlbuKApiIpOwogICAgUC51cGxvYWRBc3NldChmaWxlLCBm dW5jdGlvbiAoZXJyLCByZXMpIHsKICAgICAgaWYgKGVycikgeyBQLnRvYXN0KGVyci5tZXNzYWdl IHx8ICJVcGxvYWQgZmVobGdlc2NobGFnZW4uIiwgdHJ1ZSk7IHJldHVybjsgfQogICAgICBlZC5p bnNlcnRDb250ZW50KCc8ZmlndXJlIGNsYXNzPSJlbWJlZCBwZGYiIGRhdGEtc3JjPSInICsgcmVz LnBhdGggKyAnIiBjb250ZW50ZWRpdGFibGU9ImZhbHNlIj4nICsKICAgICAgICAnPHNwYW4gY2xh c3M9InBkZi1uYW1lIj4nICsgZXNjYXBlSHRtbChmaWxlLm5hbWUpICsgJzwvc3Bhbj4nICsKICAg ICAgICAnPHNwYW4gY2xhc3M9InBkZi1tZXRhIj5QREYgwrcga2xpY2tlbiB6dW0gVmVyZ3LDtnNz ZXJuPC9zcGFuPjwvZmlndXJlPjxwPiZuYnNwOzwvcD4nKTsKICAgICAgUC50b2FzdCgiUERGIGFu Z2Vow6RuZ3QuIik7CiAgICB9LCBmaWxlLm5hbWUpOwogIH0KCiAgLy8gV2FuZGVsdCBuYWNrdGUg PGltZz4gaW4gdW5zZXJlIFRodW1ibmFpbC0vTW9kYWwtRW1iZWRzIChmaWd1cmUuZW1iZWQuaW1n KS4KICBmdW5jdGlvbiBub3JtYWxpemVFbWJlZHMoaHRtbCkgewogICAgdmFyIGJveCA9IGVsKCJk aXYiKTsgYm94LmlubmVySFRNTCA9IGh0bWwgfHwgIiI7CiAgICBQLiQkKCJpbWciLCBib3gpLmZv ckVhY2goZnVuY3Rpb24gKGltZykgewogICAgICBpZiAoaW1nLmNsb3Nlc3QgJiYgaW1nLmNsb3Nl c3QoImZpZ3VyZS5lbWJlZCIpKSByZXR1cm47CiAgICAgIHZhciBmaWcgPSBlbCgiZmlndXJlIiwg eyBjbGFzczogImVtYmVkIGltZyIgfSk7CiAgICAgIHZhciBpbSA9IGVsKCJpbWciLCB7IHNyYzog aW1nLmdldEF0dHJpYnV0ZSgic3JjIikgfHwgIiIgfSk7CiAgICAgIGlmIChpbWcuZ2V0QXR0cmli dXRlKCJhbHQiKSkgaW0uc2V0QXR0cmlidXRlKCJhbHQiLCBpbWcuZ2V0QXR0cmlidXRlKCJhbHQi KSk7CiAgICAgIGltZy5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChmaWcsIGltZyk7IGZpZy5hcHBl bmRDaGlsZChpbSk7CiAgICB9KTsKICAgIHJldHVybiBib3guaW5uZXJIVE1MOwogIH0KCiAgLy8g TGVzZW4vU2NocmVpYmVuIHVuYWJoYWVuZ2lnIHZvbiBkZXIgYWt0aXZlbiBFbmdpbmUuCiAgZnVu Y3Rpb24gYXJ0R2V0SHRtbCgpIHsgcmV0dXJuIHRtY2VFZGl0b3IgPyB0bWNlRWRpdG9yLmdldENv bnRlbnQoKSA6ICQoIiNhcnQtYm9keSIpLmlubmVySFRNTDsgfQogIGZ1bmN0aW9uIGFydFNldEh0 bWwoaCkgewogICAgaWYgKHRtY2VFZGl0b3IpIHsgdmFyIHcgPSAkKCIjYXJ0LXd5c2l3eWciKTsg aWYgKHcpIHcuc3R5bGUuZGlzcGxheSA9ICJub25lIjsgdG1jZUVkaXRvci5zZXRDb250ZW50KGgg fHwgIiIpOyB9CiAgICBlbHNlIHsgdmFyIHcyID0gJCgiI2FydC13eXNpd3lnIik7IGlmICh3Mikg dzIuc3R5bGUuZGlzcGxheSA9ICIiOyAkKCIjYXJ0LWJvZHkiKS5pbm5lckhUTUwgPSBoIHx8ICI8 cD48L3A+IjsgaWYgKFAubGl2ZSAmJiB0bWNlUmVhZHkpIGluaXRUbWNlKGZ1bmN0aW9uICgpIHt9 KTsgfQogIH0KCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gV1lTSVdZRyAqLwogIGZ1bmN0aW9uIGV4ZWMoY21kLCB2YWwpIHsg JCgiI2FydC1ib2R5IikuZm9jdXMoKTsgZG9jdW1lbnQuZXhlY0NvbW1hbmQoY21kLCBmYWxzZSwg dmFsIHx8IG51bGwpOyB9CiAgZnVuY3Rpb24gaW5zZXJ0SHRtbChodG1sKSB7ICQoIiNhcnQtYm9k eSIpLmZvY3VzKCk7IGRvY3VtZW50LmV4ZWNDb21tYW5kKCJpbnNlcnRIVE1MIiwgZmFsc2UsIGh0 bWwpOyB9CgogIC8vIHZlcnN0ZWNrdGVzIERhdGVpLUF1c3dhaGwtRmVsZCAoZWlubWFsaWcgZXJ6 ZXVndCksIGplIG5hY2ggVHlwIHdpZWRlcnZlcndlbmRldAogIHZhciBmaWxlSW5wdXQ7CiAgZnVu Y3Rpb24gcGlja0ZpbGUoYWNjZXB0LCBvbkZpbGUpIHsKICAgIGlmICghZmlsZUlucHV0KSB7IGZp bGVJbnB1dCA9IGVsKCJpbnB1dCIsIHsgdHlwZTogImZpbGUiIH0pOyBmaWxlSW5wdXQuc3R5bGUu ZGlzcGxheSA9ICJub25lIjsgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmaWxlSW5wdXQpOyB9 CiAgICBmaWxlSW5wdXQudmFsdWUgPSAiIjsgZmlsZUlucHV0LnNldEF0dHJpYnV0ZSgiYWNjZXB0 IiwgYWNjZXB0KTsKICAgIGZpbGVJbnB1dC5vbmNoYW5nZSA9IGZ1bmN0aW9uIChlKSB7IHZhciBm ID0gZS50YXJnZXQuZmlsZXNbMF07IGlmIChmKSBvbkZpbGUoZik7IH07CiAgICBmaWxlSW5wdXQu Y2xpY2soKTsKICB9CgogIGZ1bmN0aW9uIGluc2VydEltYWdlKGZpbGUpIHsKICAgIFAudG9hc3Qo IkJpbGQgd2lyZCBob2NoZ2VsYWRlbuKApiIpOwogICAgUC51cGxvYWRBc3NldChmaWxlLCBmdW5j dGlvbiAoZXJyLCByZXMpIHsKICAgICAgaWYgKGVycikgeyBQLnRvYXN0KGVyci5tZXNzYWdlIHx8 ICJVcGxvYWQgZmVobGdlc2NobGFnZW4uIiwgdHJ1ZSk7IHJldHVybjsgfQogICAgICB2YXIgYWx0 ID0gKGZpbGUubmFtZSB8fCAiQmlsZCIpLnJlcGxhY2UoL1wuW2EtejAtOV0rJC9pLCAiIik7CiAg ICAgIGluc2VydEh0bWwoJzxmaWd1cmUgY2xhc3M9ImVtYmVkIGltZyIgY29udGVudGVkaXRhYmxl PSJmYWxzZSI+PGltZyBzcmM9IicgKyByZXMucGF0aCArICciIGFsdD0iJyArIGVzY2FwZUh0bWwo YWx0KSArICciPjwvZmlndXJlPjxwPjxicj48L3A+Jyk7CiAgICAgIFAudG9hc3QoIkJpbGQgZWlu Z2Vmw7xndCDigJQgS2xpY2sgaW0gQXJ0aWtlbCB6ZWlndCBlcyBncm9zcy4iKTsKICAgIH0pOwog IH0KICBmdW5jdGlvbiBpbnNlcnRQZGYoZmlsZSkgewogICAgUC50b2FzdCgiUERGIHdpcmQgaG9j aGdlbGFkZW7igKYiKTsKICAgIFAudXBsb2FkQXNzZXQoZmlsZSwgZnVuY3Rpb24gKGVyciwgcmVz KSB7CiAgICAgIGlmIChlcnIpIHsgUC50b2FzdChlcnIubWVzc2FnZSB8fCAiVXBsb2FkIGZlaGxn ZXNjaGxhZ2VuLiIsIHRydWUpOyByZXR1cm47IH0KICAgICAgdmFyIG5hbWUgPSBmaWxlLm5hbWUg fHwgIkRva3VtZW50LnBkZiI7CiAgICAgIGluc2VydEh0bWwoJzxmaWd1cmUgY2xhc3M9ImVtYmVk IHBkZiIgZGF0YS1zcmM9IicgKyByZXMucGF0aCArICciIGNvbnRlbnRlZGl0YWJsZT0iZmFsc2Ui PicgKwogICAgICAgICc8c3BhbiBjbGFzcz0icGRmLW5hbWUiPicgKyBlc2NhcGVIdG1sKG5hbWUp ICsgJzwvc3Bhbj4nICsKICAgICAgICAnPHNwYW4gY2xhc3M9InBkZi1tZXRhIj5QREYgwrcga2xp Y2tlbiB6dW0gVmVyZ3LDtnNzZXJuPC9zcGFuPjwvZmlndXJlPjxwPjxicj48L3A+Jyk7CiAgICAg IFAudG9hc3QoIlBERiBhbmdlaMOkbmd0IOKAlCBLbGljayBpbSBBcnRpa2VsIMO2ZmZuZXQgZXMg Z3Jvc3MuIik7CiAgICB9KTsKICB9CgogIC8vIEVpbmbDvGdlbiBhdXMgV2ViL091dGxvb2s6IEhU TUwgc8OkdWJlcm4gKFNhbml0aXplciksIEJpbGRlciBhdXMgZGVyCiAgLy8gWndpc2NoZW5hYmxh Z2UgaG9jaGxhZGVuLCBzb25zdCBLbGFydGV4dCBtaXQgQWJzw6R0emVuIMO8YmVybmVobWVuLgog IGZ1bmN0aW9uIGhhbmRsZVBhc3RlKGUpIHsKICAgIHZhciBjYiA9IGUuY2xpcGJvYXJkRGF0YSB8 fCB3aW5kb3cuY2xpcGJvYXJkRGF0YTsgaWYgKCFjYikgcmV0dXJuOwogICAgdmFyIGl0ZW1zID0g Y2IuaXRlbXMgfHwgW107CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsr KSB7CiAgICAgIGlmIChpdGVtc1tpXS5raW5kID09PSAiZmlsZSIgJiYgL15pbWFnZVwvLy50ZXN0 KGl0ZW1zW2ldLnR5cGUpKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOyB2YXIgZiA9IGl0 ZW1zW2ldLmdldEFzRmlsZSgpOyBpZiAoZikgaW5zZXJ0SW1hZ2UoZik7IHJldHVybjsKICAgICAg fQogICAgfQogICAgdmFyIGh0bWwgPSBjYi5nZXREYXRhKCJ0ZXh0L2h0bWwiKSwgdGV4dCA9IGNi LmdldERhdGEoInRleHQvcGxhaW4iKTsKICAgIGlmIChodG1sKSB7IGUucHJldmVudERlZmF1bHQo KTsgaW5zZXJ0SHRtbChQLnNhbml0aXplSHRtbChodG1sKSk7IH0KICAgIGVsc2UgaWYgKHRleHQp IHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBpbnNlcnRIdG1sKHRleHRUb0h0bWwodGV4dCkpOyB9CiAg fQogIGZ1bmN0aW9uIHRleHRUb0h0bWwodCkgewogICAgcmV0dXJuIFN0cmluZyh0KS5zcGxpdCgv XG57Mix9LykubWFwKGZ1bmN0aW9uIChwKSB7CiAgICAgIHJldHVybiAiPHA+IiArIGVzY2FwZUh0 bWwocCkucmVwbGFjZSgvXG4vZywgIjxicj4iKSArICI8L3A+IjsKICAgIH0pLmpvaW4oIiIpOwog IH0KCiAgZnVuY3Rpb24gYnVpbGRUb29sYmFyKCkgewogICAgdmFyIGJhciA9ICQoIiNhcnQtdG9v bHMiKTsgaWYgKGJhci5kYXRhc2V0LmJ1aWx0KSByZXR1cm47IGJhci5kYXRhc2V0LmJ1aWx0ID0g IjEiOwogICAgdmFyIGJ0bnMgPSBbCiAgICAgIHsgY21kOiAiYm9sZCIsIGljOiAiYm9sZCIsIHQ6 ICJGZXR0IChTdHJnK0IpIiB9LAogICAgICB7IGNtZDogIml0YWxpYyIsIGljOiAiaXRhbGljIiwg dDogIkt1cnNpdiAoU3RyZytJKSIgfSwKICAgICAgeyBjbWQ6ICJ1bmRlcmxpbmUiLCB0OiAiVW50 ZXJzdHJpY2hlbiIsIGxhYmVsOiAiVSIgfSwKICAgICAgeyBjbWQ6ICJzdHJpa2VUaHJvdWdoIiwg dDogIkR1cmNoZ2VzdHJpY2hlbiIsIGxhYmVsOiAiUyIgfSwKICAgICAgeyBzZXA6IDEgfSwKICAg ICAgeyBibG9jazogIkgyIiwgdDogIsOcYmVyc2NocmlmdCBncm9zcyIsIGxhYmVsOiAiSDIiIH0s CiAgICAgIHsgYmxvY2s6ICJIMyIsIGljOiAiaGVhZGluZyIsIHQ6ICLDnGJlcnNjaHJpZnQiIH0s CiAgICAgIHsgYmxvY2s6ICJCTE9DS1FVT1RFIiwgdDogIlppdGF0IiwgbGFiZWw6ICLinZ0iIH0s CiAgICAgIHsgY21kOiAiaW5zZXJ0VW5vcmRlcmVkTGlzdCIsIGljOiAidWxpc3QiLCB0OiAiQXVm esOkaGx1bmciIH0sCiAgICAgIHsgY21kOiAiaW5zZXJ0T3JkZXJlZExpc3QiLCBpYzogIm9saXN0 IiwgdDogIk51bW1lcmllcnRlIExpc3RlIiB9LAogICAgICB7IHNlcDogMSB9LAogICAgICB7IGxp bms6IDEsIGljOiAibGluayIsIHQ6ICJMaW5rIGVpbmbDvGdlbiIgfSwKICAgICAgeyBpbnRsaW5r OiAxLCB0OiAiSW50ZXJuZXIgTGluayAoYXVmIFBvcnRhbC1JbmhhbHQpIiwgbGFiZWw6ICLihqoi IH0sCiAgICAgIHsgaW1hZ2U6IDEsIGljOiAiYXJ0aWNsZSIsIHQ6ICJCaWxkIGVpbmbDvGdlbiIs IGxhYmVsOiAi8J+WvCIgfSwKICAgICAgeyBwZGY6IDEsIGljOiAiZG9jIiwgdDogIlBERiBhbmjD pG5nZW4iIH0sCiAgICAgIHsgc2VwOiAxIH0sCiAgICAgIHsgY21kOiAicmVtb3ZlRm9ybWF0Iiwg aWM6ICJ4IiwgdDogIkZvcm1hdGllcnVuZyBlbnRmZXJuZW4iIH0KICAgIF07CiAgICBidG5zLmZv ckVhY2goZnVuY3Rpb24gKGIpIHsKICAgICAgaWYgKGIuc2VwKSB7IGJhci5hcHBlbmRDaGlsZChl bCgic3BhbiIsIHsgY2xhc3M6ICJ3eS1zZXAiIH0pKTsgcmV0dXJuOyB9CiAgICAgIHZhciBidG4g PSBlbCgiYnV0dG9uIiwgeyB0eXBlOiAiYnV0dG9uIiwgY2xhc3M6ICJ3eS1idG4iLCB0aXRsZTog Yi50LAogICAgICAgIGh0bWw6IGIubGFiZWwgPyAnPGIgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFs Ij4nICsgYi5sYWJlbCArICI8L2I+IiA6IGljKGIuaWMpLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0 aW9uICgpIHsKICAgICAgICAgIGlmIChiLmJsb2NrKSBleGVjKCJmb3JtYXRCbG9jayIsIGIuYmxv Y2spOwogICAgICAgICAgZWxzZSBpZiAoYi5saW5rKSB7IHZhciB1ID0gcHJvbXB0KCJMaW5rLVpp ZWwgKFVSTCBvZGVyIGRva3VtZW50ZS/igKYpOiIsICJodHRwczovLyIpOyBpZiAodSkgZXhlYygi Y3JlYXRlTGluayIsIHUpOyB9CiAgICAgICAgICBlbHNlIGlmIChiLmludGxpbmspIHsgaWYgKFAu b3Blbk5hdlBpY2tlcikgUC5vcGVuTmF2UGlja2VyKGZ1bmN0aW9uIChyKSB7IGluc2VydEh0bWwo JzxhIGhyZWY9InBvcnRhbDonICsgci5faWQgKyAnIj4nICsgZXNjYXBlSHRtbChyLmxhYmVsKSAr ICI8L2E+Iik7IH0pOyB9CiAgICAgICAgICBlbHNlIGlmIChiLmltYWdlKSBwaWNrRmlsZSgiaW1h Z2UvKiIsIGluc2VydEltYWdlKTsKICAgICAgICAgIGVsc2UgaWYgKGIucGRmKSBwaWNrRmlsZSgi YXBwbGljYXRpb24vcGRmLC5wZGYiLCBpbnNlcnRQZGYpOwogICAgICAgICAgZWxzZSBleGVjKGIu Y21kKTsKICAgICAgICB9IH0pOwogICAgICBiYXIuYXBwZW5kQ2hpbGQoYnRuKTsKICAgIH0pOwog IH0KCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gRHJvcGRvd25zIGJlZsO8bGxlbiAqLwogIGZ1bmN0aW9uIGZpbGxTZWN0aW9u U2VsZWN0KCkgewogICAgdmFyIHNlbCA9ICQoIiNhcnQtc2VjdGlvbiIpOyBzZWwuaW5uZXJIVE1M ID0gIiI7CiAgICBQLk5BVi5zZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChzLCBpKSB7CiAgICAg IHZhciB3aGVyZSA9IHMucGxhY2VtZW50ID09PSAic2lkZWJhciIgPyAiU2lkZWJhciIgOiAocy5r aW5kID09PSAiYXoiID8gIkHigJNaIiA6ICJUb3BiYXIiKTsKICAgICAgc2VsLmFwcGVuZENoaWxk KGVsKCJvcHRpb24iLCB7IHZhbHVlOiBpLCB0ZXh0OiBzLnRpdGxlICsgIiAgKCIgKyB3aGVyZSAr ICIpIiB9KSk7CiAgICB9KTsKICB9CiAgZnVuY3Rpb24gZmlsbFBhcmVudFNlbGVjdCgpIHsKICAg IHZhciBzZWMgPSBQLk5BVi5zZWN0aW9uc1srJCgiI2FydC1zZWN0aW9uIikudmFsdWVdOwogICAg dmFyIHNlbCA9ICQoIiNhcnQtcGFyZW50Iik7IHNlbC5pbm5lckhUTUwgPSAiIjsKICAgIHNlbC5h cHBlbmRDaGlsZChlbCgib3B0aW9uIiwgeyB2YWx1ZTogIiIsIHRleHQ6ICLigJQgZGlyZWt0IGlu IGRlbiBCZXJlaWNoIOKAlCIgfSkpOwogICAgaWYgKCFzZWMpIHJldHVybjsKICAgIChzZWMuaXRl bXMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGl0LCBpZHgpIHsKICAgICAgaWYgKGl0LmhlYWRp bmcpIHJldHVybjsKICAgICAgLy8gYWxzIFVudGVybWVuw7wtRWx0ZXJuIGVpZ25lbiBzaWNoIEVp bnRyw6RnZSBvaG5lIGVpZ2VuZXMgWmllbCBvZGVyIGJlc3RlaGVuZGUgR3J1cHBlbgogICAgICB2 YXIgbGJsID0gaXQuY2hpbGRyZW4gPyAi4pa4ICIgKyBpdC5sYWJlbCArICIgKFVudGVybWVuw7wp IiA6IGl0LmxhYmVsOwogICAgICBzZWwuYXBwZW5kQ2hpbGQoZWwoIm9wdGlvbiIsIHsgdmFsdWU6 IGlkeCwgdGV4dDogbGJsIH0pKTsKICAgIH0pOwogICAgc2VsLmFwcGVuZENoaWxkKGVsKCJvcHRp b24iLCB7IHZhbHVlOiAiX19uZXdfXyIsIHRleHQ6ICLinpUgTmV1ZXMgVW50ZXJtZW7DvCBoaWVy IGFubGVnZW7igKYiIH0pKTsKICB9CgogIC8qIEthdGVnb3JpZW4gZW50ZmVybnQg4oCUIGtlaW4g S2F0ZWdvcmllLVBpY2tlciBtZWhyLiAqLwogIFAuX2ZpbGxQYXJlbnQgPSBmaWxsUGFyZW50U2Vs ZWN0OwoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSBadXNhdHpmZWxkZXIgKGRhdGVuZ2V0cmllYmVuLCBQLkFSVElDTEVfRklF TERTKSAqLwogIGZ1bmN0aW9uIHJlbmRlckFydGljbGVGaWVsZHMoYSkgewogICAgdmFyIGhvc3Qg PSAkKCIjYXJ0LWV4dHJhIik7IGlmICghaG9zdCkgcmV0dXJuOwogICAgaG9zdC5pbm5lckhUTUwg PSAiIjsKICAgIChQLkFSVElDTEVfRklFTERTIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChmKSB7 CiAgICAgIHZhciB2YWwgPSBhID8gYVtmLmtleV0gOiAiIjsKICAgICAgdmFyIGZpZWxkID0gZWwo ImRpdiIsIHsgY2xhc3M6ICJmaWVsZCIgfSk7CiAgICAgIGZpZWxkLmFwcGVuZENoaWxkKGVsKCJs YWJlbCIsIHsgdGV4dDogZi5sYWJlbCB9KSk7CiAgICAgIHZhciBpbnA7CiAgICAgIGlmIChmLnR5 cGUgPT09ICJzZWxlY3QiKSB7CiAgICAgICAgaW5wID0gZWwoInNlbGVjdCIsIHsgImRhdGEtZmtl eSI6IGYua2V5IH0pOwogICAgICAgIChmLm9wdGlvbnMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24g KG8pIHsKICAgICAgICAgIHZhciBvcCA9IGVsKCJvcHRpb24iLCB7IHZhbHVlOiBvLCB0ZXh0OiBv IH0pOwogICAgICAgICAgaWYgKCh2YWwgfHwgZi5vcHRpb25zWzBdKSA9PT0gbykgb3Auc2VsZWN0 ZWQgPSB0cnVlOwogICAgICAgICAgaW5wLmFwcGVuZENoaWxkKG9wKTsKICAgICAgICB9KTsKICAg ICAgfSBlbHNlIHsKICAgICAgICB2YXIgdCA9IChmLnR5cGUgPT09ICJkYXRlIikgPyAiZGF0ZSIg OiAidGV4dCI7CiAgICAgICAgdmFyIHYgPSBBcnJheS5pc0FycmF5KHZhbCkgPyB2YWwuam9pbigi LCAiKSA6ICh2YWwgfHwgIiIpOwogICAgICAgIGlmIChmLnR5cGUgPT09ICJkYXRlIikgdiA9IFN0 cmluZyh2KS5zbGljZSgwLCAxMCk7CiAgICAgICAgaW5wID0gZWwoImlucHV0IiwgeyB0eXBlOiB0 LCAiZGF0YS1ma2V5IjogZi5rZXksIHZhbHVlOiB2IH0pOwogICAgICB9CiAgICAgIGZpZWxkLmFw cGVuZENoaWxkKGlucCk7IGhvc3QuYXBwZW5kQ2hpbGQoZmllbGQpOwogICAgfSk7CiAgfQogIGZ1 bmN0aW9uIGNvbGxlY3RBcnRpY2xlRmllbGRzKHRhcmdldCkgewogICAgKFAuQVJUSUNMRV9GSUVM RFMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGYpIHsKICAgICAgdmFyIGlucCA9ICQoIiNhcnQt ZXh0cmEgW2RhdGEtZmtleT0nIiArIGYua2V5ICsgIiddIik7IGlmICghaW5wKSByZXR1cm47CiAg ICAgIHZhciB2ID0gKGlucC52YWx1ZSB8fCAiIikudHJpbSgpOwogICAgICBpZiAoZi50eXBlID09 PSAidGFncyIpIHsKICAgICAgICB2YXIgYXJyID0gdi5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbiAo cykgeyByZXR1cm4gcy50cmltKCk7IH0pLmZpbHRlcihCb29sZWFuKTsKICAgICAgICBpZiAoYXJy Lmxlbmd0aCkgdGFyZ2V0W2Yua2V5XSA9IGFycjsgZWxzZSBkZWxldGUgdGFyZ2V0W2Yua2V5XTsK ICAgICAgfSBlbHNlIGlmIChmLmtleSA9PT0gImNsYXNzaWZpY2F0aW9uIikgewogICAgICAgIGlm ICh2ICYmIHYgIT09ICJvZmZlbiIpIHRhcmdldFtmLmtleV0gPSB2OyBlbHNlIGRlbGV0ZSB0YXJn ZXRbZi5rZXldOwogICAgICB9IGVsc2UgewogICAgICAgIGlmICh2KSB0YXJnZXRbZi5rZXldID0g djsgZWxzZSBkZWxldGUgdGFyZ2V0W2Yua2V5XTsKICAgICAgfQogICAgfSk7CiAgfQogIC8vIEFy dGlrZWwtT2JqZWt0IGF1cyBGb3JtdWxhciBiYXVlbiAoS2VybiArIFp1c2F0emZlbGRlciArIGF1 dG8gJ3VwZGF0ZWQnKS4KICBmdW5jdGlvbiBidWlsZEFydGljbGUodGl0bGUsIGRhdGUsIGF1dGhv ciwgaHRtbCkgewogICAgdmFyIGFydCA9IHsgdGl0bGU6IHRpdGxlLCBkYXRlOiBkYXRlLCBhdXRo b3I6IGF1dGhvciwgaHRtbDogaHRtbCB9OwogICAgY29sbGVjdEFydGljbGVGaWVsZHMoYXJ0KTsK ICAgIGFydC51cGRhdGVkID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKTsK ICAgIHJldHVybiBhcnQ7CiAgfQogIC8vIEltIExpdmUtTW9kdXMgZGVuIEJvZHkgaW4gZWluZSBl aWdlbmUgRGF0ZWkgYXVzbGFnZXJuIChkYXRhLW5hdi5qcyBibGVpYnQgc2NobGFuayk7CiAgLy8g aW0gZmlsZTovLy1FZGl0b3ItRmFsbGJhY2sgYmxlaWJ0IGRlciBCb2R5IGlubGluZS4gS25vdGVu IG11c3MgZWluZSBfaWQgaGFiZW4uCiAgZnVuY3Rpb24gZXh0ZXJuYWxpemVCb2R5KG5vZGUsIGFy dCkgewogICAgaWYgKFAubGl2ZSAmJiBub2RlICYmIG5vZGUuX2lkICYmIGFydCAmJiBhcnQuaHRt bCAhPSBudWxsICYmIFAucGVyc2lzdEFydGljbGVCb2R5KSB7CiAgICAgIFAucGVyc2lzdEFydGlj bGVCb2R5KG5vZGUuX2lkLCBhcnQuaHRtbCk7CiAgICAgIGRlbGV0ZSBhcnQuaHRtbDsgYXJ0LmJv ZHlFeHQgPSB0cnVlOwogICAgfQogICAgcmV0dXJuIGFydDsKICB9CgogIC8qIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERpYWxvZyDD tmZmbmVuICovCiAgUC5vcGVuQXJ0aWNsZURsZyA9IGZ1bmN0aW9uIChleGlzdGluZykgewogICAg YnVpbGRUb29sYmFyKCk7CiAgICB2YXIgYm9keSA9ICQoIiNhcnQtYm9keSIpOwogICAgaWYgKCFi b2R5LmRhdGFzZXQucGFzdGVCb3VuZCkgeyBib2R5LmRhdGFzZXQucGFzdGVCb3VuZCA9ICIxIjsg Ym9keS5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsIGhhbmRsZVBhc3RlKTsgfQogICAgZWRpdGlu ZyA9IGV4aXN0aW5nIHx8IG51bGw7CiAgICBpblBsYWNlID0gISEocGVuZGluZ01pZyAmJiBlZGl0 aW5nKTsgICAgICAgICAgICAgIC8vIE1pZ3JhdGlvbjogS25vdGVuIGluLXBsYWNlIHVtd2FuZGVs bgogICAgdmFyIGEgPSBpblBsYWNlID8gcGVuZGluZ01pZyA6IChlZGl0aW5nID8gZWRpdGluZy5h cnRpY2xlIDogbnVsbCk7CiAgICBtaWdTb3VyY2UgPSAoaW5QbGFjZSAmJiBhICYmIGEuc3JjKSB8 fCAiIjsgICAgICAgIC8vIFF1ZWxsZSBmdWVyIGRpZSBzcGFldGVyZSBfbWlnU291cmNlLU1hcmtp ZXJ1bmcKICAgIHBlbmRpbmdNaWcgPSBudWxsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gZWlubWFsaWcga29uc3VtaWVydAogICAgJCgiI2FkLXRpdGxlIikudGV4dENvbnRlbnQg PSBpblBsYWNlID8gIkRva3VtZW50IG1pZ3JpZXJlbiIgOiAoZWRpdGluZyA/ICJBcnRpa2VsIGJl YXJiZWl0ZW4iIDogIk5ldWVuIEFydGlrZWwgYW5sZWdlbiIpOwogICAgZmlsbFNlY3Rpb25TZWxl Y3QoKTsKICAgIC8vIGJlaSBCZWFyYmVpdHVuZzogU2VrdGlvbi9QYXJlbnQgZGVzIEVpbnRyYWdz IHZvcnfDpGhsZW4KICAgIGlmIChlZGl0aW5nKSB7IHZhciBsb2MgPSBsb2NhdGUoZWRpdGluZyk7 IGlmIChsb2MpIHsgJCgiI2FydC1zZWN0aW9uIikudmFsdWUgPSBsb2Muc2k7IH0gfQogICAgZmls bFBhcmVudFNlbGVjdCgpOwogICAgaWYgKGVkaXRpbmcpIHsgdmFyIGxvYzIgPSBsb2NhdGUoZWRp dGluZyk7IGlmIChsb2MyICYmIGxvYzIucGkgIT0gbnVsbCkgJCgiI2FydC1wYXJlbnQiKS52YWx1 ZSA9IGxvYzIucGk7IH0KICAgIC8vIEluLVBsYWNlOiBrdXJhdGllcnRlcyBOYXYtTGFiZWwgYWxz IFRpdGVsIGJldm9yenVnZW4gKHNvbnN0IGRlciBrb252ZXJ0aWVydGUgVGl0ZWwpLgogICAgJCgi I2FydC1mLXRpdGxlIikudmFsdWUgPSAoaW5QbGFjZSAmJiBlZGl0aW5nICYmIGVkaXRpbmcubGFi ZWwpID8gZWRpdGluZy5sYWJlbCA6IChhID8gYS50aXRsZSA6ICIiKTsKICAgICQoIiNhcnQtZi1k YXRlIikudmFsdWUgPSBhID8gU3RyaW5nKGEuZGF0ZSB8fCAiIikuc2xpY2UoMCwgMTApIDogbmV3 IERhdGUoKS50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKTsKICAgICQoIiNhcnQtZi1hdXRob3Ii KS52YWx1ZSA9IGEgPyAoYS5hdXRob3IgfHwgIiIpIDogIiI7CiAgICByZW5kZXJBcnRpY2xlRmll bGRzKGEpOwogICAgaWYgKGEgJiYgYS5ib2R5RXh0ICYmIChhLmh0bWwgPT0gbnVsbCB8fCBhLmh0 bWwgPT09ICIiKSAmJiBlZGl0aW5nICYmIFAubG9hZEFydGljbGVCb2R5KSB7CiAgICAgIGFydFNl dEh0bWwoIiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhdXNnZWxhZ2Vy dGVuIEJvZHkgZXJzdCBuYWNobGFkZW4KICAgICAgUC5sb2FkQXJ0aWNsZUJvZHkoZWRpdGluZy5f aWQsIGZ1bmN0aW9uIChoKSB7IGFydFNldEh0bWwoUC5zYW5pdGl6ZUh0bWwoaCB8fCAiIikpOyB9 KTsKICAgIH0gZWxzZSB7CiAgICAgIGFydFNldEh0bWwoYSA/IFAuc2FuaXRpemVIdG1sKGEuaHRt bCB8fCAiIikgOiAiIik7CiAgICB9CiAgICAkKCIjYXJ0LWVyciIpLmhpZGRlbiA9IHRydWU7CiAg ICAkKCIjYXJ0LWRlbCIpLnN0eWxlLmRpc3BsYXkgPSAoZWRpdGluZyAmJiAhaW5QbGFjZSkgPyAi IiA6ICJub25lIjsKICAgICQoIiNhcnQtZGxnIikuc2hvd01vZGFsKCk7CiAgICBzZXRUaW1lb3V0 KGZ1bmN0aW9uICgpIHsgJCgiI2FydC1mLXRpdGxlIikuZm9jdXMoKTsgfSwgMzApOwogIH07Cgog IC8qIEluLVBsYWNlLU1pZ3JhdGlvbjogZWluZW4gYmVzdGVoZW5kZW4gaHJlZi1Lbm90ZW4gKHpl aWd0IGF1ZiBlaW5lIEFsdC1Eb2t1KQogICAgIGFtIHNlbGJlbiBOYXYtUGxhdHogenVtIEFydGlr ZWwgbWFjaGVuLiBEYXMga29udmVydGllcnRlIEhUTUwgZHVyY2hsw6R1ZnQKICAgICBkZW5zZWxi ZW4gU2FuaXRpemVyLS9TcGVpY2hlci1QZmFkIHdpZSBqZWRlciBhbmRlcmUgRWRpdG9yLUluaGFs dC4gKi8KICBQLm9wZW5NaWdyYXRpb25FZGl0b3IgPSBmdW5jdGlvbiAobmF2SXRlbSwgYXJ0KSB7 CiAgICBpZiAoIW5hdkl0ZW0pIHJldHVybjsKICAgIHBlbmRpbmdNaWcgPSBhcnQgfHwgeyB0aXRs ZTogbmF2SXRlbS5sYWJlbCB8fCAiIiwgZGF0ZTogIiIsIGF1dGhvcjogIiIsIGh0bWw6ICIiIH07 CiAgICBQLm9wZW5BcnRpY2xlRGxnKG5hdkl0ZW0pOwogIH07CgogIC8qIFVJLWZyZWllIEluLVBs YWNlLU1pZ3JhdGlvbiAoZnVlciBkaWUgU3RhcGVsLVVlYmVybmFobWUpOiBkZW5zZWxiZW4gS25v dGVuIHdpZSBkZXIKICAgICBFZGl0b3ItUGZhZCB1bXdhbmRlbG4sIGFiZXIgT0hORSBEaWFsb2cg dW5kIE9ITkUgcGVyc2lzdC9wdWJsaXNoIChkZXIgQXVmcnVmZXIgYnVlbmRlbHQpLgogICAgIEhU TUwgbGFldWZ0IGR1cmNoIFAuc2FuaXRpemVIdG1sOyBadXNhdHpmZWxkZXIgKFAuQVJUSUNMRV9G SUVMRFMpICsgJ3VwZGF0ZWQnIHdlcmRlbiB1ZWJlcm5vbW1lbi4gKi8KICBQLm1pZ3JhdGVJblBs YWNlID0gZnVuY3Rpb24gKG5hdkl0ZW0sIGFydCkgewogICAgaWYgKCFuYXZJdGVtIHx8ICFhcnQp IHJldHVybiBudWxsOwogICAgZGVsZXRlIG5hdkl0ZW0uaHJlZjsgZGVsZXRlIG5hdkl0ZW0udGFy Z2V0OyBkZWxldGUgbmF2SXRlbS5jaGlsZHJlbjsKICAgIGlmICghbmF2SXRlbS5faWQpIG5hdkl0 ZW0uX2lkID0gUC51aWQoImFydCIpOwogICAgaWYgKGFydC5zcmMpIG5hdkl0ZW0uX21pZ1NvdXJj ZSA9IGFydC5zcmM7ICAgICAgIC8vIHN0YWJpbGUgWnVvcmRudW5nIFF1ZWxsZS0+bWlncmllcnRl ciBLbm90ZW4KICAgIHZhciB0aXRsZSA9IG5hdkl0ZW0ubGFiZWwgfHwgYXJ0LnRpdGxlIHx8ICIi OwogICAgdmFyIGEgPSB7IHRpdGxlOiB0aXRsZSwgZGF0ZTogYXJ0LmRhdGUgfHwgIiIsIGF1dGhv cjogYXJ0LmF1dGhvciB8fCAiIiwgaHRtbDogUC5zYW5pdGl6ZUh0bWwoYXJ0Lmh0bWwgfHwgIiIp IH07CiAgICAoUC5BUlRJQ0xFX0ZJRUxEUyB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbiAoZikgewog ICAgICB2YXIgdiA9IGFydFtmLmtleV07CiAgICAgIGlmICh2ICE9IG51bGwgJiYgdiAhPT0gIiIg JiYgIShBcnJheS5pc0FycmF5KHYpICYmICF2Lmxlbmd0aCkpIGFbZi5rZXldID0gdjsKICAgIH0p OwogICAgYS51cGRhdGVkID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKTsK ICAgIG5hdkl0ZW0ubGFiZWwgPSB0aXRsZTsKICAgIG5hdkl0ZW0uYXJ0aWNsZSA9IGV4dGVybmFs aXplQm9keShuYXZJdGVtLCBhKTsgICAvLyBpbSBMaXZlLU1vZHVzIEJvZHkgYXVzbGFnZXJuIChT dGFwZWwgYnVlbmRlbHQgMSBQdWJsaXNoKQogICAgcmV0dXJuIG5hdkl0ZW07CiAgfTsKCiAgLyog SW4tUGxhY2UtTWlncmF0aW9uIGVpbmVyIE9yZG5lci1aZWlnZXItU2VpdGU6IGRlciBOYXYtS25v dGVuIHdpcmQgenVtIE9yZG5lci1Lbm90ZW4KICAgICAob2VmZm5ldCBpbSBQb3J0YWwgZGllIFZl cnplaWNobmlzLUFuc2ljaHQsIElFLU1vZHVzKS4gS2VpbiBBcnRpa2VsLCBrZWluIEJvZHksIGtl aW4KICAgICBwZXJzaXN0L3B1Ymxpc2ggKEF1ZnJ1ZmVyIGJ1ZW5kZWx0KS4gUGZhZCB3aXJkIHVl YmVyIFAuc2FmZUZvbGRlclBhdGggdmFsaWRpZXJ0LiAqLwogIFAubWlncmF0ZUZvbGRlckluUGxh Y2UgPSBmdW5jdGlvbiAobmF2SXRlbSwgZm9sZGVyUGF0aCkgewogICAgaWYgKCFuYXZJdGVtKSBy ZXR1cm4gbnVsbDsKICAgIHZhciBzYWZlID0gUC5zYWZlRm9sZGVyUGF0aChmb2xkZXJQYXRoIHx8 ICIiKTsKICAgIGlmICghc2FmZSkgcmV0dXJuIG51bGw7CiAgICBkZWxldGUgbmF2SXRlbS5ocmVm OyBkZWxldGUgbmF2SXRlbS50YXJnZXQ7IGRlbGV0ZSBuYXZJdGVtLmNoaWxkcmVuOyBkZWxldGUg bmF2SXRlbS5hcnRpY2xlOwogICAgaWYgKCFuYXZJdGVtLl9pZCkgbmF2SXRlbS5faWQgPSBQLnVp ZCgiZGlyIik7CiAgICBuYXZJdGVtLmZvbGRlciA9IHNhZmU7CiAgICByZXR1cm4gbmF2SXRlbTsK ICB9OwoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSBQb3NpdGlvbiBlaW5lcyBiZXN0ZWhlbmRlbiBFaW50cmFncyBmaW5kZW4g Ki8KICBmdW5jdGlvbiBsb2NhdGUoaXRlbSkgewogICAgZm9yICh2YXIgc2kgPSAwOyBzaSA8IFAu TkFWLnNlY3Rpb25zLmxlbmd0aDsgc2krKykgewogICAgICB2YXIgaXRlbXMgPSBQLk5BVi5zZWN0 aW9uc1tzaV0uaXRlbXMgfHwgW107CiAgICAgIGlmIChpdGVtcy5pbmRleE9mKGl0ZW0pID49IDAp IHJldHVybiB7IHNpOiBzaSwgcGk6IG51bGwgfTsKICAgICAgZm9yICh2YXIgcGkgPSAwOyBwaSA8 IGl0ZW1zLmxlbmd0aDsgcGkrKykgewogICAgICAgIGlmIChpdGVtc1twaV0uY2hpbGRyZW4gJiYg aXRlbXNbcGldLmNoaWxkcmVuLmluZGV4T2YoaXRlbSkgPj0gMCkgcmV0dXJuIHsgc2k6IHNpLCBw aTogcGkgfTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIG51bGw7CiAgfQoKICAvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTcGVp Y2hlcm4gKi8KICBQLnNhdmVBcnRpY2xlID0gZnVuY3Rpb24gKCkgewogICAgdmFyIHRpdGxlID0g JCgiI2FydC1mLXRpdGxlIikudmFsdWUudHJpbSgpOwogICAgaWYgKCF0aXRsZSkgeyB2YXIgZSA9 ICQoIiNhcnQtZXJyIik7IGUudGV4dENvbnRlbnQgPSAiVGl0ZWwgaXN0IGVyZm9yZGVybGljaC4i OyBlLmhpZGRlbiA9IGZhbHNlOyByZXR1cm47IH0KICAgIHZhciBodG1sID0gUC5zYW5pdGl6ZUh0 bWwobm9ybWFsaXplRW1iZWRzKGFydEdldEh0bWwoKSkpLnRyaW0oKTsKICAgIGlmICghaHRtbCB8 fCBodG1sID09PSAiPHA+PC9wPiIgfHwgaHRtbCA9PT0gIjxwPjxicj48L3A+IikgeyB2YXIgZTIg PSAkKCIjYXJ0LWVyciIpOyBlMi50ZXh0Q29udGVudCA9ICJCaXR0ZSBlaW5lbiBJbmhhbHQgZWlu Z2ViZW4uIjsgZTIuaGlkZGVuID0gZmFsc2U7IHJldHVybjsgfQogICAgdmFyIGRhdGUgPSAkKCIj YXJ0LWYtZGF0ZSIpLnZhbHVlLCBhdXRob3IgPSAkKCIjYXJ0LWYtYXV0aG9yIikudmFsdWUudHJp bSgpOwoKICAgIC8vIEluLVBsYWNlLU1pZ3JhdGlvbjogS25vdGVuIGFuIHNlaW5lciBOYXYtUG9z aXRpb24gYmVsYXNzZW4sIG51ciBJbmhhbHQKICAgIC8vIHVtd2FuZGVsbiAoaHJlZi90YXJnZXQg cmF1cywgYXJ0aWNsZSByZWluKS4gVW1nZWh0IGRpZSBVbXNvcnRpZXItTG9naWsKICAgIC8vIChy ZW1vdmVGcm9tICsgU2VrdGlvbi9QYXJlbnQtRHJvcGRvd25zKSBiZXd1c3N0IOKAlCBMYWJlbCB1 bmQgUGxhdHogYmxlaWJlbi4KICAgIGlmIChpblBsYWNlICYmIGVkaXRpbmcpIHsKICAgICAgZGVs ZXRlIGVkaXRpbmcuaHJlZjsgZGVsZXRlIGVkaXRpbmcudGFyZ2V0OyBkZWxldGUgZWRpdGluZy5j aGlsZHJlbjsKICAgICAgaWYgKCFlZGl0aW5nLl9pZCkgZWRpdGluZy5faWQgPSBQLnVpZCgiYXJ0 Iik7CiAgICAgIGVkaXRpbmcubGFiZWwgPSB0aXRsZTsKICAgICAgaWYgKG1pZ1NvdXJjZSkgZWRp dGluZy5fbWlnU291cmNlID0gbWlnU291cmNlOyAgIC8vIHN0YWJpbGUgWnVvcmRudW5nIFF1ZWxs ZS0+bWlncmllcnRlciBLbm90ZW4KICAgICAgbWlnU291cmNlID0gIiI7CiAgICAgIGVkaXRpbmcu YXJ0aWNsZSA9IGV4dGVybmFsaXplQm9keShlZGl0aW5nLCBidWlsZEFydGljbGUodGl0bGUsIGRh dGUsIGF1dGhvciwgaHRtbCkpOwogICAgICBpblBsYWNlID0gZmFsc2U7CiAgICAgIFAucGVyc2lz dE5hdigpOyBQLmJ1aWxkSW5kZXgoKTsgUC5yZW5kZXJTaWRlYmFyKCk7ICAgLy8gcGVyc2lzdE5h diAtPiBBdXRvLVB1Ymxpc2ggaW0gTGl2ZS1Nb2R1cwogICAgICAkKCIjYXJ0LWRsZyIpLmNsb3Nl KCk7CiAgICAgIFAubmF2aWdhdGUoZWRpdGluZyk7CiAgICAgIFAudG9hc3QoUC5saXZlID8gIkRv a3VtZW50IG1pZ3JpZXJ0ICYgdmVyw7ZmZmVudGxpY2h0LiIgOiAiRG9rdW1lbnQgbWlncmllcnQg KGxva2FsZXIgRW50d3VyZikuIik7CiAgICAgIHZhciBtaWdyYXRlZCA9IGVkaXRpbmc7IGVkaXRp bmcgPSBudWxsOwogICAgICBpZiAoUC5lbWl0KSBQLmVtaXQoIm1pZ3JhdGlvbjpkb25lIiwgbWln cmF0ZWQpOwogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIHNlYyA9IFAuTkFWLnNlY3Rpb25z WyskKCIjYXJ0LXNlY3Rpb24iKS52YWx1ZV07CiAgICB2YXIgcGFyZW50VmFsID0gJCgiI2FydC1w YXJlbnQiKS52YWx1ZTsKCiAgICAvLyBFaW50cmFnIGF1cyBiaXNoZXJpZ2VyIFBvc2l0aW9uIGVu dGZlcm5lbiAoYmVpIEJlYXJiZWl0dW5nIC8gVW1zb3J0aWVydW5nKQogICAgaWYgKGVkaXRpbmcp IHJlbW92ZUZyb20oZWRpdGluZyk7CgogICAgdmFyIGl0ZW0gPSBlZGl0aW5nIHx8IHsgX2lkOiBQ LnVpZCgiYXJ0IikgfTsKICAgIGl0ZW0ubGFiZWwgPSB0aXRsZTsKICAgIGRlbGV0ZSBpdGVtLmNo aWxkcmVuOyAvLyBBcnRpa2VsIHNpbmQgQmzDpHR0ZXIKICAgIGRlbGV0ZSBpdGVtLmhyZWY7IGRl bGV0ZSBpdGVtLnRhcmdldDsKICAgIGl0ZW0uYXJ0aWNsZSA9IGV4dGVybmFsaXplQm9keShpdGVt LCBidWlsZEFydGljbGUodGl0bGUsIGRhdGUsIGF1dGhvciwgaHRtbCkpOwoKICAgIC8vIGVpbnNv cnRpZXJlbiDigJQgb3B0aW9uYWwgZWluIG5ldWVzIFVudGVybWVuw7wgKFN1Yi1Ecm9wZG93bikg YW5sZWdlbgogICAgdmFyIHRhcmdldDsKICAgIGlmIChwYXJlbnRWYWwgPT09ICJfX25ld19fIikg ewogICAgICB2YXIgc3ViTGFiZWwgPSBwcm9tcHQoIk5hbWUgZGVzIG5ldWVuIFVudGVybWVuw7xz IChTdWItRHJvcGRvd24pOiIsICIiKTsKICAgICAgaWYgKHN1YkxhYmVsICYmIHN1YkxhYmVsLnRy aW0oKSkgewogICAgICAgIHZhciBncnAgPSB7IGxhYmVsOiBzdWJMYWJlbC50cmltKCksIGNoaWxk cmVuOiBbXSB9OwogICAgICAgIHNlYy5pdGVtcy5wdXNoKGdycCk7IHRhcmdldCA9IGdycC5jaGls ZHJlbjsKICAgICAgfSBlbHNlIHsgdGFyZ2V0ID0gc2VjLml0ZW1zOyB9CiAgICB9IGVsc2UgaWYg KHBhcmVudFZhbCAhPT0gIiIgJiYgc2VjLml0ZW1zWytwYXJlbnRWYWxdKSB7CiAgICAgIHRhcmdl dCA9IGVuc3VyZUNoaWxkcmVuKHNlYy5pdGVtc1srcGFyZW50VmFsXSk7CiAgICB9IGVsc2Ugewog ICAgICB0YXJnZXQgPSBzZWMuaXRlbXM7CiAgICB9CiAgICB0YXJnZXQucHVzaChpdGVtKTsKCiAg ICB2YXIgd2FzRWRpdGluZyA9IGVkaXRpbmc7CiAgICBQLnBlcnNpc3ROYXYoKTsgUC5idWlsZElu ZGV4KCk7IFAucmVuZGVyU2lkZWJhcigpOyAgIC8vIHBlcnNpc3ROYXYgdmVyw7ZmZmVudGxpY2h0 IGJlaSBSZWRha3RldXJlbiBhdXRvbWF0aXNjaAogICAgJCgiI2FydC1kbGciKS5jbG9zZSgpOwog ICAgUC5uYXZpZ2F0ZShpdGVtKTsKICAgIFAudG9hc3Qod2FzRWRpdGluZyA/IChQLmxpdmUgPyAi QXJ0aWtlbCBha3R1YWxpc2llcnQgJiB2ZXLDtmZmZW50bGljaHQuIiA6ICJBcnRpa2VsIGFrdHVh bGlzaWVydCAobG9rYWxlciBFbnR3dXJmKS4iKSA6IChQLmxpdmUgPyAiQXJ0aWtlbCBnZXNwZWlj aGVydCAmIHZlcsO2ZmZlbnRsaWNodC4iIDogIkFydGlrZWwgZ2VzcGVpY2hlcnQgKGxva2FsZXIg RW50d3VyZikuIikpOwogICAgZWRpdGluZyA9IG51bGw7CiAgfTsKICBmdW5jdGlvbiBlbnN1cmVD aGlsZHJlbihpdCkgeyBpZiAoIWl0LmNoaWxkcmVuKSB7IGl0LmNoaWxkcmVuID0gW107IH0gcmV0 dXJuIGl0LmNoaWxkcmVuOyB9CiAgZnVuY3Rpb24gcmVtb3ZlRnJvbShpdGVtKSB7CiAgICBQLk5B Vi5zZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChzKSB7CiAgICAgIHZhciBpID0gKHMuaXRlbXMg fHwgW10pLmluZGV4T2YoaXRlbSk7IGlmIChpID49IDApIHMuaXRlbXMuc3BsaWNlKGksIDEpOwog ICAgICAocy5pdGVtcyB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbiAocCkgeyBpZiAocC5jaGlsZHJl bikgeyB2YXIgaiA9IHAuY2hpbGRyZW4uaW5kZXhPZihpdGVtKTsgaWYgKGogPj0gMCkgeyBwLmNo aWxkcmVuLnNwbGljZShqLCAxKTsgaWYgKCFwLmNoaWxkcmVuLmxlbmd0aCkgZGVsZXRlIHAuY2hp bGRyZW47IH0gfSB9KTsKICAgIH0pOwogIH0KICBQLmRlbGV0ZUFydGljbGUgPSBmdW5jdGlvbiAo KSB7CiAgICBpZiAoIWVkaXRpbmcpIHJldHVybjsKICAgIHZhciBhcnQgPSBlZGl0aW5nOwogICAg UC5jb25maXJtKCJBcnRpa2VsIOKAniIgKyBhcnQubGFiZWwgKyAi4oCcIHdpcmtsaWNoIGzDtnNj aGVuPyIsIGZ1bmN0aW9uICgpIHsKICAgICAgcmVtb3ZlRnJvbShhcnQpOyBQLnBlcnNpc3ROYXYo KTsgUC5idWlsZEluZGV4KCk7IFAucmVuZGVyU2lkZWJhcigpOyBQLmNsb3NlRG9jKCk7CiAgICAg ICQoIiNhcnQtZGxnIikuY2xvc2UoKTsgUC50b2FzdCgiQXJ0aWtlbCBnZWzDtnNjaHQuIik7IGVk aXRpbmcgPSBudWxsOyBpblBsYWNlID0gZmFsc2U7CiAgICB9LCB7IGRhbmdlcjogdHJ1ZSB9KTsK ICB9OwoKCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gS29sbGFib3JhdGlvbnMtSG9va3MgKFBoYXNlIDQpCiAgICAgRXJsYXVi ZW4gY29sbGFiLmpzLCBkZW4gQXJiZWl0c3N0YW5kIGRlcyBBcnRpa2VsLURpYWxvZ3MgenUgc2lj aGVybiB1bmQKICAgICB3aWVkZXJoZXJ6dXN0ZWxsZW4sIG9obmUgZGllIEludGVybmEgYW56dWZh c3Nlbi4gKi8KICBQLmFydGljbGVUYXJnZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBlZGl0aW5n ID8gKCJhcnQ6IiArIChlZGl0aW5nLl9pZCB8fCBlZGl0aW5nLmxhYmVsKSkgOiAiYXJ0Om5ldyI7 IH07CiAgUC5hcnRpY2xlTGFiZWwgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAoJCgiI2FydC1mLXRp dGxlIikudmFsdWUgfHwgKGVkaXRpbmcgJiYgZWRpdGluZy5sYWJlbCkgfHwgIk5ldWVyIEFydGlr ZWwiKTsgfTsKICBQLmFydGljbGVTbmFwc2hvdCA9IGZ1bmN0aW9uICgpIHsKICAgIHJldHVybiB7 IHRpdGxlOiAkKCIjYXJ0LWYtdGl0bGUiKS52YWx1ZSwgZGF0ZTogJCgiI2FydC1mLWRhdGUiKS52 YWx1ZSwgYXV0aG9yOiAkKCIjYXJ0LWYtYXV0aG9yIikudmFsdWUsCiAgICAgICAgICAgICBodG1s OiBhcnRHZXRIdG1sKCksIHNlY3Rpb246ICQoIiNhcnQtc2VjdGlvbiIpLnZhbHVlLCBwYXJlbnQ6 ICQoIiNhcnQtcGFyZW50IikudmFsdWUgfTsKICB9OwogIFAuYXJ0aWNsZUFwcGx5ID0gZnVuY3Rp b24gKHMpIHsKICAgIGlmICghcykgcmV0dXJuOwogICAgJCgiI2FydC1mLXRpdGxlIikudmFsdWUg PSBzLnRpdGxlIHx8ICIiOyAkKCIjYXJ0LWYtZGF0ZSIpLnZhbHVlID0gcy5kYXRlIHx8ICIiOyAk KCIjYXJ0LWYtYXV0aG9yIikudmFsdWUgPSBzLmF1dGhvciB8fCAiIjsKICAgIGFydFNldEh0bWwo cy5odG1sIHx8ICIiKTsKICAgIGlmIChzLnNlY3Rpb24gIT0gbnVsbCAmJiAkKCIjYXJ0LXNlY3Rp b24iKS5vcHRpb25zLmxlbmd0aCkgeyAkKCIjYXJ0LXNlY3Rpb24iKS52YWx1ZSA9IHMuc2VjdGlv bjsgZmlsbFBhcmVudFNlbGVjdCgpOyBpZiAocy5wYXJlbnQgIT0gbnVsbCkgJCgiI2FydC1wYXJl bnQiKS52YWx1ZSA9IHMucGFyZW50OyB9CiAgfTsKCn0pKHdpbmRvdy5QKTsK ### FILE: assets/js/features/arztliste.js | 14807 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvYXJ6dGxpc3RlLmpz CiAgIFJlZ2lzdGVyICJBcnp0IGFuZm9yZGVybiIgYWxzIGJyZWl0ZXMgTW9kYWwuIE5ldWVzdGUg WmVpbGUgb2JlbiwKICAgRGF0dW0vVWhyemVpdCBhdXRvbWF0aXNjaCArIGdlc3BlcnJ0IChISDpN TSkuIEF1dG92ZXJ2b2xsc3RhZW5kaWd1bmcgYXVzCiAgIGJpc2hlcmlnZW4gRWludHJhZWdlbi4g U29mb3J0LVNwZWljaGVybiBwcm8gWmVpbGUgKFVwc2VydCAtPiBrZWluCiAgIFVlYmVyc2NocmVp YmVuIHBhcmFsbGVsZXIgTnV0emVyKSBhdWYgZGVuIFNoYXJlIChIZWxmZXIgL2FwaS9hcnp0bGlz dGUpLgogICBOdXIgZGVyIEVSU1RFTExFUiBlaW5lciBaZWlsZSAoYnp3LiBlaW4gQWRtaW4pIGth bm4gc2llIGF1c2Z1ZWxsZW4vYWVuZGVybjsKICAgZWluIEFkbWluIGthbm4gWmVpbGVuIGxvZXNj aGVuLiBCZWltIFNjaGxpZXNzZW4gbWl0IHVudm9sbHN0YWVuZGlnZXIgZWlnZW5lcgogICBaZWls ZSAoU3BhbHRlbiAzLTgpIGVyc2NoZWludCBlaW5lIFJ1ZWNrZnJhZ2UuIFBERiAoRHJ1Y2spICsg Q1NWLVNpY2hlcnVuZwogICBuYWNoIGRva3VtZW50ZS9EYXRlbnNpY2hlcnVuZyBtaXQgS2FwcGVu IGF1ZiAxNCBUYWdlICgvYXBpL2FyenRiYWNrdXApLgogICBBdWZydWYgdWViZXIgS2xpY2sgYXVm ICJBcnp0IGFuZm9yZGVybiIgKFBhbmVsL05hdiAtPiBQLm5hdmlnYXRlIC0+IEFwcC1Sb3V0ZSku CiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PSAqLwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFy IGVsID0gUC5lbCwgJCA9IFAuJCwgaWMgPSBQLmljOwoKICB2YXIgQ09MUyA9IFsKICAgIHsgazog ImRhdHVtIiwgICAgIHQ6ICJEYXR1bSIsICAgICAgICAgICAgICAgICAgcm86IHRydWUgfSwKICAg IHsgazogInplaXQiLCAgICAgIHQ6ICJVaHJ6ZWl0IiwgICAgICAgICAgICAgICAgcm86IHRydWUg fSwKICAgIHsgazogImFyenQiLCAgICAgIHQ6ICJhbmdlZm9yZGVydGVyIEFyenQiLCAgICAgYWM6 IHRydWUsIHJlcTogdHJ1ZSB9LAogICAgeyBrOiAic3RlbGxlIiwgICAgdDogImFuZm9yZGVybmRl IFN0ZWxsZSIsICAgICBhYzogdHJ1ZSwgcmVxOiB0cnVlIH0sCiAgICB7IGs6ICJ3b2hpbiIsICAg ICB0OiAid29oaW4iLCAgICAgICAgICAgICAgICAgIGFjOiB0cnVlLCByZXE6IHRydWUgfSwKICAg IHsgazogImVycmVpY2h0IiwgIHQ6ICJlcnJlaWNodCDDvGJlciIsICAgICAgICAgIGFjOiB0cnVl LCByZXE6IHRydWUgfSwKICAgIHsgazogInNiIiwgICAgICAgIHQ6ICJkdXJjaCBTQiIsICAgICAg ICAgICAgICAgYWM6IHRydWUsIHJlcTogdHJ1ZSB9LAogICAgeyBrOiAiZ3J1bmQiLCAgICAgdDog IkdydW5kIGRlciBBbmZvcmRlcnVuZyIsICBhYzogdHJ1ZSwgcmVxOiB0cnVlIH0sCiAgICB7IGs6 ICJiZW1lcmt1bmciLCB0OiAic29uc3QuIEJlbWVya3VuZ2VuIiwgICAgIGFjOiBmYWxzZSB9CiAg XTsKICB2YXIgUkVRID0gQ09MUy5maWx0ZXIoZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMucmVxOyB9 KS5tYXAoZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMuazsgfSk7CgogIHZhciBkYXRhID0gW107CiAg dmFyIHRhYmxlSG9zdCA9IG51bGw7CiAgdmFyIHNhdmVUaW1lcnMgPSB7fTsKCiAgZnVuY3Rpb24g cGFkKG4pIHsgcmV0dXJuIChuIDwgMTAgPyAiMCIgOiAiIikgKyBuOyB9CiAgZnVuY3Rpb24gbm93 UGFydHMoKSB7CiAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CiAgICByZXR1cm4geyB0czogZC50b0lT T1N0cmluZygpLAogICAgICBkYXR1bTogcGFkKGQuZ2V0RGF0ZSgpKSArICIuIiArIHBhZChkLmdl dE1vbnRoKCkgKyAxKSArICIuIiArIGQuZ2V0RnVsbFllYXIoKSwKICAgICAgemVpdDogcGFkKGQu Z2V0SG91cnMoKSkgKyAiOiIgKyBwYWQoZC5nZXRNaW51dGVzKCkpIH07CiAgfQogIGZ1bmN0aW9u IHRzT2YoZSkgewogICAgaWYgKGUudHMpIHsgdmFyIHQgPSBEYXRlLnBhcnNlKGUudHMpOyBpZiAo IWlzTmFOKHQpKSByZXR1cm4gdDsgfQogICAgdmFyIG0gPSAvXihcZHsyfSlcLihcZHsyfSlcLihc ZHs0fSkkLy5leGVjKGUuZGF0dW0gfHwgIiIpOyB2YXIgeiA9IC9eKFxkezEsMn0pOihcZHsyfSkv LmV4ZWMoZS56ZWl0IHx8ICIiKTsKICAgIHJldHVybiBtID8gbmV3IERhdGUoK21bM10sICttWzJd IC0gMSwgK21bMV0sIHogPyArelsxXSA6IDAsIHogPyArelsyXSA6IDApLmdldFRpbWUoKSA6IDA7 CiAgfQogIGZ1bmN0aW9uIHNvcnRlZCgpIHsgcmV0dXJuIGRhdGEuc2xpY2UoKS5zb3J0KGZ1bmN0 aW9uIChhLCBiKSB7IHJldHVybiB0c09mKGIpIC0gdHNPZihhKTsgfSk7IH0KICBmdW5jdGlvbiBl c2MocykgeyByZXR1cm4gU3RyaW5nKHMgPT0gbnVsbCA/ICIiIDogcykucmVwbGFjZSgvWyY8PiJd L2csIGZ1bmN0aW9uIChjKSB7IHJldHVybiB7ICImIjogIiZhbXA7IiwgIjwiOiAiJmx0OyIsICI+ IjogIiZndDsiLCAnIic6ICImcXVvdDsiIH1bY107IH0pOyB9CiAgLy8gImR1cmNoIFNCIiBhbHMg IkRpZW5zdGdyYWQgTmFjaG5hbWUiOiBhdXMgIk5hY2huYW1lLCBHcmFkIiAoS29tbWEpIG9kZXIK ICAvLyAiR3JhZCBWb3JuYW1lIE5hY2huYW1lIiAoMysgVG9rZW5zKSAtPiAiR3JhZCBOYWNobmFt ZSI7IDEtMiBUb2tlbnMgdW52ZXJhZW5kZXJ0LgogIGZ1bmN0aW9uIGZvcm1hdFNCKG5hbWUpIHsK ICAgIG5hbWUgPSAobmFtZSB8fCAiIikudHJpbSgpOyBpZiAoIW5hbWUpIHJldHVybiAiIjsKICAg IHZhciBjID0gL14oLis/KSxccyooLispJC8uZXhlYyhuYW1lKTsgaWYgKGMpIHJldHVybiAoY1sy XS50cmltKCkgKyAiICIgKyBjWzFdLnRyaW0oKSk7CiAgICB2YXIgdCA9IG5hbWUuc3BsaXQoL1xz Ky8pOyBpZiAodC5sZW5ndGggPj0gMykgcmV0dXJuIHRbMF0gKyAiICIgKyB0W3QubGVuZ3RoIC0g MV07CiAgICByZXR1cm4gbmFtZTsKICB9CgogIGZ1bmN0aW9uIGlzT3duKGUpIHsgcmV0dXJuIGUu YnkgJiYgUC51c2VyICYmIGUuYnkgPT09IFAudXNlcjsgfQogIGZ1bmN0aW9uIGNhbkVkaXRSb3co ZSkgeyByZXR1cm4gUC5saXZlICYmIChpc093bihlKSB8fCAoUC5pc0FkbWluICYmIFAuaXNBZG1p bigpKSk7IH0KICBmdW5jdGlvbiBpbmNvbXBsZXRlT3duKGUpIHsgcmV0dXJuIGlzT3duKGUpICYm IFJFUS5zb21lKGZ1bmN0aW9uIChrKSB7IHJldHVybiAhKChlW2tdIHx8ICIiKS50cmltKCkpOyB9 KTsgfQogIGZ1bmN0aW9uIGhhc0luY29tcGxldGVPd24oKSB7IHJldHVybiBkYXRhLnNvbWUoaW5j b21wbGV0ZU93bik7IH0KCiAgLyogLS0tLSBQZXJzaXN0ZW56OiBVcHNlcnQvRGVsZXRlL1BydW5l IGVpbnplbG4gKFNlcnZlciBtZXJnZWQgLT4ga2VpbiBDbG9iYmVyKSAtLS0tICovCiAgZnVuY3Rp b24gcG9zdE9wKHBheWxvYWQpIHsKICAgIHJldHVybiBmZXRjaCgiL2FwaS9hcnp0bGlzdGUiLCB7 IG1ldGhvZDogIlBPU1QiLCBoZWFkZXJzOiB7ICJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24v anNvbiIgfSwgYm9keTogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkgfSkKICAgICAgLnRoZW4oZnVu Y3Rpb24gKHIpIHsgcmV0dXJuIHIuanNvbigpOyB9KTsKICB9CiAgZnVuY3Rpb24gdXBzZXJ0KGUs IHNpbGVudCkgewogICAgaWYgKHNhdmVUaW1lcnNbZS5pZF0pIGNsZWFyVGltZW91dChzYXZlVGlt ZXJzW2UuaWRdKTsKICAgIHNhdmVUaW1lcnNbZS5pZF0gPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgp IHsKICAgICAgZGVsZXRlIHNhdmVUaW1lcnNbZS5pZF07CiAgICAgIHBvc3RPcCh7IG9wOiAidXBz ZXJ0IiwgZW50cnk6IGUgfSkKICAgICAgICAudGhlbihmdW5jdGlvbiAoaikgeyBpZiAoIWogfHwg IWoub2spIFAudG9hc3QoKGogJiYgai5lcnJvcikgfHwgIlNwZWljaGVybiBmZWhsZ2VzY2hsYWdl bi4iLCB0cnVlKTsgfSkKICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKCkgeyBQLnRvYXN0KCJTcGVp Y2hlcm4gZmVobGdlc2NobGFnZW4gKFZlcmJpbmR1bmcpLiIsIHRydWUpOyB9KTsKICAgIH0sIHNp bGVudCA/IDAgOiA1MDApOwogIH0KICBmdW5jdGlvbiByZWxvYWRGcm9tKGopIHsgaWYgKGogJiYg ai5vayAmJiBqLmVudHJpZXMpIHsgZGF0YSA9IGouZW50cmllczsgcmVuZGVyKCk7IH0gfQoKICBm dW5jdGlvbiBkaXN0aW5jdChrKSB7CiAgICB2YXIgc2VlbiA9IHt9LCBvdXQgPSBbXTsKICAgIGRh dGEuZm9yRWFjaChmdW5jdGlvbiAoZSkgeyB2YXIgdiA9IChlW2tdIHx8ICIiKS50cmltKCk7IGlm ICh2ICYmICFzZWVuW3YudG9Mb3dlckNhc2UoKV0pIHsgc2Vlblt2LnRvTG93ZXJDYXNlKCldID0g MTsgb3V0LnB1c2godik7IH0gfSk7CiAgICByZXR1cm4gb3V0LnNvcnQoZnVuY3Rpb24gKGEsIGIp IHsgcmV0dXJuIGEubG9jYWxlQ29tcGFyZShiKTsgfSk7CiAgfQogIGZ1bmN0aW9uIHJlZnJlc2hE YXRhbGlzdHMoKSB7CiAgICBDT0xTLmZvckVhY2goZnVuY3Rpb24gKGMpIHsgaWYgKCFjLmFjKSBy ZXR1cm47IHZhciBkbCA9ICQoIiNhZGwtIiArIGMuayk7IGlmICghZGwpIHJldHVybjsgZGwuaW5u ZXJIVE1MID0gIiI7IGRpc3RpbmN0KGMuaykuZm9yRWFjaChmdW5jdGlvbiAodikgeyBkbC5hcHBl bmRDaGlsZChlbCgib3B0aW9uIiwgeyB2YWx1ZTogdiB9KSk7IH0pOyB9KTsKICB9CgogIGZ1bmN0 aW9uIHJlbmRlcigpIHsKICAgIGlmICghdGFibGVIb3N0KSByZXR1cm47CiAgICB0YWJsZUhvc3Qu aW5uZXJIVE1MID0gIiI7CiAgICB2YXIgZGxzID0gZWwoImRpdiIsIHsgc3R5bGU6ICJkaXNwbGF5 Om5vbmUiIH0pOwogICAgQ09MUy5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7IGlmIChjLmFjKSB7IHZh ciBkbCA9IGVsKCJkYXRhbGlzdCIsIHsgaWQ6ICJhZGwtIiArIGMuayB9KTsgZGlzdGluY3QoYy5r KS5mb3JFYWNoKGZ1bmN0aW9uICh2KSB7IGRsLmFwcGVuZENoaWxkKGVsKCJvcHRpb24iLCB7IHZh bHVlOiB2IH0pKTsgfSk7IGRscy5hcHBlbmRDaGlsZChkbCk7IH0gfSk7CiAgICB0YWJsZUhvc3Qu YXBwZW5kQ2hpbGQoZGxzKTsKCiAgICB2YXIgYWRtaW4gPSAhIShQLmlzQWRtaW4gJiYgUC5pc0Fk bWluKCkpOwogICAgdmFyIHRibCA9IGVsKCJ0YWJsZSIsIHsgY2xhc3M6ICJhcnp0LXRibCIgfSk7 CiAgICB2YXIgdGhlYWQgPSBlbCgidGhlYWQiKSwgaHRyID0gZWwoInRyIik7CiAgICBDT0xTLmZv ckVhY2goZnVuY3Rpb24gKGMpIHsgaHRyLmFwcGVuZENoaWxkKGVsKCJ0aCIsIHsgY2xhc3M6ICJj b2wtIiArIGMuaywgdGV4dDogYy50IH0pKTsgfSk7CiAgICBpZiAoYWRtaW4pIGh0ci5hcHBlbmRD aGlsZChlbCgidGgiLCB7IGNsYXNzOiAiY29sLWRlbCIsIHRleHQ6ICIiIH0pKTsKICAgIHRoZWFk LmFwcGVuZENoaWxkKGh0cik7IHRibC5hcHBlbmRDaGlsZCh0aGVhZCk7CiAgICB2YXIgdGIgPSBl bCgidGJvZHkiKTsKICAgIHNvcnRlZCgpLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAgICAgdmFy IHRyID0gZWwoInRyIik7IGlmIChpbmNvbXBsZXRlT3duKGUpKSB0ci5jbGFzc0xpc3QuYWRkKCJh cnp0LWluY29tcGxldGUiKTsKICAgICAgdmFyIGVkaXRhYmxlID0gY2FuRWRpdFJvdyhlKTsKICAg ICAgQ09MUy5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7CiAgICAgICAgdmFyIHRkID0gZWwoInRkIiwg eyBjbGFzczogImNvbC0iICsgYy5rIH0pOwogICAgICAgIGlmIChjLnJvIHx8ICFlZGl0YWJsZSkg ewogICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IHRleHQ6IGVbYy5rXSB8fCAi IiB9KSk7CiAgICAgICAgICBpZiAoYy5ybykgdGQuY2xhc3NMaXN0LmFkZCgicm8iKTsKICAgICAg ICAgIGlmICghYy5ybyAmJiAhZWRpdGFibGUgJiYgKGVbYy5rXSB8fCAiIikpIHRkLnRpdGxlID0g Ik51ciBkZXIgRXJzdGVsbGVyICgiICsgKGUuYnkgfHwgIj8iKSArICIpIG9kZXIgZWluIEFkbWlu IGthbm4gZGllcyDDpG5kZXJuIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIGlucCA9 IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogZVtjLmtdIHx8ICIiLCBhdXRvY29t cGxldGU6ICJvZmYiIH0pOwogICAgICAgICAgaWYgKGMuYWMpIGlucC5zZXRBdHRyaWJ1dGUoImxp c3QiLCAiYWRsLSIgKyBjLmspOwogICAgICAgICAgaW5wLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0 IiwgZnVuY3Rpb24gKCkgeyBlW2Mua10gPSBpbnAudmFsdWU7IHRyLmNsYXNzTGlzdC50b2dnbGUo ImFyenQtaW5jb21wbGV0ZSIsIGluY29tcGxldGVPd24oZSkpOyB1cHNlcnQoZSk7IH0pOwogICAg ICAgICAgaW5wLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uICgpIHsgZVtjLmtd ID0gaW5wLnZhbHVlOyByZWZyZXNoRGF0YWxpc3RzKCk7IH0pOwogICAgICAgICAgKGZ1bmN0aW9u IChpbnAsIGMpIHsKICAgICAgICAgICAgaW5wLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBm dW5jdGlvbiAoZXYpIHsKICAgICAgICAgICAgICBpZiAoZXYua2V5ICE9PSAiRW50ZXIiKSByZXR1 cm47CiAgICAgICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICBpZiAo Yy5hYykgeyAgIC8vIFZvcnNjaGxhZyBwZXIgRW50ZXIgdWViZXJuZWhtZW4gKGVyc3RlciBUcmVm ZmVyLCBkZXIgbWl0IGRlciBFaW5nYWJlIGJlZ2lubnQpCiAgICAgICAgICAgICAgICB2YXIgdiA9 IGlucC52YWx1ZS50cmltKCk7CiAgICAgICAgICAgICAgICBpZiAodikgewogICAgICAgICAgICAg ICAgICB2YXIgb3B0cyA9IGRpc3RpbmN0KGMuayk7CiAgICAgICAgICAgICAgICAgIGZvciAodmFy IGkgPSAwOyBpIDwgb3B0cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgIGlmIChv cHRzW2ldLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih2LnRvTG93ZXJDYXNlKCkpID09PSAwICYmIG9w dHNbaV0udG9Mb3dlckNhc2UoKSAhPT0gdi50b0xvd2VyQ2FzZSgpKSB7IGlucC52YWx1ZSA9IG9w dHNbaV07IGVbYy5rXSA9IG9wdHNbaV07IHVwc2VydChlKTsgcmVmcmVzaERhdGFsaXN0cygpOyBi cmVhazsgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgIHZhciBpbnMgPSB0ci5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dCIp OyAgIC8vIGRpcmVrdCBpbiBkaWUgbmFlY2hzdGUgWmVsbGUgc3ByaW5nZW4KICAgICAgICAgICAg ICBmb3IgKHZhciBuID0gMDsgbiA8IGlucy5sZW5ndGg7IG4rKykgeyBpZiAoaW5zW25dID09PSBp bnApIHsgaWYgKGluc1tuICsgMV0pIGluc1tuICsgMV0uZm9jdXMoKTsgYnJlYWs7IH0gfQogICAg ICAgICAgICB9KTsKICAgICAgICAgIH0pKGlucCwgYyk7CiAgICAgICAgICB0ZC5hcHBlbmRDaGls ZChpbnApOwogICAgICAgIH0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgIH0pOwog ICAgICBpZiAoYWRtaW4pIHsKICAgICAgICB2YXIgZHRkID0gZWwoInRkIiwgeyBjbGFzczogImNv bC1kZWwiIH0pOwogICAgICAgIGR0ZC5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczog Im1pbmktYnRuIiwgdGl0bGU6ICJEaWVzZSBaZWlsZSBsw7ZzY2hlbiAoQWRtaW4pIiwgaHRtbDog aWMoInRyYXNoIiksCiAgICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg IGlmICghZS5pZCkgeyBQLnRvYXN0KCJaZWlsZSBvaG5lIElEIOKAlCBiaXR0ZSBuZXUgbGFkZW4s IGRhbm4gbMO2c2NoZW4uIiwgdHJ1ZSk7IHJldHVybjsgfQogICAgICAgICAgICBQLmNvbmZpcm0o IkRpZXNlIEVJTkUgWmVpbGUgKCIgKyAoZS5kYXR1bSB8fCAiIikgKyAiICIgKyAoZS56ZWl0IHx8 ICIiKSArIChlLmFyenQgPyAiIMK3ICIgKyBlLmFyenQgOiAiIikgKyAiKSBsw7ZzY2hlbj8iLCBm dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgcG9zdE9wKHsgb3A6ICJkZWxldGUiLCBpZDogZS5p ZCB9KS50aGVuKGZ1bmN0aW9uIChqKSB7CiAgICAgICAgICAgICAgICBpZiAoaiAmJiBqLm9rKSB7 IHJlbG9hZEZyb20oaik7IH0gZWxzZSB7IFAudG9hc3QoKGogJiYgai5lcnJvcikgfHwgIkzDtnNj aGVuIGZlaGxnZXNjaGxhZ2VuLiIsIHRydWUpOyB9CiAgICAgICAgICAgICAgfSkuY2F0Y2goZnVu Y3Rpb24gKCkgeyBQLnRvYXN0KCJMw7ZzY2hlbiBmZWhsZ2VzY2hsYWdlbiAoVmVyYmluZHVuZyku IiwgdHJ1ZSk7IH0pOwogICAgICAgICAgICB9LCB7IGRhbmdlcjogdHJ1ZSB9KTsKICAgICAgICAg IH0gfSkpOwogICAgICAgIHRyLmFwcGVuZENoaWxkKGR0ZCk7CiAgICAgIH0KICAgICAgdGIuYXBw ZW5kQ2hpbGQodHIpOwogICAgfSk7CiAgICB0YmwuYXBwZW5kQ2hpbGQodGIpOwogICAgdGFibGVI b3N0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiYXJ6dC10Ymx3cmFwIiB9LCBbdGJs XSkpOwogICAgaWYgKCFkYXRhLmxlbmd0aCkgdGFibGVIb3N0LmFwcGVuZENoaWxkKGVsKCJwIiwg eyBjbGFzczogIm11dGVkIiwgdGV4dDogIk5vY2gga2VpbmUgRWludHLDpGdlLiIgfSkpOwogIH0K CiAgZnVuY3Rpb24gbmV3RW50cnkoKSB7CiAgICBpZiAoIVAubGl2ZSkgeyBQLnRvYXN0KCJOdXIg aW0gUGZsZWdlLU1vZHVzIChQb3J0YWwgw7xiZXIgZGllIEJBVCkuIiwgdHJ1ZSk7IHJldHVybjsg fQogICAgdmFyIG5wID0gbm93UGFydHMoKTsKICAgIHZhciBlID0geyBpZDogUC51aWQgPyBQLnVp ZCgiYXJ6IikgOiAoImFyei0iICsgRGF0ZS5ub3coKSArICItIiArIE1hdGgucmFuZG9tKCkudG9T dHJpbmcoMzYpLnNsaWNlKDIsIDYpKSwKICAgICAgYnk6IFAudXNlciB8fCAiIiwgdHM6IG5wLnRz LCBkYXR1bTogbnAuZGF0dW0sIHplaXQ6IG5wLnplaXQsCiAgICAgIGFyenQ6ICIiLCBzdGVsbGU6 ICIiLCB3b2hpbjogIiIsIGVycmVpY2h0OiAiIiwKICAgICAgc2I6IGZvcm1hdFNCKFAudXNlck5h bWUgfHwgUC51c2VyIHx8ICIiKSwgICAvLyAiZHVyY2ggU0IiIGFscyAiRGllbnN0Z3JhZCBOYWNo bmFtZSIgKHouQi4gIlBISyBSb2VzZ2VuIikKICAgICAgZ3J1bmQ6ICIiLCBiZW1lcmt1bmc6ICIi IH07CiAgICBkYXRhLnB1c2goZSk7IHVwc2VydChlLCB0cnVlKTsgcmVuZGVyKCk7CiAgICB2YXIg Zmlyc3RSb3cgPSB0YWJsZUhvc3QgJiYgdGFibGVIb3N0LnF1ZXJ5U2VsZWN0b3IoInRib2R5IHRy Iik7CiAgICBpZiAoZmlyc3RSb3cpIHsgdmFyIGlucCA9IGZpcnN0Um93LnF1ZXJ5U2VsZWN0b3Io Ii5jb2wtYXJ6dCBpbnB1dCIpOyBpZiAoaW5wKSBpbnAuZm9jdXMoKTsgfQogIH0KCiAgZnVuY3Rp b24gY3N2Q2VsbChzKSB7IHMgPSAocyA9PSBudWxsID8gIiIgOiBTdHJpbmcocykpOyByZXR1cm4g L1siO1xuXHJdLy50ZXN0KHMpID8gJyInICsgcy5yZXBsYWNlKC8iL2csICciIicpICsgJyInIDog czsgfQogIGZ1bmN0aW9uIGV4cG9ydENTVigpIHsKICAgIGlmICghUC5saXZlKSB7IFAudG9hc3Qo Ik51ciBpbSBQZmxlZ2UtTW9kdXMuIiwgdHJ1ZSk7IHJldHVybjsgfQogICAgdmFyIHJvd3MgPSBz b3J0ZWQoKTsKICAgIHZhciBoZWFkID0gQ09MUy5tYXAoZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMu dDsgfSkuam9pbigiOyIpOwogICAgdmFyIGJvZHkgPSByb3dzLm1hcChmdW5jdGlvbiAoZSkgeyBy ZXR1cm4gQ09MUy5tYXAoZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGNzdkNlbGwoZVtjLmtdKTsgfSku am9pbigiOyIpOyB9KTsKICAgIHZhciBjc3YgPSAi77u/IiArIGhlYWQgKyAiXHJcbiIgKyBib2R5 LmpvaW4oIlxyXG4iKSArICJcclxuIjsKICAgIHBvc3RPcDsgLy8gbm9vcCByZWYKICAgIGZldGNo KCIvYXBpL2FyenRiYWNrdXAiLCB7IG1ldGhvZDogIlBPU1QiLCBoZWFkZXJzOiB7ICJDb250ZW50 LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIgfSwgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBjc3Y6 IGNzdiB9KSB9KQogICAgICAudGhlbihmdW5jdGlvbiAocikgeyByZXR1cm4gci5qc29uKCk7IH0p CiAgICAgIC50aGVuKGZ1bmN0aW9uIChqKSB7CiAgICAgICAgaWYgKCFqIHx8ICFqLm9rKSB7IFAu dG9hc3QoKGogJiYgai5lcnJvcikgfHwgIkJhY2t1cCBmZWhsZ2VzY2hsYWdlbi4iLCB0cnVlKTsg cmV0dXJuOyB9CiAgICAgICAgdmFyIGN1dG9mZiA9IG5ldyBEYXRlKERhdGUubm93KCkgLSAxNCAq IDI0ICogMzYwMCAqIDEwMDApLnRvSVNPU3RyaW5nKCk7CiAgICAgICAgcmV0dXJuIHBvc3RPcCh7 IG9wOiAicHJ1bmUiLCBjdXRvZmY6IGN1dG9mZiB9KS50aGVuKGZ1bmN0aW9uIChrKSB7CiAgICAg ICAgICByZWxvYWRGcm9tKGspOwogICAgICAgICAgUC50b2FzdCgiQ1NWIGdlc2ljaGVydDogIiAr IChqLmZpbGUgfHwgIkRhdGVuc2ljaGVydW5nIikgKyAiLiBMaXN0ZSBhdWYgMTQgVGFnZSBnZWvD vHJ6dC4iKTsKICAgICAgICB9KTsKICAgICAgfSkKICAgICAgLmNhdGNoKGZ1bmN0aW9uICgpIHsg UC50b2FzdCgiQmFja3VwIGZlaGxnZXNjaGxhZ2VuIChWZXJiaW5kdW5nKS4iLCB0cnVlKTsgfSk7 CiAgfQoKICBmdW5jdGlvbiBleHBvcnRQREYoKSB7CiAgICB2YXIgcm93cyA9IHNvcnRlZCgpLCBu cCA9IG5vd1BhcnRzKCk7CiAgICB2YXIgaCA9ICc8dGFibGU+PHRoZWFkPjx0cj4nICsgQ09MUy5t YXAoZnVuY3Rpb24gKGMpIHsgcmV0dXJuICI8dGg+IiArIGVzYyhjLnQpICsgIjwvdGg+IjsgfSku am9pbigiIikgKyAnPC90cj48L3RoZWFkPjx0Ym9keT4nOwogICAgcm93cy5mb3JFYWNoKGZ1bmN0 aW9uIChlKSB7IGggKz0gIjx0cj4iICsgQ09MUy5tYXAoZnVuY3Rpb24gKGMpIHsgcmV0dXJuICI8 dGQ+IiArIGVzYyhlW2Mua10gfHwgIiIpICsgIjwvdGQ+IjsgfSkuam9pbigiIikgKyAiPC90cj4i OyB9KTsKICAgIGggKz0gIjwvdGJvZHk+PC90YWJsZT4iOwogICAgdmFyIHcgPSB3aW5kb3cub3Bl bigiIiwgIl9ibGFuayIpOwogICAgaWYgKCF3KSB7IFAudG9hc3QoIlBvcHVwIGJsb2NraWVydCDi gJQgUERGIG5pY2h0IG3DtmdsaWNoLiIsIHRydWUpOyByZXR1cm47IH0KICAgIHcuZG9jdW1lbnQu d3JpdGUoJzwhRE9DVFlQRSBodG1sPjxodG1sIGxhbmc9ImRlIj48aGVhZD48bWV0YSBjaGFyc2V0 PSJ1dGYtOCI+PHRpdGxlPkFyenRhbmZvcmRlcnVuZ2VuPC90aXRsZT4nICsKICAgICAgJzxzdHls ZT5AcGFnZXtzaXplOmxhbmRzY2FwZX1ib2R5e2ZvbnQ6MTFweCAiU2Vnb2UgVUkiLHNhbnMtc2Vy aWY7bWFyZ2luOjE2cHh9aDJ7bWFyZ2luOjAgMCAxMHB4O2ZvbnQtc2l6ZToxNXB4fScgKwogICAg ICAndGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO3dpZHRoOjEwMCV9dGgsdGR7Ym9yZGVy OjFweCBzb2xpZCAjODg4O3BhZGRpbmc6M3B4IDVweDt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwt YWxpZ246dG9wfXRoe2JhY2tncm91bmQ6I2VlZX08L3N0eWxlPjwvaGVhZD48Ym9keT4nICsKICAg ICAgJzxoMj5Bcnp0YW5mb3JkZXJ1bmdlbiDigJQgU3RhbmQgJyArIGVzYyhucC5kYXR1bSArICIg IiArIG5wLnplaXQpICsgJzwvaDI+JyArIGggKwogICAgICAnPHNjcicgKyAnaXB0PndpbmRvdy5v bmxvYWQ9ZnVuY3Rpb24oKXt3aW5kb3cucHJpbnQoKTt9PC9zY3InICsgJ2lwdD48L2JvZHk+PC9o dG1sPicpOwogICAgdy5kb2N1bWVudC5jbG9zZSgpOwogIH0KCiAgZnVuY3Rpb24gY29uZmlybUNs b3NlKGFwaSkgewogICAgUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiRWludHJhZyB1bnZvbGxzdMOk bmRpZyIsIGljb246ICJhbGVydCIsIHNpemU6ICJzbSIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uICho b3N0KSB7IGhvc3QuYXBwZW5kQ2hpbGQoZWwoInAiLCB7IHRleHQ6ICJEdSBoYXN0IGVpbmUgYmVn b25uZW5lIFplaWxlLCBiZWkgZGVyIG5vY2ggbmljaHQgYWxsZSBQZmxpY2h0ZmVsZGVyIChhbmdl Zm9yZGVydGVyIEFyenQg4oCmIEdydW5kIGRlciBBbmZvcmRlcnVuZykgYXVzZ2Vmw7xsbHQgc2lu ZC4gSGFzdCBkdSB3aXJrbGljaCBzY2hvbiBhbGxlcyBlaW5nZXRyYWdlbj8iIH0pKTsgfSwKICAg ICAgYWN0aW9uczogWwogICAgICAgIHsgbGFiZWw6ICJXZWl0ZXIgYXVzZsO8bGxlbiIsIGtpbmQ6 ICJnaG9zdCIgfSwKICAgICAgICB7IGxhYmVsOiAiVHJvdHpkZW0gc2NobGllw59lbiIsIGtpbmQ6 ICJkYW5nZXIiLCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IGlmIChhcGkpIGFwaS5jbG9zZSgpOyB9 IH0KICAgICAgXQogICAgfSk7CiAgfQoKICBQLm9wZW5Bcnp0TGlzdGUgPSBmdW5jdGlvbiAoKSB7 CiAgICB2YXIgYXBpID0gUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiQXJ6dCBhbmZvcmRlcm4g4oCU IEFuZm9yZGVydW5nc3JlZ2lzdGVyIiwgaWNvbjogImluYm94Iiwgc2l6ZTogInhsIiwgZGlzbWlz c2FibGU6IGZhbHNlLAogICAgICBib2R5OiBmdW5jdGlvbiAoaG9zdCkgewogICAgICAgIGhvc3Qu Y2xhc3NMaXN0LmFkZCgiYXJ6dC1ib2R5Iik7CiAgICAgICAgdGFibGVIb3N0ID0gZWwoImRpdiIs IHsgY2xhc3M6ICJhcnp0LWhvc3QiIH0pOwogICAgICAgIHRhYmxlSG9zdC5hcHBlbmRDaGlsZChl bCgicCIsIHsgY2xhc3M6ICJtdXRlZCIsIHRleHQ6IFAubGl2ZSA/ICJMYWRlIOKApiIgOiAiTnVy LUxlc2UtQW5zaWNodCAoQmVhcmJlaXRlbiBpbSBQZmxlZ2UtTW9kdXMpLiIgfSkpOwogICAgICAg IGhvc3QuYXBwZW5kQ2hpbGQodGFibGVIb3N0KTsKICAgICAgfSwKICAgICAgYWN0aW9uczogWwog ICAgICAgIHsgbGFiZWw6ICJOZXVlciBFaW50cmFnIiwga2luZDogInByaW1hcnkiLCBpY29uOiAi cGx1cyIsIGFsaWduOiAibGVmdCIsIGtlZXBPcGVuOiB0cnVlLCBvbkNsaWNrOiBmdW5jdGlvbiAo KSB7IG5ld0VudHJ5KCk7IH0gfSwKICAgICAgICB7IGxhYmVsOiAiQWt0dWFsaXNpZXJlbiIsIGtp bmQ6ICJnaG9zdCIsIGFsaWduOiAibGVmdCIsIGtlZXBPcGVuOiB0cnVlLCBvbkNsaWNrOiBmdW5j dGlvbiAoKSB7IGxvYWQoKTsgfSB9LAogICAgICAgIHsgbGFiZWw6ICJBbHMgUERGIiwga2luZDog Imdob3N0Iiwga2VlcE9wZW46IHRydWUsIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsgZXhwb3J0UERG KCk7IH0gfSwKICAgICAgICB7IGxhYmVsOiAiQ1NWIHNpY2hlcm4gKDE0IFQpIiwga2luZDogImdo b3N0Iiwga2VlcE9wZW46IHRydWUsIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsgZXhwb3J0Q1NWKCk7 IH0gfSwKICAgICAgICB7IGxhYmVsOiAiU2NobGllw59lbiIsIGtpbmQ6ICJnaG9zdCIsIG9uQ2xp Y2s6IGZ1bmN0aW9uIChhKSB7IGlmIChoYXNJbmNvbXBsZXRlT3duKCkpIHsgY29uZmlybUNsb3Nl KGEpOyByZXR1cm4gZmFsc2U7IH0gfSB9CiAgICAgIF0KICAgIH0pOwogICAgLy8gRWluZ2ViYXV0 ZXMgWCBlYmVuZmFsbHMgYWJzaWNoZXJuIChSdWVja2ZyYWdlIGJlaSB1bnZvbGxzdGFlbmRpZ2Vy IGVpZ2VuZXIgWmVpbGUpCiAgICB2YXIgeCA9IGFwaSAmJiBhcGkuZWwgJiYgYXBpLmVsLnF1ZXJ5 U2VsZWN0b3IoIi5tb2RhbC14Iik7CiAgICBpZiAoeCkgeC5hZGRFdmVudExpc3RlbmVyKCJjbGlj ayIsIGZ1bmN0aW9uIChldikgeyBpZiAoaGFzSW5jb21wbGV0ZU93bigpKSB7IGV2LnN0b3BJbW1l ZGlhdGVQcm9wYWdhdGlvbigpOyBldi5wcmV2ZW50RGVmYXVsdCgpOyBjb25maXJtQ2xvc2UoYXBp KTsgfSB9LCB0cnVlKTsKCiAgICBmdW5jdGlvbiBsb2FkKCkgewogICAgICBpZiAoIVAubGl2ZSkg eyBkYXRhID0gW107IHJlbmRlcigpOyByZXR1cm47IH0KICAgICAgZmV0Y2goIi9hcGkvYXJ6dGxp c3RlIiwgeyBjYWNoZTogIm5vLXN0b3JlIiB9KS50aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiBy Lmpzb24oKTsgfSkudGhlbihmdW5jdGlvbiAoaikgewogICAgICAgIGRhdGEgPSAoaiAmJiBqLm9r ICYmIGouZW50cmllcykgPyBqLmVudHJpZXMgOiBbXTsgcmVuZGVyKCk7CiAgICAgIH0pLmNhdGNo KGZ1bmN0aW9uICgpIHsgZGF0YSA9IFtdOyByZW5kZXIoKTsgUC50b2FzdCgiTGlzdGUgbmljaHQg bGFkYmFyIChsw6R1ZnQgZGVyIEhlbGZlcj8pLiIsIHRydWUpOyB9KTsKICAgIH0KICAgIGxvYWQo KTsKICB9OwoKICAvKiBBcHAtUmVnaXN0cnkgKyBBdWZsb2VzdW5nICh2b24gUC5uYXZpZ2F0ZSBn ZW51dHp0KS4gKi8KICBQLmFwcHMgPSBQLmFwcHMgfHwge307CiAgUC5yZWdpc3RlckFwcCA9IGZ1 bmN0aW9uIChrZXksIG9wZW5lciwgbGFiZWxzKSB7IFAuYXBwc1trZXldID0geyBvcGVuOiBvcGVu ZXIsIGxhYmVsczogKGxhYmVscyB8fCBbXSkubWFwKGZ1bmN0aW9uIChzKSB7IHJldHVybiBTdHJp bmcocykudG9Mb3dlckNhc2UoKTsgfSkgfTsgfTsKICBQLmFwcEZvckl0ZW0gPSBmdW5jdGlvbiAo aXQpIHsKICAgIGlmICghaXQpIHJldHVybiBudWxsOwogICAgdmFyIGggPSAoaXQuaHJlZiB8fCAi IikudG9Mb3dlckNhc2UoKTsKICAgIGlmIChoLmluZGV4T2YoImFwcDoiKSA9PT0gMCkgeyB2YXIg ayA9IGguc2xpY2UoNCkucmVwbGFjZSgvXlwvKy8sICIiKTsgcmV0dXJuIFAuYXBwc1trXSA/IFAu YXBwc1trXS5vcGVuIDogbnVsbDsgfQogICAgdmFyIGxibCA9IChpdC5sYWJlbCB8fCAiIikudG9M b3dlckNhc2UoKS50cmltKCk7CiAgICBmb3IgKHZhciBrZXkgaW4gUC5hcHBzKSB7IGlmIChQLmFw cHNba2V5XS5sYWJlbHMuaW5kZXhPZihsYmwpID49IDApIHJldHVybiBQLmFwcHNba2V5XS5vcGVu OyB9CiAgICByZXR1cm4gbnVsbDsKICB9OwogIFAucmVnaXN0ZXJBcHAoImFyenRhbmZvcmRlcnVu ZyIsIGZ1bmN0aW9uICgpIHsgUC5vcGVuQXJ6dExpc3RlKCk7IH0sCiAgICBbImFyenQgYW5mb3Jk ZXJuIiwgImFyenQgYW5mb3JkZXJ1bmciLCAiYXJ6dGFuZm9yZGVydW5nIiwgImFyenQtYW5mb3Jk ZXJ1bmciLCAiYXJ6dCBhbmZvcmRlcm4hIl0pOwoKfSkod2luZG93LlApOwo= ### FILE: assets/js/features/bao.js | 15906 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogKiAgZmVhdHVyZXMvYmFvLmpzIOKAlCBCQU8tUG9ydGFs IGFscyBlaWdlbnN0w6RuZGlnZXIsIHJlLWdldGhlbXRlciBCZXJlaWNoCiAqICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAqICAiU3BydW5nIGluIGRpZSBCQU8iOiDDvGJlcmxhZ2VydCBkaWUgUG9ydGFs LVNoZWxsIHZvbGxmbMOkY2hpZy4gRGFzaGJvYXJkCiAqICAoS2F0ZWdvcmllLUthY2hlbG4pIOKG kiBMYWdlLVdvcmtzcGFjZSBtaXQgZ3J1cHBpZXJ0ZXIgU2lkZWJhciArIFN0YW5kYXJkLQogKiAg YW5zaWNodCAoRXJrbMOkcnVuZyArIEdydW5kc8OkdHplICsgQ2hlY2tsaXN0ZS9PcmdhbmlncmFt bSwgd2llIGltIE9yaWdpbmFsKS4KICogIFBERnMgYWxzIDxpZnJhbWU+LUVtYmVkLCBBcnRpa2Vs IHZpYSBQLnNhbml0aXplSHRtbCAoU2ljaGVyaGVpdHMtUGZsaWNodCkuCiAqICBEYXRlbmdldHJp ZWJlbiBhdXMgd2luZG93LlBPUlRBTF9CQU8gLyB3aW5kb3cuUE9SVEFMX0JBT19BUlQuCiAqID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIg QkFPID0gd2luZG93LlBPUlRBTF9CQU8gfHwgeyBjYXRlZ29yaWVzOiBbXSwgbGFnZW46IFtdLCBp bmZvOiBbXSwga3NzdDogW10gfTsKICB2YXIgQVJUID0gd2luZG93LlBPUlRBTF9CQU9fQVJUIHx8 IHt9OwogIHZhciBlbCA9IFAuZWwsIGljID0gUC5pYywgZXNjID0gUC5lc2NhcGVIdG1sOwoKICB2 YXIgcm9vdCA9IG51bGwsIGJvZHlIb3N0ID0gbnVsbDsKICBQLmJhb0FjdGl2ZSA9IGZhbHNlOwog IHZhciBzdGF0ZSA9IHsgbGFnZTogbnVsbCwgdmlldzogImRhc2giIH07CgogIGZ1bmN0aW9uIGNh dEJ5SWQoaykgeyBmb3IgKHZhciBpID0gMDsgaSA8IEJBTy5jYXRlZ29yaWVzLmxlbmd0aDsgaSsr KSBpZiAoQkFPLmNhdGVnb3JpZXNbaV0ua2V5ID09PSBrKSByZXR1cm4gQkFPLmNhdGVnb3JpZXNb aV07IHJldHVybiBudWxsOyB9CiAgZnVuY3Rpb24gbGFnZUJ5S2V5KGspIHsgZm9yICh2YXIgaSA9 IDA7IGkgPCBCQU8ubGFnZW4ubGVuZ3RoOyBpKyspIGlmIChCQU8ubGFnZW5baV0ua2V5ID09PSBr KSByZXR1cm4gQkFPLmxhZ2VuW2ldOyByZXR1cm4gbnVsbDsgfQogIGZ1bmN0aW9uIGNhdENvbG9y KGspIHsgdmFyIGMgPSBjYXRCeUlkKGspOyByZXR1cm4gKGMgJiYgYy5jb2xvcikgfHwgInZhcigt LWJyYW5kKSI7IH0KCiAgLyogRG9jIG5vcm1hbGlzaWVyZW4g4oCUIGtvbXBha3Qge2wsZixhLHBn fSBPREVSIGF1c2bDvGhybGljaCB7bGFiZWwsdHlwZSxmaWxlLGFydH0gKi8KICBmdW5jdGlvbiBu b3JtKGQpIHsKICAgIHZhciBhcnQgPSBkLmEgfHwgKGQudHlwZSA9PT0gImFydGljbGUiID8gZC5h cnQgOiBudWxsKTsKICAgIHZhciBmaWxlID0gZC5mIHx8IChkLnR5cGUgPT09ICJwZGYiID8gZC5m aWxlIDogbnVsbCkgfHwgKCFkLnR5cGUgJiYgIWQuYSAmJiBkLmZpbGUpIHx8IG51bGw7CiAgICBy ZXR1cm4geyBsYWJlbDogZC5sIHx8IGQubGFiZWwgfHwgIiIsIGFydDogYXJ0IHx8IG51bGwsIGZp bGU6IGZpbGUgfHwgbnVsbCwKICAgICAgICAgICAgIHBhZ2U6IGQucGcgfHwgZC5wYWdlIHx8IG51 bGwsIGtpbmQ6IGFydCA/ICJhcnRpY2xlIiA6ICJwZGYiIH07CiAgfQoKICAvKiBQZmFkZSBtaXQg VW1sYXV0ZW4vTGVlcnplaWNoZW4gYWJzaWNoZXJuIChmaWxlOi8vICsgaHR0cCkgKi8KICBmdW5j dGlvbiBzYWZlU3JjKHApIHsKICAgIGlmICghcCkgcmV0dXJuICJhYm91dDpibGFuayI7CiAgICB2 YXIgaGFzaCA9ICIiLCBpID0gcC5pbmRleE9mKCIjIik7CiAgICBpZiAoaSA+PSAwKSB7IGhhc2gg PSBwLnNsaWNlKGkpOyBwID0gcC5zbGljZSgwLCBpKTsgfQogICAgdHJ5IHsgcmV0dXJuIHAuc3Bs aXQoIi8iKS5tYXAoZW5jb2RlVVJJQ29tcG9uZW50KS5qb2luKCIvIikgKyBoYXNoOyB9CiAgICBj YXRjaCAoZSkgeyByZXR1cm4gcCArIGhhc2g7IH0KICB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSBHcnVuZGdlcsO8c3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8K ICBmdW5jdGlvbiBlbnN1cmVSb290KCkgewogICAgaWYgKHJvb3QpIHJldHVybjsKICAgIHJvb3Qg PSBlbCgiZGl2IiwgeyBpZDogImJhby1yb290IiwgY2xhc3M6ICJiYW8tcm9vdCIsIGhpZGRlbjog IiIgfSk7CgogICAgdmFyIHRvcCA9IGVsKCJoZWFkZXIiLCB7IGNsYXNzOiAiYmFvLXRvcCIgfSk7 CiAgICB0b3AuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJiYW8tZXhpdCIsIHRp dGxlOiAiWnVyw7xjayB6dSBQb3J0YWwgVW5pb24iLAogICAgICBodG1sOiBpYygiYmFjayIpICsg IjxzcGFuPlBvcnRhbCBVbmlvbjwvc3Bhbj4iLCBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IFAuZXhp dEJhbygpOyB9IH0pKTsKICAgIHRvcC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImJh by10aXRsZSIsCiAgICAgIGh0bWw6ICI8Yj5CQU8tUG9ydGFsPC9iPjxzcGFuPkbDvGhydW5nICZh bXA7IFN0ZXVlcnVuZyDCtyBGTEQgRG9ydG11bmQ8L3NwYW4+IiwKICAgICAgb25jbGljazogZnVu Y3Rpb24gKCkgeyBzaG93RGFzaGJvYXJkKCk7IH0gfSkpOwogICAgdmFyIGNhdHMgPSBlbCgibmF2 IiwgeyBjbGFzczogImJhby1jYXRzIiB9KTsKICAgIEJBTy5jYXRlZ29yaWVzLmZvckVhY2goZnVu Y3Rpb24gKGMpIHsKICAgICAgY2F0cy5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczog ImJhby1jYXRqdW1wIiwgc3R5bGU6ICItLWNhdDoiICsgYy5jb2xvciwgaHRtbDogZXNjKGMuc2hv cnQpLCB0aXRsZTogYy5sYWJlbCwKICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IHNob3dE YXNoYm9hcmQoKTsgc2Nyb2xsVG9DYXQoYy5rZXkpOyB9IH0pKTsKICAgIH0pOwogICAgdG9wLmFw cGVuZENoaWxkKGNhdHMpOwogICAgdmFyIHJpZ2h0ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJiYW8t dG9wLXJpZ2h0IiB9KTsKICAgIHJpZ2h0LmFwcGVuZENoaWxkKG1lbnVCdXR0b24oIkluZm8gLyBT ZXJ2aWNlIiwgQkFPLmluZm8sIG9wZW5JbmZvKSk7CiAgICByaWdodC5hcHBlbmRDaGlsZChrc3N0 QnV0dG9uKCkpOwogICAgdG9wLmFwcGVuZENoaWxkKHJpZ2h0KTsKCiAgICBib2R5SG9zdCA9IGVs KCJkaXYiLCB7IGNsYXNzOiAiYmFvLWJvZHkiLCBpZDogImJhby1ib2R5IiB9KTsKICAgIHJvb3Qu YXBwZW5kQ2hpbGQodG9wKTsgcm9vdC5hcHBlbmRDaGlsZChib2R5SG9zdCk7CiAgICAoZG9jdW1l bnQucXVlcnlTZWxlY3RvcigiLmFwcCIpIHx8IGRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKHJv b3QpOwoKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBmdW5jdGlvbiAo ZSkgewogICAgICBpZiAoIVAuYmFvQWN0aXZlKSByZXR1cm47CiAgICAgIGlmIChlLmtleSA9PT0g IkVzY2FwZSIpIHsgaWYgKHN0YXRlLnZpZXcgIT09ICJkYXNoIikgc2hvd0Rhc2hib2FyZCgpOyBl bHNlIFAuZXhpdEJhbygpOyB9CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIG1lbnVCdXR0b24obGFi ZWwsIGl0ZW1zLCBvblBpY2spIHsKICAgIHZhciB3cmFwID0gZWwoImRpdiIsIHsgY2xhc3M6ICJi YW8tbWVudSIgfSk7CiAgICB2YXIgYnRuID0gZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJiYW8tbWVu dS1idG4iLCBodG1sOiBlc2MobGFiZWwpICsgIiAiICsgaWMoImNoZXYiKSB9KTsKICAgIHZhciBw b3AgPSBlbCgiZGl2IiwgeyBjbGFzczogImJhby1tZW51LXBvcCIsIGhpZGRlbjogIiIgfSk7CiAg ICAoaXRlbXMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGl0KSB7CiAgICAgIHBvcC5hcHBlbmRD aGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogImJhby1tZW51LWl0ZW0iLCBodG1sOiBlc2MoaXQu bGFiZWwpLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgcG9wLmhpZGRlbiA9IHRydWU7 IG9uUGljayhpdCk7IH0gfSkpOwogICAgfSk7CiAgICBidG4ub25jbGljayA9IGZ1bmN0aW9uIChl KSB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IGNsb3NlTWVudXMoKTsgcG9wLmhpZGRlbiA9ICFwb3Au aGlkZGVuOyB9OwogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlv biAoKSB7IHBvcC5oaWRkZW4gPSB0cnVlOyB9KTsKICAgIHdyYXAuYXBwZW5kQ2hpbGQoYnRuKTsg d3JhcC5hcHBlbmRDaGlsZChwb3ApOwogICAgcmV0dXJuIHdyYXA7CiAgfQogIGZ1bmN0aW9uIGtz c3RCdXR0b24oKSB7CiAgICB2YXIgd3JhcCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYmFvLW1lbnUi IH0pOwogICAgdmFyIGJ0biA9IGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYmFvLW1lbnUtYnRuIiwg aHRtbDogIktTU1QgIiArIGljKCJjaGV2IikgfSk7CiAgICB2YXIgcG9wID0gZWwoImRpdiIsIHsg Y2xhc3M6ICJiYW8tbWVudS1wb3Agd2lkZSIsIGhpZGRlbjogIiIgfSk7CiAgICB2YXIgbGFzdEdy cCA9IG51bGw7CiAgICAoQkFPLmtzc3QgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGspIHsKICAg ICAgaWYgKGsuZ3JvdXAgIT09IGxhc3RHcnApIHsgcG9wLmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7 IGNsYXNzOiAiYmFvLW1lbnUtZ3JwIiwgaHRtbDogZXNjKGsuZ3JvdXApIH0pKTsgbGFzdEdycCA9 IGsuZ3JvdXA7IH0KICAgICAgcG9wLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAi YmFvLW1lbnUtaXRlbSIsIHRpdGxlOiBrLmFkZHIsCiAgICAgICAgaHRtbDogZXNjKGsubGFiZWwp ICsgIjxzbWFsbD4iICsgZXNjKGsuYWRkcikgKyAiPC9zbWFsbD4iLAogICAgICAgIG9uY2xpY2s6 IGZ1bmN0aW9uICgpIHsgcG9wLmhpZGRlbiA9IHRydWU7IG9wZW5Lc3N0KGspOyB9IH0pKTsKICAg IH0pOwogICAgYnRuLm9uY2xpY2sgPSBmdW5jdGlvbiAoZSkgeyBlLnN0b3BQcm9wYWdhdGlvbigp OyBjbG9zZU1lbnVzKCk7IHBvcC5oaWRkZW4gPSAhcG9wLmhpZGRlbjsgfTsKICAgIGRvY3VtZW50 LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyBwb3AuaGlkZGVuID0gdHJ1 ZTsgfSk7CiAgICB3cmFwLmFwcGVuZENoaWxkKGJ0bik7IHdyYXAuYXBwZW5kQ2hpbGQocG9wKTsK ICAgIHJldHVybiB3cmFwOwogIH0KICBmdW5jdGlvbiBjbG9zZU1lbnVzKCkgeyB2YXIgcHMgPSBy b290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5iYW8tbWVudS1wb3AiKTsgZm9yICh2YXIgaSA9IDA7IGkg PCBwcy5sZW5ndGg7IGkrKykgcHNbaV0uaGlkZGVuID0gdHJ1ZTsgfQoKICAvKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSBEYXNoYm9hcmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gKi8KICBmdW5jdGlvbiBzaG93RGFzaGJvYXJkKCkgewogICAgc3RhdGUudmlldyA9ICJkYXNo Ijsgc3RhdGUubGFnZSA9IG51bGw7CiAgICBib2R5SG9zdC5pbm5lckhUTUwgPSAiIjsKICAgIHZh ciBkYXNoID0gZWwoImRpdiIsIHsgY2xhc3M6ICJiYW8tZGFzaCIgfSk7CiAgICBCQU8uY2F0ZWdv cmllcy5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7CiAgICAgIHZhciBsYWdlbiA9IEJBTy5sYWdlbi5m aWx0ZXIoZnVuY3Rpb24gKGwpIHsgcmV0dXJuIGwuY2F0ID09PSBjLmtleTsgfSk7CiAgICAgIGlm ICghbGFnZW4ubGVuZ3RoKSByZXR1cm47CiAgICAgIHZhciBzZWMgPSBlbCgic2VjdGlvbiIsIHsg Y2xhc3M6ICJiYW8tY2F0c2VjIiwgaWQ6ICJiYW8tY2F0LSIgKyBjLmtleSwgc3R5bGU6ICItLWNh dDoiICsgYy5jb2xvciB9KTsKICAgICAgc2VjLmFwcGVuZENoaWxkKGVsKCJoMiIsIHsgY2xhc3M6 ICJiYW8tY2F0aGVhZCIsIGh0bWw6ICc8c3BhbiBjbGFzcz0iYmFvLWNhdGRvdCI+PC9zcGFuPicg KyBlc2MoYy5sYWJlbCkgfSkpOwogICAgICB2YXIgZ3JpZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAi YmFvLWdyaWQiIH0pOwogICAgICBsYWdlbi5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7IGdyaWQuYXBw ZW5kQ2hpbGQobGFnZUNhcmQobCwgYykpOyB9KTsKICAgICAgc2VjLmFwcGVuZENoaWxkKGdyaWQp OwogICAgICBkYXNoLmFwcGVuZENoaWxkKHNlYyk7CiAgICB9KTsKICAgIGJvZHlIb3N0LmFwcGVu ZENoaWxkKGRhc2gpOwogICAgYm9keUhvc3Quc2Nyb2xsVG9wID0gMDsKICB9CgogIGZ1bmN0aW9u IGxhZ2VDYXJkKGwsIGMpIHsKICAgIHZhciBjYXJkID0gZWwoImFydGljbGUiLCB7IGNsYXNzOiAi YmFvLWNhcmQiLCBzdHlsZTogIi0tY2F0OiIgKyBjLmNvbG9yIH0pOwogICAgY2FyZC5hcHBlbmRD aGlsZChlbCgiaGVhZGVyIiwgeyBjbGFzczogImJhby1jYXJkLWhlYWQiLCBodG1sOiAiPHN0cm9u Zz4iICsgZXNjKGwubGFiZWwpICsgIjwvc3Ryb25nPiIsCiAgICAgIHRpdGxlOiBsLmxhYmVsLCBv bmNsaWNrOiBmdW5jdGlvbiAoKSB7IG9wZW5MYWdlKGwua2V5KTsgfSB9KSk7CiAgICB2YXIgZG9j cyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYmFvLWNhcmQtZG9jcyIgfSk7CiAgICBkb2NzLmFwcGVu ZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYmFvLWNhcmQtZG9jIGlzLWRlZmF1bHQiLCBo dG1sOiAiw5xiZXJzaWNodCIsCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgb3BlbkxhZ2Uo bC5rZXkpOyB9IH0pKTsKICAgIHZhciBmaXJzdCA9IChsLmdyb3VwcyAmJiBsLmdyb3Vwc1swXSkg fHwgeyBkb2NzOiBbXSB9OwogICAgZmlyc3QuZG9jcy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7CiAg ICAgIHZhciBuID0gbm9ybShkKTsKICAgICAgZG9jcy5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwg eyBjbGFzczogImJhby1jYXJkLWRvYyIsIGh0bWw6IGVzYyhuLmxhYmVsKSwKICAgICAgICBvbmNs aWNrOiBmdW5jdGlvbiAoKSB7IG9wZW5MYWdlKGwua2V5LCBkKTsgfSB9KSk7CiAgICB9KTsKICAg IGNhcmQuYXBwZW5kQ2hpbGQoZG9jcyk7CiAgICByZXR1cm4gY2FyZDsKICB9CgogIGZ1bmN0aW9u IHNjcm9sbFRvQ2F0KGtleSkgeyB2YXIgbiA9IHJvb3QucXVlcnlTZWxlY3RvcigiI2Jhby1jYXQt IiArIGtleSk7IGlmIChuKSBuLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICJzbW9vdGgiLCBi bG9jazogInN0YXJ0IiB9KTsgfQoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTGFn ZS1Xb3Jrc3BhY2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KICBmdW5jdGlvbiBvcGVu TGFnZShsYWdlS2V5LCBvcGVuRG9jKSB7CiAgICB2YXIgbCA9IGxhZ2VCeUtleShsYWdlS2V5KTsg aWYgKCFsKSByZXR1cm47CiAgICBzdGF0ZS52aWV3ID0gImxhZ2UiOyBzdGF0ZS5sYWdlID0gbDsK ICAgIGJvZHlIb3N0LmlubmVySFRNTCA9ICIiOwogICAgdmFyIHdzID0gZWwoImRpdiIsIHsgY2xh c3M6ICJiYW8td3MiLCBzdHlsZTogIi0tY2F0OiIgKyBjYXRDb2xvcihsLmNhdCkgfSk7CgogICAg dmFyIG5hdiA9IGVsKCJhc2lkZSIsIHsgY2xhc3M6ICJiYW8td3MtbmF2IiB9KTsKICAgIG5hdi5h cHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogImJhby13cy1iYWNrIiwgaHRtbDogaWMo ImJhY2siKSArICI8c3Bhbj5MYWdlbsO8YmVyc2ljaHQ8L3NwYW4+IiwKICAgICAgb25jbGljazog ZnVuY3Rpb24gKCkgeyBzaG93RGFzaGJvYXJkKCk7IH0gfSkpOwogICAgbmF2LmFwcGVuZENoaWxk KGVsKCJoMiIsIHsgY2xhc3M6ICJiYW8td3MtdGl0bGUiLCBodG1sOiBlc2MobC5sYWJlbCkgfSkp OwoKICAgIHZhciBsaXN0ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJiYW8tZG9jbGlzdCIgfSk7CiAg ICB2YXIgb3ZCdG4gPSBlbCgiYnV0dG9uIiwgeyBjbGFzczogImJhby1kb2MgYmFvLWRvYy1vdiIs CiAgICAgIGh0bWw6ICc8c3BhbiBjbGFzcz0iYmFvLWRvYy1pYyI+JyArIGljKCJncmlkIikgKyAi PC9zcGFuPjxzcGFuPsOcYmVyc2ljaHQ8L3NwYW4+IiwKICAgICAgb25jbGljazogZnVuY3Rpb24g KCkgeyBzZXRBY3RpdmUob3ZCdG4pOyByZW5kZXJPdmVydmlldyhsKTsgfSB9KTsKICAgIGxpc3Qu YXBwZW5kQ2hpbGQob3ZCdG4pOwogICAgKGwuZ3JvdXBzIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9u IChnKSB7CiAgICAgIGxpc3QuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJiYW8tZG9j bGlzdC1ncnAiLCBodG1sOiBlc2MoZy50aXRsZSkgfSkpOwogICAgICBnLmRvY3MuZm9yRWFjaChm dW5jdGlvbiAoZCkgewogICAgICAgIHZhciBuID0gbm9ybShkKTsKICAgICAgICB2YXIgYiA9IGVs KCJidXR0b24iLCB7IGNsYXNzOiAiYmFvLWRvYyIsCiAgICAgICAgICBodG1sOiAnPHNwYW4gY2xh c3M9ImJhby1kb2MtaWMiPicgKyBpYyhuLmtpbmQgPT09ICJwZGYiID8gImRvYyIgOiAiYXJ0aWNs ZSIpICsgIjwvc3Bhbj48c3Bhbj4iICsgZXNjKG4ubGFiZWwpICsgIjwvc3Bhbj4iLAogICAgICAg ICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBzZXRBY3RpdmUoYik7IHJlbmRlckRvYyhkLCBkb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgiYmFvLWRpc3BsYXkiKSwgbC5sYWJlbCk7IH0gfSk7CiAgICAg ICAgYi5fZG9jID0gZDsKICAgICAgICBsaXN0LmFwcGVuZENoaWxkKGIpOwogICAgICB9KTsKICAg IH0pOwogICAgbmF2LmFwcGVuZENoaWxkKGxpc3QpOwoKICAgIHdzLmFwcGVuZENoaWxkKG5hdik7 CiAgICB3cy5hcHBlbmRDaGlsZChlbCgibWFpbiIsIHsgY2xhc3M6ICJiYW8td3MtbWFpbiIsIGlk OiAiYmFvLWRpc3BsYXkiIH0pKTsKICAgIGJvZHlIb3N0LmFwcGVuZENoaWxkKHdzKTsKCiAgICBm dW5jdGlvbiBzZXRBY3RpdmUoYnRuKSB7CiAgICAgIHZhciBicyA9IGxpc3QucXVlcnlTZWxlY3Rv ckFsbCgiLmJhby1kb2MiKTsgZm9yICh2YXIgaSA9IDA7IGkgPCBicy5sZW5ndGg7IGkrKykgYnNb aV0uY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIik7CiAgICAgIGlmIChidG4pIGJ0bi5jbGFzc0xp c3QuYWRkKCJhY3RpdmUiKTsKICAgIH0KCiAgICBpZiAob3BlbkRvYykgewogICAgICAvLyBnZXpp ZWx0IGdlw7ZmZm5ldGVzIERva3VtZW50IGF1cyBkZW0gRGFzaGJvYXJkIGZpbmRlbiArIGFrdGl2 IHNldHplbgogICAgICB2YXIgbWF0Y2ggPSBudWxsLCBicyA9IGxpc3QucXVlcnlTZWxlY3RvckFs bCgiLmJhby1kb2MiKTsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicy5sZW5ndGg7IGkrKykg aWYgKGJzW2ldLl9kb2MgPT09IG9wZW5Eb2MpIHsgbWF0Y2ggPSBic1tpXTsgYnJlYWs7IH0KICAg ICAgc2V0QWN0aXZlKG1hdGNoIHx8IG92QnRuKTsKICAgICAgcmVuZGVyRG9jKG9wZW5Eb2MsIGRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJiYW8tZGlzcGxheSIpLCBsLmxhYmVsKTsKICAgIH0gZWxz ZSB7CiAgICAgIHNldEFjdGl2ZShvdkJ0bik7CiAgICAgIHJlbmRlck92ZXJ2aWV3KGwpOwogICAg fQogIH0KCiAgZnVuY3Rpb24gcmVuZGVyT3ZlcnZpZXcobCkgewogICAgdmFyIGhvc3QgPSBkb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgiYmFvLWRpc3BsYXkiKTsKICAgIGlmIChsLmRhc2gpIHJlbmRl ckRhc2hib2FyZChsLCBob3N0KTsKICAgIGVsc2UgcmVuZGVyRG9jKHsgbDogIsOcYmVyc2ljaHQi LCBhOiBsLm92ZXJ2aWV3IH0sIGhvc3QsIGwubGFiZWwpOwogIH0KCiAgLyogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSBEb2t1bWVudC1BbnplaWdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICovCiAgZnVuY3Rpb24gYXJ0aWNsZUJvZHlOb2RlKGFydElkKSB7CiAgICB2YXIgYm9keSA9IEFS VFthcnRJZF07CiAgICBpZiAoYm9keSA9PSBudWxsIHx8IGJvZHkgPT09ICIiKSByZXR1cm4gZWwo ImRpdiIsIHsgY2xhc3M6ICJiYW8tYXJ0LW1pc3NpbmciLCBodG1sOiAiPHA+RGllc2VyIEluaGFs dCBpc3Qgbm9jaCBuaWNodCBhbHMgbmF0aXZlciBBcnRpa2VsIGhpbnRlcmxlZ3QuPC9wPiIgfSk7 CiAgICB2YXIgaG9sZGVyID0gZWwoImRpdiIsIHsgY2xhc3M6ICJiYW8tYXJ0LWJvZHkiIH0pOwog ICAgaG9sZGVyLmlubmVySFRNTCA9IFAuc2FuaXRpemVIdG1sKGJvZHkpOyAgIC8vIFNpY2hlcmhl aXRzLVBmbGljaHQ6IEFsbG93bGlzdAogICAgcmV0dXJuIGhvbGRlcjsKICB9CiAgZnVuY3Rpb24g YnVpbGRBcnRpY2xlKGxhYmVsLCBhcnRJZCwgY29udGV4dCkgewogICAgdmFyIGFydCA9IGVsKCJh cnRpY2xlIiwgeyBjbGFzczogImJhby1hcnRpY2xlIiB9KTsKICAgIGFydC5hcHBlbmRDaGlsZChl bCgiaDEiLCB7IGh0bWw6IGVzYyhsYWJlbCkgKyAoY29udGV4dCA/ICcgPHNwYW4gY2xhc3M9ImJh by1hcnQtY3R4Ij4nICsgZXNjKGNvbnRleHQpICsgIjwvc3Bhbj4iIDogIiIpIH0pKTsKICAgIGFy dC5hcHBlbmRDaGlsZChhcnRpY2xlQm9keU5vZGUoYXJ0SWQpKTsKICAgIHJldHVybiBhcnQ7CiAg fQogIGZ1bmN0aW9uIHBkZlBhbmUobikgewogICAgdmFyIGZyYWcgPSBkb2N1bWVudC5jcmVhdGVE b2N1bWVudEZyYWdtZW50KCk7CiAgICB2YXIgZmlsZSA9IG4uZmlsZSArIChuLnBhZ2UgPyAiI3Bh Z2U9IiArIG4ucGFnZSA6ICIiKTsKICAgIHZhciBiYXIgPSBlbCgiZGl2IiwgeyBjbGFzczogImJh by1kb2NiYXIiIH0pOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImJh by1kb2NiYXItdCIsIGh0bWw6IGVzYyhuLmxhYmVsKSB9KSk7CiAgICBiYXIuYXBwZW5kQ2hpbGQo ZWwoInNwYW4iLCB7IGNsYXNzOiAiYmFvLWRvY2Jhci1wYXRoIG1vbm8iLCBodG1sOiBlc2Mobi5m aWxlKSB9KSk7CiAgICBiYXIuYXBwZW5kQ2hpbGQoZWwoImEiLCB7IGNsYXNzOiAiYnRuIGdob3N0 IGJhby1kb2NiYXItb3BlbiIsIGhyZWY6IHNhZmVTcmMoZmlsZSksIHRhcmdldDogIl9ibGFuayIs IHJlbDogIm5vb3BlbmVyIiwKICAgICAgaHRtbDogaWMoImV4dCIpICsgIjxzcGFuPk5ldWVyIFRh Yjwvc3Bhbj4iIH0pKTsKICAgIGZyYWcuYXBwZW5kQ2hpbGQoYmFyKTsKICAgIGZyYWcuYXBwZW5k Q2hpbGQoZWwoImlmcmFtZSIsIHsgY2xhc3M6ICJiYW8tcGRmIiwgc3JjOiBzYWZlU3JjKGZpbGUp LCB0aXRsZTogbi5sYWJlbCB9KSk7CiAgICByZXR1cm4gZnJhZzsKICB9CgogIGZ1bmN0aW9uIHJl bmRlckRvYyhkLCBob3N0LCBjb250ZXh0KSB7CiAgICBpZiAoIWhvc3QpIHJldHVybjsKICAgIGhv c3QuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIgbiA9IG5vcm0oZCk7CiAgICBpZiAobi5raW5kID09 PSAicGRmIikgaG9zdC5hcHBlbmRDaGlsZChwZGZQYW5lKG4pKTsKICAgIGVsc2UgeyBob3N0LmFw cGVuZENoaWxkKGJ1aWxkQXJ0aWNsZShuLmxhYmVsLCBuLmFydCwgY29udGV4dCkpOyBob3N0LnNj cm9sbFRvcCA9IDA7IH0KICB9CgogIC8qIFN0YW5kYXJkLcOcYmVyc2ljaHQgKHdpZSBPcmlnaW5h bCk6IEVya2zDpHJ1bmcgbGlua3MgKyBHcnVuZHPDpHR6ZSArIENoZWNrbGlzdGUvT3JnYW5pZ3Jh bW0gKi8KICBmdW5jdGlvbiByZW5kZXJEYXNoYm9hcmQobGFnZSwgaG9zdCkgewogICAgaWYgKCFo b3N0KSByZXR1cm47CiAgICBob3N0LmlubmVySFRNTCA9ICIiOwogICAgdmFyIGRhc2ggPSBsYWdl LmRhc2ggfHwge307CiAgICB2YXIgd3JhcCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYmFvLWRhc2gz IiB9KTsKCiAgICB2YXIgbWFpbkNvbCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYmFvLWRhc2gtbWFp biIgfSk7CiAgICBtYWluQ29sLmFwcGVuZENoaWxkKGJ1aWxkQXJ0aWNsZSgiw5xiZXJzaWNodCIs IGxhZ2Uub3ZlcnZpZXcsIGxhZ2UubGFiZWwpKTsKICAgIHdyYXAuYXBwZW5kQ2hpbGQobWFpbkNv bCk7CgogICAgdmFyIHNpZGUgPSBlbCgiZGl2IiwgeyBjbGFzczogImJhby1kYXNoLXNpZGUiIH0p OwogICAgdmFyIGcxID0gZWwoInNlY3Rpb24iLCB7IGNsYXNzOiAiYmFvLWRhc2gtY2FyZCIgfSk7 CiAgICBnMS5hcHBlbmRDaGlsZChlbCgiaGVhZGVyIiwgeyBjbGFzczogImJhby1kYXNoLWNhcmQt aCIsIGh0bWw6ICc8c3BhbiBjbGFzcz0iYmFvLWRvYy1pYyI+JyArIGljKCJhcnRpY2xlIikgKyAi PC9zcGFuPjxzcGFuPkdydW5kc8OkdHplPC9zcGFuPiIgfSkpOwogICAgdmFyIGdiID0gZWwoImRp diIsIHsgY2xhc3M6ICJiYW8tZGFzaC1jYXJkLWIiIH0pOwogICAgZ2IuYXBwZW5kQ2hpbGQoYXJ0 aWNsZUJvZHlOb2RlKGRhc2guZ3J1bmRzYWV0emUpKTsKICAgIGcxLmFwcGVuZENoaWxkKGdiKTsK ICAgIHNpZGUuYXBwZW5kQ2hpbGQoZzEpOwoKICAgIGlmIChkYXNoLm9yZ2FuaWdyYW1tKSB7CiAg ICAgIHZhciBnMiA9IGVsKCJzZWN0aW9uIiwgeyBjbGFzczogImJhby1kYXNoLWNhcmQgYmFvLWRh c2gtY2FyZC1wZGYiIH0pOwogICAgICB2YXIgaDIgPSBlbCgiaGVhZGVyIiwgeyBjbGFzczogImJh by1kYXNoLWNhcmQtaCIsIGh0bWw6ICc8c3BhbiBjbGFzcz0iYmFvLWRvYy1pYyI+JyArIGljKCJk b2MiKSArICI8L3NwYW4+PHNwYW4+Q2hlY2tsaXN0ZSAvIE9yZ2FuaWdyYW1tPC9zcGFuPiIgfSk7 CiAgICAgIGgyLmFwcGVuZENoaWxkKGVsKCJhIiwgeyBjbGFzczogImJ0biBnaG9zdCBiYW8tZGFz aC1vcGVuIiwgaHJlZjogc2FmZVNyYyhkYXNoLm9yZ2FuaWdyYW1tKSwgdGFyZ2V0OiAiX2JsYW5r IiwgcmVsOiAibm9vcGVuZXIiLCBodG1sOiBpYygiZXh0IikgKyAiPHNwYW4+TmV1ZXIgVGFiPC9z cGFuPiIgfSkpOwogICAgICBnMi5hcHBlbmRDaGlsZChoMik7CiAgICAgIGcyLmFwcGVuZENoaWxk KGVsKCJpZnJhbWUiLCB7IGNsYXNzOiAiYmFvLWRhc2gtcGRmIiwgc3JjOiBzYWZlU3JjKGRhc2gu b3JnYW5pZ3JhbW0pLCB0aXRsZTogIkNoZWNrbGlzdGUgLyBPcmdhbmlncmFtbSIgfSkpOwogICAg ICBzaWRlLmFwcGVuZENoaWxkKGcyKTsKICAgIH0KICAgIHdyYXAuYXBwZW5kQ2hpbGQoc2lkZSk7 CiAgICBob3N0LmFwcGVuZENoaWxkKHdyYXApOwogICAgaG9zdC5zY3JvbGxUb3AgPSAwOwogIH0K CiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEluZm8gLyBTZXJ2aWNlICYgS1NTVCAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tICovCiAgZnVuY3Rpb24gc2ltcGxlV29ya3NwYWNlKHRpdGxlLCBp dGVtcywgcGljaywgc2VsKSB7CiAgICBzdGF0ZS52aWV3ID0gImluZm8iOwogICAgYm9keUhvc3Qu aW5uZXJIVE1MID0gIiI7CiAgICB2YXIgd3MgPSBlbCgiZGl2IiwgeyBjbGFzczogImJhby13cyBi YW8td3MtaW5mbyIgfSk7CiAgICB2YXIgbmF2ID0gZWwoImFzaWRlIiwgeyBjbGFzczogImJhby13 cy1uYXYiIH0pOwogICAgbmF2LmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYmFv LXdzLWJhY2siLCBodG1sOiBpYygiYmFjayIpICsgIjxzcGFuPkxhZ2Vuw7xiZXJzaWNodDwvc3Bh bj4iLAogICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IHNob3dEYXNoYm9hcmQoKTsgfSB9KSk7 CiAgICBuYXYuYXBwZW5kQ2hpbGQoZWwoImgyIiwgeyBjbGFzczogImJhby13cy10aXRsZSIsIGh0 bWw6IGVzYyh0aXRsZSkgfSkpOwogICAgdmFyIGxpc3QgPSBlbCgiZGl2IiwgeyBjbGFzczogImJh by1kb2NsaXN0IiB9KTsKICAgIGZ1bmN0aW9uIHNldEFjdGl2ZShidG4pIHsgdmFyIGJzID0gbGlz dC5xdWVyeVNlbGVjdG9yQWxsKCIuYmFvLWRvYyIpOyBmb3IgKHZhciBpID0gMDsgaSA8IGJzLmxl bmd0aDsgaSsrKSBic1tpXS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKTsgaWYgKGJ0bikgYnRu LmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpOyB9CiAgICBpdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChp dCkgewogICAgICBpZiAoaXQuX2dycCkgeyBsaXN0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNs YXNzOiAiYmFvLWRvY2xpc3QtZ3JwIiwgaHRtbDogZXNjKGl0Ll9ncnApIH0pKTsgcmV0dXJuOyB9 CiAgICAgIHZhciBuID0gbm9ybShpdCk7CiAgICAgIHZhciBiID0gZWwoImJ1dHRvbiIsIHsgY2xh c3M6ICJiYW8tZG9jIiwKICAgICAgICBodG1sOiAnPHNwYW4gY2xhc3M9ImJhby1kb2MtaWMiPicg KyBpYyhuLmtpbmQgPT09ICJwZGYiID8gImRvYyIgOiAiYXJ0aWNsZSIpICsgIjwvc3Bhbj48c3Bh bj4iICsgZXNjKG4ubGFiZWwpICsgKGl0LmFkZHIgPyAiPHNtYWxsPiIgKyBlc2MoaXQuYWRkcikg KyAiPC9zbWFsbD4iIDogIiIpICsgIjwvc3Bhbj4iLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9u ICgpIHsgc2V0QWN0aXZlKGIpOyByZW5kZXJEb2MoaXQsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk KCJiYW8tZGlzcGxheSIpLCB0aXRsZSk7IH0gfSk7CiAgICAgIGIuX2l0ID0gaXQ7CiAgICAgIGxp c3QuYXBwZW5kQ2hpbGQoYik7CiAgICB9KTsKICAgIG5hdi5hcHBlbmRDaGlsZChsaXN0KTsKICAg IHdzLmFwcGVuZENoaWxkKG5hdik7CiAgICB3cy5hcHBlbmRDaGlsZChlbCgibWFpbiIsIHsgY2xh c3M6ICJiYW8td3MtbWFpbiIsIGlkOiAiYmFvLWRpc3BsYXkiIH0pKTsKICAgIGJvZHlIb3N0LmFw cGVuZENoaWxkKHdzKTsKICAgIHZhciBmaXJzdCA9IG51bGwsIGJzID0gbGlzdC5xdWVyeVNlbGVj dG9yQWxsKCIuYmFvLWRvYyIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicy5sZW5ndGg7IGkr KykgaWYgKGJzW2ldLl9pdCA9PT0gc2VsKSB7IGZpcnN0ID0gYnNbaV07IGJyZWFrOyB9CiAgICAo Zmlyc3QgfHwgYnNbMF0pICYmIChmaXJzdCB8fCBic1swXSkuY2xpY2soKTsKICB9CiAgZnVuY3Rp b24gb3BlbkluZm8oc2VsKSB7IHNpbXBsZVdvcmtzcGFjZSgiSW5mbyAvIFNlcnZpY2UiLCBCQU8u aW5mbywgbnVsbCwgc2VsKTsgfQogIGZ1bmN0aW9uIG9wZW5Lc3N0KHNlbCkgewogICAgdmFyIGl0 ZW1zID0gW10sIGxhc3RHcnAgPSBudWxsOwogICAgKEJBTy5rc3N0IHx8IFtdKS5mb3JFYWNoKGZ1 bmN0aW9uIChrKSB7IGlmIChrLmdyb3VwICE9PSBsYXN0R3JwKSB7IGl0ZW1zLnB1c2goeyBfZ3Jw OiBrLmdyb3VwIH0pOyBsYXN0R3JwID0gay5ncm91cDsgfSBpdGVtcy5wdXNoKGspOyB9KTsKICAg IHNpbXBsZVdvcmtzcGFjZSgiS3LDpGZ0ZXNhbW1lbHN0ZWxsZW4iLCBpdGVtcywgbnVsbCwgc2Vs KTsKICB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1vZHVzIGVpbi9hdXMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogIFAuZW50ZXJCYW8gPSBmdW5jdGlvbiAobGFn ZUtleSwgb3BlbkRvYykgewogICAgZW5zdXJlUm9vdCgpOwogICAgZG9jdW1lbnQuYm9keS5jbGFz c0xpc3QuYWRkKCJiYW8iKTsKICAgIHJvb3QuaGlkZGVuID0gZmFsc2U7CiAgICBQLmJhb0FjdGl2 ZSA9IHRydWU7CiAgICBpZiAobGFnZUtleSkgb3BlbkxhZ2UobGFnZUtleSwgb3BlbkRvYyk7IGVs c2Ugc2hvd0Rhc2hib2FyZCgpOwogICAgaWYgKFAuZW1pdCkgUC5lbWl0KCJiYW86ZW50ZXIiLCB7 IGxhZ2U6IGxhZ2VLZXkgfHwgbnVsbCB9KTsKICB9OwogIFAuZXhpdEJhbyA9IGZ1bmN0aW9uICgp IHsKICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgiYmFvIik7CiAgICBpZiAocm9v dCkgcm9vdC5oaWRkZW4gPSB0cnVlOwogICAgUC5iYW9BY3RpdmUgPSBmYWxzZTsKICAgIGlmIChQ LmVtaXQpIFAuZW1pdCgiYmFvOmV4aXQiKTsKICB9OwogIFAudG9nZ2xlQmFvID0gZnVuY3Rpb24g KCkgeyBpZiAoUC5iYW9BY3RpdmUpIFAuZXhpdEJhbygpOyBlbHNlIFAuZW50ZXJCYW8oKTsgfTsK CiAgZnVuY3Rpb24gd2lyZUVudHJ5KCkgeyB2YXIgYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk KCJiYW8tZW50ZXIiKTsgaWYgKGIgJiYgIWIuX3dpcmVkKSB7IGIuX3dpcmVkID0gdHJ1ZTsgYi5h ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsgUC5lbnRlckJhbygpOyB9KTsg fSB9CiAgUC5vbiAmJiBQLm9uKCJyZW5kZXJlZCIsIHdpcmVFbnRyeSk7CiAgZG9jdW1lbnQuYWRk RXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIHdpcmVFbnRyeSk7Cn0pKHdpbmRvdy5Q KTsK ### FILE: assets/js/features/breadcrumbs.js | 2542 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvYnJlYWRjcnVtYnMu anMgIChQaGFzZSA4KQogICBLbGlja2JhcmVyIEJyb3RrcnVtZW4tUGZhZCAoQmVyZWljaCDigLog 4oCmIOKAuiBBa3R1ZWxsKSBpbiBkZXIgRG9rdW1lbnQtLwogICBBcnRpa2VsYW5zaWNodC4gQmF1 dCBkaWUgQWhuZW5rZXR0ZSBhdXMgUC5uYXZGaW5kIChFbHRlcm4gKyBTZWN0aW9uKSB1bmQKICAg cmVuZGVydCBzaWUgaW4gI2N2LXBhdGguIFJlaW4gY2xpZW50c2VpdGlnIOKAlCBmdW5rdGlvbmll cnQgYXVjaCBmw7xyIExlc2VyCiAgIChmaWxlOi8vKS4gVW1ow7xsbHQgUC5uYXZpZ2F0ZSwgb2hu ZSBuYXYuanMgenUgw6RuZGVybi4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewog ICJ1c2Ugc3RyaWN0IjsKICB2YXIgZWwgPSBQLmVsLCAkID0gUC4kLCBpYyA9IFAuaWM7CgogIGZ1 bmN0aW9uIHJlc29sdmUoaXQpIHsgcmV0dXJuIFAucmVzb2x2ZVJlZiA/IFAucmVzb2x2ZVJlZihp dCkgOiBpdDsgfQogIGZ1bmN0aW9uIG5hdmlnYWJsZShpdCkgewogICAgdmFyIGQgPSByZXNvbHZl KGl0KTsKICAgIHJldHVybiAhIShkICYmIChkLmFydGljbGUgfHwgKGQuaHJlZiAmJiBkLnRhcmdl dCAhPT0gIl9ibGFuayIgJiYgIS9ebWFpbHRvOi9pLnRlc3QoZC5ocmVmKSkpKTsKICB9CiAgZnVu Y3Rpb24gY2hhaW4oaXQpIHsKICAgIHZhciBpdGVtcyA9IFtdLCBjdXIgPSBpdCwgZ3VhcmQgPSAw OwogICAgdmFyIGYgPSBQLm5hdkZpbmQgPyBQLm5hdkZpbmQoaXQpIDogbnVsbDsgICAvLyBBaG5l bmtldHRlIGFtIEFuemVpZ2VvcnQgKGF1Y2ggZnVlciBWZXJ3ZWlzLUtub3RlbikKICAgIHdoaWxl IChjdXIgJiYgZ3VhcmQrKyA8IDI0KSB7IGl0ZW1zLnVuc2hpZnQoY3VyKTsgdmFyIGZmID0gUC5u YXZGaW5kID8gUC5uYXZGaW5kKGN1cikgOiBudWxsOyBjdXIgPSBmZiA/IGZmLnBhcmVudCA6IG51 bGw7IH0KICAgIHJldHVybiB7IHNlY3Rpb246IGYgPyBmLnNlY3Rpb24gOiBudWxsLCBpdGVtczog aXRlbXMgfTsKICB9CiAgZnVuY3Rpb24gbGJsKG5vZGUpIHsgdmFyIGQgPSByZXNvbHZlKG5vZGUp OyByZXR1cm4gbm9kZS5sYWJlbCB8fCAoZCAmJiAoZC5sYWJlbCB8fCAoZC5hcnRpY2xlICYmIGQu YXJ0aWNsZS50aXRsZSkpKSB8fCAi4oCmIjsgfQoKICBQLnJlbmRlckNydW1icyA9IGZ1bmN0aW9u IChpdCkgewogICAgdmFyIGhvc3QgPSAkKCIjY3YtcGF0aCIpOyBpZiAoIWhvc3QpIHJldHVybjsK ICAgIGhvc3QuaW5uZXJIVE1MID0gIiI7IGhvc3Quc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwg IkJyb3RrcnVtZW4iKTsKICAgIGlmICghbmF2aWdhYmxlKGl0KSkgeyBob3N0LnRleHRDb250ZW50 ID0gaXQgJiYgaXQubGFiZWwgPyBpdC5sYWJlbCA6ICIiOyByZXR1cm47IH0KICAgIHZhciBjID0g Y2hhaW4oaXQpOwogICAgZnVuY3Rpb24gc2VwKCkgeyByZXR1cm4gZWwoInNwYW4iLCB7IGNsYXNz OiAiY3J1bWItc2VwIiwgaHRtbDogaWMoImNoZXYiKSB9KTsgfQogICAgaWYgKGMuc2VjdGlvbikg aG9zdC5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJjcnVtYiBjcnVtYi1zZWMiLCB0 ZXh0OiBjLnNlY3Rpb24udGl0bGUgfHwgIiIgfSkpOwogICAgYy5pdGVtcy5mb3JFYWNoKGZ1bmN0 aW9uIChub2RlLCBpKSB7CiAgICAgIGlmIChjLnNlY3Rpb24gfHwgaSA+IDApIGhvc3QuYXBwZW5k Q2hpbGQoc2VwKCkpOwogICAgICB2YXIgbGFzdCA9IGkgPT09IGMuaXRlbXMubGVuZ3RoIC0gMTsK ICAgICAgaWYgKGxhc3QpIGhvc3QuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAiY3J1 bWIgY3J1bWItY3VyIiwgImFyaWEtY3VycmVudCI6ICJwYWdlIiwgdGV4dDogbGJsKG5vZGUpIH0p KTsKICAgICAgZWxzZSBpZiAobmF2aWdhYmxlKG5vZGUpKSBob3N0LmFwcGVuZENoaWxkKGVsKCJh IiwgeyBjbGFzczogImNydW1iIiwgaHJlZjogIiMiLCB0ZXh0OiBsYmwobm9kZSksCiAgICAgICAg b25jbGljazogZnVuY3Rpb24gKGUpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBQLm5hdmlnYXRlKG5v ZGUpOyB9IH0pKTsKICAgICAgZWxzZSBob3N0LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFz czogImNydW1iIiwgdGV4dDogbGJsKG5vZGUpIH0pKTsKICAgIH0pOwogIH07CgogIC8vIFAubmF2 aWdhdGUgdW1ow7xsbGVuOiBha3R1ZWxsZXMgSXRlbSBtZXJrZW4gKyBCcm90a3J1bWVuIG5hY2gg QW5zaWNodHN3ZWNoc2VsIHJlbmRlcm4uCiAgaWYgKFAubmF2aWdhdGUpIHsKICAgIHZhciBfbmF2 aWdhdGUgPSBQLm5hdmlnYXRlOwogICAgUC5uYXZpZ2F0ZSA9IGZ1bmN0aW9uIChpdCkgeyBQLmN1 ck5hdkl0ZW0gPSBpdDsgX25hdmlnYXRlKGl0KTsgaWYgKG5hdmlnYWJsZShpdCkpIFAucmVuZGVy Q3J1bWJzKGl0KTsgfTsKICB9Cgp9KSh3aW5kb3cuUCk7Cg== ### FILE: assets/js/features/commands.js | 4046 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvY29tbWFuZHMuanMK ICAgQmVmZWhsZSBmw7xyIGRpZSBLb21tYW5kby1QYWxldHRlIChTdHJnK0spLiBTcGVpc3QgZGll IGJlc3RlaGVuZGUgU3VjaGUKICAgKFtzZWFyY2guanNdKSBtaXQgYXVzZsO8aHJiYXJlbiBBa3Rp b25lbiDigJQga2VpbiBlaWdlbmVzIFVJLVN5c3RlbS4KICAgUm9sbGVuLS9Lb250ZXh0LUZpbHRl ciB2aWEgcmVxKCkuIEzDpGR0IG5hY2ggc2VhcmNoLmpzLCB2b3IgbWFpbi5qcy4KICAgPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKCiAgLy8gQmVmZWhscy1E ZWZpbml0aW9uZW4uIHJlcSgpID0gbnVyIGFuemVpZ2VuLCB3ZW5uIGVyZsO8bGx0OyB0b3AgPSBp bSBMZWVyenVzdGFuZC4KICBmdW5jdGlvbiBkZWZzKCkgewogICAgcmV0dXJuIFsKICAgICAgeyBs YWJlbDogIk5ldWUgTWVsZHVuZyIsIGhpbnQ6ICJNZWxkdW5nIGltIEZlZWQgYW5sZWdlbiIsIGlj b246ICJwbHVzIiwgdG9wOiB0cnVlLAogICAgICAgIHJ1bjogZnVuY3Rpb24gKCkgeyBpZiAoUC5v cGVuQnVsbGV0aW5EbGcpIFAub3BlbkJ1bGxldGluRGxnKG51bGwpOyB9LCByZXE6IGZ1bmN0aW9u ICgpIHsgcmV0dXJuIFAuY2FuRWRpdCAmJiBQLmNhbkVkaXQoKTsgfSB9LAogICAgICB7IGxhYmVs OiAiTWVsZHVuZ2VuIGltcG9ydGllcmVuIiwgaGludDogIk1laHJlcmUgQmVpdHLDpGdlIHBlciBU ZXh0IGVpbmbDvGdlbiAoRGF0dW0vVGl0ZWwvVGV4dCkiLCBpY29uOiAiZG93bmxvYWQiLAogICAg ICAgIHJ1bjogZnVuY3Rpb24gKCkgeyBpZiAoUC5vcGVuTmV3c0ltcG9ydCkgUC5vcGVuTmV3c0lt cG9ydCgpOyB9LCByZXE6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFAuY2FuRWRpdCAmJiBQLmNhbkVk aXQoKTsgfSB9LAogICAgICB7IGxhYmVsOiAiTmV1ZXIgQXJ0aWtlbCIsIGhpbnQ6ICJXaXNzZW5z YXJ0aWtlbCBhbmxlZ2VuIiwgaWNvbjogImFydGljbGUiLCB0b3A6IHRydWUsCiAgICAgICAgcnVu OiBmdW5jdGlvbiAoKSB7IGlmIChQLm9wZW5BcnRpY2xlRGxnKSBQLm9wZW5BcnRpY2xlRGxnKG51 bGwpOyB9LCByZXE6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFAuY2FuRWRpdCAmJiBQLmNhbkVkaXQo KTsgfSB9LAogICAgICB7IGxhYmVsOiAiQXJ0aWtlbCBrb3BpZXJlbiAobWl0IEJpbGRlcm4pIiwg aGludDogIkluaGFsdCBpbiBkaWUgWndpc2NoZW5hYmxhZ2Ug4oCTIHdvYW5kZXJzIG1pdCBTdHJn K1YgZWluZsO8Z2VuIiwgaWNvbjogImRvYyIsCiAgICAgICAgcnVuOiBmdW5jdGlvbiAoKSB7IGlm IChQLmNvcHlBcnRpY2xlKSBQLmNvcHlBcnRpY2xlKCk7IH0sIHJlcTogZnVuY3Rpb24gKCkgeyBy ZXR1cm4gISFQLmN1ckFydGljbGU7IH0gfSwKICAgICAgeyBsYWJlbDogIkxhZ2Ugc2V0emVuIiwg aGludDogIkFrdHVlbGxlbiBMYWdlLVN0YXR1cyDDpG5kZXJuIiwgaWNvbjogImFsZXJ0IiwKICAg ICAgICBydW46IGZ1bmN0aW9uICgpIHsgaWYgKFAuZWRpdExhZ2UpIFAuZWRpdExhZ2UoKTsgfSwg cmVxOiBmdW5jdGlvbiAoKSB7IHJldHVybiAhIVAubGl2ZTsgfSB9LAogICAgICB7IGxhYmVsOiAi QeKAk1otUmVnaXN0ZXIgw7ZmZm5lbiIsIGhpbnQ6ICJTdGljaHdvcnR2ZXJ6ZWljaG5pcyIsIGlj b246ICJheiIsIHRvcDogdHJ1ZSwKICAgICAgICBydW46IGZ1bmN0aW9uICgpIHsgaWYgKFAub3Bl bkFaKSBQLm9wZW5BWigpOyB9IH0sCiAgICAgIHsgbGFiZWw6ICJIZWxsLS9EdW5rZWwtRGVzaWdu IHVtc2NoYWx0ZW4iLCBoaW50OiAiVGhlbWUgd2VjaHNlbG4iLCBpY29uOiAic3VuIiwgdG9wOiB0 cnVlLAogICAgICAgIHJ1bjogZnVuY3Rpb24gKCkgeyBpZiAoUC50b2dnbGVUaGVtZSkgUC50b2dn bGVUaGVtZSgpOyB9IH0sCiAgICAgIHsgbGFiZWw6ICJJbXByZXNzdW0gJiBTdXBwb3J0IiwgaGlu dDogIkltcHJlc3N1bSwgQW5zcHJlY2hwYXJ0bmVyICYgU3VwcG9ydC1BbmZyYWdlIHBlciBFLU1h aWwiLCBpY29uOiAic2hpZWxkIiwKICAgICAgICBydW46IGZ1bmN0aW9uICgpIHsgaWYgKFAub3Bl bkltcHJlc3N1bSkgUC5vcGVuSW1wcmVzc3VtKCk7IH0gfSwKICAgICAgeyBsYWJlbDogIkRhdGVu cGZsZWdlIHVtc2NoYWx0ZW4iLCBoaW50OiAiQmVhcmJlaXRlbi1Nb2R1cyIsIGljb246ICJlZGl0 IiwKICAgICAgICBydW46IGZ1bmN0aW9uICgpIHsgaWYgKFAudG9nZ2xlRWRpdCkgUC50b2dnbGVF ZGl0KCk7IH0sIHJlcTogZnVuY3Rpb24gKCkgeyByZXR1cm4gUC5yb2xlICYmIFAucm9sZSAhPT0g InJlYWRlciI7IH0gfSwKICAgICAgeyBsYWJlbDogIkFkbWluLVdlcmt6ZXVnZSIsIGhpbnQ6ICJW ZXJzaW9uZW4sIEVpbnN0ZWxsdW5nZW4sIFJvbGxlbiwgTmF2aWdhdGlvbiIsIGljb246ICJzaGll bGQiLCB0b3A6IHRydWUsCiAgICAgICAgcnVuOiBmdW5jdGlvbiAoKSB7IGlmIChQLm9wZW5BZG1p bkh1YikgUC5vcGVuQWRtaW5IdWIoKTsgfSwgcmVxOiBmdW5jdGlvbiAoKSB7IHJldHVybiBQLmlz QWRtaW4gJiYgUC5pc0FkbWluKCk7IH0gfSwKICAgICAgeyBsYWJlbDogIkxpbmstUHLDvGZ1bmci LCBoaW50OiAiRmVobGVuZGUgRGF0ZWktTGlua3MgZXJrZW5uZW4gJiBhdWZsaXN0ZW4iLCBpY29u OiAibGluayIsCiAgICAgICAgcnVuOiBmdW5jdGlvbiAoKSB7IGlmIChQLm9wZW5MaW5rUmVwb3J0 KSBQLm9wZW5MaW5rUmVwb3J0KCk7IH0sIHJlcTogZnVuY3Rpb24gKCkgeyByZXR1cm4gUC5yb2xl ICYmIFAucm9sZSAhPT0gInJlYWRlciI7IH0gfSwKICAgICAgeyBsYWJlbDogIkFsdC1Eb2t1bWVu dGUgbWlncmllcmVuIiwgaGludDogIldvcmQvRXhjZWwtSFRNTCBpbiBlZGl0aWVyYmFyZSBBcnRp a2VsIMO8YmVyZsO8aHJlbiIsIGljb246ICJhcnRpY2xlIiwKICAgICAgICBydW46IGZ1bmN0aW9u ICgpIHsgaWYgKFAub3Blbk1pZ3JhdGlvblBhbmVsKSBQLm9wZW5NaWdyYXRpb25QYW5lbCgpOyB9 LCByZXE6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFAuaXNBZG1pbiAmJiBQLmlzQWRtaW4oKTsgfSB9 CiAgICBdOwogIH0KCiAgLy8gVmVyZsO8Z2JhcmUgQmVmZWhsZSAobmFjaCByZXEgZ2VmaWx0ZXJ0 KSwgbWl0IFN1Y2h0ZXh0IGFuZ2VyZWljaGVydC4KICBmdW5jdGlvbiBhdmFpbCgpIHsKICAgIHJl dHVybiBkZWZzKCkuZmlsdGVyKGZ1bmN0aW9uIChjKSB7IHJldHVybiAhYy5yZXEgfHwgYy5yZXEo KTsgfSkKICAgICAgLm1hcChmdW5jdGlvbiAoYykgeyBjLmhheSA9IFAuZGVhY2NlbnQoYy5sYWJl bCArICIgIiArIChjLmhpbnQgfHwgIiIpKTsgcmV0dXJuIGM7IH0pOwogIH0KCiAgLy8gU3VjaC1T Y2huaXR0c3RlbGxlIGbDvHIgc2VhcmNoLmpzOiBhbGxlIFRva2VucyBtw7xzc2VuIGltIEJlZmVo bHN0ZXh0IHN0ZWNrZW4uCiAgUC5zZWFyY2hDb21tYW5kcyA9IGZ1bmN0aW9uICh0b2tzLCBucSkg ewogICAgcmV0dXJuIGF2YWlsKCkuZmlsdGVyKGZ1bmN0aW9uIChjKSB7IHJldHVybiB0b2tzLmV2 ZXJ5KGZ1bmN0aW9uICh0KSB7IHJldHVybiBjLmhheS5pbmRleE9mKHQpID49IDA7IH0pOyB9KTsK ICB9OwogIC8vIExlZXJ6dXN0YW5kIGRlciBQYWxldHRlOiBkaWUgd2ljaHRpZ3N0ZW4gQmVmZWhs ZS4KICBQLnRvcENvbW1hbmRzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gYXZhaWwoKS5maWx0ZXIo ZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMudG9wOyB9KTsgfTsKCiAgLy8gRm9rdXMgYXVmIGRhcyBs ZWVyZSBTdWNoZmVsZCDDtmZmbmV0IGRpZSBQYWxldHRlIG1pdCBkZW4gVG9wLUJlZmVobGVuLgog IHZhciBpbnAgPSBQLiQoIiNzZWFyY2gtaW5wdXQiKTsKICBpZiAoaW5wKSBpbnAuYWRkRXZlbnRM aXN0ZW5lcigiZm9jdXMiLCBmdW5jdGlvbiAoKSB7IGlmICghaW5wLnZhbHVlLnRyaW0oKSAmJiBQ LnJlbmRlclJlc3VsdHMpIFAucmVuZGVyUmVzdWx0cygiIik7IH0pOwoKfSkod2luZG93LlApOwo= ### FILE: assets/js/features/feed.js | 12513 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVlZC5qcwogICBNaXR0bGVyZSBT cGFsdGU6IE1lbGR1bmdzLUZlZWQgKEJ1bGxldGlucykgKyBCZWFyYmVpdGVuLURpYWxvZy4KICAg PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgZWwg PSBQLmVsLCAkID0gUC4kLCBpYyA9IFAuaWMsIGVzY2FwZUh0bWwgPSBQLmVzY2FwZUh0bWwsIGRl YWNjZW50ID0gUC5kZWFjY2VudDsKCiAgdmFyIGZlZWRRdWVyeSA9ICIiOwogIFAuc2V0RmVlZFF1 ZXJ5ID0gZnVuY3Rpb24gKHEpIHsgZmVlZFF1ZXJ5ID0gcTsgUC5yZW5kZXJGZWVkKCk7IH07Cgog IGZ1bmN0aW9uIGlzTmV3KGIpIHsgcmV0dXJuIG5ldyBEYXRlKGIudXBkYXRlZCB8fCBiLmNyZWF0 ZWQgfHwgYi5kYXRlKS5nZXRUaW1lKCkgPiBQLmxhc3RWaXNpdDsgfQogIGZ1bmN0aW9uIG1kSW5s aW5lKHMpIHsKICAgIHJldHVybiBlc2NhcGVIdG1sKHMpLnJlcGxhY2UoL1wqXCooLis/KVwqXCov ZywgIjxzdHJvbmc+JDE8L3N0cm9uZz4iKQogICAgICAvLyBNYXJrZG93bi1MaW5rOiBVUkwgZ2Vn ZW4gZGllIFNjaGVtYS1BbGxvd2xpc3QgcHJ1ZWZlbiAoUC5zYWZlVXJsKSDigJQgdW5zaWNoZXJl CiAgICAgIC8vIFNjaGVtYXRhIChqYXZhc2NyaXB0Oi9kYXRhOi9maWxlOiDigKYpIE5JQ0hUIGFs cyA8YT4gcmVuZGVybiwgbnVyIGRlbiBUZXh0IHplaWdlbi4KICAgICAgLnJlcGxhY2UoL1xbKFte XF1dKylcXVwoKFteKV0rKVwpL2csIGZ1bmN0aW9uIChtLCB0ZXh0LCB1cmwpIHsKICAgICAgICB2 YXIgc2FmZSA9IFAuc2FmZVVybCh1cmwpOwogICAgICAgIHJldHVybiBzYWZlID8gJzxhIGhyZWY9 IicgKyBzYWZlICsgJyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPicgKyB0ZXh0ICsg IjwvYT4iIDogdGV4dDsKICAgICAgfSk7CiAgfQogIGZ1bmN0aW9uIGJ1bGxldEVsKGIpIHsKICAg IHZhciBjYXJkID0gZWwoImFydGljbGUiLCB7IGNsYXNzOiAiYnVsbCIgKyAoYi5waW5uZWQgPyAi IHBpbm5lZCIgOiAiIikgKyAoYi5obCA/ICIgaGwtIiArIGIuaGwgOiAiIiksICJkYXRhLWJpZCI6 IChiLmlkIHx8IGIudGl0bGUpIH0pOwogICAgaWYgKGlzTmV3KGIpKSBjYXJkLmFwcGVuZENoaWxk KGVsKCJzcGFuIiwgeyBjbGFzczogImJ1bGwtbmV3IiB9LCBbZWwoInNwYW4iLCB7IGNsYXNzOiAi YmFkZ2UgbmV1IiwgdGV4dDogIk5FVSIgfSldKSk7CiAgICB2YXIgdG9wID0gZWwoImRpdiIsIHsg Y2xhc3M6ICJidWxsLXRvcCIgfSwgWwogICAgICBlbCgic3BhbiIsIHsgY2xhc3M6ICJidWxsLWRh dGUgbW9ubyIsIHRleHQ6IFAuZm10RGF0ZShiLmRhdGUpIH0pCiAgICBdKTsKICAgIHRvcC5hcHBl bmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJidWxsLXNwYWNlciIgfSkpOwogICAgdmFyIGFj dHMgPSBlbCgiZGl2IiwgeyBjbGFzczogImJ1bGwtYWN0aW9ucyIgfSk7CiAgICBhY3RzLmFwcGVu ZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibWluaS1idG4gZWRpdC1vbmx5IiArIChiLnBp bm5lZCA/ICIgb24iIDogIiIpLCB0aXRsZTogYi5waW5uZWQgPyAiTMO2c2VuIiA6ICJBbnBpbm5l biIsCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgYi5waW5uZWQgPSAhYi5waW5uZWQ7IFAu cGVyc2lzdCgpOyBQLnJlbmRlckZlZWQoKTsgfSwgaHRtbDogaWMoInBpbiIpIH0pKTsKICAgIGFj dHMuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJtaW5pLWJ0biBlZGl0LW9ubHki LCB0aXRsZTogIkJlYXJiZWl0ZW4iLAogICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IFAub3Bl bkJ1bGxldGluRGxnKGIpOyB9LCBodG1sOiBpYygiZWRpdCIpIH0pKTsKICAgIGFjdHMuYXBwZW5k Q2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJtaW5pLWJ0biBkYW5nZXIgZWRpdC1vbmx5Iiwg dGl0bGU6ICJMw7ZzY2hlbiIsCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgUC5jb25maXJt KCJNZWxkdW5nIOKAniIgKyBiLnRpdGxlICsgIuKAnCBsw7ZzY2hlbj8iLCBmdW5jdGlvbiAoKSB7 IFAuY29udGVudC5idWxsZXRpbnMgPSBQLmNvbnRlbnQuYnVsbGV0aW5zLmZpbHRlcihmdW5jdGlv biAoeCkgeyByZXR1cm4geCAhPT0gYjsgfSk7IFAucGVyc2lzdCgpOyBQLnJlbmRlckZlZWQoKTsg fSwgeyBkYW5nZXI6IHRydWUgfSk7IH0sIGh0bWw6IGljKCJ0cmFzaCIpIH0pKTsKICAgIHRvcC5h cHBlbmRDaGlsZChhY3RzKTsKICAgIGNhcmQuYXBwZW5kQ2hpbGQodG9wKTsKICAgIGNhcmQuYXBw ZW5kQ2hpbGQoZWwoImgzIiwgeyB0ZXh0OiBiLnRpdGxlIH0pKTsKICAgIGNhcmQuYXBwZW5kQ2hp bGQoZWwoImRpdiIsIHsgY2xhc3M6ICJib2R5IiwgaHRtbDogbWRJbmxpbmUoYi5ib2R5IHx8ICIi KSB9KSk7CiAgICB2YXIgbWV0YSA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYnVsbC1tZXRhIiB9KTsK ICAgIGlmIChiLmF1dGhvcikgbWV0YS5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJ3 aG8iLCBodG1sOiBpYygidXNlciIpICsgIjxzcGFuPiIgKyBlc2NhcGVIdG1sKGIuYXV0aG9yKSAr ICI8L3NwYW4+IiB9KSk7CiAgICBpZiAoYi51cGRhdGVkICYmIGIudXBkYXRlZCAhPT0gYi5jcmVh dGVkKSBtZXRhLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogIm1vbm8iLCB0ZXh0OiAi YWt0LiAiICsgUC5mbXREYXRlKGIudXBkYXRlZCkgfSkpOwogICAgY2FyZC5hcHBlbmRDaGlsZCht ZXRhKTsKICAgIHJldHVybiBjYXJkOwogIH0KICBQLnJlbmRlckZlZWQgPSBmdW5jdGlvbiAoKSB7 CiAgICB2YXIgaG9zdCA9ICQoIiNmZWVkIik7IGhvc3QuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIg cSA9IGRlYWNjZW50KGZlZWRRdWVyeS50cmltKCkpOwogICAgdmFyIGxpc3QgPSBQLmNvbnRlbnQu YnVsbGV0aW5zLmZpbHRlcihmdW5jdGlvbiAoYikgewogICAgICBpZiAocSkgcmV0dXJuIGRlYWNj ZW50KGIudGl0bGUgKyAiICIgKyBiLmJvZHkgKyAiICIgKyAoYi5hdXRob3IgfHwgIiIpKS5pbmRl eE9mKHEpID49IDA7CiAgICAgIHJldHVybiB0cnVlOwogICAgfSk7CiAgICBsaXN0LnNvcnQoZnVu Y3Rpb24gKGEsIGIpIHsgcmV0dXJuIG5ldyBEYXRlKGIuZGF0ZSkgLSBuZXcgRGF0ZShhLmRhdGUp IHx8IDA7IH0pOwogICAgdmFyIHBpbm5lZCA9IGxpc3QuZmlsdGVyKGZ1bmN0aW9uIChiKSB7IHJl dHVybiBiLnBpbm5lZDsgfSk7CiAgICB2YXIgcmVzdCA9IGxpc3QuZmlsdGVyKGZ1bmN0aW9uIChi KSB7IHJldHVybiAhYi5waW5uZWQ7IH0pOwogICAgaWYgKCFsaXN0Lmxlbmd0aCkgewogICAgICBo b3N0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiZmVlZC1lbXB0eSIsIGh0bWw6IGlj KCJpbmJveCIpICsgIjxkaXY+IiArIFAuZXNjYXBlSHRtbChQLnQoImZlZWQuZW1wdHkiKSkgKyAo ZmVlZFF1ZXJ5ID8gIiBmw7xyIGRpZXNlIEF1c3dhaGwiIDogIiIpICsgIi48L2Rpdj4iIH0pKTsK ICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHBpbm5lZC5sZW5ndGgpIHsKICAgICAgaG9zdC5h cHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImZlZWQtc2VjdGlvbi1sYWJlbCIsIGh0bWw6 IGljKCJwaW4iKSArIFAuZXNjYXBlSHRtbChQLnQoImNvY2twaXQucGlubmVkIikpIH0pKTsKICAg ICAgcGlubmVkLmZvckVhY2goZnVuY3Rpb24gKGIpIHsgaG9zdC5hcHBlbmRDaGlsZChidWxsZXRF bChiKSk7IH0pOwogICAgICBpZiAocmVzdC5sZW5ndGgpIGhvc3QuYXBwZW5kQ2hpbGQoZWwoImRp diIsIHsgY2xhc3M6ICJmZWVkLXNlY3Rpb24tbGFiZWwiLCBodG1sOiBpYygiY2xvY2siKSArIFAu ZXNjYXBlSHRtbChQLnQoImZlZWQuY2hyb25pY2xlIikpIH0pKTsKICAgIH0KICAgIHJlc3QuZm9y RWFjaChmdW5jdGlvbiAoYikgeyBob3N0LmFwcGVuZENoaWxkKGJ1bGxldEVsKGIpKTsgfSk7CiAg fTsKICBQLmZsYXNoQnVsbGV0aW4gPSBmdW5jdGlvbiAoYikgewogICAgUC5jbG9zZURvYygpOyBm ZWVkUXVlcnkgPSAiIjsgdmFyIGZzaSA9ICQoIiNmZWVkLXNlYXJjaC1pbnB1dCIpOyBpZiAoZnNp KSBmc2kudmFsdWUgPSAiIjsgUC5yZW5kZXJGZWVkKCk7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u ICgpIHsKICAgICAgUC4kJCgiI2ZlZWQgLmJ1bGwiKS5mb3JFYWNoKGZ1bmN0aW9uIChuZCkgewog ICAgICAgIGlmICgkKCJoMyIsIG5kKSAmJiAkKCJoMyIsIG5kKS50ZXh0Q29udGVudCA9PT0gYi50 aXRsZSkgewogICAgICAgICAgbmQuY2xhc3NMaXN0LmFkZCgiZmxhc2giKTsKICAgICAgICAgIHZh ciBzYyA9ICQoIiNmZWVkLXNjcm9sbCIpOyBzYy5zY3JvbGxUbyh7IHRvcDogbmQub2Zmc2V0VG9w IC0gMjAsIGJlaGF2aW9yOiAic21vb3RoIiB9KTsKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rp b24gKCkgeyBuZC5jbGFzc0xpc3QucmVtb3ZlKCJmbGFzaCIpOyB9LCAxNjAwKTsKICAgICAgICB9 CiAgICAgIH0pOwogICAgfSwgNDApOwogIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEJ1bGxldGluLURpYWxvZyAqLwog IHZhciBlZGl0aW5nQnVsbCA9IG51bGwsIGRsZ1BpbiA9IGZhbHNlLCBkbGdIbCA9ICIiOwogIC8v IEZlc3RlIFN0dWZlbjsgZGllIEZBUkJFTiBzaW5kIGRhdGVuZ2V0cmllYmVuICgtLWhsLSogdmlh IEVpbnN0ZWxsdW5nZW4gLT4gRmFyYi1Ub2tlbnMpLgogIHZhciBITF9MRVZFTFMgPSBbCiAgICB7 IHY6ICIiLCBsYWJlbDogIk5ldXRyYWwiIH0sCiAgICB7IHY6ICJpbmZvIiwgbGFiZWw6ICJIZWxs YmxhdSIgfSwKICAgIHsgdjogImFsZXJ0IiwgbGFiZWw6ICJIZWxscm90IiB9LAogICAgeyB2OiAi dXJnZW50IiwgbGFiZWw6ICJXaWNodGlnIChwdWxzaWVydCkiIH0KICBdOwogIGZ1bmN0aW9uIHJl bmRlckhsUGljaygpIHsKICAgIHZhciBib3ggPSAkKCIjYmYtaGwiKTsgaWYgKCFib3gpIHJldHVy bjsgYm94LmlubmVySFRNTCA9ICIiOwogICAgSExfTEVWRUxTLmZvckVhY2goZnVuY3Rpb24gKG8p IHsKICAgICAgYm94LmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IHR5cGU6ICJidXR0b24iLAog ICAgICAgIGNsYXNzOiAiaGwtb3B0IGhsLSIgKyAoby52IHx8ICJuZXV0cmFsIikgKyAoZGxnSGwg PT09IG8udiA/ICIgc2VsIiA6ICIiKSwKICAgICAgICB0ZXh0OiBvLmxhYmVsLCBvbmNsaWNrOiBm dW5jdGlvbiAoKSB7IGRsZ0hsID0gby52OyByZW5kZXJIbFBpY2soKTsgfSB9KSk7CiAgICB9KTsK ICB9CiAgUC5vcGVuQnVsbGV0aW5EbGcgPSBmdW5jdGlvbiAoYikgewogICAgZWRpdGluZ0J1bGwg PSBiIHx8IG51bGw7CiAgICB2YXIgaXNOZXdCID0gIWI7CiAgICAkKCIjYmQtdGl0bGUiKS50ZXh0 Q29udGVudCA9IGlzTmV3QiA/IFAudCgiZmVlZC5uZXciKSA6IFAudCgiZmVlZC5lZGl0Iik7CiAg ICAkKCIjYmYtdGl0bGUiKS52YWx1ZSA9IGIgPyBiLnRpdGxlIDogIiI7CiAgICAkKCIjYmYtYm9k eSIpLnZhbHVlID0gYiA/IGIuYm9keSA6ICIiOwogICAgJCgiI2JmLWRhdGUiKS52YWx1ZSA9IGIg PyBTdHJpbmcoYi5kYXRlKS5zbGljZSgwLCAxMCkgOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCku c2xpY2UoMCwgMTApOwogICAgJCgiI2JmLWF1dGhvciIpLnZhbHVlID0gYiA/IChiLmF1dGhvciB8 fCAiIikgOiAiIjsKICAgIGRsZ1BpbiA9IGIgPyAhIWIucGlubmVkIDogZmFsc2U7CiAgICByZW5k ZXJQaW5Td2l0Y2goKTsKICAgIGRsZ0hsID0gYiA/IChiLmhsIHx8ICIiKSA6ICIiOwogICAgcmVu ZGVySGxQaWNrKCk7CiAgICAkKCIjYmYtZXJyIikuaGlkZGVuID0gdHJ1ZTsKICAgICQoIiNiZi1k ZWwiKS5zdHlsZS5kaXNwbGF5ID0gaXNOZXdCID8gIm5vbmUiIDogIiI7CiAgICAkKCIjYnVsbC1k bGciKS5zaG93TW9kYWwoKTsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyAkKCIjYmYtdGl0 bGUiKS5mb2N1cygpOyB9LCAzMCk7CiAgfTsKICBmdW5jdGlvbiByZW5kZXJQaW5Td2l0Y2goKSB7 ICQoIiNiZi1waW4iKS5jbGFzc05hbWUgPSAic3dpdGNoIiArIChkbGdQaW4gPyAiIG9uIiA6ICIi KTsgfQogIFAudG9nZ2xlRGxnUGluID0gZnVuY3Rpb24gKCkgeyBkbGdQaW4gPSAhZGxnUGluOyBy ZW5kZXJQaW5Td2l0Y2goKTsgfTsKICBQLnNhdmVCdWxsZXRpbiA9IGZ1bmN0aW9uICgpIHsKICAg IHZhciB0aXRsZSA9ICQoIiNiZi10aXRsZSIpLnZhbHVlLnRyaW0oKTsKICAgIGlmICghdGl0bGUp IHsgdmFyIGUgPSAkKCIjYmYtZXJyIik7IGUudGV4dENvbnRlbnQgPSAiVGl0ZWwgaXN0IGVyZm9y ZGVybGljaC4iOyBlLmhpZGRlbiA9IGZhbHNlOyByZXR1cm47IH0KICAgIHZhciBub3cgPSBuZXcg RGF0ZSgpLnRvSVNPU3RyaW5nKCk7CiAgICBpZiAoZWRpdGluZ0J1bGwpIHsKICAgICAgZWRpdGlu Z0J1bGwudGl0bGUgPSB0aXRsZTsgZWRpdGluZ0J1bGwuYm9keSA9ICQoIiNiZi1ib2R5IikudmFs dWU7CiAgICAgIGVkaXRpbmdCdWxsLmRhdGUgPSAkKCIjYmYtZGF0ZSIpLnZhbHVlOyBlZGl0aW5n QnVsbC5hdXRob3IgPSAkKCIjYmYtYXV0aG9yIikudmFsdWUudHJpbSgpOwogICAgICBlZGl0aW5n QnVsbC5waW5uZWQgPSBkbGdQaW47IGVkaXRpbmdCdWxsLmhsID0gZGxnSGw7IGVkaXRpbmdCdWxs LnVwZGF0ZWQgPSBub3c7CiAgICB9IGVsc2UgewogICAgICBQLmNvbnRlbnQuYnVsbGV0aW5zLnVu c2hpZnQoeyBpZDogUC51aWQoImIiKSwgdGl0bGU6IHRpdGxlLCBib2R5OiAkKCIjYmYtYm9keSIp LnZhbHVlLAogICAgICAgIGRhdGU6ICQoIiNiZi1kYXRlIikudmFsdWUsIGF1dGhvcjogJCgiI2Jm LWF1dGhvciIpLnZhbHVlLnRyaW0oKSB8fCAiRGF0ZW5wZmxlZ2UiLAogICAgICAgIHBpbm5lZDog ZGxnUGluLCBobDogZGxnSGwsIGNyZWF0ZWQ6IG5vdywgdXBkYXRlZDogbm93IH0pOwogICAgfQog ICAgdmFyIHdhc0VkaXRpbmcgPSBlZGl0aW5nQnVsbDsKICAgICQoIiNidWxsLWRsZyIpLmNsb3Nl KCk7IFAucGVyc2lzdCgpOyBQLnJlbmRlckZlZWQoKTsgICAvLyBwZXJzaXN0IHZlcsO2ZmZlbnRs aWNodCBiZWkgUmVkYWt0ZXVyZW4gYXV0b21hdGlzY2gKICAgIFAudG9hc3QoKHdhc0VkaXRpbmcg PyAiTWVsZHVuZyBha3R1YWxpc2llcnQiIDogIk1lbGR1bmcgZ2VzcGVpY2hlcnQiKSArIChQLmxp dmUgPyAiICYgdmVyw7ZmZmVudGxpY2h0LiIgOiAiIChsb2thbGVyIEVudHd1cmYpLiIpKTsKICB9 OwogIFAuZGVsZXRlQnVsbGV0aW4gPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoIWVkaXRpbmdCdWxs KSByZXR1cm47CiAgICB2YXIgYiA9IGVkaXRpbmdCdWxsOwogICAgUC5jb25maXJtKCJNZWxkdW5n IGzDtnNjaGVuPyIsIGZ1bmN0aW9uICgpIHsgUC5jb250ZW50LmJ1bGxldGlucyA9IFAuY29udGVu dC5idWxsZXRpbnMuZmlsdGVyKGZ1bmN0aW9uICh4KSB7IHJldHVybiB4ICE9PSBiOyB9KTsgJCgi I2J1bGwtZGxnIikuY2xvc2UoKTsgUC5wZXJzaXN0KCk7IFAucmVuZGVyRmVlZCgpOyB9LCB7IGRh bmdlcjogdHJ1ZSB9KTsKICB9OwoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBLb2xsYWJvcmF0aW9ucy1Ib29rcyAoUGhhc2Ug NCkgKi8KICBQLmJ1bGxldGluVGFyZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gZWRpdGluZ0J1 bGwgPyAoImJ1bGw6IiArIChlZGl0aW5nQnVsbC5pZCB8fCBlZGl0aW5nQnVsbC50aXRsZSkpIDog ImJ1bGw6bmV3IjsgfTsKICBQLmJ1bGxldGluTGFiZWwgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAo JCgiI2JmLXRpdGxlIikudmFsdWUgfHwgKGVkaXRpbmdCdWxsICYmIGVkaXRpbmdCdWxsLnRpdGxl KSB8fCAiTmV1ZSBNZWxkdW5nIik7IH07CiAgUC5idWxsZXRpblNuYXBzaG90ID0gZnVuY3Rpb24g KCkgeyByZXR1cm4geyB0aXRsZTogJCgiI2JmLXRpdGxlIikudmFsdWUsIGJvZHk6ICQoIiNiZi1i b2R5IikudmFsdWUsIGRhdGU6ICQoIiNiZi1kYXRlIikudmFsdWUsIGF1dGhvcjogJCgiI2JmLWF1 dGhvciIpLnZhbHVlLCBwaW46IGRsZ1BpbiwgaGw6IGRsZ0hsIH07IH07CiAgUC5idWxsZXRpbkFw cGx5ID0gZnVuY3Rpb24gKHMpIHsKICAgIGlmICghcykgcmV0dXJuOwogICAgJCgiI2JmLXRpdGxl IikudmFsdWUgPSBzLnRpdGxlIHx8ICIiOyAkKCIjYmYtYm9keSIpLnZhbHVlID0gcy5ib2R5IHx8 ICIiOyAkKCIjYmYtZGF0ZSIpLnZhbHVlID0gcy5kYXRlIHx8ICIiOyAkKCIjYmYtYXV0aG9yIiku dmFsdWUgPSBzLmF1dGhvciB8fCAiIjsKICAgIGRsZ1BpbiA9ICEhcy5waW47IHJlbmRlclBpblN3 aXRjaCgpOwogICAgZGxnSGwgPSBzLmhsIHx8ICIiOyByZW5kZXJIbFBpY2soKTsKICB9OwoKICAv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSBNZWxkdW5nZW4tTWFzc2VuaW1wb3J0CiAgICAgVGV4dCBlaW5mdWVnZW4gKGplIEJlaXRy YWc6IERhdHVtc3plaWxlIFRULk1NLkpKSkosIGRhbm4gVGl0ZWwsIGRhbm4gVGV4dCkgLT4KICAg ICB3aXJkIHp1IE1lbGR1bmdlbiwgZ2VtZXJnZWQgKERlZHVwZSBEYXR1bStUaXRlbCksIG5ldWVz dGUgb2JlbiAocmVuZGVyRmVlZCBzb3J0aWVydCkuICovCiAgZnVuY3Rpb24gcGFyc2VOZXdzKHRl eHQpIHsKICAgIHZhciBsaW5lcyA9IFN0cmluZyh0ZXh0IHx8ICIiKS5yZXBsYWNlKC9cclxuL2cs ICJcbiIpLnJlcGxhY2UoL1xyL2csICJcbiIpLnNwbGl0KCJcbiIpOwogICAgdmFyIHJlID0gL15c cyooXGR7Mn0pXC4oXGR7Mn0pXC4oXGR7NH0pXHMqJC8sIG91dCA9IFtdLCBjdXIgPSBudWxsLCBi b2R5ID0gW10sIGF3YWl0VCA9IGZhbHNlOwogICAgZnVuY3Rpb24gZmx1c2goKSB7IGlmIChjdXIp IHsgY3VyLmJvZHkgPSBib2R5LmpvaW4oIlxuIikucmVwbGFjZSgvXG57Myx9L2csICJcblxuIiku dHJpbSgpOyBvdXQucHVzaChjdXIpOyB9IGN1ciA9IG51bGw7IGJvZHkgPSBbXTsgYXdhaXRUID0g ZmFsc2U7IH0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHsKICAg ICAgdmFyIG0gPSByZS5leGVjKGxpbmVzW2ldKTsKICAgICAgaWYgKG0pIHsgZmx1c2goKTsgY3Vy ID0geyBkYXRlOiBtWzNdICsgIi0iICsgbVsyXSArICItIiArIG1bMV0sIHRpdGxlOiAiIiB9OyBh d2FpdFQgPSB0cnVlOyBjb250aW51ZTsgfQogICAgICBpZiAoIWN1cikgY29udGludWU7CiAgICAg IGlmIChhd2FpdFQpIHsgaWYgKGxpbmVzW2ldLnRyaW0oKSA9PT0gIiIpIGNvbnRpbnVlOyBjdXIu dGl0bGUgPSBsaW5lc1tpXS50cmltKCk7IGF3YWl0VCA9IGZhbHNlOyBjb250aW51ZTsgfQogICAg ICBib2R5LnB1c2gobGluZXNbaV0pOwogICAgfQogICAgZmx1c2goKTsKICAgIHJldHVybiBvdXQu ZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlLnRpdGxlOyB9KTsKICB9CiAgUC5vcGVuTmV3 c0ltcG9ydCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICghKFAuY2FuRWRpdCAmJiBQLmNhbkVkaXQo KSkpIHsgUC50b2FzdCgiTnVyIGbDvHIgUmVkYWt0ZXVyZS9BZG1pbnMuIiwgdHJ1ZSk7IHJldHVy bjsgfQogICAgdmFyIHRhLCBpbmZvLCBwYXJzZWQgPSBbXTsKICAgIFAubW9kYWwoewogICAgICB0 aXRsZTogIk1lbGR1bmdlbiBpbXBvcnRpZXJlbiIsIGljb246ICJkb3dubG9hZCIsIHNpemU6ICJs ZyIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uIChob3N0KSB7CiAgICAgICAgaG9zdC5hcHBlbmRDaGls ZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHRleHQ6ICJUZXh0IGVpbmbDvGdlbiDi gJQgamUgQmVpdHJhZzogZWluZSBEYXR1bXN6ZWlsZSAoVFQuTU0uSkpKSiksIGRhcnVudGVyIGRl ciBUaXRlbCwgZGFydW50ZXIgZGVyIFRleHQuIEJlcmVpdHMgdm9yaGFuZGVuZSBNZWxkdW5nZW4g KGdsZWljaGVzIERhdHVtICsgVGl0ZWwpIHdlcmRlbiDDvGJlcnNwcnVuZ2VuOyBuZXVlc3RlIGxh bmRlbiBhdXRvbWF0aXNjaCBvYmVuLiIgfSkpOwogICAgICAgIHRhID0gZWwoInRleHRhcmVhIiwg eyBjbGFzczogIm5ld3MtaW1wb3J0LXRhIiwgcm93czogIjE2IiwgcGxhY2Vob2xkZXI6ICIwOS4w Ni4yMDI2XG5cbkhpbndlaXMgenVtIEJBTyBQb3J0YWxcblxuU29sbHRlIGVzIFByb2JsZW1lIG1p dCBkZXIgRGFyc3RlbGx1bmcgZ2ViZW4gLi4uXG5cbjA3LjA2LjIwMjZcblxuTmV1ZSBBcnp0YW5m b3JkZXJ1bmdzbGlzdGUgLi4uIiB9KTsKICAgICAgICBob3N0LmFwcGVuZENoaWxkKHRhKTsKICAg ICAgICBpbmZvID0gZWwoImRpdiIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHN0eWxlOiAibWFy Z2luLXRvcDo4cHgiIH0pOwogICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQoaW5mbyk7CiAgICAgIH0s CiAgICAgIGFjdGlvbnM6IFsKICAgICAgICB7IGxhYmVsOiAiQWJicmVjaGVuIiwga2luZDogImdo b3N0IiB9LAogICAgICAgIHsgbGFiZWw6ICJBdXN3ZXJ0ZW4iLCBraW5kOiAiZ2hvc3QiLCBhbGln bjogImxlZnQiLCBrZWVwT3BlbjogdHJ1ZSwgb25DbGljazogZnVuY3Rpb24gKCkgewogICAgICAg ICAgICBwYXJzZWQgPSBwYXJzZU5ld3ModGEudmFsdWUpOwogICAgICAgICAgICBpbmZvLnRleHRD b250ZW50ID0gcGFyc2VkLmxlbmd0aCArICIgQmVpdHJhZy9CZWl0csOkZ2UgZXJrYW5udCIgKyAo cGFyc2VkLmxlbmd0aCA/ICI6ICIgKyBwYXJzZWQuc2xpY2UoMCwgNikubWFwKGZ1bmN0aW9uIChl KSB7IHJldHVybiBlLmRhdGUgKyAiIMK3ICIgKyBlLnRpdGxlOyB9KS5qb2luKCIgIHwgICIpICsg KHBhcnNlZC5sZW5ndGggPiA2ID8gIiAgfCDigKYiIDogIiIpIDogIi4iKTsKICAgICAgICAgIH0g fSwKICAgICAgICB7IGxhYmVsOiAiSW1wb3J0aWVyZW4iLCBraW5kOiAicHJpbWFyeSIsIG9uQ2xp Y2s6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgaWYgKCFwYXJzZWQubGVuZ3RoKSBwYXJzZWQg PSBwYXJzZU5ld3ModGEudmFsdWUpOwogICAgICAgICAgICBpZiAoIXBhcnNlZC5sZW5ndGgpIHsg UC50b2FzdCgiS2VpbiBCZWl0cmFnIGVya2FubnQg4oCUIGJpdHRlIEZvcm1hdCBwcsO8ZmVuLiIs IHRydWUpOyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgICAgdmFyIHNlZW4gPSB7fTsKICAgICAg ICAgICAgKFAuY29udGVudC5idWxsZXRpbnMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGIpIHsg c2VlblsoKGIuZGF0ZSB8fCAiIikgKyAifCIgKyAoYi50aXRsZSB8fCAiIikpLnRvTG93ZXJDYXNl KCldID0gdHJ1ZTsgfSk7CiAgICAgICAgICAgIHZhciBhZGRlZCA9IDAsIHNraXBwZWQgPSAwOwog ICAgICAgICAgICBwYXJzZWQuZm9yRWFjaChmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHZh ciBrZXkgPSAoZS5kYXRlICsgInwiICsgZS50aXRsZSkudG9Mb3dlckNhc2UoKTsKICAgICAgICAg ICAgICBpZiAoc2VlbltrZXldKSB7IHNraXBwZWQrKzsgcmV0dXJuOyB9CiAgICAgICAgICAgICAg c2VlbltrZXldID0gdHJ1ZTsKICAgICAgICAgICAgICBQLmNvbnRlbnQuYnVsbGV0aW5zLnB1c2go eyBpZDogUC51aWQoImIiKSwgZGF0ZTogZS5kYXRlLCBwaW5uZWQ6IGZhbHNlLCB0aXRsZTogZS50 aXRsZSwgYm9keTogZS5ib2R5IHx8ICIiLCBhdXRob3I6ICIiLCBjcmVhdGVkOiBlLmRhdGUgKyAi VDAwOjAwOjAwIiwgdXBkYXRlZDogZS5kYXRlICsgIlQwMDowMDowMCIgfSk7CiAgICAgICAgICAg ICAgYWRkZWQrKzsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIFAucGVyc2lzdCgpOyBQLnJl bmRlckZlZWQoKTsKICAgICAgICAgICAgUC50b2FzdChhZGRlZCArICIgTWVsZHVuZyhlbikgaW1w b3J0aWVydCIgKyAoc2tpcHBlZCA/ICIsICIgKyBza2lwcGVkICsgIiDDvGJlcnNwcnVuZ2VuIiA6 ICIiKSArIChQLmxpdmUgPyAiICYgdmVyw7ZmZmVudGxpY2h0LiIgOiAiLiIpKTsKICAgICAgICAg IH0gfQogICAgICBdCiAgICB9KTsKICB9OwoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUeXAtUmVnaXN0cmllcnVuZyAoUGhh c2UgMykKICAgICBNZWxkdW5nZW4gd2VyZGVuIGxpdmUgZHVyY2hzdWNodCAobmljaHQgaW0gc3Rh dGlzY2hlbiBJbmRleC9BLVopLiAqLwogIFAucmVnaXN0ZXJUeXBlKHsKICAgIGtleTogImJ1bGxl dGluIiwgbGFiZWw6ICJNZWxkdW5nIiwgaWNvbjogImFsZXJ0IiwKICAgIHNlYXJjaExpdmU6IGZ1 bmN0aW9uICh0b2tzKSB7CiAgICAgIHJldHVybiBQLmNvbnRlbnQuYnVsbGV0aW5zLmZpbHRlcihm dW5jdGlvbiAoYikgewogICAgICAgIHZhciBoYXkgPSBkZWFjY2VudChiLnRpdGxlICsgIiAiICsg Yi5ib2R5ICsgIiAiICsgKGIuYXV0aG9yIHx8ICIiKSk7CiAgICAgICAgcmV0dXJuIHRva3MuZXZl cnkoZnVuY3Rpb24gKHQpIHsgcmV0dXJuIGhheS5pbmRleE9mKHQpID49IDA7IH0pOwogICAgICB9 KTsKICAgIH0KICB9KTsKCn0pKHdpbmRvdy5QKTsK ### FILE: assets/js/features/impressum.js | 13363 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvaW1wcmVzc3VtLmpz CiAgIEltcHJlc3N1bS1Nb2RhbCAoZsO8ciBhbGxlIFJvbGxlbikgbWl0IEFuc3ByZWNocGFydG5l ci0vUsO8Y2tmYWxsZWJlbmUtQm94CiAgIHVuZCBTdXBwb3J0LUJ1dHRvbiwgZGVyIE91dGxvb2sg bWl0IGVpbmVtIHZvcmF1c2dlZsO8bGx0ZW4gRnJhZ2Vua2F0YWxvZwogICDDtmZmbmV0IChtYWls dG86IGFuIGRlbiBoaW50ZXJsZWd0ZW4gRW1wZsOkbmdlcikuIEluaGFsdGUgc2luZCBkYXRlbmdl dHJpZWJlbjoKICAgc2V0dGluZ3MuaW1wcmVzc3VtIChIVE1MKSDCtyBzZXR0aW5ncy5zdXBwb3J0 LntlbWFpbCxzdWJqZWN0LG1haWx9LiBMZWVyID0KICAgZGllIERlZmF1bHRzIHVudGVuLiBCZWFy YmVpdGJhciBpbSBBZG1pbiB1bnRlciDigJ5JbXByZXNzdW0gJiBTdXBwb3J0Ii4KICAgTMOkZHQg TkFDSCBuYXYuanMgKG51dHp0IFAuc2FuaXRpemVIdG1sIGJlaW0gUmVuZGVybiBmw7xyIExlc2Vy KS4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKICB2 YXIgZWwgPSBQLmVsLCBpYyA9IFAuaWM7CgogIFAuSU1QUkVTU1VNX0RFRkFVTFQgPQogICAgIjxo ND5IZXJhdXNnZWJlciAmYW1wOyBWZXJhbnR3b3J0dW5nPC9oND4iICsKICAgICI8cD5Qb2xpemVp cHLDpHNpZGl1bSBEb3J0bXVuZDxicj4iICsKICAgICJGw7xocnVuZ3MtIHVuZCBMYWdlZGllbnN0 IChGTEQpIMK3IExlaXRzdGVsbGUgRG9ydG11bmQ8YnI+IiArCiAgICAiPGVtPltBbnNjaHJpZnQg Yml0dGUgZXJnw6RuemVuXTwvZW0+PC9wPiIgKwogICAgIjxoND5ad2VjayAmYW1wOyBHZWx0dW5n c2JlcmVpY2g8L2g0PiIgKwogICAgIjxwPuKAnlBvcnRhbCBVbmlvbuKAnCBpc3QgZGllIGludGVy bmUgV2lzc2Vucy0gdW5kIEluZm9ybWF0aW9uc3BsYXR0Zm9ybSBkZXMgRkxEIC8gZGVyIExlaXRz dGVsbGUgRG9ydG11bmQuICIgKwogICAgIlNpZSBiw7xuZGVsdCBNZWxkdW5nZW4sIERpZW5zdGFu d2Vpc3VuZ2VuLCBGb3JtdWxhcmUsIENoZWNrbGlzdGVuLCBWZXJ6ZWljaG5pc3NlIHVuZCBGYWNo dmVyZmFocmVuICIgKwogICAgImF1c3NjaGxpZcOfbGljaCBmw7xyIGRlbiBkaWVuc3RsaWNoZW4g R2VicmF1Y2ggaW0gUG9saXplaS1OZXR6LjwvcD4iICsKICAgICI8aDQ+VGVjaG5pc2NoZSBLb256 ZXB0aW9uICZhbXA7IEVudHdpY2tsdW5nPC9oND4iICsKICAgICI8cD5QaGlsaXBwIFJvZXNnZW4s IFBISyDCtyBwaGlsaXBwLnJvZXNnZW5AcG9saXplaS5ucncuZGU8YnI+IiArCiAgICAiPGVtPkRp cmVrdGtvbnRha3QgbnVyIMO8YmVyIGRpZSBUZWFtbGVpdHVuZ2VuIGRlcyBUZWFtIDUg4oCUIHNp ZWhlIFN1cHBvcnQtSGlud2VpcyB1bnRlbi48L2VtPjwvcD4iICsKICAgICI8aDQ+QmV0cmllYiAm YW1wOyBEYXRlbmhhbHR1bmc8L2g0PiIgKwogICAgIjxwPkRhcyBQb3J0YWwgbMOkdWZ0IGF1c3Nj aGxpZcOfbGljaCBpbSBpbnRlcm5lbiBQb2xpemVpLU5ldHogKE5ldHpsYXVmd2VyayBiencuIGxv a2FsZXIgUGZsZWdlLUhlbGZlciAiICsKICAgICJhdWYgMTI3LjAuMC4xKS4gSW5oYWx0ZSB3ZXJk ZW4gYWxzIGxva2FsZSBEYXRlaWVuIGdlaGFsdGVuIOKAlCBrZWluZSBDbG91ZC1EaWVuc3RlLCBr ZWluZSBleHRlcm5lbiAiICsKICAgICJUcmFja2VyLCBrZWluZSBUZWxlbWV0cmllLjwvcD4iICsK ICAgICI8aDQ+VmVydHJhdWxpY2hrZWl0PC9oND4iICsKICAgICI8cD5EaWUgSW5oYWx0ZSBzaW5k IGbDvHIgZGVuIGludGVybmVuIERpZW5zdGdlYnJhdWNoIGJlc3RpbW10OyBlbnRzcHJlY2hlbmQg ZWluZ2VzdHVmdGUgVW50ZXJsYWdlbiAiICsKICAgICIoVlMtTmZEIHUuIGEuKSB1bnRlcmxpZWdl biBkZW4gamV3ZWlsaWdlbiBWZXJzY2hsdXNzc2FjaGVuLVZvcmdhYmVuLiBLZWluZSBXZWl0ZXJn YWJlIGFuIFVuYmVmdWd0ZS48L3A+IiArCiAgICAiPGg0PkxpemVuemhpbndlaXNlIGV4dGVybmVy IEtvbXBvbmVudGVuPC9oND4iICsKICAgICI8dWw+PGxpPlRpbnlNQ0UgNyDigJQgR1BMLUxpemVu eiwgc2VsZi1ob3N0ZWQgLyBvZmZsaW5lIChhc3NldHMvdmVuZG9yL3RpbnltY2UpPC9saT48L3Vs PiIgKwogICAgIjxoND5IYWZ0dW5nc2F1c3NjaGx1c3M8L2g0PiIgKwogICAgIjxwPkRpZSBoaWVy IGJlcmVpdGdlc3RlbGx0ZW4gSW5mb3JtYXRpb25lbiwgRGllbnN0YW53ZWlzdW5nZW4gdW5kIFZl cnplaWNobmlzc2UgZGllbmVuIGRlciBpbnRlcm5lbiAiICsKICAgICJBcmJlaXRzb3JnYW5pc2F0 aW9uLiBGw7xyIFZvbGxzdMOkbmRpZ2tlaXQgdW5kIEFrdHVhbGl0w6R0IHdpcmQga2VpbmUgR2V3 w6RociDDvGJlcm5vbW1lbjsgdmVyYmluZGxpY2ggIiArCiAgICAic2luZCBhbGxlaW4gZGllIGpl d2VpbHMgb2ZmaXppZWxsZW4gT3JpZ2luYWxkb2t1bWVudGUuPC9wPiI7CgogIFAuU1VQUE9SVF9N QUlMX0RFRkFVTFQgPQogICAgIkhhbGxvIFBoaWxpcHAsXG5cbiIgKwogICAgIltoaWVyIGJpdHRl IGt1cnogZGFzIEFubGllZ2VuIGluIDHigJMyIFPDpHR6ZW4gYmVzY2hyZWliZW5dXG5cblxuIiAr CiAgICAi4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4iICsKICAgICIxKSBXQVMgSVNUIFBBU1NJRVJUIC8g V0FTIFfDnE5TQ0hTVCBEVSBESVI/XG4iICsKICAgICLilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiIgKwog ICAgIltEZXRhaWxsaWVydGUgQmVzY2hyZWlidW5nOiBGZWhsZXJiZXJpY2h0IE9ERVIgVmVyYmVz c2VydW5ncy1cbiIgKwogICAgIiB2b3JzY2hsYWcuIEJpdHRlIGtvbmtyZXQg4oCUIFwiZ2VodCBu aWNodFwiIGlzdCB6dSB3ZW5pZy5dXG5cblxuIiArCiAgICAi4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4i ICsKICAgICIyKSBXTyBJTSBQT1JUQUxcbiIgKwogICAgIuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuIiAr CiAgICAiQmVyZWljaDogW05hdmlnYXRpb24gfCBNZWxkdW5ncy1GZWVkIHwgQXJ0aWtlbC9Eb2t1 bWVudCB8XG4iICsKICAgICIgICAgICAgICAgRGllbnN0Z3J1cHBlIHwgQXJ6dC1SZWdpc3RlciB8 IFNjaG5lbGx6dWdyaWZmZSB8XG4iICsKICAgICIgICAgICAgICAgU3VjaGUvQeKAk1ogfCBBZG1p bi1XZXJremV1Z2VdXG4iICsKICAgICJHZW5hdWVyZSBTdGVsbGU6IFt6LiBCLiBBZG1pbiDihpIg UGVyc29uYWxsaXN0ZSDihpIgWmVpbGUgYmVhcmJlaXRlbl1cblxuXG4iICsKICAgICLilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZBcbiIgKwogICAgIjMpIFdJRSBLQU5OIElDSCBEQVMgUkVQUk9EVVpJRVJFTj9c biIgKwogICAgIuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuIiArCiAgICAiU2Nocml0dCAxOiBbLi4uXVxu IiArCiAgICAiU2Nocml0dCAyOiBbLi4uXVxuIiArCiAgICAiU2Nocml0dCAzOiBbLi4uXVxuIiAr CiAgICAi4oaSIFdhcyBwYXNzaWVydCB0YXRzw6RjaGxpY2g6IFsuLi5dXG4iICsKICAgICLihpIg V2FzIGjDpHR0ZSBzdGF0dGRlc3NlbiBwYXNzaWVyZW4gc29sbGVuOiBbLi4uXVxuXG5cbiIgKwog ICAgIuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuIiArCiAgICAiNCkgV0VSIC8gV0FTIElTVCBCRVRST0ZG RU5cbiIgKwogICAgIuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuIiArCiAgICAiQmV0cm9mZmVuZShyKSBF aW50cmFnIC8gRGF0ZW5zYXR6IChmYWxscyByZWxldmFudCk6IFsuLi5dXG4iICsKICAgICJOdXIg YmVpIG1pciDigJQgb2RlciBhdWNoIGJlaSBLb2xsZWc6aW5uZW4/IFsuLi5dXG4iICsKICAgICJS ZXByb2R1emllcmJhciBuYWNoIE5ldWxhZGVuIChGNSkgLyBIZWxmZXItTmV1c3RhcnQ/IFsuLi5d XG5cblxuIiArCiAgICAi4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4iICsKICAgICI1KSBXSUUgRFJJTkdF TkQgSVNUIERBUz9cbiIgKwogICAgIuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuIiArCiAgICAiWyBdIEJs b2NraWVydCBtZWluZSBBcmJlaXQga29tcGxldHRcbiIgKwogICAgIlsgXSBTdMO2cnQsIGljaCBo YWJlIGFiZXIgZWluZW4gV29ya2Fyb3VuZFxuIiArCiAgICAiWyBdIFZlcmJlc3NlcnVuZ3N2b3Jz Y2hsYWcg4oCUIGtlaW4gYWt1dGVyIEJlZGFyZlxuXG5cbiIgKwogICAgIuKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkFxuIiArCiAgICAiNikgU0NSRUVOU0hPVFMgLyBBTkjDhE5HRSDigJQgQklUVEUgQkVJTEVH RU4hXG4iICsKICAgICLilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiIgKwogICAgIk1pbmRlc3RlbnMgMSBT Y3JlZW5zaG90IGRlciByZWxldmFudGVuIFN0ZWxsZS4gU28gZ2VodHM6XG4iICsKICAgICIgIOKA oiBTdHJnICsgRHJ1Y2sgICDihpIgZ2FuemVyIEJpbGRzY2hpcm0gaW4gZGllIFp3aXNjaGVuYWJs YWdlXG4iICsKICAgICIgIOKAoiBBbHQgKyBEcnVjayAgICDihpIgbnVyIGRhcyBha3RpdmUgRmVu c3RlclxuIiArCiAgICAiICDigKIgUGFpbnQgw7ZmZm5lbiAgIOKGkiBTdHJnICsgViBlaW5mw7xn ZW4g4oaSIGFscyBQTkcgc3BlaWNoZXJuXG4iICsKICAgICIgIOKAoiBEYXRlaShlbikgYW4gZGll c2UgTWFpbCBhbmjDpG5nZW5cblxuXG4iICsKICAgICJWaWVsZSBHcsO8w59lXG4iICsKICAgICJb Vm9yLSB1bmQgTmFjaG5hbWUsIERpZW5zdGdyYWRdXG4iICsKICAgICJbRGllbnN0c3RlbGxlIC8g RHVyY2h3YWhsXVxuXG5cbiIgKwogICAgIuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuIiArCiAgICAiVEVD SE5JU0NIRSBJTkZPIOKAlCBiaXR0ZSB1bnZlcsOkbmRlcnQgbGFzc2VuICh2b20gU3lzdGVtIGVy Z8Okbnp0KVxuIiArCiAgICAi4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4iICsKICAgICJOVy1LZW5udW5n OiAgICAgICB7bndfa2VubnVuZ31cbiIgKwogICAgIlJvbGxlOiAgICAgICAgICAgIHtyb2xsZX1c biIgKwogICAgIkFrdHVlbGxlIEFuc2ljaHQ6IHthbnNpY2h0fVxuIiArCiAgICAiRGF0dW0gLyBV aHJ6ZWl0OiAge2RhdHVtfSB7dWhyemVpdH1cbiIgKwogICAgIkF1ZmzDtnN1bmc6ICAgICAgICB7 YXVmbG9lc3VuZ31cbiIgKwogICAgIkNhY2hlLVZlcnNpb246ICAgIHt2ZXJzaW9ufVxuIiArCiAg ICAiQnJvd3NlcjogICAgICAgICAge2Jyb3dzZXJ9XG4iICsKICAgICLilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZBcbiI7CgogIC8vIFRlYW0tNS1LYXRhbG9nID0gZGVyc2VsYmUgRnJhZ2Vua2F0YWxvZywgbnVy IGFuZGVyZSBBbnJlZGUgKGFsbGdlbWVpbmVyIFN1cHBvcnQtV2VnKS4KICBQLlNVUFBPUlRfVEVB TTVfREVGQVVMVCA9IFAuU1VQUE9SVF9NQUlMX0RFRkFVTFQucmVwbGFjZSgiSGFsbG8gUGhpbGlw cCwiLCAiSGFsbG8gU3VwcG9ydC1UZWFtIDUsIik7CgogIGZ1bmN0aW9uIFMoKSB7IHJldHVybiAo UC5jb250ZW50ICYmIFAuY29udGVudC5zZXR0aW5ncykgfHwge307IH0KICBmdW5jdGlvbiBwYWQo bikgeyByZXR1cm4gKG4gPCAxMCA/ICIwIiA6ICIiKSArIG47IH0KICBmdW5jdGlvbiBjYWNoZVZl cigpIHsKICAgIHRyeSB7IHZhciBsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbGlua1tyZWw9 InN0eWxlc2hlZXQiXScpOyB2YXIgbSA9IGwgJiYgL1s/Jl12PShbXiYiJ10rKS8uZXhlYyhsLmhy ZWYpOyByZXR1cm4gbSA/IG1bMV0gOiAiPyI7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuICI/IjsgfQog IH0KICBmdW5jdGlvbiBjdXJyZW50VmlldygpIHsKICAgIGlmIChQLmN1ckFydGljbGUpIHJldHVy biAiQXJ0aWtlbCAvIERva3VtZW50IjsKICAgIHZhciBjdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0 b3IoIi5jb250ZW50LXZpZXciKTsKICAgIGlmIChjdiAmJiBjdi5vZmZzZXRQYXJlbnQgIT09IG51 bGwpIHJldHVybiAiRG9rdW1lbnQtQW5zaWNodCI7CiAgICByZXR1cm4gIk1lbGR1bmdzLUZlZWQg LyDDnGJlcnNpY2h0IjsKICB9CgogIHZhciBNQUlMX1JFID0gL15bXlxzQF0rQFteXHNAXStcLlte XHNAXSskLzsKICAvLyBGcmFnZW5rYXRhbG9nIG1pdCBMaXZlLVdlcnRlbiBmw7xsbGVuICh7cGxh dHpoYWx0ZXJ9IC0+IEtvbnRleHQpLiB3aGljaCA9ICJ0ZWFtNSIgfCAicm9lc2dlbiIuCiAgUC5z dXBwb3J0TWFpbEJvZHkgPSBmdW5jdGlvbiAod2hpY2gpIHsKICAgIHZhciBuID0gbmV3IERhdGUo KSwgc3VwID0gUygpLnN1cHBvcnQgfHwge307CiAgICB2YXIgdHBsID0gKHdoaWNoID09PSAidGVh bTUiKQogICAgICA/ICgoc3VwLnRlYW01TWFpbCAmJiBTdHJpbmcoc3VwLnRlYW01TWFpbCkudHJp bSgpKSA/IHN1cC50ZWFtNU1haWwgOiBQLlNVUFBPUlRfVEVBTTVfREVGQVVMVCkKICAgICAgOiAo KHN1cC5tYWlsICYmIFN0cmluZyhzdXAubWFpbCkudHJpbSgpKSA/IHN1cC5tYWlsIDogUC5TVVBQ T1JUX01BSUxfREVGQVVMVCk7CiAgICB2YXIgY3R4ID0gewogICAgICAie253X2tlbm51bmd9Ijog UC51c2VyIHx8ICI/IiwKICAgICAgIntyb2xsZX0iOiBQLnJvbGUgfHwgIj8iLAogICAgICAie2Fu c2ljaHR9IjogY3VycmVudFZpZXcoKSwKICAgICAgIntkYXR1bX0iOiBwYWQobi5nZXREYXRlKCkp ICsgIi4iICsgcGFkKG4uZ2V0TW9udGgoKSArIDEpICsgIi4iICsgbi5nZXRGdWxsWWVhcigpLAog ICAgICAie3VocnplaXR9IjogcGFkKG4uZ2V0SG91cnMoKSkgKyAiOiIgKyBwYWQobi5nZXRNaW51 dGVzKCkpLAogICAgICAie2F1ZmxvZXN1bmd9IjogKHdpbmRvdy5pbm5lcldpZHRoIHx8ICI/Iikg KyAieCIgKyAod2luZG93LmlubmVySGVpZ2h0IHx8ICI/IiksCiAgICAgICJ7dmVyc2lvbn0iOiBj YWNoZVZlcigpLAogICAgICAie2Jyb3dzZXJ9IjogKG5hdmlnYXRvciAmJiBuYXZpZ2F0b3IudXNl ckFnZW50KSA/IG5hdmlnYXRvci51c2VyQWdlbnQuc3Vic3RyaW5nKDAsIDEyMCkgOiAiPyIKICAg IH07CiAgICB2YXIgb3V0ID0gdHBsOwogICAgT2JqZWN0LmtleXMoY3R4KS5mb3JFYWNoKGZ1bmN0 aW9uIChrKSB7IG91dCA9IG91dC5zcGxpdChrKS5qb2luKGN0eFtrXSk7IH0pOwogICAgcmV0dXJu IG91dDsKICB9OwogIFAuc3VwcG9ydE1haWx0byA9IGZ1bmN0aW9uICh3aGljaCkgewogICAgdmFy IHN1cCA9IFMoKS5zdXBwb3J0IHx8IHt9LCB0bywgc3ViajsKICAgIGlmICh3aGljaCA9PT0gInRl YW01IikgewogICAgICB0byA9IChzdXAudGVhbTVFbWFpbCAmJiBTdHJpbmcoc3VwLnRlYW01RW1h aWwpLnRyaW0oKSkgfHwgIkRpckdFRkxEVGVhbTUuRG9ydG11bmRAcG9saXplaS5ucncuZGUiOyAg IC8vICJNYWlsIFRFQU0gNSIgaGllciBhdWZnZWdhbmdlbgogICAgICBzdWJqID0gKHN1cC50ZWFt NVN1YmplY3QgJiYgU3RyaW5nKHN1cC50ZWFtNVN1YmplY3QpLnRyaW0oKSkgfHwgIlBvcnRhbCBV bmlvbiDigJMgU3VwcG9ydCAoVGVhbSA1KSI7CiAgICB9IGVsc2UgewogICAgICB0byA9IChzdXAu ZW1haWwgJiYgU3RyaW5nKHN1cC5lbWFpbCkudHJpbSgpKSB8fCAicGhpbGlwcC5yb2VzZ2VuQHBv bGl6ZWkubnJ3LmRlIjsKICAgICAgaWYgKCFNQUlMX1JFLnRlc3QodG8pKSB0byA9ICJwaGlsaXBw LnJvZXNnZW5AcG9saXplaS5ucncuZGUiOwogICAgICBzdWJqID0gKHN1cC5zdWJqZWN0ICYmIFN0 cmluZyhzdXAuc3ViamVjdCkudHJpbSgpKSB8fCAiUG9ydGFsIFVuaW9uIOKAkyBTdXBwb3J0IjsK ICAgIH0KICAgIHZhciB0b0VuYyA9IE1BSUxfUkUudGVzdCh0bykgPyBlbmNvZGVVUklDb21wb25l bnQodG8pLnJlcGxhY2UoLyU0MC9nLCAiQCIpIDogIiI7ICAgLy8gdW5nw7xsdGlnL2xlZXIgLT4g RW1wZsOkbmdlciBpbSBPdXRsb29rIHfDpGhsZW4KICAgIHJldHVybiAibWFpbHRvOiIgKyB0b0Vu YyArICI/c3ViamVjdD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHN1YmopICsgIiZib2R5PSIgKyBl bmNvZGVVUklDb21wb25lbnQoUC5zdXBwb3J0TWFpbEJvZHkod2hpY2gpKTsKICB9OwoKICAvLyAi UmVkYWt0aW9uICYgQWRtaW5pc3RyYXRpb24iIGF1dG9tYXRpc2NoIGF1cyBzZXR0aW5ncy50ZWFt ICh2b24gcm9sZXMuanMgYmVpbSBTcGVpY2hlcm4gdmVyb2VmZmVudGxpY2h0OwogIC8vIG9obmUg Tm90ZmFsbC1LZW5udW5nZW4pLiBMZWVyIC0+IEhpbndlaXMuIERPTSB2aWEgZWwoKSAoa2VpbiBT YW5pdGl6ZXIgbm9ldGlnLCByZWluZXIgVGV4dCkuCiAgZnVuY3Rpb24gdGVhbUJsb2NrKCkgewog ICAgdmFyIHQgPSBTKCkudGVhbSB8fCB7fTsKICAgIHZhciBhZG1pbnMgPSB0LmFkbWlucyB8fCBb XSwgcmVkYWtzID0gdC5yZWRha3RldXJlIHx8IFtdOwogICAgdmFyIGJveCA9IGVsKCJkaXYiLCB7 IGNsYXNzOiAiaW1wcmVzc3VtLXRlYW0iIH0pOwogICAgYm94LmFwcGVuZENoaWxkKGVsKCJoNCIs IHsgdGV4dDogIlJlZGFrdGlvbiAmIEFkbWluaXN0cmF0aW9uIiB9KSk7CiAgICBpZiAoIWFkbWlu cy5sZW5ndGggJiYgIXJlZGFrcy5sZW5ndGgpIHsKICAgICAgYm94LmFwcGVuZENoaWxkKGVsKCJw IiwgeyBjbGFzczogIm11dGVkIHNtYWxsIiwgdGV4dDogIkRlcnplaXQgc2luZCBrZWluZSB3ZWl0 ZXJlbiBSZWRha3RldXI6aW5uZW4vQWRtaW5zIGJlbmFubnQuIiB9KSk7CiAgICAgIHJldHVybiBi b3g7CiAgICB9CiAgICBmdW5jdGlvbiBubSh1KSB7IHJldHVybiBbdS5ncmFkLCB1LnZvcm5hbWUs IHUubmFjaG5hbWVdLm1hcChmdW5jdGlvbiAocykgeyByZXR1cm4gKHMgfHwgIiIpLnRyaW0oKTsg fSkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKSB8fCAodS5rZW5udW5nIHx8ICIiKTsgfQogICAg ZnVuY3Rpb24gbHN0KGxhYmVsLCBhcnIpIHsKICAgICAgaWYgKCFhcnIubGVuZ3RoKSByZXR1cm47 CiAgICAgIGJveC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImltcHJlc3N1bS10ZWFt LWgiLCB0ZXh0OiBsYWJlbCB9KSk7CiAgICAgIHZhciB1bCA9IGVsKCJ1bCIpOyBhcnIuZm9yRWFj aChmdW5jdGlvbiAodSkgeyB1bC5hcHBlbmRDaGlsZChlbCgibGkiLCB7IHRleHQ6IG5tKHUpIH0p KTsgfSk7IGJveC5hcHBlbmRDaGlsZCh1bCk7CiAgICB9CiAgICBsc3QoIkFkbWluaXN0cmF0aW9u IiwgYWRtaW5zKTsKICAgIGxzdCgiUmVkYWt0aW9uIiwgcmVkYWtzKTsKICAgIHJldHVybiBib3g7 CiAgfQoKICBQLm9wZW5JbXByZXNzdW0gPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIgaHRtbCA9IChT KCkuaW1wcmVzc3VtICYmIFN0cmluZyhTKCkuaW1wcmVzc3VtKS50cmltKCkpID8gUygpLmltcHJl c3N1bSA6IFAuSU1QUkVTU1VNX0RFRkFVTFQ7CiAgICB2YXIgc2FmZSA9IFAuc2FuaXRpemVIdG1s ID8gUC5zYW5pdGl6ZUh0bWwoaHRtbCkgOiAiIjsKICAgIHZhciBzdGFmZiA9ICEhKFAuY2FuRWRp dCAmJiBQLmNhbkVkaXQoKSk7ICAgLy8gUmVkYWt0ZXVyL0FkbWluCiAgICBQLm1vZGFsKHsKICAg ICAgdGl0bGU6ICJJbXByZXNzdW0iLCBpY29uOiAic2hpZWxkIiwgc2l6ZTogIm1kIiwKICAgICAg Ym9keTogZnVuY3Rpb24gKGhvc3QpIHsKICAgICAgICBob3N0LmNsYXNzTGlzdC5hZGQoImltcHJl c3N1bS1ib2R5Iik7CiAgICAgICAgdmFyIGNvbnRlbnQgPSBlbCgiZGl2IiwgeyBjbGFzczogImlt cHJlc3N1bS1pbmhhbHQiIH0pOwogICAgICAgIGNvbnRlbnQuaW5uZXJIVE1MID0gc2FmZTsgICAv LyBzYW5pdGlzaWVydCAoUC5zYW5pdGl6ZUh0bWwpCiAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChj b250ZW50KTsKICAgICAgICBob3N0LmFwcGVuZENoaWxkKHRlYW1CbG9jaygpKTsgICAvLyBSZWRh a3Rpb24vQWRtaW5pc3RyYXRpb24gYXV0b21hdGlzY2ggYXVzIHNldHRpbmdzLnRlYW0KCiAgICAg ICAgLy8gQWxsZ2VtZWluZXIgU3VwcG9ydCAoVGVhbSA1KSDigJQgZsO8ciBBTExFIFJvbGxlbi4K ICAgICAgICB2YXIgdDUgPSBlbCgiZGl2IiwgeyBjbGFzczogImltcHJlc3N1bS1zdXBwb3J0IiB9 KTsKICAgICAgICB0NS5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImltcHJlc3N1bS1z dXBwb3J0LXRpdGVsIiwgaHRtbDogaWMoImluYm94IikgKyAiPHNwYW4+U3VwcG9ydCAmYW1wOyBS w7xja2ZyYWdlbjwvc3Bhbj4iIH0pKTsKICAgICAgICB0NS5hcHBlbmRDaGlsZChlbCgicCIsIHsg Y2xhc3M6ICJpbXByZXNzdW0tc3VwcG9ydC10ZXh0IiwKICAgICAgICAgIGh0bWw6ICJGcmFnZW4s IEZlaGxlciBvZGVyIFfDvG5zY2hlIHp1bSBQb3J0YWwgYml0dGUgYW4gZGVuIDxzdHJvbmc+U3Vw cG9ydCBkZXMgVGVhbSA1PC9zdHJvbmc+LiIgfSkpOwogICAgICAgIHQ1LmFwcGVuZENoaWxkKGVs KCJhIiwgeyBjbGFzczogImJ0biBwcmltYXJ5IGltcHJlc3N1bS1tYWlsLWJ0biIsIGhyZWY6IFAu c3VwcG9ydE1haWx0bygidGVhbTUiKSwKICAgICAgICAgIGh0bWw6IGljKCJpbmJveCIpICsgIjxz cGFuPlN1cHBvcnQgVGVhbSA1IOKAkyBFLU1haWwgKE91dGxvb2spPC9zcGFuPiIgfSkpOwogICAg ICAgIGhvc3QuYXBwZW5kQ2hpbGQodDUpOwoKICAgICAgICAvLyBFc2thbGF0aW9uIC8gdGVjaG5p c2NoZXIgQW5zcHJlY2hwYXJ0bmVyIOKAlCBOVVIgUmVkYWt0ZXVyL0FkbWluLgogICAgICAgIGlm IChzdGFmZikgewogICAgICAgICAgdmFyIGJveCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiaW1wcmVz c3VtLW5vdGZhbGwiIH0pOwogICAgICAgICAgYm94LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNs YXNzOiAiaW1wcmVzc3VtLW5vdGZhbGwtdGl0ZWwiLCBodG1sOiBpYygic2hpZWxkIikgKyAiPHNw YW4+VGVjaG5pc2NoZXIgQW5zcHJlY2hwYXJ0bmVyIC8gUsO8Y2tmYWxsZWJlbmU8L3NwYW4+IiB9 KSk7CiAgICAgICAgICBib3guYXBwZW5kQ2hpbGQoZWwoInAiLCB7IGNsYXNzOiAiaW1wcmVzc3Vt LW5vdGZhbGwtdGV4dCIsCiAgICAgICAgICAgIGh0bWw6ICI8c3Ryb25nPlBISyBSb2VzZ2VuPC9z dHJvbmc+IChLb256ZXB0aW9uL0VudHdpY2tsdW5nLCBOVy1LZW5udW5nIDxjb2RlPk5XMDUzNjA5 PC9jb2RlPiwgaW0gSGVsZmVyIGFscyBOb3RmYWxsLUFkbWluIGhpbnRlcmxlZ3QpICIgKwogICAg ICAgICAgICAgICAgICAid2lyZCA8c3Ryb25nPmF1c3NjaGxpZcOfbGljaCB2b24gZGVuIFRlYW1s ZWl0dW5nZW4gZGVzIFRlYW0gNTwvc3Ryb25nPiBkaXJla3Qga29udGFrdGllcnQuICIgKwogICAg ICAgICAgICAgICAgICAiQWxsZSDDvGJyaWdlbiBBbmxpZWdlbiBiaXR0ZSDDvGJlciBkZW4gU3Vw cG9ydCBkZXMgVGVhbSA1IChvYmVuKS4iIH0pKTsKICAgICAgICAgIGJveC5hcHBlbmRDaGlsZChl bCgiYSIsIHsgY2xhc3M6ICJidG4gdGludGVkIGltcHJlc3N1bS1tYWlsLWJ0biIsIGhyZWY6IFAu c3VwcG9ydE1haWx0bygicm9lc2dlbiIpLAogICAgICAgICAgICBodG1sOiBpYygiaW5ib3giKSAr ICI8c3Bhbj5EaXJla3QgYW4gUEhLIFJvZXNnZW4gKG51ciBUZWFtbGVpdHVuZyBUZWFtIDUpPC9z cGFuPiIgfSkpOwogICAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChib3gpOwogICAgICAgIH0KICAg ICAgfSwKICAgICAgYWN0aW9uczogW3sgbGFiZWw6ICJTY2hsaWXDn2VuIiwga2luZDogImdob3N0 IiB9XQogICAgfSk7CiAgfTsKCiAgLy8gUGVyc2lzdGVudGVyIEZ1w596ZWlsZW4tTGluayBpbiBk ZXIgbGlua2VuIFNwYWx0ZSAoZsO8ciBhbGxlIFJvbGxlbiBzaWNodGJhcikuCiAgdmFyIGxuayA9 IFAuJCgiI2ltcHJlc3N1bS1saW5rIik7CiAgaWYgKGxuaykgbG5rLmFkZEV2ZW50TGlzdGVuZXIo ImNsaWNrIiwgZnVuY3Rpb24gKGUpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBQLm9wZW5JbXByZXNz dW0oKTsgfSk7Cgp9KSh3aW5kb3cuUCk7Cg== ### FILE: assets/js/features/kennwoerter.js | 3949 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMva2VubndvZXJ0ZXIu anMKICAgRWlnZW5lIE1pdHRlbGFuc2ljaHQgIktlbm53w7ZydGVyIiAoTGlzdGUgQmV6ZWljaG51 bmcgfCBXZXJ0KS4gSW0gUGZsZWdlLQogICBNb2R1cyBzaW5kIHN0YW5kYXJkbWFlc3NpZyBOVVIg ZGllIFdlcnRlIGVkaXRpZXJiYXIgKEF1dG9zYXZlKTsgZGllIFN0cnVrdHVyCiAgIChCZXplaWNo bnVuZ2VuIGFubGVnZW4vdW1iZW5lbm5lbi9sb2VzY2hlbikgbGllZ3QgaGludGVyICJTdHJ1a3R1 ciB2ZXJ3YWx0ZW4iLgogICBEYXRlbjogd2luZG93LlBPUlRBTF9LRU5OV09FUlRFUiAtPiBQLmNv bnRlbnQua2VubndvZXJ0ZXIgKHB1YmxpemllcnQgaW4KICAgZGF0YS1jb250ZW50LmpzKS4gQXVm cnVmIHVlYmVyIGRpZSBsaW5rZSBOYXZpZ2F0aW9uIChaaWVsIGFwcDprZW5ud29lcnRlcikuCiAg ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PSAqLwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIGVs ID0gUC5lbCwgJCA9IFAuJCwgaWMgPSBQLmljOwogIHZhciBtYW5hZ2UgPSBmYWxzZTsKCiAgZnVu Y3Rpb24gcm93cygpIHsgcmV0dXJuIChQLmNvbnRlbnQgJiYgUC5jb250ZW50Lmtlbm53b2VydGVy KSB8fCBbXTsgfQoKICBmdW5jdGlvbiByZW5kZXIoaG9zdCkgewogICAgaG9zdC5pbm5lckhUTUwg PSAiIjsKICAgIHZhciBoZWFkID0gZWwoImRpdiIsIHsgY2xhc3M6ICJhcnQtaGVhZCIgfSk7CiAg ICBoZWFkLmFwcGVuZENoaWxkKGVsKCJoMSIsIHsgdGV4dDogIktlbm53w7ZydGVyIiB9KSk7CiAg ICBpZiAoUC5saXZlKSB7CiAgICAgIHZhciBiYXIgPSBlbCgiZGl2IiwgeyBjbGFzczogImt3LWJh ciIgfSk7CiAgICAgIGJhci5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogImJ0biBn aG9zdCIgKyAobWFuYWdlID8gIiB0aW50ZWQiIDogIiIpLCBodG1sOiBpYygiZWRpdCIpICsgIjxz cGFuPlN0cnVrdHVyIHZlcndhbHRlbjwvc3Bhbj4iLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9u ICgpIHsgbWFuYWdlID0gIW1hbmFnZTsgcmVuZGVyKGhvc3QpOyB9IH0pKTsKICAgICAgaWYgKG1h bmFnZSkgYmFyLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYnRuIGdob3N0Iiwg aHRtbDogaWMoInBsdXMiKSArICI8c3Bhbj5FaW50cmFnPC9zcGFuPiIsCiAgICAgICAgb25jbGlj azogZnVuY3Rpb24gKCkgeyByb3dzKCkucHVzaCh7IGlkOiBQLnVpZCA/IFAudWlkKCJrdyIpIDog KCJrdyIgKyBEYXRlLm5vdygpKSwgbGFiZWw6ICIiLCB2YWx1ZTogIiIgfSk7IFAucGVyc2lzdCgp OyByZW5kZXIoaG9zdCk7IH0gfSkpOwogICAgICBoZWFkLmFwcGVuZENoaWxkKGJhcik7CiAgICAg IGhlYWQuYXBwZW5kQ2hpbGQoZWwoInAiLCB7IGNsYXNzOiAibXV0ZWQgc21hbGwiLCB0ZXh0OiBt YW5hZ2UKICAgICAgICA/ICJTdHJ1a3R1ci1Nb2R1czogQmV6ZWljaG51bmdlbiDDpG5kZXJuLCBF aW50csOkZ2UgaGluenVmw7xnZW4vbMO2c2NoZW4uIgogICAgICAgIDogIldlcnRlIGRpcmVrdCBi ZWFyYmVpdGVuIOKAlCB3aXJkIGF1dG9tYXRpc2NoIGdlc3BlaWNoZXJ0LiBCZXplaWNobnVuZ2Vu IMO8YmVyIOKAnlN0cnVrdHVyIHZlcndhbHRlbuKAnC4iIH0pKTsKICAgIH0KICAgIGhvc3QuYXBw ZW5kQ2hpbGQoaGVhZCk7CgogICAgdmFyIGxpc3QgPSByb3dzKCk7CiAgICB2YXIgdGJsID0gZWwo ImRpdiIsIHsgY2xhc3M6ICJrdy10YmwiIH0pOwogICAgbGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChy LCBpKSB7CiAgICAgIHZhciBsYmwgPSAobWFuYWdlICYmIFAubGl2ZSkKICAgICAgICA/IGVsKCJp bnB1dCIsIHsgdHlwZTogInRleHQiLCBjbGFzczogImt3LWxhYmVsIiwgdmFsdWU6IHIubGFiZWwg fHwgIiIsIHBsYWNlaG9sZGVyOiAiQmV6ZWljaG51bmciLAogICAgICAgICAgICBvbmlucHV0OiBm dW5jdGlvbiAoKSB7IHIubGFiZWwgPSB0aGlzLnZhbHVlOyBQLnNjaGVkdWxlUGVyc2lzdCgpOyB9 IH0pCiAgICAgICAgOiBlbCgiZGl2IiwgeyBjbGFzczogImt3LWxhYmVsLXJvIiwgdGV4dDogci5s YWJlbCB8fCAiIiB9KTsKICAgICAgdmFyIHZhbCA9IFAubGl2ZQogICAgICAgID8gZWwoImlucHV0 IiwgeyB0eXBlOiAidGV4dCIsIGNsYXNzOiAia3ctdmFsdWUgbW9ubyIsIHZhbHVlOiByLnZhbHVl IHx8ICIiLCBwbGFjZWhvbGRlcjogIldlcnQgLyBLZW5ud29ydCIsIGF1dG9jb21wbGV0ZTogIm9m ZiIsIHNwZWxsY2hlY2s6ICJmYWxzZSIsCiAgICAgICAgICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgp IHsgci52YWx1ZSA9IHRoaXMudmFsdWU7IFAuc2NoZWR1bGVQZXJzaXN0KCk7IH0gfSkKICAgICAg ICA6IGVsKCJkaXYiLCB7IGNsYXNzOiAia3ctdmFsdWUtcm8gbW9ubyIsIHRleHQ6IHIudmFsdWUg fHwgIiIgfSk7CiAgICAgIHZhciBjZWxscyA9IFtsYmwsIHZhbF07CiAgICAgIGlmIChtYW5hZ2Ug JiYgUC5saXZlKSBjZWxscy5wdXNoKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibWluaS1idG4gZGFu Z2VyIiwgdGl0bGU6ICJFaW50cmFnIGzDtnNjaGVuIiwgaHRtbDogaWMoInRyYXNoIiksCiAgICAg ICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBQLmNvbmZpcm0oIkVpbnRyYWcg4oCeIiArIChyLmxh YmVsIHx8ICIiKSArICLigJwgbMO2c2NoZW4/IiwgZnVuY3Rpb24gKCkgeyBsaXN0LnNwbGljZShp LCAxKTsgUC5wZXJzaXN0KCk7IHJlbmRlcihob3N0KTsgfSwgeyBkYW5nZXI6IHRydWUgfSk7IH0g fSkpOwogICAgICB0YmwuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJrdy1yb3ciICsg KG1hbmFnZSAmJiBQLmxpdmUgPyAiIGt3LW1hbmFnZSIgOiAiIikgfSwgY2VsbHMpKTsKICAgIH0p OwogICAgaG9zdC5hcHBlbmRDaGlsZCh0YmwpOwogICAgaWYgKCFsaXN0Lmxlbmd0aCkgaG9zdC5h cHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCIsIHRleHQ6IFAubGl2ZSA/ICJOb2No IGtlaW5lIEtlbm53w7ZydGVyIOKAlCDigJ5TdHJ1a3R1ciB2ZXJ3YWx0ZW7igJwg4oaSIOKAnkVp bnRyYWfigJwuIiA6ICJLZWluZSBLZW5ud8O2cnRlciBoaW50ZXJsZWd0LiIgfSkpOwogIH0KCiAg UC5vcGVuS2VubndvZXJ0ZXIgPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIgYyA9ICQoIi5jZW50ZXIi KTsgaWYgKCFjKSByZXR1cm47CiAgICBtYW5hZ2UgPSBmYWxzZTsKICAgIGMuY2xhc3NMaXN0LmFk ZCgiZG9jIiwgImFydGljbGUiKTsgICAgICAgICAgLy8gZ2xlaWNoZSBNaXR0ZWxhbnNpY2h0IHdp ZSBBcnRpa2VsL0Rva3UKICAgICQoIiNjdi1wYXRoIikudGV4dENvbnRlbnQgPSAiS2VubnfDtnJ0 ZXIiOwogICAgJCgiI2N2LWZyYW1lIikuc2V0QXR0cmlidXRlKCJzcmMiLCAiYWJvdXQ6Ymxhbmsi KTsKICAgIHJlbmRlcigkKCIjY3YtYXJ0aWNsZSIpKTsKICAgIFAuY3VyQXJ0aWNsZSA9IG51bGw7 ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBrZWluIEFydGlrZWwgLT4ga2VpbiAiQmVhcmJl aXRlbiItS25vcGYKICAgIGlmIChQLm1hcmtDdXJyZW50KSBQLm1hcmtDdXJyZW50KCJhcHA6a2Vu bndvZXJ0ZXIiKTsKICAgIFAuY2xvc2VNb2JpbGUgJiYgUC5jbG9zZU1vYmlsZSgpOwogIH07Cgog IC8vIEFwcC1Sb3V0ZSAocmVnaXN0ZXJBcHAgYXVzIGZlYXR1cmVzL2FyenRsaXN0ZS5qczsgZGll c2UgRGF0ZWkgbGFlZHQgZGFuYWNoKS4KICBpZiAoUC5yZWdpc3RlckFwcCkgUC5yZWdpc3RlckFw cCgia2VubndvZXJ0ZXIiLCBmdW5jdGlvbiAoKSB7IFAub3Blbktlbm53b2VydGVyKCk7IH0sIFsi a2VubnfDtnJ0ZXIiLCAia2VubndvZXJ0ZXIiLCAia2VubndvcnQiLCAicGFzc3fDtnJ0ZXIiXSk7 Cgp9KSh3aW5kb3cuUCk7Cg== ### FILE: assets/js/features/linkcheck.js | 7782 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvbGlua2NoZWNrLmpz CiAgIExpbmstUHJ1ZWZ1bmcgKCJTZWl0ZSIgaW0gQ0QtU3RpbCwgdmlhIFAubW9kYWwpLiBTYW1t ZWx0IGFsbGUgRGF0ZWktTGlua3MKICAgYXVzIFBPUlRBTF9OQVYgdW5kIGVya2VubnQgZmVobGVu ZGUgWmllbGU6CiAgIC0gUGZsZWdlLU1vZHVzIChIZWxmZXIvUC5saXZlKTogcHJ1ZWZ0IGplZGVz IGxva2FsZSBaaWVsIGxpdmUgKEhUVFApIHVuZAogICAgIGxpc3RldCBkaWUgNDA0ZXI7IG9wdGlv bmFsIGFscyBmZWhsZW5kIG1hcmtpZXJlbiArIHZlcm9lZmZlbnRsaWNoZW4uCiAgIC0gTGVzZXIt TW9kdXMgKGZpbGU6Ly8pOiBsaXN0ZXQgZGllIGFscyBmZWhsZW5kIG1hcmtpZXJ0ZW4gRWludHJh ZWdlLgogICBLbGFzc2lzY2hlcyA8c2NyaXB0Piwga2VpbmUgRVMtTW9kdWxlLiBMYWVkdCBuYWNo IGNvbW1hbmRzLmpzLCB2b3IgbWFpbi5qcy4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAo UCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgZWwgPSBQLmVsLCBpYyA9IFAuaWM7CgogIC8vIFNl aHIgZ3Jvc3NlIERhdGVpIG5pZSBsYWRlbiAoQ0xBVURFLm1kKTogbnVyIEV4aXN0ZW56LCBrZWlu IEFicnVmLgogIHZhciBIVUdFID0gImRva3VtZW50ZS9vYmVuLzAzX2Fhby9kL2RpZ2l0YWxmdW5r X21hc3Rlcl9ocnRfYWJfMDIuMTktRGF0ZWllbi9zaGVldDAwMS5odG0iOwoKICBmdW5jdGlvbiBr aW5kT2YoaHJlZikgewogICAgaWYgKCFocmVmKSByZXR1cm4gIm5vbmUiOwogICAgaWYgKC9ebWFp bHRvOi9pLnRlc3QoaHJlZikpIHJldHVybiAibWFpbCI7CiAgICBpZiAoL15odHRwcz86L2kudGVz dChocmVmKSkgcmV0dXJuICJleHRlcm4iOwogICAgaWYgKGhyZWYuaW5kZXhPZigiLy8iKSA9PT0g MCB8fCAvXmZpbGU6L2kudGVzdChocmVmKSkgcmV0dXJuICJpbnRyYW5ldCI7CiAgICBpZiAoaHJl Zi5pbmRleE9mKCIuLi8iKSA9PT0gMCkgcmV0dXJuICJjcm9zcyI7CiAgICByZXR1cm4gImxva2Fs IjsgICAvLyBkb2t1bWVudGUvLi4uLCBzdHJ1a3R1ci8uLi4sIGFzc2V0cy8uLi4sIHNvbnN0IHJl bGF0aXYKICB9CgogIC8vIEFsbGUgQmxhdHQtTGlua3MgZGVyIE5hdmlnYXRpb24gZWluc2FtbWVs biAoaW5rbC4gU2VrdGlvbiBmdWVyIGRlbiBQZmFkKS4KICBQLmNvbGxlY3RMaW5rcyA9IGZ1bmN0 aW9uICgpIHsKICAgIHZhciByb3dzID0gW107CiAgICBQLmVhY2hOYXZJdGVtKGZ1bmN0aW9uIChp dCwgcGFyZW50LCBzZWMpIHsKICAgICAgaWYgKGl0LmhlYWRpbmcpIHJldHVybjsKICAgICAgdmFy IGQgPSAoUC5yZXNvbHZlUmVmICYmIFAucmVzb2x2ZVJlZihpdCkpIHx8IGl0OwogICAgICBpZiAo ZC5hcnRpY2xlIHx8ICFkLmhyZWYpIHJldHVybjsgICAgICAgICAgLy8gQXJ0aWtlbCBoYWJlbiBr ZWluIERhdGVpLVppZWwKICAgICAgcm93cy5wdXNoKHsKICAgICAgICBsYWJlbDogaXQubGFiZWwg fHwgZC5sYWJlbCB8fCAiKG9obmUgVGl0ZWwpIiwKICAgICAgICBocmVmOiBkLmhyZWYsIGtpbmQ6 IGtpbmRPZihkLmhyZWYpLCBicm9rZW46ICEhZC5icm9rZW4sCiAgICAgICAgc2VjdGlvbjogKHNl YyAmJiAoc2VjLmxhYmVsIHx8IHNlYy50aXRsZSkpIHx8ICIiLCBpdGVtOiBpdAogICAgICB9KTsK ICAgIH0pOwogICAgcmV0dXJuIHJvd3M7CiAgfTsKCiAgLy8gRWluIGxva2FsZXMgWmllbCBwcnVl ZmVuIChudXIgTGl2ZS9IZWxmZXIpLiBCb2R5IHdpcmQgbmljaHQgZ2VsYWRlbi4KICBmdW5jdGlv biBwcm9iZShocmVmKSB7CiAgICByZXR1cm4gZmV0Y2goZW5jb2RlVVJJKGhyZWYpLCB7IG1ldGhv ZDogIkdFVCIsIGNhY2hlOiAibm8tc3RvcmUiIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAg ICBpZiAocmVzLmJvZHkgJiYgcmVzLmJvZHkuY2FuY2VsKSB7IHRyeSB7IHJlcy5ib2R5LmNhbmNl bCgpOyB9IGNhdGNoIChlKSB7fSB9CiAgICAgIHJldHVybiByZXMuc3RhdHVzOwogICAgfSkuY2F0 Y2goZnVuY3Rpb24gKCkgeyByZXR1cm4gMDsgfSk7CiAgfQoKICAvLyBCZWdyZW56dGUgUGFyYWxs ZWxpdGFldCwgZGFtaXQgZGVyIEhlbGZlciBuaWNodCB1ZWJlcnJhbm50IHdpcmQuCiAgZnVuY3Rp b24gcnVuUG9vbChpdGVtcywgd29ya2VyLCBjb25jLCBvblRpY2spIHsKICAgIGNvbmMgPSBjb25j IHx8IDg7CiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHsKICAgICAg dmFyIGkgPSAwLCBkb25lID0gMCwgbiA9IGl0ZW1zLmxlbmd0aDsKICAgICAgaWYgKCFuKSByZXR1 cm4gcmVzb2x2ZSgpOwogICAgICBmdW5jdGlvbiBuZXh0KCkgewogICAgICAgIGlmIChpID49IG4p IHJldHVybjsKICAgICAgICB2YXIgciA9IGl0ZW1zW2krK107CiAgICAgICAgd29ya2VyKHIpLnRo ZW4oZnVuY3Rpb24gKCkgeyBkb25lKys7IGlmIChvblRpY2spIG9uVGljayhkb25lLCBuKTsgKGRv bmUgPT09IG4pID8gcmVzb2x2ZSgpIDogbmV4dCgpOyB9KTsKICAgICAgfQogICAgICBmb3IgKHZh ciBrID0gMDsgayA8IE1hdGgubWluKGNvbmMsIG4pOyBrKyspIG5leHQoKTsKICAgIH0pOwogIH0K CiAgUC5vcGVuTGlua1JlcG9ydCA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciByb3dzID0gUC5jb2xs ZWN0TGlua3MoKTsKICAgIHZhciBmbGFnZ2VkID0gcm93cy5maWx0ZXIoZnVuY3Rpb24gKHIpIHsg cmV0dXJuIHIuYnJva2VuOyB9KTsKICAgIHZhciBsb2NhbFJvd3MgPSByb3dzLmZpbHRlcihmdW5j dGlvbiAocikgeyByZXR1cm4gci5raW5kID09PSAibG9rYWwiICYmIHIuaHJlZiAhPT0gSFVHRTsg fSk7CgogICAgUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiTGluay1QcnVlZnVuZyIsIGljb246ICJs aW5rIiwgc2l6ZTogInhsIiwKICAgICAgYm9keTogZnVuY3Rpb24gKGhvc3QpIHsKICAgICAgICB2 YXIgc3VtICAgPSBlbCgiZGl2IiwgeyBjbGFzczogImxjLXN1bSIgfSk7CiAgICAgICAgdmFyIGJh ciAgID0gZWwoImRpdiIsIHsgY2xhc3M6ICJsYy1iYXIiIH0pOwogICAgICAgIHZhciBsaXN0SCA9 IGVsKCJkaXYiLCB7IGNsYXNzOiAibGMtbGlzdCIgfSk7CiAgICAgICAgaG9zdC5hcHBlbmRDaGls ZChzdW0pOyBob3N0LmFwcGVuZENoaWxkKGJhcik7IGhvc3QuYXBwZW5kQ2hpbGQobGlzdEgpOwoK ICAgICAgICB2YXIgbGFzdEZvdW5kID0gW107ICAgLy8gbGl2ZSBnZWZ1bmRlbmUgNDA0IG9obmUg RmxhZwoKICAgICAgICBmdW5jdGlvbiBiYWRnZShyLCBzdGF0dXMpIHsKICAgICAgICAgIGlmIChz dGF0dXMgPT09ICJ3YWl0IikgcmV0dXJuIGVsKCJzcGFuIiwgeyBjbGFzczogImxjLWJhZGdlIHdh aXQiLCB0ZXh0OiAiLi4uIiB9KTsKICAgICAgICAgIGlmIChyLmtpbmQgIT09ICJsb2thbCIpCiAg ICAgICAgICAgIHJldHVybiBlbCgic3BhbiIsIHsgY2xhc3M6ICJsYy1iYWRnZSBleHQiLAogICAg ICAgICAgICAgIHRleHQ6IHIua2luZCA9PT0gImV4dGVybiIgPyAiZXh0ZXJuIiA6IHIua2luZCA9 PT0gImludHJhbmV0IiA/ICJJbnRyYW5ldCIgOiByLmtpbmQgPT09ICJjcm9zcyIgPyAiUG9ydGFs IiA6ICItIiB9KTsKICAgICAgICAgIGlmIChzdGF0dXMgPT09IDIwMCkgcmV0dXJuIGVsKCJzcGFu IiwgeyBjbGFzczogImxjLWJhZGdlIG9rIiwgdGV4dDogIk9LIiB9KTsKICAgICAgICAgIGlmICh0 eXBlb2Ygc3RhdHVzID09PSAibnVtYmVyIikgcmV0dXJuIGVsKCJzcGFuIiwgeyBjbGFzczogImxj LWJhZGdlIGJhZCIsIHRleHQ6ICJmZWhsdCIgKyAoc3RhdHVzID8gIiAoIiArIHN0YXR1cyArICIp IiA6ICIiKSB9KTsKICAgICAgICAgIHJldHVybiBlbCgic3BhbiIsIHsgY2xhc3M6ICJsYy1iYWRn ZSAiICsgKHIuYnJva2VuID8gImJhZCIgOiAiaWRsZSIpLCB0ZXh0OiByLmJyb2tlbiA/ICJmZWhs dCIgOiAiLSIgfSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHJvd0VsKHIsIHN0YXR1cykg ewogICAgICAgICAgcmV0dXJuIGVsKCJidXR0b24iLCB7IGNsYXNzOiAibGMtcm93IiwgdGl0bGU6 IHIuaHJlZiwKICAgICAgICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBpZiAoUC5uYXZpZ2F0 ZSkgUC5uYXZpZ2F0ZShyLml0ZW0pOyB9IH0sIFsKICAgICAgICAgICAgYmFkZ2Uociwgc3RhdHVz KSwKICAgICAgICAgICAgZWwoInNwYW4iLCB7IGNsYXNzOiAibGMtbWFpbiIgfSwgWwogICAgICAg ICAgICAgIGVsKCJzcGFuIiwgeyBjbGFzczogImxjLWxibCIsIHRleHQ6IHIubGFiZWwgfSksCiAg ICAgICAgICAgICAgZWwoInNwYW4iLCB7IGNsYXNzOiAibGMtcGF0aCBtb25vIiwgdGV4dDogKHIu c2VjdGlvbiA/IHIuc2VjdGlvbiArICIgIC0gICIgOiAiIikgKyByLmhyZWYgfSkKICAgICAgICAg ICAgXSkKICAgICAgICAgIF0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBzdW1tYXJ5KGh0 bWwpIHsgc3VtLmlubmVySFRNTCA9ICIiOyBzdW0uYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xh c3M6ICJsYy1zdW0tdCIsIGh0bWw6IGh0bWwgfSkpOyB9CgogICAgICAgIGZ1bmN0aW9uIHJlbmRl ckZsYWdnZWQoKSB7CiAgICAgICAgICBzdW1tYXJ5KCI8Yj4iICsgZmxhZ2dlZC5sZW5ndGggKyAi PC9iPiBhbHMgZmVobGVuZCBtYXJraWVydGUgTGlua3MgJm1pZGRvdDsgPGI+IiArIGxvY2FsUm93 cy5sZW5ndGggKyAiPC9iPiBsb2thbGUgWmllbGUiKTsKICAgICAgICAgIGxpc3RILmlubmVySFRN TCA9ICIiOwogICAgICAgICAgaWYgKCFmbGFnZ2VkLmxlbmd0aCkgeyBsaXN0SC5hcHBlbmRDaGls ZChlbCgiZGl2IiwgeyBjbGFzczogImxjLWVtcHR5IiwgdGV4dDogIktlaW5lIGFscyBmZWhsZW5k IG1hcmtpZXJ0ZW4gTGlua3MuIiB9KSk7IHJldHVybjsgfQogICAgICAgICAgbGlzdEguYXBwZW5k Q2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJmZWVkLXNlY3Rpb24tbGFiZWwiLCB0ZXh0OiAiQWxz IGZlaGxlbmQgbWFya2llcnQiIH0pKTsKICAgICAgICAgIGZsYWdnZWQuZm9yRWFjaChmdW5jdGlv biAocikgeyBsaXN0SC5hcHBlbmRDaGlsZChyb3dFbChyLCBudWxsKSk7IH0pOwogICAgICAgIH0K CiAgICAgICAgdmFyIGxpdmVCdG4gPSBlbCgiYnV0dG9uIiwgeyBjbGFzczogImJ0biBwcmltYXJ5 IiwgaHRtbDogaWMoInNlYXJjaCIpICsgIjxzcGFuPkFsbGUgWmllbGUgamV0enQgcHJ1ZWZlbjwv c3Bhbj4iLAogICAgICAgICAgb25jbGljazogcnVuTGl2ZSB9KTsKICAgICAgICB2YXIgZmxhZ0J0 biA9IGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYnRuIHRpbnRlZCIsIGh0bWw6IGljKCJhbGVydCIp ICsgIjxzcGFuPkdlZnVuZGVuZSBtYXJraWVyZW48L3NwYW4+Iiwgc3R5bGU6ICJkaXNwbGF5Om5v bmUiLAogICAgICAgICAgb25jbGljazogZmxhZ0ZvdW5kIH0pOwoKICAgICAgICBpZiAoUC5saXZl KSB7IGJhci5hcHBlbmRDaGlsZChsaXZlQnRuKTsgYmFyLmFwcGVuZENoaWxkKGZsYWdCdG4pOyB9 CiAgICAgICAgZWxzZSBiYXIuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAibGMtaGlu dCBtdXRlZCIsCiAgICAgICAgICB0ZXh0OiAiTGl2ZS1QcnVlZnVuZyBudXIgaW0gUGZsZWdlLU1v ZHVzIChIZWxmZXIpIG1vZWdsaWNoIC0gdW50ZW4gZGllIGFscyBmZWhsZW5kIG1hcmtpZXJ0ZW4g RWludHJhZWdlLiIgfSkpOwoKICAgICAgICBmdW5jdGlvbiBydW5MaXZlKCkgewogICAgICAgICAg bGl2ZUJ0bi5kaXNhYmxlZCA9IHRydWU7IGxpdmVCdG4uaW5uZXJIVE1MID0gaWMoImNsb2NrIikg KyAiPHNwYW4+UHJ1ZWZlLi4uPC9zcGFuPiI7CiAgICAgICAgICBmbGFnQnRuLnN0eWxlLmRpc3Bs YXkgPSAibm9uZSI7IGxpc3RILmlubmVySFRNTCA9ICIiOyBsYXN0Rm91bmQgPSBbXTsKICAgICAg ICAgIHZhciBiYWQgPSBbXTsKICAgICAgICAgIHJ1blBvb2wobG9jYWxSb3dzLCBmdW5jdGlvbiAo cikgewogICAgICAgICAgICByZXR1cm4gcHJvYmUoci5ocmVmKS50aGVuKGZ1bmN0aW9uIChzdCkg eyByLl9zdGF0dXMgPSBzdDsgaWYgKHN0ICE9PSAyMDApIGJhZC5wdXNoKHIpOyB9KTsKICAgICAg ICAgIH0sIDgsIGZ1bmN0aW9uIChkb25lLCBuKSB7IHN1bW1hcnkoIlBydWVmZS4uLiA8Yj4iICsg ZG9uZSArICI8L2I+IC8gIiArIG4pOyB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg bGl2ZUJ0bi5kaXNhYmxlZCA9IGZhbHNlOyBsaXZlQnRuLmlubmVySFRNTCA9IGljKCJzZWFyY2gi KSArICI8c3Bhbj5Fcm5ldXQgcHJ1ZWZlbjwvc3Bhbj4iOwogICAgICAgICAgICBzdW1tYXJ5KCI8 Yj4iICsgKGxvY2FsUm93cy5sZW5ndGggLSBiYWQubGVuZ3RoKSArICI8L2I+IE9LICZtaWRkb3Q7 IDxiPiIgKyBiYWQubGVuZ3RoICsgIjwvYj4gZmVobGVuZCAodm9uICIgKyBsb2NhbFJvd3MubGVu Z3RoICsgIiBsb2thbGVuIFppZWxlbikiKTsKICAgICAgICAgICAgbGlzdEguaW5uZXJIVE1MID0g IiI7CiAgICAgICAgICAgIGlmICghYmFkLmxlbmd0aCkgeyBsaXN0SC5hcHBlbmRDaGlsZChlbCgi ZGl2IiwgeyBjbGFzczogImxjLWVtcHR5IiwgdGV4dDogIkFsbGUgbG9rYWxlbiBaaWVsZSBlcnJl aWNoYmFyLiIgfSkpOyByZXR1cm47IH0KICAgICAgICAgICAgbGlzdEguYXBwZW5kQ2hpbGQoZWwo ImRpdiIsIHsgY2xhc3M6ICJmZWVkLXNlY3Rpb24tbGFiZWwiLCB0ZXh0OiAiRmVobGVuZGUgWmll bGUgKCIgKyBiYWQubGVuZ3RoICsgIikiIH0pKTsKICAgICAgICAgICAgYmFkLmZvckVhY2goZnVu Y3Rpb24gKHIpIHsgbGlzdEguYXBwZW5kQ2hpbGQocm93RWwociwgci5fc3RhdHVzKSk7IH0pOwog ICAgICAgICAgICBsYXN0Rm91bmQgPSBiYWQuZmlsdGVyKGZ1bmN0aW9uIChyKSB7IHJldHVybiAh ci5icm9rZW47IH0pOwogICAgICAgICAgICBpZiAobGFzdEZvdW5kLmxlbmd0aCkgewogICAgICAg ICAgICAgIGZsYWdCdG4uc3R5bGUuZGlzcGxheSA9ICIiOwogICAgICAgICAgICAgIGZsYWdCdG4u aW5uZXJIVE1MID0gaWMoImFsZXJ0IikgKyAiPHNwYW4+IiArIGxhc3RGb3VuZC5sZW5ndGggKyAi IG5ldWUgYWxzIGZlaGxlbmQgbWFya2llcmVuPC9zcGFuPiI7CiAgICAgICAgICAgIH0KICAgICAg ICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gZmxhZ0ZvdW5kKCkgewogICAgICAg ICAgaWYgKCFsYXN0Rm91bmQubGVuZ3RoKSByZXR1cm47CiAgICAgICAgICBsYXN0Rm91bmQuZm9y RWFjaChmdW5jdGlvbiAocikgeyByLml0ZW0uYnJva2VuID0gdHJ1ZTsgci5icm9rZW4gPSB0cnVl OyB9KTsKICAgICAgICAgIGlmIChQLnBlcnNpc3ROYXYpIFAucGVyc2lzdE5hdigpOyAgICAgIC8v IExpdmUgLT4gQXV0by1QdWJsaXNoIGRhdGEtbmF2LmpzCiAgICAgICAgICBpZiAoUC5idWlsZElu ZGV4KSBQLmJ1aWxkSW5kZXgoKTsKICAgICAgICAgIGlmIChQLnJlbmRlclNpZGViYXIpIFAucmVu ZGVyU2lkZWJhcigpOwogICAgICAgICAgUC50b2FzdChsYXN0Rm91bmQubGVuZ3RoICsgIiBFaW50 cmFlZ2UgYWxzIGZlaGxlbmQgbWFya2llcnQiICsgKFAubGl2ZSA/ICIgJiB2ZXJvZWZmZW50bGlj aHQuIiA6ICIuIikpOwogICAgICAgICAgZmxhZ0J0bi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyBs YXN0Rm91bmQgPSBbXTsKICAgICAgICB9CgogICAgICAgIHJlbmRlckZsYWdnZWQoKTsKICAgICAg fSwKICAgICAgYWN0aW9uczogW3sgbGFiZWw6ICJTY2hsaWVzc2VuIiwga2luZDogImdob3N0IiB9 XQogICAgfSk7CiAgfTsKCn0pKHdpbmRvdy5QKTsK ### FILE: assets/js/features/linkcol.js | 9923 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvbGlua2NvbC5qcwog ICBMaW5rc2FtbWx1bmdlbiAocmVjaHRlIFNwYWx0ZSkuIEVpbiBRdWlja2xpbmsgbWl0IFppZWwg ImNvbDo8aWQ+IiBvZWZmbmV0CiAgIEtFSU4gTW9kYWwsIHNvbmRlcm4gYmxlbmRldCBkaWUgRGll bnN0Z3J1cHBlbi1QbGFudW5nIChSb3N0ZXIpIHRlbXBvcmFlciBhdXMKICAgdW5kIHNldHp0IGRh cyBTYW1tbHVuZ3MtTW9kdWwgYW4gZGVyZW4gUGxhdHogKCNsaW5rY29sLWhvc3QgaW4gI3BhbmVs cykuCiAgIFZlcnNjaGFjaHRlbHVuZzogZWluIExpbmsgaW4gZGVyIFNhbW1sdW5nIGthbm4gd2ll ZGVyIGF1ZiAiY29sOjxpZD4iIHplaWdlbgogICAoQnJvdGtydW1lbiAienVydWVjayIpLiBOYWNo IH4yIE1pbiBvaG5lIEludGVyYWt0aW9uIGZhZWhydCBkYXMgTW9kdWwgdm9uCiAgIHNlbGJzdCBl aW4gdW5kIGRpZSBEaWVuc3RncnVwcGUga29tbXQgenVydWVjay4gWmVudHJhbCBkYXJnZXN0ZWxs dGUgTGlua3MKICAgKHRhcmdldD1jb250ZW50KSBmdW5rdGlvbmllcmVuIG5vcm1hbCB3ZWl0ZXIg 4oCUIGtlaW4gTGF5b3V0LUhpamFjay4KICAgRGF0ZW46IHdpbmRvdy5QT1JUQUxfTElOS0NPTFMg LT4gUC5jb250ZW50Lmxpbmtjb2xzLiBFZGl0aWVyYmFyIGltIEJhY2tlbmQuCiAgID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PSAqLwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIGVsID0gUC5lbCwg JCA9IFAuJCwgaWMgPSBQLmljOwogIHZhciBJRExFX01TID0gMTIwMDAwOyAgICAgICAgICAvLyAy IE1pbnV0ZW4gb2huZSBJbnRlcmFrdGlvbiAtPiBlaW5mYWhyZW4KICB2YXIgaWRsZVRpbWVyID0g bnVsbCwgc3RhY2sgPSBbXTsgICAvLyBzdGFjayA9IGJlc3VjaHRlIGNvbC1pZHMgKEJyb3RrcnVt ZW4pCgogIFAuY29sQnlJZCA9IGZ1bmN0aW9uIChpZCkgewogICAgdmFyIEwgPSAoUC5jb250ZW50 ICYmIFAuY29udGVudC5saW5rY29scykgfHwgW107CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IEwu bGVuZ3RoOyBpKyspIGlmIChMW2ldLmlkID09PSBpZCkgcmV0dXJuIExbaV07CiAgICByZXR1cm4g bnVsbDsKICB9OwogIGZ1bmN0aW9uIGNvbE9mKGwpIHsgcmV0dXJuIGwgJiYgKGwuY29sIHx8ICgv XmNvbDovLnRlc3QobC5ocmVmIHx8ICIiKSA/IFN0cmluZyhsLmhyZWYpLnNsaWNlKDQpIDogIiIp KTsgfQoKICBmdW5jdGlvbiByZXNldElkbGUoKSB7IGlmIChpZGxlVGltZXIpIGNsZWFyVGltZW91 dChpZGxlVGltZXIpOyBpZGxlVGltZXIgPSBzZXRUaW1lb3V0KFAuY2xvc2VMaW5rQ29sLCBJRExF X01TKTsgfQoKICBQLmNsb3NlTGlua0NvbCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmIChpZGxlVGlt ZXIpIHsgY2xlYXJUaW1lb3V0KGlkbGVUaW1lcik7IGlkbGVUaW1lciA9IG51bGw7IH0KICAgIHN0 YWNrID0gW107CiAgICB2YXIgYm94ID0gJCgiI2xpbmtjb2wtaG9zdCIpOyBpZiAoYm94KSBib3gu cmVtb3ZlKCk7CiAgICB2YXIgcm9zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BhbmVscyAu cm9zdGVyIik7IGlmIChyb3MpIHJvcy5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgfTsKCiAgZnVuY3Rp b24gcmVuZGVyQm9keShib2R5LCBpZCkgewogICAgYm9keS5pbm5lckhUTUwgPSAiIjsKICAgIHZh ciBjb2wgPSBQLmNvbEJ5SWQoaWQpOwogICAgaWYgKCFjb2wpIHsgYm9keS5hcHBlbmRDaGlsZChl bCgicCIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHRleHQ6ICJTYW1tbHVuZyBuaWNodCBnZWZ1 bmRlbi4iIH0pKTsgcmV0dXJuOyB9CiAgICAoY29sLmxpbmtzIHx8IFtdKS5mb3JFYWNoKGZ1bmN0 aW9uIChsKSB7CiAgICAgIHZhciBjaWQgPSBjb2xPZihsKTsKICAgICAgdmFyIGEgPSBlbCgiYnV0 dG9uIiwgeyBjbGFzczogInFsIiArIChsLnZhcmlhbnQgPyAiICIgKyBsLnZhcmlhbnQgOiAiIiks IHRpdGxlOiBsLmhyZWYgfHwgKGNpZCA/ICJTYW1tbHVuZzogIiArIGNpZCA6ICIiKSwKICAgICAg ICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICByZXNldElkbGUoKTsKICAgICAgICAg IGlmIChjaWQpIHsgc3RhY2sucHVzaChpZCk7IHNob3coY2lkKTsgfQogICAgICAgICAgZWxzZSB7 IFAubmF2aWdhdGUobCk7IH0gICAvLyBNaXR0ZS9uZXVlciBUYWIvTW9kYWwvbG9rYWxlIERhdGVp IHdpZSB1ZWJlcmFsbAogICAgICAgIH0gfSk7CiAgICAgIGEuYXBwZW5kQ2hpbGQoZWwoInNwYW4i LCB7IGNsYXNzOiAibGJsIiwgdGV4dDogbC5sYWJlbCB9KSk7CiAgICAgIGlmIChjaWQpIGEuYXBw ZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAiZXh0IiwgaHRtbDogaWMoImNoZXYiKSB9KSk7 CiAgICAgIGVsc2UgaWYgKGwudGFyZ2V0ID09PSAiX2JsYW5rIikgYS5hcHBlbmRDaGlsZChlbCgi c3BhbiIsIHsgY2xhc3M6ICJleHQiLCBodG1sOiBpYygiZXh0IikgfSkpOwogICAgICBib2R5LmFw cGVuZENoaWxkKGEpOwogICAgfSk7CiAgICBpZiAoIShjb2wubGlua3MgfHwgW10pLmxlbmd0aCkg Ym9keS5hcHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHRleHQ6ICJO b2NoIGtlaW5lIExpbmtzIGluIGRpZXNlciBTYW1tbHVuZy4iIH0pKTsKICB9CgogIGZ1bmN0aW9u IHNob3coaWQpIHsKICAgIHZhciBib3ggPSAkKCIjbGlua2NvbC1ob3N0Iik7IGlmICghYm94KSBy ZXR1cm47CiAgICB2YXIgY29sID0gUC5jb2xCeUlkKGlkKSB8fCB7IHRpdGxlOiAiU2FtbWx1bmci IH07CiAgICB2YXIgaGVhZCA9ICQoIi5saW5rY29sLWhlYWQiLCBib3gpOyBoZWFkLmlubmVySFRN TCA9ICIiOwogICAgaWYgKHN0YWNrLmxlbmd0aCkgaGVhZC5hcHBlbmRDaGlsZChlbCgiYnV0dG9u IiwgeyBjbGFzczogImljb24tbWluaSIsIHRpdGxlOiAiWnVyw7xjayIsIGh0bWw6IGljKCJiYWNr IiksCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgcmVzZXRJZGxlKCk7IHNob3coc3RhY2su cG9wKCkpOyB9IH0pKTsKICAgIGhlYWQuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi aWNvIiwgaHRtbDogaWMoImdyaWQiKSB9KSk7CiAgICBoZWFkLmFwcGVuZENoaWxkKGVsKCJoMyIs IHsgdGV4dDogY29sLnRpdGxlIHx8ICJTYW1tbHVuZyIgfSkpOwogICAgdmFyIGFjdHMgPSBlbCgi c3BhbiIsIHsgY2xhc3M6ICJsaW5rY29sLWFjdHMiIH0pOwogICAgaWYgKFAubGl2ZSAmJiBQLm9w ZW5MaW5rQ29sRWRpdG9yKSBhY3RzLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAi aWNvbi1taW5pIGVkaXQtb25seSIsIHRpdGxlOiAiTGlua3NhbW1sdW5nZW4gYmVhcmJlaXRlbiIs CiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgUC5vcGVuTGlua0NvbEVkaXRvcihpZCk7IH0s IGh0bWw6IGljKCJlZGl0IikgfSkpOwogICAgYWN0cy5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwg eyBjbGFzczogImljb24tbWluaSIsIHRpdGxlOiAiU2NobGllw59lbiAoRGllbnN0Z3J1cHBlIHp1 csO8Y2spIiwgaHRtbDogaWMoIngiKSwgb25jbGljazogUC5jbG9zZUxpbmtDb2wgfSkpOwogICAg aGVhZC5hcHBlbmRDaGlsZChhY3RzKTsKICAgIHJlbmRlckJvZHkoJCgiLmxpbmtjb2wtYm9keSIs IGJveCksIGlkKTsKICAgIGJveC5kYXRhc2V0LmNvbCA9IGlkOwogIH0KCiAgLy8gT2VmZm5ldCBl aW5lIFNhbW1sdW5nIGFuIFN0ZWxsZSBkZXIgRGllbnN0Z3J1cHBlIChyZWNodHMpLgogIFAub3Bl bkxpbmtDb2xsZWN0aW9uID0gZnVuY3Rpb24gKGlkKSB7CiAgICB2YXIgcGFuZWxzID0gJCgiI3Bh bmVscyIpOyBpZiAoIXBhbmVscykgcmV0dXJuOwogICAgaWYgKCFQLmNvbEJ5SWQoaWQpKSB7IFAu dG9hc3QoIkxpbmtzYW1tbHVuZyBuaWNodCBnZWZ1bmRlbi4iKTsgcmV0dXJuOyB9CiAgICBzdGFj ayA9IFtdOwogICAgdmFyIHJvcyA9IHBhbmVscy5xdWVyeVNlbGVjdG9yKCIucm9zdGVyIik7CiAg ICB2YXIgYm94ID0gJCgiI2xpbmtjb2wtaG9zdCIpOwogICAgaWYgKCFib3gpIHsKICAgICAgYm94 ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJwYW5lbCBsaW5rY29sIiwgaWQ6ICJsaW5rY29sLWhvc3Qi IH0sIFsKICAgICAgICBlbCgiZGl2IiwgeyBjbGFzczogInBhbmVsLWhlYWQgbGlua2NvbC1oZWFk IiB9KSwKICAgICAgICBlbCgiZGl2IiwgeyBjbGFzczogInFsLWdyaWQgbGlua2NvbC1ib2R5IiB9 KQogICAgICBdKTsKICAgICAgaWYgKHJvcykgcGFuZWxzLmluc2VydEJlZm9yZShib3gsIHJvcyk7 IGVsc2UgcGFuZWxzLmFwcGVuZENoaWxkKGJveCk7CiAgICAgIGJveC5hZGRFdmVudExpc3RlbmVy KCJtb3VzZW1vdmUiLCByZXNldElkbGUpOwogICAgICBib3guYWRkRXZlbnRMaXN0ZW5lcigiY2xp Y2siLCByZXNldElkbGUpOwogICAgICBib3guYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHJl c2V0SWRsZSk7CiAgICB9CiAgICBpZiAocm9zKSByb3Muc3R5bGUuZGlzcGxheSA9ICJub25lIjsg ICAvLyBEaWVuc3RncnVwcGUgKEEvQi9DKSB0ZW1wb3JhZXIgYXVzYmxlbmRlbgogICAgc2hvdyhp ZCk7CiAgICByZXNldElkbGUoKTsKICAgIFAuY2xvc2VNb2JpbGUgJiYgUC5jbG9zZU1vYmlsZSgp OwogIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tIEJhY2tlbmQtRWRpdG9yICovCiAgZnVuY3Rpb24gdWlkKCkgeyByZXR1 cm4gUC51aWQgPyBQLnVpZCgiY29sIikgOiAoImNvbC0iICsgRGF0ZS5ub3coKS50b1N0cmluZygz NikpOyB9CiAgZnVuY3Rpb24gbW92ZShhcnIsIGksIGQpIHsgdmFyIGogPSBpICsgZDsgaWYgKGog PCAwIHx8IGogPj0gYXJyLmxlbmd0aCkgcmV0dXJuIGZhbHNlOyB2YXIgeCA9IGFyci5zcGxpY2Uo aSwgMSlbMF07IGFyci5zcGxpY2UoaiwgMCwgeCk7IHJldHVybiB0cnVlOyB9CgogIFAub3Blbkxp bmtDb2xFZGl0b3IgPSBmdW5jdGlvbiAoZm9jdXNJZCkgewogICAgaWYgKCFQLmxpdmUpIHsgUC50 b2FzdCgiQmVhcmJlaXRlbiBudXIgaW0gUGZsZWdlLU1vZHVzLiIpOyByZXR1cm47IH0KICAgIHZh ciBXID0gUC5jbG9uZShQLmNvbnRlbnQubGlua2NvbHMgfHwgW10pOwogICAgdmFyIGhvc3QgPSBu dWxsOwogICAgZnVuY3Rpb24gcmVyZW5kZXIoKSB7IGlmIChob3N0KSB7IGhvc3QuaW5uZXJIVE1M ID0gIiI7IGJ1aWxkKGhvc3QpOyB9IH0KICAgIGZ1bmN0aW9uIGNvbE9wdHMoZXhjZXB0SWQpIHsK ICAgICAgdmFyIG8gPSBbWyIiLCAi4oCUIGtlaW5lIOKAlCJdXTsKICAgICAgVy5mb3JFYWNoKGZ1 bmN0aW9uIChjKSB7IGlmIChjLmlkICE9PSBleGNlcHRJZCkgby5wdXNoKFsiY29sOiIgKyBjLmlk LCAi4oaSIFNhbW1sdW5nOiAiICsgKGMudGl0bGUgfHwgYy5pZCldKTsgfSk7CiAgICAgIHJldHVy biBvOwogICAgfQogICAgZnVuY3Rpb24gbGlua1Jvdyhjb2wsIGwsIGxpKSB7CiAgICAgIHZhciBs YmwgPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJ0ZXh0IiwgY2xhc3M6ICJyZS1yb2xlIiwgdmFsdWU6 IGwubGFiZWwgfHwgIiIsIHBsYWNlaG9sZGVyOiAiQmV6ZWljaG51bmciLCBvbmlucHV0OiBmdW5j dGlvbiAoKSB7IGwubGFiZWwgPSB0aGlzLnZhbHVlOyB9IH0pOwogICAgICB2YXIgaHJlZiA9IGVs KCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCBjbGFzczogInJlLW5hbWUiLCB2YWx1ZTogKGNvbE9m KGwpID8gIiIgOiAobC5ocmVmIHx8ICIiKSksIHBsYWNlaG9sZGVyOiAiWmllbCAoVVJMIC8gUGZh ZCAvIHBvcnRhbDo8aWQ+KSIsIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgbC5ocmVmID0gdGhpcy52 YWx1ZTsgZGVsZXRlIGwuY29sOyB9IH0pOwogICAgICB2YXIgbW9kZSA9IGVsKCJzZWxlY3QiLCB7 IGNsYXNzOiAibGMtbW9kZSIsIG9uY2hhbmdlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIHYg PSB0aGlzLnZhbHVlOwogICAgICAgIGlmICh2LmluZGV4T2YoImNvbDoiKSA9PT0gMCkgeyBsLmhy ZWYgPSB2OyBkZWxldGUgbC50YXJnZXQ7IGhyZWYuZGlzYWJsZWQgPSB0cnVlOyBocmVmLnZhbHVl ID0gIiI7IH0KICAgICAgICBlbHNlIHsgbC50YXJnZXQgPSB2OyBocmVmLmRpc2FibGVkID0gZmFs c2U7IGlmICgvXmNvbDovLnRlc3QobC5ocmVmIHx8ICIiKSkgbC5ocmVmID0gIiI7IH0KICAgICAg fSB9KTsKICAgICAgdmFyIGN1ciA9IGNvbE9mKGwpID8gImNvbDoiICsgY29sT2YobCkgOiAobC50 YXJnZXQgfHwgImNvbnRlbnQiKTsKICAgICAgW1siY29udGVudCIsICJNaXR0ZSJdLCBbIl9ibGFu ayIsICJuZXVlciBUYWIiXSwgWyJtb2RhbCIsICJNb2RhbCJdXS5jb25jYXQoY29sT3B0cyhjb2wu aWQpKS5mb3JFYWNoKGZ1bmN0aW9uIChvKSB7CiAgICAgICAgdmFyIG9wID0gZWwoIm9wdGlvbiIs IHsgdmFsdWU6IG9bMF0sIHRleHQ6IG9bMV0gfSk7IGlmIChvWzBdID09PSBjdXIpIG9wLnNlbGVj dGVkID0gdHJ1ZTsgbW9kZS5hcHBlbmRDaGlsZChvcCk7CiAgICAgIH0pOwogICAgICBpZiAoY29s T2YobCkpIGhyZWYuZGlzYWJsZWQgPSB0cnVlOwogICAgICB2YXIgZGVsID0gZWwoImJ1dHRvbiIs IHsgY2xhc3M6ICJudi1taW5pIiwgdGl0bGU6ICJMaW5rIGVudGZlcm5lbiIsIGh0bWw6IGljKCJ0 cmFzaCIpLCBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IGNvbC5saW5rcy5zcGxpY2UobGksIDEpOyBy ZXJlbmRlcigpOyB9IH0pOwogICAgICB2YXIgdXAgPSBlbCgiYnV0dG9uIiwgeyBjbGFzczogIm52 LW1pbmkiLCB0aXRsZTogImhvY2giLCB0ZXh0OiAi4payIiwgb25jbGljazogZnVuY3Rpb24gKCkg eyBpZiAobW92ZShjb2wubGlua3MsIGxpLCAtMSkpIHJlcmVuZGVyKCk7IH0gfSk7CiAgICAgIHZh ciBkbiA9IGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYtbWluaSIsIHRpdGxlOiAicnVudGVyIiwg dGV4dDogIuKWvCIsIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgaWYgKG1vdmUoY29sLmxpbmtzLCBs aSwgMSkpIHJlcmVuZGVyKCk7IH0gfSk7CiAgICAgIHJldHVybiBlbCgiZGl2IiwgeyBjbGFzczog InJlLXJvdyBsYy1yb3ciIH0sIFtsYmwsIGhyZWYsIG1vZGUsIGVsKCJzcGFuIiwgeyBjbGFzczog InJlLWFjdHMiIH0sIFt1cCwgZG4sIGRlbF0pXSk7CiAgICB9CiAgICBmdW5jdGlvbiBjb2xFbChj b2wsIGNpKSB7CiAgICAgIHZhciB0ID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIGNsYXNz OiAicmUtc2VjLXRpdGxlIiwgdmFsdWU6IGNvbC50aXRsZSB8fCAiIiwgcGxhY2Vob2xkZXI6ICJU aXRlbCBkZXIgU2FtbWx1bmciLCBvbmlucHV0OiBmdW5jdGlvbiAoKSB7IGNvbC50aXRsZSA9IHRo aXMudmFsdWU7IH0gfSk7CiAgICAgIHZhciBhY3RzID0gZWwoInNwYW4iLCB7IGNsYXNzOiAicmUt YWN0cyIgfSk7CiAgICAgIGFjdHMuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJu di1taW5pIiwgdGl0bGU6ICJob2NoIiwgdGV4dDogIuKWsiIsIG9uY2xpY2s6IGZ1bmN0aW9uICgp IHsgaWYgKG1vdmUoVywgY2ksIC0xKSkgcmVyZW5kZXIoKTsgfSB9KSk7CiAgICAgIGFjdHMuYXBw ZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJudi1taW5pIiwgdGl0bGU6ICJydW50ZXIi LCB0ZXh0OiAi4pa8Iiwgb25jbGljazogZnVuY3Rpb24gKCkgeyBpZiAobW92ZShXLCBjaSwgMSkp IHJlcmVuZGVyKCk7IH0gfSkpOwogICAgICBhY3RzLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7 IGNsYXNzOiAibnYtbWluaSIsIHRpdGxlOiAiU2FtbWx1bmcgbMO2c2NoZW4iLCBodG1sOiBpYygi dHJhc2giKSwKICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IFAuY29uZmlybSgiU2FtbWx1 bmcg4oCeIiArIChjb2wudGl0bGUgfHwgIiIpICsgIuKAnCBsw7ZzY2hlbj8iLCBmdW5jdGlvbiAo KSB7IFcuc3BsaWNlKGNpLCAxKTsgcmVyZW5kZXIoKTsgfSwgeyBkYW5nZXI6IHRydWUgfSk7IH0g fSkpOwogICAgICB2YXIgaGVhZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicmUtc2VjLWhlYWQiIH0s IFtlbCgic3BhbiIsIHsgY2xhc3M6ICJtb25vIG11dGVkIiwgdGV4dDogY29sLmlkIH0pLCB0LCBh Y3RzXSk7CiAgICAgIHZhciByb3dzID0gZWwoImRpdiIsIHsgY2xhc3M6ICJyZS1yb3dzIiB9KTsK ICAgICAgKGNvbC5saW5rcyB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbiAobCwgbGkpIHsgcm93cy5h cHBlbmRDaGlsZChsaW5rUm93KGNvbCwgbCwgbGkpKTsgfSk7CiAgICAgIHZhciBhZGQgPSBlbCgi YnV0dG9uIiwgeyBjbGFzczogImJ0biBnaG9zdCByZS1hZGQiLCBodG1sOiBpYygicGx1cyIpICsg IiBMaW5rIiwKICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IChjb2wubGlua3MgPSBjb2wu bGlua3MgfHwgW10pLnB1c2goeyBsYWJlbDogIiIsIGhyZWY6ICIiLCB0YXJnZXQ6ICJjb250ZW50 IiB9KTsgcmVyZW5kZXIoKTsgfSB9KTsKICAgICAgcmV0dXJuIGVsKCJkaXYiLCB7IGNsYXNzOiAi cmUtc2VjIGxjLXNlYyIgfSwgW2hlYWQsIHJvd3MsIGFkZF0pOwogICAgfQogICAgZnVuY3Rpb24g YnVpbGQoYikgewogICAgICBiLmNsYXNzTGlzdC5hZGQoInJlLWJvZHkiKTsKICAgICAgYi5hcHBl bmRDaGlsZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHRleHQ6ICJTYW1tbHVuZ2Vu IGbDvHIgZGllIHJlY2h0ZSBTcGFsdGUuIEVpbiBRdWlja2xpbmsgw7ZmZm5ldCBlaW5lIFNhbW1s dW5nIMO8YmVyIFppZWwg4oCeY29sOjxpZD7igJwgKGluIGRlbiBTY2huZWxsenVncmlmZmVuIG9k ZXIgaGllciBhbHMg4oCe4oaSIFNhbW1sdW5n4oCcKS4gU2FtbWx1bmdlbiBrw7ZubmVuIHZlcnNj aGFjaHRlbHQgc2Vpbi4iIH0pKTsKICAgICAgVy5mb3JFYWNoKGZ1bmN0aW9uIChjLCBjaSkgeyBi LmFwcGVuZENoaWxkKGNvbEVsKGMsIGNpKSk7IH0pOwogICAgfQogICAgZnVuY3Rpb24gc2F2ZSgp IHsKICAgICAgVy5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7IGlmICghYy5pZCkgYy5pZCA9IHVpZCgp OyBjLmxpbmtzID0gKGMubGlua3MgfHwgW10pLmZpbHRlcihmdW5jdGlvbiAobCkgeyByZXR1cm4g KGwubGFiZWwgfHwgIiIpLnRyaW0oKSB8fCAobC5ocmVmIHx8ICIiKS50cmltKCkgfHwgY29sT2Yo bCk7IH0pOyB9KTsKICAgICAgUC5jb250ZW50Lmxpbmtjb2xzID0gVzsKICAgICAgUC5wZXJzaXN0 KCk7CiAgICAgIGlmIChQLnJlbmRlclBhbmVscykgUC5yZW5kZXJQYW5lbHMoKTsKICAgICAgdmFy IG9wZW4gPSAkKCIjbGlua2NvbC1ob3N0Iik7IGlmIChvcGVuICYmIG9wZW4uZGF0YXNldC5jb2wg JiYgUC5jb2xCeUlkKG9wZW4uZGF0YXNldC5jb2wpKSB7IHN0YWNrID0gW107IHNob3cob3Blbi5k YXRhc2V0LmNvbCk7IH0KICAgICAgUC50b2FzdCgiTGlua3NhbW1sdW5nZW4gZ2VzcGVpY2hlcnQi ICsgKFAubGl2ZSA/ICIgJiB2ZXLDtmZmZW50bGljaHQuIiA6ICIuIikpOwogICAgfQogICAgUC5t b2RhbCh7CiAgICAgIHRpdGxlOiAiTGlua3NhbW1sdW5nZW4iLCBpY29uOiAiZ3JpZCIsIHNpemU6 ICJsZyIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uIChiKSB7IGhvc3QgPSBiOyBidWlsZChiKTsgfSwK ICAgICAgYWN0aW9uczogWwogICAgICAgIHsgbGFiZWw6ICJTYW1tbHVuZyIsIGtpbmQ6ICJnaG9z dCIsIGljb246ICJwbHVzIiwgYWxpZ246ICJsZWZ0Iiwga2VlcE9wZW46IHRydWUsCiAgICAgICAg ICBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IFcucHVzaCh7IGlkOiB1aWQoKSwgdGl0bGU6ICIiLCBs aW5rczogW10gfSk7IHJlcmVuZGVyKCk7IH0gfSwKICAgICAgICB7IGxhYmVsOiAiQWJicmVjaGVu Iiwga2luZDogImdob3N0IiB9LAogICAgICAgIHsgbGFiZWw6ICJTcGVpY2hlcm4iLCBraW5kOiAi cHJpbWFyeSIsIG9uQ2xpY2s6IHNhdmUgfQogICAgICBdCiAgICB9KTsKICB9OwoKfSkod2luZG93 LlApOwo= ### FILE: assets/js/features/migrate-ui.js | 20849 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvbWlncmF0ZS11aS5q cwogICBBZG1pbi1NaWdyYXRpb25zLVBhbmVsOiBsaXN0ZXQgZGllIHZvbSBLb252ZXJ0ZXIgKGhl bGZlci9taWdyYXRlX2RvY3MucHkpCiAgIGVyemV1Z3RlbiBBbHQtRG9rdS1BcnRpa2VsIChHRVQg L2FwaS9taWdyYXRpb24pIHVuZCB1ZWJlcm5pbW10IHNpZQogICBJTi1QTEFDRSBpbiBkZW4gTmF2 LUJhdW0g4oCUIGRlciBiZXN0ZWhlbmRlIGhyZWYtS25vdGVuLCBkZXIgYXVmIGRpZQogICBRdWVs bC0uaHRtIHplaWd0LCB3aXJkIGFtIHNlbGJlbiBQbGF0eiB6dW0gZWRpdGllcmJhcmVuIEFydGlr ZWwuCgogICBBYmxhdWYgamUgRG9rdW1lbnQ6IFZvcnNjaGF1IGFuc2VoZW4gLT4gImltIEVkaXRv ciBvZWZmbmVuIiAtPiBkZXIgbm9ybWFsZQogICBBcnRpa2VsLUVkaXRvciAoVGlueU1DRSArIFAu c2FuaXRpemVIdG1sKSAtPiB2ZXJvZWZmZW50bGljaGVuICgvYXBpL3B1Ymxpc2gpLgoKICAgTWVo cmZhY2gtVmVyd2Vpc2U6IHplaWd0IGVpbmUgUXVlbGxkYXRlaSB2b24gbWVocmVyZW4gTmF2LVN0 ZWxsZW4sIHdpcmQgZGllCiAgIGVyc3RlIHp1bSBBcnRpa2VsIHVuZCBkaWUgd2VpdGVyZW4gd2Vy ZGVuIGF1dG9tYXRpc2NoIHp1IEFsaWFzLVZlcndlaXNlbgogICAoe3JlZjo8aWQ+fSwgUC5yZXNv bHZlUmVmKSBhdWYgZGVuc2VsYmVuIEFydGlrZWwg4oCUIGFsbGUgTWVudWVwdW5rdGUgYmxlaWJl bgogICBrb25zaXN0ZW50LiBNYW51ZWxsZXIgWmllbC1QaWNrZXIgKFAub3Blbk5hdlBpY2tlcikg ZnVlciBNYXRjaGVyLUZlaGxzY2hsYWVnZQogICBvZGVyIGJld3Vzc3RlIFVtaGFlbmd1bmcuCgog ICBTYW5pdGl6ZXItVmVyaGFlbHRuaXMgKEFsbG93bGlzdC1EcmlmdCk6IG1pZ3JhdGVfZG9jcy5w eSByZWluaWd0IFZPUgogICAoZWlnZW5lIFRBR19NQVApOyBNQVNTR0VCTElDSCBpc3QgZGVyIEJy b3dzZXItU2FuaXRpemVyIFAuc2FuaXRpemVIdG1sCiAgIChuYXYuanMsIEFMTE9XRUQpLCBkZXIg YmVpbSBMYWRlbiBpbiBkZW4gRWRpdG9yLCBiZWltIFNwZWljaGVybiBVTkQgYmVpbQogICBSZW5k ZXJuIGVybmV1dCBncmVpZnQuIERyaWZ0ZW4gZGllIExpc3RlbiwgZ2V3aW5udCBkZXIgQnJvd3Nl ciAoa2FwcHQgenUKICAgdmllbCBEdXJjaGdlbGFzc2VuZXMpIOKAlCBrZWluIFNpY2hlcmhlaXRz cmlzaWtvLCBob2VjaHN0ZW5zIGZlaGxlbmRlIFRhZ3MuCgogICBBZG1pbi0vTGl2ZS1vbmx5IChy dWZ0IC9hcGkvKikuIExlc2VyIChmaWxlOi8vKSBzZWhlbiBkYXMgUGFuZWwgbmllLgogICBLbGFz c2lzY2hlcyA8c2NyaXB0Piwga2VpbmUgRVMtTW9kdWxlLiBMYWVkdCBuYWNoIGFydGljbGUuanMv Y29tbWFuZHMuanMsCiAgIHZvciBtYWluLmpzLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKGZ1bmN0aW9u IChQKSB7CiAgInVzZSBzdHJpY3QiOwogIHZhciBlbCA9IFAuZWwsIGljID0gUC5pYzsKCiAgLy8g LS0tIFBmYWQtTm9ybWFsaXNpZXJ1bmc6IE1pZ3JhdGlvbi1zb3VyY2UgPC0+IE5hdi1ocmVmIHZl cmdsZWljaGJhciBtYWNoZW4uCiAgZnVuY3Rpb24gbm9ybVBhdGgocCkgewogICAgcCA9IFN0cmlu ZyhwIHx8ICIiKTsKICAgIHRyeSB7IHAgPSBkZWNvZGVVUklDb21wb25lbnQocCk7IH0gY2F0Y2gg KGUpIHt9CiAgICBwID0gcC5zcGxpdCgiIyIpWzBdLnNwbGl0KCI/IilbMF07ICAgICAvLyBGcmFn bWVudC9RdWVyeSB3ZWcKICAgIHAgPSBwLnJlcGxhY2UoL1xcL2csICIvIik7ICAgICAgICAgICAg IC8vIEJhY2tzbGFzaCAtPiBTbGFzaAogICAgcCA9IHAucmVwbGFjZSgvXlwuXC8vLCAiIik7ICAg ICAgICAgICAvLyBmdWVocmVuZGVzIC4vCiAgICBwID0gcC5yZXBsYWNlKC9cL3syLH0vZywgIi8i KTsgICAgICAgIC8vIGRvcHBlbHRlIFNsYXNoZXMKICAgIHJldHVybiBwLnRvTG93ZXJDYXNlKCk7 ICAgICAgICAgICAgICAgIC8vIFNoYXJlIGlzdCBjYXNlLWluc2Vuc2l0aXZlCiAgfQogIGZ1bmN0 aW9uIG5vRXh0KHApIHsgcmV0dXJuIHAucmVwbGFjZSgvXC5odG1sPyQvLCAiIik7IH0KCiAgLy8g QUxMRSBocmVmLUtub3RlbiBqZSBub3JtYWxpc2llcnRlbSBQZmFkIChMaXN0ZSkg4oCUIGtlaW5l IEFsaWFzc2UsIGtlaW5lIEFydGlrZWwuCiAgZnVuY3Rpb24gaHJlZk1hcCgpIHsKICAgIHZhciBl eGFjdCA9IHt9LCBieUJhc2UgPSB7fSwgbWlncmF0ZWQgPSB7fTsKICAgIFAuZWFjaE5hdkl0ZW0o ZnVuY3Rpb24gKGl0KSB7CiAgICAgIGlmIChpdC5oZWFkaW5nIHx8IGl0LnJlZikgcmV0dXJuOwog ICAgICBpZiAoaXQuX21pZ1NvdXJjZSkgbWlncmF0ZWRbbm9ybVBhdGgoaXQuX21pZ1NvdXJjZSld ID0gaXQ7ICAgLy8gbWlncmllcnRlciBLbm90ZW4gKEFydGlrZWwgT0RFUiBPcmRuZXIpCiAgICAg IGlmIChpdC5hcnRpY2xlIHx8IGl0LmZvbGRlcikgcmV0dXJuOyAgICAgICAgICAvLyBiZXJlaXRz IG1pZ3JpZXJ0IC0+IG5pY2h0IG1laHIgYWxzIG9mZmVuZXMgaHJlZi1aaWVsCiAgICAgIGlmICgh aXQuaHJlZikgcmV0dXJuOwogICAgICB2YXIgbiA9IG5vcm1QYXRoKGl0LmhyZWYpOwogICAgICAo ZXhhY3Rbbl0gfHwgKGV4YWN0W25dID0gW10pKS5wdXNoKGl0KTsKICAgICAgdmFyIGIgPSBub0V4 dChuKTsKICAgICAgKGJ5QmFzZVtiXSB8fCAoYnlCYXNlW2JdID0gW10pKS5wdXNoKGl0KTsgICAv LyBGYWxsYmFjayAuaHRtIDwtPiAuaHRtbAogICAgfSk7CiAgICByZXR1cm4geyBleGFjdDogZXhh Y3QsIGJ5QmFzZTogYnlCYXNlLCBtaWdyYXRlZDogbWlncmF0ZWQgfTsKICB9CiAgZnVuY3Rpb24g bWF0Y2hOYXZzKG1hcHMsIHNvdXJjZSkgewogICAgdmFyIG4gPSBub3JtUGF0aChzb3VyY2UpOwog ICAgaWYgKG1hcHMuZXhhY3Rbbl0pIHJldHVybiBtYXBzLmV4YWN0W25dLnNsaWNlKCk7CiAgICBp ZiAobWFwcy5ieUJhc2Vbbm9FeHQobildKSByZXR1cm4gbWFwcy5ieUJhc2Vbbm9FeHQobildLnNs aWNlKCk7CiAgICBpZiAobWFwcy5taWdyYXRlZFtuXSkgcmV0dXJuIFttYXBzLm1pZ3JhdGVkW25d XTsgICAvLyBzY2hvbiBtaWdyaWVydCAtPiBTdGF0dXMgIm1pZ3JpZXJ0IgogICAgcmV0dXJuIFtd OwogIH0KICBmdW5jdGlvbiBzdGF0dXNPZihpdGVtKSB7CiAgICB2YXIgcHJpbWFyeSA9IGl0ZW0u X25hdnNbMF07CiAgICBpZiAoIXByaW1hcnkpIHJldHVybiAibm9UYXJnZXQiOwogICAgaWYgKHBy aW1hcnkuYXJ0aWNsZSAmJiAhcHJpbWFyeS5ocmVmKSByZXR1cm4gImRvbmUiOyAgIC8vIGJlcmVp dHMgdWViZXJub21tZW4gKEFydGlrZWwpCiAgICBpZiAocHJpbWFyeS5mb2xkZXIpIHJldHVybiAi ZG9uZSI7ICAgICAgICAgICAgICAgICAgICAgLy8gYmVyZWl0cyB1ZWJlcm5vbW1lbiAoT3JkbmVy LUtub3RlbikKICAgIHJldHVybiAib3BlbiI7CiAgfQogIC8vIFJlaW5lIGlmcmFtZS9SZWRpcmVj dC0vTGVlci1Eb2t1bWVudGUgLT4ga2VpbiBQcm9zYS1BcnRpa2VsLgogIGZ1bmN0aW9uIGlzVGhp bihpdGVtKSB7CiAgICByZXR1cm4gaXRlbS5raW5kID09PSAidGhpbiIgfHwgKGl0ZW0ud2Fybmlu Z3MgfHwgW10pLnNvbWUoZnVuY3Rpb24gKHcpIHsgcmV0dXJuIC93ZW5pZyBUZXh0L2kudGVzdCh3 KTsgfSk7CiAgfQogIGZ1bmN0aW9uIGlzRm9sZGVyKGl0ZW0pIHsgcmV0dXJuIGl0ZW0ua2luZCA9 PT0gImZvbGRlciIgJiYgISFpdGVtLmZvbGRlcjsgfQogIC8vIEZ1ZXIgZGllIFN0YXBlbC1VZWJl cm5haG1lOiBOVVIgZWNodGUgUHJvc2EtQXJ0aWtlbCDigJQgb2ZmZW5lIFRyZWZmZXIgbWl0IFpp ZWwsIE9ITkUgV2FybnVuZywKICAvLyBuaWNodCBkdWVubi9PcmRuZXIvUmVkaXJlY3QvTGlua2xp c3RlIChkaWUgaGFiZW4gZWlnZW5lIFVlYmVybmFobWUtUGZhZGUpLgogIGZ1bmN0aW9uIGVsaWdp YmxlKGl0KSB7CiAgICByZXR1cm4gaXQuX3N0YXR1cyA9PT0gIm9wZW4iICYmIGl0Ll9uYXYgJiYg KGl0LmtpbmQgPT09ICJhcnRpY2xlIiB8fCAhaXQua2luZCkgJiYKICAgICAgICAgICAhaXNUaGlu KGl0KSAmJiAhKGl0Lndhcm5pbmdzICYmIGl0Lndhcm5pbmdzLmxlbmd0aCk7CiAgfQogIC8vIFdl aXRlcmUgTmF2LVN0ZWxsZW4gZGVyc2VsYmVuIFF1ZWxsZSB6dSB7cmVmfS1BbGlhc3NlbiBhdWYg ZGVuIG1pZ3JpZXJ0ZW4gS25vdGVuIG1hY2hlbi4KICBmdW5jdGlvbiBhbGlhc1NpYmxpbmdzKGl0 ZW0sIG5vZGUpIHsKICAgIGlmICghaXRlbSB8fCAhaXRlbS5fbmF2cyB8fCBpdGVtLl9uYXZzLmxl bmd0aCA8PSAxKSByZXR1cm4gMDsKICAgIGlmIChQLm5hdkVuc3VyZUlkcykgUC5uYXZFbnN1cmVJ ZHMoKTsKICAgIHZhciBleCA9IDA7CiAgICBpdGVtLl9uYXZzLnNsaWNlKDEpLmZvckVhY2goZnVu Y3Rpb24gKG4pIHsKICAgICAgaWYgKCFuIHx8IG4gPT09IG5vZGUpIHJldHVybjsKICAgICAgZGVs ZXRlIG4uaHJlZjsgZGVsZXRlIG4udGFyZ2V0OyBkZWxldGUgbi5jaGlsZHJlbjsKICAgICAgbi5y ZWYgPSBub2RlLl9pZDsgZXgrKzsKICAgIH0pOwogICAgcmV0dXJuIGV4OwogIH0KCiAgLy8gUGFu ZWwtWnVzdGFuZCAoZWluZSBvZmZlbmUgSW5zdGFueik6IGhvc3QgKyBnZWxhZGVuZSBJdGVtcyAr IGFrdGl2ZXMgSXRlbS4KICB2YXIgc3RhdGUgPSBudWxsOwoKICBQLm9wZW5NaWdyYXRpb25QYW5l bCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICghUC5saXZlKSB7CiAgICAgIFAubW9kYWwoeyB0aXRs ZTogIkFsdC1Eb2t1LU1pZ3JhdGlvbiIsIGljb246ICJhcnRpY2xlIiwgc2l6ZTogIm1kIiwKICAg ICAgICBib2R5OiBmdW5jdGlvbiAoaG9zdCkgeyBob3N0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7 IGNsYXNzOiAibGMtaGludCBtdXRlZCIsCiAgICAgICAgICB0ZXh0OiAiRGllIE1pZ3JhdGlvbiBp c3QgbnVyIGltIFBmbGVnZS1Nb2R1cyAoSGVsZmVyKSB2ZXJmw7xnYmFyLiIgfSkpOyB9LAogICAg ICAgIGFjdGlvbnM6IFt7IGxhYmVsOiAiU2NobGllc3NlbiIsIGtpbmQ6ICJnaG9zdCIgfV0gfSk7 CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChQLmxvYWRFZGl0b3IpIFAubG9hZEVkaXRvcigp OyAgIC8vIFRpbnlNQ0Ugdm9ybGFkZW4gLT4gRWRpdG9yIGlzdCBzb2ZvcnQgYmVyZWl0CiAgICAv LyBOYWNoIGVyZm9sZ3JlaWNoZXIgSW4tUGxhY2UtTWlncmF0aW9uOiBNZWhyZmFjaC1WZXJ3ZWlz ZSBhbHMgQWxpYXMgdmVya251ZXBmZW4gKyBMaXN0ZSBhdWZmcmlzY2hlbi4KICAgIGZ1bmN0aW9u IG9uRG9uZShub2RlKSB7CiAgICAgIGlmICghc3RhdGUpIHJldHVybjsKICAgICAgdmFyIGl0ID0g c3RhdGUucGVuZGluZ0l0ZW07CiAgICAgIGlmIChpdCAmJiBub2RlKSB7CiAgICAgICAgLy8gX21p Z1NvdXJjZSBzZXR6dCBkZXIgRWRpdG9yLVBmYWQgemVudHJhbCAoYXJ0aWNsZS5qcywgYXVzIGFy dC5zcmMpIC0+IGhpZXIgbmljaHQgZG9wcGVsbi4KICAgICAgICB2YXIgZXh0cmEgPSAoaXQuX25h dnMgJiYgaXQuX25hdnNbMF0gPT09IG5vZGUpID8gYWxpYXNTaWJsaW5ncyhpdCwgbm9kZSkgOiAw OwogICAgICAgIFAucGVyc2lzdE5hdigpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIF9taWdTb3VyY2UgKyBnZ2YuIEFsaWFzc2UgbWl0LXZlcm9lZmZlbnRsaWNoZW4gKERlYm91 bmNlIC0+IDEgUHVibGlzaCkKICAgICAgICBpZiAoUC5idWlsZEluZGV4KSBQLmJ1aWxkSW5kZXgo KTsKICAgICAgICBpZiAoUC5yZW5kZXJTaWRlYmFyKSBQLnJlbmRlclNpZGViYXIoKTsKICAgICAg ICBpZiAoZXh0cmEpIFAudG9hc3QoIkhhdXB0a25vdGVuIG1pZ3JpZXJ0IMK3ICIgKyBleHRyYSAr ICIgd2VpdGVyZSBhbHMgVmVyd2VpcyB2ZXJrbsO8cGZ0LiIpOwogICAgICB9CiAgICAgIHN0YXRl LnBlbmRpbmdJdGVtID0gbnVsbDsKICAgICAgcmVjb21wdXRlKCk7IHBhaW50KCk7CiAgICB9CiAg ICB2YXIgYXBpID0gUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiQWx0LURva3UtTWlncmF0aW9uIiwg aWNvbjogImFydGljbGUiLCBzaXplOiAieGwiLAogICAgICBib2R5OiBmdW5jdGlvbiAoaG9zdCkg eyBzdGF0ZSA9IHsgaG9zdDogaG9zdCwgaXRlbXM6IG51bGwsIHBlbmRpbmdJdGVtOiBudWxsLCBz ZWw6IHt9LCBmaWx0ZXI6IHsgc3RhdHVzOiAiIiwgdHlwZTogIiIsIHE6ICIiIH0gfTsgbG9hZCgp OyB9LAogICAgICBhY3Rpb25zOiBbeyBsYWJlbDogIlNjaGxpZXNzZW4iLCBraW5kOiAiZ2hvc3Qi IH1dLAogICAgICBvbkNsb3NlOiBmdW5jdGlvbiAoKSB7IGlmIChQLm9mZikgUC5vZmYoIm1pZ3Jh dGlvbjpkb25lIiwgb25Eb25lKTsgc3RhdGUgPSBudWxsOyB9CiAgICB9KTsKICAgIGlmIChQLm9u KSBQLm9uKCJtaWdyYXRpb246ZG9uZSIsIG9uRG9uZSk7CiAgfTsKCiAgZnVuY3Rpb24gbG9hZCgp IHsKICAgIHZhciBob3N0ID0gc3RhdGUuaG9zdDsgaG9zdC5pbm5lckhUTUwgPSAiIjsKICAgIGhv c3QuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJsYy1zdW0iIH0sIFtlbCgiZGl2Iiwg eyBjbGFzczogImxjLXN1bS10IiwgaHRtbDogIkxhZGUga29udmVydGllcnRlIERva3VtZW50ZSDi gKYiIH0pXSkpOwogICAgZmV0Y2goIi9hcGkvbWlncmF0aW9uIiwgeyBjYWNoZTogIm5vLXN0b3Jl IiB9KS50aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiByLmpzb24oKTsgfSkudGhlbihmdW5jdGlv biAocmVzKSB7CiAgICAgIGlmICghc3RhdGUpIHJldHVybjsKICAgICAgc3RhdGUuaXRlbXMgPSAo cmVzICYmIHJlcy5pdGVtcykgfHwgW107CiAgICAgIHJlY29tcHV0ZSgpOyBidWlsZFNoZWxsKCk7 CiAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7CiAgICAgIGlmICghc3RhdGUpIHJldHVybjsKICAg ICAgc3RhdGUuaG9zdC5pbm5lckhUTUwgPSAiIjsKICAgICAgc3RhdGUuaG9zdC5hcHBlbmRDaGls ZChlbCgiZGl2IiwgeyBjbGFzczogImxjLXN1bS10IiwgdGV4dDogIktvbm50ZSAvYXBpL21pZ3Jh dGlvbiBuaWNodCBsYWRlbi4iIH0pKTsKICAgIH0pOwogIH0KCiAgLy8gVHJlZmZlciArIFN0YXR1 cyBnZWdlbiBkZW4gTElWRS1OYXYtQmF1bSAobmV1KSBiZXJlY2huZW4uIE1hbnVlbGwgenVnZXdp ZXNlbmUKICAvLyBaaWVsZSAoX21hbnVhbCkgaGFiZW4gVm9ycmFuZyB2b3IgZGVtIGF1dG9tYXRp c2NoZW4gUGZhZC1NYXRjaGluZy4KICBmdW5jdGlvbiByZWNvbXB1dGUoKSB7CiAgICBpZiAoIXN0 YXRlIHx8ICFzdGF0ZS5pdGVtcykgcmV0dXJuOwogICAgdmFyIG1hcHMgPSBocmVmTWFwKCk7CiAg ICBzdGF0ZS5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChpdCkgewogICAgICBpdC5fbmF2cyA9IGl0 Ll9tYW51YWwgPyBbaXQuX21hbnVhbF0gOiBtYXRjaE5hdnMobWFwcywgaXQuc291cmNlKTsKICAg ICAgaXQuX25hdiA9IGl0Ll9uYXZzWzBdIHx8IG51bGw7CiAgICAgIGl0Ll9zdGF0dXMgPSBzdGF0 dXNPZihpdCk7CiAgICB9KTsKICB9CgogIC8vIC0tLSBWb3JmaWx0ZXIgKFN0YXR1cyAvIFR5cCAv IFRleHRzdWNoZSkgLS0tCiAgZnVuY3Rpb24gbWF0Y2hUeXBlKGl0LCB0eXBlKSB7CiAgICBpZiAo IXR5cGUpIHJldHVybiB0cnVlOwogICAgaWYgKHR5cGUgPT09ICJsaW5rbGlzdCIpIHJldHVybiBp dC5raW5kID09PSAibGlua2xpc3QiOwogICAgaWYgKHR5cGUgPT09ICJmb2xkZXIiKSByZXR1cm4g aXNGb2xkZXIoaXQpOwogICAgaWYgKHR5cGUgPT09ICJyZWRpcmVjdCIpIHJldHVybiBpdC5raW5k ID09PSAicmVkaXJlY3QiOwogICAgaWYgKHR5cGUgPT09ICJ0aGluIikgcmV0dXJuIGlzVGhpbihp dCk7CiAgICBpZiAodHlwZSA9PT0gInRhYmxlIikgcmV0dXJuIGl0LnN0YXRzICYmIGl0LnN0YXRz LnRhYmxlID4gMDsKICAgIGlmICh0eXBlID09PSAid2FybiIpIHJldHVybiBpdC53YXJuaW5ncyAm JiBpdC53YXJuaW5ncy5sZW5ndGggPiAwOwogICAgaWYgKHR5cGUgPT09ICJ2c25mZCIpIHJldHVy biBpdC5jbGFzc2lmaWNhdGlvbiA9PT0gIlZTLU5mRCI7CiAgICBpZiAodHlwZSA9PT0gIm5mZCIp IHJldHVybiBpdC5jbGFzc2lmaWNhdGlvbiA9PT0gIk5mRCI7CiAgICByZXR1cm4gdHJ1ZTsKICB9 CiAgZnVuY3Rpb24gZmlsdGVyZWQoKSB7CiAgICB2YXIgZiA9IHN0YXRlLmZpbHRlciwgcSA9IChm LnEgfHwgIiIpLnRvTG93ZXJDYXNlKCk7CiAgICByZXR1cm4gKHN0YXRlLml0ZW1zIHx8IFtdKS5m aWx0ZXIoZnVuY3Rpb24gKGl0KSB7CiAgICAgIGlmIChmLnN0YXR1cyAmJiBpdC5fc3RhdHVzICE9 PSBmLnN0YXR1cykgcmV0dXJuIGZhbHNlOwogICAgICBpZiAoIW1hdGNoVHlwZShpdCwgZi50eXBl KSkgcmV0dXJuIGZhbHNlOwogICAgICBpZiAocSAmJiAoKGl0LnRpdGxlIHx8ICIiKSArICIgIiAr IChpdC5zb3VyY2UgfHwgIiIpKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YocSkgPCAwKSByZXR1cm4g ZmFsc2U7CiAgICAgIHJldHVybiB0cnVlOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIGNoaXAobGFi ZWwsIGdyb3VwLCB2YWwpIHsKICAgIHZhciBhY3RpdmUgPSBzdGF0ZS5maWx0ZXJbZ3JvdXBdID09 PSB2YWwgfHwgKCF2YWwgJiYgIXN0YXRlLmZpbHRlcltncm91cF0pOwogICAgcmV0dXJuIGVsKCJi dXR0b24iLCB7IGNsYXNzOiAiYnRuICIgKyAoYWN0aXZlID8gInRpbnRlZCIgOiAiZ2hvc3QiKSAr ICIgbWlnLWNoaXAiLCB0eXBlOiAiYnV0dG9uIiwgdGV4dDogbGFiZWwsCiAgICAgIG9uY2xpY2s6 IGZ1bmN0aW9uICgpIHsgc3RhdGUuZmlsdGVyW2dyb3VwXSA9IHZhbDsgcGFpbnQoKTsgfSB9KTsK ICB9CgogIC8vIEdydW5kZ2VydWVzdCBlaW5tYWwgYXVmYmF1ZW4gKFN1Y2hmZWxkIGJsZWlidCBl cmhhbHRlbiAtPiBGb2t1cyBnZWh0IGJlaW0gVGlwcGVuIG5pY2h0IHZlcmxvcmVuKS4KICBmdW5j dGlvbiBidWlsZFNoZWxsKCkgewogICAgdmFyIGhvc3QgPSBzdGF0ZS5ob3N0OyBob3N0LmlubmVy SFRNTCA9ICIiOwogICAgc3RhdGUuYmFyRWwgPSBlbCgiZGl2IiwgeyBjbGFzczogIm1pZy1maWx0 ZXIiIH0pOwogICAgc3RhdGUuc2VhcmNoRWwgPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJzZWFyY2gi LCBjbGFzczogIm1pZy1zZWFyY2giLCBwbGFjZWhvbGRlcjogIlN1Y2hlbiAoVGl0ZWwvUXVlbGxl KeKApiIsCiAgICAgIHZhbHVlOiBzdGF0ZS5maWx0ZXIucSB8fCAiIiwgb25pbnB1dDogZnVuY3Rp b24gKCkgeyBzdGF0ZS5maWx0ZXIucSA9IHRoaXMudmFsdWU7IHBhaW50KCk7IH0gfSk7CiAgICBz dGF0ZS5idWxrRWwgPSBlbCgiZGl2IiwgeyBjbGFzczogIm1pZy1idWxrIiB9KTsKICAgIHN0YXRl LnN1bUVsID0gZWwoImRpdiIsIHsgY2xhc3M6ICJsYy1zdW0iIH0pOwogICAgc3RhdGUubGlzdEVs ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJsYy1saXN0IiB9KTsKICAgIGhvc3QuYXBwZW5kQ2hpbGQo c3RhdGUuYmFyRWwpOyBob3N0LmFwcGVuZENoaWxkKHN0YXRlLnNlYXJjaEVsKTsgaG9zdC5hcHBl bmRDaGlsZChzdGF0ZS5idWxrRWwpOwogICAgaG9zdC5hcHBlbmRDaGlsZChzdGF0ZS5zdW1FbCk7 IGhvc3QuYXBwZW5kQ2hpbGQoc3RhdGUubGlzdEVsKTsKICAgIHBhaW50KCk7CiAgfQogIGZ1bmN0 aW9uIHBhaW50QmFyKCkgewogICAgdmFyIGJhciA9IHN0YXRlLmJhckVsOyBiYXIuaW5uZXJIVE1M ID0gIiI7CiAgICBbWyJBbGxlIiwgIiJdLCBbIm9mZmVuIiwgIm9wZW4iXSwgWyJtaWdyaWVydCIs ICJkb25lIl0sIFsia2VpbiBaaWVsIiwgIm5vVGFyZ2V0Il1dLmZvckVhY2goZnVuY3Rpb24gKGMp IHsgYmFyLmFwcGVuZENoaWxkKGNoaXAoY1swXSwgInN0YXR1cyIsIGNbMV0pKTsgfSk7CiAgICBi YXIuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAibWlnLXNlcCIgfSkpOwogICAgW1si YWxsZSBUeXBlbiIsICIiXSwgWyJPcmRuZXIiLCAiZm9sZGVyIl0sIFsiVmVyd2VpcyIsICJyZWRp cmVjdCJdLCBbIkxpbmtsaXN0ZSIsICJsaW5rbGlzdCJdLCBbIlRhYmVsbGUiLCAidGFibGUiXSwg WyJkw7xubiIsICJ0aGluIl0sIFsiV2FybnVuZyIsICJ3YXJuIl0sIFsiVlMtTmZEIiwgInZzbmZk Il0sIFsiTmZEIiwgIm5mZCJdXS5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7IGJhci5hcHBlbmRDaGls ZChjaGlwKGNbMF0sICJ0eXBlIiwgY1sxXSkpOyB9KTsKICB9CiAgLy8gU3RhcGVsLUxlaXN0ZTog emVpZ3QgQXVzd2FobCArIEtub3BmLCBzb2JhbGQgd2FybnVuZ3NmcmVpZSBUcmVmZmVyIGFuZ2Vo YWt0IHNpbmQuCiAgZnVuY3Rpb24gcGFpbnRCdWxrKCkgewogICAgdmFyIGJhciA9IHN0YXRlLmJ1 bGtFbDsgaWYgKCFiYXIpIHJldHVybjsKICAgIHZhciBzZWwgPSAoc3RhdGUuaXRlbXMgfHwgW10p LmZpbHRlcihmdW5jdGlvbiAoaXQpIHsgcmV0dXJuIHN0YXRlLnNlbFtpdC5zbHVnXSAmJiBlbGln aWJsZShpdCk7IH0pOwogICAgYmFyLmlubmVySFRNTCA9ICIiOwogICAgaWYgKCFzZWwubGVuZ3Ro KSB7IGJhci5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyByZXR1cm47IH0KICAgIGJhci5zdHlsZS5k aXNwbGF5ID0gImZsZXgiOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczog ImxjLXN1bS10IiwgaHRtbDogIjxiPiIgKyBzZWwubGVuZ3RoICsgIjwvYj4gYXVzZ2V3w6RobHQg KHdhcm51bmdzZnJlaSkiIH0pKTsKICAgIGJhci5hcHBlbmRDaGlsZChidG4oInByaW1hcnkiLCAi Y2hlY2siLCAiQXVzd2FobCBtaWdyaWVyZW4iLCBidWxrTWlncmF0ZSkpOwogICAgYmFyLmFwcGVu ZENoaWxkKGJ0bigiZ2hvc3QiLCAieCIsICJBdXN3YWhsIGxlZXJlbiIsIGZ1bmN0aW9uICgpIHsg c3RhdGUuc2VsID0ge307IHBhaW50KCk7IH0pKTsKICB9CiAgZnVuY3Rpb24gYnVsa01pZ3JhdGUo KSB7CiAgICB2YXIgc2VsID0gKHN0YXRlLml0ZW1zIHx8IFtdKS5maWx0ZXIoZnVuY3Rpb24gKGl0 KSB7IHJldHVybiBzdGF0ZS5zZWxbaXQuc2x1Z10gJiYgZWxpZ2libGUoaXQpOyB9KTsKICAgIGlm ICghc2VsLmxlbmd0aCkgcmV0dXJuOwogICAgaWYgKCFjb25maXJtKHNlbC5sZW5ndGggKyAiIERv a3VtZW50KGUpIG9obmUgRWluemVscHLDvGZ1bmcgZGlyZWt0IMO8YmVybmVobWVuPyIpKSByZXR1 cm47CiAgICBQcm9taXNlLmFsbChzZWwubWFwKGZ1bmN0aW9uIChpdCkgewogICAgICByZXR1cm4g ZmV0Y2goIi9hcGkvbWlncmF0aW9uLyIgKyBlbmNvZGVVUklDb21wb25lbnQoaXQuc2x1ZyksIHsg Y2FjaGU6ICJuby1zdG9yZSIgfSkKICAgICAgICAudGhlbihmdW5jdGlvbiAocikgeyByZXR1cm4g ci5qc29uKCk7IH0pCiAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykgeyByZXR1cm4gKHJlcyAm JiByZXMub2sgJiYgcmVzLmFydGljbGUpID8geyBpdDogaXQsIGFydDogcmVzLmFydGljbGUgfSA6 IG51bGw7IH0pCiAgICAgICAgLmNhdGNoKGZ1bmN0aW9uICgpIHsgcmV0dXJuIG51bGw7IH0pOwog ICAgfSkpLnRoZW4oZnVuY3Rpb24gKHJlc3VsdHMpIHsKICAgICAgdmFyIGxvYWRlZCA9IHJlc3Vs dHMuZmlsdGVyKEJvb2xlYW4pLCBmYWlsZWQgPSByZXN1bHRzLmxlbmd0aCAtIGxvYWRlZC5sZW5n dGg7CiAgICAgIHZhciBkb25lID0gMCwgYWxpYXNlZCA9IDA7CiAgICAgIGxvYWRlZC5mb3JFYWNo KGZ1bmN0aW9uIChydykgewogICAgICAgIGlmICghcncuaXQuX25hdikgcmV0dXJuOwogICAgICAg IFAubWlncmF0ZUluUGxhY2UocncuaXQuX25hdiwgcncuYXJ0KTsgICAgIC8vIF9taWdTb3VyY2Ug c2V0enQgbWlncmF0ZUluUGxhY2UgYXVzIGFydC5zcmMKICAgICAgICBhbGlhc2VkICs9IGFsaWFz U2libGluZ3MocncuaXQsIHJ3Lml0Ll9uYXYpOwogICAgICAgIGRvbmUrKzsKICAgICAgfSk7CiAg ICAgIGlmIChkb25lKSB7CiAgICAgICAgUC5wZXJzaXN0TmF2KCk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBFSU4gUHVibGlzaCAoRGVib3VuY2UpIGZ1ZXIgZGVuIGdhbnplbiBTdGFwZWwK ICAgICAgICBpZiAoUC5idWlsZEluZGV4KSBQLmJ1aWxkSW5kZXgoKTsKICAgICAgICBpZiAoUC5y ZW5kZXJTaWRlYmFyKSBQLnJlbmRlclNpZGViYXIoKTsKICAgICAgICBQLnRvYXN0KGRvbmUgKyAi IG1pZ3JpZXJ0IiArIChhbGlhc2VkID8gIiDCtyAiICsgYWxpYXNlZCArICIgVmVyd2Vpc2UiIDog IiIpICsKICAgICAgICAgICAgICAgIChmYWlsZWQgPyAiIMK3ICIgKyBmYWlsZWQgKyAiIG5pY2h0 IGxhZGJhciIgOiAiIikgKyAoUC5saXZlID8gIiAmIHZlcsO2ZmZlbnRsaWNodC4iIDogIi4iKSk7 CiAgICAgIH0gZWxzZSBpZiAoZmFpbGVkKSB7CiAgICAgICAgUC50b2FzdChmYWlsZWQgKyAiIERv a3VtZW50KGUpIG5pY2h0IGxhZGJhciDigJQgYml0dGUgZWluemVsbi4iLCB0cnVlKTsKICAgICAg fQogICAgICBzdGF0ZS5zZWwgPSB7fTsKICAgICAgcmVjb21wdXRlKCk7IHBhaW50KCk7CiAgICB9 KTsKICB9CiAgLy8gVm9yc2NoYXUgU2VpdGUtYW4tU2VpdGU6IGxpbmtzIE9yaWdpbmFsLVF1ZWxs ZSwgcmVjaHRzIGtvbnZlcnRpZXJ0ZSBWb3JzY2hhdS4KICBmdW5jdGlvbiBvcGVuUHJldmlldyhp dCkgewogICAgdmFyIHNyYyA9ICIvIiArIGVuY29kZVVSSShpdC5zb3VyY2UpLCBwcmV2ID0gImhl bGZlci9taWdyYXRpb24vcHJldmlldy8iICsgaXQuc2x1ZyArICIuaHRtbCI7CiAgICB2YXIgYWN0 cyA9IFt7IGxhYmVsOiAiSW4gbmV1ZW0gVGFiIiwga2luZDogImdob3N0Iiwgb25DbGljazogZnVu Y3Rpb24gKCkgeyB3aW5kb3cub3BlbihwcmV2LCAiX2JsYW5rIiwgIm5vb3BlbmVyIik7IHJldHVy biBmYWxzZTsgfSB9XTsKICAgIGlmIChpdC5fbmF2ICYmIGl0Ll9zdGF0dXMgIT09ICJkb25lIiAm JiAhaXNUaGluKGl0KSkgeyAgICAgICAgICAgIC8vIEVkaXRvciBkaXJla3QgYXVzIGRlciBWb3Jz Y2hhdSBlcnJlaWNoYmFyCiAgICAgIGFjdHMudW5zaGlmdCh7IGxhYmVsOiAiSW0gRWRpdG9yIMO2 ZmZuZW4iLCBraW5kOiAicHJpbWFyeSIsIGljb246ICJlZGl0Iiwgb25DbGljazogZnVuY3Rpb24g KCkgeyBvcGVuSW5FZGl0b3IoaXQpOyB9IH0pOwogICAgfQogICAgYWN0cy5wdXNoKHsgbGFiZWw6 ICJTY2hsaWVzc2VuIiwga2luZDogImdob3N0IiB9KTsKICAgIFAubW9kYWwoewogICAgICB0aXRs ZTogIlZvcnNjaGF1OiAiICsgKGl0LnRpdGxlIHx8IGl0LnNsdWcpLCBpY29uOiAiZG9jIiwgc2l6 ZTogInhsIiwKICAgICAgYm9keTogZnVuY3Rpb24gKGhvc3QpIHsKICAgICAgICBob3N0LmFwcGVu ZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAibWlnLXByZXZiYXIiLCBodG1sOiAiPHNwYW4+UXVl bGxlIChPcmlnaW5hbCk8L3NwYW4+PHNwYW4+S29udmVydGllcnQ8L3NwYW4+IiB9KSk7CiAgICAg ICAgdmFyIHNwbGl0ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJtaWctcHJldmlldyIgfSk7CiAgICAg ICAgc3BsaXQuYXBwZW5kQ2hpbGQoZWwoImlmcmFtZSIsIHsgc3JjOiBzcmMsIHRpdGxlOiAiUXVl bGxlIiB9KSk7CiAgICAgICAgc3BsaXQuYXBwZW5kQ2hpbGQoZWwoImlmcmFtZSIsIHsgc3JjOiBw cmV2LCB0aXRsZTogIktvbnZlcnRpZXJ0IiB9KSk7CiAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChz cGxpdCk7CiAgICAgIH0sCiAgICAgIGFjdGlvbnM6IGFjdHMKICAgIH0pOwogIH0KICBmdW5jdGlv biBwYWludCgpIHsKICAgIGlmICghc3RhdGUgfHwgIXN0YXRlLmxpc3RFbCkgcmV0dXJuOwogICAg cGFpbnRCYXIoKTsKICAgIHZhciBpdGVtcyA9IHN0YXRlLml0ZW1zIHx8IFtdLCBsaXN0ID0gZmls dGVyZWQoKTsKICAgIGZ1bmN0aW9uIG4ocykgeyByZXR1cm4gaXRlbXMuZmlsdGVyKGZ1bmN0aW9u IChpKSB7IHJldHVybiBpLl9zdGF0dXMgPT09IHM7IH0pLmxlbmd0aDsgfQogICAgc3RhdGUuc3Vt RWwuaW5uZXJIVE1MID0gIiI7CiAgICBzdGF0ZS5zdW1FbC5hcHBlbmRDaGlsZChlbCgiZGl2Iiwg eyBjbGFzczogImxjLXN1bS10IiwKICAgICAgaHRtbDogIjxiPiIgKyBuKCJvcGVuIikgKyAiPC9i PiBvZmZlbiAmbWlkZG90OyA8Yj4iICsgbigiZG9uZSIpICsgIjwvYj4gbWlncmllcnQgJm1pZGRv dDsgPGI+IiArIG4oIm5vVGFyZ2V0IikgKwogICAgICAgICAgICAiPC9iPiBvaG5lIFppZWwgJm1p ZGRvdDsgIiArIGl0ZW1zLmxlbmd0aCArICIgZ2VzYW10IiArCiAgICAgICAgICAgIChsaXN0Lmxl bmd0aCAhPT0gaXRlbXMubGVuZ3RoID8gIiAmbWlkZG90OyA8Yj4iICsgbGlzdC5sZW5ndGggKyAi PC9iPiBnZWZpbHRlcnQiIDogIiIpIH0pKTsKICAgIHN0YXRlLmxpc3RFbC5pbm5lckhUTUwgPSAi IjsKICAgIGlmICghaXRlbXMubGVuZ3RoKSB7CiAgICAgIHN0YXRlLmxpc3RFbC5hcHBlbmRDaGls ZChlbCgiZGl2IiwgeyBjbGFzczogImxjLWVtcHR5IiwKICAgICAgICB0ZXh0OiAiS2VpbmUga29u dmVydGllcnRlbiBEb2t1bWVudGUuIEVyc3Qg4oCecHl0aG9uMyBoZWxmZXIvbWlncmF0ZV9kb2Nz LnB5IC0td3JpdGXigJwgYXVzZsO8aHJlbi4iIH0pKTsKICAgICAgcmV0dXJuOwogICAgfQogICAg aWYgKCFsaXN0Lmxlbmd0aCkgeyBzdGF0ZS5saXN0RWwuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsg Y2xhc3M6ICJsYy1lbXB0eSIsIHRleHQ6ICJLZWluZSBUcmVmZmVyIGbDvHIgZGllc2VuIEZpbHRl ci4iIH0pKTsgcGFpbnRCdWxrKCk7IHJldHVybjsgfQogICAgbGlzdC5mb3JFYWNoKGZ1bmN0aW9u IChpdCkgeyBzdGF0ZS5saXN0RWwuYXBwZW5kQ2hpbGQocm93RWwoaXQpKTsgfSk7CiAgICBwYWlu dEJ1bGsoKTsKICB9CgogIGZ1bmN0aW9uIGJhZGdlKHN0YXR1cykgewogICAgaWYgKHN0YXR1cyA9 PT0gImRvbmUiKSByZXR1cm4gZWwoInNwYW4iLCB7IGNsYXNzOiAibGMtYmFkZ2Ugb2siLCB0ZXh0 OiAibWlncmllcnQiIH0pOwogICAgaWYgKHN0YXR1cyA9PT0gIm5vVGFyZ2V0IikgcmV0dXJuIGVs KCJzcGFuIiwgeyBjbGFzczogImxjLWJhZGdlIGJhZCIsIHRleHQ6ICJrZWluIFppZWwiIH0pOwog ICAgcmV0dXJuIGVsKCJzcGFuIiwgeyBjbGFzczogImxjLWJhZGdlIGlkbGUiLCB0ZXh0OiAib2Zm ZW4iIH0pOwogIH0KICBmdW5jdGlvbiBidG4oa2luZCwgaWNvbiwgbGFiZWwsIG9uY2xpY2spIHsK ICAgIHJldHVybiBlbCgiYnV0dG9uIiwgeyBjbGFzczogImJ0biAiICsga2luZCwgdHlwZTogImJ1 dHRvbiIsCiAgICAgIGh0bWw6IGljKGljb24pICsgIjxzcGFuPiIgKyBQLmVzY2FwZUh0bWwobGFi ZWwpICsgIjwvc3Bhbj4iLCBvbmNsaWNrOiBvbmNsaWNrIH0pOwogIH0KCiAgZnVuY3Rpb24gcm93 RWwoaXQpIHsKICAgIHZhciByb3cgPSBlbCgiZGl2IiwgeyBjbGFzczogImxjLXJvdyIgfSk7CiAg ICB2YXIgcGF0aFR4dCA9IGl0LnNvdXJjZTsKICAgIGlmIChpdC5fc3RhdHVzICE9PSAiZG9uZSIg JiYgaXQuX25hdikgewogICAgICBwYXRoVHh0ICs9ICIgICDihpIgICAiICsgKGl0Ll9uYXYubGFi ZWwgfHwgIiIpOwogICAgICBpZiAoaXQuX25hdnMubGVuZ3RoID4gMSkgcGF0aFR4dCArPSAiICAo KyIgKyAoaXQuX25hdnMubGVuZ3RoIC0gMSkgKyAiIHdlaXRlcmUpIjsKICAgIH0KICAgIHZhciBs YmwgPSBlbCgic3BhbiIsIHsgY2xhc3M6ICJsYy1sYmwiLCB0ZXh0OiBpdC50aXRsZSB8fCBpdC5z bHVnIH0pOwogICAgaWYgKGlzRm9sZGVyKGl0KSkgbGJsLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwg eyBjbGFzczogIm1pZy10YWciLCB0ZXh0OiAiT3JkbmVyIiB9KSk7CiAgICBlbHNlIGlmIChpdC5r aW5kID09PSAicmVkaXJlY3QiKSBsYmwuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi bWlnLXRhZyIsIHRleHQ6ICJWZXJ3ZWlzIiB9KSk7CiAgICBlbHNlIGlmIChpdC5raW5kID09PSAi bGlua2xpc3QiKSBsYmwuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAibWlnLXRhZyIs IHRleHQ6ICJMaW5rbGlzdGUiIH0pKTsKICAgIGVsc2UgaWYgKGl0LnN0YXRzICYmIGl0LnN0YXRz LnRhYmxlID4gMCkgbGJsLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogIm1pZy10YWci LCB0ZXh0OiAiVGFiZWxsZSIgfSkpOwogICAgaWYgKGlzRm9sZGVyKGl0KSkgbGJsLmFwcGVuZENo aWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImxjLXBhdGggbW9ubyIsIHRpdGxlOiBpdC5mb2xkZXIs IHRleHQ6ICIgICIgKyBpdC5mb2xkZXIgfSkpOwogICAgaWYgKGl0LmNsYXNzaWZpY2F0aW9uKSBs YmwuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAibWlnLWNscyBjbHMtIiArIGl0LmNs YXNzaWZpY2F0aW9uLnJlcGxhY2UoL1teYS16MC05XSsvZ2ksICItIikudG9Mb3dlckNhc2UoKSwg dGV4dDogaXQuY2xhc3NpZmljYXRpb24gfSkpOwogICAgdmFyIG1haW4gPSBlbCgic3BhbiIsIHsg Y2xhc3M6ICJsYy1tYWluIiB9LCBbbGJsLCBlbCgic3BhbiIsIHsgY2xhc3M6ICJsYy1wYXRoIG1v bm8iLCB0ZXh0OiBwYXRoVHh0IH0pXSk7CiAgICBpZiAoaXQud2FybmluZ3MgJiYgaXQud2Fybmlu Z3MubGVuZ3RoKSB7CiAgICAgIG1haW4uYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi bGMtcGF0aCIsIHN0eWxlOiAiY29sb3I6dmFyKC0tZGFuZ2VyKSIsCiAgICAgICAgaHRtbDogaWMo ImFsZXJ0IikgKyAiICIgKyBQLmVzY2FwZUh0bWwoaXQud2FybmluZ3Muam9pbigiIMK3ICIpKSB9 KSk7CiAgICB9CgogICAgLy8gQXVzd2FobC1DaGVja2JveCBudXIgZnVlciB3YXJudW5nc2ZyZWll IG9mZmVuZSBUcmVmZmVyIChTdGFwZWwtVWViZXJuYWhtZSkuCiAgICBpZiAoZWxpZ2libGUoaXQp KSB7CiAgICAgIHZhciBjYiA9IGVsKCJpbnB1dCIsIHsgdHlwZTogImNoZWNrYm94IiwgY2xhc3M6 ICJtaWctcm93LWNoZWNrIiB9KTsKICAgICAgY2IuY2hlY2tlZCA9ICEhc3RhdGUuc2VsW2l0LnNs dWddOwogICAgICBjYi5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsgc3RhdGUuc2VsW2l0LnNsdWdd ID0gY2IuY2hlY2tlZDsgcGFpbnRCdWxrKCk7IH07CiAgICAgIHJvdy5hcHBlbmRDaGlsZChjYik7 CiAgICB9IGVsc2UgewogICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi bWlnLXJvdy1jaGVjayIsIHN0eWxlOiAidmlzaWJpbGl0eTpoaWRkZW4iIH0pKTsKICAgIH0KCiAg ICB2YXIgYWN0cyA9IGVsKCJzcGFuIiwgeyBzdHlsZTogImRpc3BsYXk6ZmxleDtnYXA6OHB4O2Zs ZXg6MCAwIGF1dG87YWxpZ24taXRlbXM6Y2VudGVyIiB9KTsKICAgIGFjdHMuYXBwZW5kQ2hpbGQo YnRuKCJnaG9zdCIsICJkb2MiLCAiVm9yc2NoYXUiLCBmdW5jdGlvbiAoKSB7IG9wZW5QcmV2aWV3 KGl0KTsgfSkpOwoKICAgIGlmIChpdC5fc3RhdHVzID09PSAiZG9uZSIpIHsKICAgICAgYWN0cy5h cHBlbmRDaGlsZChidG4oImdob3N0IiwgImFydGljbGUiLCAiQW56ZWlnZW4iLCBmdW5jdGlvbiAo KSB7IGlmIChpdC5fbmF2ICYmIFAubmF2aWdhdGUpIFAubmF2aWdhdGUoaXQuX25hdik7IH0pKTsK ICAgIH0gZWxzZSBpZiAoaXNGb2xkZXIoaXQpICYmIGl0Ll9uYXYpIHsKICAgICAgLy8gT3JkbmVy LVplaWdlci1TZWl0ZSAtPiBOYXYtS25vdGVuIHdpcmQgT3JkbmVyLUtub3RlbiAob2VmZm5ldCBW ZXJ6ZWljaG5pcywgSUUtTW9kdXMpLgogICAgICBhY3RzLmFwcGVuZENoaWxkKGJ0bigicHJpbWFy eSIsICJkb2MiLCAiQWxzIE9yZG5lciDDvGJlcm5laG1lbiIsIGZ1bmN0aW9uICgpIHsgbWlncmF0 ZUZvbGRlcihpdCk7IH0pKTsKICAgICAgYWN0cy5hcHBlbmRDaGlsZChidG4oImdob3N0IiwgImxp bmsiLCAiQW5kZXJlcyBaaWVs4oCmIiwgZnVuY3Rpb24gKCkgeyBhc3NpZ25UYXJnZXQoaXQpOyB9 KSk7CiAgICB9IGVsc2UgaWYgKGl0LmtpbmQgPT09ICJyZWRpcmVjdCIpIHsKICAgICAgLy8gRWlu emVsLVZlcndlaXMgYXVmIGVpbiBEb2t1bWVudCAtPiBhbHMgYmVzdGVoZW5kZW4gTGluayBiZWxh c3NlbiAoa2VpbiBQcm9zYS1BcnRpa2VsKS4KICAgICAgYWN0cy5hcHBlbmRDaGlsZChlbCgic3Bh biIsIHsgY2xhc3M6ICJtdXRlZCIsIHN0eWxlOiAiZm9udC1zaXplOjEycHgiLCB0ZXh0OiAiVmVy d2VpcyBhdWYgZWluIERva3VtZW50IOKAlCBhbHMgTGluayBiZWxhc3NlbiIgfSkpOwogICAgfSBl bHNlIGlmIChpc1RoaW4oaXQpKSB7CiAgICAgIC8vIGlmcmFtZS9SZWRpcmVjdC9MZWVyIC0+IGtl aW4gbGVlcmVyIEFydGlrZWw7IGJlc3RlaGVuZGVuIExpbmsgYmVsYXNzZW4uCiAgICAgIGFjdHMu YXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAibXV0ZWQiLCBzdHlsZTogImZvbnQtc2l6 ZToxMnB4IiwgdGV4dDogImtlaW4gZXJrZW5uYmFyZXIgSW5oYWx0IOKAlCBhbHMgTGluayBiZWxh c3NlbiAvIFF1ZWxsZSBwcsO8ZmVuIiB9KSk7CiAgICB9IGVsc2UgaWYgKGl0Ll9zdGF0dXMgPT09 ICJub1RhcmdldCIpIHsKICAgICAgYWN0cy5hcHBlbmRDaGlsZChidG4oImdob3N0IiwgImxpbmsi LCAiWmllbCB6dXdlaXNlbuKApiIsIGZ1bmN0aW9uICgpIHsgYXNzaWduVGFyZ2V0KGl0KTsgfSkp OwogICAgfSBlbHNlIHsgICAvLyBvcGVuCiAgICAgIGFjdHMuYXBwZW5kQ2hpbGQoYnRuKCJwcmlt YXJ5IiwgImVkaXQiLCAiaW0gRWRpdG9yIMO2ZmZuZW4iLCBmdW5jdGlvbiAoKSB7IG9wZW5JbkVk aXRvcihpdCk7IH0pKTsKICAgICAgYWN0cy5hcHBlbmRDaGlsZChidG4oImdob3N0IiwgImxpbmsi LCAiQW5kZXJlcyBaaWVs4oCmIiwgZnVuY3Rpb24gKCkgeyBhc3NpZ25UYXJnZXQoaXQpOyB9KSk7 CiAgICB9CgogICAgcm93LmFwcGVuZENoaWxkKGJhZGdlKGl0Ll9zdGF0dXMpKTsKICAgIHJvdy5h cHBlbmRDaGlsZChtYWluKTsKICAgIHJvdy5hcHBlbmRDaGlsZChhY3RzKTsKICAgIHJldHVybiBy b3c7CiAgfQoKICAvLyBNYW51ZWxsZXIgWmllbC1QaWNrZXI6IGVpbmVuIGJlc3RlaGVuZGVuIE5h di1CbGF0dGtub3RlbiBhbHMgSW4tUGxhY2UtWmllbCB3YWVobGVuLgogIGZ1bmN0aW9uIGFzc2ln blRhcmdldChpdCkgewogICAgaWYgKCFQLm9wZW5OYXZQaWNrZXIpIHsgUC50b2FzdCgiWmllbC1Q aWNrZXIgbmljaHQgdmVyZsO8Z2Jhci4iLCB0cnVlKTsgcmV0dXJuOyB9CiAgICBQLm9wZW5OYXZQ aWNrZXIoZnVuY3Rpb24gKHIpIHsKICAgICAgaWYgKCFyIHx8ICFyLl9pZCkgcmV0dXJuOwogICAg ICB2YXIgbm9kZSA9IFAuZmluZE5hdkl0ZW1CeUlkKHIuX2lkKTsKICAgICAgaWYgKCFub2RlKSB7 IFAudG9hc3QoIktub3RlbiBuaWNodCBnZWZ1bmRlbi4iLCB0cnVlKTsgcmV0dXJuOyB9CiAgICAg IGlmIChub2RlLmFydGljbGUgJiYgIW5vZGUuaHJlZiAmJgogICAgICAgICAgIWNvbmZpcm0oIuKA niIgKyAobm9kZS5sYWJlbCB8fCAiIikgKyAi4oCcIGlzdCBiZXJlaXRzIGVpbiBBcnRpa2VsLiBJ bmhhbHQgbWl0IGRlbSBtaWdyaWVydGVuIERva3VtZW50IMO8YmVyc2NocmVpYmVuPyIpKSByZXR1 cm47CiAgICAgIGl0Ll9tYW51YWwgPSBub2RlOwogICAgICByZWNvbXB1dGUoKTsgcGFpbnQoKTsK ICAgIH0pOwogIH0KCiAgLy8gT3JkbmVyLVplaWdlci1TZWl0ZSBpbi1wbGFjZSB1ZWJlcm5laG1l bjogTmF2LUtub3RlbiAtPiBPcmRuZXItS25vdGVuIChQZmFkIGF1cyBkZW0gS29udmVydGVyKS4K ICBmdW5jdGlvbiBtaWdyYXRlRm9sZGVyKGl0KSB7CiAgICBpZiAoIWl0Ll9uYXYgfHwgIWl0LmZv bGRlcikgeyBQLnRvYXN0KCJLZWluIFppZWwtS25vdGVuIG9kZXIgUGZhZC4iLCB0cnVlKTsgcmV0 dXJuOyB9CiAgICB2YXIgbm9kZSA9IFAubWlncmF0ZUZvbGRlckluUGxhY2UoaXQuX25hdiwgaXQu Zm9sZGVyKTsKICAgIGlmICghbm9kZSkgeyBQLnRvYXN0KCJPcmRuZXJwZmFkIG5pY2h0IHp1bMOk c3NpZy4iLCB0cnVlKTsgcmV0dXJuOyB9CiAgICBub2RlLl9taWdTb3VyY2UgPSBpdC5zb3VyY2U7 ICAgICAgICAgICAgICAgICAvLyBzdGFiaWxlIFp1b3JkbnVuZyBRdWVsbGUgLT4gbWlncmllcnRl ciBPcmRuZXItS25vdGVuCiAgICB2YXIgZXh0cmEgPSAoaXQuX25hdnMgJiYgaXQuX25hdnNbMF0g PT09IG5vZGUpID8gYWxpYXNTaWJsaW5ncyhpdCwgbm9kZSkgOiAwOwogICAgUC5wZXJzaXN0TmF2 KCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXV0by1QdWJsaXNoIChEZWJvdW5j ZSAtPiAxIFB1Ymxpc2gpCiAgICBpZiAoUC5idWlsZEluZGV4KSBQLmJ1aWxkSW5kZXgoKTsKICAg IGlmIChQLnJlbmRlclNpZGViYXIpIFAucmVuZGVyU2lkZWJhcigpOwogICAgUC50b2FzdCgiQWxz IE9yZG5lciDDvGJlcm5vbW1lbiIgKyAoZXh0cmEgPyAiIMK3ICIgKyBleHRyYSArICIgVmVyd2Vp c2UiIDogIiIpICsgKFAubGl2ZSA/ICIgJiB2ZXLDtmZmZW50bGljaHQuIiA6ICIuIikpOwogICAg cmVjb21wdXRlKCk7IHBhaW50KCk7CiAgfQoKICBmdW5jdGlvbiBvcGVuSW5FZGl0b3IoaXQpIHsK ICAgIGlmICghaXQuX25hdikgeyBQLnRvYXN0KCJLZWluIFppZWwtS25vdGVuLiIsIHRydWUpOyBy ZXR1cm47IH0KICAgIHZhciB0YXJnZXQgPSBpdC5fbmF2OwogICAgZmV0Y2goIi9hcGkvbWlncmF0 aW9uLyIgKyBlbmNvZGVVUklDb21wb25lbnQoaXQuc2x1ZyksIHsgY2FjaGU6ICJuby1zdG9yZSIg fSkKICAgICAgLnRoZW4oZnVuY3Rpb24gKHIpIHsgcmV0dXJuIHIuanNvbigpOyB9KQogICAgICAu dGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKCFyZXMgfHwgIXJlcy5vayB8fCAhcmVz LmFydGljbGUpIHsgUC50b2FzdCgiS29udmVydGllcnRlcyBEb2t1bWVudCBuaWNodCBsYWRiYXIu IiwgdHJ1ZSk7IHJldHVybjsgfQogICAgICAgIGlmIChzdGF0ZSkgc3RhdGUucGVuZGluZ0l0ZW0g PSBpdDsgICAgICAgIC8vIGZ1ZXIgZGFzIEF1dG8tQWxpYXNpbmcgaW4gb25Eb25lCiAgICAgICAg UC5vcGVuTWlncmF0aW9uRWRpdG9yKHRhcmdldCwgcmVzLmFydGljbGUpOwogICAgICB9KQogICAg ICAuY2F0Y2goZnVuY3Rpb24gKCkgeyBQLnRvYXN0KCJLb252ZXJ0aWVydGVzIERva3VtZW50IG5p Y2h0IGxhZGJhci4iLCB0cnVlKTsgfSk7CiAgfQoKfSkod2luZG93LlApOwo= ### FILE: assets/js/features/nav.js | 35817 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgbmF2LmpzCiAgIExpbmtlIFNwYWx0 ZSAoTmF2aWdhdGlvbiksIE5hdmlnaWVyZW4vRG9rdW1lbnRhbnNpY2h0LCBBcnRpa2VsLUFuemVp Z2UsCiAgIGludGVybmVyIFZlcmxhdWYgKGZ1ZXIg4oCeTmV1ZXMgJiBHZWFlbmRlcnRlcyIpLgog ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0gKi8KKGZ1bmN0aW9uIChQKSB7CiAgInVzZSBzdHJpY3QiOwogIHZhciBl bCA9IFAuZWwsICQgPSBQLiQsIGljID0gUC5pYywgZXNjYXBlSHRtbCA9IFAuZXNjYXBlSHRtbDsK CiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gYWt0dWVsbGVzIFppZWwgKi8KICBQLm1hcmtDdXJyZW50ID0gZnVuY3Rpb24gKGtl eSkgewogICAgUC5jdXJyZW50SHJlZiA9IGtleSB8fCBudWxsOwogICAgUC4kJCgiLmlzLWN1cnJl bnQiKS5mb3JFYWNoKGZ1bmN0aW9uIChuKSB7IG4uY2xhc3NMaXN0LnJlbW92ZSgiaXMtY3VycmVu dCIpOyB9KTsKICAgIGlmICgha2V5KSByZXR1cm47CiAgICBQLiQkKCcjc2lkZWJhciBhW2RhdGEt a2V5XScpLmZvckVhY2goZnVuY3Rpb24gKGEpIHsgaWYgKGEuZ2V0QXR0cmlidXRlKCJkYXRhLWtl eSIpID09PSBrZXkpIGEuY2xhc3NMaXN0LmFkZCgiaXMtY3VycmVudCIpOyB9KTsKICB9OwoKICAv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSBOYXZpZ2llcmVuICovCiAgUC5uYXZJdGVtS2V5ID0gZnVuY3Rpb24gKGl0KSB7IHJldHVy biBpdC5hcnRpY2xlID8gImFydDoiICsgKGl0Ll9pZCB8fCBpdC5sYWJlbCkgOiBpdC5mb2xkZXIg PyAiZGlyOiIgKyAoaXQuX2lkIHx8IGl0LmZvbGRlcikgOiAoaXQuaHJlZiB8fCAiIikgKyAifCIg KyAoaXQubGFiZWwgfHwgIiIpOyB9OwoKICBQLm5hdmlnYXRlID0gZnVuY3Rpb24gKGl0KSB7CiAg ICBpZiAoIWl0KSByZXR1cm47CiAgICBpdCA9IFAucmVzb2x2ZVJlZihpdCk7ICAgICAgICAgIC8v IEFsaWFzLS9SZWZlcmVuei1Lbm90ZW4gYXVmIGthbm9uaXNjaGVzIFppZWwgYXVmbG9lc2VuIChQ aGFzZSAxMCkKICAgIGlmICghaXQpIHJldHVybjsKICAgIFAucmVtZW1iZXIoaXQpOwogICAgaWYg KFAuYXBwRm9ySXRlbSkgeyB2YXIgX2FwcE9wZW4gPSBQLmFwcEZvckl0ZW0oaXQpOyBpZiAoX2Fw cE9wZW4pIHsgX2FwcE9wZW4oaXQpOyBQLmNsb3NlTW9iaWxlKCk7IHJldHVybjsgfSB9ICAgLy8g QXBwLVJvdXRlICh6LkIuICJBcnp0IGFuZm9yZGVybiIpCiAgICBpZiAoaXQuYXJ0aWNsZSkgeyBQ Lm9wZW5BcnRpY2xlKGl0KTsgUC5jbG9zZU1vYmlsZSgpOyByZXR1cm47IH0KICAgIGlmIChpdC5m b2xkZXIpIHsgUC5vcGVuRm9sZGVyKGl0KTsgUC5jbG9zZU1vYmlsZSgpOyByZXR1cm47IH0gICAv LyBXaW5kb3dzLU9yZG5lci1BbnNpY2h0IChJRS1Nb2R1cykKICAgIGlmICgoaXQuY29sIHx8IC9e Y29sOi8udGVzdChpdC5ocmVmIHx8ICIiKSkgJiYgUC5vcGVuTGlua0NvbGxlY3Rpb24pIHsgICAv LyBMaW5rc2FtbWx1bmcgKHJlY2h0cywgc3RhdHQgUm9zdGVyKQogICAgICBQLm9wZW5MaW5rQ29s bGVjdGlvbihpdC5jb2wgfHwgU3RyaW5nKGl0LmhyZWYpLnNsaWNlKDQpKTsgUC5jbG9zZU1vYmls ZSgpOyByZXR1cm47CiAgICB9CiAgICB2YXIgaHJlZiA9IGl0LmhyZWYgfHwgIiIsIHQgPSBpdC50 YXJnZXQgfHwgImNvbnRlbnQiOwogICAgLy8gU2hhcmUtL0RhdGVpLS9Qcm9ncmFtbS1aaWVsZSBv ZWZmbmV0IGltIFBmbGVnZS1Nb2R1cyBkZXIgbG9rYWxlIEhlbGZlciAoU3RhcnQtUHJvY2VzczsK ICAgIC8vIGJlaSBPZmZpY2UgZGlyZWt0LCBiZWkgT3JkbmVyIEV4cGxvcmVyLCBiZWkgZnJlaWdl Z2ViZW5lciAuZXhlIG1pdCBXaW5kb3dzLVNpY2hlcmhlaXRzYWJmcmFnZSkuCiAgICBpZiAoaHJl ZiAmJiBQLmxpdmUgJiYgUC5pc09wZW5hYmxlUGF0aCAmJiBQLmlzT3BlbmFibGVQYXRoKGhyZWYp KSB7IFAub3BlbkV4dGVybmFsKGhyZWYpOyBQLmNsb3NlTW9iaWxlKCk7IHJldHVybjsgfQogICAg aWYgKGhyZWYgJiYgIVAuc2FmZVVybChocmVmKSkgewogICAgICBpZiAoUC5zYWZlU2hhcmVIcmVm KGhyZWYpKSB7IHdpbmRvdy5vcGVuKGhyZWYsICJfYmxhbmsiLCAibm9vcGVuZXIiKTsgUC50b2Fz dCgiSW0gRXhwbG9yZXIgZ2XDtmZmbmV0OiAiICsgKGl0LmxhYmVsIHx8IGhyZWYpKTsgcmV0dXJu OyB9ICAvLyBCZWhvZXJkZW4tU2hhcmUgKERhdGVpL09yZG5lciwgSUUpCiAgICAgIFAudG9hc3Qo IlVuc2ljaGVyZXIgTGluayBibG9ja2llcnQuIiwgdHJ1ZSk7IHJldHVybjsgICAvLyBrZWluIGph dmFzY3JpcHQ6L2RhdGE6L2ZpbGU6CiAgICB9CiAgICBpZiAoL15tYWlsdG86L2kudGVzdChocmVm KSkgeyB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGhyZWY7IHJldHVybjsgfQogICAgaWYgKCFocmVm KSByZXR1cm47CiAgICBpZiAodCA9PT0gIm1vZGFsIikgeyBQLm9wZW5MaW5rTW9kYWwoaHJlZiwg aXQubGFiZWwgfHwgIiIpOyBQLmNsb3NlTW9iaWxlKCk7IHJldHVybjsgfSAgIC8vIGltIE1vZGFs LUZlbnN0ZXIKICAgIGlmICh0ID09PSAiX2JsYW5rIikgeyB3aW5kb3cub3BlbihocmVmLCAiX2Js YW5rIik7IFAudG9hc3QoIkV4dGVybiBnZcO2ZmZuZXQ6ICIgKyAoaXQubGFiZWwgfHwgaHJlZikp OyByZXR1cm47IH0gICAvLyBuZXVlciBUYWIKICAgIFAub3BlbkRvYyhocmVmLCBpdC5sYWJlbCk7 ICAgLy8gTWl0dGUgKFN0YW5kYXJkKQogICAgUC5jbG9zZU1vYmlsZSgpOwogIH07CgogIC8qIExp bmsgaW4gZWluZW0gTW9kYWwtRmVuc3RlciBvZWZmbmVuIChpZnJhbWUpIC0gZnVlciBpbnRlcm5l IERva3VtZW50ZSB1bmQgZXh0ZXJuZSBVUkxzLiAqLwogIFAub3BlbkxpbmtNb2RhbCA9IGZ1bmN0 aW9uIChocmVmLCBsYWJlbCkgewogICAgUC5tb2RhbCh7CiAgICAgIHRpdGxlOiBsYWJlbCB8fCAi QW5zaWNodCIsIGljb246ICJleHQiLCBzaXplOiAieGwiLAogICAgICBib2R5OiBmdW5jdGlvbiAo aG9zdCkgewogICAgICAgIGhvc3QuY2xhc3NMaXN0LmFkZCgibGluay1tb2RhbC1ib2R5Iik7CiAg ICAgICAgdmFyIGYgPSBlbCgiaWZyYW1lIiwgeyBjbGFzczogImxpbmstbW9kYWwtZnJhbWUiLCB0 aXRsZTogbGFiZWwgfHwgIkluaGFsdCIgfSk7CiAgICAgICAgZi5zZXRBdHRyaWJ1dGUoInNyYyIs IGhyZWYpOwogICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQoZik7CiAgICAgIH0sCiAgICAgIGFjdGlv bnM6IFsKICAgICAgICB7IGxhYmVsOiAiSW4gbmV1ZW0gVGFiIiwga2luZDogImdob3N0IiwgYWxp Z246ICJsZWZ0Iiwga2VlcE9wZW46IHRydWUsIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsgd2luZG93 Lm9wZW4oaHJlZiwgIl9ibGFuayIsICJub29wZW5lciIpOyB9IH0sCiAgICAgICAgeyBsYWJlbDog IlNjaGxpZcOfZW4iLCBraW5kOiAiZ2hvc3QiIH0KICAgICAgXQogICAgfSk7CiAgfTsKCiAgUC5v cGVuRG9jID0gZnVuY3Rpb24gKGhyZWYsIGxhYmVsKSB7CiAgICB2YXIgYyA9ICQoIi5jZW50ZXIi KTsgYy5jbGFzc0xpc3QuYWRkKCJkb2MiKTsgYy5jbGFzc0xpc3QucmVtb3ZlKCJhcnRpY2xlIik7 CiAgICAkKCIjY3YtcGF0aCIpLnRleHRDb250ZW50ID0gbGFiZWwgPyBsYWJlbCArICIgIMK3ICAi ICsgaHJlZiA6IGhyZWY7CiAgICAkKCIjY3YtZnJhbWUiKS5zZXRBdHRyaWJ1dGUoInNyYyIsIGhy ZWYpOwogICAgUC5tYXJrQ3VycmVudCgoaHJlZiB8fCAiIikgKyAifCIgKyAobGFiZWwgfHwgIiIp KTsKICB9OwoKICAvKiBEYXRlaSBvZGVyIE9yZG5lciBMT0tBTCBvZWZmbmVuOiBkZXIgQnJvd3Nl ciBkYXJmIGZpbGU6Ly8gbmljaHQgb2VmZm5lbiwgYWxzbyBtYWNodCBlcwogICAgIGRlciBsb2th bGUgSGVsZmVyIHBlciBTdGFydC1Qcm9jZXNzIChPZmZpY2UtRGF0ZWkgLT4gRXhjZWwvV29yZC9Q b3dlclBvaW50LCBPcmRuZXIgLT4KICAgICBFeHBsb3JlcikuIEFsbG93bGlzdCArIEVuZHVuZyB3 ZXJkZW4gc2VydmVyc2VpdGlnIGdlcHJ1ZWZ0IChzaWVoZSBjb250cmFjdC5qc29uKS4gKi8KICBQ Lm9wZW5FeHRlcm5hbCA9IGZ1bmN0aW9uIChwYXRoKSB7CiAgICBpZiAoIVAubGl2ZSkgeyBQLnRv YXN0KCJPZWZmbmVuIG51ciBpbSBQZmxlZ2UtTW9kdXMgKGxva2FsZXIgSGVsZmVyKS4iLCB0cnVl KTsgcmV0dXJuOyB9CiAgICBQLnRvYXN0KCJXaXJkIGdlw7ZmZm5ldCDigKYiKTsKICAgIHJldHVy biBmZXRjaCgiL2FwaS9vcGVuIiwgeyBtZXRob2Q6ICJQT1NUIiwgaGVhZGVyczogeyAiQ29udGVu dC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iIH0sIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcGF0 aDogcGF0aCB9KSB9KQogICAgICAudGhlbihmdW5jdGlvbiAocikgeyByZXR1cm4gci5qc29uKCk7 IH0pCiAgICAgIC50aGVuKGZ1bmN0aW9uIChqKSB7IGlmICghaiB8fCAhai5vaykgeyBQLnRvYXN0 KChqICYmIGouZXJyb3IpIHx8ICJPZWZmbmVuIGZlaGxnZXNjaGxhZ2VuLiIsIHRydWUpOyB9IH0p CiAgICAgIC5jYXRjaChmdW5jdGlvbiAoKSB7IFAudG9hc3QoIk9lZmZuZW4gZmVobGdlc2NobGFn ZW4gKFZlcmJpbmR1bmcpLiIsIHRydWUpOyB9KTsKICB9OwogIC8qIFNoYXJlLS9EYXRlaS0vUHJv Z3JhbW0tWmllbD8gKFVOQyBcXGhvc3QsIHByb3Rva29sbC1yZWxhdGl2IC8vaG9zdCwgZmlsZTov LywgTGF1ZndlcmsgWDpcKQogICAgIFNvbGNoZSBaaWVsZSBvZWZmbmV0L3N0YXJ0ZXQgZGVyIGxv a2FsZSBIZWxmZXIgKGRlciBCcm93c2VyIGRhcmYgZmlsZTovLyBuaWNodCkuICovCiAgUC5pc09w ZW5hYmxlUGF0aCA9IGZ1bmN0aW9uIChoKSB7CiAgICBoID0gU3RyaW5nKGggfHwgIiIpOwogICAg cmV0dXJuIC9eZmlsZTovaS50ZXN0KGgpIHx8IC9eKFxcXFx8XC9cLykvLnRlc3QoaCkgfHwgL15b QS1aYS16XTpbXFxcL10vLnRlc3QoaCk7CiAgfTsKCiAgLyogS25vdGVuIGJlYXJiZWl0ZW4gKFJl ZGFrdGV1cik6IEJlemVpY2hudW5nLCBaaWVsL1BmYWQgdW5kIEljb24gZWluZXMgTmF2LUtub3Rl bnMKICAgICBkaXJla3QgYWVuZGVybiArIHNwZWljaGVybiAodmVyb2VmZmVudGxpY2h0IGRpZSBO YXZpZ2F0aW9uKS4gTG9lc3QgdS5hLiBkZWZla3RlIFBmYWRlCiAgICAgKHouQi4gT3JkbmVyLUtu b3RlbikgdW5kIGRpZSBJY29uLVdhaGwgLSBkYXRlbmdldHJpZWJlbiwga2VpbiBKU09OLUVkaXRp ZXJlbiBub2V0aWcuICovCiAgUC5OT0RFX0lDT05TID0gWyIiLCAiZG9jIiwgImxpbmsiLCAiZXh0 IiwgImFydGljbGUiLCAic2VhcmNoIiwgImdyaWQiLCAibWFwIiwgImluYm94IiwgImNsb2NrIiwg InNoaWVsZCIsICJib2x0IiwgImFsZXJ0IiwgInN0YXIiLCAicGluIiwgInVzZXIiLCAiYXoiLCAi bWVudSIsICJwYW5lbEwiLCAicGFuZWxSIiwgImRvd25sb2FkIiwgInVwbG9hZCIsICJwcmludCIs ICJjaGVjayIsICJlZGl0Il07CiAgUC5lZGl0Tm9kZURsZyA9IGZ1bmN0aW9uIChub2RlLCBvblNh dmVkKSB7CiAgICBpZiAoIW5vZGUpIHJldHVybjsKICAgIGlmICghUC5saXZlKSB7IFAudG9hc3Qo IkJlYXJiZWl0ZW4gbnVyIGltIFBmbGVnZS1Nb2R1cyAobG9rYWxlciBIZWxmZXIpLiIsIHRydWUp OyByZXR1cm47IH0KICAgIHZhciBpc0ZvbGRlciA9ICEhbm9kZS5mb2xkZXI7CiAgICB2YXIgbGJs SW4sIHBhdGhJbiwgaWNvU2VsLCBwcmV2LCBvcGVuU2VsOwogICAgZnVuY3Rpb24gcm93KGxhYmVs VGV4dCwgZmllbGQpIHsKICAgICAgcmV0dXJuIGVsKCJkaXYiLCB7IGNsYXNzOiAibmUtcm93IiB9 LCBbZWwoImxhYmVsIiwgeyBjbGFzczogIm5lLWxibCIsIHRleHQ6IGxhYmVsVGV4dCB9KSwgZmll bGRdKTsKICAgIH0KICAgIFAubW9kYWwoewogICAgICB0aXRsZTogIktub3RlbiBiZWFyYmVpdGVu IiwgaWNvbjogImVkaXQiLCBzaXplOiAibWQiLAogICAgICBib2R5OiBmdW5jdGlvbiAoaG9zdCkg ewogICAgICAgIGxibEluID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHZhbHVlOiBub2Rl LmxhYmVsIHx8ICIiIH0pOwogICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQocm93KCJCZXplaWNobnVu ZyIsIGxibEluKSk7CiAgICAgICAgcGF0aEluID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIs IHZhbHVlOiBpc0ZvbGRlciA/IChub2RlLmZvbGRlciB8fCAiIikgOiAobm9kZS5ocmVmIHx8ICIi KSB9KTsKICAgICAgICBob3N0LmFwcGVuZENoaWxkKHJvdyhpc0ZvbGRlciA/ICJPcmRuZXItUGZh ZCAoU2hhcmUvVU5DKSIgOiAiWmllbCAoUGZhZCAvIFVSTCAvIHBvcnRhbDo8aWQ+KSIsIHBhdGhJ bikpOwogICAgICAgIGljb1NlbCA9IGVsKCJzZWxlY3QiLCB7fSk7CiAgICAgICAgUC5OT0RFX0lD T05TLmZvckVhY2goZnVuY3Rpb24gKG4pIHsKICAgICAgICAgIHZhciBvID0gZWwoIm9wdGlvbiIs IHsgdmFsdWU6IG4sIHRleHQ6IG4gfHwgIihhdXRvbWF0aXNjaCBuYWNoIFR5cCkiIH0pOwogICAg ICAgICAgaWYgKChub2RlLmljb24gfHwgIiIpID09PSBuKSBvLnNlbGVjdGVkID0gdHJ1ZTsKICAg ICAgICAgIGljb1NlbC5hcHBlbmRDaGlsZChvKTsKICAgICAgICB9KTsKICAgICAgICBwcmV2ID0g ZWwoInNwYW4iLCB7IGNsYXNzOiAibGktaWMgbmUtcHJldiIsIGh0bWw6IGljKG5vZGUuaWNvbiB8 fCAoaXNGb2xkZXIgPyAiZG9jIiA6ICJkb2MiKSkgfSk7CiAgICAgICAgaWNvU2VsLmFkZEV2ZW50 TGlzdGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uICgpIHsgcHJldi5pbm5lckhUTUwgPSBpYyhpY29T ZWwudmFsdWUpIHx8ICIiOyB9KTsKICAgICAgICBob3N0LmFwcGVuZENoaWxkKHJvdygiSWNvbiIs IGVsKCJkaXYiLCB7IGNsYXNzOiAibmUtaWNvd3JhcCIgfSwgW2ljb1NlbCwgcHJldl0pKSk7CiAg ICAgICAgaWYgKCFpc0ZvbGRlcikgewogICAgICAgICAgb3BlblNlbCA9IGVsKCJzZWxlY3QiLCB7 fSk7CiAgICAgICAgICBbWyJjb250ZW50IiwgIk1pdHRlIChpbSBQb3J0YWwpIl0sIFsiX2JsYW5r IiwgIk5ldWVyIFRhYiJdLCBbIm1vZGFsIiwgIk1vZGFsLUZlbnN0ZXIiXV0uZm9yRWFjaChmdW5j dGlvbiAobykgewogICAgICAgICAgICB2YXIgb3AgPSBlbCgib3B0aW9uIiwgeyB2YWx1ZTogb1sw XSwgdGV4dDogb1sxXSB9KTsKICAgICAgICAgICAgaWYgKChub2RlLnRhcmdldCB8fCAiY29udGVu dCIpID09PSBvWzBdKSBvcC5zZWxlY3RlZCA9IHRydWU7CiAgICAgICAgICAgIG9wZW5TZWwuYXBw ZW5kQ2hpbGQob3ApOwogICAgICAgICAgfSk7CiAgICAgICAgICBob3N0LmFwcGVuZENoaWxkKHJv dygiw5ZmZm5lbiBpbiIsIG9wZW5TZWwpKTsKICAgICAgICB9CiAgICAgICAgaG9zdC5hcHBlbmRD aGlsZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHRleHQ6IGlzRm9sZGVyCiAgICAg ICAgICA/ICJPcmRuZXIgYWxzIFNoYXJlLVBmYWQgKFxcXFxwb2xpemVpLm5ydy5kZVxcLi4uIG9k ZXIgLy8uLi4pLiBXaXJkIGltIFBmbGVnZS1Nb2R1cyBsb2thbCBnZW9lZmZuZXQuIgogICAgICAg ICAgOiAiUGZhZCByZWxhdGl2IHp1bSBQb3J0YWwsIHBvcnRhbDo8aWQ+LCBTaGFyZS1QZmFkIG9k ZXIgdm9sbHN0YWVuZGlnZSBVUkwuIiB9KSk7CiAgICAgIH0sCiAgICAgIGFjdGlvbnM6IFsKICAg ICAgICB7IGxhYmVsOiAiQWJicmVjaGVuIiwga2luZDogImdob3N0IiB9LAogICAgICAgIHsgbGFi ZWw6ICJTcGVpY2hlcm4iLCBraW5kOiAicHJpbWFyeSIsIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsK ICAgICAgICAgICAgdmFyIGxibCA9IChsYmxJbi52YWx1ZSB8fCAiIikudHJpbSgpOwogICAgICAg ICAgICB2YXIgcHRoID0gKHBhdGhJbi52YWx1ZSB8fCAiIikudHJpbSgpOwogICAgICAgICAgICBp ZiAobGJsKSBub2RlLmxhYmVsID0gbGJsOwogICAgICAgICAgICBpZiAoaXNGb2xkZXIpIHsgbm9k ZS5mb2xkZXIgPSBwdGg7IH0gZWxzZSB7IG5vZGUuaHJlZiA9IHB0aDsgfQogICAgICAgICAgICBp ZiAoaWNvU2VsLnZhbHVlKSBub2RlLmljb24gPSBpY29TZWwudmFsdWU7IGVsc2UgZGVsZXRlIG5v ZGUuaWNvbjsKICAgICAgICAgICAgaWYgKCFpc0ZvbGRlciAmJiBvcGVuU2VsKSB7IGlmIChvcGVu U2VsLnZhbHVlICYmIG9wZW5TZWwudmFsdWUgIT09ICJjb250ZW50Iikgbm9kZS50YXJnZXQgPSBv cGVuU2VsLnZhbHVlOyBlbHNlIGRlbGV0ZSBub2RlLnRhcmdldDsgfQogICAgICAgICAgICBkZWxl dGUgbm9kZS5icm9rZW47ICAgLy8gUGZhZCBuZXUgZ2VzZXR6dCAtPiBCcm9rZW4tTWFya2llcnVu ZyB3ZWcgKExpbmtjaGVjayBwcnVlZnQgbmV1KQogICAgICAgICAgICBpZiAoUC5wZXJzaXN0TmF2 KSBQLnBlcnNpc3ROYXYoKTsKICAgICAgICAgICAgaWYgKFAuYnVpbGRJbmRleCkgUC5idWlsZElu ZGV4KCk7CiAgICAgICAgICAgIGlmIChQLnJlbmRlclNpZGViYXIpIFAucmVuZGVyU2lkZWJhcigp OwogICAgICAgICAgICBQLnRvYXN0KCJHZXNwZWljaGVydC4iKTsKICAgICAgICAgICAgaWYgKG9u U2F2ZWQpIHsgdHJ5IHsgb25TYXZlZCgpOyB9IGNhdGNoIChlKSB7fSB9CiAgICAgICAgICB9IH0K ICAgICAgXQogICAgfSk7CiAgfTsKCiAgLyogT3JkbmVyLUtub3RlbjogTW9kYWwgbWl0IGRlciBW ZXJ6ZWljaG5pc2xpc3RlIHZvbSBIZWxmZXIgKEdFVCAvYXBpL2ZvbGRlcikuIFVudGVyb3JkbmVy CiAgICAgbmF2aWdpZXJlbiBpbi1wbGFjZTsgRGF0ZWllbiB1bmQgIkltIEV4cGxvcmVyIG9lZmZu ZW4iIGdlaGVuIHVlYmVyIFAub3BlbkV4dGVybmFsLiBPaG5lCiAgICAgSGVsZmVyIChyZWluZXIg TGVzZXIgcGVyIGZpbGU6Ly8pIHplaWd0IGRhcyBNb2RhbCBudXIgZGVuIFBmYWQuICovCiAgUC5v cGVuRm9sZGVyID0gZnVuY3Rpb24gKGl0KSB7CiAgICB2YXIgcmF3ID0gaXQuZm9sZGVyIHx8ICIi OwogICAgUC5tYXJrQ3VycmVudChQLm5hdkl0ZW1LZXkoaXQpKTsKICAgIGlmICghUC5saXZlKSB7 CiAgICAgIHZhciBzcmMwID0gUC5mb2xkZXJTcmMocmF3KTsKICAgICAgUC5tb2RhbCh7IHRpdGxl OiBpdC5sYWJlbCB8fCAiT3JkbmVyIiwgaWNvbjogImRvYyIsIHNpemU6ICJ4bCIsIGJvZHk6IGZ1 bmN0aW9uIChob3N0KSB7CiAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6 ICJtdXRlZCIsIHRleHQ6IHNyYzAgPyAoIk9yZG5lciAobnVyIGltIFBmbGVnZS1Nb2R1cyBvZWZm ZW5iYXIpOiAiICsgc3JjMCkgOiAiT3JkbmVycGZhZCBuaWNodCB2ZXJmw7xnYmFyIG9kZXIgbmlj aHQgenVsw6Rzc2lnLiIgfSkpOwogICAgICB9LCBhY3Rpb25zOiBbeyBsYWJlbDogIlNjaGxpZXNz ZW4iLCBraW5kOiAiZ2hvc3QiIH1dIH0pOwogICAgICByZXR1cm47CiAgICB9CiAgICBQLm1vZGFs KHsKICAgICAgdGl0bGU6IGl0LmxhYmVsIHx8ICJPcmRuZXIiLCBpY29uOiAiZG9jIiwgc2l6ZTog InhsIiwKICAgICAgYm9keTogZnVuY3Rpb24gKGhvc3QpIHsKICAgICAgICB2YXIgY3VyUGF0aCA9 IHJhdzsKICAgICAgICB2YXIgYmFyID0gZWwoImRpdiIsIHsgY2xhc3M6ICJmb2xkZXItYmFyIiB9 KTsKICAgICAgICB2YXIgY3VyID0gZWwoInNwYW4iLCB7IGNsYXNzOiAibW9ubyBtdXRlZCBmb2xk ZXItY3VyIiB9KTsKICAgICAgICBiYXIuYXBwZW5kQ2hpbGQoY3VyKTsKICAgICAgICBob3N0LmFw cGVuZENoaWxkKGJhcik7CiAgICAgICAgdmFyIGxpc3RCb3ggPSBlbCgiZGl2IiwgeyBjbGFzczog ImZvbGRlci1saXN0IiB9KTsKICAgICAgICBob3N0LmFwcGVuZENoaWxkKGxpc3RCb3gpOwogICAg ICAgIGZ1bmN0aW9uIGxvYWQocCkgewogICAgICAgICAgY3VyUGF0aCA9IHA7IGN1ci50ZXh0Q29u dGVudCA9IHA7CiAgICAgICAgICBsaXN0Qm94LmlubmVySFRNTCA9ICIiOyBsaXN0Qm94LmFwcGVu ZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAibXV0ZWQiLCB0ZXh0OiAiTGFkZeKApiIgfSkpOwog ICAgICAgICAgZmV0Y2goIi9hcGkvZm9sZGVyP3BhdGg9IiArIGVuY29kZVVSSUNvbXBvbmVudChw KSkudGhlbihmdW5jdGlvbiAocikgeyByZXR1cm4gci5qc29uKCk7IH0pLnRoZW4oZnVuY3Rpb24g KGopIHsKICAgICAgICAgICAgbGlzdEJveC5pbm5lckhUTUwgPSAiIjsKICAgICAgICAgICAgaWYg KCFqIHx8ICFqLm9rKSB7IGxpc3RCb3guYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJt dXRlZCIsIHRleHQ6IChqICYmIGouZXJyb3IpIHx8ICJPcmRuZXIgbmljaHQgbGFkYmFyLiIgfSkp OyByZXR1cm47IH0KICAgICAgICAgICAgaWYgKGoucGF0aCkgeyBjdXJQYXRoID0gai5wYXRoOyBj dXIudGV4dENvbnRlbnQgPSBqLnBhdGg7IH0KICAgICAgICAgICAgaWYgKCFqLmVudHJpZXMgfHwg IWouZW50cmllcy5sZW5ndGgpIHsgbGlzdEJveC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFz czogIm11dGVkIiwgdGV4dDogIihsZWVyKSIgfSkpOyByZXR1cm47IH0KICAgICAgICAgICAgai5l bnRyaWVzLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICB2YXIgcm93ID0gZWwo ImRpdiIsIHsgY2xhc3M6ICJmb2xkZXItcm93IiwgdGl0bGU6IGUucGF0aCwKICAgICAgICAgICAg ICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgaWYgKGUua2luZCA9PT0gImRpciIpIHsgbG9hZChl LnBhdGgpOyB9IGVsc2UgeyBQLm9wZW5FeHRlcm5hbChlLnBhdGgpOyB9IH0gfSk7CiAgICAgICAg ICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImZyLWljIiwgaHRtbDog aWMoZS5raW5kID09PSAiZGlyIiA/ICJkb2MiIDogImV4dCIpIH0pKTsKICAgICAgICAgICAgICBy b3cuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAiZnItbmFtZSIsIHRleHQ6IGUubmFt ZSB9KSk7CiAgICAgICAgICAgICAgaWYgKGUua2luZCA9PT0gImZpbGUiKSByb3cuYXBwZW5kQ2hp bGQoZWwoInNwYW4iLCB7IGNsYXNzOiAiZnItbWV0YSBtb25vIG11dGVkIiwgdGV4dDogKGUuZXh0 ID8gZS5leHQudG9VcHBlckNhc2UoKSA6ICIiKSArIChlLnNpemUgPyAiICAiICsgTWF0aC5yb3Vu ZChlLnNpemUgLyAxMDI0KSArICIgS0IiIDogIiIpIH0pKTsKICAgICAgICAgICAgICBsaXN0Qm94 LmFwcGVuZENoaWxkKHJvdyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSkuY2F0Y2goZnVu Y3Rpb24gKCkgeyBsaXN0Qm94LmlubmVySFRNTCA9ICIiOyBsaXN0Qm94LmFwcGVuZENoaWxkKGVs KCJkaXYiLCB7IGNsYXNzOiAibXV0ZWQiLCB0ZXh0OiAiT3JkbmVyIG5pY2h0IGxhZGJhciAoVmVy YmluZHVuZykuIiB9KSk7IH0pOwogICAgICAgIH0KICAgICAgICBsb2FkKHJhdyk7CiAgICAgIH0s CiAgICAgIGFjdGlvbnM6IFsKICAgICAgICB7IGxhYmVsOiAiUGZhZCDDpG5kZXJuIiwga2luZDog Imdob3N0IiwgYWxpZ246ICJsZWZ0Iiwgb25DbGljazogZnVuY3Rpb24gKGFwaSkgeyBhcGkuY2xv c2UoKTsgUC5lZGl0Tm9kZURsZyhpdCwgZnVuY3Rpb24gKCkgeyBQLm9wZW5Gb2xkZXIoaXQpOyB9 KTsgfSB9LAogICAgICAgIHsgbGFiZWw6ICJTY2hsaWVzc2VuIiwga2luZDogImdob3N0IiB9CiAg ICAgIF0KICAgIH0pOwogIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFydGlrZWwgYW56ZWlnZW4gKi8KICBQLm9wZW5B cnRpY2xlID0gZnVuY3Rpb24gKGl0KSB7CiAgICB2YXIgYSA9IGl0LmFydGljbGUgfHwge30sIGMg PSAkKCIuY2VudGVyIik7CiAgICBjLmNsYXNzTGlzdC5hZGQoImRvYyIsICJhcnRpY2xlIik7CiAg ICAkKCIjY3YtcGF0aCIpLnRleHRDb250ZW50ID0gKGl0LmxhYmVsIHx8IGEudGl0bGUgfHwgIkFy dGlrZWwiKTsKICAgIHZhciBob3N0ID0gJCgiI2N2LWFydGljbGUiKTsKICAgIGhvc3QuaW5uZXJI VE1MID0gIiI7CiAgICB2YXIgaGVhZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYXJ0LWhlYWQiIH0p OwogICAgLy8gU3RhbmQtRGF0dW0gb2JlbiByZWNodHMgKGF1cyBkZXIgUXVlbGxlKTsgZGlyZWt0 IGRhcnVudGVyIGRhcyAiZ2XDpG5kZXJ0Ii1EYXR1bS4KICAgIGlmIChhLmRhdGUpIGhlYWQuYXBw ZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJhcnQtZGF0ZSBtb25vIiwgdGV4dDogIlN0YW5k OiAiICsgUC5mbXREYXRlKGEuZGF0ZSkgfSkpOwogICAgaWYgKGEudXBkYXRlZCkgaGVhZC5hcHBl bmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImFydC1kYXRlIGFydC11cGRhdGVkIG1vbm8iLCB0 ZXh0OiAiZ2XDpG5kZXJ0OiAiICsgUC5mbXREYXRlKGEudXBkYXRlZCkgfSkpOwogICAgLy8gVlMt RWluc3R1ZnVuZyBhbHMgUGxha2V0dGUgKG51ciB3ZW5uIG5pY2h0ICJvZmZlbiIpLgogICAgaWYg KGEuY2xhc3NpZmljYXRpb24gJiYgYS5jbGFzc2lmaWNhdGlvbiAhPT0gIm9mZmVuIikgewogICAg ICBoZWFkLmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiYXJ0LWNsYXNzIGNscy0iICsg YS5jbGFzc2lmaWNhdGlvbi5yZXBsYWNlKC9bXmEtejAtOV0rL2dpLCAiLSIpLnRvTG93ZXJDYXNl KCksIHRleHQ6IGEuY2xhc3NpZmljYXRpb24gfSkpOwogICAgfQogICAgaGVhZC5hcHBlbmRDaGls ZChlbCgiaDEiLCB7IHRleHQ6IGEudGl0bGUgfHwgaXQubGFiZWwgfHwgIiIgfSkpOwogICAgdmFy IG1ldGEgPSBlbCgiZGl2IiwgeyBjbGFzczogImFydC1tZXRhIG1vbm8iIH0pOwogICAgaWYgKGEu YXV0aG9yKSBtZXRhLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBodG1sOiBpYygidXNlciIpICsg IjxzcGFuPiIgKyBlc2NhcGVIdG1sKGEuYXV0aG9yKSArICI8L3NwYW4+IiB9KSk7CiAgICBpZiAo YS52YWxpZFVudGlsKSBtZXRhLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyB0ZXh0OiAiZ8O8bHRp ZyBiaXMgIiArIFAuZm10RGF0ZShhLnZhbGlkVW50aWwpIH0pKTsKICAgIGlmIChhLnJldmlld2Vk QXQpIG1ldGEuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IHRleHQ6ICJnZXByw7xmdCAiICsgUC5m bXREYXRlKGEucmV2aWV3ZWRBdCkgKyAoYS5yZXZpZXdlZEJ5ID8gIiDCtyAiICsgYS5yZXZpZXdl ZEJ5IDogIiIpIH0pKTsKICAgIGlmIChtZXRhLmNoaWxkTm9kZXMubGVuZ3RoKSBoZWFkLmFwcGVu ZENoaWxkKG1ldGEpOwogICAgaWYgKGEudGFncyAmJiBhLnRhZ3MubGVuZ3RoKSB7CiAgICAgIHZh ciB0ZyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYXJ0LXRhZ3MiIH0pOwogICAgICBhLnRhZ3MuZm9y RWFjaChmdW5jdGlvbiAodCkgeyB0Zy5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJh cnQtdGFnIiwgdGV4dDogdCB9KSk7IH0pOwogICAgICBoZWFkLmFwcGVuZENoaWxkKHRnKTsKICAg IH0KICAgIGhvc3QuYXBwZW5kQ2hpbGQoaGVhZCk7CiAgICB2YXIgYm9keURpdiA9IGVsKCJkaXYi LCB7IGNsYXNzOiAiYXJ0LWJvZHkiIH0pOwogICAgaG9zdC5hcHBlbmRDaGlsZChib2R5RGl2KTsK ICAgIGlmIChhLmJvZHlFeHQgJiYgKGEuaHRtbCA9PSBudWxsIHx8IGEuaHRtbCA9PT0gIiIpICYm IFAubG9hZEFydGljbGVCb2R5KSB7CiAgICAgIC8vIEF1c2dlbGFnZXJ0ZXIgQm9keSAtPiBmYXVs IG5hY2hsYWRlbiwgZGFubiBwb3J0YWwtZ2VyZW5kZXJ0IChTYW5pdGl6ZXIgYmxlaWJ0KS4KICAg ICAgYm9keURpdi5pbm5lckhUTUwgPSAiPHAgY2xhc3M9XCJtdXRlZFwiPkluaGFsdCB3aXJkIGdl bGFkZW4g4oCmPC9wPiI7CiAgICAgIFAubG9hZEFydGljbGVCb2R5KGl0Ll9pZCwgZnVuY3Rpb24g KGh0bWwsIGVycikgewogICAgICAgIGJvZHlEaXYuaW5uZXJIVE1MID0gZXJyID8gIjxwIGNsYXNz PVwibXV0ZWRcIj5JbmhhbHQga29ubnRlIG5pY2h0IGdlbGFkZW4gd2VyZGVuLjwvcD4iIDogUC5z YW5pdGl6ZUh0bWwoaHRtbCB8fCAiIik7CiAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgYm9k eURpdi5pbm5lckhUTUwgPSBQLnNhbml0aXplSHRtbChhLmh0bWwgfHwgIiIpOwogICAgfQogICAg UC5jdXJBcnRpY2xlID0gaXQ7ICAgICAgICAgICAgICAgICAvLyBmdWVyIGRlbiAiQmVhcmJlaXRl biItS25vcGYgaW4gZGVyIExlaXN0ZQogICAgUC5tYXJrQ3VycmVudChQLm5hdkl0ZW1LZXkoaXQp KTsKICB9OwoKICBQLmNsb3NlRG9jID0gZnVuY3Rpb24gKCkgeyB2YXIgYyA9ICQoIi5jZW50ZXIi KTsgYy5jbGFzc0xpc3QucmVtb3ZlKCJkb2MiLCAiYXJ0aWNsZSIpOyAkKCIjY3YtZnJhbWUiKS5z ZXRBdHRyaWJ1dGUoInNyYyIsICJhYm91dDpibGFuayIpOyAkKCIjY3YtYXJ0aWNsZSIpLmlubmVy SFRNTCA9ICIiOyBQLmN1ckFydGljbGUgPSBudWxsOyBQLm1hcmtDdXJyZW50KG51bGwpOyB9OwoK ICAvKiBBa3R1ZWxsZW4gQXJ0aWtlbCBhbHMgUERGOiBCcm93c2VyLURydWNrIG1pdCBpc29saWVy dGVtIEBtZWRpYS1wcmludC1TdHlsZXNoZWV0LgogICAgIEtlaW4gVmVuZG9yLUpTLCBvZmZsaW5l LCBhdWNoIGZ1ZXIgTGVzZXIgKGZpbGU6Ly8pLiBEZXIgQXJ0aWtlbHRpdGVsIHdpcmQga3Vyegog ICAgIHp1bSBkb2N1bWVudC50aXRsZSAtPiBCcm93c2VyIHNjaGxhZWd0IGlobiBhbHMgUERGLURh dGVpbmFtZW4gdm9yLiAqLwogIFAucHJpbnRBcnRpY2xlID0gZnVuY3Rpb24gKCkgewogICAgdmFy IGl0ID0gUC5jdXJBcnRpY2xlOyBpZiAoIWl0KSByZXR1cm47CiAgICB2YXIgYSA9IGl0LmFydGlj bGUgfHwge307CiAgICB2YXIgdGl0bGUgPSAoYS50aXRsZSB8fCBpdC5sYWJlbCB8fCAiQXJ0aWtl bCIpOwogICAgdmFyIHByZXZUaXRsZSA9IGRvY3VtZW50LnRpdGxlOwogICAgdmFyIGRvbmUgPSBm YWxzZTsKICAgIGZ1bmN0aW9uIGNsZWFudXAoKSB7IGlmIChkb25lKSByZXR1cm47IGRvbmUgPSB0 cnVlOyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoInByaW50aW5nIik7IGRvY3VtZW50 LnRpdGxlID0gcHJldlRpdGxlOyB9CiAgICBkb2N1bWVudC50aXRsZSA9IHRpdGxlOwogICAgZG9j dW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJwcmludGluZyIpOwogICAgd2luZG93Lm9uYWZ0ZXJw cmludCA9IGNsZWFudXA7CiAgICB0cnkgeyB3aW5kb3cucHJpbnQoKTsgfSBjYXRjaCAoZSkgeyBj bGVhbnVwKCk7IHJldHVybjsgfQogICAgc2V0VGltZW91dChjbGVhbnVwLCAxNTAwKTsgICAvLyBG YWxsYmFjaywgZmFsbHMgb25hZnRlcnByaW50IG5pY2h0IGZldWVydCAoei4gQi4gQWJicnVjaCkK ICB9OwoKICAvKiBBcnRpa2VsLUluaGFsdCBNSVQgQmlsZGVybiBpbiBkaWUgWndpc2NoZW5hYmxh Z2UgKGVpbiBLbGljaykgLT4gd29hbmRlcnMgKFdvcmQvT3V0bG9vay8KICAgICBNYWlsKSBwZXIg U3RyZytWIGVpbmZ1ZWdlbi4gQmlsZGVyIHdlcmRlbiwgd28gbW9lZ2xpY2gsIGFscyBkYXRhOi1V UkkgZWluZ2ViZXR0ZXQgKHBlcgogICAgIENhbnZhcykgLT4gcmVpc2VuIG1pdCBkZW0gRWluZnVl Z2VuIG1pdDsgc29uc3QgYWJzb2x1dGUgVVJMLiBGYWxsYmFjazogTGl2ZS1BdXN3YWhsICsKICAg ICBleGVjQ29tbWFuZCgnY29weScpLiBPZmZsaW5lL2ZpbGU6Ly8tdGF1Z2xpY2g7IGtlaW4gVmVu ZG9yLUpTLiAqLwogIGZ1bmN0aW9uIGltZ1RvRGF0YVVSTChpbWcpIHsKICAgIHRyeSB7CiAgICAg IGlmICghaW1nIHx8ICFpbWcubmF0dXJhbFdpZHRoKSByZXR1cm4gbnVsbDsKICAgICAgdmFyIGMg PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKICAgICAgYy53aWR0aCA9IGltZy5u YXR1cmFsV2lkdGg7IGMuaGVpZ2h0ID0gaW1nLm5hdHVyYWxIZWlnaHQ7CiAgICAgIGMuZ2V0Q29u dGV4dCgiMmQiKS5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKICAgICAgcmV0dXJuIGMudG9EYXRhVVJM KCJpbWFnZS9wbmciKTsgICAgICAgICAgICAgICAgIC8vIHdpcmZ0IGJlaSAidGFpbnRlZCIgKHou IEIuIGZpbGU6Ly8pIC0+IEZhbGxiYWNrCiAgICB9IGNhdGNoIChlKSB7IHJldHVybiBudWxsOyB9 CiAgfQogIFAuY29weUFydGljbGUgPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIgaG9zdCA9ICQoIiNj di1hcnRpY2xlIik7CiAgICBpZiAoIWhvc3QgfHwgIVAuY3VyQXJ0aWNsZSkgeyBQLnRvYXN0KCJL ZWluIEFydGlrZWwgZ2XDtmZmbmV0LiIsIHRydWUpOyByZXR1cm47IH0KICAgIHZhciBjbG9uZSA9 IGhvc3QuY2xvbmVOb2RlKHRydWUpOwogICAgdmFyIGxpdmUgPSBob3N0LnF1ZXJ5U2VsZWN0b3JB bGwoImltZyIpLCBjbCA9IGNsb25lLnF1ZXJ5U2VsZWN0b3JBbGwoImltZyIpOwogICAgZm9yICh2 YXIgaSA9IDA7IGkgPCBjbC5sZW5ndGg7IGkrKykgewogICAgICB2YXIgZCA9IGltZ1RvRGF0YVVS TChsaXZlW2ldKTsKICAgICAgaWYgKGQpIGNsW2ldLnNldEF0dHJpYnV0ZSgic3JjIiwgZCk7CiAg ICAgIGVsc2UgaWYgKGxpdmVbaV0pIGNsW2ldLnNldEF0dHJpYnV0ZSgic3JjIiwgbGl2ZVtpXS5z cmMpOyAgIC8vIGFic29sdXRlIFVSTCAoSGVsZmVyL2h0dHApCiAgICAgIGNsW2ldLnJlbW92ZUF0 dHJpYnV0ZSgibG9hZGluZyIpOyBjbFtpXS5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc3JjIik7CiAg ICB9CiAgICB2YXIgaHRtbCA9ICc8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+JyArIGNsb25lLmlubmVy SFRNTDsKICAgIHZhciB0ZXh0ID0gaG9zdC5pbm5lclRleHQgfHwgIiI7CiAgICBmdW5jdGlvbiBv aygpIHsgUC50b2FzdCgiQXJ0aWtlbCBrb3BpZXJ0IOKAlCB3b2FuZGVycyBtaXQgU3RyZytWIGVp bmbDvGdlbi4iKTsgfQogICAgZnVuY3Rpb24gbGVnYWN5KCkgewogICAgICB0cnkgewogICAgICAg IHZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7IHNlbC5yZW1vdmVBbGxSYW5nZXMoKTsK ICAgICAgICB2YXIgciA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7IHIuc2VsZWN0Tm9kZUNvbnRl bnRzKGhvc3QpOyBzZWwuYWRkUmFuZ2Uocik7CiAgICAgICAgdmFyIGRvbmUgPSBkb2N1bWVudC5l eGVjQ29tbWFuZCgiY29weSIpOyBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICAgICAgZG9uZSA/ IG9rKCkgOiBQLnRvYXN0KCJLb3BpZXJlbiBuaWNodCBtw7ZnbGljaC4iLCB0cnVlKTsKICAgICAg fSBjYXRjaCAoZSkgeyBQLnRvYXN0KCJLb3BpZXJlbiBuaWNodCBtw7ZnbGljaC4iLCB0cnVlKTsg fQogICAgfQogICAgaWYgKG5hdmlnYXRvci5jbGlwYm9hcmQgJiYgd2luZG93LkNsaXBib2FyZEl0 ZW0pIHsKICAgICAgdHJ5IHsKICAgICAgICB2YXIgaXRlbSA9IG5ldyB3aW5kb3cuQ2xpcGJvYXJk SXRlbSh7CiAgICAgICAgICAidGV4dC9odG1sIjogbmV3IEJsb2IoW2h0bWxdLCB7IHR5cGU6ICJ0 ZXh0L2h0bWwiIH0pLAogICAgICAgICAgInRleHQvcGxhaW4iOiBuZXcgQmxvYihbdGV4dF0sIHsg dHlwZTogInRleHQvcGxhaW4iIH0pCiAgICAgICAgfSk7CiAgICAgICAgbmF2aWdhdG9yLmNsaXBi b2FyZC53cml0ZShbaXRlbV0pLnRoZW4ob2ssIGxlZ2FjeSk7CiAgICAgIH0gY2F0Y2ggKGUpIHsg bGVnYWN5KCk7IH0KICAgIH0gZWxzZSB7IGxlZ2FjeSgpOyB9CiAgfTsKCiAgLyogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSFRNTC1T YW5pdGl6ZXIgKGbDvHIgQXJ0aWtlbC1Cb2R5KSAqLwogIC8vIEFsbG93bGlzdDogbnVyIGRpZXNl IFRhZ3MgdWViZXJsZWJlbi4gQWxsZXMgYW5kZXJlIChzY3JpcHQsIHN0eWxlLCBtc28tKiwKICAv LyBPdXRsb29rLS9Xb3JkLU11ZWxsIGJlaW0gUmVpbmtvcGllcmVuKSB3aXJkIGVudGZlcm50LCBJ bmhhbHQgYmxlaWJ0IGVyaGFsdGVuLgogIHZhciBBTExPV0VEID0geyBCOjEsU1RST05HOjEsSTox LEVNOjEsVToxLFM6MSxQOjEsQlI6MSxVTDoxLE9MOjEsTEk6MSxIMjoxLEgzOjEsSDQ6MSxBOjEs CiAgICAgICAgICAgICAgICAgIEJMT0NLUVVPVEU6MSxTUEFOOjEsRElWOjEsSFI6MSxDT0RFOjEs UFJFOjEsRklHVVJFOjEsSU1HOjEsRklHQ0FQVElPTjoxLFRBQkxFOjEsVEhFQUQ6MSxUQk9EWTox LFRSOjEsVEg6MSxURDoxIH07CiAgLy8gS29tcGxldHQgZW50ZmVybmVuIChzYW10IEluaGFsdCkg 4oCUIG5pZSBudXIgImF1c3BhY2tlbiIuCiAgdmFyIERST1AgPSB7IFNDUklQVDoxLCBTVFlMRTox LCBJRlJBTUU6MSwgT0JKRUNUOjEsIEVNQkVEOjEsIExJTks6MSwgTUVUQToxLCBIRUFEOjEsIFRJ VExFOjEsICJPOlAiOjEgfTsKICAvLyBTaWNoZXJlIFF1ZWxsZW4gZnVlciBCaWxkL1BERjogbG9r YWxlIEFzc2V0LUFibGFnZSwgUG9ydGFsLURva3Mgb2RlciBEYXRhLVVSSSAoQmlsZCkuCiAgdmFy IFNBRkVfU1JDID0gL14oZG9rdW1lbnRlXC98YmFvXC98ZGF0YTppbWFnZVwvKHBuZ3xqcGU/Z3xn aWZ8d2VicHxibXApO2Jhc2U2NCx8aHR0cHM/OnxcL1wvfFwuXC5cLykvaTsKICBmdW5jdGlvbiBz YWZlQ2xhc3ModikgeyByZXR1cm4gKHYgfHwgIiIpLnNwbGl0KC9ccysvKS5maWx0ZXIoZnVuY3Rp b24gKGMpIHsgcmV0dXJuIC9eKGVtYmVkfGltZ3xwZGZ8cGRmLWljfHBkZi1uYW1lfHBkZi1tZXRh KSQvLnRlc3QoYyk7IH0pLmpvaW4oIiAiKTsgfQogIC8vIE51ciB1bmdlZmFlaHJsaWNoZSBDU1Mt RWlnZW5zY2hhZnRlbiAoQXVzcmljaHR1bmcvRmFyYmUvR3JvZXNzZSkgenVsYXNzZW4uCiAgdmFy IFNBRkVfQ1NTID0gL14odGV4dC1hbGlnbnxjb2xvcnxiYWNrZ3JvdW5kLWNvbG9yfGZvbnQtc2l6 ZXxmb250LXdlaWdodHxmb250LXN0eWxlfHRleHQtZGVjb3JhdGlvbnxwYWRkaW5nLWxlZnR8bWFy Z2luLWxlZnQpJC87CiAgZnVuY3Rpb24gc2FmZVN0eWxlKHYpIHsKICAgIHJldHVybiAodiB8fCAi Iikuc3BsaXQoIjsiKS5tYXAoZnVuY3Rpb24gKGQpIHsgcmV0dXJuIGQudHJpbSgpOyB9KS5maWx0 ZXIoZnVuY3Rpb24gKGQpIHsKICAgICAgaWYgKCFkIHx8IGQuaW5kZXhPZigiOiIpIDwgMCkgcmV0 dXJuIGZhbHNlOwogICAgICB2YXIgcHJvcCA9IGQuc3BsaXQoIjoiKVswXS50cmltKCkudG9Mb3dl ckNhc2UoKTsKICAgICAgLy8gRGVmZW5zZS1pbi1EZXB0aDogQmFja3NsYXNoIChDU1MtRXNjYXBl LVVtZ2VodW5nIHdpZSBcNzVybCkgc293aWUgYmVoYXZpb3IvLW1vei1iaW5kaW5nCiAgICAgIC8v IChJRS9HZWNrby1MZWdhY3kpIHp1c2FldHpsaWNoIHp1ciB1cmwofGV4cHJlc3Npb258amF2YXNj cmlwdDp8QGltcG9ydC1TcGVycmUgdmVyd2VyZmVuLgogICAgICBpZiAoZC5pbmRleE9mKCJcXCIp ID49IDApIHJldHVybiBmYWxzZTsKICAgICAgaWYgKC91cmxcKHxleHByZXNzaW9ufGphdmFzY3Jp cHQ6fEBpbXBvcnR8YmVoYXZpb3J8LW1vei1iaW5kaW5nL2kudGVzdChkKSkgcmV0dXJuIGZhbHNl OwogICAgICByZXR1cm4gU0FGRV9DU1MudGVzdChwcm9wKTsKICAgIH0pLmpvaW4oIjsgIik7CiAg fQogIFAuc2FuaXRpemVIdG1sID0gZnVuY3Rpb24gKGh0bWwpIHsKICAgIHZhciBib3ggPSBkb2N1 bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsgYm94LmlubmVySFRNTCA9IGh0bWwgfHwgIiI7CiAg ICAoZnVuY3Rpb24gd2Fsayhub2RlKSB7CiAgICAgIHZhciBraWRzID0gQXJyYXkucHJvdG90eXBl LnNsaWNlLmNhbGwobm9kZS5jaGlsZE5vZGVzKTsKICAgICAga2lkcy5mb3JFYWNoKGZ1bmN0aW9u IChuKSB7CiAgICAgICAgaWYgKG4ubm9kZVR5cGUgPT09IDEpIHsKICAgICAgICAgIGlmIChEUk9Q W24udGFnTmFtZV0pIHsgbm9kZS5yZW1vdmVDaGlsZChuKTsgcmV0dXJuOyB9CiAgICAgICAgICAv LyBVbmJla2FubnRlcyBUYWcgKHdlZGVyIGVybGF1YnQgbm9jaCB2ZXJib3Rlbik6IGVudHdyYXBw ZW4g4oCUIEFCRVIgZXJzdCBkZW4KICAgICAgICAgIC8vIFRlaWxiYXVtIHNhZXViZXJuLCBzb25z dCB1ZWJlcmxlYmVuIG9uKi1IYW5kbGVyL1NjcmlwdHMgaW4gaG9jaGdlem9nZW5lbiBLaW5kZXJu CiAgICAgICAgICAvLyAoei4gQi4gPHN2Zz48aW1nIG9uZXJyb3I94oCmPikuIHdhbGsobikgbWFj aHQgZGVuIEluaGFsdCB6dWVyc3Qgc2F1YmVyLgogICAgICAgICAgaWYgKCFBTExPV0VEW24udGFn TmFtZV0pIHsgd2FsayhuKTsgd2hpbGUgKG4uZmlyc3RDaGlsZCkgbm9kZS5pbnNlcnRCZWZvcmUo bi5maXJzdENoaWxkLCBuKTsgbm9kZS5yZW1vdmVDaGlsZChuKTsgcmV0dXJuOyB9CiAgICAgICAg ICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuLmF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rp b24gKGF0KSB7CiAgICAgICAgICAgIHZhciBubSA9IGF0Lm5hbWUudG9Mb3dlckNhc2UoKSwgdmFs ID0gYXQudmFsdWU7CiAgICAgICAgICAgIGlmIChubS5zbGljZSgwLCAyKSA9PT0gIm9uIikgeyBu LnJlbW92ZUF0dHJpYnV0ZShhdC5uYW1lKTsgcmV0dXJuOyB9ICAgLy8gRXZlbnQtSGFuZGxlciBy YXVzCiAgICAgICAgICAgIGlmIChuLnRhZ05hbWUgPT09ICJBIiAmJiBubSA9PT0gImhyZWYiKSB7 ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlaW5lIFVSTC1RdWVsbGUgKGNvcmUuanMpCiAg ICAgICAgICAgICAgaWYgKFAuc2FmZVVybCh2YWwpKSB7IC8qIG9rICovIH0KICAgICAgICAgICAg ICBlbHNlIGlmIChQLnNhZmVTaGFyZUhyZWYodmFsKSkgeyBuLnNldEF0dHJpYnV0ZSgidGFyZ2V0 IiwgIl9ibGFuayIpOyBuLnNldEF0dHJpYnV0ZSgicmVsIiwgIm5vb3BlbmVyIik7IH0gIC8vIEJl aG9lcmRlbi1TaGFyZS1WZXJ3ZWlzIChtaWdyaWVydCkgLT4gRXhwbG9yZXIvSUUKICAgICAgICAg ICAgICBlbHNlIG4ucmVtb3ZlQXR0cmlidXRlKGF0Lm5hbWUpOwogICAgICAgICAgICB9CiAgICAg ICAgICAgIGVsc2UgaWYgKG4udGFnTmFtZSA9PT0gIklNRyIgJiYgbm0gPT09ICJzcmMiKSB7IGlm ICghU0FGRV9TUkMudGVzdCh2YWwpKSBuLnJlbW92ZUF0dHJpYnV0ZShhdC5uYW1lKTsgfQogICAg ICAgICAgICBlbHNlIGlmIChuLnRhZ05hbWUgPT09ICJJTUciICYmIG5tID09PSAiYWx0IikgeyAv KiBlcmxhdWJ0ICovIH0KICAgICAgICAgICAgZWxzZSBpZiAobi50YWdOYW1lID09PSAiRklHVVJF IiAmJiBubSA9PT0gImRhdGEtc3JjIikgeyBpZiAoIS9eKGRva3VtZW50ZVwvfGh0dHBzPzp8XC9c L3xcLlwuXC8pL2kudGVzdCh2YWwpIHx8ICEvXC5wZGYoJHxcPykvaS50ZXN0KHZhbCkpIG4ucmVt b3ZlQXR0cmlidXRlKGF0Lm5hbWUpOyB9CiAgICAgICAgICAgIGVsc2UgaWYgKG5tID09PSAiY2xh c3MiKSB7IHZhciBzYyA9IHNhZmVDbGFzcyh2YWwpOyBpZiAoc2MpIG4uc2V0QXR0cmlidXRlKCJj bGFzcyIsIHNjKTsgZWxzZSBuLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKTsgfQogICAgICAgICAg ICBlbHNlIGlmIChubSA9PT0gInN0eWxlIikgeyB2YXIgc3MgPSBzYWZlU3R5bGUodmFsKTsgaWYg KHNzKSBuLnNldEF0dHJpYnV0ZSgic3R5bGUiLCBzcyk7IGVsc2Ugbi5yZW1vdmVBdHRyaWJ1dGUo InN0eWxlIik7IH0KICAgICAgICAgICAgZWxzZSBpZiAoKG5tID09PSAidGFyZ2V0IiB8fCBubSA9 PT0gInJlbCIpICYmIG4udGFnTmFtZSA9PT0gIkEiKSB7IC8qIGVybGF1YnQgKi8gfQogICAgICAg ICAgICBlbHNlIG4ucmVtb3ZlQXR0cmlidXRlKGF0Lm5hbWUpOwogICAgICAgICAgfSk7CiAgICAg ICAgICBpZiAobi50YWdOYW1lID09PSAiQSIgJiYgbi5nZXRBdHRyaWJ1dGUoImhyZWYiKSkgewog ICAgICAgICAgICBpZiAoL15wb3J0YWw6W1x3LV0rJC9pLnRlc3Qobi5nZXRBdHRyaWJ1dGUoImhy ZWYiKSkpIHsKICAgICAgICAgICAgICAvLyBJbnRlcm5lciBMaW5rIC0+IHBlciBLbGljay1EZWxl Z2F0aW9uIChQLmluaXRJbnRlcm5hbExpbmtzKSBuYXZpZ2llcmVuLCBOSUNIVCBfYmxhbmsuCiAg ICAgICAgICAgICAgbi5yZW1vdmVBdHRyaWJ1dGUoInRhcmdldCIpOyBuLnNldEF0dHJpYnV0ZSgi cmVsIiwgIm5vb3BlbmVyIik7IG4uY2xhc3NMaXN0LmFkZCgicG9ydGFsLWxpbmsiKTsKICAgICAg ICAgICAgfSBlbHNlIHsgbi5zZXRBdHRyaWJ1dGUoInRhcmdldCIsICJfYmxhbmsiKTsgbi5zZXRB dHRyaWJ1dGUoInJlbCIsICJub29wZW5lciIpOyB9CiAgICAgICAgICB9CiAgICAgICAgICB3YWxr KG4pOwogICAgICAgIH0gZWxzZSBpZiAobi5ub2RlVHlwZSAhPT0gMykgeyBub2RlLnJlbW92ZUNo aWxkKG4pOyB9ICAgLy8gS29tbWVudGFyZSBldGMuIHJhdXMKICAgICAgfSk7CiAgICB9KShib3gp OwogICAgcmV0dXJuIGJveC5pbm5lckhUTUw7CiAgfTsKCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVmVybGF1ZiAoaW50ZXJu LCBmdWVyIOKAnk5ldWVzICYgR2VhZW5kZXJ0ZXMiKSAqLwogIFAucmVtZW1iZXIgPSBmdW5jdGlv biAoaXQpIHsKICAgIGlmICghaXQuYXJ0aWNsZSAmJiAhaXQuZm9sZGVyICYmICghaXQuaHJlZiB8 fCAvXm1haWx0bzovaS50ZXN0KGl0LmhyZWYpKSkgcmV0dXJuOwogICAgdmFyIGsgPSBQLm5hdkl0 ZW1LZXkoaXQpLCBsaXN0ID0gUC5yZWFkKFAuTFMuaGlzdCwgW10pOwogICAgbGlzdCA9IGxpc3Qu ZmlsdGVyKGZ1bmN0aW9uIChmKSB7IHJldHVybiBQLm5hdkl0ZW1LZXkoZikgIT09IGs7IH0pOwog ICAgbGlzdC51bnNoaWZ0KHNsaW1SZWYoaXQpKTsKICAgIFAud3JpdGUoUC5MUy5oaXN0LCBsaXN0 LnNsaWNlKDAsIDIwKSk7ICAgLy8gaW50ZXJuIGZ1ZXIg4oCeU2VpdCBsZXR6dGVtIEJlc3VjaCIv TmV1ZXMtTW9kYWw7IGtlaW4gc2ljaHRiYXJlciBWZXJsYXVmIG1laHIKICB9OwogIGZ1bmN0aW9u IHNsaW1SZWYoaXQpIHsKICAgIC8vIFJlZmVyZW56IGF1ZiBOYXYtRWludHJhZyBzY2hsYW5rIGhh bHRlbjsgQXJ0aWtlbCB3ZXJkZW4gcGVyIF9pZCByZWZlcmVuemllcnQgKGluIE5BViBnZXNwZWlj aGVydCkKICAgIHZhciBvID0geyBsYWJlbDogaXQubGFiZWwsIGhyZWY6IGl0LmhyZWYsIHRhcmdl dDogaXQudGFyZ2V0IH07CiAgICBpZiAoaXQuYXJ0aWNsZSkgeyBvLmFydGljbGUgPSB0cnVlOyBv Ll9pZCA9IGl0Ll9pZDsgfQogICAgcmV0dXJuIG87CiAgfQogIC8qIExvZXN0IFJlZmVyZW56ZW4g YXVmIGRlbiBrYW5vbmlzY2hlbiBLbm90ZW4gYXVmIChQaGFzZSA4LzEwKToKICAgICAtIFZlcmxh dWYtQXJ0aWtlbCAoe2FydGljbGU6dHJ1ZSxfaWR9KSAtPiBlY2h0ZXIgTmF2LUtub3RlbgogICAg IC0gQWxpYXMtS25vdGVuICh7cmVmOiI8aWQ+In0sIFBoYXNlIDEwKSAtPiBrYW5vbmlzY2hlciBL bm90ZW47IFJlZi1MYWJlbCBoYXQgVm9ycmFuZwogICAgIFp5a2xlbi0vVGllZmVuLXNpY2hlciAo bWF4LiA4IEF1ZmxvZXN1bmdlbikuICovCiAgUC5yZXNvbHZlUmVmID0gZnVuY3Rpb24gKHJlZikg ewogICAgdmFyIHNlZW4gPSAwOwogICAgd2hpbGUgKHJlZiAmJiBzZWVuKysgPCA4KSB7CiAgICAg IGlmIChyZWYucmVmKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWxp YXMtS25vdGVuIChNZWhyZmFjaC1FaW5iaW5kdW5nKQogICAgICAgIHZhciBjID0gUC5maW5kTmF2 SXRlbUJ5SWQocmVmLnJlZik7IGlmICghYyB8fCBjID09PSByZWYpIGJyZWFrOwogICAgICAgIHZh ciBsYmwgPSByZWYubGFiZWw7CiAgICAgICAgcmVmID0gbGJsID8gUC5tZXJnZUxhYmVsKGMsIGxi bCkgOiBjOyBjb250aW51ZTsKICAgICAgfQogICAgICBpZiAocmVmLmFydGljbGUgPT09IHRydWUg JiYgcmVmLl9pZCkgeyAgICAgICAgICAgIC8vIHNjaGxhbmtlIFZlcmxhdWYtUmVmZXJlbnoKICAg ICAgICB2YXIgZiA9IFAuZmluZE5hdkl0ZW1CeUlkKHJlZi5faWQpOyBpZiAoZiAmJiBmICE9PSBy ZWYpIHsgcmVmID0gZjsgY29udGludWU7IH0KICAgICAgfQogICAgICBicmVhazsKICAgIH0KICAg IHJldHVybiByZWY7CiAgfTsKICAvLyBLYW5vbmlzY2hlbiBLbm90ZW4gbWl0IGFid2VpY2hlbmRl bSBBbnplaWdlLUxhYmVsIHp1cnVlY2tnZWJlbiwgb2huZSBPcmlnaW5hbCB6dSBtdXRpZXJlbi4K ICBQLm1lcmdlTGFiZWwgPSBmdW5jdGlvbiAoY2Fub24sIGxhYmVsKSB7CiAgICBpZiAoIWxhYmVs IHx8IGNhbm9uLmxhYmVsID09PSBsYWJlbCkgcmV0dXJuIGNhbm9uOwogICAgdmFyIG8gPSB7fTsg Zm9yICh2YXIgayBpbiBjYW5vbikgb1trXSA9IGNhbm9uW2tdOyBvLmxhYmVsID0gbGFiZWw7IHJl dHVybiBvOwogIH07CiAgZnVuY3Rpb24gcmVzb2x2ZVJlZihyKSB7IHJldHVybiBQLnJlc29sdmVS ZWYocik7IH0gICAvLyBsb2thbGVyIEFsaWFzIChCZXN0YW5kc2F1ZnJ1ZmUpCgogIC8qIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE5B Vi1IZWxmZXIgKGbDvHIgQXJ0aWtlbC1Nb2R1bCkgKi8KICBQLmVhY2hOYXZJdGVtID0gZnVuY3Rp b24gKGNiKSB7CiAgICBQLk5BVi5zZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChzKSB7IChmdW5j dGlvbiB3KGl0ZW1zLCBwYXJlbnQpIHsgKGl0ZW1zIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChp dCkgeyBjYihpdCwgcGFyZW50LCBzKTsgaWYgKGl0LmNoaWxkcmVuKSB3KGl0LmNoaWxkcmVuLCBp dCk7IH0pOyB9KShzLml0ZW1zLCBudWxsKTsgfSk7CiAgfTsKICBQLmZpbmROYXZJdGVtQnlJZCA9 IGZ1bmN0aW9uIChpZCkgeyBpZiAoIWlkKSByZXR1cm4gbnVsbDsgdmFyIGhpdCA9IG51bGw7IFAu ZWFjaE5hdkl0ZW0oZnVuY3Rpb24gKGl0KSB7IGlmIChpdC5faWQgPT09IGlkKSBoaXQgPSBpdDsg fSk7IHJldHVybiBoaXQ7IH07CgogIC8qIFN0YWJpbGUgSURzIGZ1ZXIgSkVERU4gTmF2LUtub3Rl biBzaWNoZXJzdGVsbGVuIChQaGFzZSA4KSDigJQgRnVuZGFtZW50IGZ1ZXIKICAgICBpbnRlcm5l IExpbmtzIChwb3J0YWw6PGlkPikgdW5kIE1laHJmYWNoLUVpbmJpbmR1bmcuIElkZW1wb3RlbnQu IEFydGlrZWwKICAgICBiZWhhbHRlbiBpaHIgdm9yaGFuZGVuZXMgYXJ0LeKApi9faWQuIFdpcmQg ZWlubWFsIGJlaW0gSW5pdCBhdWZnZXJ1ZmVuOyBkaWUKICAgICBJRHMgd2VyZGVuIGJlaW0gbmFl Y2hzdGVuIFZlcm9lZmZlbnRsaWNoZW4gaW4gZGF0YS1uYXYuanMgZmVzdGdlc2NocmllYmVuLiAq LwogIFAubmF2RW5zdXJlSWRzID0gZnVuY3Rpb24gKCkgewogICAgdmFyIGNoYW5nZWQgPSBmYWxz ZTsKICAgIFAuZWFjaE5hdkl0ZW0oZnVuY3Rpb24gKGl0KSB7IGlmICghaXQuX2lkICYmICFpdC5o ZWFkaW5nKSB7IGl0Ll9pZCA9IFAudWlkKCJuIik7IGNoYW5nZWQgPSB0cnVlOyB9IH0pOwogICAg cmV0dXJuIGNoYW5nZWQ7CiAgfTsKCiAgLyogS2xpY2stRGVsZWdhdGlvbiBmdWVyIGludGVybmUg TGlua3MgKFBoYXNlIDkpOiA8YSBocmVmPSJwb3J0YWw6PGlkPiI+IHdpcmQKICAgICBOSUNIVCBh bHMgVVJMIGdlb2VmZm5ldCwgc29uZGVybiBuYXZpZ2llcnQgaW0gUG9ydGFsLiBEZWNrdCBBcnRp a2VsLUluaGFsdAogICAgIFVORCBGZWVkLUJvZGllcyBhYi4gSW0gRWRpdG9yIChjb250ZW50ZWRp dGFibGUpIE5JQ0hUIGFiZmFuZ2VuLiAqLwogIFAuaW5pdEludGVybmFsTGlua3MgPSBmdW5jdGlv biAoKSB7CiAgICBpZiAoUC5faW50TGlua3MpIHJldHVybjsgUC5faW50TGlua3MgPSB0cnVlOwog ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoZSkgewogICAg ICB2YXIgdCA9IGUudGFyZ2V0LCBhID0gdCAmJiB0LmNsb3Nlc3QgPyB0LmNsb3Nlc3QoJ2FbaHJl Zl49InBvcnRhbDoiXScpIDogbnVsbDsKICAgICAgaWYgKCFhIHx8IGEuaXNDb250ZW50RWRpdGFi bGUpIHJldHVybjsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICB2YXIgaXQgPSBQLmZp bmROYXZJdGVtQnlJZChhLmdldEF0dHJpYnV0ZSgiaHJlZiIpLnNsaWNlKDcpKTsKICAgICAgaWYg KGl0KSBQLm5hdmlnYXRlKFAucmVzb2x2ZVJlZihpdCkpOwogICAgICBlbHNlIFAudG9hc3QoIlZl cmtuw7xwZnRlcyBaaWVsIG5pY2h0IGdlZnVuZGVuIChldnRsLiBub2NoIG5pY2h0IHZlcsO2ZmZl bnRsaWNodCkuIiwgdHJ1ZSk7CiAgICB9KTsKICB9OwoKICAvKiBBdXN3YWhsLURpYWxvZzogZWlu ZW4gTmF2LUtub3RlbiBhbHMgaW50ZXJuZXMgTGluay1aaWVsIHdhZWhsZW4gKFBoYXNlIDkpLgog ICAgIExpZWZlcnQgZGVtIENhbGxiYWNrIHsgX2lkLCBsYWJlbCB9LiBHZW51dHp0IHZvbSBBcnRp a2VsLUVkaXRvci4gKi8KICBQLm9wZW5OYXZQaWNrZXIgPSBmdW5jdGlvbiAoY2IpIHsKICAgIHZh ciBpdGVtcyA9IFtdOwogICAgUC5lYWNoTmF2SXRlbShmdW5jdGlvbiAoaXQpIHsgaWYgKCFpdC5o ZWFkaW5nICYmICFpdC5yZWYgJiYgKGl0LmFydGljbGUgfHwgaXQuaHJlZiB8fCBpdC5mb2xkZXIp KSBpdGVtcy5wdXNoKGl0KTsgfSk7CiAgICB2YXIgbGlzdEhvc3Q7CiAgICBmdW5jdGlvbiByZW5k ZXIoZmlsdGVyKSB7CiAgICAgIGxpc3RIb3N0LmlubmVySFRNTCA9ICIiOwogICAgICB2YXIgbmYg PSBQLmRlYWNjZW50KGZpbHRlciB8fCAiIiksIHNob3duID0gMDsKICAgICAgaXRlbXMuZm9yRWFj aChmdW5jdGlvbiAoaXQpIHsKICAgICAgICB2YXIgbGFiZWwgPSBpdC5sYWJlbCB8fCAoaXQuYXJ0 aWNsZSAmJiBpdC5hcnRpY2xlLnRpdGxlKSB8fCBpdC5ocmVmIHx8ICIiOwogICAgICAgIGlmIChu ZiAmJiBQLmRlYWNjZW50KGxhYmVsKS5pbmRleE9mKG5mKSA8IDApIHJldHVybjsKICAgICAgICBp ZiAoKytzaG93biA+IDIwMCkgcmV0dXJuOwogICAgICAgIHZhciBraW5kID0gaXQuYXJ0aWNsZSA/ ICJBcnRpa2VsIiA6IGl0LmZvbGRlciA/ICJPcmRuZXIiIDogKGl0LnRhcmdldCA9PT0gIl9ibGFu ayIgPyAiTGluayIgOiAiRG9rdW1lbnQiKTsKICAgICAgICB2YXIgcm93ID0gZWwoImJ1dHRvbiIs IHsgdHlwZTogImJ1dHRvbiIsIGNsYXNzOiAibnAtcm93Iiwgb25jbGljazogZnVuY3Rpb24gKCkg ewogICAgICAgICAgaWYgKCFpdC5faWQpIGl0Ll9pZCA9IFAudWlkKCJuIik7CiAgICAgICAgICBt LmNsb3NlKCk7IGNiKHsgX2lkOiBpdC5faWQsIGxhYmVsOiBsYWJlbCB9KTsKICAgICAgICB9IH0p OwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJucC1pYyIsIGh0 bWw6IGljKGl0LmFydGljbGUgPyAiYXJ0aWNsZSIgOiAoaXQuZm9sZGVyID8gImRvYyIgOiAoaXQu dGFyZ2V0ID09PSAiX2JsYW5rIiA/ICJleHQiIDogImRvYyIpKSkgfSkpOwogICAgICAgIHJvdy5h cHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJucC1sYmwiLCB0ZXh0OiBsYWJlbCB9KSk7 CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogIm5wLWtpbmQgbW9u byIsIHRleHQ6IGtpbmQgfSkpOwogICAgICAgIGxpc3RIb3N0LmFwcGVuZENoaWxkKHJvdyk7CiAg ICAgIH0pOwogICAgICBpZiAoIXNob3duKSBsaXN0SG9zdC5hcHBlbmRDaGlsZChlbCgiZGl2Iiwg eyBjbGFzczogIm11dGVkIiwgdGV4dDogIktlaW4gVHJlZmZlci4iIH0pKTsKICAgIH0KICAgIHZh ciBtID0gUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiSW50ZXJuZW4gTGluayBlaW5mw7xnZW4iLCBp Y29uOiAibGluayIsIHNpemU6ICJtZCIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uIChiKSB7CiAgICAg ICAgdmFyIHEgPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJ0ZXh0IiwgY2xhc3M6ICJucC1zZWFyY2gi LCBwbGFjZWhvbGRlcjogIlppZWwgc3VjaGVuIOKApiIsICJhcmlhLWxhYmVsIjogIlN1Y2hlbiIs CiAgICAgICAgICBvbmlucHV0OiBmdW5jdGlvbiAoKSB7IHJlbmRlcih0aGlzLnZhbHVlKTsgfSB9 KTsKICAgICAgICBiLmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiZmllbGQiIH0sIFtx XSkpOwogICAgICAgIGxpc3RIb3N0ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJucC1saXN0IiB9KTsK ICAgICAgICBiLmFwcGVuZENoaWxkKGxpc3RIb3N0KTsKICAgICAgICByZW5kZXIoIiIpOwogICAg ICB9LAogICAgICBhY3Rpb25zOiBbeyBsYWJlbDogIkFiYnJlY2hlbiIsIGtpbmQ6ICJnaG9zdCIg fV0KICAgIH0pOwogIH07CgogIC8qIEdldGVpbHRlIEJhdW0tTXV0YXRpb25lbiAoTmF2LUVkaXRv ciwgUGhhc2UgNykg4oCUIHRpZWZlbnVuYWJoYWVuZ2lnLiAqLwogIC8vIEZpbmRldCBlaW5lbiBF aW50cmFnIGltIEJhdW06IHsgYXJyLCBpZHgsIHBhcmVudCwgc2VjdGlvbiB9LgogIFAubmF2Rmlu ZCA9IGZ1bmN0aW9uIChpdGVtKSB7CiAgICB2YXIgcmVzID0gbnVsbDsKICAgIFAuTkFWLnNlY3Rp b25zLmZvckVhY2goZnVuY3Rpb24gKHMpIHsKICAgICAgKGZ1bmN0aW9uIHcoYXJyLCBwYXJlbnQp IHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGggJiYgIXJlczsgaSsrKSB7 CiAgICAgICAgICBpZiAoYXJyW2ldID09PSBpdGVtKSB7IHJlcyA9IHsgYXJyOiBhcnIsIGlkeDog aSwgcGFyZW50OiBwYXJlbnQsIHNlY3Rpb246IHMgfTsgcmV0dXJuOyB9CiAgICAgICAgICBpZiAo YXJyW2ldLmNoaWxkcmVuKSB3KGFycltpXS5jaGlsZHJlbiwgYXJyW2ldKTsKICAgICAgICB9CiAg ICAgIH0pKHMuaXRlbXMgfHwgW10sIG51bGwpOwogICAgfSk7CiAgICByZXR1cm4gcmVzOwogIH07 CiAgUC5uYXZDb250YWluZXIgPSBmdW5jdGlvbiAoaXRlbSkgeyB2YXIgZiA9IFAubmF2RmluZChp dGVtKTsgcmV0dXJuIGYgPyBmLmFyciA6IG51bGw7IH07CiAgUC5uYXZFbnN1cmVDaGlsZHJlbiA9 IGZ1bmN0aW9uIChpdCkgeyBpZiAoIWl0LmNoaWxkcmVuKSBpdC5jaGlsZHJlbiA9IFtdOyByZXR1 cm4gaXQuY2hpbGRyZW47IH07CiAgUC5uYXZSZW1vdmVGcm9tID0gZnVuY3Rpb24gKGl0ZW0pIHsK ICAgIHZhciBmID0gUC5uYXZGaW5kKGl0ZW0pOyBpZiAoIWYpIHJldHVybjsKICAgIGYuYXJyLnNw bGljZShmLmlkeCwgMSk7CiAgICBpZiAoZi5wYXJlbnQgJiYgZi5wYXJlbnQuY2hpbGRyZW4gJiYg IWYucGFyZW50LmNoaWxkcmVuLmxlbmd0aCkgZGVsZXRlIGYucGFyZW50LmNoaWxkcmVuOwogIH07 CiAgLy8gRWludHJhZyB1bSBlaW5lIFBvc2l0aW9uIGlubmVyaGFsYiBzZWluZXIgR2VzY2h3aXN0 ZXIgdmVyc2NoaWViZW4gKC0xIGhvY2gsICsxIHJ1bnRlcikuCiAgUC5uYXZNb3ZlID0gZnVuY3Rp b24gKGl0ZW0sIGRpcikgewogICAgdmFyIGYgPSBQLm5hdkZpbmQoaXRlbSk7IGlmICghZikgcmV0 dXJuIGZhbHNlOwogICAgdmFyIGogPSBmLmlkeCArIGRpcjsgaWYgKGogPCAwIHx8IGogPj0gZi5h cnIubGVuZ3RoKSByZXR1cm4gZmFsc2U7CiAgICBmLmFyci5zcGxpY2UoZi5pZHgsIDEpOyBmLmFy ci5zcGxpY2UoaiwgMCwgaXRlbSk7IHJldHVybiB0cnVlOwogIH07CiAgLy8gSXN0IGEgZWluIFZv cmZhaHIgdm9uIGI/ICh2ZXJoaW5kZXJ0IERyb3AgaW4gZGVuIGVpZ2VuZW4gVGVpbGJhdW0pCiAg UC5uYXZJc0FuY2VzdG9yID0gZnVuY3Rpb24gKGEsIGIpIHsKICAgIGlmICghYSB8fCAhYS5jaGls ZHJlbikgcmV0dXJuIGZhbHNlOwogICAgdmFyIGZvdW5kID0gZmFsc2U7CiAgICAoZnVuY3Rpb24g dyhpdGVtcykgeyBpdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChpdCkgeyBpZiAoaXQgPT09IGIpIGZv dW5kID0gdHJ1ZTsgZWxzZSBpZiAoaXQuY2hpbGRyZW4pIHcoaXQuY2hpbGRyZW4pOyB9KTsgfSko YS5jaGlsZHJlbik7CiAgICByZXR1cm4gZm91bmQ7CiAgfTsKCiAgLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2lkZWJhci1SZW5k ZXJpbmcgKi8KICBmdW5jdGlvbiBsaW5rRWwoaXQpIHsKICAgIHZhciBkaXNwID0gUC5yZXNvbHZl UmVmKGl0KSB8fCBpdDsgICAgICAvLyBBbGlhcy9SZWZlcmVueiBhdWYga2Fub25pc2NoZXMgWmll bCBhdWZsb2VzZW4gKFBoYXNlIDEwKQogICAgdmFyIGlzQWxpYXMgPSAhIWl0LnJlZjsKICAgIHZh ciBsYWJlbCA9IGl0LmxhYmVsIHx8IGRpc3AubGFiZWwgfHwgIiI7CiAgICB2YXIgYSA9IGVsKCJh IiwgeyBocmVmOiBkaXNwLmhyZWYgfHwgIiMiLCAiZGF0YS1rZXkiOiBQLm5hdkl0ZW1LZXkoZGlz cCksCiAgICAgIGNsYXNzOiBkaXNwLmJyb2tlbiA/ICJpcy1icm9rZW4iIDogIiIsIHRpdGxlOiBp dC5ub3RlIHx8IGRpc3Aubm90ZSB8fCAiIiwKICAgICAgb25jbGljazogZnVuY3Rpb24gKGUpIHsg ZS5wcmV2ZW50RGVmYXVsdCgpOyBQLm5hdmlnYXRlKGl0KTsgfSB9KTsKICAgIHZhciBfdiA9IGl0 LnZhcmlhbnQgfHwgZGlzcC52YXJpYW50OyBpZiAoX3YpIGEuY2xhc3NMaXN0LmFkZCgibmF2LSIg KyBfdik7ICAgLy8gZmFyYmxpY2hlciBBa3plbnQgKHouQi4gS2VubnfDtnJ0ZXIpCiAgICAvLyBJ Y29uIGRhdGVuZ2V0cmllYmVuOiBlaWdlbmVzIEtub3Rlbi1GZWxkICJpY29uIiAoYmVuYW5udGVy IE5hbWUgYXVzIFAuaWMpIHNjaGxhZWd0IGRlbgogICAgLy8gVHlwLVN0YW5kYXJkOyB1bmJla2Fu bnRlL2xlZXJlIE5hbWVuIGZhbGxlbiBzYXViZXIgYXVmIGRlbiBUeXAgenVydWVjay4KICAgIHZh ciBfaWNvID0gZGlzcC5pY29uIHx8IGl0Lmljb24gfHwgIiI7CiAgICB2YXIgX2ljTmFtZSA9IChf aWNvICYmIGljKF9pY28pKSA/IF9pY28KICAgICAgOiAoZGlzcC5hcnRpY2xlID8gImFydGljbGUi IDogZGlzcC5mb2xkZXIgPyAiZG9jIiA6IGRpc3AuaHJlZiA/IChkaXNwLnRhcmdldCA9PT0gIl9i bGFuayIgPyAiZXh0IiA6ICJkb2MiKSA6ICIiKTsKICAgIGlmIChfaWNOYW1lKSBhLmFwcGVuZENo aWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImxpLWljIiwgaHRtbDogaWMoX2ljTmFtZSkgfSkpOwog ICAgYS5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJsYmwiLCB0ZXh0OiBsYWJlbCB9 KSk7CiAgICBpZiAoaXNBbGlhcykgYS5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJi YWRnZSBhbGlhcyIsIHRpdGxlOiAiVmVyd2VpcyBhdWYgZWluZW4gYW5kZXJlbiBFaW50cmFnIiwg dGV4dDogIuKGqiIgfSkpOwogICAgaWYgKGRpc3AudGFyZ2V0ID09PSAiX2JsYW5rIikgYS5hcHBl bmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJiYWRnZSBleHQiLCB0ZXh0OiAi4oaXIiB9KSk7 CiAgICBpZiAoZGlzcC5icm9rZW4pIGEuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi YmFkZ2UgYnJva2VuIiwgdGV4dDogImZlaGx0IiB9KSk7CiAgICBpZiAoaXQuYmFkZ2UpIGEuYXBw ZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAiYmFkZ2UgIiArIGl0LmJhZGdlLCB0ZXh0OiBp dC5iYWRnZSA9PT0gInJlZCIgPyAiISIgOiBpdC5iYWRnZSB9KSk7CiAgICBpZiAoZGlzcC5hcnRp Y2xlICYmICFpc0FsaWFzKSB7ICAgICAgICAgIC8vIG51ciBhbSBrYW5vbmlzY2hlbiBBcnRpa2Vs IGJlYXJiZWl0ZW4KICAgICAgYS5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogInN0 YXIgYXJ0LWVkaXQgZWRpdC1vbmx5IiwgdGl0bGU6ICJBcnRpa2VsIGJlYXJiZWl0ZW4iLAogICAg ICAgIG9uY2xpY2s6IGZ1bmN0aW9uIChlKSB7IGUucHJldmVudERlZmF1bHQoKTsgZS5zdG9wUHJv cGFnYXRpb24oKTsgUC5vcGVuQXJ0aWNsZURsZyhkaXNwKTsgfSwgaHRtbDogaWMoImVkaXQiKSB9 KSk7CiAgICB9CiAgICAvLyBEb2t1bWVudC0vTGluay1Lbm90ZW4gKGtlaW4gQXJ0aWtlbCwga2Vp biBPcmRuZXIsIGtlaW4gX2JsYW5rLUV4dGVybmxpbmssIGtlaW4gQWxpYXMpOgogICAgLy8gU3Rp ZnQgd2FuZGVsdCBkZW4gS25vdGVuIGluLXBsYWNlIGluIGVpbmVuIGJlYXJiZWl0YmFyZW4gQXJ0 aWtlbCB1bSAoaHJlZiAtPiBhcnRpY2xlKS4KICAgIGVsc2UgaWYgKCFpc0FsaWFzICYmIGRpc3Au aHJlZiAmJiAhZGlzcC5mb2xkZXIgJiYgZGlzcC50YXJnZXQgIT09ICJfYmxhbmsiICYmIFAub3Bl bk1pZ3JhdGlvbkVkaXRvcikgewogICAgICBhLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNs YXNzOiAic3RhciBhcnQtZWRpdCBlZGl0LW9ubHkiLCB0aXRsZTogIkluIGJlYXJiZWl0YmFyZW4g QXJ0aWtlbCB1bXdhbmRlbG4iLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uIChlKSB7IGUucHJl dmVudERlZmF1bHQoKTsgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgIGlmICghUC5saXZl KSB7IFAudG9hc3QoIlVtd2FuZGVsbiBudXIgaW0gUGZsZWdlLU1vZHVzIChsb2thbGVyIEhlbGZl cikuIiwgdHJ1ZSk7IHJldHVybjsgfQogICAgICAgICAgUC5vcGVuTWlncmF0aW9uRWRpdG9yKGl0 LCB7IHRpdGxlOiBpdC5sYWJlbCB8fCBkaXNwLmxhYmVsIHx8ICIiLCBkYXRlOiAiIiwgYXV0aG9y OiAiIiwgaHRtbDogIiIgfSk7CiAgICAgICAgfSwgaHRtbDogaWMoImVkaXQiKSB9KSk7CiAgICB9 CiAgICAvLyBPcmRuZXItL0xpbmstS25vdGVuOiBCZXplaWNobnVuZy9QZmFkL0ljb24gZGlyZWt0 IGJlYXJiZWl0ZW4gKFJlZGFrdGV1cikuCiAgICBpZiAoIWlzQWxpYXMgJiYgKGRpc3AuZm9sZGVy IHx8IGRpc3AuaHJlZikgJiYgUC5lZGl0Tm9kZURsZykgewogICAgICBhLmFwcGVuZENoaWxkKGVs KCJidXR0b24iLCB7IGNsYXNzOiAic3RhciBhcnQtZWRpdCBlZGl0LW9ubHkiLCB0aXRsZTogIkJl emVpY2hudW5nIC8gUGZhZCAvIEljb24gYmVhcmJlaXRlbiIsCiAgICAgICAgb25jbGljazogZnVu Y3Rpb24gKGUpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBlLnN0b3BQcm9wYWdhdGlvbigpOyBQLmVk aXROb2RlRGxnKGl0LCBmdW5jdGlvbiAoKSB7IGlmIChQLnJlbmRlclNpZGViYXIpIFAucmVuZGVy U2lkZWJhcigpOyB9KTsgfSwgaHRtbDogaWMoImxpbmsiKSB9KSk7CiAgICB9CiAgICByZXR1cm4g YTsKICB9CiAgZnVuY3Rpb24gZGlzY2xvc3VyZShpdCwgZmlsbCkgewogICAgdmFyIGJ0biA9IGVs KCJidXR0b24iLCB7IGNsYXNzOiAic3ViLXRvZ2dsZSIsICJhcmlhLWV4cGFuZGVkIjogImZhbHNl IiwKICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyB2YXIgbyA9IGJ0bi5nZXRBdHRyaWJ1dGUo ImFyaWEtZXhwYW5kZWQiKSA9PT0gInRydWUiOyBidG4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFu ZGVkIiwgbyA/ICJmYWxzZSIgOiAidHJ1ZSIpOyBwYW5lbC5oaWRkZW4gPSBvOyB9LAogICAgICBo dG1sOiAnPHNwYW4gY2xhc3M9ImxibCI+JyArIGVzY2FwZUh0bWwoaXQubGFiZWwpICsgJzwvc3Bh bj48c3BhbiBjbGFzcz0iY2hldiI+JyArIGljKCJjaGV2IikgKyAnPC9zcGFuPicgfSk7CiAgICB2 YXIgcGFuZWwgPSBlbCgidWwiLCB7IGNsYXNzOiAic2lkZS1saXN0IHN1YiIsIGhpZGRlbjogImhp ZGRlbiIgfSk7CiAgICBmaWxsKGl0LmNoaWxkcmVuIHx8IFtdLCBwYW5lbCk7CiAgICByZXR1cm4g ZWwoImxpIiwgbnVsbCwgW2J0biwgcGFuZWxdKTsKICB9CiAgZnVuY3Rpb24gZmlsbExpc3QoaXRl bXMsIHVsKSB7CiAgICAoaXRlbXMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGl0KSB7CiAgICAg IGlmIChpdC5oZWFkaW5nKSB7IHVsLmFwcGVuZENoaWxkKGVsKCJsaSIsIHsgY2xhc3M6ICJncnAt aGVhZCIsIHRleHQ6IGl0LmxhYmVsIH0pKTsgcmV0dXJuOyB9CiAgICAgIGlmIChpdC5jaGlsZHJl bikgdWwuYXBwZW5kQ2hpbGQoZGlzY2xvc3VyZShpdCwgZmlsbExpc3QpKTsKICAgICAgZWxzZSB1 bC5hcHBlbmRDaGlsZChlbCgibGkiLCBudWxsLCBbbGlua0VsKGl0KV0pKTsKICAgIH0pOwogIH0K ICBmdW5jdGlvbiBzaWRlR3JvdXAoaG9zdCwgdGl0bGUsIGljb25OYW1lLCBvcGVuLCBmaWxsLCBj b2xvcikgewogICAgdmFyIGJ0biA9IGVsKCJidXR0b24iLCB7IGNsYXNzOiAiZ3JwLXRvZ2dsZSIs ICJhcmlhLWV4cGFuZGVkIjogb3BlbiA/ICJ0cnVlIiA6ICJmYWxzZSIsCiAgICAgIG9uY2xpY2s6 IGZ1bmN0aW9uICgpIHsgdmFyIG8gPSBidG4uZ2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIikg PT09ICJ0cnVlIjsgYnRuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsIG8gPyAiZmFsc2Ui IDogInRydWUiKTsgbGlzdC5oaWRkZW4gPSBvOyB9LAogICAgICBodG1sOiAoaWNvbk5hbWUgPyBp YyhpY29uTmFtZSkgOiAiIikgKyAiPHNwYW4+IiArIGVzY2FwZUh0bWwodGl0bGUpICsgJzwvc3Bh bj48c3BhbiBjbGFzcz0iY2hldiI+JyArIGljKCJjaGV2IikgKyAiPC9zcGFuPiIgfSk7CiAgICB2 YXIgbGlzdCA9IGVsKCJ1bCIsIHsgY2xhc3M6ICJzaWRlLWxpc3QiIH0pOwogICAgaWYgKCFvcGVu KSBsaXN0LmhpZGRlbiA9IHRydWU7CiAgICBmaWxsKGxpc3QpOwogICAgdmFyIGdycCA9IGVsKCJk aXYiLCB7IGNsYXNzOiAic2lkZS1ncm91cCIgKyAoY29sb3IgPyAiIGdycC1jb2xvcmVkIiA6ICIi KSB9LCBbYnRuLCBsaXN0XSk7CiAgICBpZiAoY29sb3IpIGdycC5zdHlsZS5zZXRQcm9wZXJ0eSgi LS1ncnAtY29sb3IiLCBjb2xvcik7ICAgLy8gZGF0ZW5nZXRyaWViZW5lIEJlcmVpY2hzZmFyYmUK ICAgIGhvc3QuYXBwZW5kQ2hpbGQoZ3JwKTsKICAgIHJldHVybiBsaXN0OwogIH0KICBQLnJlbmRl clNpZGViYXIgPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIgaG9zdCA9ICQoIiNzaWRlYmFyIik7IGhv c3QuaW5uZXJIVE1MID0gIiI7CiAgICAvLyDigJ5OZXVlcyAmIEdlw6RuZGVydGVzIiDigJQgb2Vm Zm5ldCBkYXMgenVzYW1tZW5nZWZ1ZWhydGUgTW9kYWwgKGVyc2V0enQgZGVuIGZydWVoZXJlbiBW ZXJsYXVmKS4KICAgIHZhciBud0J0biA9IGVsKCJidXR0b24iLCB7IHR5cGU6ICJidXR0b24iLCBj bGFzczogImdycC10b2dnbGUiLCB0aXRsZTogUC50KCJ3aGF0c25ldy50aXRsZSIpLAogICAgICBv bmNsaWNrOiBmdW5jdGlvbiAoKSB7IGlmIChQLm9wZW5XaGF0c05ldykgUC5vcGVuV2hhdHNOZXco KTsgfSwKICAgICAgaHRtbDogaWMoImNsb2NrIikgKyAiPHNwYW4+IiArIGVzY2FwZUh0bWwoUC50 KCJ3aGF0c25ldy5uYXYiKSkgKyAiPC9zcGFuPiIgfSk7CiAgICBob3N0LmFwcGVuZENoaWxkKGVs KCJkaXYiLCB7IGNsYXNzOiAic2lkZS1ncm91cCIgfSwgW253QnRuXSkpOwogICAgUC5OQVYuc2Vj dGlvbnMuZmlsdGVyKGZ1bmN0aW9uIChzKSB7IHJldHVybiBzLnBsYWNlbWVudCA9PT0gInNpZGVi YXIiIHx8IHMucGxhY2VtZW50ID09PSAiYm90aCI7IH0pCiAgICAgIC5mb3JFYWNoKGZ1bmN0aW9u IChzKSB7IHNpZGVHcm91cChob3N0LCBzLnRpdGxlLCBudWxsLCB0cnVlLCBmdW5jdGlvbiAodWwp IHsgZmlsbExpc3Qocy5pdGVtcywgdWwpOyB9LCBzLmNvbG9yKTsgfSk7CiAgICBQLm1hcmtDdXJy ZW50KFAuY3VycmVudEhyZWYpOwogIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFR5cC1SZWdpc3RyaWVydW5nIChQaGFz ZSAzKQogICAgIERva3VtZW50ZSArIEFydGlrZWwgYXVzIGRlbSBOYXZpZ2F0aW9uc2JhdW0gZnVl ciBTdWNoZSAmIEEtWi4gKi8KICBQLnJlZ2lzdGVyVHlwZSh7CiAgICBrZXk6ICJuYXYiLCBsYWJl bDogIkRva3VtZW50L0FydGlrZWwiLCBpY29uOiAiZG9jIiwKICAgIGJ1aWxkSW5kZXg6IGZ1bmN0 aW9uIChwdXNoKSB7CiAgICAgIFAuTkFWLnNlY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKHMpIHsg d2FsayhzLml0ZW1zLCBzLnRpdGxlKTsgfSk7CiAgICAgIGZ1bmN0aW9uIHdhbGsoaXRlbXMsIHBh dGgpIHsKICAgICAgICAoaXRlbXMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGl0KSB7CiAgICAg ICAgICBpZiAoaXQuaGVhZGluZykgcmV0dXJuOwogICAgICAgICAgaWYgKGl0LmNoaWxkcmVuKSB3 YWxrKGl0LmNoaWxkcmVuLCBwYXRoICsgIiDigLogIiArIGl0LmxhYmVsKTsKICAgICAgICAgIGlm IChpdC5ocmVmIHx8IGl0LmFydGljbGUgfHwgaXQuZm9sZGVyKSBwdXNoKHsga2luZDogaXQuYXJ0 aWNsZSA/ICJBcnRpa2VsIiA6IGl0LmZvbGRlciA/ICJPcmRuZXIiIDogIkRva3VtZW50IiwKICAg ICAgICAgICAgaWNvbjogaXQuYXJ0aWNsZSA/ICJhcnRpY2xlIiA6IChpdC50YXJnZXQgPT09ICJf YmxhbmsiID8gImV4dCIgOiAiZG9jIiksCiAgICAgICAgICAgIGl0OiBpdCwgbGFiZWw6IGl0Lmxh YmVsLCBwYXRoOiBwYXRoLCBoYXk6IFAuZGVhY2NlbnQoaXQubGFiZWwgKyAiICIgKyBwYXRoICsg IiAiICsgKGl0LmtleXdvcmRzIHx8ICIiKSkgfSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0K ICB9KTsKCn0pKHdpbmRvdy5QKTsK ### FILE: assets/js/features/panels-edit.js | 6802 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvcGFuZWxzLWVkaXQu anMgIChQaGFzZSAxMSkKICAgUGZsZWdlLVVJIGZ1ZXIgZGllIFNjaG5lbGx6dWdyaWZmZSAoUE9S VEFMX1BBTkVMUyk6IFBhbmVscyBhbmxlZ2VuLAogICB1bWJlbmVubmVuLCB1bXNvcnRpZXJlbiwg bG9lc2NoZW47IExpbmtzIGplIFBhbmVsIGFubGVnZW4gKGV4dGVybiBwZXIKICAgVVJMIE9ERVIg aW50ZXJuIGFscyBWZXJ3ZWlzIGF1ZiBQb3J0YWwtSW5oYWx0IHZpYSBOYXYtUGlja2VyKSwgYmVh cmJlaXRlbiwKICAgdW1zb3J0aWVyZW4sIGxvZXNjaGVuLiBMb2VzdCBkaWUgcHJvbXB0KCktQXVm cnVmZSBpbiBwYW5lbHMuanMgYWIuCiAgIE51dHp0IGRpZSBlaW5oZWl0bGljaGUgTW9kYWwtS29t cG9uZW50ZS4gU09TLVBhbmVscyBiZWhhbHRlbiBpaHJlbiBUeXAKICAgdW5kIFByaW1hZXItTGlu azsgbmV1ZSBQYW5lbHMgc2luZCBRdWlja2xpbmstUGFuZWxzICh0eXBlICJxbCIpLgogICA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0gKi8KKGZ1bmN0aW9uIChQKSB7CiAgInVzZSBzdHJpY3QiOwogIHZhciBlbCA9IFAu ZWwsIGljID0gUC5pYzsKCiAgZnVuY3Rpb24gbW92ZShhcnIsIGksIGRpcikgeyB2YXIgaiA9IGkg KyBkaXI7IGlmIChqIDwgMCB8fCBqID49IGFyci5sZW5ndGgpIHJldHVybiBmYWxzZTsgdmFyIHgg PSBhcnIuc3BsaWNlKGksIDEpWzBdOyBhcnIuc3BsaWNlKGosIDAsIHgpOyByZXR1cm4gdHJ1ZTsg fQoKICBQLm9wZW5QYW5lbEVkaXRvciA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICghUC5saXZlKSB7 IFAudG9hc3QoIkJlYXJiZWl0ZW4gbnVyIGltIFBmbGVnZS1Nb2R1cy4iKTsgcmV0dXJuOyB9CiAg ICB2YXIgVyA9IFAuY2xvbmUoUC5jb250ZW50LnBhbmVscyB8fCBbXSk7CiAgICB2YXIgaG9zdCA9 IG51bGw7CiAgICBmdW5jdGlvbiByZXJlbmRlcigpIHsgaWYgKGhvc3QpIHsgaG9zdC5pbm5lckhU TUwgPSAiIjsgYnVpbGQoaG9zdCk7IH0gfQoKICAgIGZ1bmN0aW9uIGxpbmtSb3cocGFuZWwsIGxp bmssIGxpKSB7CiAgICAgIHZhciBsYWJlbCA9IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCBj bGFzczogInBlLWxsYWJlbCIsIHZhbHVlOiBsaW5rLmxhYmVsIHx8ICIiLCBwbGFjZWhvbGRlcjog IkJlemVpY2hudW5nIiwKICAgICAgICBvbmlucHV0OiBmdW5jdGlvbiAoKSB7IGxpbmsubGFiZWwg PSB0aGlzLnZhbHVlOyB9IH0pOwogICAgICB2YXIgdGFyZ2V0OwogICAgICBpZiAobGluay5yZWYp IHsKICAgICAgICB2YXIgY2Fub24gPSBQLmZpbmROYXZJdGVtQnlJZChsaW5rLnJlZik7CiAgICAg ICAgdGFyZ2V0ID0gZWwoInNwYW4iLCB7IGNsYXNzOiAicGUtbHRhcmdldCBwZS1pbnRlcm4iLCB0 aXRsZTogIkludGVybmVyIFZlcndlaXMiLAogICAgICAgICAgdGV4dDogIuKGqiAiICsgKGNhbm9u ID8gKGNhbm9uLmxhYmVsIHx8IChjYW5vbi5hcnRpY2xlICYmIGNhbm9uLmFydGljbGUudGl0bGUp IHx8ICJQb3J0YWwtSW5oYWx0IikgOiAiWmllbCBmZWhsdCIpIH0pOwogICAgICB9IGVsc2Ugewog ICAgICAgIHRhcmdldCA9IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCBjbGFzczogInBlLWxo cmVmIG1vbm8iLCB2YWx1ZTogbGluay5ocmVmIHx8ICIiLCBwbGFjZWhvbGRlcjogImh0dHBzOi8v 4oCmIMK3IGRva3VtZW50ZS/igKYgwrcgXFxcXHNoYXJlXFzigKZcXGRhdGVpLmV4ZSIsCiAgICAg ICAgICBvbmlucHV0OiBmdW5jdGlvbiAoKSB7IGxpbmsuaHJlZiA9IHRoaXMudmFsdWU7IH0gfSk7 ICAgLy8gWmllbCBmcmVpOyBPZWZmbmVuLU1vZHVzIHNlcGFyYXQKICAgICAgfQogICAgICAvLyBP ZWZmbmVuIGluOiBNaXR0ZSAoY29udGVudCkgLyBuZXVlciBUYWIgKF9ibGFuaykgLyBNb2RhbC1G ZW5zdGVyIChtb2RhbCkKICAgICAgdmFyIG9wZW5TZWwgPSBlbCgic2VsZWN0IiwgeyBjbGFzczog InBlLW9wZW4iLCB0aXRsZTogIldvIMO2ZmZuZXQgZGVyIExpbms/IiwKICAgICAgICBvbmNoYW5n ZTogZnVuY3Rpb24gKCkgeyBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlICE9PSAiY29udGVu dCIpIGxpbmsudGFyZ2V0ID0gdGhpcy52YWx1ZTsgZWxzZSB7IGxpbmsudGFyZ2V0ID0gImNvbnRl bnQiOyB9IH0gfSk7CiAgICAgIFtbImNvbnRlbnQiLCAiTWl0dGUiXSwgWyJfYmxhbmsiLCAiTmV1 ZXIgVGFiIl0sIFsibW9kYWwiLCAiTW9kYWwiXV0uZm9yRWFjaChmdW5jdGlvbiAobykgewogICAg ICAgIG9wZW5TZWwuYXBwZW5kQ2hpbGQoZWwoIm9wdGlvbiIsIHsgdmFsdWU6IG9bMF0sIHRleHQ6 IG9bMV0sIHNlbGVjdGVkOiAoKGxpbmsudGFyZ2V0IHx8ICJjb250ZW50IikgPT09IG9bMF0pID8g InNlbGVjdGVkIiA6IG51bGwgfSkpOwogICAgICB9KTsKICAgICAgdmFyIHZhcmlhbnQgPSBlbCgi c2VsZWN0IiwgeyBjbGFzczogInBlLXZhcmlhbnQiLCB0aXRsZTogIkRhcnN0ZWxsdW5nIGRlcyBC dXR0b25zIiwKICAgICAgICBvbmNoYW5nZTogZnVuY3Rpb24gKCkgeyBpZiAodGhpcy52YWx1ZSkg bGluay52YXJpYW50ID0gdGhpcy52YWx1ZTsgZWxzZSBkZWxldGUgbGluay52YXJpYW50OyB9IH0p OwogICAgICBbWyIiLCAiU3RhbmRhcmQiXSwgWyJwcmltYXJ5IiwgIkhlcnZvcmdlaG9iZW4iXSwg WyJkYW5nZXIiLCAiR2VmYWhyIl1dLmZvckVhY2goZnVuY3Rpb24gKG8pIHsKICAgICAgICB2YXJp YW50LmFwcGVuZENoaWxkKGVsKCJvcHRpb24iLCB7IHZhbHVlOiBvWzBdLCB0ZXh0OiBvWzFdLCBz ZWxlY3RlZDogKGxpbmsudmFyaWFudCB8fCAiIikgPT09IG9bMF0gPyAic2VsZWN0ZWQiIDogbnVs bCB9KSk7CiAgICAgIH0pOwogICAgICB2YXIgYWN0cyA9IGVsKCJzcGFuIiwgeyBjbGFzczogInJl LWFjdHMiIH0pOwogICAgICBhY3RzLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAi bnYtbWluaSIsIHRpdGxlOiAiaG9jaCIsIHRleHQ6ICLilrIiLCBvbmNsaWNrOiBmdW5jdGlvbiAo KSB7IGlmIChtb3ZlKHBhbmVsLmxpbmtzLCBsaSwgLTEpKSByZXJlbmRlcigpOyB9IH0pKTsKICAg ICAgYWN0cy5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogIm52LW1pbmkiLCB0aXRs ZTogInJ1bnRlciIsIHRleHQ6ICLilrwiLCBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IGlmIChtb3Zl KHBhbmVsLmxpbmtzLCBsaSwgMSkpIHJlcmVuZGVyKCk7IH0gfSkpOwogICAgICBhY3RzLmFwcGVu ZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYtbWluaSIsIHRpdGxlOiAiTGluayBsw7Zz Y2hlbiIsIGh0bWw6IGljKCJ0cmFzaCIpLCBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IHBhbmVsLmxp bmtzLnNwbGljZShsaSwgMSk7IHJlcmVuZGVyKCk7IH0gfSkpOwogICAgICByZXR1cm4gZWwoImRp diIsIHsgY2xhc3M6ICJwZS1saW5rIiB9LCBsaW5rLnJlZiA/IFtsYWJlbCwgdGFyZ2V0LCB2YXJp YW50LCBhY3RzXSA6IFtsYWJlbCwgdGFyZ2V0LCBvcGVuU2VsLCB2YXJpYW50LCBhY3RzXSk7CiAg ICB9CgogICAgZnVuY3Rpb24gcGFuZWxFbChwYW5lbCwgcGkpIHsKICAgICAgdmFyIGhlYWQgPSBl bCgiZGl2IiwgeyBjbGFzczogInBlLXBhbmVsLWhlYWQiIH0pOwogICAgICBoZWFkLmFwcGVuZENo aWxkKGVsKCJzcGFuIiwgeyBjbGFzczogInBlLXB0eXBlIiwgdGV4dDogcGFuZWwudHlwZSA9PT0g InNvcyIgPyAiU09TIiA6ICJRdWlja2xpbmtzIiB9KSk7CiAgICAgIGhlYWQuYXBwZW5kQ2hpbGQo ZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIGNsYXNzOiAicGUtcHRpdGxlIiwgdmFsdWU6IHBh bmVsLnRpdGxlIHx8ICIiLCBwbGFjZWhvbGRlcjogIlBhbmVsLVRpdGVsIiwKICAgICAgICBvbmlu cHV0OiBmdW5jdGlvbiAoKSB7IHBhbmVsLnRpdGxlID0gdGhpcy52YWx1ZTsgfSB9KSk7CiAgICAg IHZhciBwYSA9IGVsKCJzcGFuIiwgeyBjbGFzczogInJlLWFjdHMiIH0pOwogICAgICBwYS5hcHBl bmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogIm52LW1pbmkiLCB0aXRsZTogIlBhbmVsIGhv Y2giLCB0ZXh0OiAi4payIiwgb25jbGljazogZnVuY3Rpb24gKCkgeyBpZiAobW92ZShXLCBwaSwg LTEpKSByZXJlbmRlcigpOyB9IH0pKTsKICAgICAgcGEuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIs IHsgY2xhc3M6ICJudi1taW5pIiwgdGl0bGU6ICJQYW5lbCBydW50ZXIiLCB0ZXh0OiAi4pa8Iiwg b25jbGljazogZnVuY3Rpb24gKCkgeyBpZiAobW92ZShXLCBwaSwgMSkpIHJlcmVuZGVyKCk7IH0g fSkpOwogICAgICBwYS5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogIm52LW1pbmki LCB0aXRsZTogIlBhbmVsIGzDtnNjaGVuIiwgaHRtbDogaWMoInRyYXNoIiksCiAgICAgICAgb25j bGljazogZnVuY3Rpb24gKCkgeyBQLmNvbmZpcm0oIlBhbmVsIOKAniIgKyAocGFuZWwudGl0bGUg fHwgIiIpICsgIuKAnCBzYW10IExpbmtzIGzDtnNjaGVuPyIsIGZ1bmN0aW9uICgpIHsgVy5zcGxp Y2UocGksIDEpOyByZXJlbmRlcigpOyB9LCB7IGRhbmdlcjogdHJ1ZSB9KTsgfSB9KSk7CiAgICAg IGhlYWQuYXBwZW5kQ2hpbGQocGEpOwoKICAgICAgdmFyIGxpbmtzID0gZWwoImRpdiIsIHsgY2xh c3M6ICJwZS1saW5rcyIgfSk7CiAgICAgIChwYW5lbC5saW5rcyB8fCBbXSkuZm9yRWFjaChmdW5j dGlvbiAobCwgbGkpIHsgbGlua3MuYXBwZW5kQ2hpbGQobGlua1JvdyhwYW5lbCwgbCwgbGkpKTsg fSk7CgogICAgICB2YXIgYWRkID0gZWwoImRpdiIsIHsgY2xhc3M6ICJwZS1hZGQiIH0pOwogICAg ICBhZGQuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJidG4gZ2hvc3QiLCBodG1s OiBpYygibGluayIpICsgIiBFeHRlcm5lciBMaW5rIiwKICAgICAgICBvbmNsaWNrOiBmdW5jdGlv biAoKSB7CiAgICAgICAgICB2YXIgbGFiZWwgPSBwcm9tcHQoIkJlemVpY2hudW5nIGRlcyBMaW5r czoiKTsgaWYgKCFsYWJlbCkgcmV0dXJuOwogICAgICAgICAgdmFyIGhyZWYgPSBwcm9tcHQoIlpp ZWwgKFVSTCBvZGVyIGRva3VtZW50ZS/igKYpOiIsICJodHRwczovLyIpOyBpZiAoaHJlZiA9PSBu dWxsKSByZXR1cm47CiAgICAgICAgICAocGFuZWwubGlua3MgPSBwYW5lbC5saW5rcyB8fCBbXSku cHVzaCh7IGxhYmVsOiBsYWJlbC50cmltKCksIGhyZWY6IGhyZWYudHJpbSgpLCB0YXJnZXQ6IC9e aHR0cHM/OnxeXC9cLy9pLnRlc3QoaHJlZikgPyAiX2JsYW5rIiA6ICJjb250ZW50IiB9KTsKICAg ICAgICAgIHJlcmVuZGVyKCk7CiAgICAgICAgfSB9KSk7CiAgICAgIGFkZC5hcHBlbmRDaGlsZChl bCgiYnV0dG9uIiwgeyBjbGFzczogImJ0biBnaG9zdCIsIGh0bWw6IGljKCJhcnRpY2xlIikgKyAi IEludGVybmVyIFZlcndlaXMiLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgaWYgKFAu b3Blbk5hdlBpY2tlcikgUC5vcGVuTmF2UGlja2VyKGZ1bmN0aW9uIChyKSB7IChwYW5lbC5saW5r cyA9IHBhbmVsLmxpbmtzIHx8IFtdKS5wdXNoKHsgcmVmOiByLl9pZCwgbGFiZWw6IHIubGFiZWwg fSk7IHJlcmVuZGVyKCk7IH0pOyB9IH0pKTsKCiAgICAgIHJldHVybiBlbCgiZGl2IiwgeyBjbGFz czogInBlLXBhbmVsIiB9LCBbaGVhZCwgbGlua3MsIGFkZF0pOwogICAgfQoKICAgIGZ1bmN0aW9u IGJ1aWxkKGIpIHsKICAgICAgYi5jbGFzc0xpc3QuYWRkKCJwZS1ib2R5Iik7CiAgICAgIFcuZm9y RWFjaChmdW5jdGlvbiAocGFuZWwsIHBpKSB7IGIuYXBwZW5kQ2hpbGQocGFuZWxFbChwYW5lbCwg cGkpKTsgfSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2F2ZSgpIHsKICAgICAgLy8gbGVlcmUgTGlu a3MgKG9obmUgTGFiZWwgdW5kIG9obmUgWmllbCkgdmVyd2VyZmVuCiAgICAgIFcuZm9yRWFjaChm dW5jdGlvbiAocCkgeyBwLmxpbmtzID0gKHAubGlua3MgfHwgW10pLmZpbHRlcihmdW5jdGlvbiAo bCkgeyByZXR1cm4gKGwubGFiZWwgfHwgIiIpLnRyaW0oKSB8fCBsLmhyZWYgfHwgbC5yZWY7IH0p OyB9KTsKICAgICAgUC5jb250ZW50LnBhbmVscyA9IFc7CiAgICAgIFAucGVyc2lzdCgpOwogICAg ICBpZiAoUC5yZW5kZXJQYW5lbHMpIFAucmVuZGVyUGFuZWxzKCk7CiAgICAgIGlmIChQLmJ1aWxk SW5kZXgpIFAuYnVpbGRJbmRleCgpOwogICAgICBQLnRvYXN0KCJTY2huZWxsenVncmlmZmUgZ2Vz cGVpY2hlcnQiICsgKFAubGl2ZSA/ICIgJiB2ZXLDtmZmZW50bGljaHQuIiA6ICIuIikpOwogICAg fQoKICAgIFAubW9kYWwoewogICAgICB0aXRsZTogIlNjaG5lbGx6dWdyaWZmZSB2ZXJ3YWx0ZW4i LCBpY29uOiAiZ3JpZCIsIHNpemU6ICJsZyIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uIChiKSB7IGhv c3QgPSBiOyBidWlsZChiKTsgfSwKICAgICAgYWN0aW9uczogWwogICAgICAgIHsgbGFiZWw6ICJQ YW5lbCIsIGtpbmQ6ICJnaG9zdCIsIGljb246ICJwbHVzIiwgYWxpZ246ICJsZWZ0Iiwga2VlcE9w ZW46IHRydWUsCiAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IFcucHVzaCh7IGlkOiBQ LnVpZCgicG5sIiksIHR5cGU6ICJxbCIsIGljb246ICJncmlkIiwgdGl0bGU6ICJOZXVlciBTY2hu ZWxsenVncmlmZiIsIGxpbmtzOiBbXSB9KTsgcmVyZW5kZXIoKTsgfSB9LAogICAgICAgIHsgbGFi ZWw6ICJBYmJyZWNoZW4iLCBraW5kOiAiZ2hvc3QiIH0sCiAgICAgICAgeyBsYWJlbDogIlNwZWlj aGVybiIsIGtpbmQ6ICJwcmltYXJ5Iiwgb25DbGljazogc2F2ZSB9CiAgICAgIF0KICAgIH0pOwog IH07Cgp9KSh3aW5kb3cuUCk7Cg== ### FILE: assets/js/features/panels.js | 7543 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgcGFuZWxzLmpzCiAgIFJlY2h0ZSBT cGFsdGU6IFNvZm9ydG1hw59uYWhtZW4gKyBRdWlja2xpbmtzICsgRGllbnN0Z3J1cHBlIChSb3N0 ZXIpLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0gKi8KKGZ1bmN0aW9uIChQKSB7CiAgInVzZSBzdHJpY3QiOwog IHZhciBlbCA9IFAuZWwsICQgPSBQLiQsIGljID0gUC5pYywgZXNjYXBlSHRtbCA9IFAuZXNjYXBl SHRtbDsKCiAgZnVuY3Rpb24gcWxFbChsaW5rLCBwYW5lbElkKSB7CiAgICB2YXIgYSA9IGVsKCJi dXR0b24iLCB7IGNsYXNzOiAicWwiICsgKGxpbmsudmFyaWFudCA9PT0gInByaW1hcnkiIHx8IGxp bmsudmFyaWFudCA9PT0gImRhbmdlciIgPyAiICIgKyBsaW5rLnZhcmlhbnQgOiAiIiksIHRpdGxl OiBsaW5rLmhyZWYsIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgUC5uYXZpZ2F0ZShsaW5rKTsgfSB9 KTsKICAgIGEuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAibGJsIiwgdGV4dDogbGlu ay5sYWJlbCB9KSk7CiAgICBpZiAobGluay50YXJnZXQgPT09ICJfYmxhbmsiKSBhLmFwcGVuZENo aWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImV4dCIsIGh0bWw6IGljKCJleHQiKSB9KSk7CiAgICBh LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogInFkZWwgZWRpdC1vbmx5IiwgdGl0bGU6 ICJMaW5rIGVudGZlcm5lbiIsCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uIChlKSB7IGUuc3RvcFBy b3BhZ2F0aW9uKCk7IHJlbW92ZUxpbmsocGFuZWxJZCwgbGluayk7IH0sIGh0bWw6IGljKCJ4Iikg fSkpOwogICAgcmV0dXJuIGE7CiAgfQogIFAucmVuZGVyUGFuZWxzID0gZnVuY3Rpb24gKCkgewog ICAgdmFyIGhvc3QgPSAkKCIjcGFuZWxzIik7IGhvc3QuaW5uZXJIVE1MID0gIiI7CiAgICAvLyBW ZXJ3YWx0ZW4tRWluc3RpZWcgKG51ciBpbSBFZGl0LU1vZHVzIHNpY2h0YmFyKQogICAgdmFyIGJh ciA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicGFuZWxzLXRvb2xiYXIgZWRpdC1vbmx5IiB9KTsKICAg IGJhci5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogImFkZC1idG4iLCB0aXRsZTog IlNjaG5lbGx6dWdyaWZmZSB2ZXJ3YWx0ZW4iLAogICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7 IGlmIChQLm9wZW5QYW5lbEVkaXRvcikgUC5vcGVuUGFuZWxFZGl0b3IoKTsgfSwgaHRtbDogaWMo ImdyaWQiKSArICJTY2huZWxsenVncmlmZmUgdmVyd2FsdGVuIiB9KSk7CiAgICBob3N0LmFwcGVu ZENoaWxkKGJhcik7CiAgICBQLmNvbnRlbnQucGFuZWxzLmZvckVhY2goZnVuY3Rpb24gKHApIHsK ICAgICAgaWYgKHAudHlwZSA9PT0gInNvcyIpIHsKICAgICAgICB2YXIgYm94ID0gZWwoImRpdiIs IHsgY2xhc3M6ICJwYW5lbCBzb3MiIH0pOwogICAgICAgIGJveC5hcHBlbmRDaGlsZChlbCgiZGl2 IiwgeyBjbGFzczogInBhbmVsLWhlYWQiLCBodG1sOiAnPHNwYW4gY2xhc3M9ImljbyI+JyArIGlj KCJhbGVydCIpICsgJzwvc3Bhbj48aDM+JyArIGVzY2FwZUh0bWwocC50aXRsZSkgKyAiPC9oMz4i IH0pKTsKICAgICAgICBpZiAocC5wcmltYXJ5KSBib3guYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIs IHsgY2xhc3M6ICJzb3MtcHJpbWFyeSIsIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgUC5uYXZpZ2F0 ZShwLnByaW1hcnkpOyB9LCBodG1sOiBpYygiYm9sdCIpICsgIjxzcGFuPiIgKyBlc2NhcGVIdG1s KHAucHJpbWFyeS5sYWJlbCkgKyAiPC9zcGFuPiIgfSkpOwogICAgICAgIHZhciBnID0gZWwoImRp diIsIHsgY2xhc3M6ICJxbC1ncmlkIiB9KTsKICAgICAgICAocC5saW5rcyB8fCBbXSkuZm9yRWFj aChmdW5jdGlvbiAobCkgeyBnLmFwcGVuZENoaWxkKHFsRWwobCwgcC5pZCkpOyB9KTsKICAgICAg ICBib3guYXBwZW5kQ2hpbGQoZyk7CiAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChib3gpOwogICAg ICB9IGVsc2UgewogICAgICAgIHZhciBwbiA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicGFuZWwiIH0p OwogICAgICAgIHZhciBoZWFkID0gZWwoImRpdiIsIHsgY2xhc3M6ICJwYW5lbC1oZWFkIiwgaHRt bDogJzxzcGFuIGNsYXNzPSJpY28iPicgKyBpYyhwLmljb24gfHwgImdyaWQiKSArICI8L3NwYW4+ PGgzPiIgKyBlc2NhcGVIdG1sKHAudGl0bGUpICsgIjwvaDM+IiB9KTsKICAgICAgICBoZWFkLmFw cGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYWRkLWJ0biBlZGl0LW9ubHkiLCBvbmNs aWNrOiBmdW5jdGlvbiAoKSB7IGFkZExpbmsocC5pZCk7IH0sIGh0bWw6IGljKCJwbHVzIikgKyAi TGluayIgfSkpOwogICAgICAgIHBuLmFwcGVuZENoaWxkKGhlYWQpOwogICAgICAgIHZhciBncmlk ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJxbC1ncmlkIHFsLTMiIH0pOwogICAgICAgIChwLmxpbmtz IHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7IGdyaWQuYXBwZW5kQ2hpbGQocWxFbChsLCBw LmlkKSk7IH0pOwogICAgICAgIHBuLmFwcGVuZENoaWxkKGdyaWQpOwogICAgICAgIGhvc3QuYXBw ZW5kQ2hpbGQocG4pOwogICAgICB9CiAgICB9KTsKICAgIHJlbmRlclJvc3Rlcihob3N0KTsKICB9 OwogIGZ1bmN0aW9uIGFkZExpbmsocGFuZWxJZCkgewogICAgdmFyIGxhYmVsID0gcHJvbXB0KCJC ZXplaWNobnVuZyBkZXMgTGlua3M6Iik7IGlmICghbGFiZWwpIHJldHVybjsKICAgIHZhciBocmVm ID0gcHJvbXB0KCJaaWVsIChVUkwgb2RlciBQZmFkKToiLCAiaHR0cHM6Ly8iKTsgaWYgKGhyZWYg PT0gbnVsbCkgcmV0dXJuOwogICAgaWYgKGhyZWYgJiYgIVAuc2FmZVVybChocmVmKSkgeyBQLnRv YXN0KCJVbnNpY2hlcmVzIFppZWwg4oCUIG51ciBodHRwcy9Qb3J0YWwtUGZhZGUgZXJsYXVidC4i LCB0cnVlKTsgcmV0dXJuOyB9CiAgICB2YXIgZXh0ID0gL15odHRwcz86fF5cL1wvL2kudGVzdCho cmVmKTsKICAgIHZhciBwID0gUC5jb250ZW50LnBhbmVscy5maW5kKGZ1bmN0aW9uICh4KSB7IHJl dHVybiB4LmlkID09PSBwYW5lbElkOyB9KTsKICAgIHAubGlua3MgPSBwLmxpbmtzIHx8IFtdOyBw LmxpbmtzLnB1c2goeyBsYWJlbDogbGFiZWwsIGhyZWY6IGhyZWYsIHRhcmdldDogZXh0ID8gIl9i bGFuayIgOiAiY29udGVudCIgfSk7CiAgICBQLnBlcnNpc3QoKTsgUC5yZW5kZXJQYW5lbHMoKTsg UC50b2FzdCgiTGluayBoaW56dWdlZsO8Z3QuIik7CiAgfQogIGZ1bmN0aW9uIHJlbW92ZUxpbmso cGFuZWxJZCwgbGluaykgewogICAgdmFyIHAgPSBQLmNvbnRlbnQucGFuZWxzLmZpbmQoZnVuY3Rp b24gKHgpIHsgcmV0dXJuIHguaWQgPT09IHBhbmVsSWQ7IH0pOwogICAgcC5saW5rcyA9IHAubGlu a3MuZmlsdGVyKGZ1bmN0aW9uIChsKSB7IHJldHVybiBsICE9PSBsaW5rOyB9KTsKICAgIFAucGVy c2lzdCgpOyBQLnJlbmRlclBhbmVscygpOwogIH0KCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGllbnN0Z3J1cHBlICsgVWhy ICovCiAgdmFyIGNsb2NrVGltZXI7CiAgZnVuY3Rpb24gZm10Q2xvY2soKSB7CiAgICB2YXIgZCA9 IG5ldyBEYXRlKCk7CiAgICB2YXIgd2QgPSBbIlNvbm50YWciLCJNb250YWciLCJEaWVuc3RhZyIs Ik1pdHR3b2NoIiwiRG9ubmVyc3RhZyIsIkZyZWl0YWciLCJTYW1zdGFnIl1bZC5nZXREYXkoKV07 CiAgICB2YXIgbW8gPSBbIkphbnVhciIsIkZlYnJ1YXIiLCJNw6RyeiIsIkFwcmlsIiwiTWFpIiwi SnVuaSIsIkp1bGkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPa3RvYmVyIiwiTm92ZW1iZXIiLCJE ZXplbWJlciJdW2QuZ2V0TW9udGgoKV07CiAgICB2YXIgaGggPSAoIjAiICsgZC5nZXRIb3Vycygp KS5zbGljZSgtMiksIG1tID0gKCIwIiArIGQuZ2V0TWludXRlcygpKS5zbGljZSgtMik7CiAgICBy ZXR1cm4gd2QgKyAiLCAiICsgZC5nZXREYXRlKCkgKyAiLiAiICsgbW8gKyAiICIgKyBkLmdldEZ1 bGxZZWFyKCkgKyAiICAiICsgaGggKyAiOiIgKyBtbSArICIgVWhyIjsKICB9CiAgZnVuY3Rpb24g cm9zdGVyU2VjdGlvbnMoYm94LCBzZWN0aW9ucykgewogICAgKHNlY3Rpb25zIHx8IFtdKS5mb3JF YWNoKGZ1bmN0aW9uIChzZWMpIHsKICAgICAgdmFyIHRibCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAi ci1zZWMiIH0pOwogICAgICBpZiAoc2VjLnRpdGxlKSB0YmwuYXBwZW5kQ2hpbGQoZWwoImRpdiIs IHsgY2xhc3M6ICJyLXNlYy1oIiwgdGV4dDogc2VjLnRpdGxlIH0pKTsKICAgICAgKHNlYy5yb3dz IHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChyb3cpIHsKICAgICAgICB2YXIgbGFiZWwgPSBlbCgi ZGl2IiwgeyBjbGFzczogInItbGFiZWwiIH0sIFtlbCgic3BhbiIsIHsgY2xhc3M6ICJyb2xlIiwg dGV4dDogcm93LnJvbGUgfSldKTsKICAgICAgICBpZiAocm93LnN1YikgbGFiZWwuYXBwZW5kQ2hp bGQoZWwoInNwYW4iLCB7IGNsYXNzOiAic3ViIG1vbm8iLCB0ZXh0OiByb3cuc3ViIH0pKTsKICAg ICAgICB2YXIgaW5wID0gZWwoImlucHV0IiwgeyBjbGFzczogInItbmFtZSIsIHZhbHVlOiByb3cu bmFtZSB8fCAiIiwgcGxhY2Vob2xkZXI6ICJOYW1lIOKApiIsIHNwZWxsY2hlY2s6ICJmYWxzZSIs CiAgICAgICAgICBvbmlucHV0OiBmdW5jdGlvbiAoZSkgeyByb3cubmFtZSA9IGUudGFyZ2V0LnZh bHVlOyBQLnNjaGVkdWxlUGVyc2lzdCgpOyB9IH0pOwogICAgICAgIHRibC5hcHBlbmRDaGlsZChl bCgiZGl2IiwgeyBjbGFzczogInItcm93IiB9LCBbbGFiZWwsIGVsKCJkaXYiLCB7IGNsYXNzOiAi ci1uYW1lLWNlbGwiIH0sIFtpbnBdKV0pKTsKICAgICAgfSk7CiAgICAgIGJveC5hcHBlbmRDaGls ZCh0YmwpOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIHJlbmRlclJvc3Rlcihob3N0KSB7CiAgICB2 YXIgUiA9IFAuY29udGVudC5yb3N0ZXI7IGlmICghUikgcmV0dXJuOwogICAgaWYgKCFSLmdyb3Vw cykgUiA9IFAuY29udGVudC5yb3N0ZXIgPSBQLm5vcm1hbGl6ZVJvc3RlcihSKTsKICAgIHZhciBn cm91cHMgPSBSLmdyb3VwcyB8fCBbXTsKICAgIHZhciBzaW5nbGUgPSBncm91cHMubGVuZ3RoID09 PSAxOwogICAgdmFyIGJveCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicm9zdGVyIiB9KTsKCiAgICB2 YXIgaGVhZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicm9zdGVyLWhlYWQiIH0pOwogICAgdmFyIHRp dGxlID0gZWwoImRpdiIsIHsgY2xhc3M6ICJyb3N0ZXItdGl0bGUiIH0pOwogICAgdGl0bGUuYXBw ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoUC50KCJyb3N0ZXIudGl0bGUiKSkpOwog ICAgaWYgKHNpbmdsZSkgewogICAgICAvLyBFaW56ZWxncnVwcGU6IGdld29obnRlIElubGluZS1L ZW5udW5nIGltIEtvcGYgYmVhcmJlaXRiYXIuCiAgICAgIHRpdGxlLmFwcGVuZENoaWxkKGRvY3Vt ZW50LmNyZWF0ZVRleHROb2RlKCIgIikpOwogICAgICB0aXRsZS5hcHBlbmRDaGlsZChncm91cElu cHV0KFIsIGdyb3Vwc1swXSkpOwogICAgfQogICAgaGVhZC5hcHBlbmRDaGlsZCh0aXRsZSk7CiAg ICB2YXIgYWN0aW9ucyA9IGVsKCJzcGFuIiwgeyBjbGFzczogInJvc3Rlci1hY3Rpb25zIiB9KTsK ICAgIGFjdGlvbnMuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJpY29uLW1pbmkg ZWRpdC1vbmx5IiwgdGl0bGU6ICJEaWVuc3RncnVwcGUgYmVhcmJlaXRlbiIsCiAgICAgIG9uY2xp Y2s6IGZ1bmN0aW9uICgpIHsgaWYgKFAub3BlblJvc3RlckVkaXRvcikgUC5vcGVuUm9zdGVyRWRp dG9yKCk7IH0sIGh0bWw6IGljKCJlZGl0IikgfSkpOwogICAgaGVhZC5hcHBlbmRDaGlsZChhY3Rp b25zKTsKICAgIGhlYWQuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJyb3N0ZXItY2xv Y2sgbW9ubyIsIHRleHQ6IGZtdENsb2NrKCkgfSkpOwogICAgYm94LmFwcGVuZENoaWxkKGhlYWQp OwogICAgY2xlYXJJbnRlcnZhbChjbG9ja1RpbWVyKTsgY2xvY2tUaW1lciA9IHNldEludGVydmFs KGZ1bmN0aW9uICgpIHsgdmFyIGMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIucm9zdGVyLWNs b2NrIik7IGlmIChjKSBjLnRleHRDb250ZW50ID0gZm10Q2xvY2soKTsgfSwgMTUwMDApOwoKICAg IGdyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uIChnKSB7CiAgICAgIGlmICghc2luZ2xlKSB7CiAgICAg ICAgdmFyIGdoID0gZWwoImRpdiIsIHsgY2xhc3M6ICJyLWdyb3VwLWgiIH0pOwogICAgICAgIGdo LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogInItZ3JvdXAtbGJsIiwgdGV4dDogUC50 KCJyb3N0ZXIudGl0bGUiKSB9KSk7CiAgICAgICAgZ2guYXBwZW5kQ2hpbGQoZ3JvdXBJbnB1dChS LCBnKSk7CiAgICAgICAgYm94LmFwcGVuZENoaWxkKGdoKTsKICAgICAgfQogICAgICByb3N0ZXJT ZWN0aW9ucyhib3gsIGcuc2VjdGlvbnMpOwogICAgfSk7CiAgICBob3N0LmFwcGVuZENoaWxkKGJv eCk7CiAgfQogIGZ1bmN0aW9uIGdyb3VwSW5wdXQoUiwgZykgewogICAgcmV0dXJuIGVsKCJpbnB1 dCIsIHsgY2xhc3M6ICJyLWdyb3VwIG1vbm8iLCB2YWx1ZTogIi0iICsgKGcubGFiZWwgfHwgIiIp ICsgIi0iLCAiYXJpYS1sYWJlbCI6ICJEaWVuc3RncnVwcGUiLAogICAgICBvbmlucHV0OiBmdW5j dGlvbiAoZSkgeyBnLmxhYmVsID0gZS50YXJnZXQudmFsdWUucmVwbGFjZSgvLS9nLCAiIikudHJp bSgpOyBpZiAoUi5ncm91cHNbMF0gPT09IGcpIFIuZ3JvdXAgPSBnLmxhYmVsOyBQLnNjaGVkdWxl UGVyc2lzdCgpOyB9IH0pOwogIH0KCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVHlwLVJlZ2lzdHJpZXJ1bmcgKFBoYXNlIDMp CiAgICAgU29mb3J0bWFzc25haG1lbiArIFF1aWNrbGlua3MgYXVzIGRlciByZWNodGVuIFNwYWx0 ZSBmdWVyIFN1Y2hlICYgQS1aLiAqLwogIFAucmVnaXN0ZXJUeXBlKHsKICAgIGtleTogInBhbmVs LWxpbmsiLCBsYWJlbDogIlNjaG5lbGx6dWdyaWZmIiwgaWNvbjogImxpbmsiLAogICAgYnVpbGRJ bmRleDogZnVuY3Rpb24gKHB1c2gpIHsKICAgICAgUC5jb250ZW50LnBhbmVscy5mb3JFYWNoKGZ1 bmN0aW9uIChwKSB7CiAgICAgICAgaWYgKHAucHJpbWFyeSkgcHVzaCh7IGtpbmQ6ICJTb2ZvcnQi LCBpY29uOiAiYm9sdCIsIGl0OiBwLnByaW1hcnksIGxhYmVsOiBwLnByaW1hcnkubGFiZWwsIHBh dGg6IHAudGl0bGUsIGhheTogUC5kZWFjY2VudChwLnByaW1hcnkubGFiZWwgKyAiICIgKyBwLnRp dGxlKSB9KTsKICAgICAgICAocC5saW5rcyB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbiAobCkgeyBw dXNoKHsga2luZDogIkxpbmsiLCBpY29uOiBsLnRhcmdldCA9PT0gIl9ibGFuayIgPyAiZXh0IiA6 ICJsaW5rIiwgaXQ6IGwsIGxhYmVsOiBsLmxhYmVsLCBwYXRoOiBwLnRpdGxlLCBoYXk6IFAuZGVh Y2NlbnQobC5sYWJlbCArICIgIiArIHAudGl0bGUpIH0pOyB9KTsKICAgICAgfSk7CiAgICB9CiAg fSk7Cgp9KSh3aW5kb3cuUCk7Cg== ### FILE: assets/js/features/pruefung.js | 8174 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvcHJ1ZWZ1bmcuanMK ICAgUHLDvGYtV2Vya3pldWc6IGFsbGUgYXVzIGRlciBOYXZpZ2F0aW9uIGdlem9nZW5lbiBNaWdy YXRpb25zLUxpbmtzIChQT1JUQUxfUFJVRUZVTkcpCiAgIGR1cmNoZ2VoZW4uIExpbmtlIFNwYWx0 ZSA9IExpc3RlIG1pdCBqZSBkcmVpIE9wdGlvbmVuIChCZWhhbHRlbi9CZWFyYmVpdGVuL0zDtnNj aGVuKTsKICAgS2xpY2sgYXVmIGRlbiBUaXRlbCB6ZWlndCByZWNodHMgZWluZSBWb3JzY2hhdSAo QXJ0aWtlbCBnZXJlbmRlcnQgYnp3LiBaaWVsIGltIGlmcmFtZSkuCiAgICJCZWFyYmVpdGVuIiDD tmZmbmV0IGVpbiBOb3RpemZlbGQgKEF1dG9zYXZlKS4gIlp1c2FtbWVuZmFzc3VuZyIgZXJ6ZXVn dCBlaW5lbiBrb3BpZXJiYXJlbgogICBFcmdlYm5pcy1UZXh0IHp1ciDDnGJlcmdhYmUgYW4gZGll IEVudHdpY2tsdW5nLiBBdWZydWYgw7xiZXIgZGVuIGxpbmtlbiAiUHLDvGZ1bmciLUxpbmsuCiAg ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PSAqLwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIGVs ID0gUC5lbCwgJCA9IFAuJCwgaWMgPSBQLmljOwogIHZhciBTVEFUID0gW1sia2VlcCIsICJCZWhh bHRlbiJdLCBbImVkaXQiLCAiQmVhcmJlaXRlbiJdLCBbImRlbGV0ZSIsICJMw7ZzY2hlbiJdXTsK CiAgZnVuY3Rpb24gbGlzdCgpIHsgcmV0dXJuIChQLmNvbnRlbnQgJiYgUC5jb250ZW50LnBydWVm dW5nKSB8fCBbXTsgfQoKICBmdW5jdGlvbiByZW5kZXJQcmV2aWV3KHBhbmUsIGUpIHsKICAgIHBh bmUuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIgcmVmID0gZS5yZWYgfHwge307CiAgICB2YXIgaGVh ZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicHJ1ZWYtcHYtaGVhZCIgfSk7CiAgICBoZWFkLmFwcGVu ZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAicHJ1ZWYtcHYtdGl0bGUiLCB0ZXh0OiBlLmxhYmVs IH0pKTsKICAgIGhlYWQuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJwcnVlZi1wdi10 YXJnZXQgbW9ubyIsIHRleHQ6IHJlZi5ocmVmIHx8IHJlZi5mb2xkZXIgfHwgKHJlZi5hcnRpY2xl ID8gIkFydGlrZWwiIDogIiIpIHx8ICIiIH0pKTsKICAgIGhlYWQuYXBwZW5kQ2hpbGQoZWwoImJ1 dHRvbiIsIHsgY2xhc3M6ICJidG4gZ2hvc3QiLCBodG1sOiBpYygiZXh0IikgKyAiPHNwYW4+SW0g UG9ydGFsIMO2ZmZuZW48L3NwYW4+IiwKICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBpZiAo UC5uYXZpZ2F0ZSkgUC5uYXZpZ2F0ZShyZWYpOyB9IH0pKTsKICAgIHBhbmUuYXBwZW5kQ2hpbGQo aGVhZCk7CiAgICB2YXIgYm94ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJwcnVlZi1wdi1ib2R5IiB9 KTsKICAgIHBhbmUuYXBwZW5kQ2hpbGQoYm94KTsKCiAgICBpZiAocmVmLmFydGljbGUpIHsKICAg ICAgdmFyIGEgPSByZWYuYXJ0aWNsZTsKICAgICAgaWYgKGEuYm9keUV4dCAmJiAoYS5odG1sID09 IG51bGwgfHwgYS5odG1sID09PSAiIikgJiYgUC5sb2FkQXJ0aWNsZUJvZHkgJiYgcmVmLl9pZCkg ewogICAgICAgIGJveC5pbm5lckhUTUwgPSAiPHAgY2xhc3M9J211dGVkJz5JbmhhbHQgd2lyZCBn ZWxhZGVuIOKApjwvcD4iOwogICAgICAgIFAubG9hZEFydGljbGVCb2R5KHJlZi5faWQsIGZ1bmN0 aW9uIChodG1sLCBlcnIpIHsgYm94LmlubmVySFRNTCA9IGVyciA/ICI8cCBjbGFzcz0nbXV0ZWQn PkluaGFsdCBuaWNodCBsYWRiYXIuPC9wPiIgOiBQLnNhbml0aXplSHRtbChodG1sIHx8ICIiKTsg fSk7CiAgICAgIH0gZWxzZSB7IGJveC5pbm5lckhUTUwgPSBQLnNhbml0aXplSHRtbChhLmh0bWwg fHwgIiIpOyB9CiAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciBocmVmID0gcmVmLmhyZWYgfHwg IiI7CiAgICBpZiAocmVmLmZvbGRlciB8fCAvXihhcHA6fGNvbDp8bWFpbHRvOikvaS50ZXN0KGhy ZWYpKSB7CiAgICAgIGJveC5hcHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCIsIHRl eHQ6IHJlZi5mb2xkZXIgPyAoIk9yZG5lcjogIiArIHJlZi5mb2xkZXIpIDogKCJTcGV6aWFsemll bDogIiArIGhyZWYpIH0pKTsKICAgICAgYm94LmFwcGVuZENoaWxkKGVsKCJwIiwgeyBjbGFzczog Im11dGVkIHNtYWxsIiwgdGV4dDogIlZvcnNjaGF1IMO8YmVyIOKAnkltIFBvcnRhbCDDtmZmbmVu 4oCcLiIgfSkpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoaHJlZikgewogICAgICBib3gu YXBwZW5kQ2hpbGQoZWwoImlmcmFtZSIsIHsgY2xhc3M6ICJwcnVlZi1mcmFtZSIsIHNyYzogaHJl ZiwgdGl0bGU6ICJWb3JzY2hhdSIgfSkpOwogICAgICBib3guYXBwZW5kQ2hpbGQoZWwoInAiLCB7 IGNsYXNzOiAibXV0ZWQgc21hbGwiLCB0ZXh0OiAiQmxlaWJ0IGRpZSBWb3JzY2hhdSBsZWVyL2Js b2NraWVydCAoei4gQi4gSW50cmFuZXQtU2VpdGUpOiDigJ5JbSBQb3J0YWwgw7ZmZm5lbuKAnC4i IH0pKTsKICAgIH0gZWxzZSB7CiAgICAgIGJveC5hcHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6 ICJtdXRlZCIsIHRleHQ6ICJLZWluIFppZWwgaGludGVybGVndC4iIH0pKTsKICAgIH0KICB9CiAg ZnVuY3Rpb24gc3RhdHVzQ2xhc3MocykgeyByZXR1cm4gcyA/ICIgc3QtIiArIHMgOiAiIjsgfQoK ICBmdW5jdGlvbiByZW5kZXIoKSB7CiAgICB2YXIgaG9zdCA9ICQoIiNjdi1hcnRpY2xlIik7IGlm ICghaG9zdCkgcmV0dXJuOwogICAgaG9zdC5pbm5lckhUTUwgPSAiIjsKICAgIHZhciBMID0gbGlz dCgpOwogICAgdmFyIGNvdW50cyA9IHsgIiI6IDAsIGtlZXA6IDAsIGVkaXQ6IDAsICJkZWxldGUi OiAwIH07CiAgICBMLmZvckVhY2goZnVuY3Rpb24gKGUpIHsgY291bnRzW2Uuc3RhdHVzIHx8ICIi XSsrOyB9KTsKCiAgICB2YXIgaGVhZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYXJ0LWhlYWQiIH0p OwogICAgaGVhZC5hcHBlbmRDaGlsZChlbCgiaDEiLCB7IHRleHQ6ICJQcsO8ZnVuZyBkZXIgTWln cmF0aW9ucy1MaW5rcyIgfSkpOwogICAgaGVhZC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFz czogInBydWVmLXN0YXRzIG1vbm8iLCB0ZXh0OgogICAgICBMLmxlbmd0aCArICIgZ2VzYW10IMK3 IG9mZmVuICIgKyBjb3VudHNbIiJdICsgIiDCtyBiZWhhbHRlbiAiICsgY291bnRzLmtlZXAgKyAi IMK3IGJlYXJiZWl0ZW4gIiArIGNvdW50cy5lZGl0ICsgIiDCtyBsw7ZzY2hlbiAiICsgY291bnRz WyJkZWxldGUiXSB9KSk7CiAgICB2YXIgYWN0YmFyID0gZWwoImRpdiIsIHsgY2xhc3M6ICJwcnVl Zi1hY3RiYXIiIH0pOwogICAgYWN0YmFyLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNz OiAiYnRuIHByaW1hcnkiLCBodG1sOiBpYygiZG93bmxvYWQiKSArICI8c3Bhbj5adXNhbW1lbmZh c3N1bmc8L3NwYW4+Iiwgb25jbGljazogc3VtbWFyeSB9KSk7CiAgICBoZWFkLmFwcGVuZENoaWxk KGFjdGJhcik7CiAgICBob3N0LmFwcGVuZENoaWxkKGhlYWQpOwoKICAgIHZhciBsaXN0RWwgPSBl bCgiZGl2IiwgeyBjbGFzczogInBydWVmLWxpc3QiIH0pOwogICAgdmFyIHBhbmUgPSBlbCgiZGl2 IiwgeyBjbGFzczogInBydWVmLXByZXZpZXciIH0sIFtlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCIs IHRleHQ6ICJFaW5lbiBFaW50cmFnIGxpbmtzIHfDpGhsZW4g4oCUIGhpZXIgZXJzY2hlaW50IGRp ZSBWb3JzY2hhdS4iIH0pXSk7CgogICAgdmFyIGN1ckdyb3VwID0gbnVsbDsKICAgIEwuZm9yRWFj aChmdW5jdGlvbiAoZSkgewogICAgICBpZiAoZS5ncm91cCAhPT0gY3VyR3JvdXApIHsgY3VyR3Jv dXAgPSBlLmdyb3VwOyBsaXN0RWwuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJwcnVl Zi1ncm91cCIsIHRleHQ6IGUuZ3JvdXAgfHwgIuKAlCIgfSkpOyB9CiAgICAgIHZhciByb3cgPSBl bCgiZGl2IiwgeyBjbGFzczogInBydWVmLXJvdyIgKyBzdGF0dXNDbGFzcyhlLnN0YXR1cykgfSk7 CiAgICAgIHZhciBub3RlV3JhcCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicHJ1ZWYtbm90ZSIsIHN0 eWxlOiBlLnN0YXR1cyA9PT0gImVkaXQiID8gIiIgOiAiZGlzcGxheTpub25lIiB9KTsKICAgICAg dmFyIHRpdGxlID0gZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJwcnVlZi10aXRsZSIsIHRleHQ6IGUu bGFiZWwsIHRpdGxlOiAoZS5yZWYgJiYgKGUucmVmLmhyZWYgfHwgZS5yZWYuZm9sZGVyKSkgfHwg IiIsCiAgICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBQLiQkKCIucHJ1ZWYtcm93LnNlbCIp LmZvckVhY2goZnVuY3Rpb24gKG4pIHsgbi5jbGFzc0xpc3QucmVtb3ZlKCJzZWwiKTsgfSk7IHJv dy5jbGFzc0xpc3QuYWRkKCJzZWwiKTsgcmVuZGVyUHJldmlldyhwYW5lLCBlKTsgfSB9KTsKICAg ICAgdmFyIG9wdHMgPSBlbCgiZGl2IiwgeyBjbGFzczogInBydWVmLW9wdHMiIH0pOwogICAgICBT VEFULmZvckVhY2goZnVuY3Rpb24gKHMpIHsKICAgICAgICBvcHRzLmFwcGVuZENoaWxkKGVsKCJi dXR0b24iLCB7IGNsYXNzOiAicHJ1ZWYtb3B0IG9wdC0iICsgc1swXSArIChlLnN0YXR1cyA9PT0g c1swXSA/ICIgb24iIDogIiIpLCB0ZXh0OiBzWzFdLAogICAgICAgICAgb25jbGljazogZnVuY3Rp b24gKCkgewogICAgICAgICAgICBlLnN0YXR1cyA9IChlLnN0YXR1cyA9PT0gc1swXSkgPyAiIiA6 IHNbMF07CiAgICAgICAgICAgIFAuc2NoZWR1bGVQZXJzaXN0KCk7CiAgICAgICAgICAgIHJvdy5j bGFzc05hbWUgPSAicHJ1ZWYtcm93IiArIHN0YXR1c0NsYXNzKGUuc3RhdHVzKSArIChyb3cuY2xh c3NMaXN0LmNvbnRhaW5zKCJzZWwiKSA/ICIgc2VsIiA6ICIiKTsKICAgICAgICAgICAgUC4kJCgi LnBydWVmLW9wdCIsIG9wdHMpLmZvckVhY2goZnVuY3Rpb24gKGIsIGkpIHsgYi5jbGFzc0xpc3Qu dG9nZ2xlKCJvbiIsIFNUQVRbaV1bMF0gPT09IGUuc3RhdHVzKTsgfSk7CiAgICAgICAgICAgIG5v dGVXcmFwLnN0eWxlLmRpc3BsYXkgPSAoZS5zdGF0dXMgPT09ICJlZGl0IikgPyAiIiA6ICJub25l IjsKICAgICAgICAgICAgaGVhZC5xdWVyeVNlbGVjdG9yKCIucHJ1ZWYtc3RhdHMiKS50ZXh0Q29u dGVudCA9IHN0YXRzVGV4dCgpOwogICAgICAgICAgfSB9KSk7CiAgICAgIH0pOwogICAgICBub3Rl V3JhcC5hcHBlbmRDaGlsZChlbCgidGV4dGFyZWEiLCB7IGNsYXNzOiAicHJ1ZWYtbm90ZS10YSIs IHJvd3M6ICIyIiwgcGxhY2Vob2xkZXI6ICJBcmJlaXRzaGlud2VpcyDigKYiLCB2YWx1ZTogZS5u b3RlIHx8ICIiLAogICAgICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgZS5ub3RlID0gdGhpcy52 YWx1ZTsgUC5zY2hlZHVsZVBlcnNpc3QoKTsgfSB9KSk7CiAgICAgIHJvdy5hcHBlbmRDaGlsZChl bCgiZGl2IiwgeyBjbGFzczogInBydWVmLXJvd3RvcCIgfSwgW3RpdGxlLCBvcHRzXSkpOwogICAg ICByb3cuYXBwZW5kQ2hpbGQobm90ZVdyYXApOwogICAgICBsaXN0RWwuYXBwZW5kQ2hpbGQocm93 KTsKICAgIH0pOwogICAgaWYgKCFMLmxlbmd0aCkgbGlzdEVsLmFwcGVuZENoaWxkKGVsKCJwIiwg eyBjbGFzczogIm11dGVkIiwgdGV4dDogIktlaW5lIEVpbnRyw6RnZSB6dSBwcsO8ZmVuLiIgfSkp OwoKICAgIGhvc3QuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJwcnVlZi1zcGxpdCIg fSwgW2xpc3RFbCwgcGFuZV0pKTsKICB9CiAgZnVuY3Rpb24gc3RhdHNUZXh0KCkgewogICAgdmFy IEwgPSBsaXN0KCksIGMgPSB7ICIiOiAwLCBrZWVwOiAwLCBlZGl0OiAwLCAiZGVsZXRlIjogMCB9 OwogICAgTC5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7IGNbZS5zdGF0dXMgfHwgIiJdKys7IH0pOwog ICAgcmV0dXJuIEwubGVuZ3RoICsgIiBnZXNhbXQgwrcgb2ZmZW4gIiArIGNbIiJdICsgIiDCtyBi ZWhhbHRlbiAiICsgYy5rZWVwICsgIiDCtyBiZWFyYmVpdGVuICIgKyBjLmVkaXQgKyAiIMK3IGzD tnNjaGVuICIgKyBjWyJkZWxldGUiXTsKICB9CgogIGZ1bmN0aW9uIHN1bW1hcnkoKSB7CiAgICB2 YXIgTCA9IGxpc3QoKTsKICAgIHZhciBsaW5lcyA9IFsiIyBQcnVlZnVuZ3MtRXJnZWJuaXMgKCIg KyBMLmxlbmd0aCArICIgTGlua3MpIiwgIiJdOwogICAgdmFyIG5hbWVzID0geyBrZWVwOiAiQkVI QUxURU4iLCBlZGl0OiAiQkVBUkJFSVRFTiIsICJkZWxldGUiOiAiTE9FU0NIRU4iLCAiIjogIk9G RkVOIChub2NoIG5pY2h0IGdlcHJ1ZWZ0KSIgfTsKICAgIFsia2VlcCIsICJlZGl0IiwgImRlbGV0 ZSIsICIiXS5mb3JFYWNoKGZ1bmN0aW9uIChzdCkgewogICAgICB2YXIgZ3JwID0gTC5maWx0ZXIo ZnVuY3Rpb24gKGUpIHsgcmV0dXJuIChlLnN0YXR1cyB8fCAiIikgPT09IHN0OyB9KTsKICAgICAg aWYgKCFncnAubGVuZ3RoKSByZXR1cm47CiAgICAgIGxpbmVzLnB1c2goIiMjICIgKyBuYW1lc1tz dF0gKyAiICgiICsgZ3JwLmxlbmd0aCArICIpIik7CiAgICAgIGdycC5mb3JFYWNoKGZ1bmN0aW9u IChlKSB7CiAgICAgICAgdmFyIHQgPSAoZS5yZWYgJiYgKGUucmVmLmhyZWYgfHwgZS5yZWYuZm9s ZGVyKSkgfHwgKGUucmVmICYmIGUucmVmLmFydGljbGUgPyAiQXJ0aWtlbCIgOiAiIik7CiAgICAg ICAgbGluZXMucHVzaCgiLSAiICsgZS5sYWJlbCArICIgIHwgICIgKyB0ICsgKGUubm90ZSA/ICIg IHwgIEhpbndlaXM6ICIgKyBlLm5vdGUgOiAiIikpOwogICAgICB9KTsKICAgICAgbGluZXMucHVz aCgiIik7CiAgICB9KTsKICAgIHZhciB0eHQgPSBsaW5lcy5qb2luKCJcbiIpOwogICAgUC5tb2Rh bCh7CiAgICAgIHRpdGxlOiAiUHLDvGZ1bmdzLVp1c2FtbWVuZmFzc3VuZyIsIGljb246ICJkb3du bG9hZCIsIHNpemU6ICJsZyIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uIChiKSB7CiAgICAgICAgYi5h cHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHRleHQ6ICJNYXJraWVy ZW4gJiBrb3BpZXJlbiB1bmQgYW4gZGllIEVudHdpY2tsdW5nIMO8YmVyZ2ViZW4g4oCUIGRhbm4g d2lyZCBnZW5hdSBzbyB2ZXJmYWhyZW4uIiB9KSk7CiAgICAgICAgdmFyIHRhID0gZWwoInRleHRh cmVhIiwgeyBjbGFzczogInNldC1iaWd0YSIsIHJvd3M6ICIyMCIgfSk7IHRhLnZhbHVlID0gdHh0 OyBiLmFwcGVuZENoaWxkKHRhKTsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdHJ5 IHsgdGEuZm9jdXMoKTsgdGEuc2VsZWN0KCk7IH0gY2F0Y2ggKGUpIHt9IH0sIDMwKTsKICAgICAg fSwKICAgICAgYWN0aW9uczogWwogICAgICAgIHsgbGFiZWw6ICJJbiBad2lzY2hlbmFibGFnZSIs IGtpbmQ6ICJnaG9zdCIsIGFsaWduOiAibGVmdCIsIGtlZXBPcGVuOiB0cnVlLCBvbkNsaWNrOiBm dW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmIChuYXZpZ2F0b3IuY2xpcGJvYXJkKSB7IG5hdmln YXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHR4dCkudGhlbihmdW5jdGlvbiAoKSB7IFAudG9hc3Qo IktvcGllcnQuIik7IH0sIGZ1bmN0aW9uICgpIHsgUC50b2FzdCgiQml0dGUgbWFudWVsbCBrb3Bp ZXJlbi4iLCB0cnVlKTsgfSk7IH0KICAgICAgICAgICAgZWxzZSBQLnRvYXN0KCJCaXR0ZSBtYW51 ZWxsIG1hcmtpZXJlbiAmIGtvcGllcmVuLiIsIHRydWUpOyB9IH0sCiAgICAgICAgeyBsYWJlbDog IlNjaGxpZcOfZW4iLCBraW5kOiAiZ2hvc3QiIH0KICAgICAgXQogICAgfSk7CiAgfQoKICBQLm9w ZW5QcnVlZnVuZyA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciBjID0gJCgiLmNlbnRlciIpOyBpZiAo IWMpIHJldHVybjsKICAgIGMuY2xhc3NMaXN0LmFkZCgiZG9jIiwgImFydGljbGUiKTsKICAgICQo IiNjdi1wYXRoIikudGV4dENvbnRlbnQgPSAiUHLDvGZ1bmciOwogICAgJCgiI2N2LWZyYW1lIiku c2V0QXR0cmlidXRlKCJzcmMiLCAiYWJvdXQ6YmxhbmsiKTsKICAgIHJlbmRlcigpOwogICAgUC5j dXJBcnRpY2xlID0gbnVsbDsKICAgIGlmIChQLm1hcmtDdXJyZW50KSBQLm1hcmtDdXJyZW50KCJh cHA6cHJ1ZWZ1bmciKTsKICAgIFAuY2xvc2VNb2JpbGUgJiYgUC5jbG9zZU1vYmlsZSgpOwogIH07 CgogIGlmIChQLnJlZ2lzdGVyQXBwKSBQLnJlZ2lzdGVyQXBwKCJwcnVlZnVuZyIsIGZ1bmN0aW9u ICgpIHsgUC5vcGVuUHJ1ZWZ1bmcoKTsgfSwgWyJwcsO8ZnVuZyIsICJwcnVlZnVuZyIsICJwcnVl ZmVuIl0pOwoKfSkod2luZG93LlApOwo= ### FILE: assets/js/features/roster-edit.js | 10189 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvcm9zdGVyLWVkaXQu anMgIChQaGFzZSA3KQogICBQZmxlZ2UtVUkgZnVlciBkaWUgRGllbnN0Z3J1cHBlKG4pL0Z1ZWhy dW5nc2dydXBwZTogU2NoaWNodGdydXBwZW4sCiAgIFNla3Rpb25lbiB1bmQgUm9sbGVuLVplaWxl biBhbmxlZ2VuLCBiZWFyYmVpdGVuLCB1bXNvcnRpZXJlbiwgbG9lc2NoZW4uCiAgIEFyYmVpdGV0 IGF1ZiBlaW5lciBLb3BpZTsgc3BlaWNoZXJuIHNjaHJlaWJ0IFAuY29udGVudC5yb3N0ZXIgKyBw ZXJzaXN0LgogICBOdXR6dCBkaWUgZWluaGVpdGxpY2hlIE1vZGFsLUtvbXBvbmVudGUuIFJlb3Jk ZXIgdWViZXIg4pay4pa8IChkZXRlcm1pbmlzdGlzY2gpCiAgIHBsdXMgRHJhZyZEcm9wIGRlciBa ZWlsZW4gaW5uZXJoYWxiIGlocmVyIFNla3Rpb24uIEtlaW4gVm9ybGFnZW4tL0thdGFsb2ctCiAg IFN5c3RlbSAoYmV3dXNzdCksIGtlaW5lIEthbGVuZGVyLgogICA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKGZ1 bmN0aW9uIChQKSB7CiAgInVzZSBzdHJpY3QiOwogIHZhciBlbCA9IFAuZWwsIGljID0gUC5pYzsK CiAgLy8gRmVzdGUgQVBXL1dELUxpc3RlIG1pdCBmZXN0IHp1Z2VvcmRuZXRlbSBSdWZuYW1lbiAo QmV6ZWljaG51bmcgbmljaHQgZWRpdGllcmJhcikuCiAgLy8gQXVzd2FobCBpbSBQZmxlZ2UtRGlh bG9nIC0+IHNldHp0IFJvbGxlICsgUnVmbmFtZSAoc3ViID0gIlUgPGNhbGw+IikgYXV0b21hdGlz Y2guCiAgdmFyIEFQV19PUFRJT05TID0gWwogICAgeyBsYWJlbDogIkFQVyBLYW1lbiIsICAgICAg IGNhbGw6ICI2MC8yMSIgfSwKICAgIHsgbGFiZWw6ICJBUFcgSGFnZW4iLCAgICAgICBjYWxsOiAi NjUvMjEiIH0sCiAgICB7IGxhYmVsOiAiQVBXIEJvY2h1bSIsICAgICAgY2FsbDogIjY0LzIxIiB9 LAogICAgeyBsYWJlbDogIkFQVyBBcm5zYmVyZyIsICAgIGNhbGw6ICI2Mi8yMSIgfSwKICAgIHsg bGFiZWw6ICJBUFcgRnJldWRlbmJlcmciLCBjYWxsOiAiNjcvMjEiIH0sCiAgICB7IGxhYmVsOiAi V0QgU29lc3QiLCAgICAgICAgY2FsbDogIjYzLzIxIiB9LAogICAgeyBsYWJlbDogIldEIEzDvGRl bnNjaGVpZCIsICBjYWxsOiAiNjYvMjEiIH0KICBdOwogIGZ1bmN0aW9uIGFwd0NhbGwobGFiZWwp IHsgZm9yICh2YXIgaSA9IDA7IGkgPCBBUFdfT1BUSU9OUy5sZW5ndGg7IGkrKykgeyBpZiAoQVBX X09QVElPTlNbaV0ubGFiZWwgPT09IGxhYmVsKSByZXR1cm4gQVBXX09QVElPTlNbaV0uY2FsbDsg fSByZXR1cm4gIiI7IH0KICB2YXIgR1JPVVBfT1BUSU9OUyA9IFsiQSIsICJCIiwgIkMiXTsKCiAg ZnVuY3Rpb24gbW92ZShhcnIsIGksIGRpcikgeyB2YXIgaiA9IGkgKyBkaXI7IGlmIChqIDwgMCB8 fCBqID49IGFyci5sZW5ndGgpIHJldHVybiBmYWxzZTsgdmFyIHggPSBhcnIuc3BsaWNlKGksIDEp WzBdOyBhcnIuc3BsaWNlKGosIDAsIHgpOyByZXR1cm4gdHJ1ZTsgfQoKICBQLm9wZW5Sb3N0ZXJF ZGl0b3IgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoIVAubGl2ZSkgeyBQLnRvYXN0KCJCZWFyYmVp dGVuIG51ciBpbSBQZmxlZ2UtTW9kdXMuIik7IHJldHVybjsgfQogICAgdmFyIFcgPSBQLm5vcm1h bGl6ZVJvc3RlcihQLmNsb25lKFAuY29udGVudC5yb3N0ZXIgfHwge30pKTsgICAvLyBBcmJlaXRz a29waWUKICAgIHZhciBob3N0ID0gbnVsbDsKICAgIHZhciBkcmFnUm93ID0gbnVsbDsgICAvLyB7 IHNlYywgcm93IH0KCiAgICBmdW5jdGlvbiByZXJlbmRlcigpIHsgaWYgKGhvc3QpIHsgaG9zdC5p bm5lckhUTUwgPSAiIjsgYnVpbGQoaG9zdCk7IH0gfQoKICAgIGZ1bmN0aW9uIHJvd0VsKHNlYywg cm93LCByaSkgewogICAgICB2YXIgZ3JpcCA9IGVsKCJzcGFuIiwgeyBjbGFzczogIm52LWdyaXAi LCBodG1sOiAi4ouu4ouuIiwgdGl0bGU6ICJaaWVoZW4genVtIFVtc29ydGllcmVuIiB9KTsKICAg ICAgdmFyIGZpZWxkczsKICAgICAgaWYgKHJvdy5hcHcpIHsKICAgICAgICAvLyBBUFctQXVzd2Fo bDogUm9sbGUgcGVyIERyb3Bkb3duLCBSdWZuYW1lIGF1dG9tYXRpc2NoIChuaWNodCBlZGl0aWVy YmFyKS4KICAgICAgICB2YXIgYXNlbCA9IGVsKCJzZWxlY3QiLCB7IGNsYXNzOiAicmUtcm9sZSBy ZS1hcHciIH0pOwogICAgICAgIGFzZWwuYXBwZW5kQ2hpbGQoZWwoIm9wdGlvbiIsIHsgdmFsdWU6 ICIiLCB0ZXh0OiAi4oCTIEFQVyAvIFdEIHfDpGhsZW4g4oCTIiB9KSk7CiAgICAgICAgQVBXX09Q VElPTlMuZm9yRWFjaChmdW5jdGlvbiAobykgewogICAgICAgICAgdmFyIG9wID0gZWwoIm9wdGlv biIsIHsgdmFsdWU6IG8ubGFiZWwsIHRleHQ6IG8ubGFiZWwgKyAiICgiICsgby5jYWxsICsgIiki IH0pOwogICAgICAgICAgaWYgKChyb3cucm9sZSB8fCAiIikgPT09IG8ubGFiZWwpIG9wLnNlbGVj dGVkID0gdHJ1ZTsKICAgICAgICAgIGFzZWwuYXBwZW5kQ2hpbGQob3ApOwogICAgICAgIH0pOwog ICAgICAgIGFzZWwuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgZnVuY3Rpb24gKCkgeyByb3cu cm9sZSA9IGFzZWwudmFsdWU7IHJvdy5zdWIgPSBhc2VsLnZhbHVlID8gKCJVICIgKyBhcHdDYWxs KGFzZWwudmFsdWUpKSA6ICIiOyByZXJlbmRlcigpOyB9KTsKICAgICAgICB2YXIgY2FsbCA9IGVs KCJzcGFuIiwgeyBjbGFzczogInJlLXN1YiBtb25vIHJlLWFwdy1jYWxsIiwgdGV4dDogcm93LnN1 YiB8fCAi4oCUIiwgdGl0bGU6ICJSdWZuYW1lIGF1dG9tYXRpc2NoIChuaWNodCBlZGl0aWVyYmFy KSIgfSk7CiAgICAgICAgZmllbGRzID0gW2FzZWwsIGNhbGxdOwogICAgICB9IGVsc2UgewogICAg ICAgIHZhciByb2xlID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIGNsYXNzOiAicmUtcm9s ZSIsIHZhbHVlOiByb3cucm9sZSB8fCAiIiwgcGxhY2Vob2xkZXI6ICJGdW5rdGlvbiAvIFJvbGxl IiwKICAgICAgICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgcm93LnJvbGUgPSB0aGlzLnZhbHVl OyB9IH0pOwogICAgICAgIHZhciBzdWIgPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJ0ZXh0IiwgY2xh c3M6ICJyZS1zdWIgbW9ubyIsIHZhbHVlOiByb3cuc3ViIHx8ICIiLCBwbGFjZWhvbGRlcjogIlp1 c2F0eiAob3B0aW9uYWwpIiwKICAgICAgICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgcm93LnN1 YiA9IHRoaXMudmFsdWU7IH0gfSk7CiAgICAgICAgZmllbGRzID0gW3JvbGUsIHN1Yl07CiAgICAg IH0KICAgICAgdmFyIG5hbWUgPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJ0ZXh0IiwgY2xhc3M6ICJy ZS1uYW1lIiwgdmFsdWU6IHJvdy5uYW1lIHx8ICIiLCBwbGFjZWhvbGRlcjogIk5hbWUiLAogICAg ICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgcm93Lm5hbWUgPSB0aGlzLnZhbHVlOyB9IH0pOwog ICAgICB2YXIgYWN0cyA9IGVsKCJzcGFuIiwgeyBjbGFzczogInJlLWFjdHMiIH0pOwogICAgICBh Y3RzLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYtbWluaSByZS1hcHctdG9n IiArIChyb3cuYXB3ID8gIiBvbiIgOiAiIiksIHRpdGxlOiByb3cuYXB3ID8gIkFQVy1BdXN3YWhs IGF1cyAoZnJlaWVzIEZlbGQpIiA6ICJBbHMgQVBXLS9XRC1BdXN3YWhsIChEcm9wZG93bikiLCB0 ZXh0OiAiQVBXIiwKICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IHJvdy5hcHcgPSAhcm93 LmFwdzsgaWYgKHJvdy5hcHcgJiYgIWFwd0NhbGwocm93LnJvbGUpKSB7IHJvdy5yb2xlID0gIiI7 IHJvdy5zdWIgPSAiIjsgfSByZXJlbmRlcigpOyB9IH0pKTsKICAgICAgYWN0cy5hcHBlbmRDaGls ZChlbCgiYnV0dG9uIiwgeyBjbGFzczogIm52LW1pbmkiLCB0aXRsZTogImhvY2giLCB0ZXh0OiAi 4payIiwgb25jbGljazogZnVuY3Rpb24gKCkgeyBpZiAobW92ZShzZWMucm93cywgcmksIC0xKSkg cmVyZW5kZXIoKTsgfSB9KSk7CiAgICAgIGFjdHMuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsg Y2xhc3M6ICJudi1taW5pIiwgdGl0bGU6ICJydW50ZXIiLCB0ZXh0OiAi4pa8Iiwgb25jbGljazog ZnVuY3Rpb24gKCkgeyBpZiAobW92ZShzZWMucm93cywgcmksIDEpKSByZXJlbmRlcigpOyB9IH0p KTsKICAgICAgYWN0cy5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogIm52LW1pbmki LCB0aXRsZTogIlplaWxlIGzDtnNjaGVuIiwgaHRtbDogaWMoInRyYXNoIiksIG9uY2xpY2s6IGZ1 bmN0aW9uICgpIHsgc2VjLnJvd3Muc3BsaWNlKHJpLCAxKTsgcmVyZW5kZXIoKTsgfSB9KSk7Cgog ICAgICB2YXIgciA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicmUtcm93IiwgZHJhZ2dhYmxlOiAidHJ1 ZSIgfSwgW2dyaXBdLmNvbmNhdChmaWVsZHMsIFtuYW1lLCBhY3RzXSkpOwogICAgICByLmFkZEV2 ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsIGZ1bmN0aW9uIChlKSB7IGRyYWdSb3cgPSB7IHNlYzog c2VjLCByb3c6IHJvdyB9OyByLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIik7IHRyeSB7IGUuZGF0 YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLCAiIik7IH0gY2F0Y2ggKF8pIHt9IH0pOwog ICAgICByLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLCBmdW5jdGlvbiAoKSB7IGRyYWdSb3cg PSBudWxsOyByLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIik7IFAuJCQoIi5yZS1yb3cuZHJv cC1iZWZvcmUsLnJlLXJvdy5kcm9wLWFmdGVyIikuZm9yRWFjaChmdW5jdGlvbiAobikgeyBuLmNs YXNzTGlzdC5yZW1vdmUoImRyb3AtYmVmb3JlIiwgImRyb3AtYWZ0ZXIiKTsgfSk7IH0pOwogICAg ICByLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZnVuY3Rpb24gKGUpIHsgaWYgKCFkcmFn Um93IHx8IGRyYWdSb3cuc2VjICE9PSBzZWMpIHJldHVybjsgZS5wcmV2ZW50RGVmYXVsdCgpOyB2 YXIgcmVjdCA9IHIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7IHZhciBiZWZvcmUgPSAoZS5jbGll bnRZIC0gcmVjdC50b3ApIDwgcmVjdC5oZWlnaHQgLyAyOyByLmNsYXNzTGlzdC50b2dnbGUoImRy b3AtYmVmb3JlIiwgYmVmb3JlKTsgci5jbGFzc0xpc3QudG9nZ2xlKCJkcm9wLWFmdGVyIiwgIWJl Zm9yZSk7IH0pOwogICAgICByLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsIGZ1bmN0aW9u ICgpIHsgci5jbGFzc0xpc3QucmVtb3ZlKCJkcm9wLWJlZm9yZSIsICJkcm9wLWFmdGVyIik7IH0p OwogICAgICByLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5jdGlvbiAoZSkgeyBpZiAoIWRy YWdSb3cgfHwgZHJhZ1Jvdy5zZWMgIT09IHNlYykgcmV0dXJuOyBlLnByZXZlbnREZWZhdWx0KCk7 IHZhciByZWN0ID0gci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsgdmFyIGJlZm9yZSA9IChlLmNs aWVudFkgLSByZWN0LnRvcCkgPCByZWN0LmhlaWdodCAvIDI7IHZhciBmcm9tID0gc2VjLnJvd3Mu aW5kZXhPZihkcmFnUm93LnJvdyk7IGlmIChmcm9tIDwgMCkgcmV0dXJuOyBzZWMucm93cy5zcGxp Y2UoZnJvbSwgMSk7IHZhciB0byA9IHNlYy5yb3dzLmluZGV4T2Yocm93KTsgc2VjLnJvd3Muc3Bs aWNlKHRvICsgKGJlZm9yZSA/IDAgOiAxKSwgMCwgZHJhZ1Jvdy5yb3cpOyByZXJlbmRlcigpOyB9 KTsKICAgICAgcmV0dXJuIHI7CiAgICB9CgogICAgZnVuY3Rpb24gc2VjRWwoZywgc2VjLCBzaSkg ewogICAgICB2YXIgaGVhZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicmUtc2VjLWhlYWQiIH0pOwog ICAgICBoZWFkLmFwcGVuZENoaWxkKGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCBjbGFzczog InJlLXNlYy10aXRsZSIsIHZhbHVlOiBzZWMudGl0bGUgfHwgIiIsIHBsYWNlaG9sZGVyOiAiQWJz Y2huaXR0IChvcHRpb25hbCkiLAogICAgICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgc2VjLnRp dGxlID0gdGhpcy52YWx1ZTsgfSB9KSk7CiAgICAgIHZhciBzYSA9IGVsKCJzcGFuIiwgeyBjbGFz czogInJlLWFjdHMiIH0pOwogICAgICBzYS5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFz czogIm52LW1pbmkiLCB0aXRsZTogIkFic2Nobml0dCBob2NoIiwgdGV4dDogIuKWsiIsIG9uY2xp Y2s6IGZ1bmN0aW9uICgpIHsgaWYgKG1vdmUoZy5zZWN0aW9ucywgc2ksIC0xKSkgcmVyZW5kZXIo KTsgfSB9KSk7CiAgICAgIHNhLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYt bWluaSIsIHRpdGxlOiAiQWJzY2huaXR0IHJ1bnRlciIsIHRleHQ6ICLilrwiLCBvbmNsaWNrOiBm dW5jdGlvbiAoKSB7IGlmIChtb3ZlKGcuc2VjdGlvbnMsIHNpLCAxKSkgcmVyZW5kZXIoKTsgfSB9 KSk7CiAgICAgIHNhLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYtbWluaSIs IHRpdGxlOiAiQWJzY2huaXR0IGzDtnNjaGVuIiwgaHRtbDogaWMoInRyYXNoIiksCiAgICAgICAg b25jbGljazogZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkb0RlbCgpIHsgZy5zZWN0aW9ucy5zcGxp Y2Uoc2ksIDEpOyByZXJlbmRlcigpOyB9IGlmICghKHNlYy5yb3dzIHx8IFtdKS5sZW5ndGgpIGRv RGVsKCk7IGVsc2UgUC5jb25maXJtKCJBYnNjaG5pdHQgbWl0ICIgKyBzZWMucm93cy5sZW5ndGgg KyAiIFplaWxlKG4pIGzDtnNjaGVuPyIsIGRvRGVsLCB7IGRhbmdlcjogdHJ1ZSB9KTsgfSB9KSk7 CiAgICAgIGhlYWQuYXBwZW5kQ2hpbGQoc2EpOwoKICAgICAgdmFyIHJvd3MgPSBlbCgiZGl2Iiwg eyBjbGFzczogInJlLXJvd3MiIH0pOwogICAgICAoc2VjLnJvd3MgfHwgW10pLmZvckVhY2goZnVu Y3Rpb24gKHJvdywgcmkpIHsgcm93cy5hcHBlbmRDaGlsZChyb3dFbChzZWMsIHJvdywgcmkpKTsg fSk7CiAgICAgIHZhciBhZGRSb3cgPSBlbCgiYnV0dG9uIiwgeyBjbGFzczogImJ0biBnaG9zdCBy ZS1hZGQiLCBodG1sOiBpYygicGx1cyIpICsgIiBaZWlsZSIsCiAgICAgICAgb25jbGljazogZnVu Y3Rpb24gKCkgeyAoc2VjLnJvd3MgPSBzZWMucm93cyB8fCBbXSkucHVzaCh7IGlkOiBQLnVpZCgi cnIiKSwgcm9sZTogIiIsIHN1YjogIiIsIG5hbWU6ICIiIH0pOyByZXJlbmRlcigpOyB9IH0pOwog ICAgICByZXR1cm4gZWwoImRpdiIsIHsgY2xhc3M6ICJyZS1zZWMiIH0sIFtoZWFkLCByb3dzLCBh ZGRSb3ddKTsKICAgIH0KCiAgICBmdW5jdGlvbiBncm91cEVsKGcsIGdpKSB7CiAgICAgIHZhciBo ZWFkID0gZWwoImRpdiIsIHsgY2xhc3M6ICJyZS1ncm91cC1oZWFkIiB9KTsKICAgICAgaGVhZC5h cHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJyZS1nbGFiZWwtcHJlIiwgdGV4dDogIkRp ZW5zdGdydXBwZSIgfSkpOwogICAgICB2YXIgZ3NlbCA9IGVsKCJzZWxlY3QiLCB7IGNsYXNzOiAi cmUtZ2xhYmVsIG1vbm8iIH0pOwogICAgICB2YXIgb3B0cyA9IEdST1VQX09QVElPTlMuc2xpY2Uo KTsKICAgICAgaWYgKChnLmxhYmVsIHx8ICIiKSAmJiBvcHRzLmluZGV4T2YoZy5sYWJlbCkgPCAw KSBvcHRzLnVuc2hpZnQoZy5sYWJlbCk7ICAgLy8gYmVzdGVoZW5kZW4gV2VydCBlcmhhbHRlbgog ICAgICBvcHRzLmZvckVhY2goZnVuY3Rpb24gKEwpIHsgdmFyIG9wID0gZWwoIm9wdGlvbiIsIHsg dmFsdWU6IEwsIHRleHQ6IEwgfSk7IGlmICgoZy5sYWJlbCB8fCAiIikgPT09IEwpIG9wLnNlbGVj dGVkID0gdHJ1ZTsgZ3NlbC5hcHBlbmRDaGlsZChvcCk7IH0pOwogICAgICBnc2VsLmFkZEV2ZW50 TGlzdGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uICgpIHsgZy5sYWJlbCA9IGdzZWwudmFsdWU7IGlm IChXLmdyb3Vwc1swXSA9PT0gZykgVy5ncm91cCA9IGcubGFiZWw7IH0pOwogICAgICBoZWFkLmFw cGVuZENoaWxkKGdzZWwpOwogICAgICB2YXIgZ2EgPSBlbCgic3BhbiIsIHsgY2xhc3M6ICJyZS1h Y3RzIiB9KTsKICAgICAgZ2EuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJudi1t aW5pIiwgdGl0bGU6ICJHcnVwcGUgaG9jaCIsIHRleHQ6ICLilrIiLCBvbmNsaWNrOiBmdW5jdGlv biAoKSB7IGlmIChtb3ZlKFcuZ3JvdXBzLCBnaSwgLTEpKSByZXJlbmRlcigpOyB9IH0pKTsKICAg ICAgZ2EuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJudi1taW5pIiwgdGl0bGU6 ICJHcnVwcGUgcnVudGVyIiwgdGV4dDogIuKWvCIsIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgaWYg KG1vdmUoVy5ncm91cHMsIGdpLCAxKSkgcmVyZW5kZXIoKTsgfSB9KSk7CiAgICAgIGdhLmFwcGVu ZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYtbWluaSIsIHRpdGxlOiAiR3J1cHBlIGzD tnNjaGVuIiwgaHRtbDogaWMoInRyYXNoIiksCiAgICAgICAgb25jbGljazogZnVuY3Rpb24gKCkg eyBpZiAoVy5ncm91cHMubGVuZ3RoIDw9IDEpIHsgUC50b2FzdCgiTWluZGVzdGVucyBlaW5lIEdy dXBwZSBtdXNzIGJsZWliZW4uIik7IHJldHVybjsgfSBQLmNvbmZpcm0oIlNjaGljaHRncnVwcGUg 4oCeIiArIChnLmxhYmVsIHx8ICIiKSArICLigJwgc2FtdCBBYnNjaG5pdHRlbiBsw7ZzY2hlbj8i LCBmdW5jdGlvbiAoKSB7IFcuZ3JvdXBzLnNwbGljZShnaSwgMSk7IHJlcmVuZGVyKCk7IH0sIHsg ZGFuZ2VyOiB0cnVlIH0pOyB9IH0pKTsKICAgICAgaGVhZC5hcHBlbmRDaGlsZChnYSk7CgogICAg ICB2YXIgc2VjcyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicmUtc2VjcyIgfSk7CiAgICAgIChnLnNl Y3Rpb25zIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChzZWMsIHNpKSB7IHNlY3MuYXBwZW5kQ2hp bGQoc2VjRWwoZywgc2VjLCBzaSkpOyB9KTsKICAgICAgdmFyIGFkZFNlYyA9IGVsKCJidXR0b24i LCB7IGNsYXNzOiAiYnRuIGdob3N0IHJlLWFkZCIsIGh0bWw6IGljKCJwbHVzIikgKyAiIEFic2No bml0dCIsCiAgICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyAoZy5zZWN0aW9ucyA9IGcuc2Vj dGlvbnMgfHwgW10pLnB1c2goeyBpZDogUC51aWQoInJzIiksIHRpdGxlOiAiIiwgcm93czogW10g fSk7IHJlcmVuZGVyKCk7IH0gfSk7CiAgICAgIHJldHVybiBlbCgiZGl2IiwgeyBjbGFzczogInJl LWdyb3VwIiB9LCBbaGVhZCwgc2VjcywgYWRkU2VjXSk7CiAgICB9CgogICAgZnVuY3Rpb24gYnVp bGQoYikgewogICAgICBiLmNsYXNzTGlzdC5hZGQoInJlLWJvZHkiKTsKICAgICAgVy5ncm91cHMu Zm9yRWFjaChmdW5jdGlvbiAoZywgZ2kpIHsgYi5hcHBlbmRDaGlsZChncm91cEVsKGcsIGdpKSk7 IH0pOwogICAgfQoKICAgIGZ1bmN0aW9uIHNhdmUoKSB7CiAgICAgIC8vIGxlZXJlIFplaWxlbiAo b2huZSBSb2xsZSB1bmQgTmFtZSkgdmVyd2VyZmVuOyBTdHJ1a3R1ciBub3JtYWxpc2llcmVuLgog ICAgICBXLmdyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uIChnKSB7CiAgICAgICAgKGcuc2VjdGlvbnMg fHwgW10pLmZvckVhY2goZnVuY3Rpb24gKHMpIHsgcy5yb3dzID0gKHMucm93cyB8fCBbXSkuZmls dGVyKGZ1bmN0aW9uIChyKSB7IHJldHVybiAoci5yb2xlIHx8ICIiKS50cmltKCkgfHwgKHIubmFt ZSB8fCAiIikudHJpbSgpOyB9KTsgfSk7CiAgICAgIH0pOwogICAgICBQLmNvbnRlbnQucm9zdGVy ID0gUC5ub3JtYWxpemVSb3N0ZXIoVyk7CiAgICAgIFAucGVyc2lzdCgpOwogICAgICBpZiAoUC5y ZW5kZXJQYW5lbHMpIFAucmVuZGVyUGFuZWxzKCk7CiAgICAgIFAudG9hc3QoIkRpZW5zdGdydXBw ZSBnZXNwZWljaGVydCIgKyAoUC5saXZlID8gIiAmIHZlcsO2ZmZlbnRsaWNodC4iIDogIi4iKSk7 CiAgICB9CgogICAgUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiRGllbnN0Z3J1cHBlIGJlYXJiZWl0 ZW4iLCBpY29uOiAidXNlciIsIHNpemU6ICJsZyIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uIChiKSB7 IGhvc3QgPSBiOyBidWlsZChiKTsgfSwKICAgICAgYWN0aW9uczogWwogICAgICAgIHsgbGFiZWw6 ICJHcnVwcGUiLCBraW5kOiAiZ2hvc3QiLCBpY29uOiAicGx1cyIsIGFsaWduOiAibGVmdCIsIGtl ZXBPcGVuOiB0cnVlLAogICAgICAgICAgb25DbGljazogZnVuY3Rpb24gKCkgeyBXLmdyb3Vwcy5w dXNoKHsgaWQ6IFAudWlkKCJyZyIpLCBsYWJlbDogIiIsIHNlY3Rpb25zOiBbXSB9KTsgcmVyZW5k ZXIoKTsgfSB9LAogICAgICAgIHsgbGFiZWw6ICJBYmJyZWNoZW4iLCBraW5kOiAiZ2hvc3QiIH0s CiAgICAgICAgeyBsYWJlbDogIlNwZWljaGVybiIsIGtpbmQ6ICJwcmltYXJ5Iiwgb25DbGljazog c2F2ZSB9CiAgICAgIF0KICAgIH0pOwogIH07Cgp9KSh3aW5kb3cuUCk7Cg== ### FILE: assets/js/features/search.js | 13211 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgc2VhcmNoLmpzCiAgIEdsb2JhbGUg QmVmZWhsc3BhbGV0dGUgKE5hdiArIEFydGlrZWwgKyBNZWxkdW5nZW4gKyBMaW5rcykgdW5kIEHi gJNaLVJlZ2lzdGVyLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKGZ1bmN0aW9uIChQKSB7CiAgInVzZSBz dHJpY3QiOwogIHZhciBlbCA9IFAuZWwsICQgPSBQLiQsIGljID0gUC5pYywgZXNjYXBlSHRtbCA9 IFAuZXNjYXBlSHRtbCwgZGVhY2NlbnQgPSBQLmRlYWNjZW50OwoKICB2YXIgSU5ERVggPSBbXTsK ICAvLyBJbmRleCBhdXMgYWxsZW4gcmVnaXN0cmllcnRlbiBUeXBlbiBhdWZiYXVlbiAobmF2L3Bh bmVscyByZWdpc3RyaWVyZW4gc2ljaAogIC8vIGluIGlocmVuIE1vZHVsZW47IFBoYXNlLTYtVHlw ZW4ga2xpbmtlbiBzaWNoIHVlYmVyIGJ1aWxkSW5kZXgocHVzaCkgZWluKS4KICBQLmJ1aWxkSW5k ZXggPSBmdW5jdGlvbiAoKSB7CiAgICBJTkRFWCA9IFtdOwogICAgUC5lYWNoVHlwZShmdW5jdGlv biAodCkgeyBpZiAodC5idWlsZEluZGV4KSB0LmJ1aWxkSW5kZXgoZnVuY3Rpb24gKGUpIHsgSU5E RVgucHVzaChlKTsgfSk7IH0pOwogICAgaWYgKFAucmVuZGVyQVpSYWlsKSBQLnJlbmRlckFaUmFp bCgpOwogIH07CgogIC8qIFBlcm1hbmVudGUgQeKAk1otUmVnaXN0ZXJsZWlzdGUgaW0gSGVhZGVy OiB6ZWlndCBhbGxlIEJ1Y2hzdGFiZW4gQeKAk1osCiAgICAgbGVlcmUgc2luZCBkZWFrdGl2aWVy dDsgS2xpY2sgb2VmZm5ldCBkYXMgUmVnaXN0ZXIgYW4gZGllc2VyIFN0ZWxsZS4gKi8KICBmdW5j dGlvbiBhekF2YWlsYWJsZSgpIHsKICAgIHZhciBzZXQgPSB7fTsKICAgIElOREVYLmZvckVhY2go ZnVuY3Rpb24gKGUpIHsgdmFyIGNoID0gZGVhY2NlbnQoZS5sYWJlbCkuY2hhckF0KDApLnRvVXBw ZXJDYXNlKCk7IGlmICghL1tBLVpdLy50ZXN0KGNoKSkgY2ggPSAiIyI7IHNldFtjaF0gPSAxOyB9 KTsKICAgIHJldHVybiBzZXQ7CiAgfQogIFAucmVuZGVyQVpSYWlsID0gZnVuY3Rpb24gKCkgewog ICAgdmFyIHJhaWwgPSAkKCIjYXotcmFpbCIpOyBpZiAoIXJhaWwpIHJldHVybjsKICAgIHZhciBh dmFpbCA9IGF6QXZhaWxhYmxlKCk7CiAgICByYWlsLmlubmVySFRNTCA9ICIiOwogICAgIkFCQ0RF RkdISUpLTE1OT1BRUlNUVVZXWFlaIi5zcGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbiAoTCkgewog ICAgICByYWlsLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IHR5cGU6ICJidXR0b24iLCBjbGFz czogImF6LWxldHRlciIsIGRpc2FibGVkOiBhdmFpbFtMXSA/IG51bGwgOiAiZGlzYWJsZWQiLAog ICAgICAgIHRpdGxlOiBhdmFpbFtMXSA/ICgiRWludHLDpGdlIHVudGVyIOKAniIgKyBMICsgIuKA nCIpIDogKCJLZWluZSBFaW50csOkZ2UgdW50ZXIg4oCeIiArIEwgKyAi4oCcIiksCiAgICAgICAg b25jbGljazogZnVuY3Rpb24gKCkgeyBQLm9wZW5BWkF0KEwpOyB9LCB0ZXh0OiBMIH0pKTsKICAg IH0pOwogICAgaWYgKGF2YWlsWyIjIl0pIHJhaWwuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsg dHlwZTogImJ1dHRvbiIsIGNsYXNzOiAiYXotbGV0dGVyIiwgdGl0bGU6ICJaaWZmZXJuIC8gU29u ZGVyemVpY2hlbiIsCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgUC5vcGVuQVpBdCgiIyIp OyB9LCB0ZXh0OiAiIyIgfSkpOwogIH07CiAgUC5vcGVuQVpBdCA9IGZ1bmN0aW9uIChMKSB7IFAu b3BlbkFaKEwpOyB9OyAgIC8vIEhlYWRlci1CdWNoc3RhYmUgLT4gZ2VmaWx0ZXJ0ZXMgUmVnaXN0 ZXIKICBmdW5jdGlvbiBzY29yZShsYWJlbCwgbnEpIHsgdmFyIGwgPSBkZWFjY2VudChsYWJlbCk7 IHJldHVybiBsID09PSBucSA/IDAgOiBsLmluZGV4T2YobnEpID09PSAwID8gMSA6IGwuaW5kZXhP ZihucSkgPiAwID8gMiA6IDM7IH0KICAvLyBFZGl0LURpc3RhbnogPD0gMSAoVGlwcGZlaGxlci1U b2xlcmFueiwgUGhhc2UgOCkuCiAgZnVuY3Rpb24gbGV2MShhLCBiKSB7CiAgICBpZiAoYSA9PT0g YikgcmV0dXJuIHRydWU7CiAgICB2YXIgbGEgPSBhLmxlbmd0aCwgbGIgPSBiLmxlbmd0aDsgaWYg KE1hdGguYWJzKGxhIC0gbGIpID4gMSkgcmV0dXJuIGZhbHNlOwogICAgdmFyIGkgPSAwLCBqID0g MCwgZWRpdHMgPSAwOwogICAgd2hpbGUgKGkgPCBsYSAmJiBqIDwgbGIpIHsKICAgICAgaWYgKGEu Y2hhckF0KGkpID09PSBiLmNoYXJBdChqKSkgeyBpKys7IGorKzsgfQogICAgICBlbHNlIHsgaWYg KCsrZWRpdHMgPiAxKSByZXR1cm4gZmFsc2U7IGlmIChsYSA+IGxiKSBpKys7IGVsc2UgaWYgKGxi ID4gbGEpIGorKzsgZWxzZSB7IGkrKzsgaisrOyB9IH0KICAgIH0KICAgIGlmIChpIDwgbGEgfHwg aiA8IGxiKSBlZGl0cysrOwogICAgcmV0dXJuIGVkaXRzIDw9IDE7CiAgfQogIGZ1bmN0aW9uIHRv a2VuSGl0KGUsIHQpIHsKICAgIGlmIChlLmhheS5pbmRleE9mKHQpID49IDApIHJldHVybiB0cnVl OwogICAgaWYgKHQubGVuZ3RoIDwgNCkgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgICAgICAg Ly8gRnV6enkgbnVyIGZ1ZXIgbGFlbmdlcmUgVG9rZW5zCiAgICB2YXIgd3MgPSBlLl93IHx8IChl Ll93ID0gZS5oYXkuc3BsaXQoL1teYS16MC05XSsvKSk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8 IHdzLmxlbmd0aDsgaSsrKSB7IGlmICh3c1tpXS5sZW5ndGggPj0gMyAmJiBsZXYxKHdzW2ldLCB0 KSkgcmV0dXJuIHRydWU7IH0KICAgIHJldHVybiBmYWxzZTsKICB9CiAgZnVuY3Rpb24gc2VhcmNo QWxsKHEpIHsKICAgIHZhciBucSA9IGRlYWNjZW50KHEpLnRyaW0oKTsgaWYgKCFucSkgcmV0dXJu IHsgZG9jczogW10sIGJ1bGxzOiBbXSB9OwogICAgdmFyIHRva3MgPSBucS5zcGxpdCgvXHMrLyk7 CiAgICB2YXIgZG9jcyA9IElOREVYLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gdG9rcy5l dmVyeShmdW5jdGlvbiAodCkgeyByZXR1cm4gdG9rZW5IaXQoZSwgdCk7IH0pOyB9KTsKICAgIC8v IFJhbmtpbmc6IGV4YWt0ZS9TdWJzdHJpbmctVHJlZmZlciB2b3IgcmVpbmVuIEZ1enp5LVRyZWZm ZXJuLgogICAgZG9jcy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7CiAgICAgIHZhciBmYSA9IGEuaGF5 LmluZGV4T2YobnEpID49IDAgPyAwIDogNCwgZmIgPSBiLmhheS5pbmRleE9mKG5xKSA+PSAwID8g MCA6IDQ7CiAgICAgIHJldHVybiAoc2NvcmUoYS5sYWJlbCwgbnEpICsgZmEpIC0gKHNjb3JlKGIu bGFiZWwsIG5xKSArIGZiKSB8fCBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCk7CiAgICB9 KTsKICAgIHZhciBidCA9IFAudHlwZUJ5S2V5KCJidWxsZXRpbiIpOwogICAgdmFyIGJ1bGxzID0g YnQgJiYgYnQuc2VhcmNoTGl2ZSA/IGJ0LnNlYXJjaExpdmUodG9rcywgbnEpIDogW107CiAgICB2 YXIgY21kcyA9IFAuc2VhcmNoQ29tbWFuZHMgPyBQLnNlYXJjaENvbW1hbmRzKHRva3MsIG5xKSA6 IFtdOwogICAgcmV0dXJuIHsgZG9jczogZG9jcy5zbGljZSgwLCBQLm1vZCgic2VhcmNoLmRvY0xp bWl0IikpLCBidWxsczogYnVsbHMuc2xpY2UoMCwgUC5tb2QoInNlYXJjaC5idWxsTGltaXQiKSks IGNtZHM6IGNtZHMuc2xpY2UoMCwgUC5tb2QoInNlYXJjaC5jbWRMaW1pdCIpKSB9OwogIH0KCiAg dmFyIGNtZFNlbCA9IC0xLCBjbWRGbGF0ID0gW10sIHNjb3BlID0gImFsbCIsIGxhc3RRID0gIiI7 CiAgZnVuY3Rpb24gY2hpcHMoYm94LCByKSB7CiAgICB2YXIgbmMgPSAoci5jbWRzIHx8IFtdKS5s ZW5ndGg7CiAgICB2YXIgZGVmcyA9IFtbImFsbCIsIFAudCgic2VhcmNoLnNjb3BlQWxsIiksIG5j ICsgci5idWxscy5sZW5ndGggKyByLmRvY3MubGVuZ3RoXSwgWyJjbWQiLCBQLnQoInNlYXJjaC5z Y29wZUNtZCIpLCBuY10sIFsiYnVsbCIsIFAudCgic2VhcmNoLnNjb3BlQnVsbCIpLCByLmJ1bGxz Lmxlbmd0aF0sIFsiZG9jIiwgUC50KCJzZWFyY2guc2NvcGVEb2MiKSwgci5kb2NzLmxlbmd0aF1d OwogICAgdmFyIHJvdyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiY21kLXNjb3BlcyIsIHJvbGU6ICJ0 YWJsaXN0IiB9KTsKICAgIGRlZnMuZm9yRWFjaChmdW5jdGlvbiAoZCkgewogICAgICByb3cuYXBw ZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJjbWQtc2NvcGUiICsgKHNjb3BlID09PSBk WzBdID8gIiBzZWwiIDogIiIpLCByb2xlOiAidGFiIiwgImFyaWEtcHJlc3NlZCI6IHNjb3BlID09 PSBkWzBdID8gInRydWUiIDogImZhbHNlIiwKICAgICAgICB0ZXh0OiBkWzFdICsgIiAoIiArIGRb Ml0gKyAiKSIsIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgc2NvcGUgPSBkWzBdOyBQLnJlbmRlclJl c3VsdHMobGFzdFEpOyB9IH0pKTsKICAgIH0pOwogICAgYm94LmFwcGVuZENoaWxkKHJvdyk7CiAg fQogIGZ1bmN0aW9uIHJ1bkNtZChjKSB7IFAuY2xlYXJTZWFyY2goKTsgdmFyIGkgPSAkKCIjc2Vh cmNoLWlucHV0Iik7IGlmIChpKSBpLmJsdXIoKTsgaWYgKGMgJiYgYy5ydW4pIGMucnVuKCk7IH0K ICBmdW5jdGlvbiByZW5kZXJDbWRzKGJveCwgY21kcykgewogICAgYm94LmFwcGVuZENoaWxkKGVs KCJkaXYiLCB7IGNsYXNzOiAiY21kLWNhdCIsIHRleHQ6ICJCZWZlaGxlIiB9KSk7CiAgICBjbWRz LmZvckVhY2goZnVuY3Rpb24gKGMpIHsKICAgICAgdmFyIGl0ZW0gPSBlbCgiZGl2IiwgeyBjbGFz czogImNtZC1pdGVtIiwgb25tb3VzZWRvd246IGZ1bmN0aW9uIChldikgeyBldi5wcmV2ZW50RGVm YXVsdCgpOyB9LCBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IHJ1bkNtZChjKTsgfSwKICAgICAgICBo dG1sOiAnPHNwYW4gY2xhc3M9ImNpLWljbyI+JyArIGljKGMuaWNvbiB8fCAiYm9sdCIpICsgIjwv c3Bhbj4iIH0pOwogICAgICB2YXIgbWFpbiA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiY2ktbWFpbiIg fSk7CiAgICAgIG1haW4uYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJjaS1sYWJlbCIs IHRleHQ6IGMubGFiZWwgfSkpOwogICAgICBpZiAoYy5oaW50KSBtYWluLmFwcGVuZENoaWxkKGVs KCJkaXYiLCB7IGNsYXNzOiAiY2ktcGF0aCIsIHRleHQ6IGMuaGludCB9KSk7CiAgICAgIGl0ZW0u YXBwZW5kQ2hpbGQobWFpbik7CiAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNs YXNzOiAiY2kta2luZCIsIHRleHQ6ICJCZWZlaGwiIH0pKTsKICAgICAgYm94LmFwcGVuZENoaWxk KGl0ZW0pOyBjbWRGbGF0LnB1c2goeyBraW5kOiAiY21kIiwgcnVuOiBjLnJ1biB9KTsKICAgIH0p OwogIH0KICBQLnJlbmRlclJlc3VsdHMgPSBmdW5jdGlvbiAocSkgewogICAgdmFyIGJveCA9ICQo IiNjbWQtcmVzdWx0cyIpOwogICAgY21kRmxhdCA9IFtdOyBjbWRTZWwgPSAtMTsKICAgIGlmICgh cS50cmltKCkpIHsKICAgICAgLy8gTGVlcnp1c3RhbmQgPSBQYWxldHRlIG1pdCBkZW4gd2ljaHRp Z3N0ZW4gQmVmZWhsZW4uCiAgICAgIHZhciB0b3AgPSBQLnRvcENvbW1hbmRzID8gUC50b3BDb21t YW5kcygpIDogW107CiAgICAgIGJveC5pbm5lckhUTUwgPSAiIjsKICAgICAgaWYgKCF0b3AubGVu Z3RoKSB7IGJveC5oaWRkZW4gPSB0cnVlOyByZXR1cm47IH0KICAgICAgcmVuZGVyQ21kcyhib3gs IHRvcCk7CiAgICAgIGJveC5oaWRkZW4gPSBmYWxzZTsgcmV0dXJuOwogICAgfQogICAgbGFzdFEg PSBxOwogICAgdmFyIHIgPSBzZWFyY2hBbGwocSk7IGJveC5pbm5lckhUTUwgPSAiIjsKICAgIHZh ciBuYyA9IChyLmNtZHMgfHwgW10pLmxlbmd0aDsKICAgIGlmICghci5kb2NzLmxlbmd0aCAmJiAh ci5idWxscy5sZW5ndGggJiYgIW5jKSB7IGJveC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFz czogImNtZC1lbXB0eSIsIHRleHQ6ICJLZWluZSBUcmVmZmVyIGbDvHIg4oCeIiArIHEgKyAi4oCc IiB9KSk7IGJveC5oaWRkZW4gPSBmYWxzZTsgcmV0dXJuOyB9CiAgICBjaGlwcyhib3gsIHIpOwog ICAgaWYgKHNjb3BlID09PSAiY21kIikgciA9IHsgZG9jczogW10sIGJ1bGxzOiBbXSwgY21kczog ci5jbWRzIH07CiAgICBlbHNlIGlmIChzY29wZSA9PT0gImRvYyIpIHIgPSB7IGRvY3M6IHIuZG9j cywgYnVsbHM6IFtdLCBjbWRzOiBbXSB9OwogICAgZWxzZSBpZiAoc2NvcGUgPT09ICJidWxsIikg ciA9IHsgZG9jczogW10sIGJ1bGxzOiByLmJ1bGxzLCBjbWRzOiBbXSB9OwogICAgaWYgKHIuY21k cyAmJiByLmNtZHMubGVuZ3RoKSByZW5kZXJDbWRzKGJveCwgci5jbWRzKTsKICAgIGlmIChyLmJ1 bGxzLmxlbmd0aCkgewogICAgICBib3guYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJj bWQtY2F0IiwgdGV4dDogIk1lbGR1bmdlbiIgfSkpOwogICAgICByLmJ1bGxzLmZvckVhY2goZnVu Y3Rpb24gKGIpIHsKICAgICAgICB2YXIgaXRlbSA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiY21kLWl0 ZW0iLCBvbm1vdXNlZG93bjogZnVuY3Rpb24gKGV2KSB7IGV2LnByZXZlbnREZWZhdWx0KCk7IH0s IG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgUC5mbGFzaEJ1bGxldGluKGIpOyBQLmNsZWFyU2VhcmNo KCk7IH0sCiAgICAgICAgICBodG1sOiAnPHNwYW4gY2xhc3M9ImNpLWljbyI+JyArIGljKCJhbGVy dCIpICsgJzwvc3Bhbj4nIH0pOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsg Y2xhc3M6ICJjaS1tYWluIiwgaHRtbDogJzxkaXYgY2xhc3M9ImNpLWxhYmVsIj4nICsgZXNjYXBl SHRtbChiLnRpdGxlKSArICc8L2Rpdj48ZGl2IGNsYXNzPSJjaS1wYXRoIj4nICsgZXNjYXBlSHRt bChQLmZtdERhdGUoYi5kYXRlKSArIChiLmF1dGhvciA/ICIgwrcgIiArIGIuYXV0aG9yIDogIiIp KSArICI8L2Rpdj4iIH0pKTsKICAgICAgICBpdGVtLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBj bGFzczogImNpLWtpbmQiLCB0ZXh0OiAiTWVsZHVuZyIgfSkpOwogICAgICAgIGJveC5hcHBlbmRD aGlsZChpdGVtKTsgY21kRmxhdC5wdXNoKHsga2luZDogImJ1bGwiLCBiOiBiIH0pOwogICAgICB9 KTsKICAgIH0KICAgIGlmIChyLmRvY3MubGVuZ3RoKSB7CiAgICAgIGJveC5hcHBlbmRDaGlsZChl bCgiZGl2IiwgeyBjbGFzczogImNtZC1jYXQiLCB0ZXh0OiAiRG9rdW1lbnRlLCBBcnRpa2VsICYg TGlua3MiIH0pKTsKICAgICAgci5kb2NzLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAgICAgICB2 YXIgaXRlbSA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiY21kLWl0ZW0iLCBvbm1vdXNlZG93bjogZnVu Y3Rpb24gKGV2KSB7IGV2LnByZXZlbnREZWZhdWx0KCk7IH0sIG9uY2xpY2s6IGZ1bmN0aW9uICgp IHsgUC5uYXZpZ2F0ZShlLml0KTsgUC5jbGVhclNlYXJjaCgpOyB9LAogICAgICAgICAgaHRtbDog JzxzcGFuIGNsYXNzPSJjaS1pY28iPicgKyBpYyhlLmljb24gfHwgImRvYyIpICsgIjwvc3Bhbj4i IH0pOwogICAgICAgIHZhciBtYWluID0gZWwoImRpdiIsIHsgY2xhc3M6ICJjaS1tYWluIiB9KTsK ICAgICAgICBtYWluLmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiY2ktbGFiZWwiLCB0 ZXh0OiBlLmxhYmVsIH0pKTsKICAgICAgICBtYWluLmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNs YXNzOiAiY2ktcGF0aCIsIHRleHQ6IGUucGF0aCB9KSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGls ZChtYWluKTsKICAgICAgICBpdGVtLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImNp LWtpbmQiLCB0ZXh0OiBlLmtpbmQgfSkpOwogICAgICAgIGlmIChlLml0LmJyb2tlbikgaXRlbS5h cHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJiYWRnZSBicm9rZW4iLCB0ZXh0OiAiZmVo bHQiIH0pKTsKICAgICAgICBib3guYXBwZW5kQ2hpbGQoaXRlbSk7IGNtZEZsYXQucHVzaCh7IGtp bmQ6ICJuYXYiLCBpdDogZS5pdCB9KTsKICAgICAgfSk7CiAgICB9CiAgICBib3guaGlkZGVuID0g ZmFsc2U7CiAgfTsKICBQLm1vdmVTZWwgPSBmdW5jdGlvbiAoZCkgewogICAgdmFyIGl0ZW1zID0g UC4kJCgiI2NtZC1yZXN1bHRzIC5jbWQtaXRlbSIpOyBpZiAoIWl0ZW1zLmxlbmd0aCkgcmV0dXJu OwogICAgaWYgKGNtZFNlbCA+PSAwICYmIGl0ZW1zW2NtZFNlbF0pIGl0ZW1zW2NtZFNlbF0uY2xh c3NMaXN0LnJlbW92ZSgic2VsIik7CiAgICBjbWRTZWwgPSAoY21kU2VsICsgZCArIGl0ZW1zLmxl bmd0aCkgJSBpdGVtcy5sZW5ndGg7CiAgICBpdGVtc1tjbWRTZWxdLmNsYXNzTGlzdC5hZGQoInNl bCIpOyBpdGVtc1tjbWRTZWxdLnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICJuZWFyZXN0IiB9KTsK ICB9OwogIFAuYWN0aXZhdGVTZWwgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoY21kU2VsIDwgMCB8 fCAhY21kRmxhdFtjbWRTZWxdKSB7IGlmICghY21kRmxhdFswXSkgcmV0dXJuOyBjbWRTZWwgPSAw OyB9CiAgICB2YXIgc2VsID0gY21kRmxhdFtjbWRTZWxdOwogICAgaWYgKHNlbC5raW5kID09PSAi Y21kIikgeyBydW5DbWQoeyBydW46IHNlbC5ydW4gfSk7IHJldHVybjsgfSAgIC8vIGNsZWFyU2Vh cmNoIHBhc3NpZXJ0IGluIHJ1bkNtZAogICAgaWYgKHNlbC5raW5kID09PSAiYnVsbCIpIFAuZmxh c2hCdWxsZXRpbihzZWwuYik7IGVsc2UgUC5uYXZpZ2F0ZShzZWwuaXQpOwogICAgUC5jbGVhclNl YXJjaCgpOyAkKCIjc2VhcmNoLWlucHV0IikuYmx1cigpOwogIH07CiAgUC5jbGVhclNlYXJjaCA9 IGZ1bmN0aW9uICgpIHsgJCgiI3NlYXJjaC1pbnB1dCIpLnZhbHVlID0gIiI7ICQoIiNjbWQtcmVz dWx0cyIpLmhpZGRlbiA9IHRydWU7IGNtZEZsYXQgPSBbXTsgY21kU2VsID0gLTE7IHNjb3BlID0g ImFsbCI7IH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tIEHigJNaLVJlZ2lzdGVyICovCiAgdmFyIGF6R3JvdXBzID0ge307 CiAgLy8gZmlsdGVyID0gZWluemVsbmVyIEJ1Y2hzdGFiZSAoQeKAk1ogb2RlciAjKSAtPiBudXIg ZGVzc2VuIEVpbnRyYWVnZTsgbGVlciA9IGFsbGUuCiAgUC5vcGVuQVogPSBmdW5jdGlvbiAoZmls dGVyKSB7CiAgICBhekdyb3VwcyA9IHt9OwogICAgSU5ERVguZm9yRWFjaChmdW5jdGlvbiAoZSkg eyB2YXIgY2ggPSBkZWFjY2VudChlLmxhYmVsKS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKTsgaWYg KCEvW0EtWl0vLnRlc3QoY2gpKSBjaCA9ICIjIjsgKGF6R3JvdXBzW2NoXSA9IGF6R3JvdXBzW2No XSB8fCBbXSkucHVzaChlKTsgfSk7CiAgICBPYmplY3Qua2V5cyhhekdyb3VwcykuZm9yRWFjaChm dW5jdGlvbiAoaykgeyBhekdyb3Vwc1trXS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBh LmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCk7IH0pOyB9KTsKICAgIHZhciBmID0gKGZpbHRl ciAmJiBhekdyb3Vwc1tmaWx0ZXJdKSA/IGZpbHRlciA6IG51bGw7ICAgLy8gbnVyIGd1ZWx0aWdl IEJ1Y2hzdGFiZW4gbWl0IEVpbnRyYWVnZW4KICAgIHZhciBzdHJpcCA9ICQoIiNhei1zdHJpcCIp OyBzdHJpcC5pbm5lckhUTUwgPSAiIjsKICAgICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiMi LnNwbGl0KCIiKS5mb3JFYWNoKGZ1bmN0aW9uIChMKSB7CiAgICAgIHN0cmlwLmFwcGVuZENoaWxk KGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYXota2V5IiArIChmID09PSBMID8gIiBhY3RpdmUiIDog IiIpLCBkaXNhYmxlZDogYXpHcm91cHNbTF0gPyBudWxsIDogImRpc2FibGVkIiwKICAgICAgICB0 aXRsZTogIk51ciDigJ4iICsgTCArICLigJwgYW56ZWlnZW4iLAogICAgICAgIG9uY2xpY2s6IGZ1 bmN0aW9uICgpIHsgUC5vcGVuQVooZiA9PT0gTCA/IG51bGwgOiBMKTsgfSwgdGV4dDogTCB9KSk7 ICAgLy8gZXJuZXV0ZXIgS2xpY2sgYXVmIGFrdGl2ZW4gQnVjaHN0YWJlbiA9IGFsbGUKICAgIH0p OwogICAgdmFyIGJvZHkgPSAkKCIjYXotYm9keSIpOyBib2R5LmlubmVySFRNTCA9ICIiOyB2YXIg dG90YWwgPSAwLCBzaG93biA9IDA7CiAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVojIi5z cGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbiAoTCkgewogICAgICBpZiAoIWF6R3JvdXBzW0xdKSBy ZXR1cm47CiAgICAgIHRvdGFsICs9IGF6R3JvdXBzW0xdLmxlbmd0aDsKICAgICAgaWYgKGYgJiYg TCAhPT0gZikgcmV0dXJuOyAgIC8vIGltIEZpbHRlcm1vZHVzIG51ciBkZW4gZ2V3YWVobHRlbiBC dWNoc3RhYmVuIHJlbmRlcm4KICAgICAgYm9keS5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFz czogImF6LWxldHRlci1oIiwgaWQ6ICJhei1oLSIgKyBMLCB0ZXh0OiBMIH0pKTsKICAgICAgYXpH cm91cHNbTF0uZm9yRWFjaChmdW5jdGlvbiAoZSkgewogICAgICAgIHNob3duKys7CiAgICAgICAg dmFyIGEgPSBlbCgiYSIsIHsgY2xhc3M6ICJhei1saW5rIiwgaHJlZjogZS5pdC5ocmVmIHx8ICIj IiwKICAgICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uIChldikgeyBldi5wcmV2ZW50RGVmYXVsdCgp OyBQLm5hdmlnYXRlKGUuaXQpOyBQLmNsb3NlQVooKTsgfSwgdGV4dDogZS5sYWJlbCB9KTsKICAg ICAgICAvLyBJbSBQZmxlZ2UtTW9kdXM6IGplIFR5cCBkZXJzZWxiZSBFZGl0b3Igd2llIGluIGRl ciBTZWl0ZW5sZWlzdGUg4oCUIEFydGlrZWwgLT4gQXJ0aWtlbC1FZGl0b3IsCiAgICAgICAgLy8g TGluay9PcmRuZXIgLT4gS25vdGVuLUVkaXRvciAoWmllbCDCtyBpbnRlcm4vZXh0ZXJuIMK3IE9l ZmZuZW4tTW9kdXMgwrcgSWNvbikuCiAgICAgICAgaWYgKFAubGl2ZSAmJiAoUC5lZGl0Tm9kZURs ZyB8fCBQLm9wZW5BcnRpY2xlRGxnKSkgewogICAgICAgICAgdmFyIGVkaXQgPSBlbCgiYnV0dG9u IiwgeyB0eXBlOiAiYnV0dG9uIiwgY2xhc3M6ICJhei1lZGl0IiwKICAgICAgICAgICAgdGl0bGU6 IGUuaXQuYXJ0aWNsZSA/ICJBcnRpa2VsIGJlYXJiZWl0ZW4iIDogIkVpbnRyYWcgYmVhcmJlaXRl biAoWmllbCDCtyBpbnRlcm4vZXh0ZXJuIMK3IMOWZmZuZW4tTW9kdXMpIiwgaHRtbDogaWMoImVk aXQiKSwKICAgICAgICAgICAgb25jbGljazogZnVuY3Rpb24gKGV2KSB7CiAgICAgICAgICAgICAg ZXYucHJldmVudERlZmF1bHQoKTsgZXYuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICAgICAg aWYgKGUuaXQuYXJ0aWNsZSAmJiBQLm9wZW5BcnRpY2xlRGxnKSB7IFAub3BlbkFydGljbGVEbGco ZS5pdCk7IH0KICAgICAgICAgICAgICBlbHNlIGlmIChQLmVkaXROb2RlRGxnKSB7IFAuZWRpdE5v ZGVEbGcoZS5pdCwgZnVuY3Rpb24gKCkgeyBQLm9wZW5BWihmKTsgfSk7IH0KICAgICAgICAgICAg fSB9KTsKICAgICAgICAgIGJvZHkuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJhei1y b3ciIH0sIFthLCBlZGl0XSkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBib2R5LmFwcGVu ZENoaWxkKGEpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKICAgICQoIiNhei1jb3VudCIp LnRleHRDb250ZW50ID0gZiA/IChzaG93biArICIgRWludHLDpGdlIMK3IOKAniIgKyBmICsgIuKA nCIpIDogKHRvdGFsICsgIiBFaW50csOkZ2UiKTsKICAgICQoIiNhei1vdmVybGF5IikuY2xhc3NM aXN0LmFkZCgib3BlbiIpOwogICAgaWYgKCFhektleUgpIHsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gbnVyIGJlaW0gRVJTVEVOIMOWZmZuZW4gKG9wZW5BWiB3aXJkIGJlaW0g RmlsdGVybiBlcm5ldXQgYXVmZ2VydWZlbikKICAgICAgYXpQcmV2Rm9jdXMgPSBkb2N1bWVudC5h Y3RpdmVFbGVtZW50OwogICAgICBhektleUggPSBhelRyYXA7IGRvY3VtZW50LmFkZEV2ZW50TGlz dGVuZXIoImtleWRvd24iLCBhektleUgsIHRydWUpOwogICAgICB2YXIgY2wgPSAkKCIjYXotY2xv c2UiKTsgaWYgKGNsKSBjbC5mb2N1cygpOwogICAgfQogIH07CiAgUC5jbG9zZUFaID0gZnVuY3Rp b24gKCkgewogICAgJCgiI2F6LW92ZXJsYXkiKS5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIik7CiAg ICBpZiAoYXpLZXlIKSB7IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBh ektleUgsIHRydWUpOyBhektleUggPSBudWxsOyB9CiAgICBpZiAoYXpQcmV2Rm9jdXMgJiYgYXpQ cmV2Rm9jdXMuZm9jdXMpIHsgdHJ5IHsgYXpQcmV2Rm9jdXMuZm9jdXMoKTsgfSBjYXRjaCAoZSkg e30gfQogICAgYXpQcmV2Rm9jdXMgPSBudWxsOwogIH07CiAgLy8gRm9rdXNmYWxsZSBmw7xyIGRh cyBB4oCTWi1PdmVybGF5IChlaW56aWdlcyBOaWNodC08ZGlhbG9nPi1Nb2RhbCkuIEVzYyBzY2hs aWXDn3Q7IFRhYiBibGVpYnQgZHJpbi4KICB2YXIgYXpQcmV2Rm9jdXMgPSBudWxsLCBhektleUgg PSBudWxsOwogIGZ1bmN0aW9uIGF6UGFuZWwoKSB7IHJldHVybiAkKCIuYXotcGFuZWwiKTsgfQog IGZ1bmN0aW9uIGF6Rm9jdXNhYmxlcygpIHsKICAgIHZhciBwID0gYXpQYW5lbCgpOyBpZiAoIXAp IHJldHVybiBbXTsKICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChwLnF1ZXJ5 U2VsZWN0b3JBbGwoJ2FbaHJlZl0sYnV0dG9uOm5vdChbZGlzYWJsZWRdKSxpbnB1dDpub3QoW2Rp c2FibGVkXSksc2VsZWN0LHRleHRhcmVhLFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSkn KSkKICAgICAgLmZpbHRlcihmdW5jdGlvbiAobikgeyByZXR1cm4gbi5vZmZzZXRQYXJlbnQgIT09 IG51bGw7IH0pOwogIH0KICBmdW5jdGlvbiBhelRyYXAoZSkgewogICAgaWYgKGRvY3VtZW50LnF1 ZXJ5U2VsZWN0b3IoImRpYWxvZ1tvcGVuXSIpKSByZXR1cm47ICAgLy8gZGFyw7xiZXJsaWVnZW5k ZXMgTW9kYWwgaGF0IGVpZ2VuZSBGYWxsZSAtPiBuaWNodCBzdMO2cmVuCiAgICBpZiAoZS5rZXkg PT09ICJFc2NhcGUiKSB7IGUucHJldmVudERlZmF1bHQoKTsgUC5jbG9zZUFaKCk7IHJldHVybjsg fQogICAgaWYgKGUua2V5ICE9PSAiVGFiIikgcmV0dXJuOwogICAgdmFyIGYgPSBhekZvY3VzYWJs ZXMoKTsgaWYgKCFmLmxlbmd0aCkgcmV0dXJuOwogICAgdmFyIHAgPSBhelBhbmVsKCksIGEgPSBk b2N1bWVudC5hY3RpdmVFbGVtZW50LCBmaXJzdCA9IGZbMF0sIGxhc3QgPSBmW2YubGVuZ3RoIC0g MV07CiAgICBpZiAoZS5zaGlmdEtleSAmJiAoYSA9PT0gZmlyc3QgfHwgIXAuY29udGFpbnMoYSkp KSB7IGUucHJldmVudERlZmF1bHQoKTsgbGFzdC5mb2N1cygpOyB9CiAgICBlbHNlIGlmICghZS5z aGlmdEtleSAmJiAoYSA9PT0gbGFzdCB8fCAhcC5jb250YWlucyhhKSkpIHsgZS5wcmV2ZW50RGVm YXVsdCgpOyBmaXJzdC5mb2N1cygpOyB9CiAgfQoKfSkod2luZG93LlApOwo= ### FILE: assets/js/features/toc.js | 2825 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvdG9jLmpzICAoUGhh c2UgOCkKICAgQXV0b21hdGlzY2hlcyBJbmhhbHRzdmVyemVpY2huaXMgZsO8ciBsYW5nZSBBcnRp a2VsOiBzY2FubnQgaDIvaDMgaW4gZGVyCiAgIGdlcmVuZGVydGVuIEFydGlrZWwtQW5zaWNodCwg YmF1dCBlaW4gc2VpdGxpY2hlcyBUT0MgbWl0IFNjcm9sbC1NaXRsYXVmCiAgIChJbnRlcnNlY3Rp b25PYnNlcnZlcikgdW5kIHNhbmZ0ZW0gU3BydW5nLiBOdXIgYWIg4omlMyDDnGJlcnNjaHJpZnRl bi4gUmVpbmVyCiAgIERPTS1Db2RlIOKAlCBmdW5rdGlvbmllcnQgYXVjaCBmw7xyIExlc2VyIChm aWxlOi8vKS4gVW1ow7xsbHQgb3BlbkFydGljbGUvY2xvc2VEb2MuCiAgID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAq LwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIGVsID0gUC5lbCwgJCA9IFAu JCwgJCQgPSBQLiQkOwogIHZhciBvYnNlcnZlciA9IG51bGwsIGFzaWRlID0gbnVsbCwgbGlua0J5 SWQgPSB7fTsKCiAgZnVuY3Rpb24gdGVhcmRvd24oKSB7CiAgICBpZiAob2JzZXJ2ZXIpIHsgdHJ5 IHsgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpOyB9IGNhdGNoIChlKSB7fSBvYnNlcnZlciA9IG51bGw7 IH0KICAgIGlmIChhc2lkZSAmJiBhc2lkZS5wYXJlbnROb2RlKSBhc2lkZS5wYXJlbnROb2RlLnJl bW92ZUNoaWxkKGFzaWRlKTsKICAgIGFzaWRlID0gbnVsbDsgbGlua0J5SWQgPSB7fTsKICB9Cgog IGZ1bmN0aW9uIGJ1aWxkKCkgewogICAgdGVhcmRvd24oKTsKICAgIHZhciBob3N0ID0gJCgiI2N2 LWFydGljbGUiKTsgaWYgKCFob3N0KSByZXR1cm47CiAgICB2YXIgYm9keSA9ICQoIi5hcnQtYm9k eSIsIGhvc3QpOyBpZiAoIWJvZHkpIHJldHVybjsKICAgIHZhciBoZWFkcyA9ICQkKCJoMixoMyIs IGJvZHkpOwogICAgaWYgKGhlYWRzLmxlbmd0aCA8IDMpIHJldHVybjsgICAvLyBrdXJ6ZSBBcnRp a2VsOiBrZWluIFRPQwoKICAgIHZhciBuYXYgPSBlbCgibmF2IiwgeyBjbGFzczogImFydC10b2Mi LCAiYXJpYS1sYWJlbCI6ICJJbmhhbHQiIH0pOwogICAgbmF2LmFwcGVuZENoaWxkKGVsKCJkaXYi LCB7IGNsYXNzOiAiYXJ0LXRvYy1oIiwgdGV4dDogIkluaGFsdCIgfSkpOwogICAgdmFyIGxpc3Qg PSBlbCgidWwiKTsKICAgIGhlYWRzLmZvckVhY2goZnVuY3Rpb24gKGgsIGkpIHsKICAgICAgdmFy IHRleHQgPSAoaC50ZXh0Q29udGVudCB8fCAiIikudHJpbSgpOyBpZiAoIXRleHQpIHJldHVybjsK ICAgICAgaWYgKCFoLmlkKSBoLmlkID0gInRvYy0iICsgUC5zbHVnKHRleHQpICsgIi0iICsgaTsK ICAgICAgdmFyIGEgPSBlbCgiYSIsIHsgaHJlZjogIiMiICsgaC5pZCwgdGV4dDogdGV4dCwgY2xh c3M6IGgudGFnTmFtZSA9PT0gIkgzIiA/ICJsdmwzIiA6ICJsdmwyIiwKICAgICAgICBvbmNsaWNr OiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAg dmFyIHNtb290aCA9ICEod2luZG93Lm1hdGNoTWVkaWEgJiYgbWF0Y2hNZWRpYSgiKHByZWZlcnMt cmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKS5tYXRjaGVzKTsKICAgICAgICAgIHRyeSB7IGguc2Ny b2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogc21vb3RoID8gInNtb290aCIgOiAiYXV0byIsIGJsb2Nr OiAic3RhcnQiIH0pOyB9IGNhdGNoICh4KSB7IGguc2Nyb2xsSW50b1ZpZXcoKTsgfQogICAgICAg IH0gfSk7CiAgICAgIGxpbmtCeUlkW2guaWRdID0gYTsKICAgICAgbGlzdC5hcHBlbmRDaGlsZChl bCgibGkiLCBudWxsLCBbYV0pKTsKICAgIH0pOwogICAgbmF2LmFwcGVuZENoaWxkKGxpc3QpOwog ICAgaG9zdC5pbnNlcnRCZWZvcmUobmF2LCBob3N0LmZpcnN0Q2hpbGQpOwogICAgYXNpZGUgPSBu YXY7CgogICAgLy8gU2Nyb2xsLU1pdGxhdWYgKG9wdGlvbmFsOyBncmFjZWZ1bCBvaG5lIE9ic2Vy dmVyKS4KICAgIGlmICh3aW5kb3cuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpIHsKICAgICAgb2JzZXJ2 ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24gKGVudHJpZXMpIHsKICAgICAg ICBlbnRyaWVzLmZvckVhY2goZnVuY3Rpb24gKGVuKSB7CiAgICAgICAgICBpZiAoZW4uaXNJbnRl cnNlY3RpbmcpIHsKICAgICAgICAgICAgdmFyIGEgPSBsaW5rQnlJZFtlbi50YXJnZXQuaWRdOyBp ZiAoIWEpIHJldHVybjsKICAgICAgICAgICAgJCQoIi5hcnQtdG9jIGEuYWN0aXZlIikuZm9yRWFj aChmdW5jdGlvbiAoeCkgeyB4LmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpOyB9KTsKICAgICAg ICAgICAgYS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKTsKICAgICAgICAgIH0KICAgICAgICB9KTsK ICAgICAgfSwgeyByb290OiBob3N0LCByb290TWFyZ2luOiAiMHB4IDBweCAtNzAlIDBweCIsIHRo cmVzaG9sZDogMCB9KTsKICAgICAgaGVhZHMuZm9yRWFjaChmdW5jdGlvbiAoaCkgeyBpZiAoaC5p ZCkgb2JzZXJ2ZXIub2JzZXJ2ZShoKTsgfSk7CiAgICB9CiAgfQoKICBpZiAoUC5vcGVuQXJ0aWNs ZSkgeyB2YXIgX29wZW4gPSBQLm9wZW5BcnRpY2xlOyBQLm9wZW5BcnRpY2xlID0gZnVuY3Rpb24g KGl0KSB7IF9vcGVuKGl0KTsgYnVpbGQoKTsgfTsgfQogIGlmIChQLmNsb3NlRG9jKSB7IHZhciBf Y2xvc2UgPSBQLmNsb3NlRG9jOyBQLmNsb3NlRG9jID0gZnVuY3Rpb24gKCkgeyB0ZWFyZG93bigp OyBfY2xvc2UoKTsgfTsgfQoKfSkod2luZG93LlApOwo= ### FILE: assets/js/features/whatsnew.js | 3433 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvd2hhdHNuZXcuanMK ICAg4oCeTmV1ZXMgJiB6dWxldHp0IEdlw6RuZGVydGVzIiDigJQgZnVlaHJ0IGRpZSBmcnVlaGVy ZW4gQ29ja3BpdC1XaWRnZXRzCiAgIOKAnlNlaXQgZGVpbmVtIGxldHp0ZW4gQmVzdWNoIiB1bmQg 4oCeWnVsZXR6dCBnZcOkbmRlcnRlcyBXaXNzZW4iIGluIEVJTkVNCiAgIE1vZGFsIHp1c2FtbWVu LiBBdWZydWYgdWViZXIgZGVuIEVpbnRyYWcgbGlua3MgaW4gZGVyIE5hdmlnYXRpb24uCiAgIFJl aW5lciBBbnplaWdlLUNvZGUgYXVzIHZvcmhhbmRlbmVuIERhdGVuIChNZWxkdW5nZW4gKyBOYXYt QXJ0aWtlbCksCiAgIGZpbGU6Ly8tdGF1Z2xpY2gsIGtlaW5lIEVTLU1vZHVsZS4gTGFlZHQgbmFj aCBmZWVkLmpzL25hdi5qcywgdm9yIG1haW4uanMuCiAgID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwooZnVuY3Rp b24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIGVsID0gUC5lbCwgaWMgPSBQLmljOwoKICBm dW5jdGlvbiB0bnVtKHMpIHsgaWYgKCFzKSByZXR1cm4gMDsgdmFyIHQgPSBuZXcgRGF0ZShzKS5n ZXRUaW1lKCk7IHJldHVybiBpc05hTih0KSA/IDAgOiB0OyB9CgogIC8vIE5ldSBzZWl0IGRlbSBs ZXR6dGVuIEJlc3VjaCAoTWVsZHVuZ2VuICsgQXJ0aWtlbCkuCiAgZnVuY3Rpb24gc2luY2VWaXNp dCgpIHsKICAgIHZhciBsdiA9IFAubGFzdFZpc2l0IHx8IDAsIHJvd3MgPSBbXTsKICAgIChQLmNv bnRlbnQuYnVsbGV0aW5zIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChiKSB7CiAgICAgIHZhciB3 ID0gYi51cGRhdGVkIHx8IGIuY3JlYXRlZCB8fCBiLmRhdGU7CiAgICAgIGlmICh0bnVtKHcpID4g bHYpIHJvd3MucHVzaCh7IGxhYmVsOiBiLnRpdGxlLCB3aGVuOiB3LCBraW5kOiAiYnVsbGV0aW4i LCByZWY6IGIsIHN1YjogIk1lbGR1bmciLCBpc05ldzogdHJ1ZSB9KTsKICAgIH0pOwogICAgaWYg KFAuZWFjaE5hdkl0ZW0pIFAuZWFjaE5hdkl0ZW0oZnVuY3Rpb24gKGl0KSB7CiAgICAgIGlmIChp dC5hcnRpY2xlKSB7IHZhciB3ID0gaXQuYXJ0aWNsZS51cGRhdGVkIHx8IGl0LmFydGljbGUuZGF0 ZTsgaWYgKHRudW0odykgPiBsdikgcm93cy5wdXNoKHsgbGFiZWw6IGl0LmxhYmVsIHx8IGl0LmFy dGljbGUudGl0bGUsIHdoZW46IHcsIGtpbmQ6ICJhcnRpY2xlIiwgcmVmOiBpdCwgc3ViOiAiQXJ0 aWtlbCIsIGlzTmV3OiB0cnVlIH0pOyB9CiAgICB9KTsKICAgIHJldHVybiByb3dzLnNvcnQoZnVu Y3Rpb24gKGEsIGIpIHsgcmV0dXJuIHRudW0oYi53aGVuKSAtIHRudW0oYS53aGVuKTsgfSk7CiAg fQogIC8vIFp1bGV0enQgZ2VhZW5kZXJ0ZSBXaXNzZW5zYXJ0aWtlbC4KICBmdW5jdGlvbiByZWNl bnRLbm93bGVkZ2UobikgewogICAgdmFyIHJvd3MgPSBbXTsKICAgIGlmIChQLmVhY2hOYXZJdGVt KSBQLmVhY2hOYXZJdGVtKGZ1bmN0aW9uIChpdCkgewogICAgICBpZiAoaXQuYXJ0aWNsZSkgeyB2 YXIgdyA9IGl0LmFydGljbGUudXBkYXRlZCB8fCBpdC5hcnRpY2xlLmRhdGU7IGlmICh0bnVtKHcp ID4gMCkgcm93cy5wdXNoKHsgbGFiZWw6IGl0LmxhYmVsIHx8IGl0LmFydGljbGUudGl0bGUsIHdo ZW46IHcsIGtpbmQ6ICJhcnRpY2xlIiwgcmVmOiBpdCwgc3ViOiAiQXJ0aWtlbCIgfSk7IH0KICAg IH0pOwogICAgcmV0dXJuIHJvd3Muc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gdG51bShi LndoZW4pIC0gdG51bShhLndoZW4pOyB9KS5zbGljZSgwLCBuIHx8IDEyKTsKICB9CiAgZnVuY3Rp b24ganVtcChyKSB7CiAgICBpZiAoci5raW5kID09PSAiYnVsbGV0aW4iICYmIFAuZmxhc2hCdWxs ZXRpbikgUC5mbGFzaEJ1bGxldGluKHIucmVmKTsKICAgIGVsc2UgaWYgKFAubmF2aWdhdGUpIFAu bmF2aWdhdGUoci5yZWYpOwogIH0KCiAgUC5vcGVuV2hhdHNOZXcgPSBmdW5jdGlvbiAoKSB7CiAg ICB2YXIgc2VlbiA9IHNpbmNlVmlzaXQoKS5zbGljZSgwLCBQLm1vZCgid2hhdHNuZXcuc2Vlbkxp bWl0IikpOwogICAgdmFyIHJlY2VudCA9IHJlY2VudEtub3dsZWRnZShQLm1vZCgid2hhdHNuZXcu cmVjZW50TGltaXQiKSk7CiAgICB2YXIgbTsKICAgIGZ1bmN0aW9uIHJvd0VsKHIpIHsKICAgICAg cmV0dXJuIGVsKCJidXR0b24iLCB7IGNsYXNzOiAibGMtcm93IiwgdGl0bGU6IHIubGFiZWwgfHwg IiIsIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgaWYgKG0pIG0uY2xvc2UoKTsganVtcChyKTsgfSB9 LCBbCiAgICAgICAgZWwoInNwYW4iLCB7IGNsYXNzOiAibGMtbWFpbiIgfSwgWwogICAgICAgICAg ZWwoInNwYW4iLCB7IGNsYXNzOiAibGMtbGJsIiwgdGV4dDogci5sYWJlbCB8fCAiKG9obmUgVGl0 ZWwpIiB9KSwKICAgICAgICAgIGVsKCJzcGFuIiwgeyBjbGFzczogImxjLXBhdGgiLCB0ZXh0OiAo ci5zdWIgPyByLnN1YiArICIgwrcgIiA6ICIiKSArIFAuZm10RGF0ZShyLndoZW4pIH0pCiAgICAg ICAgXSksCiAgICAgICAgci5pc05ldyA/IGVsKCJzcGFuIiwgeyBjbGFzczogImxjLWJhZGdlIHdh aXQiLCB0ZXh0OiAiTkVVIiB9KSA6IG51bGwKICAgICAgXSk7CiAgICB9CiAgICBmdW5jdGlvbiBz ZWN0aW9uKGhvc3QsIGxhYmVsLCByb3dzLCBlbXB0eVRleHQpIHsKICAgICAgaG9zdC5hcHBlbmRD aGlsZChlbCgiZGl2IiwgeyBjbGFzczogImZlZWQtc2VjdGlvbi1sYWJlbCIsIGh0bWw6IGljKCJj bG9jayIpICsgUC5lc2NhcGVIdG1sKGxhYmVsKSB9KSk7CiAgICAgIGlmICghcm93cy5sZW5ndGgp IHsgaG9zdC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImxjLWVtcHR5IiwgdGV4dDog ZW1wdHlUZXh0IHx8ICLigJQiIH0pKTsgcmV0dXJuOyB9CiAgICAgIHZhciBsaXN0ID0gZWwoImRp diIsIHsgY2xhc3M6ICJsYy1saXN0IiB9KTsKICAgICAgcm93cy5mb3JFYWNoKGZ1bmN0aW9uIChy KSB7IGxpc3QuYXBwZW5kQ2hpbGQocm93RWwocikpOyB9KTsKICAgICAgaG9zdC5hcHBlbmRDaGls ZChsaXN0KTsKICAgIH0KICAgIG0gPSBQLm1vZGFsKHsKICAgICAgdGl0bGU6IFAudCgid2hhdHNu ZXcudGl0bGUiKSwgaWNvbjogImNsb2NrIiwgc2l6ZTogImxnIiwKICAgICAgYm9keTogZnVuY3Rp b24gKGhvc3QpIHsKICAgICAgICBzZWN0aW9uKGhvc3QsIFAudCgid2hhdHNuZXcuc2VlbiIpLCBz ZWVuLCBQLnQoIndoYXRzbmV3LmVtcHR5IikpOwogICAgICAgIHNlY3Rpb24oaG9zdCwgUC50KCJ3 aGF0c25ldy5yZWNlbnQiKSwgcmVjZW50LCAi4oCUIik7CiAgICAgIH0sCiAgICAgIGFjdGlvbnM6 IFt7IGxhYmVsOiAiU2NobGllw59lbiIsIGtpbmQ6ICJnaG9zdCIgfV0KICAgIH0pOwogIH07Cgp9 KSh3aW5kb3cuUCk7Cg== ### FILE: helfer/Helfer-beenden.bat | 1349 QGVjaG8gb2ZmDQpzZXRsb2NhbCBlbmFibGVkZWxheWVkZXhwYW5zaW9uDQp0aXRsZSBQb3J0YWwg VW5pb24gLSBIZWxmZXIgYmVlbmRlbiAvIGVudHNwZXJyZW4NCnJlbSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCnJlbSAgQmVlbmRldCBhbGxlIGxhdWZlbmRlbiBQb3J0YWwtUGZsZWdlLUhlbGZlciBkaWVz ZXMgUENzIHVuZCBnaWJ0IGRhbWl0IGRpZQ0KcmVtICBwb3J0YWxfaGVsZmVyLnBzMSAoU2hhcmUg VU5EIGxva2FsZXIgQ2FjaGUpIHdpZWRlciB6dW0gQWt0dWFsaXNpZXJlbiBmcmVpLg0KcmVtICBM b29wYmFjay1vbmx5LCBiZXRyaWZmdCBudXIgZGllIGVpZ2VuZW4gUHJvemVzc2UgZGllc2VzIEJl bnV0emVycy4NCnJlbSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCmVjaG8uDQplY2hvICAgQmVlbmRlIGxh dWZlbmRlIFBvcnRhbC1QZmxlZ2UtSGVsZmVyIChnaWJ0IHBvcnRhbF9oZWxmZXIucHMxIGZyZWkp IC4uLg0KZWNoby4NCnNldCAiTj0wIg0KZm9yIC9mICJ1c2ViYWNrcSB0b2tlbnM9KiIgJSVQIGlu IChgcG93ZXJzaGVsbCAtTm9Qcm9maWxlIC1Db21tYW5kICJHZXQtQ2ltSW5zdGFuY2UgV2luMzJf UHJvY2VzcyAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB8IFdoZXJlLU9iamVjdCB7ICgk Xy5OYW1lIC1lcSAncG93ZXJzaGVsbC5leGUnIC1vciAkXy5OYW1lIC1lcSAncHdzaC5leGUnKSAt YW5kICRfLkNvbW1hbmRMaW5lIC1hbmQgJF8uQ29tbWFuZExpbmUgLW1hdGNoICdwb3J0YWxfaGVs ZmVyLipcLnBzMScgfSB8IFNlbGVjdC1PYmplY3QgLUV4cGFuZFByb3BlcnR5IFByb2Nlc3NJZCJg KSBkbyAoDQogIHRhc2traWxsIC9QSUQgJSVQIC9GID5udWwgMj4mMQ0KICBzZXQgL2EgTj0hTiEr MQ0KKQ0KZWNoby4NCmlmICFOISBndHIgMCAoDQogIGVjaG8gICBGZXJ0aWc6ICFOISBIZWxmZXIt UHJvemVzc14oZV4pIGJlZW5kZXQuIHBvcnRhbF9oZWxmZXIucHMxIGlzdCBqZXR6dCBlbnRzcGVy cnQuDQopIGVsc2UgKA0KICBlY2hvICAgS2VpbiBsYXVmZW5kZXIgSGVsZmVyIGdlZnVuZGVuIC0g ZXMgd2FyIG5pY2h0cyB6dSBiZWVuZGVuL2VudHNwZXJyZW4uDQopDQplY2hvLg0KZWNobyAgIE9w dGlvbmFsOiBhbHRlIGxva2FsZSBTa3JpcHQtS29waWVuIGF1ZnJhZXVtZW4gLi4uDQpkZWwgL2Yg L3EgIiVMT0NBTEFQUERBVEElXFBvcnRhbF9Vbmlvbl9IZWxmZXJccG9ydGFsX2hlbGZlcl8qLnBz MSIgPm51bCAyPiYxDQplY2hvLg0KcGF1c2UNCmVuZGxvY2FsDQo= ### FILE: helfer/Portal-Pflege-starten.bat | 3884 QGVjaG8gb2ZmDQpzZXRsb2NhbCBlbmFibGVkZWxheWVkZXhwYW5zaW9uDQp0aXRsZSBQb3J0YWwg VW5pb24gLSBQZmxlZ2UNCnJlbSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCnJlbSAgUE9SVEFMIFVOSU9O IC0gUGZsZWdlLU1vZHVzIHN0YXJ0ZW4gIChNZWhyYmVudXR6ZXItZmFlaGlnKQ0KcmVtICAtIERl ciBIZWxmZXIgd2lyZCBpbiBlaW5lbiBMT0tBTEVOIENhY2hlICglTE9DQUxBUFBEQVRBJSkga29w aWVydCB1bmQgdm9uDQpyZW0gICAgZG9ydCBnZXN0YXJ0ZXQgLT4gZGllIHBvcnRhbF9oZWxmZXIu cHMxIGF1ZiBkZW0gU2hhcmUgYmxlaWJ0IGVudHNwZXJydA0KcmVtICAgIHVuZCBqZWRlcnplaXQg YWt0dWFsaXNpZXJiYXIsIGF1Y2ggd2VubiBIZWxmZXIgbGF1ZmVuLg0KcmVtICAtIFN0YXRlIC8g Y29udHJhY3QuanNvbiAvIFJvbGxlbmxpc3RlbiAvIExvZ3MgYmxlaWJlbiBhdWYgZGVtIFNIQVJF DQpyZW0gICAgKC1IZWxmZXJEaXIpLCBkYW1pdCBhbGxlIE51dHplciBkaWVzZWxiZW4gU3BlcnJl bi9FbnR3dWVyZmUgc2VoZW4uDQpyZW0gIC0gYmVlbmRldCBhbHRlIEhlbGZlci1JbnN0YW56ZW4s IHN1Y2h0IGVpbmVuIGZyZWllbiBQb3J0LCBvZWZmbmV0IEJyb3dzZXIuDQpyZW0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09DQoNCnJlbSAtLS0gU2hhcmUtUGZhZGUgKGRpZXNlciBoZWxmZXItT3JkbmVyICsg UG9ydGFsLVJvb3QgZWluZSBFYmVuZSBkcnVlYmVyKSAtLS0NCnNldCAiSEVMRkVSX0RJUj0lfmRw MCINCnNldCAiSEVMRkVSX0RJUj0lSEVMRkVSX0RJUjp+MCwtMSUiDQpmb3IgJSVJIGluICgiJUhF TEZFUl9ESVIlXC4uIikgZG8gc2V0ICJQT1JUQUxfUk9PVD0lJX5mSSINCnNldCAiU1JDX1BTPSVI RUxGRVJfRElSJVxwb3J0YWxfaGVsZmVyLnBzMSINCnNldCAiQ0FDSEU9JUxPQ0FMQVBQREFUQSVc UG9ydGFsX1VuaW9uX0hlbGZlciINCnNldCAiUE9SVF9LQU5ESURBVEVOPTg3NTMgODc1NCA4NzU1 IDgwODggODE4MSA4NzY1IDkwODAgOTEyMyAxMzU3OSAyNDY4MCAyODA4MCA0MjQyNCA1NTU1NSIN CnNldCAiUE9SVD0iDQoNCmVjaG8uDQplY2hvICAgUG9ydGFsLVBmbGVnZSB3aXJkIGdlc3RhcnRl dCAuLi4NCmVjaG8uDQoNCnJlbSAtLS0gYWx0ZSBIZWxmZXItUHJvemVzc2UgYmVlbmRlbiAoZ2li dCBQb3J0ICsgRGF0ZWktTG9jayBmcmVpKSAtLS0NCmZvciAvZiAidXNlYmFja3EgdG9rZW5zPSoi ICUlUCBpbiAoYHBvd2Vyc2hlbGwgLU5vUHJvZmlsZSAtQ29tbWFuZCAiR2V0LUNpbUluc3RhbmNl IFdpbjMyX1Byb2Nlc3MgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfCBXaGVyZS1PYmpl Y3QgeyAoJF8uTmFtZSAtZXEgJ3Bvd2Vyc2hlbGwuZXhlJyAtb3IgJF8uTmFtZSAtZXEgJ3B3c2gu ZXhlJykgLWFuZCAkXy5Db21tYW5kTGluZSAtYW5kICRfLkNvbW1hbmRMaW5lIC1tYXRjaCAncG9y dGFsX2hlbGZlci4qXC5wczEnIH0gfCBTZWxlY3QtT2JqZWN0IC1FeHBhbmRQcm9wZXJ0eSBQcm9j ZXNzSWQiYCkgZG8gdGFza2tpbGwgL1BJRCAlJVAgL0YgPm51bCAyPiYxDQoNCnJlbSAtLS0gU2ty aXB0IGluIGRlbiBsb2thbGVuIENhY2hlIGtvcGllcmVuIChtaXQgWmVpdHN0ZW1wZWwtTmFtZW4p IC0tLQ0KZm9yIC9mICJ1c2ViYWNrcSBkZWxpbXM9IiAlJVQgaW4gKGBwb3dlcnNoZWxsIC1Ob1By b2ZpbGUgLUNvbW1hbmQgIihHZXQtRGF0ZSkuVG9TdHJpbmcoJ3l5eXlNTWRkX0hIbW1zcycpImAp IGRvIHNldCAiVFM9JSVUIg0Kc2V0ICJMT0NBTF9QUz0lQ0FDSEUlXHBvcnRhbF9oZWxmZXJfJVRT JS5wczEiDQppZiBub3QgZXhpc3QgIiVDQUNIRSUiIG1rZGlyICIlQ0FDSEUlIiAyPm51bA0KZGVs IC9mIC9xICIlQ0FDSEUlXHBvcnRhbF9oZWxmZXJfKi5wczEiID5udWwgMj4mMQ0KY29weSAvWSAi JVNSQ19QUyUiICIlTE9DQUxfUFMlIiA+bnVsIDI+JjENCmlmIGVycm9ybGV2ZWwgMSAoDQogIGVj aG8gICBGRUhMRVI6IHBvcnRhbF9oZWxmZXIucHMxIGtvbm50ZSBuaWNodCBuYWNoICVDQUNIRSUg a29waWVydCB3ZXJkZW4uDQogIGVjaG8gICAgICAgICAgIFF1ZWxsZTogJVNSQ19QUyUNCiAgcGF1 c2UNCiAgZXhpdCAvYiAxDQopDQpwb3dlcnNoZWxsIC1Ob1Byb2ZpbGUgLUNvbW1hbmQgIlVuYmxv Y2stRmlsZSAtTGl0ZXJhbFBhdGggJyVMT0NBTF9QUyUnIiA+bnVsIDI+JjENCg0KcmVtIC0tLSBm cmVpZW4gUG9ydCBzdWNoZW4gKGVjaHRlciBUY3BMaXN0ZW5lci1CaW5kKSAtLS0NCmZvciAvZiAi dXNlYmFja3EgdG9rZW5zPSoiICUlUCBpbiAoYHBvd2Vyc2hlbGwgLU5vUHJvZmlsZSAtQ29tbWFu ZCAiJGs9JyVQT1JUX0tBTkRJREFURU4lJyAtc3BsaXQgJyAnOyBmb3JlYWNoKCRzIGluICRrKXsg JHA9W2ludF0kczsgdHJ5eyAkbD1OZXctT2JqZWN0IE5ldC5Tb2NrZXRzLlRjcExpc3RlbmVyKFtO ZXQuSVBBZGRyZXNzXTo6TG9vcGJhY2ssJHApOyAkbC5TdGFydCgpOyAkbC5TdG9wKCk7IFdyaXRl LU91dHB1dCAkcDsgZXhpdCB9Y2F0Y2h7fSB9ImApIGRvIHNldCAiUE9SVD0lJVAiDQppZiBub3Qg ZGVmaW5lZCBQT1JUICgNCiAgZWNobyAgIEZFSExFUjogS2VpbiBmcmVpZXIgUG9ydCBnZWZ1bmRl bi4NCiAgZWNobyAgICAgICAgICAgV2VpdGVyZSBQb3J0cyBvYmVuIGluIFBPUlRfS0FORElEQVRF TiBlaW50cmFnZW4gdW5kIG5ldSBzdGFydGVuLg0KICBwYXVzZQ0KICBleGl0IC9iIDENCikNCg0K cmVtIC0tLSBIZWxmZXIgYXVzIGRlbSBsb2thbGVuIENhY2hlIHN0YXJ0ZW47IERhdGVuIGJsZWli ZW4gYXVmIGRlbSBTaGFyZSAtLS0NCnN0YXJ0ICJQb3J0YWwtUGZsZWdlLUhlbGZlciIgL21pbiBw b3dlcnNoZWxsIC1Ob1Byb2ZpbGUgLVdpbmRvd1N0eWxlIEhpZGRlbiAtRXhlY3V0aW9uUG9saWN5 IEJ5cGFzcyAtRmlsZSAiJUxPQ0FMX1BTJSIgLVBvcnQgJVBPUlQlIC1Qb3J0YWxSb290ICIlUE9S VEFMX1JPT1QlIiAtSGVsZmVyRGlyICIlSEVMRkVSX0RJUiUiDQoNCnJlbSAtLS0gd2FydGVuLCBi aXMgZGVyIEhlbGZlciBhbnR3b3J0ZXQgKG1heCB+OCBzKSAtLS0NCnNldCAiVVA9Ig0KZm9yIC9s ICUldyBpbiAoMSwxLDE2KSBkbyAoDQogIGlmIG5vdCBkZWZpbmVkIFVQICgNCiAgICBwb3dlcnNo ZWxsIC1Ob1Byb2ZpbGUgLUNvbW1hbmQgInRyeXskYz1OZXctT2JqZWN0IE5ldC5Tb2NrZXRzLlRj cENsaWVudDskYy5Db25uZWN0KCcxMjcuMC4wLjEnLCVQT1JUJSk7JGMuQ2xvc2UoKTtleGl0IDB9 Y2F0Y2h7ZXhpdCAxfSIgPm51bCAyPiYxDQogICAgaWYgIWVycm9ybGV2ZWwhIGVxdSAwICggc2V0 ICJVUD0xIiApIGVsc2UgKCBwb3dlcnNoZWxsIC1Ob1Byb2ZpbGUgLUNvbW1hbmQgIlN0YXJ0LVNs ZWVwIC1NaWxsaXNlY29uZHMgNTAwIiA+bnVsICkNCiAgKQ0KKQ0KaWYgbm90IGRlZmluZWQgVVAg KA0KICBlY2hvICAgRkVITEVSOiBIZWxmZXIgcmVhZ2llcnQgbmljaHQgYXVmIFBvcnQgJVBPUlQl Lg0KICBlY2hvICAgICAgICAgICBadW0gUHJ1ZWZlbiBzaWNodGJhciBzdGFydGVuOg0KICBlY2hv ICAgICAgICAgICAgIHBvd2Vyc2hlbGwgLU5vUHJvZmlsZSAtRXhlY3V0aW9uUG9saWN5IEJ5cGFz cyAtRmlsZSAiJUxPQ0FMX1BTJSIgLVBvcnQgJVBPUlQlIC1Qb3J0YWxSb290ICIlUE9SVEFMX1JP T1QlIiAtSGVsZmVyRGlyICIlSEVMRkVSX0RJUiUiDQogIHBhdXNlDQogIGV4aXQgL2IgMQ0KKQ0K DQplY2hvICAgQmVyZWl0IGF1ZiBodHRwOi8vMTI3LjAuMC4xOiVQT1JUJS8gIC0gZGVyIEJyb3dz ZXIgb2VmZm5ldCBzaWNoLg0Kc3RhcnQgIiIgImh0dHA6Ly8xMjcuMC4wLjE6JVBPUlQlLyINCmVu ZGxvY2FsDQo= ### FILE: helfer/hol_bao_medien.ps1 | 4328 IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiMgIEJBTy1NZWRpZW4tSGVsZmVyIChXaW5kb3dzLVByb2R1 a3Rpb247IERldi9UZXN0ID0gaG9sX2Jhb19tZWRpZW4ucHkpCiMgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQojICBGcmFndCBuYWNoIGRlbSBRdWVsbC1CQU8tVmVyemVpY2huaXMgdW5kIGhvbHQgZGFyYXVz IEFMTEUgdm9tIFBvcnRhbAojICBiZW5vZXRpZ3RlbiBNZWRpZW4gKFBERnMvQmlsZGVyKSBnZW1h ZXNzIGJhb1xfVFJBTlNGRVJfTUFOSUZFU1QudHh0CiMgIChbTEFVRlpFSVRdLUFic2Nobml0dCkg bmFjaCA8UG9ydGFsPlxiYW9cPHBmYWQ+LiBFcmtlbm50IGVudHBhY2t0ZQojICBMYWdlLU9yZG5l ciB1bmQgKGFscyBSdWVja2ZhbGwpIGRpZSBPcmlnaW5hbC1MYWdlLVpJUHMgcGFyYWdyYWZfKlw8 bGFnZT4uemlwLgojCiMgIFN0YXJ0OiBCQU8tTWVkaWVuLWhvbGVuLmJhdCBkb3BwZWxrbGlja2Vu ICAob2RlciBkaXJla3Q6KQojICAgICAgcG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IEJ5cGFz cyAtRmlsZSBoZWxmZXJcaG9sX2Jhb19tZWRpZW4ucHMxCiMgIEZ1bmt0aW9uc2dsZWljaCB6dXIg UHl0aG9uLVZhcmlhbnRlIChiZWlkZSBzeW5jaHJvbiBoYWx0ZW4pLgojID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KcGFyYW0oW3N0cmluZ10kU291cmNlID0gIiIpCgokRXJyb3JBY3Rpb25QcmVmZXJlbmNl ID0gIlN0b3AiCiRyb290ID0gU3BsaXQtUGF0aCAtUGFyZW50ICRQU1NjcmlwdFJvb3QgICAgICAg ICAgIyBQb3J0YWwtV3VyemVsIChFbHRlcm4gdm9uIGhlbGZlclwpCiRtYW5pZmVzdCA9IEpvaW4t UGF0aCAkcm9vdCAiYmFvXF9UUkFOU0ZFUl9NQU5JRkVTVC50eHQiCgppZiAoLW5vdCAoVGVzdC1Q YXRoIC1MaXRlcmFsUGF0aCAkbWFuaWZlc3QpKSB7CiAgV3JpdGUtSG9zdCAiRkVITEVSOiAkbWFu aWZlc3QgbmljaHQgZ2VmdW5kZW4uIEVyc3QgZGVuIENvZGUgcGVyIHN5bmMtZW50cGFja2VuLmJh dCBhdWZiYXVlbi4iIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCiAgUmVhZC1Ib3N0ICJNaXQgRW50ZXIg c2NobGllc3NlbiI7IGV4aXQgMQp9CgppZiAoLW5vdCAkU291cmNlKSB7CiAgV3JpdGUtSG9zdCAi QkFPLU1lZGllbi1IZWxmZXIgLSBob2x0IGFsbGUgUERGcy9CaWxkZXIgYXVzIGRlbSBRdWVsbC1C QU8tT3JkbmVyLiIgLUZvcmVncm91bmRDb2xvciBDeWFuCiAgV3JpdGUtSG9zdCAiQmVpc3BpZWwt UXVlbGxlOiBcXHBvbGl6ZWkubnJ3LmRlXC4uLlwxM19CQU9fUG9ydGFsICAob2RlciBlaW4gTGF1 ZndlcmtzYnVjaHN0YWJlKSIKICAkU291cmNlID0gKFJlYWQtSG9zdCAiUXVlbGwtQkFPLVZlcnpl aWNobmlzIikuVHJpbSgnIicpLlRyaW0oKQp9CmlmICgtbm90ICRTb3VyY2UgLW9yIC1ub3QgKFRl c3QtUGF0aCAtTGl0ZXJhbFBhdGggJFNvdXJjZSAtUGF0aFR5cGUgQ29udGFpbmVyKSkgewogIFdy aXRlLUhvc3QgIkZFSExFUjogUXVlbGx2ZXJ6ZWljaG5pcyBuaWNodCBnZWZ1bmRlbjogJFNvdXJj ZSIgLUZvcmVncm91bmRDb2xvciBSZWQKICBSZWFkLUhvc3QgIk1pdCBFbnRlciBzY2hsaWVzc2Vu IjsgZXhpdCAxCn0KCiMgTWFuaWZlc3Q6IG51ciBkZW4gW0xBVUZaRUlUXS1BYnNjaG5pdHQgKFpl aWxlbiwgZGllIG1pdCAnYmFvLycgYmVnaW5uZW4pCiRpdGVtcyA9IEAoKTsgJGFjdGl2ZSA9ICRm YWxzZQpmb3JlYWNoICgkbGluZSBpbiBHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggJG1hbmlmZXN0 IC1FbmNvZGluZyBVVEY4KSB7CiAgJHMgPSAkbGluZS5UcmltKCkKICBpZiAoJHMgLWxpa2UgIiMj IGBbTEFVRlpFSVRgXSoiKSB7ICRhY3RpdmUgPSAkdHJ1ZTsgY29udGludWUgfQogIGlmICgkcyAt bGlrZSAiIyMgYFsqIiAtYW5kICRzIC1ub3RsaWtlICIqTEFVRlpFSVQqIikgeyAkYWN0aXZlID0g JGZhbHNlOyBjb250aW51ZSB9CiAgaWYgKCRhY3RpdmUgLWFuZCAkcy5TdGFydHNXaXRoKCJiYW8v IikpIHsgJGl0ZW1zICs9ICRzIH0KfQoKQWRkLVR5cGUgLUFzc2VtYmx5TmFtZSBTeXN0ZW0uSU8u Q29tcHJlc3Npb24uRmlsZVN5c3RlbQokemlwQ2FjaGUgPSBAe30KZnVuY3Rpb24gR2V0LVppcEJ5 dGVzKCR6aXBQYXRoLCAkbWVtYmVyKSB7CiAgaWYgKC1ub3QgJHppcENhY2hlLkNvbnRhaW5zS2V5 KCR6aXBQYXRoKSkgeyAkemlwQ2FjaGVbJHppcFBhdGhdID0gW1N5c3RlbS5JTy5Db21wcmVzc2lv bi5aaXBGaWxlXTo6T3BlblJlYWQoJHppcFBhdGgpIH0KICAkemlwID0gJHppcENhY2hlWyR6aXBQ YXRoXQogICRiYXNlID0gKCRtZW1iZXIgLXNwbGl0ICcvJylbLTFdCiAgZm9yZWFjaCAoJGUgaW4g JHppcC5FbnRyaWVzKSB7CiAgICAkZnVsbCA9ICRlLkZ1bGxOYW1lIC1yZXBsYWNlICdcXCcsJy8n CiAgICBpZiAoJGZ1bGwgLWVxICRtZW1iZXIgLW9yICRlLk5hbWUgLWVxICRiYXNlKSB7CiAgICAg ICRtcyA9IE5ldy1PYmplY3QgU3lzdGVtLklPLk1lbW9yeVN0cmVhbQogICAgICAkc3QgPSAkZS5P cGVuKCk7ICRzdC5Db3B5VG8oJG1zKTsgJHN0LkNsb3NlKCkKICAgICAgcmV0dXJuICRtcy5Ub0Fy cmF5KCkKICAgIH0KICB9CiAgcmV0dXJuICRudWxsCn0KCldyaXRlLUhvc3QgKCJNYW5pZmVzdDog ezB9IERhdGVpZW4genUgaG9sZW4gYXVzIHsxfSIgLWYgJGl0ZW1zLkNvdW50LCAkU291cmNlKQok Y29waWVkID0gMDsgJHNraXBwZWQgPSAwOyAkbWlzc2luZyA9IDA7ICRtaXNzTGlzdCA9IEAoKQpm b3JlYWNoICgkcmVsIGluICRpdGVtcykgewogICRzdWIgID0gJHJlbC5TdWJzdHJpbmcoNCkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb2huZSAnYmFvLycKICAkZGVzdCA9IEpv aW4tUGF0aCAkcm9vdCAoImJhb1wiICsgKCRzdWIgLXJlcGxhY2UgJy8nLCdcJykpCiAgaWYgKFRl c3QtUGF0aCAtTGl0ZXJhbFBhdGggJGRlc3QpIHsgJHNraXBwZWQrKzsgY29udGludWUgfQogICRk YXRhID0gJG51bGwKICAkZGlyZWN0ID0gSm9pbi1QYXRoICRTb3VyY2UgKCRzdWIgLXJlcGxhY2Ug Jy8nLCdcJykKICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZGlyZWN0IC1QYXRoVHlwZSBM ZWFmKSB7CiAgICAkZGF0YSA9IFtTeXN0ZW0uSU8uRmlsZV06OlJlYWRBbGxCeXRlcygkZGlyZWN0 KQogIH0KICBpZiAoLW5vdCAkZGF0YSAtYW5kICRzdWIuU3RhcnRzV2l0aCgicGFyYWdyYWZfIikp IHsKICAgICRwYXJ0cyA9ICRzdWIgLXNwbGl0ICcvJwogICAgaWYgKCRwYXJ0cy5Db3VudCAtZ2Ug MykgewogICAgICAkemlwID0gSm9pbi1QYXRoICRTb3VyY2UgKCRwYXJ0c1swXSArICJcIiArICRw YXJ0c1sxXSArICIuemlwIikKICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHppcCAt UGF0aFR5cGUgTGVhZikgewogICAgICAgICRtZW1iZXIgPSAoJHBhcnRzWzEuLigkcGFydHMuQ291 bnQtMSldIC1qb2luICcvJykKICAgICAgICAkZGF0YSA9IEdldC1aaXBCeXRlcyAkemlwICRtZW1i ZXIKICAgICAgfQogICAgfQogIH0KICBpZiAoLW5vdCAkZGF0YSkgeyAkbWlzc2luZysrOyAkbWlz c0xpc3QgKz0gJHJlbDsgY29udGludWUgfQogICRkaXIgPSBTcGxpdC1QYXRoIC1QYXJlbnQgJGRl c3QKICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZGlyKSkgeyBOZXctSXRlbSAt SXRlbVR5cGUgRGlyZWN0b3J5IC1QYXRoICRkaXIgLUZvcmNlIHwgT3V0LU51bGwgfQogIFtTeXN0 ZW0uSU8uRmlsZV06OldyaXRlQWxsQnl0ZXMoJGRlc3QsICRkYXRhKQogICRjb3BpZWQrKwp9CmZv cmVhY2ggKCR6IGluICR6aXBDYWNoZS5WYWx1ZXMpIHsgJHouRGlzcG9zZSgpIH0KCldyaXRlLUhv c3QgIiIKV3JpdGUtSG9zdCAoIkZlcnRpZzogezB9IGtvcGllcnQsIHsxfSBiZXJlaXRzIHZvcmhh bmRlbiwgezJ9IG5pY2h0IGdlZnVuZGVuLiIgLWYgJGNvcGllZCwgJHNraXBwZWQsICRtaXNzaW5n KSAtRm9yZWdyb3VuZENvbG9yIEdyZWVuCmlmICgkbWlzc0xpc3QuQ291bnQpIHsKICBXcml0ZS1I b3N0ICJOaWNodCBnZWZ1bmRlbiAoaW0gUXVlbGx2ZXJ6ZWljaG5pcyBwcnVlZmVuIC8gZ2dmLiBM YWdlLVpJUCBlbnRwYWNrZW4pOiIgLUZvcmVncm91bmRDb2xvciBZZWxsb3cKICAkbWlzc0xpc3Qg fCBTZWxlY3QtT2JqZWN0IC1GaXJzdCA0MCB8IEZvckVhY2gtT2JqZWN0IHsgV3JpdGUtSG9zdCAi ICAtICRfIiB9Cn0KUmVhZC1Ib3N0ICJGZXJ0aWcuIE1pdCBFbnRlciBzY2hsaWVzc2VuIgo= ### FILE: helfer/portal_helfer.ps1 | 53520 PCMKICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAgUE9SVEFMIFVOSU9OIC0gUGZsZWdlLUhlbGZlciAo UG93ZXJTaGVsbCA1LjEpCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEtsZWluZXIgbG9rYWxlciBI VFRQLVNlcnZlciwgZ2VidW5kZW4gTlVSIGF1ZiAxMjcuMC4wLjEuIEVyCiAgICAxKSBsaWVmZXJ0 IGRhcyBQb3J0YWwgYXVzIChkYW1pdCBkZXIgUmVkYWt0ZXVyIGVzIHVlYmVyIGh0dHA6Ly8xMjcu MC4wLjEKICAgICAgIG9lZmZuZXQgdW5kIHNhbWUtb3JpZ2luIGF1ZiBkaWUgL2FwaS8qIHNjaHJl aWJlbiBrYW5uKSwKICAgIDIpIHBydWVmdCBkZW4gV2luZG93cy1Bbm1lbGRlbmFtZW4gKCRlbnY6 VVNFUk5BTUUpIGdlZ2VuIGRpZQogICAgICAgUmVkYWt0ZXVyLVdoaXRlbGlzdCAocmVkYWt0ZXVy ZS50eHQgKyBOb3RmYWxsLUxpc3RlKSwKICAgIDMpIHNjaHJlaWJ0IGJlaW0gVmVyb2VmZmVudGxp Y2hlbiBkYXRhLWNvbnRlbnQuanMgLyBkYXRhLW5hdi5qcyB1bmQgZGllCiAgICAgICBob2NoZ2Vs YWRlbmVuIEJpbGRlci9QREZzIGRpcmVrdCBhdWYgZGllIE5ldHpmcmVpZ2FiZSAoZGVyIGFsdGUg U3RhbmQKICAgICAgIHdpcmQgYWxzIFNuYXBzaG90IGluIGRlciBIaXN0b3JpZSB1bnRlciBzdGF0 ZVxoaXN0b3J5XCBnZXNpY2hlcnQpLgoKICBMZXNlciBicmF1Y2hlbiBkZW4gSGVsZmVyIE5JQ0hU IC0gc2llIG9lZmZuZW4gaW5kZXguaHRtbCBkaXJla3QgcGVyIGZpbGU6Ly8KICB1bmQgaGFiZW4g bnVyIExlc2VyZWNodGUgKGRpZSBQZmxlZ2UtVUkgYmxlbmRldCBzaWNoIGRvcnQgYXVzKS4KCiAg U3RhcnQgdWViZXI6IFBvcnRhbC1QZmxlZ2Utc3RhcnRlbi5iYXQKICA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiM+CnBhcmFtKAogIFtpbnRdJFBvcnQgPSA4NzUzLAogICMgUG9ydGFsUm9vdCA9IGRlciBQ b3J0YWwtT3JkbmVyIChlaW5lIEViZW5lIHVlYmVyICdoZWxmZXInKQogIFtzdHJpbmddJFBvcnRh bFJvb3QgPSAoU3BsaXQtUGF0aCAtUGFyZW50ICRQU1NjcmlwdFJvb3QpLAogICMgSGVsZmVyRGly ID0gZGVyICdoZWxmZXInLU9yZG5lciBhdWYgZGVtIFNIQVJFIChjb250cmFjdC5qc29uLCBSb2xs ZW4sIHN0YXRlLywgbG9ncy8pLgogICMgV2lyZCBnZXNldHp0LCB3ZW5uIGRhcyBTa3JpcHQgYXVz IGVpbmVyIGxva2FsZW4gS29waWUgbGFldWZ0IChNZWhyYmVudXR6ZXI6IFNoYXJlLVNrcmlwdAog ICMgYmxlaWJ0IGVudHNwZXJydCkuIExlZXIgPSBTa3JpcHQgbGFldWZ0IGRpcmVrdCBhdXMgZGVt IGhlbGZlci1PcmRuZXIgKFN0YW5kYXJkKS4KICBbc3RyaW5nXSRIZWxmZXJEaXIgPSAiIgopCgok RXJyb3JBY3Rpb25QcmVmZXJlbmNlID0gIlN0b3AiCiMgJGhlcmUgPSBRdWVsbGUgZnVlciBTSEFS RS1EYXRlbiAoY29udHJhY3QvUm9sbGVuL3N0YXRlL2xvZ3MpLiBCZWkgbG9rYWxlciBTa3JpcHRr b3BpZSB6ZWlndAojIC1IZWxmZXJEaXIgYXVmIGRlbiBTaGFyZS1oZWxmZXItT3JkbmVyOyBzb25z dCBkZXIgT3JkbmVyIGRlcyBTa3JpcHRzIHNlbGJzdC4KJGhlcmUgPSBpZiAoJEhlbGZlckRpciAt YW5kIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRIZWxmZXJEaXIpKSB7ICRIZWxmZXJEaXIgfSBl bHNlIHsgJFBTU2NyaXB0Um9vdCB9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgMSkgUG9saWN5IGF1 cyBjb250cmFjdC5qc29uIGxhZGVuIChnZW1laW5zYW1lIFF1ZWxsZSBtaXQgcG9ydGFsX2hlbGZl ci5weSkuCiMgICAgRmVobHQva2FwdXR0IC0+IGVpbmdlYmF1dGUgRGVmYXVsdHMgKD0gYmlzaGVy aWdlIFdlcnRlKSwgb2ZmbGluZS1yb2J1c3QuCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KJGFsbG93VGV4 dCA9IEAoImFzc2V0cy9qcy9kYXRhLWNvbnRlbnQuanMiLCAiYXNzZXRzL2pzL2RhdGEtbmF2Lmpz IikgICAjIERlZmF1bHQKJHJlQXJ0aWNsZSA9ICdeZG9rdW1lbnRlL2FydGlrZWwvW2EtejAtOV9d ezEsNjB9XC5odG1sJCcgICAgICAgICAgICAgICAjIERlZmF1bHQKJHJlQm9keSAgICA9ICdeZG9r dW1lbnRlL2pzb24vYXJ0aWtlbFwuanMkJyAgICAgICAgICAgICAgICAjIERlZmF1bHQgKGF1c2dl bGFnZXJ0ZSBBcnRpa2VsLUJvZGllcykKJGltZ0V4dCAgICA9IEAoInBuZyIsImpwZyIsImpwZWci LCJnaWYiLCJ3ZWJwIiwiYm1wIikgICAgICAgICAgICAgICAgICAjIERlZmF1bHQKJGRvY0V4dCAg ICA9IEAoInBkZiIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIERlZmF1bHQgKGNvbnRyYWN0LWdldHJpZWJlbikKJG1heEFzc2V0ICA9IDI1TUIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBEZWZh dWx0CiRlbWVyZ2VuY3kgPSBAKCJOVzA1MzYwOSIsICJyaGlubyIpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyBEZWZhdWx0CiRhZG1pbkZpbGUgPSAiYWRtaW5zLnR4dCI7ICRy ZWRha0ZpbGUgPSAicmVkYWt0ZXVyZS50eHQiICAgICAgICAgICAgICAgIyBEZWZhdWx0CiRyYW5r ICAgICAgPSBAeyByZWFkZXIgPSAwOyByZWRha3RldXIgPSAxOyBhZG1pbiA9IDIgfSAgICAgICAg ICAgICAgICAgICMgRGVmYXVsdAojIERlZmF1bHQtRW5kcG9pbnRzID0gaWRlbnRpc2NoIHp1IGNv bnRyYWN0Lmpzb24gKEZhbGxiYWNrLCBmYWxscyBjb250cmFjdC5qc29uIGZlaGx0L2thcHV0dCku CiRlbmRwb2ludHMgPSBAewogICIvYXBpL3BpbmciID0gInJlYWRlciI7ICIvYXBpL3B1Ymxpc2gi ID0gInJlZGFrdGV1ciI7ICIvYXBpL2Fzc2V0IiA9ICJyZWRha3RldXIiOwogICIvYXBpL3N0YXRl IiA9ICJyZWRha3RldXIiOyAiL2FwaS9kcmFmdCIgPSAicmVkYWt0ZXVyIjsgIi9hcGkvbG9jayIg PSAicmVkYWt0ZXVyIjsKICAiL2FwaS9oaXN0b3J5IiA9ICJhZG1pbiI7ICIvYXBpL2hpc3Rvcnkv cmVzdG9yZSIgPSAiYWRtaW4iOwogICIvYXBpL2FkbWluIiA9ICJhZG1pbiI7ICIvYXBpL2FkbWlu L3JvbGVzIiA9ICJhZG1pbiI7ICIvYXBpL21pZ3JhdGlvbiIgPSAiYWRtaW4iOwogICIvYXBpL29w ZW4iID0gInJlZGFrdGV1ciI7ICIvYXBpL2ZvbGRlciIgPSAicmVkYWt0ZXVyIjsgIi9hcGkvZmls ZXNpemUiID0gInJlZGFrdGV1ciI7CiAgIi9hcGkvdHJlZSIgPSAicmVkYWt0ZXVyIjsgIi9hcGkv YXJ6dGxpc3RlIiA9ICJyZWRha3RldXIiOyAiL2FwaS9hcnp0YmFja3VwIiA9ICJyZWRha3RldXIi Cn0KJGhpc3RQcnVuZURheXMgPSA5MDsgJGhpc3RNYXhQZXJUYXJnZXQgPSA1MCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjIERlZmF1bHQgKEhpc3RvcmllLCBQaGFzZSA1KQojIE9wZW4tQWxs b3dsaXN0IChsb2thbGVzIE9lZmZuZW4gdm9uIE9yZG5lcm4vT2ZmaWNlLURhdGVpZW4pIC0gRGVm YXVsdHMsIHZpYSBjb250cmFjdC5qc29uIHVlYmVyc2NocmVpYmJhcgokb3BlblJvb3RzID0gQCgi XFxwb2xpemVpLm5ydy5kZVxncnVwcGVuXDExXExEMTFQMDAwLSIpCiRvcGVuU2VnbWVudHMgPSBA KCIwMV9ER0wiLCAiMTJfUG9ydGFsIiwgIjEyX1BvcnRhbF9VbmlvbiIsICIxM19Qb3J0YWwiKQoj IFNlZ21lbnQtVHJlZmZlciBnZWx0ZW4gTlVSIHVudGVyIGRpZXNlbiB2ZXJ0cmF1ZW5zd3VlcmRp Z2VuIFd1cnplbG4gKCsgamVkZXMgTGF1ZndlcmsgWDpcKS4gRGVmYXVsdC4KJG9wZW5TZWdtZW50 U2NvcGVzID0gQCgiXFxwb2xpemVpLm5ydy5kZVwiLCAiXFxzMDBwYWFhNzBmaXMwMDNcIikKJG9w ZW5FeHQgPSBAKCJkb2N4IiwgImRvYyIsICJkb2NtIiwgInhsc3giLCAieGxzIiwgInhsc20iLCAi cHB0eCIsICJwcHQiLCAicGRmIiwgImh0bSIsICJodG1sIiwgInR4dCIsICJjc3YiLCAicnRmIiwg Im1zZyIsICJwbmciLCAianBnIiwgImpwZWciLCAiZ2lmIikKIyBBdXNmdWVocmJhcmUgVHlwZW4g d2VyZGVuIE5VUiBnZXN0YXJ0ZXQsIHdlbm4gZGVyIFBmYWQgdW50ZXIgZWluZW0gYWxsb3dFeGUt UHJhZWZpeCBsaWVndAojIChlbmdlIEFsbG93bGlzdDsgV2luZG93cyB6ZWlndCBiZWkgTmV0ei1F WEUgenVzYWV0emxpY2ggZGllIFNpY2hlcmhlaXRzYWJmcmFnZSkuCiRleGVjRXh0ID0gQCgiZXhl IiwgImJhdCIsICJjbWQiLCAiY29tIiwgIm1zaSIsICJzY3IiLCAicHMxIiwgInZicyIsICJsbmsi LCAiamFyIikKJG9wZW5FeGVSb290cyA9IEAoIlxcczAwcGFhYTcwZmlzMDAzXExaUEQtSGlud2Vp c2Zvcm11bGFyIikKJGNvbnRyYWN0RmlsZSA9IEpvaW4tUGF0aCAkaGVyZSAiY29udHJhY3QuanNv biIKaWYgKFRlc3QtUGF0aCAkY29udHJhY3RGaWxlKSB7CiAgdHJ5IHsKICAgICRjb250cmFjdCA9 IEdldC1Db250ZW50ICRjb250cmFjdEZpbGUgLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENvbnZlcnRG cm9tLUpzb24KICAgIGlmICgkY29udHJhY3QucHVibGlzaC5hbGxvd1RleHQpICAgICAgeyAkYWxs b3dUZXh0ID0gQCgkY29udHJhY3QucHVibGlzaC5hbGxvd1RleHQpIH0KICAgIGlmICgkY29udHJh Y3QucHVibGlzaC5hcnRpY2xlUGF0dGVybikgeyAkcmVBcnRpY2xlID0gW3N0cmluZ10kY29udHJh Y3QucHVibGlzaC5hcnRpY2xlUGF0dGVybiB9CiAgICBpZiAoJGNvbnRyYWN0LnB1Ymxpc2guYm9k eVBhdHRlcm4pICAgIHsgJHJlQm9keSAgICA9IFtzdHJpbmddJGNvbnRyYWN0LnB1Ymxpc2guYm9k eVBhdHRlcm4gfQogICAgaWYgKCRjb250cmFjdC5hc3NldC5pbWdFeHQpICAgICAgICAgICB7ICRp bWdFeHQgICAgPSBAKCRjb250cmFjdC5hc3NldC5pbWdFeHQpIH0KICAgIGlmICgkY29udHJhY3Qu YXNzZXQuZG9jRXh0KSAgICAgICAgICAgeyAkZG9jRXh0ICAgID0gQCgkY29udHJhY3QuYXNzZXQu ZG9jRXh0KSB9CiAgICBpZiAoJGNvbnRyYWN0LmFzc2V0Lm1heEJ5dGVzKSAgICAgICAgIHsgJG1h eEFzc2V0ICA9IFtsb25nXSRjb250cmFjdC5hc3NldC5tYXhCeXRlcyB9CiAgICBpZiAoJGNvbnRy YWN0LnJvbGVzLmVtZXJnZW5jeSkgICAgICAgIHsgJGVtZXJnZW5jeSA9IEAoJGNvbnRyYWN0LnJv bGVzLmVtZXJnZW5jeSkgfQogICAgaWYgKCRjb250cmFjdC5yb2xlcy5saXN0cy5hZG1pbikgICAg ICB7ICRhZG1pbkZpbGUgPSBbc3RyaW5nXSRjb250cmFjdC5yb2xlcy5saXN0cy5hZG1pbiB9CiAg ICBpZiAoJGNvbnRyYWN0LnJvbGVzLmxpc3RzLnJlZGFrdGV1cikgIHsgJHJlZGFrRmlsZSA9IFtz dHJpbmddJGNvbnRyYWN0LnJvbGVzLmxpc3RzLnJlZGFrdGV1ciB9CiAgICBpZiAoJGNvbnRyYWN0 LnJvbGVzLnJhbmspICAgICAgeyAkcmFuayA9IEB7fTsgICAgICAkY29udHJhY3Qucm9sZXMucmFu ay5QU09iamVjdC5Qcm9wZXJ0aWVzICAgICAgfCBGb3JFYWNoLU9iamVjdCB7ICRyYW5rWyRfLk5h bWVdID0gW2ludF0kXy5WYWx1ZSB9IH0KICAgIGlmICgkY29udHJhY3Qucm9sZXMuZW5kcG9pbnRz KSB7ICRlbmRwb2ludHMgPSBAe307ICRjb250cmFjdC5yb2xlcy5lbmRwb2ludHMuUFNPYmplY3Qu UHJvcGVydGllcyB8IEZvckVhY2gtT2JqZWN0IHsgJGVuZHBvaW50c1skXy5OYW1lXSA9IFtzdHJp bmddJF8uVmFsdWUgfSB9CiAgICBpZiAoJGNvbnRyYWN0Lmhpc3RvcnkucHJ1bmVEYXlzKSAgICB7 ICRoaXN0UHJ1bmVEYXlzICAgID0gW2ludF0kY29udHJhY3QuaGlzdG9yeS5wcnVuZURheXMgfQog ICAgaWYgKCRjb250cmFjdC5oaXN0b3J5Lm1heFBlclRhcmdldCkgeyAkaGlzdE1heFBlclRhcmdl dCA9IFtpbnRdJGNvbnRyYWN0Lmhpc3RvcnkubWF4UGVyVGFyZ2V0IH0KICAgIGlmICgkY29udHJh Y3Qub3Blbi5hbGxvd1Jvb3RzKSAgICB7ICRvcGVuUm9vdHMgICAgPSBAKCRjb250cmFjdC5vcGVu LmFsbG93Um9vdHMpIH0KICAgIGlmICgkY29udHJhY3Qub3Blbi5hbGxvd1NlZ21lbnRzKSB7ICRv cGVuU2VnbWVudHMgPSBAKCRjb250cmFjdC5vcGVuLmFsbG93U2VnbWVudHMpIH0KICAgIGlmICgk Y29udHJhY3Qub3Blbi5hbGxvd1NlZ21lbnRTY29wZXMpIHsgJG9wZW5TZWdtZW50U2NvcGVzID0g QCgkY29udHJhY3Qub3Blbi5hbGxvd1NlZ21lbnRTY29wZXMpIH0KICAgIGlmICgkY29udHJhY3Qu b3Blbi5hbGxvd0V4dCkgICAgICB7ICRvcGVuRXh0ICAgICAgPSBAKCRjb250cmFjdC5vcGVuLmFs bG93RXh0KSB9CiAgICBpZiAoJGNvbnRyYWN0Lm9wZW4uYWxsb3dFeGUpICAgICAgeyAkb3BlbkV4 ZVJvb3RzID0gQCgkY29udHJhY3Qub3Blbi5hbGxvd0V4ZSkgfQogIH0gY2F0Y2ggewogICAgV3Jp dGUtSG9zdCAiY29udHJhY3QuanNvbiBuaWNodCBsYWRiYXIgKCQoJF8uRXhjZXB0aW9uLk1lc3Nh Z2UpKSAtPiBEZWZhdWx0cyBha3Rpdi4iCiAgfQp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgMikg Um9sbGUgYXVzICVVU0VSTkFNRSUgZ2VnZW4gYWRtaW5zLnR4dCAvIHJlZGFrdGV1cmUudHh0IGFi bGVpdGVuLgojICAgIEZvcm1hdCBqZSBaZWlsZTogTldLRU5OVU5HO0FuemVpZ2VuYW1lICAoJyMn L0xlZXJ6ZWlsZW4gaWdub3JpZXJ0KS4KIyAgICBhZG1pbiBlcmJ0IHJlZGFrdGV1cjsgTm90ZmFs bC1LZW5udW5nZW4gc2luZCBpbW1lciBhZG1pbi4KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmdW5jdGlv biBSZWFkLVJvbGVMaXN0KFtzdHJpbmddJGZpbGVOYW1lKSB7CiAgJG1hcCA9IEB7fQogICRwID0g Sm9pbi1QYXRoICRoZXJlICRmaWxlTmFtZQogIGlmIChUZXN0LVBhdGggJHApIHsKICAgIEdldC1D b250ZW50ICRwIC1FbmNvZGluZyBVVEY4IHwgRm9yRWFjaC1PYmplY3QgewogICAgICAkbGluZSA9 ICRfLlRyaW0oKQogICAgICBpZiAoJGxpbmUgLWFuZCAtbm90ICRsaW5lLlN0YXJ0c1dpdGgoIiMi KSkgewogICAgICAgICRwYXJ0cyA9ICRsaW5lLlNwbGl0KCI7IiwgMikKICAgICAgICAka2VubnVu ZyA9ICRwYXJ0c1swXS5UcmltKCkKICAgICAgICBpZiAoJGtlbm51bmcpIHsKICAgICAgICAgICRu YW1lID0gJGtlbm51bmcKICAgICAgICAgIGlmICgkcGFydHMuQ291bnQgLWd0IDEgLWFuZCAkcGFy dHNbMV0uVHJpbSgpKSB7ICRuYW1lID0gJHBhcnRzWzFdLlRyaW0oKSB9CiAgICAgICAgICAkbWFw WyRrZW5udW5nLlRvTG93ZXIoKV0gPSAkbmFtZQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0K ICByZXR1cm4gJG1hcAp9CgokbWUgPSAkZW52OlVTRVJOQU1FCiRtZUxvd2VyID0gJG1lLlRvTG93 ZXIoKQokYWRtaW5zID0gUmVhZC1Sb2xlTGlzdCAkYWRtaW5GaWxlCiRyZWRhayAgPSBSZWFkLVJv bGVMaXN0ICRyZWRha0ZpbGUKJGVtZXJnZW5jeUxvd2VyID0gQCgkZW1lcmdlbmN5IHwgRm9yRWFj aC1PYmplY3QgeyAoW3N0cmluZ10kXykuVG9Mb3dlcigpIH0pCiRyb2xlID0gInJlYWRlciI7ICRt ZU5hbWUgPSAkbWUKaWYgKCRlbWVyZ2VuY3lMb3dlciAtY29udGFpbnMgJG1lTG93ZXIpIHsgJHJv bGUgPSAiYWRtaW4iOyBpZiAoJGFkbWluc1skbWVMb3dlcl0pIHsgJG1lTmFtZSA9ICRhZG1pbnNb JG1lTG93ZXJdIH0gfQplbHNlaWYgKCRhZG1pbnMuQ29udGFpbnNLZXkoJG1lTG93ZXIpKSB7ICRy b2xlID0gImFkbWluIjsgJG1lTmFtZSA9ICRhZG1pbnNbJG1lTG93ZXJdIH0KZWxzZWlmICgkcmVk YWsuQ29udGFpbnNLZXkoJG1lTG93ZXIpKSAgeyAkcm9sZSA9ICJyZWRha3RldXIiOyAkbWVOYW1l ID0gJHJlZGFrWyRtZUxvd2VyXSB9CgppZiAoJHJvbGUgLWVxICJyZWFkZXIiKSB7CiAgdHJ5IHsK ICAgIEFkZC1UeXBlIC1Bc3NlbWJseU5hbWUgU3lzdGVtLldpbmRvd3MuRm9ybXMKICAgIFtTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5NZXNzYWdlQm94XTo6U2hvdygKICAgICAgIktlaW4gU2NocmVpYnJl Y2h0IGZ1ZXIgQmVudXR6ZXIgJyRtZScuYG5gbkRhcyBQb3J0YWwgbGFlc3N0IHNpY2ggd2VpdGVy aGluIGxlc2VuIChpbmRleC5odG1sKSwgYWJlciBkaWUgRGF0ZW5wZmxlZ2UgaXN0IG51ciBmdWVy IGZyZWlnZWdlYmVuZSBSZWRha3RldXJlL0FkbWlucy5gbmBuRnJlaWdhYmUgdWViZXI6IGhlbGZl clxyZWRha3RldXJlLnR4dCBiencuIGhlbGZlclxhZG1pbnMudHh0IiwKICAgICAgIlBvcnRhbCBV bmlvbiAtIFBmbGVnZS1IZWxmZXIiLCAiT0siLCAiV2FybmluZyIpIHwgT3V0LU51bGwKICB9IGNh dGNoIHt9CiAgV3JpdGUtSG9zdCAiQmVudXR6ZXIgJyRtZScgaXN0IHdlZGVyIFJlZGFrdGV1ciBu b2NoIEFkbWluLiBCZWVuZGUuIgogIGV4aXQgMQp9CgojIE1pbmRlc3Ryb2xsZSBqZSBFbmRwb2lu dCBlcnp3aW5nZW4gKFNlcnZlci1zZWl0aWcsIG5pY2h0IG51ciBVSSkuCmZ1bmN0aW9uIFRlc3Qt Um9sZUFsbG93ZWQoW3N0cmluZ10kcGF0aCkgewogICRtciA9ICRudWxsCiAgaWYgKCRlbmRwb2lu dHMuQ29udGFpbnNLZXkoJHBhdGgpKSB7ICRtciA9ICRlbmRwb2ludHNbJHBhdGhdIH0KICBlbHNl IHsgZm9yZWFjaCAoJGsgaW4gJGVuZHBvaW50cy5LZXlzKSB7IGlmICgkcGF0aC5TdGFydHNXaXRo KCRrICsgIi8iKSkgeyAkbXIgPSAkZW5kcG9pbnRzWyRrXTsgYnJlYWsgfSB9IH0KICBpZiAoLW5v dCAkbXIpIHsgcmV0dXJuICR0cnVlIH0gICAjIHN0YXRpc2NoZSBBdXNsaWVmZXJ1bmcgZXRjLiAt PiBrZWluIFNjaHJlaWItRW5kcG9pbnQKICAkaGF2ZSA9IDA7ICBpZiAoJHJhbmsuQ29udGFpbnNL ZXkoJHJvbGUpKSB7ICRoYXZlID0gJHJhbmtbJHJvbGVdIH0KICAkbmVlZCA9IDk5OyBpZiAoJHJh bmsuQ29udGFpbnNLZXkoJG1yKSkgICB7ICRuZWVkID0gJHJhbmtbJG1yXSB9CiAgcmV0dXJuICgk aGF2ZSAtZ2UgJG5lZWQpCn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyAzKSBQZmFkZSAvIEFibGFn ZW4KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQokYXNzZXRzRGlyICA9IEpvaW4tUGF0aCAkUG9ydGFsUm9v dCAiZG9rdW1lbnRlXG1lZGlhXHVwbG9hZHMiCiRsb2dEaXIgICAgID0gSm9pbi1QYXRoICRoZXJl ICJsb2dzIgpmb3JlYWNoICgkZCBpbiBAKCRhc3NldHNEaXIsICRsb2dEaXIpKSB7IGlmICgtbm90 IChUZXN0LVBhdGggJGQpKSB7IE5ldy1JdGVtIC1JdGVtVHlwZSBEaXJlY3RvcnkgLVBhdGggJGQg LUZvcmNlIHwgT3V0LU51bGwgfSB9CiRsb2dGaWxlID0gSm9pbi1QYXRoICRsb2dEaXIgKCJwdWJs aXNoXyIgKyAoJG1lIC1yZXBsYWNlICdbXkEtWmEtejAtOV8uLV0nLCAnXycpICsgIi5sb2ciKSAg ICMgcHJvIFVzZXIgZWlnZW5lIExvZ2RhdGVpIC0+IGtlaW5lIFNjaHJlaWJrb25mbGlrdGUgYmVp IG1laHJlcmVuIGdsZWljaHplaXRpZ2VuIE51dHplcm4KCiMgS29sbGFib3JhdGlvbnMtU3RhdGUg YXVmIGRlbSBTaGFyZSAoUGhhc2UgNCk6IEVudHd1ZXJmZSwgTG9ja3MsIEFrdGl2aXRhZXQsIFZl cnNpb25zc3RhZW5kZS4KJHN0YXRlRGlyICAgICA9IEpvaW4tUGF0aCAkaGVyZSAic3RhdGUiCiRk cmFmdHNEaXIgICAgPSBKb2luLVBhdGggJHN0YXRlRGlyICJkcmFmdHMiCiRsb2Nrc0RpciAgICAg PSBKb2luLVBhdGggJHN0YXRlRGlyICJsb2NrcyIKJGhpc3RvcnlEaXIgICA9IEpvaW4tUGF0aCAk c3RhdGVEaXIgImhpc3RvcnkiICAgICAgICAgICAjIFBoYXNlIDU6IFNuYXBzaG90cyArIGluZGV4 Lmpzb24KJGhpc3RvcnlJbmRleCA9IEpvaW4tUGF0aCAkaGlzdG9yeURpciAiaW5kZXguanNvbiIK JGFjdGl2aXR5RmlsZSA9IEpvaW4tUGF0aCAkc3RhdGVEaXIgImFjdGl2aXR5Lmpzb24iCiRyZXZz RmlsZSAgICAgPSBKb2luLVBhdGggJHN0YXRlRGlyICJyZXZzLmpzb24iCiRsb2NrVHRsICAgICAg PSAzMDAgICAgICAgIyBTZWt1bmRlbiwgZGFubiBnaWx0IGVpbiBMb2NrIGFscyB2ZXJ3YWlzdAok YWN0aXZpdHlNYXggID0gMjAwCmZvcmVhY2ggKCRkIGluIEAoJHN0YXRlRGlyLCAkZHJhZnRzRGly LCAkbG9ja3NEaXIsICRoaXN0b3J5RGlyKSkgeyBpZiAoLW5vdCAoVGVzdC1QYXRoICRkKSkgeyBO ZXctSXRlbSAtSXRlbVR5cGUgRGlyZWN0b3J5IC1QYXRoICRkIC1Gb3JjZSB8IE91dC1OdWxsIH0g fQoKJHV0ZjggPSBOZXctT2JqZWN0IFN5c3RlbS5UZXh0LlVURjhFbmNvZGluZygkZmFsc2UpICAg IyBVVEYtOCBvaG5lIEJPTQoKZnVuY3Rpb24gV3JpdGUtTG9nKFtzdHJpbmddJG1zZykgewogICR0 cyA9IEdldC1EYXRlIC1Gb3JtYXQgInl5eXktTU0tZGQgSEg6bW06c3MiCiAgIyBMb2dnaW5nIGRh cmYgTklFIGVpbmVuIFJlcXVlc3Qgc2NoZWl0ZXJuIGxhc3NlbiAoei5CLiBrdXJ6emVpdGlnZXIg RGF0ZWktTG9jaykgLT4gc3RpbGwgc2NobHVja2VuLgogIHRyeSB7IEFkZC1Db250ZW50IC1QYXRo ICRsb2dGaWxlIC1WYWx1ZSAoInswfWB0ezF9YHR7Mn0iIC1mICR0cywgJG1lLCAkbXNnKSAtRW5j b2RpbmcgVVRGOCAtRXJyb3JBY3Rpb24gU3RvcCB9IGNhdGNoIHt9Cn0KCiMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIyBIaXN0b3JpZSAoUGhhc2UgNSk6IHZvciBqZWRlbSBVZWJlcnNjaHJlaWJlbiBkZW4g QUxURU4gSW5oYWx0IGFscyBTbmFwc2hvdAojIG5hY2ggc3RhdGVcaGlzdG9yeVw8aWQ+LnNuYXAg c2ljaGVybiArIEVpbnRyYWcgaW4gaW5kZXguanNvbi4gRXJzZXR6dCBkYXMKIyBmcnVlaGVyIGZs YWNoZSBoZWxmZXJcYmFja3Vwc1wuIFJlc3RvcmUgc2NocmVpYnQgZWluZW4gU25hcHNob3QgenVy dWVjay4KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmdW5jdGlvbiBHZXQtSGlzdG9yeUluZGV4IHsgcmV0 dXJuIEAoUmVhZC1TdGF0ZUpzb24gJGhpc3RvcnlJbmRleCBAKCkpIH0KCmZ1bmN0aW9uIFNuYXBz aG90LUZpbGUoW3N0cmluZ10kZnVsbCwgW3N0cmluZ10kcmVsTmFtZSwgW2ludF0kcmV2LCBbc3Ry aW5nXSRhY3Rpb24sIFtzdHJpbmddJG5vdGUpIHsKICBpZiAoLW5vdCAoVGVzdC1QYXRoICRmdWxs KSkgeyByZXR1cm4gfQogICRoaWQgPSAoR2V0LURhdGUgLUZvcm1hdCAieXl5eU1NZGQtSEhtbXNz IikgKyAiLSIgKyAoW0d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoIk4iKS5TdWJzdHJpbmcoMCw2 KSkKICBDb3B5LUl0ZW0gJGZ1bGwgKEpvaW4tUGF0aCAkaGlzdG9yeURpciAoIiRoaWQuc25hcCIp KSAtRm9yY2UKICAkYnl0ZXMgPSAoR2V0LUl0ZW0gJGZ1bGwpLkxlbmd0aAogICRlbnRyeSA9IFtv cmRlcmVkXUB7IGlkID0gJGhpZDsgdHMgPSAoTm93LUlzbyk7IHVzZXIgPSAkbWU7IG5hbWUgPSAk bWVOYW1lOyByb2xlID0gJHJvbGU7IHRhcmdldCA9ICRyZWxOYW1lOyBhY3Rpb24gPSAkYWN0aW9u OyByZXYgPSAkcmV2OyBieXRlcyA9ICRieXRlczsgbm90ZSA9ICRub3RlIH0KICAkaWR4ID0gQCgk ZW50cnkpICsgQChHZXQtSGlzdG9yeUluZGV4KQogIFdyaXRlLVN0YXRlSnNvbiAkaGlzdG9yeUlu ZGV4ICRpZHgKfQoKZnVuY3Rpb24gUHJ1bmUtSGlzdG9yeSB7CiAgJGlkeCA9IEAoR2V0LUhpc3Rv cnlJbmRleCkKICBpZiAoJGlkeC5Db3VudCAtZXEgMCkgeyByZXR1cm4gfQogICRjdXRvZmYgPSAo R2V0LURhdGUpLkFkZERheXMoLSRoaXN0UHJ1bmVEYXlzKQogICRwZXIgPSBAe307ICRrZWVwID0g QCgpOyAkZHJvcCA9IEAoKQogIGZvcmVhY2ggKCRlIGluICRpZHgpIHsKICAgICR0Z3QgPSBbc3Ry aW5nXSRlLnRhcmdldAogICAgaWYgKC1ub3QgJHBlci5Db250YWluc0tleSgkdGd0KSkgeyAkcGVy WyR0Z3RdID0gMCB9CiAgICAkcGVyWyR0Z3RdID0gJHBlclskdGd0XSArIDEKICAgICRzbmFwID0g Sm9pbi1QYXRoICRoaXN0b3J5RGlyICgiJCgkZS5pZCkuc25hcCIpCiAgICAkdG9vT2xkID0gJGZh bHNlCiAgICBpZiAoVGVzdC1QYXRoICRzbmFwKSB7IGlmICgoR2V0LUl0ZW0gJHNuYXApLkxhc3RX cml0ZVRpbWUgLWx0ICRjdXRvZmYpIHsgJHRvb09sZCA9ICR0cnVlIH0gfQogICAgaWYgKCgkcGVy WyR0Z3RdIC1ndCAkaGlzdE1heFBlclRhcmdldCkgLW9yICR0b29PbGQpIHsgJGRyb3AgKz0gJGUg fSBlbHNlIHsgJGtlZXAgKz0gJGUgfQogIH0KICBpZiAoJGRyb3AuQ291bnQgLWd0IDApIHsKICAg IGZvcmVhY2ggKCRlIGluICRkcm9wKSB7ICRzbmFwID0gSm9pbi1QYXRoICRoaXN0b3J5RGlyICgi JCgkZS5pZCkuc25hcCIpOyBpZiAoVGVzdC1QYXRoICRzbmFwKSB7IFJlbW92ZS1JdGVtICRzbmFw IC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB9IH0KICAgIFdyaXRlLVN0YXRl SnNvbiAkaGlzdG9yeUluZGV4ICRrZWVwCiAgfQp9CgojIFNpY2hlcmUgQXVmbG9lc3VuZyBlaW5l cyByZWxhdGl2ZW4gWmllbHMgaW5uZXJoYWxiIHZvbiBQb3J0YWxSb290LgojIFByYWVmaXhwcnVl ZnVuZyBNSVQgYW5nZWhhZW5ndGVtIFRyZW5uZXIgKHdpZSBweSByb290K29zLnNlcCkgLT4gU2No d2VzdGVyLU9yZG5lcgojICh6LiBCLiBQb3J0YWxfVW5pb25fYWx0KSB3ZXJkZW4gTklDSFQgYWt6 ZXB0aWVydC4KZnVuY3Rpb24gUmVzb2x2ZS1UYXJnZXQoW3N0cmluZ10kcmVsKSB7CiAgJGZ1bGwg PSBKb2luLVBhdGggJFBvcnRhbFJvb3QgKCRyZWwgLXJlcGxhY2UgIi8iLCAiXCIpCiAgJHJvb3RG dWxsID0gW1N5c3RlbS5JTy5QYXRoXTo6R2V0RnVsbFBhdGgoJFBvcnRhbFJvb3QpCiAgJGZ1bGwg PSBbU3lzdGVtLklPLlBhdGhdOjpHZXRGdWxsUGF0aCgkZnVsbCkKICAkc2VwID0gW1N5c3RlbS5J Ty5QYXRoXTo6RGlyZWN0b3J5U2VwYXJhdG9yQ2hhcgogIGlmICgkZnVsbCAtbmUgJHJvb3RGdWxs IC1hbmQgLW5vdCAkZnVsbC5TdGFydHNXaXRoKCRyb290RnVsbCArICRzZXAsIFtTeXN0ZW0uU3Ry aW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSkgeyByZXR1cm4gJG51bGwgfQogIHJl dHVybiAkZnVsbAp9CgojIERhdGVpIG1vZWdsaWNoc3QgYXRvbWFyIGVyc2V0emVuICh3aWUgcHkg b3MucmVwbGFjZSk6IEZpbGUuUmVwbGFjZSBiZWkgdm9yaGFuZGVuZW0gWmllbCwKIyBzb25zdCBN b3ZlLiBWZXJtZWlkZXQgdGVpbC1zaWNodGJhcmUgRGF0ZWllbiBhdWYgZGVyIEZyZWlnYWJlIChr ZWluIENvcHkrUmVtb3ZlKS4KZnVuY3Rpb24gR2V0LVRtcFBhdGgoW3N0cmluZ10kcGF0aCkgewog ICMgRWluZGV1dGlnZXIgdG1wLU5hbWUgKFBJRCArIEdVSUQpOiBtZWhyZXJlIGdsZWljaHplaXRp Z2UgTnV0emVyIGtvbGxpZGllcmVuIG5pY2h0IGF1ZiAiPGRhdGVpPi50bXAiLgogIHJldHVybiAo InswfS57MX0uezJ9LnRtcCIgLWYgJHBhdGgsICRQSUQsIChbR3VpZF06Ok5ld0d1aWQoKS5Ub1N0 cmluZygnTicpLlN1YnN0cmluZygwLCA4KSkpCn0KZnVuY3Rpb24gUmVwbGFjZS1GaWxlKFtzdHJp bmddJHRtcCwgW3N0cmluZ10kcGF0aCkgewogICMgW0lPLkZpbGVdOjpSZXBsYWNlL01vdmUgc2lu ZCBhdG9tYXIsIHNjaGVpdGVybiBhYmVyIGF1ZiBtYW5jaGVuIE5ldHpsYXVmd2Vya2VuLwogICMg U01CLVNoYXJlcyAoSU9FeGNlcHRpb24pLiBEb3J0IHdlaWNoZW4gd2lyIGF1ZiBDb3B5K1JlbW92 ZSBhdXM6IG5pY2h0IG1laHIgYXRvbWFyLAogICMgYWJlciBkYXMgU2NocmVpYmVuIGdlbGluZ3Qg enV2ZXJsYWVzc2lnLiAoUHl0aG9uLUhlbGZlciBudXR6dCBvcy5yZXBsYWNlIC0+IHRvbGVyYW50 LikKICB0cnkgewogICAgaWYgKFRlc3QtUGF0aCAkcGF0aCkgeyBbU3lzdGVtLklPLkZpbGVdOjpS ZXBsYWNlKCR0bXAsICRwYXRoLCAkbnVsbCkgfQogICAgZWxzZSB7IFtTeXN0ZW0uSU8uRmlsZV06 Ok1vdmUoJHRtcCwgJHBhdGgpIH0KICB9IGNhdGNoIHsKICAgIENvcHktSXRlbSAtTGl0ZXJhbFBh dGggJHRtcCAtRGVzdGluYXRpb24gJHBhdGggLUZvcmNlCiAgICBSZW1vdmUtSXRlbSAtTGl0ZXJh bFBhdGggJHRtcCAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKICB9Cn0KCiMg LS0tIExva2FsZXMgT2VmZm5lbiAoT3JkbmVyL09mZmljZS1EYXRlaWVuKTogUGZhZCBub3JtYWxp c2llcmVuICsgQWxsb3dsaXN0LVBydWVmdW5nIC0tLQpmdW5jdGlvbiBOb3JtYWxpemUtT3BlblBh dGgoW3N0cmluZ10kcCkgewogICRwID0gKFtzdHJpbmddJHApLlRyaW0oKQogIGlmICgtbm90ICRw KSB7IHJldHVybiAiIiB9CiAgJHAgPSAkcCAtcmVwbGFjZSAnXmZpbGU6JywgJycgICAgICAgICAg IyBmaWxlOi1QcmFlZml4IGVudGZlcm5lbgogICRwID0gJHAgLXJlcGxhY2UgJy8nLCAnXCcgICAg ICAgICAgICAgICMgU2xhc2hlcyAtPiBCYWNrc2xhc2hlcwogIGlmICgkcCAtbWF0Y2ggJ15cXHsy LH0nKSB7ICRwID0gJ1xcJyArICgkcCAtcmVwbGFjZSAnXlxcKycsICcnKSB9ICAgIyAvL2hvc3Qg Ynp3LiAvLy8vaG9zdCAtPiBcXGhvc3QgKFVOQykKICB0cnkgeyByZXR1cm4gW1N5c3RlbS5JTy5Q YXRoXTo6R2V0RnVsbFBhdGgoJHApIH0gY2F0Y2ggeyByZXR1cm4gIiIgfSAgICMgY29sbGFiaWVy dCAuLiAoVHJhdmVyc2FsLVNjaHV0eikKfQpmdW5jdGlvbiBUZXN0LU9wZW5BbGxvd2VkKFtzdHJp bmddJGZ1bGwpIHsKICBpZiAoLW5vdCAkZnVsbCkgeyByZXR1cm4gJGZhbHNlIH0KICAkZmwgPSAk ZnVsbC5Ub0xvd2VyKCkKICBmb3JlYWNoICgkciBpbiAkb3BlblJvb3RzKSB7IGlmICgkciAtYW5k ICRmbC5TdGFydHNXaXRoKChbc3RyaW5nXSRyKS5Ub0xvd2VyKCkpKSB7IHJldHVybiAkdHJ1ZSB9 IH0KICAjIFNlZ21lbnQtVHJlZmZlciBOVVIgaW5uZXJoYWxiIHZlcnRyYXVlbnN3dWVyZGlnZXIg V3VyemVsbiAoSW50cmFuZXQtSG9zdC9iZW5hbm50ZSBRdWVsbGVuKSBvZGVyIGF1ZiBlaW5lbSBM YXVmd2VyayBYOlwKICAkaW5TY29wZSA9ICgkZnVsbCAtbWF0Y2ggJ15bQS1aYS16XTpbXFwvXScp CiAgaWYgKC1ub3QgJGluU2NvcGUpIHsgZm9yZWFjaCAoJHNjIGluICRvcGVuU2VnbWVudFNjb3Bl cykgeyBpZiAoJHNjIC1hbmQgJGZsLlN0YXJ0c1dpdGgoKFtzdHJpbmddJHNjKS5Ub0xvd2VyKCkp KSB7ICRpblNjb3BlID0gJHRydWU7IGJyZWFrIH0gfSB9CiAgaWYgKCRpblNjb3BlKSB7IGZvcmVh Y2ggKCRzIGluICgkZnVsbCAtc3BsaXQgJ1xcJykpIHsgaWYgKCRzIC1uZSAiIikgeyBmb3JlYWNo ICgkYSBpbiAkb3BlblNlZ21lbnRzKSB7IGlmICgkcy5Ub0xvd2VyKCkgLWVxIChbc3RyaW5nXSRh KS5Ub0xvd2VyKCkpIHsgcmV0dXJuICR0cnVlIH0gfSB9IH0gfQogIHJldHVybiAkZmFsc2UKfQpm dW5jdGlvbiBUZXN0LU9wZW5FeHQoW3N0cmluZ10kZnVsbCkgewogICRleHQgPSAoW1N5c3RlbS5J Ty5QYXRoXTo6R2V0RXh0ZW5zaW9uKCRmdWxsKSkuVHJpbVN0YXJ0KCcuJykuVG9Mb3dlcigpCiAg aWYgKC1ub3QgJGV4dCkgeyByZXR1cm4gJGZhbHNlIH0KICBmb3JlYWNoICgkZSBpbiAkb3BlbkV4 dCkgeyBpZiAoJGV4dCAtZXEgKFtzdHJpbmddJGUpLlRvTG93ZXIoKSkgeyByZXR1cm4gJHRydWUg fSB9CiAgcmV0dXJuICRmYWxzZQp9CmZ1bmN0aW9uIFRlc3QtSXNFeGVjKFtzdHJpbmddJGZ1bGwp IHsKICAkZXh0ID0gKFtTeXN0ZW0uSU8uUGF0aF06OkdldEV4dGVuc2lvbigkZnVsbCkpLlRyaW1T dGFydCgnLicpLlRvTG93ZXIoKQogIGZvcmVhY2ggKCRlIGluICRleGVjRXh0KSB7IGlmICgkZXh0 IC1lcSAoW3N0cmluZ10kZSkuVG9Mb3dlcigpKSB7IHJldHVybiAkdHJ1ZSB9IH0KICByZXR1cm4g JGZhbHNlCn0KZnVuY3Rpb24gVGVzdC1FeGVBbGxvd2VkKFtzdHJpbmddJGZ1bGwpIHsKICBpZiAo LW5vdCAkZnVsbCkgeyByZXR1cm4gJGZhbHNlIH0KICAkZmwgPSAkZnVsbC5Ub0xvd2VyKCkKICBm b3JlYWNoICgkciBpbiAkb3BlbkV4ZVJvb3RzKSB7IGlmICgkciAtYW5kICRmbC5TdGFydHNXaXRo KChbc3RyaW5nXSRyKS5Ub0xvd2VyKCkpKSB7IHJldHVybiAkdHJ1ZSB9IH0KICByZXR1cm4gJGZh bHNlCn0KCiMgRGF0ZWkgbWl0IFZlcnNpb25zLS9Lb25mbGlrdC1WZXJmb2xndW5nIChEYXRlbiAr IEFydGlrZWwgKyBhdXNnZWxhZ2VydGUgQm9keS1EYXRlaWVuKT8KZnVuY3Rpb24gVGVzdC1UcmFj a2VkKFtzdHJpbmddJG5hbWUpIHsKICByZXR1cm4gKCRhbGxvd1RleHQgLWNvbnRhaW5zICRuYW1l KSAtb3IgKCRuYW1lIC1tYXRjaCAkcmVBcnRpY2xlKSAtb3IgKCRuYW1lIC1tYXRjaCAkcmVCb2R5 KQp9CgojIC0tLS0gS29sbGFib3JhdGlvbnMtU3RhdGUtSGVsZmVyIChQaGFzZSA0KSAtLS0tCiRt YXhKc29uID0gMTZNQiAgICMgUGhhc2UgOTogT2JlcmdyZW56ZSBmdWVyIEpTT04tQm9keXMgKERv Uy1TY2h1dHopCmZ1bmN0aW9uIFJlYWQtQm9keSgkY3R4KSB7CiAgJGxlbiA9ICRjdHguUmVxdWVz dC5Db250ZW50TGVuZ3RoNjQKICBpZiAoJGxlbiAtbHQgMCkgeyB0aHJvdyAiTGFlbmdlIHVuYmVr YW5udCAoY2h1bmtlZCBuaWNodCBlcmxhdWJ0KSIgfSAgICMga2VpbiB1bmJlZ3Jlbnp0ZXMgTGVz ZW4KICBpZiAoJGxlbiAtZ3QgJG1heEpzb24pIHsgdGhyb3cgIkFuZnJhZ2UgenUgZ3Jvc3MiIH0K ICAkcmVhZGVyID0gTmV3LU9iamVjdCBTeXN0ZW0uSU8uU3RyZWFtUmVhZGVyKCRjdHguUmVxdWVz dC5JbnB1dFN0cmVhbSwgW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOCkKICAkYiA9ICRyZWFk ZXIuUmVhZFRvRW5kKCk7ICRyZWFkZXIuQ2xvc2UoKTsgcmV0dXJuICRiCn0KZnVuY3Rpb24gR2V0 LVN0YXRlTmFtZShbc3RyaW5nXSRraW5kLCBbc3RyaW5nXSR0YXJnZXQpIHsKICAkayA9ICgka2lu ZCAtcmVwbGFjZSAiW15hLXpBLVowLTlfLV0rIiwgIi0iKTsgaWYgKCRrLkxlbmd0aCAtZ3QgNDAp IHsgJGsgPSAkay5TdWJzdHJpbmcoMCwgNDApIH0KICAkdCA9ICgkdGFyZ2V0IC1yZXBsYWNlICJb XmEtekEtWjAtOV8tXSsiLCAiLSIpOyBpZiAoJHQuTGVuZ3RoIC1ndCA4MCkgeyAkdCA9ICR0LlN1 YnN0cmluZygwLCA4MCkgfQogIHJldHVybiAoInswfV9fezF9Lmpzb24iIC1mICRrLCAkdCkKfQpm dW5jdGlvbiBSZWFkLVN0YXRlSnNvbihbc3RyaW5nXSRwYXRoLCAkZGVmYXVsdCkgewogIGlmIChU ZXN0LVBhdGggJHBhdGgpIHsgdHJ5IHsgcmV0dXJuIChHZXQtQ29udGVudCAkcGF0aCAtUmF3IC1F bmNvZGluZyBVVEY4IHwgQ29udmVydEZyb20tSnNvbikgfSBjYXRjaCB7IHJldHVybiAkZGVmYXVs dCB9IH0KICByZXR1cm4gJGRlZmF1bHQKfQpmdW5jdGlvbiBXcml0ZS1TdGF0ZUpzb24oW3N0cmlu Z10kcGF0aCwgJG9iaikgewogICRqc29uID0gJG9iaiB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAx MiAtQ29tcHJlc3MKICAkdG1wID0gR2V0LVRtcFBhdGggJHBhdGgKICBbU3lzdGVtLklPLkZpbGVd OjpXcml0ZUFsbFRleHQoJHRtcCwgJGpzb24sICR1dGY4KQogIFJlcGxhY2UtRmlsZSAkdG1wICRw YXRoCn0KZnVuY3Rpb24gTm93LUlzbyB7IHJldHVybiAoR2V0LURhdGUgLUZvcm1hdCAieXl5eS1N TS1kZFRISDptbTpzcyIpIH0KZnVuY3Rpb24gQWRkLUFjdGl2aXR5KFtzdHJpbmddJGFjdGlvbiwg W3N0cmluZ10kdGFyZ2V0KSB7CiAgJGl0ZW1zID0gQChSZWFkLVN0YXRlSnNvbiAkYWN0aXZpdHlG aWxlIEAoKSkKICAkZW50cnkgPSBbb3JkZXJlZF1AeyB0cyA9IChOb3ctSXNvKTsgdXNlciA9ICRt ZTsgbmFtZSA9ICRtZU5hbWU7IHJvbGUgPSAkcm9sZTsgYWN0aW9uID0gJGFjdGlvbjsgdGFyZ2V0 ID0gJHRhcmdldCB9CiAgJGl0ZW1zID0gQCgkZW50cnkpICsgJGl0ZW1zCiAgaWYgKCRpdGVtcy5D b3VudCAtZ3QgJGFjdGl2aXR5TWF4KSB7ICRpdGVtcyA9ICRpdGVtc1swLi4oJGFjdGl2aXR5TWF4 IC0gMSldIH0KICBXcml0ZS1TdGF0ZUpzb24gJGFjdGl2aXR5RmlsZSAkaXRlbXMKfQpmdW5jdGlv biBHZXQtQWN0aXZlTG9ja3MgewogICRvdXQgPSBAKCkKICBpZiAoVGVzdC1QYXRoICRsb2Nrc0Rp cikgewogICAgR2V0LUNoaWxkSXRlbSAkbG9ja3NEaXIgLUZpbHRlciAqLmpzb24gfCBGb3JFYWNo LU9iamVjdCB7CiAgICAgICRkID0gUmVhZC1TdGF0ZUpzb24gJF8uRnVsbE5hbWUgJG51bGwKICAg ICAgaWYgKCRkKSB7CiAgICAgICAgJGFnZSA9IChOZXctVGltZVNwYW4gLVN0YXJ0ICRfLkxhc3RX cml0ZVRpbWUgLUVuZCAoR2V0LURhdGUpKS5Ub3RhbFNlY29uZHMKICAgICAgICBpZiAoJGFnZSAt Z3QgJGxvY2tUdGwpIHsgUmVtb3ZlLUl0ZW0gJF8uRnVsbE5hbWUgLUZvcmNlIC1FcnJvckFjdGlv biBTaWxlbnRseUNvbnRpbnVlIH0KICAgICAgICBlbHNlIHsgJG91dCArPSAkZCB9CiAgICAgIH0K ICAgIH0KICB9CiAgcmV0dXJuICRvdXQKfQpmdW5jdGlvbiBHZXQtQWxsRHJhZnRzIHsKICAkb3V0 ID0gQCgpCiAgaWYgKFRlc3QtUGF0aCAkZHJhZnRzRGlyKSB7CiAgICAkY3V0b2ZmID0gKEdldC1E YXRlKS5BZGREYXlzKC0xNCkgICAjIFBoYXNlIDk6IGFsdGUgRW50d3VlcmZlICg+MTQgVGFnZSkg YXVmcmFldW1lbgogICAgR2V0LUNoaWxkSXRlbSAkZHJhZnRzRGlyIC1GaWx0ZXIgKi5qc29uIHwg Rm9yRWFjaC1PYmplY3QgewogICAgICBpZiAoJF8uTGFzdFdyaXRlVGltZSAtbHQgJGN1dG9mZikg eyBSZW1vdmUtSXRlbSAkXy5GdWxsTmFtZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29u dGludWU7IHJldHVybiB9CiAgICAgICRkID0gUmVhZC1TdGF0ZUpzb24gJF8uRnVsbE5hbWUgJG51 bGw7IGlmICgkZCkgeyAkb3V0ICs9ICRkIH0KICAgIH0KICB9CiAgcmV0dXJuICRvdXQKfQoKIyAt LS0tIEFsdC1Eb2t1LU1pZ3JhdGlvbiAoUGhhc2UgMTAsIG51ciBsZXNlbmQpIC0tLS0KIyBEZXIg S29udmVydGVyIG1pZ3JhdGVfZG9jcy5weSBzY2hyZWlidCBzZWluZW4gV2Vnd2VyZi1PdXRwdXQg bmFjaCBoZWxmZXJcbWlncmF0aW9uXAojIChhcnRpY2xlc1w8c2x1Zz4uanNvbiwgcHJldmlld1w8 c2x1Zz4uaHRtbCwgcmVwb3J0Lmpzb24sIG1hbmlmZXN0Lmpzb24pLiBEaWVzZQojIFJlYWRlciBs aWVmZXJuIGRpZSBrb252ZXJ0aWVydGVuIEFydGlrZWwgYW5zIEFkbWluLU1pZ3JhdGlvbnMtUGFu ZWw7IGRhcwojIFZlcm9lZmZlbnRsaWNoZW4gbGFldWZ0IHVlYmVyIGRlbiBub3JtYWxlbiBFZGl0 b3IgKyAvYXBpL3B1Ymxpc2guCiMgSGlud2VpczogbWlncmF0aW9uXCBpc3QgZ2VuZXJpZXJ0ZXIg V2Vnd2VyZi1PdXRwdXQgdW5kIGhpZXIgaS5kLlIuIGxlZXIgLT4KIyBHZXQtTWlncmF0aW9uTGlz dCBnaWJ0IEAoKSB6dXJ1ZWNrLCBHZXQtTWlncmF0aW9uQXJ0aWNsZSAkbnVsbC4gS2VpbiBGZWhs ZXIuCiRtaWdyYXRpb25EaXIgICAgID0gSm9pbi1QYXRoICRoZXJlICJtaWdyYXRpb24iCiRtaWdB cnRpY2xlc0RpciAgID0gSm9pbi1QYXRoICRtaWdyYXRpb25EaXIgImFydGljbGVzIgokbWlnU2x1 Z1JlICAgICAgICA9ICdeW2EtejAtOV9dezEsODB9JCcKZnVuY3Rpb24gR2V0LU1pZ3JhdGlvbkxp c3QgewogICRyZXBvcnQgPSBSZWFkLVN0YXRlSnNvbiAoSm9pbi1QYXRoICRtaWdyYXRpb25EaXIg InJlcG9ydC5qc29uIikgJG51bGwKICBpZiAoLW5vdCAkcmVwb3J0IC1vciAtbm90ICRyZXBvcnQu aXRlbXMpIHsgcmV0dXJuIEAoKSB9CiAgJG91dCA9IEAoKQogIGZvcmVhY2ggKCRpdCBpbiAkcmVw b3J0Lml0ZW1zKSB7CiAgICAkc2x1ZyA9IFtzdHJpbmddJGl0LnNsdWcKICAgIGlmICgkc2x1ZyAt bm90bWF0Y2ggJG1pZ1NsdWdSZSkgeyBjb250aW51ZSB9CiAgICAkYXZhaWxhYmxlID0gVGVzdC1Q YXRoIChKb2luLVBhdGggJG1pZ0FydGljbGVzRGlyICIkc2x1Zy5qc29uIikgLVBhdGhUeXBlIExl YWYKICAgICR3ID0gQCgpOyBpZiAoJGl0Lndhcm5pbmdzKSB7ICR3ID0gQCgkaXQud2FybmluZ3Mp IH0KICAgICRraW5kID0gaWYgKCRpdC5raW5kKSB7IFtzdHJpbmddJGl0LmtpbmQgfSBlbHNlIHsg ImFydGljbGUiIH0KICAgICRjbHMgPSBpZiAoJGl0LmNsYXNzaWZpY2F0aW9uKSB7IFtzdHJpbmdd JGl0LmNsYXNzaWZpY2F0aW9uIH0gZWxzZSB7ICIiIH0KICAgICRmb2xkZXIgPSBpZiAoJGl0LmZv bGRlcikgeyBbc3RyaW5nXSRpdC5mb2xkZXIgfSBlbHNlIHsgIiIgfQogICAgJHJlZGlyZWN0ID0g aWYgKCRpdC5yZWRpcmVjdCkgeyBbc3RyaW5nXSRpdC5yZWRpcmVjdCB9IGVsc2UgeyAiIiB9CiAg ICAkb3V0ICs9IFtvcmRlcmVkXUB7IHNsdWcgPSAkc2x1Zzsgc291cmNlID0gW3N0cmluZ10kaXQu cmVsOyB0aXRsZSA9IFtzdHJpbmddJGl0LnRpdGxlOwogICAgICBkYXRlID0gW3N0cmluZ10kaXQu ZGF0ZTsga2luZCA9ICRraW5kOyBjbGFzc2lmaWNhdGlvbiA9ICRjbHM7IGZvbGRlciA9ICRmb2xk ZXI7IHJlZGlyZWN0ID0gJHJlZGlyZWN0OyB3YXJuaW5ncyA9ICR3OyBzdGF0cyA9ICRpdC5zdGF0 czsgYXZhaWxhYmxlID0gW2Jvb2xdJGF2YWlsYWJsZSB9CiAgfQogIHJldHVybiAsJG91dAp9CmZ1 bmN0aW9uIEdldC1NaWdyYXRpb25BcnRpY2xlKFtzdHJpbmddJHNsdWcpIHsKICBpZiAoJHNsdWcg LW5vdG1hdGNoICRtaWdTbHVnUmUpIHsgcmV0dXJuICRudWxsIH0KICAkYmFzZSA9IFtTeXN0ZW0u SU8uUGF0aF06OkdldEZ1bGxQYXRoKCRtaWdBcnRpY2xlc0RpcikKICAkZnVsbCA9IFtTeXN0ZW0u SU8uUGF0aF06OkdldEZ1bGxQYXRoKChKb2luLVBhdGggJG1pZ0FydGljbGVzRGlyICIkc2x1Zy5q c29uIikpCiAgaWYgKC1ub3QgJGZ1bGwuU3RhcnRzV2l0aCgkYmFzZSArIFtTeXN0ZW0uSU8uUGF0 aF06OkRpcmVjdG9yeVNlcGFyYXRvckNoYXIsIFtTeXN0ZW0uU3RyaW5nQ29tcGFyaXNvbl06Ok9y ZGluYWxJZ25vcmVDYXNlKSkgeyByZXR1cm4gJG51bGwgfQogIGlmICgtbm90IChUZXN0LVBhdGgg JGZ1bGwgLVBhdGhUeXBlIExlYWYpKSB7IHJldHVybiAkbnVsbCB9CiAgcmV0dXJuIChSZWFkLVN0 YXRlSnNvbiAkZnVsbCAkbnVsbCkKfQoKIyAtLS0tIFJvbGxlbi1WZXJ3YWx0dW5nIChQaGFzZSA3 KTogYWRtaW5zLnR4dCAvIHJlZGFrdGV1cmUudHh0IGxlc2VuK3NjaHJlaWJlbiAtLS0tCiRrZW5u dW5nUmUgPSAnXltBLVphLXowLTlfXXsyLDMyfSQnCmZ1bmN0aW9uIFJlYWQtUm9sZVBhaXJzKFtz dHJpbmddJGZpbGVOYW1lKSB7CiAgJG91dCA9IEAoKQogICRwID0gSm9pbi1QYXRoICRoZXJlICRm aWxlTmFtZQogIGlmIChUZXN0LVBhdGggJHApIHsKICAgIEdldC1Db250ZW50ICRwIC1FbmNvZGlu ZyBVVEY4IHwgRm9yRWFjaC1PYmplY3QgewogICAgICAkbGluZSA9ICRfLlRyaW0oKQogICAgICBp ZiAoJGxpbmUgLWFuZCAtbm90ICRsaW5lLlN0YXJ0c1dpdGgoIiMiKSkgewogICAgICAgICRwYXJ0 cyA9ICRsaW5lLlNwbGl0KCI7IiwgMikKICAgICAgICAka2VubnVuZyA9ICRwYXJ0c1swXS5Ucmlt KCkKICAgICAgICBpZiAoJGtlbm51bmcpIHsKICAgICAgICAgICRuYW1lID0gIiI7IGlmICgkcGFy dHMuQ291bnQgLWd0IDEpIHsgJG5hbWUgPSAkcGFydHNbMV0uVHJpbSgpIH0KICAgICAgICAgICRv dXQgKz0gW29yZGVyZWRdQHsga2VubnVuZyA9ICRrZW5udW5nOyBuYW1lID0gJG5hbWUgfQogICAg ICAgIH0KICAgICAgfQogICAgfQogIH0KICByZXR1cm4gLCRvdXQKfQpmdW5jdGlvbiBHZXQtUm9s ZUhlYWRlcihbc3RyaW5nXSRwYXRoKSB7CiAgaWYgKC1ub3QgKFRlc3QtUGF0aCAkcGF0aCkpIHsg cmV0dXJuICIiIH0KICAkbGluZXMgPSBAKCkKICBmb3JlYWNoICgkcmF3IGluIChHZXQtQ29udGVu dCAkcGF0aCAtRW5jb2RpbmcgVVRGOCkpIHsKICAgICRzID0gJHJhdy5UcmltKCkKICAgIGlmICgk cyAtZXEgIiIgLW9yICRzLlN0YXJ0c1dpdGgoIiMiKSkgeyAkbGluZXMgKz0gJHJhdyB9IGVsc2Ug eyBicmVhayB9CiAgfQogIHJldHVybiAoJGxpbmVzIC1qb2luICJgbiIpCn0KZnVuY3Rpb24gV3Jp dGUtUm9sZUxpc3QoW3N0cmluZ10kZmlsZU5hbWUsICRlbnRyaWVzKSB7CiAgJHAgPSBKb2luLVBh dGggJGhlcmUgJGZpbGVOYW1lCiAgJGhlYWRlciA9IEdldC1Sb2xlSGVhZGVyICRwCiAgaWYgKFRl c3QtUGF0aCAkcCkgeyBDb3B5LUl0ZW0gJHAgIiRwLmJhayIgLUZvcmNlIH0KICAkYm9keSA9IEAo KQogIGZvcmVhY2ggKCRlIGluICRlbnRyaWVzKSB7CiAgICAkayA9IChbc3RyaW5nXSRlLmtlbm51 bmcpLlRyaW0oKTsgJG4gPSAoW3N0cmluZ10kZS5uYW1lKS5UcmltKCkKICAgIGlmICgtbm90ICRr KSB7IGNvbnRpbnVlIH0KICAgIGlmICgkbikgeyAkYm9keSArPSAiJGs7JG4iIH0gZWxzZSB7ICRi b2R5ICs9ICRrIH0KICB9CiAgJHRleHQgPSAiIjsgaWYgKCRoZWFkZXIpIHsgJHRleHQgPSAkaGVh ZGVyICsgImBuIiB9CiAgJHRleHQgKz0gKCRib2R5IC1qb2luICJgbiIpICsgImBuIgogICR0bXAg PSBHZXQtVG1wUGF0aCAkcAogIFtTeXN0ZW0uSU8uRmlsZV06OldyaXRlQWxsVGV4dCgkdG1wLCAk dGV4dCwgJHV0ZjgpCiAgUmVwbGFjZS1GaWxlICR0bXAgJHAKfQojIFBlcnNvbmVuc3BlaWNoZXIg KFBlcnNvbmFsbGlzdGUsIGF1Y2ggUGVyc29uZW4gT0hORSBSb2xsZS9LZW5udW5nKTogZG9rdW1l bnRlL2pzb24vcGVyc29uYWwuanNvbgpmdW5jdGlvbiBSZWFkLVBlcnNvbmFsIHsKICAkZnVsbCA9 IFJlc29sdmUtVGFyZ2V0ICJkb2t1bWVudGUvanNvbi9wZXJzb25hbC5qc29uIgogICRhcnIgPSBA KCkKICBpZiAoJGZ1bGwgLWFuZCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZnVsbCkpIHsKICAg IHRyeSB7ICRyYXcgPSBHZXQtQ29udGVudCAkZnVsbCAtUmF3IC1FbmNvZGluZyBVVEY4OyBpZiAo JHJhdyAtYW5kICRyYXcuVHJpbSgpKSB7ICRhcnIgPSBAKCRyYXcgfCBDb252ZXJ0RnJvbS1Kc29u KSB9IH0gY2F0Y2ggeyAkYXJyID0gQCgpIH0KICB9CiAgcmV0dXJuICxAKCRhcnIgfCBXaGVyZS1P YmplY3QgeyAkXyAtbmUgJG51bGwgfSkKfQpmdW5jdGlvbiBHZXQtUm9sZXNQYXlsb2FkIHsKICBy ZXR1cm4gQHsgb2sgPSAkdHJ1ZTsgYWRtaW5zID0gQChSZWFkLVJvbGVQYWlycyAkYWRtaW5GaWxl KTsgcmVkYWt0ZXVyZSA9IEAoUmVhZC1Sb2xlUGFpcnMgJHJlZGFrRmlsZSk7CiAgICBwZXJzb25h bCA9IEAoUmVhZC1QZXJzb25hbCk7CiAgICBtZSA9ICRtZUxvd2VyOyBtZVJvbGUgPSAkcm9sZTsg ZW1lcmdlbmN5ID0gQCgkZW1lcmdlbmN5TG93ZXIpOwogICAgcmVzdGFydEhpbnQgPSAiUm9sbGVu LUFlbmRlcnVuZ2VuIHdpcmtlbiBlcnN0IGJlaW0gTkFFQ0hTVEVOIFN0YXJ0IGRlcyBQZmxlZ2Ut SGVsZmVycyBkZXIgYmV0cm9mZmVuZW4gUGVyc29uLiBXZXIgZ2VyYWRlIGFuZ2VtZWxkZXQgaXN0 LCBiZWhhZWx0IGJpcyBkYWhpbiBkaWUgYmlzaGVyaWdlIFJvbGxlLiIgfQp9CgojIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiMgMykgSFRUUC1IZWxmZXIKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQokbWltZSA9IEB7 CiAgIi5odG1sIj0idGV4dC9odG1sIjsgIi5odG0iPSJ0ZXh0L2h0bWwiOyAiLmpzIj0iYXBwbGlj YXRpb24vamF2YXNjcmlwdDsgY2hhcnNldD11dGYtOCI7CiAgIi5jc3MiPSJ0ZXh0L2NzczsgY2hh cnNldD11dGYtOCI7ICIuanNvbiI9ImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiOwog ICIucG5nIj0iaW1hZ2UvcG5nIjsgIi5qcGciPSJpbWFnZS9qcGVnIjsgIi5qcGVnIj0iaW1hZ2Uv anBlZyI7ICIuZ2lmIj0iaW1hZ2UvZ2lmIjsKICAiLndlYnAiPSJpbWFnZS93ZWJwIjsgIi5ibXAi PSJpbWFnZS9ibXAiOyAiLnN2ZyI9ImltYWdlL3N2Zyt4bWwiOyAiLmljbyI9ImltYWdlL3gtaWNv biI7CiAgIi5wZGYiPSJhcHBsaWNhdGlvbi9wZGYiOyAiLnR4dCI9InRleHQvcGxhaW47IGNoYXJz ZXQ9dXRmLTgiOyAiLnhtbCI9ImFwcGxpY2F0aW9uL3htbCI7CiAgIi53b2ZmIj0iZm9udC93b2Zm IjsgIi53b2ZmMiI9ImZvbnQvd29mZjIiOyAiLnR0ZiI9ImZvbnQvdHRmIjsgIi5lb3QiPSJhcHBs aWNhdGlvbi92bmQubXMtZm9udG9iamVjdCI7CiAgIi5kb2MiPSJhcHBsaWNhdGlvbi9tc3dvcmQi OyAiLmRvY3giPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQu d29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCI7CiAgIi54bHMiPSJhcHBsaWNhdGlvbi92bmQubXMt ZXhjZWwiOyAiLnhsc3giPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9j dW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCI7CiAgIi5wcHQiPSJhcHBsaWNhdGlvbi92bmQubXMt cG93ZXJwb2ludCI7ICIucHB0eCI9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZp Y2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24iCn0KCmZ1bmN0aW9uIFNlbmQt SnNvbigkY3R4LCAkb2JqLCBbaW50XSRzdGF0dXMgPSAyMDApIHsKICAkanNvbiA9ICRvYmogfCBD b252ZXJ0VG8tSnNvbiAtQ29tcHJlc3MgLURlcHRoIDEyCiAgJGJ5dGVzID0gJHV0ZjguR2V0Qnl0 ZXMoJGpzb24pCiAgJGN0eC5SZXNwb25zZS5TdGF0dXNDb2RlID0gJHN0YXR1cwogICRjdHguUmVz cG9uc2UuQ29udGVudFR5cGUgPSAiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCIKICAj IEtlaW4gJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKicgKFBoYXNlIDkpIC0gc2FtZS1v cmlnaW4gYnJhdWNodCBlcyBuaWNodC4KICAkY3R4LlJlc3BvbnNlLk91dHB1dFN0cmVhbS5Xcml0 ZSgkYnl0ZXMsIDAsICRieXRlcy5MZW5ndGgpCiAgJGN0eC5SZXNwb25zZS5PdXRwdXRTdHJlYW0u Q2xvc2UoKQp9CgojIENTUkYtU2NodXR6IChQaGFzZSA5KTogT3JpZ2luL1JlZmVyZXIgbXVzcyBM b29wYmFjayBzZWluIG9kZXIgZ2FueiBmZWhsZW4uCiRsb29wYmFja0hvc3RzID0gQCgiMTI3LjAu MC4xIiwgImxvY2FsaG9zdCIsICI6OjEiKQpmdW5jdGlvbiBUZXN0LUNzcmZPaygkcmVxKSB7CiAg IyBPcmlnaW4gVk9SSEFOREVOIChhdWNoIGxlZXIvIm51bGwiKSAtPiBtdXNzIExvb3BiYWNrIHNl aW4gKFBhcml0YWV0IHp1IHB5KS4gU29uc3QgUmVmZXJlci4KICAka2V5cyA9ICRyZXEuSGVhZGVy cy5BbGxLZXlzCiAgaWYgKCRrZXlzIC1jb250YWlucyAiT3JpZ2luIikgeyAkdSA9ICRyZXEuSGVh ZGVyc1siT3JpZ2luIl0gfQogIGVsc2VpZiAoJGtleXMgLWNvbnRhaW5zICJSZWZlcmVyIikgeyAk dSA9ICRyZXEuSGVhZGVyc1siUmVmZXJlciJdIH0KICBlbHNlIHsgcmV0dXJuICR0cnVlIH0gICAg ICAgICAgICAjIHdlZGVyIE9yaWdpbiBub2NoIFJlZmVyZXI6IHNhbWUtb3JpZ2luIEdFVCAvIGN1 cmwgLyBzZW5kQmVhY29uCiAgdHJ5IHsgJGggPSAoW1VyaV0kdSkuSG9zdCB9IGNhdGNoIHsgcmV0 dXJuICRmYWxzZSB9CiAgcmV0dXJuICgkbG9vcGJhY2tIb3N0cyAtY29udGFpbnMgJGgpCn0KCmZ1 bmN0aW9uIFNlbmQtRmlsZSgkY3R4LCBbc3RyaW5nXSRmdWxsKSB7CiAgaWYgKC1ub3QgKFRlc3Qt UGF0aCAkZnVsbCAtUGF0aFR5cGUgTGVhZikpIHsgJGN0eC5SZXNwb25zZS5TdGF0dXNDb2RlID0g NDA0OyAkY3R4LlJlc3BvbnNlLkNsb3NlKCk7IHJldHVybiB9CiAgJGV4dCA9IFtTeXN0ZW0uSU8u UGF0aF06OkdldEV4dGVuc2lvbigkZnVsbCkuVG9Mb3dlcigpCiAgJGN0ID0gJG1pbWVbJGV4dF07 IGlmICgtbm90ICRjdCkgeyAkY3QgPSAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiB9CiAgJGN0 eC5SZXNwb25zZS5Db250ZW50VHlwZSA9ICRjdAogICRmcyA9IFtTeXN0ZW0uSU8uRmlsZV06Ok9w ZW5SZWFkKCRmdWxsKQogIHRyeSB7CiAgICAkY3R4LlJlc3BvbnNlLkNvbnRlbnRMZW5ndGg2NCA9 ICRmcy5MZW5ndGgKICAgICRmcy5Db3B5VG8oJGN0eC5SZXNwb25zZS5PdXRwdXRTdHJlYW0sIDY1 NTM2KSAgICMgc3RyZWFtZW4gKGF1Y2ggZ3Jvc3NlIERhdGVpZW4pCiAgfSBmaW5hbGx5IHsgJGZz LkNsb3NlKCk7ICRjdHguUmVzcG9uc2UuT3V0cHV0U3RyZWFtLkNsb3NlKCkgfQp9CgojIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiMgNCkgU2VydmVyIHN0YXJ0ZW4KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQokbGlz dGVuZXIgPSBOZXctT2JqZWN0IFN5c3RlbS5OZXQuSHR0cExpc3RlbmVyCiRsaXN0ZW5lci5QcmVm aXhlcy5BZGQoImh0dHA6Ly8xMjcuMC4wLjE6JFBvcnQvIikgICAjIG51ciBMb29wYmFjayAtPiBr ZWluZSBBZG1pbi1SZWNodGUgbm9ldGlnCnRyeSB7ICRsaXN0ZW5lci5TdGFydCgpIH0gY2F0Y2gg ewogIFdyaXRlLUhvc3QgIktvbm50ZSBQb3J0ICRQb3J0IG5pY2h0IGJpbmRlbjogJCgkXy5FeGNl cHRpb24uTWVzc2FnZSkiCiAgZXhpdCAxCn0KV3JpdGUtSG9zdCAiUG9ydGFsLVBmbGVnZS1IZWxm ZXIgbGFldWZ0OiBodHRwOi8vMTI3LjAuMC4xOiRQb3J0LyAgKCRtZSA6ICRtZU5hbWUgLyBSb2xs ZTogJHJvbGUpIgpXcml0ZS1Mb2cgIlNFUlZFUiBTVEFSVCAoUG9ydCAkUG9ydCwgJG1lPSRyb2xl KSIKCndoaWxlICgkbGlzdGVuZXIuSXNMaXN0ZW5pbmcpIHsKICAkY3R4ID0gJG51bGwKICAjIEdl dENvbnRleHQgYmxvY2tpZXJ0IGJpcyB6dW0gbmFlY2hzdGVuIFJlcXVlc3QgLT4gZGVyIEhlbGZl ciB1ZWJlcnN0ZWh0IGJlbGllYmlnCiAgIyBsYW5nZSBJZGxlLVplaXRlbiAoa2VpbiBUaW1lb3V0 LCBrZWluIEF1dG8tU2h1dGRvd24pLiBUcmFuc2llbnRlIEZlaGxlciB3ZXJkZW4gTklDSFQKICAj IGFscyBBYmJydWNoIGdld2VydGV0IChzb25zdCBzdHVlcmJlIGRlciBTZXJ2ZXIpOyBudXIgd2Vu biBkZXIgTGlzdGVuZXIgd2lya2xpY2gKICAjIGdlc3RvcHB0IHd1cmRlLCB2ZXJsYXNzZW4gd2ly IGRpZSBTY2hsZWlmZSBzYXViZXIuCiAgdHJ5IHsgJGN0eCA9ICRsaXN0ZW5lci5HZXRDb250ZXh0 KCkgfQogIGNhdGNoIHsKICAgIGlmICgkbGlzdGVuZXIuSXNMaXN0ZW5pbmcpIHsgU3RhcnQtU2xl ZXAgLU1pbGxpc2Vjb25kcyAyMDA7IGNvbnRpbnVlIH0KICAgIGJyZWFrCiAgfQogIGlmICgkbnVs bCAtZXEgJGN0eCkgeyBjb250aW51ZSB9CiAgdHJ5IHsKICAgICRyZXEgPSAkY3R4LlJlcXVlc3QK ICAgICRwYXRoID0gJHJlcS5VcmwuQWJzb2x1dGVQYXRoCgogICAgIyAtLS0tIE9QVElPTlM6IGJl d3Vzc3QgT0hORSBDT1JTLUZyZWlnYWJlIChQaGFzZSA5KSAtPiBjcm9zcy1vcmlnaW4gUHJlZmxp Z2h0cyBzY2hlaXRlcm4gLS0tLQogICAgaWYgKCRyZXEuSHR0cE1ldGhvZCAtZXEgIk9QVElPTlMi KSB7CiAgICAgICRjdHguUmVzcG9uc2UuU3RhdHVzQ29kZSA9IDIwNDsgJGN0eC5SZXNwb25zZS5D bG9zZSgpOyBjb250aW51ZQogICAgfQoKICAgICMgLS0tLSBDU1JGLVNjaHV0eiAoUGhhc2UgOSk6 IGZyZW1kZXIgT3JpZ2luIGRhcmYgL2FwaS8qIG5pY2h0IGF1c2xvZXNlbiAtLS0tCiAgICBpZiAo JHBhdGguU3RhcnRzV2l0aCgiL2FwaS8iKSAtYW5kIC1ub3QgKFRlc3QtQ3NyZk9rICRyZXEpKSB7 CiAgICAgIFdyaXRlLUxvZyAiNDAzIENTUkYgJHBhdGggKE9yaWdpbiAkKCRyZXEuSGVhZGVyc1sn T3JpZ2luJ10pKSIKICAgICAgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0g IlVuZ3VlbHRpZ2VyIE9yaWdpbiAoQ1NSRi1TY2h1dHopLiIgfSA0MDM7IGNvbnRpbnVlCiAgICB9 CgogICAgIyAtLS0tIC9hcGkvcGluZyAtLS0tCiAgICBpZiAoJHBhdGggLWVxICIvYXBpL3Bpbmci KSB7CiAgICAgICRjYW5FZGl0ID0gKCRyYW5rWyRyb2xlXSAtZ2UgJHJhbmtbInJlZGFrdGV1ciJd KQogICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVlOyB1c2VyID0gJG1lOyBuYW1lID0g JG1lTmFtZTsgcm9sZSA9ICRyb2xlOyBjYW5FZGl0ID0gJGNhbkVkaXQ7IHZlcnNpb24gPSAiMS4x IiB9OyBjb250aW51ZQogICAgfQoKICAgICMgLS0tLSBSb2xsZW4tRW5mb3JjZW1lbnQgKFNlcnZl ci1zZWl0aWcsIHZvciBhbGxlbiBTY2hyZWliLUVuZHBvaW50cykgLS0tLQogICAgaWYgKC1ub3Qg KFRlc3QtUm9sZUFsbG93ZWQgJHBhdGgpKSB7CiAgICAgIFdyaXRlLUxvZyAiNDAzICRwYXRoIChS b2xsZSAkcm9sZSkiCiAgICAgIFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9 ICJSb2xsZSAnJHJvbGUnIGRhcmYgJyRwYXRoJyBuaWNodC4iIH0gNDAzOyBjb250aW51ZQogICAg fQoKICAgICMgLS0tLSAvYXBpL3B1Ymxpc2ggKFRleHRlOiBkYXRhLWNvbnRlbnQuanMgLyBkYXRh LW5hdi5qcyAvIEFydGlrZWwtSFRNTCkgLS0tLQogICAgaWYgKCRwYXRoIC1lcSAiL2FwaS9wdWJs aXNoIiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIlBPU1QiKSB7CiAgICAgICRkYXRhID0gKFJl YWQtQm9keSAkY3R4KSB8IENvbnZlcnRGcm9tLUpzb24KICAgICAgIyBWZXJzaW9uc3N0YWVuZGUg YWxzIEhhc2h0YWJsZSAobXV0aWVyYmFyKQogICAgICAkcmV2T2JqID0gUmVhZC1TdGF0ZUpzb24g JHJldnNGaWxlICRudWxsCiAgICAgICRyZXZNYXAgPSBAe307IGlmICgkcmV2T2JqKSB7ICRyZXZP YmouUFNPYmplY3QuUHJvcGVydGllcyB8IEZvckVhY2gtT2JqZWN0IHsgJHJldk1hcFskXy5OYW1l XSA9IFtpbnRdJF8uVmFsdWUgfSB9CiAgICAgICRiYXNlID0gQHt9OyBpZiAoJGRhdGEuYmFzZVJl dikgeyAkZGF0YS5iYXNlUmV2LlBTT2JqZWN0LlByb3BlcnRpZXMgfCBGb3JFYWNoLU9iamVjdCB7 ICRiYXNlWyRfLk5hbWVdID0gW2ludF0kXy5WYWx1ZSB9IH0KICAgICAgIyBLb25mbGlrdC1QcnVl ZnVuZyBWT1IgZGVtIFNjaHJlaWJlbgogICAgICAkY29uZmxpY3QgPSAkbnVsbAogICAgICBmb3Jl YWNoICgkZiBpbiAkZGF0YS5maWxlcykgewogICAgICAgICRuYW1lID0gW3N0cmluZ10kZi5uYW1l CiAgICAgICAgaWYgKFRlc3QtVHJhY2tlZCAkbmFtZSkgewogICAgICAgICAgJGN1ciA9IDA7IGlm ICgkcmV2TWFwLkNvbnRhaW5zS2V5KCRuYW1lKSkgeyAkY3VyID0gJHJldk1hcFskbmFtZV0gfQog ICAgICAgICAgaWYgKCRiYXNlLkNvbnRhaW5zS2V5KCRuYW1lKSAtYW5kICgkYmFzZVskbmFtZV0g LWx0ICRjdXIpKSB7ICRjb25mbGljdCA9IEB7IG5hbWUgPSAkbmFtZTsgY3VyID0gJGN1cjsgeW91 ciA9ICRiYXNlWyRuYW1lXSB9OyBicmVhayB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmICgk Y29uZmxpY3QpIHsKICAgICAgICBXcml0ZS1Mb2cgIjQwOSBDT05GTElDVCAkKCRjb25mbGljdC5u YW1lKSAoZGVpbiAkKCRjb25mbGljdC55b3VyKSA8IGFrdHVlbGwgJCgkY29uZmxpY3QuY3VyKSki CiAgICAgICAgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGNvbmZsaWN0ID0gJHRydWU7 IG5hbWUgPSAkY29uZmxpY3QubmFtZTsgY3VycmVudFJldiA9ICRjb25mbGljdC5jdXI7IHlvdXJS ZXYgPSAkY29uZmxpY3QueW91ciB9IDQwOQogICAgICAgIGNvbnRpbnVlCiAgICAgIH0KICAgICAg JHdyaXR0ZW4gPSBAKCkKICAgICAgZm9yZWFjaCAoJGYgaW4gJGRhdGEuZmlsZXMpIHsKICAgICAg ICAkbmFtZSA9IFtzdHJpbmddJGYubmFtZQogICAgICAgIGlmICgtbm90IChUZXN0LVRyYWNrZWQg JG5hbWUpKSB7IHRocm93ICJVbmVybGF1YnRlcyBaaWVsOiAkbmFtZSIgfQogICAgICAgICRmdWxs ID0gUmVzb2x2ZS1UYXJnZXQgJG5hbWUKICAgICAgICBpZiAoLW5vdCAkZnVsbCkgeyB0aHJvdyAi VW5ndWVsdGlnZXIgUGZhZDogJG5hbWUiIH0KICAgICAgICAkZGlyID0gU3BsaXQtUGF0aCAtUGFy ZW50ICRmdWxsCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAkZGlyKSkgeyBOZXctSXRlbSAt SXRlbVR5cGUgRGlyZWN0b3J5IC1QYXRoICRkaXIgLUZvcmNlIHwgT3V0LU51bGwgfQogICAgICAg ICRyZXZCZWZvcmUgPSAwOyBpZiAoJHJldk1hcC5Db250YWluc0tleSgkbmFtZSkpIHsgJHJldkJl Zm9yZSA9ICRyZXZNYXBbJG5hbWVdIH0KICAgICAgICBTbmFwc2hvdC1GaWxlICRmdWxsICRuYW1l ICRyZXZCZWZvcmUgInB1Ymxpc2giICIiICAgICAgICAjIGFsdGVuIFN0YW5kIHNpY2hlcm4KICAg ICAgICAkdG1wID0gR2V0LVRtcFBhdGggJGZ1bGwKICAgICAgICBbU3lzdGVtLklPLkZpbGVdOjpX cml0ZUFsbFRleHQoJHRtcCwgW3N0cmluZ10kZi50ZXh0LCAkdXRmOCkKICAgICAgICBSZXBsYWNl LUZpbGUgJHRtcCAkZnVsbAogICAgICAgICR3cml0dGVuICs9ICRuYW1lCiAgICAgICAgaWYgKCRy ZXZNYXAuQ29udGFpbnNLZXkoJG5hbWUpKSB7ICRyZXZNYXBbJG5hbWVdID0gJHJldk1hcFskbmFt ZV0gKyAxIH0gZWxzZSB7ICRyZXZNYXBbJG5hbWVdID0gMSB9ICAgIyBSZXYgamUgWmllbAogICAg ICB9CiAgICAgIFdyaXRlLVN0YXRlSnNvbiAkcmV2c0ZpbGUgJHJldk1hcAogICAgICBBZGQtQWN0 aXZpdHkgInB1Ymxpc2giICgkd3JpdHRlbiAtam9pbiAiLCAiKQogICAgICBQcnVuZS1IaXN0b3J5 CiAgICAgIFdyaXRlLUxvZyAoIlBVQkxJU0ggIiArICgkd3JpdHRlbiAtam9pbiAiLCAiKSkKICAg ICAgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkdHJ1ZTsgd3JpdHRlbiA9ICR3cml0dGVuOyByZXZz ID0gJHJldk1hcCB9OyBjb250aW51ZQogICAgfQoKICAgICMgLS0tLSAvYXBpL2hpc3RvcnkvcmVz dG9yZSAoYWRtaW4pIC0tLS0KICAgIGlmICgkcGF0aCAtZXEgIi9hcGkvaGlzdG9yeS9yZXN0b3Jl IiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIlBPU1QiKSB7CiAgICAgICRkID0gKFJlYWQtQm9k eSAkY3R4KSB8IENvbnZlcnRGcm9tLUpzb24KICAgICAgJGhpZCA9IFtzdHJpbmddJGQuaWQKICAg ICAgaWYgKC1ub3QgJGhpZCkgeyB0aHJvdyAiaWQgZmVobHQiIH0KICAgICAgJGVudHJ5ID0gQChH ZXQtSGlzdG9yeUluZGV4KSB8IFdoZXJlLU9iamVjdCB7ICRfLmlkIC1lcSAkaGlkIH0gfCBTZWxl Y3QtT2JqZWN0IC1GaXJzdCAxCiAgICAgICRzbmFwID0gSm9pbi1QYXRoICRoaXN0b3J5RGlyICgi JGhpZC5zbmFwIikKICAgICAgaWYgKC1ub3QgJGVudHJ5IC1vciAtbm90IChUZXN0LVBhdGggJHNu YXApKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJVbmJla2FubnRl IEhpc3RvcmllLUlEIiB9IDQwNDsgY29udGludWUgfQogICAgICAkdGFyZ2V0ID0gW3N0cmluZ10k ZW50cnkudGFyZ2V0CiAgICAgIGlmICgtbm90IChUZXN0LVRyYWNrZWQgJHRhcmdldCkpIHsgdGhy b3cgIlppZWwgbmljaHQgd2llZGVyaGVyc3RlbGxiYXI6ICR0YXJnZXQiIH0KICAgICAgJGZ1bGwg PSBSZXNvbHZlLVRhcmdldCAkdGFyZ2V0CiAgICAgIGlmICgtbm90ICRmdWxsKSB7IHRocm93ICJV bmd1ZWx0aWdlciBQZmFkOiAkdGFyZ2V0IiB9CiAgICAgICRyZXZPYmogPSBSZWFkLVN0YXRlSnNv biAkcmV2c0ZpbGUgJG51bGwKICAgICAgJHJldk1hcCA9IEB7fTsgaWYgKCRyZXZPYmopIHsgJHJl dk9iai5QU09iamVjdC5Qcm9wZXJ0aWVzIHwgRm9yRWFjaC1PYmplY3QgeyAkcmV2TWFwWyRfLk5h bWVdID0gW2ludF0kXy5WYWx1ZSB9IH0KICAgICAgJHJldkJlZm9yZSA9IDA7IGlmICgkcmV2TWFw LkNvbnRhaW5zS2V5KCR0YXJnZXQpKSB7ICRyZXZCZWZvcmUgPSAkcmV2TWFwWyR0YXJnZXRdIH0K ICAgICAgIyBBa3R1ZWxsZW4gU3RhbmQgenVlcnN0IHNpY2hlcm4gLT4gV2llZGVyaGVyc3RlbGx1 bmcgaXN0IHNlbGJzdCByZXZlcnNpYmVsLgogICAgICBTbmFwc2hvdC1GaWxlICRmdWxsICR0YXJn ZXQgJHJldkJlZm9yZSAicmVzdG9yZSIgInZvciBXaWVkZXJoZXJzdGVsbHVuZyIKICAgICAgJGRp ciA9IFNwbGl0LVBhdGggLVBhcmVudCAkZnVsbAogICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoICRk aXIpKSB7IE5ldy1JdGVtIC1JdGVtVHlwZSBEaXJlY3RvcnkgLVBhdGggJGRpciAtRm9yY2UgfCBP dXQtTnVsbCB9CiAgICAgICRieXRlcyA9IFtTeXN0ZW0uSU8uRmlsZV06OlJlYWRBbGxCeXRlcygk c25hcCkKICAgICAgJHRtcCA9IEdldC1UbXBQYXRoICRmdWxsCiAgICAgIFtTeXN0ZW0uSU8uRmls ZV06OldyaXRlQWxsQnl0ZXMoJHRtcCwgJGJ5dGVzKQogICAgICBSZXBsYWNlLUZpbGUgJHRtcCAk ZnVsbAogICAgICBpZiAoJHJldk1hcC5Db250YWluc0tleSgkdGFyZ2V0KSkgeyAkcmV2TWFwWyR0 YXJnZXRdID0gJHJldk1hcFskdGFyZ2V0XSArIDEgfSBlbHNlIHsgJHJldk1hcFskdGFyZ2V0XSA9 IDEgfSAgICMgUmV2IGplIFppZWwKICAgICAgV3JpdGUtU3RhdGVKc29uICRyZXZzRmlsZSAkcmV2 TWFwCiAgICAgIEFkZC1BY3Rpdml0eSAicmVzdG9yZSIgJHRhcmdldAogICAgICBQcnVuZS1IaXN0 b3J5CiAgICAgIFdyaXRlLUxvZyAiUkVTVE9SRSAkdGFyZ2V0IDwtICRoaWQiCiAgICAgIFNlbmQt SnNvbiAkY3R4IEB7IG9rID0gJHRydWU7IHRhcmdldCA9ICR0YXJnZXQ7IHJlc3RvcmVkRnJvbSA9 ICRoaWQ7IHJldnMgPSAkcmV2TWFwIH07IGNvbnRpbnVlCiAgICB9CgogICAgIyAtLS0tIC9hcGkv YXNzZXQgKEJpbGQvUERGLVVwbG9hZCkgLS0tLQogICAgaWYgKCRwYXRoIC1lcSAiL2FwaS9hc3Nl dCIgLWFuZCAkcmVxLkh0dHBNZXRob2QgLWVxICJQT1NUIikgewogICAgICAkb3JpZ05hbWUgPSAk cmVxLlF1ZXJ5U3RyaW5nWyJuYW1lIl07IGlmICgtbm90ICRvcmlnTmFtZSkgeyAkb3JpZ05hbWUg PSAiZGF0ZWkiIH0KICAgICAgJGV4dCA9IChbU3lzdGVtLklPLlBhdGhdOjpHZXRFeHRlbnNpb24o JG9yaWdOYW1lKSkuVHJpbVN0YXJ0KCIuIikuVG9Mb3dlcigpCiAgICAgIGlmICgtbm90ICgoJGlt Z0V4dCAtY29udGFpbnMgJGV4dCkgLW9yICgkZG9jRXh0IC1jb250YWlucyAkZXh0KSkpIHsgU2Vu ZC1Kc29uICRjdHggQHsgb2s9JGZhbHNlOyBlcnJvcj0iRGF0ZWl0eXAgbmljaHQgZXJsYXVidDog LiRleHQiIH0gNDE1OyBjb250aW51ZSB9CiAgICAgICMgTGFlbmdlIGJla2FubnQgc2VpbiAoa2Vp biBjaHVua2VkKSBVTkQgaW0gTGltaXQgLT4ga2VpbiB1bmJlZ3Jlbnp0ZXMgTGVzZW4gaW4gZGVu IFJBTS4KICAgICAgaWYgKCRyZXEuQ29udGVudExlbmd0aDY0IC1sdCAwKSB7IFNlbmQtSnNvbiAk Y3R4IEB7IG9rPSRmYWxzZTsgZXJyb3I9IkxhZW5nZSB1bmJla2FubnQgKGNodW5rZWQgbmljaHQg ZXJsYXVidCkuIiB9IDQxMTsgY29udGludWUgfQogICAgICBpZiAoJHJlcS5Db250ZW50TGVuZ3Ro NjQgLWd0ICRtYXhBc3NldCkgeyBTZW5kLUpzb24gJGN0eCBAeyBvaz0kZmFsc2U7IGVycm9yPSJE YXRlaSB6dSBncm9zcyAobWF4IDI1IE1CKS4iIH0gNDEzOyBjb250aW51ZSB9CiAgICAgICRtcyA9 IE5ldy1PYmplY3QgU3lzdGVtLklPLk1lbW9yeVN0cmVhbQogICAgICAkcmVxLklucHV0U3RyZWFt LkNvcHlUbygkbXMsIDY1NTM2KQogICAgICAkYnl0ZXMgPSAkbXMuVG9BcnJheSgpOyAkbXMuQ2xv c2UoKQogICAgICBpZiAoJGJ5dGVzLkxlbmd0aCAtZ3QgJG1heEFzc2V0KSB7IFNlbmQtSnNvbiAk Y3R4IEB7IG9rPSRmYWxzZTsgZXJyb3I9IkRhdGVpIHp1IGdyb3NzIChtYXggMjUgTUIpLiIgfSA0 MTM7IGNvbnRpbnVlIH0KICAgICAgJHVpZCA9IChHZXQtRGF0ZSAtRm9ybWF0ICJ5eXl5TU1kZEhI bW1zcyIpICsgIi0iICsgKFtHdWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCJOIikuU3Vic3RyaW5n KDAsNikpCiAgICAgICRmaWxlTmFtZSA9ICIkdWlkLiRleHQiCiAgICAgIFtTeXN0ZW0uSU8uRmls ZV06OldyaXRlQWxsQnl0ZXMoKEpvaW4tUGF0aCAkYXNzZXRzRGlyICRmaWxlTmFtZSksICRieXRl cykKICAgICAgV3JpdGUtTG9nICJBU1NFVCAkZmlsZU5hbWUgKCQoJGJ5dGVzLkxlbmd0aCkgQnl0 ZXMsIHVyc3ByLiAkb3JpZ05hbWUpIgogICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVl OyBwYXRoID0gImRva3VtZW50ZS9tZWRpYS91cGxvYWRzLyRmaWxlTmFtZSIgfTsgY29udGludWUK ICAgIH0KCiAgICAjIC0tLS0gL2FwaS9zdGF0ZSAoRW50d3VlcmZlICsgTG9ja3MgKyBBa3Rpdml0 YWV0ICsgVmVyc2lvbnNzdGFlbmRlKSAtLS0tCiAgICBpZiAoJHBhdGggLWVxICIvYXBpL3N0YXRl IiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIkdFVCIpIHsKICAgICAgJHJldk9iaiA9IFJlYWQt U3RhdGVKc29uICRyZXZzRmlsZSAoQHt9KQogICAgICAkYWN0ID0gQChSZWFkLVN0YXRlSnNvbiAk YWN0aXZpdHlGaWxlIEAoKSkgfCBTZWxlY3QtT2JqZWN0IC1GaXJzdCA1MAogICAgICBTZW5kLUpz b24gJGN0eCBAeyBvayA9ICR0cnVlOyBkcmFmdHMgPSBAKEdldC1BbGxEcmFmdHMpOyBsb2NrcyA9 IEAoR2V0LUFjdGl2ZUxvY2tzKTsgYWN0aXZpdHkgPSBAKCRhY3QpOyByZXZzID0gJHJldk9iaiB9 OyBjb250aW51ZQogICAgfQoKICAgICMgLS0tLSAvYXBpL2hpc3RvcnkgKExpc3RlLCBhZG1pbikg LS0tLQogICAgaWYgKCRwYXRoIC1lcSAiL2FwaS9oaXN0b3J5IiAtYW5kICRyZXEuSHR0cE1ldGhv ZCAtZXEgIkdFVCIpIHsKICAgICAgJHRndCA9ICRyZXEuUXVlcnlTdHJpbmdbInRhcmdldCJdCiAg ICAgICRpdGVtcyA9IEAoR2V0LUhpc3RvcnlJbmRleCkKICAgICAgaWYgKCR0Z3QpIHsgJGl0ZW1z ID0gQCgkaXRlbXMgfCBXaGVyZS1PYmplY3QgeyAkXy50YXJnZXQgLWVxICR0Z3QgfSkgfQogICAg ICBpZiAoJGl0ZW1zLkNvdW50IC1ndCA1MDApIHsgJGl0ZW1zID0gQCgkaXRlbXNbMC4uNDk5XSkg fQogICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVlOyBpdGVtcyA9IEAoJGl0ZW1zKTsg bGltaXRzID0gQHsgcHJ1bmVEYXlzID0gJGhpc3RQcnVuZURheXM7IG1heFBlclRhcmdldCA9ICRo aXN0TWF4UGVyVGFyZ2V0IH0gfTsgY29udGludWUKICAgIH0KICAgICMgLS0tLSAvYXBpL2hpc3Rv cnkvPGlkPiAoU25hcHNob3QtSW5oYWx0LCBhZG1pbikgLS0tLQogICAgaWYgKCRwYXRoIC1saWtl ICIvYXBpL2hpc3RvcnkvKiIgLWFuZCAkcmVxLkh0dHBNZXRob2QgLWVxICJHRVQiKSB7CiAgICAg ICRoaWQgPSAkcGF0aC5TdWJzdHJpbmcoIi9hcGkvaGlzdG9yeS8iLkxlbmd0aCkKICAgICAgJGVu dHJ5ID0gQChHZXQtSGlzdG9yeUluZGV4KSB8IFdoZXJlLU9iamVjdCB7ICRfLmlkIC1lcSAkaGlk IH0gfCBTZWxlY3QtT2JqZWN0IC1GaXJzdCAxCiAgICAgICRzbmFwID0gSm9pbi1QYXRoICRoaXN0 b3J5RGlyICgiJGhpZC5zbmFwIikKICAgICAgaWYgKC1ub3QgJGVudHJ5IC1vciAtbm90IChUZXN0 LVBhdGggJHNuYXApKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJV bmJla2FubnRlIEhpc3RvcmllLUlEIiB9IDQwNDsgY29udGludWUgfQogICAgICAkdGV4dCA9IFtT eXN0ZW0uSU8uRmlsZV06OlJlYWRBbGxUZXh0KCRzbmFwLCAkdXRmOCkKICAgICAgU2VuZC1Kc29u ICRjdHggQHsgb2sgPSAkdHJ1ZTsgaWQgPSAkaGlkOyB0YXJnZXQgPSAkZW50cnkudGFyZ2V0OyB0 cyA9ICRlbnRyeS50czsgbmFtZSA9ICRlbnRyeS5uYW1lOyB0ZXh0ID0gJHRleHQgfTsgY29udGlu dWUKICAgIH0KCiAgICAjIC0tLS0gL2FwaS9taWdyYXRpb24gKExpc3RlIGtvbnZlcnRpZXJ0ZXIg QWx0LURva3VtZW50ZSwgYWRtaW4pIC0tLS0KICAgIGlmICgkcGF0aCAtZXEgIi9hcGkvbWlncmF0 aW9uIiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIkdFVCIpIHsKICAgICAgU2VuZC1Kc29uICRj dHggQHsgb2sgPSAkdHJ1ZTsgaXRlbXMgPSBAKEdldC1NaWdyYXRpb25MaXN0KSB9OyBjb250aW51 ZQogICAgfQogICAgIyAtLS0tIC9hcGkvbWlncmF0aW9uLzxzbHVnPiAoZWluIGtvbnZlcnRpZXJ0 ZXMgQXJ0aWtlbC1KU09OLCBhZG1pbikgLS0tLQogICAgaWYgKCRwYXRoIC1saWtlICIvYXBpL21p Z3JhdGlvbi8qIiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIkdFVCIpIHsKICAgICAgJHNsdWcg PSAkcGF0aC5TdWJzdHJpbmcoIi9hcGkvbWlncmF0aW9uLyIuTGVuZ3RoKQogICAgICAkYXJ0ID0g R2V0LU1pZ3JhdGlvbkFydGljbGUgJHNsdWcKICAgICAgaWYgKC1ub3QgJGFydCkgeyBTZW5kLUpz b24gJGN0eCBAeyBvayA9ICRmYWxzZTsgZXJyb3IgPSAiVW5iZWthbm50ZXIgU2x1ZyIgfSA0MDQ7 IGNvbnRpbnVlIH0KICAgICAgJHcgPSBAKCk7IGlmICgkYXJ0Lndhcm5pbmdzKSB7ICR3ID0gQCgk YXJ0Lndhcm5pbmdzKSB9CiAgICAgIFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJHRydWU7IGFydGlj bGUgPSAkYXJ0LmFydGljbGU7IHNvdXJjZSA9IFtzdHJpbmddJGFydC5zb3VyY2U7IHdhcm5pbmdz ID0gJHcgfTsgY29udGludWUKICAgIH0KCiAgICAjIC0tLS0gL2FwaS9hZG1pbi9yb2xlcyAoUm9s bGVuLVZlcndhbHR1bmcsIGFkbWluKSAtLS0tCiAgICBpZiAoJHBhdGggLWVxICIvYXBpL2FkbWlu L3JvbGVzIiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIkdFVCIpIHsKICAgICAgU2VuZC1Kc29u ICRjdHggKEdldC1Sb2xlc1BheWxvYWQpOyBjb250aW51ZQogICAgfQogICAgaWYgKCRwYXRoIC1l cSAiL2FwaS9hZG1pbi9yb2xlcyIgLWFuZCAkcmVxLkh0dHBNZXRob2QgLWVxICJQT1NUIikgewog ICAgICAkZCA9IChSZWFkLUJvZHkgJGN0eCkgfCBDb252ZXJ0RnJvbS1Kc29uCiAgICAgICR3aGlj aCA9IFtzdHJpbmddJGQubGlzdAogICAgICAjIFBlcnNvbmVuc3BlaWNoZXIgKFBlcnNvbmFsbGlz dGUsIGF1Y2ggUGVyc29uZW4gb2huZSBSb2xsZS9LZW5udW5nKTogSlNPTiBuYWNoIGRva3VtZW50 ZS9qc29uL3BlcnNvbmFsLmpzb24KICAgICAgaWYgKCR3aGljaCAtZXEgInBlcnNvbmFsIikgewog ICAgICAgICRmdWxsID0gUmVzb2x2ZS1UYXJnZXQgImRva3VtZW50ZS9qc29uL3BlcnNvbmFsLmpz b24iCiAgICAgICAgaWYgKC1ub3QgJGZ1bGwpIHsgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFs c2U7IGVycm9yID0gIlBmYWQgbmljaHQgZXJsYXVidC4iIH0gNDAzOyBjb250aW51ZSB9CiAgICAg ICAgaWYgKCRudWxsIC1lcSAkZC5lbnRyaWVzKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZh bHNlOyBlcnJvciA9ICJwZXJzb25hbCBvaG5lIGVudHJpZXMgYWJnZWxlaG50LiIgfSA0MDA7IGNv bnRpbnVlIH0KICAgICAgICAkcGwgPSBAKCkKICAgICAgICBmb3JlYWNoICgkZSBpbiBAKCRkLmVu dHJpZXMpKSB7CiAgICAgICAgICBpZiAoJG51bGwgLWVxICRlKSB7IGNvbnRpbnVlIH0KICAgICAg ICAgICRrID0gKChbc3RyaW5nXSRlLmtlbm51bmcpIC1yZXBsYWNlICdbOyNcclxuXSsnLCAnICcp LlRyaW0oKTsgaWYgKCRrLkxlbmd0aCAtZ3QgMzIpIHsgJGsgPSAkay5TdWJzdHJpbmcoMCwgMzIp IH0KICAgICAgICAgICRnID0gKChbc3RyaW5nXSRlLmdyYWQpICAgICAtcmVwbGFjZSAnW1xyXG5d KycsICcgJykuVHJpbSgpOyBpZiAoJGcuTGVuZ3RoIC1ndCA0MCkgeyAkZyA9ICRnLlN1YnN0cmlu ZygwLCA0MCkgfQogICAgICAgICAgJHYgPSAoKFtzdHJpbmddJGUudm9ybmFtZSkgIC1yZXBsYWNl ICdbXHJcbl0rJywgJyAnKS5UcmltKCk7IGlmICgkdi5MZW5ndGggLWd0IDYwKSB7ICR2ID0gJHYu U3Vic3RyaW5nKDAsIDYwKSB9CiAgICAgICAgICAkbiA9ICgoW3N0cmluZ10kZS5uYWNobmFtZSkg LXJlcGxhY2UgJ1tcclxuXSsnLCAnICcpLlRyaW0oKTsgaWYgKCRuLkxlbmd0aCAtZ3QgNjApIHsg JG4gPSAkbi5TdWJzdHJpbmcoMCwgNjApIH0KICAgICAgICAgIGlmICgtbm90ICgkayAtb3IgJGcg LW9yICR2IC1vciAkbikpIHsgY29udGludWUgfQogICAgICAgICAgJHBsICs9IFtvcmRlcmVkXUB7 IGtlbm51bmcgPSAkazsgZ3JhZCA9ICRnOyB2b3JuYW1lID0gJHY7IG5hY2huYW1lID0gJG4gfQog ICAgICAgIH0KICAgICAgICBpZiAoJHBsLkNvdW50IC1lcSAwKSB7ICRqc29uID0gIltdIiB9CiAg ICAgICAgZWxzZWlmICgkcGwuQ291bnQgLWVxIDEpIHsgJGpzb24gPSAiWyIgKyAoJHBsWzBdIHwg Q29udmVydFRvLUpzb24gLURlcHRoIDYgLUNvbXByZXNzKSArICJdIiB9CiAgICAgICAgZWxzZSB7 ICRqc29uID0gJHBsIHwgQ29udmVydFRvLUpzb24gLURlcHRoIDYgLUNvbXByZXNzIH0KICAgICAg ICAkamRpciA9IFNwbGl0LVBhdGggLVBhcmVudCAkZnVsbAogICAgICAgIGlmICgtbm90IChUZXN0 LVBhdGggLUxpdGVyYWxQYXRoICRqZGlyKSkgeyBOZXctSXRlbSAtSXRlbVR5cGUgRGlyZWN0b3J5 IC1QYXRoICRqZGlyIC1Gb3JjZSB8IE91dC1OdWxsIH0KICAgICAgICAjIFNpY2hlcmhlaXRzbmV0 ejogYmVzdGVoZW5kZSBMaXN0ZSB2b3IgZGVtIFVlYmVyc2NocmVpYmVuIHNpY2hlcm4gKHJlY292 ZXJiYXIgYmVpIHZlcnNlaGVudGxpY2hlbSBOLT4wKQogICAgICAgIGlmIChUZXN0LVBhdGggLUxp dGVyYWxQYXRoICRmdWxsKSB7IHRyeSB7IENvcHktSXRlbSAtTGl0ZXJhbFBhdGggJGZ1bGwgIiRm dWxsLmJhayIgLUZvcmNlIH0gY2F0Y2gge30gfQogICAgICAgICR0bXAgPSBHZXQtVG1wUGF0aCAk ZnVsbAogICAgICAgIFtTeXN0ZW0uSU8uRmlsZV06OldyaXRlQWxsVGV4dCgkdG1wLCAkanNvbiwg JHV0ZjgpCiAgICAgICAgUmVwbGFjZS1GaWxlICR0bXAgJGZ1bGwKICAgICAgICBBZGQtQWN0aXZp dHkgInBlcnNvbmFsIiAoInBlcnNvbmFsLmpzb24gKHswfSkiIC1mICRwbC5Db3VudCkKICAgICAg ICAkcmVzcCA9IEdldC1Sb2xlc1BheWxvYWQ7ICRyZXNwLmxpc3QgPSAicGVyc29uYWwiOyAkcmVz cC5jb3VudCA9ICRwbC5Db3VudAogICAgICAgIFNlbmQtSnNvbiAkY3R4ICRyZXNwOyBjb250aW51 ZQogICAgICB9CiAgICAgIGlmICgkd2hpY2ggLW5lICJhZG1pbiIgLWFuZCAkd2hpY2ggLW5lICJy ZWRha3RldXIiKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJVbmJl a2FubnRlIExpc3RlIiB9IDQwMDsgY29udGludWUgfQogICAgICAkZm4gPSBpZiAoJHdoaWNoIC1l cSAiYWRtaW4iKSB7ICRhZG1pbkZpbGUgfSBlbHNlIHsgJHJlZGFrRmlsZSB9CiAgICAgICRjdXJy ZW50ID0gQChSZWFkLVJvbGVQYWlycyAkZm4pCiAgICAgICR0YXJnZXQgPSBAKCkKICAgICAgaWYg KCRkLmVudHJpZXMpIHsKICAgICAgICBmb3JlYWNoICgkZSBpbiAkZC5lbnRyaWVzKSB7ICR0YXJn ZXQgKz0gW29yZGVyZWRdQHsga2VubnVuZyA9IFtzdHJpbmddJGUua2VubnVuZzsgbmFtZSA9IFtz dHJpbmddJGUubmFtZSB9IH0KICAgICAgfSBlbHNlIHsKICAgICAgICAkb3AgPSBbc3RyaW5nXSRk Lm9wOyAka2VubnVuZyA9IChbc3RyaW5nXSRkLmtlbm51bmcpLlRyaW0oKQogICAgICAgIGlmICgo JG9wIC1uZSAiYWRkIiAtYW5kICRvcCAtbmUgInJlbW92ZSIpIC1vciAtbm90ICRrZW5udW5nKSB7 IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJvcC9rZW5udW5nIGZlaGx0 IiB9IDQwMDsgY29udGludWUgfQogICAgICAgIGZvcmVhY2ggKCRlIGluICRjdXJyZW50KSB7IGlm ICgoW3N0cmluZ10kZS5rZW5udW5nKS5Ub0xvd2VyKCkgLW5lICRrZW5udW5nLlRvTG93ZXIoKSkg eyAkdGFyZ2V0ICs9ICRlIH0gfQogICAgICAgIGlmICgkb3AgLWVxICJhZGQiKSB7ICR0YXJnZXQg Kz0gW29yZGVyZWRdQHsga2VubnVuZyA9ICRrZW5udW5nOyBuYW1lID0gW3N0cmluZ10kZC5uYW1l IH0gfQogICAgICB9CiAgICAgICRzZWVuID0gQHt9OyAkY2xlYW4gPSBAKCk7ICRiYWQgPSAkbnVs bAogICAgICBmb3JlYWNoICgkZSBpbiAkdGFyZ2V0KSB7CiAgICAgICAgJGsgPSAoW3N0cmluZ10k ZS5rZW5udW5nKS5UcmltKCkKICAgICAgICAkbiA9ICgoW3N0cmluZ10kZS5uYW1lKSAtcmVwbGFj ZSAnWzsjXHJcbl0rJywgJyAnKS5UcmltKCk7IGlmICgkbi5MZW5ndGggLWd0IDgwKSB7ICRuID0g JG4uU3Vic3RyaW5nKDAsIDgwKSB9CiAgICAgICAgaWYgKC1ub3QgJGspIHsgY29udGludWUgfQog ICAgICAgIGlmICgkayAtbm90bWF0Y2ggJGtlbm51bmdSZSkgeyAkYmFkID0gJGs7IGJyZWFrIH0K ICAgICAgICAkbGsgPSAkay5Ub0xvd2VyKCkKICAgICAgICBpZiAoJHNlZW4uQ29udGFpbnNLZXko JGxrKSkgeyBpZiAoJG4pIHsgJGNsZWFuWyRzZWVuWyRsa11dLm5hbWUgPSAkbiB9OyBjb250aW51 ZSB9CiAgICAgICAgJHNlZW5bJGxrXSA9ICRjbGVhbi5Db3VudAogICAgICAgICRjbGVhbiArPSBb b3JkZXJlZF1AeyBrZW5udW5nID0gJGs7IG5hbWUgPSAkbiB9CiAgICAgIH0KICAgICAgaWYgKCRi YWQpIHsgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0gIlVuZ3VlbHRpZ2Ug S2VubnVuZzogJGJhZCIgfSA0MDA7IGNvbnRpbnVlIH0KICAgICAgaWYgKCR3aGljaCAtZXEgImFk bWluIikgewogICAgICAgIGlmICgkY2xlYW4uQ291bnQgLWVxIDApIHsgU2VuZC1Kc29uICRjdHgg QHsgb2sgPSAkZmFsc2U7IGVycm9yID0gIkRpZSBBZG1pbi1MaXN0ZSBkYXJmIG5pY2h0IGxlZXIg c2Vpbi4iIH0gNDAzOyBjb250aW51ZSB9CiAgICAgICAgJGhhdmUgPSBAKCRjbGVhbiB8IEZvckVh Y2gtT2JqZWN0IHsgKFtzdHJpbmddJF8ua2VubnVuZykuVG9Mb3dlcigpIH0pCiAgICAgICAgaWYg KCgkaGF2ZSAtbm90Y29udGFpbnMgJG1lTG93ZXIpIC1hbmQgKCRlbWVyZ2VuY3lMb3dlciAtbm90 Y29udGFpbnMgJG1lTG93ZXIpKSB7CiAgICAgICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICRm YWxzZTsgZXJyb3IgPSAiRHUga2FubnN0IGRpciBuaWNodCBzZWxic3QgZGllIEFkbWluLVJlY2h0 ZSBlbnR6aWVoZW4uIiB9IDQwMzsgY29udGludWUKICAgICAgICB9CiAgICAgIH0KICAgICAgV3Jp dGUtUm9sZUxpc3QgJGZuICRjbGVhbgogICAgICBBZGQtQWN0aXZpdHkgInJvbGVzIiAoInswfSAo ezF9KSIgLWYgJGZuLCAkY2xlYW4uQ291bnQpCiAgICAgIFdyaXRlLUxvZyAoIlJPTEVTIHswfSAt PiB7MX0gRWludHJhZWdlIiAtZiAkZm4sICRjbGVhbi5Db3VudCkKICAgICAgJHJlc3AgPSBHZXQt Um9sZXNQYXlsb2FkCiAgICAgICRyZXNwLmxpc3QgPSAkd2hpY2g7ICRyZXNwLmNvdW50ID0gJGNs ZWFuLkNvdW50OyAkcmVzcC5iYWNrdXAgPSAiJGZuLmJhayIKICAgICAgU2VuZC1Kc29uICRjdHgg JHJlc3A7IGNvbnRpbnVlCiAgICB9CgogICAgIyAtLS0tIC9hcGkvZm9sZGVyIChWZXJ6ZWljaG5p cyBhdWZsaXN0ZW4sIGZ1ZXIgZGFzIE9yZG5lci1Nb2RhbCkgLS0tLQogICAgaWYgKCRwYXRoIC1l cSAiL2FwaS9mb2xkZXIiIC1hbmQgJHJlcS5IdHRwTWV0aG9kIC1lcSAiR0VUIikgewogICAgICAk ZnVsbCA9IE5vcm1hbGl6ZS1PcGVuUGF0aCAoJHJlcS5RdWVyeVN0cmluZ1sicGF0aCJdKQogICAg ICBpZiAoLW5vdCAoVGVzdC1PcGVuQWxsb3dlZCAkZnVsbCkpIHsgU2VuZC1Kc29uICRjdHggQHsg b2sgPSAkZmFsc2U7IGVycm9yID0gIlBmYWQgbmljaHQgZXJsYXVidC4iIH0gNDAzOyBjb250aW51 ZSB9CiAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRmdWxsIC1QYXRoVHlw ZSBDb250YWluZXIpKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJP cmRuZXIgbmljaHQgZ2VmdW5kZW4uIiB9IDQwNDsgY29udGludWUgfQogICAgICAkZW50cmllcyA9 IEAoKQogICAgICB0cnkgewogICAgICAgIGZvcmVhY2ggKCRpdGVtIGluIChHZXQtQ2hpbGRJdGVt IC1MaXRlcmFsUGF0aCAkZnVsbCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ApKSB7CiAgICAgICAg ICBpZiAoKCRpdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW1N5c3RlbS5JTy5GaWxlQXR0cmlidXRlc106 OkhpZGRlbikgLW9yICgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtTeXN0ZW0uSU8uRmlsZUF0dHJp YnV0ZXNdOjpTeXN0ZW0pKSB7IGNvbnRpbnVlIH0KICAgICAgICAgICRpc0RpciA9ICRpdGVtLlBT SXNDb250YWluZXIKICAgICAgICAgICRlbnRyaWVzICs9IFtvcmRlcmVkXUB7CiAgICAgICAgICAg IG5hbWUgPSAkaXRlbS5OYW1lCiAgICAgICAgICAgIGtpbmQgPSBpZiAoJGlzRGlyKSB7ICJkaXIi IH0gZWxzZSB7ICJmaWxlIiB9CiAgICAgICAgICAgIHNpemUgPSBpZiAoJGlzRGlyKSB7IDAgfSBl bHNlIHsgW2xvbmddJGl0ZW0uTGVuZ3RoIH0KICAgICAgICAgICAgZXh0ICA9IGlmICgkaXNEaXIp IHsgIiIgfSBlbHNlIHsgKCRpdGVtLkV4dGVuc2lvbi5UcmltU3RhcnQoJy4nKSkuVG9Mb3dlcigp IH0KICAgICAgICAgICAgcGF0aCA9ICRpdGVtLkZ1bGxOYW1lCiAgICAgICAgICB9CiAgICAgICAg fQogICAgICB9IGNhdGNoIHt9CiAgICAgICRlbnRyaWVzID0gQCgkZW50cmllcyB8IFNvcnQtT2Jq ZWN0IEB7RXhwcmVzc2lvbj17IGlmICgkXy5raW5kIC1lcSAnZGlyJykgeyAwIH0gZWxzZSB7IDEg fSB9fSwgQHtFeHByZXNzaW9uPXsgJF8ubmFtZSB9fSkKICAgICAgaWYgKCRlbnRyaWVzLkNvdW50 IC1ndCAyMDAwKSB7ICRlbnRyaWVzID0gQCgkZW50cmllc1swLi4xOTk5XSkgfQogICAgICBTZW5k LUpzb24gJGN0eCBAeyBvayA9ICR0cnVlOyBwYXRoID0gJGZ1bGw7IGVudHJpZXMgPSAkZW50cmll cyB9OyBjb250aW51ZQogICAgfQogICAgIyAtLS0tIC9hcGkvb3BlbiAoRGF0ZWkvT3JkbmVyIGxv a2FsIG9lZmZuZW46IE9mZmljZSBiencuIEV4cGxvcmVyKSAtLS0tCiAgICBpZiAoJHBhdGggLWVx ICIvYXBpL29wZW4iIC1hbmQgJHJlcS5IdHRwTWV0aG9kIC1lcSAiUE9TVCIpIHsKICAgICAgJGQg PSAoUmVhZC1Cb2R5ICRjdHgpIHwgQ29udmVydEZyb20tSnNvbgogICAgICAkZnVsbCA9IE5vcm1h bGl6ZS1PcGVuUGF0aCAoW3N0cmluZ10kZC5wYXRoKQogICAgICBpZiAoLW5vdCAkZnVsbCkgeyBT ZW5kLUpzb24gJGN0eCBAeyBvayA9ICRmYWxzZTsgZXJyb3IgPSAiUGZhZCBuaWNodCBlcmxhdWJ0 LiIgfSA0MDM7IGNvbnRpbnVlIH0KICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBh dGggJGZ1bGwpKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJOaWNo dCBnZWZ1bmRlbi4iIH0gNDA0OyBjb250aW51ZSB9CiAgICAgICRpc0RpciA9IFRlc3QtUGF0aCAt TGl0ZXJhbFBhdGggJGZ1bGwgLVBhdGhUeXBlIENvbnRhaW5lcgogICAgICAkaXNFeGVjID0gKC1u b3QgJGlzRGlyKSAtYW5kIChUZXN0LUlzRXhlYyAkZnVsbCkKICAgICAgaWYgKCRpc0V4ZWMpIHsK ICAgICAgICAjIFByb2dyYW1tZSBudXIgYXVzIGVuZyBhbGxvd2xpc3RldGVuIFZlcnplaWNobmlz c2VuIChXaW5kb3dzIGZyYWd0IHp1c2FldHpsaWNoIG5hY2gpCiAgICAgICAgaWYgKC1ub3QgKFRl c3QtRXhlQWxsb3dlZCAkZnVsbCkpIHsgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVy cm9yID0gIlByb2dyYW1tLVN0YXJ0IGZ1ZXIgZGllc2VuIFBmYWQgbmljaHQgZXJsYXVidC4iIH0g NDAzOyBjb250aW51ZSB9CiAgICAgIH0gZWxzZWlmICgkaXNEaXIpIHsKICAgICAgICBpZiAoLW5v dCAoVGVzdC1PcGVuQWxsb3dlZCAkZnVsbCkpIHsgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFs c2U7IGVycm9yID0gIlBmYWQgbmljaHQgZXJsYXVidC4iIH0gNDAzOyBjb250aW51ZSB9CiAgICAg IH0gZWxzZSB7CiAgICAgICAgaWYgKC1ub3QgKFRlc3QtT3BlbkFsbG93ZWQgJGZ1bGwpKSB7IFNl bmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJQZmFkIG5pY2h0IGVybGF1YnQu IiB9IDQwMzsgY29udGludWUgfQogICAgICAgIGlmICgtbm90IChUZXN0LU9wZW5FeHQgJGZ1bGwp KSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJEYXRlaXR5cCBuaWNo dCBlcmxhdWJ0LiIgfSA0MDM7IGNvbnRpbnVlIH0KICAgICAgfQogICAgICB0cnkgewogICAgICAg IGlmICgkaXNEaXIpIHsgU3RhcnQtUHJvY2VzcyAtRmlsZVBhdGggImV4cGxvcmVyLmV4ZSIgLUFy Z3VtZW50TGlzdCAoJyInICsgJGZ1bGwgKyAnIicpIH0KICAgICAgICBlbHNlIHsgU3RhcnQtUHJv Y2VzcyAtRmlsZVBhdGggJGZ1bGwgfQogICAgICAgIFdyaXRlLUxvZyAoIk9QRU4gIiArICRmdWxs KQogICAgICAgIFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJHRydWUgfQogICAgICB9IGNhdGNoIHsK ICAgICAgICBXcml0ZS1Mb2cgKCJPUEVOLUZFSExFUiAiICsgJF8uRXhjZXB0aW9uLk1lc3NhZ2Up CiAgICAgICAgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0gIk9lZmZuZW4g ZmVobGdlc2NobGFnZW4uIiB9IDUwMAogICAgICB9CiAgICAgIGNvbnRpbnVlCiAgICB9CgogICAg IyAtLS0tIC9hcGkvZmlsZXNpemUgKERpYWdub3NlOiBsb2thbGUgRGF0ZWlncm9lc3NlLCBmdWVy IFN5bmNocm9uX3Rlc3QuaHRtbCkgLS0tLQogICAgaWYgKCRwYXRoIC1lcSAiL2FwaS9maWxlc2l6 ZSIgLWFuZCAkcmVxLkh0dHBNZXRob2QgLWVxICJHRVQiKSB7CiAgICAgICRyZWwgPSBbc3RyaW5n XSRyZXEuUXVlcnlTdHJpbmdbInBhdGgiXQogICAgICAkZnVsbCA9IGlmICgkcmVsKSB7IFJlc29s dmUtVGFyZ2V0ICRyZWwgfSBlbHNlIHsgJG51bGwgfQogICAgICBpZiAoLW5vdCAkZnVsbCkgeyBT ZW5kLUpzb24gJGN0eCBAeyBvayA9ICRmYWxzZTsgZXJyb3IgPSAiUGZhZCBuaWNodCBlcmxhdWJ0 LiIgfSA0MDM7IGNvbnRpbnVlIH0KICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGZ1 bGwgLVBhdGhUeXBlIExlYWYpIHsKICAgICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVl OyBleGlzdHMgPSAkdHJ1ZTsgc2l6ZSA9IFtsb25nXSgoR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRm dWxsKS5MZW5ndGgpIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBTZW5kLUpzb24gJGN0eCBAeyBv ayA9ICR0cnVlOyBleGlzdHMgPSAkZmFsc2U7IHNpemUgPSAtMSB9CiAgICAgIH0KICAgICAgY29u dGludWUKICAgIH0KCiAgICAjIC0tLS0gL2FwaS90cmVlIChEaWFnbm9zZTogVmVyemVpY2huaXMg cmVrdXJzaXYgbWl0IEdyb2Vzc2VuLCBmdWVyIFN5bmNocm9uX3Rlc3QuaHRtbCkgLS0tLQogICAg aWYgKCRwYXRoIC1lcSAiL2FwaS90cmVlIiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIkdFVCIp IHsKICAgICAgJHJlbERpciA9IFtzdHJpbmddJHJlcS5RdWVyeVN0cmluZ1siZGlyIl07IGlmICgt bm90ICRyZWxEaXIpIHsgJHJlbERpciA9ICIuIiB9CiAgICAgICRiYXNlID0gUmVzb2x2ZS1UYXJn ZXQgJHJlbERpcgogICAgICBpZiAoLW5vdCAkYmFzZSkgeyBTZW5kLUpzb24gJGN0eCBAeyBvayA9 ICRmYWxzZTsgZXJyb3IgPSAiUGZhZCBuaWNodCBlcmxhdWJ0LiIgfSA0MDM7IGNvbnRpbnVlIH0K ICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGJhc2UgLVBhdGhUeXBlIENv bnRhaW5lcikpIHsgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0gIk9yZG5l ciBuaWNodCBnZWZ1bmRlbi4iIH0gNDA0OyBjb250aW51ZSB9CiAgICAgICRyb290RnVsbCA9IFtT eXN0ZW0uSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRQb3J0YWxSb290KQogICAgICAkc2tpcCA9IEAo Ii5naXQiLCAiZG9rdW1lbnRlIiwgIl9hcmNoaXYiLCAibWVkaWEtdHJhbnNmZXIiLCAidGlueW1j ZS10cmFuc2ZlciIsICJzdGF0ZSIsICJsb2dzIiwgIl9fcHljYWNoZV9fIiwgIm5vZGVfbW9kdWxl cyIsICJ0ZXN0cyIsICIudnMiLCAiLmlkZWEiKQogICAgICAkaXRlbXMgPSBAKCkKICAgICAgdHJ5 IHsKICAgICAgICBmb3JlYWNoICgkZiBpbiAoR2V0LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGggJGJh c2UgLVJlY3Vyc2UgLUZpbGUgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlKSkg ewogICAgICAgICAgJHJlbCA9ICRmLkZ1bGxOYW1lLlN1YnN0cmluZygkcm9vdEZ1bGwuTGVuZ3Ro KS5UcmltU3RhcnQoJ1wnKS5SZXBsYWNlKCdcJywgJy8nKQogICAgICAgICAgJHNraXBJdCA9ICRm YWxzZQogICAgICAgICAgZm9yZWFjaCAoJHMgaW4gJHJlbC5TcGxpdCgnLycpKSB7IGlmICgkc2tp cCAtY29udGFpbnMgJHMpIHsgJHNraXBJdCA9ICR0cnVlOyBicmVhayB9IH0KICAgICAgICAgIGlm ICgtbm90ICRza2lwSXQpIHsgJGl0ZW1zICs9IFtvcmRlcmVkXUB7IHBhdGggPSAkcmVsOyBzaXpl ID0gW2xvbmddJGYuTGVuZ3RoIH0gfQogICAgICAgIH0KICAgICAgfSBjYXRjaCB7fQogICAgICBp ZiAoJGl0ZW1zLkNvdW50IC1ndCA2MDAwKSB7ICRpdGVtcyA9IEAoJGl0ZW1zWzAuLjU5OTldKSB9 CiAgICAgIFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJHRydWU7IGRpciA9ICRyZWxEaXI7IGZpbGVz ID0gJGl0ZW1zIH07IGNvbnRpbnVlCiAgICB9CgogICAgIyAtLS0tIC9hcGkvYXJ6dGxpc3RlIChS ZWdpc3RlciAiQXJ6dCBhbmZvcmRlcm4iOiBsYWRlbikgLS0tLQogICAgaWYgKCRwYXRoIC1lcSAi L2FwaS9hcnp0bGlzdGUiIC1hbmQgJHJlcS5IdHRwTWV0aG9kIC1lcSAiR0VUIikgewogICAgICAk ZnVsbCA9IFJlc29sdmUtVGFyZ2V0ICJkb2t1bWVudGUvanNvbi9hcnp0bGlzdGUuanNvbiIKICAg ICAgJGFyciA9ICJbXSIKICAgICAgaWYgKCRmdWxsIC1hbmQgKFRlc3QtUGF0aCAtTGl0ZXJhbFBh dGggJGZ1bGwpKSB7IHRyeSB7ICRhcnIgPSBbU3lzdGVtLklPLkZpbGVdOjpSZWFkQWxsVGV4dCgk ZnVsbCwgW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOCkgfSBjYXRjaCB7fSB9CiAgICAgIGlm ICgtbm90ICRhcnIgLW9yIC1ub3QgJGFyci5UcmltKCkpIHsgJGFyciA9ICJbXSIgfQogICAgICAk Ym9keVR4dCA9ICd7Im9rIjp0cnVlLCJlbnRyaWVzIjonICsgJGFyciArICd9JwogICAgICAkYiA9 IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjguR2V0Qnl0ZXMoJGJvZHlUeHQpCiAgICAgICRj dHguUmVzcG9uc2UuQ29udGVudFR5cGUgPSAiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYt OCIKICAgICAgJGN0eC5SZXNwb25zZS5PdXRwdXRTdHJlYW0uV3JpdGUoJGIsIDAsICRiLkxlbmd0 aCk7ICRjdHguUmVzcG9uc2UuT3V0cHV0U3RyZWFtLkNsb3NlKCkKICAgICAgY29udGludWUKICAg IH0KICAgICMgLS0tLSAvYXBpL2FyenRsaXN0ZSAoc3BlaWNoZXJuOiB1cHNlcnQvZGVsZXRlL3By dW5lL3JlcGxhY2UgLT4gU2VydmVyIG1lcmdlZCBqZSBaZWlsZSkgLS0tLQogICAgaWYgKCRwYXRo IC1lcSAiL2FwaS9hcnp0bGlzdGUiIC1hbmQgJHJlcS5IdHRwTWV0aG9kIC1lcSAiUE9TVCIpIHsK ICAgICAgJGZ1bGwgPSBSZXNvbHZlLVRhcmdldCAiZG9rdW1lbnRlL2pzb24vYXJ6dGxpc3RlLmpz b24iCiAgICAgIGlmICgtbm90ICRmdWxsKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNl OyBlcnJvciA9ICJQZmFkIG5pY2h0IGVybGF1YnQuIiB9IDQwMzsgY29udGludWUgfQogICAgICAk ZCA9IChSZWFkLUJvZHkgJGN0eCkgfCBDb252ZXJ0RnJvbS1Kc29uCiAgICAgICRvcCA9IFtzdHJp bmddJGQub3AKICAgICAgJHJhd2N1ciA9ICIiCiAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQ YXRoICRmdWxsKSB7IHRyeSB7ICRyYXdjdXIgPSBHZXQtQ29udGVudCAkZnVsbCAtUmF3IC1FbmNv ZGluZyBVVEY4IH0gY2F0Y2gge30gfQogICAgICAkY3VyID0gQCgpCiAgICAgIGlmICgkcmF3Y3Vy IC1hbmQgJHJhd2N1ci5UcmltKCkpIHsKICAgICAgICB0cnkgeyAkY3VyID0gQCgkcmF3Y3VyIHwg Q29udmVydEZyb20tSnNvbikgfQogICAgICAgIGNhdGNoIHsKICAgICAgICAgICMgQmVzdGVoZW5k ZSBMaXN0ZSBuaWNodCBsZXNiYXIgLT4gTklFTUFMUyB1ZWJlcnNjaHJlaWJlbiAoc29uc3QgVG90 YWx2ZXJsdXN0KQogICAgICAgICAgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9y ID0gIkJlc3RlaGVuZGUgTGlzdGUgbmljaHQgbGVzYmFyIC0gU3BlaWNoZXJuIGFiZ2Vicm9jaGVu LCBuaWNodHMgZ2VhZW5kZXJ0LiIgfSA1MDA7IGNvbnRpbnVlCiAgICAgICAgfQogICAgICB9CiAg ICAgICRjdXIgPSBAKCRjdXIgfCBXaGVyZS1PYmplY3QgeyAkXyAtbmUgJG51bGwgfSkKICAgICAg JGJlZm9yZSA9ICRjdXIuQ291bnQKICAgICAgaWYgKCRvcCAtZXEgInVwc2VydCIpIHsKICAgICAg ICAkZSA9ICRkLmVudHJ5CiAgICAgICAgaWYgKC1ub3QgJGUgLW9yIC1ub3QgJGUuaWQpIHsgU2Vu ZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0gImVudHJ5L2lkIGZlaGx0IiB9IDQw MDsgY29udGludWUgfQogICAgICAgICRpZCA9IFtzdHJpbmddJGUuaWQ7ICRvdXQgPSBAKCk7ICRm b3VuZCA9ICRmYWxzZQogICAgICAgIGZvcmVhY2ggKCR4IGluICRjdXIpIHsgaWYgKChbc3RyaW5n XSR4LmlkKSAtZXEgJGlkKSB7ICRvdXQgKz0gJGU7ICRmb3VuZCA9ICR0cnVlIH0gZWxzZSB7ICRv dXQgKz0gJHggfSB9CiAgICAgICAgaWYgKC1ub3QgJGZvdW5kKSB7ICRvdXQgKz0gJGUgfQogICAg ICAgICRjdXIgPSAkb3V0CiAgICAgIH0gZWxzZWlmICgkb3AgLWVxICJkZWxldGUiKSB7CiAgICAg ICAgJGlkID0gW3N0cmluZ10kZC5pZAogICAgICAgIGlmICgtbm90ICRpZCkgeyBTZW5kLUpzb24g JGN0eCBAeyBvayA9ICRmYWxzZTsgZXJyb3IgPSAiTG9lc2NoZW4gb2huZSBpZCBhYmdlbGVobnQu IiB9IDQwMDsgY29udGludWUgfQogICAgICAgICRjdXIgPSBAKCRjdXIgfCBXaGVyZS1PYmplY3Qg eyAoW3N0cmluZ10kXy5pZCkgLW5lICRpZCB9KQogICAgICAgICMgU0lDSEVSSEVJVFNORVRaOiBl aW4gZWluemVsbmVzIExvZXNjaGVuIGRhcmYgTklFIG1laHIgYWxzIGVpbmUgWmVpbGUgZW50ZmVy bmVuCiAgICAgICAgaWYgKCgkYmVmb3JlIC0gJGN1ci5Db3VudCkgLWd0IDEpIHsgU2VuZC1Kc29u ICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0gIlNpY2hlcmhlaXRzbmV0ejogTG9lc2NoZW4g aGFldHRlIG1laHJlcmUgWmVpbGVuIGVudGZlcm50IC0gYWJnZWJyb2NoZW4sIG5pY2h0cyBnZWFl bmRlcnQuIiB9IDQwOTsgY29udGludWUgfQogICAgICB9IGVsc2VpZiAoJG9wIC1lcSAicHJ1bmUi KSB7CiAgICAgICAgJGN1dG9mZiA9IFtzdHJpbmddJGQuY3V0b2ZmCiAgICAgICAgaWYgKCRjdXRv ZmYpIHsgJGN1ciA9IEAoJGN1ciB8IFdoZXJlLU9iamVjdCB7IChbc3RyaW5nXSRfLnRzKSAtZ2Ug JGN1dG9mZiB9KSB9CiAgICAgIH0gZWxzZWlmICgkb3AgLWVxICJyZXBsYWNlIikgewogICAgICAg IGlmICgtbm90ICRkLmVudHJpZXMpIHsgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVy cm9yID0gInJlcGxhY2Ugb2huZSBlbnRyaWVzIGFiZ2VsZWhudC4iIH0gNDAwOyBjb250aW51ZSB9 CiAgICAgICAgJGN1ciA9IEAoJGQuZW50cmllcyB8IFdoZXJlLU9iamVjdCB7ICRfIC1uZSAkbnVs bCB9KQogICAgICB9IGVsc2UgewogICAgICAgIFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNl OyBlcnJvciA9ICJ1bmJla2FubnRlIE9wZXJhdGlvbiIgfSA0MDA7IGNvbnRpbnVlCiAgICAgIH0K ICAgICAgaWYgKCRjdXIuQ291bnQgLWVxIDApIHsgJGpzb24gPSAiW10iIH0KICAgICAgZWxzZWlm ICgkY3VyLkNvdW50IC1lcSAxKSB7ICRqc29uID0gIlsiICsgKCRjdXJbMF0gfCBDb252ZXJ0VG8t SnNvbiAtRGVwdGggMTIgLUNvbXByZXNzKSArICJdIiB9CiAgICAgIGVsc2UgeyAkanNvbiA9ICRj dXIgfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggMTIgLUNvbXByZXNzIH0KICAgICAgJGpkaXIgPSBT cGxpdC1QYXRoIC1QYXJlbnQgJGZ1bGwKICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJh bFBhdGggJGpkaXIpKSB7IE5ldy1JdGVtIC1JdGVtVHlwZSBEaXJlY3RvcnkgLVBhdGggJGpkaXIg LUZvcmNlIHwgT3V0LU51bGwgfQogICAgICAkdG1wID0gR2V0LVRtcFBhdGggJGZ1bGwKICAgICAg W1N5c3RlbS5JTy5GaWxlXTo6V3JpdGVBbGxUZXh0KCR0bXAsICRqc29uLCAkdXRmOCkKICAgICAg UmVwbGFjZS1GaWxlICR0bXAgJGZ1bGwKICAgICAgJGJvZHlUeHQgPSAneyJvayI6dHJ1ZSwiZW50 cmllcyI6JyArICRqc29uICsgJ30nCiAgICAgICRiID0gW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6 VVRGOC5HZXRCeXRlcygkYm9keVR4dCkKICAgICAgJGN0eC5SZXNwb25zZS5Db250ZW50VHlwZSA9 ICJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04IgogICAgICAkY3R4LlJlc3BvbnNlLk91 dHB1dFN0cmVhbS5Xcml0ZSgkYiwgMCwgJGIuTGVuZ3RoKTsgJGN0eC5SZXNwb25zZS5PdXRwdXRT dHJlYW0uQ2xvc2UoKQogICAgICBjb250aW51ZQogICAgfQogICAgIyAtLS0tIC9hcGkvYXJ6dGJh Y2t1cCAoQ1NWIG5hY2ggZG9rdW1lbnRlL0RhdGVuc2ljaGVydW5nIHNjaHJlaWJlbikgLS0tLQog ICAgaWYgKCRwYXRoIC1lcSAiL2FwaS9hcnp0YmFja3VwIiAtYW5kICRyZXEuSHR0cE1ldGhvZCAt ZXEgIlBPU1QiKSB7CiAgICAgICRkID0gKFJlYWQtQm9keSAkY3R4KSB8IENvbnZlcnRGcm9tLUpz b24KICAgICAgJGNzdiA9IFtzdHJpbmddJGQuY3N2CiAgICAgIGlmICgtbm90ICRjc3YpIHsgU2Vu ZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0gIkxlZXJlciBJbmhhbHQuIiB9IDQw MDsgY29udGludWUgfQogICAgICAkYmRpciA9IFJlc29sdmUtVGFyZ2V0ICJkb2t1bWVudGUvRGF0 ZW5zaWNoZXJ1bmciCiAgICAgIGlmICgtbm90ICRiZGlyKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9r ID0gJGZhbHNlOyBlcnJvciA9ICJQZmFkIG5pY2h0IGVybGF1YnQuIiB9IDQwMzsgY29udGludWUg fQogICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkYmRpcikpIHsgTmV3LUl0 ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0aCAkYmRpciAtRm9yY2UgfCBPdXQtTnVsbCB9CiAg ICAgICRzdGFtcCA9IChHZXQtRGF0ZSkuVG9TdHJpbmcoInl5eXlNTWRkX0hIbW1zcyIpCiAgICAg ICRmbmFtZSA9ICJBcnp0YW5mb3JkZXJ1bmdlbl8kc3RhbXAuY3N2IgogICAgICBbU3lzdGVtLklP LkZpbGVdOjpXcml0ZUFsbFRleHQoKEpvaW4tUGF0aCAkYmRpciAkZm5hbWUpLCAkY3N2LCAkdXRm OCkKICAgICAgV3JpdGUtTG9nICgiQVJaVEJBQ0tVUCAiICsgJGZuYW1lKQogICAgICBTZW5kLUpz b24gJGN0eCBAeyBvayA9ICR0cnVlOyBmaWxlID0gJGZuYW1lIH07IGNvbnRpbnVlCiAgICB9Cgog ICAgIyAtLS0tIC9hcGkvZHJhZnQgKEF1dG9zYXZlLVp3aXNjaGVuc3RhbmQpIC0tLS0KICAgIGlm ICgkcGF0aCAtZXEgIi9hcGkvZHJhZnQiIC1hbmQgJHJlcS5IdHRwTWV0aG9kIC1lcSAiUE9TVCIp IHsKICAgICAgJGQgPSAoUmVhZC1Cb2R5ICRjdHgpIHwgQ29udmVydEZyb20tSnNvbgogICAgICBp ZiAoLW5vdCAkZC5raW5kIC1vciAtbm90ICRkLnRhcmdldElkKSB7IHRocm93ICJraW5kL3Rhcmdl dElkIGZlaGx0IiB9CiAgICAgICRyZWMgPSBbb3JkZXJlZF1AeyBraW5kID0gW3N0cmluZ10kZC5r aW5kOyB0YXJnZXRJZCA9IFtzdHJpbmddJGQudGFyZ2V0SWQ7IGF1dGhvciA9ICRtZTsgbmFtZSA9 ICRtZU5hbWU7IHBheWxvYWQgPSAkZC5wYXlsb2FkOyBiYXNlUmV2ID0gJGQuYmFzZVJldjsgdXBk YXRlZEF0ID0gKE5vdy1Jc28pIH0KICAgICAgV3JpdGUtU3RhdGVKc29uIChKb2luLVBhdGggJGRy YWZ0c0RpciAoR2V0LVN0YXRlTmFtZSAkZC5raW5kICRkLnRhcmdldElkKSkgJHJlYwogICAgICBT ZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVlIH07IGNvbnRpbnVlCiAgICB9CiAgICBpZiAoJHBh dGggLWVxICIvYXBpL2RyYWZ0IiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIkRFTEVURSIpIHsK ICAgICAgJHAgPSBKb2luLVBhdGggJGRyYWZ0c0RpciAoR2V0LVN0YXRlTmFtZSAkcmVxLlF1ZXJ5 U3RyaW5nWyJraW5kIl0gJHJlcS5RdWVyeVN0cmluZ1sidGFyZ2V0SWQiXSkKICAgICAgaWYgKFRl c3QtUGF0aCAkcCkgeyBSZW1vdmUtSXRlbSAkcCAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5 Q29udGludWUgfQogICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVlIH07IGNvbnRpbnVl CiAgICB9CgogICAgIyAtLS0tIC9hcGkvbG9jayAoUHJhZXNlbno6ICJ3aXJkIGdlcmFkZSBiZWFy YmVpdGV0IikgLS0tLQogICAgaWYgKCRwYXRoIC1lcSAiL2FwaS9sb2NrIiAtYW5kICRyZXEuSHR0 cE1ldGhvZCAtZXEgIlBPU1QiKSB7CiAgICAgICRkID0gKFJlYWQtQm9keSAkY3R4KSB8IENvbnZl cnRGcm9tLUpzb24KICAgICAgaWYgKC1ub3QgJGQua2luZCAtb3IgLW5vdCAkZC50YXJnZXRJZCkg eyB0aHJvdyAia2luZC90YXJnZXRJZCBmZWhsdCIgfQogICAgICAkcmVjID0gW29yZGVyZWRdQHsg a2luZCA9IFtzdHJpbmddJGQua2luZDsgdGFyZ2V0SWQgPSBbc3RyaW5nXSRkLnRhcmdldElkOyBh dXRob3IgPSAkbWU7IG5hbWUgPSAkbWVOYW1lOyBsYWJlbCA9IFtzdHJpbmddJGQubGFiZWw7IHRz ID0gKE5vdy1Jc28pIH0KICAgICAgV3JpdGUtU3RhdGVKc29uIChKb2luLVBhdGggJGxvY2tzRGly IChHZXQtU3RhdGVOYW1lICRkLmtpbmQgJGQudGFyZ2V0SWQpKSAkcmVjCiAgICAgIFNlbmQtSnNv biAkY3R4IEB7IG9rID0gJHRydWUgfTsgY29udGludWUKICAgIH0KICAgIGlmICgkcGF0aCAtZXEg Ii9hcGkvbG9jayIgLWFuZCAkcmVxLkh0dHBNZXRob2QgLWVxICJERUxFVEUiKSB7CiAgICAgICRw ID0gSm9pbi1QYXRoICRsb2Nrc0RpciAoR2V0LVN0YXRlTmFtZSAkcmVxLlF1ZXJ5U3RyaW5nWyJr aW5kIl0gJHJlcS5RdWVyeVN0cmluZ1sidGFyZ2V0SWQiXSkKICAgICAgaWYgKFRlc3QtUGF0aCAk cCkgeyBSZW1vdmUtSXRlbSAkcCAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUg fQogICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVlIH07IGNvbnRpbnVlCiAgICB9Cgog ICAgIyAtLS0tIHVuYmVrYW5udGUgL2FwaS8qIHNhdWJlciBtaXQgNDA0IGJlYW50d29ydGVuIChO SUNIVCBpbiBkaWUgc3RhdGlzY2hlIEF1c2xpZWZlcnVuZyBmYWxsZW4pIC0tLS0KICAgIGlmICgk cGF0aC5TdGFydHNXaXRoKCIvYXBpLyIpKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNl OyBlcnJvciA9ICJVbmJla2FubnRlciBFbmRwb2ludCIgfSA0MDQ7IGNvbnRpbnVlIH0KCiAgICAj IC0tLS0gc3RhdGlzY2hlIEF1c2xpZWZlcnVuZyAtLS0tCiAgICBpZiAoJHJlcS5IdHRwTWV0aG9k IC1lcSAiR0VUIikgewogICAgICAkcmVsID0gW3VyaV06OlVuZXNjYXBlRGF0YVN0cmluZygkcGF0 aC5UcmltU3RhcnQoIi8iKSkKICAgICAgaWYgKC1ub3QgJHJlbCkgeyAkcmVsID0gImluZGV4Lmh0 bWwiIH0KICAgICAgJGZ1bGwgPSBSZXNvbHZlLVRhcmdldCAkcmVsCiAgICAgIGlmICgtbm90ICRm dWxsKSB7ICRjdHguUmVzcG9uc2UuU3RhdHVzQ29kZSA9IDQwMzsgJGN0eC5SZXNwb25zZS5DbG9z ZSgpOyBjb250aW51ZSB9CiAgICAgIGlmIChUZXN0LVBhdGggJGZ1bGwgLVBhdGhUeXBlIENvbnRh aW5lcikgeyAkZnVsbCA9IEpvaW4tUGF0aCAkZnVsbCAiaW5kZXguaHRtbCIgfQogICAgICBTZW5k LUZpbGUgJGN0eCAkZnVsbDsgY29udGludWUKICAgIH0KCiAgICAkY3R4LlJlc3BvbnNlLlN0YXR1 c0NvZGUgPSA0MDU7ICRjdHguUmVzcG9uc2UuQ2xvc2UoKQogIH0gY2F0Y2ggewogICAgIyBHZW5l cmlzY2hlIDUwMCBvaG5lIEV4Y2VwdGlvbi1EZXRhaWxzIGFuIGRlbiBDbGllbnQgKGtlaW4gSW5m by1MZWFrKTsgRGV0YWlsIG51ciBpbnMgTG9nLgogICAgdHJ5IHsgU2VuZC1Kc29uICRjdHggQHsg b2sgPSAkZmFsc2U7IGVycm9yID0gIkludGVybmVyIEZlaGxlciIgfSA1MDAgfSBjYXRjaCB7fQog ICAgV3JpdGUtTG9nICgiRkVITEVSICIgKyAkXy5FeGNlcHRpb24uTWVzc2FnZSkKICB9Cn0K ### FILE: index.html | 14775 PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImRlIiBkYXRhLXRoZW1lPSJsaWdodCI+CjxoZWFk Pgo8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3 aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cjx0aXRsZT5Qb3J0YWwgVW5pb24g wrcgTGVpdHN0ZWxsZS1JbmZvcm1hdGlvbnNwb3J0YWw8L3RpdGxlPgo8bGluayByZWw9InN0eWxl c2hlZXQiIGhyZWY9ImFzc2V0cy9jc3MvcG9ydGFsLmNzcz92PXAxOS0zIj4KPC9oZWFkPgo8Ym9k eT4KPGRpdiBjbGFzcz0iYXBwIj4KCiAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 IFRPUEJBUiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogIDxoZWFkZXIgY2xhc3M9 InRvcGJhciI+CiAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ0biBtZW51LXRvZ2dsZSIgaWQ9Im1l bnUtbCIgdGl0bGU9Ik5hdmlnYXRpb24iIGFyaWEtbGFiZWw9Ik5hdmlnYXRpb24iPjwvYnV0dG9u PgogICAgPGRpdiBjbGFzcz0iYnJhbmQiPgogICAgICA8ZGl2IGNsYXNzPSJsb2dvLXNsb3QiIGlk PSJsb2dvLXNsb3QiIHRpdGxlPSJMb2dvIGFibGVnZW4gb2RlciBrbGlja2VuIiBkYXRhLXRrZXk9 InRvcGJhci5sb2dvSGludCIgZGF0YS10YXR0cj0idGl0bGUiIGRhdGEtdGxhYmVsPSJUb3BiYXI6 IExvZ28tVG9vbHRpcCI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImJyYW5kLW5hbWUiPjxiPlBv cnRhbCBVbmlvbjwvYj48c3Bhbj5MZWl0c3RlbGxlIERvcnRtdW5kPC9zcGFuPjwvZGl2PgogICAg PC9kaXY+CiAgICA8bmF2IGNsYXNzPSJhei1yYWlsIiBpZD0iYXotcmFpbCIgYXJpYS1sYWJlbD0i U3RpY2h3b3J0cmVnaXN0ZXIgQeKAk1oiPjwvbmF2PgogICAgPGRpdiBjbGFzcz0ic2VhcmNoIj4K ICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLWJveCI+CiAgICAgICAgPHNwYW4gaWQ9InNlYXJjaC1p YyI+PC9zcGFuPgogICAgICAgIDxpbnB1dCBpZD0ic2VhcmNoLWlucHV0IiB0eXBlPSJ0ZXh0IiBw bGFjZWhvbGRlcj0iU3VjaGVuIOKAlCBEb2t1bWVudGUsIEFydGlrZWwsIExpbmtzLCBNZWxkdW5n ZW7igKYiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhcmlhLWxhYmVsPSJHbG9iYWxlIFN1Y2hlIiBkYXRh LXRrZXk9InNlYXJjaC5wbGFjZWhvbGRlciIgZGF0YS10YXR0cj0icGxhY2Vob2xkZXIiIGRhdGEt dGxhYmVsPSJUb3BiYXI6IFN1Y2hmZWxkLVBsYXR6aGFsdGVyIj4KICAgICAgICA8c3BhbiBjbGFz cz0ia2JkIiBkYXRhLXRrZXk9InRvcGJhci5rYmQiIGRhdGEtdGxhYmVsPSJUb3BiYXI6IFRhc3Rl bmvDvHJ6ZWwiPlN0cmcgSzwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNt ZC1yZXN1bHRzIiBpZD0iY21kLXJlc3VsdHMiIGhpZGRlbj48L2Rpdj4KICAgIDwvZGl2PgogICAg PGRpdiBjbGFzcz0idG9wLWFjdGlvbnMiPgogICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ0biBo aWRlLXNtIiBpZD0iY29sbGFwc2UtbCIgdGl0bGU9IkxpbmtlIFNwYWx0ZSIgZGF0YS10a2V5PSJ0 b3BiYXIuY29sbGFwc2VMIiBkYXRhLXRhdHRyPSJ0aXRsZSIgZGF0YS10bGFiZWw9IlRvcGJhcjog S25vcGYgbGlua2UgU3BhbHRlIj48L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1i dG4gaGlkZS1zbSIgaWQ9ImNvbGxhcHNlLXIiIHRpdGxlPSJSZWNodGUgU3BhbHRlIiBkYXRhLXRr ZXk9InRvcGJhci5jb2xsYXBzZVIiIGRhdGEtdGF0dHI9InRpdGxlIiBkYXRhLXRsYWJlbD0iVG9w YmFyOiBLbm9wZiByZWNodGUgU3BhbHRlIj48L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0i cGlsbC1idG4gYmFvLWVudGVyLWJ0biIgaWQ9ImJhby1lbnRlciIgdGl0bGU9IkluIGRpZSBCQU8g c3ByaW5nZW4iPjxzcGFuIGlkPSJiYW8taWMiPjwvc3Bhbj48c3BhbiBjbGFzcz0iaGlkZS1zbSI+ QkFPPC9zcGFuPjwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJwaWxsLWJ0biIgaWQ9ImVk aXQtdG9nZ2xlIiB0aXRsZT0iRGF0ZW5wZmxlZ2UiPjxzcGFuIGlkPSJlZGl0LWljIj48L3NwYW4+ PHNwYW4gY2xhc3M9ImhpZGUtc20iIGRhdGEtdGtleT0idG9wYmFyLmVkaXQiIGRhdGEtdGxhYmVs PSJUb3BiYXI6IEtub3BmIERhdGVucGZsZWdlIj5EYXRlbnBmbGVnZTwvc3Bhbj48L2J1dHRvbj4K ICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idG4gc3RhZmYtb25seSIgaWQ9ImNvbGxhYi1idG4i IHRpdGxlPSJBa3Rpdml0w6R0ICZhbXA7IFp3aXNjaGVuc3TDpG5kZSI+PC9idXR0b24+CiAgICAg IDxidXR0b24gY2xhc3M9Imljb24tYnRuIGFkbWluLW9ubHkgYWx3YXlzIiBpZD0iYWRtaW4taHVi LWJ0biIgdGl0bGU9IkFkbWluLVdlcmt6ZXVnZSIgZGF0YS10a2V5PSJ0b3BiYXIuYWRtaW4iIGRh dGEtdGF0dHI9InRpdGxlIiBkYXRhLXRsYWJlbD0iVG9wYmFyOiBLbm9wZiBBZG1pbi1XZXJremV1 Z2UiPjwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ0biIgaWQ9InRoZW1lLXRv Z2dsZSIgdGl0bGU9IkRlc2lnbiI+PC9idXR0b24+CiAgICAgIDxidXR0b24gY2xhc3M9Imljb24t YnRuIG1lbnUtdG9nZ2xlIiBpZD0ibWVudS1yIiB0aXRsZT0iU2NobmVsbHp1Z3JpZmZlIiBhcmlh LWxhYmVsPSJTY2huZWxsenVncmlmZmUiPjwvYnV0dG9uPgogICAgPC9kaXY+CiAgPC9oZWFkZXI+ CgogIDwhLS0gPT09PT09PT09PT09PT09PT09PT09IERBVEVOUEZMRUdFLVNUQVRVUyA9PT09PT09 PT09PT09PT09PT09PT0gLS0+CiAgPCEtLSBOdXIgaW0gUGZsZWdlLU1vZHVzIHNpY2h0YmFyIChi b2R5LmVkaXRpbmcpOyBMZXNlciBzZWhlbiBlcyBuaWUuIFAudXBkYXRlQmFubmVyKCkgZnVlbGx0 ICNkcmFmdC1pbmZvLiAtLT4KICA8ZGl2IGNsYXNzPSJlZGl0LWJhbm5lciI+CiAgICA8c3BhbiBj bGFzcz0idGFnIiBkYXRhLXRrZXk9ImJhbm5lci5lZGl0IiBkYXRhLXRsYWJlbD0iQmFubmVyOiBE YXRlbnBmbGVnZSBha3RpdiI+RGF0ZW5wZmxlZ2UgYWt0aXY8L3NwYW4+CiAgICA8c3BhbiBjbGFz cz0iZHJhZnQtaW5mbyIgaWQ9ImRyYWZ0LWluZm8iPjwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJz cGFjZXIiPjwvc3Bhbj4KICA8L2Rpdj4KCiAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09IFNIRUxMID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgPGRpdiBjbGFzcz0i c2hlbGwiIGlkPSJzaGVsbCI+CiAgICA8YXNpZGUgY2xhc3M9InJhaWwgcmFpbC1sIj4KICAgICAg PGRpdiBjbGFzcz0icmFpbC1oZWFkIj48aDIgZGF0YS10a2V5PSJyYWlsLm5hdiIgZGF0YS10bGFi ZWw9IsOcYmVyc2NocmlmdCBsaW5rZSBTcGFsdGUiPk5hdmlnYXRpb248L2gyPjxidXR0b24gdHlw ZT0iYnV0dG9uIiBjbGFzcz0iYWRkLWJ0biBlZGl0LW9ubHkiIGlkPSJhcnQtYWRkIj48c3BhbiBp ZD0iYXJ0YWRkLWljIj48L3NwYW4+PHNwYW4gZGF0YS10a2V5PSJyYWlsLmFkZEFydGljbGUiIGRh dGEtdGxhYmVsPSJLbm9wZiBBcnRpa2VsIj5BcnRpa2VsPC9zcGFuPjwvYnV0dG9uPjwvZGl2Pgog ICAgICA8ZGl2IGNsYXNzPSJyYWlsLXNjcm9sbCIgaWQ9InNpZGViYXIiPjwvZGl2PgogICAgICA8 ZGl2IGNsYXNzPSJyYWlsLWZvb3QiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icmFpbC1m b290LWxpbmsiIGlkPSJpbXByZXNzdW0tbGluayI+SW1wcmVzc3VtICZhbXA7IFN1cHBvcnQ8L2J1 dHRvbj48L2Rpdj4KICAgIDwvYXNpZGU+CgogICAgPG1haW4gY2xhc3M9ImNlbnRlciI+CiAgICAg IDxkaXYgY2xhc3M9ImZlZWQtYWN0aW9uYmFyIj48YnV0dG9uIGNsYXNzPSJidG4gcHJpbWFyeSIg aWQ9ImZlZWQtYWRkIj48c3BhbiBpZD0iYWRkLWljIj48L3NwYW4+PHNwYW4gZGF0YS10a2V5PSJm ZWVkLmFkZEJ0biIgZGF0YS10bGFiZWw9Iktub3BmIE1lbGR1bmciPk1lbGR1bmc8L3NwYW4+PC9i dXR0b24+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZlZWQtc2Nyb2xsIiBpZD0iZmVlZC1zY3Jv bGwiPjxkaXYgaWQ9ImZlZWQiPjwvZGl2PjwvZGl2PgoKICAgICAgPCEtLSBEb2t1bWVudC0vQXJ0 aWtlbC1BbnNpY2h0IC0tPgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LXZpZXciPgogICAgICAg IDxkaXYgY2xhc3M9ImN2LWJhciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gZ2hvc3Qi IGlkPSJjdi1iYWNrIj48c3BhbiBpZD0iYmFjay1pYyI+PC9zcGFuPjxzcGFuIGRhdGEtdGtleT0i ZG9jLmJhY2siIGRhdGEtdGxhYmVsPSJEb2t1OiBadXLDvGNrLUtub3BmIj5adXLDvGNrIHp1ciDD nGJlcnNpY2h0PC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgPHNwYW4gY2xhc3M9InBhdGggbW9u byIgaWQ9ImN2LXBhdGgiPjwvc3Bhbj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSJmbGV4OjEiPjwv c3Bhbj4KICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGdob3N0IGN2 LXBkZiIgaWQ9ImN2LXBkZiIgdGl0bGU9Ik1pdCBLbGljayB3aXJkIGRlciBBcnRpa2VsaW5oYWx0 IGluIGRlbiBad2lzY2hlbnNwZWljaGVyIGdlbGVndCwgc28gZGFzcyBkaWUgSW5mb3JtYXRpb24g ZGlyZWt0IGluIFRlYW13aXJlIGVpbmdlZsO8Z3Qgd2VyZGVuIGthbm4uIj48c3BhbiBpZD0iY3Zw ZGYtaWMiPjwvc3Bhbj48c3BhbiBkYXRhLXRrZXk9ImRvYy5jb3B5IiBkYXRhLXRsYWJlbD0iRG9r dTogS29waWVyZW4tS25vcGYiPlRlYW1XaXJlPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgPGJ1 dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gZ2hvc3QgZWRpdC1vbmx5IiBpZD0iY3YtZWRp dCI+PHNwYW4gaWQ9ImN2ZWRpdC1pYyI+PC9zcGFuPjxzcGFuIGRhdGEtdGtleT0iZG9jLmVkaXQi IGRhdGEtdGxhYmVsPSJEb2t1OiBCZWFyYmVpdGVuLUtub3BmIj5CZWFyYmVpdGVuPC9zcGFuPjwv YnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxpZnJhbWUgY2xhc3M9ImN2LWZyYW1lIiBp ZD0iY3YtZnJhbWUiIHNyYz0iYWJvdXQ6YmxhbmsiIHRpdGxlPSJEb2t1bWVudCI+PC9pZnJhbWU+ CiAgICAgICAgPGRpdiBjbGFzcz0iY3YtYXJ0aWNsZSIgaWQ9ImN2LWFydGljbGUiPjwvZGl2Pgog ICAgICAgIDxkaXYgY2xhc3M9InByaW50LWZvb3QiIGFyaWEtaGlkZGVuPSJ0cnVlIj5Qb3J0YWwg VW5pb24gwrcgTGVpdHN0ZWxsZSBEb3J0bXVuZDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvbWFp bj4KCiAgICA8YXNpZGUgY2xhc3M9InJhaWwgcmFpbC1yIj4KICAgICAgPGRpdiBjbGFzcz0icmFp bC1oZWFkIj48aDIgZGF0YS10a2V5PSJyYWlsLnF1aWNrIiBkYXRhLXRsYWJlbD0iw5xiZXJzY2hy aWZ0IHJlY2h0ZSBTcGFsdGUiPlNjaG5lbGx6dWdyaWZmZTwvaDI+PC9kaXY+CiAgICAgIDxkaXYg Y2xhc3M9InJhaWwtc2Nyb2xsIiBpZD0icGFuZWxzIj48L2Rpdj4KICAgIDwvYXNpZGU+CiAgPC9k aXY+CjwvZGl2PgoKPCEtLSA9PT09PT09PT09PT09PT09PT09PT0gQeKAk1ogUkVHSVNURVIgT1ZF UkxBWSA9PT09PT09PT09PT09PT09PT09PT0gLS0+CjxkaXYgY2xhc3M9Im92ZXJsYXkiIGlkPSJh ei1vdmVybGF5Ij4KICA8ZGl2IGNsYXNzPSJvdmVybGF5LWJnIiBpZD0iYXotYmciPjwvZGl2Pgog IDxkaXYgY2xhc3M9ImF6LXBhbmVsIiByb2xlPSJkaWFsb2ciIGFyaWEtbW9kYWw9InRydWUiIGFy aWEtbGFiZWw9IkHigJNaLVJlZ2lzdGVyIj4KICAgIDxkaXYgY2xhc3M9ImF6LWhlYWQiPjxzcGFu IGlkPSJhemgtaWMiPjwvc3Bhbj48aDIgZGF0YS10a2V5PSJhei50aXRsZSIgZGF0YS10bGFiZWw9 IkHigJNaOiBUaXRlbCI+U3RpY2h3b3J0cmVnaXN0ZXIgQeKAk1o8L2gyPjxzcGFuIGNsYXNzPSJt b25vIiBpZD0iYXotY291bnQiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZmxleDoxIj48L3NwYW4+PGJ1 dHRvbiBjbGFzcz0iaWNvbi1idG4iIGlkPSJhei1jbG9zZSIgdGl0bGU9IlNjaGxpZcOfZW4iIGRh dGEtdGtleT0iYnRuLmNsb3NlIiBkYXRhLXRhdHRyPSJ0aXRsZSIgZGF0YS10bGFiZWw9Iktub3Bm IFNjaGxpZcOfZW4gKFRvb2x0aXApIj48L2J1dHRvbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImF6 LXN0cmlwIiBpZD0iYXotc3RyaXAiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iYXotYm9keSIgaWQ9 ImF6LWJvZHkiPjwvZGl2PgogIDwvZGl2Pgo8L2Rpdj4KCjwhLS0gPT09PT09PT09PT09PT09PT09 PT09IEJVTExFVElOLURJQUxPRyA9PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgo8ZGlhbG9n IGNsYXNzPSJkbGciIGlkPSJidWxsLWRsZyI+CiAgPGRpdiBjbGFzcz0iZGxnLWhlYWQiPjxoMiBp ZD0iYmQtdGl0bGUiPk5ldWUgTWVsZHVuZzwvaDI+PGJ1dHRvbiBjbGFzcz0iaWNvbi1idG4geCIg aWQ9ImJkLXgiIHRpdGxlPSJTY2hsaWXDn2VuIiBkYXRhLXRrZXk9ImJ0bi5jbG9zZSIgZGF0YS10 YXR0cj0idGl0bGUiPjwvYnV0dG9uPjwvZGl2PgogIDxkaXYgY2xhc3M9ImRsZy1ib2R5Ij4KICAg IDxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJiZi10aXRsZSIgZGF0YS10a2V5PSJidWxs LnRpdGxlIiBkYXRhLXRsYWJlbD0iTWVsZHVuZzogRmVsZCBUaXRlbCI+VGl0ZWw8L2xhYmVsPjxp bnB1dCBpZD0iYmYtdGl0bGUiIHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJ6LiBCLiBGYWhyYmFo bnNhbmllcnVuZyBNYXJrZ3JhZmVuc3RyYXNzZSIgZGF0YS10a2V5PSJidWxsLnRpdGxlUGgiIGRh dGEtdGF0dHI9InBsYWNlaG9sZGVyIiBkYXRhLXRsYWJlbD0iTWVsZHVuZzogUGxhdHpoYWx0ZXIg VGl0ZWwiPjxkaXYgY2xhc3M9ImVyciIgaWQ9ImJmLWVyciIgaGlkZGVuPjwvZGl2PjwvZGl2Pgog ICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9ImJmLWJvZHkiIGRhdGEtdGtleT0iYnVs bC5ib2R5IiBkYXRhLXRsYWJlbD0iTWVsZHVuZzogRmVsZCBJbmhhbHQiPkluaGFsdDwvbGFiZWw+ PHRleHRhcmVhIGlkPSJiZi1ib2R5IiBwbGFjZWhvbGRlcj0iVGV4dCBkZXIgTWVsZHVuZ+KApiYj MTA7JiMxMDsqKmZldHQqKiB1bmQgW0xpbmtdKGh0dHBzOi8v4oCmKSBzaW5kIG3DtmdsaWNoLiI+ PC90ZXh0YXJlYT48c3BhbiBjbGFzcz0iaGludCIgZGF0YS10a2V5PSJidWxsLmhpbnQiIGRhdGEt dGxhYmVsPSJNZWxkdW5nOiBGb3JtYXRpZXJ1bmdzLUhpbndlaXMiPkZvcm1hdGllcnVuZzogKipm ZXR0KiosIFplaWxlbnVtYnJ1Y2ggPSBuZXVlIFplaWxlLCBbQmVzY2hyaWZ0dW5nXShVUkwpIGbD vHIgTGlua3MuPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icm93MiI+CiAgICAgIDxkaXYg Y2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJiZi1kYXRlIiBkYXRhLXRrZXk9ImZpZWxkLmRhdGUi IGRhdGEtdGxhYmVsPSJGZWxkIERhdHVtIj5EYXR1bTwvbGFiZWw+PGlucHV0IGlkPSJiZi1kYXRl IiB0eXBlPSJkYXRlIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9 ImJmLWF1dGhvciIgZGF0YS10a2V5PSJmaWVsZC5hdXRob3IiIGRhdGEtdGxhYmVsPSJGZWxkIFZl cmZhc3Nlci9TdGVsbGUiPlZlcmZhc3NlciAvIFN0ZWxsZTwvbGFiZWw+PGlucHV0IGlkPSJiZi1h dXRob3IiIHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJ6LiBCLiBER0wgLyBWSTMiPjwvZGl2Pgog ICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGRhdGEtdGtleT0iYnVsbC5w aW4iIGRhdGEtdGxhYmVsPSJNZWxkdW5nOiBGZWxkIEFucGlubmVuIj5BbnBpbm5lbjwvbGFiZWw+ PGRpdiBjbGFzcz0idG9nZ2xlLXJvdyI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJzd2l0 Y2giIGlkPSJiZi1waW4iIGFyaWEtbGFiZWw9IkFucGlubmVuIj48L2J1dHRvbj48c3BhbiBjbGFz cz0ibXV0ZWQiIGRhdGEtdGtleT0iYnVsbC5waW5IaW50IiBkYXRhLXRsYWJlbD0iTWVsZHVuZzog QW5waW5uZW4tSGlud2VpcyI+T2JlbiBpbSBGZWxkIGZlc3RoYWx0ZW4gKHdpY2h0aWdlIERhdWVy LUluZm8pLjwvc3Bhbj48L2Rpdj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwg ZGF0YS10a2V5PSJidWxsLmhsIiBkYXRhLXRsYWJlbD0iTWVsZHVuZzogRmVsZCBIZXJ2b3JoZWJ1 bmciPkhlcnZvcmhlYnVuZzwvbGFiZWw+PGRpdiBjbGFzcz0iaGwtcGljayIgaWQ9ImJmLWhsIj48 L2Rpdj48c3BhbiBjbGFzcz0iaGludCIgZGF0YS10a2V5PSJidWxsLmhsSGludCIgZGF0YS10bGFi ZWw9Ik1lbGR1bmc6IEhlcnZvcmhlYnVuZ3MtSGlud2VpcyI+V2ljaHRpZ2tlaXQgZmFyYmxpY2gg a2VubnplaWNobmVuIOKAlCDigJ5XaWNodGlnIiBwdWxzaWVydC4gRmFyYmVuOiBFaW5zdGVsbHVu Z2VuIOKGkiBGYXJiLVRva2Vucy48L3NwYW4+PC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0i ZGxnLWZvb3QiPjxidXR0b24gY2xhc3M9ImJ0biBkYW5nZXIiIGlkPSJiZi1kZWwiIGRhdGEtdGtl eT0iYnRuLmRlbGV0ZSIgZGF0YS10bGFiZWw9Iktub3BmIEzDtnNjaGVuIj5Mw7ZzY2hlbjwvYnV0 dG9uPjxzcGFuIGNsYXNzPSJncm93Ij48L3NwYW4+PGJ1dHRvbiBjbGFzcz0iYnRuIGdob3N0IiBp ZD0iYmQtY2FuY2VsIiBkYXRhLXRrZXk9ImJ0bi5jYW5jZWwiIGRhdGEtdGxhYmVsPSJLbm9wZiBB YmJyZWNoZW4iPkFiYnJlY2hlbjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0biBwcmltYXJ5IiBp ZD0iYmQtc2F2ZSIgZGF0YS10a2V5PSJidG4uc2F2ZSIgZGF0YS10bGFiZWw9Iktub3BmIFNwZWlj aGVybiI+U3BlaWNoZXJuPC9idXR0b24+PC9kaXY+CjwvZGlhbG9nPgoKPCEtLSA9PT09PT09PT09 PT09PT09PT09PT0gQVJUSUtFTC1ESUFMT0cgPT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4K PGRpYWxvZyBjbGFzcz0iZGxnIGRsZy13aWRlIiBpZD0iYXJ0LWRsZyI+CiAgPGRpdiBjbGFzcz0i ZGxnLWhlYWQiPjxoMiBpZD0iYWQtdGl0bGUiPk5ldWVuIEFydGlrZWwgYW5sZWdlbjwvaDI+PGJ1 dHRvbiBjbGFzcz0iaWNvbi1idG4geCIgaWQ9ImFkLXgiIHRpdGxlPSJTY2hsaWXDn2VuIiBkYXRh LXRrZXk9ImJ0bi5jbG9zZSIgZGF0YS10YXR0cj0idGl0bGUiPjwvYnV0dG9uPjwvZGl2PgogIDxk aXYgY2xhc3M9ImRsZy1ib2R5Ij4KICAgIDxkaXYgY2xhc3M9InJvdzIiPgogICAgICA8ZGl2IGNs YXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iYXJ0LXNlY3Rpb24iIGRhdGEtdGtleT0iYXJ0LnNlY3Rp b24iIGRhdGEtdGxhYmVsPSJBcnRpa2VsOiBGZWxkIE5hdmlnYXRpb25zYmVyZWljaCI+TmF2aWdh dGlvbnNiZXJlaWNoPC9sYWJlbD48c2VsZWN0IGlkPSJhcnQtc2VjdGlvbiI+PC9zZWxlY3Q+PC9k aXY+CiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJhcnQtcGFyZW50IiBkYXRh LXRrZXk9ImFydC5wYXJlbnQiIGRhdGEtdGxhYmVsPSJBcnRpa2VsOiBGZWxkIEVpbm9yZG51bmci PkVpbm9yZG51bmc8L2xhYmVsPjxzZWxlY3QgaWQ9ImFydC1wYXJlbnQiPjwvc2VsZWN0PjwvZGl2 PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iYXJ0LWYtdGl0 bGUiIGRhdGEtdGtleT0iYXJ0LnRpdGxlIiBkYXRhLXRsYWJlbD0iQXJ0aWtlbDogRmVsZCBUaXRl bCI+VGl0ZWw8L2xhYmVsPjxpbnB1dCBpZD0iYXJ0LWYtdGl0bGUiIHR5cGU9InRleHQiIHBsYWNl aG9sZGVyPSLDnGJlcnNjaHJpZnQgZGVzIEFydGlrZWxzIiBkYXRhLXRrZXk9ImFydC50aXRsZVBo IiBkYXRhLXRhdHRyPSJwbGFjZWhvbGRlciIgZGF0YS10bGFiZWw9IkFydGlrZWw6IFBsYXR6aGFs dGVyIFRpdGVsIj48ZGl2IGNsYXNzPSJlcnIiIGlkPSJhcnQtZXJyIiBoaWRkZW4+PC9kaXY+PC9k aXY+CiAgICA8ZGl2IGNsYXNzPSJyb3cyIj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJl bCBmb3I9ImFydC1mLWRhdGUiIGRhdGEtdGtleT0iZmllbGQuZGF0ZSIgZGF0YS10bGFiZWw9IkZl bGQgRGF0dW0iPkRhdHVtPC9sYWJlbD48aW5wdXQgaWQ9ImFydC1mLWRhdGUiIHR5cGU9ImRhdGUi PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iYXJ0LWYtYXV0aG9y IiBkYXRhLXRrZXk9ImZpZWxkLmF1dGhvciIgZGF0YS10bGFiZWw9IkZlbGQgVmVyZmFzc2VyL1N0 ZWxsZSI+VmVyZmFzc2VyIC8gU3RlbGxlPC9sYWJlbD48aW5wdXQgaWQ9ImFydC1mLWF1dGhvciIg dHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9InouIEIuIERHTCAvIFRlYW0gNSI+PC9kaXY+CiAgICA8 L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImFydC1leHRyYSIgaWQ9ImFydC1leHRyYSI+PC9kaXY+CiAg ICA8ZGl2IGNsYXNzPSJmaWVsZCI+CiAgICAgIDxsYWJlbCBkYXRhLXRrZXk9ImFydC5ib2R5IiBk YXRhLXRsYWJlbD0iQXJ0aWtlbDogRmVsZCBJbmhhbHQiPkluaGFsdDwvbGFiZWw+CiAgICAgIDxk aXYgY2xhc3M9Ind5c2l3eWciIGlkPSJhcnQtd3lzaXd5ZyI+CiAgICAgICAgPGRpdiBjbGFzcz0i d3ktdG9vbHMiIGlkPSJhcnQtdG9vbHMiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Ind5LWJv ZHkiIGlkPSJhcnQtYm9keSIgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzcGVsbGNoZWNrPSJ0cnVl IiByb2xlPSJ0ZXh0Ym94IiBhcmlhLW11bHRpbGluZT0idHJ1ZSI+PC9kaXY+CiAgICAgIDwvZGl2 PgogICAgPC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iZGxnLWZvb3QiPjxidXR0b24gY2xh c3M9ImJ0biBkYW5nZXIiIGlkPSJhcnQtZGVsIiBkYXRhLXRrZXk9ImJ0bi5kZWxldGUiIGRhdGEt dGxhYmVsPSJLbm9wZiBMw7ZzY2hlbiI+TMO2c2NoZW48L2J1dHRvbj48c3BhbiBjbGFzcz0iZ3Jv dyI+PC9zcGFuPjxidXR0b24gY2xhc3M9ImJ0biBnaG9zdCIgaWQ9ImFydC1jYW5jZWwiIGRhdGEt dGtleT0iYnRuLmNhbmNlbCIgZGF0YS10bGFiZWw9Iktub3BmIEFiYnJlY2hlbiI+QWJicmVjaGVu PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuIHByaW1hcnkiIGlkPSJhcnQtc2F2ZSIgZGF0YS10 a2V5PSJidG4uc2F2ZSIgZGF0YS10bGFiZWw9Iktub3BmIFNwZWljaGVybiI+U3BlaWNoZXJuPC9i dXR0b24+PC9kaXY+CjwvZGlhbG9nPgoKPGRpdiBjbGFzcz0idG9hc3QiIGlkPSJ0b2FzdCI+PC9k aXY+Cgo8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gREFURU4gKyBMT0dJSyA9PT09 PT09PT09PT09PT09PT09PT0gLS0+CjwhLS0gRGF0ZW4gKGJsZWliZW4gdW50ZXIgYXNzZXRzL2pz LyDigJQgUHVibGlzaC1aaWVsZSkgLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvanMvZGF0YS1uYXYu anMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2RhdGEtY29udGVudC5qcyI+PC9z Y3JpcHQ+CjxzY3JpcHQgc3JjPSJkb2t1bWVudGUvanNvbi9hcnRpa2VsLmpzIj48L3NjcmlwdD48 IS0tIGFsbGUgQXJ0aWtlbC1Cb2R5cyBnZWJ1ZW5kZWx0ICh3aW5kb3cuUE9SVEFMX0FSVCkgLS0+ CjxzY3JpcHQgc3JjPSJhc3NldHMvanMvZGF0YS1iYW8uanMiPjwvc2NyaXB0PjwhLS0gQkFPLU1v ZGVsbCAod2luZG93LlBPUlRBTF9CQU8pIC0tPgo8c2NyaXB0IHNyYz0iZG9rdW1lbnRlL2pzb24v YmFvLWFydGlrZWwuanMiPjwvc2NyaXB0PjwhLS0gbWlncmllcnRlIEJBTy1BcnRpa2VsICh3aW5k b3cuUE9SVEFMX0JBT19BUlQpIC0tPgo8c2NyaXB0IHNyYz0iZG9rdW1lbnRlL2pzb24vYmFvLWFy dC1wNC5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJkb2t1bWVudGUvanNvbi9iYW8tYXJ0LXAy cDEtdmVya2Voci5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJkb2t1bWVudGUvanNvbi9iYW8t YXJ0LWFsYXJtLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImRva3VtZW50ZS9qc29uL2Jhby1h cnQtaW5mbzEuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iZG9rdW1lbnRlL2pzb24vYmFvLWFy dC1pbmZvMi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJkb2t1bWVudGUvanNvbi9iYW8tYXJ0 LWdydW5kc2FldHplLmpzIj48L3NjcmlwdD4KCjwhLS0gRnVuZGFtZW50OiBOYW1lc3BhY2UsIEV2 ZW50LUJ1cywgU3RhdGUsIFBlcnNpc3RlbnogLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvanMvY29y ZS9jb3JlLmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2NvcmUv bW9kYWwuanM/dj1wMTktMyI+PC9zY3JpcHQ+CjwhLS0gRmVhdHVyZS1Nb2R1bGUgLS0+CjxzY3Jp cHQgc3JjPSJhc3NldHMvanMvZmVhdHVyZXMvbmF2LmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2Ny aXB0IHNyYz0iYXNzZXRzL2pzL2ZlYXR1cmVzL2JyZWFkY3J1bWJzLmpzP3Y9cDE5LTMiPjwvc2Ny aXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2ZlYXR1cmVzL3RvYy5qcz92PXAxOS0zIj48L3Nj cmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9mZWF0dXJlcy9mZWVkLmpzP3Y9cDE5LTMiPjwv c2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2ZlYXR1cmVzL3doYXRzbmV3LmpzP3Y9cDE5 LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2ZlYXR1cmVzL3BhbmVscy5qcz92 PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9mZWF0dXJlcy9wYW5lbHMt ZWRpdC5qcz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9mZWF0dXJl cy9saW5rY29sLmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2Zl YXR1cmVzL3Jvc3Rlci1lZGl0LmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNz ZXRzL2pzL2ZlYXR1cmVzL3NlYXJjaC5qcz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9 ImFzc2V0cy9qcy9mZWF0dXJlcy9jb21tYW5kcy5qcz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlw dCBzcmM9ImFzc2V0cy9qcy9mZWF0dXJlcy9saW5rY2hlY2suanM/dj1wMTktMyI+PC9zY3JpcHQ+ CjxzY3JpcHQgc3JjPSJhc3NldHMvanMvZmVhdHVyZXMvYXJ0aWNsZS5qcz92PXAxOS0zIj48L3Nj cmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9mZWF0dXJlcy9taWdyYXRlLXVpLmpzP3Y9cDE5 LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2ZlYXR1cmVzL2FyenRsaXN0ZS5q cz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9mZWF0dXJlcy9rZW5u d29lcnRlci5qcz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9mZWF0 dXJlcy9wcnVlZnVuZy5qcz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9q cy9mZWF0dXJlcy9pbXByZXNzdW0uanM/dj1wMTktMyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJh c3NldHMvanMvZmVhdHVyZXMvYmFvLmpzP3Y9cDE5LTMiPjwvc2NyaXB0PjwhLS0gQkFPLVBvcnRh bCAoTW9kdXMsIERhc2hib2FyZCwgTGFnZS1Xb3Jrc3BhY2UpIC0tPgo8IS0tIEtvbGxhYm9yYXRp b24gKEF1dG9zYXZlL1ByYWVzZW56L0RpZmYpIC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2Nv bGxhYi9jb2xsYWIuanM/dj1wMTktMyI+PC9zY3JpcHQ+CjwhLS0gQWRtaW4tV2Vya3pldWdlIChI aXN0b3JpZS9SZXN0b3JlIMK3IEVpbnN0ZWxsdW5nZW4pIC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRz L2pzL2FkbWluL2hpc3RvcmllLmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNz ZXRzL2pzL2FkbWluL3NldHRpbmdzLmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0i YXNzZXRzL2pzL2FkbWluL3JvbGVzLmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0i YXNzZXRzL2pzL2FkbWluL25hdmVkaXQuanM/dj1wMTktMyI+PC9zY3JpcHQ+CjwhLS0gRGF0ZW5w ZmxlZ2UvVmVyw7ZmZmVudGxpY2hlbiArIEluaXQgKHp1bGV0enQpIC0tPgo8c2NyaXB0IHNyYz0i YXNzZXRzL2pzL2NvcmUvZGF0YXBmbGVnZS5qcz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBz cmM9ImFzc2V0cy9qcy9jb3JlL21haW4uanM/dj1wMTktMyI+PC9zY3JpcHQ+CjxzY3JpcHQ+CiAg LyogU3RhdGlzY2hlIFRvcGJhci0vRGlhbG9nLUljb25zIGF1cyBkZW0gemVudHJhbGVuIEljb24t U2F0eiAoUC5pYykgc2V0emVuLiAqLwogIChmdW5jdGlvbiAoKSB7CiAgICB2YXIgUCA9IHdpbmRv dy5QOyBpZiAoIVApIHJldHVybjsKICAgIGZ1bmN0aW9uIHNldChpZCwgaykgeyB2YXIgbiA9IGRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsgaWYgKG4pIG4uaW5uZXJIVE1MID0gUC5pYyhrKTsg fQogICAgc2V0KCJzZWFyY2gtaWMiLCAic2VhcmNoIik7IHNldCgiYXotaWMiLCAiYXoiKTsgc2V0 KCJlZGl0LWljIiwgImVkaXQiKTsgc2V0KCJjb2xsYWItYnRuIiwgImluYm94Iik7IHNldCgiYWRt aW4taHViLWJ0biIsICJzaGllbGQiKTsKICAgIHNldCgibWVudS1sIiwgIm1lbnUiKTsgc2V0KCJt ZW51LXIiLCAibWVudSIpOyBzZXQoImNvbGxhcHNlLWwiLCAicGFuZWxMIik7IHNldCgiY29sbGFw c2UtciIsICJwYW5lbFIiKTsKICAgIHNldCgiYWRkLWljIiwgInBsdXMiKTsgc2V0KCJhcnRhZGQt aWMiLCAiYXJ0aWNsZSIpOyBzZXQoImF6aC1pYyIsICJheiIpOyBzZXQoImF6LWNsb3NlIiwgIngi KTsKICAgIHNldCgiYmQteCIsICJ4Iik7IHNldCgiYWQteCIsICJ4Iik7IHNldCgiYmFjay1pYyIs ICJiYWNrIik7IHNldCgiY3ZlZGl0LWljIiwgImVkaXQiKTsgc2V0KCJjdnBkZi1pYyIsICJwcmlu dCIpOwogICAgc2V0KCJiYW8taWMiLCAic2hpZWxkIik7CiAgICB2YXIgZXQgPSBkb2N1bWVudC5n ZXRFbGVtZW50QnlJZCgiZWRpdC10YWciKTsgaWYgKGV0KSBldC5pbnNlcnRBZGphY2VudEhUTUwo ImFmdGVyYmVnaW4iLCBQLmljKCJlZGl0IikgKyAiICIpOwogIH0pKCk7Cjwvc2NyaXB0Pgo8L2Jv ZHk+CjwvaHRtbD4K