@opcua/for-node-red 3.3.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,8 +4,8 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- function _0xf61a(_0x439be9,_0x1f8685){const _0x505ab2=_0x505a();return _0xf61a=function(_0xf61adc,_0x25c96c){_0xf61adc=_0xf61adc-0x11e;let _0x108cba=_0x505ab2[_0xf61adc];return _0x108cba;},_0xf61a(_0x439be9,_0x1f8685);}(function(_0x33e407,_0xd6c8b9){const _0x2adf71=_0xf61a,_0xf7374f=_0x33e407();while(!![]){try{const _0x195b73=-parseInt(_0x2adf71(0x21e))/0x1+-parseInt(_0x2adf71(0x126))/0x2*(parseInt(_0x2adf71(0x1e4))/0x3)+parseInt(_0x2adf71(0x125))/0x4*(-parseInt(_0x2adf71(0x19f))/0x5)+parseInt(_0x2adf71(0x1a3))/0x6+-parseInt(_0x2adf71(0x170))/0x7+parseInt(_0x2adf71(0x1cf))/0x8*(parseInt(_0x2adf71(0x1fd))/0x9)+parseInt(_0x2adf71(0x1d2))/0xa;if(_0x195b73===_0xd6c8b9)break;else _0xf7374f['push'](_0xf7374f['shift']());}catch(_0x2ff784){_0xf7374f['push'](_0xf7374f['shift']());}}}(_0x505a,0x3f47c),(function(){'use strict';const _0x3afc0f=_0xf61a;function _0x46bfd3(_0x19d763,_0x254209,_0x1c1229,_0x58cd57){function _0x1f5c56(_0x5186df){return _0x5186df instanceof _0x1c1229?_0x5186df:new _0x1c1229(function(_0x31a9d5){_0x31a9d5(_0x5186df);});}return new(_0x1c1229||(_0x1c1229=Promise))(function(_0x1dc6c7,_0x32db94){const _0x4041cf=_0xf61a;function _0x591e50(_0x5cf71c){const _0x4f4b88=_0xf61a;try{_0x3ca7b4(_0x58cd57[_0x4f4b88(0x197)](_0x5cf71c));}catch(_0x105a47){_0x32db94(_0x105a47);}}function _0x412e40(_0xe8853b){const _0x9e1b71=_0xf61a;try{_0x3ca7b4(_0x58cd57[_0x9e1b71(0x1f7)](_0xe8853b));}catch(_0x4131d4){_0x32db94(_0x4131d4);}}function _0x3ca7b4(_0xfbc63a){const _0x54518b=_0xf61a;_0xfbc63a[_0x54518b(0x1b1)]?_0x1dc6c7(_0xfbc63a[_0x54518b(0x1b3)]):_0x1f5c56(_0xfbc63a[_0x54518b(0x1b3)])[_0x54518b(0x154)](_0x591e50,_0x412e40);}_0x3ca7b4((_0x58cd57=_0x58cd57['apply'](_0x19d763,_0x254209||[]))[_0x4041cf(0x197)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x54a20e,_0x3066e5,_0x2e21c1){const _0x1c073a=_0xf61a;var _0x402ac0=new Error(_0x2e21c1);return _0x402ac0[_0x1c073a(0x20b)]=_0x1c073a(0x164),_0x402ac0['error']=_0x54a20e,_0x402ac0[_0x1c073a(0x163)]=_0x3066e5,_0x402ac0;};const _0x1b2a38='ns=0;i=35',_0x35c219=_0x3afc0f(0x1f4),_0x4e1829='ns=0;i=47',_0x5b0892=_0x3afc0f(0x21f),_0x3ad8f2=_0x3afc0f(0x209),_0x589756=_0x3afc0f(0x179),_0x1244b7=_0x3afc0f(0x191);var _0x4c7413;(function(_0x91981d){const _0x3fa42e=_0x3afc0f;_0x91981d[_0x91981d[_0x3fa42e(0x135)]=0x0]=_0x3fa42e(0x135),_0x91981d[_0x91981d[_0x3fa42e(0x122)]=0x1]=_0x3fa42e(0x122),_0x91981d[_0x91981d[_0x3fa42e(0x147)]=0x2]=_0x3fa42e(0x147),_0x91981d[_0x91981d[_0x3fa42e(0x22a)]=0x3]=_0x3fa42e(0x22a);}(_0x4c7413||(_0x4c7413={})));var _0x4549de;(function(_0x368b43){const _0x3ac8bc=_0x3afc0f;_0x368b43[_0x368b43[_0x3ac8bc(0x133)]=0x0]=_0x3ac8bc(0x133),_0x368b43[_0x368b43[_0x3ac8bc(0x21d)]=0x1]='Object',_0x368b43[_0x368b43[_0x3ac8bc(0x181)]=0x2]=_0x3ac8bc(0x181),_0x368b43[_0x368b43[_0x3ac8bc(0x17f)]=0x4]=_0x3ac8bc(0x17f),_0x368b43[_0x368b43[_0x3ac8bc(0x150)]=0x8]=_0x3ac8bc(0x150),_0x368b43[_0x368b43[_0x3ac8bc(0x121)]=0x10]='VariableType',_0x368b43[_0x368b43[_0x3ac8bc(0x1b0)]=0x20]=_0x3ac8bc(0x1b0),_0x368b43[_0x368b43['DataType']=0x40]='DataType',_0x368b43[_0x368b43[_0x3ac8bc(0x187)]=0x80]=_0x3ac8bc(0x187);}(_0x4549de||(_0x4549de={})));var _0x4eeb4b;(function(_0x5ce133){const _0x4ec0f7=_0x3afc0f;_0x5ce133[_0x5ce133[_0x4ec0f7(0x21d)]=0x1]=_0x4ec0f7(0x21d),_0x5ce133[_0x5ce133[_0x4ec0f7(0x181)]=0x2]=_0x4ec0f7(0x181),_0x5ce133[_0x5ce133['Method']=0x4]='Method',_0x5ce133[_0x5ce133[_0x4ec0f7(0x150)]=0x8]=_0x4ec0f7(0x150),_0x5ce133[_0x5ce133[_0x4ec0f7(0x121)]=0x10]=_0x4ec0f7(0x121),_0x5ce133[_0x5ce133[_0x4ec0f7(0x1b0)]=0x20]=_0x4ec0f7(0x1b0),_0x5ce133[_0x5ce133[_0x4ec0f7(0x174)]=0x40]=_0x4ec0f7(0x174),_0x5ce133[_0x5ce133[_0x4ec0f7(0x187)]=0x80]=_0x4ec0f7(0x187);}(_0x4eeb4b||(_0x4eeb4b={})));var _0x1d7a45;(function(_0x5cb124){const _0x361b97=_0x3afc0f;_0x5cb124[_0x5cb124[_0x361b97(0x1b0)]=0x1]=_0x361b97(0x1b0),_0x5cb124[_0x5cb124[_0x361b97(0x1c8)]=0x2]='IsForward',_0x5cb124[_0x5cb124[_0x361b97(0x1c9)]=0x4]=_0x361b97(0x1c9),_0x5cb124[_0x5cb124['BrowseName']=0x8]=_0x361b97(0x221),_0x5cb124[_0x5cb124[_0x361b97(0x178)]=0x10]='DisplayName',_0x5cb124[_0x5cb124['TypeDefinition']=0x20]='TypeDefinition';}(_0x1d7a45||(_0x1d7a45={})));function _0x226c4(_0x3f7ce0){const _0x4afbfe=_0x3afc0f;switch(_0x3f7ce0){case'Organizes':return _0x1b2a38;case _0x4afbfe(0x171):return _0x5b0892;case _0x4afbfe(0x1c2):return _0x4e1829;case'HasChild':return _0x3ad8f2;case _0x4afbfe(0x15a):return _0x589756;case _0x4afbfe(0x1fa):return _0x1244b7;}}const _0x3668a=_0x51a3f9=>{const _0x4e6162=_0x3afc0f;switch(_0x51a3f9['nodeClass']){case _0x4e6162(0x21d):if(_0x51a3f9[_0x4e6162(0x216)]===_0x1b2a38);if(_0x51a3f9[_0x4e6162(0x1ec)]===_0x35c219||_0x51a3f9[_0x4e6162(0x216)]===_0x4e6162(0x1ad))return{'icon':_0x4e6162(0x1ba),'color':_0x4e6162(0x134)};return{'icon':_0x4e6162(0x13d),'color':'SeaGreen'};case'Variable':if(_0x51a3f9['referenceTypeId']===_0x4e1829)return{'icon':'fa-list-alt','color':_0x4e6162(0x146)};else return _0x51a3f9[_0x4e6162(0x216)]===_0x5b0892?{'icon':_0x4e6162(0x1a8),'color':_0x4e6162(0x18e)}:{'icon':_0x4e6162(0x1a8),'color':'CadetBlue'};case _0x4e6162(0x17f):return{'icon':_0x4e6162(0x12d),'color':_0x4e6162(0x1e1)};case _0x4e6162(0x150):return{'icon':'fa-object-group','color':'DarkOrange'};case _0x4e6162(0x121):return{'icon':'fa-sliders','color':_0x4e6162(0x1e2)};case _0x4e6162(0x174):return{'icon':_0x4e6162(0x1eb),'color':_0x4e6162(0x160)};}return{'icon':_0x4e6162(0x231),'color':_0x4e6162(0x17d)};},_0x3ba606=(_0x523a69,_0x5313dd,_0xdd6877)=>_0x46bfd3(void 0x0,[_0x523a69,_0x5313dd,_0xdd6877],void 0x0,function*({endpointNode:_0x2a2c72,endpoint:_0x59c45a,baseUrl:_0x67c095},_0x891564,_0x2d949a){const _0x5ae5a5=_0x3afc0f,_0x7917bf=_0x67c095+_0x5ae5a5(0x22b),_0x1b887f=_0x7917bf+_0x5ae5a5(0x203),_0x2fe11d=Object[_0x5ae5a5(0x139)](Object[_0x5ae5a5(0x139)]({},_0x2d949a),{'nodeId':_0x891564,'resultMask':0x3f}),_0x38258c=yield fetch(_0x1b887f,{'method':_0x5ae5a5(0x1c4),'body':JSON['stringify']({'endpointNode':_0x2a2c72,'endpoint':_0x59c45a,'browseDescription':_0x2fe11d}),'headers':{'Content-Type':'application/json'}});if(_0x38258c[_0x5ae5a5(0x21a)]!==0xc8)return console['log'](_0x5ae5a5(0x1b2),_0x38258c['status'],_0x38258c[_0x5ae5a5(0x128)]),{'references':[]};const _0x3b754e=yield _0x38258c[_0x5ae5a5(0x145)](),_0x183f63=_0x3b754e[_0x5ae5a5(0x1c6)][_0x5ae5a5(0x183)]||[];return{'references':_0x183f63};}),_0x767e88={'referenceTypeId':_0x226c4(_0x3afc0f(0x13f)),'includeSubtypes':!![],'browseDirection':_0x4c7413[_0x3afc0f(0x135)],'nodeClassMask':_0x4549de[_0x3afc0f(0x181)]|_0x4549de['Object']|_0x4549de[_0x3afc0f(0x17f)],'resultMask':0x3f},_0xdb5bc0={'referenceTypeId':_0x226c4(_0x3afc0f(0x1c0)),'includeSubtypes':!![],'browseDirection':_0x4c7413[_0x3afc0f(0x135)],'nodeClassMask':_0x4549de[_0x3afc0f(0x181)]|_0x4549de[_0x3afc0f(0x21d)]|_0x4549de[_0x3afc0f(0x17f)],'resultMask':0x3f},_0x450252=(_0xdf2159,_0x4cf222)=>_0x46bfd3(void 0x0,[_0xdf2159,_0x4cf222],void 0x0,function*({endpointNode:_0x51d0f8,endpoint:_0x46e9d6,baseUrl:_0x1a6d87},{nodeId:_0x35bd5f,rootNodeId:_0x462ef3,isType:_0x40632d}){const _0xad7a02=_0x3afc0f,_0x218bdf=_0x1a6d87+_0xad7a02(0x22b),_0x4985d9=_0x218bdf+_0xad7a02(0x161),_0x5b6c60=yield fetch(_0x4985d9,{'method':'POST','body':JSON[_0xad7a02(0x1ce)]({'endpointNode':_0x51d0f8,'endpoint':_0x46e9d6,'nodeId':_0x35bd5f,'rootNodeId':_0x462ef3,'isType':_0x40632d}),'headers':{'Content-Type':_0xad7a02(0x18b)}});if(_0x5b6c60[_0xad7a02(0x21a)]!==0xc8)return null;const _0x5bf74b=yield _0x5b6c60[_0xad7a02(0x145)]();return _0x5bf74b[_0xad7a02(0x196)];}),_0x1140b6=(_0x58caf7,_0x2adf52)=>{const _0x4ca41a=_0x3afc0f;if(_0x58caf7['statusCode']!=='Good')return _0x58caf7[_0x4ca41a(0x1fe)];switch(_0x2adf52){case _0x4ca41a(0x196):return _0x58caf7[_0x4ca41a(0x200)];case _0x4ca41a(0x1ca):return _0x58caf7[_0x4ca41a(0x16e)]||_0x58caf7[_0x4ca41a(0x200)];case'aliasedNodeId':return _0x58caf7[_0x4ca41a(0x21c)]||_0x58caf7['nodeId_nsu'];case _0x4ca41a(0x1f1):return _0x58caf7[_0x4ca41a(0x220)];default:case'nodeId':return _0x58caf7[_0x4ca41a(0x167)];}},_0x237d2f=_0x308f18=>{const _0x4f8bd5=_0x3afc0f;if(_0x308f18[_0x4f8bd5(0x1aa)]!==_0x4f8bd5(0x143))return _0x4f8bd5(0x120)+_0x308f18[_0x4f8bd5(0x1aa)];else{let _0x13091e=[];return _0x13091e['push'](_0x4f8bd5(0x219)+_0x308f18[_0x4f8bd5(0x167)]),_0x13091e['push'](_0x4f8bd5(0x22c)+_0x308f18[_0x4f8bd5(0x200)]),_0x13091e[_0x4f8bd5(0x1cc)]('node\x20class:\x20'+_0x4549de[_0x308f18[_0x4f8bd5(0x238)]]),_0x308f18[_0x4f8bd5(0x220)]&&_0x13091e['push'](_0x4f8bd5(0x14c)+_0x308f18[_0x4f8bd5(0x220)]),_0x308f18['nodeId_aliased']&&_0x13091e['push'](_0x4f8bd5(0x12a)+_0x308f18[_0x4f8bd5(0x21c)]),_0x308f18[_0x4f8bd5(0x200)]&&_0x13091e[_0x4f8bd5(0x1cc)](_0x4f8bd5(0x20d)+_0x308f18[_0x4f8bd5(0x16e)]),_0x13091e[_0x4f8bd5(0x1e0)]('\x0a');}};function _0x52c232(_0x425b61){const _0x15052b=_0x3afc0f;if(_0x425b61['match'](/^nsu=/))return'nsuNodeID';if(_0x425b61[_0x15052b(0x1bd)](/^(ns=.*;)?(i|b|s|g)=/))return _0x15052b(0x167);if(_0x425b61['match'](/^nsa=/))return'aliasedNodeId';if(_0x425b61['match'](/^(\/|\.)[0-9]+:/))return _0x15052b(0x196);if(_0x425b61[_0x15052b(0x1bd)](/^(\/|\.).*:/))return _0x15052b(0x196);}function _0x48a1f8(_0x32d7d8){const _0x118604=_0x3afc0f,_0x2f76a7=_0x52c232(_0x32d7d8);switch(_0x2f76a7){case'nodeId':return'n';case _0x118604(0x1bf):return'na';case _0x118604(0x1f1):return _0x118604(0x240);case _0x118604(0x196):return'b';case _0x118604(0x1ca):return'ab';default:return't';}}function _0x57627e(_0x28464d){const _0x2df134=_0x3afc0f;let _0x3b682b;switch(_0x28464d){case'n':_0x3b682b='nodeId';break;case'na':_0x3b682b=_0x2df134(0x1bf);break;case _0x2df134(0x240):_0x3b682b='nsuNodeID';break;case'b':_0x3b682b=_0x2df134(0x196);break;case'ab':_0x3b682b=_0x2df134(0x1ca);break;}return _0x3b682b;}function _0x3fc18b(_0x22366d){const _0x420e0e=_0x3afc0f;switch(_0x22366d){case _0x420e0e(0x167):return'n';case _0x420e0e(0x1bf):return'na';case'nsuNodeID':return'nsu';case _0x420e0e(0x196):return'b';case _0x420e0e(0x1ca):return'ab';default:return't';}}const _0x592f6e=(_0xd6c3f3,_0x8eb1d7)=>_0x46bfd3(void 0x0,[_0xd6c3f3,_0x8eb1d7],void 0x0,function*({endpointNode:_0xc28a8,endpoint:_0x2fb8d4,baseUrl:_0x27e604},_0x377bc7){const _0x5cff75=_0x3afc0f,_0x46a1b3=_0x27e604+_0x5cff75(0x22b),_0x1c3e5a=_0x46a1b3+_0x5cff75(0x148),_0x49414c=_0xc28a8['id'],_0x297faf=RED[_0x5cff75(0x166)][_0x5cff75(0x202)](_0x49414c);console[_0x5cff75(0x14b)](_0x297faf[_0x5cff75(0x239)]),_0x297faf[_0x5cff75(0x239)];const _0x133313=_0xc28a8[_0x5cff75(0x239)],_0x328882=yield fetch(_0x1c3e5a,{'method':'POST','body':JSON[_0x5cff75(0x1ce)]({'endpointNode':_0xc28a8,'endpoint':_0x2fb8d4,'nodeId':_0x377bc7,'namespaceAliases':_0x133313}),'headers':{'Content-Type':_0x5cff75(0x18b)}}),_0x14a380=yield _0x328882[_0x5cff75(0x145)]();return{'json':_0x14a380,'data':_0x328882};}),_0x423928=(_0x452c60,_0x3d2f1d,_0x15e70c,_0x202446)=>_0x46bfd3(void 0x0,[_0x452c60,_0x3d2f1d,_0x15e70c,_0x202446],void 0x0,function*({endpointNode:_0x3635b4,endpoint:_0x55b358,baseUrl:_0x35f857},_0x2f896e,_0x1819e0,_0x261fdd){const _0x1a03e6=_0x3afc0f,_0xdb64c1=_0x1819e0[_0x1a03e6(0x172)](),{json:_0x3ae321,data:_0x2748e4}=yield _0x592f6e({'endpointNode':_0x3635b4,'endpoint':_0x55b358,'baseUrl':_0x35f857},_0xdb64c1),_0x1c3204=(_0x5131a5,_0x3a0468)=>{const _0x317190=_0x1a03e6;_0x261fdd[_0x317190(0x137)](_0x5131a5)[_0x317190(0x136)](_0x317190(0x228))[_0x317190(0x136)](_0x3a0468),_0x261fdd[_0x317190(0x141)](),setTimeout(()=>{const _0x32eaec=_0x317190;_0x261fdd[_0x32eaec(0x224)](_0x3a0468),_0x261fdd[_0x32eaec(0x12e)]();},0xbb8);};if(_0x2748e4['status']!==0xc8)return _0x1c3204(_0x1a03e6(0x180)+_0xdb64c1,_0x1a03e6(0x1da)),![];else{if(_0x3ae321[_0x1a03e6(0x1aa)]['match'](/Good/)){const _0x40869b=_0x237d2f(_0x3ae321);_0x1819e0[_0x1a03e6(0x16c)]('title',_0x40869b);const _0x5b9633=_0x1140b6(_0x3ae321,_0x2f896e);return _0x1819e0[_0x1a03e6(0x172)](_0x5b9633),_0x1819e0['trigger'](_0x1a03e6(0x11e)),_0x1c3204(_0x1a03e6(0x143),'ok'),!![];}else return _0x1819e0[_0x1a03e6(0x172)](''+_0xdb64c1),_0x1c3204(_0x3ae321[_0x1a03e6(0x1aa)]+'\x20'+_0x2748e4['statusText'],_0x1a03e6(0x1da)),![];}});function _0x45bed7(_0x4b2c66,_0x22f6ff){return _0x46bfd3(this,void 0x0,void 0x0,function*(){const _0x584518=_0xf61a,_0x45444c=_0x4b2c66[_0x584518(0x213)]('value'),_0x17053b=yield _0x3ba606(_0x22f6ff,_0x45444c,_0x767e88),_0x4d7442=yield _0x3ba606(_0x22f6ff,_0x45444c,_0xdb5bc0);return{'references':[..._0x17053b[_0x584518(0x183)],..._0x4d7442[_0x584518(0x183)]]};});}const _0x419991={'referenceTypeId':_0x226c4('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x4c7413['Forward'],'nodeClassMask':_0x4549de[_0x3afc0f(0x1b0)]|_0x4549de[_0x3afc0f(0x150)]|_0x4549de[_0x3afc0f(0x174)]|_0x4549de[_0x3afc0f(0x121)],'resultMask':0x3f};function _0x30e951(_0x2bf9d8,_0x57053a){return _0x46bfd3(this,void 0x0,void 0x0,function*(){const _0x3b9f49=_0xf61a,_0x4fda00=_0x2bf9d8[_0x3b9f49(0x213)]('value'),_0x1dec8a=yield _0x3ba606(_0x57053a,_0x4fda00,_0x419991);return _0x1dec8a;});}const _0x415a13=_0x3dbce6=>{const _0x3fe431=_0x3afc0f;var _0x13c13a,_0x5b1888,_0x516dea,_0x382168;if(!_0x3dbce6||!_0x3dbce6[_0x3fe431(0x167)]){const _0x12449d=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x12449d;}const _0x383148=_0x3dbce6[_0x3fe431(0x167)][_0x3fe431(0x18f)](),_0x3ec61d=((_0x13c13a=_0x3dbce6['displayName'])===null||_0x13c13a===void 0x0?void 0x0:_0x13c13a[_0x3fe431(0x137)])||((_0x5b1888=_0x3dbce6[_0x3fe431(0x18a)])===null||_0x5b1888===void 0x0?void 0x0:_0x5b1888[_0x3fe431(0x20b)])||_0x3dbce6[_0x3fe431(0x167)][_0x3fe431(0x18f)](),{icon:_0xd9293b,color:_0x276a93}=_0x3668a(_0x3dbce6),_0x453c34='('+_0x3dbce6[_0x3fe431(0x167)][_0x3fe431(0x18f)]()+')\x20'+(((_0x516dea=_0x3dbce6[_0x3fe431(0x18a)])===null||_0x516dea===void 0x0?void 0x0:_0x516dea[_0x3fe431(0x20b)])||((_0x382168=_0x3dbce6[_0x3fe431(0x235)])===null||_0x382168===void 0x0?void 0x0:_0x382168[_0x3fe431(0x137)])||''),_0xe5106b=$('<li\x20key=\x22'+_0x3dbce6['nodeId'][_0x3fe431(0x18f)]()+_0x3fe431(0x222)+_0x453c34+'><i\x20class=\x22fa\x20'+_0xd9293b+'\x22\x20style=\x22color:'+_0x276a93+_0x3fe431(0x19d)+_0x3ec61d+_0x3fe431(0x1f6));return _0xe5106b[_0x3fe431(0x136)](_0x3fe431(0x1d4)),_0xe5106b['data'](_0x3fe431(0x1b3),_0x383148),_0xe5106b[_0x3fe431(0x213)]('reference',_0x3dbce6),_0xe5106b;},_0x5ec7be=(_0x2570ee,_0x2e0eb0)=>{const _0x35f30f=_0x3afc0f;return _0x2e0eb0[_0x35f30f(0x22d)](_0x35f30f(0x218)+_0x2570ee+'\x22]');},_0x214c4d=(_0x56c86f,_0x4477c2)=>{const _0xa5b37=_0x3afc0f;_0x56c86f[_0xa5b37(0x1b4)]['find'](_0xa5b37(0x1ae))[_0xa5b37(0x224)](_0xa5b37(0x18c)),_0x4477c2[_0xa5b37(0x22d)](_0xa5b37(0x15f))[_0xa5b37(0x136)](_0xa5b37(0x18c));},_0x314699=(_0x5c9e4c,_0x5587d9,_0x30d8b3)=>_0x46bfd3(void 0x0,void 0x0,void 0x0,function*(){const _0x45dace=_0x3afc0f;let _0x24fbe5=_0x30d8b3['children'](_0x45dace(0x151));_0x5587d9[_0x45dace(0x17e)]['elements']||[];const _0x2d6448=_0x5587d9[_0x45dace(0x13a)]||[];if(_0x2d6448[_0x45dace(0x215)]===0x0)return;for(const _0x210a42 of _0x2d6448){_0x24fbe5['hasClass']('expandable')&&(yield _0x1fbc7d(_0x5c9e4c,_0x24fbe5));const _0x419ffb=_0x5ec7be(_0x210a42,_0x24fbe5);if(_0x419ffb[_0x45dace(0x215)]===0x0)return;_0x24fbe5=_0x419ffb;}_0x214c4d(_0x5c9e4c,_0x24fbe5),_0xe9586e(_0x5c9e4c[_0x45dace(0x1ee)],_0x24fbe5);});function _0xe9586e(_0x29d962,_0x3a46c2){const _0x42cd25=_0x3afc0f,_0x3961f4=_0x3a46c2['position']()[_0x42cd25(0x1cd)],_0x31bfe3=_0x29d962[_0x42cd25(0x14d)]();if(_0x31bfe3==undefined)return;const _0x52adac=_0x31bfe3+_0x3961f4-_0x29d962[_0x42cd25(0x1ea)]()/0x2+_0x3a46c2[_0x42cd25(0x1ea)]()/0x2;_0x29d962[_0x42cd25(0x12b)]({'scrollTop':_0x52adac},0x1f4);}const _0x175786=(_0x4f306c,_0x6eafee)=>_0x46bfd3(void 0x0,void 0x0,void 0x0,function*(){const _0x323544=_0x3afc0f,_0xfa5280=_0x4f306c['$input'][_0x323544(0x172)](),_0xefa4d9={'nodeId':_0xfa5280,'rootNodeId':_0x6eafee[_0x323544(0x167)],'isType':_0x4f306c['options']['isTypeRef']||![]},_0x1a1d15=_0x1523cf(_0x4f306c),_0x1c02ca=yield _0x450252(_0x1a1d15,_0xefa4d9);if(!_0x1c02ca)return;yield _0x314699(_0x4f306c,_0x1c02ca,_0x4f306c[_0x323544(0x1b4)]);});function _0x443418(_0x52f79f,_0x18c123,_0x204f46,_0x152ccf){return _0x46bfd3(this,void 0x0,void 0x0,function*(){const _0x146dc1=_0xf61a;if(_0x18c123['hasClass'](_0x146dc1(0x184))){console[_0x146dc1(0x14b)]('already\x20fetched');return;}if(_0x18c123[_0x146dc1(0x1a5)](_0x146dc1(0x234))){console[_0x146dc1(0x14b)](_0x146dc1(0x198));return;}_0x18c123['addClass'](_0x146dc1(0x234)),_0x18c123[_0x146dc1(0x1a1)](_0x146dc1(0x14e));try{_0x18c123['children']('ul')[_0x146dc1(0x1ed)]();const {references:_0xbabcb}=yield _0x204f46(_0x18c123,_0x152ccf);_0xbabcb[_0x146dc1(0x144)]((_0x4812ad,_0x47222f)=>{const _0x293b81=_0x146dc1;var _0x5901e4,_0x23a600;return(((_0x5901e4=_0x4812ad[_0x293b81(0x18a)])===null||_0x5901e4===void 0x0?void 0x0:_0x5901e4['name'])||'')['localeCompare'](((_0x23a600=_0x47222f[_0x293b81(0x18a)])===null||_0x23a600===void 0x0?void 0x0:_0x23a600[_0x293b81(0x20b)])||'');});for(const _0x188ef1 of _0xbabcb){if(_0x52f79f['options'][_0x146dc1(0x1b5)]&&!_0x52f79f[_0x146dc1(0x17b)]['filter'](_0x188ef1))continue;const _0x389131=_0x415a13(_0x188ef1);_0x18c123[_0x146dc1(0x15d)]('ul')['append'](_0x389131);}_0x18c123[_0x146dc1(0x136)](_0x146dc1(0x184));}catch(_0x110e28){_0x18c123[_0x146dc1(0x15d)]('ul')[_0x146dc1(0x1a1)](_0x146dc1(0x23b)+_0x110e28[_0x146dc1(0x142)]+_0x146dc1(0x217)),console[_0x146dc1(0x14b)]('err',_0x110e28);}_0x18c123[_0x146dc1(0x22d)](_0x146dc1(0x1d6))[_0x146dc1(0x185)](),_0x18c123[_0x146dc1(0x224)](_0x146dc1(0x234));});}function _0x1523cf(_0x33ffea){const _0x479dfc=_0x3afc0f,_0x16c215={'baseUrl':_0x33ffea[_0x479dfc(0x17b)]['baseUrl'],'endpointNode':typeof _0x33ffea[_0x479dfc(0x17b)][_0x479dfc(0x1b9)]==='function'?_0x33ffea[_0x479dfc(0x17b)][_0x479dfc(0x1b9)]():_0x33ffea[_0x479dfc(0x17b)][_0x479dfc(0x1b9)],'endpoint':typeof _0x33ffea[_0x479dfc(0x17b)][_0x479dfc(0x13c)]===_0x479dfc(0x153)?_0x33ffea[_0x479dfc(0x17b)][_0x479dfc(0x13c)]():_0x33ffea[_0x479dfc(0x17b)][_0x479dfc(0x13c)]};return _0x16c215;}function _0x1fbc7d(_0x5dd851,_0x4eabba){return _0x46bfd3(this,void 0x0,void 0x0,function*(){const _0x2d510b=_0xf61a;if(_0x4eabba[_0x2d510b(0x1a5)]('fetched')){_0x4eabba[_0x2d510b(0x224)](_0x2d510b(0x1d4))['addClass'](_0x2d510b(0x175)),_0x4eabba[_0x2d510b(0x15d)]('ul')[_0x2d510b(0x149)]();return;}const _0x2d75aa=_0x1523cf(_0x5dd851),_0x1eacc9=!_0x5dd851[_0x2d510b(0x17b)][_0x2d510b(0x1f5)]?_0x45bed7:_0x30e951;try{yield _0x443418(_0x5dd851,_0x4eabba,_0x1eacc9,_0x2d75aa),_0x4eabba['removeClass'](_0x2d510b(0x1d4))['addClass'](_0x2d510b(0x175));}catch(_0x48ec19){_0x4eabba[_0x2d510b(0x224)](_0x2d510b(0x1d4))[_0x2d510b(0x136)](_0x2d510b(0x175)),console['log'](_0x2d510b(0x1b6),_0x48ec19);}});}const _0x27604a={'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x3afc0f(0x21d),'nodeId':_0x3afc0f(0x20f),'displayName':{'text':_0x3afc0f(0x23e)},'typeDefinition':_0x35c219},_0x5da92c=()=>{const _0x5b2ae2=_0x3afc0f;$[_0x5b2ae2(0x127)]('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>_0x27604a,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x46bfd3(this,void 0x0,void 0x0,function*(){const _0x36b972=_0xf61a,_0x521690=this;if(_0x521690[_0x36b972(0x173)]==undefined){const _0x4e917c=typeof _0x521690[_0x36b972(0x17b)]['parentNode']===_0x36b972(0x153)?_0x521690[_0x36b972(0x17b)][_0x36b972(0x19c)][_0x36b972(0x156)](_0x521690):_0x521690[_0x36b972(0x17b)][_0x36b972(0x19c)];if(_0x4e917c instanceof Promise){const _0x3e4e93=yield _0x4e917c;_0x521690[_0x36b972(0x173)]=_0x3e4e93;}else _0x521690[_0x36b972(0x173)]=_0x4e917c;}return _0x521690[_0x36b972(0x173)]||_0x27604a;});},'reset'(){return _0x46bfd3(this,void 0x0,void 0x0,function*(){const _0x5d18c5=_0xf61a,_0x94fed7=this,_0x214f38=_0x94fed7;_0x214f38[_0x5d18c5(0x173)]=undefined,_0x94fed7[_0x5d18c5(0x1b4)]['empty']();const _0x272329=yield this[_0x5d18c5(0x1ff)](),_0x448fb1=_0x415a13(_0x272329);_0x94fed7[_0x5d18c5(0x1b4)][_0x5d18c5(0x1a1)](_0x448fb1),_0x94fed7['currentParent']=_0x272329;});},'verify'(_0x5a6a4c){const _0x1e492c=_0x5b2ae2,_0x1ab7d1=this,_0x450afc=_0x1523cf(_0x1ab7d1);_0x423928(_0x450afc,_0x5a6a4c,_0x1ab7d1[_0x1e492c(0x140)],_0x1ab7d1['$info'])[_0x1e492c(0x154)](_0x53ed1d=>{const _0x5b9d04=_0x1e492c;!_0x53ed1d?_0x1ab7d1[_0x5b9d04(0x1cb)][_0x5b9d04(0x136)](_0x5b9d04(0x1af)):_0x1ab7d1[_0x5b9d04(0x1cb)][_0x5b9d04(0x224)](_0x5b9d04(0x1af));});},'_hideMenu'(_0x2422c8){const _0x950b71=_0x5b2ae2,_0xfbd4de=this;$(document)['off'](_0x950b71(0x22f)),_0x2422c8['hide'](),_0x2422c8[_0x950b71(0x131)]({'height':_0x950b71(0x1df)});if(_0x2422c8[_0x950b71(0x232)]['multiple']){var _0xf11bd6=[];_0x2422c8[_0x950b71(0x22d)](_0x950b71(0x1fb))[_0x950b71(0x214)](function(){const _0x33b334=_0x950b71;$(this)[_0x33b334(0x226)](_0x33b334(0x23d))&&_0xf11bd6[_0x33b334(0x1cc)]($(this)['data'](_0x33b334(0x1b3)));}),_0x2422c8['callback'](_0xf11bd6);}_0xfbd4de[_0x950b71(0x16a)]['is'](':visible')?_0xfbd4de[_0x950b71(0x140)][_0x950b71(0x194)](_0x950b71(0x132)):_0xfbd4de[_0x950b71(0x19b)][_0x950b71(0x194)](_0x950b71(0x132));},'_createMenu'(_0x5d6a46,_0x8bed07,_0x2aee44){const _0x39f4dc=_0x5b2ae2;var _0x3439f6=this;const _0x1d6664=$(_0x39f4dc(0x206))[_0x39f4dc(0x136)](_0x39f4dc(0x1d0));return _0x1d6664['opts']=_0x8bed07,_0x1d6664[_0x39f4dc(0x177)]=_0x2aee44,_0x5d6a46[_0x39f4dc(0x195)](_0x55e649=>{const _0x3034ab=_0x39f4dc;typeof _0x55e649===_0x3034ab(0x186)&&(_0x55e649={'value':_0x55e649,'label':_0x55e649});var _0x3ea26f=$(_0x3034ab(0x237))[_0x3034ab(0x16c)](_0x3034ab(0x1b3),_0x55e649[_0x3034ab(0x1b3)])[_0x3034ab(0x14f)](_0x1d6664);_0x55e649[_0x3034ab(0x1e7)]&&_0x3ea26f[_0x3034ab(0x137)](_0x55e649[_0x3034ab(0x1e7)]);_0x55e649['title']&&_0x3ea26f[_0x3034ab(0x226)]('title',_0x55e649['title']);if(_0x55e649[_0x3034ab(0x157)]){if(_0x55e649[_0x3034ab(0x157)][_0x3034ab(0x1e6)]('<')===0x0)$(_0x55e649['icon'])[_0x3034ab(0x229)](_0x3ea26f);else _0x55e649[_0x3034ab(0x157)][_0x3034ab(0x1e6)]('/')!==-0x1?$(_0x3034ab(0x1a7),{'class':_0x3034ab(0x1c1),'style':_0x3034ab(0x1d7)+_0x55e649[_0x3034ab(0x157)]+_0x3034ab(0x1c3)+_0x55e649[_0x3034ab(0x157)]+');'})[_0x3034ab(0x229)](_0x3ea26f):$(_0x3034ab(0x1a7),{'class':'red-ui-typedInput-icon\x20'+_0x55e649[_0x3034ab(0x157)]})[_0x3034ab(0x229)](_0x3ea26f);}else _0x3ea26f[_0x3034ab(0x131)]({'paddingLeft':_0x3034ab(0x22e)});!_0x55e649['icon']&&!_0x55e649['label']&&_0x3ea26f[_0x3034ab(0x137)](_0x55e649[_0x3034ab(0x1b3)]);var _0x550c2f;_0x8bed07[_0x3034ab(0x1f3)]&&(_0x550c2f=$(_0x3034ab(0x192))[_0x3034ab(0x131)](_0x3034ab(0x123),_0x3034ab(0x1f8))['data'](_0x3034ab(0x1b3),_0x55e649[_0x3034ab(0x1b3)])['prependTo'](_0x3ea26f)['on'](_0x3034ab(0x16f),function(_0x50e3ed){const _0x3414b8=_0x3034ab;_0x50e3ed[_0x3414b8(0x189)]();})),_0x3ea26f['on'](_0x3034ab(0x1a2),function(_0x3cc984){const _0x41d603=_0x3034ab;_0x3cc984[_0x41d603(0x189)](),_0x3cc984[_0x41d603(0x236)](),!_0x8bed07[_0x41d603(0x1f3)]?(_0x2aee44(_0x55e649[_0x41d603(0x1b3)]),_0x3439f6['_hideMenu'](_0x1d6664)):_0x550c2f['prop']('checked',!_0x550c2f[_0x41d603(0x226)]('checked'));});}),_0x1d6664['css']({'display':_0x39f4dc(0x1f8)}),_0x1d6664['on'](_0x39f4dc(0x20c),function(_0x384c34){const _0x15d719=_0x39f4dc;if(_0x384c34[_0x15d719(0x130)]===0x28)_0x384c34[_0x15d719(0x189)](),$(this)['children'](_0x15d719(0x225))[_0x15d719(0x197)]()[_0x15d719(0x194)]('focus');else{if(_0x384c34[_0x15d719(0x130)]===0x26)_0x384c34['preventDefault'](),$(this)[_0x15d719(0x15d)](_0x15d719(0x225))[_0x15d719(0x190)]()[_0x15d719(0x194)](_0x15d719(0x132));else _0x384c34['keyCode']===0x1b&&(_0x384c34[_0x15d719(0x189)](),_0x3439f6['_hideMenu'](_0x1d6664));}_0x384c34['stopPropagation']();}),_0x1d6664;},'disarmClick':![],'_showMenu'(_0x29cb92,_0x397c25){const _0xbd04dc=_0x5b2ae2;if(this[_0xbd04dc(0x1d9)]){this[_0xbd04dc(0x1d9)]=![];return;}var _0x1bf9df=this,_0x522a54=_0x397c25[_0xbd04dc(0x152)](),_0x25cb7d=_0x397c25[_0xbd04dc(0x1ea)](),_0x3e9ecf=_0x29cb92[_0xbd04dc(0x1ea)](),_0x269892=_0x25cb7d+_0x522a54['top'];_0x269892+_0x3e9ecf-$(document)['scrollTop']()>$(window)[_0xbd04dc(0x1ea)]()&&(_0x269892-=_0x269892+_0x3e9ecf-$(window)[_0xbd04dc(0x1ea)]()+0x5),_0x269892<0x0&&(_0x29cb92['height'](_0x3e9ecf+_0x269892),_0x269892=0x0),_0x29cb92[_0xbd04dc(0x131)]({'top':_0x269892+'px','left':_0x522a54[_0xbd04dc(0x23f)]+'px'}),_0x29cb92[_0xbd04dc(0x1dc)](0x64),this[_0xbd04dc(0x23a)](function(){const _0x46684e=_0xbd04dc;_0x1bf9df[_0x46684e(0x201)][_0x46684e(0x136)]('red-ui-typedInput-focus'),$(document)['on']('mousedown.red-ui-typedInput-close-property-select',function(_0x43bbbe){const _0x4de29c=_0x46684e;!$(_0x43bbbe[_0x4de29c(0x15e)])[_0x4de29c(0x165)](_0x29cb92)[_0x4de29c(0x215)]&&_0x1bf9df['_hideMenu'](_0x29cb92),$(_0x43bbbe[_0x4de29c(0x15e)])[_0x4de29c(0x165)](_0x397c25)[_0x4de29c(0x215)]&&(_0x1bf9df[_0x4de29c(0x1d9)]=!![],_0x43bbbe['preventDefault']());});});},'_showTypeMenu'(){const _0x17a85a=_0x5b2ae2,_0x371cfe=this;this['_showMenu'](_0x371cfe[_0x17a85a(0x1e8)],_0x371cfe['$combo']),_0x371cfe['$dropdown'][_0x17a85a(0x12e)]();const _0x53ded4=_0x371cfe[_0x17a85a(0x23c)];var _0x445f1e=_0x371cfe[_0x17a85a(0x1e8)]['find']('[value=\x27'+_0x53ded4+'\x27');setTimeout(function(){const _0x1c2bfa=_0x17a85a;_0x445f1e[_0x1c2bfa(0x194)](_0x1c2bfa(0x132));},0x78);},'_initMenu'(){const _0x20e79f=_0x5b2ae2,_0x4da666=this;_0x4da666[_0x20e79f(0x19b)][_0x20e79f(0x16c)](_0x20e79f(0x129),-0x1),_0x4da666[_0x20e79f(0x19b)]['on'](_0x20e79f(0x1be),function(_0x2cf5c0){const _0x1069ab=_0x20e79f;_0x2cf5c0[_0x1069ab(0x189)]();});_0x4da666[_0x20e79f(0x1e8)]&&_0x4da666[_0x20e79f(0x1e8)][_0x20e79f(0x185)]();const _0x539ba2=[{'label':_0x20e79f(0x137),'value':'t','title':_0x20e79f(0x207),'icon':'<i\x20class=\x22fa\x20fa-font\x22/i>\x20'},{'label':_0x20e79f(0x159),'value':_0x20e79f(0x15c),'title':_0x20e79f(0x1a6),'icon':_0x20e79f(0x21b)},{'label':_0x20e79f(0x16b),'value':'n','icon':_0x20e79f(0x1d5)},{'label':_0x20e79f(0x199),'value':'na','icon':_0x20e79f(0x1e5)},{'label':_0x20e79f(0x1c5),'value':_0x20e79f(0x240),'icon':'<i\x20class=\x22fa\x20fa-id-card\x22/>&nbsp;\x20'},{'label':_0x20e79f(0x14a),'value':'b','icon':_0x20e79f(0x1d1)},{'label':_0x20e79f(0x176),'value':'ab','icon':_0x20e79f(0x1d8)}],_0x994098=_0x48a1f8(_0x4da666[_0x20e79f(0x140)][_0x20e79f(0x172)]()),_0x339f22=_0x539ba2[_0x20e79f(0x22d)](_0x5b85da=>_0x5b85da[_0x20e79f(0x1b3)]===_0x994098);_0x4da666[_0x20e79f(0x17c)][_0x20e79f(0x1ed)]()[_0x20e79f(0x1a1)](_0x20e79f(0x1c7)+((_0x339f22===null||_0x339f22===void 0x0?void 0x0:_0x339f22[_0x20e79f(0x1e3)])||'')+_0x20e79f(0x1b8)+((_0x339f22===null||_0x339f22===void 0x0?void 0x0:_0x339f22['icon'])||'')+'</span>'),_0x4da666[_0x20e79f(0x23c)]=_0x994098;const _0x32860c=this;_0x4da666[_0x20e79f(0x1e8)]=this['_createMenu'](_0x539ba2,{},_0x227724=>{const _0x302f19=_0x20e79f,_0x189d18=_0x57627e(_0x227724);_0x189d18&&_0x32860c[_0x302f19(0x212)](_0x189d18);const _0x13c385=_0x539ba2[_0x302f19(0x22d)](_0x4d1221=>_0x4d1221[_0x302f19(0x1b3)]===_0x227724);_0x4da666[_0x302f19(0x23c)]=_0x227724,_0x4da666[_0x302f19(0x17c)][_0x302f19(0x1ed)]()[_0x302f19(0x1a1)](_0x302f19(0x1c7)+((_0x13c385===null||_0x13c385===void 0x0?void 0x0:_0x13c385[_0x302f19(0x1e3)])||'')+_0x302f19(0x1b8)+((_0x13c385===null||_0x13c385===void 0x0?void 0x0:_0x13c385[_0x302f19(0x157)])||'')+_0x302f19(0x1de));}),_0x4da666[_0x20e79f(0x1e8)]['appendTo'](document[_0x20e79f(0x188)]),_0x4da666[_0x20e79f(0x1e8)]['hide'](),_0x4da666[_0x20e79f(0x19b)][_0x20e79f(0x141)]();},'mode'(){const _0x2076ad=_0x5b2ae2,_0x2e6aa1=this;return _0x57627e(_0x2e6aa1[_0x2076ad(0x23c)]);},'setMode'(_0xe1eb03){const _0x4abe9e=_0x5b2ae2,_0x4a55de=this,_0x4450d9=_0x3fc18b(_0xe1eb03);_0x4a55de[_0x4abe9e(0x23c)]=_0x4450d9;},'_create'(){const _0x449dc2=_0x5b2ae2,_0x147e92=this;_0x147e92[_0x449dc2(0x140)]=this['element'],_0x147e92[_0x449dc2(0x140)][_0x449dc2(0x131)](_0x449dc2(0x230),'none'),_0x147e92[_0x449dc2(0x16a)]=_0x147e92[_0x449dc2(0x140)][_0x449dc2(0x162)]('<div>')[_0x449dc2(0x204)]()[_0x449dc2(0x136)](_0x449dc2(0x11f)),_0x147e92[_0x449dc2(0x1cb)]=$(_0x449dc2(0x13e)),_0x147e92[_0x449dc2(0x1cb)][_0x449dc2(0x136)]('sterfive-combo-box'),_0x147e92[_0x449dc2(0x140)][_0x449dc2(0x1fc)](_0x147e92['$combo']),_0x147e92[_0x449dc2(0x1bc)]=$(_0x449dc2(0x13e))[_0x449dc2(0x136)](_0x449dc2(0x1dd)),_0x147e92['$combo'][_0x449dc2(0x1a1)](_0x147e92[_0x449dc2(0x1bc)]),_0x147e92['$inputGroup'][_0x449dc2(0x1a1)](_0x147e92[_0x449dc2(0x140)]),_0x147e92[_0x449dc2(0x1ab)]=$(_0x449dc2(0x1bb)),_0x147e92['$input']['after'](_0x147e92[_0x449dc2(0x1ab)]),_0x147e92[_0x449dc2(0x1ab)]['on'](_0x449dc2(0x1a2),function(){return _0x46bfd3(this,void 0x0,void 0x0,function*(){const _0x465272=_0xf61a;var _0x39b3e7;let _0xa0ace8=![],_0x34efe5;!_0x147e92[_0x465272(0x1ee)]['is'](_0x465272(0x210))&&(_0x147e92[_0x465272(0x1ef)][_0x465272(0x12e)](),_0x34efe5=yield _0x147e92[_0x465272(0x1ff)](),(_0x34efe5!==_0x147e92[_0x465272(0x12f)]||((_0x39b3e7=_0x147e92[_0x465272(0x12f)])===null||_0x39b3e7===void 0x0?void 0x0:_0x39b3e7[_0x465272(0x167)])!==_0x34efe5[_0x465272(0x167)])&&(yield _0x147e92[_0x465272(0x19a)]()),_0xa0ace8=!![]),_0x147e92[_0x465272(0x1ee)][_0x465272(0x149)](),_0xa0ace8&&(yield _0x175786(_0x147e92,_0x34efe5));});}),_0x147e92[_0x449dc2(0x168)]=$(_0x449dc2(0x233)),_0x147e92[_0x449dc2(0x140)][_0x449dc2(0x20e)](_0x147e92[_0x449dc2(0x168)]),_0x147e92[_0x449dc2(0x168)]['on'](_0x449dc2(0x1a2),()=>{const _0xfc5dc4=_0x449dc2,_0x50fc92=_0x147e92[_0xfc5dc4(0x169)]();if(!_0x50fc92)return;this[_0xfc5dc4(0x212)](_0x50fc92);});const _0x245064=_0x2fb2b6=>_0x46bfd3(this,void 0x0,void 0x0,function*(){const _0x2b2752=_0x449dc2,_0x331e3b=this;let _0x175442=_0x331e3b[_0x2b2752(0x169)]();if(!_0x175442)return;const _0x67d905=_0x1523cf(_0x331e3b),{data:_0xb4b2c3,json:_0x528b7d}=yield _0x592f6e(_0x67d905,_0x2fb2b6);if(_0xb4b2c3[_0x2b2752(0x21a)]!==0xc8)return;if(_0x528b7d['statusCode'][_0x2b2752(0x1bd)](/Good/)){const _0x4ee176=_0x1140b6(_0x528b7d,_0x175442);_0x331e3b['$input'][_0x2b2752(0x172)](_0x4ee176),_0x331e3b['$input'][_0x2b2752(0x194)]('change');}});{_0x147e92[_0x449dc2(0x201)]=$(_0x449dc2(0x206)),_0x147e92[_0x449dc2(0x140)][_0x449dc2(0x1d3)](_0x147e92[_0x449dc2(0x201)]),_0x147e92[_0x449dc2(0x19b)]=$(_0x449dc2(0x1ac))[_0x449dc2(0x229)](_0x147e92[_0x449dc2(0x201)]),$('<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>')[_0x449dc2(0x149)](!![])['appendTo'](_0x147e92[_0x449dc2(0x19b)]),_0x147e92[_0x449dc2(0x19b)]['on']('click',function(_0x138643){const _0xa638d8=_0x449dc2;_0x138643['preventDefault'](),_0x138643[_0xa638d8(0x236)](),_0x147e92[_0xa638d8(0x20a)]();}),_0x147e92['$selectTrigger']['on'](_0x449dc2(0x20c),function(_0xa6d98){const _0x13c741=_0x449dc2;_0xa6d98[_0x13c741(0x130)]===0x28&&_0x147e92[_0x13c741(0x20a)](),_0xa6d98[_0x13c741(0x236)]();})['on'](_0x449dc2(0x132),function(){const _0x4b562e=_0x449dc2;_0x147e92[_0x4b562e(0x201)][_0x4b562e(0x136)](_0x4b562e(0x182));})['on'](_0x449dc2(0x208),function(){const _0x3a446d=_0x449dc2;_0x147e92[_0x3a446d(0x201)]['removeClass']('red-ui-typedInput-focus');}),_0x147e92[_0x449dc2(0x17c)]=$(_0x449dc2(0x1db))['appendTo'](_0x147e92['$selectTrigger']);}this[_0x449dc2(0x193)]();!_0x147e92[_0x449dc2(0x140)][_0x449dc2(0x16c)](_0x449dc2(0x155))&&_0x147e92['$input']['attr'](_0x449dc2(0x155),_0x449dc2(0x223));_0x147e92[_0x449dc2(0x1ef)]=$(_0x449dc2(0x17a)),_0x147e92[_0x449dc2(0x1ef)][_0x449dc2(0x12e)](),_0x147e92[_0x449dc2(0x1cb)]['append'](_0x147e92[_0x449dc2(0x1ef)]),_0x147e92['$dropdown']=$(_0x449dc2(0x13e))[_0x449dc2(0x136)](_0x449dc2(0x158))[_0x449dc2(0x12e)]()[_0x449dc2(0x14f)](_0x147e92[_0x449dc2(0x1cb)]),_0x147e92[_0x449dc2(0x1b4)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x449dc2(0x14f)](_0x147e92[_0x449dc2(0x1ee)]),this['reset']();const _0x424d9f=(_0x32c27d,_0x475b38)=>{const _0x1a98ee=_0x449dc2,_0x751b9c=0x14,_0x70a223=0x14,_0x39b070=_0x32c27d[_0x1a98ee(0x152)](),_0x4efaa5=_0x475b38;if(_0x4efaa5['pageX']>=_0x39b070[_0x1a98ee(0x23f)]&&_0x4efaa5['pageX']<=_0x39b070[_0x1a98ee(0x23f)]+_0x751b9c&&_0x4efaa5['pageY']>=_0x39b070[_0x1a98ee(0x1cd)]&&_0x4efaa5['pageY']<=_0x39b070[_0x1a98ee(0x1cd)]+_0x70a223)return!![];return![];},_0xce592f=_0x4e4af5=>_0x46bfd3(this,void 0x0,void 0x0,function*(){const _0x205c29=_0x449dc2;if(_0x4e4af5['hasClass'](_0x205c29(0x1d4)))_0x1fbc7d(_0x147e92,_0x4e4af5);else{if(_0x4e4af5[_0x205c29(0x1a5)](_0x205c29(0x175)))_0x4e4af5[_0x205c29(0x15d)]('ul')[_0x205c29(0x149)](),_0x4e4af5['toggleClass'](_0x205c29(0x18d));else{if(_0x4e4af5[_0x205c29(0x15d)]('ul')[_0x205c29(0x15d)]()[_0x205c29(0x215)]>0x0)_0x4e4af5['children']('ul')[_0x205c29(0x149)](),_0x4e4af5[_0x205c29(0x1a0)](_0x205c29(0x18d));else;}}});_0x147e92[_0x449dc2(0x1b4)]['on'](_0x449dc2(0x1f2),'li',function(_0xadef31){const _0x1e5705=_0x449dc2;var _0x100a10,_0x14e99e;_0xadef31[_0x1e5705(0x236)]();let _0x5c85a7=$(this);if(_0x424d9f(_0x5c85a7,_0xadef31))_0xce592f(_0x5c85a7);else{const _0x504d4d=_0x5c85a7[_0x1e5705(0x213)](_0x1e5705(0x1b3)),_0x1e22d5=_0x5c85a7[_0x1e5705(0x213)]('reference');if(_0x147e92[_0x1e5705(0x17b)][_0x1e5705(0x1f9)]&&!_0x147e92[_0x1e5705(0x17b)][_0x1e5705(0x1f9)](_0x1e22d5))return;_0x147e92[_0x1e5705(0x140)][_0x1e5705(0x213)](_0x1e5705(0x19e),_0x1e22d5),((_0x100a10=_0x1e22d5['displayName'])===null||_0x100a10===void 0x0?void 0x0:_0x100a10['text'])||((_0x14e99e=_0x1e22d5[_0x1e5705(0x18a)])===null||_0x14e99e===void 0x0?void 0x0:_0x14e99e[_0x1e5705(0x20b)])||_0x1e22d5['nodeId'][_0x1e5705(0x18f)]();let _0x4bd394=_0x147e92[_0x1e5705(0x169)]();!_0x4bd394&&(_0x4bd394=_0x1e5705(0x167),_0x147e92[_0x1e5705(0x12c)](_0x4bd394)),_0x245064(_0x504d4d)['then'](()=>{const _0x538bf8=_0x1e5705;_0x147e92[_0x538bf8(0x1ee)]['hide']();})[_0x1e5705(0x1a4)](_0x2e08bf=>{const _0x1fc30b=_0x1e5705;_0x147e92[_0x1fc30b(0x1ee)]['hide']();});}}),_0x147e92[_0x449dc2(0x1b4)]['on']('click','li',function(_0x16ea5d){_0x16ea5d['stopPropagation']();let _0x108ca3=$(this);_0x424d9f(_0x108ca3,_0x16ea5d)&&_0xce592f(_0x108ca3),_0x214c4d(_0x147e92,_0x108ca3);}),$(document)['on']('click',function(_0x2fdf9a){const _0x3956a8=_0x449dc2;!$(_0x2fdf9a[_0x3956a8(0x15e)])['closest'](_0x147e92['$combo'])[_0x3956a8(0x215)]&&_0x147e92[_0x3956a8(0x1ee)][_0x3956a8(0x12e)]();});}});},_0x3ccc63=()=>{const _0x2adde5=_0x3afc0f,_0x535a51=$(_0x2adde5(0x16d)),_0x2d4174=_0x535a51[_0x2adde5(0x172)](),_0x1f7a6f=RED[_0x2adde5(0x166)]['node'](_0x2d4174);if(!_0x1f7a6f)return undefined;const {endpoint:_0x3db4c0,securityMode:_0x53ab97,securityPolicy:_0x428927,userIdentityType:_0x519ccd,credentials:_0x4ada5a,namespaceAliases:_0x1e2aab}=_0x1f7a6f,_0x25f5b7={'endpoint':_0x3db4c0,'securityMode':_0x53ab97,'securityPolicy':_0x428927,'userIdentityType':_0x519ccd,'credentials':_0x4ada5a,'namespaceAliases':_0x1e2aab};return _0x25f5b7;},_0x2352ba=()=>{const _0x1be965=_0x3afc0f,_0x3b5012=$(_0x1be965(0x16d)),_0x1f2b0d=_0x3b5012['val'](),_0x351396=_0x3ccc63();if(!_0x351396)return undefined;const _0x3918b1=_0x351396[_0x1be965(0x239)];return Object[_0x1be965(0x139)]({'namespaceAliases':_0x3918b1,'id':_0x1f2b0d},_0x351396);},_0x2e8c06=()=>{return{'endpointNode':_0x2352ba};};RED[_0x3afc0f(0x166)][_0x3afc0f(0x227)](_0x3afc0f(0x15b),{'category':_0x3afc0f(0x211),'color':_0x3afc0f(0x138),'align':'right','icon':'../../icons/opcuanodeLogo.png','paletteLabel':_0x3afc0f(0x124),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x3afc0f(0x13b)},'nodeId':{'value':'','required':![]},'outputType':{'value':_0x3afc0f(0x205),'required':!![]},'excludeEmpty':{'value':![]},'followOrganizes':{'value':![]}},'outputs':0x1,'label'(){const _0x457883=_0x3afc0f;return this[_0x457883(0x20b)]||'OPCUA\x20Explore';},'labelStyle'(){const _0x340b96=_0x3afc0f;return this['name']?_0x340b96(0x1e9):'';},'oneditprepare'(){const _0x3f4cbc=_0x3afc0f,_0x201258=this;_0x5da92c(),_0x201258[_0x3f4cbc(0x1f0)]=0x1;const _0x3304e9=$(_0x3f4cbc(0x1a9));_0x3304e9[_0x3f4cbc(0x1b7)](Object[_0x3f4cbc(0x139)](Object[_0x3f4cbc(0x139)]({},_0x2e8c06()),{'isSelectable'(_0x5eb109){const _0x35120c=_0x3f4cbc;return _0x5eb109[_0x35120c(0x238)]===_0x35120c(0x181)||_0x5eb109[_0x35120c(0x238)]==='Object';}}));},'oneditsave'(){}});}()));function _0x505a(){const _0x3370d0=['message','Good','sort','json','SteelBlue','Both','/checkNodeId','toggle','BrowsePath','log','nsu\x20nodeId:\x20','scrollTop','<div\x20class=\x22spinner\x22></div>','appendTo','ObjectType',':first','offset','function','then','placeholder','call','icon','sterfive-dropdown','msg.','HasSubtype','OpcUa-Client2-Explore','msg','children','target','.tree-text:first','CadetBlue','/walk-backward','wrap','suppressed','SuppressedError','closest','nodes','nodeId','$verifyBtn','mode','$elementDiv','NodeId','attr','#node-input-endpoint','bp_aliased','mousedown','2214751PxzHgP','HasProperty','val','__parentNode','DataType','expanded','Aliased\x20Browse\x20Path','callback','DisplayName','ns=0;i=45','<div\x20class=\x22info-text\x22></div>','options','$selectLabel','grey','relativePath','Method','!!failure!!','Variable','red-ui-typedInput-focus','references','fetched','remove','string','View','body','preventDefault','browseName','application/json','selected','expandable\x20expanded','DodgerBlue','toString','prev','ns=0;i=40','<input\x20type=\x22checkbox\x22>','_initMenu','trigger','forEach','browsePath','next','already\x20loading','Aliased\x20NodeId','reset','$selectTrigger','parentNode',';\x22></i>\x20','reference','494945JlxhGS','toggleClass','append','click','1729632ImCdrO','catch','hasClass','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','<i>','fa-list-alt','#node-input-nodeId','statusCode','$toggleTreeBtn','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','i=61','li\x20>\x20.tree-text','input-error','ReferenceType','done','fetching\x20failed\x20with\x20error','value','$tree','filter','error','nodeBrowser','>&nbsp;\x20','endpointNode','fa-folder','<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','$inputGroup','match','mousedown.red-ui-typedInput-focus-block','aliasedNodeId','Organizes','red-ui-typedInput-icon','HasComponent',');\x20-webkit-mask-image:\x20url(','POST','NodeId\x20with\x20namespace\x20Urn','browseResult','<span\x20title=','IsForward','NodeClass','aliasedBrowsePath','$combo','push','top','stringify','3992dEIPMC','sterfive-typedInput-options\x20sterfive-online-menu','<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;','6152520nKGUPV','before','expandable','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20&nbsp;\x20','.spinner','mask-image:\x20url(','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;','disarmClick','failure','<span\x20class=\x22red-ui-typedInput-type-label\x22></span>','slideDown','input-group','</span>','auto','join','SandyBrown','DarkOrange','title','24sCRWpy','<i\x20class=\x22fa\x20fa-bookmark\x22/>&nbsp;\x20','indexOf','label','$menu','node_label_italic','height','fa-text-width','typeDefinition','empty','$dropdown','$info','inputs','nsuNodeID','dblclick','multiple','ns=0;i=61','isTypeRef','</span><ul></ul></li>','throw','none','isSelectable','HasTypeDefinition','input[type=\x22checkbox\x22]','replaceWith','657aSNgUw','requestedNodeId','resolveParentNode','bp_indexed','$uiSelect','node','/browse','parent','Value','<div>','Value\x20is\x20not\x20verified','blur','ns=0;i=34','_showTypeMenu','name','keydown','aliased\x20browsePath:\x20','after','ns=0;i=85',':visible','opcua','verify','data','each','length','referenceTypeId','</li>','li[key=\x22','nodeId:\x20','status','<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>','nodeId_aliased','Object','65925dXZLnX','ns=0;i=46','nodeId_nsu','BrowseName','\x22}><span\x20class=\x22tree-text\x22\x20title=','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','removeClass',':focus','prop','registerType','sterfive-info','prependTo','Invalid','/opcua-for-node-red','browse\x20path:\x20','find','18px','mousedown.red-ui-typedInput-close-property-select','border','fa-question','opts','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','loading','displayName','stopPropagation','<a\x20href=\x22#\x22></a>','nodeClass','namespaceAliases','_delay','<li>error\x20','selectedMenuItem','checked','Objects','left','nsu','change','main-wrapper','statusCode:\x20','VariableType','Inverse','pointer-events','explore','4MppIOl','49862drfBBr','widget','statusText','tabindex','aliased\x20NodeId:\x20','animate','setMode','fa-cog','hide','currentParent','keyCode','css','focus','Unspecified','rgba(61,\x2060,\x204,\x200.525)','Forward','addClass','text','#C0DEED','assign','nodeIds','OpcUa-Endpoint2','endpoint','fa-object-group','<div/>','HasChild','$input','show'];_0x505a=function(){return _0x3370d0;};return _0x505a();}
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0NmJmZDMiLCJfMHgxOWQ3NjMiLCJfMHgyNTQyMDkiLCJfMHgxYzEyMjkiLCJfMHg1OGNkNTciLCJfMHgxZjVjNTYiLCJfMHg1MTg2ZGYiLCJfMHgzMWE5ZDUiLCJQcm9taXNlIiwiXzB4MWRjNmM3IiwiXzB4MzJkYjk0IiwiXzB4NTkxZTUwIiwiXzB4NWNmNzFjIiwiXzB4M2NhN2I0IiwiXzB4MTA1YTQ3IiwiXzB4NDEyZTQwIiwiXzB4ZTg4NTNiIiwiXzB4NDEzMWQ0IiwiXzB4ZmJjNjNhIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NTRhMjBlIiwiXzB4MzA2NmU1IiwiXzB4MmUyMWMxIiwiXzB4NDAyYWMwIiwiRXJyb3IiLCJfMHgxYjJhMzgiLCJfMHgzNWMyMTkiLCJfMHg0ZTE4MjkiLCJfMHg1YjA4OTIiLCJfMHgzYWQ4ZjIiLCJfMHg1ODk3NTYiLCJfMHgxMjQ0YjciLCJfMHg0Yzc0MTMiLCJfMHg5MTk4MWQiLCJfMHg0NTQ5ZGUiLCJfMHgzNjhiNDMiLCJfMHg0ZWViNGIiLCJfMHg1Y2UxMzMiLCJfMHgxZDdhNDUiLCJfMHg1Y2IxMjQiLCJfMHgyMjZjNCIsIl8weDNmN2NlMCIsIl8weDM2NjhhIiwiXzB4NTFhM2Y5IiwiXzB4M2JhNjA2IiwiXzB4NTIzYTY5IiwiXzB4NTMxM2RkIiwiXzB4ZGQ2ODc3IiwiZW5kcG9pbnROb2RlIiwiXzB4MmEyYzcyIiwiZW5kcG9pbnQiLCJfMHg1OWM0NWEiLCJiYXNlVXJsIiwiXzB4NjdjMDk1IiwiXzB4ODkxNTY0IiwiXzB4MmQ5NDlhIiwiXzB4NzkxN2JmIiwiXzB4MWI4ODdmIiwiXzB4MmZlMTFkIiwiT2JqZWN0IiwiXzB4MzgyNThjIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDNiNzU0ZSIsIl8weDE4M2Y2MyIsIl8weDc2N2U4OCIsIl8weGRiNWJjMCIsIl8weDQ1MDI1MiIsIl8weGRmMjE1OSIsIl8weDRjZjIyMiIsIl8weDUxZDBmOCIsIl8weDQ2ZTlkNiIsIl8weDFhNmQ4NyIsIm5vZGVJZCIsIl8weDM1YmQ1ZiIsInJvb3ROb2RlSWQiLCJfMHg0NjJlZjMiLCJpc1R5cGUiLCJfMHg0MDYzMmQiLCJfMHgyMThiZGYiLCJfMHg0OTg1ZDkiLCJfMHg1YjZjNjAiLCJfMHg1YmY3NGIiLCJfMHgxMTQwYjYiLCJfMHg1OGNhZjciLCJfMHgyYWRmNTIiLCJfMHgyMzdkMmYiLCJfMHgzMDhmMTgiLCJfMHgxMzA5MWUiLCJfMHg1MmMyMzIiLCJfMHg0MjViNjEiLCJfMHg0OGExZjgiLCJfMHgzMmQ3ZDgiLCJfMHgyZjc2YTciLCJfMHg1NzYyN2UiLCJfMHgyODQ2NGQiLCJfMHgzYjY4MmIiLCJfMHgzZmMxOGIiLCJfMHgyMjM2NmQiLCJfMHg1OTJmNmUiLCJfMHhkNmMzZjMiLCJfMHg4ZWIxZDciLCJfMHhjMjhhOCIsIl8weDJmYjhkNCIsIl8weDI3ZTYwNCIsIl8weDM3N2JjNyIsIl8weDQ2YTFiMyIsIl8weDFjM2U1YSIsIl8weDQ5NDE0YyIsIl8weDI5N2ZhZiIsIlJFRCIsIl8weDEzMzMxMyIsIl8weDMyODg4MiIsIl8weDE0YTM4MCIsIl8weDQyMzkyOCIsIl8weDQ1MmM2MCIsIl8weDNkMmYxZCIsIl8weDE1ZTcwYyIsIl8weDIwMjQ0NiIsIl8weDM2MzViNCIsIl8weDU1YjM1OCIsIl8weDM1Zjg1NyIsIl8weDJmODk2ZSIsIl8weDE4MTllMCIsIl8weDI2MWZkZCIsIl8weGRiNjRjMSIsImpzb24iLCJfMHgzYWUzMjEiLCJkYXRhIiwiXzB4Mjc0OGU0IiwiXzB4MWMzMjA0IiwiXzB4NTEzMWE1IiwiXzB4M2EwNDY4Iiwic2V0VGltZW91dCIsIl8weDQwODY5YiIsIl8weDViOTYzMyIsIl8weDQ1YmVkNyIsIl8weDRiMmM2NiIsIl8weDIyZjZmZiIsIl8weDQ1NDQ0YyIsIl8weDE3MDUzYiIsIl8weDRkNzQ0MiIsIl8weDQxOTk5MSIsIl8weDMwZTk1MSIsIl8weDJiZjlkOCIsIl8weDU3MDUzYSIsIl8weDRmZGEwMCIsIl8weDFkZWM4YSIsIl8weDQxNWExMyIsIl8weDNkYmNlNiIsIl8weDEzYzEzYSIsIl8weDViMTg4OCIsIl8weDUxNmRlYSIsIl8weDM4MjE2OCIsIl8weDEyNDQ5ZCIsIiQiLCJfMHgzODMxNDgiLCJfMHgzZWM2MWQiLCJpY29uIiwiXzB4ZDkyOTNiIiwiY29sb3IiLCJfMHgyNzZhOTMiLCJfMHg0NTNjMzQiLCJfMHhlNTEwNmIiLCJfMHg1ZWM3YmUiLCJfMHgyNTcwZWUiLCJfMHgyZTBlYjAiLCJfMHgyMTRjNGQiLCJfMHg1NmM4NmYiLCJfMHg0NDc3YzIiLCJfMHgzMTQ2OTkiLCJfMHg1YzllNGMiLCJfMHg1NTg3ZDkiLCJfMHgzMGQ4YjMiLCJfMHgyNGZiZTUiLCJfMHgyZDY0NDgiLCJfMHgyMTBhNDIiLCJfMHgxZmJjN2QiLCJfMHg0MTlmZmIiLCJfMHhlOTU4NmUiLCJfMHgyOWQ5NjIiLCJfMHgzYTQ2YzIiLCJfMHgzOTYxZjQiLCJfMHgzMWJmZTMiLCJ1bmRlZmluZWQiLCJfMHg1MmFkYWMiLCJfMHgxNzU3ODYiLCJfMHg0ZjMwNmMiLCJfMHg2ZWFmZWUiLCJfMHhmYTUyODAiLCJfMHhlZmE0ZDkiLCJfMHgxYTFkMTUiLCJfMHgxNTIzY2YiLCJfMHgxYzAyY2EiLCJfMHg0NDM0MTgiLCJfMHg1MmY3OWYiLCJfMHgxOGMxMjMiLCJfMHgyMDRmNDYiLCJfMHgxNTJjY2YiLCJyZWZlcmVuY2VzIiwiXzB4YmFiY2IiLCJfMHg0ODEyYWQiLCJfMHg0NzIyMmYiLCJfMHg1OTAxZTQiLCJfMHgyM2E2MDAiLCJfMHgxODhlZjEiLCJfMHgzODkxMzEiLCJfMHgxMTBlMjgiLCJfMHgzM2ZmZWEiLCJfMHgxNmMyMTUiLCJfMHg1ZGQ4NTEiLCJfMHg0ZWFiYmEiLCJfMHgyZDc1YWEiLCJfMHgxZWFjYzkiLCJfMHg0OGVjMTkiLCJfMHgyNzYwNGEiLCJfMHg1ZGE5MmMiLCJfMHg1MjE2OTAiLCJfMHg0ZTkxN2MiLCJfMHgzZTRlOTMiLCJfMHg5NGZlZDciLCJfMHgyMTRmMzgiLCJfMHgyNzIzMjkiLCJfMHg0NDhmYjEiLCJfMHg1YTZhNGMiLCJfMHgxYWI3ZDEiLCJfMHg0NTBhZmMiLCJfMHg1M2VkMWQiLCJfMHgyNDIyYzgiLCJfMHhmYmQ0ZGUiLCJkb2N1bWVudCIsIl8weGYxMWJkNiIsIl8weDVkNmE0NiIsIl8weDhiZWQwNyIsIl8weDJhZWU0NCIsIl8weDM0MzlmNiIsIl8weDFkNjY2NCIsIl8weDU1ZTY0OSIsIl8weDNlYTI2ZiIsIl8weDU1MGMyZiIsIl8weDUwZTNlZCIsIl8weDNjYzk4NCIsIl8weDM4NGMzNCIsIl8weDI5Y2I5MiIsIl8weDM5N2MyNSIsIl8weDFiZjlkZiIsIl8weDUyMmE1NCIsIl8weDI1Y2I3ZCIsIl8weDNlOWVjZiIsIl8weDI2OTg5MiIsIndpbmRvdyIsIl8weDQzYmJiZSIsIl8weDM3MWNmZSIsIl8weDUzZGVkNCIsIl8weDQ0NWYxZSIsIl8weDRkYTY2NiIsIl8weDJjZjVjMCIsIl8weDUzOWJhMiIsIl8weDk5NDA5OCIsIl8weDMzOWYyMiIsIl8weDViODVkYSIsIl8weDMyODYwYyIsIl8weDIyNzcyNCIsIl8weDE4OWQxOCIsIl8weDEzYzM4NSIsIl8weDRkMTIyMSIsIl8weDJlNmFhMSIsIl8weGUxZWIwMyIsIl8weDRhNTVkZSIsIl8weDQ0NTBkOSIsIl8weDE0N2U5MiIsIl8weDM5YjNlNyIsIl8weGEwYWNlOCIsIl8weDM0ZWZlNSIsIl8weDUwZmM5MiIsIl8weDI0NTA2NCIsIl8weDJmYjJiNiIsIl8weDMzMWUzYiIsIl8weDE3NTQ0MiIsIl8weDY3ZDkwNSIsIl8weGI0YjJjMyIsIl8weDUyOGI3ZCIsIl8weDRlZTE3NiIsIl8weDEzODY0MyIsIl8weGE2ZDk4IiwiXzB4NDI0ZDlmIiwiXzB4MzJjMjdkIiwiXzB4NDc1YjM4IiwiXzB4NzUxYjljIiwiXzB4NzBhMjIzIiwiXzB4MzliMDcwIiwiXzB4NGVmYWE1IiwiXzB4Y2U1OTJmIiwiXzB4NGU0YWY1IiwiXzB4YWRlZjMxIiwiXzB4MTAwYTEwIiwiXzB4MTRlOTllIiwiXzB4NWM4NWE3IiwiXzB4NTA0ZDRkIiwiXzB4MWUyMmQ1IiwiXzB4NGJkMzk0IiwiXzB4MmUwOGJmIiwiXzB4MTZlYTVkIiwiXzB4MTA4Y2EzIiwiXzB4MmZkZjlhIiwiXzB4M2NjYzYzIiwiXzB4NTM1YTUxIiwiXzB4MmQ0MTc0IiwiXzB4MWY3YTZmIiwiXzB4M2RiNGMwIiwic2VjdXJpdHlNb2RlIiwiXzB4NTNhYjk3Iiwic2VjdXJpdHlQb2xpY3kiLCJfMHg0Mjg5MjciLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4NTE5Y2NkIiwiY3JlZGVudGlhbHMiLCJfMHg0YWRhNWEiLCJuYW1lc3BhY2VBbGlhc2VzIiwiXzB4MWUyYWFiIiwiXzB4MjVmNWI3IiwiXzB4MjM1MmJhIiwiXzB4M2I1MDEyIiwiXzB4MWYyYjBkIiwiXzB4MzUxMzk2IiwiXzB4MzkxOGIxIiwiXzB4MmU4YzA2IiwiXzB4MjAxMjU4IiwiXzB4MzMwNGU5IiwiXzB4NWViMTA5Il0sIm1hcHBpbmdzIjoibXlCQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLHlCQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLHlCQUEyQixHLENBQU1ILFNBQUEs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LEMsY0FLNUMsQyxnQkFMNEMsQyxVQU01QyxDQUFVLEMsUUFDTixDQUFRLEMsT0FBRSxDLEdBQUYsQ0FERixDLFFBRU4sQ0FBUSxDLE9BQUUsQyxHQUFGLENBRkYsQyxNQUlOLENBQU0sQyxPQUFFLEMsRUFBRixDQUpBLEMsVUFLTixDQUFVLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsSUFBYixDLE1BQTZCLEMsZ0JBQTdCLENBTEosQyxRQU9OLENBQVEsQyxPQUFFLEMsRUFBRixDLFVBQWEsQyxHQUFiLENBUEYsQyxZQVFOLENBQVksQyxPQUFFLEMsZ0JBQUYsQyxVQUFrQixDLElBQWxCLENBUk4sQyxjQVNOLENBQWMsQyxPQUFFLEMsR0FBRixDQVRSLEMsaUJBV04sQ0FBaUIsQyxPQUFFLEMsR0FBRixDQVhYLENBTmtDLEMsU0FtQjVDLEMsR0FuQjRDLEMsT0FvQjVDLEUsa0NBQ1csSyxnQkFBQSxHLG9CQXJCaUMsQyxZQXVCNUMsRSxrQ0FDVyxLLE1BQUEsRSxnQkFBQSxDLElBeEJpQyxDLGVBMEI1QyxFLDJCQUNVeU4sU0FBQSxDQUFPLEksQ0FDYi9HLFNBQUEsRSxDQUNBK0csU0FBQSxDLGdCQUFBLEUsR0FEQSxDQUVBLE1BQU1DLFNBQUEsQ0FBVTdLLENBQUEsQyxnQkFBQSxDQUFoQixDQUNBNkssU0FBQSxDLGdCQUFBLEVBQW9COVEsTUFBQSxDLGdCQUFBLEVBQWNBLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0I0USxTQUFBLEVBQWxCLENBQWQsQ0FBaUUsQyxjQUFFLENBQWFHLFNBQWIsQyxrQ0FDeEVBLFNBQUEsQyxnQkFBQSxJLGdCQUFBLEVBQXFDQSxTQUFBLEMsZ0JBQUEsSSxVQURpQyxDQUFqRSxDQUFwQixDLEVBL0J3QyxDLFlBbUM1QyxFLEVBbkM0QyxDQUFoRCxDLEVBbmhDSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoX2EsIF9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIF9iXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBjaG9vc2VOb2RlSWQgPSAoZGF0YSwgbW9kZSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXNDb2RlICE9PSBcIkdvb2RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGEucmVxdWVzdGVkTm9kZUlkO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5icF9pbmRleGVkO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWRCcm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuYnBfYWxpYXNlZCB8fCBkYXRhLmJwX2luZGV4ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZF9hbGlhc2VkIHx8IGRhdGEubm9kZUlkX25zdTtcbiAgICAgICAgICAgIGNhc2UgXCJuc3VOb2RlSURcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWRfbnN1O1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWQ7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG1ha2VUb29sdGlwID0gKGRhdGEpID0+IHtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzQ29kZSAhPT0gXCJHb29kXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBgc3RhdHVzQ29kZTogJHtkYXRhLnN0YXR1c0NvZGV9YDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxldCBzdHIgPSBbXTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBub2RlSWQ6ICR7ZGF0YS5ub2RlSWR9YCk7XG4gICAgICAgICAgICBzdHIucHVzaChgYnJvd3NlIHBhdGg6ICR7ZGF0YS5icF9pbmRleGVkfWApO1xuICAgICAgICAgICAgc3RyLnB1c2goYG5vZGUgY2xhc3M6ICR7Tm9kZUNsYXNzW2RhdGEubm9kZUNsYXNzXX1gKTtcbiAgICAgICAgICAgIGlmIChkYXRhLm5vZGVJZF9uc3UpIHtcbiAgICAgICAgICAgICAgICBzdHIucHVzaChgbnN1IG5vZGVJZDogJHtkYXRhLm5vZGVJZF9uc3V9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5ub2RlSWRfYWxpYXNlZCkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBhbGlhc2VkIE5vZGVJZDogJHtkYXRhLm5vZGVJZF9hbGlhc2VkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuYnBfaW5kZXhlZCkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBhbGlhc2VkIGJyb3dzZVBhdGg6ICR7ZGF0YS5icF9hbGlhc2VkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHN0ci5qb2luKFwiXFxuXCIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBmdW5jdGlvbiBmaWd1cmVPdXRNb2RlKGVuaGFuY2VkTm9kZUlkKSB7XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXm5zdT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwibnN1Tm9kZUlEXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9eKG5zPS4qOyk/KGl8YnxzfGcpPS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJub2RlSWRcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL15uc2E9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImFsaWFzZWROb2RlSWRcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14oXFwvfFxcLilbMC05XSs6LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14oXFwvfFxcLikuKjovKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZpZ3VyZU91dE1lblVJdGVtVmFsdWUoc3RyKSB7XG4gICAgICAgIGNvbnN0IG1vZGUgPSBmaWd1cmVPdXRNb2RlKHN0cik7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5cIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibmFcIjtcbiAgICAgICAgICAgIGNhc2UgXCJuc3VOb2RlSURcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuc3VcIjtcbiAgICAgICAgICAgIGNhc2UgXCJicm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYlwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWRCcm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYWJcIjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRvTW9kZSh2KSB7XG4gICAgICAgIGxldCBtb2RlO1xuICAgICAgICBzd2l0Y2ggKHYpIHtcbiAgICAgICAgICAgIGNhc2UgXCJuXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwibm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibmFcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJhbGlhc2VkTm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibnN1XCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwibnN1Tm9kZUlEXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiYlwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJhYlwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImFsaWFzZWRCcm93c2VQYXRoXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vZGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZyb21Nb2RlKG1vZGUpIHtcbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwibm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiblwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWROb2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuYVwiO1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5zdVwiO1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJiXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhYlwiO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ0XCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgX2NhbGxDaGVja05vZGVJZCA9IChfYSwgbm9kZUlkXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbm9kZUlkXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBlSWQgPSBlbmRwb2ludE5vZGUuaWQ7XG4gICAgICAgIGNvbnN0IG4gPSBSRUQubm9kZXMubm9kZShlSWQpO1xuICAgICAgICBjb25zb2xlLmxvZyhuLm5hbWVzcGFjZUFsaWFzZXMpO1xuICAgICAgICBuLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgIGNvbnN0IG5hbWVzcGFjZUFsaWFzZXMgPSBlbmRwb2ludE5vZGUubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4geyBqc29uLCBkYXRhIH07XG4gICAgfSk7XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoX2EsIG1vZGVfMSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG1vZGVfMSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBtb2RlLCAkaW5wdXRFbGVtZW50LCAkaW5mbykge1xuICAgICAgICBjb25zdCBlbmhhbmNlZE5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHsganNvbiwgZGF0YSB9ID0geWllbGQgX2NhbGxDaGVja05vZGVJZCh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgZW5oYW5jZWROb2RlSWQpO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBlbmhhbmNlZE5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vbHRpcCA9IG1ha2VUb29sdGlwKGpzb24pO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQuYXR0cihcInRpdGxlXCIsIHRvb2x0aXApO1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZUlkID0gY2hvb3NlTm9kZUlkKGpzb24sIG1vZGUpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKHNlbGVjdGVkTm9kZUlkKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7ZW5oYW5jZWROb2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gc29ydCByZWZlcmVuY2UgICBieSBicm93c2VOYW1lXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlcy5zb3J0KChhLCBiKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoKChfYSA9IGEuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5hbWUpIHx8IFwiXCIpLmxvY2FsZUNvbXBhcmUoKChfYiA9IGIuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IFwiXCIpOyB9KTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1ha2VDb25uZWN0aW9uKHRoYXQpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9leHBhbmRMaSh0aGF0LCAkbGkpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB5aWVsZCBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbGksIGYsIGRhdGEpO1xuICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRQYXJlbnROb2RlID0ge1xuICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gZGVmYXVsdFBhcmVudE5vZGUsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuX19wYXJlbnROb2RlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUuY2FsbCh0aGF0KSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVzYyA9IHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBkZXNjO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGF0Ll9fcGFyZW50Tm9kZSB8fCBkZWZhdWx0UGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxzbyByZXNldCBwYXJlbnQgbm9kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdGhhdDtcbiAgICAgICAgICAgICAgICAgICAgYS5fX3BhcmVudE5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHlpZWxkIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeShtb2RlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCBtb2RlLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbykudGhlbigoc3VjY2VzcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwiaW5wdXQtZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5yZW1vdmVDbGFzcyhcImlucHV0LWVycm9yXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2hpZGVNZW51KG1lbnUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCJtb3VzZWRvd24ucmVkLXVpLXR5cGVkSW5wdXQtY2xvc2UtcHJvcGVydHktc2VsZWN0XCIpO1xuICAgICAgICAgICAgICAgIG1lbnUuaGlkZSgpO1xuICAgICAgICAgICAgICAgIG1lbnUuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAobWVudS5vcHRzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBtZW51LmZpbmQoJ2lucHV0W3R5cGU9XCJjaGVja2JveFwiXScpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykucHJvcChcImNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC5wdXNoKCQodGhpcykuZGF0YShcInZhbHVlXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuY2FsbGJhY2soc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhhdC4kZWxlbWVudERpdi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgLy94eCB9IGVsc2UgaWYgKHRoaXMuJG9wdGlvblNlbGVjdFRyaWdnZXIuaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAvL3h4ICAgICB0aGF0LiRvcHRpb25TZWxlY3RUcmlnZ2VyLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlTWVudShtZW51T3B0aW9ucywgb3B0cywgY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVudSA9ICQoXCI8ZGl2PlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLXR5cGVkSW5wdXQtb3B0aW9ucyBzdGVyZml2ZS1vbmxpbmUtbWVudVwiKTtcbiAgICAgICAgICAgICAgICBtZW51Lm9wdHMgPSBvcHRzO1xuICAgICAgICAgICAgICAgIG1lbnUuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICAgICAgICAgICAgICBtZW51T3B0aW9ucy5mb3JFYWNoKChvcHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdCA9IHsgdmFsdWU6IG9wdCwgbGFiZWw6IG9wdCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBvcCA9ICQoJzxhIGhyZWY9XCIjXCI+PC9hPicpLmF0dHIoXCJ2YWx1ZVwiLCBvcHQudmFsdWUpLmFwcGVuZFRvKG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0LmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC50ZXh0KG9wdC5sYWJlbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AucHJvcChcInRpdGxlXCIsIG9wdC50aXRsZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0Lmljb24uaW5kZXhPZihcIjxcIikgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKG9wdC5pY29uKS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAob3B0Lmljb24uaW5kZXhPZihcIi9cIikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIjxpPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcInJlZC11aS10eXBlZElucHV0LWljb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IFwibWFzay1pbWFnZTogdXJsKFwiICsgb3B0Lmljb24gKyBcIik7IC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiICsgb3B0Lmljb24gKyBcIik7XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkucHJlcGVuZFRvKG9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCI8aT5cIiwgeyBjbGFzczogXCJyZWQtdWktdHlwZWRJbnB1dC1pY29uIFwiICsgb3B0Lmljb24gfSkucHJlcGVuZFRvKG9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLmNzcyh7IHBhZGRpbmdMZWZ0OiBcIjE4cHhcIiB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdC5pY29uICYmICFvcHQubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnRleHQob3B0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgY2I7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYiA9ICQoJzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj4nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoXCJwb2ludGVyLWV2ZW50c1wiLCBcIm5vbmVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGF0YShcInZhbHVlXCIsIG9wdC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJlcGVuZFRvKG9wKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcIm1vdXNlZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvcC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sob3B0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9oaWRlTWVudShtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLnByb3AoXCJjaGVja2VkXCIsICFjYi5wcm9wKFwiY2hlY2tlZFwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1lbnUuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5vbihcImtleWRvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleUNvZGUgPT09IDQwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIERPV05cbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuY2hpbGRyZW4oXCI6Zm9jdXNcIikubmV4dCgpLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChldnQua2V5Q29kZSA9PT0gMzgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVVBcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuY2hpbGRyZW4oXCI6Zm9jdXNcIikucHJldigpLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChldnQua2V5Q29kZSA9PT0gMjcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVTQ0FQRVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9oaWRlTWVudShtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lbnU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGlzYXJtQ2xpY2s6IGZhbHNlLFxuICAgICAgICAgICAgX3Nob3dNZW51KG1lbnUsIHJlbGF0aXZlVG8pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kaXNhcm1DbGljaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FybUNsaWNrID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHZhciBwb3MgPSByZWxhdGl2ZVRvLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgIHZhciBoZWlnaHQgPSByZWxhdGl2ZVRvLmhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHZhciBtZW51SGVpZ2h0ID0gbWVudS5oZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB2YXIgdG9wID0gaGVpZ2h0ICsgcG9zLnRvcDtcbiAgICAgICAgICAgICAgICBpZiAodG9wICsgbWVudUhlaWdodCAtICQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpID4gJCh3aW5kb3cpLmhlaWdodCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcCAtPSB0b3AgKyBtZW51SGVpZ2h0IC0gJCh3aW5kb3cpLmhlaWdodCgpICsgNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRvcCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5oZWlnaHQobWVudUhlaWdodCArIHRvcCk7XG4gICAgICAgICAgICAgICAgICAgIHRvcCA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1lbnUuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiB0b3AgKyBcInB4XCIsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHBvcy5sZWZ0ICsgXCJweFwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1lbnUuc2xpZGVEb3duKDEwMCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVsYXkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdC5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1jbG9zZS1wcm9wZXJ0eS1zZWxlY3RcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KG1lbnUpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHJlbGF0aXZlVG8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuZGlzYXJtQ2xpY2sgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9zaG93VHlwZU1lbnUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvd01lbnUodGhhdC4kbWVudSwgdGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gdGhhdC5zZWxlY3RlZE1lbnVJdGVtO1xuICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZCA9IHRoYXQuJG1lbnUuZmluZChcIlt2YWx1ZT0nXCIgKyB0eXBlICsgXCInXCIpO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfSwgMTIwKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaW5pdE1lbnUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5hdHRyKFwidGFiaW5kZXhcIiwgLTEpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIub24oXCJtb3VzZWRvd24ucmVkLXVpLXR5cGVkSW5wdXQtZm9jdXMtYmxvY2tcIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAodGhhdC4kbWVudSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRtZW51LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBmYS1pZC1jYXJkXG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZUxpc3QgPSBbXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwidGV4dFwiLCB2YWx1ZTogXCJ0XCIsIHRpdGxlOiBcIlZhbHVlIGlzIG5vdCB2ZXJpZmllZFwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1mb250XCIvaT4gJyB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJtc2cuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJtc2dcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIm5vZGUgaWQgb3IgIGJyb3dzZSBwYXRoIGNvbWVzIGZyb20gaW5qZWN0ZWQgbXNnIHBhcmFtZXRlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtZW52ZWxvcGUtb3Blbi1vXCIvPicsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiTm9kZUlkXCIsIHZhbHVlOiBcIm5cIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtdGFnXCIvPjEgJm5ic3A7ICcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJBbGlhc2VkIE5vZGVJZFwiLCB2YWx1ZTogXCJuYVwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1ib29rbWFya1wiLz4mbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIk5vZGVJZCB3aXRoIG5hbWVzcGFjZSBVcm5cIiwgdmFsdWU6IFwibnN1XCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWlkLWNhcmRcIi8+Jm5ic3A7ICcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJCcm93c2VQYXRoXCIsIHZhbHVlOiBcImJcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtdGFnXCIvPjxpIGNsYXNzPVwiZmEgZmEtZmlnaHRlci1qZXRcIi8+Jm5ic3A7JyB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJBbGlhc2VkIEJyb3dzZSBQYXRoXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJhYlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtYm9va21hcmtcIi8+PGkgY2xhc3M9XCJmYSBmYS1maWdodGVyLWpldFwiLz4mbmJzcDsnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgY29uc3QgYSA9IGZpZ3VyZU91dE1lblVJdGVtVmFsdWUodGhhdC4kaW5wdXQudmFsKCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGUgPSB0eXBlTGlzdC5maW5kKCh4KSA9PiB4LnZhbHVlID09PSBhKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbC5lbXB0eSgpLmFwcGVuZChgPHNwYW4gdGl0bGU9JHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnRpdGxlKSB8fCBcIlwifT4mbmJzcDsgJHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLmljb24pIHx8IFwiXCJ9PC9zcGFuPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IGE7XG4gICAgICAgICAgICAgICAgY29uc3QgdHQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUgPSB0aGlzLl9jcmVhdGVNZW51KHR5cGVMaXN0LCB7fSwgKHYpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kZSA9IHRvTW9kZSh2KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uIE1lbnUgc2VsZWN0ZWQgIVxuICAgICAgICAgICAgICAgICAgICAgICAgdHQudmVyaWZ5KG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSB0eXBlTGlzdC5maW5kKCh4KSA9PiB4LnZhbHVlID09PSB2KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5zZWxlY3RlZE1lbnVJdGVtID0gdjtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0TGFiZWwuZW1wdHkoKS5hcHBlbmQoYDxzcGFuIHRpdGxlPSR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS50aXRsZSkgfHwgXCJcIn0+Jm5ic3A7ICR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5pY29uKSB8fCBcIlwifTwvc3Bhbj5gKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRtZW51LmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpO1xuICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIuc2hvdygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1vZGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvTW9kZSh0aGF0LnNlbGVjdGVkTWVudUl0ZW0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldE1vZGUobW9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHMgPSBmcm9tTW9kZShtb2RlKTtcbiAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSBzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuY3NzKFwiYm9yZGVyXCIsIFwibm9uZVwiKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGVsZW1lbnREaXYgPSB0aGF0LiRpbnB1dC53cmFwKFwiPGRpdj5cIikucGFyZW50KCkuYWRkQ2xhc3MoXCJtYWluLXdyYXBwZXJcIik7XG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBDb21ibyBicm93c2VyXG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtaW5wdXQtd3JhcFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIGFkZCBidXR0b24gb24gdGhlIHJpZ2h0IHNpZGVcbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIHRvZ2dsZVRyZWVCdG5cbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbiB0aXRsZT1cIm9wZW4gT1BDVUEgQWRkcmVzc1NwYWNlIEJyb3dzZXJcIj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYWZ0ZXIodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB5aWVsZCB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uICYmICh5aWVsZCByZWFjaFNlbGVjdGlvbih0aGF0LCBwYXJlbnROb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIHZlcmlmeUJ0blxuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24gdGl0bGU9XCJ2ZXJpZnkgbm9kZUlkIG9yIGJyb3dzZVBhdGhcIj48aSBjbGFzcz1cImZhIGZhLXJlZnJlc2hcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYWZ0ZXIodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGUgPSB0aGF0Lm1vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkobW9kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVJbnB1dCA9IChpbnB1dCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vZGUgPSB0aGF0Lm1vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uRGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGpzb24gfSA9IHlpZWxkIF9jYWxsQ2hlY2tOb2RlSWQoY29ubmVjdGlvbkRhdGEsIGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZUlkID0gY2hvb3NlTm9kZUlkKGpzb24sIG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKHNlbGVjdGVkTm9kZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICAgICAvLyBjcmVhdGUgdGhlIHByZXBlbmRlZCBidXR0b25cbiAgICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0ID0gJChcIjxkaXY+XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5iZWZvcmUodGhhdC4kdWlTZWxlY3QpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyID0gJCgnPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCI+PC9idXR0b24+JykucHJlcGVuZFRvKHRoYXQuJHVpU2VsZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgJCgnPGkgY2xhc3M9XCJyZWQtdWktdHlwZWRJbnB1dC1pY29uIGZhIGZhLWNhcmV0LWRvd25cIj48L2k+JykudG9nZ2xlKHRydWUpLmFwcGVuZFRvKHRoYXQuJHNlbGVjdFRyaWdnZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zaG93VHlwZU1lbnUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImtleWRvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvd25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zaG93VHlwZU1lbnUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImZvY3VzXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAub24oXCJibHVyXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhciBvcHQgPSB0aGF0LnR5cGVNYXBbdGhhdC5wcm9wZXJ0eVR5cGVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgKG9wdC5oYXNWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LnJlbW92ZUNsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbCA9ICQoJzxzcGFuIGNsYXNzPVwicmVkLXVpLXR5cGVkSW5wdXQtdHlwZS1sYWJlbFwiPjwvc3Bhbj4nKS5hcHBlbmRUbyh0aGF0LiRzZWxlY3RUcmlnZ2VyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5faW5pdE1lbnUoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIHRlbXBvcmF0eSBpbmZvIHBhbmVsXG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gZHJvcCBkb3duIHRyZWVcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCkuYXBwZW5kVG8odGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kZHJvcGRvd24uc2hvdygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1vZGUgPSB0aGF0Lm1vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSBcIm5vZGVJZFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuc2V0TW9kZShtb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZUlucHV0KHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgY29udGFpbmluZzpcbiAgICAgKiAgLSB0aGUgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksXG4gICAgICogIC0gdXNlcklkZW50aXR5VHlwZSxcbiAgICAgKiAgLSBjcmVkZW50aWFsc1xuICAgICAqICAtIG5hbWVzcGFjZUFsaWFzZXNcbiAgICAgKlxuICAgICAqIGV4dHJhY3RlZCBmcm9tIHRoZSB1aSB3aWRnZXQgI25vZGUtaW5wdXQtZW5kcG9pbnRcbiAgICAgKi9cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzLCBuYW1lc3BhY2VBbGlhc2VzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgICAgICBuYW1lc3BhY2VBbGlhc2VzLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmV0VmFsdWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGVuZHBvaW50TnIubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oeyBuYW1lc3BhY2VBbGlhc2VzLCBpZDogZW5kcG9pbnRJZCB9LCBlbmRwb2ludE5yKTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItRXhwbG9yZVwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwiZXhwbG9yZVwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIGV4cGxvcmVcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBvdXRwdXRUeXBlOiB7IHZhbHVlOiBcIlZhbHVlXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBleGNsdWRlRW1wdHk6IHsgdmFsdWU6IGZhbHNlIH0sXG4gICAgICAgICAgICAvLyByb290Tm9kZTogeyB2YWx1ZTogXCJAT2JqZWN0Rm9sZGVyXCIgfSxcbiAgICAgICAgICAgIGZvbGxvd09yZ2FuaXplczogeyB2YWx1ZTogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0czogMSxcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgRXhwbG9yZVwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiIHx8IG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHsgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
7
+ function _0x30fa(){const _0x7a7ab0=['browse\x20path:\x20','Value\x20is\x20not\x20verified','references','children','180px','tabindex','position','<i>','nsu','18px','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','>&nbsp;\x20','$input','appendTo','multiple','log','expandable','fa-object-group','202960YPbYLJ','$toggleTreeBtn','already\x20loading','_createMenu','592bPQZyD','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;','_initMenu','HasComponent','235128mEkbtY','NodeClass','<li>error\x20','sterfive-typedInput-options\x20sterfive-online-menu','stringify','name','inputs','<i\x20class=\x22fa\x20fa-font\x22/i>\x20','ReferenceType','ns=0;i=46','displayName','#C0DEED','$dropdown','<span\x20title=','hasClass','DodgerBlue','ns=0;i=45','365786YgGUFp','nsuNodeID','checked','stopPropagation','input[type=\x22checkbox\x22]','21469HjgPxq','catch',':visible','Unspecified','elements','/checkNodeId','next','addClass','prependTo','top','ns=0;i=34','View','append','POST','<input\x20type=\x22checkbox\x22>','sterfive-info','ns=0;i=61','throw','explore','10EdzEBO','title','label','ns=0;i=40','click','val','empty','SeaGreen','fa-list-alt','apply','grey','Objects','focus','<div\x20class=\x22info-text\x22></div>','$inputGroup','prop','<iframe></iframe>','endpointNode','referenceTypeId','.spinner','endpoint','Forward','disarmClick','aliasedNodeId','HasChild','Invalid','join','height','16px',':focus','statusCode','node\x20class:\x20','browsePath','Inverse','bp_aliased',';\x22></i>\x20','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','</span><ul></ul></li>','mousedown.red-ui-typedInput-close-property-select','Good','<div\x20class=\x22spinner\x22></div>','aliased\x20browsePath:\x20','input-error','rgba(61,\x2060,\x204,\x200.525)','nodeId_aliased','$selectLabel','reference','text','failure','_showMenu','$info','push','red-ui-typedInput-icon','<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>','$uiSelect','then','sterfive-combo-box','1018745dtUGSQ','SuppressedError','expanded','animate','/opcua-for-node-red','wrap','Variable','each','change','nodeId','application/json','NodeId\x20with\x20namespace\x20Urn','expandable\x20expanded','DataType','toggle','options','fa-text-width','assign','reset','done','browseResult','show','OpcUa-Endpoint2','currentParent','match','isTypeRef','installing\x20iframe','<div>','error','pageY','3LAbnGj','selectedMenuItem','keydown','pointer-events','typeDefinition','HasSubtype','#node-input-nodeId','off','DarkOrange','red-ui-typedInput-focus','data','NodeId','VariableType','main-wrapper','nodes','$verifyBtn','none','HasTypeDefinition','SandyBrown','ObjectType','__parentNode','before','attr','replaceWith','_showTypeMenu','trigger','absolute','aliasedBrowsePath','_hideMenu','dblclick','aliased\x20NodeId:\x20','Object','namespaceAliases','pageX','scrollTop','../../icons/opcuanodeLogo.png','toString','#node-input-endpoint','Aliased\x20NodeId','icon','hide','mousedown','Organizes','remove','fa-question','element','ns=0;i=35','sort','loading','30px','body','Aliased\x20Browse\x20Path','opts','bp_indexed','nodeClass','resolveParentNode','preventDefault','fa-sliders','baseUrl','length','TypeDefinition','mode','<a\x20href=\x22#\x22></a>','node','blur','$combo','parentNode','HasProperty','placeholder','registerType','CadetBlue','browseName','fetching\x20failed\x20with\x20error','callback','/browse','$tree','1200312xlwAtg','setMode','OPCUA\x20Explore','BrowseName','$elementDiv','indexOf','keyCode','Value','widget','css','statusText','20px','value','<div/>','isSelectable','Method','.tree-text:first','fetched','$menu','selected','sterfive.nodeBrowser','DisplayName','requestedNodeId','nsu\x20nodeId:\x20','msg.','msg','BrowsePath','$selectTrigger','4834773uANDZA','removeClass','opc.tcp://opcuademo.sterfive.com:26543','suppressed','background-color:transparent;overflow:hidden;border:3px','target','installFeedbackWidget\x20','nodeId_nsu','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>',':first','toggleClass','string','relativePath','after','function','nodeBrowser','<span\x20class=\x22red-ui-typedInput-type-label\x22></span>','<li\x20key=\x22','IsForward','.red-ui-tray-body','closest','verify','status','/walk-backward','!!failure!!','left','json','Both','find','fa-folder','filter','offset','message'];_0x30fa=function(){return _0x7a7ab0;};return _0x30fa();}function _0x9579(_0x8de394,_0x366203){const _0x30fa5c=_0x30fa();return _0x9579=function(_0x95791,_0x43e452){_0x95791=_0x95791-0x75;let _0x6cf9fe=_0x30fa5c[_0x95791];return _0x6cf9fe;},_0x9579(_0x8de394,_0x366203);}(function(_0x166fc6,_0x50d380){const _0x4a983a=_0x9579,_0x396284=_0x166fc6();while(!![]){try{const _0x20594f=parseInt(_0x4a983a(0x169))/0x1+-parseInt(_0x4a983a(0x182))/0x2*(-parseInt(_0x4a983a(0xce))/0x3)+parseInt(_0x4a983a(0x171))/0x4+-parseInt(_0x4a983a(0xb0))/0x5+parseInt(_0x4a983a(0x11a))/0x6+parseInt(_0x4a983a(0x187))/0x7*(parseInt(_0x4a983a(0x16d))/0x8)+-parseInt(_0x4a983a(0x136))/0x9*(parseInt(_0x4a983a(0x77))/0xa);if(_0x20594f===_0x50d380)break;else _0x396284['push'](_0x396284['shift']());}catch(_0x1a1db7){_0x396284['push'](_0x396284['shift']());}}}(_0x30fa,0x1fe8b),(function(){'use strict';const _0x232955=_0x9579;function _0x17e5dc(_0x5c97cf,_0x19f07d,_0x4a26f1,_0x4704ae){function _0x30a61f(_0x39a14c){return _0x39a14c instanceof _0x4a26f1?_0x39a14c:new _0x4a26f1(function(_0x492d9c){_0x492d9c(_0x39a14c);});}return new(_0x4a26f1||(_0x4a26f1=Promise))(function(_0x3dc4d0,_0x3ca4bc){const _0x520208=_0x9579;function _0x54935f(_0x5b433f){const _0x12c225=_0x9579;try{_0x52aa39(_0x4704ae[_0x12c225(0x18d)](_0x5b433f));}catch(_0x3b84bb){_0x3ca4bc(_0x3b84bb);}}function _0x28d20b(_0x108723){const _0x23263c=_0x9579;try{_0x52aa39(_0x4704ae[_0x23263c(0x75)](_0x108723));}catch(_0x2c4416){_0x3ca4bc(_0x2c4416);}}function _0x52aa39(_0x5d0d82){const _0x1e6913=_0x9579;_0x5d0d82[_0x1e6913(0xc3)]?_0x3dc4d0(_0x5d0d82[_0x1e6913(0x126)]):_0x30a61f(_0x5d0d82['value'])['then'](_0x54935f,_0x28d20b);}_0x52aa39((_0x4704ae=_0x4704ae[_0x520208(0x80)](_0x5c97cf,_0x19f07d||[]))[_0x520208(0x18d)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x4f7c29,_0x22f400,_0x3aa8f5){const _0xfa0c7c=_0x9579;var _0x1c221e=new Error(_0x3aa8f5);return _0x1c221e[_0xfa0c7c(0x176)]=_0xfa0c7c(0xb1),_0x1c221e[_0xfa0c7c(0xcc)]=_0x4f7c29,_0x1c221e[_0xfa0c7c(0x139)]=_0x22f400,_0x1c221e;};const _0x2caba1=_0x232955(0xfc),_0x3bff9d=_0x232955(0x197),_0x200923='ns=0;i=47',_0x4e2be0=_0x232955(0x17a),_0x2c4eaa=_0x232955(0x191),_0x4af4ce=_0x232955(0x181),_0x53c9b5=_0x232955(0x7a);var _0x1ecfac;(function(_0x1757ee){const _0x480094=_0x232955;_0x1757ee[_0x1757ee['Forward']=0x0]=_0x480094(0x8c),_0x1757ee[_0x1757ee[_0x480094(0x98)]=0x1]='Inverse',_0x1757ee[_0x1757ee[_0x480094(0x151)]=0x2]='Both',_0x1757ee[_0x1757ee[_0x480094(0x90)]=0x3]=_0x480094(0x90);}(_0x1ecfac||(_0x1ecfac={})));var _0x1fd8d0;(function(_0x37eff8){const _0x24ac3b=_0x232955;_0x37eff8[_0x37eff8[_0x24ac3b(0x18a)]=0x0]=_0x24ac3b(0x18a),_0x37eff8[_0x37eff8[_0x24ac3b(0xed)]=0x1]=_0x24ac3b(0xed),_0x37eff8[_0x37eff8[_0x24ac3b(0xb6)]=0x2]=_0x24ac3b(0xb6),_0x37eff8[_0x37eff8['Method']=0x4]=_0x24ac3b(0x129),_0x37eff8[_0x37eff8[_0x24ac3b(0xe1)]=0x8]=_0x24ac3b(0xe1),_0x37eff8[_0x37eff8[_0x24ac3b(0xda)]=0x10]='VariableType',_0x37eff8[_0x37eff8[_0x24ac3b(0x179)]=0x20]=_0x24ac3b(0x179),_0x37eff8[_0x37eff8[_0x24ac3b(0xbd)]=0x40]=_0x24ac3b(0xbd),_0x37eff8[_0x37eff8['View']=0x80]=_0x24ac3b(0x192);}(_0x1fd8d0||(_0x1fd8d0={})));var _0x152fe9;(function(_0x321305){const _0x8912c3=_0x232955;_0x321305[_0x321305[_0x8912c3(0xed)]=0x1]=_0x8912c3(0xed),_0x321305[_0x321305[_0x8912c3(0xb6)]=0x2]=_0x8912c3(0xb6),_0x321305[_0x321305[_0x8912c3(0x129)]=0x4]='Method',_0x321305[_0x321305[_0x8912c3(0xe1)]=0x8]=_0x8912c3(0xe1),_0x321305[_0x321305['VariableType']=0x10]=_0x8912c3(0xda),_0x321305[_0x321305[_0x8912c3(0x179)]=0x20]=_0x8912c3(0x179),_0x321305[_0x321305[_0x8912c3(0xbd)]=0x40]=_0x8912c3(0xbd),_0x321305[_0x321305['View']=0x80]='View';}(_0x152fe9||(_0x152fe9={})));var _0x46f7eb;(function(_0x2d9292){const _0x228968=_0x232955;_0x2d9292[_0x2d9292[_0x228968(0x179)]=0x1]=_0x228968(0x179),_0x2d9292[_0x2d9292[_0x228968(0x148)]=0x2]=_0x228968(0x148),_0x2d9292[_0x2d9292[_0x228968(0x172)]=0x4]=_0x228968(0x172),_0x2d9292[_0x2d9292[_0x228968(0x11d)]=0x8]=_0x228968(0x11d),_0x2d9292[_0x2d9292[_0x228968(0x12f)]=0x10]=_0x228968(0x12f),_0x2d9292[_0x2d9292[_0x228968(0x10a)]=0x20]='TypeDefinition';}(_0x46f7eb||(_0x46f7eb={})));function _0xfae24a(_0x445c44){const _0x9a014e=_0x232955;switch(_0x445c44){case _0x9a014e(0xf8):return _0x2caba1;case _0x9a014e(0x111):return _0x4e2be0;case _0x9a014e(0x170):return _0x200923;case _0x9a014e(0x8f):return _0x2c4eaa;case _0x9a014e(0xd3):return _0x4af4ce;case _0x9a014e(0xdf):return _0x53c9b5;}}const _0x1e1751=_0x12d3d5=>{const _0x32448a=_0x232955;switch(_0x12d3d5[_0x32448a(0x104)]){case _0x32448a(0xed):if(_0x12d3d5[_0x32448a(0x89)]===_0x2caba1);if(_0x12d3d5[_0x32448a(0xd2)]===_0x3bff9d||_0x12d3d5[_0x32448a(0x89)]==='i=61')return{'icon':_0x32448a(0x153),'color':_0x32448a(0xa2)};return{'icon':'fa-object-group','color':_0x32448a(0x7e)};case _0x32448a(0xb6):if(_0x12d3d5['referenceTypeId']===_0x200923)return{'icon':'fa-list-alt','color':'SteelBlue'};else return _0x12d3d5['referenceTypeId']===_0x4e2be0?{'icon':'fa-list-alt','color':_0x32448a(0x180)}:{'icon':_0x32448a(0x7f),'color':_0x32448a(0x114)};case _0x32448a(0x129):return{'icon':'fa-cog','color':_0x32448a(0xe0)};case _0x32448a(0xe1):return{'icon':_0x32448a(0x168),'color':'DarkOrange'};case _0x32448a(0xda):return{'icon':_0x32448a(0x107),'color':_0x32448a(0xd6)};case _0x32448a(0xbd):return{'icon':_0x32448a(0xc0),'color':_0x32448a(0x114)};}return{'icon':_0x32448a(0xfa),'color':_0x32448a(0x81)};},_0x3fc579=(_0xe09bf7,_0x1f9d2a,_0x358bcb)=>_0x17e5dc(void 0x0,[_0xe09bf7,_0x1f9d2a,_0x358bcb],void 0x0,function*({endpointNode:_0x26cba8,endpoint:_0x47dcf7,baseUrl:_0x5d7f2f},_0x40b802,_0x49f00a){const _0x5228e0=_0x232955,_0x5cf3b4=_0x5d7f2f+_0x5228e0(0xb4),_0x2d1a02=_0x5cf3b4+_0x5228e0(0x118),_0x3fa0b3=Object['assign'](Object[_0x5228e0(0xc1)]({},_0x49f00a),{'nodeId':_0x40b802,'resultMask':0x3f}),_0x56374f=yield fetch(_0x2d1a02,{'method':_0x5228e0(0x194),'body':JSON[_0x5228e0(0x175)]({'endpointNode':_0x26cba8,'endpoint':_0x47dcf7,'browseDescription':_0x3fa0b3}),'headers':{'Content-Type':_0x5228e0(0xba)}});if(_0x56374f[_0x5228e0(0x14c)]!==0xc8)return console['log'](_0x5228e0(0x116),_0x56374f['status'],_0x56374f[_0x5228e0(0x124)]),{'references':[]};const _0x954381=yield _0x56374f[_0x5228e0(0x150)](),_0x228db6=_0x954381[_0x5228e0(0xc4)][_0x5228e0(0x159)]||[];return{'references':_0x228db6};}),_0x41ce04={'referenceTypeId':_0xfae24a('HasChild'),'includeSubtypes':!![],'browseDirection':_0x1ecfac[_0x232955(0x8c)],'nodeClassMask':_0x1fd8d0[_0x232955(0xb6)]|_0x1fd8d0[_0x232955(0xed)]|_0x1fd8d0['Method'],'resultMask':0x3f},_0x42dc2e={'referenceTypeId':_0xfae24a(_0x232955(0xf8)),'includeSubtypes':!![],'browseDirection':_0x1ecfac[_0x232955(0x8c)],'nodeClassMask':_0x1fd8d0['Variable']|_0x1fd8d0[_0x232955(0xed)]|_0x1fd8d0[_0x232955(0x129)],'resultMask':0x3f},_0xb9d87f=(_0x31f142,_0xd24411)=>_0x17e5dc(void 0x0,[_0x31f142,_0xd24411],void 0x0,function*({endpointNode:_0x4ebf8f,endpoint:_0x442991,baseUrl:_0x2c7f8c},{nodeId:_0x19de59,rootNodeId:_0x1c7e0d,isType:_0x2ac29d}){const _0x1a0c99=_0x232955,_0xc50405=_0x2c7f8c+'/opcua-for-node-red',_0x307c0e=_0xc50405+_0x1a0c99(0x14d),_0x558965=yield fetch(_0x307c0e,{'method':_0x1a0c99(0x194),'body':JSON[_0x1a0c99(0x175)]({'endpointNode':_0x4ebf8f,'endpoint':_0x442991,'nodeId':_0x19de59,'rootNodeId':_0x1c7e0d,'isType':_0x2ac29d}),'headers':{'Content-Type':'application/json'}});if(_0x558965[_0x1a0c99(0x14c)]!==0xc8)return null;const _0x3239a8=yield _0x558965[_0x1a0c99(0x150)]();return _0x3239a8['browsePath'];}),_0x4de438=(_0x5b9e56,_0x2c544a)=>{const _0xe5528c=_0x232955;if(_0x5b9e56[_0xe5528c(0x95)]!==_0xe5528c(0x9e))return _0x5b9e56[_0xe5528c(0x130)];switch(_0x2c544a){case _0xe5528c(0x97):return _0x5b9e56['bp_indexed'];case'aliasedBrowsePath':return _0x5b9e56[_0xe5528c(0x99)]||_0x5b9e56[_0xe5528c(0x103)];case'aliasedNodeId':return _0x5b9e56[_0xe5528c(0xa3)]||_0x5b9e56[_0xe5528c(0x13d)];case'nsuNodeID':return _0x5b9e56[_0xe5528c(0x13d)];default:case _0xe5528c(0xb9):return _0x5b9e56[_0xe5528c(0xb9)];}},_0x2cdd84=_0x31fdcd=>{const _0x1fe503=_0x232955;if(_0x31fdcd[_0x1fe503(0x95)]!==_0x1fe503(0x9e))return'statusCode:\x20'+_0x31fdcd[_0x1fe503(0x95)];else{let _0x1b57bb=[];return _0x1b57bb[_0x1fe503(0xaa)]('nodeId:\x20'+_0x31fdcd[_0x1fe503(0xb9)]),_0x1b57bb[_0x1fe503(0xaa)](_0x1fe503(0x157)+_0x31fdcd[_0x1fe503(0x103)]),_0x1b57bb['push'](_0x1fe503(0x96)+_0x1fd8d0[_0x31fdcd[_0x1fe503(0x104)]]),_0x31fdcd[_0x1fe503(0x13d)]&&_0x1b57bb[_0x1fe503(0xaa)](_0x1fe503(0x131)+_0x31fdcd[_0x1fe503(0x13d)]),_0x31fdcd[_0x1fe503(0xa3)]&&_0x1b57bb[_0x1fe503(0xaa)](_0x1fe503(0xec)+_0x31fdcd[_0x1fe503(0xa3)]),_0x31fdcd[_0x1fe503(0x103)]&&_0x1b57bb['push'](_0x1fe503(0xa0)+_0x31fdcd[_0x1fe503(0x99)]),_0x1b57bb[_0x1fe503(0x91)]('\x0a');}};function _0x3ad6f8(_0x452ff9){const _0x29cebf=_0x232955;if(_0x452ff9[_0x29cebf(0xc8)](/^nsu=/))return _0x29cebf(0x183);if(_0x452ff9['match'](/^(ns=.*;)?(i|b|s|g)=/))return _0x29cebf(0xb9);if(_0x452ff9['match'](/^nsa=/))return'aliasedNodeId';if(_0x452ff9[_0x29cebf(0xc8)](/^(\/|\.)[0-9]+:/))return'browsePath';if(_0x452ff9[_0x29cebf(0xc8)](/^(\/|\.).*:/))return'browsePath';}function _0xe23632(_0xe0e87c){const _0x4b1d32=_0x232955,_0x1759f3=_0x3ad6f8(_0xe0e87c);switch(_0x1759f3){case _0x4b1d32(0xb9):return'n';case _0x4b1d32(0x8e):return'na';case'nsuNodeID':return'nsu';case _0x4b1d32(0x97):return'b';case'aliasedBrowsePath':return'ab';default:return't';}}function _0x47b1be(_0xcaee5d){const _0x1df0a4=_0x232955;let _0x19df5e;switch(_0xcaee5d){case'n':_0x19df5e=_0x1df0a4(0xb9);break;case'na':_0x19df5e=_0x1df0a4(0x8e);break;case _0x1df0a4(0x15f):_0x19df5e=_0x1df0a4(0x183);break;case'b':_0x19df5e=_0x1df0a4(0x97);break;case'ab':_0x19df5e=_0x1df0a4(0xe9);break;}return _0x19df5e;}function _0x2fc568(_0xc091ea){const _0x15acee=_0x232955;switch(_0xc091ea){case _0x15acee(0xb9):return'n';case _0x15acee(0x8e):return'na';case _0x15acee(0x183):return _0x15acee(0x15f);case'browsePath':return'b';case _0x15acee(0xe9):return'ab';default:return't';}}const _0xdcac65=(_0x2da9ef,_0x27d418)=>_0x17e5dc(void 0x0,[_0x2da9ef,_0x27d418],void 0x0,function*({endpointNode:_0x3624f4,endpoint:_0xf69df2,baseUrl:_0x2f2eb2},_0x12e4af){const _0x295c9d=_0x232955,_0x11851b=_0x2f2eb2+_0x295c9d(0xb4),_0x4900b1=_0x11851b+_0x295c9d(0x18c),_0x49dac3=_0x3624f4['id'],_0x2b7fbc=RED[_0x295c9d(0xdc)][_0x295c9d(0x10d)](_0x49dac3);console[_0x295c9d(0x166)](_0x2b7fbc['namespaceAliases']),_0x2b7fbc[_0x295c9d(0xee)];const _0x285a10=_0x3624f4[_0x295c9d(0xee)],_0x178a0f=yield fetch(_0x4900b1,{'method':'POST','body':JSON[_0x295c9d(0x175)]({'endpointNode':_0x3624f4,'endpoint':_0xf69df2,'nodeId':_0x12e4af,'namespaceAliases':_0x285a10}),'headers':{'Content-Type':_0x295c9d(0xba)}}),_0x274bd2=yield _0x178a0f['json']();return{'json':_0x274bd2,'data':_0x178a0f};}),_0x112b81=(_0x20d317,_0x20b2e0,_0x4cd6ab,_0x473cf2)=>_0x17e5dc(void 0x0,[_0x20d317,_0x20b2e0,_0x4cd6ab,_0x473cf2],void 0x0,function*({endpointNode:_0x146b2a,endpoint:_0x293f48,baseUrl:_0x3f9858},_0x8e6ef0,_0x4b1aa8,_0x1abd4c){const _0x3f722a=_0x232955,_0xa33f30=_0x4b1aa8[_0x3f722a(0x7c)](),{json:_0x3b9498,data:_0x470f8b}=yield _0xdcac65({'endpointNode':_0x146b2a,'endpoint':_0x293f48,'baseUrl':_0x3f9858},_0xa33f30),_0x228818=(_0x506b0f,_0x27655e)=>{const _0x27060c=_0x3f722a;_0x1abd4c[_0x27060c(0xa6)](_0x506b0f)[_0x27060c(0x18e)](_0x27060c(0x196))[_0x27060c(0x18e)](_0x27655e),_0x1abd4c['show'](),setTimeout(()=>{const _0x3eb360=_0x27060c;_0x1abd4c[_0x3eb360(0x137)](_0x27655e),_0x1abd4c['hide']();},0xbb8);};if(_0x470f8b[_0x3f722a(0x14c)]!==0xc8)return _0x228818(_0x3f722a(0x14e)+_0xa33f30,_0x3f722a(0xa7)),![];else{if(_0x3b9498['statusCode']['match'](/Good/)){const _0x38baf7=_0x2cdd84(_0x3b9498);_0x4b1aa8[_0x3f722a(0xe4)](_0x3f722a(0x78),_0x38baf7);const _0x22688c=_0x4de438(_0x3b9498,_0x8e6ef0);return _0x4b1aa8[_0x3f722a(0x7c)](_0x22688c),_0x4b1aa8[_0x3f722a(0xe7)](_0x3f722a(0xb8)),_0x228818('Good','ok'),!![];}else return _0x4b1aa8[_0x3f722a(0x7c)](''+_0xa33f30),_0x228818(_0x3b9498[_0x3f722a(0x95)]+'\x20'+_0x470f8b['statusText'],_0x3f722a(0xa7)),![];}});function _0x3a7ec7(_0x275cdd,_0x5d2ed6){return _0x17e5dc(this,void 0x0,void 0x0,function*(){const _0x3cfa08=_0x9579,_0x1ebfba=_0x275cdd[_0x3cfa08(0xd8)](_0x3cfa08(0x126)),_0x2437fa=yield _0x3fc579(_0x5d2ed6,_0x1ebfba,_0x41ce04),_0x3eb0d8=yield _0x3fc579(_0x5d2ed6,_0x1ebfba,_0x42dc2e);return{'references':[..._0x2437fa[_0x3cfa08(0x159)],..._0x3eb0d8[_0x3cfa08(0x159)]]};});}const _0x2d83e9={'referenceTypeId':_0xfae24a(_0x232955(0xd3)),'includeSubtypes':!![],'browseDirection':_0x1ecfac['Forward'],'nodeClassMask':_0x1fd8d0['ReferenceType']|_0x1fd8d0['ObjectType']|_0x1fd8d0[_0x232955(0xbd)]|_0x1fd8d0[_0x232955(0xda)],'resultMask':0x3f};function _0xeaae25(_0x4f855b,_0x3b8601){return _0x17e5dc(this,void 0x0,void 0x0,function*(){const _0x3a3b5f=_0x9579,_0x424122=_0x4f855b[_0x3a3b5f(0xd8)]('value'),_0x1f321a=yield _0x3fc579(_0x3b8601,_0x424122,_0x2d83e9);return _0x1f321a;});}const _0x4736d4=_0x5c693f=>{const _0x3c7c46=_0x232955;var _0x4e7bc9,_0x24a254,_0x54b2a1,_0x1c6d86;if(!_0x5c693f||!_0x5c693f[_0x3c7c46(0xb9)]){const _0x3bd993=$(_0x3c7c46(0x13e));return _0x3bd993;}const _0x5541ef=_0x5c693f[_0x3c7c46(0xb9)]['toString'](),_0x22250c=((_0x4e7bc9=_0x5c693f['displayName'])===null||_0x4e7bc9===void 0x0?void 0x0:_0x4e7bc9[_0x3c7c46(0xa6)])||((_0x24a254=_0x5c693f[_0x3c7c46(0x115)])===null||_0x24a254===void 0x0?void 0x0:_0x24a254['name'])||_0x5c693f[_0x3c7c46(0xb9)][_0x3c7c46(0xf2)](),{icon:_0x48ebf2,color:_0x469581}=_0x1e1751(_0x5c693f),_0x984cca='('+_0x5c693f[_0x3c7c46(0xb9)][_0x3c7c46(0xf2)]()+')\x20'+(((_0x54b2a1=_0x5c693f[_0x3c7c46(0x115)])===null||_0x54b2a1===void 0x0?void 0x0:_0x54b2a1['name'])||((_0x1c6d86=_0x5c693f[_0x3c7c46(0x17b)])===null||_0x1c6d86===void 0x0?void 0x0:_0x1c6d86[_0x3c7c46(0xa6)])||''),_0x6464fd=$(_0x3c7c46(0x147)+_0x5c693f[_0x3c7c46(0xb9)][_0x3c7c46(0xf2)]()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0x984cca+'><i\x20class=\x22fa\x20'+_0x48ebf2+'\x22\x20style=\x22color:'+_0x469581+_0x3c7c46(0x9a)+_0x22250c+_0x3c7c46(0x9c));return _0x6464fd[_0x3c7c46(0x18e)]('expandable'),_0x6464fd['data'](_0x3c7c46(0x126),_0x5541ef),_0x6464fd[_0x3c7c46(0xd8)](_0x3c7c46(0xa5),_0x5c693f),_0x6464fd;},_0x45346b=(_0x32d8ab,_0x3664d4)=>{const _0x1d411c=_0x232955;return _0x3664d4[_0x1d411c(0x152)]('li[key=\x22'+_0x32d8ab+'\x22]');},_0x11827d=(_0x523682,_0x3a1270)=>{const _0x2de87f=_0x232955;_0x523682['$tree'][_0x2de87f(0x152)]('li\x20>\x20.tree-text')[_0x2de87f(0x137)](_0x2de87f(0x12d)),_0x3a1270[_0x2de87f(0x152)](_0x2de87f(0x12a))['addClass'](_0x2de87f(0x12d));},_0x28b34b=(_0x2a5ac6,_0x79046,_0xa3ff03)=>_0x17e5dc(void 0x0,void 0x0,void 0x0,function*(){const _0x141873=_0x232955;let _0x59afa9=_0xa3ff03['children'](_0x141873(0x13f));_0x79046[_0x141873(0x142)][_0x141873(0x18b)]||[];const _0x1cf581=_0x79046['nodeIds']||[];if(_0x1cf581['length']===0x0)return;for(const _0x4ed4f9 of _0x1cf581){_0x59afa9[_0x141873(0x17f)](_0x141873(0x167))&&(yield _0x285fbe(_0x2a5ac6,_0x59afa9));const _0x305240=_0x45346b(_0x4ed4f9,_0x59afa9);if(_0x305240[_0x141873(0x109)]===0x0)return;_0x59afa9=_0x305240;}_0x11827d(_0x2a5ac6,_0x59afa9),_0x17a89d(_0x2a5ac6['$dropdown'],_0x59afa9);});function _0x17a89d(_0x524e61,_0x529495){const _0x5792cd=_0x232955,_0x25abfa=_0x529495[_0x5792cd(0x15d)]()[_0x5792cd(0x190)],_0x26e2e5=_0x524e61['scrollTop']();if(_0x26e2e5==undefined)return;const _0x576816=_0x26e2e5+_0x25abfa-_0x524e61[_0x5792cd(0x92)]()/0x2+_0x529495[_0x5792cd(0x92)]()/0x2;_0x524e61[_0x5792cd(0xb3)]({'scrollTop':_0x576816},0x1f4);}const _0x16932b=(_0x4af225,_0x3c87bf)=>_0x17e5dc(void 0x0,void 0x0,void 0x0,function*(){const _0x18da01=_0x232955,_0x4de199=_0x4af225[_0x18da01(0x163)]['val'](),_0x19be7b={'nodeId':_0x4de199,'rootNodeId':_0x3c87bf[_0x18da01(0xb9)],'isType':_0x4af225[_0x18da01(0xbf)][_0x18da01(0xc9)]||![]},_0x414e23=_0x408801(_0x4af225),_0x28fa64=yield _0xb9d87f(_0x414e23,_0x19be7b);if(!_0x28fa64)return;yield _0x28b34b(_0x4af225,_0x28fa64,_0x4af225[_0x18da01(0x119)]);});function _0x59fbd1(_0x1e6732,_0x534c3e,_0x1c4f63,_0x3938ac){return _0x17e5dc(this,void 0x0,void 0x0,function*(){const _0x1fb337=_0x9579;if(_0x534c3e[_0x1fb337(0x17f)](_0x1fb337(0x12b))){console['log']('already\x20fetched');return;}if(_0x534c3e['hasClass']('loading')){console[_0x1fb337(0x166)](_0x1fb337(0x16b));return;}_0x534c3e[_0x1fb337(0x18e)]('loading'),_0x534c3e[_0x1fb337(0x193)](_0x1fb337(0x9f));try{_0x534c3e[_0x1fb337(0x15a)]('ul')['empty']();const {references:_0x19d05d}=yield _0x1c4f63(_0x534c3e,_0x3938ac);_0x19d05d[_0x1fb337(0xfd)]((_0xceeb29,_0x546ce4)=>{const _0x52fe94=_0x1fb337;var _0x187bc7,_0x61ff1c;return(((_0x187bc7=_0xceeb29[_0x52fe94(0x115)])===null||_0x187bc7===void 0x0?void 0x0:_0x187bc7['name'])||'')['localeCompare'](((_0x61ff1c=_0x546ce4[_0x52fe94(0x115)])===null||_0x61ff1c===void 0x0?void 0x0:_0x61ff1c[_0x52fe94(0x176)])||'');});for(const _0xb78c4f of _0x19d05d){if(_0x1e6732[_0x1fb337(0xbf)][_0x1fb337(0x154)]&&!_0x1e6732[_0x1fb337(0xbf)][_0x1fb337(0x154)](_0xb78c4f))continue;const _0x109f30=_0x4736d4(_0xb78c4f);_0x534c3e[_0x1fb337(0x15a)]('ul')[_0x1fb337(0x193)](_0x109f30);}_0x534c3e[_0x1fb337(0x18e)](_0x1fb337(0x12b));}catch(_0x27221c){_0x534c3e[_0x1fb337(0x15a)]('ul')[_0x1fb337(0x193)](_0x1fb337(0x173)+_0x27221c[_0x1fb337(0x156)]+'</li>'),console['log']('err',_0x27221c);}_0x534c3e[_0x1fb337(0x152)](_0x1fb337(0x8a))[_0x1fb337(0xf9)](),_0x534c3e[_0x1fb337(0x137)](_0x1fb337(0xfe));});}function _0x408801(_0x5b90e1){const _0xe8c206=_0x232955,_0x5bd821={'baseUrl':_0x5b90e1[_0xe8c206(0xbf)][_0xe8c206(0x108)],'endpointNode':typeof _0x5b90e1[_0xe8c206(0xbf)][_0xe8c206(0x88)]==='function'?_0x5b90e1[_0xe8c206(0xbf)][_0xe8c206(0x88)]():_0x5b90e1[_0xe8c206(0xbf)][_0xe8c206(0x88)],'endpoint':typeof _0x5b90e1[_0xe8c206(0xbf)][_0xe8c206(0x8b)]===_0xe8c206(0x144)?_0x5b90e1[_0xe8c206(0xbf)][_0xe8c206(0x8b)]():_0x5b90e1[_0xe8c206(0xbf)][_0xe8c206(0x8b)]};return _0x5bd821;}function _0x285fbe(_0x5581e1,_0x362719){return _0x17e5dc(this,void 0x0,void 0x0,function*(){const _0x264589=_0x9579;if(_0x362719[_0x264589(0x17f)]('fetched')){_0x362719[_0x264589(0x137)](_0x264589(0x167))[_0x264589(0x18e)](_0x264589(0xb2)),_0x362719['children']('ul')['toggle']();return;}const _0x3a7a56=_0x408801(_0x5581e1),_0x497c23=!_0x5581e1[_0x264589(0xbf)][_0x264589(0xc9)]?_0x3a7ec7:_0xeaae25;try{yield _0x59fbd1(_0x5581e1,_0x362719,_0x497c23,_0x3a7a56),_0x362719[_0x264589(0x137)]('expandable')[_0x264589(0x18e)](_0x264589(0xb2));}catch(_0x3cc113){_0x362719['removeClass'](_0x264589(0x167))[_0x264589(0x18e)](_0x264589(0xb2)),console[_0x264589(0x166)](_0x264589(0xcc),_0x3cc113);}});}const _0x44580e={'browseName':{'namespaceIndex':0x0,'name':_0x232955(0x82)},'nodeClass':'Object','nodeId':'ns=0;i=85','displayName':{'text':_0x232955(0x82)},'typeDefinition':_0x3bff9d},_0x4f7ce9=()=>{const _0x3de641=_0x232955;$[_0x3de641(0x122)](_0x3de641(0x12e),{'options':{'endpointNode':()=>({'endpoint':_0x3de641(0x138)}),'endpoint':()=>undefined,'parentNode':()=>_0x44580e,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x17e5dc(this,void 0x0,void 0x0,function*(){const _0x187036=_0x9579,_0x2ca46a=this;if(_0x2ca46a[_0x187036(0xe2)]==undefined){const _0x1e6aa9=typeof _0x2ca46a[_0x187036(0xbf)][_0x187036(0x110)]==='function'?_0x2ca46a['options'][_0x187036(0x110)]['call'](_0x2ca46a):_0x2ca46a[_0x187036(0xbf)][_0x187036(0x110)];if(_0x1e6aa9 instanceof Promise){const _0x1a7189=yield _0x1e6aa9;_0x2ca46a[_0x187036(0xe2)]=_0x1a7189;}else _0x2ca46a[_0x187036(0xe2)]=_0x1e6aa9;}return _0x2ca46a[_0x187036(0xe2)]||_0x44580e;});},'reset'(){return _0x17e5dc(this,void 0x0,void 0x0,function*(){const _0x11c20a=_0x9579,_0x5690fe=this,_0x5da7cf=_0x5690fe;_0x5da7cf[_0x11c20a(0xe2)]=undefined,_0x5690fe[_0x11c20a(0x119)][_0x11c20a(0x7d)]();const _0x140c05=yield this[_0x11c20a(0x105)](),_0x18c37e=_0x4736d4(_0x140c05);_0x5690fe[_0x11c20a(0x119)][_0x11c20a(0x193)](_0x18c37e),_0x5690fe[_0x11c20a(0xc7)]=_0x140c05;});},'verify'(_0x4e3dd5){const _0x20f1e3=_0x3de641,_0x1a9999=this,_0x2b2419=_0x408801(_0x1a9999);_0x112b81(_0x2b2419,_0x4e3dd5,_0x1a9999['$input'],_0x1a9999[_0x20f1e3(0xa9)])[_0x20f1e3(0xae)](_0x1d614a=>{const _0x534275=_0x20f1e3;!_0x1d614a?_0x1a9999['$combo'][_0x534275(0x18e)](_0x534275(0xa1)):_0x1a9999[_0x534275(0x10f)][_0x534275(0x137)](_0x534275(0xa1));});},'_hideMenu'(_0x4a0300){const _0x3714f2=_0x3de641,_0x23fafc=this;$(document)[_0x3714f2(0xd5)](_0x3714f2(0x9d)),_0x4a0300[_0x3714f2(0xf6)](),_0x4a0300[_0x3714f2(0x123)]({'height':'auto'});if(_0x4a0300[_0x3714f2(0x102)][_0x3714f2(0x165)]){var _0x1f940f=[];_0x4a0300['find'](_0x3714f2(0x186))[_0x3714f2(0xb7)](function(){const _0xafd442=_0x3714f2;$(this)[_0xafd442(0x86)](_0xafd442(0x184))&&_0x1f940f[_0xafd442(0xaa)]($(this)[_0xafd442(0xd8)]('value'));}),_0x4a0300[_0x3714f2(0x117)](_0x1f940f);}_0x23fafc[_0x3714f2(0x11e)]['is'](_0x3714f2(0x189))?_0x23fafc['$input'][_0x3714f2(0xe7)](_0x3714f2(0x83)):_0x23fafc[_0x3714f2(0x135)][_0x3714f2(0xe7)]('focus');},'_createMenu'(_0x5d11a5,_0x1a7683,_0x415ce4){const _0x5ac1f5=_0x3de641;var _0x1407a2=this;const _0x5cc548=$(_0x5ac1f5(0xcb))['addClass'](_0x5ac1f5(0x174));return _0x5cc548[_0x5ac1f5(0x102)]=_0x1a7683,_0x5cc548[_0x5ac1f5(0x117)]=_0x415ce4,_0x5d11a5['forEach'](_0x53b22d=>{const _0x357416=_0x5ac1f5;typeof _0x53b22d===_0x357416(0x141)&&(_0x53b22d={'value':_0x53b22d,'label':_0x53b22d});var _0x431a84=$(_0x357416(0x10c))[_0x357416(0xe4)]('value',_0x53b22d[_0x357416(0x126)])[_0x357416(0x164)](_0x5cc548);_0x53b22d[_0x357416(0x79)]&&_0x431a84[_0x357416(0xa6)](_0x53b22d[_0x357416(0x79)]);_0x53b22d[_0x357416(0x78)]&&_0x431a84[_0x357416(0x86)](_0x357416(0x78),_0x53b22d[_0x357416(0x78)]);if(_0x53b22d[_0x357416(0xf5)]){if(_0x53b22d[_0x357416(0xf5)][_0x357416(0x11f)]('<')===0x0)$(_0x53b22d[_0x357416(0xf5)])[_0x357416(0x18f)](_0x431a84);else _0x53b22d[_0x357416(0xf5)][_0x357416(0x11f)]('/')!==-0x1?$(_0x357416(0x15e),{'class':_0x357416(0xab),'style':'mask-image:\x20url('+_0x53b22d[_0x357416(0xf5)]+');\x20-webkit-mask-image:\x20url('+_0x53b22d['icon']+');'})[_0x357416(0x18f)](_0x431a84):$(_0x357416(0x15e),{'class':'red-ui-typedInput-icon\x20'+_0x53b22d[_0x357416(0xf5)]})[_0x357416(0x18f)](_0x431a84);}else _0x431a84['css']({'paddingLeft':_0x357416(0x160)});!_0x53b22d[_0x357416(0xf5)]&&!_0x53b22d['label']&&_0x431a84[_0x357416(0xa6)](_0x53b22d[_0x357416(0x126)]);var _0x47902a;_0x1a7683[_0x357416(0x165)]&&(_0x47902a=$(_0x357416(0x195))[_0x357416(0x123)](_0x357416(0xd1),'none')[_0x357416(0xd8)](_0x357416(0x126),_0x53b22d[_0x357416(0x126)])['prependTo'](_0x431a84)['on'](_0x357416(0xf7),function(_0x446f39){const _0x581df3=_0x357416;_0x446f39[_0x581df3(0x106)]();})),_0x431a84['on']('click',function(_0x3af11a){const _0x1f0cea=_0x357416;_0x3af11a[_0x1f0cea(0x106)](),_0x3af11a[_0x1f0cea(0x185)](),!_0x1a7683['multiple']?(_0x415ce4(_0x53b22d[_0x1f0cea(0x126)]),_0x1407a2[_0x1f0cea(0xea)](_0x5cc548)):_0x47902a[_0x1f0cea(0x86)](_0x1f0cea(0x184),!_0x47902a[_0x1f0cea(0x86)](_0x1f0cea(0x184)));});}),_0x5cc548[_0x5ac1f5(0x123)]({'display':_0x5ac1f5(0xde)}),_0x5cc548['on']('keydown',function(_0xcdfc34){const _0x3ce64b=_0x5ac1f5;if(_0xcdfc34[_0x3ce64b(0x120)]===0x28)_0xcdfc34[_0x3ce64b(0x106)](),$(this)['children'](_0x3ce64b(0x94))[_0x3ce64b(0x18d)]()['trigger'](_0x3ce64b(0x83));else{if(_0xcdfc34['keyCode']===0x26)_0xcdfc34[_0x3ce64b(0x106)](),$(this)[_0x3ce64b(0x15a)](_0x3ce64b(0x94))['prev']()[_0x3ce64b(0xe7)](_0x3ce64b(0x83));else _0xcdfc34[_0x3ce64b(0x120)]===0x1b&&(_0xcdfc34[_0x3ce64b(0x106)](),_0x1407a2[_0x3ce64b(0xea)](_0x5cc548));}_0xcdfc34[_0x3ce64b(0x185)]();}),_0x5cc548;},'disarmClick':![],'_showMenu'(_0x4f7bd6,_0x11fb56){const _0x4f552e=_0x3de641;if(this[_0x4f552e(0x8d)]){this[_0x4f552e(0x8d)]=![];return;}var _0x5d5c0a=this,_0x47d267=_0x11fb56['offset'](),_0x3ba871=_0x11fb56[_0x4f552e(0x92)](),_0x44181f=_0x4f7bd6['height'](),_0x149005=_0x3ba871+_0x47d267[_0x4f552e(0x190)];_0x149005+_0x44181f-$(document)[_0x4f552e(0xf0)]()>$(window)[_0x4f552e(0x92)]()&&(_0x149005-=_0x149005+_0x44181f-$(window)['height']()+0x5),_0x149005<0x0&&(_0x4f7bd6[_0x4f552e(0x92)](_0x44181f+_0x149005),_0x149005=0x0),_0x4f7bd6[_0x4f552e(0x123)]({'top':_0x149005+'px','left':_0x47d267['left']+'px'}),_0x4f7bd6['slideDown'](0x64),this['_delay'](function(){const _0x2f1c97=_0x4f552e;_0x5d5c0a['$uiSelect'][_0x2f1c97(0x18e)](_0x2f1c97(0xd7)),$(document)['on']('mousedown.red-ui-typedInput-close-property-select',function(_0x5ad57b){const _0x423114=_0x2f1c97;!$(_0x5ad57b[_0x423114(0x13b)])[_0x423114(0x14a)](_0x4f7bd6)[_0x423114(0x109)]&&_0x5d5c0a['_hideMenu'](_0x4f7bd6),$(_0x5ad57b['target'])['closest'](_0x11fb56)['length']&&(_0x5d5c0a['disarmClick']=!![],_0x5ad57b['preventDefault']());});});},'_showTypeMenu'(){const _0x1dc3a2=_0x3de641,_0x264ef7=this;this[_0x1dc3a2(0xa8)](_0x264ef7[_0x1dc3a2(0x12c)],_0x264ef7['$combo']),_0x264ef7['$dropdown'][_0x1dc3a2(0xf6)]();const _0x46df3d=_0x264ef7[_0x1dc3a2(0xcf)];var _0xa64a35=_0x264ef7[_0x1dc3a2(0x12c)]['find']('[value=\x27'+_0x46df3d+'\x27');setTimeout(function(){const _0x13e8ed=_0x1dc3a2;_0xa64a35['trigger'](_0x13e8ed(0x83));},0x78);},'_initMenu'(){const _0x509f18=_0x3de641,_0x5602fd=this;_0x5602fd[_0x509f18(0x135)][_0x509f18(0xe4)](_0x509f18(0x15c),-0x1),_0x5602fd[_0x509f18(0x135)]['on']('mousedown.red-ui-typedInput-focus-block',function(_0x4002c2){const _0x321b78=_0x509f18;_0x4002c2[_0x321b78(0x106)]();});_0x5602fd[_0x509f18(0x12c)]&&_0x5602fd[_0x509f18(0x12c)]['remove']();const _0x57a2fa=[{'label':_0x509f18(0xa6),'value':'t','title':_0x509f18(0x158),'icon':_0x509f18(0x178)},{'label':_0x509f18(0x132),'value':_0x509f18(0x133),'title':_0x509f18(0x9b),'icon':_0x509f18(0xac)},{'label':_0x509f18(0xd9),'value':'n','icon':'<i\x20class=\x22fa\x20fa-tag\x22/>1\x20&nbsp;\x20'},{'label':_0x509f18(0xf4),'value':'na','icon':'<i\x20class=\x22fa\x20fa-bookmark\x22/>&nbsp;\x20'},{'label':_0x509f18(0xbb),'value':_0x509f18(0x15f),'icon':'<i\x20class=\x22fa\x20fa-id-card\x22/>&nbsp;\x20'},{'label':_0x509f18(0x134),'value':'b','icon':'<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;'},{'label':_0x509f18(0x101),'value':'ab','icon':_0x509f18(0x16e)}],_0x367280=_0xe23632(_0x5602fd[_0x509f18(0x163)][_0x509f18(0x7c)]()),_0x39d11c=_0x57a2fa[_0x509f18(0x152)](_0x38faa3=>_0x38faa3[_0x509f18(0x126)]===_0x367280);_0x5602fd[_0x509f18(0xa4)][_0x509f18(0x7d)]()['append'](_0x509f18(0x17e)+((_0x39d11c===null||_0x39d11c===void 0x0?void 0x0:_0x39d11c[_0x509f18(0x78)])||'')+_0x509f18(0x162)+((_0x39d11c===null||_0x39d11c===void 0x0?void 0x0:_0x39d11c['icon'])||'')+'</span>'),_0x5602fd[_0x509f18(0xcf)]=_0x367280;const _0x1f5267=this;_0x5602fd[_0x509f18(0x12c)]=this[_0x509f18(0x16c)](_0x57a2fa,{},_0x178980=>{const _0x397919=_0x509f18,_0x5160a4=_0x47b1be(_0x178980);_0x5160a4&&_0x1f5267[_0x397919(0x14b)](_0x5160a4);const _0x33e5d5=_0x57a2fa['find'](_0x560460=>_0x560460[_0x397919(0x126)]===_0x178980);_0x5602fd['selectedMenuItem']=_0x178980,_0x5602fd[_0x397919(0xa4)][_0x397919(0x7d)]()[_0x397919(0x193)](_0x397919(0x17e)+((_0x33e5d5===null||_0x33e5d5===void 0x0?void 0x0:_0x33e5d5[_0x397919(0x78)])||'')+_0x397919(0x162)+((_0x33e5d5===null||_0x33e5d5===void 0x0?void 0x0:_0x33e5d5[_0x397919(0xf5)])||'')+'</span>');}),_0x5602fd['$menu'][_0x509f18(0x164)](document[_0x509f18(0x100)]),_0x5602fd[_0x509f18(0x12c)][_0x509f18(0xf6)](),_0x5602fd[_0x509f18(0x135)][_0x509f18(0xc5)]();},'mode'(){const _0x20d8f5=_0x3de641,_0x307b5b=this;return _0x47b1be(_0x307b5b[_0x20d8f5(0xcf)]);},'setMode'(_0x4509de){const _0x425686=this,_0x47d081=_0x2fc568(_0x4509de);_0x425686['selectedMenuItem']=_0x47d081;},'_create'(){const _0x309339=_0x3de641,_0x24d26f=this;_0x24d26f[_0x309339(0x163)]=this[_0x309339(0xfb)],_0x24d26f['$input'][_0x309339(0x123)]('border','none'),_0x24d26f['$elementDiv']=_0x24d26f['$input'][_0x309339(0xb5)]('<div>')['parent']()[_0x309339(0x18e)](_0x309339(0xdb)),_0x24d26f[_0x309339(0x10f)]=$('<div/>'),_0x24d26f[_0x309339(0x10f)]['addClass'](_0x309339(0xaf)),_0x24d26f[_0x309339(0x163)][_0x309339(0xe5)](_0x24d26f[_0x309339(0x10f)]),_0x24d26f[_0x309339(0x85)]=$('<div/>')['addClass']('input-group'),_0x24d26f['$combo'][_0x309339(0x193)](_0x24d26f[_0x309339(0x85)]),_0x24d26f[_0x309339(0x85)][_0x309339(0x193)](_0x24d26f[_0x309339(0x163)]),_0x24d26f[_0x309339(0x16a)]=$('<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x24d26f['$input'][_0x309339(0x143)](_0x24d26f[_0x309339(0x16a)]),_0x24d26f[_0x309339(0x16a)]['on'](_0x309339(0x7b),function(){return _0x17e5dc(this,void 0x0,void 0x0,function*(){const _0x1dc893=_0x9579;var _0x8227c8;let _0x486b6f=![],_0xd1970d;!_0x24d26f[_0x1dc893(0x17d)]['is'](_0x1dc893(0x189))&&(_0x24d26f['$info'][_0x1dc893(0xf6)](),_0xd1970d=yield _0x24d26f[_0x1dc893(0x105)](),(_0xd1970d!==_0x24d26f[_0x1dc893(0xc7)]||((_0x8227c8=_0x24d26f[_0x1dc893(0xc7)])===null||_0x8227c8===void 0x0?void 0x0:_0x8227c8[_0x1dc893(0xb9)])!==_0xd1970d[_0x1dc893(0xb9)])&&(yield _0x24d26f[_0x1dc893(0xc2)]()),_0x486b6f=!![]),_0x24d26f[_0x1dc893(0x17d)][_0x1dc893(0xbe)](),_0x486b6f&&(yield _0x16932b(_0x24d26f,_0xd1970d));});}),_0x24d26f[_0x309339(0xdd)]=$('<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>'),_0x24d26f[_0x309339(0x163)][_0x309339(0x143)](_0x24d26f['$verifyBtn']),_0x24d26f[_0x309339(0xdd)]['on'](_0x309339(0x7b),()=>{const _0x32528a=_0x309339,_0x221bf7=_0x24d26f['mode']();if(!_0x221bf7)return;this[_0x32528a(0x14b)](_0x221bf7);});const _0x20ecbd=_0x9d4479=>_0x17e5dc(this,void 0x0,void 0x0,function*(){const _0x461d02=_0x309339,_0x5d1dd1=this;let _0x5e3dc3=_0x5d1dd1[_0x461d02(0x10b)]();if(!_0x5e3dc3)return;const _0x19122b=_0x408801(_0x5d1dd1),{data:_0x537cbd,json:_0x28a76d}=yield _0xdcac65(_0x19122b,_0x9d4479);if(_0x537cbd['status']!==0xc8)return;if(_0x28a76d[_0x461d02(0x95)][_0x461d02(0xc8)](/Good/)){const _0x350b8f=_0x4de438(_0x28a76d,_0x5e3dc3);_0x5d1dd1[_0x461d02(0x163)][_0x461d02(0x7c)](_0x350b8f),_0x5d1dd1[_0x461d02(0x163)][_0x461d02(0xe7)]('change');}});{_0x24d26f['$uiSelect']=$(_0x309339(0xcb)),_0x24d26f[_0x309339(0x163)][_0x309339(0xe3)](_0x24d26f[_0x309339(0xad)]),_0x24d26f[_0x309339(0x135)]=$('<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>')[_0x309339(0x18f)](_0x24d26f['$uiSelect']),$('<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>')['toggle'](!![])['appendTo'](_0x24d26f[_0x309339(0x135)]),_0x24d26f[_0x309339(0x135)]['on']('click',function(_0x3cf1dd){const _0x23ce3b=_0x309339;_0x3cf1dd[_0x23ce3b(0x106)](),_0x3cf1dd['stopPropagation'](),_0x24d26f[_0x23ce3b(0xe6)]();}),_0x24d26f[_0x309339(0x135)]['on'](_0x309339(0xd0),function(_0x187d70){const _0x3f0350=_0x309339;_0x187d70[_0x3f0350(0x120)]===0x28&&_0x24d26f[_0x3f0350(0xe6)](),_0x187d70[_0x3f0350(0x185)]();})['on']('focus',function(){const _0xc45bee=_0x309339;_0x24d26f[_0xc45bee(0xad)][_0xc45bee(0x18e)]('red-ui-typedInput-focus');})['on'](_0x309339(0x10e),function(){const _0x2e1905=_0x309339;_0x24d26f[_0x2e1905(0xad)]['removeClass'](_0x2e1905(0xd7));}),_0x24d26f[_0x309339(0xa4)]=$(_0x309339(0x146))[_0x309339(0x164)](_0x24d26f[_0x309339(0x135)]);}this[_0x309339(0x16f)]();!_0x24d26f['$input'][_0x309339(0xe4)]('placeholder')&&_0x24d26f[_0x309339(0x163)]['attr'](_0x309339(0x112),_0x309339(0x161));_0x24d26f[_0x309339(0xa9)]=$(_0x309339(0x84)),_0x24d26f['$info'][_0x309339(0xf6)](),_0x24d26f[_0x309339(0x10f)]['append'](_0x24d26f['$info']),_0x24d26f['$dropdown']=$(_0x309339(0x127))[_0x309339(0x18e)]('sterfive-dropdown')[_0x309339(0xf6)]()['appendTo'](_0x24d26f['$combo']),_0x24d26f[_0x309339(0x119)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')['appendTo'](_0x24d26f[_0x309339(0x17d)]),this['reset']();const _0x5a226f=(_0x30f970,_0x385523)=>{const _0x34e655=_0x309339,_0xbe463=0x14,_0x4ac4ea=0x14,_0x3c80eb=_0x30f970[_0x34e655(0x155)](),_0x43a69a=_0x385523;if(_0x43a69a[_0x34e655(0xef)]>=_0x3c80eb[_0x34e655(0x14f)]&&_0x43a69a['pageX']<=_0x3c80eb[_0x34e655(0x14f)]+_0xbe463&&_0x43a69a[_0x34e655(0xcd)]>=_0x3c80eb['top']&&_0x43a69a['pageY']<=_0x3c80eb[_0x34e655(0x190)]+_0x4ac4ea)return!![];return![];},_0x50f207=_0x4d0d3c=>_0x17e5dc(this,void 0x0,void 0x0,function*(){const _0x368c90=_0x309339;if(_0x4d0d3c['hasClass'](_0x368c90(0x167)))_0x285fbe(_0x24d26f,_0x4d0d3c);else{if(_0x4d0d3c[_0x368c90(0x17f)](_0x368c90(0xb2)))_0x4d0d3c[_0x368c90(0x15a)]('ul')['toggle'](),_0x4d0d3c[_0x368c90(0x140)]('expandable\x20expanded');else{if(_0x4d0d3c[_0x368c90(0x15a)]('ul')[_0x368c90(0x15a)]()['length']>0x0)_0x4d0d3c[_0x368c90(0x15a)]('ul')['toggle'](),_0x4d0d3c[_0x368c90(0x140)](_0x368c90(0xbc));else;}}});_0x24d26f[_0x309339(0x119)]['on'](_0x309339(0xeb),'li',function(_0x40dc1b){const _0x207b20=_0x309339;var _0x94d332,_0x72880f;_0x40dc1b[_0x207b20(0x185)]();let _0x384b51=$(this);if(_0x5a226f(_0x384b51,_0x40dc1b))_0x50f207(_0x384b51);else{const _0x474e59=_0x384b51[_0x207b20(0xd8)](_0x207b20(0x126)),_0x41dece=_0x384b51['data'](_0x207b20(0xa5));if(_0x24d26f['options'][_0x207b20(0x128)]&&!_0x24d26f[_0x207b20(0xbf)]['isSelectable'](_0x41dece))return;_0x24d26f[_0x207b20(0x163)][_0x207b20(0xd8)]('reference',_0x41dece),((_0x94d332=_0x41dece[_0x207b20(0x17b)])===null||_0x94d332===void 0x0?void 0x0:_0x94d332[_0x207b20(0xa6)])||((_0x72880f=_0x41dece['browseName'])===null||_0x72880f===void 0x0?void 0x0:_0x72880f[_0x207b20(0x176)])||_0x41dece[_0x207b20(0xb9)][_0x207b20(0xf2)]();let _0x1575a9=_0x24d26f[_0x207b20(0x10b)]();!_0x1575a9&&(_0x1575a9=_0x207b20(0xb9),_0x24d26f[_0x207b20(0x11b)](_0x1575a9)),_0x20ecbd(_0x474e59)[_0x207b20(0xae)](()=>{const _0x50a9e1=_0x207b20;_0x24d26f[_0x50a9e1(0x17d)]['hide']();})[_0x207b20(0x188)](_0xbc2bcc=>{const _0x544d68=_0x207b20;_0x24d26f[_0x544d68(0x17d)][_0x544d68(0xf6)]();});}}),_0x24d26f[_0x309339(0x119)]['on'](_0x309339(0x7b),'li',function(_0x550d9c){_0x550d9c['stopPropagation']();let _0x45ea17=$(this);_0x5a226f(_0x45ea17,_0x550d9c)&&_0x50f207(_0x45ea17),_0x11827d(_0x24d26f,_0x45ea17);}),$(document)['on']('click',function(_0x320bce){const _0x2d4314=_0x309339;!$(_0x320bce[_0x2d4314(0x13b)])[_0x2d4314(0x14a)](_0x24d26f[_0x2d4314(0x10f)])[_0x2d4314(0x109)]&&_0x24d26f[_0x2d4314(0x17d)][_0x2d4314(0xf6)]();});}});},_0x5a897a=()=>{const _0x42882a=_0x232955,_0x5c30e2=$(_0x42882a(0xf3)),_0x56afb3=_0x5c30e2['val'](),_0xfb26a8=RED['nodes'][_0x42882a(0x10d)](_0x56afb3);if(!_0xfb26a8)return undefined;const {endpoint:_0x3b9d4f,securityMode:_0x4f5ff4,securityPolicy:_0x574e8e,userIdentityType:_0x3487fa,credentials:_0x405cfb,namespaceAliases:_0xf670e}=_0xfb26a8,_0x2345f0={'endpoint':_0x3b9d4f,'securityMode':_0x4f5ff4,'securityPolicy':_0x574e8e,'userIdentityType':_0x3487fa,'credentials':_0x405cfb,'namespaceAliases':_0xf670e};return _0x2345f0;},_0x3bf99e=()=>{const _0x4f86ba=_0x232955,_0x4b62d4=$(_0x4f86ba(0xf3)),_0x23694f=_0x4b62d4['val'](),_0xed164e=_0x5a897a();if(!_0xed164e)return undefined;const _0x219002=_0xed164e[_0x4f86ba(0xee)];return Object['assign']({'namespaceAliases':_0x219002,'id':_0x23694f},_0xed164e);},_0xbf3405=()=>{return{'endpointNode':_0x3bf99e};},_0x3eb32e=()=>{const _0x2f05ba=_0x232955,_0xe43de9=$(_0x2f05ba(0x149));console[_0x2f05ba(0x166)](_0x2f05ba(0x13c),_0xe43de9[_0x2f05ba(0x109)]);if(_0xe43de9['length']){console[_0x2f05ba(0x166)](_0x2f05ba(0xca));const _0x497887=$(_0x2f05ba(0x87),{'src':'/opcua-for-node-red/support-frame.html','scrolling':'no','style':_0x2f05ba(0x13a),'allowtransparency':'true','width':_0x2f05ba(0x15b),'height':_0x2f05ba(0xff)});_0xe43de9[_0x2f05ba(0x193)](_0x497887),_0x497887[_0x2f05ba(0x123)]({'position':_0x2f05ba(0xe8),'right':_0x2f05ba(0x125),'bottom':_0x2f05ba(0x93)});}};RED['nodes'][_0x232955(0x113)]('OpcUa-Client2-Explore',{'category':'opcua','color':_0x232955(0x17c),'align':'right','icon':_0x232955(0xf1),'paletteLabel':_0x232955(0x76),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x232955(0xc6)},'nodeId':{'value':'','required':![]},'outputType':{'value':_0x232955(0x121),'required':!![]},'excludeEmpty':{'value':![]},'followOrganizes':{'value':![]}},'outputs':0x1,'label'(){const _0x36cebe=_0x232955;return this[_0x36cebe(0x176)]||_0x36cebe(0x11c);},'labelStyle'(){const _0x3a76f4=_0x232955;return this[_0x3a76f4(0x176)]?'node_label_italic':'';},'oneditprepare'(){const _0xdd0800=_0x232955,_0x1e2b80=this;_0x4f7ce9(),_0x3eb32e(),_0x1e2b80[_0xdd0800(0x177)]=0x1;const _0x903d5e=$(_0xdd0800(0xd4));_0x903d5e[_0xdd0800(0x145)](Object[_0xdd0800(0xc1)](Object[_0xdd0800(0xc1)]({},_0xbf3405()),{'isSelectable'(_0x4f76ca){const _0x226545=_0xdd0800;return _0x4f76ca[_0x226545(0x104)]===_0x226545(0xb6)||_0x4f76ca['nodeClass']===_0x226545(0xed);}}));},'oneditsave'(){}});}()));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxN2U1ZGMiLCJfMHg1Yzk3Y2YiLCJfMHgxOWYwN2QiLCJfMHg0YTI2ZjEiLCJfMHg0NzA0YWUiLCJfMHgzMGE2MWYiLCJfMHgzOWExNGMiLCJfMHg0OTJkOWMiLCJQcm9taXNlIiwiXzB4M2RjNGQwIiwiXzB4M2NhNGJjIiwiXzB4NTQ5MzVmIiwiXzB4NWI0MzNmIiwiXzB4NTJhYTM5IiwiXzB4M2I4NGJiIiwiXzB4MjhkMjBiIiwiXzB4MTA4NzIzIiwiXzB4MmM0NDE2IiwiXzB4NWQwZDgyIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NGY3YzI5IiwiXzB4MjJmNDAwIiwiXzB4M2FhOGY1IiwiXzB4MWMyMjFlIiwiRXJyb3IiLCJfMHgyY2FiYTEiLCJfMHgzYmZmOWQiLCJfMHgyMDA5MjMiLCJfMHg0ZTJiZTAiLCJfMHgyYzRlYWEiLCJfMHg0YWY0Y2UiLCJfMHg1M2M5YjUiLCJfMHgxZWNmYWMiLCJfMHgxNzU3ZWUiLCJfMHgxZmQ4ZDAiLCJfMHgzN2VmZjgiLCJfMHgxNTJmZTkiLCJfMHgzMjEzMDUiLCJfMHg0NmY3ZWIiLCJfMHgyZDkyOTIiLCJfMHhmYWUyNGEiLCJfMHg0NDVjNDQiLCJfMHgxZTE3NTEiLCJfMHgxMmQzZDUiLCJfMHgzZmM1NzkiLCJfMHhlMDliZjciLCJfMHgxZjlkMmEiLCJfMHgzNThiY2IiLCJlbmRwb2ludE5vZGUiLCJfMHgyNmNiYTgiLCJlbmRwb2ludCIsIl8weDQ3ZGNmNyIsImJhc2VVcmwiLCJfMHg1ZDdmMmYiLCJfMHg0MGI4MDIiLCJfMHg0OWYwMGEiLCJfMHg1Y2YzYjQiLCJfMHgyZDFhMDIiLCJfMHgzZmEwYjMiLCJPYmplY3QiLCJfMHg1NjM3NGYiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4OTU0MzgxIiwiXzB4MjI4ZGI2IiwiXzB4NDFjZTA0IiwiXzB4NDJkYzJlIiwiXzB4YjlkODdmIiwiXzB4MzFmMTQyIiwiXzB4ZDI0NDExIiwiXzB4NGViZjhmIiwiXzB4NDQyOTkxIiwiXzB4MmM3ZjhjIiwibm9kZUlkIiwiXzB4MTlkZTU5Iiwicm9vdE5vZGVJZCIsIl8weDFjN2UwZCIsImlzVHlwZSIsIl8weDJhYzI5ZCIsIl8weGM1MDQwNSIsIl8weDMwN2MwZSIsIl8weDU1ODk2NSIsIl8weDMyMzlhOCIsIl8weDRkZTQzOCIsIl8weDViOWU1NiIsIl8weDJjNTQ0YSIsIl8weDJjZGQ4NCIsIl8weDMxZmRjZCIsIl8weDFiNTdiYiIsIl8weDNhZDZmOCIsIl8weDQ1MmZmOSIsIl8weGUyMzYzMiIsIl8weGUwZTg3YyIsIl8weDE3NTlmMyIsIl8weDQ3YjFiZSIsIl8weGNhZWU1ZCIsIl8weDE5ZGY1ZSIsIl8weDJmYzU2OCIsIl8weGMwOTFlYSIsIl8weGRjYWM2NSIsIl8weDJkYTllZiIsIl8weDI3ZDQxOCIsIl8weDM2MjRmNCIsIl8weGY2OWRmMiIsIl8weDJmMmViMiIsIl8weDEyZTRhZiIsIl8weDExODUxYiIsIl8weDQ5MDBiMSIsIl8weDQ5ZGFjMyIsIl8weDJiN2ZiYyIsIlJFRCIsIl8weDI4NWExMCIsIl8weDE3OGEwZiIsIl8weDI3NGJkMiIsIl8weDExMmI4MSIsIl8weDIwZDMxNyIsIl8weDIwYjJlMCIsIl8weDRjZDZhYiIsIl8weDQ3M2NmMiIsIl8weDE0NmIyYSIsIl8weDI5M2Y0OCIsIl8weDNmOTg1OCIsIl8weDhlNmVmMCIsIl8weDRiMWFhOCIsIl8weDFhYmQ0YyIsIl8weGEzM2YzMCIsImpzb24iLCJfMHgzYjk0OTgiLCJkYXRhIiwiXzB4NDcwZjhiIiwiXzB4MjI4ODE4IiwiXzB4NTA2YjBmIiwiXzB4Mjc2NTVlIiwic2V0VGltZW91dCIsIl8weDM4YmFmNyIsIl8weDIyNjg4YyIsIl8weDNhN2VjNyIsIl8weDI3NWNkZCIsIl8weDVkMmVkNiIsIl8weDFlYmZiYSIsIl8weDI0MzdmYSIsIl8weDNlYjBkOCIsIl8weDJkODNlOSIsIl8weGVhYWUyNSIsIl8weDRmODU1YiIsIl8weDNiODYwMSIsIl8weDQyNDEyMiIsIl8weDFmMzIxYSIsIl8weDQ3MzZkNCIsIl8weDVjNjkzZiIsIl8weDRlN2JjOSIsIl8weDI0YTI1NCIsIl8weDU0YjJhMSIsIl8weDFjNmQ4NiIsIl8weDNiZDk5MyIsIiQiLCJfMHg1NTQxZWYiLCJfMHgyMjI1MGMiLCJpY29uIiwiXzB4NDhlYmYyIiwiY29sb3IiLCJfMHg0Njk1ODEiLCJfMHg5ODRjY2EiLCJfMHg2NDY0ZmQiLCJfMHg0NTM0NmIiLCJfMHgzMmQ4YWIiLCJfMHgzNjY0ZDQiLCJfMHgxMTgyN2QiLCJfMHg1MjM2ODIiLCJfMHgzYTEyNzAiLCJfMHgyOGIzNGIiLCJfMHgyYTVhYzYiLCJfMHg3OTA0NiIsIl8weGEzZmYwMyIsIl8weDU5YWZhOSIsIl8weDFjZjU4MSIsIl8weDRlZDRmOSIsIl8weDI4NWZiZSIsIl8weDMwNTI0MCIsIl8weDE3YTg5ZCIsIl8weDUyNGU2MSIsIl8weDUyOTQ5NSIsIl8weDI1YWJmYSIsIl8weDI2ZTJlNSIsInVuZGVmaW5lZCIsIl8weDU3NjgxNiIsIl8weDE2OTMyYiIsIl8weDRhZjIyNSIsIl8weDNjODdiZiIsIl8weDRkZTE5OSIsIl8weDE5YmU3YiIsIl8weDQxNGUyMyIsIl8weDQwODgwMSIsIl8weDI4ZmE2NCIsIl8weDU5ZmJkMSIsIl8weDFlNjczMiIsIl8weDUzNGMzZSIsIl8weDFjNGY2MyIsIl8weDM5MzhhYyIsInJlZmVyZW5jZXMiLCJfMHgxOWQwNWQiLCJfMHhjZWViMjkiLCJfMHg1NDZjZTQiLCJfMHgxODdiYzciLCJfMHg2MWZmMWMiLCJfMHhiNzhjNGYiLCJfMHgxMDlmMzAiLCJfMHgyNzIyMWMiLCJfMHg1YjkwZTEiLCJfMHg1YmQ4MjEiLCJfMHg1NTgxZTEiLCJfMHgzNjI3MTkiLCJfMHgzYTdhNTYiLCJfMHg0OTdjMjMiLCJfMHgzY2MxMTMiLCJfMHg0NDU4MGUiLCJfMHg0ZjdjZTkiLCJfMHgyY2E0NmEiLCJfMHgxZTZhYTkiLCJfMHgxYTcxODkiLCJfMHg1NjkwZmUiLCJfMHg1ZGE3Y2YiLCJfMHgxNDBjMDUiLCJfMHgxOGMzN2UiLCJfMHg0ZTNkZDUiLCJfMHgxYTk5OTkiLCJfMHgyYjI0MTkiLCJfMHgxZDYxNGEiLCJfMHg0YTAzMDAiLCJfMHgyM2ZhZmMiLCJkb2N1bWVudCIsIl8weDFmOTQwZiIsIl8weDVkMTFhNSIsIl8weDFhNzY4MyIsIl8weDQxNWNlNCIsIl8weDE0MDdhMiIsIl8weDVjYzU0OCIsIl8weDUzYjIyZCIsIl8weDQzMWE4NCIsIl8weDQ3OTAyYSIsIl8weDQ0NmYzOSIsIl8weDNhZjExYSIsIl8weGNkZmMzNCIsIl8weDRmN2JkNiIsIl8weDExZmI1NiIsIl8weDVkNWMwYSIsIl8weDQ3ZDI2NyIsIl8weDNiYTg3MSIsIl8weDQ0MTgxZiIsIl8weDE0OTAwNSIsIndpbmRvdyIsIl8weDVhZDU3YiIsIl8weDI2NGVmNyIsIl8weDQ2ZGYzZCIsIl8weGE2NGEzNSIsIl8weDU2MDJmZCIsIl8weDQwMDJjMiIsIl8weDU3YTJmYSIsIl8weDM2NzI4MCIsIl8weDM5ZDExYyIsIl8weDM4ZmFhMyIsIl8weDFmNTI2NyIsIl8weDE3ODk4MCIsIl8weDUxNjBhNCIsIl8weDMzZTVkNSIsIl8weDU2MDQ2MCIsIl8weDMwN2I1YiIsIl8weDQ1MDlkZSIsIl8weDQyNTY4NiIsIl8weDQ3ZDA4MSIsIl8weDI0ZDI2ZiIsIl8weDgyMjdjOCIsIl8weDQ4NmI2ZiIsIl8weGQxOTcwZCIsIl8weDIyMWJmNyIsIl8weDIwZWNiZCIsIl8weDlkNDQ3OSIsIl8weDVkMWRkMSIsIl8weDVlM2RjMyIsIl8weDE5MTIyYiIsIl8weDUzN2NiZCIsIl8weDI4YTc2ZCIsIl8weDM1MGI4ZiIsIl8weDNjZjFkZCIsIl8weDE4N2Q3MCIsIl8weDVhMjI2ZiIsIl8weDMwZjk3MCIsIl8weDM4NTUyMyIsIl8weGJlNDYzIiwiXzB4NGFjNGVhIiwiXzB4M2M4MGViIiwiXzB4NDNhNjlhIiwiXzB4NTBmMjA3IiwiXzB4NGQwZDNjIiwiXzB4NDBkYzFiIiwiXzB4OTRkMzMyIiwiXzB4NzI4ODBmIiwiXzB4Mzg0YjUxIiwiXzB4NDc0ZTU5IiwiXzB4NDFkZWNlIiwiXzB4MTU3NWE5IiwiXzB4YmMyYmNjIiwiXzB4NTUwZDljIiwiXzB4NDVlYTE3IiwiXzB4MzIwYmNlIiwiXzB4NWE4OTdhIiwiXzB4NWMzMGUyIiwiXzB4NTZhZmIzIiwiXzB4ZmIyNmE4IiwiXzB4M2I5ZDRmIiwic2VjdXJpdHlNb2RlIiwiXzB4NGY1ZmY0Iiwic2VjdXJpdHlQb2xpY3kiLCJfMHg1NzRlOGUiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4MzQ4N2ZhIiwiY3JlZGVudGlhbHMiLCJfMHg0MDVjZmIiLCJuYW1lc3BhY2VBbGlhc2VzIiwiXzB4ZjY3MGUiLCJfMHgyMzQ1ZjAiLCJfMHgzYmY5OWUiLCJfMHg0YjYyZDQiLCJfMHgyMzY5NGYiLCJfMHhlZDE2NGUiLCJfMHgyMTkwMDIiLCJfMHhiZjM0MDUiLCJfMHgzZWIzMmUiLCJfMHhlNDNkZTkiLCJfMHg0OTc4ODciLCJfMHgxZTJiODAiLCJfMHg5MDNkNWUiLCJfMHg0Zjc2Y2EiXSwibWFwcGluZ3MiOiJnb0tBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMseUJBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNB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LFNBQUEsQyxXQUFBLEksaUJBRGlDLENBQWpFLENBQXBCLEMsRUFoQ3dDLEMsWUFvQzVDLEUsRUFwQzRDLENBQWhELEMsRUE5aUNKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wsIEl0ZXJhdG9yICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9IChfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImJyb3dzZSBmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHdhbGtCYWNrd2FyZCA9IChfYSwgX2IpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgX2JdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vd2Fsay1iYWNrd2FyZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkLFxuICAgICAgICAgICAgICAgIGlzVHlwZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4ganNvbi5icm93c2VQYXRoO1xuICAgIH0pO1xuICAgIGNvbnN0IGNob29zZU5vZGVJZCA9IChkYXRhLCBtb2RlKSA9PiB7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgIT09IFwiR29vZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5yZXF1ZXN0ZWROb2RlSWQ7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmJwX2luZGV4ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5icF9hbGlhc2VkIHx8IGRhdGEuYnBfaW5kZXhlZDtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkX2FsaWFzZWQgfHwgZGF0YS5ub2RlSWRfbnN1O1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZF9uc3U7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZDtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgbWFrZVRvb2x0aXAgPSAoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXNDb2RlICE9PSBcIkdvb2RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGBzdGF0dXNDb2RlOiAke2RhdGEuc3RhdHVzQ29kZX1gO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IHN0ciA9IFtdO1xuICAgICAgICAgICAgc3RyLnB1c2goYG5vZGVJZDogJHtkYXRhLm5vZGVJZH1gKTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBicm93c2UgcGF0aDogJHtkYXRhLmJwX2luZGV4ZWR9YCk7XG4gICAgICAgICAgICBzdHIucHVzaChgbm9kZSBjbGFzczogJHtOb2RlQ2xhc3NbZGF0YS5ub2RlQ2xhc3NdfWApO1xuICAgICAgICAgICAgaWYgKGRhdGEubm9kZUlkX25zdSkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBuc3Ugbm9kZUlkOiAke2RhdGEubm9kZUlkX25zdX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLm5vZGVJZF9hbGlhc2VkKSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYGFsaWFzZWQgTm9kZUlkOiAke2RhdGEubm9kZUlkX2FsaWFzZWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5icF9pbmRleGVkKSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYGFsaWFzZWQgYnJvd3NlUGF0aDogJHtkYXRhLmJwX2FsaWFzZWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3RyLmpvaW4oXCJcXG5cIik7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZpZ3VyZU91dE1vZGUoZW5oYW5jZWROb2RlSWQpIHtcbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9ebnN1PS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJuc3VOb2RlSURcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14obnM9Lio7KT8oaXxifHN8Zyk9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm5vZGVJZFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXm5zYT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYWxpYXNlZE5vZGVJZFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihcXC98XFwuKVswLTldKzovKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihcXC98XFwuKS4qOi8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJicm93c2VQYXRoXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZmlndXJlT3V0TWVuVUl0ZW1WYWx1ZShzdHIpIHtcbiAgICAgICAgY29uc3QgbW9kZSA9IGZpZ3VyZU91dE1vZGUoc3RyKTtcbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwibm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiblwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWROb2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuYVwiO1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5zdVwiO1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJiXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhYlwiO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ0XCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdG9Nb2RlKHYpIHtcbiAgICAgICAgbGV0IG1vZGU7XG4gICAgICAgIHN3aXRjaCAodikge1xuICAgICAgICAgICAgY2FzZSBcIm5cIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJub2RlSWRcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJuYVwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImFsaWFzZWROb2RlSWRcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJuc3VcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJuc3VOb2RlSURcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJiXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImFiXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYWxpYXNlZEJyb3dzZVBhdGhcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9kZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZnJvbU1vZGUobW9kZSkge1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5hXCI7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibnN1XCI7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImJcIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImFiXCI7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcInRcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBfY2FsbENoZWNrTm9kZUlkID0gKF9hLCBub2RlSWRfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGVJZCA9IGVuZHBvaW50Tm9kZS5pZDtcbiAgICAgICAgY29uc3QgbiA9IFJFRC5ub2Rlcy5ub2RlKGVJZCk7XG4gICAgICAgIGNvbnNvbGUubG9nKG4ubmFtZXNwYWNlQWxpYXNlcyk7XG4gICAgICAgIG4ubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGVuZHBvaW50Tm9kZS5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlcyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiB7IGpzb24sIGRhdGEgfTtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG1vZGUsICRpbnB1dEVsZW1lbnQsICRpbmZvKSB7XG4gICAgICAgIGNvbnN0IGVuaGFuY2VkTm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgeyBqc29uLCBkYXRhIH0gPSB5aWVsZCBfY2FsbENoZWNrTm9kZUlkKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBlbmhhbmNlZE5vZGVJZCk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIGVuaGFuY2VkTm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29sdGlwID0gbWFrZVRvb2x0aXAoanNvbik7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC5hdHRyKFwidGl0bGVcIiwgdG9vbHRpcCk7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSBjaG9vc2VOb2RlSWQoanNvbiwgbW9kZSk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoc2VsZWN0ZWROb2RlSWQpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtlbmhhbmNlZE5vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBzb3J0IHJlZmVyZW5jZSAgIGJ5IGJyb3dzZU5hbWVcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzLnNvcnQoKGEsIGIpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuICgoKF9hID0gYS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmFtZSkgfHwgXCJcIikubG9jYWxlQ29tcGFyZSgoKF9iID0gYi5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgXCJcIik7IH0pO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFBhcmVudE5vZGUgPSB7XG4gICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiBkZWZhdWx0UGFyZW50Tm9kZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5fX3BhcmVudE5vZGUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlIHx8IGRlZmF1bHRQYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KG1vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIG1vZGUsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKS50aGVuKChzdWNjZXNzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJpbnB1dC1lcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLnJlbW92ZUNsYXNzKFwiaW5wdXQtZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaGlkZU1lbnUobWVudSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1jbG9zZS1wcm9wZXJ0eS1zZWxlY3RcIik7XG4gICAgICAgICAgICAgICAgbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChtZW51Lm9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gW107XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuZmluZCgnaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnB1c2goJCh0aGlzKS5kYXRhKFwidmFsdWVcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayhzZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRlbGVtZW50RGl2LmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAvL3h4IH0gZWxzZSBpZiAodGhpcy4kb3B0aW9uU2VsZWN0VHJpZ2dlci5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8veHggICAgIHRoYXQuJG9wdGlvblNlbGVjdFRyaWdnZXIudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGVNZW51KG1lbnVPcHRpb25zLCBvcHRzLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBtZW51ID0gJChcIjxkaXY+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtdHlwZWRJbnB1dC1vcHRpb25zIHN0ZXJmaXZlLW9ubGluZS1tZW51XCIpO1xuICAgICAgICAgICAgICAgIG1lbnUub3B0cyA9IG9wdHM7XG4gICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICAgICAgICAgIG1lbnVPcHRpb25zLmZvckVhY2goKG9wdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0ID0geyB2YWx1ZTogb3B0LCBsYWJlbDogb3B0IH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG9wID0gJCgnPGEgaHJlZj1cIiNcIj48L2E+JykuYXR0cihcInZhbHVlXCIsIG9wdC52YWx1ZSkuYXBwZW5kVG8obWVudSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnRleHQob3B0LmxhYmVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0LnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC5wcm9wKFwidGl0bGVcIiwgb3B0LnRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0Lmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiPFwiKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQob3B0Lmljb24pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiL1wiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiPGk+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwicmVkLXVpLXR5cGVkSW5wdXQtaWNvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogXCJtYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTsgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTtcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIjxpPlwiLCB7IGNsYXNzOiBcInJlZC11aS10eXBlZElucHV0LWljb24gXCIgKyBvcHQuaWNvbiB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AuY3NzKHsgcGFkZGluZ0xlZnQ6IFwiMThweFwiIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0Lmljb24gJiYgIW9wdC5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AudGV4dChvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBjYjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNiID0gJCgnPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyhcInBvaW50ZXItZXZlbnRzXCIsIFwibm9uZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kYXRhKFwidmFsdWVcIiwgb3B0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmVwZW5kVG8ob3ApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwibW91c2Vkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9wLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2IucHJvcChcImNoZWNrZWRcIiwgIWNiLnByb3AoXCJjaGVja2VkXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51Lm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5Q29kZSA9PT0gNDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRE9XTlxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5uZXh0KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAzOCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVUFxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5wcmV2KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAyNykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRVNDQVBFXG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVudTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkaXNhcm1DbGljazogZmFsc2UsXG4gICAgICAgICAgICBfc2hvd01lbnUobWVudSwgcmVsYXRpdmVUbykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpc2FybUNsaWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYXJtQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmFyIHBvcyA9IHJlbGF0aXZlVG8ub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IHJlbGF0aXZlVG8uaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdmFyIG1lbnVIZWlnaHQgPSBtZW51LmhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHZhciB0b3AgPSBoZWlnaHQgKyBwb3MudG9wO1xuICAgICAgICAgICAgICAgIGlmICh0b3AgKyBtZW51SGVpZ2h0IC0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgPiAkKHdpbmRvdykuaGVpZ2h0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wIC09IHRvcCArIG1lbnVIZWlnaHQgLSAkKHdpbmRvdykuaGVpZ2h0KCkgKyA1O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodG9wIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICBtZW51LmhlaWdodChtZW51SGVpZ2h0ICsgdG9wKTtcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHRvcCArIFwicHhcIixcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogcG9zLmxlZnQgKyBcInB4XCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5zbGlkZURvd24oMTAwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWxheShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWNsb3NlLXByb3BlcnR5LXNlbGVjdFwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QobWVudSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJChldmVudC50YXJnZXQpLmNsb3Nlc3QocmVsYXRpdmVUbykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5kaXNhcm1DbGljayA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3Nob3dUeXBlTWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93TWVudSh0aGF0LiRtZW51LCB0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0aGF0LnNlbGVjdGVkTWVudUl0ZW07XG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gdGhhdC4kbWVudS5maW5kKFwiW3ZhbHVlPSdcIiArIHR5cGUgKyBcIidcIik7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9LCAxMjApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbml0TWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLmF0dHIoXCJ0YWJpbmRleFwiLCAtMSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5vbihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1mb2N1cy1ibG9ja1wiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRtZW51KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGZhLWlkLWNhcmRcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlTGlzdCA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJ0ZXh0XCIsIHZhbHVlOiBcInRcIiwgdGl0bGU6IFwiVmFsdWUgaXMgbm90IHZlcmlmaWVkXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWZvbnRcIi9pPiAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIm1zZy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIm1zZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwibm9kZSBpZCBvciAgYnJvd3NlIHBhdGggY29tZXMgZnJvbSBpbmplY3RlZCBtc2cgcGFyYW1ldGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1lbnZlbG9wZS1vcGVuLW9cIi8+JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJOb2RlSWRcIiwgdmFsdWU6IFwiblwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+MSAmbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkFsaWFzZWQgTm9kZUlkXCIsIHZhbHVlOiBcIm5hXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWJvb2ttYXJrXCIvPiZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiTm9kZUlkIHdpdGggbmFtZXNwYWNlIFVyblwiLCB2YWx1ZTogXCJuc3VcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtaWQtY2FyZFwiLz4mbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkJyb3dzZVBhdGhcIiwgdmFsdWU6IFwiYlwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+PGkgY2xhc3M9XCJmYSBmYS1maWdodGVyLWpldFwiLz4mbmJzcDsnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkFsaWFzZWQgQnJvd3NlIFBhdGhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcImFiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1ib29rbWFya1wiLz48aSBjbGFzcz1cImZhIGZhLWZpZ2h0ZXItamV0XCIvPiZuYnNwOycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0gZmlndXJlT3V0TWVuVUl0ZW1WYWx1ZSh0aGF0LiRpbnB1dC52YWwoKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IGEpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsLmVtcHR5KCkuYXBwZW5kKGA8c3BhbiB0aXRsZT0keyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUudGl0bGUpIHx8IFwiXCJ9PiZuYnNwOyAkeyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUuaWNvbikgfHwgXCJcIn08L3NwYW4+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC5zZWxlY3RlZE1lbnVJdGVtID0gYTtcbiAgICAgICAgICAgICAgICBjb25zdCB0dCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudSA9IHRoaXMuX2NyZWF0ZU1lbnUodHlwZUxpc3QsIHt9LCAodikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdG9Nb2RlKHYpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb24gTWVudSBzZWxlY3RlZCAhXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52ZXJpZnkobW9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IHYpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSB2O1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbC5lbXB0eSgpLmFwcGVuZChgPHNwYW4gdGl0bGU9JHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnRpdGxlKSB8fCBcIlwifT4mbmJzcDsgJHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLmljb24pIHx8IFwiXCJ9PC9zcGFuPmApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5zaG93KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbW9kZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9Nb2RlKHRoYXQuc2VsZWN0ZWRNZW51SXRlbSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0TW9kZShtb2RlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IGZyb21Nb2RlKG1vZGUpO1xuICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IHM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5jc3MoXCJib3JkZXJcIiwgXCJub25lXCIpO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXRcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kZWxlbWVudERpdiA9IHRoYXQuJGlucHV0LndyYXAoXCI8ZGl2PlwiKS5wYXJlbnQoKS5hZGRDbGFzcyhcIm1haW4td3JhcHBlclwiKTtcbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIENvbWJvIGJyb3dzZXJcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1pbnB1dC13cmFwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gYWRkIGJ1dHRvbiBvbiB0aGUgcmlnaHQgc2lkZVxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdG9nZ2xlVHJlZUJ0blxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uIHRpdGxlPVwib3BlbiBPUENVQSBBZGRyZXNzU3BhY2UgQnJvd3NlclwiPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHlpZWxkIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gJiYgKHlpZWxkIHJlYWNoU2VsZWN0aW9uKHRoYXQsIHBhcmVudE5vZGUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdmVyaWZ5QnRuXG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbiB0aXRsZT1cInZlcmlmeSBub2RlSWQgb3IgYnJvd3NlUGF0aFwiPjxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeShtb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZUlucHV0ID0gKGlucHV0KSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbm5lY3Rpb25EYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwganNvbiB9ID0geWllbGQgX2NhbGxDaGVja05vZGVJZChjb25uZWN0aW9uRGF0YSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSBjaG9vc2VOb2RlSWQoanNvbiwgbW9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoc2VsZWN0ZWROb2RlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSB0aGUgcHJlcGVuZGVkIGJ1dHRvblxuICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QgPSAkKFwiPGRpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmJlZm9yZSh0aGF0LiR1aVNlbGVjdCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIgPSAkKCc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIj48L2J1dHRvbj4nKS5wcmVwZW5kVG8odGhhdC4kdWlTZWxlY3QpO1xuICAgICAgICAgICAgICAgICAgICAkKCc8aSBjbGFzcz1cInJlZC11aS10eXBlZElucHV0LWljb24gZmEgZmEtY2FyZXQtZG93blwiPjwvaT4nKS50b2dnbGUodHJ1ZSkuYXBwZW5kVG8odGhhdC4kc2VsZWN0VHJpZ2dlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3Nob3dUeXBlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlclxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleUNvZGUgPT09IDQwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG93blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3Nob3dUeXBlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwiZm9jdXNcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImJsdXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyIG9wdCA9IHRoYXQudHlwZU1hcFt0aGF0LnByb3BlcnR5VHlwZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiAob3B0Lmhhc1ZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QucmVtb3ZlQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsID0gJCgnPHNwYW4gY2xhc3M9XCJyZWQtdWktdHlwZWRJbnB1dC10eXBlLWxhYmVsXCI+PC9zcGFuPicpLmFwcGVuZFRvKHRoYXQuJHNlbGVjdFRyaWdnZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0TWVudSgpO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdGVtcG9yYXR5IGluZm8gcGFuZWxcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBkcm9wIGRvd24gdHJlZVxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKS5hcHBlbmRUbyh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRkcm9wZG93bi5zaG93KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IFwibm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5zZXRNb2RlKG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplSW5wdXQodmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBjb250YWluaW5nOlxuICAgICAqICAtIHRoZSBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSxcbiAgICAgKiAgLSB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAqICAtIGNyZWRlbnRpYWxzXG4gICAgICogIC0gbmFtZXNwYWNlQWxpYXNlc1xuICAgICAqXG4gICAgICogZXh0cmFjdGVkIGZyb20gdGhlIHVpIHdpZGdldCAjbm9kZS1pbnB1dC1lbmRwb2ludFxuICAgICAqL1xuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMsIG5hbWVzcGFjZUFsaWFzZXMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXMsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gZW5kcG9pbnROci5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7IG5hbWVzcGFjZUFsaWFzZXMsIGlkOiBlbmRwb2ludElkIH0sIGVuZHBvaW50TnIpO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBpbnN0YWxsRmVlZGJhY2tXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8vIHJldHVybjtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIGNvbnN0IHRyYXlDb250ZW50ID0gJChcIi5yZWQtdWktdHJheS1ib2R5XCIpO1xuICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxGZWVkYmFja1dpZGdldCBcIiwgdHJheUNvbnRlbnQubGVuZ3RoKTtcbiAgICAgICAgaWYgKHRyYXlDb250ZW50Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsaW5nIGlmcmFtZVwiKTtcbiAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgaWZyYW1lIGVsZW1lbnRcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZSA9ICQoXCI8aWZyYW1lPjwvaWZyYW1lPlwiLCB7XG4gICAgICAgICAgICAgICAgc3JjOiBcIi9vcGN1YS1mb3Itbm9kZS1yZWQvc3VwcG9ydC1mcmFtZS5odG1sXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsaW5nOiBcIm5vXCIsXG4gICAgICAgICAgICAgICAgc3R5bGU6IFwiYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOjNweFwiLFxuICAgICAgICAgICAgICAgIGFsbG93dHJhbnNwYXJlbmN5OiBcInRydWVcIixcbiAgICAgICAgICAgICAgICB3aWR0aDogXCIxODBweFwiLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCIzMHB4XCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgaWZyYW1lIHRvIHRoZSBmZWVkYmFjayBlbGVtZW50XG4gICAgICAgICAgICB0cmF5Q29udGVudC5hcHBlbmQoaWZyYW1lKTtcbiAgICAgICAgICAgIC8vIFBvc2l0aW9uIHRoZSBmZWVkYmFjayBlbGVtZW50IGF0IHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHRyYXkgY29udGVudFxuICAgICAgICAgICAgaWZyYW1lLmNzcyh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICByaWdodDogXCIyMHB4XCIsXG4gICAgICAgICAgICAgICAgYm90dG9tOiBcIjE2cHhcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUV4cGxvcmVcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImV4cGxvcmVcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiBleHBsb3JlXG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgb3V0cHV0VHlwZTogeyB2YWx1ZTogXCJWYWx1ZVwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgZXhjbHVkZUVtcHR5OiB7IHZhbHVlOiBmYWxzZSB9LFxuICAgICAgICAgICAgLy8gcm9vdE5vZGU6IHsgdmFsdWU6IFwiQE9iamVjdEZvbGRlclwiIH0sXG4gICAgICAgICAgICBmb2xsb3dPcmdhbml6ZXM6IHsgdmFsdWU6IGZhbHNlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG91dHB1dHM6IDEsXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIEV4cGxvcmVcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIGluc3RhbGxGZWVkYmFja1dpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiIHx8IG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHsgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-Explore">
11
11
  <style>