@opcua/for-node-red 3.7.0 → 3.8.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.
- package/README.md +2 -1
- package/all.js +1 -4
- package/config-panel/assets/index-DDkINW5U.js +49 -0
- package/config-panel/assets/index-DayGs2U8.css +1 -0
- package/config-panel/index.html +2 -2
- package/examples/explore_coffee_machine.json +1 -1
- package/examples/job_manager.json +1 -1
- package/examples/monitored-items.json +630 -0
- package/package.json +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.css +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +55 -9
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.css +1 -1
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +31 -5
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.css +1 -1
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +4 -4
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.css +1 -1
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.html +10 -4
- package/source/OpcUa-Client2-HistoryRead/OpcUa-Client2-HistoryRead.css +1 -1
- package/source/OpcUa-Client2-HistoryRead/OpcUa-Client2-HistoryRead.html +169 -92
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.css +1 -1
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +199 -38
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.css +1 -1
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +61 -13
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.css +1 -1
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +4 -4
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.css +1 -1
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +4 -4
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +2 -2
- package/config-panel/assets/index-2UIiGW7e.js +0 -40
- package/config-panel/assets/index-D642mSgA.css +0 -1
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
(function(_0x3bb770,_0x38a4ae){const _0x41b1e5=_0x16e3,_0x337605=_0x3bb770();while(!![]){try{const _0xa8dcea=-parseInt(_0x41b1e5(0x1db))/0x1+parseInt(_0x41b1e5(0x235))/0x2+-parseInt(_0x41b1e5(0x1d6))/0x3+parseInt(_0x41b1e5(0x202))/0x4*(-parseInt(_0x41b1e5(0x1d9))/0x5)+-parseInt(_0x41b1e5(0x1c5))/0x6*(-parseInt(_0x41b1e5(0x20e))/0x7)+parseInt(_0x41b1e5(0x176))/0x8+-parseInt(_0x41b1e5(0x18b))/0x9*(-parseInt(_0x41b1e5(0x230))/0xa);if(_0xa8dcea===_0x38a4ae)break;else _0x337605['push'](_0x337605['shift']());}catch(_0xfa4a7d){_0x337605['push'](_0x337605['shift']());}}}(_0x530d,0x79410),(function(){'use strict';const _0x534366=_0x16e3;function _0x289b3c(_0x9b748c,_0x52caf9,_0x2a680f,_0x45547b){function _0x4f5cc7(_0x167740){return _0x167740 instanceof _0x2a680f?_0x167740:new _0x2a680f(function(_0x32a9cc){_0x32a9cc(_0x167740);});}return new(_0x2a680f||(_0x2a680f=Promise))(function(_0x547926,_0x221740){const _0x10b354=_0x16e3;function _0x2b1b83(_0x158dea){const _0x11471d=_0x16e3;try{_0x5df793(_0x45547b[_0x11471d(0x187)](_0x158dea));}catch(_0x5bf76c){_0x221740(_0x5bf76c);}}function _0x1beb96(_0x5b24a3){const _0x807cb4=_0x16e3;try{_0x5df793(_0x45547b[_0x807cb4(0x1d4)](_0x5b24a3));}catch(_0x551482){_0x221740(_0x551482);}}function _0x5df793(_0x3ff9ce){const _0x1dd71f=_0x16e3;_0x3ff9ce[_0x1dd71f(0x215)]?_0x547926(_0x3ff9ce[_0x1dd71f(0x1d1)]):_0x4f5cc7(_0x3ff9ce['value'])[_0x1dd71f(0x195)](_0x2b1b83,_0x1beb96);}_0x5df793((_0x45547b=_0x45547b['apply'](_0x9b748c,_0x52caf9||[]))[_0x10b354(0x187)]());});}typeof SuppressedError===_0x534366(0x20b)?SuppressedError:function(_0x32ff12,_0x1a735f,_0x42ea56){const _0x23cb70=_0x534366;var _0x2eda7e=new Error(_0x42ea56);return _0x2eda7e['name']='SuppressedError',_0x2eda7e[_0x23cb70(0x19b)]=_0x32ff12,_0x2eda7e['suppressed']=_0x1a735f,_0x2eda7e;};function _0x3a8055(_0x1b43e5,_0xbc1472,_0x291254,_0x2f920b){const _0xa2fcce=_0x534366,_0x464c1e=$('#'+_0x1b43e5+'-success'),_0x32553a=$('#'+_0x1b43e5+'-failure'),_0x6a03d0=$('#'+_0x1b43e5+_0xa2fcce(0x1d7)),_0x24374d=$('#'+_0x1b43e5+'-messages');let _0x1e6d17=![];_0x464c1e[_0xa2fcce(0x170)](),_0x32553a['hide'](),_0x6a03d0[_0xa2fcce(0x170)](),_0xbc1472['on'](_0xa2fcce(0x22f),()=>{const _0x4def1c=_0xa2fcce;if(_0x1e6d17)return;_0x1e6d17=!![],_0x6a03d0[_0x4def1c(0x172)]('hide'),_0x6a03d0[_0x4def1c(0x1cb)](_0x4def1c(0x1c4)),_0x464c1e['addClass'](_0x4def1c(0x170)),_0x32553a[_0x4def1c(0x19d)]('hide'),_0x24374d['html']('');const {body:_0x3c08e4,url:_0x274d22}=_0x291254();fetch(_0x274d22,{'method':_0x4def1c(0x214),'headers':{'Content-Type':_0x4def1c(0x225)},'body':JSON['stringify'](_0x3c08e4)})[_0x4def1c(0x195)](_0x3691eb=>_0x3691eb[_0x4def1c(0x1b2)]())[_0x4def1c(0x195)](_0x51032e=>{const _0x52f3ac=_0x4def1c;_0x1e6d17=![],_0x6a03d0[_0x52f3ac(0x170)](),console[_0x52f3ac(0x1aa)](JSON[_0x52f3ac(0x23f)](_0x51032e,null,'\x20'));if(_0x51032e[_0x52f3ac(0x1bb)]==='ok')_0x464c1e['removeClass'](_0x52f3ac(0x170)),_0x32553a[_0x52f3ac(0x19d)](_0x52f3ac(0x170)),_0x24374d[_0x52f3ac(0x1cb)](_0x51032e[_0x52f3ac(0x19f)]['replace']('\x0a',_0x52f3ac(0x1bd)));else{const _0x2cb5f5=_0x4f67d9=>!_0x4f67d9?'':_0x4f67d9[_0x52f3ac(0x1ab)]('\x0a')[_0x52f3ac(0x1c0)](_0x4834ea=>_0x52f3ac(0x1f2)+_0x4834ea+_0x52f3ac(0x20f))['join']('\x0a'),_0x1b2611=_0x126e2d=>Array[_0x52f3ac(0x1b6)](_0x126e2d)?_0x126e2d['map'](_0x2cb5f5)[_0x52f3ac(0x1c1)]('\x0a'):_0x2cb5f5(_0x126e2d);_0x464c1e[_0x52f3ac(0x19d)](_0x52f3ac(0x170)),_0x32553a['removeClass'](_0x52f3ac(0x170)),_0x24374d[_0x52f3ac(0x1cb)](_0x1b2611(_0x51032e[_0x52f3ac(0x19f)])+_0x1b2611(_0x51032e[_0x52f3ac(0x19c)])),_0x2f920b(new Error(_0x51032e[_0x52f3ac(0x1bb)]),_0x51032e);}})[_0x4def1c(0x204)](_0x152c81=>{const _0x3a7c94=_0x4def1c;_0x1e6d17=![],_0x6a03d0[_0x3a7c94(0x19d)](_0x3a7c94(0x170)),_0x464c1e[_0x3a7c94(0x19d)](_0x3a7c94(0x170)),_0x32553a['removeClass'](_0x3a7c94(0x170)),_0x24374d[_0x3a7c94(0x1cb)](_0x3a7c94(0x177)+_0x152c81['message']),console[_0x3a7c94(0x1aa)]('err',_0x152c81);});});}const _0x587cc1='prctbl_1OJt49BCNccbzsVzkaANOgFL',_0xf3d04=_0x534366(0x1f0);function _0x1770f6(){return _0x289b3c(this,arguments,void 0x0,function*(_0x1cca24=''){const _0x17c9e0=_0x16e3,_0x782a30=_0x1cca24+_0x17c9e0(0x1e1),_0x2e372d=_0x782a30+_0x17c9e0(0x231),_0x590926=yield fetch(_0x2e372d,{'method':_0x17c9e0(0x214),'headers':{'Content-Type':'application/json'}}),_0x445ecd=new Date()[_0x17c9e0(0x210)]();if(_0x590926['status']!==0xc8)return console['log'](_0x17c9e0(0x1ed),_0x590926[_0x17c9e0(0x1fe)],_0x590926['statusText']),{'status':'FAILED','type':'FREEWARE','licenceInfo':{'expiryDate':_0x445ecd}};const _0x2fba4a=yield _0x590926[_0x17c9e0(0x1b2)]();return _0x2fba4a;});}const _0x30c0dd=()=>{const _0x3d5a14=_0x534366;$[_0x3d5a14(0x1e7)](_0x3d5a14(0x1fd),{'options':{'baseUrl':''},'_create'(){const _0x23e7b0=_0x3d5a14,_0x28e957=this,_0x3a3862=_0x23e7b0(0x1ce),_0x4cf37f='<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>';_0x1770f6(_0x28e957['baseUrl'])[_0x23e7b0(0x195)](_0xebd9d=>{const _0x29f854=_0x23e7b0;let _0x4e6af6='',_0x58be21='',_0x339368='';const _0x7246c2=_0xebd9d['status'],_0x1ff46c=_0xebd9d[_0x29f854(0x1c3)];switch(_0x7246c2){case'AUTHORIZED':_0x4e6af6=_0x29f854(0x1f3);switch(_0xebd9d[_0x29f854(0x1ea)]){case _0x29f854(0x17f):{_0x58be21=_0x29f854(0x21e),_0x339368=_0x29f854(0x190)+_0x1ff46c+_0x29f854(0x233)+_0x4cf37f+'\x20to\x20acquire\x20a\x20license.';break;}case _0x29f854(0x209):_0x58be21=_0x29f854(0x1ca);_0x1ff46c<0x5a&&_0x1ff46c>=0x0&&(_0x58be21+='\x20It\x20will\x20expire\x20in\x20'+_0x1ff46c+'\x20days.');_0x339368=_0xebd9d['licenceInfo']['licenceType']+'\x20-\x20'+(_0xebd9d['licenceInfo'][_0x29f854(0x234)]||'');break;case _0x29f854(0x216):_0x58be21='Freeware\x20licence',_0x339368=_0x29f854(0x178)+_0x4cf37f+'\x20for\x20more\x20information.';break;}break;case'EXPIRED':_0x4e6af6=_0x29f854(0x1c2),_0x58be21=_0x29f854(0x16e),_0x339368=_0x29f854(0x1b8);break;case _0x29f854(0x18d):default:_0x4e6af6=_0x29f854(0x1af),_0x58be21=_0x29f854(0x206),_0x339368='Please\x20contact\x20'+_0x3a3862+'\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀';break;}this[_0x29f854(0x1bc)]['addClass']('licence-widget'),this[_0x29f854(0x1bc)][_0x29f854(0x19d)](_0x29f854(0x16f)+_0x7246c2),this['element']['append']($(_0x29f854(0x22c))['addClass'](_0x29f854(0x1df))[_0x29f854(0x217)]($('<i>')['addClass'](_0x4e6af6))),this[_0x29f854(0x1bc)][_0x29f854(0x217)]($(_0x29f854(0x22c))[_0x29f854(0x19d)](_0x29f854(0x1dd))[_0x29f854(0x1e8)](_0x58be21)),this['element'][_0x29f854(0x217)]($(_0x29f854(0x1bd))),this[_0x29f854(0x1bc)]['append']($('<span>')[_0x29f854(0x19d)]('licence-widget-details')['append'](_0x339368));if(_0x7246c2===_0x29f854(0x17d)||_0x7246c2==='FAILED'||_0xebd9d[_0x29f854(0x1ea)]==='FREEWARE'||_0xebd9d['type']==='TRIAL'){const _0x4a63b2=$(_0x29f854(0x1bf));_0x4a63b2[_0x29f854(0x181)]('id',_0x29f854(0x23e)),_0x4a63b2[_0x29f854(0x181)](_0x29f854(0x1be),_0x29f854(0x228)),_0x4a63b2[_0x29f854(0x181)](_0x29f854(0x18c),_0x29f854(0x1c8)),_0x4a63b2[_0x29f854(0x1e8)](_0x29f854(0x191)),this['element'][_0x29f854(0x217)](_0x4a63b2);const _0x21a487=document[_0x29f854(0x1a9)]('script');_0x21a487['src']=_0x29f854(0x1e3),_0x21a487[_0x29f854(0x1b4)]=!![],$('head')[_0x29f854(0x217)](_0x21a487);const _0x186a04=$('<stripe-pricing-table/>');_0x186a04[_0x29f854(0x181)]('pricing-table-id',_0x587cc1),_0x186a04[_0x29f854(0x181)](_0x29f854(0x1f9),_0xf3d04),_0x186a04[_0x29f854(0x181)]('style',_0x29f854(0x238)),_0x186a04[_0x29f854(0x170)](),this[_0x29f854(0x1bc)][_0x29f854(0x217)](_0x186a04),_0x4a63b2['on']('click',()=>{const _0x57319c=_0x29f854;_0x186a04[_0x57319c(0x221)](),_0x4a63b2[_0x57319c(0x170)](),this['element'][_0x57319c(0x181)]('style',_0x57319c(0x1a8));});}})['catch'](_0x42b214=>{const _0x1be6aa=_0x23e7b0;console[_0x1be6aa(0x1aa)](_0x42b214);});}});},_0x3b2df7=()=>{const _0x4681ca=_0x534366,_0x590ac7=$('.red-ui-tray-body');console['log'](_0x4681ca(0x184),_0x590ac7[_0x4681ca(0x224)]);if(_0x590ac7[_0x4681ca(0x224)]){console['log'](_0x4681ca(0x1a0));const _0x513b42=$(_0x4681ca(0x17e),{'src':_0x4681ca(0x1f8),'scrolling':'no','style':'background-color:transparent;overflow:hidden;border:3px','allowtransparency':_0x4681ca(0x222),'width':_0x4681ca(0x1a4),'height':_0x4681ca(0x1e2)});_0x590ac7['append'](_0x513b42),_0x513b42[_0x4681ca(0x1ba)]({'position':_0x4681ca(0x1a2),'right':_0x4681ca(0x1b1),'bottom':_0x4681ca(0x1b7)});}};_0x30c0dd();function _0x2fd58e(_0x34397e){const _0x4dadd0=_0x534366;let _0x3803dc;try{_0x3803dc=new URL(_0x34397e);}catch(_0x13cbd3){return![];}return _0x3803dc[_0x4dadd0(0x199)]===_0x4dadd0(0x1a3);}const _0x538e60={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED[_0x534366(0x1eb)]['registerType']('OpcUa-Endpoint2',{'category':_0x534366(0x182),'paletteLabel':_0x534366(0x1a7),'defaults':{'name':{'value':''},'endpoint':{'value':_0x534366(0x1cd),'required':!![],'validate':_0x2fd58e},'securityMode':{'value':'None'},'securityPolicy':{'value':_0x534366(0x1d3),'validate':_0x2b9aa5=>{if(!_0x2b9aa5)return![];return!![];}},'userIdentityType':{'value':'Anonymous'},'pkiName':{'value':'','validate':_0x225dc3=>!_0x225dc3||_0x225dc3['match'](/[0-9a-zA-Z]*/)?!![]:![]},'useTransport':{'value':![],'required':![]},'maxChunkCount':{'value':0x1,'required':![]},'maxMessageSize':{'value':0x2000,'required':![]},'receiveBufferSize':{'value':0x2000,'required':![]},'sendBufferSize':{'value':0x2000,'required':![]},'subscriptions':{'value':[{'id':'s1','name':_0x534366(0x20d),'isDefault':!![],'parameters':Object[_0x534366(0x1e5)]({},_0x538e60)},{'id':'s2','name':_0x534366(0x1fa),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0x64,'requestedMaxKeepAliveCount':0x3,'requestedPublishingInterval':0x1388,'maxNotificationsPerPublish':0x64,'priority':0xa}},{'id':'s3','name':'Fast\x20Subscription','isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0xfa0,'requestedMaxKeepAliveCount':0x32,'requestedPublishingInterval':0xfa,'maxNotificationsPerPublish':0x64,'priority':0xc8}}],'required':![]},'namespaceAliases':{'value':[{'alias':'ua','namespaceUri':_0x534366(0x1f4),'isWellKnown':!![],'isDefault':!![]},{'alias':'di','namespaceUri':_0x534366(0x226),'isWellKnown':!![],'isDefault':!![]}],'required':![]}},'credentials':{'userName':{'type':'text'},'password':{'type':'password'},'userCertificate':{'type':'text'},'userPrivatekey':{'type':_0x534366(0x201)}},'label':function(){const _0x5f153f=_0x534366;return this[_0x5f153f(0x17c)]||this['endpoint']||_0x5f153f(0x175);},'oneditsave'(){const _0x4bca47=_0x534366,_0x550f16=$(_0x4bca47(0x1e4)),_0x9050b3=$(_0x4bca47(0x1e0));_0x550f16[_0x4bca47(0x1c9)]()===_0x4bca47(0x1d3)&&_0x9050b3[_0x4bca47(0x1e8)]('None');{const _0x11f8fd=$(_0x4bca47(0x17b))[_0x4bca47(0x237)](_0x4bca47(0x212)),_0x718a97=[],_0x5e4723=_0x1644d7=>_0x1644d7;_0x11f8fd[_0x4bca47(0x20a)](function(_0x19e4fa,_0x370f56){const _0x3048c3=_0x4bca47,_0x394e7f=$(this),_0x4da9eb={'id':'s'+_0x19e4fa,'name':_0x394e7f[_0x3048c3(0x1fc)]('.input-name')[_0x3048c3(0x1c9)](),'isDefault':!!_0x394e7f[_0x3048c3(0x1fc)](_0x3048c3(0x220))[_0x3048c3(0x1c9)](),'parameters':{'publishingEnabled':!!_0x394e7f[_0x3048c3(0x1fc)](_0x3048c3(0x1a6))['is'](':checked'),'requestedLifetimeCount':_0x5e4723(_0x394e7f[_0x3048c3(0x1fc)](_0x3048c3(0x218))['val']()),'requestedMaxKeepAliveCount':_0x5e4723(_0x394e7f[_0x3048c3(0x1fc)](_0x3048c3(0x1c6))[_0x3048c3(0x1c9)]()),'requestedPublishingInterval':_0x5e4723(_0x394e7f[_0x3048c3(0x1fc)]('.input-requestedPublishingInterval')[_0x3048c3(0x1c9)]()),'maxNotificationsPerPublish':_0x5e4723(_0x394e7f['find'](_0x3048c3(0x1ff))[_0x3048c3(0x1c9)]()),'priority':_0x5e4723(_0x394e7f[_0x3048c3(0x1fc)](_0x3048c3(0x1de))[_0x3048c3(0x1c9)]())}};_0x4da9eb[_0x3048c3(0x1b9)]['publishingEnabled']=!![],_0x4da9eb[_0x3048c3(0x227)]&&_0x4da9eb['id']==='s0'&&(_0x4da9eb[_0x3048c3(0x17c)]=_0x3048c3(0x20d)),_0x718a97[_0x3048c3(0x180)](_0x4da9eb);}),this['subscriptions']=_0x718a97;}{const _0x3706de=$('#editable-list-aliases-container')['editableList'](_0x4bca47(0x212)),_0x4319db=[];_0x3706de[_0x4bca47(0x20a)](function(_0x25ebaf,_0x178f0b){const _0x46c612=_0x4bca47,_0x5e8051=$(this),_0xeb8f51={'namespaceUri':_0x5e8051[_0x46c612(0x1fc)](_0x46c612(0x1ee))[_0x46c612(0x1c9)](),'alias':_0x5e8051[_0x46c612(0x1fc)](_0x46c612(0x22d))[_0x46c612(0x1c9)]()};_0x4319db[_0x46c612(0x180)](_0xeb8f51);}),this[_0x4bca47(0x219)]=_0x4319db;}},'oneditprepare'(){const _0x3ecd57=_0x534366,_0xd363bc=this;_0x3b2df7();const _0x20a681=RED[_0x3ecd57(0x19e)][_0x3ecd57(0x23b)]({'id':_0x3ecd57(0x22b),'onchange':function(_0x5449c6){const _0x4afa3a=_0x3ecd57;$(_0x4afa3a(0x196))['children']()[_0x4afa3a(0x170)](),$('#'+_0x5449c6['id'])['show']();}});_0x20a681['addTab']({'id':'endpoint-tab-connection','label':'Connection'},0x0),_0x20a681[_0x3ecd57(0x200)]({'id':'endpoint-tab-subscriptions','label':_0x3ecd57(0x1c7)},0x1),_0x20a681[_0x3ecd57(0x200)]({'id':_0x3ecd57(0x192),'label':'Namespace\x20Aliases'},0x2),setTimeout(function(){const _0x10fa59=_0x3ecd57;_0x20a681[_0x10fa59(0x194)]();},0x0);{const _0x186ad2=_0x2036b4=>{const _0x20bd5f=_0x3ecd57;switch(_0x2036b4){case null:case undefined:case'':case'None':$(_0x20bd5f(0x23d))[_0x20bd5f(0x170)]();break;case'Sign':case _0x20bd5f(0x1ad):{const _0x1757b1=$('.section-securityPolicy');(_0x1757b1[_0x20bd5f(0x1c9)]()===_0x20bd5f(0x1d3)||_0x1757b1[_0x20bd5f(0x1c9)]()==='')&&_0x1757b1[_0x20bd5f(0x1c9)](_0x20bd5f(0x223)),$('.section-securityPolicy')[_0x20bd5f(0x221)]();}break;default:console[_0x20bd5f(0x1aa)](_0x20bd5f(0x1b0)+_0x2036b4);}};_0x186ad2(_0xd363bc[_0x3ecd57(0x1d2)]);const _0x5ddf1a=$(_0x3ecd57(0x1e0));_0x5ddf1a['on'](_0x3ecd57(0x19a),()=>{const _0x342475=_0x3ecd57,_0x3d3071=_0x5ddf1a[_0x342475(0x1c9)]();_0x186ad2(_0x3d3071);});}const _0x3190c3=$(_0x3ecd57(0x1b5));_0x3190c3[_0x3ecd57(0x1d5)]({'baseUrl':''});{const _0x4117c9=$(_0x3ecd57(0x1ec)),_0x2d0c63=$(_0x3ecd57(0x1fb)),_0x237aa5=_0x334f17=>{const _0x3d161e=_0x3ecd57;_0x334f17=_0x334f17||'Anonymous';switch(_0x334f17){case _0x3d161e(0x1f1):$(_0x3d161e(0x1e6))[_0x3d161e(0x1c9)](''),$(_0x3d161e(0x21d))['val'](''),_0x4117c9[_0x3d161e(0x170)](),_0x2d0c63['hide']();break;case'UserName':_0x4117c9[_0x3d161e(0x221)](),_0x2d0c63['hide']();break;case _0x3d161e(0x236):$(_0x3d161e(0x1e6))[_0x3d161e(0x1c9)](''),$(_0x3d161e(0x21d))[_0x3d161e(0x1c9)](''),_0x2d0c63[_0x3d161e(0x221)](),_0x4117c9[_0x3d161e(0x170)]();break;default:console['log'](_0x3d161e(0x205)+_0x334f17);}};_0x237aa5(_0xd363bc[_0x3ecd57(0x185)]);const _0xf1d744=$(_0x3ecd57(0x183));_0xf1d744['on'](_0x3ecd57(0x19a),()=>{const _0x172515=_0x3ecd57,_0x8e14ac=_0xf1d744[_0x172515(0x1c9)]();_0x237aa5(_0x8e14ac);});}{$(_0x3ecd57(0x1da))[_0x3ecd57(0x170)](),$(_0x3ecd57(0x20c))[_0x3ecd57(0x207)]('checked',![]),$(_0x3ecd57(0x20c))['on'](_0x3ecd57(0x19a),function(){const _0x3cf14d=_0x3ecd57;$(this)[_0x3cf14d(0x207)](_0x3cf14d(0x1a1))?$(_0x3cf14d(0x1da))[_0x3cf14d(0x221)]():$(_0x3cf14d(0x1da))[_0x3cf14d(0x170)]();});}const _0x4bdeca=$(_0x3ecd57(0x18f))['prop'](_0x3ecd57(0x1a1));_0x4bdeca?$(_0x3ecd57(0x229))[_0x3ecd57(0x221)]():$(_0x3ecd57(0x229))[_0x3ecd57(0x170)]();$(_0x3ecd57(0x18f))['on'](_0x3ecd57(0x19a),function(){const _0x232576=_0x3ecd57;$(this)['prop'](_0x232576(0x1a1))?$('#section-TransportSettings')['show']():$('#section-TransportSettings')['hide']();});{$(_0x3ecd57(0x21f))['on'](_0x3ecd57(0x22f),()=>_0x289b3c(this,void 0x0,void 0x0,function*(){const _0x6ea300=_0x3ecd57,_0x539046=yield fetch('/opcua-for-node-red/client_certificate.json'),_0xd1b1c=yield _0x539046[_0x6ea300(0x1b2)](),_0x2ed736=JSON[_0x6ea300(0x23f)](_0xd1b1c,null,'\x20');alert(_0x2ed736);}));}$(_0x3ecd57(0x18e))['on'](_0x3ecd57(0x22f),()=>_0x289b3c(this,void 0x0,void 0x0,function*(){const _0x57e401=_0x3ecd57;window['open'](_0x57e401(0x1d0),_0x57e401(0x1dc));}));function _0x5af2a6(){const _0x527e9f=_0x3ecd57;var _0x26381a;return{'id':_0xd363bc['id'],'endpoint':$('#node-config-input-endpoint')[_0x527e9f(0x1c9)](),'name':$(_0x527e9f(0x213))[_0x527e9f(0x1c9)](),'pkiName':(_0x26381a=$(_0x527e9f(0x22a)))===null||_0x26381a===void 0x0?void 0x0:_0x26381a['val'](),'securityMode':$(_0x527e9f(0x1e0))[_0x527e9f(0x1c9)](),'securityPolicy':$('#node-config-input-securityPolicy')[_0x527e9f(0x1c9)](),'userIdentityType':$(_0x527e9f(0x183))[_0x527e9f(0x1c9)](),'userName':$(_0x527e9f(0x1e6))[_0x527e9f(0x1c9)](),'password':$(_0x527e9f(0x21d))[_0x527e9f(0x1c9)](),'userCertificate':$('#node-config-input-userCertificate')[_0x527e9f(0x1c9)](),'userPrivatekey':$('#node-config-input-userPrivatekey')[_0x527e9f(0x1c9)](),'certificate':$(_0x527e9f(0x240))[_0x527e9f(0x1c9)](),'useTransport':$(_0x527e9f(0x171))[_0x527e9f(0x207)](_0x527e9f(0x1a1)),'maxChunkCount':$('#node-input-maxChunkCount')[_0x527e9f(0x1c9)](),'maxMessageSize':$(_0x527e9f(0x1cf))['val'](),'receiveBufferSize':$('#node-input-receiveBufferSize')['val'](),'sendBufferSize':$(_0x527e9f(0x208))['val']()};}{_0x3a8055(_0x3ecd57(0x174),$(_0x3ecd57(0x198)),()=>({'url':_0x3ecd57(0x23a),'body':{'endpointNode':_0x5af2a6()}}),()=>{});}{const _0x5babdd=(_0xffc017,_0x330046)=>{const _0x417e74=_0x3ecd57;var _0x327062=_0xffc017[_0x417e74(0x1e9)]()||0x64;_0xffc017[_0x417e74(0x1fc)](_0x417e74(0x1cc))['typedInput'](_0x417e74(0x1e9),_0x327062-0xf);},_0x417e9f=$(_0x3ecd57(0x17b))['css']({'min-height':_0x3ecd57(0x18a),'min-width':_0x3ecd57(0x203)})['editableList']({'addItem':(_0x13b624,_0x30653e,_0x61031d)=>{const _0x2e94bd=_0x3ecd57,_0x414954=_0x61031d,_0xcf57e1=$(_0x2e94bd(0x211))['clone']()[_0x2e94bd(0x197)](_0x13b624);_0xcf57e1[_0x2e94bd(0x193)]('id')[_0x2e94bd(0x172)](_0x2e94bd(0x170))['removeClass'](_0x2e94bd(0x1f7))['attr']('data-i',_0x30653e),_0xcf57e1['find']('.input-name')['val'](_0x414954['name']),_0xcf57e1['find'](_0x2e94bd(0x17a))[_0x2e94bd(0x1c9)](_0x414954['parameters'][_0x2e94bd(0x1d8)]),_0xcf57e1['find'](_0x2e94bd(0x1c6))[_0x2e94bd(0x1c9)](_0x414954['parameters'][_0x2e94bd(0x179)]),_0xcf57e1[_0x2e94bd(0x1fc)](_0x2e94bd(0x218))[_0x2e94bd(0x1c9)](_0x414954['parameters'][_0x2e94bd(0x1f5)]),_0xcf57e1[_0x2e94bd(0x1fc)](_0x2e94bd(0x1ff))[_0x2e94bd(0x1c9)](_0x414954[_0x2e94bd(0x1b9)][_0x2e94bd(0x1a5)]||0x0),_0xcf57e1[_0x2e94bd(0x1fc)]('.input-priority')['val'](_0x414954['parameters']['priority']||0x0),_0xcf57e1[_0x2e94bd(0x1fc)](_0x2e94bd(0x1ac))[_0x2e94bd(0x1e8)](''+_0x30653e),_0x414954[_0x2e94bd(0x227)]&&_0xcf57e1[_0x2e94bd(0x1fc)]('.input-name')[_0x2e94bd(0x207)]('readonly',!![]),_0xcf57e1['find']('.input-isDefault')['prop'](_0x2e94bd(0x1a1),_0x414954['isDefault']),_0x414954['isDefault']&&(_0x13b624[_0x2e94bd(0x1fc)](_0x2e94bd(0x173))[_0x2e94bd(0x19d)]('hide'),setTimeout(()=>_0xcf57e1[_0x2e94bd(0x1fc)](_0x2e94bd(0x220))['prop'](_0x2e94bd(0x1b3),!![]),0xa));},'removable':!![],'resizeItem':_0x5babdd}),_0x287e57=()=>{const _0x483674=_0x3ecd57,_0x2f953f=_0xd363bc[_0x483674(0x1f6)]||[];_0x2f953f[_0x483674(0x224)]===0x0&&_0x2f953f[_0x483674(0x180)]({'id':'s1','name':'Default\x20Subscription','isDefault':!![],'parameters':Object[_0x483674(0x1e5)]({},_0x538e60)});_0x417e9f[_0x483674(0x237)](_0x483674(0x188));for(const _0x1c6968 of _0x2f953f){_0x417e9f[_0x483674(0x237)]('addItem',_0x1c6968);}};_0x287e57();}{function _0x1dae28(_0x1b32ac,_0x5f3037,_0x187538){const _0x173771=_0x3ecd57,_0x1f825e=_0x187538,_0x5b5372=$(_0x173771(0x21a))[_0x173771(0x197)](_0x1b32ac);$(_0x173771(0x21b),{'class':_0x173771(0x186),'type':_0x173771(0x1e8)})[_0x173771(0x1c9)](_0x187538[_0x173771(0x189)]||'')[_0x173771(0x1ba)]({'width':'5%'})['appendTo'](_0x5b5372)[_0x173771(0x1c9)](_0x5f3037[_0x173771(0x1ef)]()),$(_0x173771(0x21b),{'class':'node-input-alias-alias','type':_0x173771(0x1e8)})[_0x173771(0x1c9)](_0x187538[_0x173771(0x189)]||'')[_0x173771(0x1ba)]({'width':_0x173771(0x22e)})[_0x173771(0x197)](_0x5b5372)['val'](_0x1f825e[_0x173771(0x189)]),$(_0x173771(0x21b),{'class':_0x173771(0x239),'type':_0x173771(0x1e8)})[_0x173771(0x1c9)](_0x187538['namespaceUri']||'')[_0x173771(0x1ba)]({'width':_0x173771(0x232)})[_0x173771(0x197)](_0x5b5372)[_0x173771(0x1c9)](_0x1f825e['namespaceUri']);}const _0x1beffc=$(_0x3ecd57(0x23c))['css']({'min-height':_0x3ecd57(0x18a),'min-width':_0x3ecd57(0x203)})[_0x3ecd57(0x237)]({'addButton':![],'removable':![],'height':'auto','scrollOnAdd':![],'addItem'(_0x3f723a,_0x85293d,_0x5a8f80){_0x1dae28(_0x3f723a,_0x85293d,_0x5a8f80);}});function _0x289a4b(){const _0x2d82b4=_0x3ecd57;_0x1beffc['editableList'](_0x2d82b4(0x212)),_0x1beffc[_0x2d82b4(0x237)](_0x2d82b4(0x188));for(const _0x52045f of _0xd363bc[_0x2d82b4(0x219)]||[]){_0x1beffc[_0x2d82b4(0x237)](_0x2d82b4(0x21c),_0x52045f);}}{$(_0x3ecd57(0x1ae))['on'](_0x3ecd57(0x22f),()=>_0x289b3c(this,void 0x0,void 0x0,function*(){const _0x5a5ead=_0x3ecd57,_0x49d40b={'endpointNode':_0x5af2a6(),'namespaceAliases':_0xd363bc['namespaceAliases']||[]},_0xdecdc7=yield fetch('/opcua-for-node-red/extract-namespace-aliases',{'method':'POST','headers':{'Content-Type':_0x5a5ead(0x225)},'body':JSON[_0x5a5ead(0x23f)](_0x49d40b)}),_0x4574c5=yield _0xdecdc7[_0x5a5ead(0x1b2)](),_0x433b48=_0x4574c5[_0x5a5ead(0x219)];console[_0x5a5ead(0x1aa)]('namespaceAliases',_0x433b48),Array['isArray'](_0x433b48)&&(_0xd363bc[_0x5a5ead(0x219)]=_0x433b48,_0x289a4b());})),_0xd363bc[_0x3ecd57(0x219)]=_0xd363bc[_0x3ecd57(0x219)]||[{'alias':'ua','namespaceUri':_0x3ecd57(0x1f4),'isWellKnown':!![],'isDefault':!![]}];}_0x289a4b();}}});}()));function _0x16e3(_0x5e2ae0,_0x4b0772){const _0x530dc7=_0x530d();return _0x16e3=function(_0x16e388,_0x5cfab4){_0x16e388=_0x16e388-0x16e;let _0x4ef780=_0x530dc7[_0x16e388];return _0x4ef780;},_0x16e3(_0x5e2ae0,_0x4b0772);}function _0x530d(){const _0x242ebb=['.input-requestedPublishingInterval','#subscriptions-container','name','EXPIRED','<iframe></iframe>','TRIAL','push','attr','config','#node-config-input-userIdentityType','installFeedbackWidget\x20','userIdentityType','node-input-alias-index','next','empty','alias','150px','10089bGzsBT','style','FAILED','#goto-config','#node-config-input-useTransport','The\x20Trial\x20will\x20expire\x20in\x20','Subscribe','endpoint-tab-namespace-aliases','removeAttr','resize','then','#node-config-endpoint-tabs-content','appendTo','#test-connection','protocol','change','error','extra','addClass','tabs','message','installing\x20iframe','checked','absolute','opc.tcp:','180px','maxNotificationsPerPublish','.input-publishingEnabled','opcua\x20endpoint','height:\x20100%\x20!important;','createElement','log','split','.subscription-id','SignAndEncrypt','#extract-aliases','fa\x20fa-exclamation-circle','invalid\x20securityMode\x20','20px','json','disabled','async','#licenceWidget','isArray','16px','Your\x20license\x20has\x20expired.\x20Please\x20contact\x20our\x20support\x20team\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.','parameters','css','result','element','<br>','class','<button/>','map','join','fa\x20fa-calendar-time','daysLeft','Testing\x20Connection\x20...','10266HCShjM','.input-requestedMaxKeepAliveCount','Subscriptions','margin-top:\x2020px;','val','Your\x20licence\x20is\x20valid.','html','label','opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>','#node-input-maxMessageSize','/opcua-for-node-red/config','value','securityMode','None','throw','licenceWidget','2110752cFgizS','-pending','requestedPublishingInterval','15WEkXTh','#section-Advanced','488661sMlsWS','_blank','licence-widget-msg','.input-priority','licence-widget-icon','#node-config-input-securityMode','/opcua-for-node-red','30px','https://js.stripe.com/v3/pricing-table.js','#node-config-input-securityPolicy','assign','#node-config-input-userName','widget','text','width','type','nodes','.section-userIdentityType-UserName','fetching\x20failed\x20with\x20error','.node-input-alias-namespace-uri','toString','pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW','Anonymous','<p>','fa\x20fa-check-circle','http://opcfoundation.org/UA/','requestedLifetimeCount','subscriptions','template','/opcua-for-node-red/support-frame.html','publishable-key','Slow\x20Subscription','.section-userIdentityType-Certificate','find','sterfive.licenceWidget','status','.input-maxNotificationsPerPublish','addTab','password','1222484cRVLoD','260px','catch','invalid\x20userIdentityType\x20','Your\x20license\x20is\x20currently\x20invalid.','prop','#node-input-sendBufferSize','PROFESSIONAL','each','function','#toggleAdvancedSection','Default\x20Subscription','3941KODKZi','</p>','toISOString','#subscription-template','items','#node-config-input-name','POST','done','FREEWARE','append','.input-requestedLifetimeCount','namespaceAliases','<div\x20class=\x22alias-entry\x22>','<input/>','addItem','#node-config-input-password','Trial\x20licence','#checkCertificate','.input-isDefault','show','true','Basic256Sha256','length','application/json','http://opcfoundation.org/DI/','isDefault','btn\x20btn-primary','#section-TransportSettings','#node-config-input-pkiName','node-config-endpoint-tabs','<span>','.node-input-alias-alias','25%','click','5470fNjJOR','/licenceInfo','70%','\x20days.\x0aBuy\x20online\x20and\x20visit\x20','onPremiseServerHost','760564kVrChq','Certificate','editableList','height:\x20100%;max-height:\x20100%;','node-input-alias-namespace-uri','/opcua-for-node-red/test-connection','create','#editable-list-aliases-container','.section-securityPolicy','subscribe-button','stringify','#node-input-certificate','Licence\x20has\x20expired','licence-widget-','hide','#node-input-useTransport','removeClass','.red-ui-editableList-item-remove','connection','invalid\x20endpoint','5192016VSaDqJ','internal\x20error\x20','This\x20is\x20a\x20freeware\x20licence,\x20and\x20have\x20some\x20limitations.\x0a','requestedMaxKeepAliveCount'];_0x530d=function(){return _0x242ebb;};return _0x530d();}
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyODliM2MiLCJfMHg5Yjc0OGMiLCJfMHg1MmNhZjkiLCJfMHgyYTY4MGYiLCJfMHg0NTU0N2IiLCJfMHg0ZjVjYzciLCJfMHgxNjc3NDAiLCJfMHgzMmE5Y2MiLCJQcm9taXNlIiwiXzB4NTQ3OTI2IiwiXzB4MjIxNzQwIiwiXzB4MmIxYjgzIiwiXzB4MTU4ZGVhIiwiXzB4NWRmNzkzIiwiXzB4NWJmNzZjIiwiXzB4MWJlYjk2IiwiXzB4NWIyNGEzIiwiXzB4NTUxNDgyIiwiXzB4M2ZmOWNlIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MzJmZjEyIiwiXzB4MWE3MzVmIiwiXzB4NDJlYTU2IiwiXzB4MmVkYTdlIiwiRXJyb3IiLCJfMHgzYTgwNTUiLCJfMHgxYjQzZTUiLCJfMHhiYzE0NzIiLCJfMHgyOTEyNTQiLCJfMHgyZjkyMGIiLCJfMHg0NjRjMWUiLCIkIiwiXzB4MzI1NTNhIiwiXzB4NmEwM2QwIiwiXzB4MjQzNzRkIiwiXzB4MWU2ZDE3IiwiYm9keSIsIl8weDNjMDhlNCIsInVybCIsIl8weDI3NGQyMiIsImZldGNoIiwiSlNPTiIsIl8weDM2OTFlYiIsIl8weDUxMDMyZSIsImNvbnNvbGUiLCJfMHgyY2I1ZjUiLCJfMHg0ZjY3ZDkiLCJfMHg0ODM0ZWEiLCJfMHgxYjI2MTEiLCJfMHgxMjZlMmQiLCJBcnJheSIsIl8weDE1MmM4MSIsIl8weDU4N2NjMSIsIl8weGYzZDA0IiwiXzB4MTc3MGY2IiwiYXJndW1lbnRzIiwiXzB4MWNjYTI0IiwiXzB4NzgyYTMwIiwiXzB4MmUzNzJkIiwiXzB4NTkwOTI2IiwiXzB4NDQ1ZWNkIiwiRGF0ZSIsIl8weDJmYmE0YSIsIl8weDMwYzBkZCIsIl8weDI4ZTk1NyIsIl8weDNhMzg2MiIsIl8weDRjZjM3ZiIsIl8weGViZDlkIiwiXzB4NGU2YWY2IiwiXzB4NThiZTIxIiwiXzB4MzM5MzY4IiwiXzB4NzI0NmMyIiwiXzB4MWZmNDZjIiwiXzB4NGE2M2IyIiwiXzB4MjFhNDg3IiwiZG9jdW1lbnQiLCJfMHgxODZhMDQiLCJfMHg0MmIyMTQiLCJfMHgzYjJkZjciLCJfMHg1OTBhYzciLCJfMHg1MTNiNDIiLCJfMHgyZmQ1OGUiLCJfMHgzNDM5N2UiLCJfMHgzODAzZGMiLCJVUkwiLCJfMHgxM2NiZDMiLCJfMHg1MzhlNjAiLCJSRUQiLCJfMHgyYjlhYTUiLCJfMHgyMjVkYzMiLCJPYmplY3QiLCJfMHg1NTBmMTYiLCJfMHg5MDUwYjMiLCJfMHgxMWY4ZmQiLCJfMHg3MThhOTciLCJfMHg1ZTQ3MjMiLCJfMHgxNjQ0ZDciLCJfMHgxOWU0ZmEiLCJfMHgzNzBmNTYiLCJfMHgzOTRlN2YiLCJfMHg0ZGE5ZWIiLCJfMHgzNzA2ZGUiLCJfMHg0MzE5ZGIiLCJfMHgyNWViYWYiLCJfMHgxNzhmMGIiLCJfMHg1ZTgwNTEiLCJfMHhlYjhmNTEiLCJfMHhkMzYzYmMiLCJfMHgyMGE2ODEiLCJfMHg1NDQ5YzYiLCJzZXRUaW1lb3V0IiwiXzB4MTg2YWQyIiwiXzB4MjAzNmI0IiwidW5kZWZpbmVkIiwiXzB4MTc1N2IxIiwiXzB4NWRkZjFhIiwiXzB4M2QzMDcxIiwiXzB4MzE5MGMzIiwiXzB4NDExN2M5IiwiXzB4MmQwYzYzIiwiXzB4MjM3YWE1IiwiXzB4MzM0ZjE3IiwiXzB4ZjFkNzQ0IiwiXzB4OGUxNGFjIiwiXzB4NGJkZWNhIiwiXzB4NTM5MDQ2IiwiXzB4ZDFiMWMiLCJfMHgyZWQ3MzYiLCJhbGVydCIsIndpbmRvdyIsIl8weDVhZjJhNiIsIl8weDI2MzgxYSIsIl8weDViYWJkZCIsIl8weGZmYzAxNyIsIl8weDMzMDA0NiIsIl8weDMyNzA2MiIsIl8weDQxN2U5ZiIsIl8weDEzYjYyNCIsIl8weDMwNjUzZSIsIl8weDYxMDMxZCIsIl8weDQxNDk1NCIsIl8weGNmNTdlMSIsIl8weDI4N2U1NyIsIl8weDJmOTUzZiIsIl8weDFjNjk2OCIsIl8weDFkYWUyOCIsIl8weDFiMzJhYyIsIl8weDVmMzAzNyIsIl8weDE4NzUzOCIsIl8weDFmODI1ZSIsIl8weDViNTM3MiIsIl8weDFiZWZmYyIsIl8weDNmNzIzYSIsIl8weDg1MjkzZCIsIl8weDVhOGY4MCIsIl8weDI4OWE0YiIsIl8weDUyMDQ1ZiIsIl8weDQ5ZDQwYiIsIl8weGRlY2RjNyIsIl8weDQ1NzRjNSIsIl8weDQzM2I0OCJdLCJtYXBwaW5ncyI6IjJrQkFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxnQkFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxnQkFBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLE9BQUEsQ0FBTixFLGdCQUFBLEVBQXlCUCxTQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNB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TUFEc0UsQyxTQUV0RSxDQUFTLEMsY0FBRSxDLGdCQUFGLENBRjZELEMsTUFHdEUsQ0FBTUMsSUFBQSxDLGdCQUFBLEVBQWVvSCxTQUFmLENBSGdFLENBQXZELEMsQ0FLYkUsU0FBQSxDQUFPLE1BQU1ELFNBQUEsQyxnQkFBQSxHLENBQ2JFLFNBQUEsQ0FBbUJELFNBQUEsQyxnQkFBQSxDLENBQ3pCbkgsT0FBQSxDLGdCQUFBLEUsa0JBQUEsQ0FBZ0NvSCxTQUFoQyxDLENBQ0k5RyxLQUFBLEMsU0FBQSxFQUFjOEcsU0FBZCxDLEdBQ0FyRCxTQUFBLEMsZ0JBQUEsRUFBd0JxRCxTLENBQ3hCTCxTQUFBLEUsR0FmZ0MsQ0FBeEMsQyxDQWtCQWhELFNBQUEsQyxnQkFBQSxFQUF3QkEsU0FBQSxDLGdCQUFBLEdBQXlCLENBQzdDLEMsT0FDSSxDLElBREosQyxjQUVJLEMsZ0JBRkosQyxhQUdJLEMsSUFISixDLFdBSUksQyxJQUpKLENBRDZDLEMsRUFTckRnRCxTQUFBLEUsR0F4ZDhCLENBQTFDLEMsRUFoUUosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ID0gKHN0cikgPT4gIXN0clxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHN0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IGA8cD4ke2F9PC9wPmApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0MiA9IChzdHIpID0+IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIubWFwKGFkYXB0KS5qb2luKFwiXFxuXCIpIDogYWRhcHQoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGFkYXB0Mihqc29uLm1lc3NhZ2UpICsgYWRhcHQyKGpzb24uZXh0cmEpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobmV3IEVycm9yKGpzb24ucmVzdWx0KSwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiaW50ZXJuYWwgZXJyb3IgXCIgKyBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmljaW5nVGFibGVJZCA9IFwicHJjdGJsXzFPSnQ0OUJDTmNjYnpzVnprYUFOT2dGTFwiO1xuICAgIGNvbnN0IHB1Ymxpc2hhYmxlS2V5ID0gXCJwa19saXZlXzUxSHNFMXNCQ05jY2J6c1Z6dDd6YXEydXYyMHBrcnlXbGxBenZaZ1pkNUFod0ZJOUEzcUJJZU9Kdkp3UUYwOGxEb0xwRnFMandteUE3OXduUG5ZTHN2S2p0MDA5ZjAwVnBDV1wiO1xuICAgIGZ1bmN0aW9uIGZldGNoTGljZW5jZUluZm8oKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgYXJndW1lbnRzLCB2b2lkIDAsIGZ1bmN0aW9uKiAoYmFzZVVybCA9IFwiXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vbGljZW5jZUluZm9gO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6IFwiRkFJTEVEXCIsIHR5cGU6IFwiRlJFRVdBUkVcIiwgbGljZW5jZUluZm86IHsgZXhwaXJ5RGF0ZTogdG9kYXkgfSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QganNvbiA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTGljZW5jZVdpZGdldCA9ICgpID0+IHtcbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5saWNlbmNlV2lkZ2V0XCIsIHtcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFjdExpbmsgPSBgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHN0ZXJmaXZlLmNvbVwiIHN1YmplY3Q9XCJAb3BjdWEvZm9yLW5vZGUtcmVkIHN1cHBvcnQgcmVxdWVzdFwiPm1haWx0bzpzdXBwb3J0QHN0ZXJmaXZlLmNvbTwvYT5gO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdlYnNpdGVMaW5rID0gYDxhIGhyZWY9XCJodHRwczovL3d3dy5zdGVyZml2ZS5jb20vb3BjdWEvZm9yLW5vZGUtcmVkXCIgdGFyZ2V0PeKAnV9ibGFua+KAnT5TdGVyZml2ZSdzIHdlYnNpdGUgPC9hPmA7XG4gICAgICAgICAgICAgICAgZmV0Y2hMaWNlbmNlSW5mbyh0aGF0LmJhc2VVcmwpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpY29uID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1zZyA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxzID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0ganNvbi5zdGF0dXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRheUxlZnQgPSBqc29uLmRheXNMZWZ0O1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFVVEhPUklaRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1jaGVjay1jaXJjbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGpzb24udHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVFJJQUxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJUcmlhbCBsaWNlbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFRoZSBUcmlhbCB3aWxsIGV4cGlyZSBpbiAke2RheUxlZnR9IGRheXMuXFxuQnV5IG9ubGluZSBhbmQgdmlzaXQgJHt3ZWJzaXRlTGlua30gdG8gYWNxdWlyZSBhIGxpY2Vuc2UuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJQUk9GRVNTSU9OQUxcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IGBZb3VyIGxpY2VuY2UgaXMgdmFsaWQuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXlMZWZ0IDwgOTAgJiYgZGF5TGVmdCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnICs9IGAgSXQgd2lsbCBleHBpcmUgaW4gJHtkYXlMZWZ0fSBkYXlzLmA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZXRhaWxzID0gYCR7d2Vic2l0ZUxpbmt9PGJyPiR7Y29udGFjdExpbmt9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBqc29uLmxpY2VuY2VJbmZvLmxpY2VuY2VUeXBlICsgXCIgLSBcIiArIChqc29uLmxpY2VuY2VJbmZvLm9uUHJlbWlzZVNlcnZlckhvc3QgfHwgXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkZSRUVXQVJFXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIkZyZWV3YXJlIGxpY2VuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgVGhpcyBpcyBhIGZyZWV3YXJlIGxpY2VuY2UsIGFuZCBoYXZlIHNvbWUgbGltaXRhdGlvbnMuXFxuJHt3ZWJzaXRlTGlua30gZm9yIG1vcmUgaW5mb3JtYXRpb24uYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJFWFBJUkVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiA9IFwiZmEgZmEtY2FsZW5kYXItdGltZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiTGljZW5jZSBoYXMgZXhwaXJlZFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIllvdXIgbGljZW5zZSBoYXMgZXhwaXJlZC4gUGxlYXNlIGNvbnRhY3Qgb3VyIHN1cHBvcnQgdGVhbSBvciB2aXNpdCBvdXIgd2Vic2l0ZSB0byByZW5ldyB5b3VyIGxpY2Vuc2UgYW5kIHJlZ2FpbiBhY2Nlc3MgdG8gb3VyIHNlcnZpY2VzLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkZBSUxFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1leGNsYW1hdGlvbi1jaXJjbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIllvdXIgbGljZW5zZSBpcyBjdXJyZW50bHkgaW52YWxpZC5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFBsZWFzZSBjb250YWN0ICR7Y29udGFjdExpbmt9IG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuzIBgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8qKiAqL1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQudGV4dChcIkxpY2VuY2UgXCIgKyBKU09OLnN0cmluZ2lmeShqc29uKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1cIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWljb25cIikuYXBwZW5kKCQoXCI8aT5cIikuYWRkQ2xhc3MoaWNvbikpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtbXNnXCIpLnRleHQobXNnKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1kZXRhaWxzXCIpLmFwcGVuZChkZXRhaWxzKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT09IFwiRVhQSVJFRFwiIHx8IHN0YXR1cyA9PT0gXCJGQUlMRURcIiB8fCBqc29uLnR5cGUgPT09IFwiRlJFRVdBUkVcIiB8fCBqc29uLnR5cGUgPT09IFwiVFJJQUxcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaWJlQnV0dG9uID0gJChcIjxidXR0b24vPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwiaWRcIiwgXCJzdWJzY3JpYmUtYnV0dG9uXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJjbGFzc1wiLCBcImJ0biBidG4tcHJpbWFyeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwic3R5bGVcIiwgXCJtYXJnaW4tdG9wOiAyMHB4O1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi50ZXh0KFwiU3Vic2NyaWJlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdWJzY3JpYmVCdXR0b24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgc2NyaXB0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBcImh0dHBzOi8vanMuc3RyaXBlLmNvbS92My9wcmljaW5nLXRhYmxlLmpzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzY3JpcHQgZWxlbWVudCB0byB0aGUgaGVhZCAob3IgYm9keSkgb2YgdGhlIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiaGVhZFwiKS5hcHBlbmQoc2NyaXB0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmlwZVByaWNpbmdUYWJsZSA9ICQoXCI8c3RyaXBlLXByaWNpbmctdGFibGUvPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwcmljaW5nLXRhYmxlLWlkXCIsIHByaWNpbmdUYWJsZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwicHVibGlzaGFibGUta2V5XCIsIHB1Ymxpc2hhYmxlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCU7bWF4LWhlaWdodDogMTAwJTtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdHJpcGVQcmljaW5nVGFibGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXR0cihcInN0eWxlXCIsIFwiaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGluc3RhbGxGZWVkYmFja1dpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLy8gcmV0dXJuO1xuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgY29uc3QgdHJheUNvbnRlbnQgPSAkKFwiLnJlZC11aS10cmF5LWJvZHlcIik7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbEZlZWRiYWNrV2lkZ2V0IFwiLCB0cmF5Q29udGVudC5sZW5ndGgpO1xuICAgICAgICBpZiAodHJheUNvbnRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxpbmcgaWZyYW1lXCIpO1xuICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBpZnJhbWUgZWxlbWVudFxuICAgICAgICAgICAgY29uc3QgaWZyYW1lID0gJChcIjxpZnJhbWU+PC9pZnJhbWU+XCIsIHtcbiAgICAgICAgICAgICAgICBzcmM6IFwiL29wY3VhLWZvci1ub2RlLXJlZC9zdXBwb3J0LWZyYW1lLmh0bWxcIixcbiAgICAgICAgICAgICAgICBzY3JvbGxpbmc6IFwibm9cIixcbiAgICAgICAgICAgICAgICBzdHlsZTogXCJiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O292ZXJmbG93OmhpZGRlbjtib3JkZXI6M3B4XCIsXG4gICAgICAgICAgICAgICAgYWxsb3d0cmFuc3BhcmVuY3k6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIHdpZHRoOiBcIjE4MHB4XCIsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcIjMwcHhcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBpZnJhbWUgdG8gdGhlIGZlZWRiYWNrIGVsZW1lbnRcbiAgICAgICAgICAgIHRyYXlDb250ZW50LmFwcGVuZChpZnJhbWUpO1xuICAgICAgICAgICAgLy8gUG9zaXRpb24gdGhlIGZlZWRiYWNrIGVsZW1lbnQgYXQgdGhlIGJvdHRvbSByaWdodCBvZiB0aGUgdHJheSBjb250ZW50XG4gICAgICAgICAgICBpZnJhbWUuY3NzKHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBcIjIwcHhcIixcbiAgICAgICAgICAgICAgICBib3R0b206IFwiMTZweFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZGVjbGFyZUxpY2VuY2VXaWRnZXQoKTtcbiAgICBmdW5jdGlvbiBpc1ZhbGlkT1BDX1VBX1VSSShzdHIpIHtcbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHVybCA9IG5ldyBVUkwoc3RyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoXykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cmwucHJvdG9jb2wgPT09IFwib3BjLnRjcDpcIjtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMgPSB7XG4gICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiAxMDAwLFxuICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogMTAsIC8vIGV2ZXJ5IDEwIHNlY29uZHNcbiAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiAxMDAwLFxuICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogMCxcbiAgICAgICAgcHJpb3JpdHk6IDEwMCxcbiAgICB9O1xuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1FbmRwb2ludDJcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJjb25maWdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm9wY3VhIGVuZHBvaW50XCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzL1VBL1NhbXBsZVNlcnZlclwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiBpc1ZhbGlkT1BDX1VBX1VSSSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBTZWN1cml0eSBNb2RlXG4gICAgICAgICAgICBzZWN1cml0eU1vZGU6IHsgdmFsdWU6IFwiTm9uZVwiIH0sXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIk5vbmVcIixcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogeyB2YWx1ZTogXCJBbm9ueW1vdXNcIiB9LFxuICAgICAgICAgICAgcGtpTmFtZTogeyB2YWx1ZTogXCJcIiwgdmFsaWRhdGU6ICh2YWx1ZSkgPT4gKCF2YWx1ZSB8fCB2YWx1ZS5tYXRjaCgvWzAtOWEtekEtWl0qLykgPyB0cnVlIDogZmFsc2UpIH0sXG4gICAgICAgICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIFVzZXJOYW1lXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgLy8gICAgIHVzZXJOYW1lOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgLy8gICAgIHBhc3N3b3JkOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgICAgIC8vICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIENlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAgICAgdXNlckNlcnRpZmljYXRlOiB7IHZhbHVicm93c2VQYXRoZTogXCJcIiwgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIC8vICAgICB1c2VyUHJpdmF0ZWtleTogeyB2YWx1ZTogXCJcIiAsIHR5cGU6IFwicGFzc3dvcmRcIn0sXG4gICAgICAgICAgICAvLyB9IGFzIGFueSAvKiBjaXJjdW12ZW50IGEgYnVnIGluIG5vZGUtcmVkICovLFxuICAgICAgICAgICAgLy8gdXNlcm5hbWVcbiAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogeyB2YWx1ZTogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogeyB2YWx1ZTogMSwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBtYXhNZXNzYWdlU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sIC8vIHNob3VsZCBiZSBhdCBsZWFzdCA4MTkyXG4gICAgICAgICAgICByZWNlaXZlQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzZW5kQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2xvdyBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiAzLCAvLyBldmVyeSAxNSBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiA1MDAwLCAvL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRmFzdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogNDAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogNTAsIC8vIGV2ZXJ5IDEyLjUgc2Vjb25kc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogMjUwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlczoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcInVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VBL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcImRpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL0RJL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgdXNlck5hbWU6IHsgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiB7IHR5cGU6IFwicGFzc3dvcmRcIiB9LFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiB7IHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogeyB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgdGhpcy5lbmRwb2ludCB8fCBcImludmFsaWQgZW5kcG9pbnRcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eVBvbGljeSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlQb2xpY3lcIik7XG4gICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlNb2RlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIik7XG4gICAgICAgICAgICBpZiAoX3NlY3VyaXR5UG9saWN5LnZhbCgpID09PSBcIk5vbmVcIikge1xuICAgICAgICAgICAgICAgIF9zZWN1cml0eU1vZGUudGV4dChcIk5vbmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIHN1YnNjcmlwdGlvbiBkYXRhICkpKSkpKSkpKSlcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25JdGVtcyA9ICQoXCIjc3Vic2NyaXB0aW9ucy1jb250YWluZXJcIikuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG4gPSAoeCkgPT4geDtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25JdGVtcy5lYWNoKGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInNcIiArIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZS5maW5kKFwiLmlucHV0LW5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6ICEhZS5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogISFlLmZpbmQoXCIuaW5wdXQtcHVibGlzaGluZ0VuYWJsZWRcIikuaXMoXCI6Y2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiBuKGUuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRMaWZldGltZUNvdW50XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogbihlLmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiBuKGUuZmluZChcIi5pbnB1dC1wcmlvcml0eVwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSB0byBiZSB0cnVlXG4gICAgICAgICAgICAgICAgICAgIGEucGFyYW1ldGVycy5wdWJsaXNoaW5nRW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmlzRGVmYXVsdCAmJiBhLmlkID09PSBcInMwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSBkZWZhdWx0IHN1YnNjcmlwdGlvbiBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBhLm5hbWUgPSBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcy5wdXNoKGEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIG5hbWVzcGFjZSBhbGlhcyBkYXRhICkpKSkpKSkpKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIGFsaWFzZXNcbiAgICAgICAgICAgICAgICBjb25zdCBhbGlhc0l0ZW1zID0gJChcIiNlZGl0YWJsZS1saXN0LWFsaWFzZXMtY29udGFpbmVyXCIpLmVkaXRhYmxlTGlzdChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IFtdO1xuICAgICAgICAgICAgICAgIGFsaWFzSXRlbXMuZWFjaChmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZDogXCJzXCIgKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZVVyaTogZS5maW5kKFwiLm5vZGUtaW5wdXQtYWxpYXMtbmFtZXNwYWNlLXVyaVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBlLmZpbmQoXCIubm9kZS1pbnB1dC1hbGlhcy1hbGlhc1wiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLnB1c2goYSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5uYW1lc3BhY2VBbGlhc2VzID0gdG1wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBpbnN0YWxsRmVlZGJhY2tXaWRnZXQoKTtcbiAgICAgICAgICAgIGNvbnN0IHRhYnMgPSBSRUQudGFicy5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIGlkOiBcIm5vZGUtY29uZmlnLWVuZHBvaW50LXRhYnNcIixcbiAgICAgICAgICAgICAgICBvbmNoYW5nZTogZnVuY3Rpb24gKHRhYikge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWVuZHBvaW50LXRhYnMtY29udGVudFwiKS5jaGlsZHJlbigpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNcIiArIHRhYi5pZCkuc2hvdygpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRhYnMuYWRkVGFiKHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbmRwb2ludC10YWItY29ubmVjdGlvblwiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIkNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgdGFicy5hZGRUYWIoe1xuICAgICAgICAgICAgICAgIGlkOiBcImVuZHBvaW50LXRhYi1zdWJzY3JpcHRpb25zXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiU3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICAgICAgfSwgMSk7XG4gICAgICAgICAgICB0YWJzLmFkZFRhYih7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW5kcG9pbnQtdGFiLW5hbWVzcGFjZS1hbGlhc2VzXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiTmFtZXNwYWNlIEFsaWFzZXNcIixcbiAgICAgICAgICAgIH0sIDIpO1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdGFicy5yZXNpemUoKTtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBTZWN1cml0eSBjb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVTZWN1cml0eUNvbnRyb2wgPSAoc2VjdXJpdHlNb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc2VjdXJpdHlNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIG51bGw6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJOb25lXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJTaWduXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiU2lnbkFuZEVuY3J5cHRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwID0gJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3AudmFsKCkgPT09IFwiTm9uZVwiIHx8IHNwLnZhbCgpID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcC52YWwoXCJCYXNpYzI1NlNoYTI1NlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiLnNlY3Rpb24tc2VjdXJpdHlQb2xpY3lcIikuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnZhbGlkIHNlY3VyaXR5TW9kZSBcIiArIHNlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHVwZGF0ZVNlY3VyaXR5Q29udHJvbChub2RlLnNlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgX3NlY3VyaXR5TW9kZSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlNb2RlXCIpO1xuICAgICAgICAgICAgICAgIF9zZWN1cml0eU1vZGUub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWN1cml0eU1vZGUgPSBfc2VjdXJpdHlNb2RlLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTZWN1cml0eUNvbnRyb2wobmV3U2VjdXJpdHlNb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxpY2VuY2VXaWRnZXQgPSAkKFwiI2xpY2VuY2VXaWRnZXRcIik7XG4gICAgICAgICAgICBsaWNlbmNlV2lkZ2V0LmxpY2VuY2VXaWRnZXQoe1xuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgdGhlIFVzZXIgSWRlbnRpdHkgQ29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXV0aFJvdyA9ICQoXCIuc2VjdGlvbi11c2VySWRlbnRpdHlUeXBlLVVzZXJOYW1lXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlcnRSb3cgPSAkKFwiLnNlY3Rpb24tdXNlcklkZW50aXR5VHlwZS1DZXJ0aWZpY2F0ZVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVJZGVudGl0eUNvbnRyb2xzID0gKHVzZXJJZGVudGl0eVR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSA9IHVzZXJJZGVudGl0eVR5cGUgfHwgXCJBbm9ueW1vdXNcIjtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh1c2VySWRlbnRpdHlUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQW5vbnltb3VzXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyTmFtZVwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wYXNzd29yZFwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVXNlck5hbWVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJDZXJ0aWZpY2F0ZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImludmFsaWQgdXNlcklkZW50aXR5VHlwZSBcIiArIHVzZXJJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVJZGVudGl0eUNvbnRyb2xzKG5vZGUudXNlcklkZW50aXR5VHlwZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgX3VzZXJJZGVudGl0eVR5cGUgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJJZGVudGl0eVR5cGVcIik7XG4gICAgICAgICAgICAgICAgX3VzZXJJZGVudGl0eVR5cGUub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdJZGVudGl0eVR5cGUgPSBfdXNlcklkZW50aXR5VHlwZS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlSWRlbnRpdHlDb250cm9scyhuZXdJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBhZHZhbmNlZCBjb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICQoXCIjdG9nZ2xlQWR2YW5jZWRTZWN0aW9uXCIpLnByb3AoXCJjaGVja2VkXCIsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAkKFwiI3RvZ2dsZUFkdmFuY2VkU2VjdGlvblwiKS5vbihcImNoYW5nZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZCwgc2hvdyB0aGUgZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBoaWRlIGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB1c2VUcmFuc3BvcnRTZXR0aW5nID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VUcmFuc3BvcnRcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICBpZiAodXNlVHJhbnNwb3J0U2V0dGluZykge1xuICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5zaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuaGlkZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VUcmFuc3BvcnRcIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLCBzaG93IHRoZSBkaXZcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgaGlkZSBpdFxuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGNoZWNrQ2VydGlmaWNhdGVcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIiNjaGVja0NlcnRpZmljYXRlXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goXCIvb3BjdWEtZm9yLW5vZGUtcmVkL2NsaWVudF9jZXJ0aWZpY2F0ZS5qc29uXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmZvID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBKU09OLnN0cmluZ2lmeShpbmZvLCBudWxsLCBcIiBcIik7XG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KHQpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgY29uZmlnIGJ1dHRvblxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICQoXCIjZ290by1jb25maWdcIikub24oXCJjbGlja1wiLCAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oXCIvb3BjdWEtZm9yLW5vZGUtcmVkL2NvbmZpZ1wiLCBcIl9ibGFua1wiKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGV4dHJhY3RFbmRwb2ludERhdGEoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBub2RlLmlkLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1lbmRwb2ludFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1uYW1lXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBwa2lOYW1lOiAoX2EgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBraU5hbWVcIikpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlQb2xpY3lcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlcklkZW50aXR5VHlwZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlck5hbWU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlckNlcnRpZmljYXRlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyUHJpdmF0ZWtleVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgLy8vIG5vdCB0ZXN0ZWQgeWV0IC4uLjpcbiAgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGU6ICQoXCIjbm9kZS1pbnB1dC1jZXJ0aWZpY2F0ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlVHJhbnNwb3J0OiAkKFwiI25vZGUtaW5wdXQtdXNlVHJhbnNwb3J0XCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICBtYXhDaHVua0NvdW50OiAkKFwiI25vZGUtaW5wdXQtbWF4Q2h1bmtDb3VudFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbWF4TWVzc2FnZVNpemU6ICQoXCIjbm9kZS1pbnB1dC1tYXhNZXNzYWdlU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZUJ1ZmZlclNpemU6ICQoXCIjbm9kZS1pbnB1dC1yZWNlaXZlQnVmZmVyU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgc2VuZEJ1ZmZlclNpemU6ICQoXCIjbm9kZS1pbnB1dC1zZW5kQnVmZmVyU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSB0aGUgVGVzdCBidXR0b25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWFuYWdlQVBJQ2FsbChcImNvbm5lY3Rpb25cIiwgJChcIiN0ZXN0LWNvbm5lY3Rpb25cIiksICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHVybDogXCIvb3BjdWEtZm9yLW5vZGUtcmVkL3Rlc3QtY29ubmVjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IGV4dHJhY3RFbmRwb2ludERhdGEoKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSwgKCkgPT4geyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyAgSW5zdGFsbCBzdWJzY3JpcHRpb25zIExpc3QgbWFuYWdlbWVudFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNpemVUb3BpY3MgPSAodG9waWMsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdXaWR0aCA9IHRvcGljLndpZHRoKCkgfHwgMTAwO1xuICAgICAgICAgICAgICAgICAgICB0b3BpYy5maW5kKFwibGFiZWxcIikudHlwZWRJbnB1dChcIndpZHRoXCIsIG5ld1dpZHRoIC0gMTUpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uTGlzdCA9ICQoXCIjc3Vic2NyaXB0aW9ucy1jb250YWluZXJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IFwibWluLWhlaWdodFwiOiBcIjE1MHB4XCIsIFwibWluLXdpZHRoXCI6IFwiMjYwcHhcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXRlbTogKGNvbnRhaW5lciwgaW5kZXgsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IF9kYXRhID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSAkKFwiI3N1YnNjcmlwdGlvbi10ZW1wbGF0ZVwiKS5jbG9uZSgpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHIoXCJpZFwiKS5yZW1vdmVDbGFzcyhcImhpZGVcIikucmVtb3ZlQ2xhc3MoXCJ0ZW1wbGF0ZVwiKS5hdHRyKFwiZGF0YS1pXCIsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1uYW1lXCIpLnZhbChfZGF0YS5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWxcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5yZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTGlmZXRpbWVDb3VudFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5yZXF1ZXN0ZWRMaWZldGltZUNvdW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1tYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5tYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaCB8fCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1wcmlvcml0eVwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5wcmlvcml0eSB8fCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5zdWJzY3JpcHRpb24taWRcIikudGV4dChcIlwiICsgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9kYXRhLmlzRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1uYW1lXCIpLnByb3AoXCJyZWFkb25seVwiLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikucHJvcChcImNoZWNrZWRcIiwgX2RhdGEuaXNEZWZhdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGRlZmF1bHQgc3Vic2NyaXB0aW9uIGNhbm5vdCBiZSBhY2NpZGVudGFsbHkgcmVtb3ZlZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9kYXRhLmlzRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5maW5kKFwiLnJlZC11aS1lZGl0YWJsZUxpc3QtaXRlbS1yZW1vdmVcIikuYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWxlbWVudC5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS5wcm9wKFwiZGlzYWJsZWRcIiwgdHJ1ZSksIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgLy8gc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlbW92YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgcmVzaXplSXRlbTogcmVzaXplVG9waWNzLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGxTdWJzY3JpcHRpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gbm9kZS5zdWJzY3JpcHRpb25zIHx8IFtdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3Vic2NyaXB0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZCBtaXNzaW5nIGRlZmF1bHQgc3Vic2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInMxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJEZWZhdWx0IFN1YnNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U3Vic2NyaXB0aW9uUGFyYW1ldGVycyksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25MaXN0LmVkaXRhYmxlTGlzdChcImVtcHR5XCIpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzdWJzY3JpcHRpb24uaXNEZWZhdWx0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25MaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZmlsbFN1YnNjcmlwdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyAgSW5zdGFsbCBuYW1lc3BhY2UgYWxpYXMgTGlzdCBtYW5hZ2VtZW50XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFkZEFsaWFzQ3RybChjb250YWluZXIsIGluZGV4LCBhcmcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGFyZztcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm93ID0gJCgnPGRpdiBjbGFzcz1cImFsaWFzLWVudHJ5XCI+JykuYXBwZW5kVG8oY29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29udGFpbmVyLmRhdGEoXCJkYXRhXCIsIGFyZyk7XG4gICAgICAgICAgICAgICAgICAgICQoXCI8aW5wdXQvPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJub2RlLWlucHV0LWFsaWFzLWluZGV4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmFsaWFzIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNSVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKHJvdylcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoaW5kZXgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCI8aW5wdXQvPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJub2RlLWlucHV0LWFsaWFzLWFsaWFzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmFsaWFzIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiMjUlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhyb3cpXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGEuYWxpYXMpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPGlucHV0Lz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibm9kZS1pbnB1dC1hbGlhcy1uYW1lc3BhY2UtdXJpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLm5hbWVzcGFjZVVyaSB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjcwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8ocm93KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhLm5hbWVzcGFjZVVyaSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGFsaWFzZXNMaXN0ID0gJChcIiNlZGl0YWJsZS1saXN0LWFsaWFzZXMtY29udGFpbmVyXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyBcIm1pbi1oZWlnaHRcIjogXCIxNTBweFwiLCBcIm1pbi13aWR0aFwiOiBcIjI2MHB4XCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHJlbW92YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZEFsaWFzQ3RybChjb250YWluZXIsIGksIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGZpbGxOYW1lc3BhY2VBbGlhc2VzKCkge1xuICAgICAgICAgICAgICAgICAgICBhbGlhc2VzTGlzdC5lZGl0YWJsZUxpc3QoXCJpdGVtc1wiKTtcbiAgICAgICAgICAgICAgICAgICAgYWxpYXNlc0xpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYWxpYXMgb2Ygbm9kZS5uYW1lc3BhY2VBbGlhc2VzIHx8IFtdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzTGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIGFsaWFzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBCdXR0b25cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjZXh0cmFjdC1hbGlhc2VzXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IGV4dHJhY3RFbmRwb2ludERhdGEoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VBbGlhc2VzOiBub2RlLm5hbWVzcGFjZUFsaWFzZXMgfHwgW10sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKFwiL29wY3VhLWZvci1ub2RlLXJlZC9leHRyYWN0LW5hbWVzcGFjZS1hbGlhc2VzXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShvcHRpb25zKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5mbyA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGluZm8ubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibmFtZXNwYWNlQWxpYXNlc1wiLCBuYW1lc3BhY2VBbGlhc2VzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG5hbWVzcGFjZUFsaWFzZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5uYW1lc3BhY2VBbGlhc2VzID0gbmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsTmFtZXNwYWNlQWxpYXNlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUubmFtZXNwYWNlQWxpYXNlcyA9IG5vZGUubmFtZXNwYWNlQWxpYXNlcyB8fCBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXM6IFwidWFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VBL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzV2VsbEtub3duOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZpbGxOYW1lc3BhY2VBbGlhc2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
7
|
+
(function(_0x20dc05,_0x59e8e7){const _0x478d6b=_0x23d6,_0x5277d=_0x20dc05();while(!![]){try{const _0x1c4a26=-parseInt(_0x478d6b(0xf9))/0x1+-parseInt(_0x478d6b(0x14e))/0x2*(-parseInt(_0x478d6b(0xea))/0x3)+parseInt(_0x478d6b(0x140))/0x4*(parseInt(_0x478d6b(0x158))/0x5)+parseInt(_0x478d6b(0xcd))/0x6*(parseInt(_0x478d6b(0xc4))/0x7)+-parseInt(_0x478d6b(0x167))/0x8+-parseInt(_0x478d6b(0x1a4))/0x9*(-parseInt(_0x478d6b(0x13e))/0xa)+-parseInt(_0x478d6b(0x14c))/0xb;if(_0x1c4a26===_0x59e8e7)break;else _0x5277d['push'](_0x5277d['shift']());}catch(_0x7db7a8){_0x5277d['push'](_0x5277d['shift']());}}}(_0x417e,0x92c16),(function(){'use strict';const _0x4a2974=_0x23d6;function _0x2eb3a6(_0x26333b,_0x24b62c,_0x41ff98,_0x36abe9){function _0x2429af(_0x5a1de9){return _0x5a1de9 instanceof _0x41ff98?_0x5a1de9:new _0x41ff98(function(_0x250b27){_0x250b27(_0x5a1de9);});}return new(_0x41ff98||(_0x41ff98=Promise))(function(_0x23d4e6,_0x4759da){const _0x179871=_0x23d6;function _0x4b42f8(_0x44f464){try{_0xf3e580(_0x36abe9['next'](_0x44f464));}catch(_0x17181c){_0x4759da(_0x17181c);}}function _0x46f9c5(_0x1f1b0f){const _0x2dcc27=_0x23d6;try{_0xf3e580(_0x36abe9[_0x2dcc27(0xd3)](_0x1f1b0f));}catch(_0x3e52b4){_0x4759da(_0x3e52b4);}}function _0xf3e580(_0x3068cd){const _0x4aa656=_0x23d6;_0x3068cd[_0x4aa656(0xc2)]?_0x23d4e6(_0x3068cd['value']):_0x2429af(_0x3068cd[_0x4aa656(0xcb)])[_0x4aa656(0x1b2)](_0x4b42f8,_0x46f9c5);}_0xf3e580((_0x36abe9=_0x36abe9[_0x179871(0x1af)](_0x26333b,_0x24b62c||[]))[_0x179871(0xd2)]());});}typeof SuppressedError===_0x4a2974(0x143)?SuppressedError:function(_0x2c1500,_0x4d6366,_0x235b05){const _0x4c46e9=_0x4a2974;var _0x15dbcd=new Error(_0x235b05);return _0x15dbcd['name']=_0x4c46e9(0x18e),_0x15dbcd[_0x4c46e9(0x13c)]=_0x2c1500,_0x15dbcd[_0x4c46e9(0x123)]=_0x4d6366,_0x15dbcd;};function _0x5f3385(_0x3dc764,_0x2fcaf7,_0x60138d,_0x335ebb){const _0x6f084c=_0x4a2974,_0x206b41=$('#'+_0x3dc764+_0x6f084c(0x1a2)),_0x4550e3=$('#'+_0x3dc764+_0x6f084c(0x121)),_0x471cdc=$('#'+_0x3dc764+_0x6f084c(0x106)),_0x50f233=$('#'+_0x3dc764+_0x6f084c(0xd5));let _0x4114f5=![];_0x206b41[_0x6f084c(0x193)](),_0x4550e3[_0x6f084c(0x193)](),_0x471cdc['hide'](),_0x2fcaf7['on'](_0x6f084c(0x16c),()=>{const _0x1038cc=_0x6f084c;if(_0x4114f5)return;_0x4114f5=!![],_0x471cdc[_0x1038cc(0x163)](_0x1038cc(0x193)),_0x471cdc[_0x1038cc(0x1ac)](_0x1038cc(0x17e)),_0x206b41[_0x1038cc(0x1a1)](_0x1038cc(0x193)),_0x4550e3[_0x1038cc(0x1a1)](_0x1038cc(0x193)),_0x50f233['html']('');const {body:_0x5e7c7b,url:_0x3a8eb1}=_0x60138d();fetch(_0x3a8eb1,{'method':_0x1038cc(0x151),'headers':{'Content-Type':_0x1038cc(0x1b4)},'body':JSON[_0x1038cc(0x10d)](_0x5e7c7b)})['then'](_0x118e90=>_0x118e90[_0x1038cc(0x180)]())['then'](_0x3c8670=>{const _0x3e9471=_0x1038cc;_0x4114f5=![],_0x471cdc[_0x3e9471(0x193)](),console[_0x3e9471(0x1b6)](JSON[_0x3e9471(0x10d)](_0x3c8670,null,'\x20'));if(_0x3c8670[_0x3e9471(0x186)]==='ok')_0x206b41[_0x3e9471(0x163)]('hide'),_0x4550e3['addClass'](_0x3e9471(0x193)),_0x50f233[_0x3e9471(0x1ac)](_0x3c8670['message'][_0x3e9471(0xdb)]('\x0a',_0x3e9471(0x11f)));else{const _0x56bfd3=_0x241f54=>!_0x241f54?'':_0x241f54[_0x3e9471(0x110)]('\x0a')['map'](_0x2f62cf=>_0x3e9471(0xcc)+_0x2f62cf+'</p>')[_0x3e9471(0xda)]('\x0a'),_0x485dd=_0x45e773=>Array[_0x3e9471(0x194)](_0x45e773)?_0x45e773[_0x3e9471(0xe7)](_0x56bfd3)[_0x3e9471(0xda)]('\x0a'):_0x56bfd3(_0x45e773);_0x206b41[_0x3e9471(0x1a1)](_0x3e9471(0x193)),_0x4550e3[_0x3e9471(0x163)](_0x3e9471(0x193)),_0x50f233[_0x3e9471(0x1ac)](_0x485dd(_0x3c8670['message'])+_0x485dd(_0x3c8670['extra'])),_0x335ebb(new Error(_0x3c8670[_0x3e9471(0x186)]),_0x3c8670);}})[_0x1038cc(0x15e)](_0x5ee939=>{const _0xa1013f=_0x1038cc;_0x4114f5=![],_0x471cdc[_0xa1013f(0x1a1)](_0xa1013f(0x193)),_0x206b41['addClass']('hide'),_0x4550e3[_0xa1013f(0x163)](_0xa1013f(0x193)),_0x50f233[_0xa1013f(0x1ac)](_0xa1013f(0x10a)+_0x5ee939[_0xa1013f(0xc0)]),console[_0xa1013f(0x1b6)](_0xa1013f(0x144),_0x5ee939);});});}var _0x53500d;(function(_0xc8ab67){const _0xa68255=_0x4a2974;_0xc8ab67[_0xc8ab67['FREEWARE']=0x0]=_0xa68255(0x139),_0xc8ab67[_0xc8ab67[_0xa68255(0x130)]=0x1]=_0xa68255(0x130),_0xc8ab67[_0xc8ab67['PROFESSIONAL']=0x2]=_0xa68255(0x10e);}(_0x53500d||(_0x53500d={})));var _0x5d71a2;(function(_0x430b73){const _0x263820=_0x4a2974;_0x430b73[_0x430b73['AUTHORIZED']=0x18]=_0x263820(0x11d),_0x430b73[_0x430b73[_0x263820(0x17a)]=0x17]=_0x263820(0x17a),_0x430b73[_0x430b73['EXPIRED']=0x16]=_0x263820(0x127);}(_0x5d71a2||(_0x5d71a2={})));function _0x360508(_0x1a94cb,_0x1229f9){const _0x3aa4bc=_0x4a2974;if(_0x1229f9!==_0x5d71a2[_0x3aa4bc(0x11d)])return _0x53500d[_0x3aa4bc(0x139)];return _0x1a94cb;}const _0x28c53c=0xe10*0x3e8,_0x4cadf1=_0x28c53c*0x18;function _0x47eee0(_0x11ca24){const _0x2f065c=_0x4a2974;return!_0x11ca24?new Date(0x0):_0x11ca24 instanceof Date?_0x11ca24:new Date(_0x11ca24[_0x2f065c(0x15c)]?_0x11ca24[_0x2f065c(0x15c)][_0x2f065c(0x18c)]:0x0);}function _0x34f74a(_0x42c694){const _0x14580f=_0x4a2974,_0x5ef2dc=_0x47eee0(_0x42c694),_0x242da8=new Date(),_0x4430a0=Math[_0x14580f(0x141)]((_0x5ef2dc[_0x14580f(0x16f)]()-_0x242da8[_0x14580f(0x16f)]())/_0x4cadf1);return _0x4430a0;}function _0xb5596c(_0x3ad0af){const _0x1486c4=_0x4a2974,_0x52a1ca=_0x47eee0(_0x3ad0af),_0x3048f1=new Date(),_0x4dbdda=Math[_0x1486c4(0x141)]((_0x52a1ca[_0x1486c4(0x16f)]()-_0x3048f1[_0x1486c4(0x16f)]())/_0x28c53c);return _0x4dbdda;}const _0x5774e6=_0x4a2974(0x1a5),_0x1110ca=_0x4a2974(0xf2);function _0x267054(){return _0x2eb3a6(this,arguments,void 0x0,function*(_0x34d976=''){const _0x31db4c=_0x23d6,_0x131c41=_0x34d976+'/opcua-for-node-red',_0xad2173=_0x131c41+_0x31db4c(0x12c),_0x1de165=yield fetch(_0xad2173,{'method':_0x31db4c(0x151),'headers':{'Content-Type':_0x31db4c(0x1b4)}}),_0x173c96=new Date()['toISOString'](),_0x22e392={'status':_0x31db4c(0x17a),'type':'FREEWARE','licenceInfo':{'licenceId':_0x31db4c(0xf1),'licenceType':'<unknown>','expiryDate':_0x173c96,'onPremiseServerHost':'','expired':!![],'userCompany':'','userEmail':'','userName':''}};if(_0x1de165[_0x31db4c(0x145)]!==0xc8)return console[_0x31db4c(0x1b6)](_0x31db4c(0x178),_0x1de165[_0x31db4c(0x145)],_0x1de165[_0x31db4c(0x164)]),_0x22e392;const _0x4bb237=yield _0x1de165['json']();return _0x4bb237;});}const _0x4fb609=()=>{$['widget']('sterfive.licenceWidget',{'options':{'baseUrl':''},'_create'(){const _0x593b5c=_0x23d6,_0x5772d0=this,_0x5cfed2=_0x593b5c(0x174),_0x4a031e=_0x593b5c(0x131);_0x267054(_0x5772d0[_0x593b5c(0x199)])[_0x593b5c(0x1b2)](_0x1f5bbd=>{const _0x2209c1=_0x593b5c;var _0x5ac67c,_0xb18968;let _0x453653='',_0xbe2fdc='',_0x47decb='';const _0x823ca6=_0x53500d[_0x1f5bbd['type']],_0x2f0411=_0x5d71a2[_0x1f5bbd[_0x2209c1(0x145)]],_0x13e3c7=_0x360508(_0x823ca6,_0x2f0411),_0x529ad1=_0x34f74a(((_0x5ac67c=_0x1f5bbd[_0x2209c1(0x15c)])===null||_0x5ac67c===void 0x0?void 0x0:_0x5ac67c[_0x2209c1(0x18c)])?new Date(_0x1f5bbd['licenceInfo'][_0x2209c1(0x18c)]):undefined),_0xd90177=_0xb5596c(((_0xb18968=_0x1f5bbd['licenceInfo'])===null||_0xb18968===void 0x0?void 0x0:_0xb18968[_0x2209c1(0x18c)])?new Date(_0x1f5bbd[_0x2209c1(0x15c)][_0x2209c1(0x18c)]):undefined),_0x1cc7c2=_0x529ad1==0x0?_0xd90177>0xa?_0x2209c1(0xfc):'in\x20'+_0xd90177+_0x2209c1(0x100):_0x529ad1==0x1?_0x2209c1(0xc5):'in\x20'+_0x529ad1+'\x20days';switch(_0x2f0411){case _0x5d71a2[_0x2209c1(0x11d)]:_0x453653=_0x2209c1(0x191);switch(_0x13e3c7){case _0x53500d[_0x2209c1(0x130)]:{_0xbe2fdc='Trial\x20licence',_0x47decb=_0x2209c1(0xc3)+_0x1cc7c2+_0x2209c1(0x126)+_0x4a031e+'\x20to\x20acquire\x20a\x20license.';break;}case _0x53500d['PROFESSIONAL']:_0xbe2fdc=_0x2209c1(0xd0);_0x529ad1<0x5a&&_0x529ad1>=0x0&&(_0xbe2fdc+='\x0aIt\x20will\x20expire\x20'+_0x1cc7c2+'.');_0x47decb=_0x1f5bbd[_0x2209c1(0x15c)][_0x2209c1(0x16a)]+_0x2209c1(0x14d)+(_0x1f5bbd['licenceInfo'][_0x2209c1(0x195)]||'');break;case _0x53500d[_0x2209c1(0x139)]:_0xbe2fdc=_0x2209c1(0x138),_0x47decb=_0x2209c1(0x16d)+_0x4a031e+_0x2209c1(0x155);break;}break;case _0x5d71a2['EXPIRED']:_0x453653=_0x2209c1(0xfd);switch(_0x823ca6){case _0x53500d[_0x2209c1(0x130)]:_0xbe2fdc=_0x2209c1(0x162),_0x47decb=_0x2209c1(0xf5)+_0x4a031e+_0x2209c1(0x1b8);break;case _0x53500d[_0x2209c1(0x139)]:_0xbe2fdc=_0x2209c1(0x184),_0x47decb='Your\x20freeware\x20license\x20has\x20expired.\x0a'+_0x4a031e+_0x2209c1(0x155);break;case _0x53500d[_0x2209c1(0x10e)]:default:_0xbe2fdc=_0x2209c1(0xfb),_0x47decb=_0x2209c1(0x10c)+_0x5cfed2+_0x2209c1(0x142);}break;case _0x5d71a2[_0x2209c1(0x17a)]:default:_0x453653='fa\x20fa-exclamation-circle',_0xbe2fdc=_0x2209c1(0x169),_0x47decb=_0x2209c1(0x12d)+_0x5cfed2+_0x2209c1(0x102);break;}this['element']['addClass'](_0x2209c1(0x16e)),this[_0x2209c1(0x19a)][_0x2209c1(0x1a1)](_0x2209c1(0xe0)+_0x2f0411),this[_0x2209c1(0x19a)]['append']($(_0x2209c1(0xff))[_0x2209c1(0x1a1)]('licence-widget-icon')[_0x2209c1(0xf6)]($(_0x2209c1(0x17c))[_0x2209c1(0x1a1)](_0x453653))),this[_0x2209c1(0x19a)][_0x2209c1(0xf6)]($(_0x2209c1(0xff))[_0x2209c1(0x1a1)]('licence-widget-msg')[_0x2209c1(0x166)](_0xbe2fdc)),this[_0x2209c1(0x19a)][_0x2209c1(0xf6)]($(_0x2209c1(0x11f))),this[_0x2209c1(0x19a)]['append']($(_0x2209c1(0xff))[_0x2209c1(0x1a1)]('licence-widget-details')[_0x2209c1(0xf6)](_0x47decb));if(_0x2f0411===_0x5d71a2[_0x2209c1(0x127)]||_0x2f0411===_0x5d71a2[_0x2209c1(0x17a)]||_0x13e3c7===_0x53500d[_0x2209c1(0x139)]||_0x13e3c7===_0x53500d[_0x2209c1(0x130)]){this['element'][_0x2209c1(0xf6)]($(_0x2209c1(0x11f)));const _0x428c33=$(_0x2209c1(0xec));_0x428c33[_0x2209c1(0x10b)]('id',_0x2209c1(0x153)),_0x428c33[_0x2209c1(0x10b)](_0x2209c1(0x13d),_0x2209c1(0x147)),_0x428c33[_0x2209c1(0x10b)](_0x2209c1(0x122),_0x2209c1(0xd9)),_0x428c33[_0x2209c1(0x166)]('Subscribe'),this['element']['append'](_0x428c33);const _0x58cec9=document[_0x2209c1(0x156)]('script');_0x58cec9[_0x2209c1(0xdc)]=_0x2209c1(0x161),_0x58cec9[_0x2209c1(0x15a)]=!![],$('head')[_0x2209c1(0xf6)](_0x58cec9);const _0x37d945=$(_0x2209c1(0x111));_0x37d945['attr'](_0x2209c1(0x117),_0x5774e6),_0x37d945[_0x2209c1(0x10b)](_0x2209c1(0xd1),_0x1110ca),_0x37d945[_0x2209c1(0x10b)]('style',_0x2209c1(0xc8)),_0x37d945[_0x2209c1(0x193)](),this[_0x2209c1(0x19a)][_0x2209c1(0xf6)](_0x37d945),_0x428c33['on'](_0x2209c1(0x16c),()=>{const _0x47fe5c=_0x2209c1;_0x37d945[_0x47fe5c(0xfe)](),_0x428c33['hide'](),this[_0x47fe5c(0x19a)][_0x47fe5c(0x10b)](_0x47fe5c(0x122),_0x47fe5c(0x168));});}})[_0x593b5c(0x15e)](_0x2908c8=>{const _0x377dbb=_0x593b5c;console[_0x377dbb(0x1b6)](_0x2908c8);});}});},_0x13049a=()=>{const _0x87522c=_0x4a2974,_0x440a15=$(_0x87522c(0x114));console[_0x87522c(0x1b6)](_0x87522c(0x109),_0x440a15['length']);if(_0x440a15[_0x87522c(0x15d)]){console[_0x87522c(0x1b6)](_0x87522c(0x115));const _0x358583=$(_0x87522c(0x10f),{'src':_0x87522c(0x19c),'scrolling':'no','style':'background-color:transparent;overflow:hidden;border:3px','allowtransparency':_0x87522c(0x154),'width':_0x87522c(0xf0),'height':_0x87522c(0x135)});_0x440a15[_0x87522c(0xf6)](_0x358583),_0x358583['css']({'position':'absolute','right':_0x87522c(0x137),'bottom':'16px'});}};_0x4fb609();function _0x36ee00(_0xccf22e){const _0x32cdd2=_0x4a2974;let _0x329ef2;try{_0x329ef2=new URL(_0xccf22e);}catch(_0x23e075){return![];}return _0x329ef2[_0x32cdd2(0xcf)]===_0x32cdd2(0x113);}const _0x5e0c26={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED[_0x4a2974(0xce)]['registerType'](_0x4a2974(0x173),{'category':'config','paletteLabel':_0x4a2974(0x105),'defaults':{'name':{'value':''},'endpoint':{'value':_0x4a2974(0xca),'required':!![],'validate':_0x36ee00},'securityMode':{'value':_0x4a2974(0x112)},'securityPolicy':{'value':'None','validate':_0x5ec9c3=>{if(!_0x5ec9c3)return![];return!![];}},'userIdentityType':{'value':_0x4a2974(0x185)},'pkiName':{'value':'','validate':_0x5e0e66=>!_0x5e0e66||_0x5e0e66[_0x4a2974(0x1b0)](/[0-9a-zA-Z]*/)?!![]:![]},'useTransport':{'value':![],'required':![]},'maxChunkCount':{'value':0x1,'required':![]},'maxMessageSize':{'value':0x2000,'required':![]},'receiveBufferSize':{'value':0x2000,'required':![]},'sendBufferSize':{'value':0x2000,'required':![]},'subscriptions':{'value':[{'id':'s1','name':'Default\x20Subscription','isDefault':!![],'parameters':Object[_0x4a2974(0x181)]({},_0x5e0c26)},{'id':'s2','name':_0x4a2974(0x118),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0x64,'requestedMaxKeepAliveCount':0x3,'requestedPublishingInterval':0x1388,'maxNotificationsPerPublish':0x64,'priority':0xa}},{'id':'s3','name':'Fast\x20Subscription','isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0xfa0,'requestedMaxKeepAliveCount':0x32,'requestedPublishingInterval':0xfa,'maxNotificationsPerPublish':0x64,'priority':0xc8}}],'required':![]},'namespaceAliases':{'value':[{'alias':'ua','namespaceUri':_0x4a2974(0x11b),'isWellKnown':!![],'isDefault':!![]},{'alias':'di','namespaceUri':_0x4a2974(0xee),'isWellKnown':!![],'isDefault':!![]}],'required':![]}},'credentials':{'userName':{'type':_0x4a2974(0x166)},'password':{'type':_0x4a2974(0x132)},'userCertificate':{'type':'text'},'userPrivatekey':{'type':_0x4a2974(0x132)}},'label':function(){const _0x206b11=_0x4a2974;return this['name']||this['endpoint']||_0x206b11(0xc9);},'oneditsave'(){const _0x42a100=_0x4a2974,_0x1aa4e2=$(_0x42a100(0x179)),_0x5979f8=$(_0x42a100(0x157));_0x1aa4e2[_0x42a100(0x146)]()==='None'&&_0x5979f8[_0x42a100(0x166)](_0x42a100(0x112));{const _0x38f281=$(_0x42a100(0xd7))[_0x42a100(0x13f)](_0x42a100(0x18d)),_0x4dfba2=[],_0x1a9a1d=_0x4234ce=>_0x4234ce;_0x38f281[_0x42a100(0x107)](function(_0x5581dd,_0x54e80c){const _0x15e37c=_0x42a100,_0x4b8538=$(this),_0x40aaab={'id':'s'+_0x5581dd,'name':_0x4b8538[_0x15e37c(0x119)](_0x15e37c(0x187))[_0x15e37c(0x146)](),'isDefault':!!_0x4b8538[_0x15e37c(0x119)](_0x15e37c(0x14f))[_0x15e37c(0x146)](),'parameters':{'publishingEnabled':!!_0x4b8538['find']('.input-publishingEnabled')['is'](_0x15e37c(0x16b)),'requestedLifetimeCount':_0x1a9a1d(_0x4b8538[_0x15e37c(0x119)](_0x15e37c(0x182))[_0x15e37c(0x146)]()),'requestedMaxKeepAliveCount':_0x1a9a1d(_0x4b8538[_0x15e37c(0x119)](_0x15e37c(0x12b))[_0x15e37c(0x146)]()),'requestedPublishingInterval':_0x1a9a1d(_0x4b8538[_0x15e37c(0x119)](_0x15e37c(0x101))[_0x15e37c(0x146)]()),'maxNotificationsPerPublish':_0x1a9a1d(_0x4b8538[_0x15e37c(0x119)]('.input-maxNotificationsPerPublish')[_0x15e37c(0x146)]()),'priority':_0x1a9a1d(_0x4b8538[_0x15e37c(0x119)](_0x15e37c(0xc7))[_0x15e37c(0x146)]())}};_0x40aaab['parameters'][_0x15e37c(0x19f)]=!![],_0x40aaab[_0x15e37c(0x17d)]&&_0x40aaab['id']==='s0'&&(_0x40aaab[_0x15e37c(0x1bb)]=_0x15e37c(0xe4)),_0x4dfba2[_0x15e37c(0x192)](_0x40aaab);}),this['subscriptions']=_0x4dfba2;}{const _0x58df53=$(_0x42a100(0x149))[_0x42a100(0x13f)]('items'),_0x3d1eae=[];_0x58df53[_0x42a100(0x107)](function(_0x38afca,_0x4b9e68){const _0x3f51f1=_0x42a100,_0x51709e=$(this),_0x18ad09={'namespaceUri':_0x51709e[_0x3f51f1(0x119)](_0x3f51f1(0x11c))[_0x3f51f1(0x146)](),'alias':_0x51709e['find'](_0x3f51f1(0x177))[_0x3f51f1(0x146)]()};_0x3d1eae[_0x3f51f1(0x192)](_0x18ad09);}),this[_0x42a100(0x1b5)]=_0x3d1eae;}},'oneditprepare'(){const _0x95c0db=_0x4a2974,_0xd60db3=this;_0x13049a();const _0x218026=RED[_0x95c0db(0x11a)][_0x95c0db(0x18a)]({'id':_0x95c0db(0xc1),'onchange':function(_0x29a1ca){const _0x548e37=_0x95c0db;$('#node-config-endpoint-tabs-content')[_0x548e37(0x198)]()[_0x548e37(0x193)](),$('#'+_0x29a1ca['id'])['show']();}});_0x218026[_0x95c0db(0x1ae)]({'id':_0x95c0db(0x1a8),'label':_0x95c0db(0xeb)},0x0),_0x218026[_0x95c0db(0x1ae)]({'id':_0x95c0db(0x15f),'label':_0x95c0db(0xe2)},0x1),_0x218026['addTab']({'id':_0x95c0db(0x19d),'label':_0x95c0db(0xdd)},0x2),setTimeout(function(){const _0x143088=_0x95c0db;_0x218026[_0x143088(0xde)]();},0x0);{const _0x1e5607=_0x27a29b=>{const _0x3040b4=_0x95c0db;switch(_0x27a29b){case null:case undefined:case'':case _0x3040b4(0x112):$(_0x3040b4(0xd8))[_0x3040b4(0x193)]();break;case'Sign':case _0x3040b4(0x12f):{const _0x1317ae=$(_0x3040b4(0xd8));(_0x1317ae[_0x3040b4(0x146)]()===_0x3040b4(0x112)||_0x1317ae[_0x3040b4(0x146)]()==='')&&_0x1317ae[_0x3040b4(0x146)](_0x3040b4(0xd6)),$(_0x3040b4(0xd8))[_0x3040b4(0xfe)]();}break;default:console[_0x3040b4(0x1b6)]('invalid\x20securityMode\x20'+_0x27a29b);}};_0x1e5607(_0xd60db3['securityMode']);const _0xe95a39=$(_0x95c0db(0x157));_0xe95a39['on'](_0x95c0db(0x1a0),()=>{const _0x11563e=_0x95c0db,_0xfd44cf=_0xe95a39[_0x11563e(0x146)]();_0x1e5607(_0xfd44cf);});}const _0x36c5d1=$(_0x95c0db(0x18f));_0x36c5d1[_0x95c0db(0xfa)]({'baseUrl':''});{const _0x11d5fc=$(_0x95c0db(0x12a)),_0x49a586=$(_0x95c0db(0x1aa)),_0x5006fa=_0x495355=>{const _0x12e3b1=_0x95c0db;_0x495355=_0x495355||_0x12e3b1(0x185);switch(_0x495355){case _0x12e3b1(0x185):$(_0x12e3b1(0x160))[_0x12e3b1(0x146)](''),$(_0x12e3b1(0x128))[_0x12e3b1(0x146)](''),_0x11d5fc['hide'](),_0x49a586['hide']();break;case _0x12e3b1(0xef):_0x11d5fc[_0x12e3b1(0xfe)](),_0x49a586[_0x12e3b1(0x193)]();break;case _0x12e3b1(0xdf):$('#node-config-input-userName')[_0x12e3b1(0x146)](''),$(_0x12e3b1(0x128))[_0x12e3b1(0x146)](''),_0x49a586[_0x12e3b1(0xfe)](),_0x11d5fc[_0x12e3b1(0x193)]();break;default:console[_0x12e3b1(0x1b6)](_0x12e3b1(0xf8)+_0x495355);}};_0x5006fa(_0xd60db3[_0x95c0db(0x14a)]);const _0x337a35=$(_0x95c0db(0x1ba));_0x337a35['on'](_0x95c0db(0x1a0),()=>{const _0x2f2feb=_0x95c0db,_0xe2bf36=_0x337a35[_0x2f2feb(0x146)]();_0x5006fa(_0xe2bf36);});}{$('#section-Advanced')[_0x95c0db(0x193)](),$(_0x95c0db(0x150))['prop'](_0x95c0db(0x176),![]),$(_0x95c0db(0x150))['on'](_0x95c0db(0x1a0),function(){const _0x3a7515=_0x95c0db;$(this)['prop']('checked')?$(_0x3a7515(0xe1))['show']():$(_0x3a7515(0xe1))[_0x3a7515(0x193)]();});}const _0x5b0c30=$('#node-config-input-useTransport')[_0x95c0db(0x1a3)](_0x95c0db(0x176));_0x5b0c30?$(_0x95c0db(0x14b))[_0x95c0db(0xfe)]():$(_0x95c0db(0x14b))[_0x95c0db(0x193)]();$(_0x95c0db(0x197))['on']('change',function(){const _0x4986f9=_0x95c0db;$(this)[_0x4986f9(0x1a3)](_0x4986f9(0x176))?$(_0x4986f9(0x14b))[_0x4986f9(0xfe)]():$(_0x4986f9(0x14b))[_0x4986f9(0x193)]();});{$(_0x95c0db(0x1b9))['on'](_0x95c0db(0x16c),()=>_0x2eb3a6(this,void 0x0,void 0x0,function*(){const _0x496325=_0x95c0db,_0x3090a2=yield fetch(_0x496325(0x18b)),_0xe18eb5=yield _0x3090a2['json'](),_0x2f4a9d=JSON['stringify'](_0xe18eb5,null,'\x20');alert(_0x2f4a9d);}));}$(_0x95c0db(0xed))['on'](_0x95c0db(0x16c),()=>_0x2eb3a6(this,void 0x0,void 0x0,function*(){const _0x2e79fc=_0x95c0db;window['open'](_0x2e79fc(0x165),_0x2e79fc(0xf4));}));function _0x2ed25d(){const _0x450d53=_0x95c0db;var _0x14f9af;return{'id':_0xd60db3['id'],'endpoint':$(_0x450d53(0x19e))['val'](),'name':$(_0x450d53(0x124))['val'](),'pkiName':(_0x14f9af=$('#node-config-input-pkiName'))===null||_0x14f9af===void 0x0?void 0x0:_0x14f9af[_0x450d53(0x146)](),'securityMode':$(_0x450d53(0x157))[_0x450d53(0x146)](),'securityPolicy':$(_0x450d53(0x179))['val'](),'userIdentityType':$(_0x450d53(0x1ba))[_0x450d53(0x146)](),'userName':$(_0x450d53(0x160))[_0x450d53(0x146)](),'password':$('#node-config-input-password')[_0x450d53(0x146)](),'userCertificate':$(_0x450d53(0x170))[_0x450d53(0x146)](),'userPrivatekey':$(_0x450d53(0x152))[_0x450d53(0x146)](),'certificate':$('#node-input-certificate')[_0x450d53(0x146)](),'useTransport':$(_0x450d53(0xe3))[_0x450d53(0x1a3)](_0x450d53(0x176)),'maxChunkCount':$(_0x450d53(0x120))[_0x450d53(0x146)](),'maxMessageSize':$(_0x450d53(0x175))['val'](),'receiveBufferSize':$(_0x450d53(0x1b1))[_0x450d53(0x146)](),'sendBufferSize':$('#node-input-sendBufferSize')[_0x450d53(0x146)]()};}{_0x5f3385(_0x95c0db(0x1ad),$(_0x95c0db(0x116)),()=>({'url':_0x95c0db(0xe5),'body':{'endpointNode':_0x2ed25d()}}),()=>{});}{const _0xc63c8a=(_0x2720c8,_0x386355)=>{const _0x35130a=_0x95c0db;var _0x2a63bd=_0x2720c8[_0x35130a(0x133)]()||0x64;_0x2720c8['find'](_0x35130a(0x13a))[_0x35130a(0x190)](_0x35130a(0x133),_0x2a63bd-0xf);},_0x1b0bc6=$(_0x95c0db(0xd7))[_0x95c0db(0x171)]({'min-height':_0x95c0db(0x1a6),'min-width':_0x95c0db(0xf3)})[_0x95c0db(0x13f)]({'addItem':(_0x460d89,_0x1ec495,_0x20403d)=>{const _0x415580=_0x95c0db,_0x221b94=_0x20403d,_0x2a1f48=$(_0x415580(0x11e))[_0x415580(0x103)]()[_0x415580(0x172)](_0x460d89);_0x2a1f48[_0x415580(0x13b)]('id')[_0x415580(0x163)]('hide')[_0x415580(0x163)](_0x415580(0x196))[_0x415580(0x10b)](_0x415580(0xd4),_0x1ec495),_0x2a1f48[_0x415580(0x119)]('.input-name')[_0x415580(0x146)](_0x221b94[_0x415580(0x1bb)]),_0x2a1f48[_0x415580(0x119)](_0x415580(0x101))['val'](_0x221b94[_0x415580(0x1a9)][_0x415580(0x148)]),_0x2a1f48[_0x415580(0x119)](_0x415580(0x12b))['val'](_0x221b94[_0x415580(0x1a9)][_0x415580(0x1b3)]),_0x2a1f48[_0x415580(0x119)](_0x415580(0x182))[_0x415580(0x146)](_0x221b94['parameters'][_0x415580(0x17b)]),_0x2a1f48[_0x415580(0x119)](_0x415580(0x159))[_0x415580(0x146)](_0x221b94['parameters'][_0x415580(0x17f)]||0x0),_0x2a1f48[_0x415580(0x119)]('.input-priority')[_0x415580(0x146)](_0x221b94[_0x415580(0x1a9)][_0x415580(0x183)]||0x0),_0x2a1f48[_0x415580(0x119)](_0x415580(0x189))['text'](''+_0x1ec495),_0x221b94[_0x415580(0x17d)]&&_0x2a1f48[_0x415580(0x119)]('.input-name')[_0x415580(0x1a3)](_0x415580(0x129),!![]),_0x2a1f48[_0x415580(0x119)]('.input-isDefault')[_0x415580(0x1a3)](_0x415580(0x176),_0x221b94[_0x415580(0x17d)]),_0x221b94['isDefault']&&(_0x460d89[_0x415580(0x119)]('.red-ui-editableList-item-remove')[_0x415580(0x1a1)]('hide'),setTimeout(()=>_0x2a1f48['find'](_0x415580(0x14f))[_0x415580(0x1a3)](_0x415580(0x1ab),!![]),0xa));},'removable':!![],'resizeItem':_0xc63c8a}),_0x2f69d3=()=>{const _0xb063d4=_0x95c0db,_0x1c00c6=_0xd60db3[_0xb063d4(0x15b)]||[];_0x1c00c6['length']===0x0&&_0x1c00c6['push']({'id':'s1','name':_0xb063d4(0xe4),'isDefault':!![],'parameters':Object['assign']({},_0x5e0c26)});_0x1b0bc6[_0xb063d4(0x13f)]('empty');for(const _0xe72360 of _0x1c00c6){_0x1b0bc6['editableList'](_0xb063d4(0x125),_0xe72360);}};_0x2f69d3();}{function _0x540f5e(_0x36c4b9,_0x53dcfd,_0x431a2d){const _0x5c9ee8=_0x95c0db,_0x33163c=_0x431a2d,_0x2ee93a=$(_0x5c9ee8(0x188))[_0x5c9ee8(0x172)](_0x36c4b9);$(_0x5c9ee8(0x134),{'class':_0x5c9ee8(0xf7),'type':'text'})[_0x5c9ee8(0x146)](_0x431a2d[_0x5c9ee8(0x108)]||'')[_0x5c9ee8(0x171)]({'width':'5%'})['appendTo'](_0x2ee93a)[_0x5c9ee8(0x146)](_0x53dcfd[_0x5c9ee8(0x104)]()),$('<input/>',{'class':_0x5c9ee8(0x12e),'type':'text'})[_0x5c9ee8(0x146)](_0x431a2d[_0x5c9ee8(0x108)]||'')[_0x5c9ee8(0x171)]({'width':_0x5c9ee8(0x1a7)})[_0x5c9ee8(0x172)](_0x2ee93a)[_0x5c9ee8(0x146)](_0x33163c['alias']),$(_0x5c9ee8(0x134),{'class':_0x5c9ee8(0xe8),'type':_0x5c9ee8(0x166)})[_0x5c9ee8(0x146)](_0x431a2d['namespaceUri']||'')[_0x5c9ee8(0x171)]({'width':_0x5c9ee8(0x1b7)})[_0x5c9ee8(0x172)](_0x2ee93a)[_0x5c9ee8(0x146)](_0x33163c[_0x5c9ee8(0x136)]);}const _0x7be32=$(_0x95c0db(0x149))[_0x95c0db(0x171)]({'min-height':'150px','min-width':_0x95c0db(0xf3)})[_0x95c0db(0x13f)]({'addButton':![],'removable':![],'height':_0x95c0db(0xe9),'scrollOnAdd':![],'addItem'(_0x2881e1,_0x2c7b92,_0x3e0d0b){_0x540f5e(_0x2881e1,_0x2c7b92,_0x3e0d0b);}});function _0x545e61(){const _0x3a339c=_0x95c0db;_0x7be32[_0x3a339c(0x13f)]('items'),_0x7be32[_0x3a339c(0x13f)](_0x3a339c(0xe6));for(const _0x55146a of _0xd60db3[_0x3a339c(0x1b5)]||[]){_0x7be32[_0x3a339c(0x13f)](_0x3a339c(0x125),_0x55146a);}}{$(_0x95c0db(0x19b))['on'](_0x95c0db(0x16c),()=>_0x2eb3a6(this,void 0x0,void 0x0,function*(){const _0x448cec=_0x95c0db,_0x133630={'endpointNode':_0x2ed25d(),'namespaceAliases':_0xd60db3[_0x448cec(0x1b5)]||[]},_0x4c19a5=yield fetch(_0x448cec(0xc6),{'method':_0x448cec(0x151),'headers':{'Content-Type':_0x448cec(0x1b4)},'body':JSON[_0x448cec(0x10d)](_0x133630)}),_0x414ff6=yield _0x4c19a5[_0x448cec(0x180)](),_0x23c881=_0x414ff6[_0x448cec(0x1b5)];console[_0x448cec(0x1b6)]('namespaceAliases',_0x23c881),Array[_0x448cec(0x194)](_0x23c881)&&(_0xd60db3[_0x448cec(0x1b5)]=_0x23c881,_0x545e61());})),_0xd60db3['namespaceAliases']=_0xd60db3[_0x95c0db(0x1b5)]||[{'alias':'ua','namespaceUri':_0x95c0db(0x11b),'isWellKnown':!![],'isDefault':!![]}];}_0x545e61();}}});}()));function _0x23d6(_0x578e92,_0x4a6ed2){const _0x417ea2=_0x417e();return _0x23d6=function(_0x23d657,_0x261def){_0x23d657=_0x23d657-0xc0;let _0x59932f=_0x417ea2[_0x23d657];return _0x59932f;},_0x23d6(_0x578e92,_0x4a6ed2);}function _0x417e(){const _0x66d193=['14NyYjHL','tomorrow','/opcua-for-node-red/extract-namespace-aliases','.input-priority','height:\x20100%;max-height:\x20100%;','invalid\x20endpoint','opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','value','<p>','1230954rkuhvl','nodes','protocol','Your\x20licence\x20is\x20valid.','publishable-key','next','throw','data-i','-messages','Basic256Sha256','#subscriptions-container','.section-securityPolicy','margin-top:\x2020px;','join','replace','src','Namespace\x20Aliases','resize','Certificate','licence-widget-','#section-Advanced','Subscriptions','#node-input-useTransport','Default\x20Subscription','/opcua-for-node-red/test-connection','empty','map','node-input-alias-namespace-uri','auto','1451508SnrpRf','Connection','<button/>','#goto-config','http://opcfoundation.org/DI/','UserName','180px','00000000-0000-0000-0000-000000000000','pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW','260px','_blank','Your\x20trial\x20license\x20has\x20expired.\x0aPlease\x20visit\x20','append','node-input-alias-index','invalid\x20userIdentityType\x20','1180355SwIsHb','licenceWidget','Your\x20licence\x20has\x20expired\x20-\x20Freeware\x20mode\x20activated','today','fa\x20fa-calendar-time','show','<span>','\x20hours','.input-requestedPublishingInterval','\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀','clone','toString','opcua\x20endpoint','-pending','each','alias','installFeedbackWidget\x20','internal\x20error\x20','attr','Your\x20license\x20has\x20expired.\x0aPlease\x20contact\x20our\x20\x20','stringify','PROFESSIONAL','<iframe></iframe>','split','<stripe-pricing-table/>','None','opc.tcp:','.red-ui-tray-body','installing\x20iframe','#test-connection','pricing-table-id','Slow\x20Subscription','find','tabs','http://opcfoundation.org/UA/','.node-input-alias-namespace-uri','AUTHORIZED','#subscription-template','<br>','#node-input-maxChunkCount','-failure','style','suppressed','#node-config-input-name','addItem','.\x0aBuy\x20online\x20and\x20visit\x20','EXPIRED','#node-config-input-password','readonly','.section-userIdentityType-UserName','.input-requestedMaxKeepAliveCount','/licenceInfo','Please\x20contact\x20','node-input-alias-alias','SignAndEncrypt','TRIAL','<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>','password','width','<input/>','30px','namespaceUri','20px','Freeware\x20licence','FREEWARE','label','removeAttr','error','class','830wXlqqX','editableList','32NiOfqw','floor','\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.','function','err','status','val','btn\x20btn-primary','requestedPublishingInterval','#editable-list-aliases-container','userIdentityType','#section-TransportSettings','1533884OWGjXp','\x20-\x20','2kYLsKf','.input-isDefault','#toggleAdvancedSection','POST','#node-config-input-userPrivatekey','subscribe-button','true','\x20for\x20more\x20information.','createElement','#node-config-input-securityMode','598865hocvvc','.input-maxNotificationsPerPublish','async','subscriptions','licenceInfo','length','catch','endpoint-tab-subscriptions','#node-config-input-userName','https://js.stripe.com/v3/pricing-table.js','Freeware\x20:\x20(Trial\x20licence\x20expired)','removeClass','statusText','/opcua-for-node-red/config','text','3084176yXnWPJ','height:\x20100%\x20!important;','Your\x20license\x20is\x20currently\x20invalid.','licenceType',':checked','click','This\x20is\x20a\x20freeware\x20licence,\x20and\x20have\x20some\x20limitations.\x0a','licence-widget','getTime','#node-config-input-userCertificate','css','appendTo','OpcUa-Endpoint2','<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>','#node-input-maxMessageSize','checked','.node-input-alias-alias','fetching\x20failed\x20with\x20error','#node-config-input-securityPolicy','FAILED','requestedLifetimeCount','<i>','isDefault','Testing\x20Connection\x20...','maxNotificationsPerPublish','json','assign','.input-requestedLifetimeCount','priority','Freeware\x20licence\x20expired','Anonymous','result','.input-name','<div\x20class=\x22alias-entry\x22>','.subscription-id','create','/opcua-for-node-red/client_certificate.json','expiryDate','items','SuppressedError','#licenceWidget','typedInput','fa\x20fa-check-circle','push','hide','isArray','onPremiseServerHost','template','#node-config-input-useTransport','children','baseUrl','element','#extract-aliases','/opcua-for-node-red/support-frame.html','endpoint-tab-namespace-aliases','#node-config-input-endpoint','publishingEnabled','change','addClass','-success','prop','49239PBnCNC','prctbl_1OJt49BCNccbzsVzkaANOgFL','150px','25%','endpoint-tab-connection','parameters','.section-userIdentityType-Certificate','disabled','html','connection','addTab','apply','match','#node-input-receiveBufferSize','then','requestedMaxKeepAliveCount','application/json','namespaceAliases','log','70%','\x20to\x20acquire\x20a\x20license.','#checkCertificate','#node-config-input-userIdentityType','name','message','node-config-endpoint-tabs','done','The\x20Trial\x20will\x20expire\x20'];_0x417e=function(){return _0x66d193;};return _0x417e();}
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyZWIzYTYiLCJfMHgyNjMzM2IiLCJfMHgyNGI2MmMiLCJfMHg0MWZmOTgiLCJfMHgzNmFiZTkiLCJfMHgyNDI5YWYiLCJfMHg1YTFkZTkiLCJfMHgyNTBiMjciLCJQcm9taXNlIiwiXzB4MjNkNGU2IiwiXzB4NDc1OWRhIiwiXzB4NGI0MmY4IiwiXzB4NDRmNDY0IiwiXzB4ZjNlNTgwIiwiXzB4MTcxODFjIiwiXzB4NDZmOWM1IiwiXzB4MWYxYjBmIiwiXzB4M2U1MmI0IiwiXzB4MzA2OGNkIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MmMxNTAwIiwiXzB4NGQ2MzY2IiwiXzB4MjM1YjA1IiwiXzB4MTVkYmNkIiwiRXJyb3IiLCJfMHg1ZjMzODUiLCJfMHgzZGM3NjQiLCJfMHgyZmNhZjciLCJfMHg2MDEzOGQiLCJfMHgzMzVlYmIiLCJfMHgyMDZiNDEiLCIkIiwiXzB4NDU1MGUzIiwiXzB4NDcxY2RjIiwiXzB4NTBmMjMzIiwiXzB4NDExNGY1IiwiYm9keSIsIl8weDVlN2M3YiIsInVybCIsIl8weDNhOGViMSIsImZldGNoIiwiSlNPTiIsIl8weDExOGU5MCIsIl8weDNjODY3MCIsImNvbnNvbGUiLCJfMHg1NmJmZDMiLCJfMHgyNDFmNTQiLCJfMHgyZjYyY2YiLCJfMHg0ODVkZCIsIl8weDQ1ZTc3MyIsIkFycmF5IiwiXzB4NWVlOTM5IiwiXzB4NTM1MDBkIiwiXzB4YzhhYjY3IiwiXzB4NWQ3MWEyIiwiXzB4NDMwYjczIiwiXzB4MzYwNTA4IiwiXzB4MWE5NGNiIiwiXzB4MTIyOWY5IiwiXzB4MjhjNTNjIiwiXzB4NGNhZGYxIiwiXzB4NDdlZWUwIiwiXzB4MTFjYTI0IiwiRGF0ZSIsIl8weDM0Zjc0YSIsIl8weDQyYzY5NCIsIl8weDVlZjJkYyIsIl8weDI0MmRhOCIsIl8weDQ0MzBhMCIsIk1hdGgiLCJfMHhiNTU5NmMiLCJfMHgzYWQwYWYiLCJfMHg1MmExY2EiLCJfMHgzMDQ4ZjEiLCJfMHg0ZGJkZGEiLCJfMHg1Nzc0ZTYiLCJfMHgxMTEwY2EiLCJfMHgyNjcwNTQiLCJhcmd1bWVudHMiLCJfMHgzNGQ5NzYiLCJfMHgxMzFjNDEiLCJfMHhhZDIxNzMiLCJfMHgxZGUxNjUiLCJfMHgxNzNjOTYiLCJfMHgyMmUzOTIiLCJfMHg0YmIyMzciLCJfMHg0ZmI2MDkiLCJfMHg1NzcyZDAiLCJfMHg1Y2ZlZDIiLCJfMHg0YTAzMWUiLCJfMHgxZjViYmQiLCJfMHg1YWM2N2MiLCJfMHhiMTg5NjgiLCJfMHg0NTM2NTMiLCJfMHhiZTJmZGMiLCJfMHg0N2RlY2IiLCJfMHg4MjNjYTYiLCJfMHgyZjA0MTEiLCJfMHgxM2UzYzciLCJfMHg1MjlhZDEiLCJ1bmRlZmluZWQiLCJfMHhkOTAxNzciLCJfMHgxY2M3YzIiLCJfMHg0MjhjMzMiLCJfMHg1OGNlYzkiLCJkb2N1bWVudCIsIl8weDM3ZDk0NSIsIl8weDI5MDhjOCIsIl8weDEzMDQ5YSIsIl8weDQ0MGExNSIsIl8weDM1ODU4MyIsIl8weDM2ZWUwMCIsIl8weGNjZjIyZSIsIl8weDMyOWVmMiIsIlVSTCIsIl8weDIzZTA3NSIsIl8weDVlMGMyNiIsIlJFRCIsIl8weDVlYzljMyIsIl8weDVlMGU2NiIsIk9iamVjdCIsIl8weDFhYTRlMiIsIl8weDU5NzlmOCIsIl8weDM4ZjI4MSIsIl8weDRkZmJhMiIsIl8weDFhOWExZCIsIl8weDQyMzRjZSIsIl8weDU1ODFkZCIsIl8weDU0ZTgwYyIsIl8weDRiODUzOCIsIl8weDQwYWFhYiIsIl8weDU4ZGY1MyIsIl8weDNkMWVhZSIsIl8weDM4YWZjYSIsIl8weDRiOWU2OCIsIl8weDUxNzA5ZSIsIl8weDE4YWQwOSIsIl8weGQ2MGRiMyIsIl8weDIxODAyNiIsIl8weDI5YTFjYSIsInNldFRpbWVvdXQiLCJfMHgxZTU2MDciLCJfMHgyN2EyOWIiLCJfMHgxMzE3YWUiLCJfMHhlOTVhMzkiLCJfMHhmZDQ0Y2YiLCJfMHgzNmM1ZDEiLCJfMHgxMWQ1ZmMiLCJfMHg0OWE1ODYiLCJfMHg1MDA2ZmEiLCJfMHg0OTUzNTUiLCJfMHgzMzdhMzUiLCJfMHhlMmJmMzYiLCJfMHg1YjBjMzAiLCJfMHgzMDkwYTIiLCJfMHhlMThlYjUiLCJfMHgyZjRhOWQiLCJhbGVydCIsIndpbmRvdyIsIl8weDJlZDI1ZCIsIl8weDE0ZjlhZiIsIl8weGM2M2M4YSIsIl8weDI3MjBjOCIsIl8weDM4NjM1NSIsIl8weDJhNjNiZCIsIl8weDFiMGJjNiIsIl8weDQ2MGQ4OSIsIl8weDFlYzQ5NSIsIl8weDIwNDAzZCIsIl8weDIyMWI5NCIsIl8weDJhMWY0OCIsIl8weDJmNjlkMyIsIl8weDFjMDBjNiIsIl8weGU3MjM2MCIsIl8weDU0MGY1ZSIsIl8weDM2YzRiOSIsIl8weDUzZGNmZCIsIl8weDQzMWEyZCIsIl8weDMzMTYzYyIsIl8weDJlZTkzYSIsIl8weDdiZTMyIiwiXzB4Mjg4MWUxIiwiXzB4MmM3YjkyIiwiXzB4M2UwZDBiIiwiXzB4NTQ1ZTYxIiwiXzB4NTUxNDZhIiwiXzB4MTMzNjMwIiwiXzB4NGMxOWE1IiwiXzB4NDE0ZmY2IiwiXzB4MjNjODgxIl0sIm1hcHBpbmdzIjoibW1CQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLENBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsTUFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FB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TUFBTW5KLEtBQUEsQyxlQUFBLENBQXVELEMsUUFDdEUsQyxnQkFEc0UsQyxTQUV0RSxDQUFTLEMsY0FBRSxDLGdCQUFGLENBRjZELEMsTUFHdEUsQ0FBTUMsSUFBQSxDLGdCQUFBLEVBQWVpSixTQUFmLENBSGdFLENBQXZELEMsQ0FLYkUsU0FBQSxDQUFPLE1BQU1ELFNBQUEsQyxnQkFBQSxHLENBQ2JFLFNBQUEsQ0FBbUJELFNBQUEsQyxnQkFBQSxDLENBQ3pCaEosT0FBQSxDLGdCQUFBLEUsa0JBQUEsQ0FBZ0NpSixTQUFoQyxDLENBQ0kzSSxLQUFBLEMsZ0JBQUEsRUFBYzJJLFNBQWQsQyxHQUNBcEQsU0FBQSxDLGdCQUFBLEVBQXdCb0QsUyxDQUN4QkwsU0FBQSxFLEdBZmdDLENBQXhDLEMsQ0FrQkEvQyxTQUFBLEMsa0JBQUEsRUFBd0JBLFNBQUEsQyxnQkFBQSxHQUF5QixDQUM3QyxDLE9BQ0ksQyxJQURKLEMsY0FFSSxDLGdCQUZKLEMsYUFHSSxDLElBSEosQyxXQUlJLEMsSUFKSixDQUQ2QyxDLEVBU3JEK0MsU0FBQSxFLEdBeGQ4QixDQUExQyxDLEVBN1VKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wsIEl0ZXJhdG9yICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gbWFuYWdlQVBJQ2FsbChwcmVmaXgsIGJ0biwgZnVuYywgb25SZXN1bHQpIHtcbiAgICAgICAgY29uc3Qgc3VjY2Vzc0ljb24gPSAkKGAjJHtwcmVmaXh9LXN1Y2Nlc3NgKTtcbiAgICAgICAgY29uc3QgZmFpbHVyZUljb24gPSAkKGAjJHtwcmVmaXh9LWZhaWx1cmVgKTtcbiAgICAgICAgY29uc3QgcGVuZGluZ0ljb24gPSAkKGAjJHtwcmVmaXh9LXBlbmRpbmdgKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZXMgPSAkKGAjJHtwcmVmaXh9LW1lc3NhZ2VzYCk7XG4gICAgICAgIGxldCBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIHN1Y2Nlc3NJY29uLmhpZGUoKTtcbiAgICAgICAgZmFpbHVyZUljb24uaGlkZSgpO1xuICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgIGJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgIGlmIChhY3Rpb25QZW5kaW5nKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgcGVuZGluZ0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgcGVuZGluZ0ljb24uaHRtbChcIlRlc3RpbmcgQ29ubmVjdGlvbiAuLi5cIik7XG4gICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiXCIpO1xuICAgICAgICAgICAgY29uc3QgeyBib2R5LCB1cmwgfSA9IGZ1bmMoKTtcbiAgICAgICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4eHhcIiwgYm9keSk7XG4gICAgICAgICAgICBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShib2R5KSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IGRhdGEuanNvbigpKVxuICAgICAgICAgICAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCBcIiBcIikpO1xuICAgICAgICAgICAgICAgIGlmIChqc29uLnJlc3VsdCA9PT0gXCJva1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGpzb24ubWVzc2FnZS5yZXBsYWNlKFwiXFxuXCIsIFwiPGJyPlwiKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdCA9IChzdHIpID0+ICFzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChhKSA9PiBgPHA+JHthfTwvcD5gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdDIgPSAoc3RyKSA9PiAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyLm1hcChhZGFwdCkuam9pbihcIlxcblwiKSA6IGFkYXB0KHN0cikpO1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChhZGFwdDIoanNvbi5tZXNzYWdlKSArIGFkYXB0Mihqc29uLmV4dHJhKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG5ldyBFcnJvcihqc29uLnJlc3VsdCksIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcImludGVybmFsIGVycm9yIFwiICsgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdmFyIExpY2VuY2VUeXBlO1xuICAgIChmdW5jdGlvbiAoTGljZW5jZVR5cGUpIHtcbiAgICAgICAgTGljZW5jZVR5cGVbTGljZW5jZVR5cGVbXCJGUkVFV0FSRVwiXSA9IDBdID0gXCJGUkVFV0FSRVwiO1xuICAgICAgICBMaWNlbmNlVHlwZVtMaWNlbmNlVHlwZVtcIlRSSUFMXCJdID0gMV0gPSBcIlRSSUFMXCI7XG4gICAgICAgIExpY2VuY2VUeXBlW0xpY2VuY2VUeXBlW1wiUFJPRkVTU0lPTkFMXCJdID0gMl0gPSBcIlBST0ZFU1NJT05BTFwiO1xuICAgIH0pKExpY2VuY2VUeXBlIHx8IChMaWNlbmNlVHlwZSA9IHt9KSk7XG4gICAgdmFyIExpY2VuY2VTdGF0dXM7XG4gICAgKGZ1bmN0aW9uIChMaWNlbmNlU3RhdHVzKSB7XG4gICAgICAgIExpY2VuY2VTdGF0dXNbTGljZW5jZVN0YXR1c1tcIkFVVEhPUklaRURcIl0gPSAyNF0gPSBcIkFVVEhPUklaRURcIjtcbiAgICAgICAgTGljZW5jZVN0YXR1c1tMaWNlbmNlU3RhdHVzW1wiRkFJTEVEXCJdID0gMjNdID0gXCJGQUlMRURcIjtcbiAgICAgICAgTGljZW5jZVN0YXR1c1tMaWNlbmNlU3RhdHVzW1wiRVhQSVJFRFwiXSA9IDIyXSA9IFwiRVhQSVJFRFwiO1xuICAgIH0pKExpY2VuY2VTdGF0dXMgfHwgKExpY2VuY2VTdGF0dXMgPSB7fSkpO1xuXG4gICAgZnVuY3Rpb24gZ2V0RWZmZWN0aXZlTGljZW5jZVR5cGUobGljZW5jZVR5cGUsIGxpY2VuY2VTdGF0dXMpIHtcbiAgICAgICAgaWYgKGxpY2VuY2VTdGF0dXMgIT09IExpY2VuY2VTdGF0dXMuQVVUSE9SSVpFRCkge1xuICAgICAgICAgICAgcmV0dXJuIExpY2VuY2VUeXBlLkZSRUVXQVJFO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsaWNlbmNlVHlwZTtcbiAgICB9XG4gICAgY29uc3QgbWlsbGlzZWNvbmRzUGVySG91ciA9IDM2MDAgKiAxMDAwO1xuICAgIGNvbnN0IG1pbGxpc2Vjb25kc1BlckRheSA9IG1pbGxpc2Vjb25kc1BlckhvdXIgKiAyNDtcbiAgICBmdW5jdGlvbiBfYWEobGljZW5jZSkge1xuICAgICAgICByZXR1cm4gIWxpY2VuY2VcbiAgICAgICAgICAgID8gbmV3IERhdGUoMClcbiAgICAgICAgICAgIDogbGljZW5jZSBpbnN0YW5jZW9mIERhdGVcbiAgICAgICAgICAgICAgICA/IGxpY2VuY2VcbiAgICAgICAgICAgICAgICA6IG5ldyBEYXRlKGxpY2VuY2UubGljZW5jZUluZm8gPyBsaWNlbmNlLmxpY2VuY2VJbmZvLmV4cGlyeURhdGUgOiAwKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0RGF5c0xlZnQobGljZW5jZSkge1xuICAgICAgICBjb25zdCBleHBpcnlEYXRlID0gX2FhKGxpY2VuY2UpO1xuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBjb25zdCBkYXlzTGVmdCA9IE1hdGguZmxvb3IoKGV4cGlyeURhdGUuZ2V0VGltZSgpIC0gbm93LmdldFRpbWUoKSkgLyBtaWxsaXNlY29uZHNQZXJEYXkpO1xuICAgICAgICByZXR1cm4gZGF5c0xlZnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEhvdXJzTGVmdChsaWNlbmNlKSB7XG4gICAgICAgIGNvbnN0IGV4cGlyeURhdGUgPSBfYWEobGljZW5jZSk7XG4gICAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IGhvdXJzTGVmdCA9IE1hdGguZmxvb3IoKGV4cGlyeURhdGUuZ2V0VGltZSgpIC0gbm93LmdldFRpbWUoKSkgLyBtaWxsaXNlY29uZHNQZXJIb3VyKTtcbiAgICAgICAgcmV0dXJuIGhvdXJzTGVmdDtcbiAgICB9XG5cbiAgICBjb25zdCBwcmljaW5nVGFibGVJZCA9IFwicHJjdGJsXzFPSnQ0OUJDTmNjYnpzVnprYUFOT2dGTFwiO1xuICAgIGNvbnN0IHB1Ymxpc2hhYmxlS2V5ID0gXCJwa19saXZlXzUxSHNFMXNCQ05jY2J6c1Z6dDd6YXEydXYyMHBrcnlXbGxBenZaZ1pkNUFod0ZJOUEzcUJJZU9Kdkp3UUYwOGxEb0xwRnFMandteUE3OXduUG5ZTHN2S2p0MDA5ZjAwVnBDV1wiO1xuICAgIGZ1bmN0aW9uIGZldGNoTGljZW5jZUluZm8oKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgYXJndW1lbnRzLCB2b2lkIDAsIGZ1bmN0aW9uKiAoYmFzZVVybCA9IFwiXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vbGljZW5jZUluZm9gO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIGNvbnN0IGJhZExpY2VuY2UgPSB7XG4gICAgICAgICAgICAgICAgc3RhdHVzOiBcIkZBSUxFRFwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiRlJFRVdBUkVcIixcbiAgICAgICAgICAgICAgICBsaWNlbmNlSW5mbzoge1xuICAgICAgICAgICAgICAgICAgICBsaWNlbmNlSWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICAgICAgICAgICAgICAgIGxpY2VuY2VUeXBlOiBcIjx1bmtub3duPlwiLFxuICAgICAgICAgICAgICAgICAgICBleHBpcnlEYXRlOiB0b2RheSxcbiAgICAgICAgICAgICAgICAgICAgb25QcmVtaXNlU2VydmVySG9zdDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgZXhwaXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdXNlckNvbXBhbnk6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHVzZXJFbWFpbDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgdXNlck5hbWU6IFwiXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJhZExpY2VuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBqc29uID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICByZXR1cm4ganNvbjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlY2xhcmVMaWNlbmNlV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmxpY2VuY2VXaWRnZXRcIiwge1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWN0TGluayA9IGA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tXCIgc3ViamVjdD1cIkBvcGN1YS9mb3Itbm9kZS1yZWQgc3VwcG9ydCByZXF1ZXN0XCI+bWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tPC9hPmA7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2Vic2l0ZUxpbmsgPSBgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnN0ZXJmaXZlLmNvbS9vcGN1YS9mb3Itbm9kZS1yZWRcIiB0YXJnZXQ94oCdX2JsYW5r4oCdPlN0ZXJmaXZlJ3Mgd2Vic2l0ZSA8L2E+YDtcbiAgICAgICAgICAgICAgICBmZXRjaExpY2VuY2VJbmZvKHRoYXQuYmFzZVVybClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGljb24gPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbXNnID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWNlbmNlVHlwZSA9IExpY2VuY2VUeXBlW2pzb24udHlwZV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IExpY2VuY2VTdGF0dXNbanNvbi5zdGF0dXNdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlZmZlY3RpdmVMaWNlbmNlVHlwZSA9IGdldEVmZmVjdGl2ZUxpY2VuY2VUeXBlKGxpY2VuY2VUeXBlLCBzdGF0dXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXlzTGVmdCA9IGdldERheXNMZWZ0KCgoX2EgPSBqc29uLmxpY2VuY2VJbmZvKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZXhwaXJ5RGF0ZSkgPyBuZXcgRGF0ZShqc29uLmxpY2VuY2VJbmZvLmV4cGlyeURhdGUpIDogdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaG91cnNMZWZ0ID0gZ2V0SG91cnNMZWZ0KCgoX2IgPSBqc29uLmxpY2VuY2VJbmZvKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZXhwaXJ5RGF0ZSkgPyBuZXcgRGF0ZShqc29uLmxpY2VuY2VJbmZvLmV4cGlyeURhdGUpIDogdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGRheXNMZWZ0ID09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgID8gKGhvdXJzTGVmdCA+IDEwID8gXCJ0b2RheVwiIDogYGluICR7aG91cnNMZWZ0fSBob3Vyc2ApXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChkYXlzTGVmdCA9PSAxID8gXCJ0b21vcnJvd1wiIDogYGluICR7ZGF5c0xlZnR9IGRheXNgKTtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgTGljZW5jZVN0YXR1cy5BVVRIT1JJWkVEOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWNoZWNrLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZWZmZWN0aXZlTGljZW5jZVR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBMaWNlbmNlVHlwZS5UUklBTDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJUcmlhbCBsaWNlbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFRoZSBUcmlhbCB3aWxsIGV4cGlyZSAke2V9LlxcbkJ1eSBvbmxpbmUgYW5kIHZpc2l0ICR7d2Vic2l0ZUxpbmt9IHRvIGFjcXVpcmUgYSBsaWNlbnNlLmA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIExpY2VuY2VUeXBlLlBST0ZFU1NJT05BTDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IGBZb3VyIGxpY2VuY2UgaXMgdmFsaWQuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXlzTGVmdCA8IDkwICYmIGRheXNMZWZ0ID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgKz0gYFxcbkl0IHdpbGwgZXhwaXJlICR7ZX0uYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRldGFpbHMgPSBgJHt3ZWJzaXRlTGlua308YnI+JHtjb250YWN0TGlua31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGpzb24ubGljZW5jZUluZm8ubGljZW5jZVR5cGUgKyBcIiAtIFwiICsgKGpzb24ubGljZW5jZUluZm8ub25QcmVtaXNlU2VydmVySG9zdCB8fCBcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIExpY2VuY2VUeXBlLkZSRUVXQVJFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJGcmVld2FyZSBsaWNlbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFRoaXMgaXMgYSBmcmVld2FyZSBsaWNlbmNlLCBhbmQgaGF2ZSBzb21lIGxpbWl0YXRpb25zLlxcbiR7d2Vic2l0ZUxpbmt9IGZvciBtb3JlIGluZm9ybWF0aW9uLmA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIExpY2VuY2VTdGF0dXMuRVhQSVJFRDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1jYWxlbmRhci10aW1lXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChsaWNlbmNlVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIExpY2VuY2VUeXBlLlRSSUFMOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJGcmVld2FyZSA6IChUcmlhbCBsaWNlbmNlIGV4cGlyZWQpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFlvdXIgdHJpYWwgbGljZW5zZSBoYXMgZXhwaXJlZC5cXG5QbGVhc2UgdmlzaXQgJHt3ZWJzaXRlTGlua30gdG8gYWNxdWlyZSBhIGxpY2Vuc2UuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIExpY2VuY2VUeXBlLkZSRUVXQVJFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJGcmVld2FyZSBsaWNlbmNlIGV4cGlyZWRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgWW91ciBmcmVld2FyZSBsaWNlbnNlIGhhcyBleHBpcmVkLlxcbiR7d2Vic2l0ZUxpbmt9IGZvciBtb3JlIGluZm9ybWF0aW9uLmA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBMaWNlbmNlVHlwZS5QUk9GRVNTSU9OQUw6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIllvdXIgbGljZW5jZSBoYXMgZXhwaXJlZCAtIEZyZWV3YXJlIG1vZGUgYWN0aXZhdGVkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFlvdXIgbGljZW5zZSBoYXMgZXhwaXJlZC5cXG5QbGVhc2UgY29udGFjdCBvdXIgICR7Y29udGFjdExpbmt9IG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIExpY2VuY2VTdGF0dXMuRkFJTEVEOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1leGNsYW1hdGlvbi1jaXJjbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIllvdXIgbGljZW5zZSBpcyBjdXJyZW50bHkgaW52YWxpZC5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFBsZWFzZSBjb250YWN0ICR7Y29udGFjdExpbmt9IG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuzIBgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8qKiAqL1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQudGV4dChcIkxpY2VuY2UgXCIgKyBKU09OLnN0cmluZ2lmeShqc29uKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1cIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWljb25cIikuYXBwZW5kKCQoXCI8aT5cIikuYWRkQ2xhc3MoaWNvbikpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtbXNnXCIpLnRleHQobXNnKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1kZXRhaWxzXCIpLmFwcGVuZChkZXRhaWxzKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT09IExpY2VuY2VTdGF0dXMuRVhQSVJFRCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID09PSBMaWNlbmNlU3RhdHVzLkZBSUxFRCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgZWZmZWN0aXZlTGljZW5jZVR5cGUgPT09IExpY2VuY2VUeXBlLkZSRUVXQVJFIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBlZmZlY3RpdmVMaWNlbmNlVHlwZSA9PT0gTGljZW5jZVR5cGUuVFJJQUwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaWJlQnV0dG9uID0gJChcIjxidXR0b24vPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwiaWRcIiwgXCJzdWJzY3JpYmUtYnV0dG9uXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJjbGFzc1wiLCBcImJ0biBidG4tcHJpbWFyeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwic3R5bGVcIiwgXCJtYXJnaW4tdG9wOiAyMHB4O1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi50ZXh0KFwiU3Vic2NyaWJlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdWJzY3JpYmVCdXR0b24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgc2NyaXB0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBcImh0dHBzOi8vanMuc3RyaXBlLmNvbS92My9wcmljaW5nLXRhYmxlLmpzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzY3JpcHQgZWxlbWVudCB0byB0aGUgaGVhZCAob3IgYm9keSkgb2YgdGhlIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiaGVhZFwiKS5hcHBlbmQoc2NyaXB0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmlwZVByaWNpbmdUYWJsZSA9ICQoXCI8c3RyaXBlLXByaWNpbmctdGFibGUvPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwcmljaW5nLXRhYmxlLWlkXCIsIHByaWNpbmdUYWJsZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwicHVibGlzaGFibGUta2V5XCIsIHB1Ymxpc2hhYmxlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCU7bWF4LWhlaWdodDogMTAwJTtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdHJpcGVQcmljaW5nVGFibGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXR0cihcInN0eWxlXCIsIFwiaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGluc3RhbGxGZWVkYmFja1dpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLy8gcmV0dXJuO1xuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgY29uc3QgdHJheUNvbnRlbnQgPSAkKFwiLnJlZC11aS10cmF5LWJvZHlcIik7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbEZlZWRiYWNrV2lkZ2V0IFwiLCB0cmF5Q29udGVudC5sZW5ndGgpO1xuICAgICAgICBpZiAodHJheUNvbnRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxpbmcgaWZyYW1lXCIpO1xuICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBpZnJhbWUgZWxlbWVudFxuICAgICAgICAgICAgY29uc3QgaWZyYW1lID0gJChcIjxpZnJhbWU+PC9pZnJhbWU+XCIsIHtcbiAgICAgICAgICAgICAgICBzcmM6IFwiL29wY3VhLWZvci1ub2RlLXJlZC9zdXBwb3J0LWZyYW1lLmh0bWxcIixcbiAgICAgICAgICAgICAgICBzY3JvbGxpbmc6IFwibm9cIixcbiAgICAgICAgICAgICAgICBzdHlsZTogXCJiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O292ZXJmbG93OmhpZGRlbjtib3JkZXI6M3B4XCIsXG4gICAgICAgICAgICAgICAgYWxsb3d0cmFuc3BhcmVuY3k6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIHdpZHRoOiBcIjE4MHB4XCIsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcIjMwcHhcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBpZnJhbWUgdG8gdGhlIGZlZWRiYWNrIGVsZW1lbnRcbiAgICAgICAgICAgIHRyYXlDb250ZW50LmFwcGVuZChpZnJhbWUpO1xuICAgICAgICAgICAgLy8gUG9zaXRpb24gdGhlIGZlZWRiYWNrIGVsZW1lbnQgYXQgdGhlIGJvdHRvbSByaWdodCBvZiB0aGUgdHJheSBjb250ZW50XG4gICAgICAgICAgICBpZnJhbWUuY3NzKHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBcIjIwcHhcIixcbiAgICAgICAgICAgICAgICBib3R0b206IFwiMTZweFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZGVjbGFyZUxpY2VuY2VXaWRnZXQoKTtcbiAgICBmdW5jdGlvbiBpc1ZhbGlkT1BDX1VBX1VSSShzdHIpIHtcbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHVybCA9IG5ldyBVUkwoc3RyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoXykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cmwucHJvdG9jb2wgPT09IFwib3BjLnRjcDpcIjtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMgPSB7XG4gICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiAxMDAwLFxuICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogMTAsIC8vIGV2ZXJ5IDEwIHNlY29uZHNcbiAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiAxMDAwLFxuICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogMCxcbiAgICAgICAgcHJpb3JpdHk6IDEwMCxcbiAgICB9O1xuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1FbmRwb2ludDJcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJjb25maWdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm9wY3VhIGVuZHBvaW50XCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzL1VBL1NhbXBsZVNlcnZlclwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiBpc1ZhbGlkT1BDX1VBX1VSSSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBTZWN1cml0eSBNb2RlXG4gICAgICAgICAgICBzZWN1cml0eU1vZGU6IHsgdmFsdWU6IFwiTm9uZVwiIH0sXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIk5vbmVcIixcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogeyB2YWx1ZTogXCJBbm9ueW1vdXNcIiB9LFxuICAgICAgICAgICAgcGtpTmFtZTogeyB2YWx1ZTogXCJcIiwgdmFsaWRhdGU6ICh2YWx1ZSkgPT4gKCF2YWx1ZSB8fCB2YWx1ZS5tYXRjaCgvWzAtOWEtekEtWl0qLykgPyB0cnVlIDogZmFsc2UpIH0sXG4gICAgICAgICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIFVzZXJOYW1lXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgLy8gICAgIHVzZXJOYW1lOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgLy8gICAgIHBhc3N3b3JkOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgICAgIC8vICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIENlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAgICAgdXNlckNlcnRpZmljYXRlOiB7IHZhbHVicm93c2VQYXRoZTogXCJcIiwgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIC8vICAgICB1c2VyUHJpdmF0ZWtleTogeyB2YWx1ZTogXCJcIiAsIHR5cGU6IFwicGFzc3dvcmRcIn0sXG4gICAgICAgICAgICAvLyB9IGFzIGFueSAvKiBjaXJjdW12ZW50IGEgYnVnIGluIG5vZGUtcmVkICovLFxuICAgICAgICAgICAgLy8gdXNlcm5hbWVcbiAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogeyB2YWx1ZTogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogeyB2YWx1ZTogMSwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBtYXhNZXNzYWdlU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sIC8vIHNob3VsZCBiZSBhdCBsZWFzdCA4MTkyXG4gICAgICAgICAgICByZWNlaXZlQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzZW5kQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2xvdyBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiAzLCAvLyBldmVyeSAxNSBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiA1MDAwLCAvL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRmFzdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogNDAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogNTAsIC8vIGV2ZXJ5IDEyLjUgc2Vjb25kc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogMjUwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlczoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcInVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VBL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcImRpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL0RJL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgdXNlck5hbWU6IHsgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiB7IHR5cGU6IFwicGFzc3dvcmRcIiB9LFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiB7IHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogeyB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgdGhpcy5lbmRwb2ludCB8fCBcImludmFsaWQgZW5kcG9pbnRcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eVBvbGljeSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlQb2xpY3lcIik7XG4gICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlNb2RlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIik7XG4gICAgICAgICAgICBpZiAoX3NlY3VyaXR5UG9saWN5LnZhbCgpID09PSBcIk5vbmVcIikge1xuICAgICAgICAgICAgICAgIF9zZWN1cml0eU1vZGUudGV4dChcIk5vbmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIHN1YnNjcmlwdGlvbiBkYXRhICkpKSkpKSkpKSlcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25JdGVtcyA9ICQoXCIjc3Vic2NyaXB0aW9ucy1jb250YWluZXJcIikuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG4gPSAoeCkgPT4geDtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25JdGVtcy5lYWNoKGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInNcIiArIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZS5maW5kKFwiLmlucHV0LW5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6ICEhZS5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogISFlLmZpbmQoXCIuaW5wdXQtcHVibGlzaGluZ0VuYWJsZWRcIikuaXMoXCI6Y2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiBuKGUuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRMaWZldGltZUNvdW50XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogbihlLmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiBuKGUuZmluZChcIi5pbnB1dC1wcmlvcml0eVwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSB0byBiZSB0cnVlXG4gICAgICAgICAgICAgICAgICAgIGEucGFyYW1ldGVycy5wdWJsaXNoaW5nRW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmlzRGVmYXVsdCAmJiBhLmlkID09PSBcInMwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSBkZWZhdWx0IHN1YnNjcmlwdGlvbiBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBhLm5hbWUgPSBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcy5wdXNoKGEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIG5hbWVzcGFjZSBhbGlhcyBkYXRhICkpKSkpKSkpKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIGFsaWFzZXNcbiAgICAgICAgICAgICAgICBjb25zdCBhbGlhc0l0ZW1zID0gJChcIiNlZGl0YWJsZS1saXN0LWFsaWFzZXMtY29udGFpbmVyXCIpLmVkaXRhYmxlTGlzdChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IFtdO1xuICAgICAgICAgICAgICAgIGFsaWFzSXRlbXMuZWFjaChmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZDogXCJzXCIgKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZVVyaTogZS5maW5kKFwiLm5vZGUtaW5wdXQtYWxpYXMtbmFtZXNwYWNlLXVyaVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBlLmZpbmQoXCIubm9kZS1pbnB1dC1hbGlhcy1hbGlhc1wiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLnB1c2goYSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5uYW1lc3BhY2VBbGlhc2VzID0gdG1wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBpbnN0YWxsRmVlZGJhY2tXaWRnZXQoKTtcbiAgICAgICAgICAgIGNvbnN0IHRhYnMgPSBSRUQudGFicy5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIGlkOiBcIm5vZGUtY29uZmlnLWVuZHBvaW50LXRhYnNcIixcbiAgICAgICAgICAgICAgICBvbmNoYW5nZTogZnVuY3Rpb24gKHRhYikge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWVuZHBvaW50LXRhYnMtY29udGVudFwiKS5jaGlsZHJlbigpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNcIiArIHRhYi5pZCkuc2hvdygpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRhYnMuYWRkVGFiKHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbmRwb2ludC10YWItY29ubmVjdGlvblwiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIkNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgdGFicy5hZGRUYWIoe1xuICAgICAgICAgICAgICAgIGlkOiBcImVuZHBvaW50LXRhYi1zdWJzY3JpcHRpb25zXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiU3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICAgICAgfSwgMSk7XG4gICAgICAgICAgICB0YWJzLmFkZFRhYih7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW5kcG9pbnQtdGFiLW5hbWVzcGFjZS1hbGlhc2VzXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiTmFtZXNwYWNlIEFsaWFzZXNcIixcbiAgICAgICAgICAgIH0sIDIpO1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdGFicy5yZXNpemUoKTtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBTZWN1cml0eSBjb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVTZWN1cml0eUNvbnRyb2wgPSAoc2VjdXJpdHlNb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc2VjdXJpdHlNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIG51bGw6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJOb25lXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJTaWduXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiU2lnbkFuZEVuY3J5cHRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwID0gJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3AudmFsKCkgPT09IFwiTm9uZVwiIHx8IHNwLnZhbCgpID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcC52YWwoXCJCYXNpYzI1NlNoYTI1NlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiLnNlY3Rpb24tc2VjdXJpdHlQb2xpY3lcIikuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnZhbGlkIHNlY3VyaXR5TW9kZSBcIiArIHNlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHVwZGF0ZVNlY3VyaXR5Q29udHJvbChub2RlLnNlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgX3NlY3VyaXR5TW9kZSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlNb2RlXCIpO1xuICAgICAgICAgICAgICAgIF9zZWN1cml0eU1vZGUub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWN1cml0eU1vZGUgPSBfc2VjdXJpdHlNb2RlLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTZWN1cml0eUNvbnRyb2wobmV3U2VjdXJpdHlNb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxpY2VuY2VXaWRnZXQgPSAkKFwiI2xpY2VuY2VXaWRnZXRcIik7XG4gICAgICAgICAgICBsaWNlbmNlV2lkZ2V0LmxpY2VuY2VXaWRnZXQoe1xuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgdGhlIFVzZXIgSWRlbnRpdHkgQ29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXV0aFJvdyA9ICQoXCIuc2VjdGlvbi11c2VySWRlbnRpdHlUeXBlLVVzZXJOYW1lXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlcnRSb3cgPSAkKFwiLnNlY3Rpb24tdXNlcklkZW50aXR5VHlwZS1DZXJ0aWZpY2F0ZVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVJZGVudGl0eUNvbnRyb2xzID0gKHVzZXJJZGVudGl0eVR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSA9IHVzZXJJZGVudGl0eVR5cGUgfHwgXCJBbm9ueW1vdXNcIjtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh1c2VySWRlbnRpdHlUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQW5vbnltb3VzXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyTmFtZVwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wYXNzd29yZFwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVXNlck5hbWVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJDZXJ0aWZpY2F0ZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImludmFsaWQgdXNlcklkZW50aXR5VHlwZSBcIiArIHVzZXJJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVJZGVudGl0eUNvbnRyb2xzKG5vZGUudXNlcklkZW50aXR5VHlwZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgX3VzZXJJZGVudGl0eVR5cGUgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJJZGVudGl0eVR5cGVcIik7XG4gICAgICAgICAgICAgICAgX3VzZXJJZGVudGl0eVR5cGUub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdJZGVudGl0eVR5cGUgPSBfdXNlcklkZW50aXR5VHlwZS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlSWRlbnRpdHlDb250cm9scyhuZXdJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBhZHZhbmNlZCBjb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICQoXCIjdG9nZ2xlQWR2YW5jZWRTZWN0aW9uXCIpLnByb3AoXCJjaGVja2VkXCIsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAkKFwiI3RvZ2dsZUFkdmFuY2VkU2VjdGlvblwiKS5vbihcImNoYW5nZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZCwgc2hvdyB0aGUgZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBoaWRlIGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB1c2VUcmFuc3BvcnRTZXR0aW5nID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VUcmFuc3BvcnRcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICBpZiAodXNlVHJhbnNwb3J0U2V0dGluZykge1xuICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5zaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuaGlkZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VUcmFuc3BvcnRcIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLCBzaG93IHRoZSBkaXZcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgaGlkZSBpdFxuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGNoZWNrQ2VydGlmaWNhdGVcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIiNjaGVja0NlcnRpZmljYXRlXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goXCIvb3BjdWEtZm9yLW5vZGUtcmVkL2NsaWVudF9jZXJ0aWZpY2F0ZS5qc29uXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmZvID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBKU09OLnN0cmluZ2lmeShpbmZvLCBudWxsLCBcIiBcIik7XG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KHQpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgY29uZmlnIGJ1dHRvblxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICQoXCIjZ290by1jb25maWdcIikub24oXCJjbGlja1wiLCAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oXCIvb3BjdWEtZm9yLW5vZGUtcmVkL2NvbmZpZ1wiLCBcIl9ibGFua1wiKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGV4dHJhY3RFbmRwb2ludERhdGEoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBub2RlLmlkLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1lbmRwb2ludFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1uYW1lXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBwa2lOYW1lOiAoX2EgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBraU5hbWVcIikpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlQb2xpY3lcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlcklkZW50aXR5VHlwZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlck5hbWU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlckNlcnRpZmljYXRlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyUHJpdmF0ZWtleVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgLy8vIG5vdCB0ZXN0ZWQgeWV0IC4uLjpcbiAgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGU6ICQoXCIjbm9kZS1pbnB1dC1jZXJ0aWZpY2F0ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlVHJhbnNwb3J0OiAkKFwiI25vZGUtaW5wdXQtdXNlVHJhbnNwb3J0XCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICBtYXhDaHVua0NvdW50OiAkKFwiI25vZGUtaW5wdXQtbWF4Q2h1bmtDb3VudFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbWF4TWVzc2FnZVNpemU6ICQoXCIjbm9kZS1pbnB1dC1tYXhNZXNzYWdlU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZUJ1ZmZlclNpemU6ICQoXCIjbm9kZS1pbnB1dC1yZWNlaXZlQnVmZmVyU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgc2VuZEJ1ZmZlclNpemU6ICQoXCIjbm9kZS1pbnB1dC1zZW5kQnVmZmVyU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSB0aGUgVGVzdCBidXR0b25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWFuYWdlQVBJQ2FsbChcImNvbm5lY3Rpb25cIiwgJChcIiN0ZXN0LWNvbm5lY3Rpb25cIiksICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHVybDogXCIvb3BjdWEtZm9yLW5vZGUtcmVkL3Rlc3QtY29ubmVjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IGV4dHJhY3RFbmRwb2ludERhdGEoKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSwgKCkgPT4geyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyAgSW5zdGFsbCBzdWJzY3JpcHRpb25zIExpc3QgbWFuYWdlbWVudFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNpemVUb3BpY3MgPSAodG9waWMsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdXaWR0aCA9IHRvcGljLndpZHRoKCkgfHwgMTAwO1xuICAgICAgICAgICAgICAgICAgICB0b3BpYy5maW5kKFwibGFiZWxcIikudHlwZWRJbnB1dChcIndpZHRoXCIsIG5ld1dpZHRoIC0gMTUpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uTGlzdCA9ICQoXCIjc3Vic2NyaXB0aW9ucy1jb250YWluZXJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IFwibWluLWhlaWdodFwiOiBcIjE1MHB4XCIsIFwibWluLXdpZHRoXCI6IFwiMjYwcHhcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXRlbTogKGNvbnRhaW5lciwgaW5kZXgsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IF9kYXRhID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSAkKFwiI3N1YnNjcmlwdGlvbi10ZW1wbGF0ZVwiKS5jbG9uZSgpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHIoXCJpZFwiKS5yZW1vdmVDbGFzcyhcImhpZGVcIikucmVtb3ZlQ2xhc3MoXCJ0ZW1wbGF0ZVwiKS5hdHRyKFwiZGF0YS1pXCIsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1uYW1lXCIpLnZhbChfZGF0YS5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWxcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5yZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTGlmZXRpbWVDb3VudFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5yZXF1ZXN0ZWRMaWZldGltZUNvdW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1tYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5tYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaCB8fCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1wcmlvcml0eVwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5wcmlvcml0eSB8fCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5zdWJzY3JpcHRpb24taWRcIikudGV4dChcIlwiICsgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9kYXRhLmlzRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1uYW1lXCIpLnByb3AoXCJyZWFkb25seVwiLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikucHJvcChcImNoZWNrZWRcIiwgX2RhdGEuaXNEZWZhdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGRlZmF1bHQgc3Vic2NyaXB0aW9uIGNhbm5vdCBiZSBhY2NpZGVudGFsbHkgcmVtb3ZlZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9kYXRhLmlzRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5maW5kKFwiLnJlZC11aS1lZGl0YWJsZUxpc3QtaXRlbS1yZW1vdmVcIikuYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWxlbWVudC5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS5wcm9wKFwiZGlzYWJsZWRcIiwgdHJ1ZSksIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgLy8gc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlbW92YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgcmVzaXplSXRlbTogcmVzaXplVG9waWNzLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGxTdWJzY3JpcHRpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gbm9kZS5zdWJzY3JpcHRpb25zIHx8IFtdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3Vic2NyaXB0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZCBtaXNzaW5nIGRlZmF1bHQgc3Vic2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInMxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJEZWZhdWx0IFN1YnNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U3Vic2NyaXB0aW9uUGFyYW1ldGVycyksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25MaXN0LmVkaXRhYmxlTGlzdChcImVtcHR5XCIpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzdWJzY3JpcHRpb24uaXNEZWZhdWx0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25MaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZmlsbFN1YnNjcmlwdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyAgSW5zdGFsbCBuYW1lc3BhY2UgYWxpYXMgTGlzdCBtYW5hZ2VtZW50XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFkZEFsaWFzQ3RybChjb250YWluZXIsIGluZGV4LCBhcmcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGFyZztcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm93ID0gJCgnPGRpdiBjbGFzcz1cImFsaWFzLWVudHJ5XCI+JykuYXBwZW5kVG8oY29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29udGFpbmVyLmRhdGEoXCJkYXRhXCIsIGFyZyk7XG4gICAgICAgICAgICAgICAgICAgICQoXCI8aW5wdXQvPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJub2RlLWlucHV0LWFsaWFzLWluZGV4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmFsaWFzIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNSVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKHJvdylcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoaW5kZXgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCI8aW5wdXQvPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJub2RlLWlucHV0LWFsaWFzLWFsaWFzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmFsaWFzIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiMjUlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhyb3cpXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGEuYWxpYXMpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPGlucHV0Lz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibm9kZS1pbnB1dC1hbGlhcy1uYW1lc3BhY2UtdXJpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLm5hbWVzcGFjZVVyaSB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjcwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8ocm93KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhLm5hbWVzcGFjZVVyaSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGFsaWFzZXNMaXN0ID0gJChcIiNlZGl0YWJsZS1saXN0LWFsaWFzZXMtY29udGFpbmVyXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyBcIm1pbi1oZWlnaHRcIjogXCIxNTBweFwiLCBcIm1pbi13aWR0aFwiOiBcIjI2MHB4XCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHJlbW92YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZEFsaWFzQ3RybChjb250YWluZXIsIGksIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGZpbGxOYW1lc3BhY2VBbGlhc2VzKCkge1xuICAgICAgICAgICAgICAgICAgICBhbGlhc2VzTGlzdC5lZGl0YWJsZUxpc3QoXCJpdGVtc1wiKTtcbiAgICAgICAgICAgICAgICAgICAgYWxpYXNlc0xpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYWxpYXMgb2Ygbm9kZS5uYW1lc3BhY2VBbGlhc2VzIHx8IFtdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzTGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIGFsaWFzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBCdXR0b25cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjZXh0cmFjdC1hbGlhc2VzXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IGV4dHJhY3RFbmRwb2ludERhdGEoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VBbGlhc2VzOiBub2RlLm5hbWVzcGFjZUFsaWFzZXMgfHwgW10sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKFwiL29wY3VhLWZvci1ub2RlLXJlZC9leHRyYWN0LW5hbWVzcGFjZS1hbGlhc2VzXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShvcHRpb25zKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5mbyA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGluZm8ubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibmFtZXNwYWNlQWxpYXNlc1wiLCBuYW1lc3BhY2VBbGlhc2VzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG5hbWVzcGFjZUFsaWFzZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5uYW1lc3BhY2VBbGlhc2VzID0gbmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsTmFtZXNwYWNlQWxpYXNlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUubmFtZXNwYWNlQWxpYXNlcyA9IG5vZGUubmFtZXNwYWNlQWxpYXNlcyB8fCBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXM6IFwidWFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VBL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzV2VsbEtub3duOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZpbGxOYW1lc3BhY2VBbGlhc2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Endpoint2">
|
11
11
|
<div id="licenceWidget"></div>
|