diff --git a/assets/Scene/helloworld.fire b/assets/Scene/helloworld.fire index bf400f9..ccc2317 100644 --- a/assets/Scene/helloworld.fire +++ b/assets/Scene/helloworld.fire @@ -598,7 +598,7 @@ "_is3DNode": false, "_groupIndex": 0, "groupIndex": 0, - "_id": "aeYV8DmBZGCYbgx+zLugPE" + "_id": "f8ojtV5RxJyppxJXTwvRbA" }, { "__type__": "cc.Node", @@ -660,7 +660,7 @@ "_is3DNode": false, "_groupIndex": 0, "groupIndex": 0, - "_id": "a1JNI4SG5OhIdvR9MemsPN" + "_id": "28JdLs6QFKdplow4Vcop4h" }, { "__type__": "cc.Sprite", @@ -690,7 +690,7 @@ "_fillRange": 0, "_isTrimmedMode": true, "_atlas": null, - "_id": "30b4ew0lNNAJUraMYHr2em" + "_id": "6a5nzBAKFG/Y3sA2e8abM6" }, { "__type__": "cc.Node", @@ -752,7 +752,7 @@ "_is3DNode": false, "_groupIndex": 0, "groupIndex": 0, - "_id": "73cTu6JRJHDZSOsZC/GNSq" + "_id": "96kbAXXyNK1akIGWmV2D4E" }, { "__type__": "cc.Sprite", @@ -782,7 +782,7 @@ "_fillRange": 0, "_isTrimmedMode": true, "_atlas": null, - "_id": "18T8mT1QNNb4iywy66/ir1" + "_id": "c634mO6m9DAoGcrT9u7GG3" }, { "__type__": "cc.Node", @@ -844,7 +844,7 @@ "_is3DNode": false, "_groupIndex": 0, "groupIndex": 0, - "_id": "33suo2+BdAA4yg7KMOhBfo" + "_id": "fbmT0N5IlBPaXEuSFKjmJS" }, { "__type__": "cc.Sprite", @@ -874,7 +874,7 @@ "_fillRange": 0, "_isTrimmedMode": true, "_atlas": null, - "_id": "e8cMOeGBFLaod8gecauS1T" + "_id": "d4fxTpMidJcZF86bFkr4G1" }, { "__type__": "cc.Node", @@ -939,7 +939,7 @@ "_is3DNode": false, "_groupIndex": 0, "groupIndex": 0, - "_id": "7eLOi10ORGRZAw4OSS/YX3" + "_id": "75V74ndIVEt4kNrIEmp+Wg" }, { "__type__": "cc.Label", @@ -956,8 +956,8 @@ ], "_srcBlendFactor": 770, "_dstBlendFactor": 771, - "_string": "坐标:\t0,\t50\n角度:\t80°,\t弧度:\t0π\n世界坐标:\t(540,\t1010)\nhp:\t100 \t \t \tmp:\t60\n世界矩阵\n\t\t\t0\t\t-1\t\t\t0\t\t\t540\n\t\t\t1\t\t\t0\t\t\t0\t\t\t1010\n\t\t\t0\t\t\t0\t\t\t1\t\t\t0\n\t\t\t0\t\t\t0\t\t\t0\t\t\t1", - "_N$string": "坐标:\t0,\t50\n角度:\t80°,\t弧度:\t0π\n世界坐标:\t(540,\t1010)\nhp:\t100 \t \t \tmp:\t60\n世界矩阵\n\t\t\t0\t\t-1\t\t\t0\t\t\t540\n\t\t\t1\t\t\t0\t\t\t0\t\t\t1010\n\t\t\t0\t\t\t0\t\t\t1\t\t\t0\n\t\t\t0\t\t\t0\t\t\t0\t\t\t1", + "_string": "坐标:\t0,\t50\n角度:\t80°,\t弧度:\t0π\n世界坐标:\t(540,\t1010)\nhp:\t100 \t \t \tmp:\t60\n变换矩阵\n\t\t\t0\t\t-1\t\t\t0\t\t\t540\n\t\t\t1\t\t\t0\t\t\t0\t\t\t1010\n\t\t\t0\t\t\t0\t\t\t1\t\t\t0\n\t\t\t0\t\t\t0\t\t\t0\t\t\t1", + "_N$string": "坐标:\t0,\t50\n角度:\t80°,\t弧度:\t0π\n世界坐标:\t(540,\t1010)\nhp:\t100 \t \t \tmp:\t60\n变换矩阵\n\t\t\t0\t\t-1\t\t\t0\t\t\t540\n\t\t\t1\t\t\t0\t\t\t0\t\t\t1010\n\t\t\t0\t\t\t0\t\t\t1\t\t\t0\n\t\t\t0\t\t\t0\t\t\t0\t\t\t1", "_fontSize": 60, "_lineHeight": 72, "_enableWrapText": true, @@ -972,7 +972,7 @@ "_N$fontFamily": "Arial", "_N$overflow": 0, "_N$cacheMode": 0, - "_id": "afXYt/MIdCsYdZHdLaQrZM" + "_id": "e3V1vuYdNIJJ/UR4RFFYQo" }, { "__type__": "cc.LabelOutline", @@ -990,7 +990,7 @@ "a": 255 }, "_width": 6, - "_id": "4dY0mNgt5AAa2eTyR5SyuI" + "_id": "8c+vc5pnVMCZbBEgPSGytG" }, { "__type__": "9285eM4YhBJhL8+C569X294", @@ -1030,7 +1030,7 @@ "_collideBoxOpacity": 100, "_isCustomLabelActive": true, "customComponentName": "Hero", - "_customLabelString": "坐标:x,y\n角度:angle,弧度:radian\n世界坐标:wp\nhp:#hp mp:#mp\n世界矩阵\nmatrix", + "_customLabelString": "坐标:x,y\n角度:angle,弧度:radian\n世界坐标:wp\nhp:#hp mp:#mp\n变换矩阵\nmatrix", "_customLabelOffset": { "__type__": "cc.Vec2", "x": 0, diff --git a/assets/Script/DataBoard.ts b/assets/Script/DataBoard.ts index 3f13c93..3cbe6d2 100644 --- a/assets/Script/DataBoard.ts +++ b/assets/Script/DataBoard.ts @@ -16,9 +16,11 @@ * children: 子节点 * 自身属性: scale,width,opacity等 * 脚本属性: 脚本实例对象的属性 + * ↓↓参数可以用3种分隔符隔开↓↓ + * 英文逗号、英文冒号、空格 * ————————————————————————举个栗子———————————————————————— * 脚本: Hero - * 参数: wp,scale,angle,#angle,#hp(用英文逗号或回车分隔) + * 参数: wp,scale,angle,#angle,#hp * 显示结果:世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp * ————————————————————————温馨提示———————————————————————— * 初始化的时候,设置全局变量window['DATABOARD'] = false可屏蔽本项目所有DataBoard,不会产生任何额外开销\n @@ -91,7 +93,7 @@ export default class DataBoard extends cc.Component { private customComponentName: string = ''; @property private _customLabelString: string = 'x,y'; - @property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:角度(单位:π)\nmatrix:变换矩阵\nparent:父节点\nchildren:子节点\n自身属性:scale,width,opacity等\n脚本属性:脚本实例对象的属性\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n↑↑↑用英文逗号或回车分隔↑↑↑\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible() { return this.isCustomLabelActive } }) + @property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:角度(单位:π)\nmatrix:变换矩阵\nparent:父节点\nchildren:子节点\n自身属性:scale,width,opacity等\n脚本属性:脚本实例对象的属性\n↓↓参数可以用3种分隔符隔开↓↓\n英文逗号、英文冒号、空格\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible() { return this.isCustomLabelActive } }) private get customLabelString() { return this._customLabelString }; private set customLabelString(value: string) { this._customLabelString = value; @@ -126,7 +128,7 @@ export default class DataBoard extends cc.Component { private set customLabelSize(value: number) { this._customLabelSize = value; this.customLabel.fontSize = value; - this.customLabel.lineHeight = value*LINEHEIGHT; + this.customLabel.lineHeight = value * LINEHEIGHT; this.customLabelNode.getComponent(cc.LabelOutline).width = value * 0.1; } @property diff --git a/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js b/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js index 73c649d..45b957e 100644 --- a/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js +++ b/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js @@ -41,9 +41,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); * children: 子节点 * 自身属性: scale,width,opacity等 * 脚本属性: 脚本实例对象的属性 + * ↓↓参数可以用3种分隔符隔开↓↓ + * 英文逗号、英文冒号、空格 * ————————————————————————举个栗子———————————————————————— * 脚本: Hero - * 参数: wp,scale,angle,#angle,#hp(用英文逗号或回车分隔) + * 参数: wp,scale,angle,#angle,#hp * 显示结果:世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp * ————————————————————————温馨提示———————————————————————— * 初始化的时候,设置全局变量window['DATABOARD'] = false可屏蔽本项目所有DataBoard,不会产生任何额外开销\n @@ -419,7 +421,7 @@ var DataBoard = /** @class */ (function (_super) { property ], DataBoard.prototype, "_customLabelString", void 0); __decorate([ - property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:角度(单位:π)\nmatrix:变换矩阵\nparent:父节点\nchildren:子节点\n自身属性:scale,width,opacity等\n脚本属性:脚本实例对象的属性\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n↑↑↑用英文逗号或回车分隔↑↑↑\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible: function () { return this.isCustomLabelActive; } }) + property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:角度(单位:π)\nmatrix:变换矩阵\nparent:父节点\nchildren:子节点\n自身属性:scale,width,opacity等\n脚本属性:脚本实例对象的属性\n↓↓参数可以用3种分隔符隔开↓↓\n英文逗号、英文冒号、空格\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible: function () { return this.isCustomLabelActive; } }) ], DataBoard.prototype, "customLabelString", null); __decorate([ property diff --git a/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js.map b/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js.map index 2a47e4e..f09377f 100644 --- a/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js.map +++ b/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\DataBoard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;gFAwBgF;AAChF,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;AAC3B,IAAM,WAAW,GAAG,EAAE,CAAC,CAAe,OAAO;AAC7C,IAAM,UAAU,GAAG,GAAG,CAAC,CAAe,aAAa;AAC7C,IAAA,KAAiD,EAAE,CAAC,UAAU,EAA5D,OAAO,aAAA,EAAE,QAAQ,cAAA,EAAE,iBAAiB,uBAAA,EAAE,IAAI,UAAkB,CAAC;AAIrE;IAAuC,6BAAY;IAAnD;QAAA,qEAsRC;QApRW,yBAAmB,GAAY,KAAK,CAAC;QAQrC,sBAAgB,GAAa,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAQzG,wBAAkB,GAAW,GAAG,CAAC;QAQjC,yBAAmB,GAAY,IAAI,CAAC;QAQpC,sBAAgB,GAAa,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAQzG,wBAAkB,GAAW,GAAG,CAAC;QAQjC,0BAAoB,GAAY,IAAI,CAAC;QAQrC,yBAAmB,GAAW,EAAE,CAAC;QAEjC,wBAAkB,GAAW,KAAK,CAAC;QAanC,wBAAkB,GAAY,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAS5C,uBAAiB,GAAa,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAQxD,sBAAgB,GAAW,EAAE,CAAC;QAU9B,uBAAiB,GAAW,CAAC,CAAC;QAM9B,eAAS,GAAY,IAAI,CAAC;QAC1B,oBAAc,GAAY,IAAI,CAAC;QAC/B,oBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAe,GAAY,IAAI,CAAC;QAChC,qBAAe,GAAY,IAAI,CAAC;QAChC,iBAAW,GAAa,IAAI,CAAC;QAC7B,4BAAsB,GAAa,IAAI,CAAC;QACxC,iBAAW,GAAiB,IAAI,CAAC;;IAqK7C,CAAC;IAlRG,sBAAY,yCAAkB;aAA9B,cAAmC,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC;aACpE,UAA+B,KAAc;YACzC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;QACvC,CAAC;;;OAJmE;IAAA,CAAC;IAQrE,sBAAY,sCAAe;aAA3B,cAAgC,OAAO,IAAI,CAAC,gBAAgB,CAAA,CAAC,CAAC;aAC9D,UAA4B,KAAe;YACvC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;QACtC,CAAC;;;OAJ6D;IAAA,CAAC;IAQ/D,sBAAY,wCAAiB;aAA7B,cAAkC,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC;aAClE,UAA8B,KAAa;YACvC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;QACxC,CAAC;;;OAJiE;IAAA,CAAC;IAQnE,sBAAY,yCAAkB;aAA9B,cAAmC,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC;aACpE,UAA+B,KAAc;YACzC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;QACvC,CAAC;;;OAJmE;IAAA,CAAC;IAQrE,sBAAY,sCAAe;aAA3B,cAAgC,OAAO,IAAI,CAAC,gBAAgB,CAAA,CAAC,CAAC;aAC9D,UAA4B,KAAe;YACvC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;QACtC,CAAC;;;OAJ6D;IAAA,CAAC;IAQ/D,sBAAY,wCAAiB;aAA7B,cAAkC,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC;aAClE,UAA8B,KAAa;YACvC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;QACxC,CAAC;;;OAJiE;IAAA,CAAC;IAQnE,sBAAY,0CAAmB;aAA/B,cAAoC,OAAO,IAAI,CAAC,oBAAoB,CAAA,CAAC,CAAC;aACtE,UAAgC,KAAc;YAC1C,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,KAAK,CAAC;QACxC,CAAC;;;OAJqE;IAAA,CAAC;IAUvE,sBAAY,wCAAiB;aAA7B,cAAkC,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC;aAClE,UAA8B,KAAa;YACvC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,sBAAsB,GAAG,KAAK;iBAC9B,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;iBAC9D,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;iBAC3D,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;iBAC3D,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;iBAC3D,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;;;OATiE;IAAA,CAAC;IAanE,sBAAY,wCAAiB;aAA7B,cAAkC,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC;aAClE,UAA8B,KAAc;YACxC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC;;;OALiE;IAAA,CAAC;IASnE,sBAAY,uCAAgB;aAA5B,cAAiC,OAAO,IAAI,CAAC,iBAAiB,CAAA,CAAC,CAAC;aAChE,UAA6B,KAAe;YACxC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC;QACvC,CAAC;;;OAJ+D;IAAA,CAAC;IAQjE,sBAAY,sCAAe;aAA3B,cAAgC,OAAO,IAAI,CAAC,gBAAgB,CAAA,CAAC,CAAC;aAC9D,UAA4B,KAAa;YACrC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,GAAC,UAAU,CAAC;YAC/C,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;QAC3E,CAAC;;;OAN6D;IAAA,CAAC;IAU/D,sBAAY,uCAAgB;aAA5B,cAAiC,OAAO,IAAI,CAAC,iBAAiB,CAAA,CAAC,CAAC;aAChE,UAA6B,KAAa;YACtC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QACnC,CAAC;;;OAH+D;IAAA,CAAC;IAavD,0BAAM,GAAhB;QACI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;SACV;QACD,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC5B;QACD,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7F,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC;QAClE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC;QAEjE,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtF,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAErD,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtF,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAErD,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvF,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,WAAW,CAAC;QAE1C,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACjD,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE7C,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAEO,+BAAW,GAAnB;QACI,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAClD,CAAC;IAEO,+BAAW,GAAnB;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAClD,CAAC;IAEO,gCAAY,GAApB;QACI,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACpD,CAAC;IAEO,8BAAU,GAAlB;QACI,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAClD,CAAC;IAES,0BAAM,GAAhB;QACI,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAAE,OAAO;QACtC,IAAI,CAAC,IAAI,CAAC,sBAAsB;YAAE,OAAO;QACzC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SACvE;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;YAC7C,IAAI,GAAG,GAAG,IAAI,CAAC;YACf,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE;gBACb,KAAK,IAAI;oBACL,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACvD,GAAG,GAAG,MAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAG,CAAC;oBAC5F,MAAM;gBACV,KAAK,OAAO;oBACR,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;oBAC3D,MAAM;gBACV,KAAK,QAAQ;oBACT,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;oBACnE,MAAM;gBACV,KAAK,QAAQ;oBACT,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACzC,GAAG,GAAG,EAAE,CAAC;oBACT,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,CAAC,EAAE,EAAE,GAAC,EAAE;wBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;4BACxB,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAC,CAAC,CAAC;4BAC3B,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;yBAC3E;wBACD,IAAI,GAAC,KAAK,CAAC;4BAAE,GAAG,IAAI,IAAI,CAAC;qBAC5B;oBACD,MAAM;gBACV,KAAK,QAAQ;oBACT,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBAC5B,MAAM;gBACV,KAAK,UAAU;oBACX,GAAG,GAAG,EAAE,CAAC;oBACT,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,KAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAC,GAAG,KAAG,EAAE,EAAE,GAAC,EAAE;wBACzD,GAAG,IAAI,WAAS,GAAC,cAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAC,CAAC,CAAC,IAAM,CAAC;wBAClD,IAAI,GAAC,KAAK,KAAG,GAAG,CAAC;4BAAE,GAAG,IAAI,IAAI,CAAC;qBAClC;oBACD,MAAM;gBACV,KAAK,GAAG;oBAAE,GAAG,GAAG,KAAK,CAAC;oBAAC,MAAM;gBAC7B,KAAK,GAAG;oBAAE,GAAG,GAAG,KAAK,CAAC;oBAAC,MAAM;gBAC7B,KAAK,GAAG;oBAAE,GAAG,GAAG,KAAK,CAAC;oBAAC,MAAM;gBAC7B;oBACI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;wBAClC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC5B;yBAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;wBAC7D,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;qBAChD;yBAAM;wBACH,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;qBACjB;oBACD,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE;wBACjB,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;qBAClB;oBACD,MAAM;aACb;YACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;gBACzB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAC5C;YACD,GAAG,IAAI,GAAG,CAAC;SACd;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC;IAClC,CAAC;IAES,6BAAS,GAAnB;QACI,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC5B;QAAA,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAnRD;QADC,QAAQ;0DACoC;IAE7C;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,CAAC;uDACX;IAMpE;QADC,QAAQ;uDACwG;IAEjH;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC,EAAE,CAAC;oDAChC;IAM9D;QADC,QAAQ;yDACgC;IAEzC;QADC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,IAAI,WAAW,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC,EAAE,CAAC;sDACrE;IAMlE;QADC,QAAQ;0DACmC;IAE5C;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,CAAC;uDACZ;IAMpE;QADC,QAAQ;uDACwG;IAEjH;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC,EAAE,CAAC;oDAChC;IAM9D;QADC,QAAQ;yDACgC;IAEzC;QADC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,IAAI,WAAW,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC,EAAE,CAAC;sDACrE;IAMlE;QADC,QAAQ;2DACoC;IAE7C;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,CAAC;wDACP;IAMtE;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;0DACpF;IAEzC;QADC,QAAQ;yDACkC;IAE3C;QADC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,EAAE,MAAM,IAAI,+UAA+U,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC,EAAE,CAAC;sDAClZ;IAWlE;QADC,QAAQ;yDAC2C;IAEpD;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC,EAAE,CAAC;sDAC7B;IAOlE;QADC,QAAQ;wDACuD;IAEhE;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC,EAAE,CAAC;qDAC/B;IAMhE;QADC,QAAQ;uDAC6B;IAEtC;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC,EAAE,CAAC;oDACjC;IAQ9D;QADC,QAAQ;wDAC6B;IAEtC;QADC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,IAAI,YAAY,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC,EAAE,CAAC;qDACxE;IAtG/C,SAAS;QAH7B,OAAO;QACP,iBAAiB;QACjB,IAAI,CAAC,qBAAqB,CAAC;OACP,SAAS,CAsR7B;IAAD,gBAAC;CAtRD,AAsRC,CAtRsC,EAAE,CAAC,SAAS,GAsRlD;kBAtRoB,SAAS","file":"","sourceRoot":"/","sourcesContent":["/*******************************************************************************\r\n * 创建: 2022年11月23日\r\n * 作者: 水煮肉片饭(27185709@qq.com)\r\n * 描述: 数据看板\r\n * 节点挂上该组件,就可以在游戏运行过程中,直观看到节点任意属性(包括节点脚本中的属性)\r\n * 可以图形化展示以下四种数据:\r\n * 轮廓盒子: 随节点旋转,代表节点的实时矩形\r\n * 碰撞盒子: 不随节点旋转,一般代表碰撞范围\r\n * 自定义参数: 节点自身属性,以及节点任意脚本中的属性\r\n * 锚点: 锚点位置会显示一个小红点\r\n * 自定义参数(配置想监控的数据):\r\n * wp: 世界坐标,即相对于屏幕左下角的坐标\r\n * radian: 节点弧度,单位π\r\n * matrix: 变换矩阵\r\n * parent: 父节点\r\n * children: 子节点\r\n * 自身属性: scale,width,opacity等\r\n * 脚本属性: 脚本实例对象的属性\r\n * ————————————————————————举个栗子————————————————————————\r\n * 脚本: Hero\r\n * 参数: wp,scale,angle,#angle,#hp(用英文逗号或回车分隔)\r\n * 显示结果:世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\r\n * ————————————————————————温馨提示————————————————————————\r\n * 初始化的时候,设置全局变量window['DATABOARD'] = false可屏蔽本项目所有DataBoard,不会产生任何额外开销\\n\r\n*******************************************************************************/\r\nwindow['DATABOARD'] = true;\r\nconst ANCHOR_SIZE = 20; //锚点的大小\r\nconst LINEHEIGHT = 1.2; //行高是字体大小的多少倍\r\nconst { ccclass, property, executeInEditMode, menu } = cc._decorator;\r\n@ccclass\r\n@executeInEditMode\r\n@menu('Component/DataBoard')\r\nexport default class DataBoard extends cc.Component {\r\n @property\r\n private _isOutlineBoxActive: boolean = false;\r\n @property({ displayName: CC_DEV && '轮廓盒子', tooltip: CC_DEV && '随节点旋转,代表实时轮廓' })\r\n private get isOutlineBoxActive() { return this._isOutlineBoxActive };\r\n private set isOutlineBoxActive(value: boolean) {\r\n this._isOutlineBoxActive = value;\r\n this.outlineBoxNode.active = value;\r\n }\r\n @property\r\n private _outlineBoxColor: cc.Color = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isOutlineBoxActive } })\r\n private get outlineBoxColor() { return this._outlineBoxColor };\r\n private set outlineBoxColor(value: cc.Color) {\r\n this._outlineBoxColor = value;\r\n this.outlineBoxNode.color = value;\r\n }\r\n @property\r\n private _outlineBoxOpacity: number = 100;\r\n @property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible() { return this.isOutlineBoxActive } })\r\n private get outlineBoxOpacity() { return this._outlineBoxOpacity };\r\n private set outlineBoxOpacity(value: number) {\r\n this._outlineBoxOpacity = value;\r\n this.outlineBoxNode.opacity = value;\r\n }\r\n @property\r\n private _isCollideBoxActive: boolean = true;\r\n @property({ displayName: CC_DEV && '碰撞盒子', tooltip: CC_DEV && '不随节点旋转,代表碰撞范围' })\r\n private get isCollideBoxActive() { return this._isCollideBoxActive };\r\n private set isCollideBoxActive(value: boolean) {\r\n this._isCollideBoxActive = value;\r\n this.collideBoxNode.active = value;\r\n }\r\n @property\r\n private _collideBoxColor: cc.Color = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isCollideBoxActive } })\r\n private get collideBoxColor() { return this._collideBoxColor };\r\n private set collideBoxColor(value: cc.Color) {\r\n this._collideBoxColor = value;\r\n this.collideBoxNode.color = value;\r\n }\r\n @property\r\n private _collideBoxOpacity: number = 100;\r\n @property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible() { return this.isCollideBoxActive } })\r\n private get collideBoxOpacity() { return this._collideBoxOpacity };\r\n private set collideBoxOpacity(value: number) {\r\n this._collideBoxOpacity = value;\r\n this.collideBoxNode.opacity = value;\r\n }\r\n @property\r\n private _isCustomLabelActive: boolean = true;\r\n @property({ displayName: CC_DEV && '自定义参数', tooltip: CC_DEV && '配置显示的属性内容' })\r\n private get isCustomLabelActive() { return this._isCustomLabelActive };\r\n private set isCustomLabelActive(value: boolean) {\r\n this._isCustomLabelActive = value;\r\n this.customLabelNode.active = value;\r\n }\r\n @property({ displayName: CC_DEV && '······脚本', tooltip: CC_DEV && '监控哪个脚本', visible() { return this.isCustomLabelActive; } })\r\n private customComponentName: string = '';\r\n @property\r\n private _customLabelString: string = 'x,y';\r\n @property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && \"—————支持的参数————\\nwp:世界坐标\\nradian:角度(单位:π)\\nmatrix:变换矩阵\\nparent:父节点\\nchildren:子节点\\n自身属性:scale,width,opacity等\\n脚本属性:脚本实例对象的属性\\n————举个栗子————\\n脚本:Hero\\n参数:wp,scale,angle,#angle,#hp\\n↑↑↑用英文逗号或回车分隔↑↑↑\\n显示结果:\\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\\n————温馨提示————\\n初始化的时候,设置全局变量\\nwindow['DATABOARD'] = false\\n可屏蔽本项目所有DataBoard,不会产生任何额外开销\", visible() { return this.isCustomLabelActive } })\r\n private get customLabelString() { return this._customLabelString };\r\n private set customLabelString(value: string) {\r\n this._customLabelString = value;\r\n this.customLabelStringSplit = value\r\n .replace(/,/g, '_~_').replace(/:/g, '_!_').replace(/ /g, '_@_')\r\n .replace(/([^,])\\n/g, '$1_\\n').replace(/\\n([^,])/g, '\\n_$1')\r\n .replace(/([^:])\\n/g, '$1_\\n').replace(/\\n([^:])/g, '\\n_$1')\r\n .replace(/([^ ])\\n/g, '$1_\\n').replace(/\\n([^ ])/g, '\\n_$1')\r\n .split('_');\r\n }\r\n @property\r\n private _customLabelOffset: cc.Vec2 = cc.v2(0, 100);\r\n @property({ displayName: CC_DEV && '······偏移', visible() { return this.isCustomLabelActive } })\r\n private get customLabelOffset() { return this._customLabelOffset };\r\n private set customLabelOffset(value: cc.Vec2) {\r\n this._customLabelOffset = value;\r\n this.customLabelNode.x = value.x;\r\n this.customLabelNode.y = value.y;\r\n }\r\n @property\r\n private _customLabelColor: cc.Color = new cc.Color(255, 255, 0);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isCustomLabelActive } })\r\n private get customLabelColor() { return this._customLabelColor };\r\n private set customLabelColor(value: cc.Color) {\r\n this._customLabelColor = value;\r\n this.customLabelNode.color = value;\r\n }\r\n @property\r\n private _customLabelSize: number = 60;\r\n @property({ displayName: CC_DEV && '······大小', visible() { return this.isCustomLabelActive } })\r\n private get customLabelSize() { return this._customLabelSize };\r\n private set customLabelSize(value: number) {\r\n this._customLabelSize = value;\r\n this.customLabel.fontSize = value;\r\n this.customLabel.lineHeight = value*LINEHEIGHT;\r\n this.customLabelNode.getComponent(cc.LabelOutline).width = value * 0.1;\r\n }\r\n @property\r\n private _customLabelDigit: number = 0;\r\n @property({ min: 0, max: 10, step: 1, slide: true, displayName: CC_DEV && '······小数位数', visible() { return this.isCustomLabelActive } })\r\n private get customLabelDigit() { return this._customLabelDigit };\r\n private set customLabelDigit(value: number) {\r\n this._customLabelDigit = value;\r\n }\r\n private boardNode: cc.Node = null;\r\n private outlineBoxNode: cc.Node = null;\r\n private collideBoxNode: cc.Node = null;\r\n private anchorPointNode: cc.Node = null;\r\n private customLabelNode: cc.Node = null;\r\n private customLabel: cc.Label = null;\r\n private customLabelStringSplit: string[] = null;\r\n private monitorComp: cc.Component = null;\r\n\r\n protected onLoad() {\r\n this.boardNode = this.node.getChildByName('DataBoard');\r\n if (!CC_EDITOR && !window['DATABOARD']) {\r\n this.destroy();\r\n return;\r\n }\r\n if (cc.isValid(this.boardNode)) {\r\n this.boardNode.removeFromParent();\r\n this.boardNode.destroy();\r\n }\r\n let texture = new cc.Texture2D();\r\n texture.initWithData(new Uint8Array([255, 255, 255]), cc.Texture2D.PixelFormat.RGB888, 1, 1);\r\n\r\n this.boardNode = new cc.Node('DataBoard');\r\n this.boardNode.setParent(this.node);\r\n this.boardNode.x = this.boardNode.y = 0;\r\n this.boardNode.zIndex = cc.macro.MAX_ZINDEX;\r\n this.boardNode['_objFlags'] |= cc.Object['Flags'].HideInHierarchy;\r\n this.boardNode['_objFlags'] |= cc.Object['Flags'].LockedInEditor;\r\n\r\n this.outlineBoxNode = new cc.Node('OutlineBox');\r\n this.outlineBoxNode.setParent(this.boardNode);\r\n this.outlineBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.outlineBoxNode.active = this.isOutlineBoxActive;\r\n this.outlineBoxNode.color = this.outlineBoxColor;\r\n this.outlineBoxNode.opacity = this.outlineBoxOpacity;\r\n\r\n this.collideBoxNode = new cc.Node('CollideBox');\r\n this.collideBoxNode.setParent(this.boardNode);\r\n this.collideBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.collideBoxNode.active = this.isCollideBoxActive;\r\n this.collideBoxNode.color = this.collideBoxColor;\r\n this.collideBoxNode.opacity = this.collideBoxOpacity;\r\n\r\n this.anchorPointNode = new cc.Node('AnchorPoint');\r\n this.anchorPointNode.setParent(this.boardNode);\r\n this.anchorPointNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.anchorPointNode.color = cc.color(255, 0, 0);\r\n this.anchorPointNode.width = ANCHOR_SIZE;\r\n this.anchorPointNode.height = ANCHOR_SIZE;\r\n\r\n this.customLabelNode = new cc.Node('CustomLabel');\r\n this.customLabelNode.setParent(this.boardNode);\r\n this.customLabel = this.customLabelNode.addComponent(cc.Label);\r\n this.customLabelNode.addComponent(cc.LabelOutline).color = cc.color(0, 0, 0);\r\n this.customLabelNode.active = this.isCustomLabelActive;\r\n this.customLabelString = this._customLabelString;\r\n this.customLabelNode.x = this.customLabelOffset.x;\r\n this.customLabelNode.y = this.customLabelOffset.y;\r\n this.customLabelNode.color = this.customLabelColor;\r\n this.customLabelSize = this._customLabelSize;\r\n\r\n this.updateAngle();\r\n this.updateScale();\r\n this.updateAnchor();\r\n this.updateSize();\r\n this.node.on(cc.Node.EventType.ROTATION_CHANGED, this.updateAngle, this);\r\n this.node.on(cc.Node.EventType.SCALE_CHANGED, this.updateScale, this);\r\n this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.updateAnchor, this);\r\n this.node.on(cc.Node.EventType.SIZE_CHANGED, this.updateSize, this);\r\n }\r\n\r\n private updateAngle() {\r\n this.collideBoxNode.angle = -this.node.angle;\r\n this.customLabelNode.angle = -this.node.angle;\r\n }\r\n\r\n private updateScale() {\r\n this.boardNode.scaleX = 1 / this.node.scaleX;\r\n this.boardNode.scaleY = 1 / this.node.scaleY;\r\n this.outlineBoxNode.scaleX = this.node.scaleX;\r\n this.outlineBoxNode.scaleY = this.node.scaleY;\r\n this.collideBoxNode.scaleX = this.node.scaleX;\r\n this.collideBoxNode.scaleY = this.node.scaleY;\r\n }\r\n\r\n private updateAnchor() {\r\n this.outlineBoxNode.anchorX = this.node.anchorX;\r\n this.outlineBoxNode.anchorY = this.node.anchorY;\r\n this.collideBoxNode.anchorX = this.node.anchorX;\r\n this.collideBoxNode.anchorY = this.node.anchorY;\r\n }\r\n\r\n private updateSize() {\r\n this.outlineBoxNode.width = this.node.width;\r\n this.outlineBoxNode.height = this.node.height;\r\n this.collideBoxNode.width = this.node.width;\r\n this.collideBoxNode.height = this.node.height;\r\n }\r\n\r\n protected update() {\r\n if (!this.isCustomLabelActive) return;\r\n if (!this.customLabelStringSplit) return;\r\n let str = '';\r\n let strs = this.customLabelStringSplit;\r\n if (!this.monitorComp && this.customComponentName) {\r\n this.monitorComp = this.node.getComponent(this.customComponentName);\r\n }\r\n for (let i = 0, len = strs.length; i < len; ++i) {\r\n let tmp = null;\r\n switch (strs[i]) {\r\n case 'wp':\r\n let pos = this.node.convertToWorldSpaceAR(cc.v2(0, 0));\r\n tmp = `(${pos.x.toFixed(this.customLabelDigit)},\\t${pos.y.toFixed(this.customLabelDigit)})`;\r\n break;\r\n case 'angle':\r\n tmp = this.node.angle.toFixed(this.customLabelDigit) + '°';\r\n break;\r\n case 'radian':\r\n tmp = (this.node.angle / 180).toFixed(this.customLabelDigit) + 'π';\r\n break;\r\n case 'matrix':\r\n let matrix = this.node['_worldMatrix'].m;\r\n tmp = '';\r\n for (let i = 0; i < 4; ++i) {\r\n for (let j = 0; j < 4; ++j) {\r\n let mm = matrix[j * 4 + i];\r\n tmp += (mm < 0 ? '\\t\\t' : '\\t\\t\\t') + mm.toFixed(this.customLabelDigit);\r\n }\r\n if (i !== 3) tmp += '\\n';\r\n }\r\n break;\r\n case 'parent':\r\n tmp = this.node.parent.name;\r\n break;\r\n case 'children':\r\n tmp = '';\r\n for (let i = 0, len = this.node.childrenCount; i < len; ++i) {\r\n tmp += `\\t\\t\\t${i}:${this.node.children[i].name}`;\r\n if (i !== len - 1) tmp += '\\n';\r\n }\r\n break;\r\n case '~': tmp = ',\\t'; break;\r\n case '!': tmp = ':\\t'; break;\r\n case '@': tmp = ' \\t'; break;\r\n default:\r\n if (this.node[strs[i]] !== undefined) {\r\n tmp = this.node[strs[i]];\r\n } else if (strs[i].startsWith('#') && this.monitorComp !== null) {\r\n tmp = this.monitorComp[strs[i].substring(1)];\r\n } else {\r\n tmp = strs[i];\r\n }\r\n if (tmp && tmp.name) {\r\n tmp = tmp.name;\r\n }\r\n break;\r\n }\r\n if (typeof tmp === 'number') {\r\n tmp = tmp.toFixed(this.customLabelDigit);\r\n }\r\n str += tmp;\r\n }\r\n this.customLabel.string = str;\r\n }\r\n\r\n protected onDestroy() {\r\n if (cc.isValid(this.boardNode)) {\r\n this.boardNode.removeFromParent();\r\n this.boardNode.destroy();\r\n };\r\n this.node.targetOff(this);\r\n }\r\n}"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\DataBoard.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["/*******************************************************************************\r\n * 创建: 2022年11月23日\r\n * 作者: 水煮肉片饭(27185709@qq.com)\r\n * 描述: 数据看板\r\n * 节点挂上该组件,就可以在游戏运行过程中,直观看到节点任意属性(包括节点脚本中的属性)\r\n * 可以图形化展示以下四种数据:\r\n * 轮廓盒子: 随节点旋转,代表节点的实时矩形\r\n * 碰撞盒子: 不随节点旋转,一般代表碰撞范围\r\n * 自定义参数: 节点自身属性,以及节点任意脚本中的属性\r\n * 锚点: 锚点位置会显示一个小红点\r\n * 自定义参数(配置想监控的数据):\r\n * wp: 世界坐标,即相对于屏幕左下角的坐标\r\n * radian: 节点弧度,单位π\r\n * matrix: 变换矩阵\r\n * parent: 父节点\r\n * children: 子节点\r\n * 自身属性: scale,width,opacity等\r\n * 脚本属性: 脚本实例对象的属性\r\n * ↓↓参数可以用3种分隔符隔开↓↓\r\n * 英文逗号、英文冒号、空格\r\n * ————————————————————————举个栗子————————————————————————\r\n * 脚本: Hero\r\n * 参数: wp,scale,angle,#angle,#hp\r\n * 显示结果:世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\r\n * ————————————————————————温馨提示————————————————————————\r\n * 初始化的时候,设置全局变量window['DATABOARD'] = false可屏蔽本项目所有DataBoard,不会产生任何额外开销\\n\r\n*******************************************************************************/\r\nwindow['DATABOARD'] = true;\r\nconst ANCHOR_SIZE = 20; //锚点的大小\r\nconst LINEHEIGHT = 1.2; //行高是字体大小的多少倍\r\nconst { ccclass, property, executeInEditMode, menu } = cc._decorator;\r\n@ccclass\r\n@executeInEditMode\r\n@menu('Component/DataBoard')\r\nexport default class DataBoard extends cc.Component {\r\n @property\r\n private _isOutlineBoxActive: boolean = false;\r\n @property({ displayName: CC_DEV && '轮廓盒子', tooltip: CC_DEV && '随节点旋转,代表实时轮廓' })\r\n private get isOutlineBoxActive() { return this._isOutlineBoxActive };\r\n private set isOutlineBoxActive(value: boolean) {\r\n this._isOutlineBoxActive = value;\r\n this.outlineBoxNode.active = value;\r\n }\r\n @property\r\n private _outlineBoxColor: cc.Color = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isOutlineBoxActive } })\r\n private get outlineBoxColor() { return this._outlineBoxColor };\r\n private set outlineBoxColor(value: cc.Color) {\r\n this._outlineBoxColor = value;\r\n this.outlineBoxNode.color = value;\r\n }\r\n @property\r\n private _outlineBoxOpacity: number = 100;\r\n @property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible() { return this.isOutlineBoxActive } })\r\n private get outlineBoxOpacity() { return this._outlineBoxOpacity };\r\n private set outlineBoxOpacity(value: number) {\r\n this._outlineBoxOpacity = value;\r\n this.outlineBoxNode.opacity = value;\r\n }\r\n @property\r\n private _isCollideBoxActive: boolean = true;\r\n @property({ displayName: CC_DEV && '碰撞盒子', tooltip: CC_DEV && '不随节点旋转,代表碰撞范围' })\r\n private get isCollideBoxActive() { return this._isCollideBoxActive };\r\n private set isCollideBoxActive(value: boolean) {\r\n this._isCollideBoxActive = value;\r\n this.collideBoxNode.active = value;\r\n }\r\n @property\r\n private _collideBoxColor: cc.Color = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isCollideBoxActive } })\r\n private get collideBoxColor() { return this._collideBoxColor };\r\n private set collideBoxColor(value: cc.Color) {\r\n this._collideBoxColor = value;\r\n this.collideBoxNode.color = value;\r\n }\r\n @property\r\n private _collideBoxOpacity: number = 100;\r\n @property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible() { return this.isCollideBoxActive } })\r\n private get collideBoxOpacity() { return this._collideBoxOpacity };\r\n private set collideBoxOpacity(value: number) {\r\n this._collideBoxOpacity = value;\r\n this.collideBoxNode.opacity = value;\r\n }\r\n @property\r\n private _isCustomLabelActive: boolean = true;\r\n @property({ displayName: CC_DEV && '自定义参数', tooltip: CC_DEV && '配置显示的属性内容' })\r\n private get isCustomLabelActive() { return this._isCustomLabelActive };\r\n private set isCustomLabelActive(value: boolean) {\r\n this._isCustomLabelActive = value;\r\n this.customLabelNode.active = value;\r\n }\r\n @property({ displayName: CC_DEV && '······脚本', tooltip: CC_DEV && '监控哪个脚本', visible() { return this.isCustomLabelActive; } })\r\n private customComponentName: string = '';\r\n @property\r\n private _customLabelString: string = 'x,y';\r\n @property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && \"—————支持的参数————\\nwp:世界坐标\\nradian:角度(单位:π)\\nmatrix:变换矩阵\\nparent:父节点\\nchildren:子节点\\n自身属性:scale,width,opacity等\\n脚本属性:脚本实例对象的属性\\n↓↓参数可以用3种分隔符隔开↓↓\\n英文逗号、英文冒号、空格\\n————举个栗子————\\n脚本:Hero\\n参数:wp,scale,angle,#angle,#hp\\n显示结果:\\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\\n————温馨提示————\\n初始化的时候,设置全局变量\\nwindow['DATABOARD'] = false\\n可屏蔽本项目所有DataBoard,不会产生任何额外开销\", visible() { return this.isCustomLabelActive } })\r\n private get customLabelString() { return this._customLabelString };\r\n private set customLabelString(value: string) {\r\n this._customLabelString = value;\r\n this.customLabelStringSplit = value\r\n .replace(/,/g, '_~_').replace(/:/g, '_!_').replace(/ /g, '_@_')\r\n .replace(/([^,])\\n/g, '$1_\\n').replace(/\\n([^,])/g, '\\n_$1')\r\n .replace(/([^:])\\n/g, '$1_\\n').replace(/\\n([^:])/g, '\\n_$1')\r\n .replace(/([^ ])\\n/g, '$1_\\n').replace(/\\n([^ ])/g, '\\n_$1')\r\n .split('_');\r\n }\r\n @property\r\n private _customLabelOffset: cc.Vec2 = cc.v2(0, 100);\r\n @property({ displayName: CC_DEV && '······偏移', visible() { return this.isCustomLabelActive } })\r\n private get customLabelOffset() { return this._customLabelOffset };\r\n private set customLabelOffset(value: cc.Vec2) {\r\n this._customLabelOffset = value;\r\n this.customLabelNode.x = value.x;\r\n this.customLabelNode.y = value.y;\r\n }\r\n @property\r\n private _customLabelColor: cc.Color = new cc.Color(255, 255, 0);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isCustomLabelActive } })\r\n private get customLabelColor() { return this._customLabelColor };\r\n private set customLabelColor(value: cc.Color) {\r\n this._customLabelColor = value;\r\n this.customLabelNode.color = value;\r\n }\r\n @property\r\n private _customLabelSize: number = 60;\r\n @property({ displayName: CC_DEV && '······大小', visible() { return this.isCustomLabelActive } })\r\n private get customLabelSize() { return this._customLabelSize };\r\n private set customLabelSize(value: number) {\r\n this._customLabelSize = value;\r\n this.customLabel.fontSize = value;\r\n this.customLabel.lineHeight = value * LINEHEIGHT;\r\n this.customLabelNode.getComponent(cc.LabelOutline).width = value * 0.1;\r\n }\r\n @property\r\n private _customLabelDigit: number = 0;\r\n @property({ min: 0, max: 10, step: 1, slide: true, displayName: CC_DEV && '······小数位数', visible() { return this.isCustomLabelActive } })\r\n private get customLabelDigit() { return this._customLabelDigit };\r\n private set customLabelDigit(value: number) {\r\n this._customLabelDigit = value;\r\n }\r\n private boardNode: cc.Node = null;\r\n private outlineBoxNode: cc.Node = null;\r\n private collideBoxNode: cc.Node = null;\r\n private anchorPointNode: cc.Node = null;\r\n private customLabelNode: cc.Node = null;\r\n private customLabel: cc.Label = null;\r\n private customLabelStringSplit: string[] = null;\r\n private monitorComp: cc.Component = null;\r\n\r\n protected onLoad() {\r\n this.boardNode = this.node.getChildByName('DataBoard');\r\n if (!CC_EDITOR && !window['DATABOARD']) {\r\n this.destroy();\r\n return;\r\n }\r\n if (cc.isValid(this.boardNode)) {\r\n this.boardNode.removeFromParent();\r\n this.boardNode.destroy();\r\n }\r\n let texture = new cc.Texture2D();\r\n texture.initWithData(new Uint8Array([255, 255, 255]), cc.Texture2D.PixelFormat.RGB888, 1, 1);\r\n\r\n this.boardNode = new cc.Node('DataBoard');\r\n this.boardNode.setParent(this.node);\r\n this.boardNode.x = this.boardNode.y = 0;\r\n this.boardNode.zIndex = cc.macro.MAX_ZINDEX;\r\n this.boardNode['_objFlags'] |= cc.Object['Flags'].HideInHierarchy;\r\n this.boardNode['_objFlags'] |= cc.Object['Flags'].LockedInEditor;\r\n\r\n this.outlineBoxNode = new cc.Node('OutlineBox');\r\n this.outlineBoxNode.setParent(this.boardNode);\r\n this.outlineBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.outlineBoxNode.active = this.isOutlineBoxActive;\r\n this.outlineBoxNode.color = this.outlineBoxColor;\r\n this.outlineBoxNode.opacity = this.outlineBoxOpacity;\r\n\r\n this.collideBoxNode = new cc.Node('CollideBox');\r\n this.collideBoxNode.setParent(this.boardNode);\r\n this.collideBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.collideBoxNode.active = this.isCollideBoxActive;\r\n this.collideBoxNode.color = this.collideBoxColor;\r\n this.collideBoxNode.opacity = this.collideBoxOpacity;\r\n\r\n this.anchorPointNode = new cc.Node('AnchorPoint');\r\n this.anchorPointNode.setParent(this.boardNode);\r\n this.anchorPointNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.anchorPointNode.color = cc.color(255, 0, 0);\r\n this.anchorPointNode.width = ANCHOR_SIZE;\r\n this.anchorPointNode.height = ANCHOR_SIZE;\r\n\r\n this.customLabelNode = new cc.Node('CustomLabel');\r\n this.customLabelNode.setParent(this.boardNode);\r\n this.customLabel = this.customLabelNode.addComponent(cc.Label);\r\n this.customLabelNode.addComponent(cc.LabelOutline).color = cc.color(0, 0, 0);\r\n this.customLabelNode.active = this.isCustomLabelActive;\r\n this.customLabelString = this._customLabelString;\r\n this.customLabelNode.x = this.customLabelOffset.x;\r\n this.customLabelNode.y = this.customLabelOffset.y;\r\n this.customLabelNode.color = this.customLabelColor;\r\n this.customLabelSize = this._customLabelSize;\r\n\r\n this.updateAngle();\r\n this.updateScale();\r\n this.updateAnchor();\r\n this.updateSize();\r\n this.node.on(cc.Node.EventType.ROTATION_CHANGED, this.updateAngle, this);\r\n this.node.on(cc.Node.EventType.SCALE_CHANGED, this.updateScale, this);\r\n this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.updateAnchor, this);\r\n this.node.on(cc.Node.EventType.SIZE_CHANGED, this.updateSize, this);\r\n }\r\n\r\n private updateAngle() {\r\n this.collideBoxNode.angle = -this.node.angle;\r\n this.customLabelNode.angle = -this.node.angle;\r\n }\r\n\r\n private updateScale() {\r\n this.boardNode.scaleX = 1 / this.node.scaleX;\r\n this.boardNode.scaleY = 1 / this.node.scaleY;\r\n this.outlineBoxNode.scaleX = this.node.scaleX;\r\n this.outlineBoxNode.scaleY = this.node.scaleY;\r\n this.collideBoxNode.scaleX = this.node.scaleX;\r\n this.collideBoxNode.scaleY = this.node.scaleY;\r\n }\r\n\r\n private updateAnchor() {\r\n this.outlineBoxNode.anchorX = this.node.anchorX;\r\n this.outlineBoxNode.anchorY = this.node.anchorY;\r\n this.collideBoxNode.anchorX = this.node.anchorX;\r\n this.collideBoxNode.anchorY = this.node.anchorY;\r\n }\r\n\r\n private updateSize() {\r\n this.outlineBoxNode.width = this.node.width;\r\n this.outlineBoxNode.height = this.node.height;\r\n this.collideBoxNode.width = this.node.width;\r\n this.collideBoxNode.height = this.node.height;\r\n }\r\n\r\n protected update() {\r\n if (!this.isCustomLabelActive) return;\r\n if (!this.customLabelStringSplit) return;\r\n let str = '';\r\n let strs = this.customLabelStringSplit;\r\n if (!this.monitorComp && this.customComponentName) {\r\n this.monitorComp = this.node.getComponent(this.customComponentName);\r\n }\r\n for (let i = 0, len = strs.length; i < len; ++i) {\r\n let tmp = null;\r\n switch (strs[i]) {\r\n case 'wp':\r\n let pos = this.node.convertToWorldSpaceAR(cc.v2(0, 0));\r\n tmp = `(${pos.x.toFixed(this.customLabelDigit)},\\t${pos.y.toFixed(this.customLabelDigit)})`;\r\n break;\r\n case 'angle':\r\n tmp = this.node.angle.toFixed(this.customLabelDigit) + '°';\r\n break;\r\n case 'radian':\r\n tmp = (this.node.angle / 180).toFixed(this.customLabelDigit) + 'π';\r\n break;\r\n case 'matrix':\r\n let matrix = this.node['_worldMatrix'].m;\r\n tmp = '';\r\n for (let i = 0; i < 4; ++i) {\r\n for (let j = 0; j < 4; ++j) {\r\n let mm = matrix[j * 4 + i];\r\n tmp += (mm < 0 ? '\\t\\t' : '\\t\\t\\t') + mm.toFixed(this.customLabelDigit);\r\n }\r\n if (i !== 3) tmp += '\\n';\r\n }\r\n break;\r\n case 'parent':\r\n tmp = this.node.parent.name;\r\n break;\r\n case 'children':\r\n tmp = '';\r\n for (let i = 0, len = this.node.childrenCount; i < len; ++i) {\r\n tmp += `\\t\\t\\t${i}:${this.node.children[i].name}`;\r\n if (i !== len - 1) tmp += '\\n';\r\n }\r\n break;\r\n case '~': tmp = ',\\t'; break;\r\n case '!': tmp = ':\\t'; break;\r\n case '@': tmp = ' \\t'; break;\r\n default:\r\n if (this.node[strs[i]] !== undefined) {\r\n tmp = this.node[strs[i]];\r\n } else if (strs[i].startsWith('#') && this.monitorComp !== null) {\r\n tmp = this.monitorComp[strs[i].substring(1)];\r\n } else {\r\n tmp = strs[i];\r\n }\r\n if (tmp && tmp.name) {\r\n tmp = tmp.name;\r\n }\r\n break;\r\n }\r\n if (typeof tmp === 'number') {\r\n tmp = tmp.toFixed(this.customLabelDigit);\r\n }\r\n str += tmp;\r\n }\r\n this.customLabel.string = str;\r\n }\r\n\r\n protected onDestroy() {\r\n if (cc.isValid(this.boardNode)) {\r\n this.boardNode.removeFromParent();\r\n this.boardNode.destroy();\r\n };\r\n this.node.targetOff(this);\r\n }\r\n}"]} \ No newline at end of file diff --git a/library/imports/2d/2d2f792f-a40c-49bb-a189-ed176a246e49.json b/library/imports/2d/2d2f792f-a40c-49bb-a189-ed176a246e49.json index 038217f..2cc3410 100644 --- a/library/imports/2d/2d2f792f-a40c-49bb-a189-ed176a246e49.json +++ b/library/imports/2d/2d2f792f-a40c-49bb-a189-ed176a246e49.json @@ -599,7 +599,7 @@ "_is3DNode": false, "_groupIndex": 0, "groupIndex": 0, - "_id": "aeYV8DmBZGCYbgx+zLugPE" + "_id": "f8ojtV5RxJyppxJXTwvRbA" }, { "__type__": "cc.Node", @@ -661,7 +661,7 @@ "_is3DNode": false, "_groupIndex": 0, "groupIndex": 0, - "_id": "a1JNI4SG5OhIdvR9MemsPN" + "_id": "28JdLs6QFKdplow4Vcop4h" }, { "__type__": "cc.Sprite", @@ -691,7 +691,7 @@ "_fillRange": 0, "_isTrimmedMode": true, "_atlas": null, - "_id": "30b4ew0lNNAJUraMYHr2em" + "_id": "6a5nzBAKFG/Y3sA2e8abM6" }, { "__type__": "cc.Node", @@ -753,7 +753,7 @@ "_is3DNode": false, "_groupIndex": 0, "groupIndex": 0, - "_id": "73cTu6JRJHDZSOsZC/GNSq" + "_id": "96kbAXXyNK1akIGWmV2D4E" }, { "__type__": "cc.Sprite", @@ -783,7 +783,7 @@ "_fillRange": 0, "_isTrimmedMode": true, "_atlas": null, - "_id": "18T8mT1QNNb4iywy66/ir1" + "_id": "c634mO6m9DAoGcrT9u7GG3" }, { "__type__": "cc.Node", @@ -845,7 +845,7 @@ "_is3DNode": false, "_groupIndex": 0, "groupIndex": 0, - "_id": "33suo2+BdAA4yg7KMOhBfo" + "_id": "fbmT0N5IlBPaXEuSFKjmJS" }, { "__type__": "cc.Sprite", @@ -875,7 +875,7 @@ "_fillRange": 0, "_isTrimmedMode": true, "_atlas": null, - "_id": "e8cMOeGBFLaod8gecauS1T" + "_id": "d4fxTpMidJcZF86bFkr4G1" }, { "__type__": "cc.Node", @@ -940,7 +940,7 @@ "_is3DNode": false, "_groupIndex": 0, "groupIndex": 0, - "_id": "7eLOi10ORGRZAw4OSS/YX3" + "_id": "75V74ndIVEt4kNrIEmp+Wg" }, { "__type__": "cc.Label", @@ -957,8 +957,8 @@ ], "_srcBlendFactor": 770, "_dstBlendFactor": 771, - "_string": "坐标:\t0,\t50\n角度:\t80°,\t弧度:\t0π\n世界坐标:\t(540,\t1010)\nhp:\t100 \t \t \tmp:\t60\n世界矩阵\n\t\t\t0\t\t-1\t\t\t0\t\t\t540\n\t\t\t1\t\t\t0\t\t\t0\t\t\t1010\n\t\t\t0\t\t\t0\t\t\t1\t\t\t0\n\t\t\t0\t\t\t0\t\t\t0\t\t\t1", - "_N$string": "坐标:\t0,\t50\n角度:\t80°,\t弧度:\t0π\n世界坐标:\t(540,\t1010)\nhp:\t100 \t \t \tmp:\t60\n世界矩阵\n\t\t\t0\t\t-1\t\t\t0\t\t\t540\n\t\t\t1\t\t\t0\t\t\t0\t\t\t1010\n\t\t\t0\t\t\t0\t\t\t1\t\t\t0\n\t\t\t0\t\t\t0\t\t\t0\t\t\t1", + "_string": "坐标:\t0,\t50\n角度:\t80°,\t弧度:\t0π\n世界坐标:\t(540,\t1010)\nhp:\t100 \t \t \tmp:\t60\n变换矩阵\n\t\t\t0\t\t-1\t\t\t0\t\t\t540\n\t\t\t1\t\t\t0\t\t\t0\t\t\t1010\n\t\t\t0\t\t\t0\t\t\t1\t\t\t0\n\t\t\t0\t\t\t0\t\t\t0\t\t\t1", + "_N$string": "坐标:\t0,\t50\n角度:\t80°,\t弧度:\t0π\n世界坐标:\t(540,\t1010)\nhp:\t100 \t \t \tmp:\t60\n变换矩阵\n\t\t\t0\t\t-1\t\t\t0\t\t\t540\n\t\t\t1\t\t\t0\t\t\t0\t\t\t1010\n\t\t\t0\t\t\t0\t\t\t1\t\t\t0\n\t\t\t0\t\t\t0\t\t\t0\t\t\t1", "_fontSize": 60, "_lineHeight": 72, "_enableWrapText": true, @@ -973,7 +973,7 @@ "_N$fontFamily": "Arial", "_N$overflow": 0, "_N$cacheMode": 0, - "_id": "afXYt/MIdCsYdZHdLaQrZM" + "_id": "e3V1vuYdNIJJ/UR4RFFYQo" }, { "__type__": "cc.LabelOutline", @@ -991,7 +991,7 @@ "a": 255 }, "_width": 6, - "_id": "4dY0mNgt5AAa2eTyR5SyuI" + "_id": "8c+vc5pnVMCZbBEgPSGytG" }, { "__type__": "9285eM4YhBJhL8+C569X294", @@ -1031,7 +1031,7 @@ "_collideBoxOpacity": 100, "_isCustomLabelActive": true, "customComponentName": "Hero", - "_customLabelString": "坐标:x,y\n角度:angle,弧度:radian\n世界坐标:wp\nhp:#hp mp:#mp\n世界矩阵\nmatrix", + "_customLabelString": "坐标:x,y\n角度:angle,弧度:radian\n世界坐标:wp\nhp:#hp mp:#mp\n变换矩阵\nmatrix", "_customLabelOffset": { "__type__": "cc.Vec2", "x": 0, diff --git a/library/uuid-to-mtime.json b/library/uuid-to-mtime.json index c740e61..e5b63bf 100644 --- a/library/uuid-to-mtime.json +++ b/library/uuid-to-mtime.json @@ -515,8 +515,8 @@ "relativePath": "Texture" }, "2d2f792f-a40c-49bb-a189-ed176a246e49": { - "asset": 1682094590182, - "meta": 1682094590189, + "asset": 1682120346684, + "meta": 1682120346692, "relativePath": "Scene\\helloworld.fire" }, "a8027877-d8d6-4645-97a0-52d4a0123dba": { @@ -529,11 +529,6 @@ "meta": 1682093911606, "relativePath": "cocos.anim" }, - "1c1526d4-850a-49e8-9d63-1a14155187fc": { - "asset": 1682093268237, - "meta": 1682093275588, - "relativePath": "Script\\DataBoard.ts" - }, "9285e338-6210-4984-bf3e-0b9ebd5f6f78": { "asset": 1682093585931, "meta": 1682093589126, @@ -543,5 +538,10 @@ "asset": 1682094492600, "meta": 1682094515211, "relativePath": "Texture\\zhizhuxia.png" + }, + "1c1526d4-850a-49e8-9d63-1a14155187fc": { + "asset": 1682120674118, + "meta": 1682120683436, + "relativePath": "Script\\DataBoard.ts" } } \ No newline at end of file diff --git a/local/layout.editor.json b/local/layout.editor.json index f7642a1..3da7568 100644 --- a/local/layout.editor.json +++ b/local/layout.editor.json @@ -13,13 +13,13 @@ "type": "dock-h", "children": [ { - "width": 459.125, + "width": 459, "height": 919.5, "type": "dock-v", "children": [ { - "width": 459.125, - "height": 317.28125, + "width": 459, + "height": 316.828125, "type": "panel", "active": 0, "children": [ @@ -27,8 +27,8 @@ ] }, { - "width": 459.125, - "height": 599.21875, + "width": 459, + "height": 599.671875, "type": "panel", "active": 0, "children": [ @@ -38,13 +38,13 @@ ] }, { - "width": 979.734375, + "width": 980, "height": 919.5, "type": "dock-v", "children": [ { - "width": 979.734375, - "height": 565.4375, + "width": 980, + "height": 564.6875, "type": "panel", "active": 0, "children": [ @@ -52,8 +52,8 @@ ] }, { - "width": 979.734375, - "height": 351.0625, + "width": 980, + "height": 351.8125, "type": "panel", "active": 1, "children": [ @@ -65,7 +65,7 @@ ] }, { - "width": 459.125, + "width": 459, "height": 919.5, "type": "panel", "active": 0, diff --git a/temp/BackupAssets/assets/Scene/helloworld.fire b/temp/BackupAssets/assets/Scene/helloworld.fire index 5356411..bf400f9 100644 --- a/temp/BackupAssets/assets/Scene/helloworld.fire +++ b/temp/BackupAssets/assets/Scene/helloworld.fire @@ -398,8 +398,8 @@ }, "_contentSize": { "__type__": "cc.Size", - "width": 175, - "height": 226 + "width": 200, + "height": 150 }, "_anchorPoint": { "__type__": "cc.Vec2", @@ -460,8 +460,8 @@ }, "_contentSize": { "__type__": "cc.Size", - "width": 175, - "height": 226 + "width": 200, + "height": 150 }, "_anchorPoint": { "__type__": "cc.Vec2", @@ -513,10 +513,10 @@ "_srcBlendFactor": 770, "_dstBlendFactor": 771, "_spriteFrame": { - "__uuid__": "31bc895a-c003-4566-a9f3-2e54ae1c17dc" + "__uuid__": "6e0882b8-ac14-4ee7-b636-cb22032c50b1" }, "_type": 0, - "_sizeMode": 1, + "_sizeMode": 0, "_fillType": 0, "_fillCenter": { "__type__": "cc.Vec2", @@ -625,8 +625,8 @@ }, "_contentSize": { "__type__": "cc.Size", - "width": 175, - "height": 226 + "width": 200, + "height": 150 }, "_anchorPoint": { "__type__": "cc.Vec2", @@ -717,8 +717,8 @@ }, "_contentSize": { "__type__": "cc.Size", - "width": 175, - "height": 226 + "width": 200, + "height": 150 }, "_anchorPoint": { "__type__": "cc.Vec2", diff --git a/temp/quick-scripts/dst/__file_stats__.json b/temp/quick-scripts/dst/__file_stats__.json index e7e76e7..7925c8a 100644 --- a/temp/quick-scripts/dst/__file_stats__.json +++ b/temp/quick-scripts/dst/__file_stats__.json @@ -1 +1 @@ -{"version":"1.0.8","stats":{"D:/Project/DataBoardDemo/temp/quick-scripts/src/__qc_index__.js":"2023-04-21T16:32:19.557Z","D:/Project/DataBoardDemo/temp/quick-scripts/src/assets/Script/DataBoard.js":"2023-04-21T16:32:19.502Z","D:/Project/DataBoardDemo/temp/quick-scripts/src/assets/Script/Hero.js":"2023-04-21T16:32:19.504Z"}} +{"version":"1.0.8","stats":{"D:/Project/DataBoardDemo/temp/quick-scripts/src/__qc_index__.js":"2023-04-21T23:18:18.026Z","D:/Project/DataBoardDemo/temp/quick-scripts/src/assets/Script/DataBoard.js":"2023-04-21T23:18:18.010Z","D:/Project/DataBoardDemo/temp/quick-scripts/src/assets/Script/Hero.js":"2023-04-21T23:18:18.010Z"}} diff --git a/temp/quick-scripts/dst/__qc_bundle__.js b/temp/quick-scripts/dst/__qc_bundle__.js index 5bf2062..eedb977 100644 --- a/temp/quick-scripts/dst/__qc_bundle__.js +++ b/temp/quick-scripts/dst/__qc_bundle__.js @@ -78,9 +78,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); * children: 子节点 * 自身属性: scale,width,opacity等 * 脚本属性: 脚本实例对象的属性 + * ↓↓参数可以用3种分隔符隔开↓↓ + * 英文逗号、英文冒号、空格 * ————————————————————————举个栗子———————————————————————— * 脚本: Hero - * 参数: wp,scale,angle,#angle,#hp(用英文逗号或回车分隔) + * 参数: wp,scale,angle,#angle,#hp * 显示结果:世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp * ————————————————————————温馨提示———————————————————————— * 初始化的时候,设置全局变量window['DATABOARD'] = false可屏蔽本项目所有DataBoard,不会产生任何额外开销\n @@ -456,7 +458,7 @@ var DataBoard = /** @class */ (function (_super) { property ], DataBoard.prototype, "_customLabelString", void 0); __decorate([ - property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:角度(单位:π)\nmatrix:变换矩阵\nparent:父节点\nchildren:子节点\n自身属性:scale,width,opacity等\n脚本属性:脚本实例对象的属性\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n↑↑↑用英文逗号或回车分隔↑↑↑\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible: function () { return this.isCustomLabelActive; } }) + property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:角度(单位:π)\nmatrix:变换矩阵\nparent:父节点\nchildren:子节点\n自身属性:scale,width,opacity等\n脚本属性:脚本实例对象的属性\n↓↓参数可以用3种分隔符隔开↓↓\n英文逗号、英文冒号、空格\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible: function () { return this.isCustomLabelActive; } }) ], DataBoard.prototype, "customLabelString", null); __decorate([ property @@ -502,7 +504,7 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEYXRhQm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnRkF3QmdGO0FBQ2hGLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDM0IsSUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQWUsT0FBTztBQUM3QyxJQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsQ0FBZSxhQUFhO0FBQzdDLElBQUEsS0FBaUQsRUFBRSxDQUFDLFVBQVUsRUFBNUQsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFBLEVBQUUsaUJBQWlCLHVCQUFBLEVBQUUsSUFBSSxVQUFrQixDQUFDO0FBSXJFO0lBQXVDLDZCQUFZO0lBQW5EO1FBQUEscUVBc1JDO1FBcFJXLHlCQUFtQixHQUFZLEtBQUssQ0FBQztRQVFyQyxzQkFBZ0IsR0FBYSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztRQVF6Ryx3QkFBa0IsR0FBVyxHQUFHLENBQUM7UUFRakMseUJBQW1CLEdBQVksSUFBSSxDQUFDO1FBUXBDLHNCQUFnQixHQUFhLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBUXpHLHdCQUFrQixHQUFXLEdBQUcsQ0FBQztRQVFqQywwQkFBb0IsR0FBWSxJQUFJLENBQUM7UUFRckMseUJBQW1CLEdBQVcsRUFBRSxDQUFDO1FBRWpDLHdCQUFrQixH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QUFNLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDbEQsQ0FBQztJQUVPLGdDQUFZLEdBQXBCO1FBQ0ksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDcEQsQ0FBQztJQUVPLDhCQUFVLEdBQWxCO1FBQ0ksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDbEQsQ0FBQztJQUVTLDBCQUFNLEdBQWhCO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUI7WUFBRSxPQUFPO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCO1lBQUUsT0FB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QUFDLENBQUMsRUFBRSxDQUFDO3NEQUM3QjtJQU9sRTtRQURDLFFBQVE7d0RBQ3VEO0lBRWhFO1FBREMsUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sSUFBSSxVQUFVLEVBQUUsT0FBTyxnQkFBSyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDO3FEQUMvQjtJQU1oRTtRQURDLFFBQVE7dURBQzZCO0lBRXRDO1FBREMsUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sSUFBSSxVQUFVLEVBQUUsT0FBTyxnQkFBSyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDO29EQUNqQztJQVE5RDtRQURDLFFBQVE7d0RBQzZCO0lBRXRDO1FBREMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFJLFlBQVksRUFBRSxPQUFPLGdCQUFLLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7cURBQ3hFO0lBdEcvQyxTQUFTO1FBSDdCLE9BQU87UUFDUCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLHFCQUFxQixDQUFDO09BQ1AsU0FBUyxDQXNSN0I7SUFBRCxnQkFBQztDQXRSRCxBQXNSQyxDQXRSc0MsRUFBRSxDQUFDLFNBQVMsR0FzUmxEO2tCQXRSb0IsU0FBUyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIOWIm+W7ujogICAgMjAyMuW5tDEx5pyIMjPml6VcclxuICog5L2c6ICFOiAgICDmsLTnha7ogonniYfppa0oMjcxODU3MDlAcXEuY29tKVxyXG4gKiDmj4/ov7A6ICAgIOaVsOaNrueci+adv1xyXG4gKiDoioLngrnmjILkuIror6Xnu4Tku7bvvIzlsLHlj6/ku6XlnKjmuLjmiI/ov5DooYzov4fnqIvkuK3vvIznm7Top4LnnIvliLDoioLngrnku7vmhI/lsZ7mgKfvvIjljIXmi6zoioLngrnohJrmnKzkuK3nmoTlsZ7mgKfvvIlcclxuICog5Y+v5Lul5Zu+5b2i5YyW5bGV56S65Lul5LiL5Zub56eN5pWw5o2u77yaXHJcbiAqICAgICAgICAgIOi9ruW7k+ebkuWtkO+8miAgICAgICAgICDpmo/oioLngrnml4vovazvvIzku6PooajoioLngrnnmoTlrp7ml7bnn6nlvaJcclxuICogICAgICAgICAg56Kw5pKe55uS5a2Q77yaICAgICAgICAgIOS4jemaj+iKgueCueaXi+i9rO+8jOS4gOiIrOS7o+ihqOeisOaSnuiMg+WbtFxyXG4gKiAgICAgICAgICDoh6rlrprkuYnlj4LmlbDvvJogICAgICAgIOiKgueCueiHqui6q+WxnuaAp++8jOS7peWPiuiKgueCueS7u+aEj+iEmuacrOS4reeahOWxnuaAp1xyXG4gKiAgICAgICAgICDplJrngrnvvJogICAgICAgICAgICAg6ZSa54K55L2N572u5Lya5pi+56S65LiA5Liq5bCP57qi54K5XHJcbiAqIOiHquWumuS5ieWPguaVsO+8iOmFjee9ruaDs+ebkeaOp+eahOaVsOaNru+8ie+8mlxyXG4gKiAgICAgICAgICB3cO+8miAgICAgICAgICAgICAgIOS4lueVjOWdkOagh++8jOWNs+ebuOWvueS6juWxj+W5leW3puS4i+inkueahOWdkOagh1xyXG4gKiAgICAgICAgICByYWRpYW7vvJogICAgICAgICAgIOiKgueCueW8p+W6pu+8jOWNleS9jc+AXHJcbiAqICAgICAgICAgIG1hdHJpeDogICAgICAgICAgICDlj5jmjaLnn6npmLVcclxuICogICAgICAgICAgcGFyZW5077yaICAgICAgICAgICDniLboioLngrlcclxuICogICAgICAgICAgY2hpbGRyZW7vvJogICAgICAgICDlrZDoioLngrlcclxuICogICAgICAgICAg6Ieq6Lqr5bGe5oCn77yaICAgICAgICAgIHNjYWxlLHdpZHRoLG9wYWNpdHnnrYlcclxuICogICAgICAgICAg6ISa5pys5bGe5oCn77yaICAgICAgICAgIOiEmuacrOWunuS+i+WvueixoeeahOWxnuaAp1xyXG4gKiDigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTkuL7kuKrmoJflrZDigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJRcclxuICog6ISa5pys77yaICAgIEhlcm9cclxuICog5Y+C5pWw77yaICAgIHdwLHNjYWxlLGFuZ2xlLCNhbmdsZSwjaHDvvIjnlKjoi7HmlofpgJflj7fmiJblm57ovabliIbpmpTvvIlcclxuICog5pi+56S657uT5p6c77ya5LiW55WM5Z2Q5qCHLOiKgueCuXNjYWxlLOiKgueCuWFuZ2xl77yMSGVyb+WvueixoeeahGFuZ2xlLEhlcm/lr7nosaHnmoRocFxyXG4gKiDigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTmuKnppqjmj5DnpLrigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJRcclxuICog5Yid5aeL5YyW55qE5pe25YCZ77yM6K6+572u5YWo5bGA5Y+Y6YePd2luZG93WydEQVRBQk9BUkQnXSA9IGZhbHNl5Y+v5bGP6JS95pys6aG555uu5omA5pyJRGF0YUJvYXJk77yM5LiN5Lya5Lqn55Sf5Lu75L2V6aKd5aSW5byA6ZSAXFxuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbndpbmRvd1snREFUQUJPQVJEJ10gPSB0cnVlO1xyXG5jb25zdCBBTkNIT1JfU0laRSA9IDIwOyAgICAgICAgICAgICAgIC8v6ZSa54K555qE5aSn5bCPXHJcbmNvbnN0IExJTkVIRUlHSFQgPSAxLjI7ICAgICAgICAgICAgICAgLy/ooYzpq5jmmK/lrZfkvZPlpKflsI/nmoTlpJrlsJHlgI1cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSwgZXhlY3V0ZUluRWRpdE1vZGUsIG1lbnUgfSA9IGNjLl9kZWNvcmF0b3I7XHJcbkBjY2NsYXNzXHJcbkBleGVjdXRlSW5FZGl0TW9kZVxyXG5AbWVudSgnQ29tcG9uZW50L0RhdGFCb2FyZCcpXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhdGFCb2FyZCBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX2lzT3V0bGluZUJveEFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAn6L2u5buT55uS5a2QJywgdG9vbHRpcDogQ0NfREVWICYmICfpmo/oioLngrnml4vovazvvIzku6Pooajlrp7ml7bova7lu5MnIH0pXHJcbiAgICBwcml2YXRlIGdldCBpc091dGxpbmVCb3hBY3RpdmUoKSB7IHJldHVybiB0aGlzLl9pc091dGxpbmVCb3hBY3RpdmUgfTtcclxuICAgIHByaXZhdGUgc2V0IGlzT3V0bGluZUJveEFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2lzT3V0bGluZUJveEFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuYWN0aXZlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX291dGxpbmVCb3hDb2xvcjogY2MuQ29sb3IgPSBuZXcgY2MuQ29sb3IoTWF0aC5yYW5kb20oKSAqIDI1NSwgTWF0aC5yYW5kb20oKSAqIDI1NSwgTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrfpopzoibInLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc091dGxpbmVCb3hBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgb3V0bGluZUJveENvbG9yKCkgeyByZXR1cm4gdGhpcy5fb3V0bGluZUJveENvbG9yIH07XHJcbiAgICBwcml2YXRlIHNldCBvdXRsaW5lQm94Q29sb3IodmFsdWU6IGNjLkNvbG9yKSB7XHJcbiAgICAgICAgdGhpcy5fb3V0bGluZUJveENvbG9yID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5jb2xvciA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9vdXRsaW5lQm94T3BhY2l0eTogbnVtYmVyID0gMTAwO1xyXG4gICAgQHByb3BlcnR5KHsgbWluOiAwLCBtYXg6IDI1NSwgc3RlcDogMSwgc2xpZGU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+mAj+aYjuW6picsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzT3V0bGluZUJveEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBvdXRsaW5lQm94T3BhY2l0eSgpIHsgcmV0dXJuIHRoaXMuX291dGxpbmVCb3hPcGFjaXR5IH07XHJcbiAgICBwcml2YXRlIHNldCBvdXRsaW5lQm94T3BhY2l0eSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fb3V0bGluZUJveE9wYWNpdHkgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLm9wYWNpdHkgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfaXNDb2xsaWRlQm94QWN0aXZlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ+eisOaSnuebkuWtkCcsIHRvb2x0aXA6IENDX0RFViAmJiAn5LiN6ZqP6IqC54K55peL6L2s77yM5Luj6KGo56Kw5pKe6IyD5Zu0JyB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgaXNDb2xsaWRlQm94QWN0aXZlKCkgeyByZXR1cm4gdGhpcy5faXNDb2xsaWRlQm94QWN0aXZlIH07XHJcbiAgICBwcml2YXRlIHNldCBpc0NvbGxpZGVCb3hBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9pc0NvbGxpZGVCb3hBY3RpdmUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jb2xsaWRlQm94Q29sb3I6IGNjLkNvbG9yID0gbmV3IGNjLkNvbG9yKE1hdGgucmFuZG9tKCkgKiAyNTUsIE1hdGgucmFuZG9tKCkgKiAyNTUsIE1hdGgucmFuZG9tKCkgKiAyNTUpO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36aKc6ImyJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNDb2xsaWRlQm94QWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IGNvbGxpZGVCb3hDb2xvcigpIHsgcmV0dXJuIHRoaXMuX2NvbGxpZGVCb3hDb2xvciB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY29sbGlkZUJveENvbG9yKHZhbHVlOiBjYy5Db2xvcikge1xyXG4gICAgICAgIHRoaXMuX2NvbGxpZGVCb3hDb2xvciA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuY29sb3IgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY29sbGlkZUJveE9wYWNpdHk6IG51bWJlciA9IDEwMDtcclxuICAgIEBwcm9wZXJ0eSh7IG1pbjogMCwgbWF4OiAyNTUsIHN0ZXA6IDEsIHNsaWRlOiB0cnVlLCBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrfpgI/mmI7luqYnLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0NvbGxpZGVCb3hBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY29sbGlkZUJveE9wYWNpdHkoKSB7IHJldHVybiB0aGlzLl9jb2xsaWRlQm94T3BhY2l0eSB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY29sbGlkZUJveE9wYWNpdHkodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2NvbGxpZGVCb3hPcGFjaXR5ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5vcGFjaXR5ID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX2lzQ3VzdG9tTGFiZWxBY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAn6Ieq5a6a5LmJ5Y+C5pWwJywgdG9vbHRpcDogQ0NfREVWICYmICfphY3nva7mmL7npLrnmoTlsZ7mgKflhoXlrrknIH0pXHJcbiAgICBwcml2YXRlIGdldCBpc0N1c3RvbUxhYmVsQWN0aXZlKCkgeyByZXR1cm4gdGhpcy5faXNDdXN0b21MYWJlbEFjdGl2ZSB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgaXNDdXN0b21MYWJlbEFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2lzQ3VzdG9tTGFiZWxBY3RpdmUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS5hY3RpdmUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+iEmuacrCcsIHRvb2x0aXA6IENDX0RFViAmJiAn55uR5o6n5ZOq5Liq6ISa5pysJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNDdXN0b21MYWJlbEFjdGl2ZTsgfSB9KVxyXG4gICAgcHJpdmF0ZSBjdXN0b21Db21wb25lbnROYW1lOiBzdHJpbmcgPSAnJztcclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxTdHJpbmc6IHN0cmluZyA9ICd4LHknO1xyXG4gICAgQHByb3BlcnR5KHsgbXVsdGlsaW5lOiB0cnVlLCBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrflj4LmlbAnLCB0b29sdGlwOiBDQ19ERVYgJiYgXCLigJTigJTigJTigJTigJTmlK/mjIHnmoTlj4LmlbDigJTigJTigJTigJRcXG53cO+8muS4lueVjOWdkOagh1xcbnJhZGlhbu+8muinkuW6pu+8iOWNleS9je+8ms+A77yJXFxubWF0cml477ya5Y+Y5o2i55+p6Zi1XFxucGFyZW5077ya54i26IqC54K5XFxuY2hpbGRyZW7vvJrlrZDoioLngrlcXG7oh6rouqvlsZ7mgKfvvJpzY2FsZSx3aWR0aCxvcGFjaXR5562JXFxu6ISa5pys5bGe5oCn77ya6ISa5pys5a6e5L6L5a+56LGh55qE5bGe5oCnXFxu4oCU4oCU4oCU4oCU5Li+5Liq5qCX5a2Q4oCU4oCU4oCU4oCUXFxu6ISa5pys77yaSGVyb1xcbuWPguaVsO+8mndwLHNjYWxlLGFuZ2xlLCNhbmdsZSwjaHBcXG7ihpHihpHihpHnlKjoi7HmlofpgJflj7fmiJblm57ovabliIbpmpTihpHihpHihpFcXG7mmL7npLrnu5PmnpzvvJpcXG7kuJbnlYzlnZDmoIcs6IqC54K5c2NhbGUs6IqC54K5YW5nbGXvvIxIZXJv5a+56LGh55qEYW5nbGUsSGVyb+WvueixoeeahGhwXFxu4oCU4oCU4oCU4oCU5rip6aao5o+Q56S64oCU4oCU4oCU4oCUXFxu5Yid5aeL5YyW55qE5pe25YCZ77yM6K6+572u5YWo5bGA5Y+Y6YePXFxud2luZG93WydEQVRBQk9BUkQnXSA9IGZhbHNlXFxu5Y+v5bGP6JS95pys6aG555uu5omA5pyJRGF0YUJvYXJk77yM5LiN5Lya5Lqn55Sf5Lu75L2V6aKd5aSW5byA6ZSAXCIsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxTdHJpbmcoKSB7IHJldHVybiB0aGlzLl9jdXN0b21MYWJlbFN0cmluZyB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY3VzdG9tTGFiZWxTdHJpbmcodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsU3RyaW5nID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbFN0cmluZ1NwbGl0ID0gdmFsdWVcclxuICAgICAgICAgICAgLnJlcGxhY2UoLywvZywgJ19+XycpLnJlcGxhY2UoLzovZywgJ18hXycpLnJlcGxhY2UoLyAvZywgJ19AXycpXHJcbiAgICAgICAgICAgIC5yZXBsYWNlKC8oW14sXSlcXG4vZywgJyQxX1xcbicpLnJlcGxhY2UoL1xcbihbXixdKS9nLCAnXFxuXyQxJylcclxuICAgICAgICAgICAgLnJlcGxhY2UoLyhbXjpdKVxcbi9nLCAnJDFfXFxuJykucmVwbGFjZSgvXFxuKFteOl0pL2csICdcXG5fJDEnKVxyXG4gICAgICAgICAgICAucmVwbGFjZSgvKFteIF0pXFxuL2csICckMV9cXG4nKS5yZXBsYWNlKC9cXG4oW14gXSkvZywgJ1xcbl8kMScpXHJcbiAgICAgICAgICAgIC5zcGxpdCgnXycpO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jdXN0b21MYWJlbE9mZnNldDogY2MuVmVjMiA9IGNjLnYyKDAsIDEwMCk7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrflgY/np7snLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IGN1c3RvbUxhYmVsT2Zmc2V0KCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxPZmZzZXQgfTtcclxuICAgIHByaXZhdGUgc2V0IGN1c3RvbUxhYmVsT2Zmc2V0KHZhbHVlOiBjYy5WZWMyKSB7XHJcbiAgICAgICAgdGhpcy5fY3VzdG9tTGFiZWxPZmZzZXQgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS54ID0gdmFsdWUueDtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS55ID0gdmFsdWUueTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxDb2xvcjogY2MuQ29sb3IgPSBuZXcgY2MuQ29sb3IoMjU1LCAyNTUsIDApO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36aKc6ImyJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNDdXN0b21MYWJlbEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBjdXN0b21MYWJlbENvbG9yKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxDb2xvciB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY3VzdG9tTGFiZWxDb2xvcih2YWx1ZTogY2MuQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9jdXN0b21MYWJlbENvbG9yID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuY29sb3IgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxTaXplOiBudW1iZXIgPSA2MDtcclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+Wkp+WwjycsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxTaXplKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxTaXplIH07XHJcbiAgICBwcml2YXRlIHNldCBjdXN0b21MYWJlbFNpemUodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsU2l6ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWwuZm9udFNpemUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsLmxpbmVIZWlnaHQgPSB2YWx1ZSpMSU5FSEVJR0hUO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmdldENvbXBvbmVudChjYy5MYWJlbE91dGxpbmUpLndpZHRoID0gdmFsdWUgKiAwLjE7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX2N1c3RvbUxhYmVsRGlnaXQ6IG51bWJlciA9IDA7XHJcbiAgICBAcHJvcGVydHkoeyBtaW46IDAsIG1heDogMTAsIHN0ZXA6IDEsIHNsaWRlOiB0cnVlLCBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrflsI/mlbDkvY3mlbAnLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IGN1c3RvbUxhYmVsRGlnaXQoKSB7IHJldHVybiB0aGlzLl9jdXN0b21MYWJlbERpZ2l0IH07XHJcbiAgICBwcml2YXRlIHNldCBjdXN0b21MYWJlbERpZ2l0KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9jdXN0b21MYWJlbERpZ2l0ID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGJvYXJkTm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIG91dGxpbmVCb3hOb2RlOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIHByaXZhdGUgY29sbGlkZUJveE5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBhbmNob3JQb2ludE5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBjdXN0b21MYWJlbE5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBjdXN0b21MYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBjdXN0b21MYWJlbFN0cmluZ1NwbGl0OiBzdHJpbmdbXSA9IG51bGw7XHJcbiAgICBwcml2YXRlIG1vbml0b3JDb21wOiBjYy5Db21wb25lbnQgPSBudWxsO1xyXG5cclxuICAgIHByb3RlY3RlZCBvbkxvYWQoKSB7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ0RhdGFCb2FyZCcpO1xyXG4gICAgICAgIGlmICghQ0NfRURJVE9SICYmICF3aW5kb3dbJ0RBVEFCT0FSRCddKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjYy5pc1ZhbGlkKHRoaXMuYm9hcmROb2RlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmJvYXJkTm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMuYm9hcmROb2RlLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHRleHR1cmUgPSBuZXcgY2MuVGV4dHVyZTJEKCk7XHJcbiAgICAgICAgdGV4dHVyZS5pbml0V2l0aERhdGEobmV3IFVpbnQ4QXJyYXkoWzI1NSwgMjU1LCAyNTVdKSwgY2MuVGV4dHVyZTJELlBpeGVsRm9ybWF0LlJHQjg4OCwgMSwgMSk7XHJcblxyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlID0gbmV3IGNjLk5vZGUoJ0RhdGFCb2FyZCcpO1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlLnNldFBhcmVudCh0aGlzLm5vZGUpO1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlLnggPSB0aGlzLmJvYXJkTm9kZS55ID0gMDtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZS56SW5kZXggPSBjYy5tYWNyby5NQVhfWklOREVYO1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlWydfb2JqRmxhZ3MnXSB8PSBjYy5PYmplY3RbJ0ZsYWdzJ10uSGlkZUluSGllcmFyY2h5O1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlWydfb2JqRmxhZ3MnXSB8PSBjYy5PYmplY3RbJ0ZsYWdzJ10uTG9ja2VkSW5FZGl0b3I7XHJcblxyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUgPSBuZXcgY2MuTm9kZSgnT3V0bGluZUJveCcpO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuc2V0UGFyZW50KHRoaXMuYm9hcmROb2RlKTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuYWN0aXZlID0gdGhpcy5pc091dGxpbmVCb3hBY3RpdmU7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5jb2xvciA9IHRoaXMub3V0bGluZUJveENvbG9yO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUub3BhY2l0eSA9IHRoaXMub3V0bGluZUJveE9wYWNpdHk7XHJcblxyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUgPSBuZXcgY2MuTm9kZSgnQ29sbGlkZUJveCcpO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuc2V0UGFyZW50KHRoaXMuYm9hcmROb2RlKTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYWN0aXZlID0gdGhpcy5pc0NvbGxpZGVCb3hBY3RpdmU7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5jb2xvciA9IHRoaXMuY29sbGlkZUJveENvbG9yO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUub3BhY2l0eSA9IHRoaXMuY29sbGlkZUJveE9wYWNpdHk7XHJcblxyXG4gICAgICAgIHRoaXMuYW5jaG9yUG9pbnROb2RlID0gbmV3IGNjLk5vZGUoJ0FuY2hvclBvaW50Jyk7XHJcbiAgICAgICAgdGhpcy5hbmNob3JQb2ludE5vZGUuc2V0UGFyZW50KHRoaXMuYm9hcmROb2RlKTtcclxuICAgICAgICB0aGlzLmFuY2hvclBvaW50Tm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICB0aGlzLmFuY2hvclBvaW50Tm9kZS5jb2xvciA9IGNjLmNvbG9yKDI1NSwgMCwgMCk7XHJcbiAgICAgICAgdGhpcy5hbmNob3JQb2ludE5vZGUud2lkdGggPSBBTkNIT1JfU0laRTtcclxuICAgICAgICB0aGlzLmFuY2hvclBvaW50Tm9kZS5oZWlnaHQgPSBBTkNIT1JfU0laRTtcclxuXHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUgPSBuZXcgY2MuTm9kZSgnQ3VzdG9tTGFiZWwnKTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS5zZXRQYXJlbnQodGhpcy5ib2FyZE5vZGUpO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWwgPSB0aGlzLmN1c3RvbUxhYmVsTm9kZS5hZGRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmFkZENvbXBvbmVudChjYy5MYWJlbE91dGxpbmUpLmNvbG9yID0gY2MuY29sb3IoMCwgMCwgMCk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuYWN0aXZlID0gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxTdHJpbmcgPSB0aGlzLl9jdXN0b21MYWJlbFN0cmluZztcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS54ID0gdGhpcy5jdXN0b21MYWJlbE9mZnNldC54O1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLnkgPSB0aGlzLmN1c3RvbUxhYmVsT2Zmc2V0Lnk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuY29sb3IgPSB0aGlzLmN1c3RvbUxhYmVsQ29sb3I7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbFNpemUgPSB0aGlzLl9jdXN0b21MYWJlbFNpemU7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlQW5nbGUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVNjYWxlKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVBbmNob3IoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVNpemUoKTtcclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuUk9UQVRJT05fQ0hBTkdFRCwgdGhpcy51cGRhdGVBbmdsZSwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlNDQUxFX0NIQU5HRUQsIHRoaXMudXBkYXRlU2NhbGUsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5BTkNIT1JfQ0hBTkdFRCwgdGhpcy51cGRhdGVBbmNob3IsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5TSVpFX0NIQU5HRUQsIHRoaXMudXBkYXRlU2l6ZSwgdGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVBbmdsZSgpIHtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmFuZ2xlID0gLXRoaXMubm9kZS5hbmdsZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS5hbmdsZSA9IC10aGlzLm5vZGUuYW5nbGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVTY2FsZSgpIHtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZS5zY2FsZVggPSAxIC8gdGhpcy5ub2RlLnNjYWxlWDtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZS5zY2FsZVkgPSAxIC8gdGhpcy5ub2RlLnNjYWxlWTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLnNjYWxlWCA9IHRoaXMubm9kZS5zY2FsZVg7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5zY2FsZVkgPSB0aGlzLm5vZGUuc2NhbGVZO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuc2NhbGVYID0gdGhpcy5ub2RlLnNjYWxlWDtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLnNjYWxlWSA9IHRoaXMubm9kZS5zY2FsZVk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVBbmNob3IoKSB7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5hbmNob3JYID0gdGhpcy5ub2RlLmFuY2hvclg7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5hbmNob3JZID0gdGhpcy5ub2RlLmFuY2hvclk7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5hbmNob3JYID0gdGhpcy5ub2RlLmFuY2hvclg7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5hbmNob3JZID0gdGhpcy5ub2RlLmFuY2hvclk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVTaXplKCkge1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUud2lkdGggPSB0aGlzLm5vZGUud2lkdGg7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5oZWlnaHQgPSB0aGlzLm5vZGUuaGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUud2lkdGggPSB0aGlzLm5vZGUud2lkdGg7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5oZWlnaHQgPSB0aGlzLm5vZGUuaGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCB1cGRhdGUoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUpIHJldHVybjtcclxuICAgICAgICBpZiAoIXRoaXMuY3VzdG9tTGFiZWxTdHJpbmdTcGxpdCkgcmV0dXJuO1xyXG4gICAgICAgIGxldCBzdHIgPSAnJztcclxuICAgICAgICBsZXQgc3RycyA9IHRoaXMuY3VzdG9tTGFiZWxTdHJpbmdTcGxpdDtcclxuICAgICAgICBpZiAoIXRoaXMubW9uaXRvckNvbXAgJiYgdGhpcy5jdXN0b21Db21wb25lbnROYW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9uaXRvckNvbXAgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KHRoaXMuY3VzdG9tQ29tcG9uZW50TmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBzdHJzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XHJcbiAgICAgICAgICAgIGxldCB0bXAgPSBudWxsO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHN0cnNbaV0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3dwJzpcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcG9zID0gdGhpcy5ub2RlLmNvbnZlcnRUb1dvcmxkU3BhY2VBUihjYy52MigwLCAwKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gYCgke3Bvcy54LnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KX0sXFx0JHtwb3MueS50b0ZpeGVkKHRoaXMuY3VzdG9tTGFiZWxEaWdpdCl9KWA7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdhbmdsZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gdGhpcy5ub2RlLmFuZ2xlLnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KSArICfCsCc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdyYWRpYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHRtcCA9ICh0aGlzLm5vZGUuYW5nbGUgLyAxODApLnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KSArICfPgCc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdtYXRyaXgnOlxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBtYXRyaXggPSB0aGlzLm5vZGVbJ193b3JsZE1hdHJpeCddLm07XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0OyArK2kpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCA0OyArK2opIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtbSA9IG1hdHJpeFtqICogNCArIGldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wICs9IChtbSA8IDAgPyAnXFx0XFx0JyA6ICdcXHRcXHRcXHQnKSArIG1tLnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPT0gMykgdG1wICs9ICdcXG4nO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3BhcmVudCc6XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gdGhpcy5ub2RlLnBhcmVudC5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnY2hpbGRyZW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHRtcCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLm5vZGUuY2hpbGRyZW5Db3VudDsgaSA8IGxlbjsgKytpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCArPSBgXFx0XFx0XFx0JHtpfe+8miR7dGhpcy5ub2RlLmNoaWxkcmVuW2ldLm5hbWV9YDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT09IGxlbiAtIDEpIHRtcCArPSAnXFxuJztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICd+JzogdG1wID0gJyxcXHQnOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJyEnOiB0bXAgPSAnOlxcdCc7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnQCc6IHRtcCA9ICcgXFx0JzsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm5vZGVbc3Ryc1tpXV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSB0aGlzLm5vZGVbc3Ryc1tpXV07XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJzW2ldLnN0YXJ0c1dpdGgoJyMnKSAmJiB0aGlzLm1vbml0b3JDb21wICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHRoaXMubW9uaXRvckNvbXBbc3Ryc1tpXS5zdWJzdHJpbmcoMSldO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHN0cnNbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0bXAgJiYgdG1wLm5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gdG1wLm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdG1wID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICAgICAgdG1wID0gdG1wLnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdHIgKz0gdG1wO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsLnN0cmluZyA9IHN0cjtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmIChjYy5pc1ZhbGlkKHRoaXMuYm9hcmROb2RlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmJvYXJkTm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMuYm9hcmROb2RlLmRlc3Ryb3koKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMubm9kZS50YXJnZXRPZmYodGhpcyk7XHJcbiAgICB9XHJcbn0iXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEYXRhQm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dGQTBCZ0Y7QUFDaEYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMzQixJQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsQ0FBZSxPQUFPO0FBQzdDLElBQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFlLGFBQWE7QUFDN0MsSUFBQSxLQUFpRCxFQUFFLENBQUMsVUFBVSxFQUE1RCxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxpQkFBaUIsdUJBQUEsRUFBRSxJQUFJLFVBQWtCLENBQUM7QUFJckU7SUFBdUMsNkJBQVk7SUFBbkQ7UUFBQSxxRUFzUkM7UUFwUlcseUJBQW1CLEdBQVksS0FBSyxDQUFDO1FBUXJDLHNCQUFnQixHQUFhLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBUXpHLHdCQUFrQixHQUFXLEdBQUcsQ0FBQztRQVFqQyx5QkFBbUIsR0FBWSxJQUFJLENBQUM7UUFRcEMsc0JBQWdCLEdBQWEsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFRekcsd0JBQWtCLEdBQVcsR0FBRyxDQUFDO1FBUWpDLDBCQUFvQixHQUFZLElBQUksQ0FBQztRQVFyQyx5QkFBbUIsR0FBVyxFQUFFLENBQUM7UUFFakMsd0JBQWtC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LENBQUMsQ0FBQyxFQUFFLENBQUM7c0RBQzdCO0lBT2xFO1FBREMsUUFBUTt3REFDdUQ7SUFFaEU7UUFEQyxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFJLFVBQVUsRUFBRSxPQUFPLGdCQUFLLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7cURBQy9CO0lBTWhFO1FBREMsUUFBUTt1REFDNkI7SUFFdEM7UUFEQyxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFJLFVBQVUsRUFBRSxPQUFPLGdCQUFLLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7b0RBQ2pDO0lBUTlEO1FBREMsUUFBUTt3REFDNkI7SUFFdEM7UUFEQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLElBQUksWUFBWSxFQUFFLE9BQU8sZ0JBQUssT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztxREFDeEU7SUF0Ry9DLFNBQVM7UUFIN0IsT0FBTztRQUNQLGlCQUFpQjtRQUNqQixJQUFJLENBQUMscUJBQXFCLENBQUM7T0FDUCxTQUFTLENBc1I3QjtJQUFELGdCQUFDO0NBdFJELEFBc1JDLENBdFJzQyxFQUFFLENBQUMsU0FBUyxHQXNSbEQ7a0JBdFJvQixTQUFTIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICog5Yib5bu6OiAgICAyMDIy5bm0MTHmnIgyM+aXpVxyXG4gKiDkvZzogIU6ICAgIOawtOeFruiCieeJh+mlrSgyNzE4NTcwOUBxcS5jb20pXHJcbiAqIOaPj+i/sDogICAg5pWw5o2u55yL5p2/XHJcbiAqIOiKgueCueaMguS4iuivpee7hOS7tu+8jOWwseWPr+S7peWcqOa4uOaIj+i/kOihjOi/h+eoi+S4re+8jOebtOingueci+WIsOiKgueCueS7u+aEj+WxnuaAp++8iOWMheaLrOiKgueCueiEmuacrOS4reeahOWxnuaAp++8iVxyXG4gKiDlj6/ku6Xlm77lvaLljJblsZXnpLrku6XkuIvlm5vnp43mlbDmja7vvJpcclxuICogICAgICAgICAg6L2u5buT55uS5a2Q77yaICAgICAgICAgIOmaj+iKgueCueaXi+i9rO+8jOS7o+ihqOiKgueCueeahOWunuaXtuefqeW9olxyXG4gKiAgICAgICAgICDnorDmkp7nm5LlrZDvvJogICAgICAgICAg5LiN6ZqP6IqC54K55peL6L2s77yM5LiA6Iis5Luj6KGo56Kw5pKe6IyD5Zu0XHJcbiAqICAgICAgICAgIOiHquWumuS5ieWPguaVsO+8miAgICAgICAg6IqC54K56Ieq6Lqr5bGe5oCn77yM5Lul5Y+K6IqC54K55Lu75oSP6ISa5pys5Lit55qE5bGe5oCnXHJcbiAqICAgICAgICAgIOmUmueCue+8miAgICAgICAgICAgICDplJrngrnkvY3nva7kvJrmmL7npLrkuIDkuKrlsI/nuqLngrlcclxuICog6Ieq5a6a5LmJ5Y+C5pWw77yI6YWN572u5oOz55uR5o6n55qE5pWw5o2u77yJ77yaXHJcbiAqICAgICAgICAgIHdw77yaICAgICAgICAgICAgICAg5LiW55WM5Z2Q5qCH77yM5Y2z55u45a+55LqO5bGP5bmV5bem5LiL6KeS55qE5Z2Q5qCHXHJcbiAqICAgICAgICAgIHJhZGlhbu+8miAgICAgICAgICAg6IqC54K55byn5bqm77yM5Y2V5L2Nz4BcclxuICogICAgICAgICAgbWF0cml4OiAgICAgICAgICAgIOWPmOaNouefqemYtVxyXG4gKiAgICAgICAgICBwYXJlbnTvvJogICAgICAgICAgIOeItuiKgueCuVxyXG4gKiAgICAgICAgICBjaGlsZHJlbu+8miAgICAgICAgIOWtkOiKgueCuVxyXG4gKiAgICAgICAgICDoh6rouqvlsZ7mgKfvvJogICAgICAgICAgc2NhbGUsd2lkdGgsb3BhY2l0eeetiVxyXG4gKiAgICAgICAgICDohJrmnKzlsZ7mgKfvvJogICAgICAgICAg6ISa5pys5a6e5L6L5a+56LGh55qE5bGe5oCnXHJcbiAqIOKGk+KGk+WPguaVsOWPr+S7peeUqDPnp43liIbpmpTnrKbpmpTlvIDihpPihpNcclxuICogICAgICAgICAg6Iux5paH6YCX5Y+344CB6Iux5paH5YaS5Y+344CB56m65qC8XHJcbiAqIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOS4vuS4quagl+WtkOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlFxyXG4gKiDohJrmnKzvvJogICAgSGVyb1xyXG4gKiDlj4LmlbDvvJogICAgd3Asc2NhbGUsYW5nbGUsI2FuZ2xlLCNocFxyXG4gKiDmmL7npLrnu5PmnpzvvJrkuJbnlYzlnZDmoIcs6IqC54K5c2NhbGUs6IqC54K5YW5nbGXvvIxIZXJv5a+56LGh55qEYW5nbGUsSGVyb+WvueixoeeahGhwXHJcbiAqIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOa4qemmqOaPkOekuuKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlFxyXG4gKiDliJ3lp4vljJbnmoTml7blgJnvvIzorr7nva7lhajlsYDlj5jph493aW5kb3dbJ0RBVEFCT0FSRCddID0gZmFsc2Xlj6/lsY/olL3mnKzpobnnm67miYDmnIlEYXRhQm9hcmTvvIzkuI3kvJrkuqfnlJ/ku7vkvZXpop3lpJblvIDplIBcXG5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxud2luZG93WydEQVRBQk9BUkQnXSA9IHRydWU7XHJcbmNvbnN0IEFOQ0hPUl9TSVpFID0gMjA7ICAgICAgICAgICAgICAgLy/plJrngrnnmoTlpKflsI9cclxuY29uc3QgTElORUhFSUdIVCA9IDEuMjsgICAgICAgICAgICAgICAvL+ihjOmrmOaYr+Wtl+S9k+Wkp+Wwj+eahOWkmuWwkeWAjVxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5LCBleGVjdXRlSW5FZGl0TW9kZSwgbWVudSB9ID0gY2MuX2RlY29yYXRvcjtcclxuQGNjY2xhc3NcclxuQGV4ZWN1dGVJbkVkaXRNb2RlXHJcbkBtZW51KCdDb21wb25lbnQvRGF0YUJvYXJkJylcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGF0YUJvYXJkIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfaXNPdXRsaW5lQm94QWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfova7lu5Pnm5LlrZAnLCB0b29sdGlwOiBDQ19ERVYgJiYgJ+maj+iKgueCueaXi+i9rO+8jOS7o+ihqOWunuaXtui9ruW7kycgfSlcclxuICAgIHByaXZhdGUgZ2V0IGlzT3V0bGluZUJveEFjdGl2ZSgpIHsgcmV0dXJuIHRoaXMuX2lzT3V0bGluZUJveEFjdGl2ZSB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgaXNPdXRsaW5lQm94QWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5faXNPdXRsaW5lQm94QWN0aXZlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5hY3RpdmUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfb3V0bGluZUJveENvbG9yOiBjYy5Db2xvciA9IG5ldyBjYy5Db2xvcihNYXRoLnJhbmRvbSgpICogMjU1LCBNYXRoLnJhbmRvbSgpICogMjU1LCBNYXRoLnJhbmRvbSgpICogMjU1KTtcclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+minOiJsicsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzT3V0bGluZUJveEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBvdXRsaW5lQm94Q29sb3IoKSB7IHJldHVybiB0aGlzLl9vdXRsaW5lQm94Q29sb3IgfTtcclxuICAgIHByaXZhdGUgc2V0IG91dGxpbmVCb3hDb2xvcih2YWx1ZTogY2MuQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9vdXRsaW5lQm94Q29sb3IgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmNvbG9yID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX291dGxpbmVCb3hPcGFjaXR5OiBudW1iZXIgPSAxMDA7XHJcbiAgICBAcHJvcGVydHkoeyBtaW46IDAsIG1heDogMjU1LCBzdGVwOiAxLCBzbGlkZTogdHJ1ZSwgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36YCP5piO5bqmJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNPdXRsaW5lQm94QWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IG91dGxpbmVCb3hPcGFjaXR5KCkgeyByZXR1cm4gdGhpcy5fb3V0bGluZUJveE9wYWNpdHkgfTtcclxuICAgIHByaXZhdGUgc2V0IG91dGxpbmVCb3hPcGFjaXR5KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9vdXRsaW5lQm94T3BhY2l0eSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUub3BhY2l0eSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9pc0NvbGxpZGVCb3hBY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAn56Kw5pKe55uS5a2QJywgdG9vbHRpcDogQ0NfREVWICYmICfkuI3pmo/oioLngrnml4vovazvvIzku6PooajnorDmkp7ojIPlm7QnIH0pXHJcbiAgICBwcml2YXRlIGdldCBpc0NvbGxpZGVCb3hBY3RpdmUoKSB7IHJldHVybiB0aGlzLl9pc0NvbGxpZGVCb3hBY3RpdmUgfTtcclxuICAgIHByaXZhdGUgc2V0IGlzQ29sbGlkZUJveEFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2lzQ29sbGlkZUJveEFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYWN0aXZlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX2NvbGxpZGVCb3hDb2xvcjogY2MuQ29sb3IgPSBuZXcgY2MuQ29sb3IoTWF0aC5yYW5kb20oKSAqIDI1NSwgTWF0aC5yYW5kb20oKSAqIDI1NSwgTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrfpopzoibInLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0NvbGxpZGVCb3hBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY29sbGlkZUJveENvbG9yKCkgeyByZXR1cm4gdGhpcy5fY29sbGlkZUJveENvbG9yIH07XHJcbiAgICBwcml2YXRlIHNldCBjb2xsaWRlQm94Q29sb3IodmFsdWU6IGNjLkNvbG9yKSB7XHJcbiAgICAgICAgdGhpcy5fY29sbGlkZUJveENvbG9yID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5jb2xvciA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jb2xsaWRlQm94T3BhY2l0eTogbnVtYmVyID0gMTAwO1xyXG4gICAgQHByb3BlcnR5KHsgbWluOiAwLCBtYXg6IDI1NSwgc3RlcDogMSwgc2xpZGU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+mAj+aYjuW6picsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ29sbGlkZUJveEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBjb2xsaWRlQm94T3BhY2l0eSgpIHsgcmV0dXJuIHRoaXMuX2NvbGxpZGVCb3hPcGFjaXR5IH07XHJcbiAgICBwcml2YXRlIHNldCBjb2xsaWRlQm94T3BhY2l0eSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fY29sbGlkZUJveE9wYWNpdHkgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLm9wYWNpdHkgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfaXNDdXN0b21MYWJlbEFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfoh6rlrprkuYnlj4LmlbAnLCB0b29sdGlwOiBDQ19ERVYgJiYgJ+mFjee9ruaYvuekuueahOWxnuaAp+WGheWuuScgfSlcclxuICAgIHByaXZhdGUgZ2V0IGlzQ3VzdG9tTGFiZWxBY3RpdmUoKSB7IHJldHVybiB0aGlzLl9pc0N1c3RvbUxhYmVsQWN0aXZlIH07XHJcbiAgICBwcml2YXRlIHNldCBpc0N1c3RvbUxhYmVsQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5faXNDdXN0b21MYWJlbEFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36ISa5pysJywgdG9vbHRpcDogQ0NfREVWICYmICfnm5Hmjqflk6rkuKrohJrmnKwnLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlOyB9IH0pXHJcbiAgICBwcml2YXRlIGN1c3RvbUNvbXBvbmVudE5hbWU6IHN0cmluZyA9ICcnO1xyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jdXN0b21MYWJlbFN0cmluZzogc3RyaW5nID0gJ3gseSc7XHJcbiAgICBAcHJvcGVydHkoeyBtdWx0aWxpbmU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+WPguaVsCcsIHRvb2x0aXA6IENDX0RFViAmJiBcIuKAlOKAlOKAlOKAlOKAlOaUr+aMgeeahOWPguaVsOKAlOKAlOKAlOKAlFxcbndw77ya5LiW55WM5Z2Q5qCHXFxucmFkaWFu77ya6KeS5bqm77yI5Y2V5L2N77yaz4DvvIlcXG5tYXRyaXjvvJrlj5jmjaLnn6npmLVcXG5wYXJlbnTvvJrniLboioLngrlcXG5jaGlsZHJlbu+8muWtkOiKgueCuVxcbuiHqui6q+WxnuaAp++8mnNjYWxlLHdpZHRoLG9wYWNpdHnnrYlcXG7ohJrmnKzlsZ7mgKfvvJrohJrmnKzlrp7kvovlr7nosaHnmoTlsZ7mgKdcXG7ihpPihpPlj4LmlbDlj6/ku6XnlKgz56eN5YiG6ZqU56ym6ZqU5byA4oaT4oaTXFxu6Iux5paH6YCX5Y+344CB6Iux5paH5YaS5Y+344CB56m65qC8XFxu4oCU4oCU4oCU4oCU5Li+5Liq5qCX5a2Q4oCU4oCU4oCU4oCUXFxu6ISa5pys77yaSGVyb1xcbuWPguaVsO+8mndwLHNjYWxlLGFuZ2xlLCNhbmdsZSwjaHBcXG7mmL7npLrnu5PmnpzvvJpcXG7kuJbnlYzlnZDmoIcs6IqC54K5c2NhbGUs6IqC54K5YW5nbGXvvIxIZXJv5a+56LGh55qEYW5nbGUsSGVyb+WvueixoeeahGhwXFxu4oCU4oCU4oCU4oCU5rip6aao5o+Q56S64oCU4oCU4oCU4oCUXFxu5Yid5aeL5YyW55qE5pe25YCZ77yM6K6+572u5YWo5bGA5Y+Y6YePXFxud2luZG93WydEQVRBQk9BUkQnXSA9IGZhbHNlXFxu5Y+v5bGP6JS95pys6aG555uu5omA5pyJRGF0YUJvYXJk77yM5LiN5Lya5Lqn55Sf5Lu75L2V6aKd5aSW5byA6ZSAXCIsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxTdHJpbmcoKSB7IHJldHVybiB0aGlzLl9jdXN0b21MYWJlbFN0cmluZyB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY3VzdG9tTGFiZWxTdHJpbmcodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsU3RyaW5nID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbFN0cmluZ1NwbGl0ID0gdmFsdWVcclxuICAgICAgICAgICAgLnJlcGxhY2UoLywvZywgJ19+XycpLnJlcGxhY2UoLzovZywgJ18hXycpLnJlcGxhY2UoLyAvZywgJ19AXycpXHJcbiAgICAgICAgICAgIC5yZXBsYWNlKC8oW14sXSlcXG4vZywgJyQxX1xcbicpLnJlcGxhY2UoL1xcbihbXixdKS9nLCAnXFxuXyQxJylcclxuICAgICAgICAgICAgLnJlcGxhY2UoLyhbXjpdKVxcbi9nLCAnJDFfXFxuJykucmVwbGFjZSgvXFxuKFteOl0pL2csICdcXG5fJDEnKVxyXG4gICAgICAgICAgICAucmVwbGFjZSgvKFteIF0pXFxuL2csICckMV9cXG4nKS5yZXBsYWNlKC9cXG4oW14gXSkvZywgJ1xcbl8kMScpXHJcbiAgICAgICAgICAgIC5zcGxpdCgnXycpO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jdXN0b21MYWJlbE9mZnNldDogY2MuVmVjMiA9IGNjLnYyKDAsIDEwMCk7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrflgY/np7snLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IGN1c3RvbUxhYmVsT2Zmc2V0KCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxPZmZzZXQgfTtcclxuICAgIHByaXZhdGUgc2V0IGN1c3RvbUxhYmVsT2Zmc2V0KHZhbHVlOiBjYy5WZWMyKSB7XHJcbiAgICAgICAgdGhpcy5fY3VzdG9tTGFiZWxPZmZzZXQgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS54ID0gdmFsdWUueDtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS55ID0gdmFsdWUueTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxDb2xvcjogY2MuQ29sb3IgPSBuZXcgY2MuQ29sb3IoMjU1LCAyNTUsIDApO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36aKc6ImyJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNDdXN0b21MYWJlbEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBjdXN0b21MYWJlbENvbG9yKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxDb2xvciB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY3VzdG9tTGFiZWxDb2xvcih2YWx1ZTogY2MuQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9jdXN0b21MYWJlbENvbG9yID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuY29sb3IgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxTaXplOiBudW1iZXIgPSA2MDtcclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+Wkp+WwjycsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxTaXplKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxTaXplIH07XHJcbiAgICBwcml2YXRlIHNldCBjdXN0b21MYWJlbFNpemUodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsU2l6ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWwuZm9udFNpemUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsLmxpbmVIZWlnaHQgPSB2YWx1ZSAqIExJTkVIRUlHSFQ7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuZ2V0Q29tcG9uZW50KGNjLkxhYmVsT3V0bGluZSkud2lkdGggPSB2YWx1ZSAqIDAuMTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxEaWdpdDogbnVtYmVyID0gMDtcclxuICAgIEBwcm9wZXJ0eSh7IG1pbjogMCwgbWF4OiAxMCwgc3RlcDogMSwgc2xpZGU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+Wwj+aVsOS9jeaVsCcsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxEaWdpdCgpIHsgcmV0dXJuIHRoaXMuX2N1c3RvbUxhYmVsRGlnaXQgfTtcclxuICAgIHByaXZhdGUgc2V0IGN1c3RvbUxhYmVsRGlnaXQodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsRGlnaXQgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgYm9hcmROb2RlOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIHByaXZhdGUgb3V0bGluZUJveE5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBjb2xsaWRlQm94Tm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGFuY2hvclBvaW50Tm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGN1c3RvbUxhYmVsTm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGN1c3RvbUxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcbiAgICBwcml2YXRlIGN1c3RvbUxhYmVsU3RyaW5nU3BsaXQ6IHN0cmluZ1tdID0gbnVsbDtcclxuICAgIHByaXZhdGUgbW9uaXRvckNvbXA6IGNjLkNvbXBvbmVudCA9IG51bGw7XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uTG9hZCgpIHtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZSA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnRGF0YUJvYXJkJyk7XHJcbiAgICAgICAgaWYgKCFDQ19FRElUT1IgJiYgIXdpbmRvd1snREFUQUJPQVJEJ10pIHtcclxuICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNjLmlzVmFsaWQodGhpcy5ib2FyZE5vZGUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYm9hcmROb2RlLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgdGhpcy5ib2FyZE5vZGUuZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdGV4dHVyZSA9IG5ldyBjYy5UZXh0dXJlMkQoKTtcclxuICAgICAgICB0ZXh0dXJlLmluaXRXaXRoRGF0YShuZXcgVWludDhBcnJheShbMjU1LCAyNTUsIDI1NV0pLCBjYy5UZXh0dXJlMkQuUGl4ZWxGb3JtYXQuUkdCODg4LCAxLCAxKTtcclxuXHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUgPSBuZXcgY2MuTm9kZSgnRGF0YUJvYXJkJyk7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUuc2V0UGFyZW50KHRoaXMubm9kZSk7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUueCA9IHRoaXMuYm9hcmROb2RlLnkgPSAwO1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlLnpJbmRleCA9IGNjLm1hY3JvLk1BWF9aSU5ERVg7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGVbJ19vYmpGbGFncyddIHw9IGNjLk9iamVjdFsnRmxhZ3MnXS5IaWRlSW5IaWVyYXJjaHk7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGVbJ19vYmpGbGFncyddIHw9IGNjLk9iamVjdFsnRmxhZ3MnXS5Mb2NrZWRJbkVkaXRvcjtcclxuXHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZSA9IG5ldyBjYy5Ob2RlKCdPdXRsaW5lQm94Jyk7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5zZXRQYXJlbnQodGhpcy5ib2FyZE5vZGUpO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5hY3RpdmUgPSB0aGlzLmlzT3V0bGluZUJveEFjdGl2ZTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmNvbG9yID0gdGhpcy5vdXRsaW5lQm94Q29sb3I7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5vcGFjaXR5ID0gdGhpcy5vdXRsaW5lQm94T3BhY2l0eTtcclxuXHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZSA9IG5ldyBjYy5Ob2RlKCdDb2xsaWRlQm94Jyk7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5zZXRQYXJlbnQodGhpcy5ib2FyZE5vZGUpO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5hY3RpdmUgPSB0aGlzLmlzQ29sbGlkZUJveEFjdGl2ZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmNvbG9yID0gdGhpcy5jb2xsaWRlQm94Q29sb3I7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5vcGFjaXR5ID0gdGhpcy5jb2xsaWRlQm94T3BhY2l0eTtcclxuXHJcbiAgICAgICAgdGhpcy5hbmNob3JQb2ludE5vZGUgPSBuZXcgY2MuTm9kZSgnQW5jaG9yUG9pbnQnKTtcclxuICAgICAgICB0aGlzLmFuY2hvclBvaW50Tm9kZS5zZXRQYXJlbnQodGhpcy5ib2FyZE5vZGUpO1xyXG4gICAgICAgIHRoaXMuYW5jaG9yUG9pbnROb2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgIHRoaXMuYW5jaG9yUG9pbnROb2RlLmNvbG9yID0gY2MuY29sb3IoMjU1LCAwLCAwKTtcclxuICAgICAgICB0aGlzLmFuY2hvclBvaW50Tm9kZS53aWR0aCA9IEFOQ0hPUl9TSVpFO1xyXG4gICAgICAgIHRoaXMuYW5jaG9yUG9pbnROb2RlLmhlaWdodCA9IEFOQ0hPUl9TSVpFO1xyXG5cclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZSA9IG5ldyBjYy5Ob2RlKCdDdXN0b21MYWJlbCcpO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLnNldFBhcmVudCh0aGlzLmJvYXJkTm9kZSk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbCA9IHRoaXMuY3VzdG9tTGFiZWxOb2RlLmFkZENvbXBvbmVudChjYy5MYWJlbCk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuYWRkQ29tcG9uZW50KGNjLkxhYmVsT3V0bGluZSkuY29sb3IgPSBjYy5jb2xvcigwLCAwLCAwKTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS5hY3RpdmUgPSB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbFN0cmluZyA9IHRoaXMuX2N1c3RvbUxhYmVsU3RyaW5nO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLnggPSB0aGlzLmN1c3RvbUxhYmVsT2Zmc2V0Lng7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUueSA9IHRoaXMuY3VzdG9tTGFiZWxPZmZzZXQueTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS5jb2xvciA9IHRoaXMuY3VzdG9tTGFiZWxDb2xvcjtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsU2l6ZSA9IHRoaXMuX2N1c3RvbUxhYmVsU2l6ZTtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVBbmdsZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2NhbGUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFuY2hvcigpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2l6ZSgpO1xyXG4gICAgICAgIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5ST1RBVElPTl9DSEFOR0VELCB0aGlzLnVwZGF0ZUFuZ2xlLCB0aGlzKTtcclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuU0NBTEVfQ0hBTkdFRCwgdGhpcy51cGRhdGVTY2FsZSwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLkFOQ0hPUl9DSEFOR0VELCB0aGlzLnVwZGF0ZUFuY2hvciwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlNJWkVfQ0hBTkdFRCwgdGhpcy51cGRhdGVTaXplLCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUFuZ2xlKCkge1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYW5nbGUgPSAtdGhpcy5ub2RlLmFuZ2xlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmFuZ2xlID0gLXRoaXMubm9kZS5hbmdsZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZVNjYWxlKCkge1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlLnNjYWxlWCA9IDEgLyB0aGlzLm5vZGUuc2NhbGVYO1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlLnNjYWxlWSA9IDEgLyB0aGlzLm5vZGUuc2NhbGVZO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuc2NhbGVYID0gdGhpcy5ub2RlLnNjYWxlWDtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLnNjYWxlWSA9IHRoaXMubm9kZS5zY2FsZVk7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5zY2FsZVggPSB0aGlzLm5vZGUuc2NhbGVYO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuc2NhbGVZID0gdGhpcy5ub2RlLnNjYWxlWTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUFuY2hvcigpIHtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmFuY2hvclggPSB0aGlzLm5vZGUuYW5jaG9yWDtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmFuY2hvclkgPSB0aGlzLm5vZGUuYW5jaG9yWTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmFuY2hvclggPSB0aGlzLm5vZGUuYW5jaG9yWDtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmFuY2hvclkgPSB0aGlzLm5vZGUuYW5jaG9yWTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZVNpemUoKSB7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS53aWR0aCA9IHRoaXMubm9kZS53aWR0aDtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmhlaWdodCA9IHRoaXMubm9kZS5oZWlnaHQ7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS53aWR0aCA9IHRoaXMubm9kZS53aWR0aDtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmhlaWdodCA9IHRoaXMubm9kZS5oZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHVwZGF0ZSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNDdXN0b21MYWJlbEFjdGl2ZSkgcmV0dXJuO1xyXG4gICAgICAgIGlmICghdGhpcy5jdXN0b21MYWJlbFN0cmluZ1NwbGl0KSByZXR1cm47XHJcbiAgICAgICAgbGV0IHN0ciA9ICcnO1xyXG4gICAgICAgIGxldCBzdHJzID0gdGhpcy5jdXN0b21MYWJlbFN0cmluZ1NwbGl0O1xyXG4gICAgICAgIGlmICghdGhpcy5tb25pdG9yQ29tcCAmJiB0aGlzLmN1c3RvbUNvbXBvbmVudE5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5tb25pdG9yQ29tcCA9IHRoaXMubm9kZS5nZXRDb21wb25lbnQodGhpcy5jdXN0b21Db21wb25lbnROYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHN0cnMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcclxuICAgICAgICAgICAgbGV0IHRtcCA9IG51bGw7XHJcbiAgICAgICAgICAgIHN3aXRjaCAoc3Ryc1tpXSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnd3AnOlxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3MgPSB0aGlzLm5vZGUuY29udmVydFRvV29ybGRTcGFjZUFSKGNjLnYyKDAsIDApKTtcclxuICAgICAgICAgICAgICAgICAgICB0bXAgPSBgKCR7cG9zLngudG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpfSxcXHQke3Bvcy55LnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KX0pYDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2FuZ2xlJzpcclxuICAgICAgICAgICAgICAgICAgICB0bXAgPSB0aGlzLm5vZGUuYW5nbGUudG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpICsgJ8KwJztcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3JhZGlhbic6XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gKHRoaXMubm9kZS5hbmdsZSAvIDE4MCkudG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpICsgJ8+AJztcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ21hdHJpeCc6XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1hdHJpeCA9IHRoaXMubm9kZVsnX3dvcmxkTWF0cml4J10ubTtcclxuICAgICAgICAgICAgICAgICAgICB0bXAgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7ICsraSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IDQ7ICsraikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1tID0gbWF0cml4W2ogKiA0ICsgaV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgKz0gKG1tIDwgMCA/ICdcXHRcXHQnIDogJ1xcdFxcdFxcdCcpICsgbW0udG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICE9PSAzKSB0bXAgKz0gJ1xcbic7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAncGFyZW50JzpcclxuICAgICAgICAgICAgICAgICAgICB0bXAgPSB0aGlzLm5vZGUucGFyZW50Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdjaGlsZHJlbic6XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHRoaXMubm9kZS5jaGlsZHJlbkNvdW50OyBpIDwgbGVuOyArK2kpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wICs9IGBcXHRcXHRcXHQke2l977yaJHt0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZX1gO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPT0gbGVuIC0gMSkgdG1wICs9ICdcXG4nO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ34nOiB0bXAgPSAnLFxcdCc7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnISc6IHRtcCA9ICc6XFx0JzsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdAJzogdG1wID0gJyBcXHQnOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm9kZVtzdHJzW2ldXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHRoaXMubm9kZVtzdHJzW2ldXTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cnNbaV0uc3RhcnRzV2l0aCgnIycpICYmIHRoaXMubW9uaXRvckNvbXAgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gdGhpcy5tb25pdG9yQ29tcFtzdHJzW2ldLnN1YnN0cmluZygxKV07XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gc3Ryc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCAmJiB0bXAubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSB0bXAubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB0bXAgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgICAgICB0bXAgPSB0bXAudG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN0ciArPSB0bXA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWwuc3RyaW5nID0gc3RyO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKGNjLmlzVmFsaWQodGhpcy5ib2FyZE5vZGUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYm9hcmROb2RlLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgdGhpcy5ib2FyZE5vZGUuZGVzdHJveSgpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5ub2RlLnRhcmdldE9mZih0aGlzKTtcclxuICAgIH1cclxufSJdfQ== //------QC-SOURCE-SPLIT------ (function() { diff --git a/temp/quick-scripts/dst/assets/Script/DataBoard.js b/temp/quick-scripts/dst/assets/Script/DataBoard.js index 676a102..49fd0e0 100644 --- a/temp/quick-scripts/dst/assets/Script/DataBoard.js +++ b/temp/quick-scripts/dst/assets/Script/DataBoard.js @@ -52,9 +52,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); * children: 子节点 * 自身属性: scale,width,opacity等 * 脚本属性: 脚本实例对象的属性 + * ↓↓参数可以用3种分隔符隔开↓↓ + * 英文逗号、英文冒号、空格 * ————————————————————————举个栗子———————————————————————— * 脚本: Hero - * 参数: wp,scale,angle,#angle,#hp(用英文逗号或回车分隔) + * 参数: wp,scale,angle,#angle,#hp * 显示结果:世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp * ————————————————————————温馨提示———————————————————————— * 初始化的时候,设置全局变量window['DATABOARD'] = false可屏蔽本项目所有DataBoard,不会产生任何额外开销\n @@ -430,7 +432,7 @@ var DataBoard = /** @class */ (function (_super) { property ], DataBoard.prototype, "_customLabelString", void 0); __decorate([ - property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:角度(单位:π)\nmatrix:变换矩阵\nparent:父节点\nchildren:子节点\n自身属性:scale,width,opacity等\n脚本属性:脚本实例对象的属性\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n↑↑↑用英文逗号或回车分隔↑↑↑\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible: function () { return this.isCustomLabelActive; } }) + property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:角度(单位:π)\nmatrix:变换矩阵\nparent:父节点\nchildren:子节点\n自身属性:scale,width,opacity等\n脚本属性:脚本实例对象的属性\n↓↓参数可以用3种分隔符隔开↓↓\n英文逗号、英文冒号、空格\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible: function () { return this.isCustomLabelActive; } }) ], DataBoard.prototype, "customLabelString", null); __decorate([ property @@ -476,4 +478,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEYXRhQm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnRkF3QmdGO0FBQ2hGLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDM0IsSUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQWUsT0FBTztBQUM3QyxJQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsQ0FBZSxhQUFhO0FBQzdDLElBQUEsS0FBaUQsRUFBRSxDQUFDLFVBQVUsRUFBNUQsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFBLEVBQUUsaUJBQWlCLHVCQUFBLEVBQUUsSUFBSSxVQUFrQixDQUFDO0FBSXJFO0lBQXVDLDZCQUFZO0lBQW5EO1FBQUEscUVBc1JDO1FBcFJXLHlCQUFtQixHQUFZLEtBQUssQ0FBQztRQVFyQyxzQkFBZ0IsR0FBYSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztRQVF6Ryx3QkFBa0IsR0FBVyxHQUFHLENBQUM7UUFRakMseUJBQW1CLEdBQVksSUFBSSxDQUFDO1FBUXBDLHNCQUFnQixHQUFhLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBUXpHLHdCQUFrQixHQUFXLEdBQUcsQ0FBQztRQVFqQywwQkFBb0IsR0FBWSxJQUFJLENBQUM7UUFRckMseUJBQW1CLEdBQVcsRUFBRSxDQUFDO1FBRWpDLHdCQUFrQixH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QUFNLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDbEQsQ0FBQztJQUVPLGdDQUFZLEdBQXBCO1FBQ0ksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDcEQsQ0FBQztJQUVPLDhCQUFVLEdBQWxCO1FBQ0ksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDbEQsQ0FBQztJQUVTLDBCQUFNLEdBQWhCO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUI7WUFBRSxPQUFPO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCO1lBQUUsT0FB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QUFDLENBQUMsRUFBRSxDQUFDO3NEQUM3QjtJQU9sRTtRQURDLFFBQVE7d0RBQ3VEO0lBRWhFO1FBREMsUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sSUFBSSxVQUFVLEVBQUUsT0FBTyxnQkFBSyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDO3FEQUMvQjtJQU1oRTtRQURDLFFBQVE7dURBQzZCO0lBRXRDO1FBREMsUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sSUFBSSxVQUFVLEVBQUUsT0FBTyxnQkFBSyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDO29EQUNqQztJQVE5RDtRQURDLFFBQVE7d0RBQzZCO0lBRXRDO1FBREMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFJLFlBQVksRUFBRSxPQUFPLGdCQUFLLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7cURBQ3hFO0lBdEcvQyxTQUFTO1FBSDdCLE9BQU87UUFDUCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLHFCQUFxQixDQUFDO09BQ1AsU0FBUyxDQXNSN0I7SUFBRCxnQkFBQztDQXRSRCxBQXNSQyxDQXRSc0MsRUFBRSxDQUFDLFNBQVMsR0FzUmxEO2tCQXRSb0IsU0FBUyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIOWIm+W7ujogICAgMjAyMuW5tDEx5pyIMjPml6VcclxuICog5L2c6ICFOiAgICDmsLTnha7ogonniYfppa0oMjcxODU3MDlAcXEuY29tKVxyXG4gKiDmj4/ov7A6ICAgIOaVsOaNrueci+adv1xyXG4gKiDoioLngrnmjILkuIror6Xnu4Tku7bvvIzlsLHlj6/ku6XlnKjmuLjmiI/ov5DooYzov4fnqIvkuK3vvIznm7Top4LnnIvliLDoioLngrnku7vmhI/lsZ7mgKfvvIjljIXmi6zoioLngrnohJrmnKzkuK3nmoTlsZ7mgKfvvIlcclxuICog5Y+v5Lul5Zu+5b2i5YyW5bGV56S65Lul5LiL5Zub56eN5pWw5o2u77yaXHJcbiAqICAgICAgICAgIOi9ruW7k+ebkuWtkO+8miAgICAgICAgICDpmo/oioLngrnml4vovazvvIzku6PooajoioLngrnnmoTlrp7ml7bnn6nlvaJcclxuICogICAgICAgICAg56Kw5pKe55uS5a2Q77yaICAgICAgICAgIOS4jemaj+iKgueCueaXi+i9rO+8jOS4gOiIrOS7o+ihqOeisOaSnuiMg+WbtFxyXG4gKiAgICAgICAgICDoh6rlrprkuYnlj4LmlbDvvJogICAgICAgIOiKgueCueiHqui6q+WxnuaAp++8jOS7peWPiuiKgueCueS7u+aEj+iEmuacrOS4reeahOWxnuaAp1xyXG4gKiAgICAgICAgICDplJrngrnvvJogICAgICAgICAgICAg6ZSa54K55L2N572u5Lya5pi+56S65LiA5Liq5bCP57qi54K5XHJcbiAqIOiHquWumuS5ieWPguaVsO+8iOmFjee9ruaDs+ebkeaOp+eahOaVsOaNru+8ie+8mlxyXG4gKiAgICAgICAgICB3cO+8miAgICAgICAgICAgICAgIOS4lueVjOWdkOagh++8jOWNs+ebuOWvueS6juWxj+W5leW3puS4i+inkueahOWdkOagh1xyXG4gKiAgICAgICAgICByYWRpYW7vvJogICAgICAgICAgIOiKgueCueW8p+W6pu+8jOWNleS9jc+AXHJcbiAqICAgICAgICAgIG1hdHJpeDogICAgICAgICAgICDlj5jmjaLnn6npmLVcclxuICogICAgICAgICAgcGFyZW5077yaICAgICAgICAgICDniLboioLngrlcclxuICogICAgICAgICAgY2hpbGRyZW7vvJogICAgICAgICDlrZDoioLngrlcclxuICogICAgICAgICAg6Ieq6Lqr5bGe5oCn77yaICAgICAgICAgIHNjYWxlLHdpZHRoLG9wYWNpdHnnrYlcclxuICogICAgICAgICAg6ISa5pys5bGe5oCn77yaICAgICAgICAgIOiEmuacrOWunuS+i+WvueixoeeahOWxnuaAp1xyXG4gKiDigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTkuL7kuKrmoJflrZDigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJRcclxuICog6ISa5pys77yaICAgIEhlcm9cclxuICog5Y+C5pWw77yaICAgIHdwLHNjYWxlLGFuZ2xlLCNhbmdsZSwjaHDvvIjnlKjoi7HmlofpgJflj7fmiJblm57ovabliIbpmpTvvIlcclxuICog5pi+56S657uT5p6c77ya5LiW55WM5Z2Q5qCHLOiKgueCuXNjYWxlLOiKgueCuWFuZ2xl77yMSGVyb+WvueixoeeahGFuZ2xlLEhlcm/lr7nosaHnmoRocFxyXG4gKiDigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTmuKnppqjmj5DnpLrigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJRcclxuICog5Yid5aeL5YyW55qE5pe25YCZ77yM6K6+572u5YWo5bGA5Y+Y6YePd2luZG93WydEQVRBQk9BUkQnXSA9IGZhbHNl5Y+v5bGP6JS95pys6aG555uu5omA5pyJRGF0YUJvYXJk77yM5LiN5Lya5Lqn55Sf5Lu75L2V6aKd5aSW5byA6ZSAXFxuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbndpbmRvd1snREFUQUJPQVJEJ10gPSB0cnVlO1xyXG5jb25zdCBBTkNIT1JfU0laRSA9IDIwOyAgICAgICAgICAgICAgIC8v6ZSa54K555qE5aSn5bCPXHJcbmNvbnN0IExJTkVIRUlHSFQgPSAxLjI7ICAgICAgICAgICAgICAgLy/ooYzpq5jmmK/lrZfkvZPlpKflsI/nmoTlpJrlsJHlgI1cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSwgZXhlY3V0ZUluRWRpdE1vZGUsIG1lbnUgfSA9IGNjLl9kZWNvcmF0b3I7XHJcbkBjY2NsYXNzXHJcbkBleGVjdXRlSW5FZGl0TW9kZVxyXG5AbWVudSgnQ29tcG9uZW50L0RhdGFCb2FyZCcpXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhdGFCb2FyZCBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX2lzT3V0bGluZUJveEFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAn6L2u5buT55uS5a2QJywgdG9vbHRpcDogQ0NfREVWICYmICfpmo/oioLngrnml4vovazvvIzku6Pooajlrp7ml7bova7lu5MnIH0pXHJcbiAgICBwcml2YXRlIGdldCBpc091dGxpbmVCb3hBY3RpdmUoKSB7IHJldHVybiB0aGlzLl9pc091dGxpbmVCb3hBY3RpdmUgfTtcclxuICAgIHByaXZhdGUgc2V0IGlzT3V0bGluZUJveEFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2lzT3V0bGluZUJveEFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuYWN0aXZlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX291dGxpbmVCb3hDb2xvcjogY2MuQ29sb3IgPSBuZXcgY2MuQ29sb3IoTWF0aC5yYW5kb20oKSAqIDI1NSwgTWF0aC5yYW5kb20oKSAqIDI1NSwgTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrfpopzoibInLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc091dGxpbmVCb3hBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgb3V0bGluZUJveENvbG9yKCkgeyByZXR1cm4gdGhpcy5fb3V0bGluZUJveENvbG9yIH07XHJcbiAgICBwcml2YXRlIHNldCBvdXRsaW5lQm94Q29sb3IodmFsdWU6IGNjLkNvbG9yKSB7XHJcbiAgICAgICAgdGhpcy5fb3V0bGluZUJveENvbG9yID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5jb2xvciA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9vdXRsaW5lQm94T3BhY2l0eTogbnVtYmVyID0gMTAwO1xyXG4gICAgQHByb3BlcnR5KHsgbWluOiAwLCBtYXg6IDI1NSwgc3RlcDogMSwgc2xpZGU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+mAj+aYjuW6picsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzT3V0bGluZUJveEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBvdXRsaW5lQm94T3BhY2l0eSgpIHsgcmV0dXJuIHRoaXMuX291dGxpbmVCb3hPcGFjaXR5IH07XHJcbiAgICBwcml2YXRlIHNldCBvdXRsaW5lQm94T3BhY2l0eSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fb3V0bGluZUJveE9wYWNpdHkgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLm9wYWNpdHkgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfaXNDb2xsaWRlQm94QWN0aXZlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ+eisOaSnuebkuWtkCcsIHRvb2x0aXA6IENDX0RFViAmJiAn5LiN6ZqP6IqC54K55peL6L2s77yM5Luj6KGo56Kw5pKe6IyD5Zu0JyB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgaXNDb2xsaWRlQm94QWN0aXZlKCkgeyByZXR1cm4gdGhpcy5faXNDb2xsaWRlQm94QWN0aXZlIH07XHJcbiAgICBwcml2YXRlIHNldCBpc0NvbGxpZGVCb3hBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9pc0NvbGxpZGVCb3hBY3RpdmUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jb2xsaWRlQm94Q29sb3I6IGNjLkNvbG9yID0gbmV3IGNjLkNvbG9yKE1hdGgucmFuZG9tKCkgKiAyNTUsIE1hdGgucmFuZG9tKCkgKiAyNTUsIE1hdGgucmFuZG9tKCkgKiAyNTUpO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36aKc6ImyJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNDb2xsaWRlQm94QWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IGNvbGxpZGVCb3hDb2xvcigpIHsgcmV0dXJuIHRoaXMuX2NvbGxpZGVCb3hDb2xvciB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY29sbGlkZUJveENvbG9yKHZhbHVlOiBjYy5Db2xvcikge1xyXG4gICAgICAgIHRoaXMuX2NvbGxpZGVCb3hDb2xvciA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuY29sb3IgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY29sbGlkZUJveE9wYWNpdHk6IG51bWJlciA9IDEwMDtcclxuICAgIEBwcm9wZXJ0eSh7IG1pbjogMCwgbWF4OiAyNTUsIHN0ZXA6IDEsIHNsaWRlOiB0cnVlLCBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrfpgI/mmI7luqYnLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0NvbGxpZGVCb3hBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY29sbGlkZUJveE9wYWNpdHkoKSB7IHJldHVybiB0aGlzLl9jb2xsaWRlQm94T3BhY2l0eSB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY29sbGlkZUJveE9wYWNpdHkodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2NvbGxpZGVCb3hPcGFjaXR5ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5vcGFjaXR5ID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX2lzQ3VzdG9tTGFiZWxBY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAn6Ieq5a6a5LmJ5Y+C5pWwJywgdG9vbHRpcDogQ0NfREVWICYmICfphY3nva7mmL7npLrnmoTlsZ7mgKflhoXlrrknIH0pXHJcbiAgICBwcml2YXRlIGdldCBpc0N1c3RvbUxhYmVsQWN0aXZlKCkgeyByZXR1cm4gdGhpcy5faXNDdXN0b21MYWJlbEFjdGl2ZSB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgaXNDdXN0b21MYWJlbEFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2lzQ3VzdG9tTGFiZWxBY3RpdmUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS5hY3RpdmUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+iEmuacrCcsIHRvb2x0aXA6IENDX0RFViAmJiAn55uR5o6n5ZOq5Liq6ISa5pysJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNDdXN0b21MYWJlbEFjdGl2ZTsgfSB9KVxyXG4gICAgcHJpdmF0ZSBjdXN0b21Db21wb25lbnROYW1lOiBzdHJpbmcgPSAnJztcclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxTdHJpbmc6IHN0cmluZyA9ICd4LHknO1xyXG4gICAgQHByb3BlcnR5KHsgbXVsdGlsaW5lOiB0cnVlLCBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrflj4LmlbAnLCB0b29sdGlwOiBDQ19ERVYgJiYgXCLigJTigJTigJTigJTigJTmlK/mjIHnmoTlj4LmlbDigJTigJTigJTigJRcXG53cO+8muS4lueVjOWdkOagh1xcbnJhZGlhbu+8muinkuW6pu+8iOWNleS9je+8ms+A77yJXFxubWF0cml477ya5Y+Y5o2i55+p6Zi1XFxucGFyZW5077ya54i26IqC54K5XFxuY2hpbGRyZW7vvJrlrZDoioLngrlcXG7oh6rouqvlsZ7mgKfvvJpzY2FsZSx3aWR0aCxvcGFjaXR5562JXFxu6ISa5pys5bGe5oCn77ya6ISa5pys5a6e5L6L5a+56LGh55qE5bGe5oCnXFxu4oCU4oCU4oCU4oCU5Li+5Liq5qCX5a2Q4oCU4oCU4oCU4oCUXFxu6ISa5pys77yaSGVyb1xcbuWPguaVsO+8mndwLHNjYWxlLGFuZ2xlLCNhbmdsZSwjaHBcXG7ihpHihpHihpHnlKjoi7HmlofpgJflj7fmiJblm57ovabliIbpmpTihpHihpHihpFcXG7mmL7npLrnu5PmnpzvvJpcXG7kuJbnlYzlnZDmoIcs6IqC54K5c2NhbGUs6IqC54K5YW5nbGXvvIxIZXJv5a+56LGh55qEYW5nbGUsSGVyb+WvueixoeeahGhwXFxu4oCU4oCU4oCU4oCU5rip6aao5o+Q56S64oCU4oCU4oCU4oCUXFxu5Yid5aeL5YyW55qE5pe25YCZ77yM6K6+572u5YWo5bGA5Y+Y6YePXFxud2luZG93WydEQVRBQk9BUkQnXSA9IGZhbHNlXFxu5Y+v5bGP6JS95pys6aG555uu5omA5pyJRGF0YUJvYXJk77yM5LiN5Lya5Lqn55Sf5Lu75L2V6aKd5aSW5byA6ZSAXCIsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxTdHJpbmcoKSB7IHJldHVybiB0aGlzLl9jdXN0b21MYWJlbFN0cmluZyB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY3VzdG9tTGFiZWxTdHJpbmcodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsU3RyaW5nID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbFN0cmluZ1NwbGl0ID0gdmFsdWVcclxuICAgICAgICAgICAgLnJlcGxhY2UoLywvZywgJ19+XycpLnJlcGxhY2UoLzovZywgJ18hXycpLnJlcGxhY2UoLyAvZywgJ19AXycpXHJcbiAgICAgICAgICAgIC5yZXBsYWNlKC8oW14sXSlcXG4vZywgJyQxX1xcbicpLnJlcGxhY2UoL1xcbihbXixdKS9nLCAnXFxuXyQxJylcclxuICAgICAgICAgICAgLnJlcGxhY2UoLyhbXjpdKVxcbi9nLCAnJDFfXFxuJykucmVwbGFjZSgvXFxuKFteOl0pL2csICdcXG5fJDEnKVxyXG4gICAgICAgICAgICAucmVwbGFjZSgvKFteIF0pXFxuL2csICckMV9cXG4nKS5yZXBsYWNlKC9cXG4oW14gXSkvZywgJ1xcbl8kMScpXHJcbiAgICAgICAgICAgIC5zcGxpdCgnXycpO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jdXN0b21MYWJlbE9mZnNldDogY2MuVmVjMiA9IGNjLnYyKDAsIDEwMCk7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrflgY/np7snLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IGN1c3RvbUxhYmVsT2Zmc2V0KCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxPZmZzZXQgfTtcclxuICAgIHByaXZhdGUgc2V0IGN1c3RvbUxhYmVsT2Zmc2V0KHZhbHVlOiBjYy5WZWMyKSB7XHJcbiAgICAgICAgdGhpcy5fY3VzdG9tTGFiZWxPZmZzZXQgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS54ID0gdmFsdWUueDtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS55ID0gdmFsdWUueTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxDb2xvcjogY2MuQ29sb3IgPSBuZXcgY2MuQ29sb3IoMjU1LCAyNTUsIDApO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36aKc6ImyJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNDdXN0b21MYWJlbEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBjdXN0b21MYWJlbENvbG9yKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxDb2xvciB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY3VzdG9tTGFiZWxDb2xvcih2YWx1ZTogY2MuQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9jdXN0b21MYWJlbENvbG9yID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuY29sb3IgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxTaXplOiBudW1iZXIgPSA2MDtcclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+Wkp+WwjycsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxTaXplKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxTaXplIH07XHJcbiAgICBwcml2YXRlIHNldCBjdXN0b21MYWJlbFNpemUodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsU2l6ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWwuZm9udFNpemUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsLmxpbmVIZWlnaHQgPSB2YWx1ZSpMSU5FSEVJR0hUO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmdldENvbXBvbmVudChjYy5MYWJlbE91dGxpbmUpLndpZHRoID0gdmFsdWUgKiAwLjE7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX2N1c3RvbUxhYmVsRGlnaXQ6IG51bWJlciA9IDA7XHJcbiAgICBAcHJvcGVydHkoeyBtaW46IDAsIG1heDogMTAsIHN0ZXA6IDEsIHNsaWRlOiB0cnVlLCBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrflsI/mlbDkvY3mlbAnLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IGN1c3RvbUxhYmVsRGlnaXQoKSB7IHJldHVybiB0aGlzLl9jdXN0b21MYWJlbERpZ2l0IH07XHJcbiAgICBwcml2YXRlIHNldCBjdXN0b21MYWJlbERpZ2l0KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9jdXN0b21MYWJlbERpZ2l0ID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGJvYXJkTm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIG91dGxpbmVCb3hOb2RlOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIHByaXZhdGUgY29sbGlkZUJveE5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBhbmNob3JQb2ludE5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBjdXN0b21MYWJlbE5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBjdXN0b21MYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBjdXN0b21MYWJlbFN0cmluZ1NwbGl0OiBzdHJpbmdbXSA9IG51bGw7XHJcbiAgICBwcml2YXRlIG1vbml0b3JDb21wOiBjYy5Db21wb25lbnQgPSBudWxsO1xyXG5cclxuICAgIHByb3RlY3RlZCBvbkxvYWQoKSB7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ0RhdGFCb2FyZCcpO1xyXG4gICAgICAgIGlmICghQ0NfRURJVE9SICYmICF3aW5kb3dbJ0RBVEFCT0FSRCddKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjYy5pc1ZhbGlkKHRoaXMuYm9hcmROb2RlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmJvYXJkTm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMuYm9hcmROb2RlLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHRleHR1cmUgPSBuZXcgY2MuVGV4dHVyZTJEKCk7XHJcbiAgICAgICAgdGV4dHVyZS5pbml0V2l0aERhdGEobmV3IFVpbnQ4QXJyYXkoWzI1NSwgMjU1LCAyNTVdKSwgY2MuVGV4dHVyZTJELlBpeGVsRm9ybWF0LlJHQjg4OCwgMSwgMSk7XHJcblxyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlID0gbmV3IGNjLk5vZGUoJ0RhdGFCb2FyZCcpO1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlLnNldFBhcmVudCh0aGlzLm5vZGUpO1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlLnggPSB0aGlzLmJvYXJkTm9kZS55ID0gMDtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZS56SW5kZXggPSBjYy5tYWNyby5NQVhfWklOREVYO1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlWydfb2JqRmxhZ3MnXSB8PSBjYy5PYmplY3RbJ0ZsYWdzJ10uSGlkZUluSGllcmFyY2h5O1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlWydfb2JqRmxhZ3MnXSB8PSBjYy5PYmplY3RbJ0ZsYWdzJ10uTG9ja2VkSW5FZGl0b3I7XHJcblxyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUgPSBuZXcgY2MuTm9kZSgnT3V0bGluZUJveCcpO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuc2V0UGFyZW50KHRoaXMuYm9hcmROb2RlKTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuYWN0aXZlID0gdGhpcy5pc091dGxpbmVCb3hBY3RpdmU7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5jb2xvciA9IHRoaXMub3V0bGluZUJveENvbG9yO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUub3BhY2l0eSA9IHRoaXMub3V0bGluZUJveE9wYWNpdHk7XHJcblxyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUgPSBuZXcgY2MuTm9kZSgnQ29sbGlkZUJveCcpO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuc2V0UGFyZW50KHRoaXMuYm9hcmROb2RlKTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYWN0aXZlID0gdGhpcy5pc0NvbGxpZGVCb3hBY3RpdmU7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5jb2xvciA9IHRoaXMuY29sbGlkZUJveENvbG9yO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUub3BhY2l0eSA9IHRoaXMuY29sbGlkZUJveE9wYWNpdHk7XHJcblxyXG4gICAgICAgIHRoaXMuYW5jaG9yUG9pbnROb2RlID0gbmV3IGNjLk5vZGUoJ0FuY2hvclBvaW50Jyk7XHJcbiAgICAgICAgdGhpcy5hbmNob3JQb2ludE5vZGUuc2V0UGFyZW50KHRoaXMuYm9hcmROb2RlKTtcclxuICAgICAgICB0aGlzLmFuY2hvclBvaW50Tm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICB0aGlzLmFuY2hvclBvaW50Tm9kZS5jb2xvciA9IGNjLmNvbG9yKDI1NSwgMCwgMCk7XHJcbiAgICAgICAgdGhpcy5hbmNob3JQb2ludE5vZGUud2lkdGggPSBBTkNIT1JfU0laRTtcclxuICAgICAgICB0aGlzLmFuY2hvclBvaW50Tm9kZS5oZWlnaHQgPSBBTkNIT1JfU0laRTtcclxuXHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUgPSBuZXcgY2MuTm9kZSgnQ3VzdG9tTGFiZWwnKTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS5zZXRQYXJlbnQodGhpcy5ib2FyZE5vZGUpO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWwgPSB0aGlzLmN1c3RvbUxhYmVsTm9kZS5hZGRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmFkZENvbXBvbmVudChjYy5MYWJlbE91dGxpbmUpLmNvbG9yID0gY2MuY29sb3IoMCwgMCwgMCk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuYWN0aXZlID0gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxTdHJpbmcgPSB0aGlzLl9jdXN0b21MYWJlbFN0cmluZztcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS54ID0gdGhpcy5jdXN0b21MYWJlbE9mZnNldC54O1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLnkgPSB0aGlzLmN1c3RvbUxhYmVsT2Zmc2V0Lnk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuY29sb3IgPSB0aGlzLmN1c3RvbUxhYmVsQ29sb3I7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbFNpemUgPSB0aGlzLl9jdXN0b21MYWJlbFNpemU7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlQW5nbGUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVNjYWxlKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVBbmNob3IoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVNpemUoKTtcclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuUk9UQVRJT05fQ0hBTkdFRCwgdGhpcy51cGRhdGVBbmdsZSwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlNDQUxFX0NIQU5HRUQsIHRoaXMudXBkYXRlU2NhbGUsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5BTkNIT1JfQ0hBTkdFRCwgdGhpcy51cGRhdGVBbmNob3IsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5TSVpFX0NIQU5HRUQsIHRoaXMudXBkYXRlU2l6ZSwgdGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVBbmdsZSgpIHtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmFuZ2xlID0gLXRoaXMubm9kZS5hbmdsZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS5hbmdsZSA9IC10aGlzLm5vZGUuYW5nbGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVTY2FsZSgpIHtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZS5zY2FsZVggPSAxIC8gdGhpcy5ub2RlLnNjYWxlWDtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZS5zY2FsZVkgPSAxIC8gdGhpcy5ub2RlLnNjYWxlWTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLnNjYWxlWCA9IHRoaXMubm9kZS5zY2FsZVg7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5zY2FsZVkgPSB0aGlzLm5vZGUuc2NhbGVZO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuc2NhbGVYID0gdGhpcy5ub2RlLnNjYWxlWDtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLnNjYWxlWSA9IHRoaXMubm9kZS5zY2FsZVk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVBbmNob3IoKSB7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5hbmNob3JYID0gdGhpcy5ub2RlLmFuY2hvclg7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5hbmNob3JZID0gdGhpcy5ub2RlLmFuY2hvclk7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5hbmNob3JYID0gdGhpcy5ub2RlLmFuY2hvclg7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5hbmNob3JZID0gdGhpcy5ub2RlLmFuY2hvclk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVTaXplKCkge1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUud2lkdGggPSB0aGlzLm5vZGUud2lkdGg7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5oZWlnaHQgPSB0aGlzLm5vZGUuaGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUud2lkdGggPSB0aGlzLm5vZGUud2lkdGg7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5oZWlnaHQgPSB0aGlzLm5vZGUuaGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCB1cGRhdGUoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUpIHJldHVybjtcclxuICAgICAgICBpZiAoIXRoaXMuY3VzdG9tTGFiZWxTdHJpbmdTcGxpdCkgcmV0dXJuO1xyXG4gICAgICAgIGxldCBzdHIgPSAnJztcclxuICAgICAgICBsZXQgc3RycyA9IHRoaXMuY3VzdG9tTGFiZWxTdHJpbmdTcGxpdDtcclxuICAgICAgICBpZiAoIXRoaXMubW9uaXRvckNvbXAgJiYgdGhpcy5jdXN0b21Db21wb25lbnROYW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9uaXRvckNvbXAgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KHRoaXMuY3VzdG9tQ29tcG9uZW50TmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBzdHJzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XHJcbiAgICAgICAgICAgIGxldCB0bXAgPSBudWxsO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHN0cnNbaV0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3dwJzpcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcG9zID0gdGhpcy5ub2RlLmNvbnZlcnRUb1dvcmxkU3BhY2VBUihjYy52MigwLCAwKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gYCgke3Bvcy54LnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KX0sXFx0JHtwb3MueS50b0ZpeGVkKHRoaXMuY3VzdG9tTGFiZWxEaWdpdCl9KWA7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdhbmdsZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gdGhpcy5ub2RlLmFuZ2xlLnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KSArICfCsCc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdyYWRpYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHRtcCA9ICh0aGlzLm5vZGUuYW5nbGUgLyAxODApLnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KSArICfPgCc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdtYXRyaXgnOlxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBtYXRyaXggPSB0aGlzLm5vZGVbJ193b3JsZE1hdHJpeCddLm07XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0OyArK2kpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCA0OyArK2opIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtbSA9IG1hdHJpeFtqICogNCArIGldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wICs9IChtbSA8IDAgPyAnXFx0XFx0JyA6ICdcXHRcXHRcXHQnKSArIG1tLnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPT0gMykgdG1wICs9ICdcXG4nO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3BhcmVudCc6XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gdGhpcy5ub2RlLnBhcmVudC5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnY2hpbGRyZW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHRtcCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLm5vZGUuY2hpbGRyZW5Db3VudDsgaSA8IGxlbjsgKytpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCArPSBgXFx0XFx0XFx0JHtpfe+8miR7dGhpcy5ub2RlLmNoaWxkcmVuW2ldLm5hbWV9YDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT09IGxlbiAtIDEpIHRtcCArPSAnXFxuJztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICd+JzogdG1wID0gJyxcXHQnOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJyEnOiB0bXAgPSAnOlxcdCc7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnQCc6IHRtcCA9ICcgXFx0JzsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm5vZGVbc3Ryc1tpXV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSB0aGlzLm5vZGVbc3Ryc1tpXV07XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJzW2ldLnN0YXJ0c1dpdGgoJyMnKSAmJiB0aGlzLm1vbml0b3JDb21wICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHRoaXMubW9uaXRvckNvbXBbc3Ryc1tpXS5zdWJzdHJpbmcoMSldO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHN0cnNbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0bXAgJiYgdG1wLm5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gdG1wLm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdG1wID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICAgICAgdG1wID0gdG1wLnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdHIgKz0gdG1wO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsLnN0cmluZyA9IHN0cjtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmIChjYy5pc1ZhbGlkKHRoaXMuYm9hcmROb2RlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmJvYXJkTm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMuYm9hcmROb2RlLmRlc3Ryb3koKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMubm9kZS50YXJnZXRPZmYodGhpcyk7XHJcbiAgICB9XHJcbn0iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEYXRhQm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dGQTBCZ0Y7QUFDaEYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMzQixJQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsQ0FBZSxPQUFPO0FBQzdDLElBQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFlLGFBQWE7QUFDN0MsSUFBQSxLQUFpRCxFQUFFLENBQUMsVUFBVSxFQUE1RCxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxpQkFBaUIsdUJBQUEsRUFBRSxJQUFJLFVBQWtCLENBQUM7QUFJckU7SUFBdUMsNkJBQVk7SUFBbkQ7UUFBQSxxRUFzUkM7UUFwUlcseUJBQW1CLEdBQVksS0FBSyxDQUFDO1FBUXJDLHNCQUFnQixHQUFhLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBUXpHLHdCQUFrQixHQUFXLEdBQUcsQ0FBQztRQVFqQyx5QkFBbUIsR0FBWSxJQUFJLENBQUM7UUFRcEMsc0JBQWdCLEdBQWEsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFRekcsd0JBQWtCLEdBQVcsR0FBRyxDQUFDO1FBUWpDLDBCQUFvQixHQUFZLElBQUksQ0FBQztRQVFyQyx5QkFBbUIsR0FBVyxFQUFFLENBQUM7UUFFakMsd0JBQWtC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LENBQUMsQ0FBQyxFQUFFLENBQUM7c0RBQzdCO0lBT2xFO1FBREMsUUFBUTt3REFDdUQ7SUFFaEU7UUFEQyxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFJLFVBQVUsRUFBRSxPQUFPLGdCQUFLLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7cURBQy9CO0lBTWhFO1FBREMsUUFBUTt1REFDNkI7SUFFdEM7UUFEQyxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFJLFVBQVUsRUFBRSxPQUFPLGdCQUFLLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7b0RBQ2pDO0lBUTlEO1FBREMsUUFBUTt3REFDNkI7SUFFdEM7UUFEQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLElBQUksWUFBWSxFQUFFLE9BQU8sZ0JBQUssT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztxREFDeEU7SUF0Ry9DLFNBQVM7UUFIN0IsT0FBTztRQUNQLGlCQUFpQjtRQUNqQixJQUFJLENBQUMscUJBQXFCLENBQUM7T0FDUCxTQUFTLENBc1I3QjtJQUFELGdCQUFDO0NBdFJELEFBc1JDLENBdFJzQyxFQUFFLENBQUMsU0FBUyxHQXNSbEQ7a0JBdFJvQixTQUFTIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICog5Yib5bu6OiAgICAyMDIy5bm0MTHmnIgyM+aXpVxyXG4gKiDkvZzogIU6ICAgIOawtOeFruiCieeJh+mlrSgyNzE4NTcwOUBxcS5jb20pXHJcbiAqIOaPj+i/sDogICAg5pWw5o2u55yL5p2/XHJcbiAqIOiKgueCueaMguS4iuivpee7hOS7tu+8jOWwseWPr+S7peWcqOa4uOaIj+i/kOihjOi/h+eoi+S4re+8jOebtOingueci+WIsOiKgueCueS7u+aEj+WxnuaAp++8iOWMheaLrOiKgueCueiEmuacrOS4reeahOWxnuaAp++8iVxyXG4gKiDlj6/ku6Xlm77lvaLljJblsZXnpLrku6XkuIvlm5vnp43mlbDmja7vvJpcclxuICogICAgICAgICAg6L2u5buT55uS5a2Q77yaICAgICAgICAgIOmaj+iKgueCueaXi+i9rO+8jOS7o+ihqOiKgueCueeahOWunuaXtuefqeW9olxyXG4gKiAgICAgICAgICDnorDmkp7nm5LlrZDvvJogICAgICAgICAg5LiN6ZqP6IqC54K55peL6L2s77yM5LiA6Iis5Luj6KGo56Kw5pKe6IyD5Zu0XHJcbiAqICAgICAgICAgIOiHquWumuS5ieWPguaVsO+8miAgICAgICAg6IqC54K56Ieq6Lqr5bGe5oCn77yM5Lul5Y+K6IqC54K55Lu75oSP6ISa5pys5Lit55qE5bGe5oCnXHJcbiAqICAgICAgICAgIOmUmueCue+8miAgICAgICAgICAgICDplJrngrnkvY3nva7kvJrmmL7npLrkuIDkuKrlsI/nuqLngrlcclxuICog6Ieq5a6a5LmJ5Y+C5pWw77yI6YWN572u5oOz55uR5o6n55qE5pWw5o2u77yJ77yaXHJcbiAqICAgICAgICAgIHdw77yaICAgICAgICAgICAgICAg5LiW55WM5Z2Q5qCH77yM5Y2z55u45a+55LqO5bGP5bmV5bem5LiL6KeS55qE5Z2Q5qCHXHJcbiAqICAgICAgICAgIHJhZGlhbu+8miAgICAgICAgICAg6IqC54K55byn5bqm77yM5Y2V5L2Nz4BcclxuICogICAgICAgICAgbWF0cml4OiAgICAgICAgICAgIOWPmOaNouefqemYtVxyXG4gKiAgICAgICAgICBwYXJlbnTvvJogICAgICAgICAgIOeItuiKgueCuVxyXG4gKiAgICAgICAgICBjaGlsZHJlbu+8miAgICAgICAgIOWtkOiKgueCuVxyXG4gKiAgICAgICAgICDoh6rouqvlsZ7mgKfvvJogICAgICAgICAgc2NhbGUsd2lkdGgsb3BhY2l0eeetiVxyXG4gKiAgICAgICAgICDohJrmnKzlsZ7mgKfvvJogICAgICAgICAg6ISa5pys5a6e5L6L5a+56LGh55qE5bGe5oCnXHJcbiAqIOKGk+KGk+WPguaVsOWPr+S7peeUqDPnp43liIbpmpTnrKbpmpTlvIDihpPihpNcclxuICogICAgICAgICAg6Iux5paH6YCX5Y+344CB6Iux5paH5YaS5Y+344CB56m65qC8XHJcbiAqIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOS4vuS4quagl+WtkOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlFxyXG4gKiDohJrmnKzvvJogICAgSGVyb1xyXG4gKiDlj4LmlbDvvJogICAgd3Asc2NhbGUsYW5nbGUsI2FuZ2xlLCNocFxyXG4gKiDmmL7npLrnu5PmnpzvvJrkuJbnlYzlnZDmoIcs6IqC54K5c2NhbGUs6IqC54K5YW5nbGXvvIxIZXJv5a+56LGh55qEYW5nbGUsSGVyb+WvueixoeeahGhwXHJcbiAqIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOa4qemmqOaPkOekuuKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlFxyXG4gKiDliJ3lp4vljJbnmoTml7blgJnvvIzorr7nva7lhajlsYDlj5jph493aW5kb3dbJ0RBVEFCT0FSRCddID0gZmFsc2Xlj6/lsY/olL3mnKzpobnnm67miYDmnIlEYXRhQm9hcmTvvIzkuI3kvJrkuqfnlJ/ku7vkvZXpop3lpJblvIDplIBcXG5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxud2luZG93WydEQVRBQk9BUkQnXSA9IHRydWU7XHJcbmNvbnN0IEFOQ0hPUl9TSVpFID0gMjA7ICAgICAgICAgICAgICAgLy/plJrngrnnmoTlpKflsI9cclxuY29uc3QgTElORUhFSUdIVCA9IDEuMjsgICAgICAgICAgICAgICAvL+ihjOmrmOaYr+Wtl+S9k+Wkp+Wwj+eahOWkmuWwkeWAjVxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5LCBleGVjdXRlSW5FZGl0TW9kZSwgbWVudSB9ID0gY2MuX2RlY29yYXRvcjtcclxuQGNjY2xhc3NcclxuQGV4ZWN1dGVJbkVkaXRNb2RlXHJcbkBtZW51KCdDb21wb25lbnQvRGF0YUJvYXJkJylcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGF0YUJvYXJkIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfaXNPdXRsaW5lQm94QWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfova7lu5Pnm5LlrZAnLCB0b29sdGlwOiBDQ19ERVYgJiYgJ+maj+iKgueCueaXi+i9rO+8jOS7o+ihqOWunuaXtui9ruW7kycgfSlcclxuICAgIHByaXZhdGUgZ2V0IGlzT3V0bGluZUJveEFjdGl2ZSgpIHsgcmV0dXJuIHRoaXMuX2lzT3V0bGluZUJveEFjdGl2ZSB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgaXNPdXRsaW5lQm94QWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5faXNPdXRsaW5lQm94QWN0aXZlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5hY3RpdmUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfb3V0bGluZUJveENvbG9yOiBjYy5Db2xvciA9IG5ldyBjYy5Db2xvcihNYXRoLnJhbmRvbSgpICogMjU1LCBNYXRoLnJhbmRvbSgpICogMjU1LCBNYXRoLnJhbmRvbSgpICogMjU1KTtcclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+minOiJsicsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzT3V0bGluZUJveEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBvdXRsaW5lQm94Q29sb3IoKSB7IHJldHVybiB0aGlzLl9vdXRsaW5lQm94Q29sb3IgfTtcclxuICAgIHByaXZhdGUgc2V0IG91dGxpbmVCb3hDb2xvcih2YWx1ZTogY2MuQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9vdXRsaW5lQm94Q29sb3IgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmNvbG9yID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX291dGxpbmVCb3hPcGFjaXR5OiBudW1iZXIgPSAxMDA7XHJcbiAgICBAcHJvcGVydHkoeyBtaW46IDAsIG1heDogMjU1LCBzdGVwOiAxLCBzbGlkZTogdHJ1ZSwgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36YCP5piO5bqmJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNPdXRsaW5lQm94QWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IG91dGxpbmVCb3hPcGFjaXR5KCkgeyByZXR1cm4gdGhpcy5fb3V0bGluZUJveE9wYWNpdHkgfTtcclxuICAgIHByaXZhdGUgc2V0IG91dGxpbmVCb3hPcGFjaXR5KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9vdXRsaW5lQm94T3BhY2l0eSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUub3BhY2l0eSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9pc0NvbGxpZGVCb3hBY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAn56Kw5pKe55uS5a2QJywgdG9vbHRpcDogQ0NfREVWICYmICfkuI3pmo/oioLngrnml4vovazvvIzku6PooajnorDmkp7ojIPlm7QnIH0pXHJcbiAgICBwcml2YXRlIGdldCBpc0NvbGxpZGVCb3hBY3RpdmUoKSB7IHJldHVybiB0aGlzLl9pc0NvbGxpZGVCb3hBY3RpdmUgfTtcclxuICAgIHByaXZhdGUgc2V0IGlzQ29sbGlkZUJveEFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2lzQ29sbGlkZUJveEFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYWN0aXZlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX2NvbGxpZGVCb3hDb2xvcjogY2MuQ29sb3IgPSBuZXcgY2MuQ29sb3IoTWF0aC5yYW5kb20oKSAqIDI1NSwgTWF0aC5yYW5kb20oKSAqIDI1NSwgTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrfpopzoibInLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0NvbGxpZGVCb3hBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY29sbGlkZUJveENvbG9yKCkgeyByZXR1cm4gdGhpcy5fY29sbGlkZUJveENvbG9yIH07XHJcbiAgICBwcml2YXRlIHNldCBjb2xsaWRlQm94Q29sb3IodmFsdWU6IGNjLkNvbG9yKSB7XHJcbiAgICAgICAgdGhpcy5fY29sbGlkZUJveENvbG9yID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5jb2xvciA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jb2xsaWRlQm94T3BhY2l0eTogbnVtYmVyID0gMTAwO1xyXG4gICAgQHByb3BlcnR5KHsgbWluOiAwLCBtYXg6IDI1NSwgc3RlcDogMSwgc2xpZGU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+mAj+aYjuW6picsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ29sbGlkZUJveEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBjb2xsaWRlQm94T3BhY2l0eSgpIHsgcmV0dXJuIHRoaXMuX2NvbGxpZGVCb3hPcGFjaXR5IH07XHJcbiAgICBwcml2YXRlIHNldCBjb2xsaWRlQm94T3BhY2l0eSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fY29sbGlkZUJveE9wYWNpdHkgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLm9wYWNpdHkgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfaXNDdXN0b21MYWJlbEFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfoh6rlrprkuYnlj4LmlbAnLCB0b29sdGlwOiBDQ19ERVYgJiYgJ+mFjee9ruaYvuekuueahOWxnuaAp+WGheWuuScgfSlcclxuICAgIHByaXZhdGUgZ2V0IGlzQ3VzdG9tTGFiZWxBY3RpdmUoKSB7IHJldHVybiB0aGlzLl9pc0N1c3RvbUxhYmVsQWN0aXZlIH07XHJcbiAgICBwcml2YXRlIHNldCBpc0N1c3RvbUxhYmVsQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5faXNDdXN0b21MYWJlbEFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36ISa5pysJywgdG9vbHRpcDogQ0NfREVWICYmICfnm5Hmjqflk6rkuKrohJrmnKwnLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlOyB9IH0pXHJcbiAgICBwcml2YXRlIGN1c3RvbUNvbXBvbmVudE5hbWU6IHN0cmluZyA9ICcnO1xyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jdXN0b21MYWJlbFN0cmluZzogc3RyaW5nID0gJ3gseSc7XHJcbiAgICBAcHJvcGVydHkoeyBtdWx0aWxpbmU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+WPguaVsCcsIHRvb2x0aXA6IENDX0RFViAmJiBcIuKAlOKAlOKAlOKAlOKAlOaUr+aMgeeahOWPguaVsOKAlOKAlOKAlOKAlFxcbndw77ya5LiW55WM5Z2Q5qCHXFxucmFkaWFu77ya6KeS5bqm77yI5Y2V5L2N77yaz4DvvIlcXG5tYXRyaXjvvJrlj5jmjaLnn6npmLVcXG5wYXJlbnTvvJrniLboioLngrlcXG5jaGlsZHJlbu+8muWtkOiKgueCuVxcbuiHqui6q+WxnuaAp++8mnNjYWxlLHdpZHRoLG9wYWNpdHnnrYlcXG7ohJrmnKzlsZ7mgKfvvJrohJrmnKzlrp7kvovlr7nosaHnmoTlsZ7mgKdcXG7ihpPihpPlj4LmlbDlj6/ku6XnlKgz56eN5YiG6ZqU56ym6ZqU5byA4oaT4oaTXFxu6Iux5paH6YCX5Y+344CB6Iux5paH5YaS5Y+344CB56m65qC8XFxu4oCU4oCU4oCU4oCU5Li+5Liq5qCX5a2Q4oCU4oCU4oCU4oCUXFxu6ISa5pys77yaSGVyb1xcbuWPguaVsO+8mndwLHNjYWxlLGFuZ2xlLCNhbmdsZSwjaHBcXG7mmL7npLrnu5PmnpzvvJpcXG7kuJbnlYzlnZDmoIcs6IqC54K5c2NhbGUs6IqC54K5YW5nbGXvvIxIZXJv5a+56LGh55qEYW5nbGUsSGVyb+WvueixoeeahGhwXFxu4oCU4oCU4oCU4oCU5rip6aao5o+Q56S64oCU4oCU4oCU4oCUXFxu5Yid5aeL5YyW55qE5pe25YCZ77yM6K6+572u5YWo5bGA5Y+Y6YePXFxud2luZG93WydEQVRBQk9BUkQnXSA9IGZhbHNlXFxu5Y+v5bGP6JS95pys6aG555uu5omA5pyJRGF0YUJvYXJk77yM5LiN5Lya5Lqn55Sf5Lu75L2V6aKd5aSW5byA6ZSAXCIsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxTdHJpbmcoKSB7IHJldHVybiB0aGlzLl9jdXN0b21MYWJlbFN0cmluZyB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY3VzdG9tTGFiZWxTdHJpbmcodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsU3RyaW5nID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbFN0cmluZ1NwbGl0ID0gdmFsdWVcclxuICAgICAgICAgICAgLnJlcGxhY2UoLywvZywgJ19+XycpLnJlcGxhY2UoLzovZywgJ18hXycpLnJlcGxhY2UoLyAvZywgJ19AXycpXHJcbiAgICAgICAgICAgIC5yZXBsYWNlKC8oW14sXSlcXG4vZywgJyQxX1xcbicpLnJlcGxhY2UoL1xcbihbXixdKS9nLCAnXFxuXyQxJylcclxuICAgICAgICAgICAgLnJlcGxhY2UoLyhbXjpdKVxcbi9nLCAnJDFfXFxuJykucmVwbGFjZSgvXFxuKFteOl0pL2csICdcXG5fJDEnKVxyXG4gICAgICAgICAgICAucmVwbGFjZSgvKFteIF0pXFxuL2csICckMV9cXG4nKS5yZXBsYWNlKC9cXG4oW14gXSkvZywgJ1xcbl8kMScpXHJcbiAgICAgICAgICAgIC5zcGxpdCgnXycpO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jdXN0b21MYWJlbE9mZnNldDogY2MuVmVjMiA9IGNjLnYyKDAsIDEwMCk7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrflgY/np7snLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IGN1c3RvbUxhYmVsT2Zmc2V0KCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxPZmZzZXQgfTtcclxuICAgIHByaXZhdGUgc2V0IGN1c3RvbUxhYmVsT2Zmc2V0KHZhbHVlOiBjYy5WZWMyKSB7XHJcbiAgICAgICAgdGhpcy5fY3VzdG9tTGFiZWxPZmZzZXQgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS54ID0gdmFsdWUueDtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS55ID0gdmFsdWUueTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxDb2xvcjogY2MuQ29sb3IgPSBuZXcgY2MuQ29sb3IoMjU1LCAyNTUsIDApO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36aKc6ImyJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNDdXN0b21MYWJlbEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBjdXN0b21MYWJlbENvbG9yKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxDb2xvciB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY3VzdG9tTGFiZWxDb2xvcih2YWx1ZTogY2MuQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9jdXN0b21MYWJlbENvbG9yID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuY29sb3IgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxTaXplOiBudW1iZXIgPSA2MDtcclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+Wkp+WwjycsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxTaXplKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxTaXplIH07XHJcbiAgICBwcml2YXRlIHNldCBjdXN0b21MYWJlbFNpemUodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsU2l6ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWwuZm9udFNpemUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsLmxpbmVIZWlnaHQgPSB2YWx1ZSAqIExJTkVIRUlHSFQ7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuZ2V0Q29tcG9uZW50KGNjLkxhYmVsT3V0bGluZSkud2lkdGggPSB2YWx1ZSAqIDAuMTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxEaWdpdDogbnVtYmVyID0gMDtcclxuICAgIEBwcm9wZXJ0eSh7IG1pbjogMCwgbWF4OiAxMCwgc3RlcDogMSwgc2xpZGU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+Wwj+aVsOS9jeaVsCcsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxEaWdpdCgpIHsgcmV0dXJuIHRoaXMuX2N1c3RvbUxhYmVsRGlnaXQgfTtcclxuICAgIHByaXZhdGUgc2V0IGN1c3RvbUxhYmVsRGlnaXQodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsRGlnaXQgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgYm9hcmROb2RlOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIHByaXZhdGUgb3V0bGluZUJveE5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBjb2xsaWRlQm94Tm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGFuY2hvclBvaW50Tm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGN1c3RvbUxhYmVsTm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGN1c3RvbUxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcbiAgICBwcml2YXRlIGN1c3RvbUxhYmVsU3RyaW5nU3BsaXQ6IHN0cmluZ1tdID0gbnVsbDtcclxuICAgIHByaXZhdGUgbW9uaXRvckNvbXA6IGNjLkNvbXBvbmVudCA9IG51bGw7XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uTG9hZCgpIHtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZSA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnRGF0YUJvYXJkJyk7XHJcbiAgICAgICAgaWYgKCFDQ19FRElUT1IgJiYgIXdpbmRvd1snREFUQUJPQVJEJ10pIHtcclxuICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNjLmlzVmFsaWQodGhpcy5ib2FyZE5vZGUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYm9hcmROb2RlLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgdGhpcy5ib2FyZE5vZGUuZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdGV4dHVyZSA9IG5ldyBjYy5UZXh0dXJlMkQoKTtcclxuICAgICAgICB0ZXh0dXJlLmluaXRXaXRoRGF0YShuZXcgVWludDhBcnJheShbMjU1LCAyNTUsIDI1NV0pLCBjYy5UZXh0dXJlMkQuUGl4ZWxGb3JtYXQuUkdCODg4LCAxLCAxKTtcclxuXHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUgPSBuZXcgY2MuTm9kZSgnRGF0YUJvYXJkJyk7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUuc2V0UGFyZW50KHRoaXMubm9kZSk7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUueCA9IHRoaXMuYm9hcmROb2RlLnkgPSAwO1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlLnpJbmRleCA9IGNjLm1hY3JvLk1BWF9aSU5ERVg7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGVbJ19vYmpGbGFncyddIHw9IGNjLk9iamVjdFsnRmxhZ3MnXS5IaWRlSW5IaWVyYXJjaHk7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGVbJ19vYmpGbGFncyddIHw9IGNjLk9iamVjdFsnRmxhZ3MnXS5Mb2NrZWRJbkVkaXRvcjtcclxuXHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZSA9IG5ldyBjYy5Ob2RlKCdPdXRsaW5lQm94Jyk7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5zZXRQYXJlbnQodGhpcy5ib2FyZE5vZGUpO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5hY3RpdmUgPSB0aGlzLmlzT3V0bGluZUJveEFjdGl2ZTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmNvbG9yID0gdGhpcy5vdXRsaW5lQm94Q29sb3I7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5vcGFjaXR5ID0gdGhpcy5vdXRsaW5lQm94T3BhY2l0eTtcclxuXHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZSA9IG5ldyBjYy5Ob2RlKCdDb2xsaWRlQm94Jyk7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5zZXRQYXJlbnQodGhpcy5ib2FyZE5vZGUpO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5hY3RpdmUgPSB0aGlzLmlzQ29sbGlkZUJveEFjdGl2ZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmNvbG9yID0gdGhpcy5jb2xsaWRlQm94Q29sb3I7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5vcGFjaXR5ID0gdGhpcy5jb2xsaWRlQm94T3BhY2l0eTtcclxuXHJcbiAgICAgICAgdGhpcy5hbmNob3JQb2ludE5vZGUgPSBuZXcgY2MuTm9kZSgnQW5jaG9yUG9pbnQnKTtcclxuICAgICAgICB0aGlzLmFuY2hvclBvaW50Tm9kZS5zZXRQYXJlbnQodGhpcy5ib2FyZE5vZGUpO1xyXG4gICAgICAgIHRoaXMuYW5jaG9yUG9pbnROb2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgIHRoaXMuYW5jaG9yUG9pbnROb2RlLmNvbG9yID0gY2MuY29sb3IoMjU1LCAwLCAwKTtcclxuICAgICAgICB0aGlzLmFuY2hvclBvaW50Tm9kZS53aWR0aCA9IEFOQ0hPUl9TSVpFO1xyXG4gICAgICAgIHRoaXMuYW5jaG9yUG9pbnROb2RlLmhlaWdodCA9IEFOQ0hPUl9TSVpFO1xyXG5cclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZSA9IG5ldyBjYy5Ob2RlKCdDdXN0b21MYWJlbCcpO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLnNldFBhcmVudCh0aGlzLmJvYXJkTm9kZSk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbCA9IHRoaXMuY3VzdG9tTGFiZWxOb2RlLmFkZENvbXBvbmVudChjYy5MYWJlbCk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuYWRkQ29tcG9uZW50KGNjLkxhYmVsT3V0bGluZSkuY29sb3IgPSBjYy5jb2xvcigwLCAwLCAwKTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS5hY3RpdmUgPSB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbFN0cmluZyA9IHRoaXMuX2N1c3RvbUxhYmVsU3RyaW5nO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLnggPSB0aGlzLmN1c3RvbUxhYmVsT2Zmc2V0Lng7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUueSA9IHRoaXMuY3VzdG9tTGFiZWxPZmZzZXQueTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS5jb2xvciA9IHRoaXMuY3VzdG9tTGFiZWxDb2xvcjtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsU2l6ZSA9IHRoaXMuX2N1c3RvbUxhYmVsU2l6ZTtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVBbmdsZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2NhbGUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFuY2hvcigpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2l6ZSgpO1xyXG4gICAgICAgIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5ST1RBVElPTl9DSEFOR0VELCB0aGlzLnVwZGF0ZUFuZ2xlLCB0aGlzKTtcclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuU0NBTEVfQ0hBTkdFRCwgdGhpcy51cGRhdGVTY2FsZSwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLkFOQ0hPUl9DSEFOR0VELCB0aGlzLnVwZGF0ZUFuY2hvciwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlNJWkVfQ0hBTkdFRCwgdGhpcy51cGRhdGVTaXplLCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUFuZ2xlKCkge1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYW5nbGUgPSAtdGhpcy5ub2RlLmFuZ2xlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmFuZ2xlID0gLXRoaXMubm9kZS5hbmdsZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZVNjYWxlKCkge1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlLnNjYWxlWCA9IDEgLyB0aGlzLm5vZGUuc2NhbGVYO1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlLnNjYWxlWSA9IDEgLyB0aGlzLm5vZGUuc2NhbGVZO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuc2NhbGVYID0gdGhpcy5ub2RlLnNjYWxlWDtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLnNjYWxlWSA9IHRoaXMubm9kZS5zY2FsZVk7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5zY2FsZVggPSB0aGlzLm5vZGUuc2NhbGVYO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuc2NhbGVZID0gdGhpcy5ub2RlLnNjYWxlWTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUFuY2hvcigpIHtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmFuY2hvclggPSB0aGlzLm5vZGUuYW5jaG9yWDtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmFuY2hvclkgPSB0aGlzLm5vZGUuYW5jaG9yWTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmFuY2hvclggPSB0aGlzLm5vZGUuYW5jaG9yWDtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmFuY2hvclkgPSB0aGlzLm5vZGUuYW5jaG9yWTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZVNpemUoKSB7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS53aWR0aCA9IHRoaXMubm9kZS53aWR0aDtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmhlaWdodCA9IHRoaXMubm9kZS5oZWlnaHQ7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS53aWR0aCA9IHRoaXMubm9kZS53aWR0aDtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmhlaWdodCA9IHRoaXMubm9kZS5oZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHVwZGF0ZSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNDdXN0b21MYWJlbEFjdGl2ZSkgcmV0dXJuO1xyXG4gICAgICAgIGlmICghdGhpcy5jdXN0b21MYWJlbFN0cmluZ1NwbGl0KSByZXR1cm47XHJcbiAgICAgICAgbGV0IHN0ciA9ICcnO1xyXG4gICAgICAgIGxldCBzdHJzID0gdGhpcy5jdXN0b21MYWJlbFN0cmluZ1NwbGl0O1xyXG4gICAgICAgIGlmICghdGhpcy5tb25pdG9yQ29tcCAmJiB0aGlzLmN1c3RvbUNvbXBvbmVudE5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5tb25pdG9yQ29tcCA9IHRoaXMubm9kZS5nZXRDb21wb25lbnQodGhpcy5jdXN0b21Db21wb25lbnROYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHN0cnMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcclxuICAgICAgICAgICAgbGV0IHRtcCA9IG51bGw7XHJcbiAgICAgICAgICAgIHN3aXRjaCAoc3Ryc1tpXSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnd3AnOlxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3MgPSB0aGlzLm5vZGUuY29udmVydFRvV29ybGRTcGFjZUFSKGNjLnYyKDAsIDApKTtcclxuICAgICAgICAgICAgICAgICAgICB0bXAgPSBgKCR7cG9zLngudG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpfSxcXHQke3Bvcy55LnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KX0pYDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2FuZ2xlJzpcclxuICAgICAgICAgICAgICAgICAgICB0bXAgPSB0aGlzLm5vZGUuYW5nbGUudG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpICsgJ8KwJztcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3JhZGlhbic6XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gKHRoaXMubm9kZS5hbmdsZSAvIDE4MCkudG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpICsgJ8+AJztcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ21hdHJpeCc6XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1hdHJpeCA9IHRoaXMubm9kZVsnX3dvcmxkTWF0cml4J10ubTtcclxuICAgICAgICAgICAgICAgICAgICB0bXAgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7ICsraSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IDQ7ICsraikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1tID0gbWF0cml4W2ogKiA0ICsgaV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgKz0gKG1tIDwgMCA/ICdcXHRcXHQnIDogJ1xcdFxcdFxcdCcpICsgbW0udG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICE9PSAzKSB0bXAgKz0gJ1xcbic7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAncGFyZW50JzpcclxuICAgICAgICAgICAgICAgICAgICB0bXAgPSB0aGlzLm5vZGUucGFyZW50Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdjaGlsZHJlbic6XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHRoaXMubm9kZS5jaGlsZHJlbkNvdW50OyBpIDwgbGVuOyArK2kpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wICs9IGBcXHRcXHRcXHQke2l977yaJHt0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZX1gO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPT0gbGVuIC0gMSkgdG1wICs9ICdcXG4nO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ34nOiB0bXAgPSAnLFxcdCc7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnISc6IHRtcCA9ICc6XFx0JzsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdAJzogdG1wID0gJyBcXHQnOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm9kZVtzdHJzW2ldXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHRoaXMubm9kZVtzdHJzW2ldXTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cnNbaV0uc3RhcnRzV2l0aCgnIycpICYmIHRoaXMubW9uaXRvckNvbXAgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gdGhpcy5tb25pdG9yQ29tcFtzdHJzW2ldLnN1YnN0cmluZygxKV07XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gc3Ryc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCAmJiB0bXAubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSB0bXAubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB0bXAgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgICAgICB0bXAgPSB0bXAudG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN0ciArPSB0bXA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWwuc3RyaW5nID0gc3RyO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKGNjLmlzVmFsaWQodGhpcy5ib2FyZE5vZGUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYm9hcmROb2RlLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgdGhpcy5ib2FyZE5vZGUuZGVzdHJveSgpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5ub2RlLnRhcmdldE9mZih0aGlzKTtcclxuICAgIH1cclxufSJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/DataBoard.js b/temp/quick-scripts/src/assets/Script/DataBoard.js index 73c649d..45b957e 100644 --- a/temp/quick-scripts/src/assets/Script/DataBoard.js +++ b/temp/quick-scripts/src/assets/Script/DataBoard.js @@ -41,9 +41,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); * children: 子节点 * 自身属性: scale,width,opacity等 * 脚本属性: 脚本实例对象的属性 + * ↓↓参数可以用3种分隔符隔开↓↓ + * 英文逗号、英文冒号、空格 * ————————————————————————举个栗子———————————————————————— * 脚本: Hero - * 参数: wp,scale,angle,#angle,#hp(用英文逗号或回车分隔) + * 参数: wp,scale,angle,#angle,#hp * 显示结果:世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp * ————————————————————————温馨提示———————————————————————— * 初始化的时候,设置全局变量window['DATABOARD'] = false可屏蔽本项目所有DataBoard,不会产生任何额外开销\n @@ -419,7 +421,7 @@ var DataBoard = /** @class */ (function (_super) { property ], DataBoard.prototype, "_customLabelString", void 0); __decorate([ - property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:角度(单位:π)\nmatrix:变换矩阵\nparent:父节点\nchildren:子节点\n自身属性:scale,width,opacity等\n脚本属性:脚本实例对象的属性\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n↑↑↑用英文逗号或回车分隔↑↑↑\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible: function () { return this.isCustomLabelActive; } }) + property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:角度(单位:π)\nmatrix:变换矩阵\nparent:父节点\nchildren:子节点\n自身属性:scale,width,opacity等\n脚本属性:脚本实例对象的属性\n↓↓参数可以用3种分隔符隔开↓↓\n英文逗号、英文冒号、空格\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible: function () { return this.isCustomLabelActive; } }) ], DataBoard.prototype, "customLabelString", null); __decorate([ property diff --git a/temp/startup.json b/temp/startup.json index 6d560c9..5d29b58 100644 --- a/temp/startup.json +++ b/temp/startup.json @@ -1 +1 @@ -{"pid":7716} +{"pid":2488}