@opcua/for-node-red 3.2.0 → 3.3.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/all.js +1 -1
- package/package.json +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -2
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +2 -2
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.html +2 -2
- package/source/OpcUa-Client2-HistoryRead/OpcUa-Client2-HistoryRead.html +2 -2
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +2 -2
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +2 -2
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +2 -2
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +2 -2
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +2 -2
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
function _0x5612(_0x3c11b1,_0x3fe663){const _0xb35eef=_0xb35e();return _0x5612=function(_0x561299,_0x238ab7){_0x561299=_0x561299-0xcb;let _0x1c245f=_0xb35eef[_0x561299];return _0x1c245f;},_0x5612(_0x3c11b1,_0x3fe663);}function _0xb35e(){const _0x1108a2=['UserName','licence-widget-','#node-config-input-name','subscriptions','.input-priority','readonly','fa\x20fa-calendar-time','publishable-key','Subscribe','<stripe-pricing-table/>','assign','length','/opcua-for-node-red/client_certificate.json','value','extra','/opcua-for-node-red','#node-config-input-useTransport','<button/>','items','clone','Please\x20contact\x20','throw','https://js.stripe.com/v3/pricing-table.js','replace','height:\x20100%\x20!important;','\x20days.\x0aBuy\x20online\x20and\x20visit\x20','licence-widget-msg','namespaceAliases','#node-config-input-userIdentityType','join','result','toISOString','FAILED','style','\x20It\x20will\x20expire\x20in\x20','OpcUa-Endpoint2','/licenceInfo','script','EXPIRED','name','#extract-aliases','then','pricing-table-id','connection','click','node-input-alias-alias','push','.input-requestedLifetimeCount','addItem','protocol','Your\x20licence\x20is\x20valid.','#node-config-input-userName','head','widget','.input-requestedMaxKeepAliveCount','map','#node-input-maxMessageSize','catch','maxNotificationsPerPublish','#subscriptions-container','#section-TransportSettings','#node-config-input-userPrivatekey','Your\x20license\x20is\x20currently\x20invalid.','#node-config-input-userCertificate','securityMode','opc.tcp:','error','isDefault','.section-userIdentityType-Certificate','children','done','-pending','.section-securityPolicy','3850TppHJU','addTab','AUTHORIZED','opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','status','Your\x20license\x20has\x20expired.\x20Please\x20contact\x20our\x20support\x20team\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.','pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW','None','open','SignAndEncrypt','disabled','7LqSAWm','25%','hide','height:\x20100%;max-height:\x20100%;','each','function','alias','async','#node-input-maxChunkCount','stringify','<input/>','find','2711898AkoUhC','editableList','next',':checked','opcua\x20endpoint','#node-config-input-password','http://opcfoundation.org/UA/','invalid\x20userIdentityType\x20','fa\x20fa-check-circle','<div\x20class=\x22alias-entry\x22>','node-config-endpoint-tabs','log','apply','daysLeft','css','<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>','\x20to\x20acquire\x20a\x20license.','<span>','#editable-list-aliases-container','Licence\x20has\x20expired','addClass','/opcua-for-node-red/test-connection','message','.input-isDefault','fetching\x20failed\x20with\x20error','append','Default\x20Subscription','src','Freeware\x20licence','requestedPublishingInterval','onPremiseServerHost','#node-input-receiveBufferSize','appendTo','internal\x20error\x20','fa\x20fa-exclamation-circle','isArray','userIdentityType','\x20days.','split','password','80yLIihP','#subscription-template','typedInput','Anonymous','http://opcfoundation.org/DI/','json','requestedMaxKeepAliveCount','2963586WzEKgw','371778eivicX','checked','5621672FcSESq','create','sterfive.licenceWidget','text','show','auto','6161571vLZVpa','namespaceUri','licence-widget-details','TRIAL','Slow\x20Subscription','#section-Advanced','licenceInfo','label','Testing\x20Connection\x20...','class','empty','html','licence-widget','70%','#checkCertificate','node-input-alias-index','#node-input-sendBufferSize','endpoint-tab-namespace-aliases','POST','.input-name','parameters','template','#goto-config','PROFESSIONAL','licenceWidget','prop','invalid\x20endpoint','priority','#node-input-certificate','#node-config-input-securityMode','76934fUeIhG','.input-maxNotificationsPerPublish','data-i','-messages','-failure','type','node-input-alias-namespace-uri','#node-input-useTransport','<i>','#node-config-endpoint-tabs-content','removeClass','endpoint-tab-subscriptions','statusText','width','endpoint-tab-connection','239335rvuCvo','val','.input-requestedPublishingInterval','SuppressedError','nodes','prctbl_1OJt49BCNccbzsVzkaANOgFL','<br>','baseUrl','FREEWARE','element','subscribe-button','application/json','.subscription-id','attr','260px','change','#toggleAdvancedSection','licenceType','btn\x20btn-primary','suppressed','Certificate','/opcua-for-node-red/extract-namespace-aliases','removeAttr','1JVpnxy'];_0xb35e=function(){return _0x1108a2;};return _0xb35e();}(function(_0x2c714c,_0xbdf8af){const _0x2de1b2=_0x5612,_0xa763f8=_0x2c714c();while(!![]){try{const _0x97f4e4=parseInt(_0x2de1b2(0x197))/0x1*(parseInt(_0x2de1b2(0x14b))/0x2)+-parseInt(_0x2de1b2(0x11b))/0x3+-parseInt(_0x2de1b2(0x143))/0x4*(parseInt(_0x2de1b2(0x180))/0x5)+parseInt(_0x2de1b2(0x14a))/0x6*(-parseInt(_0x2de1b2(0x10f))/0x7)+parseInt(_0x2de1b2(0x14d))/0x8+-parseInt(_0x2de1b2(0x153))/0x9+parseInt(_0x2de1b2(0x104))/0xa*(parseInt(_0x2de1b2(0x171))/0xb);if(_0x97f4e4===_0xbdf8af)break;else _0xa763f8['push'](_0xa763f8['shift']());}catch(_0x217146){_0xa763f8['push'](_0xa763f8['shift']());}}}(_0xb35e,0x842f8),(function(){'use strict';const _0x5ee47c=_0x5612;function _0x864efe(_0x3d7794,_0xfa9692,_0x9ea25b,_0x2660b9){function _0x13ea85(_0x2a84b7){return _0x2a84b7 instanceof _0x9ea25b?_0x2a84b7:new _0x9ea25b(function(_0x121613){_0x121613(_0x2a84b7);});}return new(_0x9ea25b||(_0x9ea25b=Promise))(function(_0x4ed5da,_0x36d1cd){const _0x4474e3=_0x5612;function _0x1b0764(_0x11353a){const _0x38b9f4=_0x5612;try{_0x12558c(_0x2660b9[_0x38b9f4(0x11d)](_0x11353a));}catch(_0x3dfd46){_0x36d1cd(_0x3dfd46);}}function _0x210c17(_0x543115){const _0x17b73a=_0x5612;try{_0x12558c(_0x2660b9[_0x17b73a(0xd0)](_0x543115));}catch(_0x302d8d){_0x36d1cd(_0x302d8d);}}function _0x12558c(_0x53c376){const _0x4dca7b=_0x5612;_0x53c376[_0x4dca7b(0x101)]?_0x4ed5da(_0x53c376[_0x4dca7b(0x1a5)]):_0x13ea85(_0x53c376[_0x4dca7b(0x1a5)])['then'](_0x1b0764,_0x210c17);}_0x12558c((_0x2660b9=_0x2660b9[_0x4474e3(0x127)](_0x3d7794,_0xfa9692||[]))[_0x4474e3(0x11d)]());});}typeof SuppressedError===_0x5ee47c(0x114)?SuppressedError:function(_0xe5a5f,_0x2fcfb7,_0x3c2b72){const _0x86fe2c=_0x5ee47c;var _0x50f6dc=new Error(_0x3c2b72);return _0x50f6dc[_0x86fe2c(0xe2)]=_0x86fe2c(0x183),_0x50f6dc[_0x86fe2c(0xfd)]=_0xe5a5f,_0x50f6dc[_0x86fe2c(0x193)]=_0x2fcfb7,_0x50f6dc;};function _0x406830(_0x3b383e,_0x2c5fa4,_0x137b6e,_0x328754){const _0x40f218=_0x5ee47c,_0x10f61d=$('#'+_0x3b383e+'-success'),_0x16a03d=$('#'+_0x3b383e+_0x40f218(0x175)),_0x68517b=$('#'+_0x3b383e+_0x40f218(0x102)),_0x3f0a94=$('#'+_0x3b383e+_0x40f218(0x174));let _0x20cb40=![];_0x10f61d[_0x40f218(0x111)](),_0x16a03d[_0x40f218(0x111)](),_0x68517b[_0x40f218(0x111)](),_0x2c5fa4['on']('click',()=>{const _0x51bc0a=_0x40f218;if(_0x20cb40)return;_0x20cb40=!![],_0x68517b[_0x51bc0a(0x17b)]('hide'),_0x68517b[_0x51bc0a(0x15e)](_0x51bc0a(0x15b)),_0x10f61d['addClass']('hide'),_0x16a03d['addClass']('hide'),_0x3f0a94[_0x51bc0a(0x15e)]('');const {body:_0x236c2d,url:_0x53d025}=_0x137b6e();fetch(_0x53d025,{'method':'POST','headers':{'Content-Type':_0x51bc0a(0x18b)},'body':JSON['stringify'](_0x236c2d)})[_0x51bc0a(0xe4)](_0x124da3=>_0x124da3[_0x51bc0a(0x148)]())['then'](_0x540fd0=>{const _0x230b02=_0x51bc0a;_0x20cb40=![],_0x68517b[_0x230b02(0x111)](),console['log'](JSON['stringify'](_0x540fd0,null,'\x20'));if(_0x540fd0[_0x230b02(0xd9)]==='ok')_0x10f61d['removeClass']('hide'),_0x16a03d[_0x230b02(0x12f)](_0x230b02(0x111)),_0x3f0a94[_0x230b02(0x15e)](_0x540fd0['message'][_0x230b02(0xd2)]('\x0a',_0x230b02(0x186)));else{const _0x24e75e=_0x19bc52=>!_0x19bc52?'':_0x19bc52[_0x230b02(0x141)]('\x0a')[_0x230b02(0xf2)](_0x3f0740=>'<p>'+_0x3f0740+'</p>')[_0x230b02(0xd8)]('\x0a'),_0x5df184=_0x15bb30=>Array[_0x230b02(0x13e)](_0x15bb30)?_0x15bb30[_0x230b02(0xf2)](_0x24e75e)[_0x230b02(0xd8)]('\x0a'):_0x24e75e(_0x15bb30);_0x10f61d[_0x230b02(0x12f)](_0x230b02(0x111)),_0x16a03d[_0x230b02(0x17b)]('hide'),_0x3f0a94[_0x230b02(0x15e)](_0x5df184(_0x540fd0[_0x230b02(0x131)])+_0x5df184(_0x540fd0[_0x230b02(0x1a6)])),_0x328754(new Error(_0x540fd0['result']),_0x540fd0);}})['catch'](_0xb856f3=>{const _0x50f5ac=_0x51bc0a;_0x20cb40=![],_0x68517b[_0x50f5ac(0x12f)](_0x50f5ac(0x111)),_0x10f61d[_0x50f5ac(0x12f)]('hide'),_0x16a03d[_0x50f5ac(0x17b)](_0x50f5ac(0x111)),_0x3f0a94[_0x50f5ac(0x15e)](_0x50f5ac(0x13c)+_0xb856f3['message']),console[_0x50f5ac(0x126)]('err',_0xb856f3);});});}const _0x49cd19=_0x5ee47c(0x185),_0x2c7267=_0x5ee47c(0x10a);function _0xa80c7a(){return _0x864efe(this,arguments,void 0x0,function*(_0x2a1d68=''){const _0x4488f5=_0x5612,_0x516b51=_0x2a1d68+_0x4488f5(0x1a7),_0x38ae57=_0x516b51+_0x4488f5(0xdf),_0x362b4d=yield fetch(_0x38ae57,{'method':_0x4488f5(0x165),'headers':{'Content-Type':'application/json'}}),_0x4dd8d4=new Date()[_0x4488f5(0xda)]();if(_0x362b4d['status']!==0xc8)return console[_0x4488f5(0x126)](_0x4488f5(0x133),_0x362b4d[_0x4488f5(0x108)],_0x362b4d[_0x4488f5(0x17d)]),{'status':'FAILED','type':_0x4488f5(0x188),'licenceInfo':{'expiryDate':_0x4dd8d4}};const _0x147bd2=yield _0x362b4d['json']();return _0x147bd2;});}const _0x53cf0d=()=>{const _0x203dbf=_0x5ee47c;$[_0x203dbf(0xf0)](_0x203dbf(0x14f),{'options':{'baseUrl':''},'_create'(){const _0x44661f=_0x203dbf,_0x5db218=this,_0x2e0b15=_0x44661f(0x12a),_0x1aaad4='<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>';_0xa80c7a(_0x5db218[_0x44661f(0x187)])[_0x44661f(0xe4)](_0x5d6f3f=>{const _0x4c7541=_0x44661f;let _0xf9a8c7='',_0x3aaf93='',_0x357151='';const _0x28e4b3=_0x5d6f3f[_0x4c7541(0x108)],_0x3fdd54=_0x5d6f3f[_0x4c7541(0x128)];switch(_0x28e4b3){case _0x4c7541(0x106):_0xf9a8c7=_0x4c7541(0x123);switch(_0x5d6f3f[_0x4c7541(0x176)]){case _0x4c7541(0x156):{_0x3aaf93='Trial\x20licence',_0x357151='The\x20Trial\x20will\x20expire\x20in\x20'+_0x3fdd54+_0x4c7541(0xd4)+_0x1aaad4+_0x4c7541(0x12b);break;}case _0x4c7541(0x16a):_0x3aaf93=_0x4c7541(0xed);_0x3fdd54<0x5a&&_0x3fdd54>=0x0&&(_0x3aaf93+=_0x4c7541(0xdd)+_0x3fdd54+_0x4c7541(0x140));_0x357151=_0x5d6f3f[_0x4c7541(0x159)][_0x4c7541(0x191)]+'\x20-\x20'+(_0x5d6f3f[_0x4c7541(0x159)][_0x4c7541(0x139)]||'');break;case _0x4c7541(0x188):_0x3aaf93=_0x4c7541(0x137),_0x357151='This\x20is\x20a\x20freeware\x20licence,\x20and\x20have\x20some\x20limitations.\x0a'+_0x1aaad4+'\x20for\x20more\x20information.';break;}break;case _0x4c7541(0xe1):_0xf9a8c7=_0x4c7541(0x19e),_0x3aaf93=_0x4c7541(0x12e),_0x357151=_0x4c7541(0x109);break;case _0x4c7541(0xdb):default:_0xf9a8c7=_0x4c7541(0x13d),_0x3aaf93=_0x4c7541(0xf9),_0x357151=_0x4c7541(0xcf)+_0x2e0b15+'\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀';break;}this[_0x4c7541(0x189)][_0x4c7541(0x12f)](_0x4c7541(0x15f)),this[_0x4c7541(0x189)][_0x4c7541(0x12f)](_0x4c7541(0x199)+_0x28e4b3),this[_0x4c7541(0x189)][_0x4c7541(0x134)]($(_0x4c7541(0x12c))[_0x4c7541(0x12f)]('licence-widget-icon')[_0x4c7541(0x134)]($(_0x4c7541(0x179))[_0x4c7541(0x12f)](_0xf9a8c7))),this['element']['append']($('<span>')[_0x4c7541(0x12f)](_0x4c7541(0xd5))['text'](_0x3aaf93)),this[_0x4c7541(0x189)][_0x4c7541(0x134)]($('<br>')),this['element']['append']($(_0x4c7541(0x12c))[_0x4c7541(0x12f)](_0x4c7541(0x155))[_0x4c7541(0x134)](_0x357151));if(_0x28e4b3===_0x4c7541(0xe1)||_0x28e4b3===_0x4c7541(0xdb)||_0x5d6f3f[_0x4c7541(0x176)]===_0x4c7541(0x188)||_0x5d6f3f['type']===_0x4c7541(0x156)){const _0x11a0be=$(_0x4c7541(0xcc));_0x11a0be[_0x4c7541(0x18d)]('id',_0x4c7541(0x18a)),_0x11a0be['attr'](_0x4c7541(0x15c),_0x4c7541(0x192)),_0x11a0be[_0x4c7541(0x18d)](_0x4c7541(0xdc),'margin-top:\x2020px;'),_0x11a0be[_0x4c7541(0x150)](_0x4c7541(0x1a0)),this[_0x4c7541(0x189)][_0x4c7541(0x134)](_0x11a0be);const _0x4cd84c=document['createElement'](_0x4c7541(0xe0));_0x4cd84c[_0x4c7541(0x136)]=_0x4c7541(0xd1),_0x4cd84c[_0x4c7541(0x116)]=!![],$(_0x4c7541(0xef))[_0x4c7541(0x134)](_0x4cd84c);const _0x21ed4f=$(_0x4c7541(0x1a1));_0x21ed4f[_0x4c7541(0x18d)](_0x4c7541(0xe5),_0x49cd19),_0x21ed4f[_0x4c7541(0x18d)](_0x4c7541(0x19f),_0x2c7267),_0x21ed4f[_0x4c7541(0x18d)](_0x4c7541(0xdc),_0x4c7541(0x112)),_0x21ed4f[_0x4c7541(0x111)](),this[_0x4c7541(0x189)][_0x4c7541(0x134)](_0x21ed4f),_0x11a0be['on'](_0x4c7541(0xe7),()=>{const _0x427000=_0x4c7541;_0x21ed4f[_0x427000(0x151)](),_0x11a0be[_0x427000(0x111)](),this['element']['attr'](_0x427000(0xdc),_0x427000(0xd3));});}})[_0x44661f(0xf4)](_0x3a8380=>{console['log'](_0x3a8380);});}});};_0x53cf0d();function _0x1516af(_0x47dd01){const _0x13b0a6=_0x5ee47c;let _0xae7e3e;try{_0xae7e3e=new URL(_0x47dd01);}catch(_0x1bf991){return![];}return _0xae7e3e[_0x13b0a6(0xec)]===_0x13b0a6(0xfc);}const _0x208633={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED[_0x5ee47c(0x184)]['registerType'](_0x5ee47c(0xde),{'category':'config','paletteLabel':_0x5ee47c(0x11f),'defaults':{'name':{'value':''},'endpoint':{'value':_0x5ee47c(0x107),'required':!![],'validate':_0x1516af},'securityMode':{'value':_0x5ee47c(0x10b)},'securityPolicy':{'value':_0x5ee47c(0x10b),'validate':_0x32464b=>{if(!_0x32464b)return![];return!![];}},'userIdentityType':{'value':_0x5ee47c(0x146)},'pkiName':{'value':'','validate':_0x2b1a72=>!_0x2b1a72||_0x2b1a72['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':'Default\x20Subscription','isDefault':!![],'parameters':Object['assign']({},_0x208633)},{'id':'s2','name':_0x5ee47c(0x157),'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':_0x5ee47c(0x121),'isWellKnown':!![],'isDefault':!![]},{'alias':'di','namespaceUri':_0x5ee47c(0x147),'isWellKnown':!![],'isDefault':!![]}],'required':![]}},'credentials':{'userName':{'type':_0x5ee47c(0x150)},'password':{'type':_0x5ee47c(0x142)},'userCertificate':{'type':_0x5ee47c(0x150)},'userPrivatekey':{'type':_0x5ee47c(0x142)}},'label':function(){const _0x100f56=_0x5ee47c;return this[_0x100f56(0xe2)]||this['endpoint']||_0x100f56(0x16d);},'oneditsave'(){const _0x4abb78=_0x5ee47c,_0x52606c=$('#node-config-input-securityPolicy'),_0x3f4099=$('#node-config-input-securityMode');_0x52606c[_0x4abb78(0x181)]()==='None'&&_0x3f4099[_0x4abb78(0x150)](_0x4abb78(0x10b));{const _0x2e6e5f=$(_0x4abb78(0xf6))['editableList'](_0x4abb78(0xcd)),_0x541dee=[],_0x1d6212=_0x20d379=>_0x20d379;_0x2e6e5f['each'](function(_0x3d36df,_0xa30d5){const _0x507455=_0x4abb78,_0x2e2108=$(this),_0x3b438d={'id':'s'+_0x3d36df,'name':_0x2e2108[_0x507455(0x11a)]('.input-name')['val'](),'isDefault':!!_0x2e2108[_0x507455(0x11a)](_0x507455(0x132))[_0x507455(0x181)](),'parameters':{'publishingEnabled':!!_0x2e2108[_0x507455(0x11a)]('.input-publishingEnabled')['is'](_0x507455(0x11e)),'requestedLifetimeCount':_0x1d6212(_0x2e2108['find'](_0x507455(0xea))[_0x507455(0x181)]()),'requestedMaxKeepAliveCount':_0x1d6212(_0x2e2108[_0x507455(0x11a)](_0x507455(0xf1))[_0x507455(0x181)]()),'requestedPublishingInterval':_0x1d6212(_0x2e2108[_0x507455(0x11a)](_0x507455(0x182))[_0x507455(0x181)]()),'maxNotificationsPerPublish':_0x1d6212(_0x2e2108[_0x507455(0x11a)](_0x507455(0x172))[_0x507455(0x181)]()),'priority':_0x1d6212(_0x2e2108[_0x507455(0x11a)](_0x507455(0x19c))[_0x507455(0x181)]())}};_0x3b438d[_0x507455(0x167)]['publishingEnabled']=!![],_0x3b438d[_0x507455(0xfe)]&&_0x3b438d['id']==='s0'&&(_0x3b438d[_0x507455(0xe2)]=_0x507455(0x135)),_0x541dee['push'](_0x3b438d);}),this[_0x4abb78(0x19b)]=_0x541dee;}{const _0x2d7a78=$('#editable-list-aliases-container')[_0x4abb78(0x11c)](_0x4abb78(0xcd)),_0x232bc4=[];_0x2d7a78[_0x4abb78(0x113)](function(_0x1fd91e,_0x36be00){const _0x5649cc=_0x4abb78,_0x362910=$(this),_0xb0e71f={'namespaceUri':_0x362910[_0x5649cc(0x11a)]('.node-input-alias-namespace-uri')[_0x5649cc(0x181)](),'alias':_0x362910['find']('.node-input-alias-alias')[_0x5649cc(0x181)]()};_0x232bc4['push'](_0xb0e71f);}),this['namespaceAliases']=_0x232bc4;}},'oneditprepare'(){const _0x1a027e=_0x5ee47c,_0x5d7c94=this,_0xb5e62c=RED['tabs'][_0x1a027e(0x14e)]({'id':_0x1a027e(0x125),'onchange':function(_0x3969b9){const _0x46b30b=_0x1a027e;$(_0x46b30b(0x17a))[_0x46b30b(0x100)]()['hide'](),$('#'+_0x3969b9['id'])[_0x46b30b(0x151)]();}});_0xb5e62c['addTab']({'id':_0x1a027e(0x17f),'label':'Connection'},0x0),_0xb5e62c[_0x1a027e(0x105)]({'id':_0x1a027e(0x17c),'label':'Subscriptions'},0x1),_0xb5e62c[_0x1a027e(0x105)]({'id':_0x1a027e(0x164),'label':'Namespace\x20Aliases'},0x2),setTimeout(function(){_0xb5e62c['resize']();},0x0);{const _0x22170e=_0x22c876=>{const _0x2cdf95=_0x1a027e;switch(_0x22c876){case null:case undefined:case'':case _0x2cdf95(0x10b):$(_0x2cdf95(0x103))[_0x2cdf95(0x111)]();break;case'Sign':case _0x2cdf95(0x10d):{const _0x50fe7a=$(_0x2cdf95(0x103));(_0x50fe7a[_0x2cdf95(0x181)]()==='None'||_0x50fe7a[_0x2cdf95(0x181)]()==='')&&_0x50fe7a[_0x2cdf95(0x181)]('Basic256Sha256'),$(_0x2cdf95(0x103))[_0x2cdf95(0x151)]();}break;default:console[_0x2cdf95(0x126)]('invalid\x20securityMode\x20'+_0x22c876);}};_0x22170e(_0x5d7c94[_0x1a027e(0xfb)]);const _0x9fe5dc=$(_0x1a027e(0x170));_0x9fe5dc['on'](_0x1a027e(0x18f),()=>{const _0x4487b9=_0x1a027e,_0x302500=_0x9fe5dc[_0x4487b9(0x181)]();_0x22170e(_0x302500);});}const _0x15a19b=$('#licenceWidget');_0x15a19b[_0x1a027e(0x16b)]({'baseUrl':''});{const _0x37c310=$('.section-userIdentityType-UserName'),_0x4cd000=$(_0x1a027e(0xff)),_0x2f2e11=_0xdadaeb=>{const _0x9a743b=_0x1a027e;_0xdadaeb=_0xdadaeb||_0x9a743b(0x146);switch(_0xdadaeb){case _0x9a743b(0x146):$(_0x9a743b(0xee))[_0x9a743b(0x181)](''),$('#node-config-input-password')['val'](''),_0x37c310[_0x9a743b(0x111)](),_0x4cd000[_0x9a743b(0x111)]();break;case _0x9a743b(0x198):_0x37c310[_0x9a743b(0x151)](),_0x4cd000[_0x9a743b(0x111)]();break;case _0x9a743b(0x194):$('#node-config-input-userName')[_0x9a743b(0x181)](''),$(_0x9a743b(0x120))[_0x9a743b(0x181)](''),_0x4cd000[_0x9a743b(0x151)](),_0x37c310[_0x9a743b(0x111)]();break;default:console[_0x9a743b(0x126)](_0x9a743b(0x122)+_0xdadaeb);}};_0x2f2e11(_0x5d7c94[_0x1a027e(0x13f)]);const _0x4729ce=$('#node-config-input-userIdentityType');_0x4729ce['on']('change',()=>{const _0x2f6bb6=_0x1a027e,_0x2fbfcf=_0x4729ce[_0x2f6bb6(0x181)]();_0x2f2e11(_0x2fbfcf);});}{$(_0x1a027e(0x158))[_0x1a027e(0x111)](),$(_0x1a027e(0x190))[_0x1a027e(0x16c)](_0x1a027e(0x14c),![]),$(_0x1a027e(0x190))['on'](_0x1a027e(0x18f),function(){const _0x18badc=_0x1a027e;$(this)['prop'](_0x18badc(0x14c))?$(_0x18badc(0x158))['show']():$(_0x18badc(0x158))[_0x18badc(0x111)]();});}const _0x45122d=$(_0x1a027e(0xcb))[_0x1a027e(0x16c)](_0x1a027e(0x14c));_0x45122d?$(_0x1a027e(0xf7))[_0x1a027e(0x151)]():$(_0x1a027e(0xf7))['hide']();$(_0x1a027e(0xcb))['on'](_0x1a027e(0x18f),function(){const _0x292ad0=_0x1a027e;$(this)[_0x292ad0(0x16c)](_0x292ad0(0x14c))?$(_0x292ad0(0xf7))[_0x292ad0(0x151)]():$(_0x292ad0(0xf7))[_0x292ad0(0x111)]();});{$(_0x1a027e(0x161))['on'](_0x1a027e(0xe7),()=>_0x864efe(this,void 0x0,void 0x0,function*(){const _0x88e8f9=_0x1a027e,_0x51dc17=yield fetch(_0x88e8f9(0x1a4)),_0x433908=yield _0x51dc17[_0x88e8f9(0x148)](),_0x4d1a7a=JSON[_0x88e8f9(0x118)](_0x433908,null,'\x20');alert(_0x4d1a7a);}));}$(_0x1a027e(0x169))['on']('click',()=>_0x864efe(this,void 0x0,void 0x0,function*(){const _0x3caf20=_0x1a027e;window[_0x3caf20(0x10c)]('/opcua-for-node-red/config','_blank');}));function _0x2ce436(){const _0x229506=_0x1a027e;var _0x58988a;return{'id':_0x5d7c94['id'],'endpoint':$('#node-config-input-endpoint')['val'](),'name':$(_0x229506(0x19a))[_0x229506(0x181)](),'pkiName':(_0x58988a=$('#node-config-input-pkiName'))===null||_0x58988a===void 0x0?void 0x0:_0x58988a[_0x229506(0x181)](),'securityMode':$(_0x229506(0x170))['val'](),'securityPolicy':$('#node-config-input-securityPolicy')['val'](),'userIdentityType':$(_0x229506(0xd7))[_0x229506(0x181)](),'userName':$(_0x229506(0xee))[_0x229506(0x181)](),'password':$(_0x229506(0x120))[_0x229506(0x181)](),'userCertificate':$(_0x229506(0xfa))[_0x229506(0x181)](),'userPrivatekey':$(_0x229506(0xf8))[_0x229506(0x181)](),'certificate':$(_0x229506(0x16f))[_0x229506(0x181)](),'useTransport':$(_0x229506(0x178))[_0x229506(0x16c)](_0x229506(0x14c)),'maxChunkCount':$(_0x229506(0x117))[_0x229506(0x181)](),'maxMessageSize':$(_0x229506(0xf3))[_0x229506(0x181)](),'receiveBufferSize':$(_0x229506(0x13a))[_0x229506(0x181)](),'sendBufferSize':$(_0x229506(0x163))[_0x229506(0x181)]()};}{_0x406830(_0x1a027e(0xe6),$('#test-connection'),()=>({'url':_0x1a027e(0x130),'body':{'endpointNode':_0x2ce436()}}),()=>{});}{const _0x40af91=(_0x24b59a,_0x21f79e)=>{const _0x5e4918=_0x1a027e;var _0x225df7=_0x24b59a[_0x5e4918(0x17e)]()||0x64;_0x24b59a[_0x5e4918(0x11a)](_0x5e4918(0x15a))[_0x5e4918(0x145)](_0x5e4918(0x17e),_0x225df7-0xf);},_0x2984c2=$(_0x1a027e(0xf6))[_0x1a027e(0x129)]({'min-height':'150px','min-width':_0x1a027e(0x18e)})['editableList']({'addItem':(_0x4cad51,_0x275763,_0x56cb8c)=>{const _0x42147d=_0x1a027e,_0x5661be=_0x56cb8c,_0x42edfa=$(_0x42147d(0x144))[_0x42147d(0xce)]()['appendTo'](_0x4cad51);_0x42edfa[_0x42147d(0x196)]('id')[_0x42147d(0x17b)](_0x42147d(0x111))[_0x42147d(0x17b)](_0x42147d(0x168))['attr'](_0x42147d(0x173),_0x275763),_0x42edfa[_0x42147d(0x11a)](_0x42147d(0x166))['val'](_0x5661be['name']),_0x42edfa[_0x42147d(0x11a)](_0x42147d(0x182))[_0x42147d(0x181)](_0x5661be['parameters'][_0x42147d(0x138)]),_0x42edfa['find'](_0x42147d(0xf1))[_0x42147d(0x181)](_0x5661be['parameters'][_0x42147d(0x149)]),_0x42edfa['find'](_0x42147d(0xea))['val'](_0x5661be[_0x42147d(0x167)]['requestedLifetimeCount']),_0x42edfa[_0x42147d(0x11a)]('.input-maxNotificationsPerPublish')[_0x42147d(0x181)](_0x5661be[_0x42147d(0x167)][_0x42147d(0xf5)]||0x0),_0x42edfa[_0x42147d(0x11a)](_0x42147d(0x19c))[_0x42147d(0x181)](_0x5661be[_0x42147d(0x167)][_0x42147d(0x16e)]||0x0),_0x42edfa['find'](_0x42147d(0x18c))[_0x42147d(0x150)](''+_0x275763),_0x5661be[_0x42147d(0xfe)]&&_0x42edfa[_0x42147d(0x11a)](_0x42147d(0x166))['prop'](_0x42147d(0x19d),!![]),_0x42edfa[_0x42147d(0x11a)]('.input-isDefault')[_0x42147d(0x16c)]('checked',_0x5661be[_0x42147d(0xfe)]),_0x5661be[_0x42147d(0xfe)]&&(_0x4cad51['find']('.red-ui-editableList-item-remove')[_0x42147d(0x12f)](_0x42147d(0x111)),setTimeout(()=>_0x42edfa[_0x42147d(0x11a)](_0x42147d(0x132))[_0x42147d(0x16c)](_0x42147d(0x10e),!![]),0xa));},'removable':!![],'resizeItem':_0x40af91}),_0x103409=()=>{const _0x584af4=_0x1a027e,_0x53ef32=_0x5d7c94[_0x584af4(0x19b)]||[];_0x53ef32[_0x584af4(0x1a3)]===0x0&&_0x53ef32[_0x584af4(0xe9)]({'id':'s1','name':_0x584af4(0x135),'isDefault':!![],'parameters':Object[_0x584af4(0x1a2)]({},_0x208633)});_0x2984c2['editableList'](_0x584af4(0x15d));for(const _0x2164fa of _0x53ef32){_0x2984c2[_0x584af4(0x11c)](_0x584af4(0xeb),_0x2164fa);}};_0x103409();}{function _0x334341(_0xde8132,_0x422b7a,_0x4ddae4){const _0x5184e3=_0x1a027e,_0x34f3fe=_0x4ddae4,_0x469760=$(_0x5184e3(0x124))[_0x5184e3(0x13b)](_0xde8132);$(_0x5184e3(0x119),{'class':_0x5184e3(0x162),'type':_0x5184e3(0x150)})[_0x5184e3(0x181)](_0x4ddae4[_0x5184e3(0x115)]||'')['css']({'width':'5%'})[_0x5184e3(0x13b)](_0x469760)[_0x5184e3(0x181)](_0x422b7a['toString']()),$(_0x5184e3(0x119),{'class':_0x5184e3(0xe8),'type':_0x5184e3(0x150)})[_0x5184e3(0x181)](_0x4ddae4[_0x5184e3(0x115)]||'')[_0x5184e3(0x129)]({'width':_0x5184e3(0x110)})[_0x5184e3(0x13b)](_0x469760)[_0x5184e3(0x181)](_0x34f3fe[_0x5184e3(0x115)]),$('<input/>',{'class':_0x5184e3(0x177),'type':_0x5184e3(0x150)})[_0x5184e3(0x181)](_0x4ddae4[_0x5184e3(0x154)]||'')[_0x5184e3(0x129)]({'width':_0x5184e3(0x160)})[_0x5184e3(0x13b)](_0x469760)[_0x5184e3(0x181)](_0x34f3fe[_0x5184e3(0x154)]);}const _0x577408=$(_0x1a027e(0x12d))['css']({'min-height':'150px','min-width':'260px'})[_0x1a027e(0x11c)]({'addButton':![],'removable':![],'height':_0x1a027e(0x152),'scrollOnAdd':![],'addItem'(_0xf6cb66,_0x120337,_0xed3d4f){_0x334341(_0xf6cb66,_0x120337,_0xed3d4f);}});function _0x4bbef6(){const _0x228df6=_0x1a027e;_0x577408['editableList'](_0x228df6(0xcd)),_0x577408['editableList'](_0x228df6(0x15d));for(const _0x462e07 of _0x5d7c94[_0x228df6(0xd6)]||[]){_0x577408[_0x228df6(0x11c)]('addItem',_0x462e07);}}{$(_0x1a027e(0xe3))['on']('click',()=>_0x864efe(this,void 0x0,void 0x0,function*(){const _0x236e2f=_0x1a027e,_0x3c8535={'endpointNode':_0x2ce436(),'namespaceAliases':_0x5d7c94[_0x236e2f(0xd6)]||[]},_0x304bf8=yield fetch(_0x236e2f(0x195),{'method':_0x236e2f(0x165),'headers':{'Content-Type':_0x236e2f(0x18b)},'body':JSON[_0x236e2f(0x118)](_0x3c8535)}),_0x37c998=yield _0x304bf8[_0x236e2f(0x148)](),_0x190d2d=_0x37c998[_0x236e2f(0xd6)];console[_0x236e2f(0x126)](_0x236e2f(0xd6),_0x190d2d),Array['isArray'](_0x190d2d)&&(_0x5d7c94[_0x236e2f(0xd6)]=_0x190d2d,_0x4bbef6());})),_0x5d7c94[_0x1a027e(0xd6)]=_0x5d7c94[_0x1a027e(0xd6)]||[{'alias':'ua','namespaceUri':_0x1a027e(0x121),'isWellKnown':!![],'isDefault':!![]}];}_0x4bbef6();}}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg4NjRlZmUiLCJfMHgzZDc3OTQiLCJfMHhmYTk2OTIiLCJfMHg5ZWEyNWIiLCJfMHgyNjYwYjkiLCJfMHgxM2VhODUiLCJfMHgyYTg0YjciLCJfMHgxMjE2MTMiLCJQcm9taXNlIiwiXzB4NGVkNWRhIiwiXzB4MzZkMWNkIiwiXzB4MWIwNzY0IiwiXzB4MTEzNTNhIiwiXzB4MTI1NThjIiwiXzB4M2RmZDQ2IiwiXzB4MjEwYzE3IiwiXzB4NTQzMTE1IiwiXzB4MzAyZDhkIiwiXzB4NTNjMzc2IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4ZTVhNWYiLCJfMHgyZmNmYjciLCJfMHgzYzJiNzIiLCJfMHg1MGY2ZGMiLCJFcnJvciIsIl8weDQwNjgzMCIsIl8weDNiMzgzZSIsIl8weDJjNWZhNCIsIl8weDEzN2I2ZSIsIl8weDMyODc1NCIsIl8weDEwZjYxZCIsIiQiLCJfMHgxNmEwM2QiLCJfMHg2ODUxN2IiLCJfMHgzZjBhOTQiLCJfMHgyMGNiNDAiLCJib2R5IiwiXzB4MjM2YzJkIiwidXJsIiwiXzB4NTNkMDI1IiwiZmV0Y2giLCJKU09OIiwiXzB4MTI0ZGEzIiwiXzB4NTQwZmQwIiwiY29uc29sZSIsIl8weDI0ZTc1ZSIsIl8weDE5YmM1MiIsIl8weDNmMDc0MCIsIl8weDVkZjE4NCIsIl8weDE1YmIzMCIsIkFycmF5IiwiXzB4Yjg1NmYzIiwiXzB4NDljZDE5IiwiXzB4MmM3MjY3IiwiXzB4YTgwYzdhIiwiYXJndW1lbnRzIiwiXzB4MmExZDY4IiwiXzB4NTE2YjUxIiwiXzB4MzhhZTU3IiwiXzB4MzYyYjRkIiwiXzB4NGRkOGQ0IiwiRGF0ZSIsIl8weDE0N2JkMiIsIl8weDUzY2YwZCIsIl8weDVkYjIxOCIsIl8weDJlMGIxNSIsIl8weDFhYWFkNCIsIl8weDVkNmYzZiIsIl8weGY5YThjNyIsIl8weDNhYWY5MyIsIl8weDM1NzE1MSIsIl8weDI4ZTRiMyIsIl8weDNmZGQ1NCIsIl8weDExYTBiZSIsIl8weDRjZDg0YyIsImRvY3VtZW50IiwiXzB4MjFlZDRmIiwiXzB4M2E4MzgwIiwiXzB4MTUxNmFmIiwiXzB4NDdkZDAxIiwiXzB4YWU3ZTNlIiwiVVJMIiwiXzB4MWJmOTkxIiwiXzB4MjA4NjMzIiwiUkVEIiwiXzB4MzI0NjRiIiwiXzB4MmIxYTcyIiwiT2JqZWN0IiwiXzB4NTI2MDZjIiwiXzB4M2Y0MDk5IiwiXzB4MmU2ZTVmIiwiXzB4NTQxZGVlIiwiXzB4MWQ2MjEyIiwiXzB4MjBkMzc5IiwiXzB4M2QzNmRmIiwiXzB4YTMwZDUiLCJfMHgyZTIxMDgiLCJfMHgzYjQzOGQiLCJfMHgyZDdhNzgiLCJfMHgyMzJiYzQiLCJfMHgxZmQ5MWUiLCJfMHgzNmJlMDAiLCJfMHgzNjI5MTAiLCJfMHhiMGU3MWYiLCJfMHg1ZDdjOTQiLCJfMHhiNWU2MmMiLCJfMHgzOTY5YjkiLCJzZXRUaW1lb3V0IiwiXzB4MjIxNzBlIiwiXzB4MjJjODc2IiwidW5kZWZpbmVkIiwiXzB4NTBmZTdhIiwiXzB4OWZlNWRjIiwiXzB4MzAyNTAwIiwiXzB4MTVhMTliIiwiXzB4MzdjMzEwIiwiXzB4NGNkMDAwIiwiXzB4MmYyZTExIiwiXzB4ZGFkYWViIiwiXzB4NDcyOWNlIiwiXzB4MmZiZmNmIiwiXzB4NDUxMjJkIiwiXzB4NTFkYzE3IiwiXzB4NDMzOTA4IiwiXzB4NGQxYTdhIiwiYWxlcnQiLCJ3aW5kb3ciLCJfMHgyY2U0MzYiLCJfMHg1ODk4OGEiLCJfMHg0MGFmOTEiLCJfMHgyNGI1OWEiLCJfMHgyMWY3OWUiLCJfMHgyMjVkZjciLCJfMHgyOTg0YzIiLCJfMHg0Y2FkNTEiLCJfMHgyNzU3NjMiLCJfMHg1NmNiOGMiLCJfMHg1NjYxYmUiLCJfMHg0MmVkZmEiLCJfMHgxMDM0MDkiLCJfMHg1M2VmMzIiLCJfMHgyMTY0ZmEiLCJfMHgzMzQzNDEiLCJfMHhkZTgxMzIiLCJfMHg0MjJiN2EiLCJfMHg0ZGRhZTQiLCJfMHgzNGYzZmUiLCJfMHg0Njk3NjAiLCJfMHg1Nzc0MDgiLCJfMHhmNmNiNjYiLCJfMHgxMjAzMzciLCJfMHhlZDNkNGYiLCJfMHg0YmJlZjYiLCJfMHg0NjJlMDciLCJfMHgzYzg1MzUiLCJfMHgzMDRiZjgiLCJfMHgzN2M5OTgiLCJfMHgxOTBkMmQiXSwibWFwcGluZ3MiOiIycEtBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMseUJBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLEMseUJBQTJCLEcsQ0FBTUgsU0FBQSxDQUFLVCxTQUFBLEMsZUFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxnQkFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxnQkFBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLGdCQUFBLENBQU4sRSxNQUFBLEVBQXlCUCxTQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNBQUEsQ0FBWUEsU0FBQSxDLGdCQUFBLEVBQWdCSCxTQUFoQixD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QUEsRSxlQUFBLEMsQ0FDQUEsU0FBQSxDLGNBQUEsRSxnQkFBQSxDQURBLENBRUEsVUFBV0ssU0FBWCxJQUFvQmpELFNBQUEsQyxlQUFBLEdBQXlCLEVBQTdDLEMsQ0FDSTRDLFNBQUEsQyxnQkFBQSxFLFNBQUEsQ0FBb0NLLFNBQXBDLEMsSUFLSjFILENBQUEsQyxlQUFBLEUsSUFBQSxFLE9BQUEsQ0FBa0MsSUFBTS9CLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLDJCQUM5RDBKLFNBQUEsQ0FBVSxDLGNBQ1osQ0FBYzNCLFNBQUEsRUFERixDLGtCQUVaLENBQWtCdkIsU0FBQSxDLGVBQUEsR0FBeUIsRUFGL0IsQyxDQUlWbUQsU0FBQSxDQUFPLE1BQU1uSCxLQUFBLEMsZ0JBQUEsQ0FBdUQsQyxRQUN0RSxDLGdCQURzRSxDLFNBRXRFLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FGNkQsQyxNQUd0RSxDQUFNQyxJQUFBLEMsZ0JBQUEsRUFBZWlILFNBQWYsQ0FIZ0UsQ0FBdkQsQyxDQUtiRSxTQUFBLENBQU8sTUFBTUQsU0FBQSxDLGdCQUFBLEcsQ0FDYkUsU0FBQSxDQUFtQkQsU0FBQSxDLGVBQUEsQyxDQUN6QmhILE9BQUEsQyxnQkFBQSxFLGVBQUEsQ0FBZ0NpSCxTQUFoQyxDLENBQ0kzRyxLQUFBLEMsU0FBQSxFQUFjMkcsU0FBZCxDLEdBQ0FyRCxTQUFBLEMsZUFBQSxFQUF3QnFELFMsQ0FDeEJMLFNBQUEsRSxHQWZnQyxDQUF4QyxDLENBa0JBaEQsU0FBQSxDLGVBQUEsRUFBd0JBLFNBQUEsQyxlQUFBLEdBQXlCLENBQzdDLEMsT0FDSSxDLElBREosQyxjQUVJLEMsZ0JBRkosQyxhQUdJLEMsSUFISixDLFdBSUksQyxJQUpKLENBRDZDLEMsRUFTckRnRCxTQUFBLEUsR0F2ZDhCLENBQTFDLEMsRUFyT0osRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ID0gKHN0cikgPT4gIXN0clxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHN0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IGA8cD4ke2F9PC9wPmApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0MiA9IChzdHIpID0+IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIubWFwKGFkYXB0KS5qb2luKFwiXFxuXCIpIDogYWRhcHQoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGFkYXB0Mihqc29uLm1lc3NhZ2UpICsgYWRhcHQyKGpzb24uZXh0cmEpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobmV3IEVycm9yKGpzb24ucmVzdWx0KSwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiaW50ZXJuYWwgZXJyb3IgXCIgKyBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmljaW5nVGFibGVJZCA9IFwicHJjdGJsXzFPSnQ0OUJDTmNjYnpzVnprYUFOT2dGTFwiO1xuICAgIGNvbnN0IHB1Ymxpc2hhYmxlS2V5ID0gXCJwa19saXZlXzUxSHNFMXNCQ05jY2J6c1Z6dDd6YXEydXYyMHBrcnlXbGxBenZaZ1pkNUFod0ZJOUEzcUJJZU9Kdkp3UUYwOGxEb0xwRnFMandteUE3OXduUG5ZTHN2S2p0MDA5ZjAwVnBDV1wiO1xuICAgIGZ1bmN0aW9uIGZldGNoTGljZW5jZUluZm8oKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgYXJndW1lbnRzLCB2b2lkIDAsIGZ1bmN0aW9uKiAoYmFzZVVybCA9IFwiXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vbGljZW5jZUluZm9gO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6IFwiRkFJTEVEXCIsIHR5cGU6IFwiRlJFRVdBUkVcIiwgbGljZW5jZUluZm86IHsgZXhwaXJ5RGF0ZTogdG9kYXkgfSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QganNvbiA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTGljZW5jZVdpZGdldCA9ICgpID0+IHtcbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5saWNlbmNlV2lkZ2V0XCIsIHtcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFjdExpbmsgPSBgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHN0ZXJmaXZlLmNvbVwiIHN1YmplY3Q9XCJAb3BjdWEvZm9yLW5vZGUtcmVkIHN1cHBvcnQgcmVxdWVzdFwiPm1haWx0bzpzdXBwb3J0QHN0ZXJmaXZlLmNvbTwvYT5gO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdlYnNpdGVMaW5rID0gYDxhIGhyZWY9XCJodHRwczovL3d3dy5zdGVyZml2ZS5jb20vb3BjdWEvZm9yLW5vZGUtcmVkXCIgdGFyZ2V0PeKAnV9ibGFua+KAnT5TdGVyZml2ZSdzIHdlYnNpdGUgPC9hPmA7XG4gICAgICAgICAgICAgICAgZmV0Y2hMaWNlbmNlSW5mbyh0aGF0LmJhc2VVcmwpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpY29uID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1zZyA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxzID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0ganNvbi5zdGF0dXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRheUxlZnQgPSBqc29uLmRheXNMZWZ0O1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFVVEhPUklaRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1jaGVjay1jaXJjbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGpzb24udHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVFJJQUxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJUcmlhbCBsaWNlbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFRoZSBUcmlhbCB3aWxsIGV4cGlyZSBpbiAke2RheUxlZnR9IGRheXMuXFxuQnV5IG9ubGluZSBhbmQgdmlzaXQgJHt3ZWJzaXRlTGlua30gdG8gYWNxdWlyZSBhIGxpY2Vuc2UuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJQUk9GRVNTSU9OQUxcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IGBZb3VyIGxpY2VuY2UgaXMgdmFsaWQuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXlMZWZ0IDwgOTAgJiYgZGF5TGVmdCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnICs9IGAgSXQgd2lsbCBleHBpcmUgaW4gJHtkYXlMZWZ0fSBkYXlzLmA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZXRhaWxzID0gYCR7d2Vic2l0ZUxpbmt9PGJyPiR7Y29udGFjdExpbmt9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBqc29uLmxpY2VuY2VJbmZvLmxpY2VuY2VUeXBlICsgXCIgLSBcIiArIChqc29uLmxpY2VuY2VJbmZvLm9uUHJlbWlzZVNlcnZlckhvc3QgfHwgXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkZSRUVXQVJFXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIkZyZWV3YXJlIGxpY2VuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgVGhpcyBpcyBhIGZyZWV3YXJlIGxpY2VuY2UsIGFuZCBoYXZlIHNvbWUgbGltaXRhdGlvbnMuXFxuJHt3ZWJzaXRlTGlua30gZm9yIG1vcmUgaW5mb3JtYXRpb24uYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJFWFBJUkVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiA9IFwiZmEgZmEtY2FsZW5kYXItdGltZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiTGljZW5jZSBoYXMgZXhwaXJlZFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIllvdXIgbGljZW5zZSBoYXMgZXhwaXJlZC4gUGxlYXNlIGNvbnRhY3Qgb3VyIHN1cHBvcnQgdGVhbSBvciB2aXNpdCBvdXIgd2Vic2l0ZSB0byByZW5ldyB5b3VyIGxpY2Vuc2UgYW5kIHJlZ2FpbiBhY2Nlc3MgdG8gb3VyIHNlcnZpY2VzLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkZBSUxFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1leGNsYW1hdGlvbi1jaXJjbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIllvdXIgbGljZW5zZSBpcyBjdXJyZW50bHkgaW52YWxpZC5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFBsZWFzZSBjb250YWN0ICR7Y29udGFjdExpbmt9IG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuzIBgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8qKiAqL1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQudGV4dChcIkxpY2VuY2UgXCIgKyBKU09OLnN0cmluZ2lmeShqc29uKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1cIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWljb25cIikuYXBwZW5kKCQoXCI8aT5cIikuYWRkQ2xhc3MoaWNvbikpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtbXNnXCIpLnRleHQobXNnKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1kZXRhaWxzXCIpLmFwcGVuZChkZXRhaWxzKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT09IFwiRVhQSVJFRFwiIHx8IHN0YXR1cyA9PT0gXCJGQUlMRURcIiB8fCBqc29uLnR5cGUgPT09IFwiRlJFRVdBUkVcIiB8fCBqc29uLnR5cGUgPT09IFwiVFJJQUxcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaWJlQnV0dG9uID0gJChcIjxidXR0b24vPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwiaWRcIiwgXCJzdWJzY3JpYmUtYnV0dG9uXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJjbGFzc1wiLCBcImJ0biBidG4tcHJpbWFyeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwic3R5bGVcIiwgXCJtYXJnaW4tdG9wOiAyMHB4O1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi50ZXh0KFwiU3Vic2NyaWJlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdWJzY3JpYmVCdXR0b24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgc2NyaXB0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBcImh0dHBzOi8vanMuc3RyaXBlLmNvbS92My9wcmljaW5nLXRhYmxlLmpzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzY3JpcHQgZWxlbWVudCB0byB0aGUgaGVhZCAob3IgYm9keSkgb2YgdGhlIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiaGVhZFwiKS5hcHBlbmQoc2NyaXB0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmlwZVByaWNpbmdUYWJsZSA9ICQoXCI8c3RyaXBlLXByaWNpbmctdGFibGUvPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwcmljaW5nLXRhYmxlLWlkXCIsIHByaWNpbmdUYWJsZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwicHVibGlzaGFibGUta2V5XCIsIHB1Ymxpc2hhYmxlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCU7bWF4LWhlaWdodDogMTAwJTtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdHJpcGVQcmljaW5nVGFibGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXR0cihcInN0eWxlXCIsIFwiaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGRlY2xhcmVMaWNlbmNlV2lkZ2V0KCk7XG4gICAgZnVuY3Rpb24gaXNWYWxpZE9QQ19VQV9VUkkoc3RyKSB7XG4gICAgICAgIGxldCB1cmw7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHN0cik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF8pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXJsLnByb3RvY29sID09PSBcIm9wYy50Y3A6XCI7XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzID0ge1xuICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogMTAwMCxcbiAgICAgICAgcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQ6IDEwLCAvLyBldmVyeSAxMCBzZWNvbmRzXG4gICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogMTAwMCxcbiAgICAgICAgbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2g6IDAsXG4gICAgICAgIHByaW9yaXR5OiAxMDAsXG4gICAgfTtcbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtRW5kcG9pbnQyXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwiY29uZmlnXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJvcGN1YSBlbmRwb2ludFwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0My9VQS9TYW1wbGVTZXJ2ZXJcIixcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogaXNWYWxpZE9QQ19VQV9VUkksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gU2VjdXJpdHkgTW9kZVxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiB7IHZhbHVlOiBcIk5vbmVcIiB9LFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJOb25lXCIsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6IHsgdmFsdWU6IFwiQW5vbnltb3VzXCIgfSxcbiAgICAgICAgICAgIHBraU5hbWU6IHsgdmFsdWU6IFwiXCIsIHZhbGlkYXRlOiAodmFsdWUpID0+ICghdmFsdWUgfHwgdmFsdWUubWF0Y2goL1swLTlhLXpBLVpdKi8pID8gdHJ1ZSA6IGZhbHNlKSB9LFxuICAgICAgICAgICAgLy8gdG8gdXNlIHdoZW4gdXNlcklkZW50aXR5VHlwZSBpcyBVc2VyTmFtZVxuICAgICAgICAgICAgLy8gY3JlZGVudGlhbHM6IHtcbiAgICAgICAgICAgIC8vICAgICB1c2VyTmFtZTogeyB2YWx1ZTogXCJcIiwgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIC8vICAgICBwYXNzd29yZDogeyB2YWx1ZTogXCJcIiwgdHlwZTogXCJwYXNzd29yZFwiIH0sXG4gICAgICAgICAgICAvLyAgICAgLy8gdG8gdXNlIHdoZW4gdXNlcklkZW50aXR5VHlwZSBpcyBDZXJ0aWZpY2F0ZVxuICAgICAgICAgICAgLy8gICAgIHVzZXJDZXJ0aWZpY2F0ZTogeyB2YWx1YnJvd3NlUGF0aGU6IFwiXCIsIHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICAvLyAgICAgdXNlclByaXZhdGVrZXk6IHsgdmFsdWU6IFwiXCIgLCB0eXBlOiBcInBhc3N3b3JkXCJ9LFxuICAgICAgICAgICAgLy8gfSBhcyBhbnkgLyogY2lyY3VtdmVudCBhIGJ1ZyBpbiBub2RlLXJlZCAqLyxcbiAgICAgICAgICAgIC8vIHVzZXJuYW1lXG4gICAgICAgICAgICB1c2VUcmFuc3BvcnQ6IHsgdmFsdWU6IGZhbHNlLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIG1heENodW5rQ291bnQ6IHsgdmFsdWU6IDEsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgbWF4TWVzc2FnZVNpemU6IHsgdmFsdWU6IDgxOTIsIHJlcXVpcmVkOiBmYWxzZSB9LCAvLyBzaG91bGQgYmUgYXQgbGVhc3QgODE5MlxuICAgICAgICAgICAgcmVjZWl2ZUJ1ZmZlclNpemU6IHsgdmFsdWU6IDgxOTIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgc2VuZEJ1ZmZlclNpemU6IHsgdmFsdWU6IDgxOTIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uczoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInMxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U3Vic2NyaXB0aW9uUGFyYW1ldGVycyksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInMyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNsb3cgU3Vic2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZExpZmV0aW1lQ291bnQ6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogMywgLy8gZXZlcnkgMTUgc2Vjb25kc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogNTAwMCwgLy9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiAxMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInMzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkZhc3QgU3Vic2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZExpZmV0aW1lQ291bnQ6IDQwMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQ6IDUwLCAvLyBldmVyeSAxMi41IHNlY29uZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWw6IDI1MCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiAyMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXM6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhczogXCJ1YVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlVXJpOiBcImh0dHA6Ly9vcGNmb3VuZGF0aW9uLm9yZy9VQS9cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzV2VsbEtub3duOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhczogXCJkaVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlVXJpOiBcImh0dHA6Ly9vcGNmb3VuZGF0aW9uLm9yZy9ESS9cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzV2VsbEtub3duOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY3JlZGVudGlhbHM6IHtcbiAgICAgICAgICAgIHVzZXJOYW1lOiB7IHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICBwYXNzd29yZDogeyB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZTogeyB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6IHsgdHlwZTogXCJwYXNzd29yZFwiIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IHRoaXMuZW5kcG9pbnQgfHwgXCJpbnZhbGlkIGVuZHBvaW50XCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7XG4gICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlQb2xpY3kgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5UG9saWN5XCIpO1xuICAgICAgICAgICAgY29uc3QgX3NlY3VyaXR5TW9kZSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlNb2RlXCIpO1xuICAgICAgICAgICAgaWYgKF9zZWN1cml0eVBvbGljeS52YWwoKSA9PT0gXCJOb25lXCIpIHtcbiAgICAgICAgICAgICAgICBfc2VjdXJpdHlNb2RlLnRleHQoXCJOb25lXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gKCgoKCgoKCgoKCByZXRyaWV2ZSBzdWJzY3JpcHRpb24gZGF0YSApKSkpKSkpKSkpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uSXRlbXMgPSAkKFwiI3N1YnNjcmlwdGlvbnMtY29udGFpbmVyXCIpLmVkaXRhYmxlTGlzdChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHMgPSBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBuID0gKHgpID0+IHg7XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uSXRlbXMuZWFjaChmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzXCIgKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGUuZmluZChcIi5pbnB1dC1uYW1lXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiAhIWUuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6ICEhZS5maW5kKFwiLmlucHV0LXB1Ymxpc2hpbmdFbmFibGVkXCIpLmlzKFwiOmNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTGlmZXRpbWVDb3VudFwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQ6IG4oZS5maW5kKFwiLmlucHV0LXJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWw6IG4oZS5maW5kKFwiLmlucHV0LXJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbFwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2g6IG4oZS5maW5kKFwiLmlucHV0LW1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoXCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogbihlLmZpbmQoXCIuaW5wdXQtcHJpb3JpdHlcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgLy8gZm9yY2UgdG8gYmUgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICBhLnBhcmFtZXRlcnMucHVibGlzaGluZ0VuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYS5pc0RlZmF1bHQgJiYgYS5pZCA9PT0gXCJzMFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWxpemUgZGVmYXVsdCBzdWJzY3JpcHRpb24gbmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgYS5uYW1lID0gXCJEZWZhdWx0IFN1YnNjcmlwdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHMucHVzaChhKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gKCgoKCgoKCgoKCByZXRyaWV2ZSBuYW1lc3BhY2UgYWxpYXMgZGF0YSApKSkpKSkpKSlcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBhbGlhc2VzXG4gICAgICAgICAgICAgICAgY29uc3QgYWxpYXNJdGVtcyA9ICQoXCIjZWRpdGFibGUtbGlzdC1hbGlhc2VzLWNvbnRhaW5lclwiKS5lZGl0YWJsZUxpc3QoXCJpdGVtc1wiKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBbXTtcbiAgICAgICAgICAgICAgICBhbGlhc0l0ZW1zLmVhY2goZnVuY3Rpb24gKGluZGV4LCBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWQ6IFwic1wiICsgaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IGUuZmluZChcIi5ub2RlLWlucHV0LWFsaWFzLW5hbWVzcGFjZS11cmlcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhczogZS5maW5kKFwiLm5vZGUtaW5wdXQtYWxpYXMtYWxpYXNcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHRtcC5wdXNoKGEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMubmFtZXNwYWNlQWxpYXNlcyA9IHRtcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgY29uc3QgdGFicyA9IFJFRC50YWJzLmNyZWF0ZSh7XG4gICAgICAgICAgICAgICAgaWQ6IFwibm9kZS1jb25maWctZW5kcG9pbnQtdGFic1wiLFxuICAgICAgICAgICAgICAgIG9uY2hhbmdlOiBmdW5jdGlvbiAodGFiKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctZW5kcG9pbnQtdGFicy1jb250ZW50XCIpLmNoaWxkcmVuKCkuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI1wiICsgdGFiLmlkKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGFicy5hZGRUYWIoe1xuICAgICAgICAgICAgICAgIGlkOiBcImVuZHBvaW50LXRhYi1jb25uZWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiQ29ubmVjdGlvblwiLFxuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB0YWJzLmFkZFRhYih7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW5kcG9pbnQtdGFiLXN1YnNjcmlwdGlvbnNcIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJTdWJzY3JpcHRpb25zXCIsXG4gICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgICAgIHRhYnMuYWRkVGFiKHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbmRwb2ludC10YWItbmFtZXNwYWNlLWFsaWFzZXNcIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJOYW1lc3BhY2UgQWxpYXNlc1wiLFxuICAgICAgICAgICAgfSwgMik7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0YWJzLnJlc2l6ZSgpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIFNlY3VyaXR5IGNvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVNlY3VyaXR5Q29udHJvbCA9IChzZWN1cml0eU1vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzZWN1cml0eU1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgbnVsbDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIk5vbmVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiLnNlY3Rpb24tc2VjdXJpdHlQb2xpY3lcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlNpZ25cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJTaWduQW5kRW5jcnlwdFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3AgPSAkKFwiLnNlY3Rpb24tc2VjdXJpdHlQb2xpY3lcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzcC52YWwoKSA9PT0gXCJOb25lXCIgfHwgc3AudmFsKCkgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwLnZhbChcIkJhc2ljMjU2U2hhMjU2XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImludmFsaWQgc2VjdXJpdHlNb2RlIFwiICsgc2VjdXJpdHlNb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlU2VjdXJpdHlDb250cm9sKG5vZGUuc2VjdXJpdHlNb2RlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlNb2RlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIik7XG4gICAgICAgICAgICAgICAgX3NlY3VyaXR5TW9kZS5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1NlY3VyaXR5TW9kZSA9IF9zZWN1cml0eU1vZGUudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVNlY3VyaXR5Q29udHJvbChuZXdTZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGljZW5jZVdpZGdldCA9ICQoXCIjbGljZW5jZVdpZGdldFwiKTtcbiAgICAgICAgICAgIGxpY2VuY2VXaWRnZXQubGljZW5jZVdpZGdldCh7XG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSB0aGUgVXNlciBJZGVudGl0eSBDb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdXRoUm93ID0gJChcIi5zZWN0aW9uLXVzZXJJZGVudGl0eVR5cGUtVXNlck5hbWVcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VydFJvdyA9ICQoXCIuc2VjdGlvbi11c2VySWRlbnRpdHlUeXBlLUNlcnRpZmljYXRlXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUlkZW50aXR5Q29udHJvbHMgPSAodXNlcklkZW50aXR5VHlwZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlID0gdXNlcklkZW50aXR5VHlwZSB8fCBcIkFub255bW91c1wiO1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHVzZXJJZGVudGl0eVR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJBbm9ueW1vdXNcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJVc2VyTmFtZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkNlcnRpZmljYXRlXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyTmFtZVwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wYXNzd29yZFwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW52YWxpZCB1c2VySWRlbnRpdHlUeXBlIFwiICsgdXNlcklkZW50aXR5VHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHVwZGF0ZUlkZW50aXR5Q29udHJvbHMobm9kZS51c2VySWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBfdXNlcklkZW50aXR5VHlwZSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlcklkZW50aXR5VHlwZVwiKTtcbiAgICAgICAgICAgICAgICBfdXNlcklkZW50aXR5VHlwZS5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0lkZW50aXR5VHlwZSA9IF91c2VySWRlbnRpdHlUeXBlLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVJZGVudGl0eUNvbnRyb2xzKG5ld0lkZW50aXR5VHlwZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIGFkdmFuY2VkIGNvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1BZHZhbmNlZFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgJChcIiN0b2dnbGVBZHZhbmNlZFNlY3Rpb25cIikucHJvcChcImNoZWNrZWRcIiwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICQoXCIjdG9nZ2xlQWR2YW5jZWRTZWN0aW9uXCIpLm9uKFwiY2hhbmdlXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykucHJvcChcImNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLCBzaG93IHRoZSBkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1BZHZhbmNlZFwiKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGhpZGUgaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1BZHZhbmNlZFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVzZVRyYW5zcG9ydFNldHRpbmcgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZVRyYW5zcG9ydFwiKS5wcm9wKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgIGlmICh1c2VUcmFuc3BvcnRTZXR0aW5nKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLnNob3coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5oaWRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZVRyYW5zcG9ydFwiKS5vbihcImNoYW5nZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCQodGhpcykucHJvcChcImNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNoZWNrYm94IGlzIGNoZWNrZWQsIHNob3cgdGhlIGRpdlxuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuc2hvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBoaWRlIGl0XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gY2hlY2tDZXJ0aWZpY2F0ZVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAkKFwiI2NoZWNrQ2VydGlmaWNhdGVcIikub24oXCJjbGlja1wiLCAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChcIi9vcGN1YS1mb3Itbm9kZS1yZWQvY2xpZW50X2NlcnRpZmljYXRlLmpzb25cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZm8gPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9IEpTT04uc3RyaW5naWZ5KGluZm8sIG51bGwsIFwiIFwiKTtcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQodCk7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBjb25maWcgYnV0dG9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgJChcIiNnb3RvLWNvbmZpZ1wiKS5vbihcImNsaWNrXCIsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihcIi9vcGN1YS1mb3Itbm9kZS1yZWQvY29uZmlnXCIsIFwiX2JsYW5rXCIpO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgZnVuY3Rpb24gZXh0cmFjdEVuZHBvaW50RGF0YSgpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IG5vZGUuaWQsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiAkKFwiI25vZGUtY29uZmlnLWlucHV0LWVuZHBvaW50XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LW5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHBraU5hbWU6IChfYSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGtpTmFtZVwiKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBzZWN1cml0eU1vZGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlNb2RlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBzZWN1cml0eVBvbGljeTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eVBvbGljeVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VySWRlbnRpdHlUeXBlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VyTmFtZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyTmFtZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyQ2VydGlmaWNhdGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZXJQcml2YXRla2V5OiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJQcml2YXRla2V5XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAvLy8gbm90IHRlc3RlZCB5ZXQgLi4uOlxuICAgICAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZTogJChcIiNub2RlLWlucHV0LWNlcnRpZmljYXRlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VUcmFuc3BvcnQ6ICQoXCIjbm9kZS1pbnB1dC11c2VUcmFuc3BvcnRcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgIG1heENodW5rQ291bnQ6ICQoXCIjbm9kZS1pbnB1dC1tYXhDaHVua0NvdW50XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBtYXhNZXNzYWdlU2l6ZTogJChcIiNub2RlLWlucHV0LW1heE1lc3NhZ2VTaXplXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICByZWNlaXZlQnVmZmVyU2l6ZTogJChcIiNub2RlLWlucHV0LXJlY2VpdmVCdWZmZXJTaXplXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBzZW5kQnVmZmVyU2l6ZTogJChcIiNub2RlLWlucHV0LXNlbmRCdWZmZXJTaXplXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBUZXN0IGJ1dHRvblxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtYW5hZ2VBUElDYWxsKFwiY29ubmVjdGlvblwiLCAkKFwiI3Rlc3QtY29ubmVjdGlvblwiKSwgKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9vcGN1YS1mb3Itbm9kZS1yZWQvdGVzdC1jb25uZWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZXh0cmFjdEVuZHBvaW50RGF0YSgpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLCAoKSA9PiB7IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vICBJbnN0YWxsIHN1YnNjcmlwdGlvbnMgTGlzdCBtYW5hZ2VtZW50XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc2l6ZVRvcGljcyA9ICh0b3BpYywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5ld1dpZHRoID0gdG9waWMud2lkdGgoKSB8fCAxMDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcGljLmZpbmQoXCJsYWJlbFwiKS50eXBlZElucHV0KFwid2lkdGhcIiwgbmV3V2lkdGggLSAxNSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25MaXN0ID0gJChcIiNzdWJzY3JpcHRpb25zLWNvbnRhaW5lclwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgXCJtaW4taGVpZ2h0XCI6IFwiMTUwcHhcIiwgXCJtaW4td2lkdGhcIjogXCIyNjBweFwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgICAgICBhZGRJdGVtOiAoY29udGFpbmVyLCBpbmRleCwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgX2RhdGEgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9ICQoXCIjc3Vic2NyaXB0aW9uLXRlbXBsYXRlXCIpLmNsb25lKCkuYXBwZW5kVG8oY29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cihcImlkXCIpLnJlbW92ZUNsYXNzKFwiaGlkZVwiKS5yZW1vdmVDbGFzcyhcInRlbXBsYXRlXCIpLmF0dHIoXCJkYXRhLWlcIiwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LW5hbWVcIikudmFsKF9kYXRhLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5yZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50XCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRMaWZldGltZUNvdW50XCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnJlcXVlc3RlZExpZmV0aW1lQ291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LW1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoXCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLm1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoIHx8IDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXByaW9yaXR5XCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnByaW9yaXR5IHx8IDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLnN1YnNjcmlwdGlvbi1pZFwiKS50ZXh0KFwiXCIgKyBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2RhdGEuaXNEZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LW5hbWVcIikucHJvcChcInJlYWRvbmx5XCIsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS5wcm9wKFwiY2hlY2tlZFwiLCBfZGF0YS5pc0RlZmF1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgZGVmYXVsdCBzdWJzY3JpcHRpb24gY2Fubm90IGJlIGFjY2lkZW50YWxseSByZW1vdmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2RhdGEuaXNEZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmZpbmQoXCIucmVkLXVpLWVkaXRhYmxlTGlzdC1pdGVtLXJlbW92ZVwiKS5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50LmZpbmQoXCIuaW5wdXQtaXNEZWZhdWx0XCIpLnByb3AoXCJkaXNhYmxlZFwiLCB0cnVlKSwgMTApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAvLyBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZXNpemVJdGVtOiByZXNpemVUb3BpY3MsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsbFN1YnNjcmlwdGlvbnMgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbnMgPSBub2RlLnN1YnNjcmlwdGlvbnMgfHwgW107XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIG1pc3NpbmcgZGVmYXVsdCBzdWJzY3JpcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbkxpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1YnNjcmlwdGlvbi5pc0RlZmF1bHQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbkxpc3QuZWRpdGFibGVMaXN0KFwiYWRkSXRlbVwiLCBzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBmaWxsU3Vic2NyaXB0aW9ucygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vICBJbnN0YWxsIG5hbWVzcGFjZSBhbGlhcyBMaXN0IG1hbmFnZW1lbnRcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gYWRkQWxpYXNDdHJsKGNvbnRhaW5lciwgaW5kZXgsIGFyZykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXJnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3cgPSAkKCc8ZGl2IGNsYXNzPVwiYWxpYXMtZW50cnlcIj4nKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgICAgICAvLyBjb250YWluZXIuZGF0YShcImRhdGFcIiwgYXJnKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxpbnB1dC8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm5vZGUtaW5wdXQtYWxpYXMtaW5kZXhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcuYWxpYXMgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI1JVwiIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8ocm93KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChpbmRleC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxpbnB1dC8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm5vZGUtaW5wdXQtYWxpYXMtYWxpYXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcuYWxpYXMgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCIyNSVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKHJvdylcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoZGF0YS5hbGlhcyk7XG4gICAgICAgICAgICAgICAgICAgICQoXCI8aW5wdXQvPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJub2RlLWlucHV0LWFsaWFzLW5hbWVzcGFjZS11cmlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcubmFtZXNwYWNlVXJpIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNzAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhyb3cpXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGEubmFtZXNwYWNlVXJpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgYWxpYXNlc0xpc3QgPSAkKFwiI2VkaXRhYmxlLWxpc3QtYWxpYXNlcy1jb250YWluZXJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IFwibWluLWhlaWdodFwiOiBcIjE1MHB4XCIsIFwibWluLXdpZHRoXCI6IFwiMjYwcHhcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsT25BZGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkQWxpYXNDdHJsKGNvbnRhaW5lciwgaSwgaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gZmlsbE5hbWVzcGFjZUFsaWFzZXMoKSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWFzZXNMaXN0LmVkaXRhYmxlTGlzdChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgICAgICAgICBhbGlhc2VzTGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhbGlhcyBvZiBub2RlLm5hbWVzcGFjZUFsaWFzZXMgfHwgW10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXNMaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgYWxpYXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEJ1dHRvblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNleHRyYWN0LWFsaWFzZXNcIikub24oXCJjbGlja1wiLCAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZXh0cmFjdEVuZHBvaW50RGF0YSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXM6IG5vZGUubmFtZXNwYWNlQWxpYXNlcyB8fCBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goXCIvb3BjdWEtZm9yLW5vZGUtcmVkL2V4dHJhY3QtbmFtZXNwYWNlLWFsaWFzZXNcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmZvID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gaW5mby5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJuYW1lc3BhY2VBbGlhc2VzXCIsIG5hbWVzcGFjZUFsaWFzZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobmFtZXNwYWNlQWxpYXNlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm5hbWVzcGFjZUFsaWFzZXMgPSBuYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxOYW1lc3BhY2VBbGlhc2VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5uYW1lc3BhY2VBbGlhc2VzID0gbm9kZS5uYW1lc3BhY2VBbGlhc2VzIHx8IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhczogXCJ1YVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZVVyaTogXCJodHRwOi8vb3BjZm91bmRhdGlvbi5vcmcvVUEvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZmlsbE5hbWVzcGFjZUFsaWFzZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
|
7
|
+
function _0x30c3(){const _0x2ebb03=['log','change','invalid\x20endpoint','186281ADpytY','#node-config-input-userPrivatekey','Slow\x20Subscription','.input-isDefault','#section-Advanced','apply','createElement','<div\x20class=\x22alias-entry\x22>','<span>','auto','<i>','prop','licence-widget-msg','fa\x20fa-exclamation-circle','clone','push','-messages','\x20for\x20more\x20information.','licenceType','script','alias','licence-widget-','resize','endpoint-tab-subscriptions','Connection','#node-config-input-userCertificate','addItem','securityMode','Trial\x20licence','addTab','<input/>','70%','#node-config-input-pkiName','-pending','<br>','prctbl_1OJt49BCNccbzsVzkaANOgFL','#test-connection','#node-input-maxMessageSize','protocol','None','status','_blank','SuppressedError','namespaceUri','statusText','node-config-endpoint-tabs','requestedPublishingInterval','label','element','toString','items','#node-input-maxChunkCount','node-input-alias-index','namespaceAliases','application/json','extra','toISOString','pricing-table-id','suppressed','#node-config-input-securityMode','.node-input-alias-alias','.input-requestedLifetimeCount','FAILED','.section-userIdentityType-UserName','then','#node-config-input-userName','#subscription-template','Fast\x20Subscription','attr','endpoint','POST','message','25%','error','pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW','.input-maxNotificationsPerPublish','result','156VDFKcC','length','#node-config-endpoint-tabs-content','#section-TransportSettings','.input-requestedPublishingInterval','7fUKyjv','#node-config-input-userIdentityType','click','.section-securityPolicy','typedInput','val','licenceInfo','<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>','stringify','/opcua-for-node-red/config','81755Jtjsvm','#node-config-input-securityPolicy','nodes','Anonymous','isDefault','AUTHORIZED','html','Please\x20contact\x20','width','-success','</p>','licence-widget-icon','This\x20is\x20a\x20freeware\x20licence,\x20and\x20have\x20some\x20limitations.\x0a','licence-widget','opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','requestedMaxKeepAliveCount','split','#editable-list-aliases-container','connection','Namespace\x20Aliases','each','append','invalid\x20securityMode\x20','endpoint-tab-connection','readonly','260px','Your\x20license\x20is\x20currently\x20invalid.','disabled','show','publishable-key',':checked','type','\x20to\x20acquire\x20a\x20license.','node-input-alias-namespace-uri','value','fetching\x20failed\x20with\x20error','onPremiseServerHost','#node-config-input-password','addClass','/licenceInfo','internal\x20error\x20','checked','password','Subscriptions','#node-input-receiveBufferSize','.input-publishingEnabled','parameters','UserName','editableList','#toggleAdvancedSection','\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀','<p>','http://opcfoundation.org/UA/','#node-input-sendBufferSize','height:\x20100%\x20!important;','Default\x20Subscription','text','Your\x20licence\x20is\x20valid.','subscriptions','#node-config-input-endpoint','isArray','appendTo','css','2251038LJLGUR','tabs','\x20-\x20','invalid\x20userIdentityType\x20','.input-priority','widget','337544cjfsVf','OpcUa-Endpoint2','priority','margin-top:\x2020px;','node-input-alias-alias','http://opcfoundation.org/DI/','Basic256Sha256','daysLeft','json','licence-widget-details','assign','endpoint-tab-namespace-aliases','#node-config-input-name','empty','hide','opcua\x20endpoint','children','done','https://js.stripe.com/v3/pricing-table.js','#subscriptions-container','throw','EXPIRED','.red-ui-editableList-item-remove','929990XXBeSz','data-i','#goto-config','/opcua-for-node-red','#extract-aliases','next','removeClass','catch','find','-failure','baseUrl','10097901vSKIxo','function','config','.section-userIdentityType-Certificate','name','#node-config-input-useTransport','2149698bunPcl','requestedLifetimeCount','Certificate','#checkCertificate','/opcua-for-node-red/test-connection','.input-name','style','template'];_0x30c3=function(){return _0x2ebb03;};return _0x30c3();}function _0x4f1c(_0x29c7ab,_0x39e0cc){const _0x30c3fb=_0x30c3();return _0x4f1c=function(_0x4f1c43,_0x293e5a){_0x4f1c43=_0x4f1c43-0xba;let _0xa1e66d=_0x30c3fb[_0x4f1c43];return _0xa1e66d;},_0x4f1c(_0x29c7ab,_0x39e0cc);}(function(_0x5b9652,_0x284a70){const _0x4c9e83=_0x4f1c,_0x1c691f=_0x5b9652();while(!![]){try{const _0x4be135=-parseInt(_0x4c9e83(0x186))/0x1+parseInt(_0x4c9e83(0x16a))/0x2+-parseInt(_0x4c9e83(0x14d))/0x3+parseInt(_0x4c9e83(0xff))/0x4*(-parseInt(_0x4c9e83(0x10e))/0x5)+parseInt(_0x4c9e83(0x17b))/0x6+-parseInt(_0x4c9e83(0x104))/0x7*(-parseInt(_0x4c9e83(0x153))/0x8)+parseInt(_0x4c9e83(0x175))/0x9;if(_0x4be135===_0x284a70)break;else _0x1c691f['push'](_0x1c691f['shift']());}catch(_0x4e6f21){_0x1c691f['push'](_0x1c691f['shift']());}}}(_0x30c3,0x64dd8),(function(){'use strict';const _0x29ee16=_0x4f1c;function _0x1a34f3(_0x42c6c2,_0x49b43f,_0x53b617,_0x1b2579){function _0x189925(_0x3904f2){return _0x3904f2 instanceof _0x53b617?_0x3904f2:new _0x53b617(function(_0x4ba93d){_0x4ba93d(_0x3904f2);});}return new(_0x53b617||(_0x53b617=Promise))(function(_0x293461,_0x2dde8c){const _0x28ced8=_0x4f1c;function _0x2dc6bd(_0x5c8b6f){const _0x4b2da3=_0x4f1c;try{_0x4b0ff8(_0x1b2579[_0x4b2da3(0x16f)](_0x5c8b6f));}catch(_0x343dca){_0x2dde8c(_0x343dca);}}function _0x15d377(_0x5c7f94){const _0x4a498a=_0x4f1c;try{_0x4b0ff8(_0x1b2579[_0x4a498a(0x167)](_0x5c7f94));}catch(_0x10b9da){_0x2dde8c(_0x10b9da);}}function _0x4b0ff8(_0x1e9887){const _0x64a7fe=_0x4f1c;_0x1e9887[_0x64a7fe(0x164)]?_0x293461(_0x1e9887[_0x64a7fe(0x130)]):_0x189925(_0x1e9887[_0x64a7fe(0x130)])['then'](_0x2dc6bd,_0x15d377);}_0x4b0ff8((_0x1b2579=_0x1b2579[_0x28ced8(0x18b)](_0x42c6c2,_0x49b43f||[]))[_0x28ced8(0x16f)]());});}typeof SuppressedError===_0x29ee16(0x176)?SuppressedError:function(_0x55c1f5,_0x4e73bc,_0x55235c){const _0x105d58=_0x29ee16;var _0x33e69d=new Error(_0x55235c);return _0x33e69d[_0x105d58(0x179)]=_0x105d58(0xdc),_0x33e69d[_0x105d58(0xfb)]=_0x55c1f5,_0x33e69d[_0x105d58(0xec)]=_0x4e73bc,_0x33e69d;};function _0x56e5ff(_0x5c7afe,_0x22fac8,_0x4574e5,_0x4f24a){const _0x2389fb=_0x29ee16,_0x1ed5f9=$('#'+_0x5c7afe+_0x2389fb(0x117)),_0x316fa8=$('#'+_0x5c7afe+_0x2389fb(0x173)),_0x490e70=$('#'+_0x5c7afe+_0x2389fb(0xd3)),_0x402d94=$('#'+_0x5c7afe+_0x2389fb(0xc2));let _0x4a41d1=![];_0x1ed5f9[_0x2389fb(0x161)](),_0x316fa8[_0x2389fb(0x161)](),_0x490e70[_0x2389fb(0x161)](),_0x22fac8['on'](_0x2389fb(0x106),()=>{const _0x363249=_0x2389fb;if(_0x4a41d1)return;_0x4a41d1=!![],_0x490e70[_0x363249(0x170)]('hide'),_0x490e70[_0x363249(0x114)]('Testing\x20Connection\x20...'),_0x1ed5f9['addClass'](_0x363249(0x161)),_0x316fa8[_0x363249(0x134)](_0x363249(0x161)),_0x402d94[_0x363249(0x114)]('');const {body:_0x4c449d,url:_0x412e75}=_0x4574e5();fetch(_0x412e75,{'method':_0x363249(0xf8),'headers':{'Content-Type':_0x363249(0xe8)},'body':JSON[_0x363249(0x10c)](_0x4c449d)})[_0x363249(0xf2)](_0x4a0216=>_0x4a0216[_0x363249(0x15b)]())[_0x363249(0xf2)](_0x3cf542=>{const _0x39a548=_0x363249;_0x4a41d1=![],_0x490e70['hide'](),console[_0x39a548(0x183)](JSON[_0x39a548(0x10c)](_0x3cf542,null,'\x20'));if(_0x3cf542[_0x39a548(0xfe)]==='ok')_0x1ed5f9['removeClass']('hide'),_0x316fa8[_0x39a548(0x134)]('hide'),_0x402d94['html'](_0x3cf542[_0x39a548(0xf9)]['replace']('\x0a',_0x39a548(0xd4)));else{const _0x3dcb73=_0x1ded3f=>!_0x1ded3f?'':_0x1ded3f[_0x39a548(0x11e)]('\x0a')['map'](_0x577f8d=>_0x39a548(0x141)+_0x577f8d+_0x39a548(0x118))['join']('\x0a'),_0x24e688=_0x4d0d3e=>Array[_0x39a548(0x14a)](_0x4d0d3e)?_0x4d0d3e['map'](_0x3dcb73)['join']('\x0a'):_0x3dcb73(_0x4d0d3e);_0x1ed5f9['addClass']('hide'),_0x316fa8[_0x39a548(0x170)](_0x39a548(0x161)),_0x402d94[_0x39a548(0x114)](_0x24e688(_0x3cf542[_0x39a548(0xf9)])+_0x24e688(_0x3cf542[_0x39a548(0xe9)])),_0x4f24a(new Error(_0x3cf542[_0x39a548(0xfe)]),_0x3cf542);}})[_0x363249(0x171)](_0x4d3959=>{const _0x9ac3f8=_0x363249;_0x4a41d1=![],_0x490e70[_0x9ac3f8(0x134)](_0x9ac3f8(0x161)),_0x1ed5f9['addClass'](_0x9ac3f8(0x161)),_0x316fa8['removeClass']('hide'),_0x402d94[_0x9ac3f8(0x114)](_0x9ac3f8(0x136)+_0x4d3959[_0x9ac3f8(0xf9)]),console['log']('err',_0x4d3959);});});}const _0x5258b5=_0x29ee16(0xd5),_0x6a4083=_0x29ee16(0xfc);function _0x43efaa(){return _0x1a34f3(this,arguments,void 0x0,function*(_0x7bbad2=''){const _0x77cf9=_0x4f1c,_0xffb340=_0x7bbad2+_0x77cf9(0x16d),_0x550e1e=_0xffb340+_0x77cf9(0x135),_0x2ef270=yield fetch(_0x550e1e,{'method':'POST','headers':{'Content-Type':_0x77cf9(0xe8)}}),_0x50fe31=new Date()[_0x77cf9(0xea)]();if(_0x2ef270['status']!==0xc8)return console[_0x77cf9(0x183)](_0x77cf9(0x131),_0x2ef270[_0x77cf9(0xda)],_0x2ef270[_0x77cf9(0xde)]),{'status':_0x77cf9(0xf0),'type':'FREEWARE','licenceInfo':{'expiryDate':_0x50fe31}};const _0x328581=yield _0x2ef270[_0x77cf9(0x15b)]();return _0x328581;});}const _0x758758=()=>{const _0x22a9bd=_0x29ee16;$[_0x22a9bd(0x152)]('sterfive.licenceWidget',{'options':{'baseUrl':''},'_create'(){const _0x3e5ff6=_0x22a9bd,_0xdde3f2=this,_0x120f1c=_0x3e5ff6(0x10b),_0x3c7e7e='<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>';_0x43efaa(_0xdde3f2[_0x3e5ff6(0x174)])[_0x3e5ff6(0xf2)](_0x596f74=>{const _0x492ffb=_0x3e5ff6;let _0x4310d2='',_0x58d768='',_0x45a0f5='';const _0x41ed0f=_0x596f74[_0x492ffb(0xda)],_0x84c7f1=_0x596f74[_0x492ffb(0x15a)];switch(_0x41ed0f){case _0x492ffb(0x113):_0x4310d2='fa\x20fa-check-circle';switch(_0x596f74['type']){case'TRIAL':{_0x58d768=_0x492ffb(0xce),_0x45a0f5='The\x20Trial\x20will\x20expire\x20in\x20'+_0x84c7f1+'\x20days.\x0aBuy\x20online\x20and\x20visit\x20'+_0x3c7e7e+_0x492ffb(0x12e);break;}case'PROFESSIONAL':_0x58d768=_0x492ffb(0x147);_0x84c7f1<0x5a&&_0x84c7f1>=0x0&&(_0x58d768+='\x20It\x20will\x20expire\x20in\x20'+_0x84c7f1+'\x20days.');_0x45a0f5=_0x596f74[_0x492ffb(0x10a)][_0x492ffb(0xc4)]+_0x492ffb(0x14f)+(_0x596f74['licenceInfo'][_0x492ffb(0x132)]||'');break;case'FREEWARE':_0x58d768='Freeware\x20licence',_0x45a0f5=_0x492ffb(0x11a)+_0x3c7e7e+_0x492ffb(0xc3);break;}break;case _0x492ffb(0x168):_0x4310d2='fa\x20fa-calendar-time',_0x58d768='Licence\x20has\x20expired',_0x45a0f5='Your\x20license\x20has\x20expired.\x20Please\x20contact\x20our\x20support\x20team\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.';break;case _0x492ffb(0xf0):default:_0x4310d2=_0x492ffb(0xbf),_0x58d768=_0x492ffb(0x128),_0x45a0f5=_0x492ffb(0x115)+_0x120f1c+_0x492ffb(0x140);break;}this[_0x492ffb(0xe2)][_0x492ffb(0x134)](_0x492ffb(0x11b)),this[_0x492ffb(0xe2)][_0x492ffb(0x134)](_0x492ffb(0xc7)+_0x41ed0f),this[_0x492ffb(0xe2)][_0x492ffb(0x123)]($(_0x492ffb(0xba))[_0x492ffb(0x134)](_0x492ffb(0x119))[_0x492ffb(0x123)]($(_0x492ffb(0xbc))[_0x492ffb(0x134)](_0x4310d2))),this[_0x492ffb(0xe2)][_0x492ffb(0x123)]($('<span>')[_0x492ffb(0x134)](_0x492ffb(0xbe))[_0x492ffb(0x146)](_0x58d768)),this['element'][_0x492ffb(0x123)]($(_0x492ffb(0xd4))),this['element'][_0x492ffb(0x123)]($(_0x492ffb(0xba))[_0x492ffb(0x134)](_0x492ffb(0x15c))[_0x492ffb(0x123)](_0x45a0f5));if(_0x41ed0f===_0x492ffb(0x168)||_0x41ed0f===_0x492ffb(0xf0)||_0x596f74[_0x492ffb(0x12d)]==='FREEWARE'||_0x596f74['type']==='TRIAL'){const _0x33d8bb=$('<button/>');_0x33d8bb[_0x492ffb(0xf6)]('id','subscribe-button'),_0x33d8bb['attr']('class','btn\x20btn-primary'),_0x33d8bb[_0x492ffb(0xf6)]('style',_0x492ffb(0x156)),_0x33d8bb[_0x492ffb(0x146)]('Subscribe'),this[_0x492ffb(0xe2)][_0x492ffb(0x123)](_0x33d8bb);const _0xa92186=document[_0x492ffb(0x18c)](_0x492ffb(0xc5));_0xa92186['src']=_0x492ffb(0x165),_0xa92186['async']=!![],$('head')[_0x492ffb(0x123)](_0xa92186);const _0x524556=$('<stripe-pricing-table/>');_0x524556[_0x492ffb(0xf6)](_0x492ffb(0xeb),_0x5258b5),_0x524556['attr'](_0x492ffb(0x12b),_0x6a4083),_0x524556[_0x492ffb(0xf6)](_0x492ffb(0x181),'height:\x20100%;max-height:\x20100%;'),_0x524556[_0x492ffb(0x161)](),this['element'][_0x492ffb(0x123)](_0x524556),_0x33d8bb['on']('click',()=>{const _0x3d49b0=_0x492ffb;_0x524556['show'](),_0x33d8bb[_0x3d49b0(0x161)](),this['element'][_0x3d49b0(0xf6)](_0x3d49b0(0x181),_0x3d49b0(0x144));});}})[_0x3e5ff6(0x171)](_0x2036f2=>{console['log'](_0x2036f2);});}});};_0x758758();function _0x419f77(_0x2c696f){const _0x374fed=_0x29ee16;let _0x234e1f;try{_0x234e1f=new URL(_0x2c696f);}catch(_0x1fd24a){return![];}return _0x234e1f[_0x374fed(0xd8)]==='opc.tcp:';}const _0x353b3a={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED[_0x29ee16(0x110)]['registerType'](_0x29ee16(0x154),{'category':_0x29ee16(0x177),'paletteLabel':_0x29ee16(0x162),'defaults':{'name':{'value':''},'endpoint':{'value':_0x29ee16(0x11c),'required':!![],'validate':_0x419f77},'securityMode':{'value':_0x29ee16(0xd9)},'securityPolicy':{'value':_0x29ee16(0xd9),'validate':_0x50f2cf=>{if(!_0x50f2cf)return![];return!![];}},'userIdentityType':{'value':_0x29ee16(0x111)},'pkiName':{'value':'','validate':_0x58cc6c=>!_0x58cc6c||_0x58cc6c['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':'Default\x20Subscription','isDefault':!![],'parameters':Object['assign']({},_0x353b3a)},{'id':'s2','name':_0x29ee16(0x188),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0x64,'requestedMaxKeepAliveCount':0x3,'requestedPublishingInterval':0x1388,'maxNotificationsPerPublish':0x64,'priority':0xa}},{'id':'s3','name':_0x29ee16(0xf5),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0xfa0,'requestedMaxKeepAliveCount':0x32,'requestedPublishingInterval':0xfa,'maxNotificationsPerPublish':0x64,'priority':0xc8}}],'required':![]},'namespaceAliases':{'value':[{'alias':'ua','namespaceUri':_0x29ee16(0x142),'isWellKnown':!![],'isDefault':!![]},{'alias':'di','namespaceUri':_0x29ee16(0x158),'isWellKnown':!![],'isDefault':!![]}],'required':![]}},'credentials':{'userName':{'type':_0x29ee16(0x146)},'password':{'type':_0x29ee16(0x138)},'userCertificate':{'type':_0x29ee16(0x146)},'userPrivatekey':{'type':_0x29ee16(0x138)}},'label':function(){const _0x375aeb=_0x29ee16;return this[_0x375aeb(0x179)]||this[_0x375aeb(0xf7)]||_0x375aeb(0x185);},'oneditsave'(){const _0x544bb0=_0x29ee16,_0x211a06=$(_0x544bb0(0x10f)),_0xef655=$(_0x544bb0(0xed));_0x211a06[_0x544bb0(0x109)]()===_0x544bb0(0xd9)&&_0xef655[_0x544bb0(0x146)]('None');{const _0x4c9c88=$(_0x544bb0(0x166))[_0x544bb0(0x13e)](_0x544bb0(0xe4)),_0x262606=[],_0x129713=_0x409ac7=>_0x409ac7;_0x4c9c88[_0x544bb0(0x122)](function(_0x2de7be,_0x11a605){const _0x51e5dd=_0x544bb0,_0x24960a=$(this),_0x594478={'id':'s'+_0x2de7be,'name':_0x24960a[_0x51e5dd(0x172)](_0x51e5dd(0x180))[_0x51e5dd(0x109)](),'isDefault':!!_0x24960a[_0x51e5dd(0x172)](_0x51e5dd(0x189))[_0x51e5dd(0x109)](),'parameters':{'publishingEnabled':!!_0x24960a[_0x51e5dd(0x172)](_0x51e5dd(0x13b))['is'](_0x51e5dd(0x12c)),'requestedLifetimeCount':_0x129713(_0x24960a[_0x51e5dd(0x172)]('.input-requestedLifetimeCount')[_0x51e5dd(0x109)]()),'requestedMaxKeepAliveCount':_0x129713(_0x24960a[_0x51e5dd(0x172)]('.input-requestedMaxKeepAliveCount')[_0x51e5dd(0x109)]()),'requestedPublishingInterval':_0x129713(_0x24960a['find'](_0x51e5dd(0x103))[_0x51e5dd(0x109)]()),'maxNotificationsPerPublish':_0x129713(_0x24960a['find']('.input-maxNotificationsPerPublish')[_0x51e5dd(0x109)]()),'priority':_0x129713(_0x24960a['find'](_0x51e5dd(0x151))[_0x51e5dd(0x109)]())}};_0x594478[_0x51e5dd(0x13c)]['publishingEnabled']=!![],_0x594478['isDefault']&&_0x594478['id']==='s0'&&(_0x594478[_0x51e5dd(0x179)]=_0x51e5dd(0x145)),_0x262606[_0x51e5dd(0xc1)](_0x594478);}),this[_0x544bb0(0x148)]=_0x262606;}{const _0x1b3d4b=$('#editable-list-aliases-container')[_0x544bb0(0x13e)](_0x544bb0(0xe4)),_0x3ffa8e=[];_0x1b3d4b[_0x544bb0(0x122)](function(_0x5af0c3,_0xfe852){const _0x4c2aa0=_0x544bb0,_0x40de3f=$(this),_0x5cfebd={'namespaceUri':_0x40de3f[_0x4c2aa0(0x172)]('.node-input-alias-namespace-uri')['val'](),'alias':_0x40de3f[_0x4c2aa0(0x172)](_0x4c2aa0(0xee))[_0x4c2aa0(0x109)]()};_0x3ffa8e['push'](_0x5cfebd);}),this[_0x544bb0(0xe7)]=_0x3ffa8e;}},'oneditprepare'(){const _0x42160f=_0x29ee16,_0x22e61b=this,_0xb23647=RED[_0x42160f(0x14e)]['create']({'id':_0x42160f(0xdf),'onchange':function(_0x3cf91f){const _0x17ecf6=_0x42160f;$(_0x17ecf6(0x101))[_0x17ecf6(0x163)]()[_0x17ecf6(0x161)](),$('#'+_0x3cf91f['id'])[_0x17ecf6(0x12a)]();}});_0xb23647['addTab']({'id':_0x42160f(0x125),'label':_0x42160f(0xca)},0x0),_0xb23647['addTab']({'id':_0x42160f(0xc9),'label':_0x42160f(0x139)},0x1),_0xb23647[_0x42160f(0xcf)]({'id':_0x42160f(0x15e),'label':_0x42160f(0x121)},0x2),setTimeout(function(){const _0x234dff=_0x42160f;_0xb23647[_0x234dff(0xc8)]();},0x0);{const _0x23938a=_0x548ef7=>{const _0x43609d=_0x42160f;switch(_0x548ef7){case null:case undefined:case'':case'None':$(_0x43609d(0x107))['hide']();break;case'Sign':case'SignAndEncrypt':{const _0x29cb3a=$('.section-securityPolicy');(_0x29cb3a['val']()===_0x43609d(0xd9)||_0x29cb3a[_0x43609d(0x109)]()==='')&&_0x29cb3a[_0x43609d(0x109)](_0x43609d(0x159)),$('.section-securityPolicy')[_0x43609d(0x12a)]();}break;default:console['log'](_0x43609d(0x124)+_0x548ef7);}};_0x23938a(_0x22e61b[_0x42160f(0xcd)]);const _0x1769cc=$(_0x42160f(0xed));_0x1769cc['on'](_0x42160f(0x184),()=>{const _0x19b897=_0x42160f,_0x761f13=_0x1769cc[_0x19b897(0x109)]();_0x23938a(_0x761f13);});}const _0x480b4a=$('#licenceWidget');_0x480b4a['licenceWidget']({'baseUrl':''});{const _0x22a0d5=$(_0x42160f(0xf1)),_0x1aaf6e=$(_0x42160f(0x178)),_0x10a1af=_0x5057e4=>{const _0x2646f5=_0x42160f;_0x5057e4=_0x5057e4||'Anonymous';switch(_0x5057e4){case _0x2646f5(0x111):$('#node-config-input-userName')['val'](''),$(_0x2646f5(0x133))[_0x2646f5(0x109)](''),_0x22a0d5[_0x2646f5(0x161)](),_0x1aaf6e[_0x2646f5(0x161)]();break;case _0x2646f5(0x13d):_0x22a0d5['show'](),_0x1aaf6e['hide']();break;case _0x2646f5(0x17d):$(_0x2646f5(0xf3))[_0x2646f5(0x109)](''),$('#node-config-input-password')['val'](''),_0x1aaf6e[_0x2646f5(0x12a)](),_0x22a0d5[_0x2646f5(0x161)]();break;default:console['log'](_0x2646f5(0x150)+_0x5057e4);}};_0x10a1af(_0x22e61b['userIdentityType']);const _0x53e5fd=$(_0x42160f(0x105));_0x53e5fd['on'](_0x42160f(0x184),()=>{const _0x7f1cd8=_0x42160f,_0x43167a=_0x53e5fd[_0x7f1cd8(0x109)]();_0x10a1af(_0x43167a);});}{$(_0x42160f(0x18a))[_0x42160f(0x161)](),$('#toggleAdvancedSection')[_0x42160f(0xbd)]('checked',![]),$(_0x42160f(0x13f))['on']('change',function(){const _0x423e7b=_0x42160f;$(this)[_0x423e7b(0xbd)](_0x423e7b(0x137))?$(_0x423e7b(0x18a))['show']():$(_0x423e7b(0x18a))[_0x423e7b(0x161)]();});}const _0x20b269=$(_0x42160f(0x17a))[_0x42160f(0xbd)]('checked');_0x20b269?$(_0x42160f(0x102))['show']():$(_0x42160f(0x102))[_0x42160f(0x161)]();$(_0x42160f(0x17a))['on'](_0x42160f(0x184),function(){const _0xfaa850=_0x42160f;$(this)[_0xfaa850(0xbd)](_0xfaa850(0x137))?$(_0xfaa850(0x102))['show']():$(_0xfaa850(0x102))[_0xfaa850(0x161)]();});{$(_0x42160f(0x17e))['on'](_0x42160f(0x106),()=>_0x1a34f3(this,void 0x0,void 0x0,function*(){const _0x190f93=_0x42160f,_0x305ede=yield fetch('/opcua-for-node-red/client_certificate.json'),_0x2a24cb=yield _0x305ede[_0x190f93(0x15b)](),_0x53b6e6=JSON[_0x190f93(0x10c)](_0x2a24cb,null,'\x20');alert(_0x53b6e6);}));}$(_0x42160f(0x16c))['on'](_0x42160f(0x106),()=>_0x1a34f3(this,void 0x0,void 0x0,function*(){const _0x55b1a9=_0x42160f;window['open'](_0x55b1a9(0x10d),_0x55b1a9(0xdb));}));function _0x1fe28e(){const _0x2ef9cb=_0x42160f;var _0x1a3cdd;return{'id':_0x22e61b['id'],'endpoint':$(_0x2ef9cb(0x149))[_0x2ef9cb(0x109)](),'name':$(_0x2ef9cb(0x15f))[_0x2ef9cb(0x109)](),'pkiName':(_0x1a3cdd=$(_0x2ef9cb(0xd2)))===null||_0x1a3cdd===void 0x0?void 0x0:_0x1a3cdd[_0x2ef9cb(0x109)](),'securityMode':$(_0x2ef9cb(0xed))[_0x2ef9cb(0x109)](),'securityPolicy':$(_0x2ef9cb(0x10f))[_0x2ef9cb(0x109)](),'userIdentityType':$(_0x2ef9cb(0x105))[_0x2ef9cb(0x109)](),'userName':$(_0x2ef9cb(0xf3))[_0x2ef9cb(0x109)](),'password':$(_0x2ef9cb(0x133))[_0x2ef9cb(0x109)](),'userCertificate':$(_0x2ef9cb(0xcb))['val'](),'userPrivatekey':$(_0x2ef9cb(0x187))['val'](),'certificate':$('#node-input-certificate')[_0x2ef9cb(0x109)](),'useTransport':$('#node-input-useTransport')['prop'](_0x2ef9cb(0x137)),'maxChunkCount':$(_0x2ef9cb(0xe5))[_0x2ef9cb(0x109)](),'maxMessageSize':$(_0x2ef9cb(0xd7))['val'](),'receiveBufferSize':$(_0x2ef9cb(0x13a))[_0x2ef9cb(0x109)](),'sendBufferSize':$(_0x2ef9cb(0x143))[_0x2ef9cb(0x109)]()};}{_0x56e5ff(_0x42160f(0x120),$(_0x42160f(0xd6)),()=>({'url':_0x42160f(0x17f),'body':{'endpointNode':_0x1fe28e()}}),()=>{});}{const _0x5bad28=(_0x5dd283,_0x31d9e1)=>{const _0x4c1770=_0x42160f;var _0x1bbaf5=_0x5dd283[_0x4c1770(0x116)]()||0x64;_0x5dd283[_0x4c1770(0x172)](_0x4c1770(0xe1))[_0x4c1770(0x108)](_0x4c1770(0x116),_0x1bbaf5-0xf);},_0x577fca=$(_0x42160f(0x166))['css']({'min-height':'150px','min-width':'260px'})['editableList']({'addItem':(_0x28980c,_0x1100a1,_0x8eea2)=>{const _0x148d39=_0x42160f,_0x19b7f9=_0x8eea2,_0x4ca9ac=$(_0x148d39(0xf4))[_0x148d39(0xc0)]()[_0x148d39(0x14b)](_0x28980c);_0x4ca9ac['removeAttr']('id')[_0x148d39(0x170)](_0x148d39(0x161))[_0x148d39(0x170)](_0x148d39(0x182))[_0x148d39(0xf6)](_0x148d39(0x16b),_0x1100a1),_0x4ca9ac['find'](_0x148d39(0x180))[_0x148d39(0x109)](_0x19b7f9[_0x148d39(0x179)]),_0x4ca9ac['find'](_0x148d39(0x103))['val'](_0x19b7f9[_0x148d39(0x13c)][_0x148d39(0xe0)]),_0x4ca9ac[_0x148d39(0x172)]('.input-requestedMaxKeepAliveCount')[_0x148d39(0x109)](_0x19b7f9[_0x148d39(0x13c)][_0x148d39(0x11d)]),_0x4ca9ac[_0x148d39(0x172)](_0x148d39(0xef))['val'](_0x19b7f9[_0x148d39(0x13c)][_0x148d39(0x17c)]),_0x4ca9ac[_0x148d39(0x172)](_0x148d39(0xfd))[_0x148d39(0x109)](_0x19b7f9['parameters']['maxNotificationsPerPublish']||0x0),_0x4ca9ac[_0x148d39(0x172)]('.input-priority')[_0x148d39(0x109)](_0x19b7f9['parameters'][_0x148d39(0x155)]||0x0),_0x4ca9ac[_0x148d39(0x172)]('.subscription-id')[_0x148d39(0x146)](''+_0x1100a1),_0x19b7f9[_0x148d39(0x112)]&&_0x4ca9ac[_0x148d39(0x172)](_0x148d39(0x180))[_0x148d39(0xbd)](_0x148d39(0x126),!![]),_0x4ca9ac[_0x148d39(0x172)]('.input-isDefault')[_0x148d39(0xbd)](_0x148d39(0x137),_0x19b7f9[_0x148d39(0x112)]),_0x19b7f9[_0x148d39(0x112)]&&(_0x28980c[_0x148d39(0x172)](_0x148d39(0x169))[_0x148d39(0x134)](_0x148d39(0x161)),setTimeout(()=>_0x4ca9ac[_0x148d39(0x172)](_0x148d39(0x189))['prop'](_0x148d39(0x129),!![]),0xa));},'removable':!![],'resizeItem':_0x5bad28}),_0x3311f3=()=>{const _0x46958f=_0x42160f,_0x4c372f=_0x22e61b[_0x46958f(0x148)]||[];_0x4c372f[_0x46958f(0x100)]===0x0&&_0x4c372f[_0x46958f(0xc1)]({'id':'s1','name':'Default\x20Subscription','isDefault':!![],'parameters':Object[_0x46958f(0x15d)]({},_0x353b3a)});_0x577fca[_0x46958f(0x13e)]('empty');for(const _0x11bc80 of _0x4c372f){_0x577fca[_0x46958f(0x13e)](_0x46958f(0xcc),_0x11bc80);}};_0x3311f3();}{function _0x199eb2(_0x5b425b,_0x4813e3,_0x43abf0){const _0x137704=_0x42160f,_0x3e9789=_0x43abf0,_0x327cd6=$(_0x137704(0x18d))['appendTo'](_0x5b425b);$(_0x137704(0xd0),{'class':_0x137704(0xe6),'type':'text'})[_0x137704(0x109)](_0x43abf0[_0x137704(0xc6)]||'')[_0x137704(0x14c)]({'width':'5%'})[_0x137704(0x14b)](_0x327cd6)[_0x137704(0x109)](_0x4813e3[_0x137704(0xe3)]()),$(_0x137704(0xd0),{'class':_0x137704(0x157),'type':_0x137704(0x146)})[_0x137704(0x109)](_0x43abf0[_0x137704(0xc6)]||'')[_0x137704(0x14c)]({'width':_0x137704(0xfa)})['appendTo'](_0x327cd6)[_0x137704(0x109)](_0x3e9789[_0x137704(0xc6)]),$(_0x137704(0xd0),{'class':_0x137704(0x12f),'type':'text'})['val'](_0x43abf0['namespaceUri']||'')['css']({'width':_0x137704(0xd1)})[_0x137704(0x14b)](_0x327cd6)[_0x137704(0x109)](_0x3e9789[_0x137704(0xdd)]);}const _0x2defec=$(_0x42160f(0x11f))[_0x42160f(0x14c)]({'min-height':'150px','min-width':_0x42160f(0x127)})[_0x42160f(0x13e)]({'addButton':![],'removable':![],'height':_0x42160f(0xbb),'scrollOnAdd':![],'addItem'(_0x51011c,_0x4715cf,_0x287cd0){_0x199eb2(_0x51011c,_0x4715cf,_0x287cd0);}});function _0x8c8f80(){const _0xe7c06f=_0x42160f;_0x2defec[_0xe7c06f(0x13e)]('items'),_0x2defec[_0xe7c06f(0x13e)](_0xe7c06f(0x160));for(const _0xa123de of _0x22e61b[_0xe7c06f(0xe7)]||[]){_0x2defec['editableList']('addItem',_0xa123de);}}{$(_0x42160f(0x16e))['on'](_0x42160f(0x106),()=>_0x1a34f3(this,void 0x0,void 0x0,function*(){const _0x209c30=_0x42160f,_0x292f3b={'endpointNode':_0x1fe28e(),'namespaceAliases':_0x22e61b[_0x209c30(0xe7)]||[]},_0x399eb4=yield fetch('/opcua-for-node-red/extract-namespace-aliases',{'method':_0x209c30(0xf8),'headers':{'Content-Type':_0x209c30(0xe8)},'body':JSON[_0x209c30(0x10c)](_0x292f3b)}),_0xc180f7=yield _0x399eb4[_0x209c30(0x15b)](),_0x563f5d=_0xc180f7[_0x209c30(0xe7)];console['log'](_0x209c30(0xe7),_0x563f5d),Array[_0x209c30(0x14a)](_0x563f5d)&&(_0x22e61b[_0x209c30(0xe7)]=_0x563f5d,_0x8c8f80());})),_0x22e61b[_0x42160f(0xe7)]=_0x22e61b[_0x42160f(0xe7)]||[{'alias':'ua','namespaceUri':_0x42160f(0x142),'isWellKnown':!![],'isDefault':!![]}];}_0x8c8f80();}}});}()));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxYTM0ZjMiLCJfMHg0MmM2YzIiLCJfMHg0OWI0M2YiLCJfMHg1M2I2MTciLCJfMHgxYjI1NzkiLCJfMHgxODk5MjUiLCJfMHgzOTA0ZjIiLCJfMHg0YmE5M2QiLCJQcm9taXNlIiwiXzB4MjkzNDYxIiwiXzB4MmRkZThjIiwiXzB4MmRjNmJkIiwiXzB4NWM4YjZmIiwiXzB4NGIwZmY4IiwiXzB4MzQzZGNhIiwiXzB4MTVkMzc3IiwiXzB4NWM3Zjk0IiwiXzB4MTBiOWRhIiwiXzB4MWU5ODg3IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NTVjMWY1IiwiXzB4NGU3M2JjIiwiXzB4NTUyMzVjIiwiXzB4MzNlNjlkIiwiRXJyb3IiLCJfMHg1NmU1ZmYiLCJfMHg1YzdhZmUiLCJfMHgyMmZhYzgiLCJfMHg0NTc0ZTUiLCJfMHg0ZjI0YSIsIl8weDFlZDVmOSIsIiQiLCJfMHgzMTZmYTgiLCJfMHg0OTBlNzAiLCJfMHg0MDJkOTQiLCJfMHg0YTQxZDEiLCJib2R5IiwiXzB4NGM0NDlkIiwidXJsIiwiXzB4NDEyZTc1IiwiZmV0Y2giLCJKU09OIiwiXzB4NGEwMjE2IiwiXzB4M2NmNTQyIiwiY29uc29sZSIsIl8weDNkY2I3MyIsIl8weDFkZWQzZiIsIl8weDU3N2Y4ZCIsIl8weDI0ZTY4OCIsIl8weDRkMGQzZSIsIkFycmF5IiwiXzB4NGQzOTU5IiwiXzB4NTI1OGI1IiwiXzB4NmE0MDgzIiwiXzB4NDNlZmFhIiwiYXJndW1lbnRzIiwiXzB4N2JiYWQyIiwiXzB4ZmZiMzQwIiwiXzB4NTUwZTFlIiwiXzB4MmVmMjcwIiwiXzB4NTBmZTMxIiwiRGF0ZSIsIl8weDMyODU4MSIsIl8weDc1ODc1OCIsIl8weGRkZTNmMiIsIl8weDEyMGYxYyIsIl8weDNjN2U3ZSIsIl8weDU5NmY3NCIsIl8weDQzMTBkMiIsIl8weDU4ZDc2OCIsIl8weDQ1YTBmNSIsIl8weDQxZWQwZiIsIl8weDg0YzdmMSIsIl8weDMzZDhiYiIsIl8weGE5MjE4NiIsImRvY3VtZW50IiwiXzB4NTI0NTU2IiwiXzB4MjAzNmYyIiwiXzB4NDE5Zjc3IiwiXzB4MmM2OTZmIiwiXzB4MjM0ZTFmIiwiVVJMIiwiXzB4MWZkMjRhIiwiXzB4MzUzYjNhIiwiUkVEIiwiXzB4NTBmMmNmIiwiXzB4NThjYzZjIiwiT2JqZWN0IiwiXzB4MjExYTA2IiwiXzB4ZWY2NTUiLCJfMHg0YzljODgiLCJfMHgyNjI2MDYiLCJfMHgxMjk3MTMiLCJfMHg0MDlhYzciLCJfMHgyZGU3YmUiLCJfMHgxMWE2MDUiLCJfMHgyNDk2MGEiLCJfMHg1OTQ0NzgiLCJfMHgxYjNkNGIiLCJfMHgzZmZhOGUiLCJfMHg1YWYwYzMiLCJfMHhmZTg1MiIsIl8weDQwZGUzZiIsIl8weDVjZmViZCIsIl8weDIyZTYxYiIsIl8weGIyMzY0NyIsIl8weDNjZjkxZiIsInNldFRpbWVvdXQiLCJfMHgyMzkzOGEiLCJfMHg1NDhlZjciLCJ1bmRlZmluZWQiLCJfMHgyOWNiM2EiLCJfMHgxNzY5Y2MiLCJfMHg3NjFmMTMiLCJfMHg0ODBiNGEiLCJfMHgyMmEwZDUiLCJfMHgxYWFmNmUiLCJfMHgxMGExYWYiLCJfMHg1MDU3ZTQiLCJfMHg1M2U1ZmQiLCJfMHg0MzE2N2EiLCJfMHgyMGIyNjkiLCJfMHgzMDVlZGUiLCJfMHgyYTI0Y2IiLCJfMHg1M2I2ZTYiLCJhbGVydCIsIndpbmRvdyIsIl8weDFmZTI4ZSIsIl8weDFhM2NkZCIsIl8weDViYWQyOCIsIl8weDVkZDI4MyIsIl8weDMxZDllMSIsIl8weDFiYmFmNSIsIl8weDU3N2ZjYSIsIl8weDI4OTgwYyIsIl8weDExMDBhMSIsIl8weDhlZWEyIiwiXzB4MTliN2Y5IiwiXzB4NGNhOWFjIiwiXzB4MzMxMWYzIiwiXzB4NGMzNzJmIiwiXzB4MTFiYzgwIiwiXzB4MTk5ZWIyIiwiXzB4NWI0MjViIiwiXzB4NDgxM2UzIiwiXzB4NDNhYmYwIiwiXzB4M2U5Nzg5IiwiXzB4MzI3Y2Q2IiwiXzB4MmRlZmVjIiwiXzB4NTEwMTFjIiwiXzB4NDcxNWNmIiwiXzB4Mjg3Y2QwIiwiXzB4OGM4ZjgwIiwiXzB4YTEyM2RlIiwiXzB4MjkyZjNiIiwiXzB4Mzk5ZWI0IiwiXzB4YzE4MGY3IiwiXzB4NTYzZjVkIl0sIm1hcHBpbmdzIjoiODVKQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLHlCQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLHlCQUEyQixHLENBQU1ILFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQW1CWSxTQUFuQixDQUFMLEMsRUFBbUMsTUFBT0MsU0FBUCxDLENBQVlQLFNBQUEsQ0FBT08sU0FBUCxDLEdBQ2hGLFNBQVNKLFNBQVQsQ0FBY0ssU0FBZCxDLHlCQUF3QkEsU0FBQSxDLGdCQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLGdCQUFBLENBQVIsQ0FBZCxDQUFzQ2IsU0FBQSxDQUFNYSxTQUFBLEMsZ0JBQUEsQ0FBTixFLE1BQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxTQUFwQyxDLEVBQzlERixTQUFBLENBQU0sQ0FBQVQsU0FBQSxDQUFZQSxTQUFBLEMsZ0JBQUEsRUFBZ0JILFNBQWhCLENB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VUFBV0ssU0FBWCxJQUFvQmpELFNBQUEsQyxlQUFBLEdBQXlCLEVBQTdDLEMsQ0FDSTRDLFNBQUEsQyxjQUFBLEUsU0FBQSxDQUFvQ0ssU0FBcEMsQyxJQUtKMUgsQ0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLENBQWtDLElBQU0vQixTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVywyQkFDOUQwSixTQUFBLENBQVUsQyxjQUNaLENBQWMzQixTQUFBLEVBREYsQyxrQkFFWixDQUFrQnZCLFNBQUEsQyxlQUFBLEdBQXlCLEVBRi9CLEMsQ0FJVm1ELFNBQUEsQ0FBTyxNQUFNbkgsS0FBQSxDLCtDQUFBLENBQXVELEMsUUFDdEUsQyxlQURzRSxDLFNBRXRFLENBQVMsQyxjQUFFLEMsZUFBRixDQUY2RCxDLE1BR3RFLENBQU1DLElBQUEsQyxnQkFBQSxFQUFlaUgsU0FBZixDQUhnRSxDQUF2RCxDLENBS2JFLFNBQUEsQ0FBTyxNQUFNRCxTQUFBLEMsZ0JBQUEsRyxDQUNiRSxTQUFBLENBQW1CRCxTQUFBLEMsZUFBQSxDLENBQ3pCaEgsT0FBQSxDLEtBQUEsRSxlQUFBLENBQWdDaUgsU0FBaEMsQyxDQUNJM0csS0FBQSxDLGdCQUFBLEVBQWMyRyxTQUFkLEMsR0FDQXJELFNBQUEsQyxlQUFBLEVBQXdCcUQsUyxDQUN4QkwsU0FBQSxFLEdBZmdDLENBQXhDLEMsQ0FrQkFoRCxTQUFBLEMsZUFBQSxFQUF3QkEsU0FBQSxDLGVBQUEsR0FBeUIsQ0FDN0MsQyxPQUNJLEMsSUFESixDLGNBRUksQyxnQkFGSixDLGFBR0ksQyxJQUhKLEMsV0FJSSxDLElBSkosQ0FENkMsQyxFQVNyRGdELFNBQUEsRSxHQXZkOEIsQ0FBMUMsQyxFQXJPSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQgPSAoc3RyKSA9PiAhc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gYDxwPiR7YX08L3A+YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQyID0gKHN0cikgPT4gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ci5tYXAoYWRhcHQpLmpvaW4oXCJcXG5cIikgOiBhZGFwdChzdHIpKTtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoYWRhcHQyKGpzb24ubWVzc2FnZSkgKyBhZGFwdDIoanNvbi5leHRyYSkpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChuZXcgRXJyb3IoanNvbi5yZXN1bHQpLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJpbnRlcm5hbCBlcnJvciBcIiArIGVyci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaWNpbmdUYWJsZUlkID0gXCJwcmN0YmxfMU9KdDQ5QkNOY2NienNWemthQU5PZ0ZMXCI7XG4gICAgY29uc3QgcHVibGlzaGFibGVLZXkgPSBcInBrX2xpdmVfNTFIc0Uxc0JDTmNjYnpzVnp0N3phcTJ1djIwcGtyeVdsbEF6dlpnWmQ1QWh3Rkk5QTNxQkllT0p2SndRRjA4bERvTHBGcUxqd215QTc5d25QbllMc3ZLanQwMDlmMDBWcENXXCI7XG4gICAgZnVuY3Rpb24gZmV0Y2hMaWNlbmNlSW5mbygpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCBhcmd1bWVudHMsIHZvaWQgMCwgZnVuY3Rpb24qIChiYXNlVXJsID0gXCJcIikge1xuICAgICAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9saWNlbmNlSW5mb2A7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogXCJGQUlMRURcIiwgdHlwZTogXCJGUkVFV0FSRVwiLCBsaWNlbmNlSW5mbzogeyBleHBpcnlEYXRlOiB0b2RheSB9IH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBqc29uID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICByZXR1cm4ganNvbjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlY2xhcmVMaWNlbmNlV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmxpY2VuY2VXaWRnZXRcIiwge1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWN0TGluayA9IGA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tXCIgc3ViamVjdD1cIkBvcGN1YS9mb3Itbm9kZS1yZWQgc3VwcG9ydCByZXF1ZXN0XCI+bWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tPC9hPmA7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2Vic2l0ZUxpbmsgPSBgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnN0ZXJmaXZlLmNvbS9vcGN1YS9mb3Itbm9kZS1yZWRcIiB0YXJnZXQ94oCdX2JsYW5r4oCdPlN0ZXJmaXZlJ3Mgd2Vic2l0ZSA8L2E+YDtcbiAgICAgICAgICAgICAgICBmZXRjaExpY2VuY2VJbmZvKHRoYXQuYmFzZVVybClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGljb24gPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbXNnID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXMgPSBqc29uLnN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF5TGVmdCA9IGpzb24uZGF5c0xlZnQ7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQVVUSE9SSVpFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWNoZWNrLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoanNvbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJUUklBTFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIlRyaWFsIGxpY2VuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgVGhlIFRyaWFsIHdpbGwgZXhwaXJlIGluICR7ZGF5TGVmdH0gZGF5cy5cXG5CdXkgb25saW5lIGFuZCB2aXNpdCAke3dlYnNpdGVMaW5rfSB0byBhY3F1aXJlIGEgbGljZW5zZS5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlBST0ZFU1NJT05BTFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gYFlvdXIgbGljZW5jZSBpcyB2YWxpZC5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRheUxlZnQgPCA5MCAmJiBkYXlMZWZ0ID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgKz0gYCBJdCB3aWxsIGV4cGlyZSBpbiAke2RheUxlZnR9IGRheXMuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRldGFpbHMgPSBgJHt3ZWJzaXRlTGlua308YnI+JHtjb250YWN0TGlua31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGpzb24ubGljZW5jZUluZm8ubGljZW5jZVR5cGUgKyBcIiAtIFwiICsgKGpzb24ubGljZW5jZUluZm8ub25QcmVtaXNlU2VydmVySG9zdCB8fCBcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRlJFRVdBUkVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiRnJlZXdhcmUgbGljZW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGBUaGlzIGlzIGEgZnJlZXdhcmUgbGljZW5jZSwgYW5kIGhhdmUgc29tZSBsaW1pdGF0aW9ucy5cXG4ke3dlYnNpdGVMaW5rfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkVYUElSRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1jYWxlbmRhci10aW1lXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJMaWNlbmNlIGhhcyBleHBpcmVkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiWW91ciBsaWNlbnNlIGhhcyBleHBpcmVkLiBQbGVhc2UgY29udGFjdCBvdXIgc3VwcG9ydCB0ZWFtIG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRkFJTEVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiWW91ciBsaWNlbnNlIGlzIGN1cnJlbnRseSBpbnZhbGlkLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgUGxlYXNlIGNvbnRhY3QgJHtjb250YWN0TGlua30gb3IgdmlzaXQgb3VyIHdlYnNpdGUgdG8gcmVuZXcgeW91ciBsaWNlbnNlIGFuZCByZWdhaW4gYWNjZXNzIHRvIG91ciBzZXJ2aWNlcy7MgGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLyoqICovXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZWxlbWVudC50ZXh0KFwiTGljZW5jZSBcIiArIEpTT04uc3RyaW5naWZ5KGpzb24pKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZENsYXNzKFwibGljZW5jZS13aWRnZXRcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LVwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtaWNvblwiKS5hcHBlbmQoJChcIjxpPlwiKS5hZGRDbGFzcyhpY29uKSkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1tc2dcIikudGV4dChtc2cpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPGJyPlwiKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWRldGFpbHNcIikuYXBwZW5kKGRldGFpbHMpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gXCJFWFBJUkVEXCIgfHwgc3RhdHVzID09PSBcIkZBSUxFRFwiIHx8IGpzb24udHlwZSA9PT0gXCJGUkVFV0FSRVwiIHx8IGpzb24udHlwZSA9PT0gXCJUUklBTFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVCdXR0b24gPSAkKFwiPGJ1dHRvbi8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJpZFwiLCBcInN1YnNjcmliZS1idXR0b25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uYXR0cihcImNsYXNzXCIsIFwiYnRuIGJ0bi1wcmltYXJ5XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJzdHlsZVwiLCBcIm1hcmdpbi10b3A6IDIwcHg7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLnRleHQoXCJTdWJzY3JpYmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN1YnNjcmliZUJ1dHRvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBzY3JpcHQgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9qcy5zdHJpcGUuY29tL3YzL3ByaWNpbmctdGFibGUuanNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHNjcmlwdCBlbGVtZW50IHRvIHRoZSBoZWFkIChvciBib2R5KSBvZiB0aGUgZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICQoXCJoZWFkXCIpLmFwcGVuZChzY3JpcHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaXBlUHJpY2luZ1RhYmxlID0gJChcIjxzdHJpcGUtcHJpY2luZy10YWJsZS8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuYXR0cihcInByaWNpbmctdGFibGUtaWRcIiwgcHJpY2luZ1RhYmxlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwdWJsaXNoYWJsZS1rZXlcIiwgcHVibGlzaGFibGVLZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJzdHlsZVwiLCBcImhlaWdodDogMTAwJTttYXgtaGVpZ2h0OiAxMDAlO1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN0cmlwZVByaWNpbmdUYWJsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgZGVjbGFyZUxpY2VuY2VXaWRnZXQoKTtcbiAgICBmdW5jdGlvbiBpc1ZhbGlkT1BDX1VBX1VSSShzdHIpIHtcbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHVybCA9IG5ldyBVUkwoc3RyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoXykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cmwucHJvdG9jb2wgPT09IFwib3BjLnRjcDpcIjtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMgPSB7XG4gICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiAxMDAwLFxuICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogMTAsIC8vIGV2ZXJ5IDEwIHNlY29uZHNcbiAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiAxMDAwLFxuICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogMCxcbiAgICAgICAgcHJpb3JpdHk6IDEwMCxcbiAgICB9O1xuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1FbmRwb2ludDJcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJjb25maWdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm9wY3VhIGVuZHBvaW50XCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzL1VBL1NhbXBsZVNlcnZlclwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiBpc1ZhbGlkT1BDX1VBX1VSSSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBTZWN1cml0eSBNb2RlXG4gICAgICAgICAgICBzZWN1cml0eU1vZGU6IHsgdmFsdWU6IFwiTm9uZVwiIH0sXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIk5vbmVcIixcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogeyB2YWx1ZTogXCJBbm9ueW1vdXNcIiB9LFxuICAgICAgICAgICAgcGtpTmFtZTogeyB2YWx1ZTogXCJcIiwgdmFsaWRhdGU6ICh2YWx1ZSkgPT4gKCF2YWx1ZSB8fCB2YWx1ZS5tYXRjaCgvWzAtOWEtekEtWl0qLykgPyB0cnVlIDogZmFsc2UpIH0sXG4gICAgICAgICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIFVzZXJOYW1lXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgLy8gICAgIHVzZXJOYW1lOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgLy8gICAgIHBhc3N3b3JkOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgICAgIC8vICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIENlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAgICAgdXNlckNlcnRpZmljYXRlOiB7IHZhbHVicm93c2VQYXRoZTogXCJcIiwgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIC8vICAgICB1c2VyUHJpdmF0ZWtleTogeyB2YWx1ZTogXCJcIiAsIHR5cGU6IFwicGFzc3dvcmRcIn0sXG4gICAgICAgICAgICAvLyB9IGFzIGFueSAvKiBjaXJjdW12ZW50IGEgYnVnIGluIG5vZGUtcmVkICovLFxuICAgICAgICAgICAgLy8gdXNlcm5hbWVcbiAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogeyB2YWx1ZTogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogeyB2YWx1ZTogMSwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBtYXhNZXNzYWdlU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sIC8vIHNob3VsZCBiZSBhdCBsZWFzdCA4MTkyXG4gICAgICAgICAgICByZWNlaXZlQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzZW5kQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2xvdyBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiAzLCAvLyBldmVyeSAxNSBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiA1MDAwLCAvL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRmFzdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogNDAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogNTAsIC8vIGV2ZXJ5IDEyLjUgc2Vjb25kc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogMjUwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlczoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcInVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VBL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcImRpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL0RJL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgdXNlck5hbWU6IHsgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiB7IHR5cGU6IFwicGFzc3dvcmRcIiB9LFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiB7IHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogeyB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgdGhpcy5lbmRwb2ludCB8fCBcImludmFsaWQgZW5kcG9pbnRcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eVBvbGljeSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlQb2xpY3lcIik7XG4gICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlNb2RlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIik7XG4gICAgICAgICAgICBpZiAoX3NlY3VyaXR5UG9saWN5LnZhbCgpID09PSBcIk5vbmVcIikge1xuICAgICAgICAgICAgICAgIF9zZWN1cml0eU1vZGUudGV4dChcIk5vbmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIHN1YnNjcmlwdGlvbiBkYXRhICkpKSkpKSkpKSlcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25JdGVtcyA9ICQoXCIjc3Vic2NyaXB0aW9ucy1jb250YWluZXJcIikuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG4gPSAoeCkgPT4geDtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25JdGVtcy5lYWNoKGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInNcIiArIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZS5maW5kKFwiLmlucHV0LW5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6ICEhZS5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogISFlLmZpbmQoXCIuaW5wdXQtcHVibGlzaGluZ0VuYWJsZWRcIikuaXMoXCI6Y2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiBuKGUuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRMaWZldGltZUNvdW50XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogbihlLmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiBuKGUuZmluZChcIi5pbnB1dC1wcmlvcml0eVwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSB0byBiZSB0cnVlXG4gICAgICAgICAgICAgICAgICAgIGEucGFyYW1ldGVycy5wdWJsaXNoaW5nRW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmlzRGVmYXVsdCAmJiBhLmlkID09PSBcInMwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSBkZWZhdWx0IHN1YnNjcmlwdGlvbiBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBhLm5hbWUgPSBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcy5wdXNoKGEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIG5hbWVzcGFjZSBhbGlhcyBkYXRhICkpKSkpKSkpKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIGFsaWFzZXNcbiAgICAgICAgICAgICAgICBjb25zdCBhbGlhc0l0ZW1zID0gJChcIiNlZGl0YWJsZS1saXN0LWFsaWFzZXMtY29udGFpbmVyXCIpLmVkaXRhYmxlTGlzdChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IFtdO1xuICAgICAgICAgICAgICAgIGFsaWFzSXRlbXMuZWFjaChmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZDogXCJzXCIgKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZVVyaTogZS5maW5kKFwiLm5vZGUtaW5wdXQtYWxpYXMtbmFtZXNwYWNlLXVyaVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBlLmZpbmQoXCIubm9kZS1pbnB1dC1hbGlhcy1hbGlhc1wiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLnB1c2goYSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5uYW1lc3BhY2VBbGlhc2VzID0gdG1wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBjb25zdCB0YWJzID0gUkVELnRhYnMuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBpZDogXCJub2RlLWNvbmZpZy1lbmRwb2ludC10YWJzXCIsXG4gICAgICAgICAgICAgICAgb25jaGFuZ2U6IGZ1bmN0aW9uICh0YWIpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1lbmRwb2ludC10YWJzLWNvbnRlbnRcIikuY2hpbGRyZW4oKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjXCIgKyB0YWIuaWQpLnNob3coKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0YWJzLmFkZFRhYih7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW5kcG9pbnQtdGFiLWNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJDb25uZWN0aW9uXCIsXG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIHRhYnMuYWRkVGFiKHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbmRwb2ludC10YWItc3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIlN1YnNjcmlwdGlvbnNcIixcbiAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgdGFicy5hZGRUYWIoe1xuICAgICAgICAgICAgICAgIGlkOiBcImVuZHBvaW50LXRhYi1uYW1lc3BhY2UtYWxpYXNlc1wiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIk5hbWVzcGFjZSBBbGlhc2VzXCIsXG4gICAgICAgICAgICB9LCAyKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRhYnMucmVzaXplKCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgU2VjdXJpdHkgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlU2VjdXJpdHlDb250cm9sID0gKHNlY3VyaXR5TW9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHNlY3VyaXR5TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBudWxsOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiTm9uZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiU2lnblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlNpZ25BbmRFbmNyeXB0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcCA9ICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwLnZhbCgpID09PSBcIk5vbmVcIiB8fCBzcC52YWwoKSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3AudmFsKFwiQmFzaWMyNTZTaGEyNTZcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW52YWxpZCBzZWN1cml0eU1vZGUgXCIgKyBzZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVTZWN1cml0eUNvbnRyb2wobm9kZS5zZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eU1vZGUgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKTtcbiAgICAgICAgICAgICAgICBfc2VjdXJpdHlNb2RlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3U2VjdXJpdHlNb2RlID0gX3NlY3VyaXR5TW9kZS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU2VjdXJpdHlDb250cm9sKG5ld1NlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsaWNlbmNlV2lkZ2V0ID0gJChcIiNsaWNlbmNlV2lkZ2V0XCIpO1xuICAgICAgICAgICAgbGljZW5jZVdpZGdldC5saWNlbmNlV2lkZ2V0KHtcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBVc2VyIElkZW50aXR5IENvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhSb3cgPSAkKFwiLnNlY3Rpb24tdXNlcklkZW50aXR5VHlwZS1Vc2VyTmFtZVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZXJ0Um93ID0gJChcIi5zZWN0aW9uLXVzZXJJZGVudGl0eVR5cGUtQ2VydGlmaWNhdGVcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlSWRlbnRpdHlDb250cm9scyA9ICh1c2VySWRlbnRpdHlUeXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUgPSB1c2VySWRlbnRpdHlUeXBlIHx8IFwiQW5vbnltb3VzXCI7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodXNlcklkZW50aXR5VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFub255bW91c1wiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlVzZXJOYW1lXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQ2VydGlmaWNhdGVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnZhbGlkIHVzZXJJZGVudGl0eVR5cGUgXCIgKyB1c2VySWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlSWRlbnRpdHlDb250cm9scyhub2RlLnVzZXJJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF91c2VySWRlbnRpdHlUeXBlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VySWRlbnRpdHlUeXBlXCIpO1xuICAgICAgICAgICAgICAgIF91c2VySWRlbnRpdHlUeXBlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SWRlbnRpdHlUeXBlID0gX3VzZXJJZGVudGl0eVR5cGUudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUlkZW50aXR5Q29udHJvbHMobmV3SWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgYWR2YW5jZWQgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAkKFwiI3RvZ2dsZUFkdmFuY2VkU2VjdGlvblwiKS5wcm9wKFwiY2hlY2tlZFwiLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgJChcIiN0b2dnbGVBZHZhbmNlZFNlY3Rpb25cIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNoZWNrYm94IGlzIGNoZWNrZWQsIHNob3cgdGhlIGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgaGlkZSBpdFxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdXNlVHJhbnNwb3J0U2V0dGluZyA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlVHJhbnNwb3J0XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHVzZVRyYW5zcG9ydFNldHRpbmcpIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlVHJhbnNwb3J0XCIpLm9uKFwiY2hhbmdlXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZCwgc2hvdyB0aGUgZGl2XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGhpZGUgaXRcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBjaGVja0NlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICQoXCIjY2hlY2tDZXJ0aWZpY2F0ZVwiKS5vbihcImNsaWNrXCIsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKFwiL29wY3VhLWZvci1ub2RlLXJlZC9jbGllbnRfY2VydGlmaWNhdGUuanNvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5mbyA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0gSlNPTi5zdHJpbmdpZnkoaW5mbywgbnVsbCwgXCIgXCIpO1xuICAgICAgICAgICAgICAgICAgICBhbGVydCh0KTtcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIGNvbmZpZyBidXR0b25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAkKFwiI2dvdG8tY29uZmlnXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKFwiL29wY3VhLWZvci1ub2RlLXJlZC9jb25maWdcIiwgXCJfYmxhbmtcIik7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBleHRyYWN0RW5kcG9pbnREYXRhKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogbm9kZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtZW5kcG9pbnRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtbmFtZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgcGtpTmFtZTogKF9hID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wa2lOYW1lXCIpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5TW9kZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5UG9saWN5XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJJZGVudGl0eVR5cGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZXJOYW1lOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wYXNzd29yZFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJDZXJ0aWZpY2F0ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlclByaXZhdGVrZXlcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIC8vLyBub3QgdGVzdGVkIHlldCAuLi46XG4gICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlOiAkKFwiI25vZGUtaW5wdXQtY2VydGlmaWNhdGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogJChcIiNub2RlLWlucHV0LXVzZVRyYW5zcG9ydFwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogJChcIiNub2RlLWlucHV0LW1heENodW5rQ291bnRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG1heE1lc3NhZ2VTaXplOiAkKFwiI25vZGUtaW5wdXQtbWF4TWVzc2FnZVNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHJlY2VpdmVCdWZmZXJTaXplOiAkKFwiI25vZGUtaW5wdXQtcmVjZWl2ZUJ1ZmZlclNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlbmRCdWZmZXJTaXplOiAkKFwiI25vZGUtaW5wdXQtc2VuZEJ1ZmZlclNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgdGhlIFRlc3QgYnV0dG9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1hbmFnZUFQSUNhbGwoXCJjb25uZWN0aW9uXCIsICQoXCIjdGVzdC1jb25uZWN0aW9uXCIpLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL29wY3VhLWZvci1ub2RlLXJlZC90ZXN0LWNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBleHRyYWN0RW5kcG9pbnREYXRhKCksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksICgpID0+IHsgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gIEluc3RhbGwgc3Vic2NyaXB0aW9ucyBMaXN0IG1hbmFnZW1lbnRcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzaXplVG9waWNzID0gKHRvcGljLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV3V2lkdGggPSB0b3BpYy53aWR0aCgpIHx8IDEwMDtcbiAgICAgICAgICAgICAgICAgICAgdG9waWMuZmluZChcImxhYmVsXCIpLnR5cGVkSW5wdXQoXCJ3aWR0aFwiLCBuZXdXaWR0aCAtIDE1KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbkxpc3QgPSAkKFwiI3N1YnNjcmlwdGlvbnMtY29udGFpbmVyXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyBcIm1pbi1oZWlnaHRcIjogXCIxNTBweFwiLCBcIm1pbi13aWR0aFwiOiBcIjI2MHB4XCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgICAgIGFkZEl0ZW06IChjb250YWluZXIsIGluZGV4LCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBfZGF0YSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gJChcIiNzdWJzY3JpcHRpb24tdGVtcGxhdGVcIikuY2xvbmUoKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyKFwiaWRcIikucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpLnJlbW92ZUNsYXNzKFwidGVtcGxhdGVcIikuYXR0cihcImRhdGEtaVwiLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS52YWwoX2RhdGEubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXJlcXVlc3RlZExpZmV0aW1lQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTGlmZXRpbWVDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMubWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2ggfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcHJpb3JpdHlcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucHJpb3JpdHkgfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuc3Vic2NyaXB0aW9uLWlkXCIpLnRleHQoXCJcIiArIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS5wcm9wKFwicmVhZG9ubHlcIiwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtaXNEZWZhdWx0XCIpLnByb3AoXCJjaGVja2VkXCIsIF9kYXRhLmlzRGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBkZWZhdWx0IHN1YnNjcmlwdGlvbiBjYW5ub3QgYmUgYWNjaWRlbnRhbGx5IHJlbW92ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuZmluZChcIi5yZWQtdWktZWRpdGFibGVMaXN0LWl0ZW0tcmVtb3ZlXCIpLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGVsZW1lbnQuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikucHJvcChcImRpc2FibGVkXCIsIHRydWUpLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlc2l6ZUl0ZW06IHJlc2l6ZVRvcGljcyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxsU3Vic2NyaXB0aW9ucyA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9ucyA9IG5vZGUuc3Vic2NyaXB0aW9ucyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgbWlzc2luZyBkZWZhdWx0IHN1YnNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczogT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uTGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3Vic2NyaXB0aW9uLmlzRGVmYXVsdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uTGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGZpbGxTdWJzY3JpcHRpb25zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gIEluc3RhbGwgbmFtZXNwYWNlIGFsaWFzIExpc3QgbWFuYWdlbWVudFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBhZGRBbGlhc0N0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhcmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9ICQoJzxkaXYgY2xhc3M9XCJhbGlhcy1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lci5kYXRhKFwiZGF0YVwiLCBhcmcpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPGlucHV0Lz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibm9kZS1pbnB1dC1hbGlhcy1pbmRleFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5hbGlhcyB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhyb3cpXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGluZGV4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPGlucHV0Lz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibm9kZS1pbnB1dC1hbGlhcy1hbGlhc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5hbGlhcyB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjI1JVwiIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8ocm93KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhLmFsaWFzKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxpbnB1dC8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm5vZGUtaW5wdXQtYWxpYXMtbmFtZXNwYWNlLXVyaVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5uYW1lc3BhY2VVcmkgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI3MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKHJvdylcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoZGF0YS5uYW1lc3BhY2VVcmkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBhbGlhc2VzTGlzdCA9ICQoXCIjZWRpdGFibGUtbGlzdC1hbGlhc2VzLWNvbnRhaW5lclwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgXCJtaW4taGVpZ2h0XCI6IFwiMTUwcHhcIiwgXCJtaW4td2lkdGhcIjogXCIyNjBweFwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRBbGlhc0N0cmwoY29udGFpbmVyLCBpLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBmaWxsTmFtZXNwYWNlQWxpYXNlcygpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpYXNlc0xpc3QuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgICAgIGFsaWFzZXNMaXN0LmVkaXRhYmxlTGlzdChcImVtcHR5XCIpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIG5vZGUubmFtZXNwYWNlQWxpYXNlcyB8fCBbXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlc0xpc3QuZWRpdGFibGVMaXN0KFwiYWRkSXRlbVwiLCBhbGlhcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQnV0dG9uXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI2V4dHJhY3QtYWxpYXNlc1wiKS5vbihcImNsaWNrXCIsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBleHRyYWN0RW5kcG9pbnREYXRhKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlczogbm9kZS5uYW1lc3BhY2VBbGlhc2VzIHx8IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChcIi9vcGN1YS1mb3Itbm9kZS1yZWQvZXh0cmFjdC1uYW1lc3BhY2UtYWxpYXNlc1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZm8gPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVzcGFjZUFsaWFzZXMgPSBpbmZvLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIm5hbWVzcGFjZUFsaWFzZXNcIiwgbmFtZXNwYWNlQWxpYXNlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShuYW1lc3BhY2VBbGlhc2VzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUubmFtZXNwYWNlQWxpYXNlcyA9IG5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbE5hbWVzcGFjZUFsaWFzZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICBub2RlLm5hbWVzcGFjZUFsaWFzZXMgPSBub2RlLm5hbWVzcGFjZUFsaWFzZXMgfHwgW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcInVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlVXJpOiBcImh0dHA6Ly9vcGNmb3VuZGF0aW9uLm9yZy9VQS9cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1dlbGxLbm93bjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaWxsTmFtZXNwYWNlQWxpYXNlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Endpoint2">
|
11
11
|
<div id="licenceWidget"></div>
|