@opcua/for-node-red 2.13.0 → 2.15.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(_0x42a10c,_0x3fe827){const _0x1e0bb7=_0x13ab,_0x44654c=_0x42a10c();while(!![]){try{const _0x47aa04=-parseInt(_0x1e0bb7(0x276))/0x1*(parseInt(_0x1e0bb7(0x2a2))/0x2)+-parseInt(_0x1e0bb7(0x1d9))/0x3*(-parseInt(_0x1e0bb7(0x2a4))/0x4)+-parseInt(_0x1e0bb7(0x29b))/0x5*(-parseInt(_0x1e0bb7(0x289))/0x6)+parseInt(_0x1e0bb7(0x246))/0x7*(-parseInt(_0x1e0bb7(0x27d))/0x8)+-parseInt(_0x1e0bb7(0x230))/0x9*(parseInt(_0x1e0bb7(0x28c))/0xa)+parseInt(_0x1e0bb7(0x21c))/0xb*(-parseInt(_0x1e0bb7(0x275))/0xc)+parseInt(_0x1e0bb7(0x214))/0xd;if(_0x47aa04===_0x3fe827)break;else _0x44654c['push'](_0x44654c['shift']());}catch(_0x3eb0a6){_0x44654c['push'](_0x44654c['shift']());}}}(_0x32a3,0x8287f),(function(){'use strict';const _0xf7ce3c=_0x13ab;function _0x3477c0(_0x519bd0,_0x3ceb7c,_0x4c775d,_0x3823e8){function _0x19fe2e(_0x37807a){return _0x37807a instanceof _0x4c775d?_0x37807a:new _0x4c775d(function(_0x55d389){_0x55d389(_0x37807a);});}return new(_0x4c775d||(_0x4c775d=Promise))(function(_0x3ccffa,_0x17951b){const _0x1c520b=_0x13ab;function _0x5af8de(_0x37290b){try{_0x21590e(_0x3823e8['next'](_0x37290b));}catch(_0x5677e3){_0x17951b(_0x5677e3);}}function _0x386425(_0x189aa0){const _0x369626=_0x13ab;try{_0x21590e(_0x3823e8[_0x369626(0x236)](_0x189aa0));}catch(_0x2b217a){_0x17951b(_0x2b217a);}}function _0x21590e(_0xe59f85){const _0x1bd6b9=_0x13ab;_0xe59f85[_0x1bd6b9(0x27f)]?_0x3ccffa(_0xe59f85[_0x1bd6b9(0x237)]):_0x19fe2e(_0xe59f85[_0x1bd6b9(0x237)])['then'](_0x5af8de,_0x386425);}_0x21590e((_0x3823e8=_0x3823e8[_0x1c520b(0x221)](_0x519bd0,_0x3ceb7c||[]))[_0x1c520b(0x20b)]());});}typeof SuppressedError===_0xf7ce3c(0x1f3)?SuppressedError:function(_0x4b1396,_0x5b2982,_0x11d18f){const _0x1b8342=_0xf7ce3c;var _0x19b3e1=new Error(_0x11d18f);return _0x19b3e1[_0x1b8342(0x2ab)]=_0x1b8342(0x203),_0x19b3e1[_0x1b8342(0x1f4)]=_0x4b1396,_0x19b3e1[_0x1b8342(0x22a)]=_0x5b2982,_0x19b3e1;};const _0x1a2b0d='ns=0;i=35',_0x5b107d=_0xf7ce3c(0x20a),_0x26068e=_0xf7ce3c(0x220),_0x935081=_0xf7ce3c(0x1ca),_0x589eb8=_0xf7ce3c(0x23d),_0x110313=_0xf7ce3c(0x248),_0x339129=_0xf7ce3c(0x2a8);var _0x2ab832;(function(_0x507d07){const _0x365691=_0xf7ce3c;_0x507d07[_0x507d07[_0x365691(0x26e)]=0x0]='Forward',_0x507d07[_0x507d07[_0x365691(0x260)]=0x1]=_0x365691(0x260),_0x507d07[_0x507d07[_0x365691(0x25f)]=0x2]=_0x365691(0x25f),_0x507d07[_0x507d07['Invalid']=0x3]=_0x365691(0x29a);}(_0x2ab832||(_0x2ab832={})));var _0x11916e;(function(_0x22fad8){const _0x32a3ef=_0xf7ce3c;_0x22fad8[_0x22fad8[_0x32a3ef(0x1c5)]=0x0]=_0x32a3ef(0x1c5),_0x22fad8[_0x22fad8[_0x32a3ef(0x24a)]=0x1]='Object',_0x22fad8[_0x22fad8[_0x32a3ef(0x1e5)]=0x2]=_0x32a3ef(0x1e5),_0x22fad8[_0x22fad8[_0x32a3ef(0x273)]=0x4]=_0x32a3ef(0x273),_0x22fad8[_0x22fad8[_0x32a3ef(0x23f)]=0x8]=_0x32a3ef(0x23f),_0x22fad8[_0x22fad8[_0x32a3ef(0x2a0)]=0x10]='VariableType',_0x22fad8[_0x22fad8[_0x32a3ef(0x228)]=0x20]=_0x32a3ef(0x228),_0x22fad8[_0x22fad8[_0x32a3ef(0x238)]=0x40]='DataType',_0x22fad8[_0x22fad8[_0x32a3ef(0x2a6)]=0x80]='View';}(_0x11916e||(_0x11916e={})));var _0x36a23a;(function(_0x55fb36){const _0x46ba32=_0xf7ce3c;_0x55fb36[_0x55fb36[_0x46ba32(0x24a)]=0x1]=_0x46ba32(0x24a),_0x55fb36[_0x55fb36[_0x46ba32(0x1e5)]=0x2]=_0x46ba32(0x1e5),_0x55fb36[_0x55fb36['Method']=0x4]='Method',_0x55fb36[_0x55fb36[_0x46ba32(0x23f)]=0x8]=_0x46ba32(0x23f),_0x55fb36[_0x55fb36[_0x46ba32(0x2a0)]=0x10]='VariableType',_0x55fb36[_0x55fb36[_0x46ba32(0x228)]=0x20]=_0x46ba32(0x228),_0x55fb36[_0x55fb36[_0x46ba32(0x238)]=0x40]=_0x46ba32(0x238),_0x55fb36[_0x55fb36['View']=0x80]=_0x46ba32(0x2a6);}(_0x36a23a||(_0x36a23a={})));var _0x35e690;(function(_0xfa8f32){const _0x2425e4=_0xf7ce3c;_0xfa8f32[_0xfa8f32[_0x2425e4(0x228)]=0x1]=_0x2425e4(0x228),_0xfa8f32[_0xfa8f32[_0x2425e4(0x1c8)]=0x2]=_0x2425e4(0x1c8),_0xfa8f32[_0xfa8f32[_0x2425e4(0x2a7)]=0x4]=_0x2425e4(0x2a7),_0xfa8f32[_0xfa8f32['BrowseName']=0x8]='BrowseName',_0xfa8f32[_0xfa8f32[_0x2425e4(0x24b)]=0x10]='DisplayName',_0xfa8f32[_0xfa8f32[_0x2425e4(0x1d5)]=0x20]=_0x2425e4(0x1d5);}(_0x35e690||(_0x35e690={})));function _0x2b9148(_0x49bb60){const _0x42276a=_0xf7ce3c;switch(_0x49bb60){case _0x42276a(0x1d4):return _0x1a2b0d;case _0x42276a(0x1c4):return _0x935081;case _0x42276a(0x2a1):return _0x26068e;case'HasChild':return _0x589eb8;case _0x42276a(0x23c):return _0x110313;case _0x42276a(0x223):return _0x339129;}}const _0x4bd5d1=_0x302c63=>{const _0x170390=_0xf7ce3c;switch(_0x302c63[_0x170390(0x2a5)]){case _0x170390(0x24a):if(_0x302c63['referenceTypeId']===_0x1a2b0d);if(_0x302c63[_0x170390(0x1ee)]===_0x5b107d||_0x302c63[_0x170390(0x287)]==='i=61')return{'icon':_0x170390(0x21a),'color':_0x170390(0x227)};return{'icon':_0x170390(0x243),'color':'SeaGreen'};case _0x170390(0x1e5):if(_0x302c63['referenceTypeId']===_0x26068e)return{'icon':_0x170390(0x293),'color':'SteelBlue'};else return _0x302c63[_0x170390(0x287)]===_0x935081?{'icon':_0x170390(0x293),'color':'DodgerBlue'}:{'icon':_0x170390(0x293),'color':_0x170390(0x1cd)};case _0x170390(0x273):return{'icon':'fa-cog','color':_0x170390(0x257)};case _0x170390(0x23f):return{'icon':_0x170390(0x243),'color':_0x170390(0x1f6)};case'VariableType':return{'icon':'fa-sliders','color':'DarkOrange'};case _0x170390(0x238):return{'icon':_0x170390(0x297),'color':_0x170390(0x1cd)};}return{'icon':'fa-question','color':_0x170390(0x288)};},_0x59e969=(_0x407962,_0x24f647,_0x3da188)=>_0x3477c0(void 0x0,[_0x407962,_0x24f647,_0x3da188],void 0x0,function*({endpointNode:_0x3a6c63,endpoint:_0x51bba4,baseUrl:_0x441d7a},_0x492cf1,_0xcbb79f){const _0x5d2db5=_0xf7ce3c,_0x366088=_0x441d7a+_0x5d2db5(0x22b),_0x1ff6a8=_0x366088+_0x5d2db5(0x1e3),_0x22ec30=Object['assign'](Object[_0x5d2db5(0x2a9)]({},_0xcbb79f),{'nodeId':_0x492cf1,'resultMask':0x3f}),_0x47c22a=yield fetch(_0x1ff6a8,{'method':_0x5d2db5(0x264),'body':JSON[_0x5d2db5(0x23a)]({'endpointNode':_0x3a6c63,'endpoint':_0x51bba4,'browseDescription':_0x22ec30}),'headers':{'Content-Type':_0x5d2db5(0x28e)}});if(_0x47c22a['status']!==0xc8)return console['log'](_0x5d2db5(0x1ef),_0x47c22a[_0x5d2db5(0x211)],_0x47c22a[_0x5d2db5(0x210)]),{'references':[]};const _0x290508=yield _0x47c22a[_0x5d2db5(0x1d3)](),_0x15350=_0x290508[_0x5d2db5(0x231)][_0x5d2db5(0x23b)]||[];return{'references':_0x15350};}),_0x44da3b={'referenceTypeId':_0x2b9148(_0xf7ce3c(0x290)),'includeSubtypes':!![],'browseDirection':_0x2ab832[_0xf7ce3c(0x26e)],'nodeClassMask':_0x11916e[_0xf7ce3c(0x1e5)]|_0x11916e['Object']|_0x11916e[_0xf7ce3c(0x273)],'resultMask':0x3f},_0x34f389={'referenceTypeId':_0x2b9148(_0xf7ce3c(0x1d4)),'includeSubtypes':!![],'browseDirection':_0x2ab832[_0xf7ce3c(0x26e)],'nodeClassMask':_0x11916e[_0xf7ce3c(0x1e5)]|_0x11916e['Object']|_0x11916e[_0xf7ce3c(0x273)],'resultMask':0x3f},_0x2b0970=(_0x49de1a,_0x307954)=>_0x3477c0(void 0x0,[_0x49de1a,_0x307954],void 0x0,function*({endpointNode:_0x1ca0d6,endpoint:_0x4f0127,baseUrl:_0x23d940},{nodeId:_0x21333a,rootNodeId:_0x2d9f5a,isType:_0x28046a}){const _0x3c5a4c=_0xf7ce3c,_0x42cf6f=_0x23d940+_0x3c5a4c(0x22b),_0x36f2c1=_0x42cf6f+_0x3c5a4c(0x29c),_0x10cb90=yield fetch(_0x36f2c1,{'method':'POST','body':JSON['stringify']({'endpointNode':_0x1ca0d6,'endpoint':_0x4f0127,'nodeId':_0x21333a,'rootNodeId':_0x2d9f5a,'isType':_0x28046a}),'headers':{'Content-Type':_0x3c5a4c(0x28e)}});if(_0x10cb90[_0x3c5a4c(0x211)]!==0xc8)return null;const _0x5c0ac2=yield _0x10cb90[_0x3c5a4c(0x1d3)]();return _0x5c0ac2['browsePath'];}),_0x515416=(_0x38e834,_0x232e2c,_0xe9ca16)=>_0x3477c0(void 0x0,[_0x38e834,_0x232e2c,_0xe9ca16],void 0x0,function*({endpointNode:_0x35cc09,endpoint:_0x12ca2a,baseUrl:_0xe6bfef},_0x59622d,_0x1e6038){const _0x1a2755=_0xf7ce3c,_0x26c6f1=_0xe6bfef+_0x1a2755(0x22b),_0x33ae1f=_0x26c6f1+_0x1a2755(0x1d0),_0x54d335=_0x59622d['val'](),_0x5e49e0=yield fetch(_0x33ae1f,{'method':_0x1a2755(0x264),'body':JSON[_0x1a2755(0x23a)]({'endpointNode':_0x35cc09,'endpoint':_0x12ca2a,'nodeId':_0x54d335}),'headers':{'Content-Type':_0x1a2755(0x28e)}}),_0x3e3686=(_0x3b485,_0xf16853)=>{const _0x56c37d=_0x1a2755;_0x1e6038['text'](_0x3b485)[_0x56c37d(0x241)](_0x56c37d(0x1e0))['addClass'](_0xf16853),_0x1e6038[_0x56c37d(0x22d)](),setTimeout(()=>{const _0x321de1=_0x56c37d;_0x1e6038[_0x321de1(0x204)](_0xf16853),_0x1e6038[_0x321de1(0x25e)]();},0xbb8);},_0xca30b=yield _0x5e49e0[_0x1a2755(0x1d3)]();_0x5e49e0[_0x1a2755(0x211)]!==0xc8?_0x3e3686(_0x1a2755(0x267)+_0x54d335,_0x1a2755(0x1c6)):_0xca30b[_0x1a2755(0x28d)][_0x1a2755(0x1c3)](/Good/)?(_0x59622d['val'](_0xca30b[_0x1a2755(0x1da)]),_0x59622d[_0x1a2755(0x285)](_0x1a2755(0x1c9)),_0x3e3686('Good','ok')):(_0x59622d[_0x1a2755(0x1ea)](''+_0x54d335),_0x3e3686(_0xca30b[_0x1a2755(0x28d)]+'\x20'+_0x5e49e0[_0x1a2755(0x210)],_0x1a2755(0x1c6)));});function _0x541553(_0x57b4c5,_0x120591){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x1ed705=_0x13ab,_0x112bb2=_0x57b4c5['data']('value'),_0x361353=yield _0x59e969(_0x120591,_0x112bb2,_0x44da3b),_0x42dd64=yield _0x59e969(_0x120591,_0x112bb2,_0x34f389);return{'references':[..._0x361353[_0x1ed705(0x23b)],..._0x42dd64[_0x1ed705(0x23b)]]};});}const _0x351ed5={'referenceTypeId':_0x2b9148(_0xf7ce3c(0x23c)),'includeSubtypes':!![],'browseDirection':_0x2ab832['Forward'],'nodeClassMask':_0x11916e[_0xf7ce3c(0x228)]|_0x11916e['ObjectType']|_0x11916e['DataType']|_0x11916e[_0xf7ce3c(0x2a0)],'resultMask':0x3f};function _0x2a5056(_0x503217,_0x395e33){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x2db1be=_0x13ab,_0x1e6ba2=_0x503217[_0x2db1be(0x201)](_0x2db1be(0x237)),_0x2ceddf=yield _0x59e969(_0x395e33,_0x1e6ba2,_0x351ed5);return _0x2ceddf;});}const _0x2a4a63=_0x9f94b6=>{const _0xc07b38=_0xf7ce3c;var _0x2a70b4,_0x557061,_0x1d5eb2,_0x23f141;if(!_0x9f94b6||!_0x9f94b6['nodeId']){const _0x2780c4=$(_0xc07b38(0x20d));return _0x2780c4;}const _0x1acc5f=_0x9f94b6['nodeId'][_0xc07b38(0x271)](),_0x206e99=((_0x2a70b4=_0x9f94b6[_0xc07b38(0x259)])===null||_0x2a70b4===void 0x0?void 0x0:_0x2a70b4[_0xc07b38(0x253)])||((_0x557061=_0x9f94b6['browseName'])===null||_0x557061===void 0x0?void 0x0:_0x557061[_0xc07b38(0x2ab)])||_0x9f94b6[_0xc07b38(0x22c)][_0xc07b38(0x271)](),{icon:_0x13d3ef,color:_0x5dda4a}=_0x4bd5d1(_0x9f94b6),_0x4a919d='('+_0x9f94b6['nodeId'][_0xc07b38(0x271)]()+')\x20'+(((_0x1d5eb2=_0x9f94b6[_0xc07b38(0x207)])===null||_0x1d5eb2===void 0x0?void 0x0:_0x1d5eb2[_0xc07b38(0x2ab)])||((_0x23f141=_0x9f94b6[_0xc07b38(0x259)])===null||_0x23f141===void 0x0?void 0x0:_0x23f141[_0xc07b38(0x253)])||''),_0x3df2b8=$('<li\x20key=\x22'+_0x9f94b6[_0xc07b38(0x22c)][_0xc07b38(0x271)]()+_0xc07b38(0x208)+_0x4a919d+'><i\x20class=\x22fa\x20'+_0x13d3ef+'\x22\x20style=\x22color:'+_0x5dda4a+_0xc07b38(0x1e7)+_0x206e99+_0xc07b38(0x1fe));return _0x3df2b8[_0xc07b38(0x241)](_0xc07b38(0x27c)),_0x3df2b8['data'](_0xc07b38(0x237),_0x1acc5f),_0x3df2b8[_0xc07b38(0x201)](_0xc07b38(0x26a),_0x9f94b6),_0x3df2b8;},_0x501a93=(_0x51559f,_0x30ea41)=>{const _0x529934=_0xf7ce3c;return _0x30ea41['find'](_0x529934(0x286)+_0x51559f+'\x22]');},_0x30e525=(_0x353090,_0x45587b)=>{const _0x4f3066=_0xf7ce3c;_0x353090[_0x4f3066(0x206)][_0x4f3066(0x234)](_0x4f3066(0x1ff))[_0x4f3066(0x204)](_0x4f3066(0x1f9)),_0x45587b[_0x4f3066(0x234)]('.tree-text:first')[_0x4f3066(0x241)](_0x4f3066(0x1f9));},_0x521869=(_0x31239e,_0x445126,_0xae5c5)=>_0x3477c0(void 0x0,void 0x0,void 0x0,function*(){const _0x192317=_0xf7ce3c;let _0x298211=_0xae5c5[_0x192317(0x274)](_0x192317(0x1e6));_0x445126[_0x192317(0x209)][_0x192317(0x1ce)]||[];const _0x3eef33=_0x445126[_0x192317(0x255)]||[];if(_0x3eef33[_0x192317(0x1e9)]===0x0)return;for(const _0x7e4d38 of _0x3eef33){_0x298211[_0x192317(0x24e)](_0x192317(0x27c))&&(yield _0x341fe0(_0x31239e,_0x298211));const _0x224c07=_0x501a93(_0x7e4d38,_0x298211);if(_0x224c07[_0x192317(0x1e9)]===0x0)return;_0x298211=_0x224c07;}_0x30e525(_0x31239e,_0x298211),_0x81b7e0(_0x31239e[_0x192317(0x1dd)],_0x298211);});function _0x81b7e0(_0x4a6e30,_0x2610f3){const _0x52a558=_0xf7ce3c,_0x3040c9=_0x2610f3[_0x52a558(0x254)]()[_0x52a558(0x216)],_0x5bca41=_0x4a6e30[_0x52a558(0x244)]();if(_0x5bca41==undefined)return;const _0x428f6c=_0x5bca41+_0x3040c9-_0x4a6e30[_0x52a558(0x20c)]()/0x2+_0x2610f3[_0x52a558(0x20c)]()/0x2;_0x4a6e30[_0x52a558(0x1d1)]({'scrollTop':_0x428f6c},0x1f4);}const _0x2275e1=(_0x5c9668,_0x1857f2)=>_0x3477c0(void 0x0,void 0x0,void 0x0,function*(){const _0x1d2d61=_0xf7ce3c,_0x2aec0f=_0x5c9668[_0x1d2d61(0x272)][_0x1d2d61(0x1ea)](),_0x447abd={'nodeId':_0x2aec0f,'rootNodeId':_0x1857f2[_0x1d2d61(0x22c)],'isType':_0x5c9668['options'][_0x1d2d61(0x28f)]||![]},_0x47f320=_0x1582a3(_0x5c9668),_0x53499c=yield _0x2b0970(_0x47f320,_0x447abd);if(!_0x53499c)return;yield _0x521869(_0x5c9668,_0x53499c,_0x5c9668[_0x1d2d61(0x206)]);});function _0x5a4a28(_0x514052,_0x95c79e,_0x20949f,_0x34ae8f){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x251134=_0x13ab;if(_0x95c79e[_0x251134(0x24e)]('fetched')){console[_0x251134(0x1fd)]('already\x20fetched');return;}if(_0x95c79e[_0x251134(0x24e)](_0x251134(0x1f2))){console['log'](_0x251134(0x1cf));return;}_0x95c79e['addClass'](_0x251134(0x1f2)),_0x95c79e['append']('<div\x20class=\x22spinner\x22></div>');try{_0x95c79e[_0x251134(0x274)]('ul')[_0x251134(0x27a)]();const {references:_0x2cf63a}=yield _0x20949f(_0x95c79e,_0x34ae8f);for(const _0x2cfae1 of _0x2cf63a){if(_0x514052[_0x251134(0x25d)][_0x251134(0x1e1)]&&!_0x514052[_0x251134(0x25d)][_0x251134(0x1e1)](_0x2cfae1))continue;const _0x14a856=_0x2a4a63(_0x2cfae1);_0x95c79e[_0x251134(0x274)]('ul')[_0x251134(0x1ec)](_0x14a856);}_0x95c79e[_0x251134(0x241)](_0x251134(0x25a));}catch(_0x2aaf40){_0x95c79e[_0x251134(0x274)]('ul')[_0x251134(0x1ec)](_0x251134(0x239)+_0x2aaf40[_0x251134(0x1f0)]+_0x251134(0x282)),console[_0x251134(0x1fd)](_0x251134(0x1d6),_0x2aaf40);}_0x95c79e['find'](_0x251134(0x284))[_0x251134(0x252)](),_0x95c79e[_0x251134(0x204)]('loading');});}function _0x1582a3(_0xb2d81e){const _0x1bdb20=_0xf7ce3c,_0x4a2aa6={'baseUrl':_0xb2d81e[_0x1bdb20(0x25d)][_0x1bdb20(0x279)],'endpointNode':typeof _0xb2d81e[_0x1bdb20(0x25d)][_0x1bdb20(0x263)]==='function'?_0xb2d81e[_0x1bdb20(0x25d)]['endpointNode']():_0xb2d81e['options'][_0x1bdb20(0x263)],'endpoint':typeof _0xb2d81e['options'][_0x1bdb20(0x265)]===_0x1bdb20(0x1f3)?_0xb2d81e[_0x1bdb20(0x25d)][_0x1bdb20(0x265)]():_0xb2d81e['options']['endpoint']};return _0x4a2aa6;}function _0x341fe0(_0x2a7c83,_0x36e2a0){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x48139b=_0x13ab;if(_0x36e2a0[_0x48139b(0x24e)]('fetched')){_0x36e2a0[_0x48139b(0x204)]('expandable')[_0x48139b(0x241)](_0x48139b(0x1df)),_0x36e2a0[_0x48139b(0x274)]('ul')[_0x48139b(0x242)]();return;}const _0x5de015=_0x1582a3(_0x2a7c83),_0x22ac73=!_0x2a7c83[_0x48139b(0x25d)][_0x48139b(0x28f)]?_0x541553:_0x2a5056;try{yield _0x5a4a28(_0x2a7c83,_0x36e2a0,_0x22ac73,_0x5de015),_0x36e2a0[_0x48139b(0x204)](_0x48139b(0x27c))[_0x48139b(0x241)]('expanded');}catch(_0xc03f87){_0x36e2a0['removeClass'](_0x48139b(0x27c))[_0x48139b(0x241)]('expanded'),console[_0x48139b(0x1fd)]('error',_0xc03f87);}});}const _0x124e37=()=>{const _0x401c81=_0xf7ce3c;$[_0x401c81(0x21b)](_0x401c81(0x1f7),{'options':{'endpointNode':()=>({'endpoint':_0x401c81(0x28a)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x401c81(0x27b)},'nodeClass':'Object','nodeId':_0x401c81(0x26c),'displayName':{'text':_0x401c81(0x27b)},'typeDefinition':_0x5b107d}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x1c9594=_0x13ab,_0x2cd04a=this;if(!_0x2cd04a['__parentNode']){const _0xa3967d=typeof _0x2cd04a[_0x1c9594(0x25d)][_0x1c9594(0x266)]===_0x1c9594(0x1f3)?_0x2cd04a['options'][_0x1c9594(0x266)][_0x1c9594(0x219)](_0x2cd04a):_0x2cd04a[_0x1c9594(0x25d)]['parentNode'];if(_0xa3967d instanceof Promise){const _0x260c70=yield _0xa3967d;_0x2cd04a[_0x1c9594(0x226)]=_0x260c70;}else _0x2cd04a['__parentNode']=_0xa3967d;}return _0x2cd04a[_0x1c9594(0x226)];});},'reset'(){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x2cee2a=_0x13ab,_0x381779=this,_0x18c2e1=_0x381779;_0x18c2e1[_0x2cee2a(0x226)]=undefined,_0x381779[_0x2cee2a(0x206)][_0x2cee2a(0x27a)]();const _0x1ed958=yield this[_0x2cee2a(0x1fb)](),_0x5a9914=_0x2a4a63(_0x1ed958);_0x381779[_0x2cee2a(0x206)]['append'](_0x5a9914),_0x381779[_0x2cee2a(0x269)]=_0x1ed958;});},'verify'(){const _0x1d4f9c=_0x401c81,_0x4fc214=this,_0x3966f2=_0x1582a3(_0x4fc214);_0x515416(_0x3966f2,_0x4fc214['$input'],_0x4fc214[_0x1d4f9c(0x205)]);},'_create'(){const _0x1519c0=_0x401c81,_0x3aacbf=this;_0x3aacbf[_0x1519c0(0x272)]=this[_0x1519c0(0x283)],_0x3aacbf[_0x1519c0(0x1de)]=$(_0x1519c0(0x233)),_0x3aacbf[_0x1519c0(0x1de)][_0x1519c0(0x241)](_0x1519c0(0x225)),this[_0x1519c0(0x283)][_0x1519c0(0x24c)](_0x3aacbf[_0x1519c0(0x1de)]),_0x3aacbf['$inputGroup']=$('<div/>')[_0x1519c0(0x241)]('input-group'),_0x3aacbf['$combo'][_0x1519c0(0x1ec)](_0x3aacbf[_0x1519c0(0x251)]),_0x3aacbf[_0x1519c0(0x251)][_0x1519c0(0x1ec)](_0x3aacbf[_0x1519c0(0x272)]),_0x3aacbf['$toggleTreeBtn']=$(_0x1519c0(0x222)),_0x3aacbf[_0x1519c0(0x251)][_0x1519c0(0x1ec)](_0x3aacbf[_0x1519c0(0x26b)]),_0x3aacbf[_0x1519c0(0x26b)]['on'](_0x1519c0(0x21d),function(){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x145918=_0x13ab;var _0x3dad05;let _0x22b070=![],_0x10fb7b;!_0x3aacbf[_0x145918(0x1dd)]['is'](_0x145918(0x298))&&(_0x3aacbf[_0x145918(0x205)][_0x145918(0x25e)](),_0x10fb7b=yield _0x3aacbf[_0x145918(0x1fb)](),(_0x10fb7b!==_0x3aacbf['currentParent']||((_0x3dad05=_0x3aacbf[_0x145918(0x269)])===null||_0x3dad05===void 0x0?void 0x0:_0x3dad05['nodeId'])!==_0x10fb7b[_0x145918(0x22c)])&&(yield _0x3aacbf[_0x145918(0x1ed)]()),_0x22b070=!![]),_0x3aacbf[_0x145918(0x1dd)][_0x145918(0x242)](),_0x22b070&&(yield _0x2275e1(_0x3aacbf,_0x10fb7b));});}),_0x3aacbf[_0x1519c0(0x1db)]=$(_0x1519c0(0x249)),_0x3aacbf[_0x1519c0(0x251)][_0x1519c0(0x1ec)](_0x3aacbf[_0x1519c0(0x1db)]),_0x3aacbf['$verifyBtn']['on']('click',()=>{const _0x112118=_0x1519c0;this[_0x112118(0x26d)]();});!_0x3aacbf['$input'][_0x1519c0(0x1c7)](_0x1519c0(0x1f8))&&_0x3aacbf[_0x1519c0(0x272)][_0x1519c0(0x1c7)](_0x1519c0(0x1f8),_0x1519c0(0x29f));_0x3aacbf[_0x1519c0(0x205)]=$(_0x1519c0(0x213)),_0x3aacbf[_0x1519c0(0x205)][_0x1519c0(0x25e)](),_0x3aacbf[_0x1519c0(0x1dd)]=$(_0x1519c0(0x233))[_0x1519c0(0x241)](_0x1519c0(0x21f))[_0x1519c0(0x25e)](),_0x3aacbf[_0x1519c0(0x1de)][_0x1519c0(0x1ec)](_0x3aacbf[_0x1519c0(0x205)]),_0x3aacbf[_0x1519c0(0x1de)]['append'](_0x3aacbf[_0x1519c0(0x1dd)]),_0x3aacbf[_0x1519c0(0x206)]=$(_0x1519c0(0x261))[_0x1519c0(0x295)](_0x3aacbf[_0x1519c0(0x1dd)]),this[_0x1519c0(0x1ed)]();const _0x22ed99=(_0x2d239f,_0xe4e1de)=>{const _0x3ba8b7=_0x1519c0,_0x46926f=0x14,_0x2063f7=0x14,_0x15f8a0=_0x2d239f[_0x3ba8b7(0x27e)](),_0x41e8ca=_0xe4e1de;if(_0x41e8ca[_0x3ba8b7(0x262)]>=_0x15f8a0['left']&&_0x41e8ca[_0x3ba8b7(0x262)]<=_0x15f8a0[_0x3ba8b7(0x29d)]+_0x46926f&&_0x41e8ca[_0x3ba8b7(0x202)]>=_0x15f8a0[_0x3ba8b7(0x216)]&&_0x41e8ca[_0x3ba8b7(0x202)]<=_0x15f8a0[_0x3ba8b7(0x216)]+_0x2063f7)return!![];return![];},_0x1f3462=_0x529bd3=>_0x3477c0(this,void 0x0,void 0x0,function*(){const _0x5b89c7=_0x1519c0;if(_0x529bd3[_0x5b89c7(0x24e)](_0x5b89c7(0x27c)))_0x341fe0(_0x3aacbf,_0x529bd3);else{if(_0x529bd3['hasClass'](_0x5b89c7(0x1df)))_0x529bd3['children']('ul')[_0x5b89c7(0x242)](),_0x529bd3[_0x5b89c7(0x1f5)](_0x5b89c7(0x294));else{if(_0x529bd3[_0x5b89c7(0x274)]('ul')[_0x5b89c7(0x274)]()['length']>0x0)_0x529bd3[_0x5b89c7(0x274)]('ul')['toggle'](),_0x529bd3[_0x5b89c7(0x1f5)](_0x5b89c7(0x294));else;}}});_0x3aacbf[_0x1519c0(0x206)]['on'](_0x1519c0(0x229),'li',function(_0x1922a4){const _0x4698f8=_0x1519c0;var _0x592581,_0x5151de;_0x1922a4[_0x4698f8(0x270)]();let _0x47a5cf=$(this);if(_0x22ed99(_0x47a5cf,_0x1922a4))_0x1f3462(_0x47a5cf);else{const _0x3baf8d=_0x47a5cf[_0x4698f8(0x201)](_0x4698f8(0x237)),_0x3e3fab=_0x47a5cf[_0x4698f8(0x201)](_0x4698f8(0x26a));if(_0x3aacbf[_0x4698f8(0x25d)][_0x4698f8(0x1fa)]&&!_0x3aacbf['options'][_0x4698f8(0x1fa)](_0x3e3fab))return;_0x3aacbf[_0x4698f8(0x272)][_0x4698f8(0x201)]('reference',_0x3e3fab);const _0xa107f=((_0x592581=_0x3e3fab[_0x4698f8(0x259)])===null||_0x592581===void 0x0?void 0x0:_0x592581['text'])||((_0x5151de=_0x3e3fab['browseName'])===null||_0x5151de===void 0x0?void 0x0:_0x5151de[_0x4698f8(0x2ab)])||_0x3e3fab[_0x4698f8(0x22c)][_0x4698f8(0x271)](),_0xf65e6e='['+_0xa107f+']('+_0x3baf8d+')';_0x3aacbf[_0x4698f8(0x272)]['val'](_0xf65e6e),_0x3aacbf['$input'][_0x4698f8(0x285)](_0x4698f8(0x1c9)),_0x3aacbf[_0x4698f8(0x1dd)][_0x4698f8(0x25e)]();}}),_0x3aacbf[_0x1519c0(0x206)]['on'](_0x1519c0(0x21d),'li',function(_0x238120){const _0x533a2d=_0x1519c0;_0x238120[_0x533a2d(0x270)]();let _0x57ef5d=$(this);_0x22ed99(_0x57ef5d,_0x238120)&&_0x1f3462(_0x57ef5d),_0x30e525(_0x3aacbf,_0x57ef5d);}),$(document)['on'](_0x1519c0(0x21d),function(_0x2c5b3c){const _0x293e24=_0x1519c0;!$(_0x2c5b3c[_0x293e24(0x25c)])[_0x293e24(0x2ac)](_0x3aacbf['$combo'])[_0x293e24(0x1e9)]&&_0x3aacbf[_0x293e24(0x1dd)][_0x293e24(0x25e)]();});}});},_0x5c0f61=()=>{const _0x409013=_0xf7ce3c,_0x330604=$(_0x409013(0x1d2)),_0x5cb6bf=_0x330604[_0x409013(0x1ea)](),_0x565d69=RED[_0x409013(0x1d7)][_0x409013(0x24f)](_0x5cb6bf);if(!_0x565d69)return undefined;const {endpoint:_0x687ae1,securityMode:_0x23472c,securityPolicy:_0x84f511,userIdentityType:_0x1bc1c8,credentials:_0x3b1267}=_0x565d69,_0x46ecc8={'endpoint':_0x687ae1,'securityMode':_0x23472c,'securityPolicy':_0x84f511,'userIdentityType':_0x1bc1c8,'credentials':_0x3b1267};return _0x46ecc8;},_0x4505c3=()=>{return{'endpointNode':_0x5e9b6d};},_0x5e9b6d=()=>{const _0x1923ec=_0xf7ce3c,_0x3f3fff=$('#node-input-endpoint'),_0x2a15ee=_0x3f3fff[_0x1923ec(0x1ea)](),_0x56cf7f=_0x5c0f61();if(!_0x56cf7f)return undefined;return{'id':_0x2a15ee};};RED['nodes']['registerType']('OpcUa-Client2-HistoryRead',{'category':_0xf7ce3c(0x299),'color':_0xf7ce3c(0x20e),'align':_0xf7ce3c(0x1cc),'icon':_0xf7ce3c(0x232),'paletteLabel':'read-history','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'historyReadParam':{'value':{'type':_0xf7ce3c(0x224),'endTime':_0xf7ce3c(0x1dc),'startTime':_0xf7ce3c(0x1e4),'numValuesPerNode':0x64,'returnBounds':!![]},'required':!![],'validate':_0x32327b=>{if(_0x32327b==='')return![];return!![];}},'nodeId':{'value':'','required':![]},'outputType':{'value':'Value','required':!![]}},'outputs':0x2,'label'(){const _0x3b54f4=_0xf7ce3c;return this['name']||_0x3b54f4(0x29e);},'labelStyle'(){const _0x2117b4=_0xf7ce3c;return this[_0x2117b4(0x2ab)]?_0x2117b4(0x278):'';},'oneditprepare'(){const _0x63cc15=_0xf7ce3c,_0xc3957a=this;_0x124e37(),_0xc3957a[_0x63cc15(0x28b)]=0x1;const _0x2371a0=$(_0x63cc15(0x291));_0x2371a0[_0x63cc15(0x212)](Object['assign'](Object[_0x63cc15(0x2a9)]({},_0x4505c3()),{'isSelectable'(_0x41b367){const _0x17d486=_0x63cc15;return _0x41b367[_0x17d486(0x2a5)]===_0x17d486(0x1e5);}})),$('#select-history-type')['val'](_0xc3957a['historyReadParam'][_0x63cc15(0x200)]);switch(_0xc3957a['historyReadParam'][_0x63cc15(0x200)]){case _0x63cc15(0x224):$(_0x63cc15(0x2ad))[_0x63cc15(0x1ea)](_0xc3957a['historyReadParam'][_0x63cc15(0x1f1)]),$('#node-input-raw-endTime')['val'](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x277)]),$('#node-input-raw-numValuesPerNode')[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x1e2)]),$(_0x63cc15(0x1d8))['prop'](_0x63cc15(0x1cb),_0xc3957a[_0x63cc15(0x258)]['returnBounds']);break;case _0x63cc15(0x1eb):$(_0x63cc15(0x23e))[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x1f1)]),$(_0x63cc15(0x280))[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x277)]),$('#node-input-modified-numValuesPerNode')[_0x63cc15(0x1ea)](_0xc3957a['historyReadParam'][_0x63cc15(0x1e2)]),$(_0x63cc15(0x25b))[_0x63cc15(0x296)]('checked',_0xc3957a['historyReadParam']['returnBounds']);break;case _0x63cc15(0x217):_0xc3957a[_0x63cc15(0x258)]['aggregateConfiguration']=_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x20f)]||{},$(_0x63cc15(0x245))[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)]['startTime']),$(_0x63cc15(0x218))[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)]['endTime']),$(_0x63cc15(0x256))[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x1fc)]),$(_0x63cc15(0x26f))['val'](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x281)]),$(_0x63cc15(0x1e8))[_0x63cc15(0x296)]('checked',_0xc3957a['historyReadParam'][_0x63cc15(0x20f)][_0x63cc15(0x2aa)]),$(_0x63cc15(0x215))[_0x63cc15(0x296)](_0x63cc15(0x1cb),_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x20f)]['treatUncertainAsBad']),$('#node-input-processed-details-aggregateConfiguration-percentDataBad')[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x20f)]['percentDataBad']),$(_0x63cc15(0x247))[_0x63cc15(0x1ea)](_0xc3957a['historyReadParam'][_0x63cc15(0x20f)]['percentDataGood']),$(_0x63cc15(0x235))[_0x63cc15(0x296)](_0x63cc15(0x1cb),_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x20f)][_0x63cc15(0x24d)]);break;}{function _0x5e561d(){const _0x3656a5=_0x63cc15;$('#section-raw')[_0x3656a5(0x25e)](),$(_0x3656a5(0x250))[_0x3656a5(0x25e)](),$(_0x3656a5(0x22e))[_0x3656a5(0x25e)](),$(_0x3656a5(0x2a3))[_0x3656a5(0x25e)](),$(_0x3656a5(0x22f))['hide'](),$(_0x3656a5(0x21e))['hide']();}function _0x3ac578(){const _0x391243=_0x63cc15;_0x5e561d();var _0x378170=$(_0x391243(0x240))[_0x391243(0x1ea)]();$('#section-'+_0x378170)[_0x391243(0x22d)]();}$('#select-history-type')['on']('change',_0x3ac578),_0x3ac578();}},'oneditsave'(){const _0x262f10=_0xf7ce3c,_0xf8370f=_0x37663e=>_0x37663e[_0x262f10(0x1ea)]()==undefined?'':_0x37663e[_0x262f10(0x1ea)]()[_0x262f10(0x271)](),_0x1b63d2=_0x2ffe86=>_0x2ffe86[_0x262f10(0x1ea)]()==undefined?0x0:_0x2ffe86['val'](),_0x2c68cf=$('#select-history-type')[_0x262f10(0x1ea)]();switch(_0x2c68cf){case'raw':this['historyReadParam']={'type':'raw','startTime':_0xf8370f($(_0x262f10(0x2ad))),'endTime':_0xf8370f($('#node-input-raw-endTime')),'numValuesPerNode':_0x1b63d2($(_0x262f10(0x292))),'returnBounds':$(_0x262f10(0x1d8))['prop'](_0x262f10(0x1cb))};break;case'modified':this[_0x262f10(0x258)]={'type':_0x262f10(0x1eb),'startTime':_0xf8370f($('#node-input-modified-startTime')),'endTime':_0xf8370f($(_0x262f10(0x280))),'numValuesPerNode':_0x1b63d2($(_0x262f10(0x268))),'returnBounds':$('#node-input-modified-returnBounds')[_0x262f10(0x296)](_0x262f10(0x1cb))};break;case _0x262f10(0x217):this[_0x262f10(0x258)]={'type':_0x262f10(0x217),'startTime':_0xf8370f($(_0x262f10(0x245))),'endTime':_0xf8370f($(_0x262f10(0x218))),'processingInterval':_0x1b63d2($(_0x262f10(0x256))),'aggregateType':_0xf8370f($(_0x262f10(0x26f))),'aggregateConfiguration':{'useServerCapabilitiesDefaults':$('#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults')[_0x262f10(0x296)](_0x262f10(0x1cb)),'treatUncertainAsBad':$(_0x262f10(0x215))[_0x262f10(0x296)](_0x262f10(0x1cb)),'percentDataBad':_0x1b63d2($('#node-input-processed-details-aggregateConfiguration-percentDataBad')),'percentDataGood':_0x1b63d2($(_0x262f10(0x247))),'useSlopedExtrapolation':$(_0x262f10(0x235))[_0x262f10(0x296)](_0x262f10(0x1cb))}};break;}}});}()));function _0x13ab(_0x37371b,_0x29ef1a){const _0x32a35c=_0x32a3();return _0x13ab=function(_0x13abb1,_0x4a383f){_0x13abb1=_0x13abb1-0x1c3;let _0x2f2839=_0x32a35c[_0x13abb1];return _0x2f2839;},_0x13ab(_0x37371b,_0x29ef1a);}function _0x32a3(){const _0xc6a3af=['toggleClass','DarkOrange','sterfive.nodeBrowser','placeholder','selected','isSelectable','resolveParentNode','processingInterval','log','</span><ul></ul></li>','li\x20>\x20.tree-text','type','data','pageY','SuppressedError','removeClass','$info','$tree','browseName','\x22}><span\x20class=\x22tree-text\x22\x20title=','relativePath','ns=0;i=61','next','height','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','#C0DEED','aggregateConfiguration','statusText','status','nodeBrowser','<div\x20class=\x22info-text\x22></div>','18146791YZuHLN','#node-input-processed-details-aggregateConfiguration-treatUncertainAsBad','top','processed-details','#node-input-processed-details-endTime','call','fa-folder','widget','13365bojBzr','click','#section-event','sterfive-dropdown','ns=0;i=47','apply','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','HasTypeDefinition','raw','sterfive-combo-box','__parentNode','rgba(61,\x2060,\x204,\x200.525)','ReferenceType','dblclick','suppressed','/opcua-endpoint2','nodeId','show','#section-processed-details','#section-annotation-data','48744GIXAcp','browseResult','../../icons/opcuanodeLogo.png','<div/>','find','#node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation','throw','value','DataType','<li>error\x20','stringify','references','HasSubtype','ns=0;i=34','#node-input-modified-startTime','ObjectType','#select-history-type','addClass','toggle','fa-object-group','scrollTop','#node-input-processed-details-startTime','151718lZKqIx','#node-input-processed-details-aggregateConfiguration-percentDataGood','ns=0;i=45','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','Object','DisplayName','replaceWith','useSlopedExtrapolation','hasClass','node','#section-modified','$inputGroup','remove','text','position','nodeIds','#node-input-processed-details-processingInterval','SandyBrown','historyReadParam','displayName','fetched','#node-input-modified-returnBounds','target','options','hide','Both','Inverse','<ul\x20class=\x22sterfive-tree\x22></ul>','pageX','endpointNode','POST','endpoint','parentNode','!!failure!!','#node-input-modified-numValuesPerNode','currentParent','reference','$toggleTreeBtn','ns=0;i=85','verify','Forward','#node-input-processed-details-aggregateType','stopPropagation','toString','$input','Method','children','888dTSIya','14CUoJbl','endTime','node_label_italic','baseUrl','empty','Objects','expandable','168eovItz','offset','done','#node-input-modified-endTime','aggregateType','</li>','element','.spinner','trigger','li[key=\x22','referenceTypeId','grey','4670028QcKmHS','opc.tcp://opcuademo.sterfive.com:26543','inputs','1920qoiNkK','statusCode','application/json','isTypeRef','HasChild','#node-input-nodeId','#node-input-raw-numValuesPerNode','fa-list-alt','expandable\x20expanded','appendTo','prop','fa-text-width',':visible','opcua','Invalid','5tqEipu','/walk-backward','left','OPCUA\x20Client\x20HistoryRead','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','VariableType','HasComponent','90148veWdFQ','#section-at-time','4WhOFJb','nodeClass','View','NodeClass','ns=0;i=40','assign','useServerCapabilitiesDefaults','name','closest','#node-input-raw-startTime','match','HasProperty','Unspecified','failure','attr','IsForward','change','ns=0;i=46','checked','right','CadetBlue','elements','already\x20loading','/checkNodeId','animate','#node-input-endpoint','json','Organizes','TypeDefinition','err','nodes','#node-input-returnBounds','1729146Jdxuod','nodeAddressString','$verifyBtn','1m\x20ago','$dropdown','$combo','expanded','sterfive-info','filter','numValuesPerNode','/browse','11m\x20ago','Variable',':first',';\x22></i>\x20','#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults','length','val','modified','append','reset','typeDefinition','fetching\x20failed\x20with\x20error','message','startTime','loading','function','error'];_0x32a3=function(){return _0xc6a3af;};return _0x32a3();}
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzNDc3YzAiLCJfMHg1MTliZDAiLCJfMHgzY2ViN2MiLCJfMHg0Yzc3NWQiLCJfMHgzODIzZTgiLCJfMHgxOWZlMmUiLCJfMHgzNzgwN2EiLCJfMHg1NWQzODkiLCJQcm9taXNlIiwiXzB4M2NjZmZhIiwiXzB4MTc5NTFiIiwiXzB4NWFmOGRlIiwiXzB4MzcyOTBiIiwiXzB4MjE1OTBlIiwiXzB4NTY3N2UzIiwiXzB4Mzg2NDI1IiwiXzB4MTg5YWEwIiwiXzB4MmIyMTdhIiwiXzB4ZTU5Zjg1IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NGIxMzk2IiwiXzB4NWIyOTgyIiwiXzB4MTFkMThmIiwiXzB4MTliM2UxIiwiRXJyb3IiLCJfMHgxYTJiMGQiLCJfMHg1YjEwN2QiLCJfMHgyNjA2OGUiLCJfMHg5MzUwODEiLCJfMHg1ODllYjgiLCJfMHgxMTAzMTMiLCJfMHgzMzkxMjkiLCJfMHgyYWI4MzIiLCJfMHg1MDdkMDciLCJfMHgxMTkxNmUiLCJfMHgyMmZhZDgiLCJfMHgzNmEyM2EiLCJfMHg1NWZiMzYiLCJfMHgzNWU2OTAiLCJfMHhmYThmMzIiLCJfMHgyYjkxNDgiLCJfMHg0OWJiNjAiLCJfMHg0YmQ1ZDEiLCJfMHgzMDJjNjMiLCJfMHg1OWU5NjkiLCJfMHg0MDc5NjIiLCJfMHgyNGY2NDciLCJfMHgzZGExODgiLCJlbmRwb2ludE5vZGUiLCJfMHgzYTZjNjMiLCJlbmRwb2ludCIsIl8weDUxYmJhNCIsImJhc2VVcmwiLCJfMHg0NDFkN2EiLCJfMHg0OTJjZjEiLCJfMHhjYmI3OWYiLCJfMHgzNjYwODgiLCJfMHgxZmY2YTgiLCJfMHgyMmVjMzAiLCJPYmplY3QiLCJfMHg0N2MyMmEiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4MjkwNTA4IiwiXzB4MTUzNTAiLCJfMHg0NGRhM2IiLCJfMHgzNGYzODkiLCJfMHgyYjA5NzAiLCJfMHg0OWRlMWEiLCJfMHgzMDc5NTQiLCJfMHgxY2EwZDYiLCJfMHg0ZjAxMjciLCJfMHgyM2Q5NDAiLCJub2RlSWQiLCJfMHgyMTMzM2EiLCJyb290Tm9kZUlkIiwiXzB4MmQ5ZjVhIiwiaXNUeXBlIiwiXzB4MjgwNDZhIiwiXzB4NDJjZjZmIiwiXzB4MzZmMmMxIiwiXzB4MTBjYjkwIiwiXzB4NWMwYWMyIiwiXzB4NTE1NDE2IiwiXzB4MzhlODM0IiwiXzB4MjMyZTJjIiwiXzB4ZTljYTE2IiwiXzB4MzVjYzA5IiwiXzB4MTJjYTJhIiwiXzB4ZTZiZmVmIiwiXzB4NTk2MjJkIiwiXzB4MWU2MDM4IiwiXzB4MjZjNmYxIiwiXzB4MzNhZTFmIiwiXzB4NTRkMzM1IiwiXzB4NWU0OWUwIiwiXzB4M2UzNjg2IiwiXzB4M2I0ODUiLCJfMHhmMTY4NTMiLCJzZXRUaW1lb3V0IiwiXzB4Y2EzMGIiLCJfMHg1NDE1NTMiLCJfMHg1N2I0YzUiLCJfMHgxMjA1OTEiLCJfMHgxMTJiYjIiLCJfMHgzNjEzNTMiLCJfMHg0MmRkNjQiLCJfMHgzNTFlZDUiLCJfMHgyYTUwNTYiLCJfMHg1MDMyMTciLCJfMHgzOTVlMzMiLCJfMHgxZTZiYTIiLCJfMHgyY2VkZGYiLCJfMHgyYTRhNjMiLCJfMHg5Zjk0YjYiLCJfMHgyYTcwYjQiLCJfMHg1NTcwNjEiLCJfMHgxZDVlYjIiLCJfMHgyM2YxNDEiLCJfMHgyNzgwYzQiLCIkIiwiXzB4MWFjYzVmIiwiXzB4MjA2ZTk5IiwiaWNvbiIsIl8weDEzZDNlZiIsImNvbG9yIiwiXzB4NWRkYTRhIiwiXzB4NGE5MTlkIiwiXzB4M2RmMmI4IiwiXzB4NTAxYTkzIiwiXzB4NTE1NTlmIiwiXzB4MzBlYTQxIiwiXzB4MzBlNTI1IiwiXzB4MzUzMDkwIiwiXzB4NDU1ODdiIiwiXzB4NTIxODY5IiwiXzB4MzEyMzllIiwiXzB4NDQ1MTI2IiwiXzB4YWU1YzUiLCJfMHgyOTgyMTEiLCJfMHgzZWVmMzMiLCJfMHg3ZTRkMzgiLCJfMHgzNDFmZTAiLCJfMHgyMjRjMDciLCJfMHg4MWI3ZTAiLCJfMHg0YTZlMzAiLCJfMHgyNjEwZjMiLCJfMHgzMDQwYzkiLCJfMHg1YmNhNDEiLCJ1bmRlZmluZWQiLCJfMHg0MjhmNmMiLCJfMHgyMjc1ZTEiLCJfMHg1Yzk2NjgiLCJfMHgxODU3ZjIiLCJfMHgyYWVjMGYiLCJfMHg0NDdhYmQiLCJfMHg0N2YzMjAiLCJfMHgxNTgyYTMiLCJfMHg1MzQ5OWMiLCJfMHg1YTRhMjgiLCJfMHg1MTQwNTIiLCJfMHg5NWM3OWUiLCJfMHgyMDk0OWYiLCJfMHgzNGFlOGYiLCJyZWZlcmVuY2VzIiwiXzB4MmNmNjNhIiwiXzB4MmNmYWUxIiwiXzB4MTRhODU2IiwiXzB4MmFhZjQwIiwiXzB4YjJkODFlIiwiXzB4NGEyYWE2IiwiXzB4MmE3YzgzIiwiXzB4MzZlMmEwIiwiXzB4NWRlMDE1IiwiXzB4MjJhYzczIiwiXzB4YzAzZjg3IiwiXzB4MTI0ZTM3IiwiXzB4MmNkMDRhIiwiXzB4YTM5NjdkIiwiXzB4MjYwYzcwIiwiXzB4MzgxNzc5IiwiXzB4MThjMmUxIiwiXzB4MWVkOTU4IiwiXzB4NWE5OTE0IiwiXzB4NGZjMjE0IiwiXzB4Mzk2NmYyIiwiXzB4M2FhY2JmIiwiXzB4M2RhZDA1IiwiXzB4MjJiMDcwIiwiXzB4MTBmYjdiIiwiXzB4MjJlZDk5IiwiXzB4MmQyMzlmIiwiXzB4ZTRlMWRlIiwiXzB4NDY5MjZmIiwiXzB4MjA2M2Y3IiwiXzB4MTVmOGEwIiwiXzB4NDFlOGNhIiwiXzB4MWYzNDYyIiwiXzB4NTI5YmQzIiwiXzB4MTkyMmE0IiwiXzB4NTkyNTgxIiwiXzB4NTE1MWRlIiwiXzB4NDdhNWNmIiwiXzB4M2JhZjhkIiwiXzB4M2UzZmFiIiwiXzB4YTEwN2YiLCJfMHhmNjVlNmUiLCJfMHgyMzgxMjAiLCJfMHg1N2VmNWQiLCJkb2N1bWVudCIsIl8weDJjNWIzYyIsIl8weDVjMGY2MSIsIl8weDMzMDYwNCIsIl8weDVjYjZiZiIsIl8weDU2NWQ2OSIsIlJFRCIsIl8weDY4N2FlMSIsInNlY3VyaXR5TW9kZSIsIl8weDIzNDcyYyIsInNlY3VyaXR5UG9saWN5IiwiXzB4ODRmNTExIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDFiYzFjOCIsImNyZWRlbnRpYWxzIiwiXzB4M2IxMjY3IiwiXzB4NDZlY2M4IiwiXzB4NDUwNWMzIiwiXzB4NWU5YjZkIiwiXzB4M2YzZmZmIiwiXzB4MmExNWVlIiwiXzB4NTZjZjdmIiwiXzB4MzIzMjdiIiwiXzB4YzM5NTdhIiwiXzB4MjM3MWEwIiwiXzB4NDFiMzY3IiwiXzB4NWU1NjFkIiwiXzB4M2FjNTc4IiwiXzB4Mzc4MTcwIiwiXzB4ZjgzNzBmIiwiXzB4Mzc2NjNlIiwiXzB4MWI2M2QyIiwiXzB4MmZmZTg2IiwiXzB4MmM2OGNmIl0sIm1hcHBpbmdzIjoiK3FCQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLENBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsTUFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxnQkFBQSxFQUFjVCxT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Q0FBY3hILENBQUEsQyxnQkFBQSxDQUFkLENBSkEsQyxlQUtwQixDQUFlc0gsU0FBQSxDQUFZdEgsQ0FBQSxDLGdCQUFBLENBQVosQ0FMSyxDLHdCQU1wQixDQUF3QixDLCtCQUNwQixDQUErQkEsQ0FBQSxDLG9GQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQURYLEMscUJBRXBCLENBQXFCQSxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLENBRkQsQyxnQkFHcEIsQ0FBZ0J3SCxTQUFBLENBQWN4SCxDQUFBLEMscUVBQUEsQ0FBZCxDQUhJLEMsaUJBSXBCLENBQWlCd0gsU0FBQSxDQUFjeEgsQ0FBQSxDLGdCQUFBLENBQWQsQ0FKRyxDLHdCQUtwQixDQUF3QkEsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQUxKLENBTkosQ0FBeEIsQ0FjQSxNQWxDUixDLENBcEc0QyxDQUFwRCxDLEVBeG1CSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9IChfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImJyb3dzZSBmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHdhbGtCYWNrd2FyZCA9IChfYSwgX2IpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgX2JdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vd2Fsay1iYWNrd2FyZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkLFxuICAgICAgICAgICAgICAgIGlzVHlwZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4ganNvbi5icm93c2VQYXRoO1xuICAgIH0pO1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKF9hLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBub2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGpzb24ubm9kZUFkZHJlc3NTdHJpbmcpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtub2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1ha2VDb25uZWN0aW9uKHRoYXQpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9leHBhbmRMaSh0aGF0LCAkbGkpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB5aWVsZCBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbGksIGYsIGRhdGEpO1xuICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0Ll9fcGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUuY2FsbCh0aGF0KSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVzYyA9IHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBkZXNjO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGF0Ll9fcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxzbyByZXNldCBwYXJlbnQgbm9kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdGhhdDtcbiAgICAgICAgICAgICAgICAgICAgYS5fX3BhcmVudE5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHlpZWxkIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB5aWVsZCB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uICYmICh5aWVsZCByZWFjaFNlbGVjdGlvbih0aGF0LCBwYXJlbnROb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1IaXN0b3J5UmVhZFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwicmVhZC1oaXN0b3J5XCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIGhpc3RvcnlSZWFkUGFyYW06IHtcbiAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInJhd1wiLFxuICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiBcIjFtIGFnb1wiLFxuICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IFwiMTFtIGFnb1wiLFxuICAgICAgICAgICAgICAgICAgICBudW1WYWx1ZXNQZXJOb2RlOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgIHJldHVybkJvdW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPT09IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiByZWFkIEhpc3RvcnlcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBvdXRwdXRUeXBlOiB7IHZhbHVlOiBcIlZhbHVlXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBDbGllbnQgSGlzdG9yeVJlYWRcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlSWQgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUlkXCIpO1xuICAgICAgICAgICAgJG5vZGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnR5cGUpO1xuICAgICAgICAgICAgc3dpdGNoIChub2RlLmhpc3RvcnlSZWFkUGFyYW0udHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJyYXdcIjpcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXJhdy1zdGFydFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5zdGFydFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcmF3LWVuZFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5lbmRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXJhdy1udW1WYWx1ZXNQZXJOb2RlXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0ubnVtVmFsdWVzUGVyTm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1yZXR1cm5Cb3VuZHNcIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLnJldHVybkJvdW5kcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJtb2RpZmllZFwiOlxuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtc3RhcnRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uc3RhcnRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLWVuZFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5lbmRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLW51bVZhbHVlc1Blck5vZGVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5udW1WYWx1ZXNQZXJOb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLXJldHVybkJvdW5kc1wiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0ucmV0dXJuQm91bmRzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcInByb2Nlc3NlZC1kZXRhaWxzXCI6XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uID0gbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24gfHwge307XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1zdGFydFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5zdGFydFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtZW5kVGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmVuZFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtcHJvY2Vzc2luZ0ludGVydmFsXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0ucHJvY2Vzc2luZ0ludGVydmFsKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZVR5cGVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHNcIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24udXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHMpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi10cmVhdFVuY2VydGFpbkFzQmFkXCIpLnByb3AoXCJjaGVja2VkXCIsIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnRyZWF0VW5jZXJ0YWluQXNCYWQpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUJhZFwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24ucGVyY2VudERhdGFCYWQpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUdvb2RcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnBlcmNlbnREYXRhR29vZCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXVzZVNsb3BlZEV4dHJhcG9sYXRpb25cIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24udXNlU2xvcGVkRXh0cmFwb2xhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBhZHZhbmNlZCBjb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBoaWRlQWxsU2VjdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLXJhd1wiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1tb2RpZmllZFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1wcm9jZXNzZWQtZGV0YWlsc1wiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1hdC10aW1lXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLWFubm90YXRpb24tZGF0YVwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1ldmVudFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRvZ2dsZVNlY3Rpb25zKCkge1xuICAgICAgICAgICAgICAgICAgICBoaWRlQWxsU2VjdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9ICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxlcnQoXCJ0b2dnbGVTZWN0aW9ucyBcIiArIHNlbGVjdGVkVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tXCIgKyBzZWxlY3RlZFZhbHVlKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS5vbihcImNoYW5nZVwiLCB0b2dnbGVTZWN0aW9ucyk7XG4gICAgICAgICAgICAgICAgdG9nZ2xlU2VjdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQXNUZXh0ID0gKGEpID0+IChhLnZhbCgpID09IHVuZGVmaW5lZCA/IFwiXCIgOiBhLnZhbCgpLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgY29uc3QgdmFsdWVBc051bWJlciA9IChhKSA9PiAoYS52YWwoKSA9PSB1bmRlZmluZWQgPyAwIDogYS52YWwoKSk7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gJChcIiNzZWxlY3QtaGlzdG9yeS10eXBlXCIpLnZhbCgpO1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInJhd1wiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlSZWFkUGFyYW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInJhd1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcmF3LXN0YXJ0VGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcmF3LWVuZFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtVmFsdWVzUGVyTm9kZTogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcmF3LW51bVZhbHVlc1Blck5vZGVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuQm91bmRzOiAkKFwiI25vZGUtaW5wdXQtcmV0dXJuQm91bmRzXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwibW9kaWZpZWRcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5UmVhZFBhcmFtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJtb2RpZmllZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtc3RhcnRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1lbmRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bVZhbHVlc1Blck5vZGU6IHZhbHVlQXNOdW1iZXIoJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLW51bVZhbHVlc1Blck5vZGVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuQm91bmRzOiAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtcmV0dXJuQm91bmRzXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwicHJvY2Vzc2VkLWRldGFpbHNcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5UmVhZFBhcmFtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJwcm9jZXNzZWQtZGV0YWlsc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtc3RhcnRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1lbmRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NpbmdJbnRlcnZhbDogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtcHJvY2Vzc2luZ0ludGVydmFsXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZVR5cGU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVUeXBlXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0czogJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHNcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlYXRVbmNlcnRhaW5Bc0JhZDogJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdHJlYXRVbmNlcnRhaW5Bc0JhZFwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50RGF0YUJhZDogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUJhZFwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudERhdGFHb29kOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXBlcmNlbnREYXRhR29vZFwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU2xvcGVkRXh0cmFwb2xhdGlvbjogJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2xvcGVkRXh0cmFwb2xhdGlvblwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
7
+ function _0x589e(_0x4027e7,_0x4edcec){const _0x475dc7=_0x475d();return _0x589e=function(_0x589e76,_0x13bf9b){_0x589e76=_0x589e76-0x110;let _0x455865=_0x475dc7[_0x589e76];return _0x455865;},_0x589e(_0x4027e7,_0x4edcec);}function _0x475d(){const _0x3ae4a5=['references','/walk-backward','stopPropagation','reference','displayName','fa-object-group','checked','nodeIds','prop','Method','failure','toggleClass','statusCode','1m\x20ago','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','SandyBrown','$toggleTreeBtn','Invalid','addClass','!!failure!!','Both','removeClass','li[key=\x22','nodeId',';\x22></i>\x20','ns=0;i=61','assign','SteelBlue','typeDefinition','selected','processingInterval','empty','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','#node-input-modified-returnBounds','CadetBlue','910ANMxAH','status','#node-input-nodeId','ns=0;i=85','right','Object','<ul\x20class=\x22sterfive-tree\x22></ul>','offset','stringify','</li>','raw','<div\x20class=\x22info-text\x22></div>','sterfive-dropdown','animate','IsForward','Unspecified','HasChild','application/json','nodeBrowser','inputs','nodes','#node-input-processed-details-aggregateType','message','../../icons/opcuanodeLogo.png','#node-input-returnBounds','ns=0;i=35',':visible','verify','$input','browseName','sterfive-combo-box','position','fa-sliders','resolveParentNode','POST','935595YoCwma','#node-input-processed-details-aggregateConfiguration-percentDataBad','isTypeRef','throw','expanded','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','json','sterfive-info','input-group','__parentNode','apply','NodeClass','#C0DEED','data','#select-history-type','4450263noWoIZ','value','next','toggle','/checkNodeId','BrowseName','endpoint','#section-annotation-data','#section-raw','referenceTypeId','#node-input-raw-numValuesPerNode','8OhggXS','6351786SHQMYk','$inputGroup','ObjectType','Objects','isSelectable','relativePath','fetching\x20failed\x20with\x20error',':first','expandable\x20expanded','left','\x22\x20style=\x22color:','#section-processed-details','\x22}><span\x20class=\x22tree-text\x22\x20title=','Variable','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','baseUrl','children','returnBounds','historyReadParam','height','type','browseResult','toString','#node-input-raw-endTime','function','$verifyBtn','#node-input-processed-details-endTime','append','#node-input-processed-details-startTime','options','ns=0;i=46','aggregateConfiguration','reset','find','Forward','error','ReferenceType','startTime','expandable','trigger','#node-input-processed-details-aggregateConfiguration-percentDataGood','20yvuqnh','already\x20fetched','useServerCapabilitiesDefaults','SuppressedError','TypeDefinition','done','HasTypeDefinition','#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults','placeholder','modified','percentDataBad','then','loading','4545441dHZrcY','#node-input-modified-endTime','hide','nodeAddressString','#node-input-processed-details-processingInterval','/opcua-endpoint2','useSlopedExtrapolation','DarkOrange','#node-input-raw-startTime','/browse','currentParent','nodeClass','endpointNode','11188450AgNWbo','#node-input-processed-details-aggregateConfiguration-treatUncertainAsBad','statusText','ns=0;i=40','endTime','OpcUa-Client2-HistoryRead','rgba(61,\x2060,\x204,\x200.525)','Organizes','attr','numValuesPerNode','registerType','suppressed','node','show','val','treatUncertainAsBad','#node-input-modified-startTime','log','err','scrollTop','Value','fa-text-width','$combo','fetched','</span><ul></ul></li>','pageY','length','#section-modified','widget','11m\x20ago','<li>error\x20','top','VariableType','#node-input-modified-numValuesPerNode','hasClass','<div/>','DataType','already\x20loading','53aDytmh','OpcUa-Endpoint2','replaceWith','.tree-text:first','click','#node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation','$info','element','target','309056QWfvev','parentNode','$dropdown','opcua','processed-details','HasSubtype','name','ns=0;i=45','ns=0;i=34','#section-event','fa-folder','DisplayName','change','opc.tcp://opcuademo.sterfive.com:26543','pageX','fa-list-alt','33386oeoZsh','$tree','View','HasComponent','text'];_0x475d=function(){return _0x3ae4a5;};return _0x475d();}(function(_0x1056e1,_0x4dc020){const _0x2514f1=_0x589e,_0x152d29=_0x1056e1();while(!![]){try{const _0x22bdca=-parseInt(_0x2514f1(0x1e1))/0x1*(-parseInt(_0x2514f1(0x112))/0x2)+parseInt(_0x2514f1(0x16c))/0x3+-parseInt(_0x2514f1(0x1a1))/0x4*(parseInt(_0x2514f1(0x15d))/0x5)+-parseInt(_0x2514f1(0x178))/0x6+-parseInt(_0x2514f1(0x1bb))/0x7+-parseInt(_0x2514f1(0x177))/0x8*(parseInt(_0x2514f1(0x1ae))/0x9)+parseInt(_0x2514f1(0x13a))/0xa*(parseInt(_0x2514f1(0x1ea))/0xb);if(_0x22bdca===_0x4dc020)break;else _0x152d29['push'](_0x152d29['shift']());}catch(_0x2303e7){_0x152d29['push'](_0x152d29['shift']());}}}(_0x475d,0xc9f7d),(function(){'use strict';const _0x281951=_0x589e;function _0x3b28cc(_0xe14403,_0x4c7203,_0x5689d5,_0x477bf7){function _0x5b1d56(_0x460b4a){return _0x460b4a instanceof _0x5689d5?_0x460b4a:new _0x5689d5(function(_0x198040){_0x198040(_0x460b4a);});}return new(_0x5689d5||(_0x5689d5=Promise))(function(_0x282304,_0x8ee8bb){const _0xcca669=_0x589e;function _0x345a87(_0x3ec867){const _0x92e804=_0x589e;try{_0x39fd37(_0x477bf7[_0x92e804(0x16e)](_0x3ec867));}catch(_0x3eb51e){_0x8ee8bb(_0x3eb51e);}}function _0x53db32(_0x4685ef){const _0x43cd36=_0x589e;try{_0x39fd37(_0x477bf7[_0x43cd36(0x160)](_0x4685ef));}catch(_0x616466){_0x8ee8bb(_0x616466);}}function _0x39fd37(_0x5348d4){const _0xd9ee9f=_0x589e;_0x5348d4[_0xd9ee9f(0x1a6)]?_0x282304(_0x5348d4['value']):_0x5b1d56(_0x5348d4['value'])[_0xd9ee9f(0x1ac)](_0x345a87,_0x53db32);}_0x39fd37((_0x477bf7=_0x477bf7[_0xcca669(0x167)](_0xe14403,_0x4c7203||[]))['next']());});}typeof SuppressedError===_0x281951(0x190)?SuppressedError:function(_0x573888,_0x186f1,_0x152e61){const _0x13432a=_0x281951;var _0x470353=new Error(_0x152e61);return _0x470353[_0x13432a(0x1f0)]=_0x13432a(0x1a4),_0x470353['error']=_0x573888,_0x470353[_0x13432a(0x1c6)]=_0x186f1,_0x470353;};const _0x73e5f6=_0x281951(0x153),_0x3ae083=_0x281951(0x130),_0xc271a2='ns=0;i=47',_0x278a55=_0x281951(0x196),_0x4d28d1=_0x281951(0x1f2),_0x3fe53e=_0x281951(0x1f1),_0x2d5eda=_0x281951(0x1be);var _0x2d6d43;(function(_0x3e19c5){const _0x383dad=_0x281951;_0x3e19c5[_0x3e19c5[_0x383dad(0x19a)]=0x0]=_0x383dad(0x19a),_0x3e19c5[_0x3e19c5['Inverse']=0x1]='Inverse',_0x3e19c5[_0x3e19c5[_0x383dad(0x12b)]=0x2]=_0x383dad(0x12b),_0x3e19c5[_0x3e19c5[_0x383dad(0x128)]=0x3]='Invalid';}(_0x2d6d43||(_0x2d6d43={})));var _0x570368;(function(_0x4ba527){const _0x14b724=_0x281951;_0x4ba527[_0x4ba527[_0x14b724(0x149)]=0x0]=_0x14b724(0x149),_0x4ba527[_0x4ba527[_0x14b724(0x13f)]=0x1]=_0x14b724(0x13f),_0x4ba527[_0x4ba527[_0x14b724(0x185)]=0x2]=_0x14b724(0x185),_0x4ba527[_0x4ba527[_0x14b724(0x120)]=0x4]='Method',_0x4ba527[_0x4ba527[_0x14b724(0x17a)]=0x8]=_0x14b724(0x17a),_0x4ba527[_0x4ba527[_0x14b724(0x1db)]=0x10]=_0x14b724(0x1db),_0x4ba527[_0x4ba527[_0x14b724(0x19c)]=0x20]=_0x14b724(0x19c),_0x4ba527[_0x4ba527[_0x14b724(0x1df)]=0x40]=_0x14b724(0x1df),_0x4ba527[_0x4ba527[_0x14b724(0x114)]=0x80]=_0x14b724(0x114);}(_0x570368||(_0x570368={})));var _0x2aa971;(function(_0x367e60){const _0xb91ffd=_0x281951;_0x367e60[_0x367e60[_0xb91ffd(0x13f)]=0x1]=_0xb91ffd(0x13f),_0x367e60[_0x367e60[_0xb91ffd(0x185)]=0x2]=_0xb91ffd(0x185),_0x367e60[_0x367e60[_0xb91ffd(0x120)]=0x4]=_0xb91ffd(0x120),_0x367e60[_0x367e60[_0xb91ffd(0x17a)]=0x8]='ObjectType',_0x367e60[_0x367e60[_0xb91ffd(0x1db)]=0x10]=_0xb91ffd(0x1db),_0x367e60[_0x367e60[_0xb91ffd(0x19c)]=0x20]='ReferenceType',_0x367e60[_0x367e60['DataType']=0x40]=_0xb91ffd(0x1df),_0x367e60[_0x367e60[_0xb91ffd(0x114)]=0x80]=_0xb91ffd(0x114);}(_0x2aa971||(_0x2aa971={})));var _0x3587e8;(function(_0x28351b){const _0x3576ed=_0x281951;_0x28351b[_0x28351b['ReferenceType']=0x1]=_0x3576ed(0x19c),_0x28351b[_0x28351b[_0x3576ed(0x148)]=0x2]=_0x3576ed(0x148),_0x28351b[_0x28351b[_0x3576ed(0x168)]=0x4]='NodeClass',_0x28351b[_0x28351b[_0x3576ed(0x171)]=0x8]=_0x3576ed(0x171),_0x28351b[_0x28351b[_0x3576ed(0x1f5)]=0x10]=_0x3576ed(0x1f5),_0x28351b[_0x28351b[_0x3576ed(0x1a5)]=0x20]='TypeDefinition';}(_0x3587e8||(_0x3587e8={})));function _0x1b4205(_0x378c7c){const _0xf42a02=_0x281951;switch(_0x378c7c){case _0xf42a02(0x1c2):return _0x73e5f6;case'HasProperty':return _0x278a55;case _0xf42a02(0x115):return _0xc271a2;case _0xf42a02(0x14a):return _0x4d28d1;case _0xf42a02(0x1ef):return _0x3fe53e;case _0xf42a02(0x1a7):return _0x2d5eda;}}const _0x35a57d=_0x218d94=>{const _0xfab53e=_0x281951;switch(_0x218d94[_0xfab53e(0x1b9)]){case _0xfab53e(0x13f):if(_0x218d94[_0xfab53e(0x175)]===_0x73e5f6);if(_0x218d94[_0xfab53e(0x133)]===_0x3ae083||_0x218d94[_0xfab53e(0x175)]==='i=61')return{'icon':_0xfab53e(0x1f4),'color':_0xfab53e(0x1c1)};return{'icon':'fa-object-group','color':'SeaGreen'};case _0xfab53e(0x185):if(_0x218d94[_0xfab53e(0x175)]===_0xc271a2)return{'icon':_0xfab53e(0x111),'color':_0xfab53e(0x132)};else return _0x218d94[_0xfab53e(0x175)]===_0x278a55?{'icon':_0xfab53e(0x111),'color':'DodgerBlue'}:{'icon':_0xfab53e(0x111),'color':_0xfab53e(0x139)};case _0xfab53e(0x120):return{'icon':'fa-cog','color':_0xfab53e(0x126)};case _0xfab53e(0x17a):return{'icon':_0xfab53e(0x11c),'color':_0xfab53e(0x1b5)};case _0xfab53e(0x1db):return{'icon':_0xfab53e(0x15a),'color':_0xfab53e(0x1b5)};case _0xfab53e(0x1df):return{'icon':_0xfab53e(0x1d0),'color':_0xfab53e(0x139)};}return{'icon':'fa-question','color':'grey'};},_0x352a42=(_0x163a43,_0x2783d0,_0x341607)=>_0x3b28cc(void 0x0,[_0x163a43,_0x2783d0,_0x341607],void 0x0,function*({endpointNode:_0x4271d8,endpoint:_0x20ca76,baseUrl:_0x232242},_0x4397a0,_0x3829ef){const _0x1e5afe=_0x281951,_0x39c63f=_0x232242+'/opcua-endpoint2',_0x37ec7a=_0x39c63f+_0x1e5afe(0x1b7),_0x3d5488=Object[_0x1e5afe(0x131)](Object[_0x1e5afe(0x131)]({},_0x3829ef),{'nodeId':_0x4397a0,'resultMask':0x3f}),_0x433c03=yield fetch(_0x37ec7a,{'method':_0x1e5afe(0x15c),'body':JSON[_0x1e5afe(0x142)]({'endpointNode':_0x4271d8,'endpoint':_0x20ca76,'browseDescription':_0x3d5488}),'headers':{'Content-Type':'application/json'}});if(_0x433c03[_0x1e5afe(0x13b)]!==0xc8)return console['log'](_0x1e5afe(0x17e),_0x433c03['status'],_0x433c03['statusText']),{'references':[]};const _0x4df0e8=yield _0x433c03[_0x1e5afe(0x163)](),_0x293a75=_0x4df0e8[_0x1e5afe(0x18d)][_0x1e5afe(0x117)]||[];return{'references':_0x293a75};}),_0x1ded34={'referenceTypeId':_0x1b4205(_0x281951(0x14a)),'includeSubtypes':!![],'browseDirection':_0x2d6d43['Forward'],'nodeClassMask':_0x570368[_0x281951(0x185)]|_0x570368[_0x281951(0x13f)]|_0x570368[_0x281951(0x120)],'resultMask':0x3f},_0x58b18a={'referenceTypeId':_0x1b4205(_0x281951(0x1c2)),'includeSubtypes':!![],'browseDirection':_0x2d6d43[_0x281951(0x19a)],'nodeClassMask':_0x570368[_0x281951(0x185)]|_0x570368['Object']|_0x570368[_0x281951(0x120)],'resultMask':0x3f},_0x3ea04b=(_0x4cdf2a,_0x15dd8e)=>_0x3b28cc(void 0x0,[_0x4cdf2a,_0x15dd8e],void 0x0,function*({endpointNode:_0x4724f8,endpoint:_0x226308,baseUrl:_0x25b8db},{nodeId:_0x10155b,rootNodeId:_0x11326,isType:_0x3b02f8}){const _0x1f9396=_0x281951,_0x5d713e=_0x25b8db+_0x1f9396(0x1b3),_0x5b1540=_0x5d713e+_0x1f9396(0x118),_0x1a929e=yield fetch(_0x5b1540,{'method':_0x1f9396(0x15c),'body':JSON[_0x1f9396(0x142)]({'endpointNode':_0x4724f8,'endpoint':_0x226308,'nodeId':_0x10155b,'rootNodeId':_0x11326,'isType':_0x3b02f8}),'headers':{'Content-Type':_0x1f9396(0x14b)}});if(_0x1a929e[_0x1f9396(0x13b)]!==0xc8)return null;const _0x394e1e=yield _0x1a929e[_0x1f9396(0x163)]();return _0x394e1e['browsePath'];}),_0x49bd5b=(_0x4a16b7,_0x43a634,_0x3fc564)=>_0x3b28cc(void 0x0,[_0x4a16b7,_0x43a634,_0x3fc564],void 0x0,function*({endpointNode:_0x56b7f2,endpoint:_0x2b6da8,baseUrl:_0x3360e6},_0x2d532e,_0x2ad5f4){const _0x25543f=_0x281951,_0x270e17=_0x3360e6+_0x25543f(0x1b3),_0x500bf7=_0x270e17+_0x25543f(0x170),_0x4ec41d=_0x2d532e[_0x25543f(0x1c9)](),_0x4993b0=yield fetch(_0x500bf7,{'method':'POST','body':JSON['stringify']({'endpointNode':_0x56b7f2,'endpoint':_0x2b6da8,'nodeId':_0x4ec41d}),'headers':{'Content-Type':_0x25543f(0x14b)}}),_0x514867=(_0x192953,_0x40d38c)=>{const _0x3729c4=_0x25543f;_0x2ad5f4['text'](_0x192953)['addClass'](_0x3729c4(0x164))['addClass'](_0x40d38c),_0x2ad5f4[_0x3729c4(0x1c8)](),setTimeout(()=>{const _0x21bc60=_0x3729c4;_0x2ad5f4[_0x21bc60(0x12c)](_0x40d38c),_0x2ad5f4[_0x21bc60(0x1b0)]();},0xbb8);},_0x2094e6=yield _0x4993b0[_0x25543f(0x163)]();_0x4993b0['status']!==0xc8?_0x514867(_0x25543f(0x12a)+_0x4ec41d,_0x25543f(0x121)):_0x2094e6[_0x25543f(0x123)]['match'](/Good/)?(_0x2d532e[_0x25543f(0x1c9)](_0x2094e6[_0x25543f(0x1b1)]),_0x2d532e['trigger'](_0x25543f(0x1f6)),_0x514867('Good','ok')):(_0x2d532e[_0x25543f(0x1c9)](''+_0x4ec41d),_0x514867(_0x2094e6[_0x25543f(0x123)]+'\x20'+_0x4993b0[_0x25543f(0x1bd)],'failure'));});function _0x58c73f(_0xb7c4c8,_0x4224dc){return _0x3b28cc(this,void 0x0,void 0x0,function*(){const _0x18ca27=_0x589e,_0x4e22b0=_0xb7c4c8[_0x18ca27(0x16a)](_0x18ca27(0x16d)),_0x4b210a=yield _0x352a42(_0x4224dc,_0x4e22b0,_0x1ded34),_0x57ac40=yield _0x352a42(_0x4224dc,_0x4e22b0,_0x58b18a);return{'references':[..._0x4b210a[_0x18ca27(0x117)],..._0x57ac40[_0x18ca27(0x117)]]};});}const _0x363347={'referenceTypeId':_0x1b4205('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x2d6d43[_0x281951(0x19a)],'nodeClassMask':_0x570368['ReferenceType']|_0x570368[_0x281951(0x17a)]|_0x570368[_0x281951(0x1df)]|_0x570368['VariableType'],'resultMask':0x3f};function _0x25f30a(_0x5b438b,_0x38f843){return _0x3b28cc(this,void 0x0,void 0x0,function*(){const _0x400f2e=_0x589e,_0x494184=_0x5b438b[_0x400f2e(0x16a)](_0x400f2e(0x16d)),_0x208155=yield _0x352a42(_0x38f843,_0x494184,_0x363347);return _0x208155;});}const _0x50a783=_0x25c600=>{const _0x186bc3=_0x281951;var _0x27a9eb,_0x5cf840,_0x54ef19,_0x2d6f11;if(!_0x25c600||!_0x25c600['nodeId']){const _0x38aa4d=$(_0x186bc3(0x162));return _0x38aa4d;}const _0x24ca64=_0x25c600[_0x186bc3(0x12e)][_0x186bc3(0x18e)](),_0x18ea41=((_0x27a9eb=_0x25c600[_0x186bc3(0x11b)])===null||_0x27a9eb===void 0x0?void 0x0:_0x27a9eb[_0x186bc3(0x116)])||((_0x5cf840=_0x25c600[_0x186bc3(0x157)])===null||_0x5cf840===void 0x0?void 0x0:_0x5cf840[_0x186bc3(0x1f0)])||_0x25c600[_0x186bc3(0x12e)]['toString'](),{icon:_0x40ca09,color:_0x11f847}=_0x35a57d(_0x25c600),_0x38f851='('+_0x25c600['nodeId'][_0x186bc3(0x18e)]()+')\x20'+(((_0x54ef19=_0x25c600[_0x186bc3(0x157)])===null||_0x54ef19===void 0x0?void 0x0:_0x54ef19[_0x186bc3(0x1f0)])||((_0x2d6f11=_0x25c600[_0x186bc3(0x11b)])===null||_0x2d6f11===void 0x0?void 0x0:_0x2d6f11[_0x186bc3(0x116)])||''),_0x5db198=$('<li\x20key=\x22'+_0x25c600[_0x186bc3(0x12e)][_0x186bc3(0x18e)]()+_0x186bc3(0x184)+_0x38f851+'><i\x20class=\x22fa\x20'+_0x40ca09+_0x186bc3(0x182)+_0x11f847+_0x186bc3(0x12f)+_0x18ea41+_0x186bc3(0x1d3));return _0x5db198[_0x186bc3(0x129)]('expandable'),_0x5db198[_0x186bc3(0x16a)]('value',_0x24ca64),_0x5db198['data'](_0x186bc3(0x11a),_0x25c600),_0x5db198;},_0x143b62=(_0xcfe23f,_0x11bf99)=>{const _0x196527=_0x281951;return _0x11bf99[_0x196527(0x199)](_0x196527(0x12d)+_0xcfe23f+'\x22]');},_0x470700=(_0xcba23a,_0x1cea77)=>{const _0x442672=_0x281951;_0xcba23a[_0x442672(0x113)][_0x442672(0x199)]('li\x20>\x20.tree-text')[_0x442672(0x12c)](_0x442672(0x134)),_0x1cea77[_0x442672(0x199)](_0x442672(0x1e4))[_0x442672(0x129)](_0x442672(0x134));},_0x18a6ed=(_0x33aa3c,_0x1c7570,_0x64ae60)=>_0x3b28cc(void 0x0,void 0x0,void 0x0,function*(){const _0x401a2b=_0x281951;let _0x1eeb15=_0x64ae60[_0x401a2b(0x188)](_0x401a2b(0x17f));_0x1c7570[_0x401a2b(0x17d)]['elements']||[];const _0x62000d=_0x1c7570[_0x401a2b(0x11e)]||[];if(_0x62000d['length']===0x0)return;for(const _0x2f2584 of _0x62000d){_0x1eeb15[_0x401a2b(0x1dd)](_0x401a2b(0x19e))&&(yield _0x1dc423(_0x33aa3c,_0x1eeb15));const _0x513e01=_0x143b62(_0x2f2584,_0x1eeb15);if(_0x513e01['length']===0x0)return;_0x1eeb15=_0x513e01;}_0x470700(_0x33aa3c,_0x1eeb15),_0x83c1f9(_0x33aa3c[_0x401a2b(0x1ec)],_0x1eeb15);});function _0x83c1f9(_0x2f59c5,_0x11129b){const _0x58957f=_0x281951,_0x136fcb=_0x11129b[_0x58957f(0x159)]()[_0x58957f(0x1da)],_0x529272=_0x2f59c5[_0x58957f(0x1ce)]();if(_0x529272==undefined)return;const _0x21a411=_0x529272+_0x136fcb-_0x2f59c5[_0x58957f(0x18b)]()/0x2+_0x11129b[_0x58957f(0x18b)]()/0x2;_0x2f59c5[_0x58957f(0x147)]({'scrollTop':_0x21a411},0x1f4);}const _0x1ac791=(_0x550d9f,_0x2b3da4)=>_0x3b28cc(void 0x0,void 0x0,void 0x0,function*(){const _0x1b7c9a=_0x281951,_0x4586bf=_0x550d9f[_0x1b7c9a(0x156)][_0x1b7c9a(0x1c9)](),_0x546b33={'nodeId':_0x4586bf,'rootNodeId':_0x2b3da4[_0x1b7c9a(0x12e)],'isType':_0x550d9f[_0x1b7c9a(0x195)][_0x1b7c9a(0x15f)]||![]},_0x355e96=_0x14f53a(_0x550d9f),_0x31b9c7=yield _0x3ea04b(_0x355e96,_0x546b33);if(!_0x31b9c7)return;yield _0x18a6ed(_0x550d9f,_0x31b9c7,_0x550d9f[_0x1b7c9a(0x113)]);});function _0x2e37ee(_0x5ecdd0,_0x5cdd13,_0x1cf0b2,_0x264018){return _0x3b28cc(this,void 0x0,void 0x0,function*(){const _0x135300=_0x589e;if(_0x5cdd13[_0x135300(0x1dd)](_0x135300(0x1d2))){console[_0x135300(0x1cc)](_0x135300(0x1a2));return;}if(_0x5cdd13[_0x135300(0x1dd)](_0x135300(0x1ad))){console['log'](_0x135300(0x1e0));return;}_0x5cdd13[_0x135300(0x129)](_0x135300(0x1ad)),_0x5cdd13['append']('<div\x20class=\x22spinner\x22></div>');try{_0x5cdd13[_0x135300(0x188)]('ul')[_0x135300(0x136)]();const {references:_0x4975ea}=yield _0x1cf0b2(_0x5cdd13,_0x264018);for(const _0x277e79 of _0x4975ea){if(_0x5ecdd0[_0x135300(0x195)]['filter']&&!_0x5ecdd0[_0x135300(0x195)]['filter'](_0x277e79))continue;const _0x290b9d=_0x50a783(_0x277e79);_0x5cdd13['children']('ul')['append'](_0x290b9d);}_0x5cdd13[_0x135300(0x129)]('fetched');}catch(_0x44cb81){_0x5cdd13['children']('ul')[_0x135300(0x193)](_0x135300(0x1d9)+_0x44cb81[_0x135300(0x150)]+_0x135300(0x143)),console[_0x135300(0x1cc)](_0x135300(0x1cd),_0x44cb81);}_0x5cdd13[_0x135300(0x199)]('.spinner')['remove'](),_0x5cdd13[_0x135300(0x12c)]('loading');});}function _0x14f53a(_0x4e75a9){const _0x54ce96=_0x281951,_0x19dbe8={'baseUrl':_0x4e75a9['options'][_0x54ce96(0x187)],'endpointNode':typeof _0x4e75a9[_0x54ce96(0x195)]['endpointNode']===_0x54ce96(0x190)?_0x4e75a9[_0x54ce96(0x195)][_0x54ce96(0x1ba)]():_0x4e75a9[_0x54ce96(0x195)][_0x54ce96(0x1ba)],'endpoint':typeof _0x4e75a9[_0x54ce96(0x195)]['endpoint']===_0x54ce96(0x190)?_0x4e75a9[_0x54ce96(0x195)][_0x54ce96(0x172)]():_0x4e75a9[_0x54ce96(0x195)][_0x54ce96(0x172)]};return _0x19dbe8;}function _0x1dc423(_0x4c86a9,_0x53d4c3){return _0x3b28cc(this,void 0x0,void 0x0,function*(){const _0x40d152=_0x589e;if(_0x53d4c3['hasClass'](_0x40d152(0x1d2))){_0x53d4c3[_0x40d152(0x12c)](_0x40d152(0x19e))[_0x40d152(0x129)](_0x40d152(0x161)),_0x53d4c3[_0x40d152(0x188)]('ul')[_0x40d152(0x16f)]();return;}const _0x31b77e=_0x14f53a(_0x4c86a9),_0x5a74b0=!_0x4c86a9[_0x40d152(0x195)][_0x40d152(0x15f)]?_0x58c73f:_0x25f30a;try{yield _0x2e37ee(_0x4c86a9,_0x53d4c3,_0x5a74b0,_0x31b77e),_0x53d4c3[_0x40d152(0x12c)](_0x40d152(0x19e))[_0x40d152(0x129)](_0x40d152(0x161));}catch(_0xe5ffe5){_0x53d4c3[_0x40d152(0x12c)](_0x40d152(0x19e))['addClass']('expanded'),console[_0x40d152(0x1cc)](_0x40d152(0x19b),_0xe5ffe5);}});}const _0x297857=()=>{const _0x5c9c3f=_0x281951;$[_0x5c9c3f(0x1d7)]('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':_0x5c9c3f(0x1f7)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x5c9c3f(0x17b)},'nodeClass':_0x5c9c3f(0x13f),'nodeId':_0x5c9c3f(0x13d),'displayName':{'text':'Objects'},'typeDefinition':_0x3ae083}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x3b28cc(this,void 0x0,void 0x0,function*(){const _0x114b0f=_0x589e,_0x4408b9=this;if(!_0x4408b9[_0x114b0f(0x166)]){const _0x11cd75=typeof _0x4408b9[_0x114b0f(0x195)][_0x114b0f(0x1eb)]===_0x114b0f(0x190)?_0x4408b9[_0x114b0f(0x195)][_0x114b0f(0x1eb)]['call'](_0x4408b9):_0x4408b9[_0x114b0f(0x195)][_0x114b0f(0x1eb)];if(_0x11cd75 instanceof Promise){const _0x37f878=yield _0x11cd75;_0x4408b9[_0x114b0f(0x166)]=_0x37f878;}else _0x4408b9['__parentNode']=_0x11cd75;}return _0x4408b9[_0x114b0f(0x166)];});},'reset'(){return _0x3b28cc(this,void 0x0,void 0x0,function*(){const _0x2af9f3=_0x589e,_0x203492=this,_0x9ca8b7=_0x203492;_0x9ca8b7['__parentNode']=undefined,_0x203492[_0x2af9f3(0x113)][_0x2af9f3(0x136)]();const _0x4bb128=yield this[_0x2af9f3(0x15b)](),_0x528a79=_0x50a783(_0x4bb128);_0x203492[_0x2af9f3(0x113)][_0x2af9f3(0x193)](_0x528a79),_0x203492['currentParent']=_0x4bb128;});},'verify'(){const _0x4613e4=_0x5c9c3f,_0x2039e6=this,_0x5344b8=_0x14f53a(_0x2039e6);_0x49bd5b(_0x5344b8,_0x2039e6[_0x4613e4(0x156)],_0x2039e6[_0x4613e4(0x1e7)]);},'_create'(){const _0x276459=_0x5c9c3f,_0x4dc7d1=this;_0x4dc7d1[_0x276459(0x156)]=this[_0x276459(0x1e8)],_0x4dc7d1[_0x276459(0x1d1)]=$('<div/>'),_0x4dc7d1[_0x276459(0x1d1)][_0x276459(0x129)](_0x276459(0x158)),this[_0x276459(0x1e8)][_0x276459(0x1e3)](_0x4dc7d1[_0x276459(0x1d1)]),_0x4dc7d1[_0x276459(0x179)]=$(_0x276459(0x1de))[_0x276459(0x129)](_0x276459(0x165)),_0x4dc7d1[_0x276459(0x1d1)][_0x276459(0x193)](_0x4dc7d1['$inputGroup']),_0x4dc7d1[_0x276459(0x179)][_0x276459(0x193)](_0x4dc7d1[_0x276459(0x156)]),_0x4dc7d1['$toggleTreeBtn']=$(_0x276459(0x125)),_0x4dc7d1[_0x276459(0x179)][_0x276459(0x193)](_0x4dc7d1[_0x276459(0x127)]),_0x4dc7d1[_0x276459(0x127)]['on'](_0x276459(0x1e5),function(){return _0x3b28cc(this,void 0x0,void 0x0,function*(){const _0x467119=_0x589e;var _0x193bc4;let _0x561a57=![],_0x25295b;!_0x4dc7d1['$dropdown']['is'](_0x467119(0x154))&&(_0x4dc7d1[_0x467119(0x1e7)]['hide'](),_0x25295b=yield _0x4dc7d1[_0x467119(0x15b)](),(_0x25295b!==_0x4dc7d1['currentParent']||((_0x193bc4=_0x4dc7d1[_0x467119(0x1b8)])===null||_0x193bc4===void 0x0?void 0x0:_0x193bc4['nodeId'])!==_0x25295b[_0x467119(0x12e)])&&(yield _0x4dc7d1[_0x467119(0x198)]()),_0x561a57=!![]),_0x4dc7d1[_0x467119(0x1ec)]['toggle'](),_0x561a57&&(yield _0x1ac791(_0x4dc7d1,_0x25295b));});}),_0x4dc7d1[_0x276459(0x191)]=$(_0x276459(0x186)),_0x4dc7d1[_0x276459(0x179)][_0x276459(0x193)](_0x4dc7d1['$verifyBtn']),_0x4dc7d1[_0x276459(0x191)]['on']('click',()=>{const _0x105698=_0x276459;this[_0x105698(0x155)]();});!_0x4dc7d1[_0x276459(0x156)]['attr'](_0x276459(0x1a9))&&_0x4dc7d1[_0x276459(0x156)][_0x276459(0x1c3)](_0x276459(0x1a9),_0x276459(0x137));_0x4dc7d1[_0x276459(0x1e7)]=$(_0x276459(0x145)),_0x4dc7d1[_0x276459(0x1e7)][_0x276459(0x1b0)](),_0x4dc7d1[_0x276459(0x1ec)]=$('<div/>')['addClass'](_0x276459(0x146))[_0x276459(0x1b0)](),_0x4dc7d1[_0x276459(0x1d1)][_0x276459(0x193)](_0x4dc7d1[_0x276459(0x1e7)]),_0x4dc7d1[_0x276459(0x1d1)][_0x276459(0x193)](_0x4dc7d1[_0x276459(0x1ec)]),_0x4dc7d1[_0x276459(0x113)]=$(_0x276459(0x140))['appendTo'](_0x4dc7d1[_0x276459(0x1ec)]),this[_0x276459(0x198)]();const _0x1c7c69=(_0x375f9e,_0x5378f1)=>{const _0x29882a=_0x276459,_0x25855a=0x14,_0x9fc742=0x14,_0x26f515=_0x375f9e[_0x29882a(0x141)](),_0x5d2a81=_0x5378f1;if(_0x5d2a81[_0x29882a(0x110)]>=_0x26f515[_0x29882a(0x181)]&&_0x5d2a81[_0x29882a(0x110)]<=_0x26f515[_0x29882a(0x181)]+_0x25855a&&_0x5d2a81[_0x29882a(0x1d4)]>=_0x26f515[_0x29882a(0x1da)]&&_0x5d2a81[_0x29882a(0x1d4)]<=_0x26f515[_0x29882a(0x1da)]+_0x9fc742)return!![];return![];},_0x5a8148=_0x190698=>_0x3b28cc(this,void 0x0,void 0x0,function*(){const _0x20a794=_0x276459;if(_0x190698[_0x20a794(0x1dd)]('expandable'))_0x1dc423(_0x4dc7d1,_0x190698);else{if(_0x190698['hasClass'](_0x20a794(0x161)))_0x190698[_0x20a794(0x188)]('ul')[_0x20a794(0x16f)](),_0x190698[_0x20a794(0x122)](_0x20a794(0x180));else{if(_0x190698[_0x20a794(0x188)]('ul')[_0x20a794(0x188)]()[_0x20a794(0x1d5)]>0x0)_0x190698[_0x20a794(0x188)]('ul')[_0x20a794(0x16f)](),_0x190698['toggleClass'](_0x20a794(0x180));else;}}});_0x4dc7d1[_0x276459(0x113)]['on']('dblclick','li',function(_0x40068d){const _0x4b704c=_0x276459;var _0x167467,_0x4ee02f;_0x40068d[_0x4b704c(0x119)]();let _0x16e4c3=$(this);if(_0x1c7c69(_0x16e4c3,_0x40068d))_0x5a8148(_0x16e4c3);else{const _0x2a6c28=_0x16e4c3[_0x4b704c(0x16a)]('value'),_0x4e3ac2=_0x16e4c3[_0x4b704c(0x16a)]('reference');if(_0x4dc7d1[_0x4b704c(0x195)]['isSelectable']&&!_0x4dc7d1[_0x4b704c(0x195)][_0x4b704c(0x17c)](_0x4e3ac2))return;_0x4dc7d1[_0x4b704c(0x156)][_0x4b704c(0x16a)](_0x4b704c(0x11a),_0x4e3ac2);const _0xf28101=((_0x167467=_0x4e3ac2[_0x4b704c(0x11b)])===null||_0x167467===void 0x0?void 0x0:_0x167467[_0x4b704c(0x116)])||((_0x4ee02f=_0x4e3ac2['browseName'])===null||_0x4ee02f===void 0x0?void 0x0:_0x4ee02f[_0x4b704c(0x1f0)])||_0x4e3ac2[_0x4b704c(0x12e)][_0x4b704c(0x18e)](),_0x5370cc='['+_0xf28101+']('+_0x2a6c28+')';_0x4dc7d1[_0x4b704c(0x156)][_0x4b704c(0x1c9)](_0x5370cc),_0x4dc7d1['$input'][_0x4b704c(0x19f)](_0x4b704c(0x1f6)),_0x4dc7d1['$dropdown'][_0x4b704c(0x1b0)]();}}),_0x4dc7d1[_0x276459(0x113)]['on'](_0x276459(0x1e5),'li',function(_0x255c7f){const _0x1417b4=_0x276459;_0x255c7f[_0x1417b4(0x119)]();let _0xdc2ba6=$(this);_0x1c7c69(_0xdc2ba6,_0x255c7f)&&_0x5a8148(_0xdc2ba6),_0x470700(_0x4dc7d1,_0xdc2ba6);}),$(document)['on'](_0x276459(0x1e5),function(_0x21fe2d){const _0x22ef85=_0x276459;!$(_0x21fe2d[_0x22ef85(0x1e9)])['closest'](_0x4dc7d1[_0x22ef85(0x1d1)])[_0x22ef85(0x1d5)]&&_0x4dc7d1[_0x22ef85(0x1ec)][_0x22ef85(0x1b0)]();});}});},_0x38b534=()=>{const _0x3d3e2b=_0x281951,_0x48d7e2=$('#node-input-endpoint'),_0x44c98e=_0x48d7e2[_0x3d3e2b(0x1c9)](),_0x4392d0=RED[_0x3d3e2b(0x14e)][_0x3d3e2b(0x1c7)](_0x44c98e);if(!_0x4392d0)return undefined;const {endpoint:_0x3a5f29,securityMode:_0x38599d,securityPolicy:_0x20888a,userIdentityType:_0x45fb2e,credentials:_0x5b9d43}=_0x4392d0,_0x1e6980={'endpoint':_0x3a5f29,'securityMode':_0x38599d,'securityPolicy':_0x20888a,'userIdentityType':_0x45fb2e,'credentials':_0x5b9d43};return _0x1e6980;},_0x314c15=()=>{return{'endpointNode':_0x7a160b};},_0x7a160b=()=>{const _0x38ea84=_0x281951,_0x253aae=$('#node-input-endpoint'),_0x40b117=_0x253aae[_0x38ea84(0x1c9)](),_0x34f591=_0x38b534();if(!_0x34f591)return undefined;return{'id':_0x40b117};};RED[_0x281951(0x14e)][_0x281951(0x1c5)](_0x281951(0x1c0),{'category':_0x281951(0x1ed),'color':_0x281951(0x169),'align':_0x281951(0x13e),'icon':_0x281951(0x151),'paletteLabel':'read-history','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x281951(0x1e2)},'historyReadParam':{'value':{'type':_0x281951(0x144),'endTime':_0x281951(0x124),'startTime':_0x281951(0x1d8),'numValuesPerNode':0x64,'returnBounds':!![]},'required':!![],'validate':_0x5d9fdf=>{if(_0x5d9fdf==='')return![];return!![];}},'nodeId':{'value':'','required':![]},'outputType':{'value':_0x281951(0x1cf),'required':!![]}},'outputs':0x2,'label'(){const _0x562621=_0x281951;return this[_0x562621(0x1f0)]||'OPCUA\x20Client\x20HistoryRead';},'labelStyle'(){const _0x5666bd=_0x281951;return this[_0x5666bd(0x1f0)]?'node_label_italic':'';},'oneditprepare'(){const _0x1c295a=_0x281951,_0x498ba6=this;_0x297857(),_0x498ba6[_0x1c295a(0x14d)]=0x1;const _0x43194a=$(_0x1c295a(0x13c));_0x43194a[_0x1c295a(0x14c)](Object[_0x1c295a(0x131)](Object['assign']({},_0x314c15()),{'isSelectable'(_0xdc84e9){const _0x261038=_0x1c295a;return _0xdc84e9[_0x261038(0x1b9)]==='Variable';}})),$('#select-history-type')[_0x1c295a(0x1c9)](_0x498ba6['historyReadParam'][_0x1c295a(0x18c)]);switch(_0x498ba6['historyReadParam']['type']){case'raw':$(_0x1c295a(0x1b6))[_0x1c295a(0x1c9)](_0x498ba6[_0x1c295a(0x18a)][_0x1c295a(0x19d)]),$(_0x1c295a(0x18f))[_0x1c295a(0x1c9)](_0x498ba6[_0x1c295a(0x18a)]['endTime']),$(_0x1c295a(0x176))['val'](_0x498ba6[_0x1c295a(0x18a)][_0x1c295a(0x1c4)]),$(_0x1c295a(0x152))[_0x1c295a(0x11f)]('checked',_0x498ba6[_0x1c295a(0x18a)][_0x1c295a(0x189)]);break;case _0x1c295a(0x1aa):$(_0x1c295a(0x1cb))[_0x1c295a(0x1c9)](_0x498ba6[_0x1c295a(0x18a)][_0x1c295a(0x19d)]),$(_0x1c295a(0x1af))[_0x1c295a(0x1c9)](_0x498ba6[_0x1c295a(0x18a)][_0x1c295a(0x1bf)]),$(_0x1c295a(0x1dc))['val'](_0x498ba6[_0x1c295a(0x18a)][_0x1c295a(0x1c4)]),$('#node-input-modified-returnBounds')[_0x1c295a(0x11f)](_0x1c295a(0x11d),_0x498ba6['historyReadParam'][_0x1c295a(0x189)]);break;case _0x1c295a(0x1ee):_0x498ba6[_0x1c295a(0x18a)][_0x1c295a(0x197)]=_0x498ba6['historyReadParam'][_0x1c295a(0x197)]||{},$(_0x1c295a(0x194))[_0x1c295a(0x1c9)](_0x498ba6[_0x1c295a(0x18a)][_0x1c295a(0x19d)]),$(_0x1c295a(0x192))[_0x1c295a(0x1c9)](_0x498ba6[_0x1c295a(0x18a)]['endTime']),$(_0x1c295a(0x1b2))['val'](_0x498ba6['historyReadParam'][_0x1c295a(0x135)]),$(_0x1c295a(0x14f))[_0x1c295a(0x1c9)](_0x498ba6[_0x1c295a(0x18a)]['aggregateType']),$(_0x1c295a(0x1a8))['prop'](_0x1c295a(0x11d),_0x498ba6[_0x1c295a(0x18a)][_0x1c295a(0x197)][_0x1c295a(0x1a3)]),$(_0x1c295a(0x1bc))[_0x1c295a(0x11f)](_0x1c295a(0x11d),_0x498ba6[_0x1c295a(0x18a)][_0x1c295a(0x197)][_0x1c295a(0x1ca)]),$(_0x1c295a(0x15e))[_0x1c295a(0x1c9)](_0x498ba6[_0x1c295a(0x18a)]['aggregateConfiguration'][_0x1c295a(0x1ab)]),$(_0x1c295a(0x1a0))[_0x1c295a(0x1c9)](_0x498ba6[_0x1c295a(0x18a)][_0x1c295a(0x197)]['percentDataGood']),$(_0x1c295a(0x1e6))[_0x1c295a(0x11f)](_0x1c295a(0x11d),_0x498ba6['historyReadParam'][_0x1c295a(0x197)][_0x1c295a(0x1b4)]);break;}{function _0x4546d1(){const _0x3f7b4a=_0x1c295a;$(_0x3f7b4a(0x174))['hide'](),$(_0x3f7b4a(0x1d6))['hide'](),$(_0x3f7b4a(0x183))[_0x3f7b4a(0x1b0)](),$('#section-at-time')['hide'](),$(_0x3f7b4a(0x173))[_0x3f7b4a(0x1b0)](),$(_0x3f7b4a(0x1f3))[_0x3f7b4a(0x1b0)]();}function _0x1e22cc(){const _0x8f3ab=_0x1c295a;_0x4546d1();var _0x219904=$(_0x8f3ab(0x16b))[_0x8f3ab(0x1c9)]();$('#section-'+_0x219904)['show']();}$(_0x1c295a(0x16b))['on'](_0x1c295a(0x1f6),_0x1e22cc),_0x1e22cc();}},'oneditsave'(){const _0x42ca2b=_0x281951,_0x1bcfa2=_0x239e3d=>_0x239e3d[_0x42ca2b(0x1c9)]()==undefined?'':_0x239e3d['val']()[_0x42ca2b(0x18e)](),_0x5ac7a3=_0x5eebff=>_0x5eebff[_0x42ca2b(0x1c9)]()==undefined?0x0:_0x5eebff[_0x42ca2b(0x1c9)](),_0x5b12dd=$(_0x42ca2b(0x16b))[_0x42ca2b(0x1c9)]();switch(_0x5b12dd){case _0x42ca2b(0x144):this[_0x42ca2b(0x18a)]={'type':_0x42ca2b(0x144),'startTime':_0x1bcfa2($(_0x42ca2b(0x1b6))),'endTime':_0x1bcfa2($(_0x42ca2b(0x18f))),'numValuesPerNode':_0x5ac7a3($('#node-input-raw-numValuesPerNode')),'returnBounds':$(_0x42ca2b(0x152))[_0x42ca2b(0x11f)](_0x42ca2b(0x11d))};break;case _0x42ca2b(0x1aa):this[_0x42ca2b(0x18a)]={'type':_0x42ca2b(0x1aa),'startTime':_0x1bcfa2($('#node-input-modified-startTime')),'endTime':_0x1bcfa2($(_0x42ca2b(0x1af))),'numValuesPerNode':_0x5ac7a3($('#node-input-modified-numValuesPerNode')),'returnBounds':$(_0x42ca2b(0x138))[_0x42ca2b(0x11f)]('checked')};break;case _0x42ca2b(0x1ee):this[_0x42ca2b(0x18a)]={'type':_0x42ca2b(0x1ee),'startTime':_0x1bcfa2($(_0x42ca2b(0x194))),'endTime':_0x1bcfa2($(_0x42ca2b(0x192))),'processingInterval':_0x5ac7a3($('#node-input-processed-details-processingInterval')),'aggregateType':_0x1bcfa2($(_0x42ca2b(0x14f))),'aggregateConfiguration':{'useServerCapabilitiesDefaults':$('#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults')[_0x42ca2b(0x11f)]('checked'),'treatUncertainAsBad':$(_0x42ca2b(0x1bc))[_0x42ca2b(0x11f)]('checked'),'percentDataBad':_0x5ac7a3($(_0x42ca2b(0x15e))),'percentDataGood':_0x5ac7a3($(_0x42ca2b(0x1a0))),'useSlopedExtrapolation':$(_0x42ca2b(0x1e6))[_0x42ca2b(0x11f)](_0x42ca2b(0x11d))}};break;}}});}()));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzYjI4Y2MiLCJfMHhlMTQ0MDMiLCJfMHg0YzcyMDMiLCJfMHg1Njg5ZDUiLCJfMHg0NzdiZjciLCJfMHg1YjFkNTYiLCJfMHg0NjBiNGEiLCJfMHgxOTgwNDAiLCJQcm9taXNlIiwiXzB4MjgyMzA0IiwiXzB4OGVlOGJiIiwiXzB4MzQ1YTg3IiwiXzB4M2VjODY3IiwiXzB4MzlmZDM3IiwiXzB4M2ViNTFlIiwiXzB4NTNkYjMyIiwiXzB4NDY4NWVmIiwiXzB4NjE2NDY2IiwiXzB4NTM0OGQ0IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NTczODg4IiwiXzB4MTg2ZjEiLCJfMHgxNTJlNjEiLCJfMHg0NzAzNTMiLCJFcnJvciIsIl8weDczZTVmNiIsIl8weDNhZTA4MyIsIl8weGMyNzFhMiIsIl8weDI3OGE1NSIsIl8weDRkMjhkMSIsIl8weDNmZTUzZSIsIl8weDJkNWVkYSIsIl8weDJkNmQ0MyIsIl8weDNlMTljNSIsIl8weDU3MDM2OCIsIl8weDRiYTUyNyIsIl8weDJhYTk3MSIsIl8weDM2N2U2MCIsIl8weDM1ODdlOCIsIl8weDI4MzUxYiIsIl8weDFiNDIwNSIsIl8weDM3OGM3YyIsIl8weDM1YTU3ZCIsIl8weDIxOGQ5NCIsIl8weDM1MmE0MiIsIl8weDE2M2E0MyIsIl8weDI3ODNkMCIsIl8weDM0MTYwNyIsImVuZHBvaW50Tm9kZSIsIl8weDQyNzFkOCIsImVuZHBvaW50IiwiXzB4MjBjYTc2IiwiYmFzZVVybCIsIl8weDIzMjI0MiIsIl8weDQzOTdhMCIsIl8weDM4MjllZiIsIl8weDM5YzYzZiIsIl8weDM3ZWM3YSIsIl8weDNkNTQ4OCIsIk9iamVjdCIsIl8weDQzM2MwMyIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHg0ZGYwZTgiLCJfMHgyOTNhNzUiLCJfMHgxZGVkMzQiLCJfMHg1OGIxOGEiLCJfMHgzZWEwNGIiLCJfMHg0Y2RmMmEiLCJfMHgxNWRkOGUiLCJfMHg0NzI0ZjgiLCJfMHgyMjYzMDgiLCJfMHgyNWI4ZGIiLCJub2RlSWQiLCJfMHgxMDE1NWIiLCJyb290Tm9kZUlkIiwiXzB4MTEzMjYiLCJpc1R5cGUiLCJfMHgzYjAyZjgiLCJfMHg1ZDcxM2UiLCJfMHg1YjE1NDAiLCJfMHgxYTkyOWUiLCJfMHgzOTRlMWUiLCJfMHg0OWJkNWIiLCJfMHg0YTE2YjciLCJfMHg0M2E2MzQiLCJfMHgzZmM1NjQiLCJfMHg1NmI3ZjIiLCJfMHgyYjZkYTgiLCJfMHgzMzYwZTYiLCJfMHgyZDUzMmUiLCJfMHgyYWQ1ZjQiLCJfMHgyNzBlMTciLCJfMHg1MDBiZjciLCJfMHg0ZWM0MWQiLCJfMHg0OTkzYjAiLCJfMHg1MTQ4NjciLCJfMHgxOTI5NTMiLCJfMHg0MGQzOGMiLCJzZXRUaW1lb3V0IiwiXzB4MjA5NGU2IiwiXzB4NThjNzNmIiwiXzB4YjdjNGM4IiwiXzB4NDIyNGRjIiwiXzB4NGUyMmIwIiwiXzB4NGIyMTBhIiwiXzB4NTdhYzQwIiwiXzB4MzYzMzQ3IiwiXzB4MjVmMzBhIiwiXzB4NWI0MzhiIiwiXzB4MzhmODQzIiwiXzB4NDk0MTg0IiwiXzB4MjA4MTU1IiwiXzB4NTBhNzgzIiwiXzB4MjVjNjAwIiwiXzB4MjdhOWViIiwiXzB4NWNmODQwIiwiXzB4NTRlZjE5IiwiXzB4MmQ2ZjExIiwiXzB4MzhhYTRkIiwiJCIsIl8weDI0Y2E2NCIsIl8weDE4ZWE0MSIsImljb24iLCJfMHg0MGNhMDkiLCJjb2xvciIsIl8weDExZjg0NyIsIl8weDM4Zjg1MSIsIl8weDVkYjE5OCIsIl8weDE0M2I2MiIsIl8weGNmZTIzZiIsIl8weDExYmY5OSIsIl8weDQ3MDcwMCIsIl8weGNiYTIzYSIsIl8weDFjZWE3NyIsIl8weDE4YTZlZCIsIl8weDMzYWEzYyIsIl8weDFjNzU3MCIsIl8weDY0YWU2MCIsIl8weDFlZWIxNSIsIl8weDYyMDAwZCIsIl8weDJmMjU4NCIsIl8weDFkYzQyMyIsIl8weDUxM2UwMSIsIl8weDgzYzFmOSIsIl8weDJmNTljNSIsIl8weDExMTI5YiIsIl8weDEzNmZjYiIsIl8weDUyOTI3MiIsInVuZGVmaW5lZCIsIl8weDIxYTQxMSIsIl8weDFhYzc5MSIsIl8weDU1MGQ5ZiIsIl8weDJiM2RhNCIsIl8weDQ1ODZiZiIsIl8weDU0NmIzMyIsIl8weDM1NWU5NiIsIl8weDE0ZjUzYSIsIl8weDMxYjljNyIsIl8weDJlMzdlZSIsIl8weDVlY2RkMCIsIl8weDVjZGQxMyIsIl8weDFjZjBiMiIsIl8weDI2NDAxOCIsInJlZmVyZW5jZXMiLCJfMHg0OTc1ZWEiLCJfMHgyNzdlNzkiLCJfMHgyOTBiOWQiLCJfMHg0NGNiODEiLCJfMHg0ZTc1YTkiLCJfMHgxOWRiZTgiLCJfMHg0Yzg2YTkiLCJfMHg1M2Q0YzMiLCJfMHgzMWI3N2UiLCJfMHg1YTc0YjAiLCJfMHhlNWZmZTUiLCJfMHgyOTc4NTciLCJfMHg0NDA4YjkiLCJfMHgxMWNkNzUiLCJfMHgzN2Y4NzgiLCJfMHgyMDM0OTIiLCJfMHg5Y2E4YjciLCJfMHg0YmIxMjgiLCJfMHg1MjhhNzkiLCJfMHgyMDM5ZTYiLCJfMHg1MzQ0YjgiLCJfMHg0ZGM3ZDEiLCJfMHgxOTNiYzQiLCJfMHg1NjFhNTciLCJfMHgyNTI5NWIiLCJfMHgxYzdjNjkiLCJfMHgzNzVmOWUiLCJfMHg1Mzc4ZjEiLCJfMHgyNTg1NWEiLCJfMHg5ZmM3NDIiLCJfMHgyNmY1MTUiLCJfMHg1ZDJhODEiLCJfMHg1YTgxNDgiLCJfMHgxOTA2OTgiLCJfMHg0MDA2OGQiLCJfMHgxNjc0NjciLCJfMHg0ZWUwMmYiLCJfMHgxNmU0YzMiLCJfMHgyYTZjMjgiLCJfMHg0ZTNhYzIiLCJfMHhmMjgxMDEiLCJfMHg1MzcwY2MiLCJfMHgyNTVjN2YiLCJfMHhkYzJiYTYiLCJkb2N1bWVudCIsIl8weDIxZmUyZCIsIl8weDM4YjUzNCIsIl8weDQ4ZDdlMiIsIl8weDQ0Yzk4ZSIsIl8weDQzOTJkMCIsIlJFRCIsIl8weDNhNWYyOSIsInNlY3VyaXR5TW9kZSIsIl8weDM4NTk5ZCIsInNlY3VyaXR5UG9saWN5IiwiXzB4MjA4ODhhIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDQ1ZmIyZSIsImNyZWRlbnRpYWxzIiwiXzB4NWI5ZDQzIiwiXzB4MWU2OTgwIiwiXzB4MzE0YzE1IiwiXzB4N2ExNjBiIiwiXzB4MjUzYWFlIiwiXzB4NDBiMTE3IiwiXzB4MzRmNTkxIiwiXzB4NWQ5ZmRmIiwiXzB4NDk4YmE2IiwiXzB4NDMxOTRhIiwiXzB4ZGM4NGU5IiwiXzB4NDU0NmQxIiwiXzB4MWUyMmNjIiwiXzB4MjE5OTA0IiwiXzB4MWJjZmEyIiwiXzB4MjM5ZTNkIiwiXzB4NWFjN2EzIiwiXzB4NWVlYmZmIiwiXzB4NWIxMmRkIl0sIm1hcHBpbmdzIjoiK3pKQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLHlCQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLHlCQUEyQixHLENBQU1ILFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQW1CWSxTQUFuQixDQUFMLEMsRUFBbUMsTUFBT0MsU0FBUCxDLENBQVlQLFNBQUEsQ0FBT08sU0FBUCxDLEdBQ2hGLFNBQVNKLFNBQVQsQ0FBY0ssU0FBZCxDLHlCQUF3QkEsU0FBQSxDLGdCQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLE9BQUEsQ0FBUixDQUFkLENBQXNDYixTQUFBLENBQU1hLFNBQUEsQyxPQUFBLENBQU4sRSxnQkFBQSxFQUF5QlAsU0FBekIsQ0FBb0NJLFNBQXBDLEMsRUFDOURGLFNBQUEsQ0FBTSxDQUFBVCxTQUFBLENBQVlBLFNBQUEsQyxnQkFBQSxFQUFnQkgsU0FBaEIsQ0FBeUJDLFNBQUEsRUFBYyxFQUF2QyxDQUFaLENBQUQsQyxNQUFBLEdBQUwsQyxFQUpHLEMsRUFRWCxPQUFPaUIsZUFBUCxHLGdCQUFBLENBQXdDQSxlQUF4QyxDQUEwRCxTQUFVQyxTQUFWLENBQWlCQyxRQUFqQixDQUE2QkMsU0FBN0IsQywyQkFDdEQsSUFBSUMsU0FBQSxDQUFJLElBQUlDLEtBQUosQ0FBVUYsU0FBVixDQUFSLEMsT0FDT0MsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBNEJBLFNBQUEsQyxPQUFBLEVBQVVILFNBQXRDLENBQTZDRyxTQUFBLEMsZ0JBQUEsRUFBZUYsUUFBNUQsQ0FBd0VFLFMsRUFGbkYsQ0FLQSxNQUFNRSxTQUFBLEMsZ0JBQU4sQ0FDTUMsU0FBQSxDLGdCQUROLENBRU1DLFNBQUEsQyxXQUZOLENBR01DLFNBQUEsQyxnQkFITixDQUlNQyxTQUFBLEMsZ0JBSk4sQ0FLTUMsU0FBQSxDLGdCQUxOLENBTU1DLFNBQUEsQyxnQkFOTixDQVFBLElBQUlDLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxpQkFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLFNBQUEsRSxHQUFoQixFLFVBQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsaUJBQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsV0FKSixDQUtHRCxTQUFBLEVBQW9CLENBQUFBLFNBQUEsQ0FBa0IsRUFBbEIsQ0FMdkIsR0FNQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLFNBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxrQkFUSixDQVVHRCxTQUFBLEVBQWMsQ0FBQUEsU0FBQSxDQUFZLEVBQVosQ0FWakIsR0FXQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGFBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsVUFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsa0JBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxlQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFB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QUFvQndILFNBQUEsQ0FBY3hILENBQUEsQyxrREFBQSxDQUFkLENBSkEsQyxlQUtwQixDQUFlc0gsU0FBQSxDQUFZdEgsQ0FBQSxDLGdCQUFBLENBQVosQ0FMSyxDLHdCQU1wQixDQUF3QixDLCtCQUNwQixDQUErQkEsQ0FBQSxDLG9GQUFBLEUsZ0JBQUEsRSxTQUFBLENBRFgsQyxxQkFFcEIsQ0FBcUJBLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsU0FBQSxDQUZELEMsZ0JBR3BCLENBQWdCd0gsU0FBQSxDQUFjeEgsQ0FBQSxDLGdCQUFBLENBQWQsQ0FISSxDLGlCQUlwQixDQUFpQndILFNBQUEsQ0FBY3hILENBQUEsQyxnQkFBQSxDQUFkLENBSkcsQyx3QkFLcEIsQ0FBd0JBLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQ0FMSixDQU5KLENBQXhCLENBY0EsTUFsQ1IsQyxDQXBHNEMsQ0FBcEQsQyxFQXhtQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoX2EsIF9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIF9iXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC5fX3BhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgfTtcbiAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHhcIiwgcmV0VmFsdWUpO1xuICAgICAgICByZXR1cm4gcmV0VmFsdWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBlbmRwb2ludElkLFxuICAgICAgICAgICAgLy8gZW5kcG9pbnQ6IGVuZHBvaW50TnIuZW5kcG9pbnQsXG4gICAgICAgICAgICAvLyBzZWN1cml0eU1vZGU6IGVuZHBvaW50TnIuc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlQb2xpY3k6IGVuZHBvaW50TnIuc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlcklkZW50aXR5VHlwZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgLy8gY3JlZGVudGlhbDogZW5kcG9pbnROci5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICAvLyB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItSGlzdG9yeVJlYWRcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcInJlYWQtaGlzdG9yeVwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBoaXN0b3J5UmVhZFBhcmFtOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJyYXdcIixcbiAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogXCIxbSBhZ29cIixcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiBcIjExbSBhZ29cIixcbiAgICAgICAgICAgICAgICAgICAgbnVtVmFsdWVzUGVyTm9kZTogMTAwLFxuICAgICAgICAgICAgICAgICAgICByZXR1cm5Cb3VuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsID09PSBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gcmVhZCBIaXN0b3J5XG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgb3V0cHV0VHlwZTogeyB2YWx1ZTogXCJWYWx1ZVwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgQ2xpZW50IEhpc3RvcnlSZWFkXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkKFwiI3NlbGVjdC1oaXN0b3J5LXR5cGVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS50eXBlKTtcbiAgICAgICAgICAgIHN3aXRjaCAobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwicmF3XCI6XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1yYXctc3RhcnRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uc3RhcnRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXJhdy1lbmRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uZW5kVGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1yYXctbnVtVmFsdWVzUGVyTm9kZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLm51bVZhbHVlc1Blck5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcmV0dXJuQm91bmRzXCIpLnByb3AoXCJjaGVja2VkXCIsIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5yZXR1cm5Cb3VuZHMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwibW9kaWZpZWRcIjpcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLXN0YXJ0VGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnN0YXJ0VGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1lbmRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uZW5kVGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1udW1WYWx1ZXNQZXJOb2RlXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0ubnVtVmFsdWVzUGVyTm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1yZXR1cm5Cb3VuZHNcIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLnJldHVybkJvdW5kcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJwcm9jZXNzZWQtZGV0YWlsc1wiOlxuICAgICAgICAgICAgICAgICAgICBub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbiA9IG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtc3RhcnRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uc3RhcnRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWVuZFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5lbmRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLXByb2Nlc3NpbmdJbnRlcnZhbFwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnByb2Nlc3NpbmdJbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVUeXBlXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXVzZVNlcnZlckNhcGFiaWxpdGllc0RlZmF1bHRzXCIpLnByb3AoXCJjaGVja2VkXCIsIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnVzZVNlcnZlckNhcGFiaWxpdGllc0RlZmF1bHRzKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdHJlYXRVbmNlcnRhaW5Bc0JhZFwiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbi50cmVhdFVuY2VydGFpbkFzQmFkKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tcGVyY2VudERhdGFCYWRcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnBlcmNlbnREYXRhQmFkKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tcGVyY2VudERhdGFHb29kXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbi5wZXJjZW50RGF0YUdvb2QpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi11c2VTbG9wZWRFeHRyYXBvbGF0aW9uXCIpLnByb3AoXCJjaGVja2VkXCIsIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnVzZVNsb3BlZEV4dHJhcG9sYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgYWR2YW5jZWQgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gaGlkZUFsbFNlY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1yYXdcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tbW9kaWZpZWRcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tcHJvY2Vzc2VkLWRldGFpbHNcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tYXQtdGltZVwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1hbm5vdGF0aW9uLWRhdGFcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tZXZlbnRcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmdW5jdGlvbiB0b2dnbGVTZWN0aW9ucygpIHtcbiAgICAgICAgICAgICAgICAgICAgaGlkZUFsbFNlY3Rpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkVmFsdWUgPSAkKFwiI3NlbGVjdC1oaXN0b3J5LXR5cGVcIikudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsZXJ0KFwidG9nZ2xlU2VjdGlvbnMgXCIgKyBzZWxlY3RlZFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVwiICsgc2VsZWN0ZWRWYWx1ZSkuc2hvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkKFwiI3NlbGVjdC1oaXN0b3J5LXR5cGVcIikub24oXCJjaGFuZ2VcIiwgdG9nZ2xlU2VjdGlvbnMpO1xuICAgICAgICAgICAgICAgIHRvZ2dsZVNlY3Rpb25zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFzVGV4dCA9IChhKSA9PiAoYS52YWwoKSA9PSB1bmRlZmluZWQgPyBcIlwiIDogYS52YWwoKS50b1N0cmluZygpKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQXNOdW1iZXIgPSAoYSkgPT4gKGEudmFsKCkgPT0gdW5kZWZpbmVkID8gMCA6IGEudmFsKCkpO1xuICAgICAgICAgICAgY29uc3QgdHlwZSA9ICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS52YWwoKTtcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJyYXdcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5UmVhZFBhcmFtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJyYXdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LXJhdy1zdGFydFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LXJhdy1lbmRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bVZhbHVlc1Blck5vZGU6IHZhbHVlQXNOdW1iZXIoJChcIiNub2RlLWlucHV0LXJhdy1udW1WYWx1ZXNQZXJOb2RlXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkJvdW5kczogJChcIiNub2RlLWlucHV0LXJldHVybkJvdW5kc1wiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIm1vZGlmaWVkXCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeVJlYWRQYXJhbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwibW9kaWZpZWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLXN0YXJ0VGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtZW5kVGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBudW1WYWx1ZXNQZXJOb2RlOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1udW1WYWx1ZXNQZXJOb2RlXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkJvdW5kczogJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLXJldHVybkJvdW5kc1wiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcInByb2Nlc3NlZC1kZXRhaWxzXCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeVJlYWRQYXJhbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicHJvY2Vzc2VkLWRldGFpbHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLXN0YXJ0VGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtZW5kVGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzaW5nSW50ZXJ2YWw6IHZhbHVlQXNOdW1iZXIoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLXByb2Nlc3NpbmdJbnRlcnZhbFwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGVUeXBlOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlVHlwZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGVDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHM6ICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXVzZVNlcnZlckNhcGFiaWxpdGllc0RlZmF1bHRzXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWF0VW5jZXJ0YWluQXNCYWQ6ICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXRyZWF0VW5jZXJ0YWluQXNCYWRcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudERhdGFCYWQ6IHZhbHVlQXNOdW1iZXIoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tcGVyY2VudERhdGFCYWRcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnREYXRhR29vZDogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUdvb2RcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVNsb3BlZEV4dHJhcG9sYXRpb246ICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXVzZVNsb3BlZEV4dHJhcG9sYXRpb25cIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-HistoryRead">
11
11
  <style>