@opcua/for-node-red 2.17.0 → 2.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,8 +4,8 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- (function(_0x1ed301,_0x1a0f10){const _0x4ac182=_0x5e93,_0x4dfa69=_0x1ed301();while(!![]){try{const _0xbd3b5=parseInt(_0x4ac182(0x273))/0x1+-parseInt(_0x4ac182(0x23f))/0x2+-parseInt(_0x4ac182(0x210))/0x3+-parseInt(_0x4ac182(0x274))/0x4*(parseInt(_0x4ac182(0x240))/0x5)+parseInt(_0x4ac182(0x246))/0x6+-parseInt(_0x4ac182(0x29f))/0x7*(-parseInt(_0x4ac182(0x254))/0x8)+-parseInt(_0x4ac182(0x268))/0x9;if(_0xbd3b5===_0x1a0f10)break;else _0x4dfa69['push'](_0x4dfa69['shift']());}catch(_0x49c77f){_0x4dfa69['push'](_0x4dfa69['shift']());}}}(_0x5151,0x95408),(function(){'use strict';const _0x5e88ee=_0x5e93;function _0x2b3555(_0x18886c,_0xf4353f,_0x5bd83e,_0x287fef){function _0x414498(_0x50cd97){return _0x50cd97 instanceof _0x5bd83e?_0x50cd97:new _0x5bd83e(function(_0x4c45ae){_0x4c45ae(_0x50cd97);});}return new(_0x5bd83e||(_0x5bd83e=Promise))(function(_0x4f0ab3,_0x4d969f){const _0x3b0792=_0x5e93;function _0xb538fb(_0x48ed72){try{_0x5bac48(_0x287fef['next'](_0x48ed72));}catch(_0x309388){_0x4d969f(_0x309388);}}function _0x1b9ddb(_0x2ea445){const _0x50851f=_0x5e93;try{_0x5bac48(_0x287fef[_0x50851f(0x1fc)](_0x2ea445));}catch(_0x3ea506){_0x4d969f(_0x3ea506);}}function _0x5bac48(_0x4e1302){const _0x4222a8=_0x5e93;_0x4e1302[_0x4222a8(0x1f4)]?_0x4f0ab3(_0x4e1302[_0x4222a8(0x292)]):_0x414498(_0x4e1302[_0x4222a8(0x292)])[_0x4222a8(0x215)](_0xb538fb,_0x1b9ddb);}_0x5bac48((_0x287fef=_0x287fef['apply'](_0x18886c,_0xf4353f||[]))[_0x3b0792(0x20a)]());});}typeof SuppressedError===_0x5e88ee(0x25a)?SuppressedError:function(_0x27e1ba,_0x556489,_0x3f6702){const _0x4da58f=_0x5e88ee;var _0x1af731=new Error(_0x3f6702);return _0x1af731[_0x4da58f(0x248)]='SuppressedError',_0x1af731['error']=_0x27e1ba,_0x1af731['suppressed']=_0x556489,_0x1af731;};const _0x653181='ns=0;i=35',_0x32d937='ns=0;i=61',_0x1cd477='ns=0;i=47',_0x5ae310=_0x5e88ee(0x266),_0x106483='ns=0;i=34',_0x3ff436=_0x5e88ee(0x27d),_0x5cdcac='ns=0;i=40';var _0x3d78d1;(function(_0x469c2a){const _0x5e218b=_0x5e88ee;_0x469c2a[_0x469c2a[_0x5e218b(0x250)]=0x0]=_0x5e218b(0x250),_0x469c2a[_0x469c2a[_0x5e218b(0x231)]=0x1]=_0x5e218b(0x231),_0x469c2a[_0x469c2a['Both']=0x2]=_0x5e218b(0x25d),_0x469c2a[_0x469c2a[_0x5e218b(0x2a3)]=0x3]='Invalid';}(_0x3d78d1||(_0x3d78d1={})));var _0x3425a5;(function(_0x36b7ca){const _0x4e6b80=_0x5e88ee;_0x36b7ca[_0x36b7ca[_0x4e6b80(0x230)]=0x0]=_0x4e6b80(0x230),_0x36b7ca[_0x36b7ca[_0x4e6b80(0x25f)]=0x1]=_0x4e6b80(0x25f),_0x36b7ca[_0x36b7ca[_0x4e6b80(0x208)]=0x2]=_0x4e6b80(0x208),_0x36b7ca[_0x36b7ca['Method']=0x4]='Method',_0x36b7ca[_0x36b7ca[_0x4e6b80(0x24b)]=0x8]=_0x4e6b80(0x24b),_0x36b7ca[_0x36b7ca['VariableType']=0x10]='VariableType',_0x36b7ca[_0x36b7ca['ReferenceType']=0x20]=_0x4e6b80(0x284),_0x36b7ca[_0x36b7ca[_0x4e6b80(0x21f)]=0x40]=_0x4e6b80(0x21f),_0x36b7ca[_0x36b7ca[_0x4e6b80(0x259)]=0x80]='View';}(_0x3425a5||(_0x3425a5={})));var _0x7ba065;(function(_0x20f67c){const _0x426d42=_0x5e88ee;_0x20f67c[_0x20f67c[_0x426d42(0x25f)]=0x1]=_0x426d42(0x25f),_0x20f67c[_0x20f67c['Variable']=0x2]=_0x426d42(0x208),_0x20f67c[_0x20f67c[_0x426d42(0x202)]=0x4]=_0x426d42(0x202),_0x20f67c[_0x20f67c[_0x426d42(0x24b)]=0x8]='ObjectType',_0x20f67c[_0x20f67c[_0x426d42(0x216)]=0x10]=_0x426d42(0x216),_0x20f67c[_0x20f67c[_0x426d42(0x284)]=0x20]=_0x426d42(0x284),_0x20f67c[_0x20f67c[_0x426d42(0x21f)]=0x40]=_0x426d42(0x21f),_0x20f67c[_0x20f67c[_0x426d42(0x259)]=0x80]=_0x426d42(0x259);}(_0x7ba065||(_0x7ba065={})));var _0x5557eb;(function(_0x3e6d83){const _0x639fb=_0x5e88ee;_0x3e6d83[_0x3e6d83['ReferenceType']=0x1]=_0x639fb(0x284),_0x3e6d83[_0x3e6d83['IsForward']=0x2]=_0x639fb(0x277),_0x3e6d83[_0x3e6d83[_0x639fb(0x244)]=0x4]='NodeClass',_0x3e6d83[_0x3e6d83[_0x639fb(0x27f)]=0x8]=_0x639fb(0x27f),_0x3e6d83[_0x3e6d83['DisplayName']=0x10]=_0x639fb(0x20e),_0x3e6d83[_0x3e6d83[_0x639fb(0x285)]=0x20]=_0x639fb(0x285);}(_0x5557eb||(_0x5557eb={})));function _0x40536a(_0x227cb5){const _0xb23c95=_0x5e88ee;switch(_0x227cb5){case _0xb23c95(0x238):return _0x653181;case'HasProperty':return _0x5ae310;case _0xb23c95(0x212):return _0x1cd477;case'HasChild':return _0x106483;case _0xb23c95(0x233):return _0x3ff436;case _0xb23c95(0x293):return _0x5cdcac;}}const _0x4327c2=_0x5403e4=>{const _0x223199=_0x5e88ee;switch(_0x5403e4['nodeClass']){case _0x223199(0x25f):if(_0x5403e4['referenceTypeId']===_0x653181);if(_0x5403e4['typeDefinition']===_0x32d937||_0x5403e4[_0x223199(0x25c)]===_0x223199(0x1f9))return{'icon':_0x223199(0x24d),'color':'rgba(61,\x2060,\x204,\x200.525)'};return{'icon':'fa-object-group','color':_0x223199(0x227)};case _0x223199(0x208):if(_0x5403e4[_0x223199(0x25c)]===_0x1cd477)return{'icon':_0x223199(0x228),'color':_0x223199(0x20b)};else return _0x5403e4[_0x223199(0x25c)]===_0x5ae310?{'icon':_0x223199(0x228),'color':_0x223199(0x229)}:{'icon':'fa-list-alt','color':_0x223199(0x219)};case'Method':return{'icon':_0x223199(0x276),'color':'SandyBrown'};case _0x223199(0x24b):return{'icon':_0x223199(0x296),'color':'DarkOrange'};case _0x223199(0x216):return{'icon':_0x223199(0x21d),'color':'DarkOrange'};case _0x223199(0x21f):return{'icon':_0x223199(0x26d),'color':'CadetBlue'};}return{'icon':_0x223199(0x297),'color':_0x223199(0x275)};},_0x5b34a0=(_0x592016,_0x97e7f9,_0x4feb98)=>_0x2b3555(void 0x0,[_0x592016,_0x97e7f9,_0x4feb98],void 0x0,function*({endpointNode:_0x2c30e8,endpoint:_0x54e1a3,baseUrl:_0x1b077f},_0x5d35f1,_0x55b234){const _0x845335=_0x5e88ee,_0x41410e=_0x1b077f+_0x845335(0x218),_0x14bc9e=_0x41410e+_0x845335(0x28c),_0x190149=Object[_0x845335(0x27a)](Object[_0x845335(0x27a)]({},_0x55b234),{'nodeId':_0x5d35f1,'resultMask':0x3f}),_0x5d4621=yield fetch(_0x14bc9e,{'method':_0x845335(0x207),'body':JSON[_0x845335(0x289)]({'endpointNode':_0x2c30e8,'endpoint':_0x54e1a3,'browseDescription':_0x190149}),'headers':{'Content-Type':_0x845335(0x1fb)}});if(_0x5d4621[_0x845335(0x26f)]!==0xc8)return console[_0x845335(0x280)](_0x845335(0x24e),_0x5d4621[_0x845335(0x26f)],_0x5d4621[_0x845335(0x22d)]),{'references':[]};const _0x3d47a7=yield _0x5d4621[_0x845335(0x260)](),_0x7f8ef7=_0x3d47a7['browseResult'][_0x845335(0x21b)]||[];return{'references':_0x7f8ef7};}),_0x137229={'referenceTypeId':_0x40536a(_0x5e88ee(0x22f)),'includeSubtypes':!![],'browseDirection':_0x3d78d1[_0x5e88ee(0x250)],'nodeClassMask':_0x3425a5[_0x5e88ee(0x208)]|_0x3425a5[_0x5e88ee(0x25f)]|_0x3425a5[_0x5e88ee(0x202)],'resultMask':0x3f},_0x2964ed={'referenceTypeId':_0x40536a(_0x5e88ee(0x238)),'includeSubtypes':!![],'browseDirection':_0x3d78d1[_0x5e88ee(0x250)],'nodeClassMask':_0x3425a5['Variable']|_0x3425a5[_0x5e88ee(0x25f)]|_0x3425a5['Method'],'resultMask':0x3f},_0x398fee=(_0x36133d,_0x3ea404)=>_0x2b3555(void 0x0,[_0x36133d,_0x3ea404],void 0x0,function*({endpointNode:_0x48df60,endpoint:_0x48d057,baseUrl:_0x28cb4c},{nodeId:_0x31cc42,rootNodeId:_0x141cd0,isType:_0x2b8201}){const _0x29fb60=_0x5e88ee,_0x257e3b=_0x28cb4c+_0x29fb60(0x218),_0x2a507d=_0x257e3b+'/walk-backward',_0x527509=yield fetch(_0x2a507d,{'method':'POST','body':JSON[_0x29fb60(0x289)]({'endpointNode':_0x48df60,'endpoint':_0x48d057,'nodeId':_0x31cc42,'rootNodeId':_0x141cd0,'isType':_0x2b8201}),'headers':{'Content-Type':'application/json'}});if(_0x527509['status']!==0xc8)return null;const _0x2472e3=yield _0x527509[_0x29fb60(0x260)]();return _0x2472e3[_0x29fb60(0x23a)];}),_0x1a5645=(_0x1f9f7a,_0x59b810,_0x57a486)=>_0x2b3555(void 0x0,[_0x1f9f7a,_0x59b810,_0x57a486],void 0x0,function*({endpointNode:_0x3c6eb9,endpoint:_0x1a5536,baseUrl:_0x17ac8a},_0x5f1130,_0x1d28d1){const _0x357cd7=_0x5e88ee,_0xf78cd1=_0x17ac8a+_0x357cd7(0x218),_0x2699b6=_0xf78cd1+'/checkNodeId',_0x1196c7=_0x5f1130[_0x357cd7(0x265)](),_0x5cc3df=yield fetch(_0x2699b6,{'method':'POST','body':JSON[_0x357cd7(0x289)]({'endpointNode':_0x3c6eb9,'endpoint':_0x1a5536,'nodeId':_0x1196c7}),'headers':{'Content-Type':_0x357cd7(0x1fb)}}),_0x54dbba=(_0x459fbf,_0x7ca9f4)=>{const _0x4f35f2=_0x357cd7;_0x1d28d1[_0x4f35f2(0x2a0)](_0x459fbf)[_0x4f35f2(0x204)]('sterfive-info')[_0x4f35f2(0x204)](_0x7ca9f4),_0x1d28d1[_0x4f35f2(0x298)](),setTimeout(()=>{const _0x1d31c3=_0x4f35f2;_0x1d28d1['removeClass'](_0x7ca9f4),_0x1d28d1[_0x1d31c3(0x214)]();},0xbb8);},_0x68bb88=yield _0x5cc3df[_0x357cd7(0x260)]();_0x5cc3df[_0x357cd7(0x26f)]!==0xc8?_0x54dbba('!!failure!!'+_0x1196c7,'failure'):_0x68bb88[_0x357cd7(0x290)][_0x357cd7(0x28b)](/Good/)?(_0x5f1130[_0x357cd7(0x265)](_0x68bb88[_0x357cd7(0x23c)]),_0x5f1130[_0x357cd7(0x28d)]('change'),_0x54dbba(_0x357cd7(0x235),'ok')):(_0x5f1130[_0x357cd7(0x265)](''+_0x1196c7),_0x54dbba(_0x68bb88[_0x357cd7(0x290)]+'\x20'+_0x5cc3df[_0x357cd7(0x22d)],_0x357cd7(0x1fd)));});function _0x42a0e3(_0x3a6318,_0x1bc5ec){return _0x2b3555(this,void 0x0,void 0x0,function*(){const _0x5b821e=_0x5e93,_0x138299=_0x3a6318[_0x5b821e(0x283)](_0x5b821e(0x292)),_0x18a55a=yield _0x5b34a0(_0x1bc5ec,_0x138299,_0x137229),_0x31ae40=yield _0x5b34a0(_0x1bc5ec,_0x138299,_0x2964ed);return{'references':[..._0x18a55a[_0x5b821e(0x21b)],..._0x31ae40[_0x5b821e(0x21b)]]};});}const _0x4bb19b={'referenceTypeId':_0x40536a('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x3d78d1[_0x5e88ee(0x250)],'nodeClassMask':_0x3425a5['ReferenceType']|_0x3425a5[_0x5e88ee(0x24b)]|_0x3425a5[_0x5e88ee(0x21f)]|_0x3425a5[_0x5e88ee(0x216)],'resultMask':0x3f};function _0x42ae36(_0x1c2bdc,_0x59a5e8){return _0x2b3555(this,void 0x0,void 0x0,function*(){const _0x56c3d7=_0x5e93,_0x57366a=_0x1c2bdc[_0x56c3d7(0x283)](_0x56c3d7(0x292)),_0x17ed63=yield _0x5b34a0(_0x59a5e8,_0x57366a,_0x4bb19b);return _0x17ed63;});}const _0x48102b=_0x30b444=>{const _0x5617cb=_0x5e88ee;var _0x170bbd,_0x42083b,_0x177b27,_0x4bf12c;if(!_0x30b444||!_0x30b444['nodeId']){const _0x2a504c=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x2a504c;}const _0x4de286=_0x30b444['nodeId']['toString'](),_0x1af87a=((_0x170bbd=_0x30b444['displayName'])===null||_0x170bbd===void 0x0?void 0x0:_0x170bbd['text'])||((_0x42083b=_0x30b444[_0x5617cb(0x263)])===null||_0x42083b===void 0x0?void 0x0:_0x42083b['name'])||_0x30b444[_0x5617cb(0x27b)][_0x5617cb(0x261)](),{icon:_0x43f105,color:_0x21cda6}=_0x4327c2(_0x30b444),_0x140cc1='('+_0x30b444[_0x5617cb(0x27b)][_0x5617cb(0x261)]()+')\x20'+(((_0x177b27=_0x30b444[_0x5617cb(0x263)])===null||_0x177b27===void 0x0?void 0x0:_0x177b27[_0x5617cb(0x248)])||((_0x4bf12c=_0x30b444[_0x5617cb(0x23b)])===null||_0x4bf12c===void 0x0?void 0x0:_0x4bf12c[_0x5617cb(0x2a0)])||''),_0x17ddde=$('<li\x20key=\x22'+_0x30b444[_0x5617cb(0x27b)]['toString']()+_0x5617cb(0x2a1)+_0x140cc1+_0x5617cb(0x205)+_0x43f105+_0x5617cb(0x1fe)+_0x21cda6+_0x5617cb(0x232)+_0x1af87a+'</span><ul></ul></li>');return _0x17ddde['addClass'](_0x5617cb(0x24f)),_0x17ddde['data'](_0x5617cb(0x292),_0x4de286),_0x17ddde[_0x5617cb(0x283)](_0x5617cb(0x257),_0x30b444),_0x17ddde;},_0x2bb669=(_0x19e11a,_0x240998)=>{const _0x4aecd4=_0x5e88ee;return _0x240998['find'](_0x4aecd4(0x217)+_0x19e11a+'\x22]');},_0x444bf6=(_0x587967,_0x5ddc2e)=>{const _0x17e0f6=_0x5e88ee;_0x587967['$tree']['find'](_0x17e0f6(0x26b))[_0x17e0f6(0x223)](_0x17e0f6(0x272)),_0x5ddc2e[_0x17e0f6(0x1f2)](_0x17e0f6(0x1fa))['addClass'](_0x17e0f6(0x272));},_0x3a49f7=(_0x417f70,_0x2bffb5,_0x67afbd)=>_0x2b3555(void 0x0,void 0x0,void 0x0,function*(){const _0x1d5d7d=_0x5e88ee;let _0x45e0a5=_0x67afbd[_0x1d5d7d(0x29d)](_0x1d5d7d(0x21e));_0x2bffb5[_0x1d5d7d(0x22b)][_0x1d5d7d(0x271)]||[];const _0x58085d=_0x2bffb5[_0x1d5d7d(0x225)]||[];if(_0x58085d[_0x1d5d7d(0x209)]===0x0)return;for(const _0x4bd9aa of _0x58085d){_0x45e0a5['hasClass'](_0x1d5d7d(0x24f))&&(yield _0x4bc942(_0x417f70,_0x45e0a5));const _0x1e8227=_0x2bb669(_0x4bd9aa,_0x45e0a5);if(_0x1e8227[_0x1d5d7d(0x209)]===0x0)return;_0x45e0a5=_0x1e8227;}_0x444bf6(_0x417f70,_0x45e0a5),_0x3416bc(_0x417f70[_0x1d5d7d(0x258)],_0x45e0a5);});function _0x3416bc(_0x2fef55,_0x3d1eef){const _0x5e1ef0=_0x5e88ee,_0x29e742=_0x3d1eef[_0x5e1ef0(0x22a)]()[_0x5e1ef0(0x294)],_0x9e9346=_0x2fef55[_0x5e1ef0(0x282)]();if(_0x9e9346==undefined)return;const _0x107a43=_0x9e9346+_0x29e742-_0x2fef55['height']()/0x2+_0x3d1eef[_0x5e1ef0(0x200)]()/0x2;_0x2fef55[_0x5e1ef0(0x269)]({'scrollTop':_0x107a43},0x1f4);}const _0x5620b8=(_0x5291ef,_0xd5e01b)=>_0x2b3555(void 0x0,void 0x0,void 0x0,function*(){const _0x5dc262=_0x5e88ee,_0x31d1c5=_0x5291ef[_0x5dc262(0x287)][_0x5dc262(0x265)](),_0x54fa44={'nodeId':_0x31d1c5,'rootNodeId':_0xd5e01b[_0x5dc262(0x27b)],'isType':_0x5291ef['options'][_0x5dc262(0x24a)]||![]},_0x592a5b=_0x49b6e9(_0x5291ef),_0x57405c=yield _0x398fee(_0x592a5b,_0x54fa44);if(!_0x57405c)return;yield _0x3a49f7(_0x5291ef,_0x57405c,_0x5291ef['$tree']);});function _0x17ba2c(_0x9d44b9,_0x55d432,_0x14d671,_0x313f82){return _0x2b3555(this,void 0x0,void 0x0,function*(){const _0xc8034f=_0x5e93;if(_0x55d432[_0xc8034f(0x26a)]('fetched')){console[_0xc8034f(0x280)](_0xc8034f(0x203));return;}if(_0x55d432[_0xc8034f(0x26a)](_0xc8034f(0x295))){console[_0xc8034f(0x280)]('already\x20loading');return;}_0x55d432['addClass'](_0xc8034f(0x295)),_0x55d432[_0xc8034f(0x20c)](_0xc8034f(0x281));try{_0x55d432['children']('ul')['empty']();const {references:_0x4b3b1a}=yield _0x14d671(_0x55d432,_0x313f82);for(const _0x1fec76 of _0x4b3b1a){if(_0x9d44b9[_0xc8034f(0x201)][_0xc8034f(0x224)]&&!_0x9d44b9[_0xc8034f(0x201)][_0xc8034f(0x224)](_0x1fec76))continue;const _0x39404f=_0x48102b(_0x1fec76);_0x55d432[_0xc8034f(0x29d)]('ul')[_0xc8034f(0x20c)](_0x39404f);}_0x55d432[_0xc8034f(0x204)](_0xc8034f(0x21c));}catch(_0x36a217){_0x55d432[_0xc8034f(0x29d)]('ul')['append'](_0xc8034f(0x247)+_0x36a217[_0xc8034f(0x291)]+_0xc8034f(0x28f)),console[_0xc8034f(0x280)]('err',_0x36a217);}_0x55d432[_0xc8034f(0x1f2)](_0xc8034f(0x222))['remove'](),_0x55d432[_0xc8034f(0x223)](_0xc8034f(0x295));});}function _0x49b6e9(_0x50979d){const _0x2a44f4=_0x5e88ee,_0x5ce30b={'baseUrl':_0x50979d[_0x2a44f4(0x201)][_0x2a44f4(0x1f8)],'endpointNode':typeof _0x50979d[_0x2a44f4(0x201)][_0x2a44f4(0x28a)]===_0x2a44f4(0x25a)?_0x50979d['options'][_0x2a44f4(0x28a)]():_0x50979d[_0x2a44f4(0x201)][_0x2a44f4(0x28a)],'endpoint':typeof _0x50979d[_0x2a44f4(0x201)]['endpoint']===_0x2a44f4(0x25a)?_0x50979d[_0x2a44f4(0x201)][_0x2a44f4(0x239)]():_0x50979d['options']['endpoint']};return _0x5ce30b;}function _0x4bc942(_0x2dcfc4,_0x1ed74e){return _0x2b3555(this,void 0x0,void 0x0,function*(){const _0x407ad3=_0x5e93;if(_0x1ed74e['hasClass'](_0x407ad3(0x21c))){_0x1ed74e[_0x407ad3(0x223)](_0x407ad3(0x24f))[_0x407ad3(0x204)](_0x407ad3(0x299)),_0x1ed74e[_0x407ad3(0x29d)]('ul')[_0x407ad3(0x23d)]();return;}const _0xedc154=_0x49b6e9(_0x2dcfc4),_0x6e81f1=!_0x2dcfc4[_0x407ad3(0x201)][_0x407ad3(0x24a)]?_0x42a0e3:_0x42ae36;try{yield _0x17ba2c(_0x2dcfc4,_0x1ed74e,_0x6e81f1,_0xedc154),_0x1ed74e[_0x407ad3(0x223)](_0x407ad3(0x24f))[_0x407ad3(0x204)](_0x407ad3(0x299));}catch(_0x52ef9f){_0x1ed74e[_0x407ad3(0x223)](_0x407ad3(0x24f))['addClass']('expanded'),console[_0x407ad3(0x280)](_0x407ad3(0x25b),_0x52ef9f);}});}const _0x64f3b7=()=>{const _0x3d4320=_0x5e88ee;$['widget']('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':_0x3d4320(0x220)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x3d4320(0x22e)},'nodeClass':_0x3d4320(0x25f),'nodeId':_0x3d4320(0x221),'displayName':{'text':_0x3d4320(0x22e)},'typeDefinition':_0x32d937}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x2b3555(this,void 0x0,void 0x0,function*(){const _0x415c2c=_0x5e93,_0x1e3e10=this;if(!_0x1e3e10[_0x415c2c(0x29a)]){const _0x50d629=typeof _0x1e3e10['options'][_0x415c2c(0x255)]===_0x415c2c(0x25a)?_0x1e3e10[_0x415c2c(0x201)][_0x415c2c(0x255)][_0x415c2c(0x27e)](_0x1e3e10):_0x1e3e10[_0x415c2c(0x201)][_0x415c2c(0x255)];if(_0x50d629 instanceof Promise){const _0x53cf5f=yield _0x50d629;_0x1e3e10[_0x415c2c(0x29a)]=_0x53cf5f;}else _0x1e3e10[_0x415c2c(0x29a)]=_0x50d629;}return _0x1e3e10[_0x415c2c(0x29a)];});},'reset'(){return _0x2b3555(this,void 0x0,void 0x0,function*(){const _0x40d645=_0x5e93,_0x40d6be=this,_0x250254=_0x40d6be;_0x250254[_0x40d645(0x29a)]=undefined,_0x40d6be[_0x40d645(0x252)][_0x40d645(0x24c)]();const _0x3f73b2=yield this['resolveParentNode'](),_0x52780b=_0x48102b(_0x3f73b2);_0x40d6be[_0x40d645(0x252)]['append'](_0x52780b),_0x40d6be[_0x40d645(0x249)]=_0x3f73b2;});},'verify'(){const _0x5be0e3=_0x3d4320,_0x12dc56=this,_0x5642dc=_0x49b6e9(_0x12dc56);_0x1a5645(_0x5642dc,_0x12dc56[_0x5be0e3(0x287)],_0x12dc56[_0x5be0e3(0x264)]);},'_create'(){const _0x32e570=_0x3d4320,_0x381380=this;_0x381380[_0x32e570(0x287)]=this[_0x32e570(0x234)],_0x381380['$combo']=$(_0x32e570(0x213)),_0x381380['$combo']['addClass'](_0x32e570(0x26e)),this[_0x32e570(0x234)][_0x32e570(0x267)](_0x381380['$combo']),_0x381380[_0x32e570(0x262)]=$(_0x32e570(0x213))[_0x32e570(0x204)](_0x32e570(0x236)),_0x381380[_0x32e570(0x242)]['append'](_0x381380[_0x32e570(0x262)]),_0x381380[_0x32e570(0x262)][_0x32e570(0x20c)](_0x381380['$input']),_0x381380[_0x32e570(0x29b)]=$(_0x32e570(0x29e)),_0x381380[_0x32e570(0x262)][_0x32e570(0x20c)](_0x381380[_0x32e570(0x29b)]),_0x381380[_0x32e570(0x29b)]['on'](_0x32e570(0x237),function(){return _0x2b3555(this,void 0x0,void 0x0,function*(){const _0x1d4efd=_0x5e93;var _0x2492c0;let _0x3d2048=![],_0x2b248b;!_0x381380[_0x1d4efd(0x258)]['is'](':visible')&&(_0x381380[_0x1d4efd(0x264)][_0x1d4efd(0x214)](),_0x2b248b=yield _0x381380['resolveParentNode'](),(_0x2b248b!==_0x381380[_0x1d4efd(0x249)]||((_0x2492c0=_0x381380[_0x1d4efd(0x249)])===null||_0x2492c0===void 0x0?void 0x0:_0x2492c0[_0x1d4efd(0x27b)])!==_0x2b248b['nodeId'])&&(yield _0x381380['reset']()),_0x3d2048=!![]),_0x381380[_0x1d4efd(0x258)][_0x1d4efd(0x23d)](),_0x3d2048&&(yield _0x5620b8(_0x381380,_0x2b248b));});}),_0x381380[_0x32e570(0x226)]=$(_0x32e570(0x253)),_0x381380[_0x32e570(0x262)]['append'](_0x381380[_0x32e570(0x226)]),_0x381380[_0x32e570(0x226)]['on'](_0x32e570(0x237),()=>{const _0x38bfba=_0x32e570;this[_0x38bfba(0x25e)]();});!_0x381380['$input']['attr']('placeholder')&&_0x381380[_0x32e570(0x287)][_0x32e570(0x251)]('placeholder','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x381380['$info']=$('<div\x20class=\x22info-text\x22></div>'),_0x381380[_0x32e570(0x264)][_0x32e570(0x214)](),_0x381380[_0x32e570(0x258)]=$('<div/>')[_0x32e570(0x204)](_0x32e570(0x27c))['hide'](),_0x381380['$combo'][_0x32e570(0x20c)](_0x381380[_0x32e570(0x264)]),_0x381380[_0x32e570(0x242)][_0x32e570(0x20c)](_0x381380['$dropdown']),_0x381380['$tree']=$(_0x32e570(0x20f))[_0x32e570(0x241)](_0x381380[_0x32e570(0x258)]),this[_0x32e570(0x1f3)]();const _0x213cf7=(_0x49c5e5,_0x55c29e)=>{const _0x3722ad=_0x32e570,_0xdcd5aa=0x14,_0x254fbe=0x14,_0x45d295=_0x49c5e5[_0x3722ad(0x22c)](),_0x5a2940=_0x55c29e;if(_0x5a2940[_0x3722ad(0x26c)]>=_0x45d295[_0x3722ad(0x245)]&&_0x5a2940[_0x3722ad(0x26c)]<=_0x45d295['left']+_0xdcd5aa&&_0x5a2940[_0x3722ad(0x29c)]>=_0x45d295[_0x3722ad(0x294)]&&_0x5a2940[_0x3722ad(0x29c)]<=_0x45d295['top']+_0x254fbe)return!![];return![];},_0x402f2e=_0x446550=>_0x2b3555(this,void 0x0,void 0x0,function*(){const _0x5c8cdf=_0x32e570;if(_0x446550[_0x5c8cdf(0x26a)](_0x5c8cdf(0x24f)))_0x4bc942(_0x381380,_0x446550);else{if(_0x446550[_0x5c8cdf(0x26a)](_0x5c8cdf(0x299)))_0x446550[_0x5c8cdf(0x29d)]('ul')[_0x5c8cdf(0x23d)](),_0x446550[_0x5c8cdf(0x211)](_0x5c8cdf(0x243));else{if(_0x446550['children']('ul')['children']()[_0x5c8cdf(0x209)]>0x0)_0x446550[_0x5c8cdf(0x29d)]('ul')[_0x5c8cdf(0x23d)](),_0x446550[_0x5c8cdf(0x211)](_0x5c8cdf(0x243));else;}}});_0x381380[_0x32e570(0x252)]['on'](_0x32e570(0x270),'li',function(_0x57ea10){const _0x27b85f=_0x32e570;var _0x58a32c,_0xb4974f;_0x57ea10['stopPropagation']();let _0x166272=$(this);if(_0x213cf7(_0x166272,_0x57ea10))_0x402f2e(_0x166272);else{const _0x377f47=_0x166272[_0x27b85f(0x283)](_0x27b85f(0x292)),_0x1578b0=_0x166272[_0x27b85f(0x283)](_0x27b85f(0x257));if(_0x381380[_0x27b85f(0x201)][_0x27b85f(0x23e)]&&!_0x381380[_0x27b85f(0x201)][_0x27b85f(0x23e)](_0x1578b0))return;_0x381380['$input'][_0x27b85f(0x283)](_0x27b85f(0x257),_0x1578b0);const _0x10fdcb=((_0x58a32c=_0x1578b0[_0x27b85f(0x23b)])===null||_0x58a32c===void 0x0?void 0x0:_0x58a32c[_0x27b85f(0x2a0)])||((_0xb4974f=_0x1578b0['browseName'])===null||_0xb4974f===void 0x0?void 0x0:_0xb4974f[_0x27b85f(0x248)])||_0x1578b0[_0x27b85f(0x27b)][_0x27b85f(0x261)](),_0x1e70e7='['+_0x10fdcb+']('+_0x377f47+')';_0x381380[_0x27b85f(0x287)][_0x27b85f(0x265)](_0x1e70e7),_0x381380[_0x27b85f(0x287)][_0x27b85f(0x28d)](_0x27b85f(0x278)),_0x381380[_0x27b85f(0x258)]['hide']();}}),_0x381380[_0x32e570(0x252)]['on'](_0x32e570(0x237),'li',function(_0x4eb854){_0x4eb854['stopPropagation']();let _0x5aa0c6=$(this);_0x213cf7(_0x5aa0c6,_0x4eb854)&&_0x402f2e(_0x5aa0c6),_0x444bf6(_0x381380,_0x5aa0c6);}),$(document)['on'](_0x32e570(0x237),function(_0x2bd709){const _0x48b677=_0x32e570;!$(_0x2bd709['target'])['closest'](_0x381380['$combo'])['length']&&_0x381380[_0x48b677(0x258)]['hide']();});}});},_0x3facfd=()=>{const _0x423994=_0x5e88ee,_0x487ae5=$(_0x423994(0x2a2)),_0x374a22=_0x487ae5[_0x423994(0x265)](),_0xb8222d=RED[_0x423994(0x1f5)][_0x423994(0x1f7)](_0x374a22);if(!_0xb8222d)return undefined;const {endpoint:_0x4352a2,securityMode:_0x3e486a,securityPolicy:_0x30480e,userIdentityType:_0x19437f,credentials:_0x190767}=_0xb8222d,_0x34f4b7={'endpoint':_0x4352a2,'securityMode':_0x3e486a,'securityPolicy':_0x30480e,'userIdentityType':_0x19437f,'credentials':_0x190767};return _0x34f4b7;},_0x2905f4=()=>{return{'endpointNode':_0x4cafc9};},_0x4cafc9=()=>{const _0x38d29f=_0x5e88ee,_0x37f998=$(_0x38d29f(0x2a2)),_0x3a3acc=_0x37f998[_0x38d29f(0x265)](),_0x1e04c6=_0x3facfd();if(!_0x1e04c6)return undefined;return{'id':_0x3a3acc};};RED[_0x5e88ee(0x1f5)][_0x5e88ee(0x286)]('OpcUa-Client2-Write',{'category':_0x5e88ee(0x279),'color':_0x5e88ee(0x1ff),'align':_0x5e88ee(0x28e),'icon':_0x5e88ee(0x288),'paletteLabel':_0x5e88ee(0x206),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'attributeId':{'value':_0x5e88ee(0x1f6),'required':!![]},'nodeId':{'value':'','required':![]}},'inputs':0x1,'outputs':0x1,'label'(){const _0x505059=_0x5e88ee;return this[_0x505059(0x248)]||'OPCUA\x20Client\x20Write';},'labelStyle'(){const _0x515183=_0x5e88ee;return this[_0x515183(0x248)]?_0x515183(0x20d):'';},'oneditprepare'(){const _0x2279fc=_0x5e88ee,_0x517adb=this;_0x64f3b7(),_0x517adb['inputs']=0x1;const _0x362e7e=$(_0x2279fc(0x256));_0x362e7e['nodeBrowser'](Object['assign'](Object[_0x2279fc(0x27a)]({},_0x2905f4()),{'isSelectable'(_0x5f7b2a){const _0x4c2fd2=_0x2279fc;return _0x5f7b2a[_0x4c2fd2(0x21a)]===_0x4c2fd2(0x208);}}));},'oneditsave'(){}});}()));function _0x5e93(_0x571ed5,_0x35986c){const _0x515116=_0x5151();return _0x5e93=function(_0x5e93b2,_0x56a438){_0x5e93b2=_0x5e93b2-0x1f2;let _0x4d6750=_0x515116[_0x5e93b2];return _0x4d6750;},_0x5e93(_0x571ed5,_0x35986c);}function _0x5151(){const _0x44e1a2=['li\x20>\x20.tree-text','pageX','fa-text-width','sterfive-combo-box','status','dblclick','elements','selected','919677CQrhwd','3920imEhXB','grey','fa-cog','IsForward','change','opcua','assign','nodeId','sterfive-dropdown','ns=0;i=45','call','BrowseName','log','<div\x20class=\x22spinner\x22></div>','scrollTop','data','ReferenceType','TypeDefinition','registerType','$input','../../icons/opcuanodeLogo.png','stringify','endpointNode','match','/browse','trigger','right','</li>','statusCode','message','value','HasTypeDefinition','top','loading','fa-object-group','fa-question','show','expanded','__parentNode','$toggleTreeBtn','pageY','children','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','77ZwYxId','text','\x22}><span\x20class=\x22tree-text\x22\x20title=','#node-input-endpoint','Invalid','find','reset','done','nodes','Value','node','baseUrl','i=61','.tree-text:first','application/json','throw','failure','\x22\x20style=\x22color:','#C0DEED','height','options','Method','already\x20fetched','addClass','><i\x20class=\x22fa\x20','write','POST','Variable','length','next','SteelBlue','append','node_label_italic','DisplayName','<ul\x20class=\x22sterfive-tree\x22></ul>','3619407bKnMvL','toggleClass','HasComponent','<div/>','hide','then','VariableType','li[key=\x22','/opcua-endpoint2','CadetBlue','nodeClass','references','fetched','fa-sliders',':first','DataType','opc.tcp://opcuademo.sterfive.com:26543','ns=0;i=85','.spinner','removeClass','filter','nodeIds','$verifyBtn','SeaGreen','fa-list-alt','DodgerBlue','position','relativePath','offset','statusText','Objects','HasChild','Unspecified','Inverse',';\x22></i>\x20','HasSubtype','element','Good','input-group','click','Organizes','endpoint','browsePath','displayName','nodeAddressString','toggle','isSelectable','599574acRDPz','355SJHqOQ','appendTo','$combo','expandable\x20expanded','NodeClass','left','4902342nyetnR','<li>error\x20','name','currentParent','isTypeRef','ObjectType','empty','fa-folder','fetching\x20failed\x20with\x20error','expandable','Forward','attr','$tree','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','752216sQCjoC','parentNode','#node-input-nodeId','reference','$dropdown','View','function','error','referenceTypeId','Both','verify','Object','json','toString','$inputGroup','browseName','$info','val','ns=0;i=46','replaceWith','5254731TZWRYG','animate','hasClass'];_0x5151=function(){return _0x44e1a2;};return _0x5151();}
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyYjM1NTUiLCJfMHgxODg4NmMiLCJfMHhmNDM1M2YiLCJfMHg1YmQ4M2UiLCJfMHgyODdmZWYiLCJfMHg0MTQ0OTgiLCJfMHg1MGNkOTciLCJfMHg0YzQ1YWUiLCJQcm9taXNlIiwiXzB4NGYwYWIzIiwiXzB4NGQ5NjlmIiwiXzB4YjUzOGZiIiwiXzB4NDhlZDcyIiwiXzB4NWJhYzQ4IiwiXzB4MzA5Mzg4IiwiXzB4MWI5ZGRiIiwiXzB4MmVhNDQ1IiwiXzB4M2VhNTA2IiwiXzB4NGUxMzAyIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MjdlMWJhIiwiXzB4NTU2NDg5IiwiXzB4M2Y2NzAyIiwiXzB4MWFmNzMxIiwiRXJyb3IiLCJfMHg2NTMxODEiLCJfMHgzMmQ5MzciLCJfMHgxY2Q0NzciLCJfMHg1YWUzMTAiLCJfMHgxMDY0ODMiLCJfMHgzZmY0MzYiLCJfMHg1Y2RjYWMiLCJfMHgzZDc4ZDEiLCJfMHg0NjljMmEiLCJfMHgzNDI1YTUiLCJfMHgzNmI3Y2EiLCJfMHg3YmEwNjUiLCJfMHgyMGY2N2MiLCJfMHg1NTU3ZWIiLCJfMHgzZTZkODMiLCJfMHg0MDUzNmEiLCJfMHgyMjdjYjUiLCJfMHg0MzI3YzIiLCJfMHg1NDAzZTQiLCJfMHg1YjM0YTAiLCJfMHg1OTIwMTYiLCJfMHg5N2U3ZjkiLCJfMHg0ZmViOTgiLCJlbmRwb2ludE5vZGUiLCJfMHgyYzMwZTgiLCJlbmRwb2ludCIsIl8weDU0ZTFhMyIsImJhc2VVcmwiLCJfMHgxYjA3N2YiLCJfMHg1ZDM1ZjEiLCJfMHg1NWIyMzQiLCJfMHg0MTQxMGUiLCJfMHgxNGJjOWUiLCJfMHgxOTAxNDkiLCJPYmplY3QiLCJfMHg1ZDQ2MjEiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4M2Q0N2E3IiwiXzB4N2Y4ZWY3IiwiXzB4MTM3MjI5IiwiXzB4Mjk2NGVkIiwiXzB4Mzk4ZmVlIiwiXzB4MzYxMzNkIiwiXzB4M2VhNDA0IiwiXzB4NDhkZjYwIiwiXzB4NDhkMDU3IiwiXzB4MjhjYjRjIiwibm9kZUlkIiwiXzB4MzFjYzQyIiwicm9vdE5vZGVJZCIsIl8weDE0MWNkMCIsImlzVHlwZSIsIl8weDJiODIwMSIsIl8weDI1N2UzYiIsIl8weDJhNTA3ZCIsIl8weDUyNzUwOSIsIl8weDI0NzJlMyIsIl8weDFhNTY0NSIsIl8weDFmOWY3YSIsIl8weDU5YjgxMCIsIl8weDU3YTQ4NiIsIl8weDNjNmViOSIsIl8weDFhNTUzNiIsIl8weDE3YWM4YSIsIl8weDVmMTEzMCIsIl8weDFkMjhkMSIsIl8weGY3OGNkMSIsIl8weDI2OTliNiIsIl8weDExOTZjNyIsIl8weDVjYzNkZiIsIl8weDU0ZGJiYSIsIl8weDQ1OWZiZiIsIl8weDdjYTlmNCIsInNldFRpbWVvdXQiLCJfMHg2OGJiODgiLCJfMHg0MmEwZTMiLCJfMHgzYTYzMTgiLCJfMHgxYmM1ZWMiLCJfMHgxMzgyOTkiLCJfMHgxOGE1NWEiLCJfMHgzMWFlNDAiLCJfMHg0YmIxOWIiLCJfMHg0MmFlMzYiLCJfMHgxYzJiZGMiLCJfMHg1OWE1ZTgiLCJfMHg1NzM2NmEiLCJfMHgxN2VkNjMiLCJfMHg0ODEwMmIiLCJfMHgzMGI0NDQiLCJfMHgxNzBiYmQiLCJfMHg0MjA4M2IiLCJfMHgxNzdiMjciLCJfMHg0YmYxMmMiLCJfMHgyYTUwNGMiLCIkIiwiXzB4NGRlMjg2IiwiXzB4MWFmODdhIiwiaWNvbiIsIl8weDQzZjEwNSIsImNvbG9yIiwiXzB4MjFjZGE2IiwiXzB4MTQwY2MxIiwiXzB4MTdkZGRlIiwiXzB4MmJiNjY5IiwiXzB4MTllMTFhIiwiXzB4MjQwOTk4IiwiXzB4NDQ0YmY2IiwiXzB4NTg3OTY3IiwiXzB4NWRkYzJlIiwiXzB4M2E0OWY3IiwiXzB4NDE3ZjcwIiwiXzB4MmJmZmI1IiwiXzB4NjdhZmJkIiwiXzB4NDVlMGE1IiwiXzB4NTgwODVkIiwiXzB4NGJkOWFhIiwiXzB4NGJjOTQyIiwiXzB4MWU4MjI3IiwiXzB4MzQxNmJjIiwiXzB4MmZlZjU1IiwiXzB4M2QxZWVmIiwiXzB4MjllNzQyIiwiXzB4OWU5MzQ2IiwidW5kZWZpbmVkIiwiXzB4MTA3YTQzIiwiXzB4NTYyMGI4IiwiXzB4NTI5MWVmIiwiXzB4ZDVlMDFiIiwiXzB4MzFkMWM1IiwiXzB4NTRmYTQ0IiwiXzB4NTkyYTViIiwiXzB4NDliNmU5IiwiXzB4NTc0MDVjIiwiXzB4MTdiYTJjIiwiXzB4OWQ0NGI5IiwiXzB4NTVkNDMyIiwiXzB4MTRkNjcxIiwiXzB4MzEzZjgyIiwicmVmZXJlbmNlcyIsIl8weDRiM2IxYSIsIl8weDFmZWM3NiIsIl8weDM5NDA0ZiIsIl8weDM2YTIxNyIsIl8weDUwOTc5ZCIsIl8weDVjZTMwYiIsIl8weDJkY2ZjNCIsIl8weDFlZDc0ZSIsIl8weGVkYzE1NCIsIl8weDZlODFmMSIsIl8weDUyZWY5ZiIsIl8weDY0ZjNiNyIsIl8weDFlM2UxMCIsIl8weDUwZDYyOSIsIl8weDUzY2Y1ZiIsIl8weDQwZDZiZSIsIl8weDI1MDI1NCIsIl8weDNmNzNiMiIsIl8weDUyNzgwYiIsIl8weDEyZGM1NiIsIl8weDU2NDJkYyIsIl8weDM4MTM4MCIsIl8weDI0OTJjMCIsIl8weDNkMjA0OCIsIl8weDJiMjQ4YiIsIl8weDIxM2NmNyIsIl8weDQ5YzVlNSIsIl8weDU1YzI5ZSIsIl8weGRjZDVhYSIsIl8weDI1NGZiZSIsIl8weDQ1ZDI5NSIsIl8weDVhMjk0MCIsIl8weDQwMmYyZSIsIl8weDQ0NjU1MCIsIl8weDU3ZWExMCIsIl8weDU4YTMyYyIsIl8weGI0OTc0ZiIsIl8weDE2NjI3MiIsIl8weDM3N2Y0NyIsIl8weDE1NzhiMCIsIl8weDEwZmRjYiIsIl8weDFlNzBlNyIsIl8weDRlYjg1NCIsIl8weDVhYTBjNiIsImRvY3VtZW50IiwiXzB4MmJkNzA5IiwiXzB4M2ZhY2ZkIiwiXzB4NDg3YWU1IiwiXzB4Mzc0YTIyIiwiXzB4YjgyMjJkIiwiUkVEIiwiXzB4NDM1MmEyIiwic2VjdXJpdHlNb2RlIiwiXzB4M2U0ODZhIiwic2VjdXJpdHlQb2xpY3kiLCJfMHgzMDQ4MGUiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4MTk0MzdmIiwiY3JlZGVudGlhbHMiLCJfMHgxOTA3NjciLCJfMHgzNGY0YjciLCJfMHgyOTA1ZjQiLCJfMHg0Y2FmYzkiLCJfMHgzN2Y5OTgiLCJfMHgzYTNhY2MiLCJfMHgxZTA0YzYiLCJfMHg1MTdhZGIiLCJfMHgzNjJlN2UiLCJfMHg1ZjdiMmEiXSwibWFwcGluZ3MiOiJ1aUJBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMsQ0FBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxNQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLHlCQUEyQixHLENBQU1ILFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQW1CWSxTQUFuQixDQUFMLEMsRUFBbUMsTUFBT0MsU0FBUCxDLENBQVlQLFNBQUEsQ0FBT08sU0FBUCxDLEdBQ2hGLFNBQVNKLFNBQVQsQ0FBY0ssU0FBZCxDLHlCQUF3QkEsU0FBQSxDLGdCQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLGdCQUFBLENBQVIsQ0FBZCxDQUFzQ2IsU0FBQSxDQUFNYSxTQUFBLEMsZ0JBQUEsQ0FBTixFLGdCQUFBLEVBQXlCUCxTQUF6QixDQUFvQ0ksU0FBcEMs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QUFGLENBRkYsQyxNQUlOLENBQU0sQyxPQUFFLEMsRUFBRixDQUpBLEMsVUFLTixDQUFVLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsSUFBYixDLE1BQTZCLEMsaUJBQTdCLENBTEosQyxhQU1OLENBQWEsQyxPQUFFLEMsZ0JBQUYsQyxVQUFrQixDLElBQWxCLENBTlAsQyxRQU9OLENBQVEsQyxPQUFFLEMsRUFBRixDLFVBQWEsQyxHQUFiLENBUEYsQ0FOZ0MsQyxRQWUxQyxDLEdBZjBDLEMsU0FnQjFDLEMsR0FoQjBDLEMsT0FpQjFDLEUsa0NBQ1csSyxnQkFBQSxHLDRCQWxCK0IsQyxZQW9CMUMsRSxrQ0FDVyxLLGdCQUFBLEUsZ0JBQUEsQyxJQXJCK0IsQyxlQXVCMUMsRSwyQkFDVWdCLFNBQUEsQ0FBTyxJLENBQ2J2RCxTQUFBLEUsQ0FDQXVELFNBQUEsQyxRQUFBLEUsR0FEQSxDQUVBLE1BQU1DLFNBQUEsQ0FBVWhILENBQUEsQyxnQkFBQSxDQUFoQixDQUNBZ0gsU0FBQSxDLGFBQUEsRUFBb0I5SyxNQUFBLEMsUUFBQSxFQUFjQSxNQUFBLEMsZ0JBQUEsRUFBYyxFQUFkLENBQWtCd0ssU0FBQSxFQUFsQixDQUFkLENBQWlFLEMsY0FBRSxDQUFhTyxTQUFiLEMsa0NBQ3hFQSxTQUFBLEMsZ0JBQUEsSSxrQkFEc0UsQ0FBakUsQ0FBcEIsQyxFQTVCc0MsQyxZQWdDMUMsRSxFQWhDMEMsQ0FBOUMsQyxFQXhtQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoX2EsIF9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIF9iXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC5fX3BhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgfTtcbiAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHhcIiwgcmV0VmFsdWUpO1xuICAgICAgICByZXR1cm4gcmV0VmFsdWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBlbmRwb2ludElkLFxuICAgICAgICAgICAgLy8gZW5kcG9pbnQ6IGVuZHBvaW50TnIuZW5kcG9pbnQsXG4gICAgICAgICAgICAvLyBzZWN1cml0eU1vZGU6IGVuZHBvaW50TnIuc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlQb2xpY3k6IGVuZHBvaW50TnIuc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlcklkZW50aXR5VHlwZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgLy8gY3JlZGVudGlhbDogZW5kcG9pbnROci5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICAvLyB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItV3JpdGVcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIndyaXRlXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIGF0dHJpYnV0ZUlkOiB7IHZhbHVlOiBcIlZhbHVlXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICB9LFxuICAgICAgICBpbnB1dHM6IDEsXG4gICAgICAgIG91dHB1dHM6IDEsXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIENsaWVudCBXcml0ZVwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
7
+ (function(_0x195423,_0x18bcc9){const _0x230a11=_0x6bf1,_0x126f19=_0x195423();while(!![]){try{const _0x30c104=-parseInt(_0x230a11(0xfc))/0x1+-parseInt(_0x230a11(0xd4))/0x2*(-parseInt(_0x230a11(0x14d))/0x3)+-parseInt(_0x230a11(0x127))/0x4*(-parseInt(_0x230a11(0xec))/0x5)+parseInt(_0x230a11(0x169))/0x6*(parseInt(_0x230a11(0x147))/0x7)+parseInt(_0x230a11(0xc7))/0x8*(parseInt(_0x230a11(0x103))/0x9)+parseInt(_0x230a11(0xfa))/0xa+-parseInt(_0x230a11(0x132))/0xb*(parseInt(_0x230a11(0xd8))/0xc);if(_0x30c104===_0x18bcc9)break;else _0x126f19['push'](_0x126f19['shift']());}catch(_0xf683b2){_0x126f19['push'](_0x126f19['shift']());}}}(_0x39ce,0x2af9c),(function(){'use strict';const _0x1796bd=_0x6bf1;function _0x268306(_0x5181a0,_0x1d0356,_0x141520,_0x395598){function _0x246cda(_0x4e26e5){return _0x4e26e5 instanceof _0x141520?_0x4e26e5:new _0x141520(function(_0xcbd60){_0xcbd60(_0x4e26e5);});}return new(_0x141520||(_0x141520=Promise))(function(_0x5e2791,_0x1db374){const _0x7f3acf=_0x6bf1;function _0x2cc2d6(_0x1cf4da){try{_0xa5f173(_0x395598['next'](_0x1cf4da));}catch(_0x24688a){_0x1db374(_0x24688a);}}function _0x15ca86(_0x535898){const _0x4797c7=_0x6bf1;try{_0xa5f173(_0x395598[_0x4797c7(0x10d)](_0x535898));}catch(_0x70da31){_0x1db374(_0x70da31);}}function _0xa5f173(_0x156562){const _0x4f7f16=_0x6bf1;_0x156562[_0x4f7f16(0x161)]?_0x5e2791(_0x156562[_0x4f7f16(0xd7)]):_0x246cda(_0x156562[_0x4f7f16(0xd7)])[_0x4f7f16(0x177)](_0x2cc2d6,_0x15ca86);}_0xa5f173((_0x395598=_0x395598[_0x7f3acf(0xb8)](_0x5181a0,_0x1d0356||[]))['next']());});}typeof SuppressedError===_0x1796bd(0x10e)?SuppressedError:function(_0x14572e,_0x11642e,_0x47423b){const _0x38d93f=_0x1796bd;var _0xee2b6f=new Error(_0x47423b);return _0xee2b6f['name']=_0x38d93f(0xc5),_0xee2b6f['error']=_0x14572e,_0xee2b6f[_0x38d93f(0x129)]=_0x11642e,_0xee2b6f;};const _0x214ed2=_0x1796bd(0xde),_0x4017b2=_0x1796bd(0x136),_0x3075fb=_0x1796bd(0xd3),_0x3dee16=_0x1796bd(0x110),_0x5ba84d=_0x1796bd(0xb9),_0xf55d5=_0x1796bd(0x115),_0xd4bb22='ns=0;i=40';var _0x2f0e33;(function(_0x405890){const _0xde6f77=_0x1796bd;_0x405890[_0x405890[_0xde6f77(0x144)]=0x0]=_0xde6f77(0x144),_0x405890[_0x405890['Inverse']=0x1]=_0xde6f77(0xbf),_0x405890[_0x405890[_0xde6f77(0x13e)]=0x2]=_0xde6f77(0x13e),_0x405890[_0x405890[_0xde6f77(0x16d)]=0x3]=_0xde6f77(0x16d);}(_0x2f0e33||(_0x2f0e33={})));var _0x1119b0;(function(_0x6ebcac){const _0x5c5230=_0x1796bd;_0x6ebcac[_0x6ebcac['Unspecified']=0x0]=_0x5c5230(0xd6),_0x6ebcac[_0x6ebcac['Object']=0x1]=_0x5c5230(0xbb),_0x6ebcac[_0x6ebcac['Variable']=0x2]=_0x5c5230(0x153),_0x6ebcac[_0x6ebcac[_0x5c5230(0x145)]=0x4]='Method',_0x6ebcac[_0x6ebcac[_0x5c5230(0xd9)]=0x8]=_0x5c5230(0xd9),_0x6ebcac[_0x6ebcac['VariableType']=0x10]=_0x5c5230(0xbd),_0x6ebcac[_0x6ebcac[_0x5c5230(0x124)]=0x20]='ReferenceType',_0x6ebcac[_0x6ebcac[_0x5c5230(0x13c)]=0x40]='DataType',_0x6ebcac[_0x6ebcac['View']=0x80]=_0x5c5230(0x15f);}(_0x1119b0||(_0x1119b0={})));var _0x9d9cfa;(function(_0xc2a88b){const _0x3279c2=_0x1796bd;_0xc2a88b[_0xc2a88b[_0x3279c2(0xbb)]=0x1]=_0x3279c2(0xbb),_0xc2a88b[_0xc2a88b[_0x3279c2(0x153)]=0x2]=_0x3279c2(0x153),_0xc2a88b[_0xc2a88b[_0x3279c2(0x145)]=0x4]=_0x3279c2(0x145),_0xc2a88b[_0xc2a88b[_0x3279c2(0xd9)]=0x8]='ObjectType',_0xc2a88b[_0xc2a88b[_0x3279c2(0xbd)]=0x10]='VariableType',_0xc2a88b[_0xc2a88b[_0x3279c2(0x124)]=0x20]='ReferenceType',_0xc2a88b[_0xc2a88b[_0x3279c2(0x13c)]=0x40]=_0x3279c2(0x13c),_0xc2a88b[_0xc2a88b[_0x3279c2(0x15f)]=0x80]=_0x3279c2(0x15f);}(_0x9d9cfa||(_0x9d9cfa={})));var _0xd0c2d1;(function(_0x470818){const _0x7ba276=_0x1796bd;_0x470818[_0x470818[_0x7ba276(0x124)]=0x1]=_0x7ba276(0x124),_0x470818[_0x470818['IsForward']=0x2]='IsForward',_0x470818[_0x470818[_0x7ba276(0x175)]=0x4]=_0x7ba276(0x175),_0x470818[_0x470818['BrowseName']=0x8]='BrowseName',_0x470818[_0x470818['DisplayName']=0x10]=_0x7ba276(0xf4),_0x470818[_0x470818[_0x7ba276(0xe6)]=0x20]=_0x7ba276(0xe6);}(_0xd0c2d1||(_0xd0c2d1={})));function _0x238d81(_0x243e15){const _0x4f57a8=_0x1796bd;switch(_0x243e15){case'Organizes':return _0x214ed2;case _0x4f57a8(0xfe):return _0x3dee16;case'HasComponent':return _0x3075fb;case'HasChild':return _0x5ba84d;case _0x4f57a8(0x12d):return _0xf55d5;case'HasTypeDefinition':return _0xd4bb22;}}const _0x2553e0=_0x516c7e=>{const _0x264676=_0x1796bd;switch(_0x516c7e['nodeClass']){case'Object':if(_0x516c7e[_0x264676(0x133)]===_0x214ed2);if(_0x516c7e[_0x264676(0x119)]===_0x4017b2||_0x516c7e[_0x264676(0x133)]===_0x264676(0x15a))return{'icon':_0x264676(0xf7),'color':_0x264676(0xc9)};return{'icon':_0x264676(0x151),'color':_0x264676(0xf8)};case'Variable':if(_0x516c7e[_0x264676(0x133)]===_0x3075fb)return{'icon':_0x264676(0xce),'color':_0x264676(0xc3)};else return _0x516c7e[_0x264676(0x133)]===_0x3dee16?{'icon':'fa-list-alt','color':_0x264676(0x118)}:{'icon':_0x264676(0xce),'color':'CadetBlue'};case'Method':return{'icon':_0x264676(0x138),'color':_0x264676(0x148)};case _0x264676(0xd9):return{'icon':'fa-object-group','color':_0x264676(0xed)};case _0x264676(0xbd):return{'icon':_0x264676(0x165),'color':'DarkOrange'};case'DataType':return{'icon':_0x264676(0xda),'color':_0x264676(0x108)};}return{'icon':'fa-question','color':_0x264676(0x121)};},_0x513915=(_0x1c4ab9,_0x1acdc3,_0x1ab344)=>_0x268306(void 0x0,[_0x1c4ab9,_0x1acdc3,_0x1ab344],void 0x0,function*({endpointNode:_0x3ff80c,endpoint:_0x28e350,baseUrl:_0x5ae3aa},_0x5abf67,_0x346188){const _0x396f65=_0x1796bd,_0x12f482=_0x5ae3aa+_0x396f65(0xe1),_0x5d1a12=_0x12f482+_0x396f65(0xc2),_0xfa0ff4=Object[_0x396f65(0x170)](Object[_0x396f65(0x170)]({},_0x346188),{'nodeId':_0x5abf67,'resultMask':0x3f}),_0x4b0112=yield fetch(_0x5d1a12,{'method':_0x396f65(0x107),'body':JSON[_0x396f65(0x15b)]({'endpointNode':_0x3ff80c,'endpoint':_0x28e350,'browseDescription':_0xfa0ff4}),'headers':{'Content-Type':_0x396f65(0x149)}});if(_0x4b0112[_0x396f65(0x135)]!==0xc8)return console[_0x396f65(0x112)](_0x396f65(0x12c),_0x4b0112[_0x396f65(0x135)],_0x4b0112[_0x396f65(0x134)]),{'references':[]};const _0x4beea6=yield _0x4b0112[_0x396f65(0x160)](),_0x35f84b=_0x4beea6[_0x396f65(0x176)][_0x396f65(0x13a)]||[];return{'references':_0x35f84b};}),_0x502638={'referenceTypeId':_0x238d81(_0x1796bd(0xf2)),'includeSubtypes':!![],'browseDirection':_0x2f0e33['Forward'],'nodeClassMask':_0x1119b0[_0x1796bd(0x153)]|_0x1119b0['Object']|_0x1119b0[_0x1796bd(0x145)],'resultMask':0x3f},_0x971775={'referenceTypeId':_0x238d81(_0x1796bd(0xff)),'includeSubtypes':!![],'browseDirection':_0x2f0e33[_0x1796bd(0x144)],'nodeClassMask':_0x1119b0['Variable']|_0x1119b0[_0x1796bd(0xbb)]|_0x1119b0[_0x1796bd(0x145)],'resultMask':0x3f},_0x28a056=(_0x47c360,_0x284e4c)=>_0x268306(void 0x0,[_0x47c360,_0x284e4c],void 0x0,function*({endpointNode:_0x309b73,endpoint:_0x13cd42,baseUrl:_0x226d2f},{nodeId:_0x537f57,rootNodeId:_0x36f909,isType:_0x4a82ca}){const _0x5549e8=_0x1796bd,_0x258193=_0x226d2f+_0x5549e8(0xe1),_0x22b493=_0x258193+_0x5549e8(0x16f),_0x4c23c3=yield fetch(_0x22b493,{'method':'POST','body':JSON[_0x5549e8(0x15b)]({'endpointNode':_0x309b73,'endpoint':_0x13cd42,'nodeId':_0x537f57,'rootNodeId':_0x36f909,'isType':_0x4a82ca}),'headers':{'Content-Type':_0x5549e8(0x149)}});if(_0x4c23c3['status']!==0xc8)return null;const _0x5496ac=yield _0x4c23c3[_0x5549e8(0x160)]();return _0x5496ac[_0x5549e8(0xe3)];}),_0x3c0d5c=(_0x17b42f,_0x3e0f1f,_0x174cef)=>_0x268306(void 0x0,[_0x17b42f,_0x3e0f1f,_0x174cef],void 0x0,function*({endpointNode:_0x1151cf,endpoint:_0x22d80b,baseUrl:_0x1ea4d5},_0x1dbc05,_0x3b0217){const _0x42e918=_0x1796bd,_0x52060a=_0x1ea4d5+_0x42e918(0xe1),_0x35d852=_0x52060a+_0x42e918(0xe7),_0x4200b7=_0x1dbc05[_0x42e918(0xba)](),_0x3da066=yield fetch(_0x35d852,{'method':_0x42e918(0x107),'body':JSON[_0x42e918(0x15b)]({'endpointNode':_0x1151cf,'endpoint':_0x22d80b,'nodeId':_0x4200b7}),'headers':{'Content-Type':_0x42e918(0x149)}}),_0xb0624d=(_0xaf1028,_0x215d1f)=>{const _0x2d02b4=_0x42e918;_0x3b0217[_0x2d02b4(0x157)](_0xaf1028)[_0x2d02b4(0xd5)](_0x2d02b4(0x13b))[_0x2d02b4(0xd5)](_0x215d1f),_0x3b0217[_0x2d02b4(0x10a)](),setTimeout(()=>{const _0x25e28f=_0x2d02b4;_0x3b0217[_0x25e28f(0xe9)](_0x215d1f),_0x3b0217['hide']();},0xbb8);},_0x3fc228=yield _0x3da066[_0x42e918(0x160)]();_0x3da066[_0x42e918(0x135)]!==0xc8?_0xb0624d(_0x42e918(0x104)+_0x4200b7,_0x42e918(0xd2)):_0x3fc228['statusCode'][_0x42e918(0x166)](/Good/)?(_0x1dbc05['val'](_0x3fc228['nodeAddressString']),_0x1dbc05[_0x42e918(0x102)](_0x42e918(0x113)),_0xb0624d('Good','ok')):(_0x1dbc05['val'](''+_0x4200b7),_0xb0624d(_0x3fc228[_0x42e918(0xc4)]+'\x20'+_0x3da066[_0x42e918(0x134)],'failure'));});function _0xdc020f(_0x47bfa1,_0x12aa4c){return _0x268306(this,void 0x0,void 0x0,function*(){const _0x5532a0=_0x6bf1,_0x574af7=_0x47bfa1['data'](_0x5532a0(0xd7)),_0x56c7cc=yield _0x513915(_0x12aa4c,_0x574af7,_0x502638),_0x3cf90e=yield _0x513915(_0x12aa4c,_0x574af7,_0x971775);return{'references':[..._0x56c7cc[_0x5532a0(0x13a)],..._0x3cf90e[_0x5532a0(0x13a)]]};});}const _0x5cf8f={'referenceTypeId':_0x238d81(_0x1796bd(0x12d)),'includeSubtypes':!![],'browseDirection':_0x2f0e33['Forward'],'nodeClassMask':_0x1119b0['ReferenceType']|_0x1119b0[_0x1796bd(0xd9)]|_0x1119b0[_0x1796bd(0x13c)]|_0x1119b0[_0x1796bd(0xbd)],'resultMask':0x3f};function _0x1d2486(_0x48cedd,_0x2fa779){return _0x268306(this,void 0x0,void 0x0,function*(){const _0x599049=_0x6bf1,_0x5a4088=_0x48cedd[_0x599049(0x16c)](_0x599049(0xd7)),_0x1ad4d8=yield _0x513915(_0x2fa779,_0x5a4088,_0x5cf8f);return _0x1ad4d8;});}const _0x178cf6=_0xcbce36=>{const _0x361e2c=_0x1796bd;var _0x13ad89,_0x21dafe,_0xe3daf,_0x243b1f;if(!_0xcbce36||!_0xcbce36[_0x361e2c(0xcf)]){const _0x49dc92=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x49dc92;}const _0x517ebd=_0xcbce36[_0x361e2c(0xcf)]['toString'](),_0x101424=((_0x13ad89=_0xcbce36['displayName'])===null||_0x13ad89===void 0x0?void 0x0:_0x13ad89[_0x361e2c(0x157)])||((_0x21dafe=_0xcbce36[_0x361e2c(0xbe)])===null||_0x21dafe===void 0x0?void 0x0:_0x21dafe[_0x361e2c(0x125)])||_0xcbce36[_0x361e2c(0xcf)][_0x361e2c(0x109)](),{icon:_0x54699c,color:_0x31df95}=_0x2553e0(_0xcbce36),_0x34111b='('+_0xcbce36[_0x361e2c(0xcf)]['toString']()+')\x20'+(((_0xe3daf=_0xcbce36[_0x361e2c(0xbe)])===null||_0xe3daf===void 0x0?void 0x0:_0xe3daf[_0x361e2c(0x125)])||((_0x243b1f=_0xcbce36['displayName'])===null||_0x243b1f===void 0x0?void 0x0:_0x243b1f['text'])||''),_0x4ff459=$(_0x361e2c(0x16b)+_0xcbce36[_0x361e2c(0xcf)]['toString']()+_0x361e2c(0x14f)+_0x34111b+'><i\x20class=\x22fa\x20'+_0x54699c+_0x361e2c(0x140)+_0x31df95+_0x361e2c(0x171)+_0x101424+_0x361e2c(0xd0));return _0x4ff459[_0x361e2c(0xd5)](_0x361e2c(0x11a)),_0x4ff459[_0x361e2c(0x16c)](_0x361e2c(0xd7),_0x517ebd),_0x4ff459[_0x361e2c(0x16c)](_0x361e2c(0x12b),_0xcbce36),_0x4ff459;},_0x10efe6=(_0x4bdc3b,_0x4517e3)=>{return _0x4517e3['find']('li[key=\x22'+_0x4bdc3b+'\x22]');},_0x275a6f=(_0x34de2b,_0x81e8df)=>{const _0x41f781=_0x1796bd;_0x34de2b['$tree'][_0x41f781(0x14c)]('li\x20>\x20.tree-text')[_0x41f781(0xe9)](_0x41f781(0xdb)),_0x81e8df[_0x41f781(0x14c)](_0x41f781(0xd1))['addClass'](_0x41f781(0xdb));},_0x29fe59=(_0x90ce77,_0x23662d,_0x18ffcf)=>_0x268306(void 0x0,void 0x0,void 0x0,function*(){const _0x5c4b10=_0x1796bd;let _0x11b7a5=_0x18ffcf[_0x5c4b10(0x13f)](':first');_0x23662d[_0x5c4b10(0x120)][_0x5c4b10(0x10b)]||[];const _0x2fbd39=_0x23662d[_0x5c4b10(0x117)]||[];if(_0x2fbd39[_0x5c4b10(0x152)]===0x0)return;for(const _0x9e7950 of _0x2fbd39){_0x11b7a5[_0x5c4b10(0x173)]('expandable')&&(yield _0x5ed10b(_0x90ce77,_0x11b7a5));const _0x493818=_0x10efe6(_0x9e7950,_0x11b7a5);if(_0x493818['length']===0x0)return;_0x11b7a5=_0x493818;}_0x275a6f(_0x90ce77,_0x11b7a5),_0x1f6f36(_0x90ce77[_0x5c4b10(0xca)],_0x11b7a5);});function _0x1f6f36(_0x475d2a,_0x50829a){const _0x4d7422=_0x1796bd,_0x4d884d=_0x50829a[_0x4d7422(0x128)]()[_0x4d7422(0xf5)],_0x340264=_0x475d2a['scrollTop']();if(_0x340264==undefined)return;const _0x25ba38=_0x340264+_0x4d884d-_0x475d2a[_0x4d7422(0x159)]()/0x2+_0x50829a['height']()/0x2;_0x475d2a[_0x4d7422(0xf6)]({'scrollTop':_0x25ba38},0x1f4);}const _0x49c5ce=(_0x1271a,_0x36dac1)=>_0x268306(void 0x0,void 0x0,void 0x0,function*(){const _0x419cd6=_0x1796bd,_0x1995e3=_0x1271a[_0x419cd6(0x11c)][_0x419cd6(0xba)](),_0x328e3c={'nodeId':_0x1995e3,'rootNodeId':_0x36dac1[_0x419cd6(0xcf)],'isType':_0x1271a[_0x419cd6(0x158)][_0x419cd6(0x146)]||![]},_0x4304fc=_0x4052ca(_0x1271a),_0x414cfa=yield _0x28a056(_0x4304fc,_0x328e3c);if(!_0x414cfa)return;yield _0x29fe59(_0x1271a,_0x414cfa,_0x1271a[_0x419cd6(0x168)]);});function _0x11ef6a(_0x218f15,_0x400a35,_0xde2152,_0x113f24){return _0x268306(this,void 0x0,void 0x0,function*(){const _0x57ed36=_0x6bf1;if(_0x400a35['hasClass'](_0x57ed36(0x172))){console[_0x57ed36(0x112)]('already\x20fetched');return;}if(_0x400a35[_0x57ed36(0x173)](_0x57ed36(0xe5))){console[_0x57ed36(0x112)](_0x57ed36(0xcb));return;}_0x400a35[_0x57ed36(0xd5)](_0x57ed36(0xe5)),_0x400a35[_0x57ed36(0x130)]('<div\x20class=\x22spinner\x22></div>');try{_0x400a35[_0x57ed36(0x13f)]('ul')[_0x57ed36(0xee)]();const {references:_0x58674f}=yield _0xde2152(_0x400a35,_0x113f24);for(const _0x1717d4 of _0x58674f){if(_0x218f15[_0x57ed36(0x158)]['filter']&&!_0x218f15[_0x57ed36(0x158)][_0x57ed36(0xef)](_0x1717d4))continue;const _0xb42dbb=_0x178cf6(_0x1717d4);_0x400a35['children']('ul')[_0x57ed36(0x130)](_0xb42dbb);}_0x400a35['addClass'](_0x57ed36(0x172));}catch(_0x12ba54){_0x400a35[_0x57ed36(0x13f)]('ul')[_0x57ed36(0x130)]('<li>error\x20'+_0x12ba54[_0x57ed36(0xe2)]+_0x57ed36(0x114)),console[_0x57ed36(0x112)](_0x57ed36(0xea),_0x12ba54);}_0x400a35[_0x57ed36(0x14c)]('.spinner')['remove'](),_0x400a35[_0x57ed36(0xe9)]('loading');});}function _0x4052ca(_0x4c89b3){const _0x2cd959=_0x1796bd,_0x54b66b={'baseUrl':_0x4c89b3[_0x2cd959(0x158)][_0x2cd959(0x101)],'endpointNode':typeof _0x4c89b3[_0x2cd959(0x158)][_0x2cd959(0x15c)]==='function'?_0x4c89b3[_0x2cd959(0x158)][_0x2cd959(0x15c)]():_0x4c89b3[_0x2cd959(0x158)][_0x2cd959(0x15c)],'endpoint':typeof _0x4c89b3[_0x2cd959(0x158)][_0x2cd959(0x13d)]===_0x2cd959(0x10e)?_0x4c89b3['options'][_0x2cd959(0x13d)]():_0x4c89b3[_0x2cd959(0x158)][_0x2cd959(0x13d)]};return _0x54b66b;}function _0x5ed10b(_0x552031,_0x2332c2){return _0x268306(this,void 0x0,void 0x0,function*(){const _0x84543=_0x6bf1;if(_0x2332c2['hasClass']('fetched')){_0x2332c2[_0x84543(0xe9)](_0x84543(0x11a))[_0x84543(0xd5)](_0x84543(0x123)),_0x2332c2[_0x84543(0x13f)]('ul')[_0x84543(0x12a)]();return;}const _0x2101fb=_0x4052ca(_0x552031),_0x25a772=!_0x552031[_0x84543(0x158)][_0x84543(0x146)]?_0xdc020f:_0x1d2486;try{yield _0x11ef6a(_0x552031,_0x2332c2,_0x25a772,_0x2101fb),_0x2332c2[_0x84543(0xe9)]('expandable')[_0x84543(0xd5)]('expanded');}catch(_0x1d6af0){_0x2332c2[_0x84543(0xe9)](_0x84543(0x11a))[_0x84543(0xd5)]('expanded'),console[_0x84543(0x112)](_0x84543(0x11e),_0x1d6af0);}});}const _0x55b419=()=>{const _0x4a3f9e=_0x1796bd;$[_0x4a3f9e(0x137)](_0x4a3f9e(0x16e),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x4a3f9e(0x122)},'nodeClass':_0x4a3f9e(0xbb),'nodeId':'ns=0;i=85','displayName':{'text':_0x4a3f9e(0x122)},'typeDefinition':_0x4017b2}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x268306(this,void 0x0,void 0x0,function*(){const _0x2b7932=_0x6bf1,_0x9ffa42=this;if(!_0x9ffa42[_0x2b7932(0xcd)]){const _0x377e4e=typeof _0x9ffa42[_0x2b7932(0x158)][_0x2b7932(0x11f)]===_0x2b7932(0x10e)?_0x9ffa42[_0x2b7932(0x158)][_0x2b7932(0x11f)][_0x2b7932(0xbc)](_0x9ffa42):_0x9ffa42[_0x2b7932(0x158)][_0x2b7932(0x11f)];if(_0x377e4e instanceof Promise){const _0x36d81c=yield _0x377e4e;_0x9ffa42['__parentNode']=_0x36d81c;}else _0x9ffa42[_0x2b7932(0xcd)]=_0x377e4e;}return _0x9ffa42['__parentNode'];});},'reset'(){return _0x268306(this,void 0x0,void 0x0,function*(){const _0x378adf=_0x6bf1,_0x1f7d31=this,_0x17c4f3=_0x1f7d31;_0x17c4f3[_0x378adf(0xcd)]=undefined,_0x1f7d31[_0x378adf(0x168)][_0x378adf(0xee)]();const _0x4efea6=yield this[_0x378adf(0x12e)](),_0x40300b=_0x178cf6(_0x4efea6);_0x1f7d31[_0x378adf(0x168)][_0x378adf(0x130)](_0x40300b),_0x1f7d31[_0x378adf(0x10f)]=_0x4efea6;});},'verify'(){const _0x3027f8=_0x4a3f9e,_0x18578c=this,_0x406743=_0x4052ca(_0x18578c);_0x3c0d5c(_0x406743,_0x18578c['$input'],_0x18578c[_0x3027f8(0xf1)]);},'_create'(){const _0x3c0976=_0x4a3f9e,_0x211c89=this;_0x211c89[_0x3c0976(0x11c)]=this['element'],_0x211c89[_0x3c0976(0x11b)]=$(_0x3c0976(0x139)),_0x211c89[_0x3c0976(0x11b)][_0x3c0976(0xd5)](_0x3c0976(0x106)),this[_0x3c0976(0x131)][_0x3c0976(0x12f)](_0x211c89[_0x3c0976(0x11b)]),_0x211c89['$inputGroup']=$(_0x3c0976(0x139))[_0x3c0976(0xd5)](_0x3c0976(0x111)),_0x211c89[_0x3c0976(0x11b)][_0x3c0976(0x130)](_0x211c89[_0x3c0976(0x116)]),_0x211c89[_0x3c0976(0x116)][_0x3c0976(0x130)](_0x211c89[_0x3c0976(0x11c)]),_0x211c89['$toggleTreeBtn']=$(_0x3c0976(0xc0)),_0x211c89['$inputGroup']['append'](_0x211c89['$toggleTreeBtn']),_0x211c89[_0x3c0976(0x15d)]['on'](_0x3c0976(0x141),function(){return _0x268306(this,void 0x0,void 0x0,function*(){const _0x5a263e=_0x6bf1;var _0x1de5d5;let _0x70c47a=![],_0x47f891;!_0x211c89[_0x5a263e(0xca)]['is'](_0x5a263e(0x126))&&(_0x211c89['$info'][_0x5a263e(0xdf)](),_0x47f891=yield _0x211c89[_0x5a263e(0x12e)](),(_0x47f891!==_0x211c89['currentParent']||((_0x1de5d5=_0x211c89[_0x5a263e(0x10f)])===null||_0x1de5d5===void 0x0?void 0x0:_0x1de5d5[_0x5a263e(0xcf)])!==_0x47f891['nodeId'])&&(yield _0x211c89['reset']()),_0x70c47a=!![]),_0x211c89['$dropdown'][_0x5a263e(0x12a)](),_0x70c47a&&(yield _0x49c5ce(_0x211c89,_0x47f891));});}),_0x211c89[_0x3c0976(0x142)]=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x211c89[_0x3c0976(0x116)][_0x3c0976(0x130)](_0x211c89[_0x3c0976(0x142)]),_0x211c89['$verifyBtn']['on']('click',()=>{const _0x1a748a=_0x3c0976;this[_0x1a748a(0x164)]();});!_0x211c89[_0x3c0976(0x11c)][_0x3c0976(0x11d)]('placeholder')&&_0x211c89[_0x3c0976(0x11c)][_0x3c0976(0x11d)](_0x3c0976(0xe0),_0x3c0976(0xcc));_0x211c89[_0x3c0976(0xf1)]=$(_0x3c0976(0xf9)),_0x211c89[_0x3c0976(0xf1)][_0x3c0976(0xdf)](),_0x211c89[_0x3c0976(0xca)]=$(_0x3c0976(0x139))['addClass']('sterfive-dropdown')['hide'](),_0x211c89[_0x3c0976(0x11b)][_0x3c0976(0x130)](_0x211c89['$info']),_0x211c89[_0x3c0976(0x11b)][_0x3c0976(0x130)](_0x211c89[_0x3c0976(0xca)]),_0x211c89[_0x3c0976(0x168)]=$(_0x3c0976(0xfd))[_0x3c0976(0x150)](_0x211c89[_0x3c0976(0xca)]),this[_0x3c0976(0x156)]();const _0x1d6b47=(_0x3e25e4,_0x4130e6)=>{const _0x20a3b3=_0x3c0976,_0x3612e8=0x14,_0x1b42fd=0x14,_0x1c15c1=_0x3e25e4[_0x20a3b3(0x174)](),_0x523daf=_0x4130e6;if(_0x523daf[_0x20a3b3(0xe4)]>=_0x1c15c1[_0x20a3b3(0xdc)]&&_0x523daf[_0x20a3b3(0xe4)]<=_0x1c15c1['left']+_0x3612e8&&_0x523daf[_0x20a3b3(0x15e)]>=_0x1c15c1[_0x20a3b3(0xf5)]&&_0x523daf[_0x20a3b3(0x15e)]<=_0x1c15c1[_0x20a3b3(0xf5)]+_0x1b42fd)return!![];return![];},_0x539658=_0x4f50bf=>_0x268306(this,void 0x0,void 0x0,function*(){const _0x1930a5=_0x3c0976;if(_0x4f50bf[_0x1930a5(0x173)](_0x1930a5(0x11a)))_0x5ed10b(_0x211c89,_0x4f50bf);else{if(_0x4f50bf[_0x1930a5(0x173)](_0x1930a5(0x123)))_0x4f50bf[_0x1930a5(0x13f)]('ul')['toggle'](),_0x4f50bf['toggleClass'](_0x1930a5(0x10c));else{if(_0x4f50bf[_0x1930a5(0x13f)]('ul')['children']()[_0x1930a5(0x152)]>0x0)_0x4f50bf[_0x1930a5(0x13f)]('ul')['toggle'](),_0x4f50bf[_0x1930a5(0xf3)](_0x1930a5(0x10c));else;}}});_0x211c89[_0x3c0976(0x168)]['on'](_0x3c0976(0x155),'li',function(_0x36e97e){const _0x61270c=_0x3c0976;var _0x5087f6,_0x49b6d4;_0x36e97e[_0x61270c(0xdd)]();let _0x127e57=$(this);if(_0x1d6b47(_0x127e57,_0x36e97e))_0x539658(_0x127e57);else{const _0x98eca1=_0x127e57[_0x61270c(0x16c)](_0x61270c(0xd7)),_0x4e15fc=_0x127e57[_0x61270c(0x16c)](_0x61270c(0x12b));if(_0x211c89[_0x61270c(0x158)][_0x61270c(0xf0)]&&!_0x211c89[_0x61270c(0x158)][_0x61270c(0xf0)](_0x4e15fc))return;_0x211c89[_0x61270c(0x11c)][_0x61270c(0x16c)](_0x61270c(0x12b),_0x4e15fc);const _0x521ce5=((_0x5087f6=_0x4e15fc[_0x61270c(0xc8)])===null||_0x5087f6===void 0x0?void 0x0:_0x5087f6[_0x61270c(0x157)])||((_0x49b6d4=_0x4e15fc[_0x61270c(0xbe)])===null||_0x49b6d4===void 0x0?void 0x0:_0x49b6d4[_0x61270c(0x125)])||_0x4e15fc[_0x61270c(0xcf)]['toString'](),_0x3e722c='['+_0x521ce5+']('+_0x98eca1+')';_0x211c89[_0x61270c(0x11c)][_0x61270c(0xba)](_0x3e722c),_0x211c89[_0x61270c(0x11c)][_0x61270c(0x102)](_0x61270c(0x113)),_0x211c89[_0x61270c(0xca)][_0x61270c(0xdf)]();}}),_0x211c89[_0x3c0976(0x168)]['on']('click','li',function(_0x10cb63){_0x10cb63['stopPropagation']();let _0x511ced=$(this);_0x1d6b47(_0x511ced,_0x10cb63)&&_0x539658(_0x511ced),_0x275a6f(_0x211c89,_0x511ced);}),$(document)['on'](_0x3c0976(0x141),function(_0x31e58b){const _0x1f508c=_0x3c0976;!$(_0x31e58b['target'])[_0x1f508c(0x16a)](_0x211c89['$combo'])['length']&&_0x211c89[_0x1f508c(0xca)][_0x1f508c(0xdf)]();});}});},_0x1940ea=()=>{const _0x410137=_0x1796bd,_0x560141=$(_0x410137(0xeb)),_0x5dabfb=_0x560141['val'](),_0x5acd0e=RED[_0x410137(0x167)][_0x410137(0xe8)](_0x5dabfb);if(!_0x5acd0e)return undefined;const {endpoint:_0x437739,securityMode:_0x8db647,securityPolicy:_0x18e693,userIdentityType:_0x24cf16,credentials:_0x3caa33}=_0x5acd0e,_0x57717d={'endpoint':_0x437739,'securityMode':_0x8db647,'securityPolicy':_0x18e693,'userIdentityType':_0x24cf16,'credentials':_0x3caa33};return _0x57717d;},_0x2ec5c7=()=>{return{'endpointNode':_0x3f4142};},_0x3f4142=()=>{const _0x30cb58=_0x1796bd,_0x21d7df=$(_0x30cb58(0xeb)),_0x1c34a0=_0x21d7df[_0x30cb58(0xba)](),_0xe5c64c=_0x1940ea();if(!_0xe5c64c)return undefined;return{'id':_0x1c34a0};};RED[_0x1796bd(0x167)][_0x1796bd(0x14e)](_0x1796bd(0x162),{'category':'opcua','color':_0x1796bd(0xfb),'align':'right','icon':_0x1796bd(0x100),'paletteLabel':_0x1796bd(0x105),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x1796bd(0x163)},'attributeId':{'value':'Value','required':!![]},'nodeId':{'value':'','required':![]}},'inputs':0x1,'outputs':0x1,'label'(){const _0x110afb=_0x1796bd;return this[_0x110afb(0x125)]||_0x110afb(0x14b);},'labelStyle'(){const _0x249412=_0x1796bd;return this['name']?_0x249412(0x14a):'';},'oneditprepare'(){const _0x48a2dd=_0x1796bd,_0x298e21=this;_0x55b419(),_0x298e21[_0x48a2dd(0xc6)]=0x1;const _0x30960f=$(_0x48a2dd(0x154));_0x30960f[_0x48a2dd(0xc1)](Object['assign'](Object[_0x48a2dd(0x170)]({},_0x2ec5c7()),{'isSelectable'(_0x3ad7e7){const _0x9f3339=_0x48a2dd;return _0x3ad7e7[_0x9f3339(0x143)]===_0x9f3339(0x153);}}));},'oneditsave'(){}});}()));function _0x6bf1(_0x446925,_0x32f0da){const _0x39cee3=_0x39ce();return _0x6bf1=function(_0x6bf109,_0x4a2de2){_0x6bf109=_0x6bf109-0xb8;let _0x2108cf=_0x39cee3[_0x6bf109];return _0x2108cf;},_0x6bf1(_0x446925,_0x32f0da);}function _0x39ce(){const _0x2e3db7=['change','</li>','ns=0;i=45','$inputGroup','nodeIds','DodgerBlue','typeDefinition','expandable','$combo','$input','attr','error','parentNode','relativePath','grey','Objects','expanded','ReferenceType','name',':visible','4lfGkHd','position','suppressed','toggle','reference','fetching\x20failed\x20with\x20error','HasSubtype','resolveParentNode','replaceWith','append','element','459063DULObh','referenceTypeId','statusText','status','ns=0;i=61','widget','fa-cog','<div/>','references','sterfive-info','DataType','endpoint','Both','children','\x22\x20style=\x22color:','click','$verifyBtn','nodeClass','Forward','Method','isTypeRef','7uSbPvo','SandyBrown','application/json','node_label_italic','OPCUA\x20Client\x20Write','find','75YLqIPy','registerType','\x22}><span\x20class=\x22tree-text\x22\x20title=','appendTo','fa-object-group','length','Variable','#node-input-nodeId','dblclick','reset','text','options','height','i=61','stringify','endpointNode','$toggleTreeBtn','pageY','View','json','done','OpcUa-Client2-Write','OpcUa-Endpoint2','verify','fa-sliders','match','nodes','$tree','501162wObWeI','closest','<li\x20key=\x22','data','Invalid','sterfive.nodeBrowser','/walk-backward','assign',';\x22></i>\x20','fetched','hasClass','offset','NodeClass','browseResult','then','apply','ns=0;i=34','val','Object','call','VariableType','browseName','Inverse','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','nodeBrowser','/browse','SteelBlue','statusCode','SuppressedError','inputs','3440jcRmxg','displayName','rgba(61,\x2060,\x204,\x200.525)','$dropdown','already\x20loading','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','__parentNode','fa-list-alt','nodeId','</span><ul></ul></li>','.tree-text:first','failure','ns=0;i=47','13902EOKXai','addClass','Unspecified','value','60TfWqnA','ObjectType','fa-text-width','selected','left','stopPropagation','ns=0;i=35','hide','placeholder','/opcua-for-node-red','message','browsePath','pageX','loading','TypeDefinition','/checkNodeId','node','removeClass','err','#node-input-endpoint','142355ZupWwJ','DarkOrange','empty','filter','isSelectable','$info','HasChild','toggleClass','DisplayName','top','animate','fa-folder','SeaGreen','<div\x20class=\x22info-text\x22></div>','1582870rBFdNL','#C0DEED','113977kcDcbl','<ul\x20class=\x22sterfive-tree\x22></ul>','HasProperty','Organizes','../../icons/opcuanodeLogo.png','baseUrl','trigger','1143WwQJQw','!!failure!!','write','sterfive-combo-box','POST','CadetBlue','toString','show','elements','expandable\x20expanded','throw','function','currentParent','ns=0;i=46','input-group','log'];_0x39ce=function(){return _0x2e3db7;};return _0x39ce();}
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyNjgzMDYiLCJfMHg1MTgxYTAiLCJfMHgxZDAzNTYiLCJfMHgxNDE1MjAiLCJfMHgzOTU1OTgiLCJfMHgyNDZjZGEiLCJfMHg0ZTI2ZTUiLCJfMHhjYmQ2MCIsIlByb21pc2UiLCJfMHg1ZTI3OTEiLCJfMHgxZGIzNzQiLCJfMHgyY2MyZDYiLCJfMHgxY2Y0ZGEiLCJfMHhhNWYxNzMiLCJfMHgyNDY4OGEiLCJfMHgxNWNhODYiLCJfMHg1MzU4OTgiLCJfMHg3MGRhMzEiLCJfMHgxNTY1NjIiLCJTdXBwcmVzc2VkRXJyb3IiLCJfMHgxNDU3MmUiLCJfMHgxMTY0MmUiLCJfMHg0NzQyM2IiLCJfMHhlZTJiNmYiLCJFcnJvciIsIl8weDIxNGVkMiIsIl8weDQwMTdiMiIsIl8weDMwNzVmYiIsIl8weDNkZWUxNiIsIl8weDViYTg0ZCIsIl8weGY1NWQ1IiwiXzB4ZDRiYjIyIiwiXzB4MmYwZTMzIiwiXzB4NDA1ODkwIiwiXzB4MTExOWIwIiwiXzB4NmViY2FjIiwiXzB4OWQ5Y2ZhIiwiXzB4YzJhODhiIiwiXzB4ZDBjMmQxIiwiXzB4NDcwODE4IiwiXzB4MjM4ZDgxIiwiXzB4MjQzZTE1IiwiXzB4MjU1M2UwIiwiXzB4NTE2YzdlIiwiXzB4NTEzOTE1IiwiXzB4MWM0YWI5IiwiXzB4MWFjZGMzIiwiXzB4MWFiMzQ0IiwiZW5kcG9pbnROb2RlIiwiXzB4M2ZmODBjIiwiZW5kcG9pbnQiLCJfMHgyOGUzNTAiLCJiYXNlVXJsIiwiXzB4NWFlM2FhIiwiXzB4NWFiZjY3IiwiXzB4MzQ2MTg4IiwiXzB4MTJmNDgyIiwiXzB4NWQxYTEyIiwiXzB4ZmEwZmY0IiwiT2JqZWN0IiwiXzB4NGIwMTEyIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDRiZWVhNiIsIl8weDM1Zjg0YiIsIl8weDUwMjYzOCIsIl8weDk3MTc3NSIsIl8weDI4YTA1NiIsIl8weDQ3YzM2MCIsIl8weDI4NGU0YyIsIl8weDMwOWI3MyIsIl8weDEzY2Q0MiIsIl8weDIyNmQyZiIsIm5vZGVJZCIsIl8weDUzN2Y1NyIsInJvb3ROb2RlSWQiLCJfMHgzNmY5MDkiLCJpc1R5cGUiLCJfMHg0YTgyY2EiLCJfMHgyNTgxOTMiLCJfMHgyMmI0OTMiLCJfMHg0YzIzYzMiLCJfMHg1NDk2YWMiLCJfMHgzYzBkNWMiLCJfMHgxN2I0MmYiLCJfMHgzZTBmMWYiLCJfMHgxNzRjZWYiLCJfMHgxMTUxY2YiLCJfMHgyMmQ4MGIiLCJfMHgxZWE0ZDUiLCJfMHgxZGJjMDUiLCJfMHgzYjAyMTciLCJfMHg1MjA2MGEiLCJfMHgzNWQ4NTIiLCJfMHg0MjAwYjciLCJfMHgzZGEwNjYiLCJfMHhiMDYyNGQiLCJfMHhhZjEwMjgiLCJfMHgyMTVkMWYiLCJzZXRUaW1lb3V0IiwiXzB4M2ZjMjI4IiwiXzB4ZGMwMjBmIiwiXzB4NDdiZmExIiwiXzB4MTJhYTRjIiwiXzB4NTc0YWY3IiwiXzB4NTZjN2NjIiwiXzB4M2NmOTBlIiwiXzB4NWNmOGYiLCJfMHgxZDI0ODYiLCJfMHg0OGNlZGQiLCJfMHgyZmE3NzkiLCJfMHg1YTQwODgiLCJfMHgxYWQ0ZDgiLCJfMHgxNzhjZjYiLCJfMHhjYmNlMzYiLCJfMHgxM2FkODkiLCJfMHgyMWRhZmUiLCJfMHhlM2RhZiIsIl8weDI0M2IxZiIsIl8weDQ5ZGM5MiIsIiQiLCJfMHg1MTdlYmQiLCJfMHgxMDE0MjQiLCJpY29uIiwiXzB4NTQ2OTljIiwiY29sb3IiLCJfMHgzMWRmOTUiLCJfMHgzNDExMWIiLCJfMHg0ZmY0NTkiLCJfMHgxMGVmZTYiLCJfMHg0YmRjM2IiLCJfMHg0NTE3ZTMiLCJfMHgyNzVhNmYiLCJfMHgzNGRlMmIiLCJfMHg4MWU4ZGYiLCJfMHgyOWZlNTkiLCJfMHg5MGNlNzciLCJfMHgyMzY2MmQiLCJfMHgxOGZmY2YiLCJfMHgxMWI3YTUiLCJfMHgyZmJkMzkiLCJfMHg5ZTc5NTAiLCJfMHg1ZWQxMGIiLCJfMHg0OTM4MTgiLCJfMHgxZjZmMzYiLCJfMHg0NzVkMmEiLCJfMHg1MDgyOWEiLCJfMHg0ZDg4NGQiLCJfMHgzNDAyNjQiLCJ1bmRlZmluZWQiLCJfMHgyNWJhMzgiLCJfMHg0OWM1Y2UiLCJfMHgxMjcxYSIsIl8weDM2ZGFjMSIsIl8weDE5OTVlMyIsIl8weDMyOGUzYyIsIl8weDQzMDRmYyIsIl8weDQwNTJjYSIsIl8weDQxNGNmYSIsIl8weDExZWY2YSIsIl8weDIxOGYxNSIsIl8weDQwMGEzNSIsIl8weGRlMjE1MiIsIl8weDExM2YyNCIsInJlZmVyZW5jZXMiLCJfMHg1ODY3NGYiLCJfMHgxNzE3ZDQiLCJfMHhiNDJkYmIiLCJfMHgxMmJhNTQiLCJfMHg0Yzg5YjMiLCJfMHg1NGI2NmIiLCJfMHg1NTIwMzEiLCJfMHgyMzMyYzIiLCJfMHgyMTAxZmIiLCJfMHgyNWE3NzIiLCJfMHgxZDZhZjAiLCJfMHg1NWI0MTkiLCJfMHg5ZmZhNDIiLCJfMHgzNzdlNGUiLCJfMHgzNmQ4MWMiLCJfMHgxZjdkMzEiLCJfMHgxN2M0ZjMiLCJfMHg0ZWZlYTYiLCJfMHg0MDMwMGIiLCJfMHgxODU3OGMiLCJfMHg0MDY3NDMiLCJfMHgyMTFjODkiLCJfMHgxZGU1ZDUiLCJfMHg3MGM0N2EiLCJfMHg0N2Y4OTEiLCJfMHgxZDZiNDciLCJfMHgzZTI1ZTQiLCJfMHg0MTMwZTYiLCJfMHgzNjEyZTgiLCJfMHgxYjQyZmQiLCJfMHgxYzE1YzEiLCJfMHg1MjNkYWYiLCJfMHg1Mzk2NTgiLCJfMHg0ZjUwYmYiLCJfMHgzNmU5N2UiLCJfMHg1MDg3ZjYiLCJfMHg0OWI2ZDQiLCJfMHgxMjdlNTciLCJfMHg5OGVjYTEiLCJfMHg0ZTE1ZmMiLCJfMHg1MjFjZTUiLCJfMHgzZTcyMmMiLCJfMHgxMGNiNjMiLCJfMHg1MTFjZWQiLCJkb2N1bWVudCIsIl8weDMxZTU4YiIsIl8weDE5NDBlYSIsIl8weDU2MDE0MSIsIl8weDVkYWJmYiIsIl8weDVhY2QwZSIsIlJFRCIsIl8weDQzNzczOSIsInNlY3VyaXR5TW9kZSIsIl8weDhkYjY0NyIsInNlY3VyaXR5UG9saWN5IiwiXzB4MThlNjkzIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDI0Y2YxNiIsImNyZWRlbnRpYWxzIiwiXzB4M2NhYTMzIiwiXzB4NTc3MTdkIiwiXzB4MmVjNWM3IiwiXzB4M2Y0MTQyIiwiXzB4MjFkN2RmIiwiXzB4MWMzNGEwIiwiXzB4ZTVjNjRjIiwiXzB4Mjk4ZTIxIiwiXzB4MzA5NjBmIiwiXzB4M2FkN2U3Il0sIm1hcHBpbmdzIjoic29CQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxRQUFWLEMsQ0FBcUJBLFFBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLENBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsTUFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxnQkFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxlQUFBLENBQVIsQ0FBZCxDQUFzQ2IsU0FBQSxDQUFNYSxTQUFBLEMsZUFBQSxDQUFOLEUsZ0JBQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxTQUFwQyxDLEVBQzlE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QUFGLEMsVUFBa0IsQyxJQUFsQixDQU5QLEMsUUFPTixDQUFRLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsR0FBYixDQVBGLENBTmdDLEMsUUFlMUMsQyxHQWYwQyxDLFNBZ0IxQyxDLEdBaEIwQyxDLE9BaUIxQyxFLGtDQUNXLEssZ0JBQUEsRyxrQkFsQitCLEMsWUFvQjFDLEUsa0NBQ1csSyxNQUFBLEUsZ0JBQUEsQyxJQXJCK0IsQyxlQXVCMUMsRSwyQkFDVWdCLFNBQUEsQ0FBTyxJLENBQ2J2RCxTQUFBLEUsQ0FDQXVELFNBQUEsQyxlQUFBLEUsR0FEQSxDQUVBLE1BQU1DLFNBQUEsQ0FBVWhILENBQUEsQyxnQkFBQSxDQUFoQixDQUNBZ0gsU0FBQSxDLGVBQUEsRUFBb0I5SyxNQUFBLEMsUUFBQSxFQUFjQSxNQUFBLEMsZ0JBQUEsRUFBYyxFQUFkLENBQWtCd0ssU0FBQSxFQUFsQixDQUFkLENBQWlFLEMsY0FBRSxDQUFhTyxTQUFiLEMsa0NBQ3hFQSxTQUFBLEMsZ0JBQUEsSSxrQkFEc0UsQ0FBakUsQ0FBcEIsQyxFQTVCc0MsQyxZQWdDMUMsRSxFQWhDMEMsQ0FBOUMsQyxFQXhtQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoX2EsIF9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIF9iXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC5fX3BhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgfTtcbiAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHhcIiwgcmV0VmFsdWUpO1xuICAgICAgICByZXR1cm4gcmV0VmFsdWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBlbmRwb2ludElkLFxuICAgICAgICAgICAgLy8gZW5kcG9pbnQ6IGVuZHBvaW50TnIuZW5kcG9pbnQsXG4gICAgICAgICAgICAvLyBzZWN1cml0eU1vZGU6IGVuZHBvaW50TnIuc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlQb2xpY3k6IGVuZHBvaW50TnIuc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlcklkZW50aXR5VHlwZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgLy8gY3JlZGVudGlhbDogZW5kcG9pbnROci5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICAvLyB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItV3JpdGVcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIndyaXRlXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIGF0dHJpYnV0ZUlkOiB7IHZhbHVlOiBcIlZhbHVlXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICB9LFxuICAgICAgICBpbnB1dHM6IDEsXG4gICAgICAgIG91dHB1dHM6IDEsXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIENsaWVudCBXcml0ZVwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-Write">
11
11
  <h3>OpcUa Write</h3>