@opcua/for-node-red 2.8.0 → 2.8.1

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(_0x3090ab,_0x322ca1){const _0x1849b7=_0x17a5,_0x35193b=_0x3090ab();while(!![]){try{const _0xa42557=-parseInt(_0x1849b7(0x10e))/0x1*(parseInt(_0x1849b7(0x194))/0x2)+-parseInt(_0x1849b7(0x1ab))/0x3*(parseInt(_0x1849b7(0x1a3))/0x4)+parseInt(_0x1849b7(0x183))/0x5+-parseInt(_0x1849b7(0x1b6))/0x6+-parseInt(_0x1849b7(0x14f))/0x7+parseInt(_0x1849b7(0x137))/0x8+parseInt(_0x1849b7(0x1a7))/0x9;if(_0xa42557===_0x322ca1)break;else _0x35193b['push'](_0x35193b['shift']());}catch(_0x2a82e9){_0x35193b['push'](_0x35193b['shift']());}}}(_0x3fdc,0xb6726),(function(){'use strict';const _0x53159d=_0x17a5;function _0x2e1df1(_0x37cb0b,_0x282c3f,_0x2b376,_0x68bba9){function _0x201607(_0x3db505){return _0x3db505 instanceof _0x2b376?_0x3db505:new _0x2b376(function(_0x480f7b){_0x480f7b(_0x3db505);});}return new(_0x2b376||(_0x2b376=Promise))(function(_0x161047,_0x328cdb){const _0x214f56=_0x17a5;function _0x33c0d3(_0x7b330b){const _0x7b8e1d=_0x17a5;try{_0x52781e(_0x68bba9[_0x7b8e1d(0x131)](_0x7b330b));}catch(_0x5ba03f){_0x328cdb(_0x5ba03f);}}function _0x2345d0(_0x50ef19){const _0xc0442=_0x17a5;try{_0x52781e(_0x68bba9[_0xc0442(0x133)](_0x50ef19));}catch(_0x39bcb9){_0x328cdb(_0x39bcb9);}}function _0x52781e(_0x1eec82){const _0x327163=_0x17a5;_0x1eec82['done']?_0x161047(_0x1eec82[_0x327163(0xf9)]):_0x201607(_0x1eec82[_0x327163(0xf9)])['then'](_0x33c0d3,_0x2345d0);}_0x52781e((_0x68bba9=_0x68bba9[_0x214f56(0x134)](_0x37cb0b,_0x282c3f||[]))[_0x214f56(0x131)]());});}typeof SuppressedError===_0x53159d(0x19b)?SuppressedError:function(_0x36f37f,_0x1f31fd,_0x5c8bc4){const _0x5f35e1=_0x53159d;var _0x410840=new Error(_0x5c8bc4);return _0x410840[_0x5f35e1(0x14e)]=_0x5f35e1(0x111),_0x410840[_0x5f35e1(0x116)]=_0x36f37f,_0x410840[_0x5f35e1(0x1b7)]=_0x1f31fd,_0x410840;};const _0x1a26cc='ns=0;i=35',_0x51a386='ns=0;i=61',_0xc63030=_0x53159d(0x1d3),_0x5af6bc='ns=0;i=46',_0x57e5de=_0x53159d(0x17f),_0x44da5e=_0x53159d(0x15d),_0x42f92f=_0x53159d(0x110);var _0x26ca3d;(function(_0xf74f9c){const _0x7e58b8=_0x53159d;_0xf74f9c[_0xf74f9c[_0x7e58b8(0x16b)]=0x0]=_0x7e58b8(0x16b),_0xf74f9c[_0xf74f9c[_0x7e58b8(0x170)]=0x1]='Inverse',_0xf74f9c[_0xf74f9c['Both']=0x2]=_0x7e58b8(0x1d2),_0xf74f9c[_0xf74f9c[_0x7e58b8(0x1a4)]=0x3]=_0x7e58b8(0x1a4);}(_0x26ca3d||(_0x26ca3d={})));var _0x1d8825;(function(_0x470df4){const _0xa66156=_0x53159d;_0x470df4[_0x470df4[_0xa66156(0x106)]=0x0]=_0xa66156(0x106),_0x470df4[_0x470df4[_0xa66156(0x1b2)]=0x1]='Object',_0x470df4[_0x470df4['Variable']=0x2]=_0xa66156(0x1ca),_0x470df4[_0x470df4[_0xa66156(0x199)]=0x4]=_0xa66156(0x199),_0x470df4[_0x470df4['ObjectType']=0x8]=_0xa66156(0x1c5),_0x470df4[_0x470df4['VariableType']=0x10]=_0xa66156(0x130),_0x470df4[_0x470df4[_0xa66156(0x1b0)]=0x20]='ReferenceType',_0x470df4[_0x470df4[_0xa66156(0x11f)]=0x40]='DataType',_0x470df4[_0x470df4[_0xa66156(0x10b)]=0x80]=_0xa66156(0x10b);}(_0x1d8825||(_0x1d8825={})));var _0x54812f;(function(_0x34f66d){const _0x27228b=_0x53159d;_0x34f66d[_0x34f66d[_0x27228b(0x1b2)]=0x1]=_0x27228b(0x1b2),_0x34f66d[_0x34f66d[_0x27228b(0x1ca)]=0x2]=_0x27228b(0x1ca),_0x34f66d[_0x34f66d['Method']=0x4]='Method',_0x34f66d[_0x34f66d['ObjectType']=0x8]=_0x27228b(0x1c5),_0x34f66d[_0x34f66d[_0x27228b(0x130)]=0x10]=_0x27228b(0x130),_0x34f66d[_0x34f66d['ReferenceType']=0x20]=_0x27228b(0x1b0),_0x34f66d[_0x34f66d['DataType']=0x40]=_0x27228b(0x11f),_0x34f66d[_0x34f66d[_0x27228b(0x10b)]=0x80]='View';}(_0x54812f||(_0x54812f={})));var _0x3290a4;(function(_0x46c09d){const _0x5d7d4b=_0x53159d;_0x46c09d[_0x46c09d['ReferenceType']=0x1]='ReferenceType',_0x46c09d[_0x46c09d[_0x5d7d4b(0x1a2)]=0x2]=_0x5d7d4b(0x1a2),_0x46c09d[_0x46c09d['NodeClass']=0x4]=_0x5d7d4b(0x188),_0x46c09d[_0x46c09d[_0x5d7d4b(0x195)]=0x8]=_0x5d7d4b(0x195),_0x46c09d[_0x46c09d['DisplayName']=0x10]=_0x5d7d4b(0x121),_0x46c09d[_0x46c09d[_0x5d7d4b(0x17b)]=0x20]=_0x5d7d4b(0x17b);}(_0x3290a4||(_0x3290a4={})));function _0x218d20(_0x5e0c2f){const _0x5b36c7=_0x53159d;switch(_0x5e0c2f){case _0x5b36c7(0x138):return _0x1a26cc;case _0x5b36c7(0x1c9):return _0x5af6bc;case _0x5b36c7(0x19e):return _0xc63030;case _0x5b36c7(0x18a):return _0x57e5de;case _0x5b36c7(0x158):return _0x44da5e;case _0x5b36c7(0xfd):return _0x42f92f;}}const _0x2222df=_0x4f41fe=>{const _0x9fe553=_0x53159d;switch(_0x4f41fe[_0x9fe553(0x173)]){case _0x9fe553(0x1b2):if(_0x4f41fe[_0x9fe553(0x141)]===_0x1a26cc);if(_0x4f41fe[_0x9fe553(0xf6)]===_0x51a386||_0x4f41fe[_0x9fe553(0x141)]===_0x9fe553(0x149))return{'icon':_0x9fe553(0x10d),'color':'rgba(61,\x2060,\x204,\x200.525)'};return{'icon':_0x9fe553(0x1c6),'color':_0x9fe553(0x15c)};case'Variable':if(_0x4f41fe[_0x9fe553(0x141)]===_0xc63030)return{'icon':_0x9fe553(0x15b),'color':'SteelBlue'};else return _0x4f41fe[_0x9fe553(0x141)]===_0x5af6bc?{'icon':_0x9fe553(0x15b),'color':'DodgerBlue'}:{'icon':_0x9fe553(0x15b),'color':'CadetBlue'};case _0x9fe553(0x199):return{'icon':_0x9fe553(0x1cf),'color':'SandyBrown'};case'ObjectType':return{'icon':'fa-object-group','color':_0x9fe553(0x163)};case _0x9fe553(0x130):return{'icon':'fa-sliders','color':_0x9fe553(0x163)};case _0x9fe553(0x11f):return{'icon':_0x9fe553(0x148),'color':_0x9fe553(0x1bb)};}return{'icon':_0x9fe553(0x1a0),'color':'grey'};},_0x3f6780=({endpointNode:_0x21c2e4,endpoint:_0x552bbf,baseUrl:_0x57105c},_0x42b3ed,_0x3ec5b7)=>_0x2e1df1(void 0x0,void 0x0,void 0x0,function*(){const _0x54798e=_0x53159d,_0x4937ca=_0x57105c+_0x54798e(0xfe),_0x31addb=_0x4937ca+'/browse',_0x1c2327=Object[_0x54798e(0x167)](Object[_0x54798e(0x167)]({},_0x3ec5b7),{'nodeId':_0x42b3ed,'resultMask':0x3f}),_0x2fa168=yield fetch(_0x31addb,{'method':_0x54798e(0x179),'body':JSON[_0x54798e(0x18d)]({'endpointNode':_0x21c2e4,'endpoint':_0x552bbf,'browseDescription':_0x1c2327}),'headers':{'Content-Type':_0x54798e(0x1aa)}});if(_0x2fa168['status']!==0xc8)return console[_0x54798e(0x166)](_0x54798e(0x16d),_0x2fa168[_0x54798e(0x1c7)],_0x2fa168[_0x54798e(0xf8)]),{'references':[]};const _0x583fe5=yield _0x2fa168['json'](),_0x31dcf9=_0x583fe5['browseResult'][_0x54798e(0x1bc)]||[];return{'references':_0x31dcf9};}),_0x24860e={'referenceTypeId':_0x218d20(_0x53159d(0x18a)),'includeSubtypes':!![],'browseDirection':_0x26ca3d[_0x53159d(0x16b)],'nodeClassMask':_0x1d8825[_0x53159d(0x1ca)]|_0x1d8825[_0x53159d(0x1b2)]|_0x1d8825[_0x53159d(0x199)],'resultMask':0x3f},_0x3360c0={'referenceTypeId':_0x218d20('Organizes'),'includeSubtypes':!![],'browseDirection':_0x26ca3d[_0x53159d(0x16b)],'nodeClassMask':_0x1d8825[_0x53159d(0x1ca)]|_0x1d8825[_0x53159d(0x1b2)]|_0x1d8825['Method'],'resultMask':0x3f},_0x414998=({endpointNode:_0x2a759f,endpoint:_0x5335cc,baseUrl:_0x2dd4b0},{nodeId:_0x6b333b,rootNodeId:_0x4efaac,isType:_0x27699e})=>_0x2e1df1(void 0x0,void 0x0,void 0x0,function*(){const _0x6b1e43=_0x53159d,_0x1c9880=_0x2dd4b0+_0x6b1e43(0xfe),_0x4057dd=_0x1c9880+_0x6b1e43(0x162),_0x3a0f44=yield fetch(_0x4057dd,{'method':'POST','body':JSON[_0x6b1e43(0x18d)]({'endpointNode':_0x2a759f,'endpoint':_0x5335cc,'nodeId':_0x6b333b,'rootNodeId':_0x4efaac,'isType':_0x27699e}),'headers':{'Content-Type':_0x6b1e43(0x1aa)}});if(_0x3a0f44[_0x6b1e43(0x1c7)]!==0xc8)return null;const _0x57c264=yield _0x3a0f44[_0x6b1e43(0x1bd)]();return _0x57c264[_0x6b1e43(0x168)];}),_0x4506ad=({endpointNode:_0xe91741,endpoint:_0x4d452b,baseUrl:_0x5a551f},_0x780ce4,_0x352148)=>_0x2e1df1(void 0x0,void 0x0,void 0x0,function*(){const _0x5384d6=_0x53159d,_0x4afc10=_0x5a551f+_0x5384d6(0xfe),_0x24f379=_0x4afc10+_0x5384d6(0x118),_0x3d3db4=_0x780ce4[_0x5384d6(0x146)](),_0x164c95=yield fetch(_0x24f379,{'method':_0x5384d6(0x179),'body':JSON[_0x5384d6(0x18d)]({'endpointNode':_0xe91741,'endpoint':_0x4d452b,'nodeId':_0x3d3db4}),'headers':{'Content-Type':_0x5384d6(0x1aa)}}),_0x42474c=(_0x565dc2,_0x1077f8)=>{const _0x54baa0=_0x5384d6;_0x352148[_0x54baa0(0x182)](_0x565dc2)['addClass'](_0x54baa0(0x1ad))[_0x54baa0(0x120)](_0x1077f8),_0x352148[_0x54baa0(0x12d)](),setTimeout(()=>{const _0xaa8959=_0x54baa0;_0x352148[_0xaa8959(0x144)](_0x1077f8),_0x352148[_0xaa8959(0x198)]();},0xbb8);},_0x453932=yield _0x164c95[_0x5384d6(0x1bd)]();_0x164c95[_0x5384d6(0x1c7)]!==0xc8?_0x42474c(_0x5384d6(0x185)+_0x3d3db4,_0x5384d6(0x102)):_0x453932[_0x5384d6(0x1ac)]['match'](/Good/)?(_0x780ce4[_0x5384d6(0x146)](_0x453932[_0x5384d6(0x175)]),_0x780ce4[_0x5384d6(0x156)]('change'),_0x42474c(_0x5384d6(0x13c),'ok')):(_0x780ce4[_0x5384d6(0x146)](''+_0x3d3db4),_0x42474c(_0x453932[_0x5384d6(0x1ac)]+'\x20'+_0x164c95['statusText'],_0x5384d6(0x102)));});function _0x8a9a2b(_0x5bdc38,_0x1ec2e3){return _0x2e1df1(this,void 0x0,void 0x0,function*(){const _0x36eb81=_0x17a5,_0x22568a=_0x5bdc38[_0x36eb81(0x1b4)](_0x36eb81(0xf9)),_0x138333=yield _0x3f6780(_0x1ec2e3,_0x22568a,_0x24860e),_0x5eba14=yield _0x3f6780(_0x1ec2e3,_0x22568a,_0x3360c0);return{'references':[..._0x138333[_0x36eb81(0x1bc)],..._0x5eba14[_0x36eb81(0x1bc)]]};});}const _0x23cc52={'referenceTypeId':_0x218d20(_0x53159d(0x158)),'includeSubtypes':!![],'browseDirection':_0x26ca3d[_0x53159d(0x16b)],'nodeClassMask':_0x1d8825[_0x53159d(0x1b0)]|_0x1d8825[_0x53159d(0x1c5)]|_0x1d8825[_0x53159d(0x11f)]|_0x1d8825[_0x53159d(0x130)],'resultMask':0x3f};function _0x4b3fe2(_0x8e7028,_0x5660be){return _0x2e1df1(this,void 0x0,void 0x0,function*(){const _0x22f385=_0x17a5,_0x2551c7=_0x8e7028[_0x22f385(0x1b4)](_0x22f385(0xf9)),_0x36e4bc=yield _0x3f6780(_0x5660be,_0x2551c7,_0x23cc52);return _0x36e4bc;});}const _0x13cbec=_0x543c62=>{const _0x3b19f6=_0x53159d;var _0x1114ec,_0x2478a0,_0x53e7e7,_0x5f1456;if(!_0x543c62||!_0x543c62[_0x3b19f6(0x160)]){const _0x5af260=$(_0x3b19f6(0x1b8));return _0x5af260;}const _0x4d0418=_0x543c62['nodeId'][_0x3b19f6(0x112)](),_0x30a74e=((_0x1114ec=_0x543c62[_0x3b19f6(0x136)])===null||_0x1114ec===void 0x0?void 0x0:_0x1114ec[_0x3b19f6(0x182)])||((_0x2478a0=_0x543c62[_0x3b19f6(0x15a)])===null||_0x2478a0===void 0x0?void 0x0:_0x2478a0['name'])||_0x543c62[_0x3b19f6(0x160)][_0x3b19f6(0x112)](),{icon:_0x3188f9,color:_0x264e01}=_0x2222df(_0x543c62),_0x2f38b5='('+_0x543c62[_0x3b19f6(0x160)][_0x3b19f6(0x112)]()+')\x20'+(((_0x53e7e7=_0x543c62[_0x3b19f6(0x15a)])===null||_0x53e7e7===void 0x0?void 0x0:_0x53e7e7[_0x3b19f6(0x14e)])||((_0x5f1456=_0x543c62['displayName'])===null||_0x5f1456===void 0x0?void 0x0:_0x5f1456['text'])||''),_0x33ad40=$(_0x3b19f6(0x1ba)+_0x543c62[_0x3b19f6(0x160)][_0x3b19f6(0x112)]()+_0x3b19f6(0x143)+_0x2f38b5+_0x3b19f6(0xf7)+_0x3188f9+_0x3b19f6(0x1ae)+_0x264e01+_0x3b19f6(0x176)+_0x30a74e+_0x3b19f6(0x129));return _0x33ad40[_0x3b19f6(0x120)](_0x3b19f6(0x100)),_0x33ad40[_0x3b19f6(0x1b4)]('value',_0x4d0418),_0x33ad40[_0x3b19f6(0x1b4)]('reference',_0x543c62),_0x33ad40;},_0x2bab0a=(_0x4e28d9,_0x3f8fcf)=>{const _0x3e1b49=_0x53159d;return _0x3f8fcf[_0x3e1b49(0x1c4)](_0x3e1b49(0x17a)+_0x4e28d9+'\x22]');},_0xeb3c49=(_0x122bae,_0x1538a3)=>{const _0x310f8f=_0x53159d;_0x122bae[_0x310f8f(0x11b)][_0x310f8f(0x1c4)](_0x310f8f(0x109))[_0x310f8f(0x144)](_0x310f8f(0x1d1)),_0x1538a3[_0x310f8f(0x1c4)]('.tree-text:first')['addClass'](_0x310f8f(0x1d1));},_0x4bd628=(_0x1877fa,_0x5e58ac,_0xa4421)=>_0x2e1df1(void 0x0,void 0x0,void 0x0,function*(){const _0x56c97f=_0x53159d;let _0x16e53f=_0xa4421[_0x56c97f(0x11e)](':first');_0x5e58ac[_0x56c97f(0x13a)]['elements']||[];const _0x26f73a=_0x5e58ac[_0x56c97f(0x139)]||[];if(_0x26f73a[_0x56c97f(0x140)]===0x0)return;for(const _0x4ae79d of _0x26f73a){_0x16e53f[_0x56c97f(0x13d)](_0x56c97f(0x100))&&(yield _0x3a654a(_0x1877fa,_0x16e53f));const _0x1f36ba=_0x2bab0a(_0x4ae79d,_0x16e53f);if(_0x1f36ba[_0x56c97f(0x140)]===0x0)return;_0x16e53f=_0x1f36ba;}_0xeb3c49(_0x1877fa,_0x16e53f),_0x26cec0(_0x1877fa[_0x56c97f(0x150)],_0x16e53f);});function _0x26cec0(_0x59d268,_0x208b6a){const _0x38914d=_0x53159d,_0x4b2213=_0x208b6a[_0x38914d(0x164)]()['top'],_0x1a4447=_0x59d268[_0x38914d(0x1cd)]();if(_0x1a4447==undefined)return;const _0x4f47bd=_0x1a4447+_0x4b2213-_0x59d268['height']()/0x2+_0x208b6a['height']()/0x2;_0x59d268[_0x38914d(0x119)]({'scrollTop':_0x4f47bd},0x1f4);}const _0x4e9bee=(_0x59e7f9,_0x2ffa85)=>_0x2e1df1(void 0x0,void 0x0,void 0x0,function*(){const _0x549bce=_0x53159d,_0x46e285=_0x59e7f9['$input'][_0x549bce(0x146)](),_0x123f89={'nodeId':_0x46e285,'rootNodeId':_0x2ffa85[_0x549bce(0x160)],'isType':_0x59e7f9[_0x549bce(0x169)][_0x549bce(0x147)]||![]},_0x3b4d54=_0x1c0e03(_0x59e7f9),_0x84cf9f=yield _0x414998(_0x3b4d54,_0x123f89);if(!_0x84cf9f)return;yield _0x4bd628(_0x59e7f9,_0x84cf9f,_0x59e7f9[_0x549bce(0x11b)]);});function _0x534ac1(_0x24e0f0,_0xab12a9,_0x49557f,_0x16a996){return _0x2e1df1(this,void 0x0,void 0x0,function*(){const _0xff27dd=_0x17a5;if(_0xab12a9['hasClass'](_0xff27dd(0x153))){console[_0xff27dd(0x166)](_0xff27dd(0x108));return;}if(_0xab12a9[_0xff27dd(0x13d)](_0xff27dd(0x159))){console[_0xff27dd(0x166)]('already\x20loading');return;}_0xab12a9['addClass']('loading'),_0xab12a9[_0xff27dd(0x127)](_0xff27dd(0x1be));try{_0xab12a9[_0xff27dd(0x11e)]('ul')['empty']();const {references:_0x1b3c4c}=yield _0x49557f(_0xab12a9,_0x16a996);for(const _0x47032e of _0x1b3c4c){if(_0x24e0f0[_0xff27dd(0x169)][_0xff27dd(0x126)]&&!_0x24e0f0[_0xff27dd(0x169)][_0xff27dd(0x126)](_0x47032e))continue;const _0x30ad4b=_0x13cbec(_0x47032e);_0xab12a9[_0xff27dd(0x11e)]('ul')[_0xff27dd(0x127)](_0x30ad4b);}_0xab12a9[_0xff27dd(0x120)]('fetched');}catch(_0x3d4dc3){_0xab12a9[_0xff27dd(0x11e)]('ul')[_0xff27dd(0x127)](_0xff27dd(0x16c)+_0x3d4dc3[_0xff27dd(0x157)]+_0xff27dd(0x1b3)),console[_0xff27dd(0x166)]('err',_0x3d4dc3);}_0xab12a9['find']('.spinner')[_0xff27dd(0x197)](),_0xab12a9['removeClass'](_0xff27dd(0x159));});}function _0x1c0e03(_0x12756d){const _0x4319ca=_0x53159d,_0x48680e={'baseUrl':_0x12756d[_0x4319ca(0x169)][_0x4319ca(0x17d)],'endpointNode':typeof _0x12756d[_0x4319ca(0x169)][_0x4319ca(0x196)]===_0x4319ca(0x19b)?_0x12756d[_0x4319ca(0x169)][_0x4319ca(0x196)]():_0x12756d[_0x4319ca(0x169)]['endpointNode'],'endpoint':typeof _0x12756d[_0x4319ca(0x169)][_0x4319ca(0xfa)]==='function'?_0x12756d[_0x4319ca(0x169)]['endpoint']():_0x12756d[_0x4319ca(0x169)][_0x4319ca(0xfa)]};return _0x48680e;}function _0x3a654a(_0x51c307,_0x4752b5){return _0x2e1df1(this,void 0x0,void 0x0,function*(){const _0x5d8d08=_0x17a5;if(_0x4752b5[_0x5d8d08(0x13d)](_0x5d8d08(0x153))){_0x4752b5[_0x5d8d08(0x144)](_0x5d8d08(0x100))['addClass']('expanded'),_0x4752b5[_0x5d8d08(0x11e)]('ul')['toggle']();return;}const _0x3e1af8=_0x1c0e03(_0x51c307),_0x21d64f=!_0x51c307[_0x5d8d08(0x169)][_0x5d8d08(0x147)]?_0x8a9a2b:_0x4b3fe2;try{yield _0x534ac1(_0x51c307,_0x4752b5,_0x21d64f,_0x3e1af8),_0x4752b5['removeClass'](_0x5d8d08(0x100))['addClass'](_0x5d8d08(0x1c0));}catch(_0x246cd7){_0x4752b5[_0x5d8d08(0x144)](_0x5d8d08(0x100))[_0x5d8d08(0x120)](_0x5d8d08(0x1c0)),console['log'](_0x5d8d08(0x116),_0x246cd7);}});}const _0x490f24=()=>{const _0x545cd5=_0x53159d;$['widget'](_0x545cd5(0x18c),{'options':{'endpointNode':()=>({'endpoint':_0x545cd5(0x1b1)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x545cd5(0x1c8)},'nodeClass':_0x545cd5(0x1b2),'nodeId':_0x545cd5(0x1ce),'displayName':{'text':_0x545cd5(0x1c8)},'typeDefinition':_0x51a386}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x2e1df1(this,void 0x0,void 0x0,function*(){const _0x407b94=_0x17a5,_0x2480c8=this;if(!_0x2480c8[_0x407b94(0x1a1)]){const _0x227145=typeof _0x2480c8[_0x407b94(0x169)][_0x407b94(0x177)]===_0x407b94(0x19b)?_0x2480c8[_0x407b94(0x169)]['parentNode']['call'](_0x2480c8):_0x2480c8['options'][_0x407b94(0x177)];if(_0x227145 instanceof Promise){const _0x4de80d=yield _0x227145;_0x2480c8[_0x407b94(0x1a1)]=_0x4de80d;}else _0x2480c8[_0x407b94(0x1a1)]=_0x227145;}return _0x2480c8[_0x407b94(0x1a1)];});},'reset'(){return _0x2e1df1(this,void 0x0,void 0x0,function*(){const _0x7d435f=_0x17a5,_0x51fb1c=this,_0x38ccc0=_0x51fb1c;_0x38ccc0[_0x7d435f(0x1a1)]=undefined,_0x51fb1c[_0x7d435f(0x11b)][_0x7d435f(0x16f)]();const _0x868e47=yield this['resolveParentNode'](),_0x402e8d=_0x13cbec(_0x868e47);_0x51fb1c[_0x7d435f(0x11b)][_0x7d435f(0x127)](_0x402e8d),_0x51fb1c[_0x7d435f(0x12a)]=_0x868e47;});},'verify'(){const _0x3f7530=_0x545cd5,_0x33e0e4=this,_0x3140e3=_0x1c0e03(_0x33e0e4);_0x4506ad(_0x3140e3,_0x33e0e4[_0x3f7530(0x132)],_0x33e0e4[_0x3f7530(0x1d0)]);},'_create'(){const _0x59164a=_0x545cd5,_0x5776b2=this;_0x5776b2[_0x59164a(0x132)]=this[_0x59164a(0x104)],_0x5776b2['$combo']=$(_0x59164a(0xfc)),_0x5776b2[_0x59164a(0x16e)][_0x59164a(0x120)](_0x59164a(0x122)),this[_0x59164a(0x104)]['replaceWith'](_0x5776b2['$combo']),_0x5776b2[_0x59164a(0x186)]=$(_0x59164a(0xfc))[_0x59164a(0x120)]('input-group'),_0x5776b2[_0x59164a(0x16e)]['append'](_0x5776b2[_0x59164a(0x186)]),_0x5776b2['$inputGroup'][_0x59164a(0x127)](_0x5776b2['$input']),_0x5776b2[_0x59164a(0x101)]=$(_0x59164a(0x124)),_0x5776b2[_0x59164a(0x186)][_0x59164a(0x127)](_0x5776b2[_0x59164a(0x101)]),_0x5776b2[_0x59164a(0x101)]['on'](_0x59164a(0x12b),function(){var _0x11181f;return _0x2e1df1(this,void 0x0,void 0x0,function*(){const _0x393a84=_0x17a5;let _0x12c63d=![],_0x55e242;!_0x5776b2[_0x393a84(0x150)]['is'](_0x393a84(0x14c))&&(_0x5776b2[_0x393a84(0x1d0)][_0x393a84(0x198)](),_0x55e242=yield _0x5776b2['resolveParentNode'](),(_0x55e242!==_0x5776b2[_0x393a84(0x12a)]||((_0x11181f=_0x5776b2['currentParent'])===null||_0x11181f===void 0x0?void 0x0:_0x11181f[_0x393a84(0x160)])!==_0x55e242[_0x393a84(0x160)])&&(yield _0x5776b2['reset']()),_0x12c63d=!![]),_0x5776b2[_0x393a84(0x150)][_0x393a84(0x19d)](),_0x12c63d&&(yield _0x4e9bee(_0x5776b2,_0x55e242));});}),_0x5776b2[_0x59164a(0x1c1)]=$(_0x59164a(0x12f)),_0x5776b2[_0x59164a(0x186)][_0x59164a(0x127)](_0x5776b2[_0x59164a(0x1c1)]),_0x5776b2['$verifyBtn']['on'](_0x59164a(0x12b),()=>{const _0x35ae84=_0x59164a;this[_0x35ae84(0x1b5)]();});!_0x5776b2[_0x59164a(0x132)]['attr']('placeholder')&&_0x5776b2['$input']['attr']('placeholder',_0x59164a(0x12e));_0x5776b2[_0x59164a(0x1d0)]=$(_0x59164a(0x187)),_0x5776b2[_0x59164a(0x1d0)][_0x59164a(0x198)](),_0x5776b2[_0x59164a(0x150)]=$('<div/>')['addClass'](_0x59164a(0x1a5))[_0x59164a(0x198)](),_0x5776b2[_0x59164a(0x16e)][_0x59164a(0x127)](_0x5776b2[_0x59164a(0x1d0)]),_0x5776b2[_0x59164a(0x16e)][_0x59164a(0x127)](_0x5776b2[_0x59164a(0x150)]),_0x5776b2[_0x59164a(0x11b)]=$(_0x59164a(0x10c))[_0x59164a(0x19a)](_0x5776b2['$dropdown']),this['reset']();const _0xbd0982=(_0x5249bb,_0x12fed5)=>{const _0x130ed4=_0x59164a,_0x59ca49=0x14,_0x5dea75=0x14,_0x11ac34=_0x5249bb[_0x130ed4(0x13b)](),_0x58b8c6=_0x12fed5;if(_0x58b8c6['pageX']>=_0x11ac34[_0x130ed4(0x171)]&&_0x58b8c6[_0x130ed4(0x12c)]<=_0x11ac34[_0x130ed4(0x171)]+_0x59ca49&&_0x58b8c6[_0x130ed4(0x1cb)]>=_0x11ac34[_0x130ed4(0x18b)]&&_0x58b8c6[_0x130ed4(0x1cb)]<=_0x11ac34[_0x130ed4(0x18b)]+_0x5dea75)return!![];return![];},_0x53fb1a=_0x4bb828=>_0x2e1df1(this,void 0x0,void 0x0,function*(){const _0x190282=_0x59164a;if(_0x4bb828[_0x190282(0x13d)]('expandable'))_0x3a654a(_0x5776b2,_0x4bb828);else{if(_0x4bb828['hasClass'](_0x190282(0x1c0)))_0x4bb828[_0x190282(0x11e)]('ul')['toggle'](),_0x4bb828[_0x190282(0x180)](_0x190282(0x11d));else{if(_0x4bb828[_0x190282(0x11e)]('ul')[_0x190282(0x11e)]()[_0x190282(0x140)]>0x0)_0x4bb828['children']('ul')[_0x190282(0x19d)](),_0x4bb828[_0x190282(0x180)]('expandable\x20expanded');else;}}});_0x5776b2[_0x59164a(0x11b)]['on']('dblclick','li',function(_0x1fe54c){const _0x517ac4=_0x59164a;var _0x1ffa4d,_0x13dc79;_0x1fe54c['stopPropagation']();let _0x2fbd09=$(this);if(_0xbd0982(_0x2fbd09,_0x1fe54c))_0x53fb1a(_0x2fbd09);else{const _0x564daa=_0x2fbd09[_0x517ac4(0x1b4)](_0x517ac4(0xf9)),_0x474bfa=_0x2fbd09[_0x517ac4(0x1b4)](_0x517ac4(0x15f));if(_0x5776b2[_0x517ac4(0x169)][_0x517ac4(0x145)]&&!_0x5776b2[_0x517ac4(0x169)][_0x517ac4(0x145)](_0x474bfa))return;_0x5776b2[_0x517ac4(0x132)][_0x517ac4(0x1b4)](_0x517ac4(0x15f),_0x474bfa);const _0x5598ed=((_0x1ffa4d=_0x474bfa[_0x517ac4(0x136)])===null||_0x1ffa4d===void 0x0?void 0x0:_0x1ffa4d['text'])||((_0x13dc79=_0x474bfa[_0x517ac4(0x15a)])===null||_0x13dc79===void 0x0?void 0x0:_0x13dc79[_0x517ac4(0x14e)])||_0x474bfa[_0x517ac4(0x160)][_0x517ac4(0x112)](),_0x37e704='['+_0x5598ed+']('+_0x564daa+')';_0x5776b2[_0x517ac4(0x132)][_0x517ac4(0x146)](_0x37e704),_0x5776b2[_0x517ac4(0x132)][_0x517ac4(0x156)](_0x517ac4(0xfb)),_0x5776b2['$dropdown'][_0x517ac4(0x198)]();}}),_0x5776b2[_0x59164a(0x11b)]['on'](_0x59164a(0x12b),'li',function(_0x249ba7){const _0xbf4fbd=_0x59164a;_0x249ba7[_0xbf4fbd(0x115)]();let _0x41cc5e=$(this);_0xbd0982(_0x41cc5e,_0x249ba7)&&_0x53fb1a(_0x41cc5e),_0xeb3c49(_0x5776b2,_0x41cc5e);}),$(document)['on'](_0x59164a(0x12b),function(_0x5bb817){const _0x3ec0d5=_0x59164a;!$(_0x5bb817[_0x3ec0d5(0x17e)])['closest'](_0x5776b2[_0x3ec0d5(0x16e)])[_0x3ec0d5(0x140)]&&_0x5776b2['$dropdown']['hide']();});}});},_0x39f769=({endpointNode:_0x5a01a1,endpoint:_0x3ec941,baseUrl:_0x530bb1},_0x483b18)=>_0x2e1df1(void 0x0,void 0x0,void 0x0,function*(){const _0x2a887d=_0x53159d,_0x5e7deb=_0x530bb1+_0x2a887d(0xfe),_0x540e67=_0x5e7deb+_0x2a887d(0x118),_0x262149=yield fetch(_0x540e67,{'method':'POST','body':JSON['stringify']({'endpointNode':_0x5a01a1,'endpoint':_0x3ec941,'nodeId':_0x483b18}),'headers':{'Content-Type':_0x2a887d(0x1aa)}});if(_0x262149[_0x2a887d(0x1c7)]!==0xc8){console[_0x2a887d(0x166)](_0x2a887d(0x16d),_0x262149['status'],_0x262149[_0x2a887d(0xf8)]);const _0x4cba51={'statusCode':'Bad','nodeAddressString':_0x483b18};return _0x4cba51;}console[_0x2a887d(0x166)](_0x2a887d(0x165),_0x262149[_0x2a887d(0x1c7)],_0x262149[_0x2a887d(0xf8)]);const _0x2a06f2=yield _0x262149[_0x2a887d(0x1bd)]();return _0x2a06f2;});function _0x2e8fee(_0xfc2982,_0x4e7c5d,_0x7ed889,_0x790223){const _0x3f1ce6=_0x53159d,_0x159796=$('#'+_0xfc2982+_0x3f1ce6(0x17c)),_0x523d4c=$('#'+_0xfc2982+'-failure'),_0x576f08=$('#'+_0xfc2982+_0x3f1ce6(0x135)),_0x1efd4a=$('#'+_0xfc2982+'-messages');let _0x346d0a=![];_0x159796[_0x3f1ce6(0x198)](),_0x523d4c[_0x3f1ce6(0x198)](),_0x576f08[_0x3f1ce6(0x198)](),_0x4e7c5d['on'](_0x3f1ce6(0x12b),()=>{const _0x430f37=_0x3f1ce6;if(_0x346d0a)return;_0x346d0a=!![],_0x576f08[_0x430f37(0x144)](_0x430f37(0x198)),_0x576f08[_0x430f37(0x1c2)](_0x430f37(0x178)),_0x159796[_0x430f37(0x120)](_0x430f37(0x198)),_0x523d4c[_0x430f37(0x120)](_0x430f37(0x198)),_0x1efd4a[_0x430f37(0x1c2)]('');const {body:_0x3806ea,url:_0x27e00d}=_0x7ed889();fetch(_0x27e00d,{'method':_0x430f37(0x179),'headers':{'Content-Type':_0x430f37(0x1aa)},'body':JSON[_0x430f37(0x18d)](_0x3806ea)})[_0x430f37(0x191)](_0x2e0558=>_0x2e0558[_0x430f37(0x1bd)]())[_0x430f37(0x191)](_0xb19a6f=>{const _0x490ba3=_0x430f37;_0x346d0a=![],_0x576f08[_0x490ba3(0x198)](),console['log'](JSON['stringify'](_0xb19a6f,null,'\x20'));if(_0xb19a6f[_0x490ba3(0x13e)]==='ok')_0x159796['removeClass'](_0x490ba3(0x198)),_0x523d4c[_0x490ba3(0x120)](_0x490ba3(0x198)),_0x1efd4a[_0x490ba3(0x1c2)](_0xb19a6f[_0x490ba3(0x157)][_0x490ba3(0x16a)]('\x0a',_0x490ba3(0x114))),_0x790223(null,_0xb19a6f);else{const _0x4fbf40=_0x1b1c55=>!_0x1b1c55?'':_0x1b1c55[_0x490ba3(0x174)]('\x0a')[_0x490ba3(0x189)](_0x46d5c2=>_0x490ba3(0x14b)+_0x46d5c2+_0x490ba3(0x15e))['join']('\x0a'),_0x381ba4=_0x5333c8=>Array[_0x490ba3(0x19f)](_0x5333c8)?_0x5333c8[_0x490ba3(0x189)](_0x4fbf40)[_0x490ba3(0x14d)]('\x0a'):_0x4fbf40(_0x5333c8);_0x159796[_0x490ba3(0x120)]('hide'),_0x523d4c[_0x490ba3(0x144)](_0x490ba3(0x198)),_0x1efd4a['html'](_0x381ba4(_0xb19a6f[_0x490ba3(0x157)])+_0x381ba4(_0xb19a6f['extra'])),_0x790223(new Error(_0xb19a6f[_0x490ba3(0x13e)]),_0xb19a6f);}})['catch'](_0x104e5c=>{const _0x5d7922=_0x430f37;_0x346d0a=![],_0x576f08[_0x5d7922(0x120)](_0x5d7922(0x198)),_0x159796[_0x5d7922(0x120)](_0x5d7922(0x198)),_0x523d4c[_0x5d7922(0x144)](_0x5d7922(0x198)),_0x1efd4a[_0x5d7922(0x1c2)](_0x5d7922(0x193)+_0x104e5c[_0x5d7922(0x157)]),console['log']('err',_0x104e5c),_0x790223(_0x104e5c,null);});});}const _0x5eda0c=()=>{const _0x314a23=_0x53159d,_0x39cc8b=$(_0x314a23(0x1a6)),_0x290d79=_0x39cc8b[_0x314a23(0x146)](),_0x147cc5=RED[_0x314a23(0x10f)][_0x314a23(0x117)](_0x290d79);if(!_0x147cc5)return undefined;const {endpoint:_0x5cee21,securityMode:_0x37bde7,securityPolicy:_0x38520f,userIdentityType:_0x2bfaf3,credentials:_0x49ac4f}=_0x147cc5,_0x46acad={'endpoint':_0x5cee21,'securityMode':_0x37bde7,'securityPolicy':_0x38520f,'userIdentityType':_0x2bfaf3,'credentials':_0x49ac4f};return _0x46acad;},_0x10aeb7=()=>{return{'endpointNode':_0x378a45};},_0x378a45=()=>{const _0x1fa63d=_0x53159d,_0x1c17c5=$(_0x1fa63d(0x1a6)),_0x4c1fc8=_0x1c17c5[_0x1fa63d(0x146)](),_0x2455f7=_0x5eda0c();if(!_0x2455f7)return undefined;return{'id':_0x4c1fc8};};RED[_0x53159d(0x10f)]['registerType'](_0x53159d(0x142),{'category':'opcua','color':_0x53159d(0x103),'align':_0x53159d(0x125),'icon':'../../icons/opcuanodeLogo.png','paletteLabel':'call','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x53159d(0x151)},'action':{'value':_0x53159d(0x19c),'required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x429a80=_0x53159d;return this[_0x429a80(0x14e)]||'OPCUA-Call';},'labelStyle'(){const _0x8386=_0x53159d;return this[_0x8386(0x14e)]?_0x8386(0x1a8):'';},'oneditprepare'(){const _0x5a36a5=_0x53159d,_0x1c2417=this;_0x490f24(),_0x1c2417[_0x5a36a5(0x1c3)]=0x1;let _0x53ddc6={};const _0x22c8f4=$(_0x5a36a5(0x11a)),_0x2a97c2=$('#node-input-methodId'),_0x55e012=$(_0x5a36a5(0x1a9)),_0xb94297=$(_0x5a36a5(0x14a)),_0x2f9af3=$('#validate-call-arguments-button');_0x22c8f4[_0x5a36a5(0x10a)](Object['assign'](Object['assign']({},_0x10aeb7()),{'filter'(_0xb7aa69){const _0x3b45c9=_0x5a36a5;return _0xb7aa69[_0x3b45c9(0x173)]===_0x3b45c9(0x1b2);}})),_0x2a97c2[_0x5a36a5(0x10a)](Object[_0x5a36a5(0x167)](Object[_0x5a36a5(0x167)]({},_0x10aeb7()),{'parentNode':function(){return _0x2e1df1(this,void 0x0,void 0x0,function*(){const _0x5f3338=_0x17a5,_0x53188d=_0x1c0e03(this);let _0x4278f4=_0x22c8f4[_0x5f3338(0x1b4)](_0x5f3338(0x15f));if(!_0x4278f4){const _0x4b4f3e=_0x22c8f4[_0x5f3338(0x146)](),_0xf8a2d4=_0x5eda0c();if(!_0xf8a2d4)return null;try{const _0x174422=yield _0x39f769(_0x53188d,_0x4b4f3e);_0x4278f4=_0x174422[_0x5f3338(0x15f)];}catch(_0x5fbb33){console['log'](_0x5fbb33);}}return _0x4278f4;});},'filter'(_0x37aa17){const _0x1c0ffa=_0x5a36a5;return _0x37aa17[_0x1c0ffa(0x173)]===_0x1c0ffa(0x199)||_0x37aa17[_0x1c0ffa(0x173)]===_0x1c0ffa(0x1b2);},'isSelectable'(_0x393593){const _0x171c94=_0x5a36a5;return _0x393593[_0x171c94(0x173)]===_0x171c94(0x199);}})),_0x22c8f4['on'](_0x5a36a5(0xfb),()=>{const _0x4b82b9=_0x5a36a5;_0x2a97c2['nodeBrowser'](_0x4b82b9(0x1bf));});function _0x194de3(_0x5c02af,_0x5d15ea,_0x2b41b2){const _0x4b2bfe=_0x5a36a5,_0x91302c=$(_0x4b2bfe(0x192))[_0x4b2bfe(0x19a)](_0x5c02af);$(_0x4b2bfe(0x18f))[_0x4b2bfe(0x146)](_0x2b41b2[_0x4b2bfe(0x14e)]||'')['css']({'width':_0x4b2bfe(0x184)})[_0x4b2bfe(0x19a)](_0x91302c);const _0x1fe2c0=_0x53ddc6[_0x2b41b2['dataType']['toString']()],_0xfd64df=(_0x1fe2c0?_0x1fe2c0['browseName'][_0x4b2bfe(0x14e)]||'':_0x2b41b2[_0x4b2bfe(0x1cc)][_0x4b2bfe(0x112)]())+(_0x2b41b2[_0x4b2bfe(0x18e)]===0x1?'[]':'');$('<input\x20type=\x22text\x22>')[_0x4b2bfe(0x146)](_0x2b41b2[_0x4b2bfe(0x11c)]['text']||'')['css']({'width':_0x4b2bfe(0x1b9)})['appendTo'](_0x91302c),$('<input\x20type=\x22text\x22>')[_0x4b2bfe(0x146)](_0xfd64df||'')[_0x4b2bfe(0x128)]({'width':_0x4b2bfe(0x1b9)})[_0x4b2bfe(0x19a)](_0x91302c);}_0x55e012[_0x5a36a5(0x123)]({'addButton':![],'height':_0x5a36a5(0x1af),'scrollOnAdd':![],'addItem'(_0x547117,_0x3c7f6c,_0x2dedeb){_0x194de3(_0x547117,_0x3c7f6c,_0x2dedeb);}}),_0xb94297[_0x5a36a5(0x123)]({'addButton':![],'height':_0x5a36a5(0x1af),'scrollOnAdd':![],'addItem'(_0x2a54b9,_0x5f3a38,_0x4cdd78){_0x194de3(_0x2a54b9,_0x5f3a38,_0x4cdd78);}});function _0xcc1173(_0x109fcb,_0x468dfe){const _0x1dac14=_0x5a36a5;console['log'](_0x1dac14(0x155),_0x468dfe[_0x1dac14(0x140)],_0x1dac14(0x190),_0x468dfe),_0x109fcb[_0x1dac14(0x123)]('empty');for(let _0x27181b=0x0;_0x27181b<_0x468dfe[_0x1dac14(0x140)];_0x27181b++){_0x109fcb[_0x1dac14(0x123)](_0x1dac14(0x105),_0x468dfe[_0x27181b]);}}_0x55e012[_0x5a36a5(0x198)](),_0xb94297[_0x5a36a5(0x198)]();let _0x4c517f={};const _0x1ea5a1=$(_0x5a36a5(0x13f));_0x1ea5a1[_0x5a36a5(0x198)](),_0x1ea5a1['on']('click',()=>{const _0x5277ea=_0x5a36a5;navigator['clipboard'][_0x5277ea(0x107)](JSON[_0x5277ea(0x18d)](_0x4c517f));}),_0x2e8fee('validate',_0x2f9af3,()=>({'url':_0x5a36a5(0x154),'body':{'endpointNode':_0x378a45(),'objectId':_0x22c8f4[_0x5a36a5(0x146)](),'methodId':_0x2a97c2[_0x5a36a5(0x146)]()}}),(_0x1432b0,_0x1d5bf1)=>{const _0x41978d=_0x5a36a5;if(_0x1432b0)return;const _0x437ceb=_0x1d5bf1[_0x41978d(0x181)];_0x53ddc6=_0x1d5bf1[_0x41978d(0x113)],_0x55e012[_0x41978d(0x12d)](),_0xb94297[_0x41978d(0x12d)](),_0xcc1173(_0x55e012,_0x437ceb[_0x41978d(0x172)]),_0xcc1173(_0xb94297,_0x437ceb[_0x41978d(0x152)]),_0x4c517f=_0x1d5bf1[_0x41978d(0x161)]||{},_0x1ea5a1[_0x41978d(0x12d)](),navigator['clipboard'][_0x41978d(0x107)](JSON[_0x41978d(0x18d)](_0x4c517f)),console[_0x41978d(0x166)](_0x41978d(0xff),JSON[_0x41978d(0x18d)](_0x4c517f)),console['log'](_0x41978d(0x1b4),_0x1d5bf1);});},'oneditsave'(){}});}()));function _0x17a5(_0x5526bc,_0x2f8446){const _0x3fdc43=_0x3fdc();return _0x17a5=function(_0x17a559,_0x53089d){_0x17a559=_0x17a559-0xf6;let _0x548a7b=_0x3fdc43[_0x17a559];return _0x548a7b;},_0x17a5(_0x5526bc,_0x2f8446);}function _0x3fdc(){const _0x1cc34c=['<li>error\x20','fetching\x20failed\x20with\x20error','$combo','empty','Inverse','left','inputArguments','nodeClass','split','nodeAddressString',';\x22></i>\x20','parentNode','Testing\x20Connection\x20...','POST','li[key=\x22','TypeDefinition','-success','baseUrl','target','ns=0;i=34','toggleClass','argumentDefinition','text','6545950TgJMTv','100%','!!failure!!','$inputGroup','<div\x20class=\x22info-text\x22></div>','NodeClass','map','HasChild','top','sterfive.nodeBrowser','stringify','valueRank','<input\x20type=\x22text\x22>','arguments','then','<div\x20class=\x22argument-entry\x22>','internal\x20error\x20','690738WxqYDe','BrowseName','endpointNode','remove','hide','Method','appendTo','function','read','toggle','HasComponent','isArray','fa-question','__parentNode','IsForward','4VvpFDw','Invalid','sterfive-dropdown','#node-input-endpoint','4806738TJeJqx','node_label_italic','#method-input-argument-definition','application/json','2155674BHKeNq','statusCode','sterfive-info','\x22\x20style=\x22color:','auto','ReferenceType','opc.tcp://opcuademo.sterfive.com:26543','Object','</li>','data','verify','2837028xJUtsx','suppressed','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','50%','<li\x20key=\x22','CadetBlue','references','json','<div\x20class=\x22spinner\x22></div>','reset','expanded','$verifyBtn','html','inputs','find','ObjectType','fa-object-group','status','Objects','HasProperty','Variable','pageY','dataType','scrollTop','ns=0;i=85','fa-cog','$info','selected','Both','ns=0;i=47','typeDefinition','><i\x20class=\x22fa\x20','statusText','value','endpoint','change','<div/>','HasTypeDefinition','/opcua-endpoint2','JSON','expandable','$toggleTreeBtn','failure','#C0DEED','element','addItem','Unspecified','writeText','already\x20fetched','li\x20>\x20.tree-text','nodeBrowser','View','<ul\x20class=\x22sterfive-tree\x22></ul>','fa-folder','3gaAFPz','nodes','ns=0;i=40','SuppressedError','toString','dataTypes','<br>','stopPropagation','error','node','/checkNodeId','animate','#node-input-objectId','$tree','description','expandable\x20expanded','children','DataType','addClass','DisplayName','sterfive-combo-box','editableList','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','right','filter','append','css','</span><ul></ul></li>','currentParent','click','pageX','show','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','VariableType','next','$input','throw','apply','-pending','displayName','10127688nUslSl','Organizes','nodeIds','relativePath','offset','Good','hasClass','result','#copy-input','length','referenceTypeId','OpcUa-Client2-Call','\x22}><span\x20class=\x22tree-text\x22\x20title=','removeClass','isSelectable','val','isTypeRef','fa-text-width','i=61','#method-output-argument-definition','<p>',':visible','join','name','940996mqPbzB','$dropdown','OpcUa-Endpoint2','outputArguments','fetched','/opcua-endpoint2/argumentDefinition','installArgumentList','trigger','message','HasSubtype','loading','browseName','fa-list-alt','SeaGreen','ns=0;i=45','</p>','reference','nodeId','inputArgumentsExampleAsJson','/walk-backward','DarkOrange','position','fetched\x20:\x20','log','assign','browsePath','options','replace','Forward'];_0x3fdc=function(){return _0x1cc34c;};return _0x3fdc();}
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyZTFkZjEiLCJfMHgzN2NiMGIiLCJfMHgyODJjM2YiLCJfMHgyYjM3NiIsIl8weDY4YmJhOSIsIl8weDIwMTYwNyIsIl8weDNkYjUwNSIsIl8weDQ4MGY3YiIsIlByb21pc2UiLCJfMHgxNjEwNDciLCJfMHgzMjhjZGIiLCJfMHgzM2MwZDMiLCJfMHg3YjMzMGIiLCJfMHg1Mjc4MWUiLCJfMHg1YmEwM2YiLCJfMHgyMzQ1ZDAiLCJfMHg1MGVmMTkiLCJfMHgzOWJjYjkiLCJfMHgxZWVjODIiLCJTdXBwcmVzc2VkRXJyb3IiLCJfMHgzNmYzN2YiLCJfMHgxZjMxZmQiLCJfMHg1YzhiYzQiLCJfMHg0MTA4NDAiLCJFcnJvciIsIl8weDFhMjZjYyIsIl8weDUxYTM4NiIsIl8weGM2MzAzMCIsIl8weDVhZjZiYyIsIl8weDU3ZTVkZSIsIl8weDQ0ZGE1ZSIsIl8weDQyZjkyZiIsIl8weDI2Y2EzZCIsIl8weGY3NGY5YyIsIl8weDFkODgyNSIsIl8weDQ3MGRmNCIsIl8weDU0ODEyZiIsIl8weDM0ZjY2ZCIsIl8weDMyOTBhNCIsIl8weDQ2YzA5ZCIsIl8weDIxOGQyMCIsIl8weDVlMGMyZiIsIl8weDIyMjJkZiIsIl8weDRmNDFmZSIsIl8weDNmNjc4MCIsImVuZHBvaW50Tm9kZSIsIl8weDIxYzJlNCIsImVuZHBvaW50IiwiXzB4NTUyYmJmIiwiYmFzZVVybCIsIl8weDU3MTA1YyIsIl8weDQyYjNlZCIsIl8weDNlYzViNyIsIl8weDQ5MzdjYSIsIl8weDMxYWRkYiIsIl8weDFjMjMyNyIsIk9iamVjdCIsIl8weDJmYTE2OCIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHg1ODNmZTUiLCJfMHgzMWRjZjkiLCJfMHgyNDg2MGUiLCJfMHgzMzYwYzAiLCJfMHg0MTQ5OTgiLCJfMHgyYTc1OWYiLCJfMHg1MzM1Y2MiLCJfMHgyZGQ0YjAiLCJub2RlSWQiLCJfMHg2YjMzM2IiLCJyb290Tm9kZUlkIiwiXzB4NGVmYWFjIiwiaXNUeXBlIiwiXzB4Mjc2OTllIiwiXzB4MWM5ODgwIiwiXzB4NDA1N2RkIiwiXzB4M2EwZjQ0IiwiXzB4NTdjMjY0IiwiXzB4NDUwNmFkIiwiXzB4ZTkxNzQxIiwiXzB4NGQ0NTJiIiwiXzB4NWE1NTFmIiwiXzB4NzgwY2U0IiwiXzB4MzUyMTQ4IiwiXzB4NGFmYzEwIiwiXzB4MjRmMzc5IiwiXzB4M2QzZGI0IiwiXzB4MTY0Yzk1IiwiXzB4NDI0NzRjIiwiXzB4NTY1ZGMyIiwiXzB4MTA3N2Y4Iiwic2V0VGltZW91dCIsIl8weDQ1MzkzMiIsIl8weDhhOWEyYiIsIl8weDViZGMzOCIsIl8weDFlYzJlMyIsIl8weDIyNTY4YSIsIl8weDEzODMzMyIsIl8weDVlYmExNCIsIl8weDIzY2M1MiIsIl8weDRiM2ZlMiIsIl8weDhlNzAyOCIsIl8weDU2NjBiZSIsIl8weDI1NTFjNyIsIl8weDM2ZTRiYyIsIl8weDEzY2JlYyIsIl8weDU0M2M2MiIsIl8weDExMTRlYyIsIl8weDI0NzhhMCIsIl8weDUzZTdlNyIsIl8weDVmMTQ1NiIsIl8weDVhZjI2MCIsIiQiLCJfMHg0ZDA0MTgiLCJfMHgzMGE3NGUiLCJpY29uIiwiXzB4MzE4OGY5IiwiY29sb3IiLCJfMHgyNjRlMDEiLCJfMHgyZjM4YjUiLCJfMHgzM2FkNDAiLCJfMHgyYmFiMGEiLCJfMHg0ZTI4ZDkiLCJfMHgzZjhmY2YiLCJfMHhlYjNjNDkiLCJfMHgxMjJiYWUiLCJfMHgxNTM4YTMiLCJfMHg0YmQ2MjgiLCJfMHgxODc3ZmEiLCJfMHg1ZTU4YWMiLCJfMHhhNDQyMSIsIl8weDE2ZTUzZiIsIl8weDI2ZjczYSIsIl8weDRhZTc5ZCIsIl8weDNhNjU0YSIsIl8weDFmMzZiYSIsIl8weDI2Y2VjMCIsIl8weDU5ZDI2OCIsIl8weDIwOGI2YSIsIl8weDRiMjIxMyIsIl8weDFhNDQ0NyIsInVuZGVmaW5lZCIsIl8weDRmNDdiZCIsIl8weDRlOWJlZSIsIl8weDU5ZTdmOSIsIl8weDJmZmE4NSIsIl8weDQ2ZTI4NSIsIl8weDEyM2Y4OSIsIl8weDNiNGQ1NCIsIl8weDFjMGUwMyIsIl8weDg0Y2Y5ZiIsIl8weDUzNGFjMSIsIl8weDI0ZTBmMCIsIl8weGFiMTJhOSIsIl8weDQ5NTU3ZiIsIl8weDE2YTk5NiIsInJlZmVyZW5jZXMiLCJfMHgxYjNjNGMiLCJfMHg0NzAzMmUiLCJfMHgzMGFkNGIiLCJfMHgzZDRkYzMiLCJfMHgxMjc1NmQiLCJfMHg0ODY4MGUiLCJfMHg1MWMzMDciLCJfMHg0NzUyYjUiLCJfMHgzZTFhZjgiLCJfMHgyMWQ2NGYiLCJfMHgyNDZjZDciLCJfMHg0OTBmMjQiLCJfMHgyNDgwYzgiLCJfMHgyMjcxNDUiLCJfMHg0ZGU4MGQiLCJfMHg1MWZiMWMiLCJfMHgzOGNjYzAiLCJfMHg4NjhlNDciLCJfMHg0MDJlOGQiLCJfMHgzM2UwZTQiLCJfMHgzMTQwZTMiLCJfMHg1Nzc2YjIiLCJfMHgxMTE4MWYiLCJfMHgxMmM2M2QiLCJfMHg1NWUyNDIiLCJfMHhiZDA5ODIiLCJfMHg1MjQ5YmIiLCJfMHgxMmZlZDUiLCJfMHg1OWNhNDkiLCJfMHg1ZGVhNzUiLCJfMHgxMWFjMzQiLCJfMHg1OGI4YzYiLCJfMHg1M2ZiMWEiLCJfMHg0YmI4MjgiLCJfMHgxZmU1NGMiLCJfMHgxZmZhNGQiLCJfMHgxM2RjNzkiLCJfMHgyZmJkMDkiLCJfMHg1NjRkYWEiLCJfMHg0NzRiZmEiLCJfMHg1NTk4ZWQiLCJfMHgzN2U3MDQiLCJfMHgyNDliYTciLCJfMHg0MWNjNWUiLCJkb2N1bWVudCIsIl8weDViYjgxNyIsIl8weDM5Zjc2OSIsIl8weDVhMDFhMSIsIl8weDNlYzk0MSIsIl8weDUzMGJiMSIsIl8weDQ4M2IxOCIsIl8weDVlN2RlYiIsIl8weDU0MGU2NyIsIl8weDI2MjE0OSIsIl8weDRjYmE1MSIsIl8weDJhMDZmMiIsIl8weDJlOGZlZSIsIl8weGZjMjk4MiIsIl8weDRlN2M1ZCIsIl8weDdlZDg4OSIsIl8weDc5MDIyMyIsIl8weDE1OTc5NiIsIl8weDUyM2Q0YyIsIl8weDU3NmYwOCIsIl8weDFlZmQ0YSIsIl8weDM0NmQwYSIsImJvZHkiLCJfMHgzODA2ZWEiLCJ1cmwiLCJfMHgyN2UwMGQiLCJfMHgyZTA1NTgiLCJfMHhiMTlhNmYiLCJfMHg0ZmJmNDAiLCJfMHgxYjFjNTUiLCJfMHg0NmQ1YzIiLCJfMHgzODFiYTQiLCJfMHg1MzMzYzgiLCJBcnJheSIsIl8weDEwNGU1YyIsIl8weDVlZGEwYyIsIl8weDM5Y2M4YiIsIl8weDI5MGQ3OSIsIl8weDE0N2NjNSIsIlJFRCIsIl8weDVjZWUyMSIsInNlY3VyaXR5TW9kZSIsIl8weDM3YmRlNyIsInNlY3VyaXR5UG9saWN5IiwiXzB4Mzg1MjBmIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDJiZmFmMyIsImNyZWRlbnRpYWxzIiwiXzB4NDlhYzRmIiwiXzB4NDZhY2FkIiwiXzB4MTBhZWI3IiwiXzB4Mzc4YTQ1IiwiXzB4MWMxN2M1IiwiXzB4NGMxZmM4IiwiXzB4MjQ1NWY3IiwiXzB4MWMyNDE3IiwiXzB4NTNkZGM2IiwiXzB4MjJjOGY0IiwiXzB4MmE5N2MyIiwiXzB4NTVlMDEyIiwiXzB4Yjk0Mjk3IiwiXzB4MmY5YWYzIiwiXzB4YjdhYTY5IiwiXzB4NTMxODhkIiwiXzB4NDI3OGY0IiwiXzB4NGI0ZjNlIiwiXzB4ZjhhMmQ0IiwiXzB4MTc0NDIyIiwiXzB4NWZiYjMzIiwiXzB4MzdhYTE3IiwiXzB4MzkzNTkzIiwiXzB4MTk0ZGUzIiwiXzB4NWMwMmFmIiwiXzB4NWQxNWVhIiwiXzB4MmI0MWIyIiwiXzB4OTEzMDJjIiwiXzB4MWZlMmMwIiwiXzB4ZmQ2NGRmIiwiXzB4NTQ3MTE3IiwiXzB4M2M3ZjZjIiwiXzB4MmRlZGViIiwiXzB4MmE1NGI5IiwiXzB4NWYzYTM4IiwiXzB4NGNkZDc4IiwiXzB4Y2MxMTczIiwiXzB4MTA5ZmNiIiwiXzB4NDY4ZGZlIiwiXzB4MjcxODFiIiwiXzB4NGM1MTdmIiwiXzB4MWVhNWExIiwibmF2aWdhdG9yIiwiXzB4MTQzMmIwIiwiXzB4MWQ1YmYxIiwiXzB4NDM3Y2ViIl0sIm1hcHBpbmdzIjoidWlCQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNB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QUEsQ0FBMEJpRCxTQUExQixDQUF3QyxLQUFPLEMsS0FDM0MsQyxnQkFEMkMsQyxNQUUzQyxDQUFNLEMsY0FDRixDQUFjVixTQUFBLEVBRFosQyxVQUVGLENBQVVNLFNBQUEsQyxnQkFBQSxHQUZSLEMsVUFHRixDQUFVQyxTQUFBLEMsZ0JBQUEsR0FIUixDQUZxQyxDQUFQLENBQXhDLENBT0ksQ0FBQ2lDLFNBQUQsQ0FBTUMsU0FBTixHLDhCQUNJRCxTLENBQ0EsT0FHSixNQUFNRSxTQUFBLENBQXFCRCxTQUFBLEMsZ0JBQUEsQ0FBM0IsQ0FDQXBDLFNBQUEsQ0FBWW9DLFNBQUEsQyxnQkFBQSxDLENBQ1pqQyxTQUFBLEMsZ0JBQUEsRyxDQUNBQyxTQUFBLEMsZ0JBQUEsRyxDQUNBd0IsU0FBQSxDQUFvQnpCLFNBQXBCLENBQThDa0MsU0FBQSxDLGdCQUFBLENBQTlDLEMsQ0FDQVQsU0FBQSxDQUFvQnhCLFNBQXBCLENBQStDaUMsU0FBQSxDLGdCQUFBLENBQS9DLEMsQ0FDQUwsU0FBQSxDQUFjSSxTQUFBLEMsZ0JBQUEsR0FBb0MsRSxDQUNsREgsU0FBQSxDLGdCQUFBLEcsQ0FDQUMsU0FBQSxDLFdBQUEsRSxnQkFBQSxFQUE4QnpPLElBQUEsQyxnQkFBQSxFQUFldU8sU0FBZixDQUE5QixDLENBQ0F0TyxPQUFBLEMsZ0JBQUEsRSxlQUFBLENBQW9CRCxJQUFBLEMsZ0JBQUEsRUFBZXVPLFNBQWYsQ0FBcEIsQyxDQUNBdE8sT0FBQSxDLEtBQUEsRSxnQkFBQSxDQUFvQjBPLFNBQXBCLEMsRUF0QkosQyxFQTNIcUMsQyxZQW9KekMsRSxFQXBKeUMsQ0FBN0MsQyxFQWpzQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYnJvd3NlIGZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3Qgd2Fsa0JhY2t3YXJkID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vd2Fsay1iYWNrd2FyZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkLFxuICAgICAgICAgICAgICAgIGlzVHlwZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4ganNvbi5icm93c2VQYXRoO1xuICAgIH0pO1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIG5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoanNvbi5ub2RlQWRkcmVzc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSB8fCAhcmVmZXJlbmNlLm5vZGVJZCkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgdGl0bGUgPSBgKCR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfSkgJHsoKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lKSB8fCAoKF9kID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QudGV4dCkgfHwgXCJcIn1gO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaSBrZXk9XCIke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX1cIn0+PHNwYW4gY2xhc3M9XCJ0cmVlLXRleHRcIiB0aXRsZT0ke3RpdGxlfT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTwvc3Bhbj48dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBmaW5kRWxlbWVudCA9IChub2RlSWQsICR0cmVlKSA9PiB7XG4gICAgICAgIHJldHVybiAkdHJlZS5maW5kKGBsaVtrZXk9XCIke25vZGVJZH1cIl1gKTtcbiAgICB9O1xuICAgIGNvbnN0IHNlbGVjdFNpbmdsZSA9ICh0aGF0LCAkbGkpID0+IHtcbiAgICAgICAgdGhhdC4kdHJlZS5maW5kKFwibGkgPiAudHJlZS10ZXh0XCIpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgIC8vIGNsZWFyIGFsbCBzZWxlY3RlZCBpdGVtc1xuICAgICAgICAkbGkuZmluZChcIi50cmVlLXRleHQ6Zmlyc3RcIikuYWRkQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICB9O1xuICAgIGNvbnN0IGF1dG9FeHBhbmQgPSAodGhhdCwgYnJvd3NlUGF0aCwgJHRyZWUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBleHBhbmQgdGhlIHRyZWUgdG8gc2hvdyB0aGUgbm9kZUlkXG4gICAgICAgIGxldCAkY3VycmVudCA9ICR0cmVlLmNoaWxkcmVuKFwiOmZpcnN0XCIpO1xuICAgICAgICBicm93c2VQYXRoLnJlbGF0aXZlUGF0aC5lbGVtZW50cyB8fCBbXTtcbiAgICAgICAgY29uc3Qgbm9kZUlkcyA9IGJyb3dzZVBhdGgubm9kZUlkcyB8fCBbXTtcbiAgICAgICAgaWYgKG5vZGVJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBuIG9mIG5vZGVJZHMpIHtcbiAgICAgICAgICAgIGlmICgkY3VycmVudC5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGV4cGFuZCBhbmQgc2VsZWN0IHRoZSByaWdodCBlbGVtZW50XG4gICAgICAgICAgICAgICAgeWllbGQgX2V4cGFuZExpKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gZmluZEVsZW1lbnQobiwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgaWYgKCRlbGVtZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRjdXJyZW50ID0gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgc2Nyb2xsVG9MaSh0aGF0LiRkcm9wZG93biwgJGN1cnJlbnQpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIHNjcm9sbFRvTGkoJGNvbnRhaW5lciwgJHRhcmdldExpKSB7XG4gICAgICAgIC8vIEdldCB0aGUgcG9zaXRpb24gb2YgdGhlIHRhcmdldCBpdGVtIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXJcbiAgICAgICAgY29uc3QgbGlQb3MgPSAkdGFyZ2V0TGkucG9zaXRpb24oKS50b3A7XG4gICAgICAgIC8vIEdldCB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBjb250YWluZXJTY3JvbGxUb3AgPSAkY29udGFpbmVyLnNjcm9sbFRvcCgpO1xuICAgICAgICBpZiAoY29udGFpbmVyU2Nyb2xsVG9wID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gdG8gc2Nyb2xsIHRvIChjdXJyZW50IHNjcm9sbCArIGl0ZW0ncyBwb3NpdGlvbilcbiAgICAgICAgLy8gQWRqdXN0IHRoaXMgY2FsY3VsYXRpb24gYmFzZWQgb24geW91ciBuZWVkc1xuICAgICAgICBjb25zdCBzY3JvbGxUbyA9IGNvbnRhaW5lclNjcm9sbFRvcCArIGxpUG9zIC0gJGNvbnRhaW5lci5oZWlnaHQoKSAvIDIgKyAkdGFyZ2V0TGkuaGVpZ2h0KCkgLyAyO1xuICAgICAgICAvLyBTY3JvbGwgdGhlIGNvbnRhaW5lciB0byBlbnN1cmUgdGhlIGl0ZW0gaXMgdmlzaWJsZVxuICAgICAgICAkY29udGFpbmVyLmFuaW1hdGUoe1xuICAgICAgICAgICAgc2Nyb2xsVG9wOiBzY3JvbGxUbyxcbiAgICAgICAgfSwgNTAwKTsgLy8gQWRqdXN0IHRoZSBkdXJhdGlvbiAoNTAwbXMpIGFzIG5lZWRlZFxuICAgIH1cbiAgICBjb25zdCByZWFjaFNlbGVjdGlvbiA9ICh0aGF0LCBwYXJlbnROb2RlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gdGhhdC4kaW5wdXQudmFsKCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICByb290Tm9kZUlkOiBwYXJlbnROb2RlLm5vZGVJZCxcbiAgICAgICAgICAgIGlzVHlwZTogdGhhdC5vcHRpb25zLmlzVHlwZVJlZiB8fCBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICBjb25zdCBicm93c2VQYXRoID0geWllbGQgd2Fsa0JhY2t3YXJkKGRhdGEsIG9wdGlvbnMpO1xuICAgICAgICBpZiAoIWJyb3dzZVBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB5aWVsZCBhdXRvRXhwYW5kKHRoYXQsIGJyb3dzZVBhdGgsIHRoYXQuJHRyZWUpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuX19wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNoZWNrTm9kZUlkID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgY29uc3QgcmVzID0ge1xuICAgICAgICAgICAgICAgIHN0YXR1c0NvZGU6IFwiQmFkXCIsXG4gICAgICAgICAgICAgICAgbm9kZUFkZHJlc3NTdHJpbmc6IG5vZGVJZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gbWFuYWdlQVBJQ2FsbChwcmVmaXgsIGJ0biwgZnVuYywgb25SZXN1bHQpIHtcbiAgICAgICAgY29uc3Qgc3VjY2Vzc0ljb24gPSAkKGAjJHtwcmVmaXh9LXN1Y2Nlc3NgKTtcbiAgICAgICAgY29uc3QgZmFpbHVyZUljb24gPSAkKGAjJHtwcmVmaXh9LWZhaWx1cmVgKTtcbiAgICAgICAgY29uc3QgcGVuZGluZ0ljb24gPSAkKGAjJHtwcmVmaXh9LXBlbmRpbmdgKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZXMgPSAkKGAjJHtwcmVmaXh9LW1lc3NhZ2VzYCk7XG4gICAgICAgIGxldCBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIHN1Y2Nlc3NJY29uLmhpZGUoKTtcbiAgICAgICAgZmFpbHVyZUljb24uaGlkZSgpO1xuICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgIGJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgIGlmIChhY3Rpb25QZW5kaW5nKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgcGVuZGluZ0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgcGVuZGluZ0ljb24uaHRtbChcIlRlc3RpbmcgQ29ubmVjdGlvbiAuLi5cIik7XG4gICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiXCIpO1xuICAgICAgICAgICAgY29uc3QgeyBib2R5LCB1cmwgfSA9IGZ1bmMoKTtcbiAgICAgICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4eHhcIiwgYm9keSk7XG4gICAgICAgICAgICBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShib2R5KSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IGRhdGEuanNvbigpKVxuICAgICAgICAgICAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCBcIiBcIikpO1xuICAgICAgICAgICAgICAgIGlmIChqc29uLnJlc3VsdCA9PT0gXCJva1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGpzb24ubWVzc2FnZS5yZXBsYWNlKFwiXFxuXCIsIFwiPGJyPlwiKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG51bGwsIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQgPSAoc3RyKSA9PiAhc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gYDxwPiR7YX08L3A+YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQyID0gKHN0cikgPT4gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ci5tYXAoYWRhcHQpLmpvaW4oXCJcXG5cIikgOiBhZGFwdChzdHIpKTtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoYWRhcHQyKGpzb24ubWVzc2FnZSkgKyBhZGFwdDIoanNvbi5leHRyYSkpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChuZXcgRXJyb3IoanNvbi5yZXN1bHQpLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJpbnRlcm5hbCBlcnJvciBcIiArIGVyci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgIG9uUmVzdWx0KGVyciwgbnVsbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1DYWxsXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJjYWxsXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIGFjdGlvbjogeyB2YWx1ZTogXCJyZWFkXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIGNhbGxcbiAgICAgICAgICAgIG1ldGhvZElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgb2JqZWN0SWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQS1DYWxsXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIFNlY3Rpb24gQ2FsbFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIGxldCBkYXRhVHlwZXMgPSB7fTtcbiAgICAgICAgICAgIC8vIHRvIGRvIGFkZCBhIHR5cGVzY3JpcHQgZGVmaW5pdGlvbiBmb3IgdGhpc1xuICAgICAgICAgICAgY29uc3QgJG9iamVjdElkID0gJChcIiNub2RlLWlucHV0LW9iamVjdElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJG1ldGhvZElkID0gJChcIiNub2RlLWlucHV0LW1ldGhvZElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJGlucHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2QtaW5wdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24gPSAkKFwiI21ldGhvZC1vdXRwdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICR2YWxpZGF0ZUJ0biA9ICQoXCIjdmFsaWRhdGUtY2FsbC1hcmd1bWVudHMtYnV0dG9uXCIpO1xuICAgICAgICAgICAgJG9iamVjdElkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICRtZXRob2RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgcGFyZW50Tm9kZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmVlZCB0byByZXN5bmMgd2l0aCB3aGF0J3MgaW4gICNub2RlLWlucHV0LW9iamVjdElkXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVmZXJlbmNlID0gJG9iamVjdElkLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVJZEV4ID0gJG9iamVjdElkLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZHBvaW50Tm9kZSA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZW5kcG9pbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByID0geWllbGQgY2hlY2tOb2RlSWQoZGF0YSwgbm9kZUlkRXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2UgPSByLnJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sIGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiIHx8IG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG9iamVjdElkLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoXCJyZXNldFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZnVuY3Rpb24gYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaW5kZXgsIGFyZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSAkKCc8ZGl2IGNsYXNzPVwiYXJndW1lbnQtZW50cnlcIj4nKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lci5kYXRhKFwiZGF0YVwiLCBhcmcpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLm5hbWUgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjEwMCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZCA9IGRhdGFUeXBlc1thcmcuZGF0YVR5cGUudG9TdHJpbmcoKV07XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YVR5cGVOID0gKGQgPyBkLmJyb3dzZU5hbWUubmFtZSB8fCBcIlwiIDogYXJnLmRhdGFUeXBlLnRvU3RyaW5nKCkpICsgKGFyZy52YWx1ZVJhbmsgPT09IDEgPyBcIltdXCIgOiBcIlwiKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5kZXNjcmlwdGlvbi50ZXh0IHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI1MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhVHlwZU4gfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsT25BZGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaSwgb2JqZWN0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBpbnN0YWxsQXJndW1lbnRMaXN0KGxpc3QsIG1ldGhvZEFyZ3VtZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbEFyZ3VtZW50TGlzdFwiLCBtZXRob2RBcmd1bWVudHMubGVuZ3RoLCBcImFyZ3VtZW50c1wiLCBtZXRob2RBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGxpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZXRob2RBcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIG1ldGhvZEFyZ3VtZW50c1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmhpZGUoKTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgbGV0IGlucHV0QXNKc29uID0ge307XG4gICAgICAgICAgICBjb25zdCAkY29weUlucHV0ID0gJChcIiNjb3B5LWlucHV0XCIpO1xuICAgICAgICAgICAgJGNvcHlJbnB1dC5oaWRlKCk7XG4gICAgICAgICAgICAkY29weUlucHV0Lm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIENvcHkgdGhlIHRleHQgaW5zaWRlIHRoZSB0ZXh0IGZpZWxkXG4gICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSlNPTi5zdHJpbmdpZnkoaW5wdXRBc0pzb24pKTtcbiAgICAgICAgICAgICAgICAvLyBhbGVydChKU09OLnN0cmluZ2lmeShpbnB1dEFzSnNvbikgKyBcIiBjb3BpZWQgdG8gY2xpcGJvYXJkXCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBtYW5hZ2VBUElDYWxsKFwidmFsaWRhdGVcIiwgJHZhbGlkYXRlQnRuLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgIHVybDogXCIvb3BjdWEtZW5kcG9pbnQyL2FyZ3VtZW50RGVmaW5pdGlvblwiLFxuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMoKSxcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0SWQ6ICRvYmplY3RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kSWQ6ICRtZXRob2RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gcG9wdWxhdGUgdGhlIGxpc3RcbiAgICAgICAgICAgICAgICBjb25zdCBhcmd1bWVudERlZmluaXRpb24gPSBkYXRhLmFyZ3VtZW50RGVmaW5pdGlvbjtcbiAgICAgICAgICAgICAgICBkYXRhVHlwZXMgPSBkYXRhLmRhdGFUeXBlcztcbiAgICAgICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJGlucHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24uaW5wdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLm91dHB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgaW5wdXRBc0pzb24gPSBkYXRhLmlucHV0QXJndW1lbnRzRXhhbXBsZUFzSnNvbiB8fCB7fTtcbiAgICAgICAgICAgICAgICAkY29weUlucHV0LnNob3coKTtcbiAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeShpbnB1dEFzSnNvbikpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSlNPTlwiLCBKU09OLnN0cmluZ2lmeShpbnB1dEFzSnNvbikpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZGF0YVwiLCBkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
7
+ (function(_0x41a0f6,_0x202b45){const _0x1a5fed=_0x1d4a,_0x449ccb=_0x41a0f6();while(!![]){try{const _0xd65e5a=parseInt(_0x1a5fed(0x268))/0x1+-parseInt(_0x1a5fed(0x2b2))/0x2+parseInt(_0x1a5fed(0x22f))/0x3*(parseInt(_0x1a5fed(0x24c))/0x4)+-parseInt(_0x1a5fed(0x2c5))/0x5*(parseInt(_0x1a5fed(0x236))/0x6)+parseInt(_0x1a5fed(0x2d3))/0x7+-parseInt(_0x1a5fed(0x1fc))/0x8+parseInt(_0x1a5fed(0x2b3))/0x9*(parseInt(_0x1a5fed(0x255))/0xa);if(_0xd65e5a===_0x202b45)break;else _0x449ccb['push'](_0x449ccb['shift']());}catch(_0x369afb){_0x449ccb['push'](_0x449ccb['shift']());}}}(_0x8f47,0x66982),(function(){'use strict';const _0x27991e=_0x1d4a;function _0x41ebcb(_0x2ee0a7,_0x1d246a,_0x4a91ff,_0x35414){function _0x40435e(_0x164618){return _0x164618 instanceof _0x4a91ff?_0x164618:new _0x4a91ff(function(_0x295750){_0x295750(_0x164618);});}return new(_0x4a91ff||(_0x4a91ff=Promise))(function(_0x319452,_0x396997){const _0x5f01bd=_0x1d4a;function _0x55937a(_0x5bb3e3){const _0x266a9e=_0x1d4a;try{_0x3a8a00(_0x35414[_0x266a9e(0x283)](_0x5bb3e3));}catch(_0x4b2cd6){_0x396997(_0x4b2cd6);}}function _0x5bae15(_0x4afe88){const _0x13511a=_0x1d4a;try{_0x3a8a00(_0x35414[_0x13511a(0x230)](_0x4afe88));}catch(_0x2a31b8){_0x396997(_0x2a31b8);}}function _0x3a8a00(_0x19585f){const _0x2174e6=_0x1d4a;_0x19585f[_0x2174e6(0x2b9)]?_0x319452(_0x19585f[_0x2174e6(0x207)]):_0x40435e(_0x19585f[_0x2174e6(0x207)])[_0x2174e6(0x26f)](_0x55937a,_0x5bae15);}_0x3a8a00((_0x35414=_0x35414[_0x5f01bd(0x22c)](_0x2ee0a7,_0x1d246a||[]))[_0x5f01bd(0x283)]());});}typeof SuppressedError===_0x27991e(0x257)?SuppressedError:function(_0x59d536,_0x46b19d,_0x4a2b51){const _0x213d37=_0x27991e;var _0x3f8115=new Error(_0x4a2b51);return _0x3f8115[_0x213d37(0x244)]='SuppressedError',_0x3f8115['error']=_0x59d536,_0x3f8115[_0x213d37(0x206)]=_0x46b19d,_0x3f8115;};const _0x2389e0=_0x27991e(0x26d),_0x2aa9dc=_0x27991e(0x2a1),_0x54cab3=_0x27991e(0x2bc),_0x508370=_0x27991e(0x251),_0x5802be=_0x27991e(0x291),_0x249dd8='ns=0;i=45',_0x5d7f02='ns=0;i=40';var _0x545b9c;(function(_0x350f65){const _0xd54d37=_0x27991e;_0x350f65[_0x350f65[_0xd54d37(0x2a2)]=0x0]=_0xd54d37(0x2a2),_0x350f65[_0x350f65[_0xd54d37(0x2d5)]=0x1]=_0xd54d37(0x2d5),_0x350f65[_0x350f65[_0xd54d37(0x2ab)]=0x2]='Both',_0x350f65[_0x350f65[_0xd54d37(0x213)]=0x3]=_0xd54d37(0x213);}(_0x545b9c||(_0x545b9c={})));var _0x5427df;(function(_0x2c506b){const _0x30930f=_0x27991e;_0x2c506b[_0x2c506b[_0x30930f(0x27c)]=0x0]=_0x30930f(0x27c),_0x2c506b[_0x2c506b[_0x30930f(0x20b)]=0x1]=_0x30930f(0x20b),_0x2c506b[_0x2c506b[_0x30930f(0x26b)]=0x2]='Variable',_0x2c506b[_0x2c506b[_0x30930f(0x200)]=0x4]='Method',_0x2c506b[_0x2c506b[_0x30930f(0x1fe)]=0x8]=_0x30930f(0x1fe),_0x2c506b[_0x2c506b[_0x30930f(0x210)]=0x10]=_0x30930f(0x210),_0x2c506b[_0x2c506b['ReferenceType']=0x20]='ReferenceType',_0x2c506b[_0x2c506b[_0x30930f(0x202)]=0x40]='DataType',_0x2c506b[_0x2c506b[_0x30930f(0x23d)]=0x80]=_0x30930f(0x23d);}(_0x5427df||(_0x5427df={})));var _0x5194df;(function(_0x250c52){const _0x18bc5b=_0x27991e;_0x250c52[_0x250c52[_0x18bc5b(0x20b)]=0x1]=_0x18bc5b(0x20b),_0x250c52[_0x250c52[_0x18bc5b(0x26b)]=0x2]=_0x18bc5b(0x26b),_0x250c52[_0x250c52[_0x18bc5b(0x200)]=0x4]=_0x18bc5b(0x200),_0x250c52[_0x250c52[_0x18bc5b(0x1fe)]=0x8]=_0x18bc5b(0x1fe),_0x250c52[_0x250c52[_0x18bc5b(0x210)]=0x10]=_0x18bc5b(0x210),_0x250c52[_0x250c52['ReferenceType']=0x20]=_0x18bc5b(0x2cd),_0x250c52[_0x250c52[_0x18bc5b(0x202)]=0x40]='DataType',_0x250c52[_0x250c52[_0x18bc5b(0x23d)]=0x80]=_0x18bc5b(0x23d);}(_0x5194df||(_0x5194df={})));var _0x4842a0;(function(_0x4ab521){const _0x4b8fb8=_0x27991e;_0x4ab521[_0x4ab521[_0x4b8fb8(0x2cd)]=0x1]=_0x4b8fb8(0x2cd),_0x4ab521[_0x4ab521[_0x4b8fb8(0x25d)]=0x2]=_0x4b8fb8(0x25d),_0x4ab521[_0x4ab521[_0x4b8fb8(0x1f6)]=0x4]=_0x4b8fb8(0x1f6),_0x4ab521[_0x4ab521[_0x4b8fb8(0x299)]=0x8]='BrowseName',_0x4ab521[_0x4ab521[_0x4b8fb8(0x2ca)]=0x10]='DisplayName',_0x4ab521[_0x4ab521['TypeDefinition']=0x20]=_0x4b8fb8(0x2d4);}(_0x4842a0||(_0x4842a0={})));function _0xc284d1(_0x5e876e){const _0x595324=_0x27991e;switch(_0x5e876e){case _0x595324(0x248):return _0x2389e0;case _0x595324(0x2a0):return _0x508370;case _0x595324(0x219):return _0x54cab3;case _0x595324(0x1fa):return _0x5802be;case'HasSubtype':return _0x249dd8;case'HasTypeDefinition':return _0x5d7f02;}}const _0x5be292=_0x349b25=>{const _0x16b82a=_0x27991e;switch(_0x349b25[_0x16b82a(0x267)]){case _0x16b82a(0x20b):if(_0x349b25[_0x16b82a(0x1f3)]===_0x2389e0);if(_0x349b25[_0x16b82a(0x256)]===_0x2aa9dc||_0x349b25[_0x16b82a(0x1f3)]==='i=61')return{'icon':_0x16b82a(0x28b),'color':_0x16b82a(0x293)};return{'icon':_0x16b82a(0x274),'color':_0x16b82a(0x2a3)};case'Variable':if(_0x349b25[_0x16b82a(0x1f3)]===_0x54cab3)return{'icon':_0x16b82a(0x253),'color':_0x16b82a(0x273)};else return _0x349b25[_0x16b82a(0x1f3)]===_0x508370?{'icon':_0x16b82a(0x253),'color':_0x16b82a(0x203)}:{'icon':_0x16b82a(0x253),'color':_0x16b82a(0x297)};case _0x16b82a(0x200):return{'icon':_0x16b82a(0x20c),'color':_0x16b82a(0x29a)};case'ObjectType':return{'icon':'fa-object-group','color':_0x16b82a(0x2c6)};case _0x16b82a(0x210):return{'icon':'fa-sliders','color':_0x16b82a(0x2c6)};case _0x16b82a(0x202):return{'icon':_0x16b82a(0x23e),'color':_0x16b82a(0x297)};}return{'icon':_0x16b82a(0x258),'color':_0x16b82a(0x276)};},_0x317379=({endpointNode:_0x3a8e71,endpoint:_0x361917,baseUrl:_0x5195bf},_0x19aabd,_0x2a69c4)=>_0x41ebcb(void 0x0,void 0x0,void 0x0,function*(){const _0x359466=_0x27991e,_0x5e9fb5=_0x5195bf+_0x359466(0x1ff),_0x228d3e=_0x5e9fb5+_0x359466(0x20f),_0x1108ab=Object[_0x359466(0x27a)](Object['assign']({},_0x2a69c4),{'nodeId':_0x19aabd,'resultMask':0x3f}),_0x2fe2a6=yield fetch(_0x228d3e,{'method':'POST','body':JSON[_0x359466(0x243)]({'endpointNode':_0x3a8e71,'endpoint':_0x361917,'browseDescription':_0x1108ab}),'headers':{'Content-Type':_0x359466(0x28a)}});if(_0x2fe2a6['status']!==0xc8)return console[_0x359466(0x242)](_0x359466(0x254),_0x2fe2a6['status'],_0x2fe2a6[_0x359466(0x27b)]),{'references':[]};const _0x2c0463=yield _0x2fe2a6[_0x359466(0x2af)](),_0x95987a=_0x2c0463[_0x359466(0x278)][_0x359466(0x29c)]||[];return{'references':_0x95987a};}),_0x5eb4ae={'referenceTypeId':_0xc284d1(_0x27991e(0x1fa)),'includeSubtypes':!![],'browseDirection':_0x545b9c[_0x27991e(0x2a2)],'nodeClassMask':_0x5427df[_0x27991e(0x26b)]|_0x5427df[_0x27991e(0x20b)]|_0x5427df['Method'],'resultMask':0x3f},_0x416ad0={'referenceTypeId':_0xc284d1(_0x27991e(0x248)),'includeSubtypes':!![],'browseDirection':_0x545b9c['Forward'],'nodeClassMask':_0x5427df['Variable']|_0x5427df[_0x27991e(0x20b)]|_0x5427df[_0x27991e(0x200)],'resultMask':0x3f},_0x267d27=({endpointNode:_0x3a7350,endpoint:_0x2a126f,baseUrl:_0x221ffe},{nodeId:_0x3d9b29,rootNodeId:_0x497b2b,isType:_0x162dfc})=>_0x41ebcb(void 0x0,void 0x0,void 0x0,function*(){const _0x59806f=_0x27991e,_0x56e009=_0x221ffe+_0x59806f(0x1ff),_0x161a87=_0x56e009+_0x59806f(0x2d0),_0x33da8d=yield fetch(_0x161a87,{'method':_0x59806f(0x20a),'body':JSON['stringify']({'endpointNode':_0x3a7350,'endpoint':_0x2a126f,'nodeId':_0x3d9b29,'rootNodeId':_0x497b2b,'isType':_0x162dfc}),'headers':{'Content-Type':_0x59806f(0x28a)}});if(_0x33da8d[_0x59806f(0x229)]!==0xc8)return null;const _0x5b3f91=yield _0x33da8d['json']();return _0x5b3f91[_0x59806f(0x2bd)];}),_0x232e98=({endpointNode:_0x1ea9c6,endpoint:_0x525dfe,baseUrl:_0x1f65ae},_0x21b10b,_0x32a9f0)=>_0x41ebcb(void 0x0,void 0x0,void 0x0,function*(){const _0x4f83d4=_0x27991e,_0x22dae4=_0x1f65ae+_0x4f83d4(0x1ff),_0x21e734=_0x22dae4+_0x4f83d4(0x2c7),_0xabc6eb=_0x21b10b[_0x4f83d4(0x221)](),_0x76f7b4=yield fetch(_0x21e734,{'method':_0x4f83d4(0x20a),'body':JSON[_0x4f83d4(0x243)]({'endpointNode':_0x1ea9c6,'endpoint':_0x525dfe,'nodeId':_0xabc6eb}),'headers':{'Content-Type':'application/json'}}),_0xd9aba3=(_0x4158c7,_0xa5e0f5)=>{const _0x56be37=_0x4f83d4;_0x32a9f0[_0x56be37(0x2b1)](_0x4158c7)[_0x56be37(0x26a)](_0x56be37(0x25a))[_0x56be37(0x26a)](_0xa5e0f5),_0x32a9f0[_0x56be37(0x237)](),setTimeout(()=>{const _0x238831=_0x56be37;_0x32a9f0[_0x238831(0x2ce)](_0xa5e0f5),_0x32a9f0[_0x238831(0x211)]();},0xbb8);},_0x27a519=yield _0x76f7b4['json']();_0x76f7b4[_0x4f83d4(0x229)]!==0xc8?_0xd9aba3(_0x4f83d4(0x1f7)+_0xabc6eb,'failure'):_0x27a519[_0x4f83d4(0x2d1)]['match'](/Good/)?(_0x21b10b['val'](_0x27a519['nodeAddressString']),_0x21b10b[_0x4f83d4(0x265)](_0x4f83d4(0x2b6)),_0xd9aba3('Good','ok')):(_0x21b10b[_0x4f83d4(0x221)](''+_0xabc6eb),_0xd9aba3(_0x27a519[_0x4f83d4(0x2d1)]+'\x20'+_0x76f7b4[_0x4f83d4(0x27b)],_0x4f83d4(0x231)));});function _0x3b82b2(_0x3e6b4d,_0x1d6256){return _0x41ebcb(this,void 0x0,void 0x0,function*(){const _0x168b17=_0x1d4a,_0x4b1d73=_0x3e6b4d[_0x168b17(0x24d)](_0x168b17(0x207)),_0x355a8c=yield _0x317379(_0x1d6256,_0x4b1d73,_0x5eb4ae),_0x13e13b=yield _0x317379(_0x1d6256,_0x4b1d73,_0x416ad0);return{'references':[..._0x355a8c[_0x168b17(0x29c)],..._0x13e13b['references']]};});}const _0x190330={'referenceTypeId':_0xc284d1(_0x27991e(0x27d)),'includeSubtypes':!![],'browseDirection':_0x545b9c[_0x27991e(0x2a2)],'nodeClassMask':_0x5427df[_0x27991e(0x2cd)]|_0x5427df[_0x27991e(0x1fe)]|_0x5427df[_0x27991e(0x202)]|_0x5427df[_0x27991e(0x210)],'resultMask':0x3f};function _0x3cdd58(_0x5f54e8,_0x23f580){return _0x41ebcb(this,void 0x0,void 0x0,function*(){const _0x53de6b=_0x1d4a,_0x1b55a3=_0x5f54e8[_0x53de6b(0x24d)]('value'),_0x16ef0b=yield _0x317379(_0x23f580,_0x1b55a3,_0x190330);return _0x16ef0b;});}const _0x48687b=_0x286ff5=>{const _0x276fdc=_0x27991e;var _0x59390a,_0x42dcc2,_0x169512,_0x415d22;if(!_0x286ff5||!_0x286ff5[_0x276fdc(0x286)]){const _0x593507=$(_0x276fdc(0x2b4));return _0x593507;}const _0x3b391b=_0x286ff5[_0x276fdc(0x286)]['toString'](),_0x53bc08=((_0x59390a=_0x286ff5[_0x276fdc(0x259)])===null||_0x59390a===void 0x0?void 0x0:_0x59390a[_0x276fdc(0x2b1)])||((_0x42dcc2=_0x286ff5[_0x276fdc(0x27f)])===null||_0x42dcc2===void 0x0?void 0x0:_0x42dcc2[_0x276fdc(0x244)])||_0x286ff5[_0x276fdc(0x286)]['toString'](),{icon:_0x3b32d7,color:_0x1a32a6}=_0x5be292(_0x286ff5),_0x8153ad='('+_0x286ff5[_0x276fdc(0x286)][_0x276fdc(0x21b)]()+')\x20'+(((_0x169512=_0x286ff5['browseName'])===null||_0x169512===void 0x0?void 0x0:_0x169512['name'])||((_0x415d22=_0x286ff5[_0x276fdc(0x259)])===null||_0x415d22===void 0x0?void 0x0:_0x415d22[_0x276fdc(0x2b1)])||''),_0x25ce57=$(_0x276fdc(0x292)+_0x286ff5[_0x276fdc(0x286)][_0x276fdc(0x21b)]()+_0x276fdc(0x1f8)+_0x8153ad+_0x276fdc(0x225)+_0x3b32d7+_0x276fdc(0x2a6)+_0x1a32a6+';\x22></i>\x20'+_0x53bc08+_0x276fdc(0x1f9));return _0x25ce57[_0x276fdc(0x26a)](_0x276fdc(0x264)),_0x25ce57[_0x276fdc(0x24d)]('value',_0x3b391b),_0x25ce57[_0x276fdc(0x24d)](_0x276fdc(0x296),_0x286ff5),_0x25ce57;},_0x1b47c9=(_0x1ce42f,_0x3704ed)=>{const _0x192ef9=_0x27991e;return _0x3704ed[_0x192ef9(0x2d2)](_0x192ef9(0x26c)+_0x1ce42f+'\x22]');},_0x31fe61=(_0x319a33,_0x35f71)=>{const _0x4daf49=_0x27991e;_0x319a33[_0x4daf49(0x2ba)][_0x4daf49(0x2d2)](_0x4daf49(0x20e))[_0x4daf49(0x2ce)](_0x4daf49(0x204)),_0x35f71[_0x4daf49(0x2d2)](_0x4daf49(0x2a5))['addClass'](_0x4daf49(0x204));},_0x4a844a=(_0x5dbb72,_0xf733b5,_0x29019d)=>_0x41ebcb(void 0x0,void 0x0,void 0x0,function*(){const _0x21cffc=_0x27991e;let _0x9c0bcf=_0x29019d['children'](_0x21cffc(0x2bf));_0xf733b5['relativePath'][_0x21cffc(0x209)]||[];const _0x9c230b=_0xf733b5[_0x21cffc(0x2bb)]||[];if(_0x9c230b[_0x21cffc(0x29d)]===0x0)return;for(const _0x4f8706 of _0x9c230b){_0x9c0bcf[_0x21cffc(0x2a9)](_0x21cffc(0x264))&&(yield _0x5e057f(_0x5dbb72,_0x9c0bcf));const _0x390f8f=_0x1b47c9(_0x4f8706,_0x9c0bcf);if(_0x390f8f['length']===0x0)return;_0x9c0bcf=_0x390f8f;}_0x31fe61(_0x5dbb72,_0x9c0bcf),_0x1bb0d9(_0x5dbb72['$dropdown'],_0x9c0bcf);});function _0x1bb0d9(_0x2c72c8,_0x560dca){const _0xf801=_0x27991e,_0x42e33f=_0x560dca[_0xf801(0x223)]()[_0xf801(0x208)],_0xe2e45f=_0x2c72c8[_0xf801(0x261)]();if(_0xe2e45f==undefined)return;const _0x3b6530=_0xe2e45f+_0x42e33f-_0x2c72c8[_0xf801(0x295)]()/0x2+_0x560dca[_0xf801(0x295)]()/0x2;_0x2c72c8[_0xf801(0x2c3)]({'scrollTop':_0x3b6530},0x1f4);}const _0x7c4798=(_0x822853,_0x52fbe8)=>_0x41ebcb(void 0x0,void 0x0,void 0x0,function*(){const _0x36bc4c=_0x27991e,_0x174b0d=_0x822853[_0x36bc4c(0x2c9)][_0x36bc4c(0x221)](),_0x27f8d3={'nodeId':_0x174b0d,'rootNodeId':_0x52fbe8[_0x36bc4c(0x286)],'isType':_0x822853[_0x36bc4c(0x279)][_0x36bc4c(0x224)]||![]},_0x2f276a=_0x5c5810(_0x822853),_0x1a345c=yield _0x267d27(_0x2f276a,_0x27f8d3);if(!_0x1a345c)return;yield _0x4a844a(_0x822853,_0x1a345c,_0x822853[_0x36bc4c(0x2ba)]);});function _0x56034f(_0x50fe19,_0x942e44,_0x5bde1e,_0x3d6b51){return _0x41ebcb(this,void 0x0,void 0x0,function*(){const _0x264108=_0x1d4a;if(_0x942e44[_0x264108(0x2a9)]('fetched')){console[_0x264108(0x242)](_0x264108(0x20d));return;}if(_0x942e44[_0x264108(0x2a9)](_0x264108(0x21c))){console[_0x264108(0x242)](_0x264108(0x217));return;}_0x942e44[_0x264108(0x26a)](_0x264108(0x21c)),_0x942e44[_0x264108(0x2ac)](_0x264108(0x214));try{_0x942e44[_0x264108(0x294)]('ul')[_0x264108(0x2be)]();const {references:_0x47d4e8}=yield _0x5bde1e(_0x942e44,_0x3d6b51);for(const _0x298c9d of _0x47d4e8){if(_0x50fe19[_0x264108(0x279)][_0x264108(0x2ad)]&&!_0x50fe19[_0x264108(0x279)][_0x264108(0x2ad)](_0x298c9d))continue;const _0x449dd2=_0x48687b(_0x298c9d);_0x942e44[_0x264108(0x294)]('ul')[_0x264108(0x2ac)](_0x449dd2);}_0x942e44[_0x264108(0x26a)](_0x264108(0x238));}catch(_0x257257){_0x942e44[_0x264108(0x294)]('ul')[_0x264108(0x2ac)](_0x264108(0x21f)+_0x257257[_0x264108(0x2aa)]+_0x264108(0x201)),console[_0x264108(0x242)](_0x264108(0x226),_0x257257);}_0x942e44[_0x264108(0x2d2)](_0x264108(0x22e))[_0x264108(0x284)](),_0x942e44[_0x264108(0x2ce)]('loading');});}function _0x5c5810(_0x8b768b){const _0x1d960a=_0x27991e,_0x5741a0={'baseUrl':_0x8b768b[_0x1d960a(0x279)][_0x1d960a(0x2a4)],'endpointNode':typeof _0x8b768b[_0x1d960a(0x279)][_0x1d960a(0x262)]===_0x1d960a(0x257)?_0x8b768b[_0x1d960a(0x279)]['endpointNode']():_0x8b768b[_0x1d960a(0x279)]['endpointNode'],'endpoint':typeof _0x8b768b['options'][_0x1d960a(0x271)]===_0x1d960a(0x257)?_0x8b768b[_0x1d960a(0x279)]['endpoint']():_0x8b768b[_0x1d960a(0x279)][_0x1d960a(0x271)]};return _0x5741a0;}function _0x5e057f(_0x1494ca,_0x1d4d17){return _0x41ebcb(this,void 0x0,void 0x0,function*(){const _0x350bf1=_0x1d4a;if(_0x1d4d17[_0x350bf1(0x2a9)](_0x350bf1(0x238))){_0x1d4d17[_0x350bf1(0x2ce)](_0x350bf1(0x264))[_0x350bf1(0x26a)](_0x350bf1(0x220)),_0x1d4d17['children']('ul')[_0x350bf1(0x22a)]();return;}const _0x4fa7b9=_0x5c5810(_0x1494ca),_0x2e1eee=!_0x1494ca[_0x350bf1(0x279)][_0x350bf1(0x224)]?_0x3b82b2:_0x3cdd58;try{yield _0x56034f(_0x1494ca,_0x1d4d17,_0x2e1eee,_0x4fa7b9),_0x1d4d17[_0x350bf1(0x2ce)](_0x350bf1(0x264))['addClass'](_0x350bf1(0x220));}catch(_0x14a7cf){_0x1d4d17[_0x350bf1(0x2ce)](_0x350bf1(0x264))['addClass']('expanded'),console[_0x350bf1(0x242)](_0x350bf1(0x263),_0x14a7cf);}});}const _0x59706d=()=>{const _0x43330f=_0x27991e;$['widget']('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':_0x43330f(0x246)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x43330f(0x252)},'nodeClass':'Object','nodeId':_0x43330f(0x2c0),'displayName':{'text':_0x43330f(0x252)},'typeDefinition':_0x2aa9dc}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x41ebcb(this,void 0x0,void 0x0,function*(){const _0x1f177a=_0x1d4a,_0x125fa3=this;if(!_0x125fa3[_0x1f177a(0x23c)]){const _0x22a4a1=typeof _0x125fa3[_0x1f177a(0x279)][_0x1f177a(0x240)]===_0x1f177a(0x257)?_0x125fa3[_0x1f177a(0x279)]['parentNode'][_0x1f177a(0x22b)](_0x125fa3):_0x125fa3[_0x1f177a(0x279)][_0x1f177a(0x240)];if(_0x22a4a1 instanceof Promise){const _0x1bab28=yield _0x22a4a1;_0x125fa3['__parentNode']=_0x1bab28;}else _0x125fa3['__parentNode']=_0x22a4a1;}return _0x125fa3[_0x1f177a(0x23c)];});},'reset'(){return _0x41ebcb(this,void 0x0,void 0x0,function*(){const _0x293d53=_0x1d4a,_0x1c7882=this,_0x5b5c8c=_0x1c7882;_0x5b5c8c[_0x293d53(0x23c)]=undefined,_0x1c7882['$tree']['empty']();const _0x1e4490=yield this[_0x293d53(0x281)](),_0x112320=_0x48687b(_0x1e4490);_0x1c7882[_0x293d53(0x2ba)][_0x293d53(0x2ac)](_0x112320),_0x1c7882['currentParent']=_0x1e4490;});},'verify'(){const _0x194dad=_0x43330f,_0x126e7d=this,_0x5e2fc5=_0x5c5810(_0x126e7d);_0x232e98(_0x5e2fc5,_0x126e7d[_0x194dad(0x2c9)],_0x126e7d[_0x194dad(0x23a)]);},'_create'(){const _0x25df0f=_0x43330f,_0x453e21=this;_0x453e21['$input']=this[_0x25df0f(0x21a)],_0x453e21[_0x25df0f(0x28c)]=$(_0x25df0f(0x227)),_0x453e21[_0x25df0f(0x28c)][_0x25df0f(0x26a)](_0x25df0f(0x23b)),this[_0x25df0f(0x21a)]['replaceWith'](_0x453e21['$combo']),_0x453e21[_0x25df0f(0x277)]=$(_0x25df0f(0x227))['addClass'](_0x25df0f(0x2c8)),_0x453e21[_0x25df0f(0x28c)][_0x25df0f(0x2ac)](_0x453e21[_0x25df0f(0x277)]),_0x453e21[_0x25df0f(0x277)]['append'](_0x453e21[_0x25df0f(0x2c9)]),_0x453e21[_0x25df0f(0x21d)]=$(_0x25df0f(0x233)),_0x453e21[_0x25df0f(0x277)][_0x25df0f(0x2ac)](_0x453e21['$toggleTreeBtn']),_0x453e21[_0x25df0f(0x21d)]['on']('click',function(){var _0x3c4fb1;return _0x41ebcb(this,void 0x0,void 0x0,function*(){const _0x5a8f86=_0x1d4a;let _0x75c708=![],_0x284751;!_0x453e21['$dropdown']['is'](_0x5a8f86(0x2b8))&&(_0x453e21[_0x5a8f86(0x23a)][_0x5a8f86(0x211)](),_0x284751=yield _0x453e21[_0x5a8f86(0x281)](),(_0x284751!==_0x453e21[_0x5a8f86(0x29f)]||((_0x3c4fb1=_0x453e21[_0x5a8f86(0x29f)])===null||_0x3c4fb1===void 0x0?void 0x0:_0x3c4fb1[_0x5a8f86(0x286)])!==_0x284751[_0x5a8f86(0x286)])&&(yield _0x453e21[_0x5a8f86(0x2cf)]()),_0x75c708=!![]),_0x453e21[_0x5a8f86(0x2ae)]['toggle'](),_0x75c708&&(yield _0x7c4798(_0x453e21,_0x284751));});}),_0x453e21['$verifyBtn']=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x453e21[_0x25df0f(0x277)][_0x25df0f(0x2ac)](_0x453e21['$verifyBtn']),_0x453e21[_0x25df0f(0x275)]['on'](_0x25df0f(0x272),()=>{const _0x1522e3=_0x25df0f;this[_0x1522e3(0x1fd)]();});!_0x453e21[_0x25df0f(0x2c9)][_0x25df0f(0x2b7)](_0x25df0f(0x25e))&&_0x453e21['$input'][_0x25df0f(0x2b7)](_0x25df0f(0x25e),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x453e21[_0x25df0f(0x23a)]=$(_0x25df0f(0x2c4)),_0x453e21['$info']['hide'](),_0x453e21[_0x25df0f(0x2ae)]=$(_0x25df0f(0x227))[_0x25df0f(0x26a)]('sterfive-dropdown')['hide'](),_0x453e21['$combo'][_0x25df0f(0x2ac)](_0x453e21[_0x25df0f(0x23a)]),_0x453e21[_0x25df0f(0x28c)]['append'](_0x453e21['$dropdown']),_0x453e21['$tree']=$(_0x25df0f(0x24e))['appendTo'](_0x453e21[_0x25df0f(0x2ae)]),this['reset']();const _0x126ae6=(_0x48e460,_0x2d9c72)=>{const _0x215940=_0x25df0f,_0x39a604=0x14,_0x58f24e=0x14,_0x585601=_0x48e460[_0x215940(0x287)](),_0x27adc2=_0x2d9c72;if(_0x27adc2['pageX']>=_0x585601[_0x215940(0x2b5)]&&_0x27adc2[_0x215940(0x289)]<=_0x585601[_0x215940(0x2b5)]+_0x39a604&&_0x27adc2[_0x215940(0x222)]>=_0x585601[_0x215940(0x208)]&&_0x27adc2[_0x215940(0x222)]<=_0x585601['top']+_0x58f24e)return!![];return![];},_0x1f0f97=_0x5d61d0=>_0x41ebcb(this,void 0x0,void 0x0,function*(){const _0x50c25f=_0x25df0f;if(_0x5d61d0[_0x50c25f(0x2a9)](_0x50c25f(0x264)))_0x5e057f(_0x453e21,_0x5d61d0);else{if(_0x5d61d0[_0x50c25f(0x2a9)](_0x50c25f(0x220)))_0x5d61d0['children']('ul')[_0x50c25f(0x22a)](),_0x5d61d0[_0x50c25f(0x26e)](_0x50c25f(0x247));else{if(_0x5d61d0[_0x50c25f(0x294)]('ul')[_0x50c25f(0x294)]()[_0x50c25f(0x29d)]>0x0)_0x5d61d0['children']('ul')[_0x50c25f(0x22a)](),_0x5d61d0[_0x50c25f(0x26e)](_0x50c25f(0x247));else;}}});_0x453e21['$tree']['on']('dblclick','li',function(_0x597418){const _0x230f81=_0x25df0f;var _0x5785d4,_0x20b8d0;_0x597418[_0x230f81(0x24f)]();let _0x5c0a66=$(this);if(_0x126ae6(_0x5c0a66,_0x597418))_0x1f0f97(_0x5c0a66);else{const _0x2de7fe=_0x5c0a66[_0x230f81(0x24d)](_0x230f81(0x207)),_0x24e248=_0x5c0a66[_0x230f81(0x24d)](_0x230f81(0x296));if(_0x453e21[_0x230f81(0x279)][_0x230f81(0x28d)]&&!_0x453e21[_0x230f81(0x279)][_0x230f81(0x28d)](_0x24e248))return;_0x453e21[_0x230f81(0x2c9)]['data']('reference',_0x24e248);const _0x29cac2=((_0x5785d4=_0x24e248[_0x230f81(0x259)])===null||_0x5785d4===void 0x0?void 0x0:_0x5785d4[_0x230f81(0x2b1)])||((_0x20b8d0=_0x24e248[_0x230f81(0x27f)])===null||_0x20b8d0===void 0x0?void 0x0:_0x20b8d0[_0x230f81(0x244)])||_0x24e248[_0x230f81(0x286)][_0x230f81(0x21b)](),_0x1e4346='['+_0x29cac2+']('+_0x2de7fe+')';_0x453e21[_0x230f81(0x2c9)][_0x230f81(0x221)](_0x1e4346),_0x453e21['$input']['trigger'](_0x230f81(0x2b6)),_0x453e21['$dropdown']['hide']();}}),_0x453e21[_0x25df0f(0x2ba)]['on'](_0x25df0f(0x272),'li',function(_0x4f20f5){const _0x45b05b=_0x25df0f;_0x4f20f5[_0x45b05b(0x24f)]();let _0x1b6efa=$(this);_0x126ae6(_0x1b6efa,_0x4f20f5)&&_0x1f0f97(_0x1b6efa),_0x31fe61(_0x453e21,_0x1b6efa);}),$(document)['on'](_0x25df0f(0x272),function(_0x5cca97){const _0x253a28=_0x25df0f;!$(_0x5cca97['target'])[_0x253a28(0x288)](_0x453e21[_0x253a28(0x28c)])['length']&&_0x453e21[_0x253a28(0x2ae)][_0x253a28(0x211)]();});}});},_0x4a9ccf=({endpointNode:_0x4b96e4,endpoint:_0x20a069,baseUrl:_0x2f2c2b},_0x22bf28)=>_0x41ebcb(void 0x0,void 0x0,void 0x0,function*(){const _0x44e525=_0x27991e,_0x595d2e=_0x2f2c2b+'/opcua-endpoint2',_0x4f7153=_0x595d2e+_0x44e525(0x2c7),_0x406b0e=yield fetch(_0x4f7153,{'method':_0x44e525(0x20a),'body':JSON[_0x44e525(0x243)]({'endpointNode':_0x4b96e4,'endpoint':_0x20a069,'nodeId':_0x22bf28}),'headers':{'Content-Type':_0x44e525(0x28a)}});if(_0x406b0e['status']!==0xc8){console[_0x44e525(0x242)]('fetching\x20failed\x20with\x20error',_0x406b0e[_0x44e525(0x229)],_0x406b0e[_0x44e525(0x27b)]);const _0x3f366b={'statusCode':'Bad','nodeAddressString':_0x22bf28};return _0x3f366b;}console[_0x44e525(0x242)](_0x44e525(0x280),_0x406b0e[_0x44e525(0x229)],_0x406b0e[_0x44e525(0x27b)]);const _0x193d15=yield _0x406b0e[_0x44e525(0x2af)]();return _0x193d15;});function _0x4b7d57(_0xb41431,_0x3026fc,_0x36b6ea,_0x1e8406){const _0x362986=_0x27991e,_0x34a847=$('#'+_0xb41431+'-success'),_0x34dcf0=$('#'+_0xb41431+_0x362986(0x2cc)),_0x292bc5=$('#'+_0xb41431+'-pending'),_0x64d5a3=$('#'+_0xb41431+_0x362986(0x228));let _0xe71067=![];_0x34a847[_0x362986(0x211)](),_0x34dcf0[_0x362986(0x211)](),_0x292bc5[_0x362986(0x211)](),_0x3026fc['on']('click',()=>{const _0x5f3a48=_0x362986;if(_0xe71067)return;_0xe71067=!![],_0x292bc5[_0x5f3a48(0x2ce)]('hide'),_0x292bc5[_0x5f3a48(0x29e)]('Testing\x20Connection\x20...'),_0x34a847['addClass'](_0x5f3a48(0x211)),_0x34dcf0[_0x5f3a48(0x26a)](_0x5f3a48(0x211)),_0x64d5a3[_0x5f3a48(0x29e)]('');const {body:_0x5db28c,url:_0x33f109}=_0x36b6ea();fetch(_0x33f109,{'method':_0x5f3a48(0x20a),'headers':{'Content-Type':_0x5f3a48(0x28a)},'body':JSON[_0x5f3a48(0x243)](_0x5db28c)})[_0x5f3a48(0x26f)](_0x4891a5=>_0x4891a5[_0x5f3a48(0x2af)]())[_0x5f3a48(0x26f)](_0x3fbd74=>{const _0x243bbb=_0x5f3a48;_0xe71067=![],_0x292bc5[_0x243bbb(0x211)](),console[_0x243bbb(0x242)](JSON['stringify'](_0x3fbd74,null,'\x20'));if(_0x3fbd74['result']==='ok')_0x34a847['removeClass']('hide'),_0x34dcf0[_0x243bbb(0x26a)](_0x243bbb(0x211)),_0x64d5a3[_0x243bbb(0x29e)](_0x3fbd74['message'][_0x243bbb(0x2b0)]('\x0a',_0x243bbb(0x285))),_0x1e8406(null,_0x3fbd74);else{const _0x7ff287=_0x20b042=>!_0x20b042?'':_0x20b042[_0x243bbb(0x27e)]('\x0a')[_0x243bbb(0x29b)](_0x15dd02=>_0x243bbb(0x2c1)+_0x15dd02+_0x243bbb(0x245))[_0x243bbb(0x260)]('\x0a'),_0xeb7f=_0x2660ac=>Array[_0x243bbb(0x270)](_0x2660ac)?_0x2660ac['map'](_0x7ff287)[_0x243bbb(0x260)]('\x0a'):_0x7ff287(_0x2660ac);_0x34a847['addClass'](_0x243bbb(0x211)),_0x34dcf0[_0x243bbb(0x2ce)](_0x243bbb(0x211)),_0x64d5a3[_0x243bbb(0x29e)](_0xeb7f(_0x3fbd74[_0x243bbb(0x2aa)])+_0xeb7f(_0x3fbd74['extra'])),_0x1e8406(new Error(_0x3fbd74[_0x243bbb(0x241)]),_0x3fbd74);}})[_0x5f3a48(0x234)](_0x49f261=>{const _0x33f38d=_0x5f3a48;_0xe71067=![],_0x292bc5['addClass']('hide'),_0x34a847['addClass']('hide'),_0x34dcf0[_0x33f38d(0x2ce)](_0x33f38d(0x211)),_0x64d5a3[_0x33f38d(0x29e)](_0x33f38d(0x24b)+_0x49f261[_0x33f38d(0x2aa)]),console['log'](_0x33f38d(0x226),_0x49f261),_0x1e8406(_0x49f261,null);});});}const _0x26d0ef=()=>{const _0x24ae58=_0x27991e,_0x1a475d=$(_0x24ae58(0x28f)),_0x4a1be5=_0x1a475d[_0x24ae58(0x221)](),_0x55284c=RED['nodes'][_0x24ae58(0x232)](_0x4a1be5);if(!_0x55284c)return undefined;const {endpoint:_0x3ccfd9,securityMode:_0x675178,securityPolicy:_0x5231b2,userIdentityType:_0x220962,credentials:_0x519137}=_0x55284c,_0x119690={'endpoint':_0x3ccfd9,'securityMode':_0x675178,'securityPolicy':_0x5231b2,'userIdentityType':_0x220962,'credentials':_0x519137};return _0x119690;},_0x29f875=()=>{return{'endpointNode':_0xe903e0};},_0xe903e0=()=>{const _0xd80b70=_0x27991e,_0x5a0969=$('#node-input-endpoint'),_0xc7cd22=_0x5a0969[_0xd80b70(0x221)](),_0xf3f1bb=_0x26d0ef();if(!_0xf3f1bb)return undefined;return{'id':_0xc7cd22};};RED['nodes'][_0x27991e(0x2a7)]('OpcUa-Client2-Call',{'category':_0x27991e(0x2c2),'color':'#C0DEED','align':'right','icon':_0x27991e(0x1fb),'paletteLabel':_0x27991e(0x22b),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'action':{'value':'read','required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0xd59ce0=_0x27991e;return this[_0xd59ce0(0x244)]||_0xd59ce0(0x2a8);},'labelStyle'(){const _0x231a47=_0x27991e;return this[_0x231a47(0x244)]?'node_label_italic':'';},'oneditprepare'(){const _0x3d7083=_0x27991e,_0x5cbda9=this;_0x59706d(),_0x5cbda9['inputs']=0x1;let _0x22ac75={};const _0x510fdf=$('#node-input-objectId'),_0x5781a5=$(_0x3d7083(0x212)),_0x4dd396=$(_0x3d7083(0x282)),_0x295205=$(_0x3d7083(0x1f5)),_0x10c07f=$(_0x3d7083(0x22d));_0x510fdf[_0x3d7083(0x215)](Object[_0x3d7083(0x27a)](Object[_0x3d7083(0x27a)]({},_0x29f875()),{'filter'(_0x262729){const _0x24f5e3=_0x3d7083;return _0x262729[_0x24f5e3(0x267)]===_0x24f5e3(0x20b);}})),_0x5781a5['nodeBrowser'](Object['assign'](Object[_0x3d7083(0x27a)]({},_0x29f875()),{'parentNode':function(){return _0x41ebcb(this,void 0x0,void 0x0,function*(){const _0x2ddf99=_0x1d4a,_0x5891c8=_0x5c5810(this);let _0x403e3c=_0x510fdf[_0x2ddf99(0x24d)](_0x2ddf99(0x296));if(!_0x403e3c){const _0x3c6718=_0x510fdf[_0x2ddf99(0x221)](),_0xd4e1ed=_0x26d0ef();if(!_0xd4e1ed)return null;try{const _0x3bbaca=yield _0x4a9ccf(_0x5891c8,_0x3c6718);_0x403e3c=_0x3bbaca[_0x2ddf99(0x296)];}catch(_0x224edc){console[_0x2ddf99(0x242)](_0x224edc);}}return _0x403e3c;});},'filter'(_0x2a1744){const _0xcf701d=_0x3d7083;return _0x2a1744[_0xcf701d(0x267)]===_0xcf701d(0x200)||_0x2a1744['nodeClass']===_0xcf701d(0x20b);},'isSelectable'(_0x2eb6b8){const _0x38e821=_0x3d7083;return _0x2eb6b8[_0x38e821(0x267)]==='Method';}})),_0x510fdf['on'](_0x3d7083(0x2b6),()=>{const _0x3a3b1c=_0x3d7083;_0x5781a5['nodeBrowser'](_0x3a3b1c(0x2cf));});function _0x5bd626(_0x496c52,_0x4ee4ca,_0xc359a1){const _0x252c66=_0x3d7083,_0x119dc2=$(_0x252c66(0x2cb))['appendTo'](_0x496c52);$('<input\x20type=\x22text\x22>')[_0x252c66(0x221)](_0xc359a1['name']||'')[_0x252c66(0x25b)]({'width':'100%'})[_0x252c66(0x24a)](_0x119dc2);const _0x3c306a=_0x22ac75[_0xc359a1[_0x252c66(0x250)][_0x252c66(0x21b)]()],_0x460fe5=(_0x3c306a?_0x3c306a['browseName'][_0x252c66(0x244)]||'':_0xc359a1['dataType'][_0x252c66(0x21b)]())+(_0xc359a1[_0x252c66(0x205)]===0x1?'[]':'');$(_0x252c66(0x1f4))[_0x252c66(0x221)](_0xc359a1[_0x252c66(0x235)]['text']||'')[_0x252c66(0x25b)]({'width':_0x252c66(0x269)})[_0x252c66(0x24a)](_0x119dc2),$(_0x252c66(0x1f4))[_0x252c66(0x221)](_0x460fe5||'')[_0x252c66(0x25b)]({'width':_0x252c66(0x269)})[_0x252c66(0x24a)](_0x119dc2);}_0x4dd396['editableList']({'addButton':![],'height':'auto','scrollOnAdd':![],'addItem'(_0x26e5f6,_0x2365e6,_0x36972a){_0x5bd626(_0x26e5f6,_0x2365e6,_0x36972a);}}),_0x295205[_0x3d7083(0x216)]({'addButton':![],'height':'auto','scrollOnAdd':![],'addItem'(_0x339046,_0x3b8699,_0x78313a){_0x5bd626(_0x339046,_0x3b8699,_0x78313a);}});function _0x1586c7(_0x4ae0af,_0x5c63ff){const _0xba020b=_0x3d7083;console[_0xba020b(0x242)](_0xba020b(0x25c),_0x5c63ff[_0xba020b(0x29d)],_0xba020b(0x21e),_0x5c63ff),_0x4ae0af['editableList'](_0xba020b(0x2be));for(let _0x2ce0b8=0x0;_0x2ce0b8<_0x5c63ff[_0xba020b(0x29d)];_0x2ce0b8++){_0x4ae0af[_0xba020b(0x216)]('addItem',_0x5c63ff[_0x2ce0b8]);}}_0x4dd396[_0x3d7083(0x211)](),_0x295205[_0x3d7083(0x211)]();let _0x318324={};const _0x50870a=$(_0x3d7083(0x25f));_0x50870a['hide'](),_0x50870a['on'](_0x3d7083(0x272),()=>{const _0x52ef0a=_0x3d7083;navigator[_0x52ef0a(0x290)][_0x52ef0a(0x298)](JSON['stringify'](_0x318324));}),_0x4b7d57(_0x3d7083(0x23f),_0x10c07f,()=>({'url':_0x3d7083(0x28e),'body':{'endpointNode':_0xe903e0(),'objectId':_0x510fdf[_0x3d7083(0x221)](),'methodId':_0x5781a5['val']()}}),(_0x39afdb,_0x3330c9)=>{const _0x25bdca=_0x3d7083;if(_0x39afdb)return;const _0x213a1b=_0x3330c9[_0x25bdca(0x249)];_0x22ac75=_0x3330c9[_0x25bdca(0x239)],_0x4dd396[_0x25bdca(0x237)](),_0x295205['show'](),_0x1586c7(_0x4dd396,_0x213a1b[_0x25bdca(0x266)]),_0x1586c7(_0x295205,_0x213a1b['outputArguments']),_0x318324=_0x3330c9['inputArgumentsExampleAsJson']||{},_0x50870a[_0x25bdca(0x237)](),navigator[_0x25bdca(0x290)][_0x25bdca(0x298)](JSON['stringify'](_0x318324)),console['log'](_0x25bdca(0x218),JSON[_0x25bdca(0x243)](_0x318324)),console[_0x25bdca(0x242)]('data',_0x3330c9);});},'oneditsave'(){}});}()));function _0x1d4a(_0x46311b,_0x706e2a){const _0x8f47c7=_0x8f47();return _0x1d4a=function(_0x1d4afc,_0x1d9c00){_0x1d4afc=_0x1d4afc-0x1f3;let _0x2393a4=_0x8f47c7[_0x1d4afc];return _0x2393a4;},_0x1d4a(_0x46311b,_0x706e2a);}function _0x8f47(){const _0x5efc4e=['fetched','dataTypes','$info','sterfive-combo-box','__parentNode','View','fa-text-width','validate','parentNode','result','log','stringify','name','</p>','opc.tcp://opcuademo.sterfive.com:26543','expandable\x20expanded','Organizes','argumentDefinition','appendTo','internal\x20error\x20','4dWtfnF','data','<ul\x20class=\x22sterfive-tree\x22></ul>','stopPropagation','dataType','ns=0;i=46','Objects','fa-list-alt','fetching\x20failed\x20with\x20error','65620hnZzlJ','typeDefinition','function','fa-question','displayName','sterfive-info','css','installArgumentList','IsForward','placeholder','#copy-input','join','scrollTop','endpointNode','error','expandable','trigger','inputArguments','nodeClass','559226FzTLpL','50%','addClass','Variable','li[key=\x22','ns=0;i=35','toggleClass','then','isArray','endpoint','click','SteelBlue','fa-object-group','$verifyBtn','grey','$inputGroup','browseResult','options','assign','statusText','Unspecified','HasSubtype','split','browseName','fetched\x20:\x20','resolveParentNode','#method-input-argument-definition','next','remove','<br>','nodeId','offset','closest','pageX','application/json','fa-folder','$combo','isSelectable','/opcua-endpoint2/argumentDefinition','#node-input-endpoint','clipboard','ns=0;i=34','<li\x20key=\x22','rgba(61,\x2060,\x204,\x200.525)','children','height','reference','CadetBlue','writeText','BrowseName','SandyBrown','map','references','length','html','currentParent','HasProperty','ns=0;i=61','Forward','SeaGreen','baseUrl','.tree-text:first','\x22\x20style=\x22color:','registerType','OPCUA-Call','hasClass','message','Both','append','filter','$dropdown','json','replace','text','233334COqfNv','1359ATvBzP','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','left','change','attr',':visible','done','$tree','nodeIds','ns=0;i=47','browsePath','empty',':first','ns=0;i=85','<p>','opcua','animate','<div\x20class=\x22info-text\x22></div>','274510PoRlJX','DarkOrange','/checkNodeId','input-group','$input','DisplayName','<div\x20class=\x22argument-entry\x22>','-failure','ReferenceType','removeClass','reset','/walk-backward','statusCode','find','1301223CtJdod','TypeDefinition','Inverse','referenceTypeId','<input\x20type=\x22text\x22>','#method-output-argument-definition','NodeClass','!!failure!!','\x22}><span\x20class=\x22tree-text\x22\x20title=','</span><ul></ul></li>','HasChild','../../icons/opcuanodeLogo.png','5106888LnjAlx','verify','ObjectType','/opcua-endpoint2','Method','</li>','DataType','DodgerBlue','selected','valueRank','suppressed','value','top','elements','POST','Object','fa-cog','already\x20fetched','li\x20>\x20.tree-text','/browse','VariableType','hide','#node-input-methodId','Invalid','<div\x20class=\x22spinner\x22></div>','nodeBrowser','editableList','already\x20loading','JSON','HasComponent','element','toString','loading','$toggleTreeBtn','arguments','<li>error\x20','expanded','val','pageY','position','isTypeRef','><i\x20class=\x22fa\x20','err','<div/>','-messages','status','toggle','call','apply','#validate-call-arguments-button','.spinner','623715szMKIt','throw','failure','node','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','catch','description','84trqpRG','show'];_0x8f47=function(){return _0x5efc4e;};return _0x8f47();}
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0MWViY2IiLCJfMHgyZWUwYTciLCJfMHgxZDI0NmEiLCJfMHg0YTkxZmYiLCJfMHgzNTQxNCIsIl8weDQwNDM1ZSIsIl8weDE2NDYxOCIsIl8weDI5NTc1MCIsIlByb21pc2UiLCJfMHgzMTk0NTIiLCJfMHgzOTY5OTciLCJfMHg1NTkzN2EiLCJfMHg1YmIzZTMiLCJfMHgzYThhMDAiLCJfMHg0YjJjZDYiLCJfMHg1YmFlMTUiLCJfMHg0YWZlODgiLCJfMHgyYTMxYjgiLCJfMHgxOTU4NWYiLCJTdXBwcmVzc2VkRXJyb3IiLCJfMHg1OWQ1MzYiLCJfMHg0NmIxOWQiLCJfMHg0YTJiNTEiLCJfMHgzZjgxMTUiLCJFcnJvciIsIl8weDIzODllMCIsIl8weDJhYTlkYyIsIl8weDU0Y2FiMyIsIl8weDUwODM3MCIsIl8weDU4MDJiZSIsIl8weDI0OWRkOCIsIl8weDVkN2YwMiIsIl8weDU0NWI5YyIsIl8weDM1MGY2NSIsIl8weDU0MjdkZiIsIl8weDJjNTA2YiIsIl8weDUxOTRkZiIsIl8weDI1MGM1MiIsIl8weDQ4NDJhMCIsIl8weDRhYjUyMSIsIl8weGMyODRkMSIsIl8weDVlODc2ZSIsIl8weDViZTI5MiIsIl8weDM0OWIyNSIsIl8weDMxNzM3OSIsImVuZHBvaW50Tm9kZSIsIl8weDNhOGU3MSIsImVuZHBvaW50IiwiXzB4MzYxOTE3IiwiYmFzZVVybCIsIl8weDUxOTViZiIsIl8weDE5YWFiZCIsIl8weDJhNjljNCIsIl8weDVlOWZiNSIsIl8weDIyOGQzZSIsIl8weDExMDhhYiIsIk9iamVjdCIsIl8weDJmZTJhNiIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHgyYzA0NjMiLCJfMHg5NTk4N2EiLCJfMHg1ZWI0YWUiLCJfMHg0MTZhZDAiLCJfMHgyNjdkMjciLCJfMHgzYTczNTAiLCJfMHgyYTEyNmYiLCJfMHgyMjFmZmUiLCJub2RlSWQiLCJfMHgzZDliMjkiLCJyb290Tm9kZUlkIiwiXzB4NDk3YjJiIiwiaXNUeXBlIiwiXzB4MTYyZGZjIiwiXzB4NTZlMDA5IiwiXzB4MTYxYTg3IiwiXzB4MzNkYThkIiwiXzB4NWIzZjkxIiwiXzB4MjMyZTk4IiwiXzB4MWVhOWM2IiwiXzB4NTI1ZGZlIiwiXzB4MWY2NWFlIiwiXzB4MjFiMTBiIiwiXzB4MzJhOWYwIiwiXzB4MjJkYWU0IiwiXzB4MjFlNzM0IiwiXzB4YWJjNmViIiwiXzB4NzZmN2I0IiwiXzB4ZDlhYmEzIiwiXzB4NDE1OGM3IiwiXzB4YTVlMGY1Iiwic2V0VGltZW91dCIsIl8weDI3YTUxOSIsIl8weDNiODJiMiIsIl8weDNlNmI0ZCIsIl8weDFkNjI1NiIsIl8weDRiMWQ3MyIsIl8weDM1NWE4YyIsIl8weDEzZTEzYiIsIl8weDE5MDMzMCIsIl8weDNjZGQ1OCIsIl8weDVmNTRlOCIsIl8weDIzZjU4MCIsIl8weDFiNTVhMyIsIl8weDE2ZWYwYiIsIl8weDQ4Njg3YiIsIl8weDI4NmZmNSIsIl8weDU5MzkwYSIsIl8weDQyZGNjMiIsIl8weDE2OTUxMiIsIl8weDQxNWQyMiIsIl8weDU5MzUwNyIsIiQiLCJfMHgzYjM5MWIiLCJfMHg1M2JjMDgiLCJpY29uIiwiXzB4M2IzMmQ3IiwiY29sb3IiLCJfMHgxYTMyYTYiLCJfMHg4MTUzYWQiLCJfMHgyNWNlNTciLCJfMHgxYjQ3YzkiLCJfMHgxY2U0MmYiLCJfMHgzNzA0ZWQiLCJfMHgzMWZlNjEiLCJfMHgzMTlhMzMiLCJfMHgzNWY3MSIsIl8weDRhODQ0YSIsIl8weDVkYmI3MiIsIl8weGY3MzNiNSIsIl8weDI5MDE5ZCIsIl8weDljMGJjZiIsIl8weDljMjMwYiIsIl8weDRmODcwNiIsIl8weDVlMDU3ZiIsIl8weDM5MGY4ZiIsIl8weDFiYjBkOSIsIl8weDJjNzJjOCIsIl8weDU2MGRjYSIsIl8weDQyZTMzZiIsIl8weGUyZTQ1ZiIsInVuZGVmaW5lZCIsIl8weDNiNjUzMCIsIl8weDdjNDc5OCIsIl8weDgyMjg1MyIsIl8weDUyZmJlOCIsIl8weDE3NGIwZCIsIl8weDI3ZjhkMyIsIl8weDJmMjc2YSIsIl8weDVjNTgxMCIsIl8weDFhMzQ1YyIsIl8weDU2MDM0ZiIsIl8weDUwZmUxOSIsIl8weDk0MmU0NCIsIl8weDViZGUxZSIsIl8weDNkNmI1MSIsInJlZmVyZW5jZXMiLCJfMHg0N2Q0ZTgiLCJfMHgyOThjOWQiLCJfMHg0NDlkZDIiLCJfMHgyNTcyNTciLCJfMHg4Yjc2OGIiLCJfMHg1NzQxYTAiLCJfMHgxNDk0Y2EiLCJfMHgxZDRkMTciLCJfMHg0ZmE3YjkiLCJfMHgyZTFlZWUiLCJfMHgxNGE3Y2YiLCJfMHg1OTcwNmQiLCJfMHgxMjVmYTMiLCJfMHgyMmE0YTEiLCJfMHgxYmFiMjgiLCJfMHgxYzc4ODIiLCJfMHg1YjVjOGMiLCJfMHgxZTQ0OTAiLCJfMHgxMTIzMjAiLCJfMHgxMjZlN2QiLCJfMHg1ZTJmYzUiLCJfMHg0NTNlMjEiLCJfMHgzYzRmYjEiLCJfMHg3NWM3MDgiLCJfMHgyODQ3NTEiLCJfMHgxMjZhZTYiLCJfMHg0OGU0NjAiLCJfMHgyZDljNzIiLCJfMHgzOWE2MDQiLCJfMHg1OGYyNGUiLCJfMHg1ODU2MDEiLCJfMHgyN2FkYzIiLCJfMHgxZjBmOTciLCJfMHg1ZDYxZDAiLCJfMHg1OTc0MTgiLCJfMHg1Nzg1ZDQiLCJfMHgyMGI4ZDAiLCJfMHg1YzBhNjYiLCJfMHgyZGU3ZmUiLCJfMHgyNGUyNDgiLCJfMHgyOWNhYzIiLCJfMHgxZTQzNDYiLCJfMHg0ZjIwZjUiLCJfMHgxYjZlZmEiLCJkb2N1bWVudCIsIl8weDVjY2E5NyIsIl8weDRhOWNjZiIsIl8weDRiOTZlNCIsIl8weDIwYTA2OSIsIl8weDJmMmMyYiIsIl8weDIyYmYyOCIsIl8weDU5NWQyZSIsIl8weDRmNzE1MyIsIl8weDQwNmIwZSIsIl8weDNmMzY2YiIsIl8weDE5M2QxNSIsIl8weDRiN2Q1NyIsIl8weGI0MTQzMSIsIl8weDMwMjZmYyIsIl8weDM2YjZlYSIsIl8weDFlODQwNiIsIl8weDM0YTg0NyIsIl8weDM0ZGNmMCIsIl8weDI5MmJjNSIsIl8weDY0ZDVhMyIsIl8weGU3MTA2NyIsImJvZHkiLCJfMHg1ZGIyOGMiLCJ1cmwiLCJfMHgzM2YxMDkiLCJfMHg0ODkxYTUiLCJfMHgzZmJkNzQiLCJfMHg3ZmYyODciLCJfMHgyMGIwNDIiLCJfMHgxNWRkMDIiLCJfMHhlYjdmIiwiXzB4MjY2MGFjIiwiQXJyYXkiLCJfMHg0OWYyNjEiLCJfMHgyNmQwZWYiLCJfMHgxYTQ3NWQiLCJfMHg0YTFiZTUiLCJfMHg1NTI4NGMiLCJSRUQiLCJfMHgzY2NmZDkiLCJzZWN1cml0eU1vZGUiLCJfMHg2NzUxNzgiLCJzZWN1cml0eVBvbGljeSIsIl8weDUyMzFiMiIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHgyMjA5NjIiLCJjcmVkZW50aWFscyIsIl8weDUxOTEzNyIsIl8weDExOTY5MCIsIl8weDI5Zjg3NSIsIl8weGU5MDNlMCIsIl8weDVhMDk2OSIsIl8weGM3Y2QyMiIsIl8weGYzZjFiYiIsIl8weDVjYmRhOSIsIl8weDIyYWM3NSIsIl8weDUxMGZkZiIsIl8weDU3ODFhNSIsIl8weDRkZDM5NiIsIl8weDI5NTIwNSIsIl8weDEwYzA3ZiIsIl8weDI2MjcyOSIsIl8weDU4OTFjOCIsIl8weDQwM2UzYyIsIl8weDNjNjcxOCIsIl8weGQ0ZTFlZCIsIl8weDNiYmFjYSIsIl8weDIyNGVkYyIsIl8weDJhMTc0NCIsIl8weDJlYjZiOCIsIl8weDViZDYyNiIsIl8weDQ5NmM1MiIsIl8weDRlZTRjYSIsIl8weGMzNTlhMSIsIl8weDExOWRjMiIsIl8weDNjMzA2YSIsIl8weDQ2MGZlNSIsIl8weDI2ZTVmNiIsIl8weDIzNjVlNiIsIl8weDM2OTcyYSIsIl8weDMzOTA0NiIsIl8weDNiODY5OSIsIl8weDc4MzEzYSIsIl8weDE1ODZjNyIsIl8weDRhZTBhZiIsIl8weDVjNjNmZiIsIl8weDJjZTBiOCIsIl8weDMxODMyNCIsIl8weDUwODcwYSIsIm5hdmlnYXRvciIsIl8weDM5YWZkYiIsIl8weDMzMzBjOSIsIl8weDIxM2ExYiJdLCJtYXBwaW5ncyI6InVrQkFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFT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NUUsU0FBQSxDLGdCQUFBLENBQTBCaUQsU0FBMUIsQ0FBd0MsS0FBTyxDLEtBQzNDLEMsZ0JBRDJDLEMsTUFFM0MsQ0FBTSxDLGNBQ0YsQ0FBY1YsU0FBQSxFQURaLEMsVUFFRixDQUFVTSxTQUFBLEMsZ0JBQUEsR0FGUixDLFVBR0YsQ0FBVUMsU0FBQSxDLEtBQUEsR0FIUixDQUZxQyxDQUFQLENBQXhDLENBT0ksQ0FBQ2lDLFNBQUQsQ0FBTUMsU0FBTixHLDhCQUNJRCxTLENBQ0EsT0FHSixNQUFNRSxTQUFBLENBQXFCRCxTQUFBLEMsZ0JBQUEsQ0FBM0IsQ0FDQXBDLFNBQUEsQ0FBWW9DLFNBQUEsQyxnQkFBQSxDLENBQ1pqQyxTQUFBLEMsZ0JBQUEsRyxDQUNBQyxTQUFBLEMsTUFBQSxHLENBQ0F3QixTQUFBLENBQW9CekIsU0FBcEIsQ0FBOENrQyxTQUFBLEMsZ0JBQUEsQ0FBOUMsQyxDQUNBVCxTQUFBLENBQW9CeEIsU0FBcEIsQ0FBK0NpQyxTQUFBLEMsaUJBQUEsQ0FBL0MsQyxDQUNBTCxTQUFBLENBQWNJLFNBQUEsQyw2QkFBQSxHQUFvQyxFLENBQ2xESCxTQUFBLEMsZ0JBQUEsRyxDQUNBQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUE4QnpPLElBQUEsQyxXQUFBLEVBQWV1TyxTQUFmLENBQTlCLEMsQ0FDQXRPLE9BQUEsQyxLQUFBLEUsZ0JBQUEsQ0FBb0JELElBQUEsQyxnQkFBQSxFQUFldU8sU0FBZixDQUFwQixDLENBQ0F0TyxPQUFBLEMsZ0JBQUEsRSxNQUFBLENBQW9CME8sU0FBcEIsQyxFQXRCSixDLEVBM0hxQyxDLFlBb0p6QyxFLEVBcEp5QyxDQUE3QyxDLEVBanNCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS93YWxrLWJhY2t3YXJkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQsXG4gICAgICAgICAgICAgICAgaXNUeXBlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBqc29uLmJyb3dzZVBhdGg7XG4gICAgfSk7XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC5fX3BhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB5aWVsZCB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uICYmICh5aWVsZCByZWFjaFNlbGVjdGlvbih0aGF0LCBwYXJlbnROb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2hlY2tOb2RlSWQgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICBjb25zdCByZXMgPSB7XG4gICAgICAgICAgICAgICAgc3RhdHVzQ29kZTogXCJCYWRcIixcbiAgICAgICAgICAgICAgICBub2RlQWRkcmVzc1N0cmluZzogbm9kZUlkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobnVsbCwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdCA9IChzdHIpID0+ICFzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChhKSA9PiBgPHA+JHthfTwvcD5gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdDIgPSAoc3RyKSA9PiAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyLm1hcChhZGFwdCkuam9pbihcIlxcblwiKSA6IGFkYXB0KHN0cikpO1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChhZGFwdDIoanNvbi5tZXNzYWdlKSArIGFkYXB0Mihqc29uLmV4dHJhKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG5ldyBFcnJvcihqc29uLnJlc3VsdCksIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcImludGVybmFsIGVycm9yIFwiICsgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgb25SZXN1bHQoZXJyLCBudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUNhbGxcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImNhbGxcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgYWN0aW9uOiB7IHZhbHVlOiBcInJlYWRcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gY2FsbFxuICAgICAgICAgICAgbWV0aG9kSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBvYmplY3RJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBLUNhbGxcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgU2VjdGlvbiBDYWxsXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgbGV0IGRhdGFUeXBlcyA9IHt9O1xuICAgICAgICAgICAgLy8gdG8gZG8gYWRkIGEgdHlwZXNjcmlwdCBkZWZpbml0aW9uIGZvciB0aGlzXG4gICAgICAgICAgICBjb25zdCAkb2JqZWN0SWQgPSAkKFwiI25vZGUtaW5wdXQtb2JqZWN0SWRcIik7XG4gICAgICAgICAgICBjb25zdCAkbWV0aG9kSWQgPSAkKFwiI25vZGUtaW5wdXQtbWV0aG9kSWRcIik7XG4gICAgICAgICAgICBjb25zdCAkaW5wdXRBcmd1bWVudERlZmluaXRpb24gPSAkKFwiI21ldGhvZC1pbnB1dC1hcmd1bWVudC1kZWZpbml0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiA9ICQoXCIjbWV0aG9kLW91dHB1dC1hcmd1bWVudC1kZWZpbml0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgJHZhbGlkYXRlQnRuID0gJChcIiN2YWxpZGF0ZS1jYWxsLWFyZ3VtZW50cy1idXR0b25cIik7XG4gICAgICAgICAgICAkb2JqZWN0SWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG1ldGhvZElkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBwYXJlbnROb2RlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHJlc3luYyB3aXRoIHdoYXQncyBpbiAgI25vZGUtaW5wdXQtb2JqZWN0SWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWZlcmVuY2UgPSAkb2JqZWN0SWQuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZUlkRXggPSAkb2JqZWN0SWQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kcG9pbnROb2RlID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbmRwb2ludE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSB5aWVsZCBjaGVja05vZGVJZChkYXRhLCBub2RlSWRFeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZSA9IHIucmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSwgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiTWV0aG9kXCIgfHwgbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiTWV0aG9kXCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkb2JqZWN0SWQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICRtZXRob2RJZC5ub2RlQnJvd3NlcihcInJlc2V0XCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9ICQoJzxkaXYgY2xhc3M9XCJhcmd1bWVudC1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgLy8gY29udGFpbmVyLmRhdGEoXCJkYXRhXCIsIGFyZyk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcubmFtZSB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiMTAwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gZGF0YVR5cGVzW2FyZy5kYXRhVHlwZS50b1N0cmluZygpXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhVHlwZU4gPSAoZCA/IGQuYnJvd3NlTmFtZS5uYW1lIHx8IFwiXCIgOiBhcmcuZGF0YVR5cGUudG9TdHJpbmcoKSkgKyAoYXJnLnZhbHVlUmFuayA9PT0gMSA/IFwiW11cIiA6IFwiXCIpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmRlc2NyaXB0aW9uLnRleHQgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGFUeXBlTiB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNTAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGksIG9iamVjdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGluc3RhbGxBcmd1bWVudExpc3QobGlzdCwgbWV0aG9kQXJndW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsQXJndW1lbnRMaXN0XCIsIG1ldGhvZEFyZ3VtZW50cy5sZW5ndGgsIFwiYXJndW1lbnRzXCIsIG1ldGhvZEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1ldGhvZEFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgbWV0aG9kQXJndW1lbnRzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5oaWRlKCk7XG4gICAgICAgICAgICBsZXQgaW5wdXRBc0pzb24gPSB7fTtcbiAgICAgICAgICAgIGNvbnN0ICRjb3B5SW5wdXQgPSAkKFwiI2NvcHktaW5wdXRcIik7XG4gICAgICAgICAgICAkY29weUlucHV0LmhpZGUoKTtcbiAgICAgICAgICAgICRjb3B5SW5wdXQub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gQ29weSB0aGUgdGV4dCBpbnNpZGUgdGhlIHRleHQgZmllbGRcbiAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeShpbnB1dEFzSnNvbikpO1xuICAgICAgICAgICAgICAgIC8vIGFsZXJ0KEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSArIFwiIGNvcGllZCB0byBjbGlwYm9hcmRcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG1hbmFnZUFQSUNhbGwoXCJ2YWxpZGF0ZVwiLCAkdmFsaWRhdGVCdG4sICgpID0+ICh7XG4gICAgICAgICAgICAgICAgdXJsOiBcIi9vcGN1YS1lbmRwb2ludDIvYXJndW1lbnREZWZpbml0aW9uXCIsXG4gICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycygpLFxuICAgICAgICAgICAgICAgICAgICBvYmplY3RJZDogJG9iamVjdElkLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBtZXRob2RJZDogJG1ldGhvZElkLnZhbCgpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSwgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBwb3B1bGF0ZSB0aGUgbGlzdFxuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3VtZW50RGVmaW5pdGlvbiA9IGRhdGEuYXJndW1lbnREZWZpbml0aW9uO1xuICAgICAgICAgICAgICAgIGRhdGFUeXBlcyA9IGRhdGEuZGF0YVR5cGVzO1xuICAgICAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5zaG93KCk7XG4gICAgICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5zaG93KCk7XG4gICAgICAgICAgICAgICAgaW5zdGFsbEFyZ3VtZW50TGlzdCgkaW5wdXRBcmd1bWVudERlZmluaXRpb24sIGFyZ3VtZW50RGVmaW5pdGlvbi5pbnB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgaW5zdGFsbEFyZ3VtZW50TGlzdCgkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24ub3V0cHV0QXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpbnB1dEFzSnNvbiA9IGRhdGEuaW5wdXRBcmd1bWVudHNFeGFtcGxlQXNKc29uIHx8IHt9O1xuICAgICAgICAgICAgICAgICRjb3B5SW5wdXQuc2hvdygpO1xuICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJKU09OXCIsIEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJkYXRhXCIsIGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-Call">
11
11
  <div class="form-row">