diff --git a/assets/Script/GameManager.ts b/assets/Script/GameManager.ts index 40cab65..1ef345c 100644 --- a/assets/Script/GameManager.ts +++ b/assets/Script/GameManager.ts @@ -395,15 +395,18 @@ export default class GameManager extends cc.Component { cc.fx.StorageMessage.setStorage("prop",propInfoNew); } else{ - cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; - cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; - cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; + // cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; + // cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; + // cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; + cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; + cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; + cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; } - cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; - cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; - cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; + // cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; + // cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; + // cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; cc.fx.GameTool.setUserProp(0,0,(data)=>{ }); } diff --git a/assets/Script/Map.ts b/assets/Script/Map.ts index 222d966..b497463 100644 --- a/assets/Script/Map.ts +++ b/assets/Script/Map.ts @@ -137,6 +137,8 @@ export default class MapConroler extends cc.Component { this.homeCanTouch = true; this.againCanTouch = true; this.new_mode = 0; + this.count_Time = 0; + this.add_Time = 0; this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString(); this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString(); @@ -185,8 +187,7 @@ export default class MapConroler extends cc.Component { this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time"); this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level"); this.timeNumber = cc.fx.GameConfig.LEVEL_INFO[0].time; - this.count_Time = 0; - this.add_Time = 0; + NumberToImage.getTimeMargin(this.timeNumber,50,"time_",this.timeLabel) // var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber); // this.timeLabel.string = timeTemp.toString(); @@ -214,7 +215,8 @@ export default class MapConroler extends cc.Component { this.mapBlockArray = []; this.freezeArray = []; this.loackArray = []; - + this.count_Time = 0; + this.add_Time = 0; let startX = this.mapWidth%2==0?-(this.mapWidth-1)*60:-(this.mapWidth-1)*60; let startY = this.mapHeight%2==0?-(this.mapHeight-1)*60:-(this.mapHeight-1)*60; @@ -1279,11 +1281,7 @@ wallInit() { this.stopTimeCutDown(); // console.log("成功消除一个"); cc.fx.GameTool.changeCoin(40); - let timeData = { - count_Time:this.count_Time, - add_Time:this.add_Time - } - cc.fx.GameTool.addLevel(timeData); + cc.fx.GameTool.addLevel(this.count_Time,this.add_Time); this.check_NewMode(); setTimeout(() => { @@ -1310,7 +1308,7 @@ wallInit() { cc.fx.AudioManager._instance.playEffect("anniu_Big",null); if(cc.fx.GameConfig.GM_INFO.level > 156){ cc.fx.GameConfig.GM_INFO.level = 156; - MapConroler._instance = null; + // MapConroler._instance = null; if(this.new_mode == 3){ this.node.parent.parent.getChildByName("Win").active = false; @@ -1342,7 +1340,7 @@ wallInit() { else{ // console.log("下一关"); - MapConroler._instance = null; + // MapConroler._instance = null; if(this.new_mode == 3){ this.node.parent.parent.getChildByName("Win").active = false; @@ -1378,7 +1376,7 @@ wallInit() { this.againCanTouch = false; - MapConroler._instance = null; + // MapConroler._instance = null; cc.fx.AudioManager._instance.playEffect("zhuan1",null); this.node.parent.parent.parent.getChildByName("zhuanchang").active = true; this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",false); @@ -1456,7 +1454,7 @@ wallInit() { return; } // MiniGameSdk.API.showToast("体力值减少"); - MapConroler._instance = null; + // MapConroler._instance = null; cc.fx.GameConfig.LEVEL_INFO_init(false,0); if(this.new_mode == 3){ this.node.parent.parent.getChildByName("Win").active = false; diff --git a/assets/Script/SceneManager.ts b/assets/Script/SceneManager.ts index 081e855..ab2278b 100644 --- a/assets/Script/SceneManager.ts +++ b/assets/Script/SceneManager.ts @@ -149,12 +149,16 @@ export default class SceneManager extends cc.Component { MiniGameSdk.API.showToast("体力值减少"); cc.fx.GameTool.setUserHealth(-1,(data)=>{ }) - let data = { - time:MapConroler._instance.count_Time, - add_Time:MapConroler._instance.add_Time, - result:"give_up" + if(MapConroler._instance.count_Time){ + let count_Time = MapConroler._instance.count_Time; + let add_Time = MapConroler._instance.add_Time; + let data = { + time:count_Time, + add_Time:add_Time, + result:"give_up" + } + cc.fx.GameTool.shushu_Track("finish_stage",data); } - cc.fx.GameTool.shushu_Track("finish_stage",data); } this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl").setTouch(false); cc.fx.AudioManager._instance.playEffect("zhuan1",null); diff --git a/assets/Script/module/Tool/GameTool.ts b/assets/Script/module/Tool/GameTool.ts index 418d154..71e8fda 100644 --- a/assets/Script/module/Tool/GameTool.ts +++ b/assets/Script/module/Tool/GameTool.ts @@ -331,7 +331,7 @@ var GameTool = { //增加关卡数 - addLevel(time){ + addLevel(time1,time2){ cc.fx.GameConfig.GM_INFO.level += 1; if(cc.fx.GameConfig.GM_INFO.level > 156){ cc.fx.GameConfig.GM_INFO.level = 156; @@ -343,13 +343,16 @@ var GameTool = { } // console.log("55555存储关卡数据:",levelInfo); cc.fx.StorageMessage.setStorage("level",levelInfo); - let data = { - time:time.count_Time, - add_Time:time.add_Time, - result:"success" + if(time1 && time2){ + let data = { + time:time1, + add_Time:time2, + result:"success" + } + cc.fx.GameTool.shushu_Track("finish_stage",data); + MiniGameSdk.API.shushu_SetSuperProperties(); } - cc.fx.GameTool.shushu_Track("finish_stage",data); - MiniGameSdk.API.shushu_SetSuperProperties(); + cc.fx.GameTool.setUserLevel((data)=>{ // console.log("存储结果:",data); // console.log("上传",data); diff --git a/assets/Shader/jiekou.meta b/assets/Shader/jiekou.meta deleted file mode 100644 index bb0de9d..0000000 --- a/assets/Shader/jiekou.meta +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ver": "1.1.3", - "uuid": "afcb829a-5254-4c11-9105-dfd8221fb5a9", - "importer": "folder", - "isBundle": false, - "bundleName": "", - "priority": 1, - "compressionType": {}, - "optimizeHotUpdate": {}, - "inlineSpriteFrames": {}, - "isRemoteBundle": {}, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/jiekou/横.meta b/assets/Shader/jiekou/横.meta deleted file mode 100644 index 8170818..0000000 --- a/assets/Shader/jiekou/横.meta +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ver": "1.1.3", - "uuid": "52d6fee1-c5ed-4712-8dbf-cbea31617bd1", - "importer": "folder", - "isBundle": false, - "bundleName": "", - "priority": 1, - "compressionType": {}, - "optimizeHotUpdate": {}, - "inlineSpriteFrames": {}, - "isRemoteBundle": {}, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/jiekou/横/jiekou_heng.atlas b/assets/Shader/jiekou/横/jiekou_heng.atlas deleted file mode 100644 index 11433e6..0000000 --- a/assets/Shader/jiekou/横/jiekou_heng.atlas +++ /dev/null @@ -1,34 +0,0 @@ - -jiekou_heng.png -size: 148,148 -format: RGBA8888 -filter: Linear,Linear -repeat: none -连接块/kou1 - rotate: false - xy: 2, 121 - size: 52, 24 - orig: 52, 24 - offset: 0, 0 - index: -1 -连接块/kou2 - rotate: false - xy: 56, 121 - size: 52, 24 - orig: 52, 24 - offset: 0, 0 - index: -1 -连接块/luosi - rotate: true - xy: 110, 122 - size: 23, 21 - orig: 23, 21 - offset: 0, 0 - index: -1 -连接块/luosi2 - rotate: false - xy: 133, 133 - size: 12, 12 - orig: 12, 12 - offset: 0, 0 - index: -1 diff --git a/assets/Shader/jiekou/横/jiekou_heng.atlas.meta b/assets/Shader/jiekou/横/jiekou_heng.atlas.meta deleted file mode 100644 index deed45d..0000000 --- a/assets/Shader/jiekou/横/jiekou_heng.atlas.meta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "ver": "1.0.3", - "uuid": "b6ed74f8-9e62-419d-9ea7-59972f6e1a52", - "importer": "asset", - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/jiekou/横/jiekou_heng.json b/assets/Shader/jiekou/横/jiekou_heng.json deleted file mode 100644 index 71d4efc..0000000 --- a/assets/Shader/jiekou/横/jiekou_heng.json +++ /dev/null @@ -1,264 +0,0 @@ -{ -"skeleton": { - "hash": "SglAgIli7zPuz0syxY5xlYrKWAw", - "spine": "3.8.99", - "x": -34.31, - "y": -28.63, - "width": 52, - "height": 60.36, - "images": "", - "audio": "" -}, -"bones": [ - { "name": "root" }, - { "name": "bone3", "parent": "root", "x": -11.52, "y": 52.57 }, - { "name": "kou1", "parent": "bone3", "x": 17.41, "y": -32.85 }, - { "name": "bone", "parent": "bone3", "x": -10.72, "y": -32.17 }, - { "name": "luosi", "parent": "bone", "x": 0.3, "y": 0.82, "scaleX": 0.6, "scaleY": 0.6 }, - { "name": "bone2", "parent": "bone3", "x": 17.3, "y": -32.17 }, - { "name": "luosi2", "parent": "bone2", "x": 0.3, "y": 0.82, "scaleX": 0.6, "scaleY": 0.6 }, - { "name": "bone4", "parent": "root", "x": -11.52, "y": 16.22 }, - { "name": "kou2", "parent": "bone4", "x": 17.41, "y": -32.85 }, - { "name": "bone5", "parent": "bone4", "x": -10.72, "y": -32.17 }, - { "name": "luosi3", "parent": "bone5", "x": 0.3, "y": 0.82, "scaleX": 0.6, "scaleY": 0.6 }, - { "name": "bone6", "parent": "bone4", "x": 17.3, "y": -32.17 }, - { "name": "luosi4", "parent": "bone6", "x": 0.3, "y": 0.82, "scaleX": 0.6, "scaleY": 0.6 } -], -"slots": [ - { "name": "连接块/连接块", "bone": "root" }, - { "name": "连接块/kou1", "bone": "kou1", "attachment": "连接块/kou2" }, - { "name": "连接块/kou2", "bone": "kou2", "attachment": "连接块/kou2" }, - { "name": "连接块/luosi", "bone": "luosi", "attachment": "连接块/luosi" }, - { "name": "连接块/luosi6", "bone": "luosi3", "attachment": "连接块/luosi" }, - { "name": "连接块/luosi4", "bone": "luosi2", "attachment": "连接块/luosi" }, - { "name": "连接块/luosi8", "bone": "luosi4", "attachment": "连接块/luosi" }, - { "name": "连接块/luosi2", "bone": "bone", "attachment": "连接块/luosi2" }, - { "name": "连接块/luosi5", "bone": "bone5", "attachment": "连接块/luosi2" }, - { "name": "连接块/luosi3", "bone": "bone2", "attachment": "连接块/luosi2" }, - { "name": "连接块/luosi7", "bone": "bone6", "attachment": "连接块/luosi2" } -], -"skins": [ - { - "name": "default", - "attachments": { - "连接块/kou1": { - "连接块/kou1": { "x": 13.89, "width": 52, "height": 24 }, - "连接块/kou2": { "x": -14.21, "width": 52, "height": 24 } - }, - "连接块/kou2": { - "连接块/kou1": { "x": 13.89, "width": 52, "height": 24 }, - "连接块/kou2": { "x": -14.21, "width": 52, "height": 24 } - }, - "连接块/luosi": { - "连接块/luosi": { "x": -0.28, "y": -3.1, "width": 23, "height": 21 } - }, - "连接块/luosi2": { - "连接块/luosi2": { "x": -0.06, "y": -0.22, "width": 12, "height": 12 } - }, - "连接块/luosi3": { - "连接块/luosi2": { "x": -0.06, "y": -0.22, "width": 12, "height": 12 } - }, - "连接块/luosi4": { - "连接块/luosi": { "x": -0.28, "y": -3.1, "width": 23, "height": 21 } - }, - "连接块/luosi5": { - "连接块/luosi2": { "x": -0.06, "y": -0.22, "width": 12, "height": 12 } - }, - "连接块/luosi6": { - "连接块/luosi": { "x": -0.28, "y": -3.1, "width": 23, "height": 21 } - }, - "连接块/luosi7": { - "连接块/luosi2": { "x": -0.06, "y": -0.22, "width": 12, "height": 12 } - }, - "连接块/luosi8": { - "连接块/luosi": { "x": -0.28, "y": -3.1, "width": 23, "height": 21 } - } - } - } -], -"animations": { - "animation": { - "slots": { - "连接块/kou1": { - "color": [ - { "time": 0.3333, "color": "ffffffff" }, - { "time": 0.6, "color": "ffffff00" } - ] - }, - "连接块/kou2": { - "color": [ - { "time": 0.6667, "color": "ffffffff" }, - { "time": 0.9333, "color": "ffffff00" } - ] - }, - "连接块/luosi": { - "color": [ - { "color": "ffffff00", "curve": "stepped" }, - { "time": 0.3333, "color": "ffffff00" }, - { "time": 0.3667, "color": "ffffffff" }, - { "time": 0.6667, "color": "ffffff00" } - ] - }, - "连接块/luosi2": { - "color": [ - { "time": 0.3333, "color": "ffffffff" }, - { "time": 0.3667, "color": "ffffff00" } - ] - }, - "连接块/luosi3": { - "color": [ - { "time": 0.4667, "color": "ffffffff" }, - { "time": 0.5, "color": "ffffff00" } - ] - }, - "连接块/luosi4": { - "color": [ - { "color": "ffffff00", "curve": "stepped" }, - { "time": 0.4667, "color": "ffffff00" }, - { "time": 0.5, "color": "ffffffff" }, - { "time": 0.8, "color": "ffffff00" } - ] - }, - "连接块/luosi5": { - "color": [ - { "time": 0.5, "color": "ffffffff" }, - { "time": 0.5333, "color": "ffffff00" } - ] - }, - "连接块/luosi6": { - "color": [ - { "color": "ffffff00", "curve": "stepped" }, - { "time": 0.3333, "color": "ffffff00" }, - { "time": 0.3667, "color": "ffffffff" }, - { "time": 0.6667, "color": "ffffff00" } - ] - }, - "连接块/luosi7": { - "color": [ - { "time": 0.6333, "color": "ffffffff" }, - { "time": 0.6667, "color": "ffffff00" } - ] - }, - "连接块/luosi8": { - "color": [ - { "color": "ffffff00", "curve": "stepped" }, - { "time": 0.4667, "color": "ffffff00" }, - { "time": 0.5, "color": "ffffffff" }, - { "time": 0.8, "color": "ffffff00" } - ] - } - }, - "bones": { - "kou1": { - "rotate": [ - { "time": 0.3333 }, - { "time": 0.4667, "angle": 35.85 }, - { "time": 0.6, "angle": -136.48 } - ], - "translate": [ - { "time": 0.3333 }, - { "time": 0.6, "x": 160.21, "y": -504.28 } - ] - }, - "luosi": { - "rotate": [ - { "time": 0.3667 }, - { "time": 0.6667, "angle": -120.91 } - ] - }, - "bone": { - "rotate": [ - {}, - { "time": 0.1667, "angle": -177 }, - { "time": 0.3333, "angle": 81.64 } - ], - "translate": [ - { "time": 0.3333 }, - { "time": 0.6667, "x": -231.71, "y": 365.51 } - ], - "scale": [ - {}, - { "time": 0.3333, "x": 1.1, "y": 1.1 }, - { "time": 0.6667, "x": 3, "y": 3 } - ] - }, - "bone2": { - "rotate": [ - { "time": 0.1333 }, - { "time": 0.3, "angle": -177 }, - { "time": 0.4667, "angle": 81.64 } - ], - "translate": [ - { "time": 0.4667 }, - { "time": 0.8, "x": 258.57, "y": 206.19 } - ], - "scale": [ - { "time": 0.1333 }, - { "time": 0.4667, "x": 1.1, "y": 1.1 }, - { "time": 0.8, "x": 3, "y": 3 } - ] - }, - "luosi2": { - "rotate": [ - { "time": 0.5 }, - { "time": 0.8, "angle": -120.91 } - ] - }, - "kou2": { - "rotate": [ - { "time": 0.6667 }, - { "time": 0.9333, "angle": -136.48 } - ], - "translate": [ - { "time": 0.6667 }, - { "time": 0.9333, "x": -410.73, "y": -378.57 } - ] - }, - "bone5": { - "rotate": [ - { "time": 0.1667 }, - { "time": 0.3333, "angle": -177 }, - { "time": 0.5, "angle": 81.64 } - ], - "translate": [ - { "time": 0.5 }, - { "time": 0.8333, "x": -351.46, "y": -250.38 } - ], - "scale": [ - { "time": 0.1667 }, - { "time": 0.5, "x": 1.1, "y": 1.1 }, - { "time": 0.8333, "x": 3, "y": 3 } - ] - }, - "luosi3": { - "rotate": [ - { "time": 0.3667 }, - { "time": 0.6667, "angle": -120.91 } - ] - }, - "bone6": { - "rotate": [ - { "time": 0.3 }, - { "time": 0.4667, "angle": -177 }, - { "time": 0.6333, "angle": 81.64 } - ], - "translate": [ - { "time": 0.6333 }, - { "time": 0.9667, "x": 173.03, "y": -292.38 } - ], - "scale": [ - { "time": 0.3 }, - { "time": 0.6333, "x": 1.1, "y": 1.1 }, - { "time": 0.9667, "x": 3, "y": 3 } - ] - }, - "luosi4": { - "rotate": [ - { "time": 0.5 }, - { "time": 0.8, "angle": -120.91 } - ] - } - } - } -} -} \ No newline at end of file diff --git a/assets/Shader/jiekou/横/jiekou_heng.json.meta b/assets/Shader/jiekou/横/jiekou_heng.json.meta deleted file mode 100644 index e513428..0000000 --- a/assets/Shader/jiekou/横/jiekou_heng.json.meta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "ver": "1.2.5", - "uuid": "ca1fbdcb-5180-4815-8751-4b66146e74de", - "importer": "spine", - "textures": [ - "b422f3cf-81f1-4bda-9b15-c5ef7a9687b8" - ], - "scale": 1, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/jiekou/横/jiekou_heng.png b/assets/Shader/jiekou/横/jiekou_heng.png deleted file mode 100644 index 35e62c5..0000000 Binary files a/assets/Shader/jiekou/横/jiekou_heng.png and /dev/null differ diff --git a/assets/Shader/jiekou/横/jiekou_heng.png.meta b/assets/Shader/jiekou/横/jiekou_heng.png.meta deleted file mode 100644 index 8aaef55..0000000 --- a/assets/Shader/jiekou/横/jiekou_heng.png.meta +++ /dev/null @@ -1,38 +0,0 @@ -{ - "ver": "2.3.7", - "uuid": "b422f3cf-81f1-4bda-9b15-c5ef7a9687b8", - "importer": "texture", - "type": "sprite", - "wrapMode": "clamp", - "filterMode": "bilinear", - "premultiplyAlpha": false, - "genMipmaps": false, - "packable": true, - "width": 148, - "height": 148, - "platformSettings": {}, - "subMetas": { - "jiekou_heng": { - "ver": "1.0.6", - "uuid": "6f9a9443-aa0d-4e1b-8cd1-03cba11a2aad", - "importer": "sprite-frame", - "rawTextureUuid": "b422f3cf-81f1-4bda-9b15-c5ef7a9687b8", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": -0.5, - "offsetY": -59, - "trimX": 2, - "trimY": 121, - "width": 143, - "height": 24, - "rawWidth": 148, - "rawHeight": 148, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "subMetas": {} - } - } -} \ No newline at end of file diff --git a/assets/Shader/jiekou/竖.meta b/assets/Shader/jiekou/竖.meta deleted file mode 100644 index cb54fd3..0000000 --- a/assets/Shader/jiekou/竖.meta +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ver": "1.1.3", - "uuid": "eec9349a-c7f0-4791-9e85-caba15e44e97", - "importer": "folder", - "isBundle": false, - "bundleName": "", - "priority": 1, - "compressionType": {}, - "optimizeHotUpdate": {}, - "inlineSpriteFrames": {}, - "isRemoteBundle": {}, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/jiekou/竖/skeleton.atlas b/assets/Shader/jiekou/竖/skeleton.atlas deleted file mode 100644 index 534b0d0..0000000 --- a/assets/Shader/jiekou/竖/skeleton.atlas +++ /dev/null @@ -1,27 +0,0 @@ - -skeleton.png -size: 96,96 -format: RGBA8888 -filter: Linear,Linear -repeat: none -连接块/kou2shu - rotate: false - xy: 2, 39 - size: 24, 52 - orig: 24, 52 - offset: 0, 0 - index: -1 -连接块/luosi - rotate: false - xy: 2, 16 - size: 23, 21 - orig: 23, 21 - offset: 0, 0 - index: -1 -连接块/luosi2 - rotate: false - xy: 2, 2 - size: 12, 12 - orig: 12, 12 - offset: 0, 0 - index: -1 diff --git a/assets/Shader/jiekou/竖/skeleton.atlas.meta b/assets/Shader/jiekou/竖/skeleton.atlas.meta deleted file mode 100644 index 2aa623a..0000000 --- a/assets/Shader/jiekou/竖/skeleton.atlas.meta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "ver": "1.0.3", - "uuid": "319e830d-24b7-499e-b9ab-e6484934d981", - "importer": "asset", - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/jiekou/竖/skeleton.json b/assets/Shader/jiekou/竖/skeleton.json deleted file mode 100644 index 16eba30..0000000 --- a/assets/Shader/jiekou/竖/skeleton.json +++ /dev/null @@ -1,262 +0,0 @@ -{ -"skeleton": { - "hash": "8JO/UTer3ajOZPnOtjA7VMfz2+I", - "spine": "3.8.99", - "x": -476.91, - "y": -152.86, - "width": 795, - "height": 728, - "images": "", - "audio": "D:/work/block/做完的/解扣" -}, -"bones": [ - { "name": "root", "x": 8.64, "y": -17.49 }, - { "name": "bone3", "parent": "root", "x": -11.52, "y": 52.57 }, - { "name": "kou1", "parent": "bone3", "x": 17.41, "y": -32.85 }, - { "name": "bone", "parent": "bone3", "x": 16.62, "y": -45.84 }, - { "name": "luosi", "parent": "bone", "x": 0.3, "y": 0.82, "scaleX": 0.6, "scaleY": 0.6 }, - { "name": "bone2", "parent": "bone3", "x": 16.9, "y": -19.1 }, - { "name": "luosi2", "parent": "bone2", "x": 0.3, "y": 0.82, "scaleX": 0.6, "scaleY": 0.6 }, - { "name": "bone4", "parent": "root", "x": -40.06, "y": 52.8 }, - { "name": "kou2", "parent": "bone4", "x": 17.41, "y": -32.85 }, - { "name": "bone5", "parent": "bone4", "x": 16.42, "y": -45.84 }, - { "name": "luosi3", "parent": "bone5", "x": 0.3, "y": 0.82, "scaleX": 0.6, "scaleY": 0.6 }, - { "name": "bone6", "parent": "bone4", "x": 16.5, "y": -18.9 }, - { "name": "luosi4", "parent": "bone6", "x": 0.3, "y": 0.82, "scaleX": 0.6, "scaleY": 0.6 } -], -"slots": [ - { "name": "连接块/连接块", "bone": "root" }, - { "name": "连接块/kou1", "bone": "kou1", "attachment": "连接块/kou2shu" }, - { "name": "连接块/kou2", "bone": "kou2", "attachment": "连接块/kou2shu" }, - { "name": "连接块/luosi", "bone": "luosi", "attachment": "连接块/luosi" }, - { "name": "连接块/luosi6", "bone": "luosi3", "attachment": "连接块/luosi" }, - { "name": "连接块/luosi4", "bone": "luosi2", "attachment": "连接块/luosi" }, - { "name": "连接块/luosi8", "bone": "luosi4", "attachment": "连接块/luosi" }, - { "name": "连接块/luosi2", "bone": "bone", "attachment": "连接块/luosi2" }, - { "name": "连接块/luosi5", "bone": "bone5", "attachment": "连接块/luosi2" }, - { "name": "连接块/luosi3", "bone": "bone2", "attachment": "连接块/luosi2" }, - { "name": "连接块/luosi7", "bone": "bone6", "attachment": "连接块/luosi2" } -], -"skins": [ - { - "name": "default", - "attachments": { - "连接块/kou1": { - "连接块/kou2shu": { "width": 24, "height": 52 } - }, - "连接块/kou2": { - "连接块/kou2shu": { "width": 24, "height": 52 } - }, - "连接块/luosi": { - "连接块/luosi": { "x": -0.28, "y": -3.1, "width": 23, "height": 21 } - }, - "连接块/luosi2": { - "连接块/luosi2": { "x": -0.06, "y": -0.22, "width": 12, "height": 12 } - }, - "连接块/luosi3": { - "连接块/luosi2": { "x": -0.06, "y": -0.22, "width": 12, "height": 12 } - }, - "连接块/luosi4": { - "连接块/luosi": { "x": -0.28, "y": -3.1, "width": 23, "height": 21 } - }, - "连接块/luosi5": { - "连接块/luosi2": { "x": -0.06, "y": -0.22, "width": 12, "height": 12 } - }, - "连接块/luosi6": { - "连接块/luosi": { "x": -0.28, "y": -3.1, "width": 23, "height": 21 } - }, - "连接块/luosi7": { - "连接块/luosi2": { "x": -0.06, "y": -0.22, "width": 12, "height": 12 } - }, - "连接块/luosi8": { - "连接块/luosi": { "x": -0.28, "y": -3.1, "width": 23, "height": 21 } - } - } - } -], -"animations": { - "animation": { - "slots": { - "连接块/kou1": { - "color": [ - { "time": 0.3333, "color": "ffffffff" }, - { "time": 0.6, "color": "ffffff00" } - ] - }, - "连接块/kou2": { - "color": [ - { "time": 0.6667, "color": "ffffffff" }, - { "time": 0.9333, "color": "ffffff00" } - ] - }, - "连接块/luosi": { - "color": [ - { "color": "ffffff00", "curve": "stepped" }, - { "time": 0.3333, "color": "ffffff00" }, - { "time": 0.3667, "color": "ffffffff" }, - { "time": 0.6667, "color": "ffffff00" } - ] - }, - "连接块/luosi2": { - "color": [ - { "time": 0.3333, "color": "ffffffff" }, - { "time": 0.3667, "color": "ffffff00" } - ] - }, - "连接块/luosi3": { - "color": [ - { "time": 0.4667, "color": "ffffffff" }, - { "time": 0.5, "color": "ffffff00" } - ] - }, - "连接块/luosi4": { - "color": [ - { "color": "ffffff00", "curve": "stepped" }, - { "time": 0.4667, "color": "ffffff00" }, - { "time": 0.5, "color": "ffffffff" }, - { "time": 0.8, "color": "ffffff00" } - ] - }, - "连接块/luosi5": { - "color": [ - { "time": 0.5, "color": "ffffffff" }, - { "time": 0.5333, "color": "ffffff00" } - ] - }, - "连接块/luosi6": { - "color": [ - { "color": "ffffff00", "curve": "stepped" }, - { "time": 0.3333, "color": "ffffff00" }, - { "time": 0.3667, "color": "ffffffff" }, - { "time": 0.6667, "color": "ffffff00" } - ] - }, - "连接块/luosi7": { - "color": [ - { "time": 0.6333, "color": "ffffffff" }, - { "time": 0.6667, "color": "ffffff00" } - ] - }, - "连接块/luosi8": { - "color": [ - { "color": "ffffff00", "curve": "stepped" }, - { "time": 0.4667, "color": "ffffff00" }, - { "time": 0.5, "color": "ffffffff" }, - { "time": 0.8, "color": "ffffff00" } - ] - } - }, - "bones": { - "kou1": { - "rotate": [ - { "time": 0.3333 }, - { "time": 0.4667, "angle": 35.85 }, - { "time": 0.6, "angle": -136.48 } - ], - "translate": [ - { "time": 0.3333 }, - { "time": 0.6, "x": 160.21, "y": -504.28 } - ] - }, - "luosi": { - "rotate": [ - { "time": 0.3667 }, - { "time": 0.6667, "angle": -120.91 } - ] - }, - "bone": { - "rotate": [ - {}, - { "time": 0.1667, "angle": -177 }, - { "time": 0.3333, "angle": 81.64 } - ], - "translate": [ - { "time": 0.3333 }, - { "time": 0.6667, "x": -231.71, "y": 365.51 } - ], - "scale": [ - {}, - { "time": 0.3333, "x": 1.1, "y": 1.1 }, - { "time": 0.6667, "x": 3, "y": 3 } - ] - }, - "bone2": { - "rotate": [ - { "time": 0.1333 }, - { "time": 0.3, "angle": -177 }, - { "time": 0.4667, "angle": 81.64 } - ], - "translate": [ - { "time": 0.4667 }, - { "time": 0.8, "x": 258.57, "y": 206.19 } - ], - "scale": [ - { "time": 0.1333 }, - { "time": 0.4667, "x": 1.1, "y": 1.1 }, - { "time": 0.8, "x": 3, "y": 3 } - ] - }, - "luosi2": { - "rotate": [ - { "time": 0.5 }, - { "time": 0.8, "angle": -120.91 } - ] - }, - "kou2": { - "rotate": [ - { "time": 0.6667 }, - { "time": 0.9333, "angle": -112.36 } - ], - "translate": [ - { "time": 0.6667 }, - { "time": 0.9333, "x": -410.73, "y": -378.57 } - ] - }, - "bone5": { - "rotate": [ - { "time": 0.1667 }, - { "time": 0.3333, "angle": -177 }, - { "time": 0.5, "angle": 81.64 } - ], - "translate": [ - { "time": 0.5 }, - { "time": 0.8333, "x": -351.46, "y": -250.38 } - ], - "scale": [ - { "time": 0.1667 }, - { "time": 0.5, "x": 1.1, "y": 1.1 }, - { "time": 0.8333, "x": 3, "y": 3 } - ] - }, - "luosi3": { - "rotate": [ - { "time": 0.3667 }, - { "time": 0.6667, "angle": -120.91 } - ] - }, - "bone6": { - "rotate": [ - { "time": 0.3 }, - { "time": 0.4667, "angle": -177 }, - { "time": 0.6333, "angle": 81.64 } - ], - "translate": [ - { "time": 0.6333 }, - { "time": 0.9667, "x": 173.03, "y": -292.38 } - ], - "scale": [ - { "time": 0.3 }, - { "time": 0.6333, "x": 1.1, "y": 1.1 }, - { "time": 0.9667, "x": 3, "y": 3 } - ] - }, - "luosi4": { - "rotate": [ - { "time": 0.5 }, - { "time": 0.8, "angle": -120.91 } - ] - } - } - } -} -} \ No newline at end of file diff --git a/assets/Shader/jiekou/竖/skeleton.json.meta b/assets/Shader/jiekou/竖/skeleton.json.meta deleted file mode 100644 index 9ebef1a..0000000 --- a/assets/Shader/jiekou/竖/skeleton.json.meta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "ver": "1.2.5", - "uuid": "0e005ec2-f5a3-41d3-8a99-7ea6d784440d", - "importer": "spine", - "textures": [ - "dca5e70b-8d3f-4ac0-abe7-d0c5647f7837" - ], - "scale": 1, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/jiekou/竖/skeleton.png b/assets/Shader/jiekou/竖/skeleton.png deleted file mode 100644 index f6c3ec3..0000000 Binary files a/assets/Shader/jiekou/竖/skeleton.png and /dev/null differ diff --git a/assets/Shader/jiekou/竖/skeleton.png.meta b/assets/Shader/jiekou/竖/skeleton.png.meta deleted file mode 100644 index c91587e..0000000 --- a/assets/Shader/jiekou/竖/skeleton.png.meta +++ /dev/null @@ -1,38 +0,0 @@ -{ - "ver": "2.3.7", - "uuid": "dca5e70b-8d3f-4ac0-abe7-d0c5647f7837", - "importer": "texture", - "type": "sprite", - "wrapMode": "clamp", - "filterMode": "bilinear", - "premultiplyAlpha": false, - "genMipmaps": false, - "packable": true, - "width": 96, - "height": 96, - "platformSettings": {}, - "subMetas": { - "skeleton": { - "ver": "1.0.6", - "uuid": "06f9f620-7a88-4fb8-bc08-ac7d9db5b807", - "importer": "sprite-frame", - "rawTextureUuid": "dca5e70b-8d3f-4ac0-abe7-d0c5647f7837", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": -34, - "offsetY": 1.5, - "trimX": 2, - "trimY": 2, - "width": 24, - "height": 89, - "rawWidth": 96, - "rawHeight": 96, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "subMetas": {} - } - } -} \ No newline at end of file diff --git a/assets/Shader/mofabang_baozha.meta b/assets/Shader/mofabang_baozha.meta deleted file mode 100644 index dd2bbd7..0000000 --- a/assets/Shader/mofabang_baozha.meta +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ver": "1.1.3", - "uuid": "8b8ec6d3-f576-46ed-beea-a154efe1621c", - "importer": "folder", - "isBundle": false, - "bundleName": "", - "priority": 1, - "compressionType": {}, - "optimizeHotUpdate": {}, - "inlineSpriteFrames": {}, - "isRemoteBundle": {}, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/mofabang_baozha/mofabang_baozha.atlas b/assets/Shader/mofabang_baozha/mofabang_baozha.atlas deleted file mode 100644 index 6ef4747..0000000 --- a/assets/Shader/mofabang_baozha/mofabang_baozha.atlas +++ /dev/null @@ -1,209 +0,0 @@ - -mofabang_baozha.png -size: 2040,2040 -format: RGBA8888 -filter: Linear,Linear -repeat: none -images/effects/Glow1 - rotate: false - xy: 862, 1516 - size: 216, 216 - orig: 256, 256 - offset: 20, 19 - index: -1 -images/effects/hit/hit_00 - rotate: true - xy: 1379, 1762 - size: 276, 272 - orig: 400, 400 - offset: 61, 64 - index: -1 -images/effects/hit/hit_01 - rotate: false - xy: 1395, 1520 - size: 248, 240 - orig: 400, 400 - offset: 76, 80 - index: -1 -images/effects/hit/hit_02 - rotate: false - xy: 2, 1734 - size: 332, 304 - orig: 400, 400 - offset: 39, 51 - index: -1 -images/effects/hit/hit_03 - rotate: true - xy: 604, 1726 - size: 312, 252 - orig: 400, 400 - offset: 50, 83 - index: -1 -images/effects/hit/hit_04 - rotate: false - xy: 270, 1524 - size: 272, 208 - orig: 400, 400 - offset: 78, 108 - index: -1 -images/effects/hit/hit_05 - rotate: false - xy: 2, 1512 - size: 266, 220 - orig: 400, 400 - offset: 79, 103 - index: -1 -images/effects/hit/hit_06 - rotate: false - xy: 1117, 1496 - size: 276, 240 - orig: 400, 400 - offset: 73, 94 - index: -1 -images/effects/hit/hit_07 - rotate: true - xy: 1117, 1738 - size: 300, 260 - orig: 400, 400 - offset: 67, 85 - index: -1 -images/effects/hit/hit_08 - rotate: true - xy: 858, 1734 - size: 304, 257 - orig: 400, 400 - offset: 69, 82 - index: -1 -images/effects/hit/hit_09 - rotate: true - xy: 336, 1738 - size: 300, 266 - orig: 400, 400 - offset: 70, 74 - index: -1 -images/effects/hit/hit_10 - rotate: true - xy: 1645, 1380 - size: 162, 230 - orig: 400, 400 - offset: 95, 114 - index: -1 -images/effects/hit/hit_11 - rotate: false - xy: 1148, 1399 - size: 101, 95 - orig: 400, 400 - offset: 99, 119 - index: -1 -images/effects/hit/hit_12 - rotate: false - xy: 2037, 2037 - size: 1, 1 - orig: 400, 400 - offset: 198, 213 - index: -1 -images/lizi/shoujibaodian_34 - rotate: false - xy: 1653, 1719 - size: 211, 319 - orig: 1136, 640 - offset: 696, 201 - index: -1 -images/lizi/shoujibaodian_35 - rotate: true - xy: 544, 1546 - size: 178, 316 - orig: 1136, 640 - offset: 694, 201 - index: -1 -images/lizi/shoujibaodian_36 - rotate: true - xy: 1645, 1544 - size: 173, 313 - orig: 1136, 640 - offset: 696, 200 - index: -1 -images/lizi/shoujibaodian_37 - rotate: false - xy: 1866, 1810 - size: 169, 228 - orig: 1136, 640 - offset: 698, 233 - index: -1 -images/lizi/shoujibaodian_38 - rotate: true - xy: 544, 1378 - size: 166, 228 - orig: 1136, 640 - offset: 702, 235 - index: -1 -images/lizi/shoujibaodian_39 - rotate: true - xy: 270, 1358 - size: 164, 219 - orig: 1136, 640 - offset: 703, 241 - index: -1 -images/lizi/shoujibaodian_40 - rotate: true - xy: 1395, 1361 - size: 157, 208 - orig: 1136, 640 - offset: 710, 249 - index: -1 -images/lizi/shoujibaodian_41 - rotate: true - xy: 774, 1396 - size: 118, 189 - orig: 1136, 640 - offset: 749, 266 - index: -1 -images/lizi/shoujibaodian_42 - rotate: true - xy: 2, 1430 - size: 80, 187 - orig: 1136, 640 - offset: 751, 268 - index: -1 -images/lizi/shoujibaodian_43 - rotate: true - xy: 965, 1418 - size: 76, 181 - orig: 1136, 640 - offset: 752, 269 - index: -1 -images/lizi/shoujibaodian_44 - rotate: false - xy: 1960, 1665 - size: 72, 143 - orig: 1136, 640 - offset: 753, 305 - index: -1 -images/lizi/shoujibaodian_45 - rotate: false - xy: 1960, 1520 - size: 69, 143 - orig: 1136, 640 - offset: 754, 304 - index: -1 -images/lizi/shoujibaodian_46 - rotate: false - xy: 1947, 1376 - size: 67, 142 - orig: 1136, 640 - offset: 755, 304 - index: -1 -images/lizi/shoujibaodian_47 - rotate: false - xy: 191, 1369 - size: 67, 141 - orig: 1136, 640 - offset: 755, 304 - index: -1 -images/lizi/shoujibaodian_48 - rotate: false - xy: 1877, 1400 - size: 68, 142 - orig: 1136, 640 - offset: 754, 303 - index: -1 diff --git a/assets/Shader/mofabang_baozha/mofabang_baozha.atlas.meta b/assets/Shader/mofabang_baozha/mofabang_baozha.atlas.meta deleted file mode 100644 index a944d98..0000000 --- a/assets/Shader/mofabang_baozha/mofabang_baozha.atlas.meta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "ver": "1.0.3", - "uuid": "97459c20-5c45-444d-b533-f50d2406fe43", - "importer": "asset", - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/mofabang_baozha/mofabang_baozha.json b/assets/Shader/mofabang_baozha/mofabang_baozha.json deleted file mode 100644 index 238f931..0000000 --- a/assets/Shader/mofabang_baozha/mofabang_baozha.json +++ /dev/null @@ -1,167 +0,0 @@ -{ -"skeleton": { - "hash": "hZHGx+scAEPxWQrFsM0GBbRcUg0", - "spine": "3.8.99", - "x": -273.93, - "y": -795.48, - "width": 640, - "height": 1136, - "images": "", - "audio": "C:\\Users\\EDY\\Desktop\\common\\battle\\特效\\300970_skill_hit" -}, -"bones": [ - { "name": "root" }, - { "name": "all", "parent": "root" }, - { "name": "hit", "parent": "all" }, - { "name": "hit2", "parent": "all" }, - { "name": "glow", "parent": "all" }, - { "name": "lizi2", "parent": "root", "rotation": 90, "x": 1.13, "y": -2.39 } -], -"slots": [ - { "name": "images/bg", "bone": "root" }, - { "name": "images/effects/hit/hit_00", "bone": "hit", "attachment": "images/effects/hit/hit_00", "blend": "screen" }, - { "name": "images/effects/hit/hit_0", "bone": "hit2" }, - { "name": "images/effects/Glow1", "bone": "glow", "blend": "additive" }, - { "name": "images/lizi/shoujibaodian_34", "bone": "lizi2", "attachment": "images/lizi/shoujibaodian_34", "blend": "additive" } -], -"skins": [ - { - "name": "default", - "attachments": { - "images/effects/Glow1": { - "images/effects/Glow1": { "width": 256, "height": 256 } - }, - "images/effects/hit/hit_0": { - "images/effects/hit/hit_02": { "width": 400, "height": 400 }, - "images/effects/hit/hit_03": { "width": 400, "height": 400 }, - "images/effects/hit/hit_04": { "width": 400, "height": 400 }, - "images/effects/hit/hit_05": { "width": 400, "height": 400 }, - "images/effects/hit/hit_06": { "width": 400, "height": 400 }, - "images/effects/hit/hit_07": { "width": 400, "height": 400 }, - "images/effects/hit/hit_08": { "width": 400, "height": 400 }, - "images/effects/hit/hit_09": { "width": 400, "height": 400 }, - "images/effects/hit/hit_10": { "width": 400, "height": 400 }, - "images/effects/hit/hit_11": { "width": 400, "height": 400 }, - "images/effects/hit/hit_12": { "width": 400, "height": 400 }, - "images/effects/hit/hit_13": { "width": 400, "height": 400 }, - "images/effects/hit/hit_14": { "width": 1, "height": 1 } - }, - "images/effects/hit/hit_00": { - "images/effects/hit/hit_00": { "width": 400, "height": 400 }, - "images/effects/hit/hit_01": { "width": 400, "height": 400 } - }, - "images/lizi/shoujibaodian_34": { - "images/lizi/shoujibaodian_34": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_35": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_36": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_37": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_38": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_39": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_40": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_41": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_42": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_43": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_44": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_45": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_46": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_47": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 }, - "images/lizi/shoujibaodian_48": { "x": -225.09, "y": -44.94, "width": 1136, "height": 640 } - } - } - } -], -"animations": { - "play": { - "slots": { - "images/effects/Glow1": { - "color": [ - { "time": 0.0333, "color": "5a05ffff" }, - { "time": 0.4667, "color": "bd00ff00" } - ], - "attachment": [ - { "time": 0.0333, "name": "images/effects/Glow1" } - ] - }, - "images/effects/hit/hit_0": { - "attachment": [ - { "time": 0.1333, "name": "images/effects/hit/hit_02" }, - { "time": 0.1667, "name": "images/effects/hit/hit_03" }, - { "time": 0.2, "name": "images/effects/hit/hit_04" }, - { "time": 0.2333, "name": "images/effects/hit/hit_05" }, - { "time": 0.2667, "name": "images/effects/hit/hit_06" }, - { "time": 0.3, "name": "images/effects/hit/hit_07" }, - { "time": 0.3333, "name": "images/effects/hit/hit_08" }, - { "time": 0.3667, "name": "images/effects/hit/hit_09" }, - { "time": 0.4, "name": "images/effects/hit/hit_10" }, - { "time": 0.4333, "name": "images/effects/hit/hit_11" }, - { "time": 0.4667, "name": "images/effects/hit/hit_12" }, - { "time": 0.5, "name": "images/effects/hit/hit_13" }, - { "time": 0.5333, "name": "images/effects/hit/hit_14" }, - { "time": 0.5667, "name": null } - ] - }, - "images/effects/hit/hit_00": { - "color": [ - { "color": "ffffff00" }, - { "time": 0.0333, "color": "ffffffff" } - ], - "attachment": [ - { "time": 0.0667, "name": "images/effects/hit/hit_01" }, - { "time": 0.1, "name": null } - ] - }, - "images/lizi/shoujibaodian_34": { - "color": [ - { "color": "ffffff00", "curve": "stepped" }, - { "time": 0.3333, "color": "ffffff00" }, - { "time": 0.3667, "color": "ffffffff", "curve": "stepped" }, - { "time": 1.3, "color": "ffffffff" }, - { "time": 1.3667, "color": "ffffff00" } - ], - "attachment": [ - { "time": 0.4333, "name": "images/lizi/shoujibaodian_35" }, - { "time": 0.5, "name": "images/lizi/shoujibaodian_36" }, - { "time": 0.5667, "name": "images/lizi/shoujibaodian_37" }, - { "time": 0.6333, "name": "images/lizi/shoujibaodian_38" }, - { "time": 0.7, "name": "images/lizi/shoujibaodian_39" }, - { "time": 0.7667, "name": "images/lizi/shoujibaodian_40" }, - { "time": 0.8333, "name": "images/lizi/shoujibaodian_41" }, - { "time": 0.9, "name": "images/lizi/shoujibaodian_42" }, - { "time": 0.9667, "name": "images/lizi/shoujibaodian_43" }, - { "time": 1.0333, "name": "images/lizi/shoujibaodian_44" }, - { "time": 1.1, "name": "images/lizi/shoujibaodian_45" }, - { "time": 1.1667, "name": "images/lizi/shoujibaodian_46" }, - { "time": 1.2333, "name": "images/lizi/shoujibaodian_47" }, - { "time": 1.3, "name": "images/lizi/shoujibaodian_48" } - ] - } - }, - "bones": { - "glow": { - "scale": [ - { "time": 0.0333, "x": 0.5, "y": 0.5 }, - { "time": 0.1333, "x": 2, "y": 2 }, - { "time": 0.4667, "x": 3, "y": 3 } - ] - }, - "hit": { - "scale": [ - { "time": 0.0333, "x": 1.5, "y": 1.5 } - ] - }, - "lizi2": { - "translate": [ - { "time": 0.3667 }, - { "time": 0.7667, "y": 6 }, - { "time": 1.3, "y": -20.01 } - ], - "scale": [ - { "x": 0.7, "y": 0.7, "curve": "stepped" }, - { "time": 0.3667, "x": 0.7, "y": 0.7 }, - { "time": 1.3 } - ] - } - } - } -} -} \ No newline at end of file diff --git a/assets/Shader/mofabang_baozha/mofabang_baozha.json.meta b/assets/Shader/mofabang_baozha/mofabang_baozha.json.meta deleted file mode 100644 index 8c119c5..0000000 --- a/assets/Shader/mofabang_baozha/mofabang_baozha.json.meta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "ver": "1.2.5", - "uuid": "88cf729e-5501-40cb-9039-36e92ee9c49b", - "importer": "spine", - "textures": [ - "ff0d5773-ca66-4087-b1b7-4777121d85be" - ], - "scale": 1, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/mofabang_baozha/mofabang_baozha.png b/assets/Shader/mofabang_baozha/mofabang_baozha.png deleted file mode 100644 index 17e06ee..0000000 Binary files a/assets/Shader/mofabang_baozha/mofabang_baozha.png and /dev/null differ diff --git a/assets/Shader/mofabang_baozha/mofabang_baozha.png.meta b/assets/Shader/mofabang_baozha/mofabang_baozha.png.meta deleted file mode 100644 index f65152b..0000000 --- a/assets/Shader/mofabang_baozha/mofabang_baozha.png.meta +++ /dev/null @@ -1,38 +0,0 @@ -{ - "ver": "2.3.7", - "uuid": "ff0d5773-ca66-4087-b1b7-4777121d85be", - "importer": "texture", - "type": "sprite", - "wrapMode": "clamp", - "filterMode": "bilinear", - "premultiplyAlpha": false, - "genMipmaps": false, - "packable": true, - "width": 2040, - "height": 2040, - "platformSettings": {}, - "subMetas": { - "mofabang_baozha": { - "ver": "1.0.6", - "uuid": "ba2878f1-3d11-4c66-8c2e-58e33b45e628", - "importer": "sprite-frame", - "rawTextureUuid": "ff0d5773-ca66-4087-b1b7-4777121d85be", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": -678, - "trimX": 2, - "trimY": 1358, - "width": 2036, - "height": 680, - "rawWidth": 2040, - "rawHeight": 2040, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "subMetas": {} - } - } -} \ No newline at end of file diff --git a/assets/Shader/mofabang_texiao.meta b/assets/Shader/mofabang_texiao.meta deleted file mode 100644 index 6db6a5d..0000000 --- a/assets/Shader/mofabang_texiao.meta +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ver": "1.1.3", - "uuid": "f5c90851-ef9a-44a5-96de-54f17b7a766b", - "importer": "folder", - "isBundle": false, - "bundleName": "", - "priority": 1, - "compressionType": {}, - "optimizeHotUpdate": {}, - "inlineSpriteFrames": {}, - "isRemoteBundle": {}, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/mofabang_texiao/mofabang_texiao.atlas b/assets/Shader/mofabang_texiao/mofabang_texiao.atlas deleted file mode 100644 index ead6b3b..0000000 --- a/assets/Shader/mofabang_texiao/mofabang_texiao.atlas +++ /dev/null @@ -1,104 +0,0 @@ - -mofabang_texiao.png -size: 1000,1000 -format: RGBA8888 -filter: Linear,Linear -repeat: none -images/effects/chixu/chixu_00 - rotate: false - xy: 2, 334 - size: 151, 124 - orig: 200, 200 - offset: 12, 44 - index: -1 -images/effects/chixu/chixu_01 - rotate: true - xy: 159, 567 - size: 148, 132 - orig: 200, 200 - offset: 12, 37 - index: -1 -images/effects/chixu/chixu_02 - rotate: false - xy: 2, 460 - size: 153, 125 - orig: 200, 200 - offset: 15, 37 - index: -1 -images/effects/chixu/chixu_03 - rotate: false - xy: 2, 587 - size: 155, 128 - orig: 200, 200 - offset: 15, 36 - index: -1 -images/effects/chixu/chixu_04 - rotate: true - xy: 157, 416 - size: 149, 126 - orig: 200, 200 - offset: 21, 36 - index: -1 -images/effects/chixu/chixu_05 - rotate: true - xy: 155, 265 - size: 149, 123 - orig: 200, 200 - offset: 21, 36 - index: -1 -images/effects/chixu/chixu_06 - rotate: false - xy: 148, 143 - size: 147, 120 - orig: 200, 200 - offset: 23, 38 - index: -1 -images/effects/chixu/chixu_07 - rotate: true - xy: 2, 61 - size: 145, 119 - orig: 200, 200 - offset: 24, 39 - index: -1 -images/effects/chixu/chixu_08 - rotate: false - xy: 2, 208 - size: 144, 124 - orig: 200, 200 - offset: 23, 41 - index: -1 -images/effects/chixu/chixu_09 - rotate: false - xy: 123, 23 - size: 140, 118 - orig: 200, 200 - offset: 23, 43 - index: -1 -images/effects/chixu/chixu_10 - rotate: true - xy: 265, 2 - size: 139, 117 - orig: 200, 200 - offset: 23, 43 - index: -1 -images/effects/guangdian - rotate: false - xy: 2, 54 - size: 5, 5 - orig: 5, 5 - offset: 0, 0 - index: -1 -images/effects/huiguang - rotate: false - xy: 2, 717 - size: 278, 278 - orig: 311, 310 - offset: 17, 16 - index: -1 -images/effects/微信图片_20250515181822 - rotate: false - xy: 280, 305 - size: 93, 109 - orig: 93, 109 - offset: 0, 0 - index: -1 diff --git a/assets/Shader/mofabang_texiao/mofabang_texiao.atlas.meta b/assets/Shader/mofabang_texiao/mofabang_texiao.atlas.meta deleted file mode 100644 index 5e60c80..0000000 --- a/assets/Shader/mofabang_texiao/mofabang_texiao.atlas.meta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "ver": "1.0.3", - "uuid": "13f1b3eb-4cde-4c8e-9dee-16929acd6d24", - "importer": "asset", - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/mofabang_texiao/mofabang_texiao.json b/assets/Shader/mofabang_texiao/mofabang_texiao.json deleted file mode 100644 index f8d8a47..0000000 --- a/assets/Shader/mofabang_texiao/mofabang_texiao.json +++ /dev/null @@ -1,269 +0,0 @@ -{ -"skeleton": { - "hash": "KwnUpLoFTPi0z5vmLJV6Z4zmnmE", - "spine": "3.8.99", - "x": -152.76, - "y": -158.93, - "width": 316.61, - "height": 310, - "images": "", - "audio": "C:\\Users\\EDY\\Desktop\\common\\battle\\特效\\500210_skill1" -}, -"bones": [ - { "name": "root" }, - { "name": "all", "parent": "root" }, - { "name": "shifa", "parent": "all", "scaleX": 1.5, "scaleY": 1.5 }, - { "name": "chixu", "parent": "shifa" }, - { "name": "chixu1", "parent": "chixu" }, - { "name": "chixu2", "parent": "chixu", "scaleX": -1 }, - { "name": "bone", "parent": "root", "x": 0.19, "y": -0.13 }, - { "name": "bone2", "parent": "root", "x": -2.4, "y": -1.65 }, - { "name": "bone3", "parent": "root", "x": -2.4, "y": -1.65 }, - { "name": "bone4", "parent": "root", "x": -2.4, "y": -1.65 }, - { "name": "bone5", "parent": "root", "x": -2.4, "y": -1.65 }, - { "name": "bone6", "parent": "root", "x": -2.4, "y": -1.65 }, - { "name": "bone7", "parent": "root", "x": -2.4, "y": -1.65 }, - { "name": "bone8", "parent": "root", "x": -2.4, "y": -1.65 } -], -"slots": [ - { "name": "images/effects/bg", "bone": "root" }, - { "name": "images/effects/chixu/chixu_0", "bone": "chixu2", "color": "d120a1ca", "blend": "additive" }, - { "name": "images/effects/微信图片_20250515181822", "bone": "bone", "attachment": "images/effects/微信图片_20250515181822" }, - { "name": "images/effects/chixu/chixu_00", "bone": "chixu1", "blend": "additive" }, - { "name": "images/effects/huiguang", "bone": "all", "attachment": "images/effects/huiguang", "blend": "additive" }, - { "name": "images/effects/guangdian", "bone": "bone2", "attachment": "images/effects/guangdian", "blend": "additive" }, - { "name": "images/effects/guangdian2", "bone": "bone3", "attachment": "images/effects/guangdian", "blend": "additive" }, - { "name": "images/effects/guangdian4", "bone": "bone5", "attachment": "images/effects/guangdian", "blend": "additive" }, - { "name": "images/effects/guangdian7", "bone": "bone8", "attachment": "images/effects/guangdian", "blend": "additive" }, - { "name": "images/effects/guangdian5", "bone": "bone6", "attachment": "images/effects/guangdian", "blend": "additive" }, - { "name": "images/effects/guangdian3", "bone": "bone4", "attachment": "images/effects/guangdian", "blend": "additive" }, - { "name": "images/effects/guangdian6", "bone": "bone7", "attachment": "images/effects/guangdian", "blend": "additive" } -], -"skins": [ - { - "name": "default", - "attachments": { - "images/effects/chixu/chixu_0": { - "images/effects/chixu/chixu_00": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_01": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_02": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_03": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_04": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_05": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_06": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_07": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_08": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_09": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_10": { "width": 200, "height": 200 } - }, - "images/effects/chixu/chixu_00": { - "images/effects/chixu/chixu_00": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_01": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_02": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_03": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_04": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_05": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_06": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_07": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_08": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_09": { "width": 200, "height": 200 }, - "images/effects/chixu/chixu_10": { "width": 200, "height": 200 } - }, - "images/effects/guangdian": { - "images/effects/guangdian": { "x": -0.53, "scaleX": 2, "scaleY": 2, "width": 5, "height": 5 } - }, - "images/effects/guangdian2": { - "images/effects/guangdian": { "x": -0.53, "scaleX": 2, "scaleY": 2, "width": 5, "height": 5 } - }, - "images/effects/guangdian3": { - "images/effects/guangdian": { "x": -0.53, "scaleX": 2, "scaleY": 2, "width": 5, "height": 5 } - }, - "images/effects/guangdian4": { - "images/effects/guangdian": { "x": -0.53, "scaleX": 2, "scaleY": 2, "width": 5, "height": 5 } - }, - "images/effects/guangdian5": { - "images/effects/guangdian": { "x": -0.53, "scaleX": 2, "scaleY": 2, "width": 5, "height": 5 } - }, - "images/effects/guangdian6": { - "images/effects/guangdian": { "x": -0.53, "scaleX": 2, "scaleY": 2, "width": 5, "height": 5 } - }, - "images/effects/guangdian7": { - "images/effects/guangdian": { "x": -0.53, "scaleX": 2, "scaleY": 2, "width": 5, "height": 5 } - }, - "images/effects/huiguang": { - "images/effects/huiguang": { "x": 2.74, "y": -3.93, "rotation": 180, "width": 311, "height": 310 } - }, - "images/effects/微信图片_20250515181822": { - "images/effects/微信图片_20250515181822": { - "x": 36.11, - "y": -31.15, - "scaleX": 2, - "scaleY": 2, - "rotation": 76.63, - "width": 93, - "height": 109 - } - } - } - } -], -"animations": { - "play": { - "slots": { - "images/effects/chixu/chixu_0": { - "attachment": [ - { "time": 0.1333, "name": "images/effects/chixu/chixu_00" }, - { "time": 0.2, "name": "images/effects/chixu/chixu_01" }, - { "time": 0.2667, "name": "images/effects/chixu/chixu_02" }, - { "time": 0.3333, "name": "images/effects/chixu/chixu_03" }, - { "time": 0.4, "name": "images/effects/chixu/chixu_04" }, - { "time": 0.4667, "name": "images/effects/chixu/chixu_05" }, - { "time": 0.5333, "name": "images/effects/chixu/chixu_06" }, - { "time": 0.6, "name": "images/effects/chixu/chixu_07" }, - { "time": 0.6667, "name": "images/effects/chixu/chixu_08" }, - { "time": 0.7333, "name": "images/effects/chixu/chixu_09" }, - { "time": 0.8, "name": "images/effects/chixu/chixu_10" }, - { "time": 0.8667, "name": null } - ] - }, - "images/effects/chixu/chixu_00": { - "attachment": [ - { "name": "images/effects/chixu/chixu_06" }, - { "time": 0.0667, "name": "images/effects/chixu/chixu_07" }, - { "time": 0.1333, "name": "images/effects/chixu/chixu_08" }, - { "time": 0.2, "name": "images/effects/chixu/chixu_09" }, - { "time": 0.2667, "name": "images/effects/chixu/chixu_10" }, - { "time": 0.3333, "name": null }, - { "time": 0.6, "name": "images/effects/chixu/chixu_00" }, - { "time": 0.6667, "name": "images/effects/chixu/chixu_01" }, - { "time": 0.7333, "name": "images/effects/chixu/chixu_02" }, - { "time": 0.8, "name": "images/effects/chixu/chixu_03" }, - { "time": 0.8667, "name": "images/effects/chixu/chixu_04" }, - { "time": 0.9333, "name": "images/effects/chixu/chixu_05" } - ] - }, - "images/effects/guangdian": { - "color": [ - { "color": "ffffff00", "curve": "stepped" }, - { "time": 0.1333, "color": "ffffff00" }, - { "time": 0.1667, "color": "ffffffff" }, - { "time": 0.2667, "color": "ffffff00" }, - { "time": 0.3667, "color": "ffffffed" }, - { "time": 0.4333, "color": "fffffff5" }, - { "time": 0.5333, "color": "ffffff33" }, - { "time": 0.5667, "color": "ffffffff", "curve": "stepped" }, - { "time": 0.6667, "color": "ffffffff" }, - { "time": 0.8333, "color": "ffffff00" } - ] - }, - "images/effects/guangdian2": { - "color": [ - { "time": 0.3667, "color": "ffffffff" }, - { "time": 0.5333, "color": "ffffff00", "curve": "stepped" }, - { "time": 0.9, "color": "ffffff00" }, - { "time": 0.9333, "color": "ffffffff" } - ] - }, - "images/effects/guangdian3": { - "color": [ - { "time": 0.2333, "color": "ffffffff" }, - { "time": 0.4, "color": "ffffff00", "curve": "stepped" }, - { "time": 0.6333, "color": "ffffff00" }, - { "time": 0.6667, "color": "ffffffff" } - ] - }, - "images/effects/guangdian4": { - "color": [ - { "color": "ffffff00", "curve": "stepped" }, - { "time": 0.2, "color": "ffffff00" }, - { "time": 0.2333, "color": "ffffffff", "curve": "stepped" }, - { "time": 0.7333, "color": "ffffffff" }, - { "time": 0.9, "color": "ffffff00" } - ] - }, - "images/effects/guangdian5": { - "color": [ - { "color": "ffffff00" }, - { "time": 0.0333, "color": "ffffffff", "curve": "stepped" }, - { "time": 0.5333, "color": "ffffffff" }, - { "time": 0.7, "color": "ffffff00" } - ] - }, - "images/effects/guangdian6": { - "color": [ - { "time": 0.2333, "color": "ffffffff" }, - { "time": 0.4, "color": "ffffff00", "curve": "stepped" }, - { "time": 0.6333, "color": "ffffff00" }, - { "time": 0.6667, "color": "ffffffff" } - ] - }, - "images/effects/guangdian7": { - "color": [ - { "color": "ffffff00", "curve": "stepped" }, - { "time": 0.1333, "color": "ffffff00" }, - { "time": 0.1667, "color": "ffffffff", "curve": "stepped" }, - { "time": 0.6667, "color": "ffffffff" }, - { "time": 0.8333, "color": "ffffff00" } - ] - }, - "images/effects/huiguang": { - "color": [ - { "color": "ffffffff" }, - { "time": 0.4667, "color": "ffffff71" }, - { "time": 0.9333, "color": "ffffffff" } - ] - } - }, - "bones": { - "bone2": { - "translate": [ - { "time": 0.1667 }, - { "time": 0.8333, "x": 18.29, "y": 73.14 } - ] - }, - "bone3": { - "translate": [ - { "x": 34.13, "y": -4.63 }, - { "time": 0.5333, "x": 170.66, "y": -23.16, "curve": "stepped" }, - { "time": 0.8667, "x": 170.66, "y": -23.16 }, - { "time": 0.9333 } - ] - }, - "bone4": { - "translate": [ - { "x": 33.29, "y": 31.52 }, - { "time": 0.4, "x": -69.48, "y": -142.62 }, - { "time": 0.6667 }, - { "time": 0.9333, "x": 33.29, "y": 31.52 } - ] - }, - "bone5": { - "translate": [ - { "time": 0.2333 }, - { "time": 0.9, "x": -128.62, "y": -19.54 } - ] - }, - "bone6": { - "translate": [ - { "time": 0.0333 }, - { "time": 0.7, "x": -57.7, "y": 131.91 } - ] - }, - "bone7": { - "translate": [ - { "x": 18.08, "y": 13.84 }, - { "time": 0.4, "x": 98.49, "y": 94.57 }, - { "time": 0.6667 }, - { "time": 0.9333, "x": 18.08, "y": 13.84 } - ] - }, - "bone8": { - "translate": [ - { "time": 0.1667 }, - { "time": 0.8333, "x": 97.32, "y": 76.27 } - ] - } - } - } -} -} \ No newline at end of file diff --git a/assets/Shader/mofabang_texiao/mofabang_texiao.json.meta b/assets/Shader/mofabang_texiao/mofabang_texiao.json.meta deleted file mode 100644 index e636c00..0000000 --- a/assets/Shader/mofabang_texiao/mofabang_texiao.json.meta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "ver": "1.2.5", - "uuid": "86f338ab-4874-40d7-ac5e-06e2bf339c6c", - "importer": "spine", - "textures": [ - "363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de" - ], - "scale": 1, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/mofabang_texiao/mofabang_texiao.png b/assets/Shader/mofabang_texiao/mofabang_texiao.png deleted file mode 100644 index f9be12a..0000000 Binary files a/assets/Shader/mofabang_texiao/mofabang_texiao.png and /dev/null differ diff --git a/assets/Shader/mofabang_texiao/mofabang_texiao.png.meta b/assets/Shader/mofabang_texiao/mofabang_texiao.png.meta deleted file mode 100644 index f791e1a..0000000 --- a/assets/Shader/mofabang_texiao/mofabang_texiao.png.meta +++ /dev/null @@ -1,38 +0,0 @@ -{ - "ver": "2.3.7", - "uuid": "363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de", - "importer": "texture", - "type": "sprite", - "wrapMode": "clamp", - "filterMode": "bilinear", - "premultiplyAlpha": false, - "genMipmaps": false, - "packable": true, - "width": 1000, - "height": 1000, - "platformSettings": {}, - "subMetas": { - "mofabang_texiao": { - "ver": "1.0.6", - "uuid": "d4d42228-3ee1-4a5f-808f-ce8b0b494ba7", - "importer": "sprite-frame", - "rawTextureUuid": "363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": -308, - "offsetY": 1.5, - "trimX": 2, - "trimY": 2, - "width": 380, - "height": 993, - "rawWidth": 1000, - "rawHeight": 1000, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "subMetas": {} - } - } -} \ No newline at end of file diff --git a/assets/Shader/mofabang_tuowei.meta b/assets/Shader/mofabang_tuowei.meta deleted file mode 100644 index 70b594b..0000000 --- a/assets/Shader/mofabang_tuowei.meta +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ver": "1.1.3", - "uuid": "fe7bac61-99b4-4653-9428-8e258da15302", - "importer": "folder", - "isBundle": false, - "bundleName": "", - "priority": 1, - "compressionType": {}, - "optimizeHotUpdate": {}, - "inlineSpriteFrames": {}, - "isRemoteBundle": {}, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/mofabang_tuowei/2D and UI trailing effects.meta b/assets/Shader/mofabang_tuowei/2D and UI trailing effects.meta deleted file mode 100644 index 89147f5..0000000 --- a/assets/Shader/mofabang_tuowei/2D and UI trailing effects.meta +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ver": "1.1.3", - "uuid": "43aa6fa9-d440-4a11-93ae-e92a87fc2c4a", - "importer": "directory", - "isBundle": false, - "bundleName": "", - "priority": 1, - "compressionType": {}, - "optimizeHotUpdate": {}, - "inlineSpriteFrames": {}, - "isRemoteBundle": {}, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x.meta b/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x.meta deleted file mode 100644 index abb90d4..0000000 --- a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x.meta +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ver": "1.1.3", - "uuid": "1aa36344-6803-464b-9ccd-bd47a2dc65d7", - "importer": "directory", - "isBundle": false, - "bundleName": "", - "priority": 1, - "compressionType": {}, - "optimizeHotUpdate": {}, - "inlineSpriteFrames": {}, - "isRemoteBundle": {}, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures.meta b/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures.meta deleted file mode 100644 index 66ce8aa..0000000 --- a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures.meta +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ver": "1.1.3", - "uuid": "a016c003-4b29-4f55-8f78-f3b6dd5abab6", - "importer": "directory", - "isBundle": false, - "bundleName": "", - "priority": 1, - "compressionType": {}, - "optimizeHotUpdate": {}, - "inlineSpriteFrames": {}, - "isRemoteBundle": {}, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle.meta b/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle.meta deleted file mode 100644 index 4f684a3..0000000 --- a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle.meta +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ver": "1.1.3", - "uuid": "866e4be5-7181-407b-8a74-8822bf3e46db", - "importer": "directory", - "isBundle": false, - "bundleName": "", - "priority": 1, - "compressionType": {}, - "optimizeHotUpdate": {}, - "inlineSpriteFrames": {}, - "isRemoteBundle": {}, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/LiZi1.png b/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/LiZi1.png deleted file mode 100644 index 28f3855..0000000 Binary files a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/LiZi1.png and /dev/null differ diff --git a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/LiZi1.png.meta b/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/LiZi1.png.meta deleted file mode 100644 index ab68d8d..0000000 --- a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/LiZi1.png.meta +++ /dev/null @@ -1,38 +0,0 @@ -{ - "ver": "2.3.7", - "uuid": "727ab669-af95-43be-9818-2065a98b84a5", - "importer": "image", - "type": "sprite", - "wrapMode": "clamp", - "filterMode": "bilinear", - "premultiplyAlpha": false, - "genMipmaps": false, - "packable": true, - "width": 192, - "height": 192, - "platformSettings": {}, - "subMetas": { - "LiZi1": { - "ver": "1.0.6", - "uuid": "c5195cb6-e974-4b2b-9b9a-fa73a8c21cfb", - "importer": "sprite-frame", - "rawTextureUuid": "727ab669-af95-43be-9818-2065a98b84a5", - "trimType": "none", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 0, - "trimY": 0, - "width": 192, - "height": 192, - "rawWidth": 192, - "rawHeight": 192, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "subMetas": {} - } - } -} \ No newline at end of file diff --git a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/circle_00.png b/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/circle_00.png deleted file mode 100644 index 0e01bbe..0000000 Binary files a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/circle_00.png and /dev/null differ diff --git a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/circle_00.png.meta b/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/circle_00.png.meta deleted file mode 100644 index be23bda..0000000 --- a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/circle_00.png.meta +++ /dev/null @@ -1,38 +0,0 @@ -{ - "ver": "2.3.7", - "uuid": "c88c6283-3de7-4606-b65a-fa3e18c95049", - "importer": "image", - "type": "sprite", - "wrapMode": "clamp", - "filterMode": "bilinear", - "premultiplyAlpha": false, - "genMipmaps": false, - "packable": true, - "width": 200, - "height": 200, - "platformSettings": {}, - "subMetas": { - "circle_00": { - "ver": "1.0.6", - "uuid": "3e2536e0-8913-4e18-80ed-ae109a6fa197", - "importer": "sprite-frame", - "rawTextureUuid": "c88c6283-3de7-4606-b65a-fa3e18c95049", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 0, - "trimY": 0, - "width": 200, - "height": 200, - "rawWidth": 200, - "rawHeight": 200, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "subMetas": {} - } - } -} \ No newline at end of file diff --git a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/flash.png b/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/flash.png deleted file mode 100644 index c261a22..0000000 Binary files a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/flash.png and /dev/null differ diff --git a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/flash.png.meta b/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/flash.png.meta deleted file mode 100644 index c7d2974..0000000 --- a/assets/Shader/mofabang_tuowei/2D and UI trailing effects/2D和UI的拖尾效果3.x/textures/particle/flash.png.meta +++ /dev/null @@ -1,38 +0,0 @@ -{ - "ver": "2.3.7", - "uuid": "118d4d54-d313-4f52-b49f-593effa13423", - "importer": "image", - "type": "sprite", - "wrapMode": "clamp", - "filterMode": "bilinear", - "premultiplyAlpha": false, - "genMipmaps": false, - "packable": true, - "width": 73, - "height": 73, - "platformSettings": {}, - "subMetas": { - "flash": { - "ver": "1.0.6", - "uuid": "a28b8261-be09-47df-aaa7-db3b6edebc3e", - "importer": "sprite-frame", - "rawTextureUuid": "118d4d54-d313-4f52-b49f-593effa13423", - "trimType": "none", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 0, - "trimY": 0, - "width": 73, - "height": 73, - "rawWidth": 73, - "rawHeight": 73, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "subMetas": {} - } - } -} \ No newline at end of file diff --git a/assets/Shader/mofabang_tuowei/bang.png b/assets/Shader/mofabang_tuowei/bang.png deleted file mode 100644 index 6f4d9ec..0000000 Binary files a/assets/Shader/mofabang_tuowei/bang.png and /dev/null differ diff --git a/assets/Shader/mofabang_tuowei/bang.png.meta b/assets/Shader/mofabang_tuowei/bang.png.meta deleted file mode 100644 index b1e017c..0000000 --- a/assets/Shader/mofabang_tuowei/bang.png.meta +++ /dev/null @@ -1,38 +0,0 @@ -{ - "ver": "2.3.7", - "uuid": "071c697b-6b3e-4294-a6bb-e433ef19e445", - "importer": "image", - "type": "sprite", - "wrapMode": "clamp", - "filterMode": "bilinear", - "premultiplyAlpha": false, - "genMipmaps": false, - "packable": true, - "width": 186, - "height": 218, - "platformSettings": {}, - "subMetas": { - "bang": { - "ver": "1.0.6", - "uuid": "071c697b-6b3e-4294-a6bb-e433ef19e445@6c48a", - "importer": "texture", - "rawTextureUuid": "071c697b-6b3e-4294-a6bb-e433ef19e445", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 0, - "trimY": 0, - "width": 186, - "height": 218, - "rawWidth": 186, - "rawHeight": 218, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "subMetas": {} - } - } -} \ No newline at end of file diff --git a/assets/Shader/mofabang_tuowei/tuowei1.prefab b/assets/Shader/mofabang_tuowei/tuowei1.prefab deleted file mode 100644 index f8db6b1..0000000 --- a/assets/Shader/mofabang_tuowei/tuowei1.prefab +++ /dev/null @@ -1,976 +0,0 @@ -[ - { - "__type__": "cc.Prefab", - "_name": "tuowei1", - "_objFlags": 0, - "__editorExtras__": {}, - "_native": "", - "data": { - "__id__": 1 - }, - "optimizationPolicy": 0, - "persistent": false - }, - { - "__type__": "cc.Node", - "_name": "tuowei1", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": null, - "_children": [ - { - "__id__": 2 - }, - { - "__id__": 8 - }, - { - "__id__": 14 - }, - { - "__id__": 20 - } - ], - "_active": true, - "_components": [ - { - "__id__": 26 - }, - { - "__id__": 28 - } - ], - "_prefab": { - "__id__": 30 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 368.365, - "y": 119.47800000000007, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 1, - "y": 1, - "z": 1 - }, - "_mobility": 0, - "_layer": 33554432, - "_euler": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_id": "", - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - } - }, - { - "__type__": "cc.Node", - "_name": "bang", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": false, - "_components": [ - { - "__id__": 3 - }, - { - "__id__": 5 - } - ], - "_prefab": { - "__id__": 7 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 24.637, - "y": -44.506, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 1, - "y": 1, - "z": 1 - }, - "_mobility": 0, - "_layer": 33554432, - "_euler": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_id": "", - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - } - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 2 - }, - "_enabled": true, - "__prefab": { - "__id__": 4 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 186, - "height": 218 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "cdWk0F6LtP+JZwDprvKxmV" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 2 - }, - "_enabled": true, - "__prefab": { - "__id__": 6 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "071c697b-6b3e-4294-a6bb-e433ef19e445@f9941", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 0, - "_fillType": 0, - "_sizeMode": 1, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": null, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "f1svzuVr5Ek4L0JQ6gVnR0" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "41GQWZ2a5Ex6CABo1VEgRM", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "tailing", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": false, - "_components": [ - { - "__id__": 9 - }, - { - "__id__": 11 - } - ], - "_prefab": { - "__id__": 13 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 1, - "y": 1, - "z": 1 - }, - "_mobility": 0, - "_layer": 33554432, - "_euler": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_id": "", - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - } - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 8 - }, - "_enabled": true, - "__prefab": { - "__id__": 10 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 100, - "height": 100 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "f2Tw/3NDdLoLhwO87Ntg5/" - }, - { - "__type__": "cc.MotionStreak", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 8 - }, - "_enabled": true, - "__prefab": { - "__id__": 12 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 128, - "b": 0, - "a": 255 - }, - "_preview": true, - "_fadeTime": 0.3, - "_minSeg": 1, - "_stroke": 20, - "_texture": { - "__uuid__": "c88c6283-3de7-4606-b65a-fa3e18c95049@6c48a", - "__expectedType__": "cc.Texture2D" - }, - "_fastMode": false, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "6eMtdlXtxMZ6pJ12SfzsaD" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "d7Nu2TAIxA4b0/kSUg8bAf", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "em_flash_particle", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 15 - }, - { - "__id__": 17 - } - ], - "_prefab": { - "__id__": 19 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 1, - "y": 1, - "z": 1 - }, - "_mobility": 0, - "_layer": 33554432, - "_euler": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_id": "", - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - } - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 14 - }, - "_enabled": true, - "__prefab": { - "__id__": 16 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 100, - "height": 100 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "81tLRN38lLaYloZwaXQYU9" - }, - { - "__type__": "cc.ParticleSystem2D", - "_name": "Node", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 14 - }, - "_enabled": true, - "__prefab": { - "__id__": 18 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 1, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "duration": -1, - "emissionRate": 224.9, - "life": 1, - "lifeVar": 0.5, - "angle": 0, - "angleVar": 360, - "startSize": 100, - "startSizeVar": 30, - "endSize": 1, - "endSizeVar": 0, - "startSpin": 50, - "startSpinVar": 20, - "endSpin": 20, - "endSpinVar": 0, - "sourcePos": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "posVar": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "emitterMode": 0, - "gravity": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "speed": 112.1, - "speedVar": 0, - "tangentialAccel": 0, - "tangentialAccelVar": 0, - "radialAccel": -88.8, - "radialAccelVar": 50, - "rotationIsDir": false, - "startRadius": 100, - "startRadiusVar": 0, - "endRadius": 0, - "endRadiusVar": 0, - "rotatePerS": 0, - "rotatePerSVar": 0, - "playOnLoad": true, - "autoRemoveOnFinish": false, - "_preview": true, - "preview": true, - "_custom": true, - "_file": null, - "_spriteFrame": { - "__uuid__": "727ab669-af95-43be-9818-2065a98b84a5@f9941", - "__expectedType__": "cc.SpriteFrame" - }, - "_totalParticles": 100, - "_startColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 0 - }, - "_startColorVar": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 0 - }, - "_endColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_endColorVar": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 0 - }, - "_positionType": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "29Yg0IzqxLXpg3WEEEA8rx" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "79oTbIHqZP55cNO2Plw9CS", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "em_flash_0001", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 21 - }, - { - "__id__": 23 - } - ], - "_prefab": { - "__id__": 25 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 1, - "y": 1, - "z": 1 - }, - "_mobility": 0, - "_layer": 33554432, - "_euler": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_id": "", - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - } - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 20 - }, - "_enabled": true, - "__prefab": { - "__id__": 22 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 100, - "height": 100 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "63jpn9vu9KgJrVSe3VGxEH" - }, - { - "__type__": "cc.ParticleSystem2D", - "_name": "Node", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 20 - }, - "_enabled": true, - "__prefab": { - "__id__": 24 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 1, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "duration": -1, - "emissionRate": 100, - "life": 0.2, - "lifeVar": 0.5, - "angle": 0, - "angleVar": 360, - "startSize": 50, - "startSizeVar": 50, - "endSize": 0, - "endSizeVar": 0, - "startSpin": 0, - "startSpinVar": 0, - "endSpin": 0, - "endSpinVar": 0, - "sourcePos": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "posVar": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "emitterMode": 0, - "gravity": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "speed": 100, - "speedVar": 0, - "tangentialAccel": 0, - "tangentialAccelVar": 0, - "radialAccel": -100, - "radialAccelVar": 50, - "rotationIsDir": false, - "startRadius": 100, - "startRadiusVar": 0, - "endRadius": 0, - "endRadiusVar": 0, - "rotatePerS": 0, - "rotatePerSVar": 0, - "playOnLoad": true, - "autoRemoveOnFinish": false, - "_preview": true, - "preview": true, - "_custom": true, - "_file": null, - "_spriteFrame": { - "__uuid__": "118d4d54-d313-4f52-b49f-593effa13423@f9941", - "__expectedType__": "cc.SpriteFrame" - }, - "_totalParticles": 100, - "_startColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_startColorVar": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_endColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_endColorVar": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_positionType": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "d6zZxSYVRKao65R/JgmRQm" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "12615JbA9PJ4FPoMzO8C6x", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 1 - }, - "_enabled": true, - "__prefab": { - "__id__": 27 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 100, - "height": 100 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "bdEhcD5ulM9ZomwM3XdABi" - }, - { - "__type__": "cc.ParticleSystem2D", - "_name": "Node", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 1 - }, - "_enabled": true, - "__prefab": { - "__id__": 29 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 1, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "duration": -1, - "emissionRate": 999.999985098839, - "life": 0.20000000298023224, - "lifeVar": 0.5, - "angle": 360, - "angleVar": 360, - "startSize": 3.369999885559082, - "startSizeVar": 50, - "endSize": 30.31999969482422, - "endSizeVar": 0, - "startSpin": -47.369998931884766, - "startSpinVar": 0, - "endSpin": -47.369998931884766, - "endSpinVar": -142.11000061035156, - "sourcePos": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "posVar": { - "__type__": "cc.Vec2", - "x": 7, - "y": 7 - }, - "emitterMode": 0, - "gravity": { - "__type__": "cc.Vec2", - "x": 0.25, - "y": 0.8600000143051147 - }, - "speed": 0, - "speedVar": 190.7899932861328, - "tangentialAccel": -92.11000061035156, - "tangentialAccelVar": 65.79000091552734, - "radialAccel": -671.0499877929688, - "radialAccelVar": 65.79000091552734, - "rotationIsDir": false, - "startRadius": 100, - "startRadiusVar": 0, - "endRadius": 0, - "endRadiusVar": 0, - "rotatePerS": 0, - "rotatePerSVar": 0, - "playOnLoad": true, - "autoRemoveOnFinish": false, - "_preview": true, - "preview": true, - "_custom": false, - "_file": { - "__uuid__": "e17b4526-57a2-48d3-acc9-cf09f30aa138", - "__expectedType__": "cc.ParticleAsset" - }, - "_spriteFrame": { - "__uuid__": "24c419ea-63a8-4ea1-a9d0-7fc469489bbc@f9941", - "__expectedType__": "cc.SpriteFrame" - }, - "_totalParticles": 200, - "_startColor": { - "__type__": "cc.Color", - "r": 203, - "g": 201, - "b": 86, - "a": 163 - }, - "_startColorVar": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 0 - }, - "_endColor": { - "__type__": "cc.Color", - "r": 174, - "g": 162, - "b": 20, - "a": 214 - }, - "_endColorVar": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 0 - }, - "_positionType": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "0bZtCWyVpB6rYhwnVfPfEd" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "2aAPYQxm1P2KXFrtMmSuR+", - "targetOverrides": null - } -] \ No newline at end of file diff --git a/assets/Shader/mofabang_tuowei/tuowei1.prefab.meta b/assets/Shader/mofabang_tuowei/tuowei1.prefab.meta deleted file mode 100644 index 230d5e2..0000000 --- a/assets/Shader/mofabang_tuowei/tuowei1.prefab.meta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "ver": "1.3.2", - "uuid": "32ec5e41-9aeb-475a-9ad2-1d0a81b8dfc2", - "importer": "prefab", - "optimizationPolicy": "AUTO", - "asyncLoadAssets": false, - "readonly": false, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/zhadan.meta b/assets/Shader/zhadan.meta deleted file mode 100644 index b7fd650..0000000 --- a/assets/Shader/zhadan.meta +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ver": "1.1.3", - "uuid": "a4736a35-1bd8-4751-89b4-d0bc089a2614", - "importer": "folder", - "isBundle": false, - "bundleName": "", - "priority": 1, - "compressionType": {}, - "optimizeHotUpdate": {}, - "inlineSpriteFrames": {}, - "isRemoteBundle": {}, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/zhadan/zhandan.atlas b/assets/Shader/zhadan/zhandan.atlas deleted file mode 100644 index cdcb019..0000000 --- a/assets/Shader/zhadan/zhandan.atlas +++ /dev/null @@ -1,181 +0,0 @@ - -zhandan.png -size: 1020,1020 -format: RGBA8888 -filter: Linear,Linear -repeat: none -banyuan0001 - rotate: true - xy: 758, 692 - size: 86, 79 - orig: 265, 209 - offset: 87, 34 - index: -1 -banyuan0004 - rotate: true - xy: 633, 273 - size: 172, 133 - orig: 265, 209 - offset: 46, 11 - index: -1 -banyuan0007 - rotate: false - xy: 2, 4 - size: 242, 188 - orig: 265, 209 - offset: 10, 6 - index: -1 -banyuan0010 - rotate: false - xy: 2, 194 - size: 253, 195 - orig: 265, 209 - offset: 5, 7 - index: -1 -banyuan0013 - rotate: false - xy: 2, 611 - size: 259, 199 - orig: 265, 209 - offset: 2, 5 - index: -1 -banyuan0016 - rotate: false - xy: 2, 812 - size: 262, 203 - orig: 265, 209 - offset: 1, 3 - index: -1 -huoquan0001 - rotate: true - xy: 758, 780 - size: 123, 80 - orig: 222, 151 - offset: 52, 41 - index: -1 -huoquan0004 - rotate: true - xy: 633, 17 - size: 193, 140 - orig: 222, 151 - offset: 16, 9 - index: -1 -huoquan0006 - rotate: true - xy: 463, 615 - size: 209, 148 - orig: 222, 151 - offset: 7, 3 - index: -1 -huoquan0009 - rotate: false - xy: 468, 870 - size: 213, 145 - orig: 222, 151 - offset: 5, 2 - index: -1 -huoquan0012 - rotate: true - xy: 613, 655 - size: 213, 143 - orig: 222, 151 - offset: 5, 1 - index: -1 -huoquan0015 - rotate: true - xy: 633, 447 - size: 206, 140 - orig: 222, 151 - offset: 9, 1 - index: -1 -zaza0001 - rotate: true - xy: 683, 905 - size: 110, 98 - orig: 251, 223 - offset: 74, 45 - index: -1 -zaza0003 - rotate: false - xy: 240, 408 - size: 218, 201 - orig: 251, 223 - offset: 28, 0 - index: -1 -zaza0004 - rotate: false - xy: 2, 391 - size: 236, 218 - orig: 251, 223 - offset: 15, 0 - index: -1 -zaza0008 - rotate: true - xy: 266, 612 - size: 212, 195 - orig: 251, 223 - offset: 27, 6 - index: -1 -zaza0012 - rotate: true - xy: 257, 191 - size: 215, 198 - orig: 251, 223 - offset: 24, 6 - index: -1 -zaza0016 - rotate: true - xy: 266, 826 - size: 189, 200 - orig: 251, 223 - offset: 28, 4 - index: -1 -zaza0020 - rotate: true - xy: 246, 2 - size: 187, 205 - orig: 251, 223 - offset: 24, 2 - index: -1 -zaza0024 - rotate: false - xy: 457, 212 - size: 174, 194 - orig: 251, 223 - offset: 30, 6 - index: -1 -zaza0028 - rotate: false - xy: 457, 16 - size: 174, 194 - orig: 251, 223 - offset: 30, 6 - index: -1 -zaza0032 - rotate: false - xy: 460, 415 - size: 171, 194 - orig: 251, 223 - offset: 30, 6 - index: -1 -zhadan1 - rotate: false - xy: 768, 352 - size: 60, 93 - orig: 62, 95 - offset: 1, 1 - index: -1 -zhadan2 - rotate: false - xy: 768, 267 - size: 59, 83 - orig: 62, 95 - offset: 1, 1 - index: -1 -zhadan3 - rotate: false - xy: 775, 447 - size: 59, 76 - orig: 62, 95 - offset: 1, 1 - index: -1 diff --git a/assets/Shader/zhadan/zhandan.atlas.meta b/assets/Shader/zhadan/zhandan.atlas.meta deleted file mode 100644 index 6459df7..0000000 --- a/assets/Shader/zhadan/zhandan.atlas.meta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "ver": "1.0.3", - "uuid": "a2a2084f-96a0-4646-a699-ba9714473c81", - "importer": "asset", - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/zhadan/zhandan.json b/assets/Shader/zhadan/zhandan.json deleted file mode 100644 index ca7bafb..0000000 --- a/assets/Shader/zhadan/zhandan.json +++ /dev/null @@ -1,151 +0,0 @@ -{ -"skeleton": { - "hash": "k+H2C+mXFNRS2OlTrDJIvQAbPQ4", - "spine": "3.8.99", - "x": -35.7, - "y": -33.01, - "width": 62, - "height": 95, - "images": "./0/", - "audio": "" -}, -"bones": [ - { "name": "root" }, - { "name": "banyuan0001", "parent": "root", "x": 107.34, "y": 35.2 }, - { "name": "huoquan0001", "parent": "root", "x": 104.99, "y": -67.86, "scaleX": 2, "scaleY": 2 }, - { "name": "zaza0001", "parent": "root", "x": 238.73, "y": -87.12, "scaleX": 2, "scaleY": 2 }, - { "name": "banyuan2", "parent": "root", "x": -4.44, "y": -26.16 }, - { "name": "banyuan1", "parent": "banyuan2", "x": -0.25, "y": 40.16 } -], -"slots": [ - { "name": "bg", "bone": "root" }, - { "name": "huoquan0001", "bone": "huoquan0001" }, - { "name": "zaza0001", "bone": "zaza0001" }, - { "name": "banyuan0001", "bone": "banyuan0001" }, - { "name": "zhadan", "bone": "banyuan1", "attachment": "zhadan1" } -], -"skins": [ - { - "name": "default", - "attachments": { - "banyuan0001": { - "banyuan0001": { "x": 4.37, "y": 34.83, "width": 265, "height": 209 }, - "banyuan0004": { "x": 4.37, "y": 34.83, "width": 265, "height": 209 }, - "banyuan0007": { "x": 4.37, "y": 34.83, "width": 265, "height": 209 }, - "banyuan0010": { "x": 4.37, "y": 34.83, "width": 265, "height": 209 }, - "banyuan0013": { "x": 4.37, "y": 34.83, "width": 265, "height": 209 }, - "banyuan0016": { "x": 4.37, "y": 34.83, "width": 265, "height": 209 } - }, - "huoquan0001": { - "huoquan0001": { "x": -0.96, "y": -3.35, "width": 222, "height": 151 }, - "huoquan0004": { "x": -0.96, "y": -3.35, "width": 222, "height": 151 }, - "huoquan0006": { "x": -0.96, "y": -3.35, "width": 222, "height": 151 }, - "huoquan0009": { "x": -0.96, "y": -3.35, "width": 222, "height": 151 }, - "huoquan0012": { "x": -0.96, "y": -3.35, "width": 222, "height": 151 }, - "huoquan0015": { "x": -0.96, "y": -3.35, "width": 222, "height": 151 } - }, - "zaza0001": { - "zaza0001": { "x": -4.18, "y": 21.34, "width": 251, "height": 223 }, - "zaza0003": { "x": -4.18, "y": 21.34, "width": 251, "height": 223 }, - "zaza0004": { "x": -4.18, "y": 21.34, "width": 251, "height": 223 }, - "zaza0008": { "x": -4.18, "y": 21.34, "width": 251, "height": 223 }, - "zaza0012": { "x": -4.18, "y": 21.34, "width": 251, "height": 223 }, - "zaza0016": { "x": -4.18, "y": 21.34, "width": 251, "height": 223 }, - "zaza0020": { "x": -4.18, "y": 21.34, "width": 251, "height": 223 }, - "zaza0024": { "x": -4.18, "y": 21.34, "width": 251, "height": 223 }, - "zaza0028": { "x": -4.18, "y": 21.34, "width": 251, "height": 223 }, - "zaza0032": { "x": -4.18, "y": 21.34, "width": 251, "height": 223 } - }, - "zhadan": { - "zhadan1": { "y": 0.5, "width": 62, "height": 95 }, - "zhadan2": { "y": 0.5, "width": 62, "height": 95 }, - "zhadan3": { "y": 0.5, "width": 62, "height": 95 } - } - } - } -], -"animations": { - "eff": { - "slots": { - "banyuan0001": { - "attachment": [ - { "time": 0.3333, "name": "banyuan0001" }, - { "time": 0.4333, "name": "banyuan0004" }, - { "time": 0.5333, "name": "banyuan0007" }, - { "time": 0.6333, "name": "banyuan0010" }, - { "time": 0.7333, "name": "banyuan0013" }, - { "time": 0.8333, "name": "banyuan0016" }, - { "time": 0.9333, "name": null } - ] - }, - "huoquan0001": { - "attachment": [ - { "time": 0.3333, "name": "huoquan0001" }, - { "time": 0.4333, "name": "huoquan0004" }, - { "time": 0.5, "name": "huoquan0006" }, - { "time": 0.6, "name": "huoquan0009" }, - { "time": 0.7, "name": "huoquan0012" }, - { "time": 0.8, "name": "huoquan0015" }, - { "time": 0.8333, "name": null } - ] - }, - "zaza0001": { - "color": [ - { "time": 1.1333, "color": "ffffffff" }, - { "time": 1.4, "color": "ffffff00" } - ], - "attachment": [ - { "time": 0.3333, "name": "zaza0001" }, - { "time": 0.4, "name": "zaza0003" }, - { "time": 0.4333, "name": "zaza0004" }, - { "time": 0.5667, "name": "zaza0008" }, - { "time": 0.7, "name": "zaza0012" }, - { "time": 0.8333, "name": "zaza0016" }, - { "time": 0.9667, "name": "zaza0020" }, - { "time": 1.1, "name": "zaza0024" }, - { "time": 1.2333, "name": "zaza0028" }, - { "time": 1.3333, "name": "zaza0032" }, - { "time": 1.4, "name": null } - ] - }, - "zhadan": { - "color": [ - { "time": 0.2667, "color": "ffffffff" }, - { "time": 0.3333, "color": "ffffff00" } - ], - "attachment": [ - { "time": 0.0667, "name": "zhadan2" }, - { "time": 0.1333, "name": "zhadan3" } - ] - } - }, - "bones": { - "banyuan0001": { - "translate": [ - { "time": 0.3333, "x": -111.11, "y": -28.42 } - ] - }, - "huoquan0001": { - "translate": [ - { "time": 0.3333, "x": -104.86, "y": 63.21 } - ] - }, - "zaza0001": { - "translate": [ - { "time": 0.3333, "x": -240.31, "y": 91.73 } - ] - }, - "banyuan2": { - "scale": [ - {}, - { "time": 0.0667, "x": 1.2, "y": 1.2 }, - { "time": 0.1333, "x": 0.9, "y": 0.9 }, - { "time": 0.2, "x": 1.1, "y": 1.1 }, - { "time": 0.2667 }, - { "time": 0.3333, "x": 1.2, "y": 1.2 } - ] - } - } - } -} -} \ No newline at end of file diff --git a/assets/Shader/zhadan/zhandan.json.meta b/assets/Shader/zhadan/zhandan.json.meta deleted file mode 100644 index 54bb212..0000000 --- a/assets/Shader/zhadan/zhandan.json.meta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "ver": "1.2.5", - "uuid": "2a1bffdc-6b63-425c-9710-a32b4d93ea4b", - "importer": "spine", - "textures": [ - "15f7f173-be51-47f3-8314-66d14e63471f" - ], - "scale": 1, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/Shader/zhadan/zhandan.png b/assets/Shader/zhadan/zhandan.png deleted file mode 100644 index 4824d46..0000000 Binary files a/assets/Shader/zhadan/zhandan.png and /dev/null differ diff --git a/assets/Shader/zhadan/zhandan.png.meta b/assets/Shader/zhadan/zhandan.png.meta deleted file mode 100644 index 26d66d1..0000000 --- a/assets/Shader/zhadan/zhandan.png.meta +++ /dev/null @@ -1,38 +0,0 @@ -{ - "ver": "2.3.7", - "uuid": "15f7f173-be51-47f3-8314-66d14e63471f", - "importer": "texture", - "type": "sprite", - "wrapMode": "clamp", - "filterMode": "bilinear", - "premultiplyAlpha": false, - "genMipmaps": false, - "packable": true, - "width": 1020, - "height": 1020, - "platformSettings": {}, - "subMetas": { - "zhandan": { - "ver": "1.0.6", - "uuid": "f77c0d10-e213-4f25-9a5b-ac5d327158b8", - "importer": "sprite-frame", - "rawTextureUuid": "15f7f173-be51-47f3-8314-66d14e63471f", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": -90, - "offsetY": 1.5, - "trimX": 2, - "trimY": 2, - "width": 836, - "height": 1013, - "rawWidth": 1020, - "rawHeight": 1020, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "subMetas": {} - } - } -} \ No newline at end of file diff --git a/assets/res/texture_Block/freeze.plist b/assets/TextureBlock/block/freeze.plist similarity index 100% rename from assets/res/texture_Block/freeze.plist rename to assets/TextureBlock/block/freeze.plist diff --git a/assets/res/texture_Block/freeze.plist.meta b/assets/TextureBlock/block/freeze.plist.meta similarity index 79% rename from assets/res/texture_Block/freeze.plist.meta rename to assets/TextureBlock/block/freeze.plist.meta index b327aaa..cfc0026 100644 --- a/assets/res/texture_Block/freeze.plist.meta +++ b/assets/TextureBlock/block/freeze.plist.meta @@ -1,8 +1,8 @@ { "ver": "1.2.6", - "uuid": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "uuid": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "importer": "asset", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "size": { "width": 2009, "height": 1995 @@ -11,9 +11,9 @@ "subMetas": { "ice_0.png": { "ver": "1.0.6", - "uuid": "e3336135-ade0-4e73-813e-893b3f1a02b5", + "uuid": "64fa6afd-16c6-4473-a5cf-844bcbd25f73", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -34,9 +34,9 @@ }, "ice_1.png": { "ver": "1.0.6", - "uuid": "fa3cd527-294e-429f-b7ba-22662775fe0f", + "uuid": "73cd9b62-4f5f-4846-9be8-53f206b00a7f", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -57,9 +57,9 @@ }, "ice_10.png": { "ver": "1.0.6", - "uuid": "65b2a758-2670-48ed-a008-328544dcd575", + "uuid": "d9d381ae-0c72-4ab4-a470-89bb04e2c78d", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -80,9 +80,9 @@ }, "ice_11.png": { "ver": "1.0.6", - "uuid": "6e0fdf37-69be-4dbe-9d09-5c4f2e678b4a", + "uuid": "3b800928-497d-4c3f-a1d0-e6a919e4df02", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -103,9 +103,9 @@ }, "ice_12.png": { "ver": "1.0.6", - "uuid": "c77015b4-f5c1-4179-a0e9-5d2cd6d6b9e5", + "uuid": "b5d05ad0-9ba6-40ca-9d11-b9fd23a0b1f7", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -126,9 +126,9 @@ }, "ice_13.png": { "ver": "1.0.6", - "uuid": "b4b91baf-30a5-4a20-9084-ef6e355c06f7", + "uuid": "1dcd9c5e-14ca-455f-89b1-c0fb13ab5d33", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -149,9 +149,9 @@ }, "ice_14.png": { "ver": "1.0.6", - "uuid": "b25c96cd-057b-4fc0-aa62-21f11068ecdd", + "uuid": "aa6f0547-ebd5-4e9c-919f-cdb7e4d09ce8", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -172,9 +172,9 @@ }, "ice_15.png": { "ver": "1.0.6", - "uuid": "2764a9d6-9cd2-4e21-b697-d77664324940", + "uuid": "ceb856fb-1003-46dd-9a43-3c3c8399376e", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -195,9 +195,9 @@ }, "ice_16.png": { "ver": "1.0.6", - "uuid": "bd4060ea-d0db-4bdb-9561-d63d034e7d01", + "uuid": "40386653-0f9c-46df-9dd3-5dac1bf804a7", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -218,9 +218,9 @@ }, "ice_17.png": { "ver": "1.0.6", - "uuid": "6efd9b9f-19a1-4c83-8116-5b15cc775967", + "uuid": "f1428a88-74aa-4353-9a97-1d2325437304", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -241,9 +241,9 @@ }, "ice_18.png": { "ver": "1.0.6", - "uuid": "2661e9df-d4da-4dcc-ac8d-cb16fcad7ea8", + "uuid": "78f63367-3765-4e5a-ba97-ba1ff164785b", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -264,9 +264,9 @@ }, "ice_19.png": { "ver": "1.0.6", - "uuid": "21918f8d-57fb-4d73-992d-e58af9bf91ae", + "uuid": "c9773340-b1bc-4d65-b238-d316da70778d", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -287,9 +287,9 @@ }, "ice_2.png": { "ver": "1.0.6", - "uuid": "b637d46b-64fc-4f24-b0bf-ec3d740a1180", + "uuid": "33d4d456-e972-4edd-9239-cb65b7e1a741", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -310,9 +310,9 @@ }, "ice_20.png": { "ver": "1.0.6", - "uuid": "9cc4e23c-bc99-4daf-a03b-4335ebf6c167", + "uuid": "727e4b9d-8408-4bea-8a17-1ea8f55cb9eb", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -333,9 +333,9 @@ }, "ice_21.png": { "ver": "1.0.6", - "uuid": "49aa5f88-cb13-4a14-ace5-e36d0d5ad9ae", + "uuid": "c1e2f27b-c5fe-41ce-964f-671a6acefbfe", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -356,9 +356,9 @@ }, "ice_22.png": { "ver": "1.0.6", - "uuid": "0286d77f-e962-4050-8a77-250f4a3a139c", + "uuid": "abb431df-2fda-497e-9941-a1c7205b1945", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -379,9 +379,9 @@ }, "ice_3.png": { "ver": "1.0.6", - "uuid": "510b87b7-3ed2-4bb5-8c02-be013ea1f9bc", + "uuid": "49c30af9-566f-4ccc-8967-371e632afaa9", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -402,9 +402,9 @@ }, "ice_4.png": { "ver": "1.0.6", - "uuid": "486555ef-ae94-4faa-ad96-d807968d9d3a", + "uuid": "8c55e356-f4bb-4483-af03-f498c36f6639", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -425,9 +425,9 @@ }, "ice_5.png": { "ver": "1.0.6", - "uuid": "d7c81651-f2a3-4da1-aad2-f48c9773d1aa", + "uuid": "01d1aed9-bd88-49f7-940f-39d72a62a6e7", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -448,9 +448,9 @@ }, "ice_6.png": { "ver": "1.0.6", - "uuid": "07c5118d-73f4-4415-b80a-a94eb9b538c0", + "uuid": "eaa436a0-38d0-4580-9745-0d6ef1e3aa7d", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -471,9 +471,9 @@ }, "ice_7.png": { "ver": "1.0.6", - "uuid": "f263ce47-c0cb-4cc3-a8cc-2ca91555a86d", + "uuid": "5e0a536d-4c5f-42f6-8f2f-5dabc3dc2d0e", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -494,9 +494,9 @@ }, "ice_8.png": { "ver": "1.0.6", - "uuid": "59a70589-9d42-4065-9a9f-5dfc15edd0ed", + "uuid": "5e13bde7-1c9f-4a8e-afc7-d1d8e6df870b", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -517,9 +517,9 @@ }, "ice_9.png": { "ver": "1.0.6", - "uuid": "3197674e-141b-4857-b39c-97d5b2e64782", + "uuid": "62429a89-373d-44cb-a978-af1f32ab409d", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -540,9 +540,9 @@ }, "xz_0.png": { "ver": "1.0.6", - "uuid": "d5603a7d-2064-4cfd-aad9-9216b171f1fd", + "uuid": "138f8f36-a044-4bd6-bc77-537095928721", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -563,9 +563,9 @@ }, "xz_1.png": { "ver": "1.0.6", - "uuid": "d7251c98-6e8e-4a25-a9b8-f679b5358540", + "uuid": "ce2c1c04-dfdd-485f-ba0b-9e9e2d5bd775", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -586,9 +586,9 @@ }, "xz_10.png": { "ver": "1.0.6", - "uuid": "34a7a697-bfd3-414f-8443-b782bcaef077", + "uuid": "aa2fd905-3a30-4de0-82a9-e2340e62f004", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -609,9 +609,9 @@ }, "xz_11.png": { "ver": "1.0.6", - "uuid": "cd5dc1b6-8181-4a84-9e92-5f391b5d08aa", + "uuid": "560503c2-3664-47c4-834f-b052031a95fe", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -632,9 +632,9 @@ }, "xz_12.png": { "ver": "1.0.6", - "uuid": "c6b24109-dc9a-475e-8587-24b1c1ce211c", + "uuid": "528a16df-0cfd-4569-b06e-7b0045260762", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -655,9 +655,9 @@ }, "xz_13.png": { "ver": "1.0.6", - "uuid": "515f65de-054a-4a3e-a49b-f04c522334c6", + "uuid": "56c79cf2-5c1c-4044-bf72-9c99c5302074", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -678,9 +678,9 @@ }, "xz_14.png": { "ver": "1.0.6", - "uuid": "bbe9ff36-9442-4582-94b6-18c80b98a88b", + "uuid": "c6c8593c-e9ec-48fa-82ce-68de832b0588", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -701,9 +701,9 @@ }, "xz_15.png": { "ver": "1.0.6", - "uuid": "bf0f6fdf-2cb6-4a4d-80b6-9bd2f2a70f64", + "uuid": "ab387f59-de04-44b9-b209-e8326eeaa6cf", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -724,9 +724,9 @@ }, "xz_16.png": { "ver": "1.0.6", - "uuid": "9bc2635a-fd18-4c29-96f1-5bdf2e3ca994", + "uuid": "03a5a06c-65ca-4848-b677-814ceca367e9", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -747,9 +747,9 @@ }, "xz_17.png": { "ver": "1.0.6", - "uuid": "85831139-37a3-419d-8ae2-63e3de280069", + "uuid": "740b4de2-f5ed-4218-b5ea-489795888132", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -770,9 +770,9 @@ }, "xz_18.png": { "ver": "1.0.6", - "uuid": "2b68a266-8696-4acc-93a1-41067ad499f6", + "uuid": "326f4d71-ec3e-4e60-80b7-366644f8e4bc", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -793,9 +793,9 @@ }, "xz_19.png": { "ver": "1.0.6", - "uuid": "322ab075-1404-4bd4-89a9-f9e530153a9b", + "uuid": "82bc9160-309d-4c6b-9895-5c0de13783c2", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -816,9 +816,9 @@ }, "xz_2.png": { "ver": "1.0.6", - "uuid": "b189fafa-f688-4ba2-a11b-839d37caaa2d", + "uuid": "1dae414a-cce8-4e94-869b-ed869b85a7a2", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -839,9 +839,9 @@ }, "xz_20.png": { "ver": "1.0.6", - "uuid": "53ebd7d6-1d1b-4d3a-a058-a18bfe3bd426", + "uuid": "f4c34816-7926-4e19-b11b-5ffd9340accb", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -862,9 +862,9 @@ }, "xz_21.png": { "ver": "1.0.6", - "uuid": "9e765f43-6a24-4439-af86-ff266b9c28ab", + "uuid": "415f47f0-fad1-43e1-9bb0-a3829d65a394", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -885,9 +885,9 @@ }, "xz_22.png": { "ver": "1.0.6", - "uuid": "d3ded0a3-0ec1-4f0e-8e62-e090263e06a3", + "uuid": "ba9b6fef-aacb-479a-8861-764c39e05d75", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -908,9 +908,9 @@ }, "xz_3.png": { "ver": "1.0.6", - "uuid": "0a3badcc-62cb-40cb-8f95-0a7818c08c99", + "uuid": "67a3e1e8-b956-4a3c-861d-d81ec149a0bf", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -931,9 +931,9 @@ }, "xz_4.png": { "ver": "1.0.6", - "uuid": "f77686ab-3aef-4ae9-8a04-55c03cf2b689", + "uuid": "b0c52cbf-9933-4e65-be5f-aeb2c16cb99c", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -954,9 +954,9 @@ }, "xz_5.png": { "ver": "1.0.6", - "uuid": "5342450a-68a2-4c7d-b26a-327243e82e67", + "uuid": "0ac33287-c45a-471c-ac50-5039da17ea1d", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -977,9 +977,9 @@ }, "xz_6.png": { "ver": "1.0.6", - "uuid": "9b0ac44e-5295-470f-87c1-28064efef2c1", + "uuid": "7b23c8ea-807d-4f55-90ba-bd725aff309c", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -1000,9 +1000,9 @@ }, "xz_7.png": { "ver": "1.0.6", - "uuid": "8808dcaf-1158-4df2-8eff-725d85cf63f1", + "uuid": "dc762f76-685e-44d7-88f5-5bd670c20532", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, @@ -1023,9 +1023,9 @@ }, "xz_8.png": { "ver": "1.0.6", - "uuid": "7f4466e7-8e5e-41f0-9a31-37b2b86e8066", + "uuid": "f502ad08-6edf-4fc1-b3a2-45315d91c7d0", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": true, @@ -1046,9 +1046,9 @@ }, "xz_9.png": { "ver": "1.0.6", - "uuid": "25e0fb3a-394e-42ae-b792-2748f15d82c9", + "uuid": "3193b747-13f1-4800-91ff-8de019c658da", "importer": "sprite-frame", - "rawTextureUuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "rawTextureUuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "trimType": "auto", "trimThreshold": 1, "rotated": false, diff --git a/assets/res/texture_Block/freeze.png b/assets/TextureBlock/block/freeze.png similarity index 100% rename from assets/res/texture_Block/freeze.png rename to assets/TextureBlock/block/freeze.png diff --git a/assets/res/texture_Block/freeze.png.meta b/assets/TextureBlock/block/freeze.png.meta similarity index 72% rename from assets/res/texture_Block/freeze.png.meta rename to assets/TextureBlock/block/freeze.png.meta index 82bd257..d8eddd0 100644 --- a/assets/res/texture_Block/freeze.png.meta +++ b/assets/TextureBlock/block/freeze.png.meta @@ -1,6 +1,6 @@ { "ver": "2.3.7", - "uuid": "484f1896-8707-4cc7-8e61-9995a2133f09", + "uuid": "a7769b53-73c4-4fd2-bcad-e83d044a502e", "importer": "texture", "type": "raw", "wrapMode": "clamp", @@ -8,8 +8,8 @@ "premultiplyAlpha": false, "genMipmaps": false, "packable": true, - "width": 992, - "height": 1851, + "width": 2009, + "height": 1995, "platformSettings": {}, "subMetas": {} } \ No newline at end of file diff --git a/assets/prefab/map/MapBlock.prefab b/assets/prefab/map/MapBlock.prefab index 7bca426..23ce973 100644 --- a/assets/prefab/map/MapBlock.prefab +++ b/assets/prefab/map/MapBlock.prefab @@ -314,9 +314,7 @@ ], "_srcBlendFactor": 770, "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "b1760ce5-36c7-4d8b-bb5f-069a448ebbf2" - }, + "_spriteFrame": null, "_type": 0, "_sizeMode": 1, "_fillType": 0, @@ -328,9 +326,7 @@ "_fillStart": 0, "_fillRange": 0, "_isTrimmedMode": true, - "_atlas": { - "__uuid__": "cc01997d-495e-480d-871e-be405a6c38b5" - }, + "_atlas": null, "_id": "" }, { diff --git a/assets/prefab/map/turn_Wall.prefab b/assets/prefab/map/turn_Wall.prefab index 381836a..02d69a5 100644 --- a/assets/prefab/map/turn_Wall.prefab +++ b/assets/prefab/map/turn_Wall.prefab @@ -262,9 +262,7 @@ ], "_srcBlendFactor": 770, "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "3042034a-eafb-4920-aacc-79bd4f56d417" - }, + "_spriteFrame": null, "_type": 0, "_sizeMode": 1, "_fillType": 0, @@ -276,9 +274,7 @@ "_fillStart": 0, "_fillRange": 0, "_isTrimmedMode": true, - "_atlas": { - "__uuid__": "cc01997d-495e-480d-871e-be405a6c38b5" - }, + "_atlas": null, "_id": "" }, { diff --git a/assets/res/texture_Block/door.plist b/assets/res/texture_Block/door.plist deleted file mode 100644 index 26ca369..0000000 --- a/assets/res/texture_Block/door.plist +++ /dev/null @@ -1,1226 +0,0 @@ - - - - - frames - - 10color1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {138,69} - spriteSourceSize - {138,69} - textureRect - {{801,900},{138,69}} - textureRotated - - - 10color2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {258,69} - spriteSourceSize - {258,69} - textureRect - {{840,467},{258,69}} - textureRotated - - - 10color3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {378,69} - spriteSourceSize - {378,69} - textureRect - {{889,206},{378,69}} - textureRotated - - - 10color4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,146} - spriteSourceSize - {61,146} - textureRect - {{1092,816},{61,146}} - textureRotated - - - 10color5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,266} - spriteSourceSize - {61,266} - textureRect - {{388,537},{61,266}} - textureRotated - - - 10color6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,386} - spriteSourceSize - {61,386} - textureRect - {{889,277},{61,386}} - textureRotated - - - 1color1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {138,69} - spriteSourceSize - {138,69} - textureRect - {{989,538},{138,69}} - textureRotated - - - 1color2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {258,69} - spriteSourceSize - {258,69} - textureRect - {{127,538},{258,69}} - textureRotated - - - 1color3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {378,69} - spriteSourceSize - {378,69} - textureRect - {{518,64},{378,69}} - textureRotated - - - 1color4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,146} - spriteSourceSize - {61,146} - textureRect - {{593,758},{61,146}} - textureRotated - - - 1color5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,267} - spriteSourceSize - {61,267} - textureRect - {{889,404},{61,267}} - textureRotated - - - 1color6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,387} - spriteSourceSize - {61,387} - textureRect - {{1,390},{61,387}} - textureRotated - - - 2color1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {138,69} - spriteSourceSize - {138,69} - textureRect - {{795,618},{138,69}} - textureRotated - - - 2color2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {258,69} - spriteSourceSize - {258,69} - textureRect - {{127,609},{258,69}} - textureRotated - - - 2color3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {378,69} - spriteSourceSize - {378,69} - textureRect - {{129,190},{378,69}} - textureRotated - - - 2color4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,146} - spriteSourceSize - {61,146} - textureRect - {{1127,627},{61,146}} - textureRotated - - - 2color5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {62,266} - spriteSourceSize - {62,266} - textureRect - {{127,403},{62,266}} - textureRotated - - - 2color6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {62,386} - spriteSourceSize - {62,386} - textureRect - {{65,1},{62,386}} - textureRotated - - - 3color1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {138,69} - spriteSourceSize - {138,69} - textureRect - {{741,758},{138,69}} - textureRotated - - - 3color2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {258,69} - spriteSourceSize - {258,69} - textureRect - {{1,869},{258,69}} - textureRotated - - - 3color3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {378,69} - spriteSourceSize - {378,69} - textureRect - {{129,261},{378,69}} - textureRotated - - - 3color4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,146} - spriteSourceSize - {61,146} - textureRect - {{1275,636},{61,146}} - textureRotated - - - 3color5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,267} - spriteSourceSize - {61,267} - textureRect - {{64,390},{61,267}} - textureRotated - - - 3color6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,387} - spriteSourceSize - {61,387} - textureRect - {{129,1},{61,387}} - textureRotated - - - 4color1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {138,69} - spriteSourceSize - {138,69} - textureRect - {{881,758},{138,69}} - textureRotated - - - 4color2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {258,69} - spriteSourceSize - {258,69} - textureRect - {{387,600},{258,69}} - textureRotated - - - 4color3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {378,69} - spriteSourceSize - {378,69} - textureRect - {{898,64},{378,69}} - textureRotated - - - 4color4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,146} - spriteSourceSize - {61,146} - textureRect - {{1127,690},{61,146}} - textureRotated - - - 4color5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,267} - spriteSourceSize - {61,267} - textureRect - {{64,680},{61,267}} - textureRotated - - - 4color6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,387} - spriteSourceSize - {61,387} - textureRect - {{129,64},{61,387}} - textureRotated - - - 5color1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {138,69} - spriteSourceSize - {138,69} - textureRect - {{521,884},{138,69}} - textureRotated - - - 5color2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {258,69} - spriteSourceSize - {258,69} - textureRect - {{387,671},{258,69}} - textureRotated - - - 5color3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {378,69} - spriteSourceSize - {378,69} - textureRect - {{509,198},{378,69}} - textureRotated - - - 5color4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,146} - spriteSourceSize - {61,146} - textureRect - {{530,821},{61,146}} - textureRotated - - - 5color5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,266} - spriteSourceSize - {61,266} - textureRect - {{395,411},{61,266}} - textureRotated - - - 5color6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,386} - spriteSourceSize - {61,386} - textureRect - {{907,1},{61,386}} - textureRotated - - - 6color1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {138,69} - spriteSourceSize - {138,69} - textureRect - {{1021,743},{138,69}} - textureRotated - - - 6color2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {258,69} - spriteSourceSize - {258,69} - textureRect - {{333,742},{258,69}} - textureRotated - - - 6color3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {378,69} - spriteSourceSize - {378,69} - textureRect - {{509,269},{378,69}} - textureRotated - - - 6color4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,146} - spriteSourceSize - {61,146} - textureRect - {{1092,753},{61,146}} - textureRotated - - - 6color5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,267} - spriteSourceSize - {61,267} - textureRect - {{64,743},{61,267}} - textureRotated - - - 6color6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,387} - spriteSourceSize - {61,387} - textureRect - {{518,1},{61,387}} - textureRotated - - - 7color1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {138,69} - spriteSourceSize - {138,69} - textureRect - {{1240,784},{138,69}} - textureRotated - - - 7color2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {258,69} - spriteSourceSize - {258,69} - textureRect - {{270,813},{258,69}} - textureRotated - - - 7color3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {378,69} - spriteSourceSize - {378,69} - textureRect - {{129,332},{378,69}} - textureRotated - - - 7color4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {62,147} - spriteSourceSize - {62,147} - textureRect - {{840,538},{62,147}} - textureRotated - - - 7color5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {62,267} - spriteSourceSize - {62,267} - textureRect - {{889,340},{62,267}} - textureRotated - - - 7color6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {62,387} - spriteSourceSize - {62,387} - textureRect - {{1,1},{62,387}} - textureRotated - - - 8color1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {138,69} - spriteSourceSize - {138,69} - textureRect - {{825,829},{138,69}} - textureRotated - - - 8color2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {259,69} - spriteSourceSize - {259,69} - textureRect - {{127,467},{259,69}} - textureRotated - - - 8color3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {378,69} - spriteSourceSize - {378,69} - textureRect - {{509,340},{378,69}} - textureRotated - - - 8color4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,145} - spriteSourceSize - {61,145} - textureRect - {{678,829},{61,145}} - textureRotated - - - 8color5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,266} - spriteSourceSize - {61,266} - textureRect - {{388,474},{61,266}} - textureRotated - - - 8color6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,386} - spriteSourceSize - {61,386} - textureRect - {{518,135},{61,386}} - textureRotated - - - 9color1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {138,69} - spriteSourceSize - {138,69} - textureRect - {{661,892},{138,69}} - textureRotated - - - 9color2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {258,69} - spriteSourceSize - {258,69} - textureRect - {{261,884},{258,69}} - textureRotated - - - 9color3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {378,69} - spriteSourceSize - {378,69} - textureRect - {{906,135},{378,69}} - textureRotated - - - 9color4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {60,146} - spriteSourceSize - {60,146} - textureRect - {{1276,488},{60,146}} - textureRotated - - - 9color5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,267} - spriteSourceSize - {61,267} - textureRect - {{1,806},{61,267}} - textureRotated - - - 9color6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,387} - spriteSourceSize - {61,387} - textureRect - {{129,127},{61,387}} - textureRotated - - - dikuai.png - - aliases - - spriteOffset - {0,0} - spriteSize - {120,120} - spriteSourceSize - {120,120} - textureRect - {{866,602},{120,120}} - textureRotated - - - shu_zl1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {9,42} - spriteSourceSize - {9,42} - textureRect - {{1081,883},{9,42}} - textureRotated - - - shu_zl1_1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {58,34} - spriteSourceSize - {58,34} - textureRect - {{333,680},{58,34}} - textureRotated - - - shu_zl1_2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {118,34} - spriteSourceSize - {118,34} - textureRect - {{804,479},{118,34}} - textureRotated - - - shu_zl1_3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {178,34} - spriteSourceSize - {178,34} - textureRect - {{1,940},{178,34}} - textureRotated - - - shu_zl2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {40,10} - spriteSourceSize - {40,10} - textureRect - {{64,659},{40,10}} - textureRotated - - - shu_zl2_1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {32,54} - spriteSourceSize - {32,54} - textureRect - {{965,829},{32,54}} - textureRotated - - - shu_zl2_11.png - - aliases - - spriteOffset - {0,0} - spriteSize - {32,59} - spriteSourceSize - {32,59} - textureRect - {{1277,277},{32,59}} - textureRotated - - - shu_zl2_2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {32,114} - spriteSourceSize - {32,114} - textureRect - {{1295,1},{32,114}} - textureRotated - - - shu_zl2_22.png - - aliases - - spriteOffset - {0,0} - spriteSize - {32,120} - spriteSourceSize - {32,120} - textureRect - {{866,724},{32,120}} - textureRotated - - - shu_zl2_3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {32,175} - spriteSourceSize - {32,175} - textureRect - {{663,445},{32,175}} - textureRotated - - - shu_zl2_33.png - - aliases - - spriteOffset - {0,0} - spriteSize - {32,180} - spriteSourceSize - {32,180} - textureRect - {{663,411},{32,180}} - textureRotated - - - wall1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {138,69} - spriteSourceSize - {138,69} - textureRect - {{941,900},{138,69}} - textureRotated - - - wall2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,146} - spriteSourceSize - {61,146} - textureRect - {{1092,879},{61,146}} - textureRotated - - - wall3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {138,146} - spriteSourceSize - {138,146} - textureRect - {{1158,340},{138,146}} - textureRotated - - - wall4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {137,145} - spriteSourceSize - {137,145} - textureRect - {{1129,488},{137,145}} - textureRotated - - - wall5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {137,146} - spriteSourceSize - {137,146} - textureRect - {{656,479},{137,146}} - textureRotated - - - wall6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {138,146} - spriteSourceSize - {138,146} - textureRect - {{647,618},{138,146}} - textureRotated - - - wall7.png - - aliases - - spriteOffset - {0,0} - spriteSize - {61,69} - spriteSourceSize - {61,69} - textureRect - {{1269,206},{61,69}} - textureRotated - - - zhangai.png - - aliases - - spriteOffset - {0,0} - spriteSize - {132,137} - spriteSourceSize - {132,137} - textureRect - {{988,609},{132,137}} - textureRotated - - - - metadata - - format - 3 - pixelFormat - RGBA8888 - premultiplyAlpha - - realTextureFileName - door.png - size - {1337,975} - smartupdate - $TexturePacker:SmartUpdate:846c0a6799b01f438b3dc94f1e82f6b0:2c95b75b17a22ae2e0b2e5e34a58e1fe:db7a2f380db9915dc051ce2c1170bc84$ - textureFileName - door.png - - - diff --git a/assets/res/texture_Block/door.plist.meta b/assets/res/texture_Block/door.plist.meta deleted file mode 100644 index c370e8d..0000000 --- a/assets/res/texture_Block/door.plist.meta +++ /dev/null @@ -1,1853 +0,0 @@ -{ - "ver": "1.2.6", - "uuid": "cc01997d-495e-480d-871e-be405a6c38b5", - "importer": "asset", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "size": { - "width": 1337, - "height": 975 - }, - "type": "Texture Packer", - "subMetas": { - "10color1.png": { - "ver": "1.0.6", - "uuid": "f9de4f9f-c4fa-49af-a8c5-7299bbbc26c6", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 801, - "trimY": 900, - "width": 138, - "height": 69, - "rawWidth": 138, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "10color2.png": { - "ver": "1.0.6", - "uuid": "cddc81e8-863d-4e14-91ac-4eb044ef5f96", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 840, - "trimY": 467, - "width": 258, - "height": 69, - "rawWidth": 258, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "10color3.png": { - "ver": "1.0.6", - "uuid": "c84b719d-af4e-4688-b270-b5b3ebe7f7f0", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 889, - "trimY": 206, - "width": 378, - "height": 69, - "rawWidth": 378, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "10color4.png": { - "ver": "1.0.6", - "uuid": "2f23c78c-a279-4428-81a7-098cc67b3640", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1092, - "trimY": 816, - "width": 61, - "height": 146, - "rawWidth": 61, - "rawHeight": 146, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "10color5.png": { - "ver": "1.0.6", - "uuid": "cbf87552-edd2-496f-827c-a59a22552fbb", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 388, - "trimY": 537, - "width": 61, - "height": 266, - "rawWidth": 61, - "rawHeight": 266, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "10color6.png": { - "ver": "1.0.6", - "uuid": "747709de-f3f7-4042-8ac9-9ff807c4b7cf", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 889, - "trimY": 277, - "width": 61, - "height": 386, - "rawWidth": 61, - "rawHeight": 386, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "1color1.png": { - "ver": "1.0.6", - "uuid": "d94491c5-a3e8-48d2-b260-3b8d516f564e", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 989, - "trimY": 538, - "width": 138, - "height": 69, - "rawWidth": 138, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "1color2.png": { - "ver": "1.0.6", - "uuid": "cd704b98-c709-4fb6-a3b1-873723c82e14", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 127, - "trimY": 538, - "width": 258, - "height": 69, - "rawWidth": 258, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "1color3.png": { - "ver": "1.0.6", - "uuid": "edd195cc-2af5-4a7a-bf49-2af75e60d50a", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 518, - "trimY": 64, - "width": 378, - "height": 69, - "rawWidth": 378, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "1color4.png": { - "ver": "1.0.6", - "uuid": "6b1b5072-9a41-44e7-9923-3855864d5120", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 593, - "trimY": 758, - "width": 61, - "height": 146, - "rawWidth": 61, - "rawHeight": 146, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "1color5.png": { - "ver": "1.0.6", - "uuid": "6899ee49-88e4-44ff-b7f9-421031d84e6e", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 889, - "trimY": 404, - "width": 61, - "height": 267, - "rawWidth": 61, - "rawHeight": 267, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "1color6.png": { - "ver": "1.0.6", - "uuid": "917a86f2-c688-4cf5-9568-37632e1964b1", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 390, - "width": 61, - "height": 387, - "rawWidth": 61, - "rawHeight": 387, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "2color1.png": { - "ver": "1.0.6", - "uuid": "287c291c-a6f2-4f5f-9c2e-af814874901b", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 795, - "trimY": 618, - "width": 138, - "height": 69, - "rawWidth": 138, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "2color2.png": { - "ver": "1.0.6", - "uuid": "d8ed1577-eef1-42b8-986a-a9619e068d41", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 127, - "trimY": 609, - "width": 258, - "height": 69, - "rawWidth": 258, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "2color3.png": { - "ver": "1.0.6", - "uuid": "39687b17-060f-401d-b776-9597fd00d95c", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 129, - "trimY": 190, - "width": 378, - "height": 69, - "rawWidth": 378, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "2color4.png": { - "ver": "1.0.6", - "uuid": "f895411c-ea37-4419-9f12-057e76049b29", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1127, - "trimY": 627, - "width": 61, - "height": 146, - "rawWidth": 61, - "rawHeight": 146, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "2color5.png": { - "ver": "1.0.6", - "uuid": "c74f5c84-d250-4e6a-a6dc-5ce8b9e46633", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 127, - "trimY": 403, - "width": 62, - "height": 266, - "rawWidth": 62, - "rawHeight": 266, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "2color6.png": { - "ver": "1.0.6", - "uuid": "21696b26-2ba1-410c-a02f-c7cf63fdb349", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 65, - "trimY": 1, - "width": 62, - "height": 386, - "rawWidth": 62, - "rawHeight": 386, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "3color1.png": { - "ver": "1.0.6", - "uuid": "433a5eb9-bd88-4fcf-9811-8b58f93dea65", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 741, - "trimY": 758, - "width": 138, - "height": 69, - "rawWidth": 138, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "3color2.png": { - "ver": "1.0.6", - "uuid": "ef5bfdc0-6a9e-4866-bc77-9c69a629796b", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 869, - "width": 258, - "height": 69, - "rawWidth": 258, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "3color3.png": { - "ver": "1.0.6", - "uuid": "e6235cef-05a1-44b7-aa4c-46b51bc91632", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 129, - "trimY": 261, - "width": 378, - "height": 69, - "rawWidth": 378, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "3color4.png": { - "ver": "1.0.6", - "uuid": "bc920137-4c10-41ac-b55d-afaa7a733177", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1275, - "trimY": 636, - "width": 61, - "height": 146, - "rawWidth": 61, - "rawHeight": 146, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "3color5.png": { - "ver": "1.0.6", - "uuid": "0f1dcd5c-03b8-4f85-9edc-9002472876e3", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 64, - "trimY": 390, - "width": 61, - "height": 267, - "rawWidth": 61, - "rawHeight": 267, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "3color6.png": { - "ver": "1.0.6", - "uuid": "daad8024-c803-4b18-bb58-77a8620fd0ec", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 129, - "trimY": 1, - "width": 61, - "height": 387, - "rawWidth": 61, - "rawHeight": 387, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "4color1.png": { - "ver": "1.0.6", - "uuid": "1405acc7-1f74-46f3-9975-839e5337673d", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 881, - "trimY": 758, - "width": 138, - "height": 69, - "rawWidth": 138, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "4color2.png": { - "ver": "1.0.6", - "uuid": "3718b4a0-0fb3-490b-85d4-64a2ac95c437", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 387, - "trimY": 600, - "width": 258, - "height": 69, - "rawWidth": 258, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "4color3.png": { - "ver": "1.0.6", - "uuid": "bbafd681-01fb-47b0-a2ff-b15b926a240b", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 898, - "trimY": 64, - "width": 378, - "height": 69, - "rawWidth": 378, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "4color4.png": { - "ver": "1.0.6", - "uuid": "ac5d82a3-1111-4557-b9f7-0b4ba525fbd5", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1127, - "trimY": 690, - "width": 61, - "height": 146, - "rawWidth": 61, - "rawHeight": 146, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "4color5.png": { - "ver": "1.0.6", - "uuid": "9c999eaf-168d-480a-9a0e-175e787630c9", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 64, - "trimY": 680, - "width": 61, - "height": 267, - "rawWidth": 61, - "rawHeight": 267, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "4color6.png": { - "ver": "1.0.6", - "uuid": "dc7d898f-98f6-45e3-a908-1eab888d9383", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 129, - "trimY": 64, - "width": 61, - "height": 387, - "rawWidth": 61, - "rawHeight": 387, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "5color1.png": { - "ver": "1.0.6", - "uuid": "4b6d2792-ce59-4597-8d54-3e667f5e4ad7", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 521, - "trimY": 884, - "width": 138, - "height": 69, - "rawWidth": 138, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "5color2.png": { - "ver": "1.0.6", - "uuid": "01a25c6d-3527-4d0b-8ac0-f3e54bd2863e", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 387, - "trimY": 671, - "width": 258, - "height": 69, - "rawWidth": 258, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "5color3.png": { - "ver": "1.0.6", - "uuid": "3bd263ae-509c-4b63-8c11-c545402c77b8", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 509, - "trimY": 198, - "width": 378, - "height": 69, - "rawWidth": 378, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "5color4.png": { - "ver": "1.0.6", - "uuid": "a39ecd5d-7cdf-4caf-865d-81f806b582f3", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 530, - "trimY": 821, - "width": 61, - "height": 146, - "rawWidth": 61, - "rawHeight": 146, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "5color5.png": { - "ver": "1.0.6", - "uuid": "f05b3170-ab5d-4af5-96fa-ca996cc795e3", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 395, - "trimY": 411, - "width": 61, - "height": 266, - "rawWidth": 61, - "rawHeight": 266, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "5color6.png": { - "ver": "1.0.6", - "uuid": "20e22b3b-684d-405d-ac5b-5cd9ba4f9b66", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 907, - "trimY": 1, - "width": 61, - "height": 386, - "rawWidth": 61, - "rawHeight": 386, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "6color1.png": { - "ver": "1.0.6", - "uuid": "28e0793b-62a9-41b7-9512-082ce55eca71", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1021, - "trimY": 743, - "width": 138, - "height": 69, - "rawWidth": 138, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "6color2.png": { - "ver": "1.0.6", - "uuid": "550602d1-08e8-467e-8bd0-5295c4981fec", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 333, - "trimY": 742, - "width": 258, - "height": 69, - "rawWidth": 258, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "6color3.png": { - "ver": "1.0.6", - "uuid": "e538a058-80c2-49b8-aea0-f39d69183437", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 509, - "trimY": 269, - "width": 378, - "height": 69, - "rawWidth": 378, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "6color4.png": { - "ver": "1.0.6", - "uuid": "9cca10f3-7a1a-402a-83d4-30597d8144c7", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1092, - "trimY": 753, - "width": 61, - "height": 146, - "rawWidth": 61, - "rawHeight": 146, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "6color5.png": { - "ver": "1.0.6", - "uuid": "a3f51e26-9f3f-4a35-8d40-dfff45754b25", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 64, - "trimY": 743, - "width": 61, - "height": 267, - "rawWidth": 61, - "rawHeight": 267, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "6color6.png": { - "ver": "1.0.6", - "uuid": "fe897368-c5ca-4c14-a316-afe70f5e80cc", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 518, - "trimY": 1, - "width": 61, - "height": 387, - "rawWidth": 61, - "rawHeight": 387, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "7color1.png": { - "ver": "1.0.6", - "uuid": "e712ba83-24ff-404f-8699-61c4902001c9", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1240, - "trimY": 784, - "width": 138, - "height": 69, - "rawWidth": 138, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "7color2.png": { - "ver": "1.0.6", - "uuid": "dd2060c3-db79-48ff-b6b2-346e357ec7ed", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 270, - "trimY": 813, - "width": 258, - "height": 69, - "rawWidth": 258, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "7color3.png": { - "ver": "1.0.6", - "uuid": "880acb82-9636-4221-b533-3c9f826c4d9c", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 129, - "trimY": 332, - "width": 378, - "height": 69, - "rawWidth": 378, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "7color4.png": { - "ver": "1.0.6", - "uuid": "c97d0dd9-8a86-4d84-a51c-4451beea4e1a", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 840, - "trimY": 538, - "width": 62, - "height": 147, - "rawWidth": 62, - "rawHeight": 147, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "7color5.png": { - "ver": "1.0.6", - "uuid": "2defa794-ed61-4edf-a314-b8cda4b029aa", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 889, - "trimY": 340, - "width": 62, - "height": 267, - "rawWidth": 62, - "rawHeight": 267, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "7color6.png": { - "ver": "1.0.6", - "uuid": "1672955d-283c-47be-a394-28cac1c6ba5b", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 1, - "width": 62, - "height": 387, - "rawWidth": 62, - "rawHeight": 387, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "8color1.png": { - "ver": "1.0.6", - "uuid": "6abff37f-5b52-4658-bd2b-c146e6dea162", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 825, - "trimY": 829, - "width": 138, - "height": 69, - "rawWidth": 138, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "8color2.png": { - "ver": "1.0.6", - "uuid": "e91b0b84-c90c-4f76-b1e4-b8976cb6dede", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 127, - "trimY": 467, - "width": 259, - "height": 69, - "rawWidth": 259, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "8color3.png": { - "ver": "1.0.6", - "uuid": "582183eb-bd29-403e-848d-164b9ac0ed50", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 509, - "trimY": 340, - "width": 378, - "height": 69, - "rawWidth": 378, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "8color4.png": { - "ver": "1.0.6", - "uuid": "43ba2e3e-eb31-41b2-98d0-74bf98cad885", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 678, - "trimY": 829, - "width": 61, - "height": 145, - "rawWidth": 61, - "rawHeight": 145, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "8color5.png": { - "ver": "1.0.6", - "uuid": "74c1ec31-91eb-423e-97c9-68c93ffde355", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 388, - "trimY": 474, - "width": 61, - "height": 266, - "rawWidth": 61, - "rawHeight": 266, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "8color6.png": { - "ver": "1.0.6", - "uuid": "e468d8cc-1332-4516-b4d6-f4dd61e6ab54", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 518, - "trimY": 135, - "width": 61, - "height": 386, - "rawWidth": 61, - "rawHeight": 386, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "9color1.png": { - "ver": "1.0.6", - "uuid": "360ebdc2-02ca-4937-8d15-8224b0950ab2", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 661, - "trimY": 892, - "width": 138, - "height": 69, - "rawWidth": 138, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "9color2.png": { - "ver": "1.0.6", - "uuid": "3d4ca3d9-74fd-4408-99e3-0f9b0101c7b3", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 261, - "trimY": 884, - "width": 258, - "height": 69, - "rawWidth": 258, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "9color3.png": { - "ver": "1.0.6", - "uuid": "88a9a994-1d0b-49c1-a081-3f33c864b120", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 906, - "trimY": 135, - "width": 378, - "height": 69, - "rawWidth": 378, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "9color4.png": { - "ver": "1.0.6", - "uuid": "006ec77b-2f24-4f23-8685-898cc6802c7f", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1276, - "trimY": 488, - "width": 60, - "height": 146, - "rawWidth": 60, - "rawHeight": 146, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "9color5.png": { - "ver": "1.0.6", - "uuid": "dab229f9-0033-4f2e-a766-b34f445fe773", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 806, - "width": 61, - "height": 267, - "rawWidth": 61, - "rawHeight": 267, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "9color6.png": { - "ver": "1.0.6", - "uuid": "a5543b75-5f2f-4355-8b34-7770803e78bc", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 129, - "trimY": 127, - "width": 61, - "height": 387, - "rawWidth": 61, - "rawHeight": 387, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "dikuai.png": { - "ver": "1.0.6", - "uuid": "b1760ce5-36c7-4d8b-bb5f-069a448ebbf2", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 866, - "trimY": 602, - "width": 120, - "height": 120, - "rawWidth": 120, - "rawHeight": 120, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "shu_zl1.png": { - "ver": "1.0.6", - "uuid": "66c27f02-719e-422c-9277-42063833c0af", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1081, - "trimY": 883, - "width": 9, - "height": 42, - "rawWidth": 9, - "rawHeight": 42, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "shu_zl1_1.png": { - "ver": "1.0.6", - "uuid": "9b80c949-4fcd-4e45-afa9-ad91683ef7b7", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 333, - "trimY": 680, - "width": 58, - "height": 34, - "rawWidth": 58, - "rawHeight": 34, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "shu_zl1_2.png": { - "ver": "1.0.6", - "uuid": "36c23619-6422-47be-aa02-f78b7618bb3c", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 804, - "trimY": 479, - "width": 118, - "height": 34, - "rawWidth": 118, - "rawHeight": 34, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "shu_zl1_3.png": { - "ver": "1.0.6", - "uuid": "2c8edc9c-c130-4c61-98f1-0a9b2edf3270", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 940, - "width": 178, - "height": 34, - "rawWidth": 178, - "rawHeight": 34, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "shu_zl2.png": { - "ver": "1.0.6", - "uuid": "894c0780-7f4a-4a9f-ad92-de3471abb5c5", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 64, - "trimY": 659, - "width": 40, - "height": 10, - "rawWidth": 40, - "rawHeight": 10, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "shu_zl2_1.png": { - "ver": "1.0.6", - "uuid": "18d68fd0-41ef-430e-9de2-d38b9e55b08c", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 965, - "trimY": 829, - "width": 32, - "height": 54, - "rawWidth": 32, - "rawHeight": 54, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "shu_zl2_11.png": { - "ver": "1.0.6", - "uuid": "a8c7af66-0323-4bbd-b41b-ae9ed5671c84", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1277, - "trimY": 277, - "width": 32, - "height": 59, - "rawWidth": 32, - "rawHeight": 59, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "shu_zl2_2.png": { - "ver": "1.0.6", - "uuid": "90d2bb3b-aeca-4ea8-9afa-c2ae9871791b", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1295, - "trimY": 1, - "width": 32, - "height": 114, - "rawWidth": 32, - "rawHeight": 114, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "shu_zl2_22.png": { - "ver": "1.0.6", - "uuid": "aa13f028-c4c4-4978-bc3e-56b1ef1f2843", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 866, - "trimY": 724, - "width": 32, - "height": 120, - "rawWidth": 32, - "rawHeight": 120, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "shu_zl2_3.png": { - "ver": "1.0.6", - "uuid": "ac2a29e0-63e5-4f9d-b088-dd6682f8bde4", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 663, - "trimY": 445, - "width": 32, - "height": 175, - "rawWidth": 32, - "rawHeight": 175, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "shu_zl2_33.png": { - "ver": "1.0.6", - "uuid": "6012f579-6820-44ee-89c4-87c6c9b25f44", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 663, - "trimY": 411, - "width": 32, - "height": 180, - "rawWidth": 32, - "rawHeight": 180, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "wall1.png": { - "ver": "1.0.6", - "uuid": "fc8fd6fa-3cc2-4a69-a2f7-2c521de510b1", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 941, - "trimY": 900, - "width": 138, - "height": 69, - "rawWidth": 138, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "wall2.png": { - "ver": "1.0.6", - "uuid": "52f7fc1c-b560-4b6d-b15e-b38b6584a5d8", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1092, - "trimY": 879, - "width": 61, - "height": 146, - "rawWidth": 61, - "rawHeight": 146, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "wall3.png": { - "ver": "1.0.6", - "uuid": "865e12b4-8506-4026-ab52-9c8421100cc4", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1158, - "trimY": 340, - "width": 138, - "height": 146, - "rawWidth": 138, - "rawHeight": 146, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "wall4.png": { - "ver": "1.0.6", - "uuid": "02a22e2f-85e0-4ce1-a955-6ea4bf514319", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1129, - "trimY": 488, - "width": 137, - "height": 145, - "rawWidth": 137, - "rawHeight": 145, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "wall5.png": { - "ver": "1.0.6", - "uuid": "ee73bdf1-0624-464f-a268-cb0ff3f2952b", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 656, - "trimY": 479, - "width": 137, - "height": 146, - "rawWidth": 137, - "rawHeight": 146, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "wall6.png": { - "ver": "1.0.6", - "uuid": "e7bbdb15-5185-4c6e-a2f6-1c337b60b460", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 647, - "trimY": 618, - "width": 138, - "height": 146, - "rawWidth": 138, - "rawHeight": 146, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "wall7.png": { - "ver": "1.0.6", - "uuid": "3042034a-eafb-4920-aacc-79bd4f56d417", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1269, - "trimY": 206, - "width": 61, - "height": 69, - "rawWidth": 61, - "rawHeight": 69, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "zhangai.png": { - "ver": "1.0.6", - "uuid": "e200ed15-b2bf-49eb-864b-d0ead7b9fbd6", - "importer": "sprite-frame", - "rawTextureUuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 988, - "trimY": 609, - "width": 132, - "height": 137, - "rawWidth": 132, - "rawHeight": 137, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - } - } -} \ No newline at end of file diff --git a/assets/res/texture_Block/door.png b/assets/res/texture_Block/door.png deleted file mode 100644 index ca9aaf4..0000000 Binary files a/assets/res/texture_Block/door.png and /dev/null differ diff --git a/assets/res/texture_Block/door.png.meta b/assets/res/texture_Block/door.png.meta deleted file mode 100644 index 28d623f..0000000 --- a/assets/res/texture_Block/door.png.meta +++ /dev/null @@ -1,15 +0,0 @@ -{ - "ver": "2.3.7", - "uuid": "418b4767-01bf-4ac2-823b-9880f2a79215", - "importer": "texture", - "type": "raw", - "wrapMode": "clamp", - "filterMode": "bilinear", - "premultiplyAlpha": false, - "genMipmaps": false, - "packable": true, - "width": 1337, - "height": 975, - "platformSettings": {}, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/res/texture_Block/down.plist b/assets/res/texture_Block/down.plist deleted file mode 100644 index 000f8b0..0000000 --- a/assets/res/texture_Block/down.plist +++ /dev/null @@ -1,926 +0,0 @@ - - - - - frames - - 10down1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {122,45} - spriteSourceSize - {122,45} - textureRect - {{1,565},{122,45}} - textureRotated - - - 10down2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {243,45} - spriteSourceSize - {243,45} - textureRect - {{125,565},{243,45}} - textureRotated - - - 10down3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {363,45} - spriteSourceSize - {363,45} - textureRect - {{370,565},{363,45}} - textureRotated - - - 10down4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,124} - spriteSourceSize - {45,124} - textureRect - {{735,565},{45,124}} - textureRotated - - - 10down5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,245} - spriteSourceSize - {45,245} - textureRect - {{1,612},{45,245}} - textureRotated - - - 10down6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,365} - spriteSourceSize - {45,365} - textureRect - {{248,612},{45,365}} - textureRotated - - - 1down1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {122,45} - spriteSourceSize - {122,45} - textureRect - {{1,1},{122,45}} - textureRotated - - - 1down2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {243,45} - spriteSourceSize - {243,45} - textureRect - {{125,1},{243,45}} - textureRotated - - - 1down3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {363,45} - spriteSourceSize - {363,45} - textureRect - {{370,1},{363,45}} - textureRotated - - - 1down4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,124} - spriteSourceSize - {45,124} - textureRect - {{735,1},{45,124}} - textureRotated - - - 1down5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,245} - spriteSourceSize - {45,245} - textureRect - {{1,48},{45,245}} - textureRotated - - - 1down6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,365} - spriteSourceSize - {45,365} - textureRect - {{248,48},{45,365}} - textureRotated - - - 2down1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {122,45} - spriteSourceSize - {122,45} - textureRect - {{861,1},{122,45}} - textureRotated - - - 2down2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {243,45} - spriteSourceSize - {243,45} - textureRect - {{615,48},{243,45}} - textureRotated - - - 2down3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {363,45} - spriteSourceSize - {363,45} - textureRect - {{1,95},{363,45}} - textureRotated - - - 2down4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,124} - spriteSourceSize - {45,124} - textureRect - {{860,48},{45,124}} - textureRotated - - - 2down5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,245} - spriteSourceSize - {45,245} - textureRect - {{366,95},{45,245}} - textureRotated - - - 2down6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,365} - spriteSourceSize - {45,365} - textureRect - {{613,95},{45,365}} - textureRotated - - - 3down1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {122,45} - spriteSourceSize - {122,45} - textureRect - {{1,142},{122,45}} - textureRotated - - - 3down2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {243,45} - spriteSourceSize - {243,45} - textureRect - {{125,142},{243,45}} - textureRotated - - - 3down3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {363,45} - spriteSourceSize - {363,45} - textureRect - {{370,142},{363,45}} - textureRotated - - - 3down4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,124} - spriteSourceSize - {45,124} - textureRect - {{735,142},{45,124}} - textureRotated - - - 3down5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,245} - spriteSourceSize - {45,245} - textureRect - {{1,189},{45,245}} - textureRotated - - - 3down6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,365} - spriteSourceSize - {45,365} - textureRect - {{248,189},{45,365}} - textureRotated - - - 4down1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {122,45} - spriteSourceSize - {122,45} - textureRect - {{861,142},{122,45}} - textureRotated - - - 4down2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {243,45} - spriteSourceSize - {243,45} - textureRect - {{615,189},{243,45}} - textureRotated - - - 4down3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {363,45} - spriteSourceSize - {363,45} - textureRect - {{1,236},{363,45}} - textureRotated - - - 4down4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,124} - spriteSourceSize - {45,124} - textureRect - {{860,189},{45,124}} - textureRotated - - - 4down5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,245} - spriteSourceSize - {45,245} - textureRect - {{366,236},{45,245}} - textureRotated - - - 4down6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,365} - spriteSourceSize - {45,365} - textureRect - {{613,236},{45,365}} - textureRotated - - - 5down1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {122,45} - spriteSourceSize - {122,45} - textureRect - {{1,283},{122,45}} - textureRotated - - - 5down2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {243,45} - spriteSourceSize - {243,45} - textureRect - {{125,283},{243,45}} - textureRotated - - - 5down3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {363,45} - spriteSourceSize - {363,45} - textureRect - {{370,283},{363,45}} - textureRotated - - - 5down4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,124} - spriteSourceSize - {45,124} - textureRect - {{735,283},{45,124}} - textureRotated - - - 5down5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,245} - spriteSourceSize - {45,245} - textureRect - {{1,330},{45,245}} - textureRotated - - - 5down6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,365} - spriteSourceSize - {45,365} - textureRect - {{248,330},{45,365}} - textureRotated - - - 6down1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {122,45} - spriteSourceSize - {122,45} - textureRect - {{861,283},{122,45}} - textureRotated - - - 6down2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {243,45} - spriteSourceSize - {243,45} - textureRect - {{615,330},{243,45}} - textureRotated - - - 6down3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {363,45} - spriteSourceSize - {363,45} - textureRect - {{1,377},{363,45}} - textureRotated - - - 6down4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,124} - spriteSourceSize - {45,124} - textureRect - {{860,330},{45,124}} - textureRotated - - - 6down5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,245} - spriteSourceSize - {45,245} - textureRect - {{366,377},{45,245}} - textureRotated - - - 6down6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,365} - spriteSourceSize - {45,365} - textureRect - {{613,377},{45,365}} - textureRotated - - - 7down1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {122,46} - spriteSourceSize - {122,46} - textureRect - {{861,565},{122,46}} - textureRotated - - - 7down2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {244,46} - spriteSourceSize - {244,46} - textureRect - {{615,612},{244,46}} - textureRotated - - - 7down3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {364,46} - spriteSourceSize - {364,46} - textureRect - {{1,659},{364,46}} - textureRotated - - - 7down4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {46,124} - spriteSourceSize - {46,124} - textureRect - {{861,613},{46,124}} - textureRotated - - - 7down5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {46,246} - spriteSourceSize - {46,246} - textureRect - {{367,659},{46,246}} - textureRotated - - - 7down6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {46,366} - spriteSourceSize - {46,366} - textureRect - {{615,661},{46,366}} - textureRotated - - - 8down1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {122,45} - spriteSourceSize - {122,45} - textureRect - {{1,424},{122,45}} - textureRotated - - - 8down2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {243,45} - spriteSourceSize - {243,45} - textureRect - {{125,424},{243,45}} - textureRotated - - - 8down3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {363,45} - spriteSourceSize - {363,45} - textureRect - {{370,424},{363,45}} - textureRotated - - - 8down4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,124} - spriteSourceSize - {45,124} - textureRect - {{735,424},{45,124}} - textureRotated - - - 8down5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,245} - spriteSourceSize - {45,245} - textureRect - {{1,471},{45,245}} - textureRotated - - - 8down6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,365} - spriteSourceSize - {45,365} - textureRect - {{248,471},{45,365}} - textureRotated - - - 9down1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {122,45} - spriteSourceSize - {122,45} - textureRect - {{861,424},{122,45}} - textureRotated - - - 9down2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {243,45} - spriteSourceSize - {243,45} - textureRect - {{615,471},{243,45}} - textureRotated - - - 9down3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {363,45} - spriteSourceSize - {363,45} - textureRect - {{1,518},{363,45}} - textureRotated - - - 9down4.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,124} - spriteSourceSize - {45,124} - textureRect - {{860,471},{45,124}} - textureRotated - - - 9down5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,245} - spriteSourceSize - {45,245} - textureRect - {{366,518},{45,245}} - textureRotated - - - 9down6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {45,365} - spriteSourceSize - {45,365} - textureRect - {{613,518},{45,365}} - textureRotated - - - - metadata - - format - 3 - pixelFormat - RGBA8888 - premultiplyAlpha - - realTextureFileName - down.png - size - {986,708} - smartupdate - $TexturePacker:SmartUpdate:e71e00cbca228ccc0b15a23585e90eb3:c43c34fe0ac0b70e0467bdecae7396c0:1f82f659e2591d395bca4b2a7c74dd8a$ - textureFileName - down.png - - - diff --git a/assets/res/texture_Block/down.plist.meta b/assets/res/texture_Block/down.plist.meta deleted file mode 100644 index 89bc93b..0000000 --- a/assets/res/texture_Block/down.plist.meta +++ /dev/null @@ -1,1393 +0,0 @@ -{ - "ver": "1.2.6", - "uuid": "31479c6e-5626-4598-97ab-f94303e9efe7", - "importer": "asset", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "size": { - "width": 986, - "height": 708 - }, - "type": "Texture Packer", - "subMetas": { - "10down1.png": { - "ver": "1.0.6", - "uuid": "1ea884bd-1a65-433f-8fcd-773756b17779", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 565, - "width": 122, - "height": 45, - "rawWidth": 122, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "10down2.png": { - "ver": "1.0.6", - "uuid": "51d5b5f5-f626-4241-b80e-28a9595e733a", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 125, - "trimY": 565, - "width": 243, - "height": 45, - "rawWidth": 243, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "10down3.png": { - "ver": "1.0.6", - "uuid": "1544a27e-b778-409c-8b21-763ab3e3399d", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 370, - "trimY": 565, - "width": 363, - "height": 45, - "rawWidth": 363, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "10down4.png": { - "ver": "1.0.6", - "uuid": "f1438518-2842-4ed1-92b0-7953382ef63e", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 735, - "trimY": 565, - "width": 45, - "height": 124, - "rawWidth": 45, - "rawHeight": 124, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "10down5.png": { - "ver": "1.0.6", - "uuid": "be254ba3-b7fd-418b-995f-274fa1273a73", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 612, - "width": 45, - "height": 245, - "rawWidth": 45, - "rawHeight": 245, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "10down6.png": { - "ver": "1.0.6", - "uuid": "5cf21c17-96d2-4780-ba77-7dda56e64c98", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 248, - "trimY": 612, - "width": 45, - "height": 365, - "rawWidth": 45, - "rawHeight": 365, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "1down1.png": { - "ver": "1.0.6", - "uuid": "691087d9-32f7-44d2-b61c-87873e8f4242", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 1, - "width": 122, - "height": 45, - "rawWidth": 122, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "1down2.png": { - "ver": "1.0.6", - "uuid": "d2310ccc-2e6d-46da-adb9-dd8bf15d9f3f", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 125, - "trimY": 1, - "width": 243, - "height": 45, - "rawWidth": 243, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "1down3.png": { - "ver": "1.0.6", - "uuid": "e5962965-a9fd-47d1-b705-a677246be9dc", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 370, - "trimY": 1, - "width": 363, - "height": 45, - "rawWidth": 363, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "1down4.png": { - "ver": "1.0.6", - "uuid": "80954029-c956-4c1d-af71-ea5fd90f10e4", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 735, - "trimY": 1, - "width": 45, - "height": 124, - "rawWidth": 45, - "rawHeight": 124, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "1down5.png": { - "ver": "1.0.6", - "uuid": "676deeda-d2ee-439b-82d7-6acd250bce0c", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 48, - "width": 45, - "height": 245, - "rawWidth": 45, - "rawHeight": 245, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "1down6.png": { - "ver": "1.0.6", - "uuid": "3accf6ac-df0e-4432-a28f-f58b0ce1d488", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 248, - "trimY": 48, - "width": 45, - "height": 365, - "rawWidth": 45, - "rawHeight": 365, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "2down1.png": { - "ver": "1.0.6", - "uuid": "244cd70c-485e-4276-af6f-86155cf2efdd", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 861, - "trimY": 1, - "width": 122, - "height": 45, - "rawWidth": 122, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "2down2.png": { - "ver": "1.0.6", - "uuid": "5fb87968-bd45-4c4e-b84d-49babf968177", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 615, - "trimY": 48, - "width": 243, - "height": 45, - "rawWidth": 243, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "2down3.png": { - "ver": "1.0.6", - "uuid": "46e7d0f6-f588-4a0b-b766-dbb03c43770d", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 95, - "width": 363, - "height": 45, - "rawWidth": 363, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "2down4.png": { - "ver": "1.0.6", - "uuid": "d0b9df3e-5096-4aab-b7dc-02ef468a7b5a", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 860, - "trimY": 48, - "width": 45, - "height": 124, - "rawWidth": 45, - "rawHeight": 124, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "2down5.png": { - "ver": "1.0.6", - "uuid": "e2f75c5f-3623-4126-98da-bd2758d8c2b0", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 366, - "trimY": 95, - "width": 45, - "height": 245, - "rawWidth": 45, - "rawHeight": 245, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "2down6.png": { - "ver": "1.0.6", - "uuid": "c7ca2d02-32a0-4509-bca6-d08498d9877b", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 613, - "trimY": 95, - "width": 45, - "height": 365, - "rawWidth": 45, - "rawHeight": 365, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "3down1.png": { - "ver": "1.0.6", - "uuid": "143fa66b-dd28-48f7-ab12-bd21b93291b2", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 142, - "width": 122, - "height": 45, - "rawWidth": 122, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "3down2.png": { - "ver": "1.0.6", - "uuid": "6c4cf916-acbb-4217-8944-b92ed2fb0ea1", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 125, - "trimY": 142, - "width": 243, - "height": 45, - "rawWidth": 243, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "3down3.png": { - "ver": "1.0.6", - "uuid": "75e28444-b63c-4b82-92de-09e76c1ff22e", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 370, - "trimY": 142, - "width": 363, - "height": 45, - "rawWidth": 363, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "3down4.png": { - "ver": "1.0.6", - "uuid": "51dcfe18-8728-4792-9ddf-30ae829e28ac", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 735, - "trimY": 142, - "width": 45, - "height": 124, - "rawWidth": 45, - "rawHeight": 124, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "3down5.png": { - "ver": "1.0.6", - "uuid": "a9fa3419-564a-4a37-9c25-b49783d827c0", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 189, - "width": 45, - "height": 245, - "rawWidth": 45, - "rawHeight": 245, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "3down6.png": { - "ver": "1.0.6", - "uuid": "c4a12113-071c-4077-a323-3e222fc3824a", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 248, - "trimY": 189, - "width": 45, - "height": 365, - "rawWidth": 45, - "rawHeight": 365, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "4down1.png": { - "ver": "1.0.6", - "uuid": "9c994197-5b81-48cb-87fe-49be94b0a5a4", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 861, - "trimY": 142, - "width": 122, - "height": 45, - "rawWidth": 122, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "4down2.png": { - "ver": "1.0.6", - "uuid": "9ac5c83d-af36-4eb8-993a-3eb5ee4b698f", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 615, - "trimY": 189, - "width": 243, - "height": 45, - "rawWidth": 243, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "4down3.png": { - "ver": "1.0.6", - "uuid": "57ea620f-b33b-49c4-9a94-696b7fef56fc", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 236, - "width": 363, - "height": 45, - "rawWidth": 363, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "4down4.png": { - "ver": "1.0.6", - "uuid": "bb986b73-e1fa-4a5d-8e38-082686877964", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 860, - "trimY": 189, - "width": 45, - "height": 124, - "rawWidth": 45, - "rawHeight": 124, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "4down5.png": { - "ver": "1.0.6", - "uuid": "aefc3f97-13c2-4a83-94e2-5d28bcf9ee88", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 366, - "trimY": 236, - "width": 45, - "height": 245, - "rawWidth": 45, - "rawHeight": 245, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "4down6.png": { - "ver": "1.0.6", - "uuid": "fc86c297-6f55-42d1-b39c-2c3555cd69cf", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 613, - "trimY": 236, - "width": 45, - "height": 365, - "rawWidth": 45, - "rawHeight": 365, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "5down1.png": { - "ver": "1.0.6", - "uuid": "8b82f85e-df4a-4b5f-b6a1-697cf5633026", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 283, - "width": 122, - "height": 45, - "rawWidth": 122, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "5down2.png": { - "ver": "1.0.6", - "uuid": "21a5c85c-fbfb-4192-a7ee-e353dd75a2f2", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 125, - "trimY": 283, - "width": 243, - "height": 45, - "rawWidth": 243, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "5down3.png": { - "ver": "1.0.6", - "uuid": "802a788c-fdd9-47b1-9ec4-1ece1a07d54e", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 370, - "trimY": 283, - "width": 363, - "height": 45, - "rawWidth": 363, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "5down4.png": { - "ver": "1.0.6", - "uuid": "4111004a-b5ef-4678-9183-a8bb1f930ad0", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 735, - "trimY": 283, - "width": 45, - "height": 124, - "rawWidth": 45, - "rawHeight": 124, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "5down5.png": { - "ver": "1.0.6", - "uuid": "a94d62af-b5ee-40d4-8b56-8fb2e314b265", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 330, - "width": 45, - "height": 245, - "rawWidth": 45, - "rawHeight": 245, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "5down6.png": { - "ver": "1.0.6", - "uuid": "d981ca29-90a8-485d-a024-a8167d239985", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 248, - "trimY": 330, - "width": 45, - "height": 365, - "rawWidth": 45, - "rawHeight": 365, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "6down1.png": { - "ver": "1.0.6", - "uuid": "f6c17854-d1b0-477f-a026-811aafcc744b", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 861, - "trimY": 283, - "width": 122, - "height": 45, - "rawWidth": 122, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "6down2.png": { - "ver": "1.0.6", - "uuid": "0580cc03-5e99-4b1c-ae2f-61378360f51d", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 615, - "trimY": 330, - "width": 243, - "height": 45, - "rawWidth": 243, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "6down3.png": { - "ver": "1.0.6", - "uuid": "4dccd2bf-2fef-4629-bb16-4a3163fcc482", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 377, - "width": 363, - "height": 45, - "rawWidth": 363, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "6down4.png": { - "ver": "1.0.6", - "uuid": "90e7427b-50fd-408a-a069-4c5420dfe5c9", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 860, - "trimY": 330, - "width": 45, - "height": 124, - "rawWidth": 45, - "rawHeight": 124, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "6down5.png": { - "ver": "1.0.6", - "uuid": "272656dd-32e0-4a6b-b513-79e7520e5218", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 366, - "trimY": 377, - "width": 45, - "height": 245, - "rawWidth": 45, - "rawHeight": 245, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "6down6.png": { - "ver": "1.0.6", - "uuid": "add61af3-637e-4ecf-b75e-ea17e4422220", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 613, - "trimY": 377, - "width": 45, - "height": 365, - "rawWidth": 45, - "rawHeight": 365, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "7down1.png": { - "ver": "1.0.6", - "uuid": "86d1493b-efcb-4010-8f9e-fe17d9950ed2", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 861, - "trimY": 565, - "width": 122, - "height": 46, - "rawWidth": 122, - "rawHeight": 46, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "7down2.png": { - "ver": "1.0.6", - "uuid": "02bf3192-04b2-440b-bee7-f63b5e749abf", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 615, - "trimY": 612, - "width": 244, - "height": 46, - "rawWidth": 244, - "rawHeight": 46, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "7down3.png": { - "ver": "1.0.6", - "uuid": "c6771c3c-3935-41f7-87e6-595dcdc3fbca", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 659, - "width": 364, - "height": 46, - "rawWidth": 364, - "rawHeight": 46, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "7down4.png": { - "ver": "1.0.6", - "uuid": "b1db6411-8fe7-465c-bb8e-3ea8dee8aae9", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 861, - "trimY": 613, - "width": 46, - "height": 124, - "rawWidth": 46, - "rawHeight": 124, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "7down5.png": { - "ver": "1.0.6", - "uuid": "b898eccd-0766-4b61-a4ac-c4c3af89f87e", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 367, - "trimY": 659, - "width": 46, - "height": 246, - "rawWidth": 46, - "rawHeight": 246, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "7down6.png": { - "ver": "1.0.6", - "uuid": "793cb4eb-b353-4eb9-94ea-063c6736b6f8", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 615, - "trimY": 661, - "width": 46, - "height": 366, - "rawWidth": 46, - "rawHeight": 366, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "8down1.png": { - "ver": "1.0.6", - "uuid": "f78d2f84-7dca-496c-bb20-80141eb6a284", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 424, - "width": 122, - "height": 45, - "rawWidth": 122, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "8down2.png": { - "ver": "1.0.6", - "uuid": "c71ff0d4-efd0-4b07-970f-14c8dda67865", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 125, - "trimY": 424, - "width": 243, - "height": 45, - "rawWidth": 243, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "8down3.png": { - "ver": "1.0.6", - "uuid": "a2592571-4219-493e-98e1-f485f515d460", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 370, - "trimY": 424, - "width": 363, - "height": 45, - "rawWidth": 363, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "8down4.png": { - "ver": "1.0.6", - "uuid": "f312bd2b-75a2-493d-ab1d-32dabed46f9f", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 735, - "trimY": 424, - "width": 45, - "height": 124, - "rawWidth": 45, - "rawHeight": 124, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "8down5.png": { - "ver": "1.0.6", - "uuid": "d3b86b6b-23b7-4ff2-914a-cd69af879bad", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 471, - "width": 45, - "height": 245, - "rawWidth": 45, - "rawHeight": 245, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "8down6.png": { - "ver": "1.0.6", - "uuid": "25b1e254-4ab7-4d42-b05a-ba83a5bc9621", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 248, - "trimY": 471, - "width": 45, - "height": 365, - "rawWidth": 45, - "rawHeight": 365, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "9down1.png": { - "ver": "1.0.6", - "uuid": "27c16947-6688-4ba1-9c11-59142a49f919", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 861, - "trimY": 424, - "width": 122, - "height": 45, - "rawWidth": 122, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "9down2.png": { - "ver": "1.0.6", - "uuid": "c3dc068c-934c-442d-a81b-d18f30e918b8", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 615, - "trimY": 471, - "width": 243, - "height": 45, - "rawWidth": 243, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "9down3.png": { - "ver": "1.0.6", - "uuid": "9d3445ca-4bb2-4825-a21d-ca76f517203d", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 518, - "width": 363, - "height": 45, - "rawWidth": 363, - "rawHeight": 45, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "9down4.png": { - "ver": "1.0.6", - "uuid": "b9e0f800-5ea5-4884-ace8-412f2c2733cf", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 860, - "trimY": 471, - "width": 45, - "height": 124, - "rawWidth": 45, - "rawHeight": 124, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "9down5.png": { - "ver": "1.0.6", - "uuid": "bd251070-02ef-4b04-ad5d-b4407fa251ec", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 366, - "trimY": 518, - "width": 45, - "height": 245, - "rawWidth": 45, - "rawHeight": 245, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - }, - "9down6.png": { - "ver": "1.0.6", - "uuid": "14a5bea5-f456-41e2-bfa1-01bded6786fd", - "importer": "sprite-frame", - "rawTextureUuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 613, - "trimY": 518, - "width": 45, - "height": 365, - "rawWidth": 45, - "rawHeight": 365, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "spriteType": "normal", - "subMetas": {} - } - } -} \ No newline at end of file diff --git a/assets/res/texture_Block/down.png b/assets/res/texture_Block/down.png deleted file mode 100644 index 096d32a..0000000 Binary files a/assets/res/texture_Block/down.png and /dev/null differ diff --git a/assets/res/texture_Block/down.png.meta b/assets/res/texture_Block/down.png.meta deleted file mode 100644 index aaff3e6..0000000 --- a/assets/res/texture_Block/down.png.meta +++ /dev/null @@ -1,15 +0,0 @@ -{ - "ver": "2.3.7", - "uuid": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "importer": "texture", - "type": "raw", - "wrapMode": "clamp", - "filterMode": "bilinear", - "premultiplyAlpha": false, - "genMipmaps": false, - "packable": true, - "width": 2012, - "height": 331, - "platformSettings": {}, - "subMetas": {} -} \ No newline at end of file diff --git a/assets/res/texture_Block/zhangai.png.meta b/assets/res/texture_Block/zhangai.png.meta deleted file mode 100644 index e54b78a..0000000 --- a/assets/res/texture_Block/zhangai.png.meta +++ /dev/null @@ -1,38 +0,0 @@ -{ - "ver": "2.3.7", - "uuid": "0a33af4a-6c55-4b97-a88e-80ce9d1a2321", - "importer": "texture", - "type": "sprite", - "wrapMode": "clamp", - "filterMode": "bilinear", - "premultiplyAlpha": false, - "genMipmaps": false, - "packable": true, - "width": 132, - "height": 137, - "platformSettings": {}, - "subMetas": { - "zhangai": { - "ver": "1.0.6", - "uuid": "32135206-a480-425c-8ad9-1311f91b7314", - "importer": "sprite-frame", - "rawTextureUuid": "0a33af4a-6c55-4b97-a88e-80ce9d1a2321", - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 0, - "trimY": 0, - "width": 132, - "height": 137, - "rawWidth": 132, - "rawHeight": 137, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "subMetas": {} - } - } -} \ No newline at end of file diff --git a/assets/resources/prefab/block/block0.prefab b/assets/resources/prefab/block/block0.prefab index c2097fc..2f38ad3 100644 --- a/assets/resources/prefab/block/block0.prefab +++ b/assets/resources/prefab/block/block0.prefab @@ -782,7 +782,7 @@ "heng": 1, "shu": 1, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block1.prefab b/assets/resources/prefab/block/block1.prefab index 5c409b5..5654c58 100644 --- a/assets/resources/prefab/block/block1.prefab +++ b/assets/resources/prefab/block/block1.prefab @@ -782,7 +782,7 @@ "heng": 2, "shu": 1, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block10.prefab b/assets/resources/prefab/block/block10.prefab index 99c68bb..551d453 100644 --- a/assets/resources/prefab/block/block10.prefab +++ b/assets/resources/prefab/block/block10.prefab @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block11.prefab b/assets/resources/prefab/block/block11.prefab index 3514d6c..1f526ed 100644 --- a/assets/resources/prefab/block/block11.prefab +++ b/assets/resources/prefab/block/block11.prefab @@ -1074,7 +1074,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block12.prefab b/assets/resources/prefab/block/block12.prefab index 6953124..902b81d 100644 --- a/assets/resources/prefab/block/block12.prefab +++ b/assets/resources/prefab/block/block12.prefab @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block13.prefab b/assets/resources/prefab/block/block13.prefab index 55211a2..2b42352 100644 --- a/assets/resources/prefab/block/block13.prefab +++ b/assets/resources/prefab/block/block13.prefab @@ -1074,7 +1074,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block14.prefab b/assets/resources/prefab/block/block14.prefab index 652057b..c21b47e 100644 --- a/assets/resources/prefab/block/block14.prefab +++ b/assets/resources/prefab/block/block14.prefab @@ -1220,7 +1220,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block15.prefab b/assets/resources/prefab/block/block15.prefab index 17b5c7d..6051277 100644 --- a/assets/resources/prefab/block/block15.prefab +++ b/assets/resources/prefab/block/block15.prefab @@ -1220,7 +1220,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block16.prefab b/assets/resources/prefab/block/block16.prefab index 86f5b86..35bc9d2 100644 --- a/assets/resources/prefab/block/block16.prefab +++ b/assets/resources/prefab/block/block16.prefab @@ -1220,7 +1220,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block17.prefab b/assets/resources/prefab/block/block17.prefab index c17d04d..eb2e86a 100644 --- a/assets/resources/prefab/block/block17.prefab +++ b/assets/resources/prefab/block/block17.prefab @@ -1220,7 +1220,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block18.prefab b/assets/resources/prefab/block/block18.prefab index 2473118..3e13512 100644 --- a/assets/resources/prefab/block/block18.prefab +++ b/assets/resources/prefab/block/block18.prefab @@ -1366,7 +1366,7 @@ "heng": 3, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block19.prefab b/assets/resources/prefab/block/block19.prefab index 0e943f6..b02acbe 100644 --- a/assets/resources/prefab/block/block19.prefab +++ b/assets/resources/prefab/block/block19.prefab @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block2.prefab b/assets/resources/prefab/block/block2.prefab index eee1621..edb87c4 100644 --- a/assets/resources/prefab/block/block2.prefab +++ b/assets/resources/prefab/block/block2.prefab @@ -782,7 +782,7 @@ "heng": 1, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block20.prefab b/assets/resources/prefab/block/block20.prefab index d8231b2..89e1b9f 100644 --- a/assets/resources/prefab/block/block20.prefab +++ b/assets/resources/prefab/block/block20.prefab @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block21.prefab b/assets/resources/prefab/block/block21.prefab index fc961eb..a9c6a17 100644 --- a/assets/resources/prefab/block/block21.prefab +++ b/assets/resources/prefab/block/block21.prefab @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block22.prefab b/assets/resources/prefab/block/block22.prefab index 97e7415..230caaa 100644 --- a/assets/resources/prefab/block/block22.prefab +++ b/assets/resources/prefab/block/block22.prefab @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block3.prefab b/assets/resources/prefab/block/block3.prefab index 7ec4198..1093cc5 100644 --- a/assets/resources/prefab/block/block3.prefab +++ b/assets/resources/prefab/block/block3.prefab @@ -782,7 +782,7 @@ "heng": 3, "shu": 1, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block4.prefab b/assets/resources/prefab/block/block4.prefab index 78d77e8..cc46452 100644 --- a/assets/resources/prefab/block/block4.prefab +++ b/assets/resources/prefab/block/block4.prefab @@ -782,7 +782,7 @@ "heng": 1, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block5.prefab b/assets/resources/prefab/block/block5.prefab index 7faee35..34e276c 100644 --- a/assets/resources/prefab/block/block5.prefab +++ b/assets/resources/prefab/block/block5.prefab @@ -782,7 +782,7 @@ "heng": 2, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block6.prefab b/assets/resources/prefab/block/block6.prefab index 5360dfd..f8b7ea7 100644 --- a/assets/resources/prefab/block/block6.prefab +++ b/assets/resources/prefab/block/block6.prefab @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block7.prefab b/assets/resources/prefab/block/block7.prefab index 7849c18..37ee7a0 100644 --- a/assets/resources/prefab/block/block7.prefab +++ b/assets/resources/prefab/block/block7.prefab @@ -1074,7 +1074,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block8.prefab b/assets/resources/prefab/block/block8.prefab index f5950dc..cbe8da7 100644 --- a/assets/resources/prefab/block/block8.prefab +++ b/assets/resources/prefab/block/block8.prefab @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/resources/prefab/block/block9.prefab b/assets/resources/prefab/block/block9.prefab index fd7a519..4c0bce9 100644 --- a/assets/resources/prefab/block/block9.prefab +++ b/assets/resources/prefab/block/block9.prefab @@ -1074,7 +1074,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/build/wechatgame/assets/start-scene/index.js b/build/wechatgame/assets/start-scene/index.js index 73aa4fb..48aa00b 100644 --- a/build/wechatgame/assets/start-scene/index.js +++ b/build/wechatgame/assets/start-scene/index.js @@ -1 +1 @@ -window.__require=function t(e,o,i){function n(a,r){if(!o[a]){if(!e[a]){var s=a.split("/");if(s=s[s.length-1],!e[s]){var l="function"==typeof __require&&__require;if(!r&&l)return l(s,!0);if(c)return c(s,!0);throw new Error("Cannot find module '"+a+"'")}a=s}var h=o[a]={exports:{}};e[a][0].call(h.exports,function(t){return n(e[a][1][t]||t)},h,h.exports,t,e,o,i)}return o[a].exports}for(var c="function"==typeof __require&&__require,a=0;a=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=(a.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=60,e.pos={x:0,y:0},e}return n(e,t),e.prototype.onLoad=function(){this.pos.x=this.pos.y=0,this.target=null},e.prototype.start=function(){},e.prototype.init=function(t){this.pos.x=t.x-this.node.x,this.pos.y=t.y-this.node.y,this.target=t},e.prototype.remove=function(){var t=this;this.target=null;for(var e=0;e=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.audioGameBgm0=null,e.xiaochu=null,e.hit=null,e.down=null,e.fangxiang=null,e.build=null,e.win=null,e.lose=null,e.anniu_Big=null,e.anniu_little=null,e.zhuan1=null,e.zhuan2=null,e}var o;return n(e,t),o=e,e.prototype.onLoad=function(){null==o._instance&&(o._instance=this,cc.game.addPersistRootNode(this.node),this.reward=!1,this.finish=!1,this.rewardCount=0,this.ctor(),this.preload())},e.prototype.ctor=function(){this.mAudioMap={},this.bgMusicVolume=.1,this.effectMusicVolume=1,this.mMusicSwitch=1,this.mEffectSwitch=1},e.prototype.play=function(t,e,o,i){i?this.bgMusicVolume:this.effectMusicVolume,cc.audioEngine.setEffectsVolume(1),cc.audioEngine.setMusicVolume(1),"lose"==t.name?cc.audioEngine.setEffectsVolume(.5):cc.audioEngine.setEffectsVolume(1);var n=cc.audioEngine.playEffect(t,e);return o&&cc.audioEngine.setFinishCallback(n,function(){o.call(this)}.bind(this)),this.mAudioMap[t]=n,t},e.prototype.save=function(){},e.prototype.preload=function(){cc.sys.platform===cc.sys.WECHAT_GAME&&[this.audioGameBgm0].forEach(function(){})},e.prototype.getAudioMusicSwitch=function(){return this.mMusicSwitch},e.prototype.getAudioEffectSwitch=function(){return this.mEffectSwitch},e.prototype.trunAudioSound=function(t){this.switchMusic(t),this.switchEffect(t)},e.prototype.switchMusic=function(t){this.mMusicSwitch!=(t?1:0)&&(this.mMusicSwitch=1-this.mMusicSwitch),t?this.playMusicGame():this.stopMusic()},e.prototype.switchEffect=function(t){this.mEffectSwitch!=(t?1:0)&&(this.mEffectSwitch=1-this.mEffectSwitch)},e.prototype.onHide=function(){cc.audioEngine.pauseAll()},e.prototype.onShow=function(){cc.audioEngine.resumeAll()},e.prototype.playEffect=function(t,e){if(cc.fx.GameConfig.GM_INFO.effectOpen)return this[t]?this.play(this[t],!1,e,this.mEffectSwitch):void 0},e.prototype.playMusic=function(t,e,o){cc.fx.GameConfig.GM_INFO.musicOpen&&(o=!(void 0!==o&&!o),this.stopMusic(),this.mMusicKey=this.play(t,o,e,!0))},e.prototype.playMusicGame=function(){this.stopMusic(),this.playMusic(this.audioGameBgm0,{},!0)},e.prototype.stopMusic=function(){cc.audioEngine.stopAll()},e.prototype.resumeMusic=function(){cc.audioEngine.resumeMusic()},e.prototype.playGameStart=function(){},e.prototype.playGameOver=function(){},e.prototype.playGameResultFailed=function(){},e.prototype.playGameResultSuccess=function(){},e.prototype.playAudioButton=function(){},c([s(cc.AudioClip)],e.prototype,"audioGameBgm0",void 0),c([s(cc.AudioClip)],e.prototype,"xiaochu",void 0),c([s(cc.AudioClip)],e.prototype,"hit",void 0),c([s(cc.AudioClip)],e.prototype,"down",void 0),c([s(cc.AudioClip)],e.prototype,"fangxiang",void 0),c([s(cc.AudioClip)],e.prototype,"build",void 0),c([s(cc.AudioClip)],e.prototype,"win",void 0),c([s(cc.AudioClip)],e.prototype,"lose",void 0),c([s(cc.AudioClip)],e.prototype,"anniu_Big",void 0),c([s(cc.AudioClip)],e.prototype,"anniu_little",void 0),c([s(cc.AudioClip)],e.prototype,"zhuan1",void 0),c([s(cc.AudioClip)],e.prototype,"zhuan2",void 0),o=c([r],e)}(cc.Component);o.default=l,cc._RF.pop()},{}],Barrier:[function(t,e,o){"use strict";cc._RF.push(e,"90c37YHUUVPsY0mlNmom67u","Barrier");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("./Map"),r=cc._decorator,s=r.ccclass,l=(r.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.selfBoxColliders=[],e.allBoxColliders=[],e.initialTouchOffset=null,e.offsetTolerance=100,e.touchPoint=null,e.isTouch=!1,e.posX=0,e.posY=0,e.moveLeft=!0,e.moveRight=!0,e.moveUp=!0,e.moveDown=!0,e.moveCorner=0,e.moveY=0,e.moveX=0,e.touchPointX=0,e.touchPointY=0,e.blockId=0,e.level=0,e.pz=!1,e}return n(e,t),e.prototype.onLoad=function(){this.pz=!1,this.stacking=cc.v2(0,0)},e.prototype.start=function(){},e.prototype.jsonDeepClone=function(t){return JSON.parse(JSON.stringify(t))},e.prototype.init=function(t){this.block_Info=this.jsonDeepClone(t);for(var e=a.default._instance.mapInfo,o=0;o=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.PathType=o.BlockColor=o.BlockType=void 0;var a,r,s=t("./lq_collide_system/lq_collide_system"),l=t("./Map"),h=cc._decorator,p=h.ccclass,u=h.property;(function(t){t[t["\u666e\u901a\u5757"]=0]="\u666e\u901a\u5757",t[t["\u53e0\u52a0\u5757\u4e0b"]=1]="\u53e0\u52a0\u5757\u4e0b",t[t["\u94a5\u5319\u5757"]=2]="\u94a5\u5319\u5757",t[t["\u4e0a\u9501\u5757"]=3]="\u4e0a\u9501\u5757",t[t["\u51bb\u7ed3\u5757"]=4]="\u51bb\u7ed3\u5757",t[t["\u661f\u661f\u5757"]=5]="\u661f\u661f\u5757",t[t["\u70b8\u5f39\u5757"]=6]="\u70b8\u5f39\u5757",t[t["\u6c34\u5e73\u5757"]=7]="\u6c34\u5e73\u5757",t[t["\u5782\u76f4\u5757"]=8]="\u5782\u76f4\u5757",t[t["\u7c98\u5408\u5757"]=9]="\u7c98\u5408\u5757",t[t["\u53e0\u52a0\u5757\u4e0a"]=10]="\u53e0\u52a0\u5757\u4e0a"})(a=o.BlockType||(o.BlockType={})),function(t){t[t["\u7d2b\u8272"]=0]="\u7d2b\u8272",t[t["\u9ec4\u8272"]=1]="\u9ec4\u8272",t[t["\u7eff\u8272"]=2]="\u7eff\u8272",t[t["\u84dd\u8272"]=3]="\u84dd\u8272",t[t["\u7c89\u8272"]=4]="\u7c89\u8272",t[t["\u6a58\u9ec4\u8272"]=5]="\u6a58\u9ec4\u8272",t[t["\u9752\u8272"]=6]="\u9752\u8272",t[t["\u767d\u8272"]=7]="\u767d\u8272",t[t["\u7ea2\u8272"]=8]="\u7ea2\u8272",t[t["\u7070\u8272"]=9]="\u7070\u8272"}(r=o.BlockColor||(o.BlockColor={})),function(t){t.err="err",t.up="up",t.down="down",t.left="left",t.right="right",t.up_left="up_left",t.up_right="up_right",t.down_left="down_left",t.down_right="down_right",t.left_up="left_up",t.left_down="left_down",t.right_up="right_up",t.right_down="right_down"}(o.PathType||(o.PathType={}));var d=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.moveInterval=0,e.lastMoveTime=0,e.maxSpeed=300,e.type=a.\u666e\u901a\u5757,e.color=r.\u7d2b\u8272,e.heng=1,e.shu=1,e.ice_SpriteFrame=null,e.initialTouchOffset=null,e.offsetTolerance=100,e.touchPoint=null,e.isTouch=!1,e.posX=0,e.posY=0,e.moveLeft=!0,e.moveRight=!0,e.moveUp=!0,e.moveDown=!0,e.moveCorner=0,e.moveY=0,e.moveX=0,e.touchPointX=0,e.touchPointY=0,e.blockId=0,e.level=0,e.pz=!1,e.over=!1,e.touchDelta=cc.v2(0,0),e.checkCollision=!1,e}return n(e,t),e.prototype.onLoad=function(){this.pz=!1,this.stacking=cc.v2(0,0),this.adhesive=cc.v2(0,0),this.adhesiveNode=[],this.collider=this.node.getComponent(cc.PolygonCollider),this.over=!1,this.checkCollision=!1},e.prototype.start=function(){},e.prototype.jsonDeepClone=function(t){return JSON.parse(JSON.stringify(t))},e.prototype.init=function(t,e,o,i,n){var c=this;if(this.block_Info=this.jsonDeepClone(t),i&&(this.block_Info.node=i),this.type=t.type,this.color=t.color,this.blockId=t.id,this.initColor(),this.initType(),this.initBlocks(),this.type!=a.\u53e0\u52a0\u5757\u4e0a){this.node.on(cc.Node.EventType.TOUCH_START,this.touchStart,this),this.node.on(cc.Node.EventType.TOUCH_MOVE,this.touchMove,this),this.node.on(cc.Node.EventType.TOUCH_CANCEL,this.touchEnd,this),this.node.on(cc.Node.EventType.TOUCH_END,this.touchEnd,this),this.node._touchListener.setSwallowTouches(!1),setTimeout(function(){if(c.type==a.\u7c98\u5408\u5757){var t=cc.v2(c.node.x-c.block_Info.node.x,c.node.y-c.block_Info.node.y);n&&(c.node.zIndex>=c.block_Info.node.zIndex?c.createAdhesive():c.block_Info.node.getComponent("Block").createAdhesive());var e=["top","down","left","right"];c.block_Info.node.children.forEach(function(o){if(o instanceof cc.Node&&e.includes(o.name)&&"-1"!=o.getComponent("lq_collide").data_string){var i=cc.instantiate(o);i.getComponent("lq_collide").data_string="-1",i.parent=c.node;var n=o.getPosition();i.setPosition(n.x-t.x,n.y-t.y)}}),c.adhesive=t}},100);for(var r=l.default._instance.mapInfo,s=0;s0)for(var t=0;t=0&&i=0&&n=0?(this.over=!0,l.default._instance.changeState(),this.removeBoxCollider(),this.removeMapBlock(),this.removeAction(a)):(l.default._instance.upDoor(this.color),this.setVibrate("medium",1))}},e.prototype.removeBoxCollider=function(){for(var t=0;t0?1:-1,scaleY:n>0?1:-1}).start()}else this.type==a.\u7c98\u5408\u5757?(this.removeAdhesive(),this.block_Info.node.getComponent("Block").removeAdhesive(),this.block_Info.node.getComponent("Block").restoreNomal(this.block_Info.node.getComponent("Block").posX,this.block_Info.node.getComponent("Block").posY,!1),this.block_Info.node=null):this.type==a.\u70b8\u5f39\u5757&&this.node.getChildByName("boom").getComponent("Boom").stopBoom();var c=.33,r=Math.floor(this.node.width/120),s=Math.floor(this.node.height/120);if(setTimeout(function(){cc.fx.AudioManager._instance.playEffect("xiaochu",null)},300),this.setVibrate("light",3),0==t){c=.33*s;for(var h=0;h0?1:-1,scaleY:n>0?1:-1}).start()}else e.type==a.\u7c98\u5408\u5757?e.block_Info.node.getComponent("Block").restoreNomal(e.block_Info.node.getComponent("Block").posX,e.block_Info.node.getComponent("Block").posY,!1):e.type==a.\u70b8\u5f39\u5757&&t.node.getChildByName("boom").getComponent("Boom").stopBoom();l.default._instance.nextLevel(),t.node.active=!1,t.node.removeFromParent()},200)}else this.node.getChildByName("lock").getComponent("Lock").reduce();else this.node.getChildByName("freeze").getComponent("Freeze").reduce(2)},e.prototype.setVibrate=function(t,e){if(cc.fx.GameConfig.GM_INFO.vibrateOpen)if(1!=e)for(var o=0;o<4;o++)setTimeout(function(){"undefined"!=typeof wx&&null!==wx&&wx.vibrateShort({type:t,success:function(){},fail:function(){}})},150*o);else"undefined"!=typeof wx&&null!==wx&&wx.vibrateShort({type:t,success:function(){},fail:function(){}})},e.prototype.setMoveCorner=function(){},e.prototype.cmupdate=function(){cc.director.getCollisionManager().update()},e.prototype.restoreNomal=function(t,e,o){this.type=0,this.block_Info.node=null,this.moveStack=!1,this.posX=t,this.posY=e,this.setMapBlock(),this.level=50+this.posX-3*this.posY,this.node.zIndex=this.level;for(var i=1e3,n=0;ni&&(this.node.children[n].active=!1);if(o)for(n=0;n0)for(var t=0;t0)for(var t=0;t0){var e=this.touchDelta,o=this.node.x+e.x,i=this.node.y+e.y,n=Math.sqrt(Math.pow(o-this.node.x,2)+Math.pow(i-this.node.y,2)),c=Math.round(e.mag());1===this.moveY?this.touchPointY<=this.node.y+this.node.height/2&&(this.moveY=0):-1===this.moveY&&this.touchPointY>=this.node.y+this.node.height/2&&(this.moveY=0),1===this.moveX?this.touchPointX<=this.node.x-this.node.width/2&&(this.moveX=0):-1===this.moveX&&this.touchPointX>=this.node.x-this.node.width/2&&(this.moveX=0),n>100?(c=10,e.x*=.5,e.y*=.5):c>5&&(c=Math.floor(c/5));for(var r=e.x/c,l=e.y/c,h=0;hMath.abs(l)?(this.node.x>p?(this.moveLeft&&0===this.moveX&&8!==this.type&&10!==this.type&&(this.node.x=p),0!==this.moveX&&(this.moveX=0)):this.node.x<=p&&(this.moveRight&&0===this.moveX&&8!==this.type&&10!==this.type&&(this.node.x=p),0!==this.moveX&&(this.moveX=0)),this.node.y>u?(this.moveDown&&0===this.moveY&&7!==this.type&&10!==this.type&&(this.node.y=u),0!==this.moveY&&(this.moveY=0)):this.node.y<=u&&(this.moveUp&&0===this.moveY&&7!==this.type&&10!==this.type&&(this.node.y=u),0!==this.moveY&&(this.moveY=0))):(this.node.y>u?(this.moveDown&&0===this.moveY&&7!==this.type&&10!==this.type&&(this.node.y=u),0!==this.moveY&&(this.moveY=0)):this.node.y<=u&&(this.moveUp&&0===this.moveY&&7!==this.type&&10!==this.type&&(this.node.y=u),0!==this.moveY&&(this.moveY=0)),this.node.x>p?(this.moveLeft&&0===this.moveX&&8!==this.type&&10!==this.type&&(this.node.x=p),0!==this.moveX&&(this.moveX=0)):this.node.x<=p&&(this.moveRight&&0===this.moveX&&8!==this.type&&10!==this.type&&(this.node.x=p),0!==this.moveX&&(this.moveX=0))):(8!==this.type&&10!==this.type&&(this.node.x=Math.round(p)),7!==this.type&&10!==this.type&&(this.node.y=Math.round(u))),s.LQCollideSystem.update_logic(t)}this.touchDelta=cc.v2(0,0)}this.type==a.\u53e0\u52a0\u5757\u4e0a&&1==this.moveStack&&(0==this.stacking.x&&0==this.stacking.y||(this.node.x=this.block_Info.node.x+this.stacking.x,this.node.y=this.block_Info.node.y+this.stacking.y)),this.block_Info&&null!=this.block_Info.node&&this.type==a.\u7c98\u5408\u5757&&(0!=this.adhesive.x&&0!=this.adhesive.y&&null!=this.block_Info.node&&(this.block_Info.node.x=this.node.x-this.adhesive.x,this.block_Info.node.y=this.node.y-this.adhesive.y),1==this.isTouch&&0==this.block_Info.node.getComponent("Block").isTouch&&(s.LQCollideSystem.update_logic(t),this.block_Info.node.x=this.node.x-this.adhesive.x,this.block_Info.node.y=this.node.y-this.adhesive.y))},c([u({tooltip:"\u78b0\u649e\u5f62\u72b6\uff0cNone\u5c31\u662f\u65e0\u654c\uff0c\u4e0d\u53c2\u4e0e\u78b0\u649e",type:cc.Enum(a)})],e.prototype,"type",void 0),c([u({tooltip:"\u78b0\u649e\u5f62\u72b6\uff0cNone\u5c31\u662f\u65e0\u654c\uff0c\u4e0d\u53c2\u4e0e\u78b0\u649e",type:cc.Enum(r)})],e.prototype,"color",void 0),c([u({tooltip:"\u6a2a\u5411\u957f\u5ea6",type:cc.Integer})],e.prototype,"heng",void 0),c([u({tooltip:"\u7ad6\u5411\u957f\u5ea6",type:cc.Integer})],e.prototype,"shu",void 0),c([u(cc.SpriteAtlas)],e.prototype,"ice_SpriteFrame",void 0),c([p],e)}(cc.Component);o.default=d,cc._RF.pop()},{"./Map":"Map","./lq_collide_system/lq_collide_system":"lq_collide_system"}],Boom:[function(t,e,o){"use strict";cc._RF.push(e,"3c749iEEwlAMKPyjGEkwU2l","Boom");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("../Map"),r=t("../NumberToImage"),s=cc._decorator,l=s.ccclass,h=(s.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=60,e}return n(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){},e.prototype.init=function(t){t&&(this.time=t),this.node.getChildByName("time").active=!0,r.default.numberToImageNodes(this.time,20,8,"lock_",this.node.getChildByName("time"),!1)},e.prototype.startBoom=function(){this.schedule(this.updateTime,1)},e.prototype.stopBoom=function(){this.unschedule(this.updateTime),this.node.parent.getComponent("Block").resetFreeze(),this.node.destroy()},e.prototype.updateTime=function(){var t=this;if(this.time--,r.default.numberToImageNodes(this.time,20,8,"lock_",this.node.getChildByName("time"),!1),this.time<=0){this.unschedule(this.updateTime),this.node.getChildByName("zhandan").active=!0;var e=this.node.getChildByName("zhandan").getComponent(sp.Skeleton);e.setAnimation(1,"eff",!1),e.setCompleteListener(function(){t.node.destroy()}),a.default._instance.failLevel("boom")}},c([l],e)}(cc.Component));o.default=h,cc._RF.pop()},{"../Map":"Map","../NumberToImage":"NumberToImage"}],CollisionDetection:[function(t,e,o){"use strict";cc._RF.push(e,"f1883pXzMVIp5/ARDAWfZ7j","CollisionDetection");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=(a.property,a.requireComponent,function(t){function e(){return null!==t&&t.apply(this,arguments)||this}var o;return n(e,t),o=e,e.prototype.onLoad=function(){null==o._instance&&(o._instance=this)},e.prototype.isColliding=function(t,e){return t.xMaxi&&(i=c)}return{min:o,max:i}},e.prototype.overlap=function(t,e){return!(t.max=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.Map=null,e.tip=null,e.reinforce=null,e.soil=null,e}return n(e,t),e.prototype.start=function(){this.tipArray=[],this.controlArray=[],this.canTouch=!0,this.Reinforce=!1,this.Soil=!1,this.mapHeight=0},e.prototype.setPosition=function(t){if(t.setPosition(30,-25),this.tipArray.length>0){var e=this.tipArray.length+1,o=Math.ceil(e/8)-1,i=e-8*Math.floor(o)-1;t.setPosition(30+48*i,-25-48*o+this.mapHeight)}},e.prototype.removeAllTip=function(){if(this.canTouch&&this.tipArray.length>0){cc.fx.AudioManager._instance.playEffect("qingkong",null);for(var t=0;t0){cc.fx.AudioManager._instance.playEffect("chehui",null);var t=this.tipArray[this.tipArray.length-1];t.active=!1,t.removeFromParent(this.Map),t=null,this.tipArray.pop(),this.controlArray.pop();var e=cc.fx.GameConfig.CLICK_DATA.drawingBack+1;cc.fx.GameConfig.CLICK_SET("drawingBack",e),cc.fx.Notifications.emit(cc.fx.Message.removeTip,"back"),this.tipArray.length>=24&&this.tipArray.length%8==0&&this.mapMove(!1)}},e.prototype.btn_Click=function(t,e){var o=this.node.parent.getComponent("GameManager");if(1==o.btnClick&&(o.btnClick=!1,cc.fx.Notifications.emit(cc.fx.Message.guideNext)),cc.fx.Notifications.emit(cc.fx.Message.control,e),this.canTouch){var i=this.tip;if("reinforce"==e||"soil"==e){if(i=this[e],"reinforce"==e){if(this.Reinforce)return this.Reinforce=!1,void this.back_Click();cc.fx.AudioManager._instance.playEffect("jineng",null),this.Reinforce=!0,this.Soil=!1}else if("soil"==e){if(this.Soil)return this.Soil=!1,void this.back_Click();cc.fx.AudioManager._instance.playEffect("jineng",null),this.Soil=!0,this.Reinforce=!1}}else cc.fx.AudioManager._instance.playEffect("fangxiang",null),this.Reinforce=!1,this.Soil=!1;var n=cc.instantiate(i);"up"==e&&(n.angle=180),"left"==e&&(n.angle=-90),"right"==e&&(n.angle=90),n.parent=this.Map,"reinforce"!=this.controlArray[this.controlArray.length-1]&&"soil"!=this.controlArray[this.controlArray.length-1]||"reinforce"!=e&&"soil"!=e||(this.tipArray[this.tipArray.length-1].removeFromParent(),this.tipArray[this.tipArray.length-1]=null,this.tipArray.pop(),this.controlArray.pop()),this.setPosition(n),this.tipArray.push(n),this.controlArray.push(e),this.tipArray.length>=25&&(this.tipArray.length-1)%8==0&&this.mapMove(!0)}},e.prototype.mapMove=function(t){t?this.mapHeight+=48:this.mapHeight-=48;for(var e=0;e=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.DouyinEntranceView=void 0;var a=t("./MiniGameSdk"),r=cc._decorator,s=r.ccclass,l=(r.property,function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.start=function(){},e.prototype.update=function(){},e.prototype.onCloseClick=function(){this.node.active=!1},e.prototype.onNavigateToDouyinClick=function(){a.MiniGameSdk.BytedanceSidebar.navigateToSidebar(function(t){t?console.log("\u8df3\u8f6c\u6210\u529f"):console.log("\u8df3\u8f6c\u5931\u8d25")})},c([s],e)}(cc.Component));o.DouyinEntranceView=l,cc._RF.pop()},{"./MiniGameSdk":"MiniGameSdk"}],DynamicAtlasManager:[function(t,e){"use strict";cc._RF.push(e,"5c9b8FZiaNLMrMDs9T3rByf","DynamicAtlasManager"),cc.Class({extends:cc.Component,properties:{},onLoad:function(){cc.dynamicAtlasManager.enabled=!1}}),cc._RF.pop()},{}],Freeze:[function(t,e,o){"use strict";cc._RF.push(e,"ad8cbbzCohCR5uifssdRTf+","Freeze");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("../NumberToImage"),r=cc._decorator,s=r.ccclass,l=r.property,h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=60,e.freeze=null,e}return n(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){},e.prototype.init=function(t){t&&(this.time=t),this.node.getChildByName("time").active=!0,a.default.numberToImageNodes(this.time,40,25,"ice_",this.node.getChildByName("time"),!1)},e.prototype.reduce=function(t){var e=this;this.time-=t,this.time<=0&&(this.time=0),a.default.numberToImageNodes(this.time,40,25,"ice_",this.node.getChildByName("time"),!1),this.time<=0&&(this.node.getChildByName("bingkuai").active=!0,this.node.getChildByName("bingkuai").getComponent(sp.Skeleton).setAnimation(1,"bingkuai",!1),this.node.getChildByName("icon").active=!0,this.node.getChildByName("time").active=!1,cc.tween(this.node.getChildByName("icon")).to(.5,{opacity:0}).start(),setTimeout(function(){e.node.parent.getComponent("Block").resetFreeze(),e.node.destroy(),e.node.removeFromParent()},600))},c([l(cc.Material)],e.prototype,"freeze",void 0),c([s],e)}(cc.Component);o.default=h,cc._RF.pop()},{"../NumberToImage":"NumberToImage"}],GameAppStart:[function(t,e,o){"use strict";cc._RF.push(e,"61d4ccY2ztLMYIh8WvqPPAw","GameAppStart"),Object.defineProperty(o,"__esModule",{value:!0});var i=t("../Storage/Storage"),n=t("../Config/GameConfig"),c=t("../Crypto/HttpUtil"),a=t("../Music/AudioManager"),r=t("../Notification/Notification"),s=t("../Tool/GameTool");window.initMgr=function(){cc.fx||(cc.fx={},cc.fx.StateInfo={debugMode:!0,networkConnected:!0,networkType:"none",isOnForeground:!0},cc.fx.StorageMessage=i.StorageMessage,cc.fx.AudioManager=a.default,cc.fx.GameConfig=n.GameConfig,cc.fx.HttpUtil=c.default,cc.fx.GameTool=s.GameTool,cc.fx.Notifications=r.Notifications,cc.fx.ShareInfo={queryId:-1},cc.fx.Message={control:"10001",startGame:"10002",next:"10003",changePath:"10004",changeMap:"10005",nextWater:"10006",addEnd:"10007",setData:"10008",guideNext:"10009",showResult:"10010",removeTip:"10011"},cc.fx.BurialShareType={Default:"default",Invite:"invite",DailyInviteRoomJoin:"invite_join_room",DailyInviteFriend:"invite_friend",DailyInviteGroup:"invate_group",DailyInviteGroupAlive:"invate_alive",DailyInviteGroupReward:"invate_rewared",DailyInviteGroupBox:"invate_box",DailyInviteGroupBall:"invate_ball",MatchResult:"matchResult",MatchFix5:"MatchFix5",MatchFix20:"MatchFix20",MatchFix100:"MatchFix100",MatchFix500:"MatchFix500",NewerRedEnvelope:"newerRedEnvelope",CoinRoomResult:"coinRoomResult",HighRate:"highRate",CoinRoomWinStreak:"coinRoomWinStreak",CoinRoomBankruptcy1:"coinRoomBankruptcy1",CoinRoomBankruptcy2:"coinRoomBankruptcy2",CoinRoomBankruptcy3:"coinRoomBankruptcy3"},cc.fx.ShareWhereReward={Group:"group",Friend:"friend",All:"all"},cc.fx.storageType=cc.Enum({storageTypeCustom:1000101}),cc.fx.tipType=cc.Enum({tipOne:"\u795e\u519c\u6c0f\u56de\u5230\u5bb6\u4e2d\uff0c\u5f00\u59cb\u6574\u7406\u4eca\u5929\u6536\u96c6\u6765\u7684\u7269\u54c1\u3002\u5f53\u4ed6\u7b2c\u4e00\u6b21\u62ff\u51fa\u6216\u8bf4\u51fa\u4e00\u79cd\u690d\u7269\u65f6\uff0c\u8bf7\u544a\u8bc9\u4ed6\u8fd9\u662f\u65b0\u690d\u7269\u3002",tipTwo:"\u5982\u679c\u4ed6\u62ff\u51fa\u6216\u8bf4\u51fa\u7684\u690d\u7269\u4f60\u4eca\u5929\u770b\u5230\u8fc7\uff0c\u8bf7\u544a\u8bc9\u4ed6\u4e0a\u6b21\u662f\u770b\u5230\u7684\uff1b\u5982\u679c\u4f60\u542c\u4ed6\u8bf4\u8fc7\uff0c\u5219\u8bf7\u544a\u8bc9\u4ed6\u4e0a\u6b21\u662f\u542c\u5230\u7684\u3002",tipErrNew:"\u8fd9\u662f\u8fd9\u5c40\u6e38\u620f\u7b2c\u4e00\u6b21\u51fa\u73b0{\u690d\u7269}",tipErrOld:"{\u690d\u7269}\u521a\u624d\u51fa\u73b0\u8fc7\u5462",tipErrHear:"\u4e0a\u6b21\u9047\u5230{\u690d\u7269}\u65f6\uff0c\u4f3c\u4e4e\u4e0d\u662f\u542c\u5230\u7684\u5427",tipErrSee:"\u4e0a\u6b21\u9047\u5230{\u690d\u7269}\u65f6\uff0c\u4f3c\u4e4e\u4e0d\u662f\u770b\u5230\u7684\u5427",tipErrLast:"\u4e4b\u524d\u786e\u5b9e\u770b\u5230\u8fc7{\u690d\u7269}\uff0c\u4f46\u6700\u8fd1\u4e00\u6b21\u4f3c\u4e4e\u4e0d\u662f\u770b\u5230\u7684\u5462"}))},cc._RF.pop()},{"../Config/GameConfig":"GameConfig","../Crypto/HttpUtil":"HttpUtil","../Music/AudioManager":"AudioManager","../Notification/Notification":"Notification","../Storage/Storage":"Storage","../Tool/GameTool":"GameTool"}],GameConfig:[function(t,e,o){"use strict";cc._RF.push(e,"c5692vnhwNF5J9nI7VNKQNW","GameConfig");var i=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.GameConfig=void 0;var n=cc._decorator,c=n.ccclass,a=(n.property,function(){function t(){}var e;return e=t,Object.defineProperty(t,"Instance",{get:function(){return null==this._instance&&(this._instance=new e),this._instance},enumerable:!1,configurable:!0}),t.init=function(){"undefined"!=typeof wx&&null!==wx&&wx.cloud.init(),this.TA=null,this.CLICK_init(),this.GM_INFO_init(),this.LEVEL_INFO_init(!1,0),this.GAME_DATA=[]},t.generateUUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0;return("x"===t?e:3&e|8).toString(16)})},t.compareVersion=function(t,e){for(var o=t.split("."),i=e.split("."),n=Math.max(o.length,i.length),c=0;cr)return 1;if(a156&&(cc.fx.GameConfig.GM_INFO.level=156);var i="Json/level"+(cc.fx.GameConfig.GM_INFO.level+1);cc.resources.load(i,function(i,n){if(i)return cc.fx.GameTool.addLevel(),void o.LEVEL_INFO_init(t,e);var c=n.json;o.BLOCK_INFO=c.BLOCK_INFO,o.LEVEL_INFO=c.LEVEL_INFO,o.WALL_INFO=c.WALL_INFO,t&&cc.director.preloadScene("GameScene",function(){0==e?cc.director.loadScene("GameScene"):setTimeout(function(){cc.director.loadScene("GameScene")},e)})}),this.PROP_INFO=[{pos1:{x:-66,y:60,z:0},pos2:{x:-19,y:36,z:0},pos3:{x:-34.362,y:13.246,z:0},pos4:{x:-17,y:12,z:0},pos5:{x:-85,y:70,z:0},pos6:{x:-5,y:3,z:0}},{pos1:{x:-126,y:61,z:0},pos2:{x:-25.792,y:34.675,z:0},pos3:{x:-94.792,y:21.675,z:0},pos4:{x:-20,y:13,z:0},pos5:{x:-140,y:68,z:0},pos6:{x:-2,y:0,z:0}},{pos1:{x:-67,y:122,z:0},pos2:{x:-20,y:94,z:0},pos3:{x:-34.792,y:23.675,z:0},pos4:{x:-14,y:24,z:0},pos5:{x:-84,y:128,z:0},pos6:{x:-5,y:3,z:0}},{pos1:{x:-178,y:61,z:0},pos2:{x:-34.792,y:37.675,z:0},pos3:{x:-150,y:23.675,z:0},pos4:{x:-22,y:16,z:0},pos5:{x:-200,y:67,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-63,y:178,z:0},pos2:{x:-17.792,y:166.675,z:0},pos3:{x:-31.792,y:33.675,z:0},pos4:{x:-14,y:37,z:0},pos5:{x:-78,y:182,z:0},pos6:{x:0,y:2,z:0}},{pos1:{x:-123,y:124,z:0},pos2:{x:-25.792,y:99.675,z:0},pos3:{x:-97.792,y:27.675,z:0},pos4:{x:-27,y:19,z:0},pos5:{x:-135,y:127,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-64,y:178,z:0},pos2:{x:-24.792,y:275.675,z:0},pos3:{x:-31.792,y:35.675,z:0},pos4:{x:-7,y:39,z:0},pos5:{x:-77,y:188,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-178,y:186,z:0},pos2:{x:-31.792,y:163.675,z:0},pos3:{x:-33.792,y:34.675,z:0},pos4:{x:-18,y:30,z:0},pos5:{x:-200,y:192,z:0},pos6:{x:0,y:5,z:0}},{pos1:{x:-186,y:178,z:0},pos2:{x:-25.792,y:38.675,z:0},pos3:{x:-153.792,y:34.675,z:0},pos4:{x:-23,y:14,z:0},pos5:{x:-200,y:185,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-183,y:64,z:0},pos2:{x:-37.792,y:37.675,z:0},pos3:{x:-36.792,y:26.675,z:0},pos4:{x:-24,y:17,z:0},pos5:{x:-212,y:74,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-65,y:177,z:0},pos2:{x:93.208,y:276.675,z:0},pos3:{x:-33.792,y:34.675,z:0},pos4:{x:3,y:31,z:0},pos5:{x:-80,y:190,z:0},pos6:{x:0,y:3,z:0}},{pos1:{x:58,y:179,z:0},pos2:{x:205.225,y:154.034,z:0},pos3:{x:-29.642,y:25.691,z:0},pos4:{x:7.218,y:29.765,z:0},pos5:{x:45,y:185,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-68,y:182,z:0},pos2:{x:-25.792,y:37.675,z:0},pos3:{x:-35.792,y:33.675,z:0},pos4:{x:-14,y:12,z:0},pos5:{x:-82,y:190,z:0},pos6:{x:-2,y:1,z:0}},{pos1:{x:-184,y:62,z:0},pos2:{x:-35.792,y:36.675,z:0},pos3:{x:-271.792,y:24.675,z:0},pos4:{x:-17,y:20,z:0},pos5:{x:-200,y:72,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-62,y:175,z:0},pos2:{x:87.208,y:164.675,z:0},pos3:{x:-31.792,y:35.675,z:0},pos4:{x:-6,y:24,z:0},pos5:{x:-79,y:172,z:0},pos6:{x:0,y:5,z:0}},{pos1:{x:-184,y:72,z:0},pos2:{x:-33.792,y:38.675,z:0},pos3:{x:-154.792,y:29.675,z:0},pos4:{x:-29,y:16,z:0},pos5:{x:-201,y:85,z:0},pos6:{x:-1,y:3,z:0}},{pos1:{x:-64,y:181,z:0},pos2:{x:95.208,y:155.675,z:0},pos3:{x:-30.792,y:36.675,z:0},pos4:{x:-12,y:32,z:0},pos5:{x:-78,y:190,z:0},pos6:{x:0,y:3,z:0}},{pos1:{x:-65,y:178,z:0},pos2:{x:-21.792,y:156.675,z:0},pos3:{x:-31.792,y:37.675,z:0},pos4:{x:-12,y:32,z:0},pos5:{x:-78,y:188,z:0},pos6:{x:0,y:2,z:0}},{pos1:{x:-62,y:183,z:0},pos2:{x:88.208,y:162.675,z:0},pos3:{x:-29.792,y:41.675,z:0},pos4:{x:-12,y:18,z:0},pos5:{x:-80,y:188,z:0},pos6:{x:-4,y:2,z:0}},{pos1:{x:-67,y:80,z:0},pos2:{x:-26.792,y:32.675,z:0},pos3:{x:-34.792,y:23.675,z:0},pos4:{x:-12,y:18,z:0},pos5:{x:-84,y:90,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-184,y:80,z:0},pos2:{x:-25.792,y:34.675,z:0},pos3:{x:-155.792,y:25.675,z:0},pos4:{x:-18,y:26,z:0},pos5:{x:-196,y:96,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-62,y:160,z:0},pos2:{x:95.208,y:158.675,z:0},pos3:{x:-33.792,y:29.675,z:0},pos4:{x:-18,y:26,z:0},pos5:{x:-78,y:170,z:0},pos6:{x:0,y:2,z:0}},{pos1:{x:-68,y:160,z:0},pos2:{x:-25.792,y:156.675,z:0},pos3:{x:-35.792,y:27.675,z:0},pos4:{x:-25,y:40,z:0},pos5:{x:-82,y:170,z:0},pos6:{x:-2,y:2,z:0}}]},t.setCode=function(t){this.GM_INFO.scode=t},t.getKey=function(){return""},t.Authentication=function(){cc.fx.GameTool.Authentication()},t._instance=null,e=i([c("GameConfig")],t)}());o.GameConfig=a,cc._RF.pop()},{}],GameManager:[function(t,e,o){"use strict";cc._RF.push(e,"df248lSLllOZpCHwGqQ5Ye3","GameManager");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("./Sdk/MiniGameSdk"),r=cc._decorator,s=r.ccclass,l=r.property,h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.label=null,e.text="hello",e.Block_Array=[],e.Wall_Prefab=[],e.Block_Color=[],e.load1=!1,e.load2=!1,e.load3=!1,e.load4=!1,e.load5=!1,e}var o;return n(e,t),o=e,e.prototype.onLoad=function(){var t=this;window.initMgr(),this.timeNumber=3,this.startTimeCutDown(),cc.fx.GameConfig.init(!0),cc.fx.GameConfig.GM_INFO.gameState=!1,this.readMusicConfig(),console.log("\u97f3\u4e50\u5f00\u5173",cc.fx.GameConfig.GM_INFO.musicOpen),cc.fx.AudioManager._instance.playMusicGame(),this.load1=this.load2=this.load3=this.load4=this.load5=!1,setTimeout(function(){t.readUserData()},200),null==o._instance&&(o._instance=this,cc.game.addPersistRootNode(this.node),cc.resources.loadDir("prefab/block",cc.Prefab,function(e,o){if(e)return console.error("\u52a8\u6001\u52a0\u8f7d Prefab \u5931\u8d25:",e),void cc.director.loadScene("LoadScene");t.Block_Array=o,t.setSort(),t.load1=!0}),cc.resources.loadDir("prefab/wall",cc.Prefab,function(e,o){if(e)return console.error("\u52a8\u6001\u52a0\u8f7d Prefab \u5931\u8d25:",e),void cc.director.loadScene("LoadScene");t.Wall_Prefab=o,t.load2=!0,t.setWallPrefabSort()}),cc.sys.platform===cc.sys.WECHAT_GAME&&(wx.onHide(function(){t.onHide()}),wx.onShow(function(){t.onShow()})))},e.prototype.onHide=function(){cc.audioEngine.stopMusic(),cc.game.pause()},e.prototype.onShow=function(){cc.audioEngine.resumeMusic(),cc.game.resume()},e.prototype.loadParticleEffects=function(){},e.prototype.setWallPrefabSort=function(){var t=["down","downLeft","downRight","left","right","up","upLeft","upRight"];this.Wall_Prefab.sort(function(e,o){var i=t.indexOf(e.name),n=t.indexOf(o.name);return-1===i?1:-1===n?-1:i-n})},e.prototype.setParticleSort=function(){var t=["top","bot","rig","lef"];this.particleEffects.sort(function(e,o){var i=t.indexOf(e.name.substr(0,3)),n=t.indexOf(o.name.substr(0,3));return-1===i?1:-1===n?-1:i-n})},e.prototype.setSort=function(){this.Block_Array.sort(function(t,e){var o,i;return parseInt((null===(o=t.name.match(/\d+/))||void 0===o?void 0:o[0])||"0",10)-parseInt((null===(i=e.name.match(/\d+/))||void 0===i?void 0:i[0])||"0",10)})},e.prototype.start=function(){},e.prototype.startGame=function(){console.log("\u8fdb\u5165\u573a\u666f\u4e4b\u524d_____________",cc.fx.GameConfig.GM_INFO.first),cc.director.loadScene("HomeScene")},e.prototype.returnHome=function(){cc.tween(this.node.getChildByName("Game")).to(.5,{opacity:100}).call(function(){cc.director.loadScene("HomeScene",function(t){t?console.error("\u52a0\u8f7d HomeScene \u573a\u666f\u5931\u8d25:",t):cc.director.loadScene("HomeScene")})}).start(),cc.tween(this.node.getChildByName("mask")).to(.5,{opacity:255}).start()},e.prototype.readUserData=function(t){var e=this;if(void 0===t&&(t=0),"undefined"!=typeof wx&&null!==wx){var o=cc.fx.StorageMessage.getStorage("level");null==o||""==o||null==o?this.oldReadData(t):this.newReadData(),console.log("\u5373\u5c06\u8bfb\u53d6\u4f53\u529b\u503c"),cc.fx.GameTool.getHealth(function(){console.log("\u4f53\u529b\u503c\u5b8c\u6210\u8fdb\u5165\u6e38\u620f"),e.load5=!0})}else this.load3=!0,this.load4=!0,this.load5=!0,cc.fx.GameTool.getHealth(null)},e.prototype.readMusicConfig=function(){var t=cc.fx.StorageMessage.getStorage("music");null==t||""==t||null==t?(t={musicOpen:!0,effectOpen:!0,vibrateOpen:!0},cc.fx.StorageMessage.setStorage("music",t)):(cc.fx.GameConfig.GM_INFO.musicOpen=t.musicOpen,cc.fx.GameConfig.GM_INFO.effectOpen=t.effectOpen,cc.fx.GameConfig.GM_INFO.vibrateOpen=t.vibrateOpen)},e.prototype.newReadData=function(){var t=this;console.log("\u8bfb\u53d6\u65b0\u4fe1\u606f");var e=cc.fx.StorageMessage.getStorage("openid");null==e||""==e||null==e?(console.log("\u6ca1\u6709openid"),wx.cloud.callFunction({name:"userData",data:{action:"read"},success:function(t){if(console.log("\u8bfb\u53d6\u7528\u6237\u6570\u636e\u6210\u529f",t.result),404==t.result.code&&"\u672a\u627e\u5230\u7528\u6237\u6570\u636e"==t.result.message);else if(200==t.result.code&&t.result.data){cc.fx.GameConfig.GM_INFO.openid=t.result.openid,cc.fx.GameConfig.GM_INFO.username=t.result.data.username,cc.fx.GameConfig.GM_INFO.useravatar=t.result.data.useravatar;var e=t.result.data.register_time;a.MiniGameSdk.API.shushu_userSet(e),cc.fx.StorageMessage.setStorage("openid",cc.fx.GameConfig.GM_INFO.openid)}},fail:function(t){console.error("\u8bfb\u53d6\u7528\u6237\u6570\u636e\u5931\u8d25",t)}})):e&&(cc.fx.GameConfig.GM_INFO.openid=e),cc.fx.GameTool.getUserLevel(function(e){var o=Date.now(),i=cc.fx.StorageMessage.getStorage("level");if(404==e.result.code&&"\u672a\u627e\u5230\u5173\u5361\u6570\u636e"==e.result.message)i.level&&(cc.fx.GameConfig.GM_INFO.level=i.level),t.load4=!0,cc.fx.GameTool.setUserLevel(function(){});else if(200==e.result.code){var n=e.result.timestamp-i.timestamp;console.log("\u7b49\u7ea7\u65f6\u95f4\u5dee:",n),e.result.timestamp-i.timestamp<1e4?i.level&&(console.log("\u4ee5\u6e38\u620f\u524d\u7aef\u7b49\u7ea7\u4e3a\u51c6",e.result.data),cc.fx.GameConfig.GM_INFO.level=i.level,cc.fx.GameTool.setUserLevel(function(){})):(console.log("\u4ee5\u670d\u52a1\u5668\u7b49\u7ea7\u4e3a\u51c6",e.result.data),cc.fx.GameConfig.GM_INFO.level=e.result.data,i.level=cc.fx.GameConfig.GM_INFO.level,i.timestamp=o,cc.fx.StorageMessage.setStorage("level",i)),t.load4=!0}}),cc.fx.GameTool.getUserCoin(function(e){var o=Date.now(),i=cc.fx.StorageMessage.getStorage("coin");if(404==e.result.code&&"\u672a\u627e\u5230\u91d1\u5e01\u6570\u636e"==e.result.message)i.coin&&(cc.fx.GameConfig.GM_INFO.coin=i.coin),console.log("\u6ca1\u6709\u91d1\u5e01\u4fe1\u606f\uff0c\u4ece\u7528\u6237\u63a5\u53e3\u62ff\u5230\u6570\u636e",cc.fx.GameConfig.GM_INFO.coin),t.load3=!0,cc.fx.GameTool.setUserCoin(function(){});else if(200==e.result.code){var n=e.result.timestamp-i.timestamp;console.log("\u91d1\u5e01\u65f6\u95f4\u5dee:",n),e.result.timestamp-i.timestamp<1e4?(console.log("\u4ee5\u524d\u7aef\u91d1\u5e63\u4e3a\u51c6:",i),i.coin?cc.fx.GameConfig.GM_INFO.coin=i.coin:(cc.fx.GameConfig.GM_INFO.coin=e.result.data,i.coin=cc.fx.GameConfig.GM_INFO.coin,i.timestamp=o,console.log("11111111111"),cc.fx.StorageMessage.setStorage("coin",i)),console.log("\u6539\u53d8\u540e\u91d1\u5e01:",cc.fx.GameConfig.GM_INFO.coin),cc.fx.GameTool.setUserCoin(function(){})):(console.log("\u4ee5\u670d\u52a1\u5668\u91d1\u5e63\u4e3a\u51c6:",e.result.data),cc.fx.GameConfig.GM_INFO.coin=e.result.data,i.coin=cc.fx.GameConfig.GM_INFO.coin,i.timestamp=o,console.log("2222222222"),cc.fx.StorageMessage.setStorage("coin",i)),t.load3=!0}}),cc.fx.GameTool.getUserProp(function(t){var e=Date.now(),o=cc.fx.StorageMessage.getStorage("prop");if(404==t.result.code&&"\u672a\u627e\u5230\u9053\u5177\u6570\u636e"==t.result.message){if(console.log("\u6ca1\u6709\u9053\u5177\u4fe1\u606f\uff0c\u4ece\u7528\u6237\u63a5\u53e3\u62ff\u5230\u6570\u636e",o),null==o.freezeAmount||null==o.hammerAmount||null==o.magicAmount){console.log("2222222\u9053\u5177\u6570\u636e\u5f02\u5e38"),cc.fx.GameConfig.GM_INFO.freezeAmount=0,cc.fx.GameConfig.GM_INFO.hammerAmount=0,cc.fx.GameConfig.GM_INFO.magicAmoun=0;var i={freezeAmount:cc.fx.GameConfig.GM_INFO.freezeAmount,hammerAmount:cc.fx.GameConfig.GM_INFO.hammerAmount,magicAmount:cc.fx.GameConfig.GM_INFO.magicAmoun,timestamp:e};console.log("1111111\u4e0a\u4f20\u9053\u5177\u4fe1\u606f:",i),cc.fx.StorageMessage.setStorage("prop",i)}else cc.fx.GameConfig.GM_INFO.freezeAmount=t.result.data.freeze,cc.fx.GameConfig.GM_INFO.hammerAmount=t.result.data.hammer,cc.fx.GameConfig.GM_INFO.magicAmount=t.result.data.magic_wand;cc.fx.GameConfig.GM_INFO.freezeAmount=o.freezeAmount,cc.fx.GameConfig.GM_INFO.hammerAmount=o.hammerAmount,cc.fx.GameConfig.GM_INFO.magicAmount=o.magicAmount,cc.fx.GameTool.setUserProp(0,0,function(){})}else 200==t.result.code&&(t.result.timestamp-o.timestamp<1e4?(console.log("\u4ee5\u524d\u7aef\u9053\u5177\u4e3a\u4e3b:",o),null==o.freezeAmount||null==o.hammerAmount||null==o.magicAmount?(console.log("111111\u9053\u5177\u6570\u636e\u5f02\u5e38",t.result.data),cc.fx.GameConfig.GM_INFO.freezeAmount=t.result.data.freeze,cc.fx.GameConfig.GM_INFO.hammerAmount=t.result.data.hammer,cc.fx.GameConfig.GM_INFO.magicAmount=t.result.data.magic_wand,i={freezeAmount:cc.fx.GameConfig.GM_INFO.freezeAmount,hammerAmount:cc.fx.GameConfig.GM_INFO.hammerAmount,magicAmount:cc.fx.GameConfig.GM_INFO.magicAmount,timestamp:e},console.log("333333\u4e0a\u4f20\u9053\u5177\u4fe1\u606f:",i),cc.fx.StorageMessage.setStorage("prop",i)):(console.log("\u9053\u5177\u6570\u636e\u6b63\u5e38"),cc.fx.GameConfig.GM_INFO.freezeAmount=o.freezeAmount,cc.fx.GameConfig.GM_INFO.hammerAmount=o.hammerAmount,cc.fx.GameConfig.GM_INFO.magicAmount=o.magicAmount,cc.fx.GameTool.setUserProp(0,0,function(){}))):(cc.fx.GameConfig.GM_INFO.freezeAmount=t.result.data.freeze,cc.fx.GameConfig.GM_INFO.hammerAmount=t.result.data.hammer,cc.fx.GameConfig.GM_INFO.magicAmount=t.result.data.magic_wand,i={freezeAmount:cc.fx.GameConfig.GM_INFO.freezeAmount,hammerAmount:cc.fx.GameConfig.GM_INFO.hammerAmount,magicAmount:cc.fx.GameConfig.GM_INFO.magicAmount,timestamp:e},console.log("22222222\u4e0a\u4f20\u9053\u5177\u4fe1\u606f:",i,t.result),cc.fx.StorageMessage.setStorage("prop",i)))})},e.prototype.oldReadData=function(t){var e=this;console.log("\u8bfb\u53d6\u65e7\u4fe1\u606f");var o=Date.now();wx.cloud.callFunction({name:"userData",data:{action:"read"},success:function(t){if(console.log("\u8bfb\u53d6\u7528\u6237\u6570\u636e\u6210\u529f",t.result),404==t.result.code&&"\u672a\u627e\u5230\u7528\u6237\u6570\u636e"==t.result.message){t.result.openid&&(cc.fx.GameConfig.GM_INFO.openid=t.result.openid),cc.fx.GameConfig.GM_INFO.first=!0,e.load3=!0,e.load4=!0;var i={level:0,timestamp:o};cc.fx.StorageMessage.setStorage("level",i);var n={coin:0,timestamp:o};console.log("33333333333"),cc.fx.StorageMessage.setStorage("coin",n);var c={freezeAmount:0,hammerAmount:0,magicAmount:0,timestamp:o};cc.fx.StorageMessage.setStorage("prop",c),cc.fx.GameTool.setUserInfo(function(t){200==t.result.code&&(console.log("\u4e0a\u4f20\u7528\u6237\u4fe1\u606f\u6210\u529f",t),wx.cloud.callFunction({name:"userData",data:{action:"read"},success:function(t){if(console.log("\u4e0a\u4f20\u540e\uff0c\u8bfb\u53d6\u7528\u6237\u4fe1\u606f\uff0c\u4e3a\u4e0a\u62a5\u6ce8\u518c\u65f6\u95f4"),200==t.result.code){var e=t.result.data.register_time;a.MiniGameSdk.API.shushu_userSet(e)}}}))}),console.log("\u670d\u52a1\u5668\u4e5f\u6ca1\u6709\u91d1\u5e01\u4fe1\u606f",cc.fx.GameConfig.GM_INFO.coin),cc.fx.GameTool.setUserCoin(cc.fx.GameConfig.GM_INFO.coin,function(){}),cc.fx.GameTool.setUserLevel(function(){}),setTimeout(function(){cc.fx.GameConfig.GM_INFO.freezeAmount=0,cc.fx.GameConfig.GM_INFO.hammerAmount=0,cc.fx.GameConfig.GM_INFO.magicAmount=0,cc.fx.GameTool.setUserProp(0,0,function(t){200==t.result.code?console.log("\u4e0a\u4f20\u9053\u5177\u4fe1\u606f\u6210\u529f",t):(a.MiniGameSdk.API.showToast("\u7f51\u7edc\u5f02\u5e38\uff0c\u6b63\u5728\u52aa\u529b\u52a0\u8f7d"),setTimeout(function(){e.oldReadData(0)},1e3))})},0)}else if(200==t.result.code){if(t.result.data){cc.fx.GameConfig.GM_INFO.openid=t.result.openid,cc.fx.GameConfig.GM_INFO.level=t.result.data.level,cc.fx.GameConfig.GM_INFO.coin=t.result.data.coinAmount,cc.fx.GameConfig.GM_INFO.freezeAmount=t.result.data.freezeAmount,cc.fx.GameConfig.GM_INFO.hammerAmount=t.result.data.hammerAmount,cc.fx.GameConfig.GM_INFO.magicAmount=t.result.data.magicAmount,cc.fx.GameConfig.GM_INFO.username=t.result.data.username,cc.fx.GameConfig.GM_INFO.useravatar=t.result.data.useravatar,cc.fx.StorageMessage.setStorage("openid",cc.fx.GameConfig.GM_INFO.openid);var r=t.result.data.register_time;a.MiniGameSdk.API.shushu_userSet(r)}setTimeout(function(){cc.fx.GameTool.getUserCoin(function(t){if(404==t.result.code&&"\u672a\u627e\u5230\u91d1\u5e01\u6570\u636e"==t.result.message){var i={coin:0,timestamp:o};cc.fx.GameConfig.GM_INFO.coin=0,cc.fx.StorageMessage.setStorage("coin",i),console.log("\u6ca1\u6709\u91d1\u5e01\u4fe1\u606f\uff0c\u4ece\u7528\u6237\u63a5\u53e3\u62ff\u5230\u6570\u636e",cc.fx.GameConfig.GM_INFO.coin),cc.fx.GameTool.setUserCoin(function(){e.load3=!0})}else 200==t.result.code&&(cc.fx.GameConfig.GM_INFO.coin=t.result.data,i={coin:cc.fx.GameConfig.GM_INFO.coin,timestamp:o},console.log("\u5b58\u50a8\u91d1\u5e01\u4fe1\u606f:",cc.fx.GameConfig.GM_INFO.coin),console.log("4444444444"),cc.fx.StorageMessage.setStorage("coin",i),e.load3=!0)})},500),cc.fx.GameTool.getUserLevel(function(t){if(404==t.result.code&&"\u672a\u627e\u5230\u5173\u5361\u6570\u636e"==t.result.message){console.log("\u6ca1\u6709\u7b49\u7ea7\u4fe1\u606f\uff0c\u4ece\u7528\u6237\u63a5\u53e3\u62ff\u5230\u6570\u636e");var i={level:0,timestamp:o};cc.fx.GameConfig.GM_INFO.level=0,cc.fx.StorageMessage.setStorage("level",i),cc.fx.GameTool.setUserLevel(function(t){console.log("\u62ff\u5230\u7684\u6570\u636e",t),e.load4=!0})}else 200==t.result.code&&(console.log("\u6709\u7b49\u7ea7\u4fe1\u606f\uff0c\u4ece\u5173\u5361\u63a5\u53e3\u62ff\u5230\u6570\u636e",t.result.data),cc.fx.GameConfig.GM_INFO.level=t.result.data,i={level:cc.fx.GameConfig.GM_INFO.level,timestamp:o},cc.fx.StorageMessage.setStorage("level",i),e.load4=!0)}),setTimeout(function(){cc.fx.GameTool.getUserProp(function(t){if(404==t.result.code&&"\u672a\u627e\u5230\u9053\u5177\u6570\u636e"==t.result.message){console.log("\u6ca1\u6709\u9053\u5177\u4fe1\u606f\uff0c\u4ece\u7528\u6237\u63a5\u53e3\u62ff\u5230\u6570\u636e"),cc.fx.GameConfig.GM_INFO.freezeAmount=0,cc.fx.GameConfig.GM_INFO.hammerAmount=0,cc.fx.GameConfig.GM_INFO.magicAmount=0;var e={freezeAmount:0,hammerAmount:0,magicAmount:0,timestamp:o};console.log("\u4e0a\u4f20\u9053\u5177\u4fe1\u606f:",e),cc.fx.StorageMessage.setStorage("prop",e),cc.fx.GameTool.setUserProp(0,0,function(){})}else 200==t.result.code&&(console.log("\u6709\u9053\u5177\u4fe1\u606f\uff0c\u4ece\u9053\u5177\u63a5\u53e3\u62ff\u5230\u6570\u636e",t.result.data),cc.fx.GameConfig.GM_INFO.freezeAmount=t.result.data.freeze||0,cc.fx.GameConfig.GM_INFO.hammerAmount=t.result.data.hammer||0,cc.fx.GameConfig.GM_INFO.magicAmount=t.result.data.magic_wand||0,e={freezeAmount:cc.fx.GameConfig.GM_INFO.freezeAmount,hammerAmount:cc.fx.GameConfig.GM_INFO.hammerAmount,magicAmount:cc.fx.GameConfig.GM_INFO.magicAmount,timestamp:o},console.log("\u4e0a\u4f20\u9053\u5177\u4fe1\u606f:",e),cc.fx.StorageMessage.setStorage("prop",e))})},0)}},fail:function(o){console.error("\u8bfb\u53d6\u7528\u6237\u6570\u636e\u5931\u8d25",o),t<15?(console.error("\u8bfb\u53d6\u7528\u6237\u6570\u636e\u5931\u8d25\uff0c\u7b2c "+(t+1)+" \u6b21\u91cd\u8bd5\uff0c\u9519\u8bef\u4fe1\u606f:",o),setTimeout(function(){e.readUserData(t+1)},2e3)):(console.error("\u8bfb\u53d6\u7528\u6237\u6570\u636e\u5931\u8d25\uff0c\u8fbe\u5230\u6700\u5927\u91cd\u8bd5\u6b21\u6570\uff0c\u9000\u51fa\u6e38\u620f",o),cc.game.end())}})},e.prototype.setUserData=function(){cc.fx.GameConfig.GameTool(function(t){console.log("\u4e0a\u4f20",t)})},e.prototype.startTimeCutDown=function(){this.scheduleCallback=function(){this.timeNumber<=0?this.stopTimeCutDown():this.timeNumber-=1}.bind(this),this.schedule(this.scheduleCallback,1)},e.prototype.stopTimeCutDown=function(){this.scheduleCallback&&this.unschedule(this.scheduleCallback)},e.prototype.update=function(){this.load1&&this.load2&&this.load3&&this.load4&&this.load5&&this.timeNumber<=0&&(this.load1=this.load2=!1,a.MiniGameSdk.API.shushu_Init(),this.startGame())},e._instance=null,c([l(cc.Label)],e.prototype,"label",void 0),c([l],e.prototype,"text",void 0),c([l({type:[cc.Prefab],tooltip:"\u65b9\u5757\u6570\u7ec4"})],e.prototype,"Block_Array",void 0),c([l({type:[cc.Prefab],tooltip:"\u5899\u58c1\u6570\u7ec4"})],e.prototype,"Wall_Prefab",void 0),c([l({type:[cc.SpriteAtlas],tooltip:"\u65b9\u5757\u989c\u8272"})],e.prototype,"Block_Color",void 0),o=c([s],e)}(cc.Component);o.default=h,cc._RF.pop()},{"./Sdk/MiniGameSdk":"MiniGameSdk"}],GameOver:[function(t,e,o){"use strict";cc._RF.push(e,"805c6nf399HWZeuWnNB9CTH","GameOver");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.count=null,e.time=null,e.selfNode=null,e.one=null,e.two=null,e.three=null,e.four=null,e.five=null,e}return n(e,t),e.prototype.start=function(){this.count.string=cc.fx.GameConfig.GM_INFO.score+"";var t=0,e=cc.fx.GameConfig.GM_INFO.successList;if(e.length>0){for(var o=0,i=0;i4&&(e=4);for(var o=0;o<=e;o++)this.setRank(o,this.listData[o])}},e.prototype.setRank=function(t,e){var o=this;if(e){var i=null;0==t?i=this.one:1==t?i=this.two:2==t?i=this.three:3==t?i=this.four:4==t&&(i=this.five);for(var n=t+1,c=0;c=a&&(this.selfData=e,this.selfNode.active=!0),i&&(i.active=!0,e.nickName.length>=4&&(e.nickName=cc.fx.GameTool.subName(e.nickName,4)),i.getChildByName("name").getComponent(cc.Label).string=e.nickName,i.getChildByName("total").getComponent(cc.Label).string=e.score,cc.fx.GameTool.setPic(i.getChildByName("pic").getChildByName("icon"),e.pic))}},c([s(cc.Label)],e.prototype,"count",void 0),c([s(cc.Label)],e.prototype,"time",void 0),c([s(cc.Node)],e.prototype,"selfNode",void 0),c([s(cc.Node)],e.prototype,"one",void 0),c([s(cc.Node)],e.prototype,"two",void 0),c([s(cc.Node)],e.prototype,"three",void 0),c([s(cc.Node)],e.prototype,"four",void 0),c([s(cc.Node)],e.prototype,"five",void 0),c([r],e)}(cc.Component);o.default=l,cc._RF.pop()},{}],GameScene:[function(t,e){"use strict";cc._RF.push(e,"e8b235WjRBErajwLmN8xFUz","GameScene"),cc._RF.pop()},{}],GameTool:[function(t,e,o){"use strict";cc._RF.push(e,"43bfcJ6/25Fs4fHUE0PeBOX","GameTool"),Object.defineProperty(o,"__esModule",{value:!0}),o.GameTool=void 0;var i=t("../../Sdk/MiniGameSdk"),n={_startTime:0,_endTime:0,_totalTime:0,Authentication:function(){var t="user_"+cc.fx.GameConfig.GM_INFO.gameId,e=JSON.parse(localStorage.getItem(t));if("undifend"==e||null==e||""==e){var o=window.location.href;if(!this.containsTrain(o)){var i="https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback="+location.href;window.location.href=i}}else cc.fx.StorageMessage.setStorage(t,e),cc.fx.GameConfig.GM_INFO.userId=parseInt(e.userId)},containsTrain:function(t){return/from=train/i.test(t)},setGameData:function(){cc.fx.GameConfig.GAME_DATA=[],cc.fx.GameConfig.GAME_DATA.push(cc.fx.GameConfig.CLICK_DATA),cc.fx.GameConfig.CLICK_init(),cc.fx.GameConfig.GAME_DATA,this.getMatchId(),cc.fx.GameConfig.GM_INFO.gameId,cc.fx.GameConfig.GM_INFO.userId,cc.fx.GameConfig.GM_INFO.scode},setRank:function(t){cc.fx.GameConfig.GM_INFO.gameId,cc.fx.GameConfig.GM_INFO.userId,t.score,t.date,cc.fx.GameConfig.GM_INFO.success},getRank:function(t){t.length,cc.fx.GameConfig.GM_INFO.gameId,cc.fx.GameConfig.GM_INFO.userId},getMatchId:function(){var t=cc.sys.localStorage.getItem("matchId"),e=t;if("undifend"==t||null==t)t=this.setMatchId();else if(1==this.containsNanana(t))t=this.setMatchId();else{var o=parseInt(e.substring(10,e.length));1==cc.fx.GameConfig.GM_INFO.level&&(o+=1,t=e.slice(0,10)+o+"",this.containsNanana(t)&&(t=this.setMatchId()),cc.fx.GameConfig.GM_INFO.matchId=t,cc.sys.localStorage.setItem("matchId",t))}return 1==this.containsNanana(t)&&(t=this.setMatchId()),t},containsNanana:function(t){return/na/i.test(t)},setMatchId:function(){for(var t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",e=[],o=0;o<10;o++){var i=Math.floor(Math.random()*t.length),n=t.charAt(i);e.push(n)}var c=e.join("")+1+"";return cc.sys.localStorage.setItem("matchNumber",1),cc.sys.localStorage.setItem("matchId",c),cc.fx.GameConfig.GM_INFO.matchId=c,c},subName:function(t,e){return t.length>e&&(t=t.substring(0,e)+"..."),t},setPic:function(t,e){t.active=!1;var o=e;setTimeout(function(){fetch(o).then(function(t){return t.headers.get("Content-Length")}).then(function(e){"5093"==e&&(t.active=!0)}).catch(function(){})},100),cc.assetManager.loadRemote(o,{ext:".png"},function(e,o){o&&(t.active=!0,t.getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(o))})},getRankData:function(t,e,o){e.listData=t.data.list,e.selfData=t.data.info;var i=[],n=!1;cc.fx.GameTool.setPic(e.selfNode.getChildByName("pic").getChildByName("icon"),e.selfData.pic);for(var c=0;c<=e.listData.length-1;c++)i.push({rank:c+1,name:e.listData[c].nickName,total:e.listData[c].score,time:null,pic:e.listData[c].pic}),cc.fx.GameConfig.GM_INFO.userId==e.listData[c].userId&&(n=!0,e.rankNumber=c,e.selfNode.getChildByName("rankLab").getComponent(cc.Label).string=c+1+""),c==e.listData.length-1&&0==n&&(e.rankNumber=c,e.selfNode.getChildByName("rankLab").getComponent(cc.Label).string="99+");switch(e.selfData.nickName=cc.fx.GameTool.subName(e.selfData.nickName,o),e.selfNode.getChildByName("nameLab").getComponent(cc.Label).string=e.selfData.nickName,e.selfNode.getChildByName("totalLab").getComponent(cc.Label).string=e.selfData.score,cc.fx.GameTool.getTimeShenNong(e.selfData.totleTimes),e.selfNode.getChildByName("rankLab").getComponent(cc.Label).string){case"1":e.selfNode.getChildByName("rank").getChildByName("one").active=!0;break;case"2":e.selfNode.getChildByName("rank").getChildByName("two").active=!0;break;case"3":e.selfNode.getChildByName("rank").getChildByName("three").active=!0}6==o&&(e.rankList.setData(i),e.selfNode.opacity=255,0==e.selfData.totalSunCount&&(e.selfNode.opacity=0))},getSeedRandom:function(t,e){e=e||1,t=t||0,cc.fx.GameConfig.GM_INFO.currSeed=(9301*cc.fx.GameConfig.GM_INFO.currSeed+49297)%233280;var o=cc.fx.GameConfig.GM_INFO.currSeed/233280;return parseInt(t+o*(e-t))},getCustom:function(t){var e=cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom);"undifend"==e||null==e||""==e?this.setCustom():(cc.fx.GameConfig.GM_INFO_SET("custom",e[0]),0==e[0]&&1!=t||(e.shift(),0==e.length?this.setCustom():cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,e)))},setCustom:function(){for(var t=cc.fx.GameConfig.LEVEL_INFO.length,e=[],o=1;o16.2/9)},setFit:function(){return cc.fx.GameTool.getSetScreenResolutionFlag()},getGameInfo:function(){return!1},setGameInfo:function(){},typingAni:function(t,e,o,i){var n=i,c="",a=e.split(""),r=a.length,s=0;n.func=function(){c+=a[s],t.string=c,++s==r&&(n.unschedule(n.func),o&&o())},n.schedule(n.func,.1,cc.macro.REPEAT_FOREVER,0)},getTimeMargin:function(t){var e,o;e=t,o=parseInt(e/3600+"");var i=parseInt((e-3600*o)/60+""),n=""+i;i<10&&(n="0"+i);var c=e-3600*o-60*i,a=c+"";return c<10&&(a="0"+c),n+":"+a},getTimeShenNong:function(t){var e,o=0;return(e=t=parseInt(t/1e3+""))>60&&(o=parseInt(e/60+"")),o+"'"+(e-60*o)+"''"},shuffleArray:function(t){for(var e,o=t.length-1;o>0;o--){var i=Math.floor(Math.random()*(o+1));e=[t[i],t[o]],t[o]=e[0],t[i]=e[1]}return t},addLevel:function(t){cc.fx.GameConfig.GM_INFO.level+=1,cc.fx.GameConfig.GM_INFO.level>156&&(cc.fx.GameConfig.GM_INFO.level=156);var e=Date.now(),o={level:cc.fx.GameConfig.GM_INFO.level,timestamp:e};cc.fx.StorageMessage.setStorage("level",o);var n={time:t.count_Time,add_Time:t.add_Time,result:"success"};cc.fx.GameTool.shushu_Track("finish_stage",n),i.MiniGameSdk.API.shushu_SetSuperProperties(),cc.fx.GameTool.setUserLevel(function(){})},changeCoin:function(t){if(console.log("changeCoin",t),null!=t&&!(t<0&&cc.fx.GameConfig.GM_INFO.coin<-t)){cc.fx.GameConfig.GM_INFO.coin+=t,cc.fx.GameConfig.GM_INFO.coin<0&&(cc.fx.GameConfig.GM_INFO.coin=0);var e=Date.now(),o={coin:cc.fx.GameConfig.GM_INFO.coin,timestamp:e};i.MiniGameSdk.API.shushu_SetSuperProperties(),cc.fx.StorageMessage.setStorage("coin",o),cc.fx.GameTool.setUserCoin(function(){})}},getUserCoin:function(t){"undefined"!=typeof wx&&null!==wx&&wx.cloud.callFunction({name:"userCoin",data:{action:"read"},success:function(e){t&&t(e)},fail:function(e){t(e)}})},setUserCoin:function(t){"undefined"!=typeof wx&&null!==wx&&((cc.fx.GameConfig.GM_INFO.coin<=0||null==cc.fx.GameConfig.GM_INFO.coin)&&(console.log("\u91d1\u5e01\u4e0a\u4f20\u5931\u8d25",cc.fx.GameConfig.GM_INFO.coin),cc.fx.GameConfig.GM_INFO.coin=0),console.log("\u5373\u5c06\u4e0a\u4f20\u7684\u91d1\u5e01\u6570\u91cf:",cc.fx.GameConfig.GM_INFO.coin),wx.cloud.callFunction({name:"userCoin",data:{action:"save",coinAmount:cc.fx.GameConfig.GM_INFO.coin},success:function(e){e.result.code,t&&t(e)},fail:function(e){t&&t(e),console.error("\u5b58\u50a8\u7528\u6237\u6570\u636e\u5931\u8d25",e)}}))},getUserLevel:function(t){"undefined"!=typeof wx&&null!==wx&&wx.cloud.callFunction({name:"userLevel",data:{action:"read"},success:function(e){t&&t(e)},fail:function(e){t(e)}})},getHealth:function(t){var e=cc.fx.StorageMessage.getStorage("health"),o=Date.now();if(cc.fx.GameConfig.GM_INFO.hp=5,null==e||null==e||""==e)console.log("\u6ca1\u5b58\u50a8\u8fc7\u4f53\u529b\u503c\uff0c\u521d\u8fdb"),cc.fx.GameConfig.GM_INFO.hp=5,cc.fx.GameTool.getUserHealth(function(e){if(console.log("\u4f53\u529b\u63a5\u53e3\u8fd4\u56de\u7ed3\u679c",e),200==e.result.code){cc.fx.GameConfig.GM_INFO.hp=e.result.data,cc.fx.GameConfig.GM_INFO.min_Time=e.result.timestamp;var o={health:cc.fx.GameConfig.GM_INFO.hp,timestamp:e.result.timestamp};i.MiniGameSdk.API.shushu_SetSuperProperties(),cc.fx.StorageMessage.setStorage("health",o)}else 404==e.result.code&&"\u672a\u627e\u5230\u4f53\u529b\u6570\u636e"==e.result.message&&cc.fx.GameTool.setUserHealth(0,function(){});t&&t()});else if(console.log("\u6709\u5b58\u50a8\u8fc7\u4f53\u529b\u503c:",e),cc.fx.GameConfig.GM_INFO.hp=e.health,t&&(console.log("\u4f53\u529b\u503c\u8bfb\u53d6\u5b8c\u6bd5"),t()),e.health<0)console.log("\u4f53\u529b\u503c\u5f02\u5e38\uff0c\u5f52\u96f6"),cc.fx.GameConfig.GM_INFO.hp=0,cc.fx.GameTool.setUserHealth(0,function(){t&&t()});else if(e.health<5){var n=o-e.timestamp,c=Math.min(5-e.health,Math.floor(n/18e5));if(c>0)e.health+=c,cc.fx.GameTool.setUserHealth(c,function(){t&&t()}),console.log("\u4f53\u529b\u503c\u6062\u590d "+c+" \u70b9\uff0c\u5f53\u524d\u4f53\u529b\u503c: "+cc.fx.GameConfig.GM_INFO.hp);else{var a=Math.ceil((18e5-n%18e5)/1e3);console.log("\u4f53\u529b\u503c\u672a\u6ee1\uff0c\u5f85\u6062\u590d\uff0c\u8ddd\u79bb\u4e0b\u4e00\u6b21\u6062\u590d\u8fd8\u5269 "+a+" \u79d2"),cc.fx.GameConfig.GM_INFO.min_Time=a}}},getUserHealth:function(t){"undefined"!=typeof wx&&null!==wx&&(console.log("\u5373\u5c06\u8fdb\u5165\u4f53\u529b\u83b7\u53d6\u63a5\u53e3"),wx.cloud.callFunction({name:"userHealth",data:{action:"read"},success:function(e){t&&t(e)},fail:function(e){t(e)}}))},setUserHealth:function(t,e){cc.fx.GameConfig.GM_INFO.hp+=t;var o=Date.now(),n={};if(t<0&&4!=cc.fx.GameConfig.GM_INFO.hp){var c=cc.fx.StorageMessage.getStorage("health").timestamp;n={health:cc.fx.GameConfig.GM_INFO.hp,timestamp:c}}else n={health:cc.fx.GameConfig.GM_INFO.hp,timestamp:o};cc.fx.StorageMessage.setStorage("health",n),i.MiniGameSdk.API.shushu_SetSuperProperties(),"undefined"!=typeof wx&&null!==wx&&wx.cloud.callFunction({name:"userHealth",data:{action:"save",healthAmount:cc.fx.GameConfig.GM_INFO.hp,timestamp:o},success:function(t){e&&e(t)},fail:function(t){e&&e(t)}})},buyReview:function(t,e){"undefined"!=typeof wx&&null!==wx&&e()},buyProp:function(t,e){if("undefined"!=typeof wx&&null!==wx){cc.fx.GameTool.changeCoin(-1500),cc.fx.GameTool.setUserProp(t,3,function(){});var o={id:t+"",num:3};cc.fx.GameTool.shushu_Track("resource_get",o);var i="";2001==t?i="freeze_in_game":2002==t?i="hammer_in_game":2003==t&&(i="wand_in_game");var n={item_id:i,item_num:1,item_price:1500,cost_type:"gold"};console.log("____________\u5373\u5c06\u4e0a\u4f20Shop_buy",n),cc.fx.GameTool.shushu_Track("shop_buy",n),e()}},setUserLevel:function(t){"undefined"!=typeof wx&&null!==wx&&wx.cloud.callFunction({name:"userLevel",data:{action:"save",levelAmount:cc.fx.GameConfig.GM_INFO.level},success:function(e){t&&t(e)},fail:function(){}})},getUserProp:function(t){"undefined"!=typeof wx&&null!==wx&&wx.cloud.callFunction({name:"userProp",data:{action:"read"},success:function(e){e.result.data,t&&t(e)},fail:function(e){t(e)}})},setUserProp:function(t,e,o){if("undefined"!=typeof wx&&null!==wx){var i=null;0==t?i={freeze:cc.fx.GameConfig.GM_INFO.freezeAmount,hammer:cc.fx.GameConfig.GM_INFO.hammerAmount,magic_wand:cc.fx.GameConfig.GM_INFO.magicAmount}:2001==t?i=e:2002==t?i=e:2003==t&&(i=e),wx.cloud.callFunction({name:"userProp",data:{action:"save",propType:t,propData:i},success:function(t){o&&o(t)},fail:function(t){o&&o(t),console.error("\u5b58\u50a8\u9053\u5177\u6570\u636e\u5931\u8d25",t)}})}},consumeCoins:function(){},setUserInfo:function(t){if("undefined"!=typeof wx&&null!==wx){var e=cc.fx.GameTool.formatDate(new Date),o={username:cc.fx.GameConfig.GM_INFO.username,useravatar:cc.fx.GameConfig.GM_INFO.useravatar,register_time:e};wx.cloud.callFunction({name:"userData",data:{action:"save",userData:o},success:function(e){t&&t(e)},fail:function(){t&&t("fail")}})}},formatDate:function(t){return t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0")+"-"+String(t.getDate()).padStart(2,"0")+" "+String(t.getHours()).padStart(2,"0")+":"+String(t.getMinutes()).padStart(2,"0")+":"+String(t.getSeconds()).padStart(2,"0")+"."+String(t.getMilliseconds()).padStart(3,"0")},getTime:function(){return(new Date).getTime()},pushLister:function(){},removeAllLister:function(){},shushu_Track:function(t,e){var o={};switch(t){case"register":break;case"enter_stage":o={stage_id:cc.fx.GameConfig.GM_INFO.level+1};break;case"finish_stage":o={stage_id:cc.fx.GameConfig.GM_INFO.level+1,stage_duration:e.time,added_time:e.add_Time,result:e.result};break;case"resource_get":o={change_reason:"\u8d2d\u4e70\u9053\u5177",change_num:e.num,resource_id:e.id};break;case"resource_cost":o={change_reason:"\u4f7f\u7528\u9053\u5177",change_num:e.num,resource_id:e.id};break;case"shop_buy":o={item_id:e.item_id,item_num:e.item_num,item_price:e.item_price,cost_type:e.cost_type},console.log("\u6570\u636e:",o)}i.MiniGameSdk.API.shushu_Track(t,o)},getWechatGameVersion:function(){switch(wx.getAccountInfoSync().miniProgram.envVersion){case"develop":return"\u5f00\u53d1\u7248";case"trial":return"\u4f53\u9a8c\u7248";case"release":return"\u6b63\u5f0f\u7248";default:return"\u672a\u77e5\u7248\u672c"}}};o.GameTool=n,cc._RF.pop()},{"../../Sdk/MiniGameSdk":"MiniGameSdk"}],HttpUtil:[function(t,e,o){"use strict";cc._RF.push(e,"771a32aQBNGVKd3+66gyTKA","HttpUtil");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=(a.property,t("./crypto-js.min.js")),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),c([r],e)}(cc.Component);o.default=l;new(function(){function t(){this.keyHex=this.getHetKey()}return t.prototype.getHetKey=function(){return s.enc.Utf8.parse("hui231%1")},t.prototype.encryptByDES=function(t,e){if(!t)return t;var o=e?s.enc.Utf8.parse(e):this.keyHex;return s.DES.encrypt(t,o,{mode:s.mode.ECB,padding:s.pad.Pkcs7}).toString()},t.prototype.decryptByDES=function(t,e){var o=e?s.enc.Utf8.parse(e):this.keyHex;return s.DES.decrypt({ciphertext:s.enc.Base64.parse(t)},o,{mode:s.mode.ECB,padding:s.pad.Pkcs7}).toString(s.enc.Utf8)},t.prototype.hmacSha256=function(t,e){var o=e?s.enc.Utf8.parse(e):this.keyHex;return s.HmacSHA256(t,o).toString()},t.prototype.verifyHmacSha256=function(t,e){return s.HmacSHA256(t,this.keyHex).toString()===e},t.prototype.encryptCBC=function(t){if(!t)return t;var e=s.enc.Utf8.parse(t);return s.AES.encrypt(e,this.keyHex,{iv:this.keyHex,mode:s.mode.CBC,padding:s.pad.ZeroPadding}).toString()},t.prototype.decryptCBC=function(t){if(!t)return t;var e=s.enc.Hex.parse(t),o=s.enc.Base64.stringify(e);return s.AES.decrypt(o,this.keyHex,{iv:this.keyHex,mode:s.mode.CBC,padding:s.pad.ZeroPadding}).toString(s.enc.Utf8).toString()},t}()),cc._RF.pop()},{"./crypto-js.min.js":"crypto-js.min"}],ItemRender:[function(t,e,o){"use strict";cc._RF.push(e,"ca0f9k0oBVDbpQC+OMNTF3m","ItemRender");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=(a.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=null,e.itemIndex=0,e}return n(e,t),e.prototype.dataChanged=function(){this.data.name=cc.fx.GameTool.subName(this.data.name,6),this.node.getChildByName("rankLab").getComponent(cc.Label).string=this.data.rank+"",this.node.getChildByName("nameLab").getComponent(cc.Label).string=this.data.name+"",this.node.getChildByName("totalLab").getComponent(cc.Label).string=this.data.total,cc.fx.GameTool.getTimeShenNong(this.data.time),this.node.getChildByName("rank").getChildByName("one").active=!1,this.node.getChildByName("rank").getChildByName("two").active=!1,this.node.getChildByName("rank").getChildByName("three").active=!1,1==this.data.rank?(this.node.getChildByName("rank").getChildByName("one").active=!0,this.node.getChildByName("rankLab").active=!1):2==this.data.rank?(this.node.getChildByName("rank").getChildByName("two").active=!0,this.node.getChildByName("rankLab").active=!1):3==this.data.rank?(this.node.getChildByName("rank").getChildByName("three").active=!0,this.node.getChildByName("rankLab").active=!1):this.node.getChildByName("rankLab").active=!0,this.setPic()},e.prototype.setPic=function(){var t=this;this.node.getChildByName("pic").getChildByName("icon").active=!1,this.node.getChildByName("pic").getChildByName("pic").active=!1;var e=this.data.pic;fetch(e).then(function(t){return t.headers.get("Content-Length")}).then(function(e){"5093"==e&&(t.node.getChildByName("pic").getChildByName("icon").active=!0)}).catch(function(){}),cc.assetManager.loadRemote(e,{ext:".png"},function(e,o){o?(t.node.getChildByName("pic").getChildByName("pic").active=!0,t.node.getChildByName("pic").getChildByName("pic").getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(o)):console.log(e,o)})},c([r],e)}(cc.Component));o.default=s,cc._RF.pop()},{}],JiaZai:[function(t,e,o){"use strict";cc._RF.push(e,"1dc93b4fehOrpGgTkihBH4g","JiaZai");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("./GameManager"),r=t("./NumberToImage"),s=t("./Sdk/MiniGameSdk"),l=t("./lq_collide_system/lq_collide_system"),h=cc._decorator,p=h.ccclass,u=h.property,d=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.node1=null,e.node2=null,e.node3=null,e.Block_Color=[],e.custom=null,e.level=null,e.coin=null,e.Stamina=null,e}return n(e,t),e.prototype.onLoad=function(){cc.game.setFrameRate(63),l.LQCollideSystem.is_enable=!0,a.default._instance.Block_Color=this.Block_Color,cc.fx.GameConfig.GM_INFO.first&&(console.log("\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u51c6\u5907\u6ce8\u518c\u4e8b\u4ef6",cc.fx.GameConfig.GM_INFO.openid),""!=cc.fx.GameConfig.GM_INFO.openid&&(console.log("\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u53d1\u9001\u6ce8\u518c\u4e8b\u4ef6"),cc.fx.GameTool.shushu_Track("register")),cc.fx.AudioManager._instance.playEffect("zhuan1",null),this.node.getChildByName("zhuanchang").active=!0,this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",!1),setTimeout(function(){cc.fx.GameConfig.GM_INFO.first=!1,cc.director.loadScene("GameScene")},1e3))},e.prototype.start=function(){var t=this;cc.fx.GameTool.getHealth(null),setTimeout(function(){r.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.level+1,25,15,"big_",t.level,!1),r.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin,30,15,"coin_",t.coin,!0),t.setHealthInfo()},0),cc.fx.GameConfig.GM_INFO.gameState?(this.node.getChildByName("zhuanchang").active=!0,setTimeout(function(){cc.fx.AudioManager._instance.playEffect("zhuan2",null),t.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"down",!1),t.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setCompleteListener(function(e){"down"!==e.animation.name||cc.fx.GameConfig.GM_INFO.first||(t.node.getChildByName("zhuanchang").active=!1)})},500)):cc.fx.GameConfig.GM_INFO.first||(this.node.getChildByName("zhuanchang").active=!1)},e.prototype.startTimeCutDown=function(){this.scheduleCallback=function(){var t=this;if(!this.pause)if(cc.fx.GameConfig.GM_INFO.min_Time<=0){this.stopTimeCutDown();var e=cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);this.Stamina.getChildByName("time").getComponent(cc.Label).string=e,cc.fx.GameTool.setUserHealth(1,function(){cc.fx.GameTool.getHealth(null),t.setHealthInfo()})}else cc.fx.GameConfig.GM_INFO.min_Time-=1,e=cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time),this.Stamina.getChildByName("time").getComponent(cc.Label).string=e}.bind(this),this.schedule(this.scheduleCallback,1)},e.prototype.stopTimeCutDown=function(){this.scheduleCallback&&this.unschedule(this.scheduleCallback)},e.prototype.setHealthInfo=function(){if(5==cc.fx.GameConfig.GM_INFO.hp)this.Stamina.getChildByName("man").active=!0,this.Stamina.getChildByName("health").active=!1,this.Stamina.getChildByName("time").active=!1;else if(this.Stamina.getChildByName("man").active=!1,this.Stamina.getChildByName("health").active=!0,r.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.hp,25,15,"coin_",this.Stamina.getChildByName("health"),!1),this.Stamina.getChildByName("time").active=!0,0!=cc.fx.GameConfig.GM_INFO.min_Time){var t=cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);this.Stamina.getChildByName("time").getComponent(cc.Label).string=t,this.startTimeCutDown()}},e.prototype.startGame=function(){cc.fx.AudioManager._instance.playEffect("anniu_Big",null),cc.fx.GameConfig.GM_INFO.hp<1?s.MiniGameSdk.API.showToast("\u4f53\u529b\u503c\u4e0d\u8db3"):this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl")._touch&&(this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl").setTouch(!1),cc.fx.AudioManager._instance.playEffect("zhuan1",null),this.node.getChildByName("zhuanchang").active=!0,this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",!1),cc.fx.GameConfig.LEVEL_INFO_init(!0,1e3))},e.prototype.closeRank=function(){this.node.getChildByName("Rank").active=!1},e.prototype.openRank=function(){this.node.getChildByName("Rank").active=!0},e.prototype.openReward=function(){this.node.getChildByName("Reward").active=!0},e.prototype.clickShop=function(){var t=cc.fx.GameConfig.GM_INFO.openid;console.log("\u5373\u5c06\u521b\u5efacreateorder"),wx.cloud.callFunction({name:"createOrder",data:{userId:t,productId:"1"},success:function(t){console.log("createOrder\u7ed3\u679c:",t.result);var e=t.result.paymentResult.payment;console.log("payment:",e),wx.requestPayment({timeStamp:e.timeStamp,nonceStr:e.nonceStr,package:e.package,signType:e.signType||"MD5",paySign:e.paySign,success:function(t){console.log("\u652f\u4ed8\u6210\u529f",t)},fail:function(t){console.log("\u652f\u4ed8\u5931\u8d25",t)},complete:function(t){console.log("\u652f\u4ed8\u5b8c\u6210",t)}})}})},e.prototype.openPause=function(){cc.fx.AudioManager._instance.playEffect("anniu_little",null),console.log(cc.fx.GameConfig.GM_INFO),null==cc.fx.GameConfig.GM_INFO.openid&&(console.log(cc.fx.GameConfig.GM_INFO.openid),cc.fx.GameConfig.GM_INFO.openid=""),this.node.getChildByName("Pause").active=!0,this.node.getChildByName("Pause").getChildByName("openID").getComponent(cc.Label).string=cc.fx.GameConfig.GM_INFO.openid},e.prototype.closePause=function(){cc.fx.AudioManager._instance.playEffect("anniu_little",null),this.node.getChildByName("Pause").active=!1},e.prototype.closeReward=function(){this.node.getChildByName("Reward").active=!1},e.prototype.openStamina=function(){this.node.getChildByName("Stamina").active=!0},e.prototype.closeStamina=function(){this.node.getChildByName("Stamina").active=!1},c([u(cc.Node)],e.prototype,"node1",void 0),c([u(cc.Node)],e.prototype,"node2",void 0),c([u(cc.Node)],e.prototype,"node3",void 0),c([u({type:[cc.SpriteAtlas],tooltip:"\u65b9\u5757\u989c\u8272"})],e.prototype,"Block_Color",void 0),c([u(cc.EditBox)],e.prototype,"custom",void 0),c([u(cc.Node)],e.prototype,"level",void 0),c([u(cc.Node)],e.prototype,"coin",void 0),c([u(cc.Node)],e.prototype,"Stamina",void 0),c([p],e)}(cc.Component);o.default=d,cc._RF.pop()},{"./GameManager":"GameManager","./NumberToImage":"NumberToImage","./Sdk/MiniGameSdk":"MiniGameSdk","./lq_collide_system/lq_collide_system":"lq_collide_system"}],Key:[function(t,e,o){"use strict";cc._RF.push(e,"92465qnUTJDw5STq1t7oelo","Key");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("../Map"),r=cc._decorator,s=r.ccclass,l=(r.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=60,e}return n(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){},e.prototype.init=function(t){t&&(this.time=t),this.node.getChildByName("time").active=!0,this.node.getChildByName("time").getComponent(cc.Label).string=this.time.toString(),this.schedule(this.updateTime,1)},e.prototype.updateTime=function(){this.time--,this.node.getChildByName("time").getComponent(cc.Label).string=this.time.toString(),this.time<=0&&(this.unschedule(this.updateTime),this.node.destroy(),a.default._instance.failLevel())},c([s],e)}(cc.Component));o.default=l,cc._RF.pop()},{"../Map":"Map"}],List:[function(t,e,o){"use strict";cc._RF.push(e,"d5421HgLShFKIjj5f18m1mi","List");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.StartAxisType=o.ListType=void 0;var a,r,s=t("./ItemRender"),l=cc._decorator,h=l.ccclass,p=l.property;(function(t){t[t.Horizontal=1]="Horizontal",t[t.Vertical=2]="Vertical",t[t.Grid=3]="Grid"})(a=o.ListType||(o.ListType={})),function(t){t[t.Horizontal=1]="Horizontal",t[t.Vertical=2]="Vertical"}(r=o.StartAxisType||(o.StartAxisType={}));var u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.itemRender=null,e.type=a.Vertical,e.startAxis=r.Horizontal,e.spaceX=0,e.spaceY=0,e.padding_top=0,e.padding_buttom=0,e.padding_left=0,e._padding=0,e.padding_right=0,e.scrollView=null,e.content=null,e.itemDataList=[],e.spawnCount=0,e.itemList=[],e.itemHeight=0,e.itemWidth=0,e.itemPool=[],e.halfScrollView=0,e.lastContentPosX=0,e.lastContentPosY=0,e.gridRow=0,e.gridCol=0,e.updateTimer=0,e.updateInterval=.1,e.bScrolling=!1,e.updateFun=function(){},e}return n(e,t),e.prototype.onLoad=function(){this.itemHeight=this.itemRender.height,this.itemWidth=this.itemRender.width,this.scrollView=this.node.getComponent(cc.ScrollView),this.content=this.scrollView.content,this.content.anchorX=0,this.content.anchorY=1,this.content.removeAllChildren(),this.scrollView.node.on("scrolling",this.onScrolling,this)},e.prototype.setData=function(t){this.itemDataList=t.slice(),this.updateContent()},e.prototype.countListParam=function(){var t=this.itemDataList.length;this.type==a.Vertical?(this.scrollView.horizontal=!1,this.scrollView.vertical=!0,this.content.width=this.content.parent.width,this.content.height=t*this.itemHeight+(t-1)*this.spaceY+this.padding_top+this.padding_buttom,this.spawnCount=Math.round(this.scrollView.node.height/(this.itemHeight+this.spaceY))+2,this.halfScrollView=this.scrollView.node.height/2+this.itemHeight/2+this.spaceY,this.updateFun=this.updateV):this.type==a.Horizontal?(this.scrollView.horizontal=!0,this.scrollView.vertical=!1,this.content.width=t*this.itemWidth+(t-1)*this.spaceX+this.padding_left+this.padding_right,this.content.height=this.content.parent.height,this.spawnCount=Math.round(this.scrollView.node.width/(this.itemWidth+this.spaceX))+2,this.halfScrollView=this.scrollView.node.width/2+this.itemWidth/2+this.spaceX,this.updateFun=this.udpateH):this.type==a.Grid&&(this.startAxis==r.Vertical?(this.scrollView.horizontal=!1,this.scrollView.vertical=!0,this.content.width=this.content.parent.width,this.padding_left+this.padding_right+this.itemWidth+this.spaceX>this.content.width&&(this.padding_left=0,this.padding_right=0,console.error("padding_left\u6216padding_right\u8fc7\u5927")),this.gridCol=Math.floor((this.content.width-this.padding_left-this.padding_right)/(this.itemWidth+this.spaceX)),this.gridRow=Math.ceil(t/this.gridCol),this.content.height=this.gridRow*this.itemHeight+(this.gridRow-1)*this.spaceY+this.padding_top+this.padding_buttom,this.spawnCount=Math.round(this.scrollView.node.height/(this.itemHeight+this.spaceY))*this.gridCol+2*this.gridCol,this.halfScrollView=this.scrollView.node.height/2+this.itemHeight/2+this.spaceY,this.updateFun=this.updateGrid_V):this.startAxis==r.Horizontal&&(this.scrollView.horizontal=!0,this.scrollView.vertical=!1,this.content.height=this.content.parent.height,this.padding_top+this.padding_buttom+this.itemHeight+this.spaceY>this.content.height&&(this.padding_top=0,this.padding_buttom=0,console.error("padding_top\u6216padding_buttom\u8fc7\u5927")),this.gridRow=Math.floor((this.content.height-this.padding_top-this.padding_buttom)/(this.itemHeight+this.spaceY)),this.gridCol=Math.ceil(t/this.gridRow),this.content.width=this.gridCol*this.itemWidth+(this.gridCol-1)*this.spaceX+this.padding_left+this.padding_right,this.spawnCount=Math.round(this.scrollView.node.width/(this.itemWidth+this.spaceX))*this.gridRow+2*this.gridRow,this.halfScrollView=this.scrollView.node.width/2+this.itemWidth/2+this.spaceX,this.updateFun=this.updateGrid_H))},e.prototype.createList=function(t,e){this.itemDataList.length>this.spawnCount&&t+this.spawnCount-1>=this.itemDataList.length?(t=this.itemDataList.length-this.spawnCount,e=this.scrollView.getMaxScrollOffset()):this.itemDataList.length<=this.spawnCount&&(t=0);for(var o=0;othis.itemDataList.length-t&&((i=this.itemList.pop()).removeFromParent(),this.itemPool.push(i))}this.scrollView.scrollToOffset(e)},e.prototype.getItem=function(){return 0==this.itemPool.length?cc.instantiate(this.itemRender):this.itemPool.pop()},e.prototype.update=function(t){0!=this.bScrolling&&(this.updateTimer+=t,this.updateTimerthis.lastContentPosY,n=(this.itemHeight+this.spaceY)*e.length,c=0;co&&t.y-n-this.padding_buttom>-this.content.height){var r=(l=t.getComponent(s.default)).itemIndex+e.length;l.itemIndex=r,l.data=this.itemDataList[r],l.dataChanged(),t.y=t.y-n}}else if(a.y<-o&&t.y+n+this.padding_top<0){var l;r=(l=t.getComponent(s.default)).itemIndex-e.length,l.itemIndex=r,l.data=this.itemDataList[r],l.dataChanged(),t.y=t.y+n}}this.lastContentPosY=this.scrollView.content.y},e.prototype.udpateH=function(){for(var t,e=this.itemList,o=this.halfScrollView,i=this.scrollView.content.x>this.lastContentPosX,n=(this.itemWidth+this.spaceX)*e.length,c=0;co&&t.x-n-this.padding_left>0){var r=(l=t.getComponent(s.default)).itemIndex-e.length;l.itemIndex=r,l.data=this.itemDataList[r],l.dataChanged(),t.x=t.x-n}}else if(a.x<-o&&t.x+n+this.padding_rightthis.lastContentPosY,n=(this.itemHeight+this.spaceY)*(this.spawnCount/this.gridCol),c=0;co&&t.y-n-this.padding_buttom>-this.content.height){var r=(l=t.getComponent(s.default)).itemIndex+this.spawnCount/this.gridCol*this.gridCol;null!=this.itemDataList[r]?(t.y=t.y-n,l.itemIndex=r,l.data=this.itemDataList[r],l.dataChanged(),t.opacity=255):(t.y=t.y-n,l.itemIndex=r,t.opacity=0)}}else if(a.y<-o&&t.y+n+this.padding_top<0){var l;r=(l=t.getComponent(s.default)).itemIndex-this.spawnCount/this.gridCol*this.gridCol,null!=this.itemDataList[r]?(t.y=t.y+n,l.itemIndex=r,l.data=this.itemDataList[r],l.dataChanged(),t.opacity=255):(t.y=t.y+n,l.itemIndex=r,t.opacity=0)}}this.lastContentPosY=this.scrollView.content.y},e.prototype.updateGrid_H=function(){for(var t,e=this.itemList,o=this.halfScrollView,i=this.scrollView.content.x>this.lastContentPosX,n=(this.itemWidth+this.spaceX)*(this.spawnCount/this.gridRow),c=0;co&&t.x-n-this.padding_left>0){var r=(l=t.getComponent(s.default)).itemIndex-this.spawnCount/this.gridRow*this.gridRow;null!=this.itemDataList[r]?(t.x=t.x-n,l.itemIndex=r,l.data=this.itemDataList[r],l.dataChanged(),t.opacity=255):(t.x=t.x-n,l.itemIndex=r,t.opacity=0)}}else if(a.x<-o&&t.x+n+this.padding_right=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=(a.requireComponent,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.node1=null,e.node2=null,e.node3=null,e.localTest=!1,e.clientTestVersion="1.0.0",e.testVersion=null,e}return n(e,t),e.prototype.onLoad=function(){cc.internal.inputManager._maxTouches=1,cc.director.getCollisionManager().enabled=!0,this.setWX(),cc.debug.setDisplayStats(!1),cc.tween(this.node1).delay(0).to(.3,{scale:1}).to(.3,{scale:1.3}).to(.3,{scale:1}).union().repeatForever().start(),cc.tween(this.node2).delay(.3).to(.3,{scale:1}).to(.3,{scale:1.3}).to(.3,{scale:1}).union().repeatForever().start(),cc.tween(this.node3).delay(.6).to(.3,{scale:1}).to(.3,{scale:1.3}).to(.3,{scale:1}).union().repeatForever().start()},e.prototype.setWX=function(){"undefined"!=typeof wx&&null!==wx&&(wx.setPreferredFramesPerSecond(60),wx.onShareAppMessage(function(){return{title:"\u4f60\u60f3\u73a9\u4e0a\u600e\u6837\u7684\u6e38\u620f\uff1f"}}),wx.onShareTimeline(function(){return{title:"\u4f60\u60f3\u73a9\u4e0a\u600e\u6837\u7684\u6e38\u620f\uff1f"}}),wx.showShareMenu(function(){return{title:"\u4f60\u60f3\u73a9\u4e0a\u600e\u6837\u7684\u6e38\u620f\uff1f",imageUrl:"",query:""}}),setTimeout(function(){wx.showShareMenu({menus:["shareAppMessage","shareTimeline"]})},2e3))},e.prototype.containsTrain=function(t){return/from=train/i.test(t)},e.prototype.startGame=function(){cc.director.loadScene("GameScene")},e.prototype.clickBtn=function(t,e){cc.fx.GameConfig.GM_INFO.custom=parseInt(e),cc.director.loadScene("GameScene")},e.prototype.openRank=function(){cc.director.loadScene("RankScene")},e.prototype.update=function(){},c([s(cc.Node)],e.prototype,"node1",void 0),c([s(cc.Node)],e.prototype,"node2",void 0),c([s(cc.Node)],e.prototype,"node3",void 0),c([s(!1)],e.prototype,"localTest",void 0),c([s("")],e.prototype,"clientTestVersion",void 0),c([s(cc.Label)],e.prototype,"testVersion",void 0),c([r],e)}(cc.Component));o.default=l,cc._RF.pop()},{}],Lock:[function(t,e,o){"use strict";cc._RF.push(e,"41cb8ugLSBH/5aNhnsJ5lX7","Lock");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("../NumberToImage"),r=cc._decorator,s=r.ccclass,l=(r.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=0,e}return n(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){},e.prototype.init=function(t){t&&(this.time=t),this.node.getChildByName("time").active=!0,a.default.numberToImageNodes(this.time,20,8,"lock_",this.node.getChildByName("time"),!1)},e.prototype.reduce=function(){this.time-=1,a.default.numberToImageNodes(this.time,20,8,"lock_",this.node.getChildByName("time"),!1),this.time<=0&&(this.node.parent.getComponent("Block").type=0,this.node.destroy(),this.node.removeFromParent())},c([s],e)}(cc.Component));o.default=l,cc._RF.pop()},{"../NumberToImage":"NumberToImage"}],MapBlock:[function(t,e,o){"use strict";cc._RF.push(e,"52958xsurVAp54WMo+xFDo6","MapBlock");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.label=null,e.block_Id="",e.posX=0,e.posY=0,e.direction="",e}return n(e,t),e.prototype.start=function(){this.direction="",this.block_Id=""},e.prototype.setDiraction=function(t){this.direction=t},e.prototype.init=function(t,e){this.posX=t,this.posY=e},c([s(cc.Label)],e.prototype,"label",void 0),c([s],e.prototype,"block_Id",void 0),c([r],e)}(cc.Component);o.default=l,cc._RF.pop()},{}],Map:[function(t,e,o){"use strict";cc._RF.push(e,"2234assp7RIvpDgrnqljp2R","Map");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("./GameManager"),r=t("./NumberToImage"),s=t("./Sdk/MiniGameSdk"),l=cc._decorator,h=l.ccclass,p=l.property,u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.Block_Array=[],e.Block_Prop=[],e.MapBlockPrefab=null,e.Block_Color=[],e.Wall_Prefab=[],e.wallTurnPrefab=null,e.timeBtn=null,e.destroyBtn=null,e.magicBtn=null,e.mask=null,e.iceLabel=null,e.hammerLabel=null,e.magicLabel=null,e.magicMask=null,e.hammerMask=null,e.freezeMask=null,e.coinPop=null,e.timeLabel=null,e.levelLabel=null,e.new_mode=0,e.mapWidth=0,e.mapHeight=0,e.wallNum=0,e.blockNum=0,e.homeCanTouch=!0,e.againCanTouch=!0,e.gameOver=!1,e.gameWin=!1,e.gameStart=!1,e.timeNumber=0,e.count_Time=0,e.add_Time=0,e.pause=!1,e.hammer=!1,e}var o;return n(e,t),o=e,e.prototype.onLoad=function(){var t=this;cc.fx.GameConfig.GM_INFO.review=0,cc.fx.GameConfig.GM_INFO.gameState=!0,this.mask.opacity=0,this.node.getChildByName("Adhesive").zIndex=500,cc.game.setFrameRate(63),cc.fx.AudioManager._instance.playEffect("zhuan2",null),this.node.parent.parent.parent.getChildByName("zhuanchang").active=!0,this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"down",!1),this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setCompleteListener(function(e){"down"===e.animation.name&&(t.node.parent.parent.parent.getChildByName("zhuanchang").active=!1)}),this.blocks=[],this.leftDoors=[],this.rightDoors=[],this.topDoors=[],this.bottomDoors=[],this.gameWin=!1,this.gameOver=!1,this.gameStart=!1,this.homeCanTouch=!0,this.againCanTouch=!0,this.new_mode=0,this.iceLabel.string=cc.fx.GameConfig.GM_INFO.freezeAmount.toString(),this.hammerLabel.string=cc.fx.GameConfig.GM_INFO.hammerAmount.toString(),this.magicLabel.string=cc.fx.GameConfig.GM_INFO.magicAmount.toString(),o._instance=this},e.prototype.start=function(){setTimeout(function(){cc.director.preloadScene("HomeScene",function(t){t&&console.error("\u52a8\u6001\u52a0\u8f7d HomeScene \u5931\u8d25:",t)})},1e3),this.Block_Array=a.default._instance.Block_Array,this.Wall_Prefab=a.default._instance.Wall_Prefab,this.Block_Color=a.default._instance.Block_Color,this.initMap()},e.prototype.startUpdate=function(){if(0==this.gameStart){this.gameStart=!0,console.log("\u51c6\u5907\u8fdb\u5165\u4e0b\u4e00\u5173,\u53d1\u9001\u4e0b\u4e00\u5173\u8fdb\u5165"),cc.fx.GameTool.shushu_Track("enter_stage"),this.startTimeCutDown();for(var t=0;t16?Math.max(i-1,1):Math.min(i+1,10),o16?Math.max(o-1,1):Math.min(o+1,10),e=0&&this.mapBlocksWall[n.x][n.y].opacity==r&&("turn"==t&&"left"==this.mapBlocksWall[n.x][n.y].getComponent("MapBlock").direction||o.push("left")),c.y=0&&this.mapBlocksWall[a.x][a.y].opacity==r&&("turn"==t&&"down"==this.mapBlocksWall[a.x][a.y].getComponent("MapBlock").direction||o.push("down")),o.length>2?null:1==o.length?"wall"==t?o[0]:null:2==o.length?o[0]+o[1]:void 0},e.prototype.createCornerNodes=function(){for(var t=0;t3&&(n-=1)):"block11"==t.name?(i=e-2,this.mapWidth>3&&(n-=2)):"block14"==t.name?(i=e-1,n-=1):"block16"==t.name?(i=e-1,n-=1):"block18"==t.name?(i=e-1,n-=1):"block21"==t.name&&(i=e-1,n-=1),{minX:i,maxX:n,minY:1,maxY:c}},e.prototype.checkPass=function(t,e){for(var o=this.getMinAndMax(t),i=o.minX,n=o.maxX,c=o.minY,a=o.maxY,r=cc.v2(t.getComponent("Block").posX,t.getComponent("Block").posY),s=[],l=0;lm.x&&d.push(f);if(0!=d.length&&(1==(k=this.detectingBlock("left",t.getComponent("Block").posX,t.getComponent("Block").posY,s))&&(k=this.passWall(k,d,t)),k))return this.blockNum-=1,this.special_Treatment(t),h=2,this.createParticle(t,h),h}if(r.x>=n||1==u[1]){p+=1;var g=[];for(l=0;lm.y&&w<=t.getComponent("Block").shu&&C.push(x)}if(0!=C.length&&(1==(k=this.detectingBlock("down",t.getComponent("Block").posX,t.getComponent("Block").posY,s))&&(k=this.passWall(k,C,t)),k))return this.blockNum-=1,this.special_Treatment(t),h=1,this.createParticle(t,h),h}if(r.y>=a||1==u[3]){p+=1;var k,M=[];for(l=0;l0)for(var a=0;a=0){if(""!=this.mapBlocksWall[o-2][i].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o-2][i].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o-2][i].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o-2][i].opacity)return!1}}else if("right"==e){if(""!=this.mapBlocksWall[o+1][i].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o+1][i].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o+1][i].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o+1][i].opacity)return!1;if(o+2<=this.mapBlocksWall.length-1){if(""!=this.mapBlocksWall[o+2][i].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o+2][i].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o+2][i].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o+2][i].opacity)return!1}}if("up"==e){if(""!=this.mapBlocksWall[o][i+1].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o][i+1].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o][i+1].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o][i+1].opacity)return!1;if(i+2<=this.mapBlocksWall[o].length-1){if(""!=this.mapBlocksWall[o][i+2].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o][i+2].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o][i+2].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o][i+2].opacity)return!1}}if("down"==e){if(""!=this.mapBlocksWall[o][i-1].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o][i-1].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o][i-1].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o][i-1].opacity)return!1;if(i-2>=0){if(""!=this.mapBlocksWall[o][i-2].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o][i-2].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o][i-2].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o][i-2].opacity)return!1}}return n},e.prototype.checkDiraction=function(t){for(var e=[!1,!1,!1,!1],o=0;o0&&0==e[0]&&250==this.mapBlocksWall[t[o].x-1][t[o].y].opacity&&(e[0]=!0),0==e[1]&&250==this.mapBlocksWall[t[o].x+1][t[o].y].opacity&&(e[1]=!0),t[o].y>0&&0==e[2]&&250==this.mapBlocksWall[t[o].x][t[o].y-1].opacity&&(e[2]=!0),0==e[3]&&250==this.mapBlocksWall[t[o].x][t[o].y+1].opacity&&(e[3]=!0);return e},e.prototype.checkLeft=function(){return!1},e.prototype.checkRight=function(t){for(var e=0;e0)for(var o=0;o0)for(o=0;o156){if(cc.fx.GameConfig.GM_INFO.level=156,o._instance=null,3==this.new_mode)return this.node.parent.parent.getChildByName("Win").active=!1,this.openNewMode(2),void cc.fx.GameConfig.LEVEL_INFO_init(!1,0);cc.fx.AudioManager._instance.playEffect("zhuan1",null),this.node.parent.parent.parent.getChildByName("zhuanchang").active=!0,this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",!1),cc.director.preloadScene("HomeScene",function(t){t&&console.error("\u52a8\u6001\u52a0\u8f7d Prefab \u5931\u8d25:",t)}),setTimeout(function(){cc.director.loadScene("HomeScene")},1200)}else{if(o._instance=null,3==this.new_mode)return this.node.parent.parent.getChildByName("Win").active=!1,this.openNewMode(2),void cc.fx.GameConfig.LEVEL_INFO_init(!1,0);cc.fx.AudioManager._instance.playEffect("zhuan1",null),this.node.parent.parent.parent.getChildByName("zhuanchang").active=!0,this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",!1),setTimeout(function(){cc.fx.GameConfig.LEVEL_INFO_init(!0,0)},1200)}},e.prototype.againLevel=function(){cc.fx.AudioManager._instance.playEffect("anniu_Big",null),cc.fx.GameConfig.GM_INFO.hp<1?s.MiniGameSdk.API.showToast("\u4f53\u529b\u503c\u4e0d\u8db3"):this.againCanTouch&&(this.againCanTouch=!1,o._instance=null,cc.fx.AudioManager._instance.playEffect("zhuan1",null),this.node.parent.parent.parent.getChildByName("zhuanchang").active=!0,this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",!1),setTimeout(function(){cc.fx.GameConfig.LEVEL_INFO_init(!0,0)},1200))},e.prototype.reviewLevel=function(){cc.fx.AudioManager._instance.playEffect("anniu_Big",null);var t=900;1==cc.fx.GameConfig.GM_INFO.review?t=1900:2==cc.fx.GameConfig.GM_INFO.review&&(t=2500),cc.fx.GameConfig.GM_INFO.coin1){(n=cc.fx.GameTool.shuffleArray(n))[0].getComponent("Block").eliminate();var a=0;return 1!=n[0].getComponent("Block").type&&9!=n[0].getComponent("Block").type||(a=200),a>0?void setTimeout(function(){n[1].getComponent("Block").eliminate()},a):void n[1].getComponent("Block").eliminate()}if(1==n.length)n[0].getComponent("Block").eliminate(),a=0,1!=n[0].getComponent("Block").type&&9!=n[0].getComponent("Block").type||(a=200),setTimeout(function(){if(0==t.freezeArray.length&&0==t.loackArray.length);else{if(0!=t.loackArray.length)return void t.loackArray[0].getComponent("Block").eliminate();if(0!=t.freezeArray.length)return void t.freezeArray[0].getComponent("Block").eliminate()}},200+a);else{var r=2;if(0!=this.loackArray.length)for(c=0;c13&&(this.node.scale=1),cc.fx.GameConfig.GM_INFO.scale=this.node.scale},e.prototype.createParticle=function(t,e){var i=cc.instantiate(o._instance.Block_Prop[9]);i.parent=this.node,i.zIndex=1e3;var n=Math.floor(t.width/120),c=Math.floor(t.height/120),a="";if(0==e||1==e){var r=t.y+t.height,s=t.x-t.width/2;a="top_"+n+"_"+c,1==e&&(a="bot_"+n+"_"+c,r=t.y),.5==t.anchorX?s=t.x:.33==t.anchorX?s=t.x+t.width*(.5-.33):.66==t.anchorX&&(s=t.x+t.width*(.5-.66)),i.setPosition(s,r)}else 2!=e&&3!=e||(a="left_"+c+"_"+n,s=t.x-t.width,r=t.y+t.height/2,.5==t.anchorX?s=t.x-t.width/2:.33==t.anchorX?s=t.x-.33*t.width:.66==t.anchorX&&(s=t.x+.66*t.width),3==e&&(a="right_"+c+"_"+n,s=t.x,.5==t.anchorX?s=t.x+t.width/2:.33==t.anchorX?s=t.x+.66*t.width:.66==t.anchorX&&(s=t.x+.33*t.width)),i.setPosition(s,r));var l=i.getChildByName(a),h=t.getComponent("Block").color-1;l.getComponent(cc.ParticleSystem).spriteFrame=i.getComponent("Reduce").Block_Color[h],l.active=!0,setTimeout(function(){cc.tween(i).to(2,{opacity:0}).call(function(){i.destroy()}).start()},1200)},e.prototype.removeOneBlock=function(){for(var t=0;t=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.MiniGameManager=void 0;var a,r=t("./MiniGameSdk"),s=cc._decorator,l=s.ccclass,h=s.property;(function(t){t.CUMSTOM_01="adunit-f7c2417eb2c2e473"})(a||(a={}));var p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.entranceView=null,e}var o;return n(e,t),o=e,Object.defineProperty(e,"instance",{get:function(){return o._instance||(o._instance=new o),o._instance},enumerable:!1,configurable:!0}),e.prototype.start=function(){this.onGetLoginCode(),r.MiniGameSdk.isBytedance()&&r.MiniGameSdk.BytedanceSidebar.checkSideBar(function(){}),r.MiniGameSdk.BytedanceSidebar.listenFromSidebar(function(t){t&&r.MiniGameSdk.API.showToast("\u4fa7\u8fb9\u680f\u5956\u52b1",5)})},e.prototype.update=function(){},e.prototype.onShowBanner=function(){r.MiniGameSdk.AdvertManager.instance.loadBanner("adunit-4e7ef467e3eaab51"),r.MiniGameSdk.AdvertManager.instance.showBanner()},e.prototype.onHideBanner=function(){r.MiniGameSdk.AdvertManager.instance.hideBanner()},e.prototype.onShowInterstitial=function(){r.MiniGameSdk.AdvertManager.instance.showInterstitial("adunit-eadd67851d3050ad")},e.prototype.onShowCustom=function(){r.MiniGameSdk.AdvertManager.instance.loadCustom(a.CUMSTOM_01),r.MiniGameSdk.AdvertManager.instance.showCustom(a.CUMSTOM_01)},e.prototype.onHideCustom=function(){r.MiniGameSdk.AdvertManager.instance.hideCustom(a.CUMSTOM_01)},e.prototype.onShowVideo=function(){r.MiniGameSdk.AdvertManager.instance.showVideo("1re3nfqkmy81m4m8ge",function(t,e){switch(console.log("\u7528\u6237\u770b\u7684\u89c6\u9891\u5e7f\u544a\u4e2a\u6570\u662f:",e),t){case r.MiniGameSdk.EAdVideoResult.ACCEPT:r.MiniGameSdk.API.showToast("\u7528\u6237\u770b\u5b8c\u5e7f\u544a\uff0c\u53ef\u4ee5\u5956\u52b1");break;case r.MiniGameSdk.EAdVideoResult.REJECT:r.MiniGameSdk.API.showToast("\u7528\u6237\u62d2\u7edd\u6389\u5e7f\u544a\uff0c\u4e0d\u5956\u52b1");break;case r.MiniGameSdk.EAdVideoResult.ERROR:r.MiniGameSdk.API.showToast("\u64ad\u653e\u5e7f\u544a\u53d1\u751f\u9519\u8bef\uff0c\u4e0d\u5956\u52b1")}})},e.prototype.onShare=function(){r.MiniGameSdk.API.shareAppToFriends("\u6765\u73a9\u6e38\u620f\u5427")},e.prototype.onShowToast=function(){r.MiniGameSdk.API.showToast("\u8fd9\u662f\u4e00\u4e2atoast")},e.prototype.onVirbrate=function(){r.MiniGameSdk.API.vibrate()},e.prototype.onReboot=function(){r.MiniGameSdk.API.reboot()},e.prototype.onExit=function(){r.MiniGameSdk.API.exit()},e.prototype.onShowShareMenu=function(){r.MiniGameSdk.API.showShareMenu()},e.prototype.onNavigate=function(){r.MiniGameSdk.API.navigateTo("xxx")},e.prototype.onBytedanceEntranceView=function(){},e.prototype.onGetLoginCode=function(){r.MiniGameSdk.API.login(function(t){console.log("Wechat Or Bytedance Code:",t)})},e.prototype.onCreateClub=function(){r.MiniGameSdk.GameClub.instance.create(r.MiniGameSdk.EGameClubIcon.GREEN,{top:200,left:0},{width:50,height:50}),r.MiniGameSdk.GameClub.instance.show()},c([h(cc.Node)],e.prototype,"entranceView",void 0),o=c([l],e)}(cc.Component);o.MiniGameManager=p,cc._RF.pop()},{"./MiniGameSdk":"MiniGameSdk"}],MiniGameSdk:[function(t,e,o){"use strict";cc._RF.push(e,"c1af9nd7gNA95YJ04h9DdNX","MiniGameSdk"),Object.defineProperty(o,"__esModule",{value:!0}),o.MiniGameSdk=void 0,function(t){function e(){return null!==window.wx&&void 0!==window.wx}function o(){return null!==window.tt&&void 0!==window.tt}function i(){var t;e()?t=wx.getSystemInfoSync():o()&&(t=tt.getSystemInfoSync());var i={width:0,height:0};return t&&(i.width=t.windowWidth,i.height=t.windowHeight),i}t.isWechat=e,t.isBytedance=o;var n,c=function(){function t(t){this._adUid=t}return Object.defineProperty(t.prototype,"aduid",{get:function(){return this._adUid},enumerable:!1,configurable:!0}),t.prototype.show=function(){var t,i,n=this;return e()&&!wx.createInterstitialAd?(console.warn("wechat unsupport interstitial AD!"),void(this._interstitial=null)):o()&&!tt.createInterstitialAd?(console.warn("bytedance unsupport interstitial AD!"),void(this._interstitial=null)):void(this._interstitial?this._interstitial.load():(e()?this._interstitial=wx.createInterstitialAd({adUnitId:this._adUid}):o()?this._interstitial=tt.createInterstitialAd({adUnitId:this._adUid}):this._interstitial=null,null===(t=this._interstitial)||void 0===t||t.onLoad(function(){console.log("load interstitial ad success"),n._interstitial.show().catch(function(t){console.log("catch interstitial ad error:",t)})}),null===(i=this._interstitial)||void 0===i||i.onError(function(t){console.log("interstitial ad on error:",t)})))},t.prototype.destory=function(){var t;null===(t=this._interstitial)||void 0===t||t.destroy()},t}(),a=function(){function t(t,e,o,i){void 0===o&&(o=300),void 0===i&&(i=!1),this._adUid=t,this.create(i,o,e)}return Object.defineProperty(t.prototype,"aduid",{get:function(){return this._adUid},enumerable:!1,configurable:!0}),t.prototype.create=function(t,n,c){var a,r,s=this;if(e()||o()){this.destroy();var l=i(),h=.4*n,p=0,u=0;"boolean"==typeof c?(u=(l.width-n)/2,p=c?5:l.height-h):(u=c.left,p=c.top);var d={adUnitId:this._adUid,adIntervals:30,style:{left:u,top:p,width:n}};e()?this._banner=wx.createBannerAd(d):o()?this._banner=tt.createBannerAd(d):this._banner=null,null===(a=this._banner)||void 0===a||a.onError(function(t){console.log("ad banner error:",t)}),null===(r=this._banner)||void 0===r||r.onLoad(function(){t&&s._banner.show()})}else this._banner=null},t.prototype.show=function(){var t;null===(t=this._banner)||void 0===t||t.show()},t.prototype.hide=function(){var t;null===(t=this._banner)||void 0===t||t.hide()},t.prototype.destroy=function(){var t;null===(t=this._banner)||void 0===t||t.destroy()},t}(),r=function(){function t(t,e,o,i){void 0===e&&(e=0),void 0===o&&(o=0),void 0===i&&(i=1),this._adUid=t,this.createCustomAd(e,o,i)}return Object.defineProperty(t.prototype,"aduid",{get:function(){return this._adUid},enumerable:!1,configurable:!0}),t.prototype.createCustomAd=function(t,o){var i;if(!e())return this._adCustom=null,void console.log("Only wechat support Custom Ad");this.destroy(),this._adCustom=wx.createCustomAd({adUnitId:this._adUid,style:{left:o,top:t,fixed:!0}}),null===(i=this._adCustom)||void 0===i||i.onError(function(t){console.log("ad custom error:",t)})},t.prototype.show=function(){var t;null===(t=this._adCustom)||void 0===t||t.show()},t.prototype.hide=function(){var t;null===(t=this._adCustom)||void 0===t||t.hide()},t.prototype.destroy=function(){var t;null===(t=this._adCustom)||void 0===t||t.destroy()},t}();(function(t){t[t.ACCEPT=0]="ACCEPT",t[t.REJECT=1]="REJECT",t[t.ERROR=2]="ERROR"})(n=t.EAdVideoResult||(t.EAdVideoResult={}));var s,l=function(){function t(t){this._adVideo=null,this._adUid=t}return Object.defineProperty(t.prototype,"aduid",{get:function(){return this._adUid},enumerable:!1,configurable:!0}),t.prototype.show=function(t,i,c){var a,r,s,l,h,p=this;void 0===c&&(c=3);var u=function(e,o){null==t||t.call(i,e,o)};if(!e()&&!o())return u(n.ACCEPT,1),void(this._adVideo=null);var d=function(t){var i;if(null===(i=p._adVideo)||void 0===i||i.offClose(d),e())t&&t.isEnded||void 0===t?u(n.ACCEPT,1):u(n.REJECT,0);else if(o()){var c=t;c&&c.count>0?u(n.ACCEPT,c.count):u(n.REJECT,0)}};null===(a=this._adVideo)||void 0===a||a.offClose(d),e()?this._adVideo=wx.createRewardedVideoAd({adUnitId:this._adUid}):o()?this._adVideo=tt.createRewardedVideoAd({adUnitId:this._adUid,multiton:!0,multitonRewardMsg:["\u591a1\u6b21\u5956\u52b1","\u518d\u591a\u4e00\u6b21\u5956\u52b1","\u518d\u591a\u4e00\u6b21\u5956\u52b1"],multitonRewardTimes:c}):this._adVideo=null,null===(r=this._adVideo)||void 0===r||r.onLoad(function(){console.log("Ad load success")}),null===(s=this._adVideo)||void 0===s||s.onError(function(t){console.log("Ad video error:",t),u(n.ERROR,0)}),null===(l=this._adVideo)||void 0===l||l.onClose(d),null===(h=this._adVideo)||void 0===h||h.show().catch(function(){var t;null===(t=p._adVideo)||void 0===t||t.load().then(function(){var t;return null===(t=p._adVideo)||void 0===t?void 0:t.show()}).catch(function(t){console.log("Catch video ad error:",t),u(n.ERROR,0)})})},t.prototype.destory=function(){var t;null===(t=this._adVideo)||void 0===t||t.destory()},t}();(function(t){t[t.TOP=0]="TOP",t[t.BOTTOM=1]="BOTTOM"})(s=t.EAdBannerLocation||(t.EAdBannerLocation={}));var h,p=function(){function t(){this._customs={}}return Object.defineProperty(t,"instance",{get:function(){return t._instance||(t._instance=new t),t._instance},enumerable:!1,configurable:!0}),t.prototype.loadBanner=function(t,e,o){var n;void 0===e&&(e=s.TOP),void 0===o&&(o=1),null===(n=this._banner)||void 0===n||n.destroy();var c=i(),r=c.width*o;r=(r=r<300?300:r)>c.width?c.width:r,this._banner=new a(t,"number"==typeof e?e===s.TOP:e,r,!1)},t.prototype.showBanner=function(){this._banner?this._banner.show():console.warn("MiniGameSDK: banner is null, you must call loadBanner(...) first!")},t.prototype.hideBanner=function(){var t;null===(t=this._banner)||void 0===t||t.hide()},t.prototype.showInterstitial=function(t){var e;this._interstitial&&this._interstitial.aduid===t?this._interstitial.show():(null===(e=this._interstitial)||void 0===e||e.destory(),this._interstitial=new c(t),this._interstitial.show())},t.prototype.loadCustom=function(t,e,o){void 0===e&&(e={top:0,left:0}),void 0===o&&(o=1),this._customs[t]?console.log(t+" has been loaded."):this._customs[t]=new r(t,e.top,e.left,o)},t.prototype.showCustom=function(t){this._customs[t]?this._customs[t].show():console.warn("You have not load "+t+" of Custom AD, can not show!")},t.prototype.hideCustom=function(t){this._customs[t]?this._customs[t].hide():console.warn("You have not load "+t+" of Custom AD, can not hide!")},t.prototype.showVideo=function(t,e,o,i){var n;void 0===i&&(i=3),this._video&&this._video.aduid===t?this._video.show(e,o,i):(null===(n=this._video)||void 0===n||n.destory(),this._video=new l(t),this._video.show(e,o,i))},t.prototype.destroyAll=function(){var t,e,o,i;if(null===(t=this._banner)||void 0===t||t.destroy(),this._banner=null,null===(e=this._interstitial)||void 0===e||e.destory(),this._interstitial=null,null===(o=this._video)||void 0===o||o.destory(),this._video=null,this._customs){for(var n in this._customs)null===(i=this._customs[n])||void 0===i||i.destroy();this._customs={}}},t}();t.AdvertManager=p,function(t){t.GREEN="green",t.WHITE="white",t.DARK="dark",t.LIGHT="light"}(h=t.EGameClubIcon||(t.EGameClubIcon={}));var u,d=function(){function t(){}return Object.defineProperty(t,"instance",{get:function(){return this._instance||(this._instance=new t),this._instance},enumerable:!1,configurable:!0}),t.prototype.create=function(t,o,i,n){void 0===t&&(t=h.GREEN),void 0===o&&(o={top:0,left:0}),void 0===i&&(i={width:40,height:40}),e()&&(this._club=wx.createGameClubButton({icon:t,style:{left:o.left,top:o.top,width:i.width,height:i.height},openlink:n}))},t.prototype.show=function(){var t;null===(t=this._club)||void 0===t||t.show()},t.prototype.hide=function(){var t;null===(t=this._club)||void 0===t||t.hide()},t.prototype.destory=function(){var t;null===(t=this._club)||void 0===t||t.destroy()},t}();t.GameClub=d,function(t){t[t.SHORT=0]="SHORT",t[t.LONG=1]="LONG"}(u=t.EVirbrateType||(t.EVirbrateType={}));var f=function(){function t(){}return t.listenFromSidebar=function(t,e){if(o()){tt.onShow(function(o){console.log("onShow launch res:",o),"021036"===o.scene?(null==t||t.call(e,!0),console.log("launch from sidebar")):(null==t||t.call(e,!1),console.log("NOT launch from douyin sidebar!"))});var i=tt.getLaunchOptionsSync();i&&"021036"===i.scene&&(null==t||t.call(e,!0))}else null==t||t.call(e,!1)},t.checkSideBar=function(t,e){o()?tt.checkScene({scene:"sidebar",success:function(o){console.log("check scene success: ",o.isExist),null==t||t.call(e,o.isExist)},fail:function(o){console.log("check scene fail:",o),null==t||t.call(e,!1)}}):null==t||t.call(e,!1)},t.navigateToSidebar=function(t,e){if(!o())return console.log("not douyin platform!"),void(null==t||t.call(e,!1));tt.navigateToScene({scene:"sidebar",success:function(){console.log("navigate success"),null==t||t.call(e,!0)},fail:function(o){console.log("navigate failed reason:",o),null==t||t.call(e,!1)}})},t}();t.BytedanceSidebar=f;var m=function(){function t(){}return t.shareAppToFriends=function(t,i,n,c,a){if(void 0===i&&(i=""),e())try{wx.shareAppMessage({title:t,imageUrl:n,query:c})}catch(r){console.log("share faild: "+r)}o()&&tt.shareAppMessage({title:t,desc:i,imageUrl:null!=n?n:"",query:null!=c?c:"",success:function(t){console.log("share success:",t),null==a||a()},fail:function(t){console.log("share fail:",t)}})},t.showToast=function(t,o){void 0===o&&(o=2),e()&&wx.showToast({title:t,icon:"none",duration:500*o})},t.vibrate=function(t){if(void 0===t&&(t=u.SHORT),e())switch(t){case u.SHORT:wx.vibrateShort({success:function(t){console.log("vibrate success:",t)},fail:function(t){console.log("vibrateShort failed",t)}});break;case u.LONG:wx.vibrateLong({success:function(t){console.log("vibrate success",t)},fail:function(t){console.log("vibrateLong failed",t)}})}if(o())switch(t){case u.SHORT:tt.vibrateShort({success:function(t){console.log("vibrate success:",t)},fail:function(t){console.log("vibrateShort failed",t)}});break;case u.LONG:tt.vibrateLong({success:function(t){console.log("vibrate success",t)},fail:function(t){console.log("vibrateLong failed",t)}})}},t.reboot=function(){if(e()&&wx.restartMiniProgram({success:function(){console.log("restart success")},fail:function(){console.log("restart failed")}}),o())try{tt.restartMiniProgramSync()}catch(t){console.log("restartMiniProgramSync",t)}},t.exit=function(){e()&&wx.exitMiniProgram({success:function(){console.log("exit success")},fail:function(){console.log("exit failed")}}),o()&&tt.exitMiniProgram({success:function(t){console.log("exit success:",null==t?void 0:t.data)},fail:function(t){console.log("exit fail:",null==t?void 0:t.errMsg)}})},t.showShareMenu=function(){e()&&wx.showShareMenu({withShareTicket:!0,menus:["shareAppMessage","shareTimeline"],success:function(){},fail:function(){},complete:function(){}})},t.navigateTo=function(t,i){e()&&wx.navigateToMiniProgram({appId:t,extraData:{foo:"bar"},envVersion:"develop",success:function(){null==i||i()}}),o()&&tt.navigateToVideoView({videoId:t,success:function(){null==i||i()},fail:function(t){console.log("bytedance navigateToVideoView fail",t)}})},t.login=function(i){var n=function(){e()?wx.login({success:function(e){e.code?(t._loginCode=e.code,t._loginAnonymousCode=null,null==i||i(t._loginCode,t._loginAnonymousCode)):console.log("login error:",e.errMsg)},fail:function(){t._loginCode=null,t._loginAnonymousCode=null,null==i||i(t._loginCode,t._loginAnonymousCode),console.log("login fail")}}):o()?tt.login({force:!0,success:function(e){var o,n;console.log("login "+e.code+" "+e.anonymousCode),e.code?(t._loginCode=null===(o=e.code)||void 0===o?void 0:o.toString(),t._loginAnonymousCode=null===(n=e.anonymousCode)||void 0===n?void 0:n.toString(),null==i||i(t._loginCode,t._loginAnonymousCode)):console.log("login error:",e.errMsg)},fail:function(e){t._loginCode=null,t._loginAnonymousCode=null,null==i||i(t._loginCode,t._loginAnonymousCode),console.log("login fail",e)}}):(t._loginCode=null,t._loginAnonymousCode=null,null==i||i(t._loginCode,t._loginAnonymousCode),console.log("not mini game platform, login codes are all null"))};t._loginCode?e()?wx.checkSession({success:function(){console.log("session is valid, use current code:",t._loginCode),null==i||i(t._loginCode,t._loginAnonymousCode)},fail:function(){console.log("session expired"),n()}}):o()?tt.checkSession({success:function(){console.log("session is valid, user current code: "+t._loginCode+", "+t._loginAnonymousCode),null==i||i(t._loginCode,t._loginAnonymousCode)},fail:function(){console.log("session expired"),n()}}):(console.log("not mini game platform, login null"),null==i||i(null,null)):n()},t.getUserInfo=function(e){tt.getUserInfo({withCredentials:!0,success:function(o){t._userInfo=o,e(t._userInfo)},fail:function(t){e(t)}})},t.callWechatCloudFunction=function(o,i,n){e()?this.login(function(){t._hasInitWechatCloudFunction||(wx.cloud.init(),t._hasInitWechatCloudFunction=!0),wx.cloud.callFunction({name:i,data:n,success:function(t){return null==o?void 0:o(t)},fail:function(t){console.log("wechat cloud function error:",t),null==o||o(null)}})}):console.log("Not wechat platform, not support callWechatCloudFunction")},t.setUserCloudStorage=function(t,i){e()&&wx.setUserCloudStorage({KVDataList:[{key:t,value:i}],success:function(){return console.log("set cloud storage success:"+t+", value:"+i)},fail:function(t){return console.log("set cloud storage error:",t)}}),o()&&tt.setUserCloudStorage({KVDataList:[{key:t,value:i}],success:function(){return console.log("set cloud storage success:"+t+", value:"+i)},fail:function(t){return console.log("set cloud storage error:",t)}})},t.shushu_Init=function(){if("undefined"!=typeof wx&&null!==wx){console.log("\u5f00\u59cb\u63a5\u5165\u6570\u6570\u5e73\u53f0");var e="121591378fc1423893deb12041413eb3";"\u6b63\u5f0f\u7248"==cc.fx.GameTool.getWechatGameVersion()&&(e="87d18958cea145f29d3265470ecd3486");var o={appId:e,serverUrl:"https://data.nika4fun.com",autoTrack:{appShow:!0,appHide:!0}};t._ta=new ThinkingAnalyticsAPI(o),t._ta.login(cc.fx.GameConfig.GM_INFO.openid),t.shushu_Track("login","success"),t._ta.init(),t.shushu_SetSuperProperties()}},t.shushu_userSet=function(e){"undefined"!=typeof wx&&null!==wx&&(console.log("\u8bbe\u7f6e\u7528\u6237\u6ce8\u518c\u5c5e\u6027"),t._ta.userSet({register_time:e}))},t.shushu_SetSuperProperties=function(){if("undefined"!=typeof wx&&null!==wx&&t._ta){var e={current_level:cc.fx.GameConfig.GM_INFO.level+1,current_health:cc.fx.GameConfig.GM_INFO.hp,tmp_coin:cc.fx.GameConfig.GM_INFO.coin,version:"1.3"};t._ta.setSuperProperties(e)}},t.getWechatGameVersion=function(){if("undefined"!=typeof wx&&null!==wx)return wx.getAccountInfoSync().miniProgram.version},t.shushu_Track=function(e,o){"undefined"!=typeof wx&&null!==wx&&t._ta&&t._ta.track(e,o)},t._loginCode=null,t._loginAnonymousCode=null,t._hasInitWechatCloudFunction=!1,t._userInfo=null,t._ta=null,t}();t.API=m}(o.MiniGameSdk||(o.MiniGameSdk={})),cc._RF.pop()},{}],NewMode:[function(t,e,o){"use strict";cc._RF.push(e,"7fe14dRFQZKSKKAoEn4S7OU","NewMode");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.label=null,e.text="hello",e.btnStatic=0,e.propName="",e}return n(e,t),e.prototype.start=function(){for(var t=this,e=0;e=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.fontUI=null,e}var o;return n(e,t),o=e,e.prototype.onLoad=function(){null!=this.fontUI&&(o.font=this.fontUI)},e.numberToImageNodes=function(t,e,o,i,n,c){void 0===c&&(c=!1);var a=t.toString(),r=0;t>99?r=-o:t<10&&(r=o),n.children.length>0&&n.removeAllChildren();for(var s=0;s0)for(u=0;u1&&(f.x+=35),f.parent=i}},e.font=null,c([s(cc.SpriteAtlas)],e.prototype,"fontUI",void 0),o=c([r],e)}(cc.Component);o.default=l,cc._RF.pop()},{}],Pause:[function(t,e,o){"use strict";cc._RF.push(e,"aca4aut33NCvIC0yg3JmY0h","Pause");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=0,e.music=null,e.effect=null,e.vibrate=null,e.open=null,e.close=null,e.musicState=!0,e.effectState=!0,e.vibrateState=!0,e}return n(e,t),e.prototype.onLoad=function(){cc.fx.GameConfig.GM_INFO.musicOpen?(this.music.getComponent(cc.Sprite).spriteFrame=this.open,this.music.x=278):(this.music.getComponent(cc.Sprite).spriteFrame=this.close,this.music.x=161),cc.fx.GameConfig.GM_INFO.effectOpen?(this.effect.getComponent(cc.Sprite).spriteFrame=this.open,this.effect.x=278):(this.effect.getComponent(cc.Sprite).spriteFrame=this.close,this.effect.x=161),cc.fx.GameConfig.GM_INFO.vibrateOpen?(this.vibrate.getComponent(cc.Sprite).spriteFrame=this.open,this.vibrate.x=278):(this.vibrate.getComponent(cc.Sprite).spriteFrame=this.close,this.vibrate.x=161),this.musicState=cc.fx.GameConfig.GM_INFO.musicOpen,this.effectState=cc.fx.GameConfig.GM_INFO.effectOpen,this.vibrateState=cc.fx.GameConfig.GM_INFO.vibrateOpen},e.prototype.start=function(){},e.prototype.init=function(){},e.prototype.clickMusic=function(){var t=this;this.musicState?(this.musicState=!1,cc.fx.GameConfig.GM_INFO.musicOpen=this.musicState,this.setMusicConfig(),this.music.runAction(cc.sequence(cc.spawn(cc.moveTo(.05,cc.v2(161,this.music.y)),cc.fadeOut(.05)),cc.callFunc(function(){t.music.getComponent(cc.Sprite).spriteFrame=t.close}),cc.fadeIn(.1))),cc.fx.AudioManager._instance.stopMusic()):(this.musicState=!0,cc.fx.GameConfig.GM_INFO.musicOpen=this.musicState,this.setMusicConfig(),this.music.runAction(cc.sequence(cc.spawn(cc.moveTo(.05,cc.v2(278,this.music.y)),cc.fadeOut(.05)),cc.callFunc(function(){t.music.getComponent(cc.Sprite).spriteFrame=t.open}),cc.fadeIn(.1))),cc.fx.AudioManager._instance.playMusicGame())},e.prototype.setMusicConfig=function(){var t={musicOpen:cc.fx.GameConfig.GM_INFO.musicOpen,effectOpen:cc.fx.GameConfig.GM_INFO.effectOpen,vibrateOpen:cc.fx.GameConfig.GM_INFO.vibrateOpen};cc.fx.StorageMessage.setStorage("music",t)},e.prototype.clickEffect=function(){var t=this;this.effectState?(this.effectState=!1,cc.fx.GameConfig.GM_INFO.effectOpen=this.effectState,this.setMusicConfig(),this.effect.runAction(cc.sequence(cc.spawn(cc.moveTo(.05,cc.v2(161,this.effect.y)),cc.fadeOut(.05)),cc.callFunc(function(){t.effect.getComponent(cc.Sprite).spriteFrame=t.close}),cc.fadeIn(.1)))):(this.effectState=!0,cc.fx.GameConfig.GM_INFO.effectOpen=this.effectState,this.setMusicConfig(),this.effect.runAction(cc.sequence(cc.spawn(cc.moveTo(.05,cc.v2(278,this.effect.y)),cc.fadeOut(.05)),cc.callFunc(function(){t.effect.getComponent(cc.Sprite).spriteFrame=t.open}),cc.fadeIn(.1))))},e.prototype.clickVibrate=function(){var t=this;this.vibrateState?(this.vibrateState=!1,cc.fx.GameConfig.GM_INFO.vibrateOpen=this.vibrateState,this.setMusicConfig(),this.vibrate.runAction(cc.sequence(cc.spawn(cc.moveTo(.05,cc.v2(161,this.vibrate.y)),cc.fadeOut(.05)),cc.callFunc(function(){t.vibrate.getComponent(cc.Sprite).spriteFrame=t.close}),cc.fadeIn(.1)))):(this.vibrateState=!0,cc.fx.GameConfig.GM_INFO.vibrateOpen=this.vibrateState,this.setMusicConfig(),this.vibrate.runAction(cc.sequence(cc.spawn(cc.moveTo(.05,cc.v2(278,this.vibrate.y)),cc.fadeOut(.05)),cc.callFunc(function(){t.vibrate.getComponent(cc.Sprite).spriteFrame=t.open}),cc.fadeIn(.1))))},c([s(cc.Node)],e.prototype,"music",void 0),c([s(cc.Node)],e.prototype,"effect",void 0),c([s(cc.Node)],e.prototype,"vibrate",void 0),c([s(cc.SpriteFrame)],e.prototype,"open",void 0),c([s(cc.SpriteFrame)],e.prototype,"close",void 0),c([r],e)}(cc.Component);o.default=l,cc._RF.pop()},{}],RankManager:[function(t,e,o){"use strict";cc._RF.push(e,"e74a999IDFOabyymZgXQIiy","RankManager");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("./module/RankList/List"),r=cc._decorator,s=r.ccclass,l=r.property,h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.Player=null,e.selfNode=null,e.phone=null,e}return n(e,t),e.prototype.onLoad=function(){this.init()},e.prototype.init=function(){this.rankList=cc.find("ScrollView",this.node).getComponent(a.default),this.Player.getChildByName("rank").active=!1,this.listData=[],this.selfData=null,this.rankNumber=100,this.rankTotal=100,this.selfNode.opacity=0},e.prototype.start=function(){this.Player.active=!1,this.getRank()},e.prototype.getRank=function(){var t=this;cc.fx.GameTool.getRank({length:100},function(e){return t.getRankData(e)})},e.prototype.getRankData=function(t){t&&(cc.fx.GameTool.getRankData(t,this,6),this.setPic(this.selfData.pic))},e.prototype.backClick=function(){cc.director.loadScene("LoadScene")},e.prototype.playerAction=function(){var t=this;this.Player.getChildByName("rank").active=!1;var e=1;if(this.tween=cc.tween(this.Player).to(2,{position:cc.v3(215,525,0)}).call(function(){t.Player.getChildByName("rank").active=!0,t.Player.getChildByName("rank").getChildByName("number").getComponent(cc.Label).string=parseInt(100*e+"")+"%"}).start(),e=(this.listData.length-this.rankNumber)/this.listData.length,this.listData.length>=99&&this.rankNumber>=99){e=(49*Math.random()+1)/100;var o=cc.sys.localStorage.getItem("matchNumber");null!=o&&null!=o||(e=0)}setTimeout(function(){t.tween&&t.tween.stop(),t.Player.getChildByName("rank").active=!0,t.Player.getChildByName("rank").getChildByName("number").getComponent(cc.Label).string=parseInt(100*e+"")+"%"},2e3*e)},e.prototype.setPic=function(t){var e=this;this.phone.node.parent.getChildByName("icon").active=!1,this.phone.node.active=!1,this.Player.active=!0,this.Player.opacity=0,this.Player.getChildByName("mask").getChildByName("icon").active=!1,this.Player.getChildByName("mask").getChildByName("phone").active=!1,fetch(t).then(function(t){return t.headers.get("Content-Length")}).then(function(t){"5093"==t&&(e.phone.node.parent.getChildByName("icon").active=!0,e.Player.getChildByName("mask").getChildByName("icon").active=!0)}).catch(function(){});var o=this;cc.assetManager.loadRemote(t,{ext:".png"},function(t,e){o.Player.opacity=255,e?(o.phone.node.active=!0,o.phone.spriteFrame=new cc.SpriteFrame(e),o.Player.getChildByName("mask").getChildByName("icon").active=!1,o.Player.getChildByName("mask").getChildByName("phone").active=!0,o.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(e),setTimeout(function(){o.playerAction()},500)):(o.Player.getChildByName("mask").getChildByName("icon").active=!0,setTimeout(function(){o.playerAction()},500))})},c([l(cc.Node)],e.prototype,"Player",void 0),c([l(cc.Node)],e.prototype,"selfNode",void 0),c([l(cc.Sprite)],e.prototype,"phone",void 0),c([s],e)}(cc.Component);o.default=h,cc._RF.pop()},{"./module/RankList/List":"List"}],Reduce:[function(t,e,o){"use strict";cc._RF.push(e,"ca599IU5hFEYYrzoN59YOpT","Reduce");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.Block_Color=[],e.level=null,e}return n(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){},c([s({type:[cc.SpriteFrame],tooltip:"\u65b9\u5757\u989c\u8272\u56fe\u7247"})],e.prototype,"Block_Color",void 0),c([s(cc.Label)],e.prototype,"level",void 0),c([r],e)}(cc.Component);o.default=l,cc._RF.pop()},{}],SceneManager:[function(t,e,o){"use strict";cc._RF.push(e,"80998T1AYNNRZdRxsVvXR65","SceneManager");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("./Map"),r=t("./Sdk/MiniGameSdk"),s=cc._decorator,l=s.ccclass,h=s.property,p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.label=null,e.text="hello",e.freeze=null,e.hammer=null,e.magic_wand=null,e.pause=null,e.Block_Array=[],e.Wall_Prefab=[],e.load1=!1,e.load2=!1,e.load3=!1,e.btnName="",e}return n(e,t),e.prototype.onLoad=function(){cc.game.setFrameRate(63),this.changeBg(),setTimeout(function(){cc.director.preloadScene("HomeScene",function(){})},1e3)},e.prototype.changeBg=function(){var t=this,e="bg/bg"+(Math.floor(8*Math.random())+1);cc.resources.load(e,cc.SpriteFrame,function(e,o){e?console.error("\u52a8\u6001\u52a0\u8f7d\u80cc\u666f\u56fe\u5931\u8d25:",e):t.node.getChildByName("Game").getChildByName("bg").getComponent(cc.Sprite).spriteFrame=o})},e.prototype.loadParticleEffects=function(){var t=this;cc.resources.loadDir("Particle",cc.ParticleAsset,function(e,o){e?console.error("\u52a8\u6001\u52a0\u8f7d\u7c92\u5b50\u7279\u6548\u5931\u8d25:",e):(t.particleEffects=o,t.setParticleSort(),t.load3=!0)})},e.prototype.setWallPrefabSort=function(){var t=["down","downLeft","downRight","left","right","up","upLeft","upRight"];this.Wall_Prefab.sort(function(e,o){var i=t.indexOf(e.name),n=t.indexOf(o.name);return-1===i?1:-1===n?-1:i-n})},e.prototype.setParticleSort=function(){var t=["top","bot","rig","lef"];this.particleEffects.sort(function(e,o){var i=t.indexOf(e.name.substr(0,3)),n=t.indexOf(o.name.substr(0,3));return-1===i?1:-1===n?-1:i-n})},e.prototype.setSort=function(){this.Block_Array.sort(function(t,e){var o,i;return parseInt((null===(o=t.name.match(/\d+/))||void 0===o?void 0:o[0])||"0",10)-parseInt((null===(i=e.name.match(/\d+/))||void 0===i?void 0:i[0])||"0",10)})},e.prototype.start=function(){},e.prototype.startGame=function(){cc.director.loadScene("HomeScene",function(t){t?console.error("\u52a0\u8f7d HomeScene \u573a\u666f\u5931\u8d25:",t):cc.director.loadScene("HomeScene")})},e.prototype.returnHome=function(){if(this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl")._touch){if(1==a.default._instance.gameStart){r.MiniGameSdk.API.showToast("\u4f53\u529b\u503c\u51cf\u5c11"),cc.fx.GameTool.setUserHealth(-1,function(){});var t={time:a.default._instance.count_Time,add_Time:a.default._instance.add_Time,result:"give_up"};cc.fx.GameTool.shushu_Track("finish_stage",t)}this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl").setTouch(!1),cc.fx.AudioManager._instance.playEffect("zhuan1",null),this.node.getChildByName("zhuanchang").active=!0,this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",!1),cc.director.preloadScene("HomeScene",function(t){t&&console.error("\u52a8\u6001\u52a0\u8f7d Prefab \u5931\u8d25:",t)}),setTimeout(function(){cc.director.loadScene("HomeScene")},1200)}},e.prototype.destroyNodesInFrames=function(t,e){var o=this,i=0,n=function(){for(var c=0;i=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("../Map"),r=cc._decorator,s=r.ccclass,l=r.property,h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=60,e.star_SpriteFrame=null,e}return n(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){},e.prototype.init=function(t){t&&(this.time=t),this.node.getChildByName("time").active=!0,this.node.getChildByName("time").getComponent(cc.Label).string=this.time.toString(),this.schedule(this.updateTime,1)},e.prototype.updateTime=function(){this.time--,this.node.getChildByName("time").getComponent(cc.Label).string=this.time.toString(),this.time<=0&&(this.unschedule(this.updateTime),this.node.destroy(),a.default._instance.failLevel())},c([l(cc.SpriteAtlas)],e.prototype,"star_SpriteFrame",void 0),c([s],e)}(cc.Component);o.default=h,cc._RF.pop()},{"../Map":"Map"}],Storage:[function(t,e,o){"use strict";cc._RF.push(e,"1002938VFRJd70RiAno9Iys","Storage"),Object.defineProperty(o,"__esModule",{value:!0}),o.StorageMessage=void 0;var i={getStorage:function(t){var e=null;return cc.sys.localStorage.getItem(t)&&(e=cc.sys.localStorage.getItem(t)),e&&(e=JSON.parse(e)),e},setStorage:function(t,e){var o=JSON.stringify(e);cc.sys.localStorage.setItem(t,o)},removeStorage:function(t){cc.sys.localStorage.getItem(t)&&cc.sys.localStorage.removeItem(t)}};o.StorageMessage=i,cc._RF.pop()},{}],TmoAssembler:[function(t,e,o){"use strict";function i(t,e){for(var o=0;o>2,s=c._vData;i.length+r>s.length?s.set(i.subarray(0,s.length-r),r):s.set(i,r);for(var l=c._iData,h=a.indiceOffset,p=a.vertexOffset,u=0,d=n.length;u>>0];if(!L)continue;var R=L.tileset,z="img"+B.id;x[z]=!0;var D=this.node.getChildByName(z),E=B.width||L.width,j=B.height||L.height,W=R.tileOffset.x,H=R.tileOffset.y;D instanceof cc.PrivateNode&&(D.removeFromParent(),D.destroy(),D=null),D||(D=new cc.Node),r.ISO==e.orientation?(D.anchorX=.5+W/E,D.anchorY=H/j):(D.anchorX=W/E,D.anchorY=H/j),D.active=B.visible,D.angle=-B.rotation,D.x=B.x-y,D.y=B.y-v,D.name=z,D.parent=this.node,D.opacity=this._opacity,D.setSiblingIndex(k),D._tiledMap=n;var V=D.getComponent(i);V||(V=D.addComponent(i));var q=V.spriteFrame;q||(q=new cc.SpriteFrame),(P&p)>>>0?q.setFlipX(!0):q.setFlipX(!1),(P&u)>>>0?q.setFlipY(!0):q.setFlipY(!1);var X=L.tileset.sourceImage;q.setTexture(X,cc.rect(L)),V.spriteFrame=q,V.setVertsDirty(),D.width=E,D.height=j,b.has(X)||(b.set(X,w.length),w.push(X));var Q=b.get(X);V.setTextureIdx(Q+1)}}this._objects=C;for(var U=this.node.children,Y=/^(?:img|text)\d+$/,K=0,J=U.length;K>>0];if(s){var l=s.texId;if(void 0===i[l]&&(i[l]=o.length,o.push(l),c))break}else cc.error("CCTiledLayer:_traverseAllGrid grid is null, gid is:",r)}}}});o.default=a,e.exports=o.default,cc._RF.pop()},{}],TmoTiledMap:[function(t,e){"use strict";cc._RF.push(e,"0b9eetmSUdJRZCQS91TYCw/","TmoTiledMap");var o=t("./TmoTiledLayer"),i=t("./TmoObjectGroup");cc.Class({extends:cc.TiledMap,properties:{objectMaterial:cc.Material,noColor:!0,singleTexture:!0,_objectTextures:[]},_applyFile:function(){this.objectMaterial?this._super():cc.error("TiledmapOptimize: \u672a\u8bbe\u7f6eobjectMaterial!")},_buildLayerAndGroup:function(){var t=this._tilesets,e=this._texGrids,n=this._animations;e.length=0;for(var c=0,a=t.length;c0)for(var M=0,B=C.length;M=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.WallColor=o.WallType=o.WallSpecial=void 0;var a,r,s,l=t("./Map"),h=cc._decorator,p=h.ccclass,u=h.property;(function(t){t[t["\u666e\u901a\u95e8"]=0]="\u666e\u901a\u95e8",t[t["\u661f\u661f\u95e8"]=1]="\u661f\u661f\u95e8",t[t["\u5f00\u5173\u95e8"]=2]="\u5f00\u5173\u95e8",t[t["\u51bb\u7ed3\u95e8"]=3]="\u51bb\u7ed3\u95e8"})(a=o.WallSpecial||(o.WallSpecial={})),function(t){t[t["\u95e8\u6a2a\u5411\u4e0b"]=0]="\u95e8\u6a2a\u5411\u4e0b",t[t["\u95e8\u6a2a\u5411\u4e0a"]=1]="\u95e8\u6a2a\u5411\u4e0a",t[t["\u95e8\u7ad6\u5411\u53f3"]=2]="\u95e8\u7ad6\u5411\u53f3",t[t["\u95e8\u7ad6\u5411\u5de6"]=3]="\u95e8\u7ad6\u5411\u5de6",t[t["\u5899\u6a2a\u5411\u4e0b"]=4]="\u5899\u6a2a\u5411\u4e0b",t[t["\u5899\u6a2a\u5411\u4e0a"]=5]="\u5899\u6a2a\u5411\u4e0a",t[t["\u5899\u7ad6\u5411\u53f3"]=6]="\u5899\u7ad6\u5411\u53f3",t[t["\u5899\u7ad6\u5411\u5de6"]=7]="\u5899\u7ad6\u5411\u5de6"}(r=o.WallType||(o.WallType={})),function(t){t[t["\u7d2b\u8272"]=0]="\u7d2b\u8272",t[t["\u9ec4\u8272"]=1]="\u9ec4\u8272",t[t["\u7eff\u8272"]=2]="\u7eff\u8272",t[t["\u84dd\u8272"]=3]="\u84dd\u8272",t[t["\u7c89\u8272"]=4]="\u7c89\u8272",t[t["\u6a58\u9ec4\u8272"]=5]="\u6a58\u9ec4\u8272",t[t["\u9752\u8272"]=6]="\u9752\u8272",t[t["\u767d\u8272"]=7]="\u767d\u8272",t[t["\u7ea2\u8272"]=8]="\u7ea2\u8272",t[t["\u7070\u8272"]=9]="\u7070\u8272"}(s=o.WallColor||(o.WallColor={}));var d=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.number=null,e.type=r.\u5899\u6a2a\u5411\u4e0b,e.special=a.\u666e\u901a\u95e8,e.color=s.\u7d2b\u8272,e.wall_SpriteFrames=null,e.down_SpriteFrames=null,e}return n(e,t),e.prototype.start=function(){},e.prototype.jsonDeepClone=function(t){return JSON.parse(JSON.stringify(t))},e.prototype.init=function(t,e,o,i){this.wall_Info=this.jsonDeepClone(t),null==t&&(this.posX=e,this.posY=o,i&&(this.direction=i),this.node.parent.zIndex="up"==i?100+this.posX-3*this.posY:"down"==i||"right"==i||"rightdown"==i||"downright"==i||"rightup"==i||"upright"==i?30+this.posX-3*this.posY:70+this.posX-3*this.posY,l.default._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id="Wall"),null!=t&&(this.color=t.color,this.special=t.special,this.initType(),t.length>0?this.initColor(t.length):this.node.removeComponent("cc.Sprite"),null!=this.posX&&(l.default._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id="Wall"))},e.prototype.initColor=function(t){var e=this.node.parent.name,o=0;if("left"!=e&&"right"!=e||(o=3),this.wall_SpriteFrames){var i=this.color+"color"+(t+o),n=this.wall_SpriteFrames._spriteFrames[i];this.node.getComponent(cc.Sprite).spriteFrame=n}if(this.down_SpriteFrames){var c=this.color+"down"+(t+o),a=this.down_SpriteFrames._spriteFrames[c];this.node.parent.getChildByName("down").getComponent(cc.Sprite).spriteFrame=a}},e.prototype.initType=function(){switch(this.special){case a.\u661f\u661f\u95e8:var t=cc.instantiate(l.default._instance.Block_Prop[this.special]);t.parent=this.node.parent,this.wall_Info.length>0&&("right"==this.direction||"left"==this.direction?t.children[this.wall_Info.length+2].active=!0:"up"!=this.direction&&"down"!=this.direction||(t.children[this.wall_Info.length-1].active=!0)),t.setPosition(this.node.width/2+this.node.x,this.node.height/2+this.node.y);break;case a.\u5f00\u5173\u95e8:var e="open"+this.wall_Info.length;this.openNode=this.node.parent.getChildByName("open").getChildByName(e),this.openNode.active=!0,0==this.wall_Info.lock?(this.open=!0,this.openNode.children[0].scaleX*=.01,this.openNode.children[1].scaleX*=.01):this.open=!1;break;case a.\u51bb\u7ed3\u95e8:var o="freeze"+this.wall_Info.length;this.freezeNode=this.node.parent.getChildByName("freeze").getChildByName(o),this.freezeNode.active=!0,this.wall_Info.freeze&&(this.freezeNode.getChildByName("num").getComponent(cc.Label).string=this.wall_Info.freeze+"")}},e.prototype.playStarDoor=function(){if(this.node.parent.getChildByName("star"))for(var t=this.node.parent.getChildByName("star"),e=0;e=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=(a.property,function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onLoad=function(){this.can_Touch=!1},e.prototype.start=function(){},e.prototype.init=function(t){var e=this;this.can_Touch=!1,this.node.getChildByName("win").active=!1,this.node.getChildByName("lose").active=!1,this.node.getChildByName("finishi").active=!1,this.node.getChildByName(t.result).active=!0,"lose"==t.result&&this.setErrLabel(t.code);var o=this.node.getChildByName(t.result);if(o.getChildByName("btn").active=!1,o.opacity=0,o.scale=2,o.getChildByName("tip").opacity=0,"win"==t.result){var i=!1;2==cc.fx.GameConfig.GM_INFO.level&&(i=!0),o.getChildByName("yes").active=!i,o.getChildByName("start").active=i}cc.tween(o).delay(.1).to(.25,{opacity:255,scale:1}).delay(.3).call(function(){"lose"==o.name?cc.tween(o.getChildByName("tip")).to(.5,{opacity:255}).delay(.5).call(function(){e.can_Touch=!0,o.getChildByName("btn").active=!0}).start():(e.can_Touch=!0,o.getChildByName("btn").active=!0)}).start()},e.prototype.setErrLabel=function(t){this.node.getChildByName("lose").getChildByName("tip").getComponent(cc.Label).string=cc.fx.GameConfig.TIP_ERR[t]},e.prototype.click_Next=function(){var t=this;this.can_Touch&&(this.can_Touch=!1,cc.tween(this.node).to(.3,{opacity:0}).call(function(){t.node.active=!1,cc.director.loadScene("GameScene")}).start())},c([r],e)}(cc.Component));o.default=s,cc._RF.pop()},{}],btnControl:[function(t,e,o){"use strict";cc._RF.push(e,"6ee6czJ4eVNb4Feiqps5SIa","btnControl");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=(a.property,function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onLoad=function(){this._touch=!0},e.prototype.start=function(){},e.prototype.setTouch=function(t){this._touch=t},e.prototype.update=function(){},c([r],e)}(cc.Component));o.default=s,cc._RF.pop()},{}],"crypto-js.min":[function(t,e,o){"use strict";cc._RF.push(e,"e64e1qXyT9CV6s0gDQdj/ed","crypto-js.min"),function(t,i){"object"==typeof o?e.exports=o=i():"function"==typeof define&&define.amd?define([],i):(void 0).CryptoJS=i()}(0,function(){var t,e,o,i,n,c,a,r=r||function(t){var e=Object.create||function(){function t(){}return function(e){var o;return t.prototype=e,o=new t,t.prototype=null,o}}(),o={},i=o.lib={},n=i.Base={extend:function(t){var o=e(this);return t&&o.mixIn(t),o.hasOwnProperty("init")&&this.init!==o.init||(o.init=function(){o.$super.init.apply(this,arguments)}),o.init.prototype=o,o.$super=this,o},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},c=i.WordArray=n.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||r).stringify(this)},concat:function(t){var e=this.words,o=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var c=0;c>>2]>>>24-c%4*8&255;e[i+c>>>2]|=a<<24-(i+c)%4*8}else for(c=0;c>>2]=o[c>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,o=this.sigBytes;e[o>>>2]&=4294967295<<32-o%4*8,e.length=t.ceil(o/4)},clone:function(){var t=n.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var o,i=[],n=function(e){e=e;var o=987654321,i=4294967295;return function(){var n=((o=36969*(65535&o)+(o>>16)&i)<<16)+(e=18e3*(65535&e)+(e>>16)&i)&i;return n/=4294967296,(n+=.5)*(t.random()>.5?1:-1)}},a=0;a>>2]>>>24-n%4*8&255;i.push((c>>>4).toString(16)),i.push((15&c).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,o=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new c.init(o,e/2)}},s=a.Latin1={stringify:function(t){for(var e=t.words,o=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(c))}return i.join("")},parse:function(t){for(var e=t.length,o=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new c.init(o,e)}},l=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(s.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return s.parse(unescape(encodeURIComponent(t)))}},h=i.BufferedBlockAlgorithm=n.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=l.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var o=this._data,i=o.words,n=o.sigBytes,a=this.blockSize,r=n/(4*a),s=(r=e?t.ceil(r):t.max((0|r)-this._minBufferSize,0))*a,l=t.min(4*s,n);if(s){for(var h=0;h>>6-a%4*2;n[c>>>2]|=(r|s)<<24-c%4*8,c++}return o.create(n,c)}var e=r,o=e.lib.WordArray;e.enc.Base64={stringify:function(t){var e=t.words,o=t.sigBytes,i=this._map;t.clamp();for(var n=[],c=0;c>>2]>>>24-c%4*8&255)<<16|(e[c+1>>>2]>>>24-(c+1)%4*8&255)<<8|e[c+2>>>2]>>>24-(c+2)%4*8&255,r=0;r<4&&c+.75*r>>6*(3-r)&63));var s=i.charAt(64);if(s)for(;n.length%4;)n.push(s);return n.join("")},parse:function(e){var o=e.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var c=0;c>>32-c)+e}function o(t,e,o,i,n,c,a){var r=t+(e&i|o&~i)+n+a;return(r<>>32-c)+e}function i(t,e,o,i,n,c,a){var r=t+(e^o^i)+n+a;return(r<>>32-c)+e}function n(t,e,o,i,n,c,a){var r=t+(o^(e|~i))+n+a;return(r<>>32-c)+e}var c=r,a=c.lib,s=a.WordArray,l=a.Hasher,h=c.algo,p=[];!function(){for(var e=0;e<64;e++)p[e]=4294967296*t.abs(t.sin(e+1))|0}();var u=h.MD5=l.extend({_doReset:function(){this._hash=new s.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,c){for(var a=0;a<16;a++){var r=c+a,s=t[r];t[r]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}var l=this._hash.words,h=t[c+0],u=t[c+1],d=t[c+2],f=t[c+3],m=t[c+4],_=t[c+5],g=t[c+6],y=t[c+7],v=t[c+8],C=t[c+9],x=t[c+10],b=t[c+11],w=t[c+12],k=t[c+13],M=t[c+14],B=t[c+15],N=l[0],S=l[1],G=l[2],O=l[3];N=e(N,S,G,O,h,7,p[0]),O=e(O,N,S,G,u,12,p[1]),G=e(G,O,N,S,d,17,p[2]),S=e(S,G,O,N,f,22,p[3]),N=e(N,S,G,O,m,7,p[4]),O=e(O,N,S,G,_,12,p[5]),G=e(G,O,N,S,g,17,p[6]),S=e(S,G,O,N,y,22,p[7]),N=e(N,S,G,O,v,7,p[8]),O=e(O,N,S,G,C,12,p[9]),G=e(G,O,N,S,x,17,p[10]),S=e(S,G,O,N,b,22,p[11]),N=e(N,S,G,O,w,7,p[12]),O=e(O,N,S,G,k,12,p[13]),G=e(G,O,N,S,M,17,p[14]),N=o(N,S=e(S,G,O,N,B,22,p[15]),G,O,u,5,p[16]),O=o(O,N,S,G,g,9,p[17]),G=o(G,O,N,S,b,14,p[18]),S=o(S,G,O,N,h,20,p[19]),N=o(N,S,G,O,_,5,p[20]),O=o(O,N,S,G,x,9,p[21]),G=o(G,O,N,S,B,14,p[22]),S=o(S,G,O,N,m,20,p[23]),N=o(N,S,G,O,C,5,p[24]),O=o(O,N,S,G,M,9,p[25]),G=o(G,O,N,S,f,14,p[26]),S=o(S,G,O,N,v,20,p[27]),N=o(N,S,G,O,k,5,p[28]),O=o(O,N,S,G,d,9,p[29]),G=o(G,O,N,S,y,14,p[30]),N=i(N,S=o(S,G,O,N,w,20,p[31]),G,O,_,4,p[32]),O=i(O,N,S,G,v,11,p[33]),G=i(G,O,N,S,b,16,p[34]),S=i(S,G,O,N,M,23,p[35]),N=i(N,S,G,O,u,4,p[36]),O=i(O,N,S,G,m,11,p[37]),G=i(G,O,N,S,y,16,p[38]),S=i(S,G,O,N,x,23,p[39]),N=i(N,S,G,O,k,4,p[40]),O=i(O,N,S,G,h,11,p[41]),G=i(G,O,N,S,f,16,p[42]),S=i(S,G,O,N,g,23,p[43]),N=i(N,S,G,O,C,4,p[44]),O=i(O,N,S,G,w,11,p[45]),G=i(G,O,N,S,B,16,p[46]),N=n(N,S=i(S,G,O,N,d,23,p[47]),G,O,h,6,p[48]),O=n(O,N,S,G,y,10,p[49]),G=n(G,O,N,S,M,15,p[50]),S=n(S,G,O,N,_,21,p[51]),N=n(N,S,G,O,w,6,p[52]),O=n(O,N,S,G,f,10,p[53]),G=n(G,O,N,S,x,15,p[54]),S=n(S,G,O,N,u,21,p[55]),N=n(N,S,G,O,v,6,p[56]),O=n(O,N,S,G,B,10,p[57]),G=n(G,O,N,S,g,15,p[58]),S=n(S,G,O,N,k,21,p[59]),N=n(N,S,G,O,m,6,p[60]),O=n(O,N,S,G,b,10,p[61]),G=n(G,O,N,S,d,15,p[62]),S=n(S,G,O,N,C,21,p[63]),l[0]=l[0]+N|0,l[1]=l[1]+S|0,l[2]=l[2]+G|0,l[3]=l[3]+O|0},_doFinalize:function(){var e=this._data,o=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;o[n>>>5]|=128<<24-n%32;var c=t.floor(i/4294967296),a=i;o[15+(n+64>>>9<<4)]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),o[14+(n+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),e.sigBytes=4*(o.length+1),this._process();for(var r=this._hash,s=r.words,l=0;l<4;l++){var h=s[l];s[l]=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)}return r},clone:function(){var t=l.clone.call(this);return t._hash=this._hash.clone(),t}});c.MD5=l._createHelper(u),c.HmacMD5=l._createHmacHelper(u)}(Math),e=(t=r).lib,o=e.WordArray,i=e.Hasher,n=t.algo,c=[],a=n.SHA1=i.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var o=this._hash.words,i=o[0],n=o[1],a=o[2],r=o[3],s=o[4],l=0;l<80;l++){if(l<16)c[l]=0|t[e+l];else{var h=c[l-3]^c[l-8]^c[l-14]^c[l-16];c[l]=h<<1|h>>>31}var p=(i<<5|i>>>27)+s+c[l];p+=l<20?1518500249+(n&a|~n&r):l<40?1859775393+(n^a^r):l<60?(n&a|n&r|a&r)-1894007588:(n^a^r)-899497514,s=r,r=a,a=n<<30|n>>>2,n=i,i=p}o[0]=o[0]+i|0,o[1]=o[1]+n|0,o[2]=o[2]+a|0,o[3]=o[3]+r|0,o[4]=o[4]+s|0},_doFinalize:function(){var t=this._data,e=t.words,o=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(i+64>>>9<<4)]=Math.floor(o/4294967296),e[15+(i+64>>>9<<4)]=o,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t}}),t.SHA1=i._createHelper(a),t.HmacSHA1=i._createHmacHelper(a),function(t){var e=r,o=e.lib,i=o.WordArray,n=o.Hasher,c=e.algo,a=[],s=[];!function(){function e(e){for(var o=t.sqrt(e),i=2;i<=o;i++)if(!(e%i))return!1;return!0}function o(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)e(i)&&(n<8&&(a[n]=o(t.pow(i,.5))),s[n]=o(t.pow(i,1/3)),n++),i++}();var l=[],h=c.SHA256=n.extend({_doReset:function(){this._hash=new i.init(a.slice(0))},_doProcessBlock:function(t,e){for(var o=this._hash.words,i=o[0],n=o[1],c=o[2],a=o[3],r=o[4],h=o[5],p=o[6],u=o[7],d=0;d<64;d++){if(d<16)l[d]=0|t[e+d];else{var f=l[d-15],m=(f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3,_=l[d-2],g=(_<<15|_>>>17)^(_<<13|_>>>19)^_>>>10;l[d]=m+l[d-7]+g+l[d-16]}var y=i&n^i&c^n&c,v=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),C=u+((r<<26|r>>>6)^(r<<21|r>>>11)^(r<<7|r>>>25))+(r&h^~r&p)+s[d]+l[d];u=p,p=h,h=r,r=a+C|0,a=c,c=n,n=i,i=C+(v+y)|0}o[0]=o[0]+i|0,o[1]=o[1]+n|0,o[2]=o[2]+c|0,o[3]=o[3]+a|0,o[4]=o[4]+r|0,o[5]=o[5]+h|0,o[6]=o[6]+p|0,o[7]=o[7]+u|0},_doFinalize:function(){var e=this._data,o=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return o[n>>>5]|=128<<24-n%32,o[14+(n+64>>>9<<4)]=t.floor(i/4294967296),o[15+(n+64>>>9<<4)]=i,e.sigBytes=4*o.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=n._createHelper(h),e.HmacSHA256=n._createHmacHelper(h)}(Math),function(){function t(t){return t<<8&4278255360|t>>>8&16711935}var e=r,o=e.lib.WordArray,i=e.enc;i.Utf16=i.Utf16BE={stringify:function(t){for(var e=t.words,o=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(c))}return i.join("")},parse:function(t){for(var e=t.length,i=[],n=0;n>>1]|=t.charCodeAt(n)<<16-n%2*16;return o.create(i,2*e)}},i.Utf16LE={stringify:function(e){for(var o=e.words,i=e.sigBytes,n=[],c=0;c>>2]>>>16-c%4*8&65535);n.push(String.fromCharCode(a))}return n.join("")},parse:function(e){for(var i=e.length,n=[],c=0;c>>1]|=t(e.charCodeAt(c)<<16-c%2*16);return o.create(n,2*i)}}}(),function(){if("function"==typeof ArrayBuffer){var t=r.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var o=t.byteLength,i=[],n=0;n>>2]|=t[n]<<24-n%4*8;e.call(this,i,o)}else e.apply(this,arguments)}).prototype=t}}(),function(){function t(t,e,o){return t^e^o}function e(t,e,o){return t&e|~t&o}function o(t,e,o){return(t|~e)^o}function i(t,e,o){return t&o|e&~o}function n(t,e,o){return t^(e|~o)}function c(t,e){return t<>>32-e}var a=r,s=a.lib,l=s.WordArray,h=s.Hasher,p=a.algo,u=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),d=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),f=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),m=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),_=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),y=p.RIPEMD160=h.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(a,r){for(var s=0;s<16;s++){var l=r+s,h=a[l];a[l]=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)}var p,y,v,C,x,b,w,k,M,B,N,S=this._hash.words,G=_.words,O=g.words,I=u.words,T=d.words,A=f.words,F=m.words;for(b=p=S[0],w=y=S[1],k=v=S[2],M=C=S[3],B=x=S[4],s=0;s<80;s+=1)N=p+a[r+I[s]]|0,N+=s<16?t(y,v,C)+G[0]:s<32?e(y,v,C)+G[1]:s<48?o(y,v,C)+G[2]:s<64?i(y,v,C)+G[3]:n(y,v,C)+G[4],N=(N=c(N|=0,A[s]))+x|0,p=x,x=C,C=c(v,10),v=y,y=N,N=b+a[r+T[s]]|0,N+=s<16?n(w,k,M)+O[0]:s<32?i(w,k,M)+O[1]:s<48?o(w,k,M)+O[2]:s<64?e(w,k,M)+O[3]:t(w,k,M)+O[4],N=(N=c(N|=0,F[s]))+B|0,b=B,B=M,M=c(k,10),k=w,w=N;N=S[1]+v+M|0,S[1]=S[2]+C+B|0,S[2]=S[3]+x+b|0,S[3]=S[4]+p+w|0,S[4]=S[0]+y+k|0,S[0]=N},_doFinalize:function(){var t=this._data,e=t.words,o=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t.sigBytes=4*(e.length+1),this._process();for(var n=this._hash,c=n.words,a=0;a<5;a++){var r=c[a];c[a]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}return n},clone:function(){var t=h.clone.call(this);return t._hash=this._hash.clone(),t}});a.RIPEMD160=h._createHelper(y),a.HmacRIPEMD160=h._createHmacHelper(y)}(Math),function(){var t=r,e=t.lib.Base,o=t.enc.Utf8;t.algo.HMAC=e.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=o.parse(e));var i=t.blockSize,n=4*i;e.sigBytes>n&&(e=t.finalize(e)),e.clamp();for(var c=this._oKey=e.clone(),a=this._iKey=e.clone(),r=c.words,s=a.words,l=0;l>>24)|4278255360&(c<<24|c>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(S=o[n]).high^=a,S.low^=c}for(var r=0;r<24;r++){for(var u=0;u<5;u++){for(var d=0,f=0,m=0;m<5;m++)d^=(S=o[u+5*m]).high,f^=S.low;var _=p[u];_.high=d,_.low=f}for(u=0;u<5;u++){var g=p[(u+4)%5],y=p[(u+1)%5],v=y.high,C=y.low;for(d=g.high^(v<<1|C>>>31),f=g.low^(C<<1|v>>>31),m=0;m<5;m++)(S=o[u+5*m]).high^=d,S.low^=f}for(var x=1;x<25;x++){var b=(S=o[x]).high,w=S.low,k=s[x];k<32?(d=b<>>32-k,f=w<>>32-k):(d=w<>>64-k,f=b<>>64-k);var M=p[l[x]];M.high=d,M.low=f}var B=p[0],N=o[0];for(B.high=N.high,B.low=N.low,u=0;u<5;u++)for(m=0;m<5;m++){var S=o[x=u+5*m],G=p[x],O=p[(u+1)%5+5*m],I=p[(u+2)%5+5*m];S.high=G.high^~O.high&I.high,S.low=G.low^~O.low&I.low}S=o[0];var T=h[r];S.high^=T.high,S.low^=T.low}},_doFinalize:function(){var e=this._data,o=e.words,n=(this._nDataBytes,8*e.sigBytes),c=32*this.blockSize;o[n>>>5]|=1<<24-n%32,o[(t.ceil((n+1)/c)*c>>>5)-1]|=128,e.sigBytes=4*o.length,this._process();for(var a=this._state,r=this.cfg.outputLength/8,s=r/8,l=[],h=0;h>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),l.push(d),l.push(u)}return new i.init(l,r)},clone:function(){for(var t=n.clone.call(this),e=t._state=this._state.slice(0),o=0;o<25;o++)e[o]=e[o].clone();return t}});e.SHA3=n._createHelper(u),e.HmacSHA3=n._createHmacHelper(u)}(Math),function(){function t(){return n.create.apply(n,arguments)}var e=r,o=e.lib.Hasher,i=e.x64,n=i.Word,c=i.WordArray,a=e.algo,s=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],l=[];!function(){for(var e=0;e<80;e++)l[e]=t()}();var h=a.SHA512=o.extend({_doReset:function(){this._hash=new c.init([new n.init(1779033703,4089235720),new n.init(3144134277,2227873595),new n.init(1013904242,4271175723),new n.init(2773480762,1595750129),new n.init(1359893119,2917565137),new n.init(2600822924,725511199),new n.init(528734635,4215389547),new n.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var o=this._hash.words,i=o[0],n=o[1],c=o[2],a=o[3],r=o[4],h=o[5],p=o[6],u=o[7],d=i.high,f=i.low,m=n.high,_=n.low,g=c.high,y=c.low,v=a.high,C=a.low,x=r.high,b=r.low,w=h.high,k=h.low,M=p.high,B=p.low,N=u.high,S=u.low,G=d,O=f,I=m,T=_,A=g,F=y,P=v,L=C,R=x,z=b,D=w,E=k,j=M,W=B,H=N,V=S,q=0;q<80;q++){var X=l[q];if(q<16)var Q=X.high=0|t[e+2*q],U=X.low=0|t[e+2*q+1];else{var Y=l[q-15],K=Y.high,J=Y.low,Z=(K>>>1|J<<31)^(K>>>8|J<<24)^K>>>7,$=(J>>>1|K<<31)^(J>>>8|K<<24)^(J>>>7|K<<25),tt=l[q-2],et=tt.high,ot=tt.low,it=(et>>>19|ot<<13)^(et<<3|ot>>>29)^et>>>6,nt=(ot>>>19|et<<13)^(ot<<3|et>>>29)^(ot>>>6|et<<26),ct=l[q-7],at=ct.high,rt=ct.low,st=l[q-16],lt=st.high,ht=st.low;Q=(Q=(Q=Z+at+((U=$+rt)>>>0<$>>>0?1:0))+it+((U+=nt)>>>0>>0?1:0))+lt+((U+=ht)>>>0>>0?1:0),X.high=Q,X.low=U}var pt,ut=R&D^~R&j,dt=z&E^~z&W,ft=G&I^G&A^I&A,mt=O&T^O&F^T&F,_t=(G>>>28|O<<4)^(G<<30|O>>>2)^(G<<25|O>>>7),gt=(O>>>28|G<<4)^(O<<30|G>>>2)^(O<<25|G>>>7),yt=(R>>>14|z<<18)^(R>>>18|z<<14)^(R<<23|z>>>9),vt=(z>>>14|R<<18)^(z>>>18|R<<14)^(z<<23|R>>>9),Ct=s[q],xt=Ct.high,bt=Ct.low,wt=H+yt+((pt=V+vt)>>>0>>0?1:0),kt=gt+mt;H=j,V=W,j=D,W=E,D=R,E=z,R=P+(wt=(wt=(wt=wt+ut+((pt+=dt)>>>0
>>0?1:0))+xt+((pt+=bt)>>>0>>0?1:0))+Q+((pt+=U)>>>0>>0?1:0))+((z=L+pt|0)>>>0>>0?1:0)|0,P=A,L=F,A=I,F=T,I=G,T=O,G=wt+(_t+ft+(kt>>>0>>0?1:0))+((O=pt+kt|0)>>>0>>0?1:0)|0}f=i.low=f+O,i.high=d+G+(f>>>0>>0?1:0),_=n.low=_+T,n.high=m+I+(_>>>0>>0?1:0),y=c.low=y+F,c.high=g+A+(y>>>0>>0?1:0),C=a.low=C+L,a.high=v+P+(C>>>0>>0?1:0),b=r.low=b+z,r.high=x+R+(b>>>0>>0?1:0),k=h.low=k+E,h.high=w+D+(k>>>0>>0?1:0),B=p.low=B+W,p.high=M+j+(B>>>0>>0?1:0),S=u.low=S+V,u.high=N+H+(S>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,o=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(i+128>>>10<<5)]=Math.floor(o/4294967296),e[31+(i+128>>>10<<5)]=o,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=o._createHelper(h),e.HmacSHA512=o._createHmacHelper(h)}(),function(){var t=r,e=t.x64,o=e.Word,i=e.WordArray,n=t.algo,c=n.SHA512,a=n.SHA384=c.extend({_doReset:function(){this._hash=new i.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var t=c._doFinalize.call(this);return t.sigBytes-=16,t}});t.SHA384=c._createHelper(a),t.HmacSHA384=c._createHmacHelper(a)}(),r.lib.Cipher||function(t){var e=r,o=e.lib,i=o.Base,n=o.WordArray,c=o.BufferedBlockAlgorithm,a=e.enc,s=(a.Utf8,a.Base64),l=e.algo.EvpKDF,h=o.Cipher=c.extend({cfg:i.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,o){this.cfg=this.cfg.extend(o),this._xformMode=t,this._key=e,this.reset()},reset:function(){c.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?v:g}return function(e){return{encrypt:function(o,i,n){return t(i).encrypt(e,o,i,n)},decrypt:function(o,i,n){return t(i).decrypt(e,o,i,n)}}}}()}),p=(o.StreamCipher=h.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),e.mode={}),u=o.BlockCipherMode=i.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),d=p.CBC=function(){function e(e,o,i){var n=this._iv;if(n){var c=n;this._iv=t}else c=this._prevBlock;for(var a=0;a>>2];t.sigBytes-=e}},m=(o.BlockCipher=h.extend({cfg:h.cfg.extend({mode:d,padding:f}),reset:function(){h.reset.call(this);var t=this.cfg,e=t.iv,o=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=o.createEncryptor;else i=o.createDecryptor,this._minBufferSize=1;this._mode&&this._mode.__creator==i?this._mode.init(this,e&&e.words):(this._mode=i.call(o,this,e&&e.words),this._mode.__creator=i)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var e=this._process(!0)}else e=this._process(!0),t.unpad(e);return e},blockSize:4}),o.CipherParams=i.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),_=(e.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,o=t.salt;if(o)var i=n.create([1398893684,1701076831]).concat(o).concat(e);else i=e;return i.toString(s)},parse:function(t){var e=s.parse(t),o=e.words;if(1398893684==o[0]&&1701076831==o[1]){var i=n.create(o.slice(2,4));o.splice(0,4),e.sigBytes-=16}return m.create({ciphertext:e,salt:i})}},g=o.SerializableCipher=i.extend({cfg:i.extend({format:_}),encrypt:function(t,e,o,i){i=this.cfg.extend(i);var n=t.createEncryptor(o,i),c=n.finalize(e),a=n.cfg;return m.create({ciphertext:c,key:o,iv:a.iv,algorithm:t,mode:a.mode,padding:a.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,o,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(o,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),y=(e.kdf={}).OpenSSL={execute:function(t,e,o,i){i||(i=n.random(8));var c=l.create({keySize:e+o}).compute(t,i),a=n.create(c.words.slice(e),4*o);return c.sigBytes=4*e,m.create({key:c,iv:a,salt:i})}},v=o.PasswordBasedCipher=g.extend({cfg:g.cfg.extend({kdf:y}),encrypt:function(t,e,o,i){var n=(i=this.cfg.extend(i)).kdf.execute(o,t.keySize,t.ivSize);i.iv=n.iv;var c=g.encrypt.call(this,t,e,n.key,i);return c.mixIn(n),c},decrypt:function(t,e,o,i){i=this.cfg.extend(i),e=this._parse(e,i.format);var n=i.kdf.execute(o,t.keySize,t.ivSize,e.salt);return i.iv=n.iv,g.decrypt.call(this,t,e,n.key,i)}})}(),r.mode.CFB=function(){function t(t,e,o,i){var n=this._iv;if(n){var c=n.slice(0);this._iv=void 0}else c=this._prevBlock;i.encryptBlock(c,0);for(var a=0;a>>2]|=n<<24-c%4*8,t.sigBytes+=n},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},r.pad.Iso10126={pad:function(t,e){var o=4*e,i=o-t.sigBytes%o;t.concat(r.lib.WordArray.random(i-1)).concat(r.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},r.pad.Iso97971={pad:function(t,e){t.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(t,e)},unpad:function(t){r.pad.ZeroPadding.unpad(t),t.sigBytes--}},r.mode.OFB=function(){var t=r.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var o=this._cipher,i=o.blockSize,n=this._iv,c=this._keystream;n&&(c=this._keystream=n.slice(0),this._iv=void 0),o.encryptBlock(c,0);for(var a=0;a>>8^255&f^99,i[o]=f,n[f]=o;var m=t[o],_=t[m],g=t[_],y=257*t[f]^16843008*f;c[o]=y<<24|y>>>8,a[o]=y<<16|y>>>16,s[o]=y<<8|y>>>24,l[o]=y,y=16843009*g^65537*_^257*m^16843008*o,h[f]=y<<24|y>>>8,p[f]=y<<16|y>>>16,u[f]=y<<8|y>>>24,d[f]=y,o?(o=m^t[t[t[g^m]]],r^=t[t[r]]):o=r=1}}();var f=[0,1,2,4,8,16,32,64,128,27,54],m=o.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,o=t.sigBytes/4,n=4*((this._nRounds=o+6)+1),c=this._keySchedule=[],a=0;a6&&a%o==4&&(r=i[r>>>24]<<24|i[r>>>16&255]<<16|i[r>>>8&255]<<8|i[255&r]):(r=i[(r=r<<8|r>>>24)>>>24]<<24|i[r>>>16&255]<<16|i[r>>>8&255]<<8|i[255&r],r^=f[a/o|0]<<24),c[a]=c[a-o]^r}for(var s=this._invKeySchedule=[],l=0;l>>24]]^p[i[r>>>16&255]]^u[i[r>>>8&255]]^d[i[255&r]]}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,c,a,s,l,i)},decryptBlock:function(t,e){var o=t[e+1];t[e+1]=t[e+3],t[e+3]=o,this._doCryptBlock(t,e,this._invKeySchedule,h,p,u,d,n),o=t[e+1],t[e+1]=t[e+3],t[e+3]=o},_doCryptBlock:function(t,e,o,i,n,c,a,r){for(var s=this._nRounds,l=t[e]^o[0],h=t[e+1]^o[1],p=t[e+2]^o[2],u=t[e+3]^o[3],d=4,f=1;f>>24]^n[h>>>16&255]^c[p>>>8&255]^a[255&u]^o[d++],_=i[h>>>24]^n[p>>>16&255]^c[u>>>8&255]^a[255&l]^o[d++],g=i[p>>>24]^n[u>>>16&255]^c[l>>>8&255]^a[255&h]^o[d++],y=i[u>>>24]^n[l>>>16&255]^c[h>>>8&255]^a[255&p]^o[d++];l=m,h=_,p=g,u=y}m=(r[l>>>24]<<24|r[h>>>16&255]<<16|r[p>>>8&255]<<8|r[255&u])^o[d++],_=(r[h>>>24]<<24|r[p>>>16&255]<<16|r[u>>>8&255]<<8|r[255&l])^o[d++],g=(r[p>>>24]<<24|r[u>>>16&255]<<16|r[l>>>8&255]<<8|r[255&h])^o[d++],y=(r[u>>>24]<<24|r[l>>>16&255]<<16|r[h>>>8&255]<<8|r[255&p])^o[d++],t[e]=m,t[e+1]=_,t[e+2]=g,t[e+3]=y},keySize:8});t.AES=e._createHelper(m)}(),function(){function t(t,e){var o=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=o,this._lBlock^=o<>>t^this._lBlock)&e;this._lBlock^=o,this._rBlock^=o<>>5]>>>31-i%32&1}for(var n=this._subKeys=[],c=0;c<16;c++){var a=n[c]=[],r=h[c];for(o=0;o<24;o++)a[o/6|0]|=e[(l[o]-1+r)%28]<<31-o%6,a[4+(o/6|0)]|=e[28+(l[o+24]-1+r)%28]<<31-o%6;for(a[0]=a[0]<<1|a[0]>>>31,o=1;o<7;o++)a[o]=a[o]>>>4*(o-1)+3;a[7]=a[7]<<5|a[7]>>>27}var p=this._invSubKeys=[];for(o=0;o<16;o++)p[o]=n[15-o]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(o,i,n){this._lBlock=o[i],this._rBlock=o[i+1],t.call(this,4,252645135),t.call(this,16,65535),e.call(this,2,858993459),e.call(this,8,16711935),t.call(this,1,1431655765);for(var c=0;c<16;c++){for(var a=n[c],r=this._lBlock,s=this._rBlock,l=0,h=0;h<8;h++)l|=p[h][((s^a[h])&u[h])>>>0];this._lBlock=s,this._rBlock=r^l}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,t.call(this,1,1431655765),e.call(this,8,16711935),e.call(this,2,858993459),t.call(this,16,65535),t.call(this,4,252645135),o[i]=this._lBlock,o[i+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});o.DES=c._createHelper(d);var f=a.TripleDES=c.extend({_doReset:function(){var t=this._key.words;this._des1=d.createEncryptor(n.create(t.slice(0,2))),this._des2=d.createEncryptor(n.create(t.slice(2,4))),this._des3=d.createEncryptor(n.create(t.slice(4,6)))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});o.TripleDES=c._createHelper(f)}(),function(){function t(){for(var t=this._S,e=this._i,o=this._j,i=0,n=0;n<4;n++){o=(o+t[e=(e+1)%256])%256;var c=t[e];t[e]=t[o],t[o]=c,i|=t[(t[e]+t[o])%256]<<24-8*n}return this._i=e,this._j=o,i}var e=r,o=e.lib.StreamCipher,i=e.algo,n=i.RC4=o.extend({_doReset:function(){for(var t=this._key,e=t.words,o=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;n=0;for(var c=0;n<256;n++){var a=n%o,r=e[a>>>2]>>>24-a%4*8&255;c=(c+i[n]+r)%256;var s=i[n];i[n]=i[c],i[c]=s}this._i=this._j=0},_doProcessBlock:function(e,o){e[o]^=t.call(this)},keySize:8,ivSize:0});e.RC4=o._createHelper(n);var c=i.RC4Drop=n.extend({cfg:n.cfg.extend({drop:192}),_doReset:function(){n._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)t.call(this)}});e.RC4Drop=o._createHelper(c)}(),r.mode.CTRGladman=function(){function t(t){if(255==(t>>24&255)){var e=t>>16&255,o=t>>8&255,i=255&t;255===e?(e=0,255===o?(o=0,255===i?i=0:++i):++o):++e,t=0,t+=e<<16,t+=o<<8,t+=i}else t+=1<<24;return t}function e(e){return 0===(e[0]=t(e[0]))&&(e[1]=t(e[1])),e}var o=r.lib.BlockCipherMode.extend(),i=o.Encryptor=o.extend({processBlock:function(t,o){var i=this._cipher,n=i.blockSize,c=this._iv,a=this._counter;c&&(a=this._counter=c.slice(0),this._iv=void 0),e(a);var r=a.slice(0);i.encryptBlock(r,0);for(var s=0;s>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,o=0;o<8;o++){var i=t[o]+e[o],n=65535&i,r=i>>>16,s=((n*n>>>17)+n*r>>>15)+r*r,l=((4294901760&i)*i|0)+((65535&i)*i|0);a[o]=s^l}t[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,t[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,t[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,t[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,t[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,t[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,t[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,t[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}var e=r,o=e.lib.StreamCipher,i=e.algo,n=[],c=[],a=[],s=i.Rabbit=o.extend({_doReset:function(){for(var e=this._key.words,o=this.cfg.iv,i=0;i<4;i++)e[i]=16711935&(e[i]<<8|e[i]>>>24)|4278255360&(e[i]<<24|e[i]>>>8);var n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],c=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,i=0;i<4;i++)t.call(this);for(i=0;i<8;i++)c[i]^=n[i+4&7];if(o){var a=o.words,r=a[0],s=a[1],l=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),p=l>>>16|4294901760&h,u=h<<16|65535&l;for(c[0]^=l,c[1]^=p,c[2]^=h,c[3]^=u,c[4]^=l,c[5]^=p,c[6]^=h,c[7]^=u,i=0;i<4;i++)t.call(this)}},_doProcessBlock:function(e,o){var i=this._X;t.call(this),n[0]=i[0]^i[5]>>>16^i[3]<<16,n[1]=i[2]^i[7]>>>16^i[5]<<16,n[2]=i[4]^i[1]>>>16^i[7]<<16,n[3]=i[6]^i[3]>>>16^i[1]<<16;for(var c=0;c<4;c++)n[c]=16711935&(n[c]<<8|n[c]>>>24)|4278255360&(n[c]<<24|n[c]>>>8),e[o+c]^=n[c]},blockSize:4,ivSize:2});e.Rabbit=o._createHelper(s)}(),r.mode.CTR=function(){var t=r.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var o=this._cipher,i=o.blockSize,n=this._iv,c=this._counter;n&&(c=this._counter=n.slice(0),this._iv=void 0);var a=c.slice(0);o.encryptBlock(a,0),c[i-1]=c[i-1]+1|0;for(var r=0;r>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,o=0;o<8;o++){var i=t[o]+e[o],n=65535&i,r=i>>>16,s=((n*n>>>17)+n*r>>>15)+r*r,l=((4294901760&i)*i|0)+((65535&i)*i|0);a[o]=s^l}t[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,t[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,t[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,t[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,t[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,t[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,t[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,t[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}var e=r,o=e.lib.StreamCipher,i=e.algo,n=[],c=[],a=[],s=i.RabbitLegacy=o.extend({_doReset:function(){var e=this._key.words,o=this.cfg.iv,i=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var c=0;c<4;c++)t.call(this);for(c=0;c<8;c++)n[c]^=i[c+4&7];if(o){var a=o.words,r=a[0],s=a[1],l=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),p=l>>>16|4294901760&h,u=h<<16|65535&l;for(n[0]^=l,n[1]^=p,n[2]^=h,n[3]^=u,n[4]^=l,n[5]^=p,n[6]^=h,n[7]^=u,c=0;c<4;c++)t.call(this)}},_doProcessBlock:function(e,o){var i=this._X;t.call(this),n[0]=i[0]^i[5]>>>16^i[3]<<16,n[1]=i[2]^i[7]>>>16^i[5]<<16,n[2]=i[4]^i[1]>>>16^i[7]<<16,n[3]=i[6]^i[3]>>>16^i[1]<<16;for(var c=0;c<4;c++)n[c]=16711935&(n[c]<<8|n[c]>>>24)|4278255360&(n[c]<<24|n[c]>>>8),e[o+c]^=n[c]},blockSize:4,ivSize:2});e.RabbitLegacy=o._createHelper(s)}(),r.pad.ZeroPadding={pad:function(t,e){var o=4*e;t.clamp(),t.sigBytes+=o-(t.sigBytes%o||o)},unpad:function(t){for(var e=t.words,o=t.sigBytes-1;!(e[o>>>2]>>>24-o%4*8&255);)o--;t.sigBytes=o+1}},r}),cc._RF.pop()},{}],lq_base_util:[function(t,e,o){"use strict";cc._RF.push(e,"cd21fuTZY5LOoiXtN66R7wx","lq_base_util"),Object.defineProperty(o,"__esModule",{value:!0}),o.LQBaseUtil=void 0;var i=t("./lq_platform_util"),n=t("../data/lq_const"),c=cc.view,a=function(){function t(){}return t.has_value=function(t,e){for(var o=!1,i=0;it){o=i;break}if(-1===o)return e[e.length-1].y;var n=o-1;return e[n].y+(e[o].y-e[n].y)*((t-e[n].x)/(e[o].x-e[n].x))},t.number_to_counting=function(t){return t<1e3?t+"":t<1e6?Math.floor(t/1e3)+"K":t<1e9?Math.floor(t/1e6)+"M":t<1e12?Math.floor(t/1e9)+"B":Math.floor(t/1e12)+"T"},t.number_to_time=function(t){var e=Math.floor(t/3600);t-=3600*e;var o=e.toString(),i=Math.floor(t/60).toString(),n=(t%60).toString();return 1===o.length&&(o="0"+o),1===i.length&&(i="0"+i),1===n.length&&(n="0"+n),[o,i,n]},t.set_normal_angle=function(t){for(;t>360;)t-=360;for(;t<0;)t+=360;return t},t.compare_version=function(t,e){for(var o=t.split("."),i=e.split("."),n=Math.max(o.length,i.length);o.lengthr)return 1;if(a=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.LQCollideBase=void 0;var a=cc._decorator.ccclass,r=cc._decorator.executeInEditMode,s=(cc.PolygonCollider,cc._decorator.property),l=t("./lq_collide"),h=(t("../lq_base/data/lq_const"),function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.auto_update_point=!0,e}return n(e,t),e.prototype.find_collide=function(){var t=this.node.getComponent(l.LQCollide);if(t)return t;console.error(this.node.name+":\u6ca1\u6709\u627e\u5230LQCollide\u7ec4\u4ef6")},e.prototype.onLoad=function(){var t=this.find_collide();t&&t.init_lq_collide()},e.prototype.onEnable=function(){var t=this.find_collide();t&&t.enable_lq_collide()},e.prototype.onDisable=function(){var t=this.find_collide();t&&t.disable_lq_collide()},e.prototype.onDestroy=function(){this.find_collide()},e.prototype.onFocusInEditor=function(){this.find_collide()},e.prototype.onLostFocusInEditor=function(){this.find_collide()},e.prototype.resetInEditor=function(){this.find_collide()},e.prototype.update=function(){},c([s({tooltip:"\u591a\u8fb9\u5f62\u81ea\u52a8\u540c\u6b65cocos PolygonCollider \u7ec4\u4ef6\u4e2d\u7684\u78b0\u649e\u70b9"})],e.prototype,"auto_update_point",void 0),c([a,r],e)}(cc.Component));o.LQCollideBase=h,cc._RF.pop()},{"../lq_base/data/lq_const":"lq_const","./lq_collide":"lq_collide"}],lq_collide_config:[function(t,e,o){"use strict";cc._RF.push(e,"4bd21i88J9KfoWB6fqk7oW1","lq_collide_config"),Object.defineProperty(o,"__esModule",{value:!0}),o.LQCollideConfig=o.LQCollideInfoList=void 0,function(t){t[t.default=0]="default",t[t.role=1]="role",t[t.role_bullet=2]="role_bullet",t[t.enemy=3]="enemy",t[t.enemy_bullet=4]="enemy_bullet",t[t.prop=5]="prop"}(o.LQCollideInfoList||(o.LQCollideInfoList={}));var i=function(){function t(){}return t.switch_auto_run=!0,t.switch_print_log=!0,t.switch_quad_tree=!1,t.max_node_len=10,t.per_frame=60,t.max_node_level=4,t.active_area_x=0,t.active_area_y=0,t.active_area_width=1e3,t.active_area_height=1e3,t.collide_group_map={default:{id:1,category:1,index:0,mask:1},role:{id:2,category:2,index:1,mask:56},role_bullet:{id:3,category:4,index:2,mask:8},enemy:{id:4,category:8,index:3,mask:6},enemy_bullet:{id:5,category:16,index:4,mask:2},prop:{id:6,category:32,index:5,mask:2}},t}();o.LQCollideConfig=i,cc._RF.pop()},{}],lq_collide_system:[function(t,e,o){"use strict";cc._RF.push(e,"81314mE3BdESr87SAFK9cqv","lq_collide_system"),o.__esModule=!0,o.LQCollideSystem=void 0;var i=t("../lq_base/data/lq_const"),n=t("../lq_base/util/lq_math_util"),c=t("./lq_collide_config"),a=t("../lq_base/data/lq_data"),r=cc.Vec2,s=cc.game,l=cc.director,h=cc.Scheduler,p=cc.misc,u=function(){function t(t,e,o,i){this.collide_arr=[],this.node_arr=[],this.max_object=e||10,this.max_level=o||4,this.level=i||0,this.rect=t,this.collide_arr=[],this.node_arr=[]}return t.prototype.split=function(){var e=this.level+1,o=.5*this.rect.width,i=.5*this.rect.height,n=this.rect.x,c=this.rect.y;this.node_arr[0]=new t(new a.LQRect(n+o,c,o,i),this.max_object,this.max_level,e),this.node_arr[1]=new t(new a.LQRect(n,c,o,i),this.max_object,this.max_level,e),this.node_arr[2]=new t(new a.LQRect(n,c+i,o,i),this.max_object,this.max_level,e),this.node_arr[3]=new t(new a.LQRect(n+o,c+i,o,i),this.max_object,this.max_level,e)},t.prototype.get_index=function(t){var e=[],o=this.rect.x+this.rect.half_width,i=this.rect.y+this.rect.half_height,n=t.world_rect.y+t.world_rect.half_height>i,c=t.world_rect.x-t.world_rect.half_widtho,r=t.world_rect.y-t.world_rect.half_heightthis.max_object&&this.level=0;e--)if(this.collide_arr[e].collide_id===t.collide_id){this.collide_arr.splice(e,1);break}},t.line_point=function(t,e,o,i,n,c){return Math.abs(this.distanceSquared(t,e,o,i)-(this.distanceSquared(t,e,n,c)+this.distanceSquared(o,i,n,c)))<=1},t.distanceSquared=function(t,e,o,i){return Math.sqrt(Math.pow(t-o,2)+Math.pow(e-i,2))},t.polygon_point=function(t,e,o){var i,n,c=t.length,a=!1;for(i=0,n=c-2;io!=t[n+1]>o&&e<(t[n]-t[i])*(o-t[i+1])/(t[n+1]-t[i+1])+t[i]&&(a=!a),n=i;if(a)return!0;for(i=0;i1?1:h)+t-n,s[1]*h+e-c];return this.dot(p,p)<=a*a},t.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]},t.update_logic=function(){if(this.is_enable)if(c.LQCollideConfig.switch_quad_tree){this.quad_tree.clear();for(var t=this.collide_arr.length-1;t>=0;t--){if(!(s=this.collide_arr[t]))return;s.isValid?(this.update_collide_logic(s),s.is_enable&&(this.update_world_rect(s),this.quad_tree.insert(s))):this.collide_arr.splice(t,1)}u.all_collide_arr=[],this.quad_tree.get_all_area();for(var e=0;e=0;t--){var s;if(!(s=this.collide_arr[t]))return;s.isValid?(this.update_collide_logic(s),s.is_enable&&(this.update_world_rect(s),o.push(s))):this.collide_arr.splice(t,1)}var l=o.length;for(t=0;ti)&&(i=n);for(c=null,a=null,r=0;ra)&&(a=n);if(i=0;i--){var n=t.collide_arr[i];e!==n&&n.is_enable&&(e.follow_target_category?n.collide_category===e.follow_target_category&&o.push(n):0!=(n.collide_category&e.collide_mask)&&o.push(n))}return o.sort(function(t,o){return e.world_rect.sub(t.world_rect).magSqr()-e.world_rect.sub(o.world_rect).magSqr()}),o[0]},t.clear=function(t){if(void 0===t&&(t=!1),t)for(var e=this.collide_arr.length-1;e>=0;e--){var o=this.collide_arr[e];o.isValid&&o.node.destroy()}this.collide_arr=[]},t.check_collide=function(t){var e,o=[];c.LQCollideConfig.switch_quad_tree?(u.temp_collide_arr=[],this.quad_tree.retrieve(t),e=u.temp_collide_arr):e=this.collide_arr;for(var i=0;i=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.LQCollide=void 0;var a=cc._decorator.ccclass,r=cc._decorator.property,s=cc._decorator.requireComponent,l=cc._decorator.menu,h=cc.Component,p=cc.Enum,u=cc.Size,d=cc.Vec2,f=cc.Graphics,m=cc.Node,_=cc.macro,g=cc.Color,y=t("../lq_base/data/lq_const"),v=t("./lq_collide_config"),C=t("./lq_collide_system"),x=t("../lq_base/data/lq_data"),b=t("./lq_collide_base"),w=t("../lq_base/util/lq_game_util"),k=t("../Map"),M=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._draw_collide=!0,e.can_move=!0,e._collide_shape=y.LQCollideShape.Rect,e._collide_group_index=-1,e.collide_group_id=0,e.collide_scle=1,e._radius=50,e._size=new u(100,100),e._polygon_points=[new d(-45,-45),new d(45,-45),new d(60,40),new d(0,70),new d(-60,40)],e._offset=new d(0,0),e.data_string="",e.collide_id=0,e.collide_status=y.LQCollideStatus.Idle,e.is_enable=!0,e.is_open_func=!0,e.collide_category=0,e.collide_mask=0,e.collide_map={},e}var o;return n(e,t),o=e,Object.defineProperty(e.prototype,"draw_collide",{get:function(){return this._draw_collide},set:function(t){this._draw_collide=t,this.draw_shape()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"collide_shape",{get:function(){return this._collide_shape},set:function(t){this._collide_shape=t,this.draw_shape()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"collide_group_index",{get:function(){return-1===this._collide_group_index&&(this._collide_group_index=C.LQCollideSystem.get_info_by_id(this.collide_group_id).index),this._collide_group_index},set:function(t){this._collide_group_index!==t&&(this._collide_group_index=t,this.collide_group_id=C.LQCollideSystem.get_group_by_index(t).id)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){return this._radius},set:function(t){this._radius=t,this.draw_shape()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"size",{get:function(){return this._size},set:function(t){this._size=t,this.world_rect&&(this.world_rect.width=t.width,this.world_rect.height=t.height,this.world_rect.half_width=.5*t.width,this.world_rect.half_height=.5*t.height),this.draw_shape()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"offset",{get:function(){return this._offset},set:function(t){this._offset=t,this.draw_shape()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"polygon_points",{get:function(){return this._polygon_points},set:function(t){this._polygon_points=t,this.draw_shape()},enumerable:!1,configurable:!0}),e.prototype.checkDebugDrawValid=function(){if(!this._debugDrawer||!this._debugDrawer.isValid){var t=this.node.getChildByName("Collide");t?this._debugDrawer=t.getComponent(f):((t=new m("Collide")).zIndex=_.MAX_ZINDEX,this.node.addChild(t),t._objFlags=1096,this._debugDrawer=t.addComponent(f),this._debugDrawer.lineWidth=3,this._debugDrawer.strokeColor=new g(255,0,0),this._debugDrawer.fillColor=new g(255,0,0))}},e.prototype.draw_shape=function(){if(this._draw_collide){this.checkDebugDrawValid(),this._debugDrawer.clear();var t={key:"scaleX",value:this.node.scale},e={key:"scaleY",value:this.node.scale};if(w.LQGameUtil.recursion_node_property(this.node,t),w.LQGameUtil.recursion_node_property(this.node,e),0!==t.value&&0!==e.value)switch(this._debugDrawer.node.scaleX=1/t.value,this._debugDrawer.node.scaleY=1/e.value,this._collide_shape){case y.LQCollideShape.Circle:this._debugDrawer.circle(+this._offset.x,+this._offset.y,this._radius),this._debugDrawer.stroke();break;case y.LQCollideShape.Rect:this._debugDrawer.moveTo(.5*-this._size.width+this._offset.x,.5*-this._size.height+this._offset.y),this._debugDrawer.lineTo(.5*-this._size.width+this._offset.x,.5*+this._size.height+this._offset.y),this._debugDrawer.lineTo(.5*this._size.width+this._offset.x,.5*+this._size.height+this._offset.y),this._debugDrawer.lineTo(.5*this._size.width+this._offset.x,.5*-this._size.height+this._offset.y),this._debugDrawer.lineTo(.5*-this._size.width+this._offset.x,.5*-this._size.height+this._offset.y),this._debugDrawer.stroke();break;case y.LQCollideShape.Polygon:this._debugDrawer.moveTo(this._polygon_points[0].x+this._offset.x,this._polygon_points[0].y+this._offset.y);for(var o=1;othis.node.parent.y+this.node.parent.height&&(e.moveY=1)),"down"===this.node.name&&(e.moveDown=!1,e.touchPointYthis.node.parent.x&&(e.moveX=1)))}},e.prototype.disableCollider=function(t){var e=!1;if(t.node&&this.node&&t.node.parent&&this.node.parent&&(t.node.parent.uuid==this.node.parent.uuid&&(e=!0),this.node.parent.getComponent("Block"))){var o=this.node.parent.getComponent("Block");1!=o.type&&10!=o.type&&9!=o.type||t.node.parent==o.block_Info.node&&(e=!0)}return e},e.id_maker=1,c([r({displayName:"\u7ed8\u5236\u5f62\u72b6"})],e.prototype,"draw_collide",null),c([r],e.prototype,"_draw_collide",void 0),c([r({tooltip:"\u80fd\u5426\u79fb\u52a8"})],e.prototype,"can_move",void 0),c([r({tooltip:"\u78b0\u649e\u5f62\u72b6\uff0cNone\u5c31\u662f\u65e0\u654c\uff0c\u4e0d\u53c2\u4e0e\u78b0\u649e",type:p(y.LQCollideShape),displayName:"\u78b0\u649e\u5f62\u72b6"})],e.prototype,"collide_shape",null),c([r()],e.prototype,"_collide_shape",void 0),c([r({type:p(v.LQCollideInfoList),tooltip:"\u78b0\u649e\u7c7b\u522b",displayName:"\u78b0\u649e\u7c7b\u522b"})],e.prototype,"collide_group_index",null),c([r({serializable:!1})],e.prototype,"_collide_group_index",void 0),c([r({visible:!1})],e.prototype,"collide_group_id",void 0),c([r({visible:!1})],e.prototype,"collide_scle",void 0),c([r({tooltip:"collide\u534a\u5f84",visible:function(){return this._collide_shape===y.LQCollideShape.Circle},displayName:"\u534a\u5f84"})],e.prototype,"radius",null),c([r()],e.prototype,"_radius",void 0),c([r({tooltip:"collide\u957f\u5bbd",visible:function(){return this._collide_shape===y.LQCollideShape.Rect},displayName:"\u957f\u5bbd"})],e.prototype,"size",null),c([r()],e.prototype,"_size",void 0),c([r({displayName:"\u4f4d\u7f6e\u504f\u79fb"})],e.prototype,"offset",null),c([r({type:d,visible:function(){return this._collide_shape===y.LQCollideShape.Polygon},displayName:"\u591a\u8fb9\u5f62\u78b0\u649e\u70b9"})],e.prototype,"polygon_points",null),c([r()],e.prototype,"_polygon_points",void 0),c([r()],e.prototype,"_offset",void 0),c([r({displayName:"\u81ea\u5b9a\u4e49\u5b57\u7b26\u4e32"})],e.prototype,"data_string",void 0),o=c([a,s(b.LQCollideBase),l("lq/collide")],e)}(h);o.LQCollide=M,cc._RF.pop()},{"../Map":"Map","../lq_base/data/lq_const":"lq_const","../lq_base/data/lq_data":"lq_data","../lq_base/util/lq_game_util":"lq_game_util","./lq_collide_base":"lq_collide_base","./lq_collide_config":"lq_collide_config","./lq_collide_system":"lq_collide_system"}],lq_const:[function(t,e,o){"use strict";cc._RF.push(e,"98309gPXUxEF6zBe9e75Knb","lq_const"),Object.defineProperty(o,"__esModule",{value:!0}),o.LQConst=o.LQOperateType=o.LQLevelStatus=o.LQAdErrStr=o.LQCallAd=o.LQCallBase=o.LQAnalysisTag=o.LQByteDanceType=o.LQPlatformType=o.LQHttpDataType=o.LQHttpRequestType=o.LQEasing=o.LQCollideStatus=o.LQFollowTargetMode=o.LQCollideShape=o.LQBulletEmitterStatus=o.LQRecordStatus=void 0;var i=cc.Vec2;(function(t){t[t.Idle=0]="Idle",t[t.Start=1]="Start",t[t.Pause=2]="Pause"})(o.LQRecordStatus||(o.LQRecordStatus={})),function(t){t[t.Idle=0]="Idle",t[t.Start=1]="Start",t[t.End=2]="End"}(o.LQBulletEmitterStatus||(o.LQBulletEmitterStatus={})),function(t){t[t.Rect=1]="Rect",t[t.Circle=2]="Circle",t[t.Polygon=3]="Polygon"}(o.LQCollideShape||(o.LQCollideShape={})),function(t){t[t.Always=0]="Always",t[t.Once=1]="Once",t[t.Pass=2]="Pass"}(o.LQFollowTargetMode||(o.LQFollowTargetMode={})),function(t){t[t.Idle=0]="Idle",t[t.Live=1]="Live"}(o.LQCollideStatus||(o.LQCollideStatus={})),function(t){t.BackIn="backIn",t.BackOut="backOut",t.quadIn="quadIn",t.quadOut="quadOut",t.quadInOut="quadInOut",t.cubicIn="cubicIn",t.expoOut="expoOut"}(o.LQEasing||(o.LQEasing={})),function(t){t.Get="get",t.Post="post"}(o.LQHttpRequestType||(o.LQHttpRequestType={})),function(t){t[t.Text=0]="Text",t[t.Binary=1]="Binary"}(o.LQHttpDataType||(o.LQHttpDataType={})),function(t){t.unknown="\u672a\u77e5\u5e73\u53f0",t.all="\u5168\u5e73\u53f0",t.wx="\u5fae\u4fe1",t.tt="\u5b57\u8282\u8df3\u52a8",t.oppo="oppo",t.vivo="vivo",t.qq="qq",t.baidu="\u767e\u5ea6",t.kwaigame="\u5feb\u624b",t.android="\u5b89\u5353",t.ios="\u82f9\u679c",t.browser="\u6d4f\u89c8\u5668"}(o.LQPlatformType||(o.LQPlatformType={})),function(t){t.tt="\u5934\u6761",t.tt_lite="\u5934\u6761\u6781\u901f\u7248",t.douyin="\u6296\u97f3",t.douyin_lite="\u6296\u97f3\u6781\u901f\u7248",t.ppx="\u76ae\u76ae\u867e",t.devtools="\u5b57\u8282\u5f00\u53d1\u5de5\u5177"}(o.LQByteDanceType||(o.LQByteDanceType={})),function(t){t.VideoComplete="video_complete",t.VideoBegin="video_begin",t.VideoInterrupt="video_interrupt",t.InterstitialShow="interstitial_show",t.BannerShow="banner_show",t.ExportShow="export_show",t.NativeShow="native_show",t.NativeClick="native_show"}(o.LQAnalysisTag||(o.LQAnalysisTag={})),function(t){t[t.InitSdk=0]="InitSdk",t[t.KeepScreenOn=1]="KeepScreenOn",t[t.Vibrate=2]="Vibrate",t[t.GetVersionCode=3]="GetVersionCode",t[t.GetVersionName=4]="GetVersionName",t[t.OpenUrl=5]="OpenUrl",t[t.DeleteDir=6]="DeleteDir",t[t.DeleteFile=7]="DeleteFile"}(o.LQCallBase||(o.LQCallBase={})),function(t){t[t.ShowBanner=0]="ShowBanner",t[t.HideBanner=1]="HideBanner",t[t.ShowVideo=2]="ShowVideo",t[t.ShowInterstitial=3]="ShowInterstitial",t[t.ShowNative=4]="ShowNative",t[t.CacheAd=5]="CacheAd"}(o.LQCallAd||(o.LQCallAd={})),function(t){t.Unsupported="\u4e0d\u652f\u6301",t.NoParameters="\u6ca1\u6709\u914d\u7f6e\u53c2\u6570",t.NoAD="\u6682\u65e0\u5e7f\u544a",t.VersionOld="\u7248\u672c\u8fc7\u4f4e",t.VideoInterrupt="\u4e2d\u65ad\u64ad\u653e",t.InstanceErr="\u5b9e\u4f8b\u4e3a\u7a7a",t.AlreadyExist="\u5df2\u7ecf\u5b58\u5728",t.IntervalTooShort="\u95f4\u9694\u592a\u77ed"}(o.LQAdErrStr||(o.LQAdErrStr={})),function(t){t[t.Begin=0]="Begin",t[t.Failed=1]="Failed",t[t.Complete=2]="Complete"}(o.LQLevelStatus||(o.LQLevelStatus={})),function(t){t[t.ClickNode=0]="ClickNode",t[t.ClickScreen=1]="ClickScreen",t[t.Move=2]="Move",t[t.Null=3]="Null"}(o.LQOperateType||(o.LQOperateType={}));var n=function(){function t(){}return t.VEC_ZERO=i.ZERO,t}();o.LQConst=n,cc._RF.pop()},{}],lq_data:[function(t,e,o){"use strict";cc._RF.push(e,"a54702UNV9NA7pYgQd6eA5/","lq_data"),Object.defineProperty(o,"__esModule",{value:!0}),o.LQPlatformData=o.LQShareData=o.LQNativeComponent=o.LQRect=void 0;var i=cc.Vec2,n=cc.Rect,c=function(){function t(t,e,o,i){this.x=t,this.y=e,this.width=o,this.height=i,this.half_width=.5*o,this.half_height=.5*i}return t.prototype.top_left=function(){return new i(this.x-this.half_width,this.y+this.half_height)},t.prototype.top_right=function(){return new i(this.x+this.half_width,this.y+this.half_height)},t.prototype.bottom_left=function(){return new i(this.x-this.half_width,this.y-this.half_height)},t.prototype.bottom_right=function(){return new i(this.x+this.half_width,this.y-this.half_height)},t.prototype.pos=function(){return new i(this.x,this.y)},t.prototype.sub=function(t){return new i(t.x-this.x,t.y-this.y)},t.prototype.add=function(t){return new i(t.x+this.x,t.y+this.y)},t.prototype.to_cocos_rect=function(){return new n(this.x-this.half_width,this.y-this.half_height,this.width,this.height)},t}();o.LQRect=c;o.LQNativeComponent=function(){this.node_btn_arr=[]};o.LQShareData=function(t){t.title&&(this.title=t.title),t.remote_url&&(this.remote_url=t.remote_url),t.url_id&&(this.url_id=t.url_id),t.query&&(this.query=t.query),t.content&&(this.content=t.content),t.extra&&(this.extra=t.extra),t.type&&(this.type=t.type)};o.LQPlatformData=function(){},cc._RF.pop()},{}],lq_game_util:[function(t,e,o){"use strict";cc._RF.push(e,"63c53CB9dhL/phFOPtTeuF7","lq_game_util"),Object.defineProperty(o,"__esModule",{value:!0}),o.LQGameUtil=void 0;var i=cc.director,n=cc.tween,c=cc.visibleRect,a=cc.find,r=function(){function t(){}return t.get_image=function(t,e,o){void 0===o&&(o=!0),t&&""!==t?this.image_cache[t]&&e(!0,this.image_cache[t]):e(!1,void 0)},t.canvas_policy=function(t,e,o){return c.height/c.width>o/e?(t.fitHeight=!1,t.fitWidth=!0):(t.fitHeight=!0,t.fitWidth=!1),t.fitHeight},t.recursion_node_property=function(t,e){t.parent&&(e.value*=t.parent[e.key],this.recursion_node_property(t.parent,e))},t.find_node=function(t){if(!t||t.length<=0)console.warn("\u8def\u5f84\u4e0d\u6b63\u786e");else{var e=t.split("/"),o=a(e[0]);if(o){for(var i=o,n=1;n0?o:o+6.28},t.intersects_rect=function(t,e){return Math.abs(t.x-e.x)e.x-.5*e.width&&t.xe.y-.5*e.height&&t.y=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=(a.requireComponent,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.node1=null,e.node2=null,e.node3=null,e.localTest=!1,e.clientTestVersion="1.0.0",e.testVersion=null,e}return n(e,t),e.prototype.start=function(){},e.prototype.containsTrain=function(t){return/from=train/i.test(t)},e.prototype.startGame=function(){cc.director.loadScene("GameScene")},e.prototype.clickBtn=function(t,e){cc.fx.GameConfig.GM_INFO.custom=parseInt(e),cc.director.loadScene("GameScene")},e.prototype.openRank=function(){cc.director.loadScene("RankScene")},e.prototype.update=function(){},c([s(cc.Node)],e.prototype,"node1",void 0),c([s(cc.Node)],e.prototype,"node2",void 0),c([s(cc.Node)],e.prototype,"node3",void 0),c([s(!1)],e.prototype,"localTest",void 0),c([s("")],e.prototype,"clientTestVersion",void 0),c([s(cc.Label)],e.prototype,"testVersion",void 0),c([r],e)}(cc.Component));o.default=l,cc._RF.pop()},{}],position:[function(t,e){"use strict";cc._RF.push(e,"e0e34n/+FRF5JdkULm6vdT0","position"),cc._RF.pop()},{}],share:[function(t,e){"use strict";cc._RF.push(e,"7290caA39xMWZc2phTMKovP","share"),cc._RF.pop()},{}],"use_v2.1-2.2.1_cc.Toggle_event_1":[function(t,e){"use strict";cc._RF.push(e,"c9ad1iUTB1PyqJ3cmtMGJ31","use_v2.1-2.2.1_cc.Toggle_event_1"),cc.Toggle&&(cc.Toggle._triggerEventInScript_isChecked=!0),cc._RF.pop()},{}],"use_v2.1-2.2.1_cc.Toggle_event":[function(t,e){"use strict";cc._RF.push(e,"7a231Rz0d9LBYYgY3bDYlLB","use_v2.1-2.2.1_cc.Toggle_event"),cc.Toggle&&(cc.Toggle._triggerEventInScript_isChecked=!0),cc._RF.pop()},{}],"\u878d\u5316":[function(t,e,o){"use strict";cc._RF.push(e,"341aezWi/BCGa2q28VO8ioy","\u878d\u5316");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.IceMelt=void 0;var a=cc._decorator,r=a.ccclass,s=(a.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.speed=1,e._isMelt=!1,e._time=0,e}return n(e,t),e.prototype.start=function(){this._material=this.node.getComponent(cc.Sprite).getMaterial(0)},e.prototype.update=function(t){this._material&&this._isMelt&&(this._material.setProperty("u_time",this._time),this._time+=t*this.speed)},e.prototype.startMelt=function(){this._isMelt=!0,this._time=0},c([r()],e)}(cc.Component));o.IceMelt=s,cc._RF.pop()},{}]},{},["Barrier","Block","CollisionDetection","ControlManager","DynamicAtlasManager","GameManager","GameOver","GameScene","JiaZai","Load","Map","MapBlock","NewMode","NumberToImage","Pause","RankManager","Reduce","SceneManager","DouyinEntranceView","MiniGameManager","MiniGameSdk","Wall","Window","btnControl","lq_const","lq_data","lq_interface","lq_base_util","lq_game_util","lq_math_util","lq_platform_util","lq_pool_util","lq_collide","lq_collide_base","lq_collide_config","lq_collide_system","GameConfig","HttpUtil","crypto-js.min","GameAppStart","AudioManager","Notification","ItemRender","List","share","Storage","GameTool","peizhi","position","Adhesive","Boom","Freeze","Key","Lock","Star","NewScript","\u878d\u5316","use_v2.1-2.2.1_cc.Toggle_event","use_v2.1-2.2.1_cc.Toggle_event_1","TmoAssembler","TmoObjectGroup","TmoSprite","TmoTiledLayer","TmoTiledMap"]); \ No newline at end of file +window.__require=function t(e,o,i){function n(a,r){if(!o[a]){if(!e[a]){var s=a.split("/");if(s=s[s.length-1],!e[s]){var l="function"==typeof __require&&__require;if(!r&&l)return l(s,!0);if(c)return c(s,!0);throw new Error("Cannot find module '"+a+"'")}a=s}var h=o[a]={exports:{}};e[a][0].call(h.exports,function(t){return n(e[a][1][t]||t)},h,h.exports,t,e,o,i)}return o[a].exports}for(var c="function"==typeof __require&&__require,a=0;a=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=(a.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=60,e.pos={x:0,y:0},e}return n(e,t),e.prototype.onLoad=function(){this.pos.x=this.pos.y=0,this.target=null},e.prototype.start=function(){},e.prototype.init=function(t){this.pos.x=t.x-this.node.x,this.pos.y=t.y-this.node.y,this.target=t},e.prototype.remove=function(){var t=this;this.target=null;for(var e=0;e=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.audioGameBgm0=null,e.xiaochu=null,e.hit=null,e.down=null,e.fangxiang=null,e.build=null,e.win=null,e.lose=null,e.anniu_Big=null,e.anniu_little=null,e.zhuan1=null,e.zhuan2=null,e}var o;return n(e,t),o=e,e.prototype.onLoad=function(){null==o._instance&&(o._instance=this,cc.game.addPersistRootNode(this.node),this.reward=!1,this.finish=!1,this.rewardCount=0,this.ctor(),this.preload())},e.prototype.ctor=function(){this.mAudioMap={},this.bgMusicVolume=.1,this.effectMusicVolume=1,this.mMusicSwitch=1,this.mEffectSwitch=1},e.prototype.play=function(t,e,o,i){i?this.bgMusicVolume:this.effectMusicVolume,cc.audioEngine.setEffectsVolume(1),cc.audioEngine.setMusicVolume(1),"lose"==t.name?cc.audioEngine.setEffectsVolume(.5):cc.audioEngine.setEffectsVolume(1);var n=cc.audioEngine.playEffect(t,e);return o&&cc.audioEngine.setFinishCallback(n,function(){o.call(this)}.bind(this)),this.mAudioMap[t]=n,t},e.prototype.save=function(){},e.prototype.preload=function(){cc.sys.platform===cc.sys.WECHAT_GAME&&[this.audioGameBgm0].forEach(function(){})},e.prototype.getAudioMusicSwitch=function(){return this.mMusicSwitch},e.prototype.getAudioEffectSwitch=function(){return this.mEffectSwitch},e.prototype.trunAudioSound=function(t){this.switchMusic(t),this.switchEffect(t)},e.prototype.switchMusic=function(t){this.mMusicSwitch!=(t?1:0)&&(this.mMusicSwitch=1-this.mMusicSwitch),t?this.playMusicGame():this.stopMusic()},e.prototype.switchEffect=function(t){this.mEffectSwitch!=(t?1:0)&&(this.mEffectSwitch=1-this.mEffectSwitch)},e.prototype.onHide=function(){cc.audioEngine.pauseAll()},e.prototype.onShow=function(){cc.audioEngine.resumeAll()},e.prototype.playEffect=function(t,e){if(cc.fx.GameConfig.GM_INFO.effectOpen)return this[t]?this.play(this[t],!1,e,this.mEffectSwitch):void 0},e.prototype.playMusic=function(t,e,o){cc.fx.GameConfig.GM_INFO.musicOpen&&(o=!(void 0!==o&&!o),this.stopMusic(),this.mMusicKey=this.play(t,o,e,!0))},e.prototype.playMusicGame=function(){this.stopMusic(),this.playMusic(this.audioGameBgm0,{},!0)},e.prototype.stopMusic=function(){cc.audioEngine.stopAll()},e.prototype.resumeMusic=function(){cc.audioEngine.resumeMusic()},e.prototype.playGameStart=function(){},e.prototype.playGameOver=function(){},e.prototype.playGameResultFailed=function(){},e.prototype.playGameResultSuccess=function(){},e.prototype.playAudioButton=function(){},c([s(cc.AudioClip)],e.prototype,"audioGameBgm0",void 0),c([s(cc.AudioClip)],e.prototype,"xiaochu",void 0),c([s(cc.AudioClip)],e.prototype,"hit",void 0),c([s(cc.AudioClip)],e.prototype,"down",void 0),c([s(cc.AudioClip)],e.prototype,"fangxiang",void 0),c([s(cc.AudioClip)],e.prototype,"build",void 0),c([s(cc.AudioClip)],e.prototype,"win",void 0),c([s(cc.AudioClip)],e.prototype,"lose",void 0),c([s(cc.AudioClip)],e.prototype,"anniu_Big",void 0),c([s(cc.AudioClip)],e.prototype,"anniu_little",void 0),c([s(cc.AudioClip)],e.prototype,"zhuan1",void 0),c([s(cc.AudioClip)],e.prototype,"zhuan2",void 0),o=c([r],e)}(cc.Component);o.default=l,cc._RF.pop()},{}],Barrier:[function(t,e,o){"use strict";cc._RF.push(e,"90c37YHUUVPsY0mlNmom67u","Barrier");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("./Map"),r=cc._decorator,s=r.ccclass,l=(r.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.selfBoxColliders=[],e.allBoxColliders=[],e.initialTouchOffset=null,e.offsetTolerance=100,e.touchPoint=null,e.isTouch=!1,e.posX=0,e.posY=0,e.moveLeft=!0,e.moveRight=!0,e.moveUp=!0,e.moveDown=!0,e.moveCorner=0,e.moveY=0,e.moveX=0,e.touchPointX=0,e.touchPointY=0,e.blockId=0,e.level=0,e.pz=!1,e}return n(e,t),e.prototype.onLoad=function(){this.pz=!1,this.stacking=cc.v2(0,0)},e.prototype.start=function(){},e.prototype.jsonDeepClone=function(t){return JSON.parse(JSON.stringify(t))},e.prototype.init=function(t){this.block_Info=this.jsonDeepClone(t);for(var e=a.default._instance.mapInfo,o=0;o=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.PathType=o.BlockColor=o.BlockType=void 0;var a,r,s=t("./lq_collide_system/lq_collide_system"),l=t("./Map"),h=cc._decorator,p=h.ccclass,u=h.property;(function(t){t[t["\u666e\u901a\u5757"]=0]="\u666e\u901a\u5757",t[t["\u53e0\u52a0\u5757\u4e0b"]=1]="\u53e0\u52a0\u5757\u4e0b",t[t["\u94a5\u5319\u5757"]=2]="\u94a5\u5319\u5757",t[t["\u4e0a\u9501\u5757"]=3]="\u4e0a\u9501\u5757",t[t["\u51bb\u7ed3\u5757"]=4]="\u51bb\u7ed3\u5757",t[t["\u661f\u661f\u5757"]=5]="\u661f\u661f\u5757",t[t["\u70b8\u5f39\u5757"]=6]="\u70b8\u5f39\u5757",t[t["\u6c34\u5e73\u5757"]=7]="\u6c34\u5e73\u5757",t[t["\u5782\u76f4\u5757"]=8]="\u5782\u76f4\u5757",t[t["\u7c98\u5408\u5757"]=9]="\u7c98\u5408\u5757",t[t["\u53e0\u52a0\u5757\u4e0a"]=10]="\u53e0\u52a0\u5757\u4e0a"})(a=o.BlockType||(o.BlockType={})),function(t){t[t["\u7d2b\u8272"]=0]="\u7d2b\u8272",t[t["\u9ec4\u8272"]=1]="\u9ec4\u8272",t[t["\u7eff\u8272"]=2]="\u7eff\u8272",t[t["\u84dd\u8272"]=3]="\u84dd\u8272",t[t["\u7c89\u8272"]=4]="\u7c89\u8272",t[t["\u6a58\u9ec4\u8272"]=5]="\u6a58\u9ec4\u8272",t[t["\u9752\u8272"]=6]="\u9752\u8272",t[t["\u767d\u8272"]=7]="\u767d\u8272",t[t["\u7ea2\u8272"]=8]="\u7ea2\u8272",t[t["\u7070\u8272"]=9]="\u7070\u8272"}(r=o.BlockColor||(o.BlockColor={})),function(t){t.err="err",t.up="up",t.down="down",t.left="left",t.right="right",t.up_left="up_left",t.up_right="up_right",t.down_left="down_left",t.down_right="down_right",t.left_up="left_up",t.left_down="left_down",t.right_up="right_up",t.right_down="right_down"}(o.PathType||(o.PathType={}));var d=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.moveInterval=0,e.lastMoveTime=0,e.maxSpeed=300,e.type=a.\u666e\u901a\u5757,e.color=r.\u7d2b\u8272,e.heng=1,e.shu=1,e.ice_SpriteFrame=null,e.initialTouchOffset=null,e.offsetTolerance=100,e.touchPoint=null,e.isTouch=!1,e.posX=0,e.posY=0,e.moveLeft=!0,e.moveRight=!0,e.moveUp=!0,e.moveDown=!0,e.moveCorner=0,e.moveY=0,e.moveX=0,e.touchPointX=0,e.touchPointY=0,e.blockId=0,e.level=0,e.pz=!1,e.over=!1,e.touchDelta=cc.v2(0,0),e.checkCollision=!1,e}return n(e,t),e.prototype.onLoad=function(){this.pz=!1,this.stacking=cc.v2(0,0),this.adhesive=cc.v2(0,0),this.adhesiveNode=[],this.collider=this.node.getComponent(cc.PolygonCollider),this.over=!1,this.checkCollision=!1},e.prototype.start=function(){},e.prototype.jsonDeepClone=function(t){return JSON.parse(JSON.stringify(t))},e.prototype.init=function(t,e,o,i,n){var c=this;if(this.block_Info=this.jsonDeepClone(t),i&&(this.block_Info.node=i),this.type=t.type,this.color=t.color,this.blockId=t.id,this.initColor(),this.initType(),this.initBlocks(),this.type!=a.\u53e0\u52a0\u5757\u4e0a){this.node.on(cc.Node.EventType.TOUCH_START,this.touchStart,this),this.node.on(cc.Node.EventType.TOUCH_MOVE,this.touchMove,this),this.node.on(cc.Node.EventType.TOUCH_CANCEL,this.touchEnd,this),this.node.on(cc.Node.EventType.TOUCH_END,this.touchEnd,this),this.node._touchListener.setSwallowTouches(!1),setTimeout(function(){if(c.type==a.\u7c98\u5408\u5757){var t=cc.v2(c.node.x-c.block_Info.node.x,c.node.y-c.block_Info.node.y);n&&(c.node.zIndex>=c.block_Info.node.zIndex?c.createAdhesive():c.block_Info.node.getComponent("Block").createAdhesive());var e=["top","down","left","right"];c.block_Info.node.children.forEach(function(o){if(o instanceof cc.Node&&e.includes(o.name)&&"-1"!=o.getComponent("lq_collide").data_string){var i=cc.instantiate(o);i.getComponent("lq_collide").data_string="-1",i.parent=c.node;var n=o.getPosition();i.setPosition(n.x-t.x,n.y-t.y)}}),c.adhesive=t}},100);for(var r=l.default._instance.mapInfo,s=0;s0)for(var t=0;t=0&&i=0&&n=0?(this.over=!0,l.default._instance.changeState(),this.removeBoxCollider(),this.removeMapBlock(),this.removeAction(a)):(l.default._instance.upDoor(this.color),this.setVibrate("medium",1))}},e.prototype.removeBoxCollider=function(){for(var t=0;t0?1:-1,scaleY:n>0?1:-1}).start()}else this.type==a.\u7c98\u5408\u5757?(this.removeAdhesive(),this.block_Info.node.getComponent("Block").removeAdhesive(),this.block_Info.node.getComponent("Block").restoreNomal(this.block_Info.node.getComponent("Block").posX,this.block_Info.node.getComponent("Block").posY,!1),this.block_Info.node=null):this.type==a.\u70b8\u5f39\u5757&&this.node.getChildByName("boom").getComponent("Boom").stopBoom();var c=.33,r=Math.floor(this.node.width/120),s=Math.floor(this.node.height/120);if(setTimeout(function(){cc.fx.AudioManager._instance.playEffect("xiaochu",null)},300),this.setVibrate("light",3),0==t){c=.33*s;for(var h=0;h0?1:-1,scaleY:n>0?1:-1}).start()}else e.type==a.\u7c98\u5408\u5757?e.block_Info.node.getComponent("Block").restoreNomal(e.block_Info.node.getComponent("Block").posX,e.block_Info.node.getComponent("Block").posY,!1):e.type==a.\u70b8\u5f39\u5757&&t.node.getChildByName("boom").getComponent("Boom").stopBoom();l.default._instance.nextLevel(),t.node.active=!1,t.node.removeFromParent()},200)}else this.node.getChildByName("lock").getComponent("Lock").reduce();else this.node.getChildByName("freeze").getComponent("Freeze").reduce(2)},e.prototype.setVibrate=function(t,e){if(cc.fx.GameConfig.GM_INFO.vibrateOpen)if(1!=e)for(var o=0;o<4;o++)setTimeout(function(){"undefined"!=typeof wx&&null!==wx&&wx.vibrateShort({type:t,success:function(){},fail:function(){}})},150*o);else"undefined"!=typeof wx&&null!==wx&&wx.vibrateShort({type:t,success:function(){},fail:function(){}})},e.prototype.setMoveCorner=function(){},e.prototype.cmupdate=function(){cc.director.getCollisionManager().update()},e.prototype.restoreNomal=function(t,e,o){this.type=0,this.block_Info.node=null,this.moveStack=!1,this.posX=t,this.posY=e,this.setMapBlock(),this.level=50+this.posX-3*this.posY,this.node.zIndex=this.level;for(var i=1e3,n=0;ni&&(this.node.children[n].active=!1);if(o)for(n=0;n0)for(var t=0;t0)for(var t=0;t0){var e=this.touchDelta,o=this.node.x+e.x,i=this.node.y+e.y,n=Math.sqrt(Math.pow(o-this.node.x,2)+Math.pow(i-this.node.y,2)),c=Math.round(e.mag());1===this.moveY?this.touchPointY<=this.node.y+this.node.height/2&&(this.moveY=0):-1===this.moveY&&this.touchPointY>=this.node.y+this.node.height/2&&(this.moveY=0),1===this.moveX?this.touchPointX<=this.node.x-this.node.width/2&&(this.moveX=0):-1===this.moveX&&this.touchPointX>=this.node.x-this.node.width/2&&(this.moveX=0),n>100?(c=10,e.x*=.5,e.y*=.5):c>5&&(c=Math.floor(c/5));for(var r=e.x/c,l=e.y/c,h=0;hMath.abs(l)?(this.node.x>p?(this.moveLeft&&0===this.moveX&&8!==this.type&&10!==this.type&&(this.node.x=p),0!==this.moveX&&(this.moveX=0)):this.node.x<=p&&(this.moveRight&&0===this.moveX&&8!==this.type&&10!==this.type&&(this.node.x=p),0!==this.moveX&&(this.moveX=0)),this.node.y>u?(this.moveDown&&0===this.moveY&&7!==this.type&&10!==this.type&&(this.node.y=u),0!==this.moveY&&(this.moveY=0)):this.node.y<=u&&(this.moveUp&&0===this.moveY&&7!==this.type&&10!==this.type&&(this.node.y=u),0!==this.moveY&&(this.moveY=0))):(this.node.y>u?(this.moveDown&&0===this.moveY&&7!==this.type&&10!==this.type&&(this.node.y=u),0!==this.moveY&&(this.moveY=0)):this.node.y<=u&&(this.moveUp&&0===this.moveY&&7!==this.type&&10!==this.type&&(this.node.y=u),0!==this.moveY&&(this.moveY=0)),this.node.x>p?(this.moveLeft&&0===this.moveX&&8!==this.type&&10!==this.type&&(this.node.x=p),0!==this.moveX&&(this.moveX=0)):this.node.x<=p&&(this.moveRight&&0===this.moveX&&8!==this.type&&10!==this.type&&(this.node.x=p),0!==this.moveX&&(this.moveX=0))):(8!==this.type&&10!==this.type&&(this.node.x=Math.round(p)),7!==this.type&&10!==this.type&&(this.node.y=Math.round(u))),s.LQCollideSystem.update_logic(t)}this.touchDelta=cc.v2(0,0)}this.type==a.\u53e0\u52a0\u5757\u4e0a&&1==this.moveStack&&(0==this.stacking.x&&0==this.stacking.y||(this.node.x=this.block_Info.node.x+this.stacking.x,this.node.y=this.block_Info.node.y+this.stacking.y)),this.block_Info&&null!=this.block_Info.node&&this.type==a.\u7c98\u5408\u5757&&(0!=this.adhesive.x&&0!=this.adhesive.y&&null!=this.block_Info.node&&(this.block_Info.node.x=this.node.x-this.adhesive.x,this.block_Info.node.y=this.node.y-this.adhesive.y),1==this.isTouch&&0==this.block_Info.node.getComponent("Block").isTouch&&(s.LQCollideSystem.update_logic(t),this.block_Info.node.x=this.node.x-this.adhesive.x,this.block_Info.node.y=this.node.y-this.adhesive.y))},c([u({tooltip:"\u78b0\u649e\u5f62\u72b6\uff0cNone\u5c31\u662f\u65e0\u654c\uff0c\u4e0d\u53c2\u4e0e\u78b0\u649e",type:cc.Enum(a)})],e.prototype,"type",void 0),c([u({tooltip:"\u78b0\u649e\u5f62\u72b6\uff0cNone\u5c31\u662f\u65e0\u654c\uff0c\u4e0d\u53c2\u4e0e\u78b0\u649e",type:cc.Enum(r)})],e.prototype,"color",void 0),c([u({tooltip:"\u6a2a\u5411\u957f\u5ea6",type:cc.Integer})],e.prototype,"heng",void 0),c([u({tooltip:"\u7ad6\u5411\u957f\u5ea6",type:cc.Integer})],e.prototype,"shu",void 0),c([u(cc.SpriteAtlas)],e.prototype,"ice_SpriteFrame",void 0),c([p],e)}(cc.Component);o.default=d,cc._RF.pop()},{"./Map":"Map","./lq_collide_system/lq_collide_system":"lq_collide_system"}],Boom:[function(t,e,o){"use strict";cc._RF.push(e,"3c749iEEwlAMKPyjGEkwU2l","Boom");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("../Map"),r=t("../NumberToImage"),s=cc._decorator,l=s.ccclass,h=(s.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=60,e}return n(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){},e.prototype.init=function(t){t&&(this.time=t),this.node.getChildByName("time").active=!0,r.default.numberToImageNodes(this.time,20,8,"lock_",this.node.getChildByName("time"),!1)},e.prototype.startBoom=function(){this.schedule(this.updateTime,1)},e.prototype.stopBoom=function(){this.unschedule(this.updateTime),this.node.parent.getComponent("Block").resetFreeze(),this.node.destroy()},e.prototype.updateTime=function(){var t=this;if(this.time--,r.default.numberToImageNodes(this.time,20,8,"lock_",this.node.getChildByName("time"),!1),this.time<=0){this.unschedule(this.updateTime),this.node.getChildByName("zhandan").active=!0;var e=this.node.getChildByName("zhandan").getComponent(sp.Skeleton);e.setAnimation(1,"eff",!1),e.setCompleteListener(function(){t.node.destroy()}),a.default._instance.failLevel("boom")}},c([l],e)}(cc.Component));o.default=h,cc._RF.pop()},{"../Map":"Map","../NumberToImage":"NumberToImage"}],CollisionDetection:[function(t,e,o){"use strict";cc._RF.push(e,"f1883pXzMVIp5/ARDAWfZ7j","CollisionDetection");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=(a.property,a.requireComponent,function(t){function e(){return null!==t&&t.apply(this,arguments)||this}var o;return n(e,t),o=e,e.prototype.onLoad=function(){null==o._instance&&(o._instance=this)},e.prototype.isColliding=function(t,e){return t.xMaxi&&(i=c)}return{min:o,max:i}},e.prototype.overlap=function(t,e){return!(t.max=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.Map=null,e.tip=null,e.reinforce=null,e.soil=null,e}return n(e,t),e.prototype.start=function(){this.tipArray=[],this.controlArray=[],this.canTouch=!0,this.Reinforce=!1,this.Soil=!1,this.mapHeight=0},e.prototype.setPosition=function(t){if(t.setPosition(30,-25),this.tipArray.length>0){var e=this.tipArray.length+1,o=Math.ceil(e/8)-1,i=e-8*Math.floor(o)-1;t.setPosition(30+48*i,-25-48*o+this.mapHeight)}},e.prototype.removeAllTip=function(){if(this.canTouch&&this.tipArray.length>0){cc.fx.AudioManager._instance.playEffect("qingkong",null);for(var t=0;t0){cc.fx.AudioManager._instance.playEffect("chehui",null);var t=this.tipArray[this.tipArray.length-1];t.active=!1,t.removeFromParent(this.Map),t=null,this.tipArray.pop(),this.controlArray.pop();var e=cc.fx.GameConfig.CLICK_DATA.drawingBack+1;cc.fx.GameConfig.CLICK_SET("drawingBack",e),cc.fx.Notifications.emit(cc.fx.Message.removeTip,"back"),this.tipArray.length>=24&&this.tipArray.length%8==0&&this.mapMove(!1)}},e.prototype.btn_Click=function(t,e){var o=this.node.parent.getComponent("GameManager");if(1==o.btnClick&&(o.btnClick=!1,cc.fx.Notifications.emit(cc.fx.Message.guideNext)),cc.fx.Notifications.emit(cc.fx.Message.control,e),this.canTouch){var i=this.tip;if("reinforce"==e||"soil"==e){if(i=this[e],"reinforce"==e){if(this.Reinforce)return this.Reinforce=!1,void this.back_Click();cc.fx.AudioManager._instance.playEffect("jineng",null),this.Reinforce=!0,this.Soil=!1}else if("soil"==e){if(this.Soil)return this.Soil=!1,void this.back_Click();cc.fx.AudioManager._instance.playEffect("jineng",null),this.Soil=!0,this.Reinforce=!1}}else cc.fx.AudioManager._instance.playEffect("fangxiang",null),this.Reinforce=!1,this.Soil=!1;var n=cc.instantiate(i);"up"==e&&(n.angle=180),"left"==e&&(n.angle=-90),"right"==e&&(n.angle=90),n.parent=this.Map,"reinforce"!=this.controlArray[this.controlArray.length-1]&&"soil"!=this.controlArray[this.controlArray.length-1]||"reinforce"!=e&&"soil"!=e||(this.tipArray[this.tipArray.length-1].removeFromParent(),this.tipArray[this.tipArray.length-1]=null,this.tipArray.pop(),this.controlArray.pop()),this.setPosition(n),this.tipArray.push(n),this.controlArray.push(e),this.tipArray.length>=25&&(this.tipArray.length-1)%8==0&&this.mapMove(!0)}},e.prototype.mapMove=function(t){t?this.mapHeight+=48:this.mapHeight-=48;for(var e=0;e=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.DouyinEntranceView=void 0;var a=t("./MiniGameSdk"),r=cc._decorator,s=r.ccclass,l=(r.property,function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.start=function(){},e.prototype.update=function(){},e.prototype.onCloseClick=function(){this.node.active=!1},e.prototype.onNavigateToDouyinClick=function(){a.MiniGameSdk.BytedanceSidebar.navigateToSidebar(function(t){t?console.log("\u8df3\u8f6c\u6210\u529f"):console.log("\u8df3\u8f6c\u5931\u8d25")})},c([s],e)}(cc.Component));o.DouyinEntranceView=l,cc._RF.pop()},{"./MiniGameSdk":"MiniGameSdk"}],DynamicAtlasManager:[function(t,e){"use strict";cc._RF.push(e,"5c9b8FZiaNLMrMDs9T3rByf","DynamicAtlasManager"),cc.Class({extends:cc.Component,properties:{},onLoad:function(){cc.dynamicAtlasManager.enabled=!1}}),cc._RF.pop()},{}],Freeze:[function(t,e,o){"use strict";cc._RF.push(e,"ad8cbbzCohCR5uifssdRTf+","Freeze");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("../NumberToImage"),r=cc._decorator,s=r.ccclass,l=r.property,h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=60,e.freeze=null,e}return n(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){},e.prototype.init=function(t){t&&(this.time=t),this.node.getChildByName("time").active=!0,a.default.numberToImageNodes(this.time,40,25,"ice_",this.node.getChildByName("time"),!1)},e.prototype.reduce=function(t){var e=this;this.time-=t,this.time<=0&&(this.time=0),a.default.numberToImageNodes(this.time,40,25,"ice_",this.node.getChildByName("time"),!1),this.time<=0&&(this.node.getChildByName("bingkuai").active=!0,this.node.getChildByName("bingkuai").getComponent(sp.Skeleton).setAnimation(1,"bingkuai",!1),this.node.getChildByName("icon").active=!0,this.node.getChildByName("time").active=!1,cc.tween(this.node.getChildByName("icon")).to(.5,{opacity:0}).start(),setTimeout(function(){e.node.parent.getComponent("Block").resetFreeze(),e.node.destroy(),e.node.removeFromParent()},600))},c([l(cc.Material)],e.prototype,"freeze",void 0),c([s],e)}(cc.Component);o.default=h,cc._RF.pop()},{"../NumberToImage":"NumberToImage"}],GameAppStart:[function(t,e,o){"use strict";cc._RF.push(e,"61d4ccY2ztLMYIh8WvqPPAw","GameAppStart"),Object.defineProperty(o,"__esModule",{value:!0});var i=t("../Storage/Storage"),n=t("../Config/GameConfig"),c=t("../Crypto/HttpUtil"),a=t("../Music/AudioManager"),r=t("../Notification/Notification"),s=t("../Tool/GameTool");window.initMgr=function(){cc.fx||(cc.fx={},cc.fx.StateInfo={debugMode:!0,networkConnected:!0,networkType:"none",isOnForeground:!0},cc.fx.StorageMessage=i.StorageMessage,cc.fx.AudioManager=a.default,cc.fx.GameConfig=n.GameConfig,cc.fx.HttpUtil=c.default,cc.fx.GameTool=s.GameTool,cc.fx.Notifications=r.Notifications,cc.fx.ShareInfo={queryId:-1},cc.fx.Message={control:"10001",startGame:"10002",next:"10003",changePath:"10004",changeMap:"10005",nextWater:"10006",addEnd:"10007",setData:"10008",guideNext:"10009",showResult:"10010",removeTip:"10011"},cc.fx.BurialShareType={Default:"default",Invite:"invite",DailyInviteRoomJoin:"invite_join_room",DailyInviteFriend:"invite_friend",DailyInviteGroup:"invate_group",DailyInviteGroupAlive:"invate_alive",DailyInviteGroupReward:"invate_rewared",DailyInviteGroupBox:"invate_box",DailyInviteGroupBall:"invate_ball",MatchResult:"matchResult",MatchFix5:"MatchFix5",MatchFix20:"MatchFix20",MatchFix100:"MatchFix100",MatchFix500:"MatchFix500",NewerRedEnvelope:"newerRedEnvelope",CoinRoomResult:"coinRoomResult",HighRate:"highRate",CoinRoomWinStreak:"coinRoomWinStreak",CoinRoomBankruptcy1:"coinRoomBankruptcy1",CoinRoomBankruptcy2:"coinRoomBankruptcy2",CoinRoomBankruptcy3:"coinRoomBankruptcy3"},cc.fx.ShareWhereReward={Group:"group",Friend:"friend",All:"all"},cc.fx.storageType=cc.Enum({storageTypeCustom:1000101}),cc.fx.tipType=cc.Enum({tipOne:"\u795e\u519c\u6c0f\u56de\u5230\u5bb6\u4e2d\uff0c\u5f00\u59cb\u6574\u7406\u4eca\u5929\u6536\u96c6\u6765\u7684\u7269\u54c1\u3002\u5f53\u4ed6\u7b2c\u4e00\u6b21\u62ff\u51fa\u6216\u8bf4\u51fa\u4e00\u79cd\u690d\u7269\u65f6\uff0c\u8bf7\u544a\u8bc9\u4ed6\u8fd9\u662f\u65b0\u690d\u7269\u3002",tipTwo:"\u5982\u679c\u4ed6\u62ff\u51fa\u6216\u8bf4\u51fa\u7684\u690d\u7269\u4f60\u4eca\u5929\u770b\u5230\u8fc7\uff0c\u8bf7\u544a\u8bc9\u4ed6\u4e0a\u6b21\u662f\u770b\u5230\u7684\uff1b\u5982\u679c\u4f60\u542c\u4ed6\u8bf4\u8fc7\uff0c\u5219\u8bf7\u544a\u8bc9\u4ed6\u4e0a\u6b21\u662f\u542c\u5230\u7684\u3002",tipErrNew:"\u8fd9\u662f\u8fd9\u5c40\u6e38\u620f\u7b2c\u4e00\u6b21\u51fa\u73b0{\u690d\u7269}",tipErrOld:"{\u690d\u7269}\u521a\u624d\u51fa\u73b0\u8fc7\u5462",tipErrHear:"\u4e0a\u6b21\u9047\u5230{\u690d\u7269}\u65f6\uff0c\u4f3c\u4e4e\u4e0d\u662f\u542c\u5230\u7684\u5427",tipErrSee:"\u4e0a\u6b21\u9047\u5230{\u690d\u7269}\u65f6\uff0c\u4f3c\u4e4e\u4e0d\u662f\u770b\u5230\u7684\u5427",tipErrLast:"\u4e4b\u524d\u786e\u5b9e\u770b\u5230\u8fc7{\u690d\u7269}\uff0c\u4f46\u6700\u8fd1\u4e00\u6b21\u4f3c\u4e4e\u4e0d\u662f\u770b\u5230\u7684\u5462"}))},cc._RF.pop()},{"../Config/GameConfig":"GameConfig","../Crypto/HttpUtil":"HttpUtil","../Music/AudioManager":"AudioManager","../Notification/Notification":"Notification","../Storage/Storage":"Storage","../Tool/GameTool":"GameTool"}],GameConfig:[function(t,e,o){"use strict";cc._RF.push(e,"c5692vnhwNF5J9nI7VNKQNW","GameConfig");var i=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.GameConfig=void 0;var n=cc._decorator,c=n.ccclass,a=(n.property,function(){function t(){}var e;return e=t,Object.defineProperty(t,"Instance",{get:function(){return null==this._instance&&(this._instance=new e),this._instance},enumerable:!1,configurable:!0}),t.init=function(){"undefined"!=typeof wx&&null!==wx&&wx.cloud.init(),this.TA=null,this.CLICK_init(),this.GM_INFO_init(),this.LEVEL_INFO_init(!1,0),this.GAME_DATA=[]},t.generateUUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0;return("x"===t?e:3&e|8).toString(16)})},t.compareVersion=function(t,e){for(var o=t.split("."),i=e.split("."),n=Math.max(o.length,i.length),c=0;cr)return 1;if(a156&&(cc.fx.GameConfig.GM_INFO.level=156);var i="Json/level"+(cc.fx.GameConfig.GM_INFO.level+1);cc.resources.load(i,function(i,n){if(i)return cc.fx.GameTool.addLevel(),void o.LEVEL_INFO_init(t,e);var c=n.json;o.BLOCK_INFO=c.BLOCK_INFO,o.LEVEL_INFO=c.LEVEL_INFO,o.WALL_INFO=c.WALL_INFO,t&&cc.director.preloadScene("GameScene",function(){0==e?cc.director.loadScene("GameScene"):setTimeout(function(){cc.director.loadScene("GameScene")},e)})}),this.PROP_INFO=[{pos1:{x:-66,y:60,z:0},pos2:{x:-19,y:36,z:0},pos3:{x:-34.362,y:13.246,z:0},pos4:{x:-17,y:12,z:0},pos5:{x:-85,y:70,z:0},pos6:{x:-5,y:3,z:0}},{pos1:{x:-126,y:61,z:0},pos2:{x:-25.792,y:34.675,z:0},pos3:{x:-94.792,y:21.675,z:0},pos4:{x:-20,y:13,z:0},pos5:{x:-140,y:68,z:0},pos6:{x:-2,y:0,z:0}},{pos1:{x:-67,y:122,z:0},pos2:{x:-20,y:94,z:0},pos3:{x:-34.792,y:23.675,z:0},pos4:{x:-14,y:24,z:0},pos5:{x:-84,y:128,z:0},pos6:{x:-5,y:3,z:0}},{pos1:{x:-178,y:61,z:0},pos2:{x:-34.792,y:37.675,z:0},pos3:{x:-150,y:23.675,z:0},pos4:{x:-22,y:16,z:0},pos5:{x:-200,y:67,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-63,y:178,z:0},pos2:{x:-17.792,y:166.675,z:0},pos3:{x:-31.792,y:33.675,z:0},pos4:{x:-14,y:37,z:0},pos5:{x:-78,y:182,z:0},pos6:{x:0,y:2,z:0}},{pos1:{x:-123,y:124,z:0},pos2:{x:-25.792,y:99.675,z:0},pos3:{x:-97.792,y:27.675,z:0},pos4:{x:-27,y:19,z:0},pos5:{x:-135,y:127,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-64,y:178,z:0},pos2:{x:-24.792,y:275.675,z:0},pos3:{x:-31.792,y:35.675,z:0},pos4:{x:-7,y:39,z:0},pos5:{x:-77,y:188,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-178,y:186,z:0},pos2:{x:-31.792,y:163.675,z:0},pos3:{x:-33.792,y:34.675,z:0},pos4:{x:-18,y:30,z:0},pos5:{x:-200,y:192,z:0},pos6:{x:0,y:5,z:0}},{pos1:{x:-186,y:178,z:0},pos2:{x:-25.792,y:38.675,z:0},pos3:{x:-153.792,y:34.675,z:0},pos4:{x:-23,y:14,z:0},pos5:{x:-200,y:185,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-183,y:64,z:0},pos2:{x:-37.792,y:37.675,z:0},pos3:{x:-36.792,y:26.675,z:0},pos4:{x:-24,y:17,z:0},pos5:{x:-212,y:74,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-65,y:177,z:0},pos2:{x:93.208,y:276.675,z:0},pos3:{x:-33.792,y:34.675,z:0},pos4:{x:3,y:31,z:0},pos5:{x:-80,y:190,z:0},pos6:{x:0,y:3,z:0}},{pos1:{x:58,y:179,z:0},pos2:{x:205.225,y:154.034,z:0},pos3:{x:-29.642,y:25.691,z:0},pos4:{x:7.218,y:29.765,z:0},pos5:{x:45,y:185,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-68,y:182,z:0},pos2:{x:-25.792,y:37.675,z:0},pos3:{x:-35.792,y:33.675,z:0},pos4:{x:-14,y:12,z:0},pos5:{x:-82,y:190,z:0},pos6:{x:-2,y:1,z:0}},{pos1:{x:-184,y:62,z:0},pos2:{x:-35.792,y:36.675,z:0},pos3:{x:-271.792,y:24.675,z:0},pos4:{x:-17,y:20,z:0},pos5:{x:-200,y:72,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-62,y:175,z:0},pos2:{x:87.208,y:164.675,z:0},pos3:{x:-31.792,y:35.675,z:0},pos4:{x:-6,y:24,z:0},pos5:{x:-79,y:172,z:0},pos6:{x:0,y:5,z:0}},{pos1:{x:-184,y:72,z:0},pos2:{x:-33.792,y:38.675,z:0},pos3:{x:-154.792,y:29.675,z:0},pos4:{x:-29,y:16,z:0},pos5:{x:-201,y:85,z:0},pos6:{x:-1,y:3,z:0}},{pos1:{x:-64,y:181,z:0},pos2:{x:95.208,y:155.675,z:0},pos3:{x:-30.792,y:36.675,z:0},pos4:{x:-12,y:32,z:0},pos5:{x:-78,y:190,z:0},pos6:{x:0,y:3,z:0}},{pos1:{x:-65,y:178,z:0},pos2:{x:-21.792,y:156.675,z:0},pos3:{x:-31.792,y:37.675,z:0},pos4:{x:-12,y:32,z:0},pos5:{x:-78,y:188,z:0},pos6:{x:0,y:2,z:0}},{pos1:{x:-62,y:183,z:0},pos2:{x:88.208,y:162.675,z:0},pos3:{x:-29.792,y:41.675,z:0},pos4:{x:-12,y:18,z:0},pos5:{x:-80,y:188,z:0},pos6:{x:-4,y:2,z:0}},{pos1:{x:-67,y:80,z:0},pos2:{x:-26.792,y:32.675,z:0},pos3:{x:-34.792,y:23.675,z:0},pos4:{x:-12,y:18,z:0},pos5:{x:-84,y:90,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-184,y:80,z:0},pos2:{x:-25.792,y:34.675,z:0},pos3:{x:-155.792,y:25.675,z:0},pos4:{x:-18,y:26,z:0},pos5:{x:-196,y:96,z:0},pos6:{x:0,y:0,z:0}},{pos1:{x:-62,y:160,z:0},pos2:{x:95.208,y:158.675,z:0},pos3:{x:-33.792,y:29.675,z:0},pos4:{x:-18,y:26,z:0},pos5:{x:-78,y:170,z:0},pos6:{x:0,y:2,z:0}},{pos1:{x:-68,y:160,z:0},pos2:{x:-25.792,y:156.675,z:0},pos3:{x:-35.792,y:27.675,z:0},pos4:{x:-25,y:40,z:0},pos5:{x:-82,y:170,z:0},pos6:{x:-2,y:2,z:0}}]},t.setCode=function(t){this.GM_INFO.scode=t},t.getKey=function(){return""},t.Authentication=function(){cc.fx.GameTool.Authentication()},t._instance=null,e=i([c("GameConfig")],t)}());o.GameConfig=a,cc._RF.pop()},{}],GameManager:[function(t,e,o){"use strict";cc._RF.push(e,"df248lSLllOZpCHwGqQ5Ye3","GameManager");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("./Sdk/MiniGameSdk"),r=cc._decorator,s=r.ccclass,l=r.property,h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.label=null,e.text="hello",e.Block_Array=[],e.Wall_Prefab=[],e.Block_Color=[],e.load1=!1,e.load2=!1,e.load3=!1,e.load4=!1,e.load5=!1,e}var o;return n(e,t),o=e,e.prototype.onLoad=function(){var t=this;window.initMgr(),this.timeNumber=3,this.startTimeCutDown(),cc.fx.GameConfig.init(!0),cc.fx.GameConfig.GM_INFO.gameState=!1,this.readMusicConfig(),console.log("\u97f3\u4e50\u5f00\u5173",cc.fx.GameConfig.GM_INFO.musicOpen),cc.fx.AudioManager._instance.playMusicGame(),this.load1=this.load2=this.load3=this.load4=this.load5=!1,setTimeout(function(){t.readUserData()},200),null==o._instance&&(o._instance=this,cc.game.addPersistRootNode(this.node),cc.resources.loadDir("prefab/block",cc.Prefab,function(e,o){if(e)return console.error("\u52a8\u6001\u52a0\u8f7d Prefab \u5931\u8d25:",e),void cc.director.loadScene("LoadScene");t.Block_Array=o,t.setSort(),t.load1=!0}),cc.resources.loadDir("prefab/wall",cc.Prefab,function(e,o){if(e)return console.error("\u52a8\u6001\u52a0\u8f7d Prefab \u5931\u8d25:",e),void cc.director.loadScene("LoadScene");t.Wall_Prefab=o,t.load2=!0,t.setWallPrefabSort()}),cc.sys.platform===cc.sys.WECHAT_GAME&&(wx.onHide(function(){t.onHide()}),wx.onShow(function(){t.onShow()})))},e.prototype.onHide=function(){cc.audioEngine.stopMusic(),cc.game.pause()},e.prototype.onShow=function(){cc.audioEngine.resumeMusic(),cc.game.resume()},e.prototype.loadParticleEffects=function(){},e.prototype.setWallPrefabSort=function(){var t=["down","downLeft","downRight","left","right","up","upLeft","upRight"];this.Wall_Prefab.sort(function(e,o){var i=t.indexOf(e.name),n=t.indexOf(o.name);return-1===i?1:-1===n?-1:i-n})},e.prototype.setParticleSort=function(){var t=["top","bot","rig","lef"];this.particleEffects.sort(function(e,o){var i=t.indexOf(e.name.substr(0,3)),n=t.indexOf(o.name.substr(0,3));return-1===i?1:-1===n?-1:i-n})},e.prototype.setSort=function(){this.Block_Array.sort(function(t,e){var o,i;return parseInt((null===(o=t.name.match(/\d+/))||void 0===o?void 0:o[0])||"0",10)-parseInt((null===(i=e.name.match(/\d+/))||void 0===i?void 0:i[0])||"0",10)})},e.prototype.start=function(){},e.prototype.startGame=function(){console.log("\u8fdb\u5165\u573a\u666f\u4e4b\u524d_____________",cc.fx.GameConfig.GM_INFO.first),cc.director.loadScene("HomeScene")},e.prototype.returnHome=function(){cc.tween(this.node.getChildByName("Game")).to(.5,{opacity:100}).call(function(){cc.director.loadScene("HomeScene",function(t){t?console.error("\u52a0\u8f7d HomeScene \u573a\u666f\u5931\u8d25:",t):cc.director.loadScene("HomeScene")})}).start(),cc.tween(this.node.getChildByName("mask")).to(.5,{opacity:255}).start()},e.prototype.readUserData=function(t){var e=this;if(void 0===t&&(t=0),"undefined"!=typeof wx&&null!==wx){var o=cc.fx.StorageMessage.getStorage("level");null==o||""==o||null==o?this.oldReadData(t):this.newReadData(),console.log("\u5373\u5c06\u8bfb\u53d6\u4f53\u529b\u503c"),cc.fx.GameTool.getHealth(function(){console.log("\u4f53\u529b\u503c\u5b8c\u6210\u8fdb\u5165\u6e38\u620f"),e.load5=!0})}else this.load3=!0,this.load4=!0,this.load5=!0,cc.fx.GameTool.getHealth(null)},e.prototype.readMusicConfig=function(){var t=cc.fx.StorageMessage.getStorage("music");null==t||""==t||null==t?(t={musicOpen:!0,effectOpen:!0,vibrateOpen:!0},cc.fx.StorageMessage.setStorage("music",t)):(cc.fx.GameConfig.GM_INFO.musicOpen=t.musicOpen,cc.fx.GameConfig.GM_INFO.effectOpen=t.effectOpen,cc.fx.GameConfig.GM_INFO.vibrateOpen=t.vibrateOpen)},e.prototype.newReadData=function(){var t=this;console.log("\u8bfb\u53d6\u65b0\u4fe1\u606f");var e=cc.fx.StorageMessage.getStorage("openid");null==e||""==e||null==e?(console.log("\u6ca1\u6709openid"),wx.cloud.callFunction({name:"userData",data:{action:"read"},success:function(t){if(console.log("\u8bfb\u53d6\u7528\u6237\u6570\u636e\u6210\u529f",t.result),404==t.result.code&&"\u672a\u627e\u5230\u7528\u6237\u6570\u636e"==t.result.message);else if(200==t.result.code&&t.result.data){cc.fx.GameConfig.GM_INFO.openid=t.result.openid,cc.fx.GameConfig.GM_INFO.username=t.result.data.username,cc.fx.GameConfig.GM_INFO.useravatar=t.result.data.useravatar;var e=t.result.data.register_time;a.MiniGameSdk.API.shushu_userSet(e),cc.fx.StorageMessage.setStorage("openid",cc.fx.GameConfig.GM_INFO.openid)}},fail:function(t){console.error("\u8bfb\u53d6\u7528\u6237\u6570\u636e\u5931\u8d25",t)}})):e&&(cc.fx.GameConfig.GM_INFO.openid=e),cc.fx.GameTool.getUserLevel(function(e){var o=Date.now(),i=cc.fx.StorageMessage.getStorage("level");if(404==e.result.code&&"\u672a\u627e\u5230\u5173\u5361\u6570\u636e"==e.result.message)i.level&&(cc.fx.GameConfig.GM_INFO.level=i.level),t.load4=!0,cc.fx.GameTool.setUserLevel(function(){});else if(200==e.result.code){var n=e.result.timestamp-i.timestamp;console.log("\u7b49\u7ea7\u65f6\u95f4\u5dee:",n),e.result.timestamp-i.timestamp<1e4?i.level&&(console.log("\u4ee5\u6e38\u620f\u524d\u7aef\u7b49\u7ea7\u4e3a\u51c6",e.result.data),cc.fx.GameConfig.GM_INFO.level=i.level,cc.fx.GameTool.setUserLevel(function(){})):(console.log("\u4ee5\u670d\u52a1\u5668\u7b49\u7ea7\u4e3a\u51c6",e.result.data),cc.fx.GameConfig.GM_INFO.level=e.result.data,i.level=cc.fx.GameConfig.GM_INFO.level,i.timestamp=o,cc.fx.StorageMessage.setStorage("level",i)),t.load4=!0}}),cc.fx.GameTool.getUserCoin(function(e){var o=Date.now(),i=cc.fx.StorageMessage.getStorage("coin");if(404==e.result.code&&"\u672a\u627e\u5230\u91d1\u5e01\u6570\u636e"==e.result.message)i.coin&&(cc.fx.GameConfig.GM_INFO.coin=i.coin),console.log("\u6ca1\u6709\u91d1\u5e01\u4fe1\u606f\uff0c\u4ece\u7528\u6237\u63a5\u53e3\u62ff\u5230\u6570\u636e",cc.fx.GameConfig.GM_INFO.coin),t.load3=!0,cc.fx.GameTool.setUserCoin(function(){});else if(200==e.result.code){var n=e.result.timestamp-i.timestamp;console.log("\u91d1\u5e01\u65f6\u95f4\u5dee:",n),e.result.timestamp-i.timestamp<1e4?(console.log("\u4ee5\u524d\u7aef\u91d1\u5e63\u4e3a\u51c6:",i),i.coin?cc.fx.GameConfig.GM_INFO.coin=i.coin:(cc.fx.GameConfig.GM_INFO.coin=e.result.data,i.coin=cc.fx.GameConfig.GM_INFO.coin,i.timestamp=o,console.log("11111111111"),cc.fx.StorageMessage.setStorage("coin",i)),console.log("\u6539\u53d8\u540e\u91d1\u5e01:",cc.fx.GameConfig.GM_INFO.coin),cc.fx.GameTool.setUserCoin(function(){})):(console.log("\u4ee5\u670d\u52a1\u5668\u91d1\u5e63\u4e3a\u51c6:",e.result.data),cc.fx.GameConfig.GM_INFO.coin=e.result.data,i.coin=cc.fx.GameConfig.GM_INFO.coin,i.timestamp=o,console.log("2222222222"),cc.fx.StorageMessage.setStorage("coin",i)),t.load3=!0}}),cc.fx.GameTool.getUserProp(function(t){var e=Date.now(),o=cc.fx.StorageMessage.getStorage("prop");if(404==t.result.code&&"\u672a\u627e\u5230\u9053\u5177\u6570\u636e"==t.result.message){if(console.log("\u6ca1\u6709\u9053\u5177\u4fe1\u606f\uff0c\u4ece\u7528\u6237\u63a5\u53e3\u62ff\u5230\u6570\u636e",o),null==o.freezeAmount||null==o.hammerAmount||null==o.magicAmount){console.log("2222222\u9053\u5177\u6570\u636e\u5f02\u5e38"),cc.fx.GameConfig.GM_INFO.freezeAmount=0,cc.fx.GameConfig.GM_INFO.hammerAmount=0,cc.fx.GameConfig.GM_INFO.magicAmoun=0;var i={freezeAmount:cc.fx.GameConfig.GM_INFO.freezeAmount,hammerAmount:cc.fx.GameConfig.GM_INFO.hammerAmount,magicAmount:cc.fx.GameConfig.GM_INFO.magicAmoun,timestamp:e};console.log("1111111\u4e0a\u4f20\u9053\u5177\u4fe1\u606f:",i),cc.fx.StorageMessage.setStorage("prop",i)}else cc.fx.GameConfig.GM_INFO.freezeAmount=o.freezeAmount,cc.fx.GameConfig.GM_INFO.hammerAmount=o.hammerAmount,cc.fx.GameConfig.GM_INFO.magicAmount=o.magicAmount;cc.fx.GameTool.setUserProp(0,0,function(){})}else 200==t.result.code&&(t.result.timestamp-o.timestamp<1e4?(console.log("\u4ee5\u524d\u7aef\u9053\u5177\u4e3a\u4e3b:",o),null==o.freezeAmount||null==o.hammerAmount||null==o.magicAmount?(console.log("111111\u9053\u5177\u6570\u636e\u5f02\u5e38",t.result.data),cc.fx.GameConfig.GM_INFO.freezeAmount=t.result.data.freeze,cc.fx.GameConfig.GM_INFO.hammerAmount=t.result.data.hammer,cc.fx.GameConfig.GM_INFO.magicAmount=t.result.data.magic_wand,i={freezeAmount:cc.fx.GameConfig.GM_INFO.freezeAmount,hammerAmount:cc.fx.GameConfig.GM_INFO.hammerAmount,magicAmount:cc.fx.GameConfig.GM_INFO.magicAmount,timestamp:e},console.log("333333\u4e0a\u4f20\u9053\u5177\u4fe1\u606f:",i),cc.fx.StorageMessage.setStorage("prop",i)):(console.log("\u9053\u5177\u6570\u636e\u6b63\u5e38"),cc.fx.GameConfig.GM_INFO.freezeAmount=o.freezeAmount,cc.fx.GameConfig.GM_INFO.hammerAmount=o.hammerAmount,cc.fx.GameConfig.GM_INFO.magicAmount=o.magicAmount,cc.fx.GameTool.setUserProp(0,0,function(){}))):(cc.fx.GameConfig.GM_INFO.freezeAmount=t.result.data.freeze,cc.fx.GameConfig.GM_INFO.hammerAmount=t.result.data.hammer,cc.fx.GameConfig.GM_INFO.magicAmount=t.result.data.magic_wand,i={freezeAmount:cc.fx.GameConfig.GM_INFO.freezeAmount,hammerAmount:cc.fx.GameConfig.GM_INFO.hammerAmount,magicAmount:cc.fx.GameConfig.GM_INFO.magicAmount,timestamp:e},console.log("22222222\u4e0a\u4f20\u9053\u5177\u4fe1\u606f:",i,t.result),cc.fx.StorageMessage.setStorage("prop",i)))})},e.prototype.oldReadData=function(t){var e=this;console.log("\u8bfb\u53d6\u65e7\u4fe1\u606f");var o=Date.now();wx.cloud.callFunction({name:"userData",data:{action:"read"},success:function(t){if(console.log("\u8bfb\u53d6\u7528\u6237\u6570\u636e\u6210\u529f",t.result),404==t.result.code&&"\u672a\u627e\u5230\u7528\u6237\u6570\u636e"==t.result.message){t.result.openid&&(cc.fx.GameConfig.GM_INFO.openid=t.result.openid),cc.fx.GameConfig.GM_INFO.first=!0,e.load3=!0,e.load4=!0;var i={level:0,timestamp:o};cc.fx.StorageMessage.setStorage("level",i);var n={coin:0,timestamp:o};console.log("33333333333"),cc.fx.StorageMessage.setStorage("coin",n);var c={freezeAmount:0,hammerAmount:0,magicAmount:0,timestamp:o};cc.fx.StorageMessage.setStorage("prop",c),cc.fx.GameTool.setUserInfo(function(t){200==t.result.code&&(console.log("\u4e0a\u4f20\u7528\u6237\u4fe1\u606f\u6210\u529f",t),wx.cloud.callFunction({name:"userData",data:{action:"read"},success:function(t){if(console.log("\u4e0a\u4f20\u540e\uff0c\u8bfb\u53d6\u7528\u6237\u4fe1\u606f\uff0c\u4e3a\u4e0a\u62a5\u6ce8\u518c\u65f6\u95f4"),200==t.result.code){var e=t.result.data.register_time;a.MiniGameSdk.API.shushu_userSet(e)}}}))}),console.log("\u670d\u52a1\u5668\u4e5f\u6ca1\u6709\u91d1\u5e01\u4fe1\u606f",cc.fx.GameConfig.GM_INFO.coin),cc.fx.GameTool.setUserCoin(cc.fx.GameConfig.GM_INFO.coin,function(){}),cc.fx.GameTool.setUserLevel(function(){}),setTimeout(function(){cc.fx.GameConfig.GM_INFO.freezeAmount=0,cc.fx.GameConfig.GM_INFO.hammerAmount=0,cc.fx.GameConfig.GM_INFO.magicAmount=0,cc.fx.GameTool.setUserProp(0,0,function(t){200==t.result.code?console.log("\u4e0a\u4f20\u9053\u5177\u4fe1\u606f\u6210\u529f",t):(a.MiniGameSdk.API.showToast("\u7f51\u7edc\u5f02\u5e38\uff0c\u6b63\u5728\u52aa\u529b\u52a0\u8f7d"),setTimeout(function(){e.oldReadData(0)},1e3))})},0)}else if(200==t.result.code){if(t.result.data){cc.fx.GameConfig.GM_INFO.openid=t.result.openid,cc.fx.GameConfig.GM_INFO.level=t.result.data.level,cc.fx.GameConfig.GM_INFO.coin=t.result.data.coinAmount,cc.fx.GameConfig.GM_INFO.freezeAmount=t.result.data.freezeAmount,cc.fx.GameConfig.GM_INFO.hammerAmount=t.result.data.hammerAmount,cc.fx.GameConfig.GM_INFO.magicAmount=t.result.data.magicAmount,cc.fx.GameConfig.GM_INFO.username=t.result.data.username,cc.fx.GameConfig.GM_INFO.useravatar=t.result.data.useravatar,cc.fx.StorageMessage.setStorage("openid",cc.fx.GameConfig.GM_INFO.openid);var r=t.result.data.register_time;a.MiniGameSdk.API.shushu_userSet(r)}setTimeout(function(){cc.fx.GameTool.getUserCoin(function(t){if(404==t.result.code&&"\u672a\u627e\u5230\u91d1\u5e01\u6570\u636e"==t.result.message){var i={coin:0,timestamp:o};cc.fx.GameConfig.GM_INFO.coin=0,cc.fx.StorageMessage.setStorage("coin",i),console.log("\u6ca1\u6709\u91d1\u5e01\u4fe1\u606f\uff0c\u4ece\u7528\u6237\u63a5\u53e3\u62ff\u5230\u6570\u636e",cc.fx.GameConfig.GM_INFO.coin),cc.fx.GameTool.setUserCoin(function(){e.load3=!0})}else 200==t.result.code&&(cc.fx.GameConfig.GM_INFO.coin=t.result.data,i={coin:cc.fx.GameConfig.GM_INFO.coin,timestamp:o},console.log("\u5b58\u50a8\u91d1\u5e01\u4fe1\u606f:",cc.fx.GameConfig.GM_INFO.coin),console.log("4444444444"),cc.fx.StorageMessage.setStorage("coin",i),e.load3=!0)})},500),cc.fx.GameTool.getUserLevel(function(t){if(404==t.result.code&&"\u672a\u627e\u5230\u5173\u5361\u6570\u636e"==t.result.message){console.log("\u6ca1\u6709\u7b49\u7ea7\u4fe1\u606f\uff0c\u4ece\u7528\u6237\u63a5\u53e3\u62ff\u5230\u6570\u636e");var i={level:0,timestamp:o};cc.fx.GameConfig.GM_INFO.level=0,cc.fx.StorageMessage.setStorage("level",i),cc.fx.GameTool.setUserLevel(function(t){console.log("\u62ff\u5230\u7684\u6570\u636e",t),e.load4=!0})}else 200==t.result.code&&(console.log("\u6709\u7b49\u7ea7\u4fe1\u606f\uff0c\u4ece\u5173\u5361\u63a5\u53e3\u62ff\u5230\u6570\u636e",t.result.data),cc.fx.GameConfig.GM_INFO.level=t.result.data,i={level:cc.fx.GameConfig.GM_INFO.level,timestamp:o},cc.fx.StorageMessage.setStorage("level",i),e.load4=!0)}),setTimeout(function(){cc.fx.GameTool.getUserProp(function(t){if(404==t.result.code&&"\u672a\u627e\u5230\u9053\u5177\u6570\u636e"==t.result.message){console.log("\u6ca1\u6709\u9053\u5177\u4fe1\u606f\uff0c\u4ece\u7528\u6237\u63a5\u53e3\u62ff\u5230\u6570\u636e"),cc.fx.GameConfig.GM_INFO.freezeAmount=0,cc.fx.GameConfig.GM_INFO.hammerAmount=0,cc.fx.GameConfig.GM_INFO.magicAmount=0;var e={freezeAmount:0,hammerAmount:0,magicAmount:0,timestamp:o};console.log("\u4e0a\u4f20\u9053\u5177\u4fe1\u606f:",e),cc.fx.StorageMessage.setStorage("prop",e),cc.fx.GameTool.setUserProp(0,0,function(){})}else 200==t.result.code&&(console.log("\u6709\u9053\u5177\u4fe1\u606f\uff0c\u4ece\u9053\u5177\u63a5\u53e3\u62ff\u5230\u6570\u636e",t.result.data),cc.fx.GameConfig.GM_INFO.freezeAmount=t.result.data.freeze||0,cc.fx.GameConfig.GM_INFO.hammerAmount=t.result.data.hammer||0,cc.fx.GameConfig.GM_INFO.magicAmount=t.result.data.magic_wand||0,e={freezeAmount:cc.fx.GameConfig.GM_INFO.freezeAmount,hammerAmount:cc.fx.GameConfig.GM_INFO.hammerAmount,magicAmount:cc.fx.GameConfig.GM_INFO.magicAmount,timestamp:o},console.log("\u4e0a\u4f20\u9053\u5177\u4fe1\u606f:",e),cc.fx.StorageMessage.setStorage("prop",e))})},0)}},fail:function(o){console.error("\u8bfb\u53d6\u7528\u6237\u6570\u636e\u5931\u8d25",o),t<15?(console.error("\u8bfb\u53d6\u7528\u6237\u6570\u636e\u5931\u8d25\uff0c\u7b2c "+(t+1)+" \u6b21\u91cd\u8bd5\uff0c\u9519\u8bef\u4fe1\u606f:",o),setTimeout(function(){e.readUserData(t+1)},2e3)):(console.error("\u8bfb\u53d6\u7528\u6237\u6570\u636e\u5931\u8d25\uff0c\u8fbe\u5230\u6700\u5927\u91cd\u8bd5\u6b21\u6570\uff0c\u9000\u51fa\u6e38\u620f",o),cc.game.end())}})},e.prototype.setUserData=function(){cc.fx.GameConfig.GameTool(function(t){console.log("\u4e0a\u4f20",t)})},e.prototype.startTimeCutDown=function(){this.scheduleCallback=function(){this.timeNumber<=0?this.stopTimeCutDown():this.timeNumber-=1}.bind(this),this.schedule(this.scheduleCallback,1)},e.prototype.stopTimeCutDown=function(){this.scheduleCallback&&this.unschedule(this.scheduleCallback)},e.prototype.update=function(){this.load1&&this.load2&&this.load3&&this.load4&&this.load5&&this.timeNumber<=0&&(this.load1=this.load2=!1,a.MiniGameSdk.API.shushu_Init(),this.startGame())},e._instance=null,c([l(cc.Label)],e.prototype,"label",void 0),c([l],e.prototype,"text",void 0),c([l({type:[cc.Prefab],tooltip:"\u65b9\u5757\u6570\u7ec4"})],e.prototype,"Block_Array",void 0),c([l({type:[cc.Prefab],tooltip:"\u5899\u58c1\u6570\u7ec4"})],e.prototype,"Wall_Prefab",void 0),c([l({type:[cc.SpriteAtlas],tooltip:"\u65b9\u5757\u989c\u8272"})],e.prototype,"Block_Color",void 0),o=c([s],e)}(cc.Component);o.default=h,cc._RF.pop()},{"./Sdk/MiniGameSdk":"MiniGameSdk"}],GameOver:[function(t,e,o){"use strict";cc._RF.push(e,"805c6nf399HWZeuWnNB9CTH","GameOver");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.count=null,e.time=null,e.selfNode=null,e.one=null,e.two=null,e.three=null,e.four=null,e.five=null,e}return n(e,t),e.prototype.start=function(){this.count.string=cc.fx.GameConfig.GM_INFO.score+"";var t=0,e=cc.fx.GameConfig.GM_INFO.successList;if(e.length>0){for(var o=0,i=0;i4&&(e=4);for(var o=0;o<=e;o++)this.setRank(o,this.listData[o])}},e.prototype.setRank=function(t,e){var o=this;if(e){var i=null;0==t?i=this.one:1==t?i=this.two:2==t?i=this.three:3==t?i=this.four:4==t&&(i=this.five);for(var n=t+1,c=0;c=a&&(this.selfData=e,this.selfNode.active=!0),i&&(i.active=!0,e.nickName.length>=4&&(e.nickName=cc.fx.GameTool.subName(e.nickName,4)),i.getChildByName("name").getComponent(cc.Label).string=e.nickName,i.getChildByName("total").getComponent(cc.Label).string=e.score,cc.fx.GameTool.setPic(i.getChildByName("pic").getChildByName("icon"),e.pic))}},c([s(cc.Label)],e.prototype,"count",void 0),c([s(cc.Label)],e.prototype,"time",void 0),c([s(cc.Node)],e.prototype,"selfNode",void 0),c([s(cc.Node)],e.prototype,"one",void 0),c([s(cc.Node)],e.prototype,"two",void 0),c([s(cc.Node)],e.prototype,"three",void 0),c([s(cc.Node)],e.prototype,"four",void 0),c([s(cc.Node)],e.prototype,"five",void 0),c([r],e)}(cc.Component);o.default=l,cc._RF.pop()},{}],GameScene:[function(t,e){"use strict";cc._RF.push(e,"e8b235WjRBErajwLmN8xFUz","GameScene"),cc._RF.pop()},{}],GameTool:[function(t,e,o){"use strict";cc._RF.push(e,"43bfcJ6/25Fs4fHUE0PeBOX","GameTool"),Object.defineProperty(o,"__esModule",{value:!0}),o.GameTool=void 0;var i=t("../../Sdk/MiniGameSdk"),n={_startTime:0,_endTime:0,_totalTime:0,Authentication:function(){var t="user_"+cc.fx.GameConfig.GM_INFO.gameId,e=JSON.parse(localStorage.getItem(t));if("undifend"==e||null==e||""==e){var o=window.location.href;if(!this.containsTrain(o)){var i="https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback="+location.href;window.location.href=i}}else cc.fx.StorageMessage.setStorage(t,e),cc.fx.GameConfig.GM_INFO.userId=parseInt(e.userId)},containsTrain:function(t){return/from=train/i.test(t)},setGameData:function(){cc.fx.GameConfig.GAME_DATA=[],cc.fx.GameConfig.GAME_DATA.push(cc.fx.GameConfig.CLICK_DATA),cc.fx.GameConfig.CLICK_init(),cc.fx.GameConfig.GAME_DATA,this.getMatchId(),cc.fx.GameConfig.GM_INFO.gameId,cc.fx.GameConfig.GM_INFO.userId,cc.fx.GameConfig.GM_INFO.scode},setRank:function(t){cc.fx.GameConfig.GM_INFO.gameId,cc.fx.GameConfig.GM_INFO.userId,t.score,t.date,cc.fx.GameConfig.GM_INFO.success},getRank:function(t){t.length,cc.fx.GameConfig.GM_INFO.gameId,cc.fx.GameConfig.GM_INFO.userId},getMatchId:function(){var t=cc.sys.localStorage.getItem("matchId"),e=t;if("undifend"==t||null==t)t=this.setMatchId();else if(1==this.containsNanana(t))t=this.setMatchId();else{var o=parseInt(e.substring(10,e.length));1==cc.fx.GameConfig.GM_INFO.level&&(o+=1,t=e.slice(0,10)+o+"",this.containsNanana(t)&&(t=this.setMatchId()),cc.fx.GameConfig.GM_INFO.matchId=t,cc.sys.localStorage.setItem("matchId",t))}return 1==this.containsNanana(t)&&(t=this.setMatchId()),t},containsNanana:function(t){return/na/i.test(t)},setMatchId:function(){for(var t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",e=[],o=0;o<10;o++){var i=Math.floor(Math.random()*t.length),n=t.charAt(i);e.push(n)}var c=e.join("")+1+"";return cc.sys.localStorage.setItem("matchNumber",1),cc.sys.localStorage.setItem("matchId",c),cc.fx.GameConfig.GM_INFO.matchId=c,c},subName:function(t,e){return t.length>e&&(t=t.substring(0,e)+"..."),t},setPic:function(t,e){t.active=!1;var o=e;setTimeout(function(){fetch(o).then(function(t){return t.headers.get("Content-Length")}).then(function(e){"5093"==e&&(t.active=!0)}).catch(function(){})},100),cc.assetManager.loadRemote(o,{ext:".png"},function(e,o){o&&(t.active=!0,t.getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(o))})},getRankData:function(t,e,o){e.listData=t.data.list,e.selfData=t.data.info;var i=[],n=!1;cc.fx.GameTool.setPic(e.selfNode.getChildByName("pic").getChildByName("icon"),e.selfData.pic);for(var c=0;c<=e.listData.length-1;c++)i.push({rank:c+1,name:e.listData[c].nickName,total:e.listData[c].score,time:null,pic:e.listData[c].pic}),cc.fx.GameConfig.GM_INFO.userId==e.listData[c].userId&&(n=!0,e.rankNumber=c,e.selfNode.getChildByName("rankLab").getComponent(cc.Label).string=c+1+""),c==e.listData.length-1&&0==n&&(e.rankNumber=c,e.selfNode.getChildByName("rankLab").getComponent(cc.Label).string="99+");switch(e.selfData.nickName=cc.fx.GameTool.subName(e.selfData.nickName,o),e.selfNode.getChildByName("nameLab").getComponent(cc.Label).string=e.selfData.nickName,e.selfNode.getChildByName("totalLab").getComponent(cc.Label).string=e.selfData.score,cc.fx.GameTool.getTimeShenNong(e.selfData.totleTimes),e.selfNode.getChildByName("rankLab").getComponent(cc.Label).string){case"1":e.selfNode.getChildByName("rank").getChildByName("one").active=!0;break;case"2":e.selfNode.getChildByName("rank").getChildByName("two").active=!0;break;case"3":e.selfNode.getChildByName("rank").getChildByName("three").active=!0}6==o&&(e.rankList.setData(i),e.selfNode.opacity=255,0==e.selfData.totalSunCount&&(e.selfNode.opacity=0))},getSeedRandom:function(t,e){e=e||1,t=t||0,cc.fx.GameConfig.GM_INFO.currSeed=(9301*cc.fx.GameConfig.GM_INFO.currSeed+49297)%233280;var o=cc.fx.GameConfig.GM_INFO.currSeed/233280;return parseInt(t+o*(e-t))},getCustom:function(t){var e=cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom);"undifend"==e||null==e||""==e?this.setCustom():(cc.fx.GameConfig.GM_INFO_SET("custom",e[0]),0==e[0]&&1!=t||(e.shift(),0==e.length?this.setCustom():cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,e)))},setCustom:function(){for(var t=cc.fx.GameConfig.LEVEL_INFO.length,e=[],o=1;o16.2/9)},setFit:function(){return cc.fx.GameTool.getSetScreenResolutionFlag()},getGameInfo:function(){return!1},setGameInfo:function(){},typingAni:function(t,e,o,i){var n=i,c="",a=e.split(""),r=a.length,s=0;n.func=function(){c+=a[s],t.string=c,++s==r&&(n.unschedule(n.func),o&&o())},n.schedule(n.func,.1,cc.macro.REPEAT_FOREVER,0)},getTimeMargin:function(t){var e,o;e=t,o=parseInt(e/3600+"");var i=parseInt((e-3600*o)/60+""),n=""+i;i<10&&(n="0"+i);var c=e-3600*o-60*i,a=c+"";return c<10&&(a="0"+c),n+":"+a},getTimeShenNong:function(t){var e,o=0;return(e=t=parseInt(t/1e3+""))>60&&(o=parseInt(e/60+"")),o+"'"+(e-60*o)+"''"},shuffleArray:function(t){for(var e,o=t.length-1;o>0;o--){var i=Math.floor(Math.random()*(o+1));e=[t[i],t[o]],t[o]=e[0],t[i]=e[1]}return t},addLevel:function(t){cc.fx.GameConfig.GM_INFO.level+=1,cc.fx.GameConfig.GM_INFO.level>156&&(cc.fx.GameConfig.GM_INFO.level=156);var e=Date.now(),o={level:cc.fx.GameConfig.GM_INFO.level,timestamp:e};cc.fx.StorageMessage.setStorage("level",o);var n={time:t.count_Time,add_Time:t.add_Time,result:"success"};cc.fx.GameTool.shushu_Track("finish_stage",n),i.MiniGameSdk.API.shushu_SetSuperProperties(),cc.fx.GameTool.setUserLevel(function(){})},changeCoin:function(t){if(console.log("changeCoin",t),null!=t&&!(t<0&&cc.fx.GameConfig.GM_INFO.coin<-t)){cc.fx.GameConfig.GM_INFO.coin+=t,cc.fx.GameConfig.GM_INFO.coin<0&&(cc.fx.GameConfig.GM_INFO.coin=0);var e=Date.now(),o={coin:cc.fx.GameConfig.GM_INFO.coin,timestamp:e};i.MiniGameSdk.API.shushu_SetSuperProperties(),cc.fx.StorageMessage.setStorage("coin",o),cc.fx.GameTool.setUserCoin(function(){})}},getUserCoin:function(t){"undefined"!=typeof wx&&null!==wx&&wx.cloud.callFunction({name:"userCoin",data:{action:"read"},success:function(e){t&&t(e)},fail:function(e){t(e)}})},setUserCoin:function(t){"undefined"!=typeof wx&&null!==wx&&((cc.fx.GameConfig.GM_INFO.coin<=0||null==cc.fx.GameConfig.GM_INFO.coin)&&(console.log("\u91d1\u5e01\u4e0a\u4f20\u5931\u8d25",cc.fx.GameConfig.GM_INFO.coin),cc.fx.GameConfig.GM_INFO.coin=0),console.log("\u5373\u5c06\u4e0a\u4f20\u7684\u91d1\u5e01\u6570\u91cf:",cc.fx.GameConfig.GM_INFO.coin),wx.cloud.callFunction({name:"userCoin",data:{action:"save",coinAmount:cc.fx.GameConfig.GM_INFO.coin},success:function(e){e.result.code,t&&t(e)},fail:function(e){t&&t(e),console.error("\u5b58\u50a8\u7528\u6237\u6570\u636e\u5931\u8d25",e)}}))},getUserLevel:function(t){"undefined"!=typeof wx&&null!==wx&&wx.cloud.callFunction({name:"userLevel",data:{action:"read"},success:function(e){t&&t(e)},fail:function(e){t(e)}})},getHealth:function(t){var e=cc.fx.StorageMessage.getStorage("health"),o=Date.now();if(cc.fx.GameConfig.GM_INFO.hp=5,null==e||null==e||""==e)console.log("\u6ca1\u5b58\u50a8\u8fc7\u4f53\u529b\u503c\uff0c\u521d\u8fdb"),cc.fx.GameConfig.GM_INFO.hp=5,cc.fx.GameTool.getUserHealth(function(e){if(console.log("\u4f53\u529b\u63a5\u53e3\u8fd4\u56de\u7ed3\u679c",e),200==e.result.code){cc.fx.GameConfig.GM_INFO.hp=e.result.data,cc.fx.GameConfig.GM_INFO.min_Time=e.result.timestamp;var o={health:cc.fx.GameConfig.GM_INFO.hp,timestamp:e.result.timestamp};i.MiniGameSdk.API.shushu_SetSuperProperties(),cc.fx.StorageMessage.setStorage("health",o)}else 404==e.result.code&&"\u672a\u627e\u5230\u4f53\u529b\u6570\u636e"==e.result.message&&cc.fx.GameTool.setUserHealth(0,function(){});t&&t()});else if(console.log("\u6709\u5b58\u50a8\u8fc7\u4f53\u529b\u503c:",e),cc.fx.GameConfig.GM_INFO.hp=e.health,t&&(console.log("\u4f53\u529b\u503c\u8bfb\u53d6\u5b8c\u6bd5"),t()),e.health<0)console.log("\u4f53\u529b\u503c\u5f02\u5e38\uff0c\u5f52\u96f6"),cc.fx.GameConfig.GM_INFO.hp=0,cc.fx.GameTool.setUserHealth(0,function(){t&&t()});else if(e.health<5){var n=o-e.timestamp,c=Math.min(5-e.health,Math.floor(n/18e5));if(c>0)e.health+=c,cc.fx.GameTool.setUserHealth(c,function(){t&&t()}),console.log("\u4f53\u529b\u503c\u6062\u590d "+c+" \u70b9\uff0c\u5f53\u524d\u4f53\u529b\u503c: "+cc.fx.GameConfig.GM_INFO.hp);else{var a=Math.ceil((18e5-n%18e5)/1e3);console.log("\u4f53\u529b\u503c\u672a\u6ee1\uff0c\u5f85\u6062\u590d\uff0c\u8ddd\u79bb\u4e0b\u4e00\u6b21\u6062\u590d\u8fd8\u5269 "+a+" \u79d2"),cc.fx.GameConfig.GM_INFO.min_Time=a}}},getUserHealth:function(t){"undefined"!=typeof wx&&null!==wx&&(console.log("\u5373\u5c06\u8fdb\u5165\u4f53\u529b\u83b7\u53d6\u63a5\u53e3"),wx.cloud.callFunction({name:"userHealth",data:{action:"read"},success:function(e){t&&t(e)},fail:function(e){t(e)}}))},setUserHealth:function(t,e){cc.fx.GameConfig.GM_INFO.hp+=t;var o=Date.now(),n={};if(t<0&&4!=cc.fx.GameConfig.GM_INFO.hp){var c=cc.fx.StorageMessage.getStorage("health").timestamp;n={health:cc.fx.GameConfig.GM_INFO.hp,timestamp:c}}else n={health:cc.fx.GameConfig.GM_INFO.hp,timestamp:o};cc.fx.StorageMessage.setStorage("health",n),i.MiniGameSdk.API.shushu_SetSuperProperties(),"undefined"!=typeof wx&&null!==wx&&wx.cloud.callFunction({name:"userHealth",data:{action:"save",healthAmount:cc.fx.GameConfig.GM_INFO.hp,timestamp:o},success:function(t){e&&e(t)},fail:function(t){e&&e(t)}})},buyReview:function(t,e){"undefined"!=typeof wx&&null!==wx&&e()},buyProp:function(t,e){if("undefined"!=typeof wx&&null!==wx){cc.fx.GameTool.changeCoin(-1500),cc.fx.GameTool.setUserProp(t,3,function(){});var o={id:t+"",num:3};cc.fx.GameTool.shushu_Track("resource_get",o);var i="";2001==t?i="freeze_in_game":2002==t?i="hammer_in_game":2003==t&&(i="wand_in_game");var n={item_id:i,item_num:1,item_price:1500,cost_type:"gold"};console.log("____________\u5373\u5c06\u4e0a\u4f20Shop_buy",n),cc.fx.GameTool.shushu_Track("shop_buy",n),e()}},setUserLevel:function(t){"undefined"!=typeof wx&&null!==wx&&wx.cloud.callFunction({name:"userLevel",data:{action:"save",levelAmount:cc.fx.GameConfig.GM_INFO.level},success:function(e){t&&t(e)},fail:function(){}})},getUserProp:function(t){"undefined"!=typeof wx&&null!==wx&&wx.cloud.callFunction({name:"userProp",data:{action:"read"},success:function(e){e.result.data,t&&t(e)},fail:function(e){t(e)}})},setUserProp:function(t,e,o){if("undefined"!=typeof wx&&null!==wx){var i=null;0==t?i={freeze:cc.fx.GameConfig.GM_INFO.freezeAmount,hammer:cc.fx.GameConfig.GM_INFO.hammerAmount,magic_wand:cc.fx.GameConfig.GM_INFO.magicAmount}:2001==t?i=e:2002==t?i=e:2003==t&&(i=e),wx.cloud.callFunction({name:"userProp",data:{action:"save",propType:t,propData:i},success:function(t){o&&o(t)},fail:function(t){o&&o(t),console.error("\u5b58\u50a8\u9053\u5177\u6570\u636e\u5931\u8d25",t)}})}},consumeCoins:function(){},setUserInfo:function(t){if("undefined"!=typeof wx&&null!==wx){var e=cc.fx.GameTool.formatDate(new Date),o={username:cc.fx.GameConfig.GM_INFO.username,useravatar:cc.fx.GameConfig.GM_INFO.useravatar,register_time:e};wx.cloud.callFunction({name:"userData",data:{action:"save",userData:o},success:function(e){t&&t(e)},fail:function(){t&&t("fail")}})}},formatDate:function(t){return t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0")+"-"+String(t.getDate()).padStart(2,"0")+" "+String(t.getHours()).padStart(2,"0")+":"+String(t.getMinutes()).padStart(2,"0")+":"+String(t.getSeconds()).padStart(2,"0")+"."+String(t.getMilliseconds()).padStart(3,"0")},getTime:function(){return(new Date).getTime()},pushLister:function(){},removeAllLister:function(){},shushu_Track:function(t,e){var o={};switch(t){case"register":break;case"enter_stage":o={stage_id:cc.fx.GameConfig.GM_INFO.level+1};break;case"finish_stage":o={stage_id:cc.fx.GameConfig.GM_INFO.level+1,stage_duration:e.time,added_time:e.add_Time,result:e.result};break;case"resource_get":o={change_reason:"\u8d2d\u4e70\u9053\u5177",change_num:e.num,resource_id:e.id};break;case"resource_cost":o={change_reason:"\u4f7f\u7528\u9053\u5177",change_num:e.num,resource_id:e.id};break;case"shop_buy":o={item_id:e.item_id,item_num:e.item_num,item_price:e.item_price,cost_type:e.cost_type},console.log("\u6570\u636e:",o)}i.MiniGameSdk.API.shushu_Track(t,o)},getWechatGameVersion:function(){switch(wx.getAccountInfoSync().miniProgram.envVersion){case"develop":return"\u5f00\u53d1\u7248";case"trial":return"\u4f53\u9a8c\u7248";case"release":return"\u6b63\u5f0f\u7248";default:return"\u672a\u77e5\u7248\u672c"}}};o.GameTool=n,cc._RF.pop()},{"../../Sdk/MiniGameSdk":"MiniGameSdk"}],HttpUtil:[function(t,e,o){"use strict";cc._RF.push(e,"771a32aQBNGVKd3+66gyTKA","HttpUtil");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=(a.property,t("./crypto-js.min.js")),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),c([r],e)}(cc.Component);o.default=l;new(function(){function t(){this.keyHex=this.getHetKey()}return t.prototype.getHetKey=function(){return s.enc.Utf8.parse("hui231%1")},t.prototype.encryptByDES=function(t,e){if(!t)return t;var o=e?s.enc.Utf8.parse(e):this.keyHex;return s.DES.encrypt(t,o,{mode:s.mode.ECB,padding:s.pad.Pkcs7}).toString()},t.prototype.decryptByDES=function(t,e){var o=e?s.enc.Utf8.parse(e):this.keyHex;return s.DES.decrypt({ciphertext:s.enc.Base64.parse(t)},o,{mode:s.mode.ECB,padding:s.pad.Pkcs7}).toString(s.enc.Utf8)},t.prototype.hmacSha256=function(t,e){var o=e?s.enc.Utf8.parse(e):this.keyHex;return s.HmacSHA256(t,o).toString()},t.prototype.verifyHmacSha256=function(t,e){return s.HmacSHA256(t,this.keyHex).toString()===e},t.prototype.encryptCBC=function(t){if(!t)return t;var e=s.enc.Utf8.parse(t);return s.AES.encrypt(e,this.keyHex,{iv:this.keyHex,mode:s.mode.CBC,padding:s.pad.ZeroPadding}).toString()},t.prototype.decryptCBC=function(t){if(!t)return t;var e=s.enc.Hex.parse(t),o=s.enc.Base64.stringify(e);return s.AES.decrypt(o,this.keyHex,{iv:this.keyHex,mode:s.mode.CBC,padding:s.pad.ZeroPadding}).toString(s.enc.Utf8).toString()},t}()),cc._RF.pop()},{"./crypto-js.min.js":"crypto-js.min"}],ItemRender:[function(t,e,o){"use strict";cc._RF.push(e,"ca0f9k0oBVDbpQC+OMNTF3m","ItemRender");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=(a.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=null,e.itemIndex=0,e}return n(e,t),e.prototype.dataChanged=function(){this.data.name=cc.fx.GameTool.subName(this.data.name,6),this.node.getChildByName("rankLab").getComponent(cc.Label).string=this.data.rank+"",this.node.getChildByName("nameLab").getComponent(cc.Label).string=this.data.name+"",this.node.getChildByName("totalLab").getComponent(cc.Label).string=this.data.total,cc.fx.GameTool.getTimeShenNong(this.data.time),this.node.getChildByName("rank").getChildByName("one").active=!1,this.node.getChildByName("rank").getChildByName("two").active=!1,this.node.getChildByName("rank").getChildByName("three").active=!1,1==this.data.rank?(this.node.getChildByName("rank").getChildByName("one").active=!0,this.node.getChildByName("rankLab").active=!1):2==this.data.rank?(this.node.getChildByName("rank").getChildByName("two").active=!0,this.node.getChildByName("rankLab").active=!1):3==this.data.rank?(this.node.getChildByName("rank").getChildByName("three").active=!0,this.node.getChildByName("rankLab").active=!1):this.node.getChildByName("rankLab").active=!0,this.setPic()},e.prototype.setPic=function(){var t=this;this.node.getChildByName("pic").getChildByName("icon").active=!1,this.node.getChildByName("pic").getChildByName("pic").active=!1;var e=this.data.pic;fetch(e).then(function(t){return t.headers.get("Content-Length")}).then(function(e){"5093"==e&&(t.node.getChildByName("pic").getChildByName("icon").active=!0)}).catch(function(){}),cc.assetManager.loadRemote(e,{ext:".png"},function(e,o){o?(t.node.getChildByName("pic").getChildByName("pic").active=!0,t.node.getChildByName("pic").getChildByName("pic").getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(o)):console.log(e,o)})},c([r],e)}(cc.Component));o.default=s,cc._RF.pop()},{}],JiaZai:[function(t,e,o){"use strict";cc._RF.push(e,"1dc93b4fehOrpGgTkihBH4g","JiaZai");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("./GameManager"),r=t("./NumberToImage"),s=t("./Sdk/MiniGameSdk"),l=t("./lq_collide_system/lq_collide_system"),h=cc._decorator,p=h.ccclass,u=h.property,d=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.node1=null,e.node2=null,e.node3=null,e.Block_Color=[],e.custom=null,e.level=null,e.coin=null,e.Stamina=null,e}return n(e,t),e.prototype.onLoad=function(){cc.game.setFrameRate(63),l.LQCollideSystem.is_enable=!0,a.default._instance.Block_Color=this.Block_Color,cc.fx.GameConfig.GM_INFO.first&&(console.log("\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u51c6\u5907\u6ce8\u518c\u4e8b\u4ef6",cc.fx.GameConfig.GM_INFO.openid),""!=cc.fx.GameConfig.GM_INFO.openid&&(console.log("\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u53d1\u9001\u6ce8\u518c\u4e8b\u4ef6"),cc.fx.GameTool.shushu_Track("register")),cc.fx.AudioManager._instance.playEffect("zhuan1",null),this.node.getChildByName("zhuanchang").active=!0,this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",!1),setTimeout(function(){cc.fx.GameConfig.GM_INFO.first=!1,cc.director.loadScene("GameScene")},1e3))},e.prototype.start=function(){var t=this;cc.fx.GameTool.getHealth(null),setTimeout(function(){r.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.level+1,25,15,"big_",t.level,!1),r.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin,30,15,"coin_",t.coin,!0),t.setHealthInfo()},0),cc.fx.GameConfig.GM_INFO.gameState?(this.node.getChildByName("zhuanchang").active=!0,setTimeout(function(){cc.fx.AudioManager._instance.playEffect("zhuan2",null),t.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"down",!1),t.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setCompleteListener(function(e){"down"!==e.animation.name||cc.fx.GameConfig.GM_INFO.first||(t.node.getChildByName("zhuanchang").active=!1)})},500)):cc.fx.GameConfig.GM_INFO.first||(this.node.getChildByName("zhuanchang").active=!1)},e.prototype.startTimeCutDown=function(){this.scheduleCallback=function(){var t=this;if(!this.pause)if(cc.fx.GameConfig.GM_INFO.min_Time<=0){this.stopTimeCutDown();var e=cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);this.Stamina.getChildByName("time").getComponent(cc.Label).string=e,cc.fx.GameTool.setUserHealth(1,function(){cc.fx.GameTool.getHealth(null),t.setHealthInfo()})}else cc.fx.GameConfig.GM_INFO.min_Time-=1,e=cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time),this.Stamina.getChildByName("time").getComponent(cc.Label).string=e}.bind(this),this.schedule(this.scheduleCallback,1)},e.prototype.stopTimeCutDown=function(){this.scheduleCallback&&this.unschedule(this.scheduleCallback)},e.prototype.setHealthInfo=function(){if(5==cc.fx.GameConfig.GM_INFO.hp)this.Stamina.getChildByName("man").active=!0,this.Stamina.getChildByName("health").active=!1,this.Stamina.getChildByName("time").active=!1;else if(this.Stamina.getChildByName("man").active=!1,this.Stamina.getChildByName("health").active=!0,r.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.hp,25,15,"coin_",this.Stamina.getChildByName("health"),!1),this.Stamina.getChildByName("time").active=!0,0!=cc.fx.GameConfig.GM_INFO.min_Time){var t=cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);this.Stamina.getChildByName("time").getComponent(cc.Label).string=t,this.startTimeCutDown()}},e.prototype.startGame=function(){cc.fx.AudioManager._instance.playEffect("anniu_Big",null),cc.fx.GameConfig.GM_INFO.hp<1?s.MiniGameSdk.API.showToast("\u4f53\u529b\u503c\u4e0d\u8db3"):this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl")._touch&&(this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl").setTouch(!1),cc.fx.AudioManager._instance.playEffect("zhuan1",null),this.node.getChildByName("zhuanchang").active=!0,this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",!1),cc.fx.GameConfig.LEVEL_INFO_init(!0,1e3))},e.prototype.closeRank=function(){this.node.getChildByName("Rank").active=!1},e.prototype.openRank=function(){this.node.getChildByName("Rank").active=!0},e.prototype.openReward=function(){this.node.getChildByName("Reward").active=!0},e.prototype.clickShop=function(){var t=cc.fx.GameConfig.GM_INFO.openid;console.log("\u5373\u5c06\u521b\u5efacreateorder"),wx.cloud.callFunction({name:"createOrder",data:{userId:t,productId:"1"},success:function(t){console.log("createOrder\u7ed3\u679c:",t.result);var e=t.result.paymentResult.payment;console.log("payment:",e),wx.requestPayment({timeStamp:e.timeStamp,nonceStr:e.nonceStr,package:e.package,signType:e.signType||"MD5",paySign:e.paySign,success:function(t){console.log("\u652f\u4ed8\u6210\u529f",t)},fail:function(t){console.log("\u652f\u4ed8\u5931\u8d25",t)},complete:function(t){console.log("\u652f\u4ed8\u5b8c\u6210",t)}})}})},e.prototype.openPause=function(){cc.fx.AudioManager._instance.playEffect("anniu_little",null),console.log(cc.fx.GameConfig.GM_INFO),null==cc.fx.GameConfig.GM_INFO.openid&&(console.log(cc.fx.GameConfig.GM_INFO.openid),cc.fx.GameConfig.GM_INFO.openid=""),this.node.getChildByName("Pause").active=!0,this.node.getChildByName("Pause").getChildByName("openID").getComponent(cc.Label).string=cc.fx.GameConfig.GM_INFO.openid},e.prototype.closePause=function(){cc.fx.AudioManager._instance.playEffect("anniu_little",null),this.node.getChildByName("Pause").active=!1},e.prototype.closeReward=function(){this.node.getChildByName("Reward").active=!1},e.prototype.openStamina=function(){this.node.getChildByName("Stamina").active=!0},e.prototype.closeStamina=function(){this.node.getChildByName("Stamina").active=!1},c([u(cc.Node)],e.prototype,"node1",void 0),c([u(cc.Node)],e.prototype,"node2",void 0),c([u(cc.Node)],e.prototype,"node3",void 0),c([u({type:[cc.SpriteAtlas],tooltip:"\u65b9\u5757\u989c\u8272"})],e.prototype,"Block_Color",void 0),c([u(cc.EditBox)],e.prototype,"custom",void 0),c([u(cc.Node)],e.prototype,"level",void 0),c([u(cc.Node)],e.prototype,"coin",void 0),c([u(cc.Node)],e.prototype,"Stamina",void 0),c([p],e)}(cc.Component);o.default=d,cc._RF.pop()},{"./GameManager":"GameManager","./NumberToImage":"NumberToImage","./Sdk/MiniGameSdk":"MiniGameSdk","./lq_collide_system/lq_collide_system":"lq_collide_system"}],Key:[function(t,e,o){"use strict";cc._RF.push(e,"92465qnUTJDw5STq1t7oelo","Key");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("../Map"),r=cc._decorator,s=r.ccclass,l=(r.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=60,e}return n(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){},e.prototype.init=function(t){t&&(this.time=t),this.node.getChildByName("time").active=!0,this.node.getChildByName("time").getComponent(cc.Label).string=this.time.toString(),this.schedule(this.updateTime,1)},e.prototype.updateTime=function(){this.time--,this.node.getChildByName("time").getComponent(cc.Label).string=this.time.toString(),this.time<=0&&(this.unschedule(this.updateTime),this.node.destroy(),a.default._instance.failLevel())},c([s],e)}(cc.Component));o.default=l,cc._RF.pop()},{"../Map":"Map"}],List:[function(t,e,o){"use strict";cc._RF.push(e,"d5421HgLShFKIjj5f18m1mi","List");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.StartAxisType=o.ListType=void 0;var a,r,s=t("./ItemRender"),l=cc._decorator,h=l.ccclass,p=l.property;(function(t){t[t.Horizontal=1]="Horizontal",t[t.Vertical=2]="Vertical",t[t.Grid=3]="Grid"})(a=o.ListType||(o.ListType={})),function(t){t[t.Horizontal=1]="Horizontal",t[t.Vertical=2]="Vertical"}(r=o.StartAxisType||(o.StartAxisType={}));var u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.itemRender=null,e.type=a.Vertical,e.startAxis=r.Horizontal,e.spaceX=0,e.spaceY=0,e.padding_top=0,e.padding_buttom=0,e.padding_left=0,e._padding=0,e.padding_right=0,e.scrollView=null,e.content=null,e.itemDataList=[],e.spawnCount=0,e.itemList=[],e.itemHeight=0,e.itemWidth=0,e.itemPool=[],e.halfScrollView=0,e.lastContentPosX=0,e.lastContentPosY=0,e.gridRow=0,e.gridCol=0,e.updateTimer=0,e.updateInterval=.1,e.bScrolling=!1,e.updateFun=function(){},e}return n(e,t),e.prototype.onLoad=function(){this.itemHeight=this.itemRender.height,this.itemWidth=this.itemRender.width,this.scrollView=this.node.getComponent(cc.ScrollView),this.content=this.scrollView.content,this.content.anchorX=0,this.content.anchorY=1,this.content.removeAllChildren(),this.scrollView.node.on("scrolling",this.onScrolling,this)},e.prototype.setData=function(t){this.itemDataList=t.slice(),this.updateContent()},e.prototype.countListParam=function(){var t=this.itemDataList.length;this.type==a.Vertical?(this.scrollView.horizontal=!1,this.scrollView.vertical=!0,this.content.width=this.content.parent.width,this.content.height=t*this.itemHeight+(t-1)*this.spaceY+this.padding_top+this.padding_buttom,this.spawnCount=Math.round(this.scrollView.node.height/(this.itemHeight+this.spaceY))+2,this.halfScrollView=this.scrollView.node.height/2+this.itemHeight/2+this.spaceY,this.updateFun=this.updateV):this.type==a.Horizontal?(this.scrollView.horizontal=!0,this.scrollView.vertical=!1,this.content.width=t*this.itemWidth+(t-1)*this.spaceX+this.padding_left+this.padding_right,this.content.height=this.content.parent.height,this.spawnCount=Math.round(this.scrollView.node.width/(this.itemWidth+this.spaceX))+2,this.halfScrollView=this.scrollView.node.width/2+this.itemWidth/2+this.spaceX,this.updateFun=this.udpateH):this.type==a.Grid&&(this.startAxis==r.Vertical?(this.scrollView.horizontal=!1,this.scrollView.vertical=!0,this.content.width=this.content.parent.width,this.padding_left+this.padding_right+this.itemWidth+this.spaceX>this.content.width&&(this.padding_left=0,this.padding_right=0,console.error("padding_left\u6216padding_right\u8fc7\u5927")),this.gridCol=Math.floor((this.content.width-this.padding_left-this.padding_right)/(this.itemWidth+this.spaceX)),this.gridRow=Math.ceil(t/this.gridCol),this.content.height=this.gridRow*this.itemHeight+(this.gridRow-1)*this.spaceY+this.padding_top+this.padding_buttom,this.spawnCount=Math.round(this.scrollView.node.height/(this.itemHeight+this.spaceY))*this.gridCol+2*this.gridCol,this.halfScrollView=this.scrollView.node.height/2+this.itemHeight/2+this.spaceY,this.updateFun=this.updateGrid_V):this.startAxis==r.Horizontal&&(this.scrollView.horizontal=!0,this.scrollView.vertical=!1,this.content.height=this.content.parent.height,this.padding_top+this.padding_buttom+this.itemHeight+this.spaceY>this.content.height&&(this.padding_top=0,this.padding_buttom=0,console.error("padding_top\u6216padding_buttom\u8fc7\u5927")),this.gridRow=Math.floor((this.content.height-this.padding_top-this.padding_buttom)/(this.itemHeight+this.spaceY)),this.gridCol=Math.ceil(t/this.gridRow),this.content.width=this.gridCol*this.itemWidth+(this.gridCol-1)*this.spaceX+this.padding_left+this.padding_right,this.spawnCount=Math.round(this.scrollView.node.width/(this.itemWidth+this.spaceX))*this.gridRow+2*this.gridRow,this.halfScrollView=this.scrollView.node.width/2+this.itemWidth/2+this.spaceX,this.updateFun=this.updateGrid_H))},e.prototype.createList=function(t,e){this.itemDataList.length>this.spawnCount&&t+this.spawnCount-1>=this.itemDataList.length?(t=this.itemDataList.length-this.spawnCount,e=this.scrollView.getMaxScrollOffset()):this.itemDataList.length<=this.spawnCount&&(t=0);for(var o=0;othis.itemDataList.length-t&&((i=this.itemList.pop()).removeFromParent(),this.itemPool.push(i))}this.scrollView.scrollToOffset(e)},e.prototype.getItem=function(){return 0==this.itemPool.length?cc.instantiate(this.itemRender):this.itemPool.pop()},e.prototype.update=function(t){0!=this.bScrolling&&(this.updateTimer+=t,this.updateTimerthis.lastContentPosY,n=(this.itemHeight+this.spaceY)*e.length,c=0;co&&t.y-n-this.padding_buttom>-this.content.height){var r=(l=t.getComponent(s.default)).itemIndex+e.length;l.itemIndex=r,l.data=this.itemDataList[r],l.dataChanged(),t.y=t.y-n}}else if(a.y<-o&&t.y+n+this.padding_top<0){var l;r=(l=t.getComponent(s.default)).itemIndex-e.length,l.itemIndex=r,l.data=this.itemDataList[r],l.dataChanged(),t.y=t.y+n}}this.lastContentPosY=this.scrollView.content.y},e.prototype.udpateH=function(){for(var t,e=this.itemList,o=this.halfScrollView,i=this.scrollView.content.x>this.lastContentPosX,n=(this.itemWidth+this.spaceX)*e.length,c=0;co&&t.x-n-this.padding_left>0){var r=(l=t.getComponent(s.default)).itemIndex-e.length;l.itemIndex=r,l.data=this.itemDataList[r],l.dataChanged(),t.x=t.x-n}}else if(a.x<-o&&t.x+n+this.padding_rightthis.lastContentPosY,n=(this.itemHeight+this.spaceY)*(this.spawnCount/this.gridCol),c=0;co&&t.y-n-this.padding_buttom>-this.content.height){var r=(l=t.getComponent(s.default)).itemIndex+this.spawnCount/this.gridCol*this.gridCol;null!=this.itemDataList[r]?(t.y=t.y-n,l.itemIndex=r,l.data=this.itemDataList[r],l.dataChanged(),t.opacity=255):(t.y=t.y-n,l.itemIndex=r,t.opacity=0)}}else if(a.y<-o&&t.y+n+this.padding_top<0){var l;r=(l=t.getComponent(s.default)).itemIndex-this.spawnCount/this.gridCol*this.gridCol,null!=this.itemDataList[r]?(t.y=t.y+n,l.itemIndex=r,l.data=this.itemDataList[r],l.dataChanged(),t.opacity=255):(t.y=t.y+n,l.itemIndex=r,t.opacity=0)}}this.lastContentPosY=this.scrollView.content.y},e.prototype.updateGrid_H=function(){for(var t,e=this.itemList,o=this.halfScrollView,i=this.scrollView.content.x>this.lastContentPosX,n=(this.itemWidth+this.spaceX)*(this.spawnCount/this.gridRow),c=0;co&&t.x-n-this.padding_left>0){var r=(l=t.getComponent(s.default)).itemIndex-this.spawnCount/this.gridRow*this.gridRow;null!=this.itemDataList[r]?(t.x=t.x-n,l.itemIndex=r,l.data=this.itemDataList[r],l.dataChanged(),t.opacity=255):(t.x=t.x-n,l.itemIndex=r,t.opacity=0)}}else if(a.x<-o&&t.x+n+this.padding_right=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=(a.requireComponent,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.node1=null,e.node2=null,e.node3=null,e.localTest=!1,e.clientTestVersion="1.0.0",e.testVersion=null,e}return n(e,t),e.prototype.onLoad=function(){cc.internal.inputManager._maxTouches=1,cc.director.getCollisionManager().enabled=!0,this.setWX(),cc.debug.setDisplayStats(!1),cc.tween(this.node1).delay(0).to(.3,{scale:1}).to(.3,{scale:1.3}).to(.3,{scale:1}).union().repeatForever().start(),cc.tween(this.node2).delay(.3).to(.3,{scale:1}).to(.3,{scale:1.3}).to(.3,{scale:1}).union().repeatForever().start(),cc.tween(this.node3).delay(.6).to(.3,{scale:1}).to(.3,{scale:1.3}).to(.3,{scale:1}).union().repeatForever().start()},e.prototype.setWX=function(){"undefined"!=typeof wx&&null!==wx&&(wx.setPreferredFramesPerSecond(60),wx.onShareAppMessage(function(){return{title:"\u4f60\u60f3\u73a9\u4e0a\u600e\u6837\u7684\u6e38\u620f\uff1f"}}),wx.onShareTimeline(function(){return{title:"\u4f60\u60f3\u73a9\u4e0a\u600e\u6837\u7684\u6e38\u620f\uff1f"}}),wx.showShareMenu(function(){return{title:"\u4f60\u60f3\u73a9\u4e0a\u600e\u6837\u7684\u6e38\u620f\uff1f",imageUrl:"",query:""}}),setTimeout(function(){wx.showShareMenu({menus:["shareAppMessage","shareTimeline"]})},2e3))},e.prototype.containsTrain=function(t){return/from=train/i.test(t)},e.prototype.startGame=function(){cc.director.loadScene("GameScene")},e.prototype.clickBtn=function(t,e){cc.fx.GameConfig.GM_INFO.custom=parseInt(e),cc.director.loadScene("GameScene")},e.prototype.openRank=function(){cc.director.loadScene("RankScene")},e.prototype.update=function(){},c([s(cc.Node)],e.prototype,"node1",void 0),c([s(cc.Node)],e.prototype,"node2",void 0),c([s(cc.Node)],e.prototype,"node3",void 0),c([s(!1)],e.prototype,"localTest",void 0),c([s("")],e.prototype,"clientTestVersion",void 0),c([s(cc.Label)],e.prototype,"testVersion",void 0),c([r],e)}(cc.Component));o.default=l,cc._RF.pop()},{}],Lock:[function(t,e,o){"use strict";cc._RF.push(e,"41cb8ugLSBH/5aNhnsJ5lX7","Lock");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("../NumberToImage"),r=cc._decorator,s=r.ccclass,l=(r.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=0,e}return n(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){},e.prototype.init=function(t){t&&(this.time=t),this.node.getChildByName("time").active=!0,a.default.numberToImageNodes(this.time,20,8,"lock_",this.node.getChildByName("time"),!1)},e.prototype.reduce=function(){this.time-=1,a.default.numberToImageNodes(this.time,20,8,"lock_",this.node.getChildByName("time"),!1),this.time<=0&&(this.node.parent.getComponent("Block").type=0,this.node.destroy(),this.node.removeFromParent())},c([s],e)}(cc.Component));o.default=l,cc._RF.pop()},{"../NumberToImage":"NumberToImage"}],MapBlock:[function(t,e,o){"use strict";cc._RF.push(e,"52958xsurVAp54WMo+xFDo6","MapBlock");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.label=null,e.block_Id="",e.posX=0,e.posY=0,e.direction="",e}return n(e,t),e.prototype.start=function(){this.direction="",this.block_Id=""},e.prototype.setDiraction=function(t){this.direction=t},e.prototype.init=function(t,e){this.posX=t,this.posY=e},c([s(cc.Label)],e.prototype,"label",void 0),c([s],e.prototype,"block_Id",void 0),c([r],e)}(cc.Component);o.default=l,cc._RF.pop()},{}],Map:[function(t,e,o){"use strict";cc._RF.push(e,"2234assp7RIvpDgrnqljp2R","Map");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("./GameManager"),r=t("./NumberToImage"),s=t("./Sdk/MiniGameSdk"),l=cc._decorator,h=l.ccclass,p=l.property,u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.Block_Array=[],e.Block_Prop=[],e.MapBlockPrefab=null,e.Block_Color=[],e.Wall_Prefab=[],e.wallTurnPrefab=null,e.timeBtn=null,e.destroyBtn=null,e.magicBtn=null,e.mask=null,e.iceLabel=null,e.hammerLabel=null,e.magicLabel=null,e.magicMask=null,e.hammerMask=null,e.freezeMask=null,e.coinPop=null,e.timeLabel=null,e.levelLabel=null,e.new_mode=0,e.mapWidth=0,e.mapHeight=0,e.wallNum=0,e.blockNum=0,e.homeCanTouch=!0,e.againCanTouch=!0,e.gameOver=!1,e.gameWin=!1,e.gameStart=!1,e.timeNumber=0,e.count_Time=0,e.add_Time=0,e.pause=!1,e.hammer=!1,e}var o;return n(e,t),o=e,e.prototype.onLoad=function(){var t=this;cc.fx.GameConfig.GM_INFO.review=0,cc.fx.GameConfig.GM_INFO.gameState=!0,this.mask.opacity=0,this.node.getChildByName("Adhesive").zIndex=500,cc.game.setFrameRate(63),cc.fx.AudioManager._instance.playEffect("zhuan2",null),this.node.parent.parent.parent.getChildByName("zhuanchang").active=!0,this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"down",!1),this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setCompleteListener(function(e){"down"===e.animation.name&&(t.node.parent.parent.parent.getChildByName("zhuanchang").active=!1)}),this.blocks=[],this.leftDoors=[],this.rightDoors=[],this.topDoors=[],this.bottomDoors=[],this.gameWin=!1,this.gameOver=!1,this.gameStart=!1,this.homeCanTouch=!0,this.againCanTouch=!0,this.new_mode=0,this.iceLabel.string=cc.fx.GameConfig.GM_INFO.freezeAmount.toString(),this.hammerLabel.string=cc.fx.GameConfig.GM_INFO.hammerAmount.toString(),this.magicLabel.string=cc.fx.GameConfig.GM_INFO.magicAmount.toString(),o._instance=this},e.prototype.start=function(){setTimeout(function(){cc.director.preloadScene("HomeScene",function(t){t&&console.error("\u52a8\u6001\u52a0\u8f7d HomeScene \u5931\u8d25:",t)})},1e3),this.Block_Array=a.default._instance.Block_Array,this.Wall_Prefab=a.default._instance.Wall_Prefab,this.Block_Color=a.default._instance.Block_Color,this.initMap()},e.prototype.startUpdate=function(){if(0==this.gameStart){this.gameStart=!0,console.log("\u51c6\u5907\u8fdb\u5165\u4e0b\u4e00\u5173,\u53d1\u9001\u4e0b\u4e00\u5173\u8fdb\u5165"),cc.fx.GameTool.shushu_Track("enter_stage"),this.startTimeCutDown();for(var t=0;t16?Math.max(i-1,1):Math.min(i+1,10),o16?Math.max(o-1,1):Math.min(o+1,10),e=0&&this.mapBlocksWall[n.x][n.y].opacity==r&&("turn"==t&&"left"==this.mapBlocksWall[n.x][n.y].getComponent("MapBlock").direction||o.push("left")),c.y=0&&this.mapBlocksWall[a.x][a.y].opacity==r&&("turn"==t&&"down"==this.mapBlocksWall[a.x][a.y].getComponent("MapBlock").direction||o.push("down")),o.length>2?null:1==o.length?"wall"==t?o[0]:null:2==o.length?o[0]+o[1]:void 0},e.prototype.createCornerNodes=function(){for(var t=0;t3&&(n-=1)):"block11"==t.name?(i=e-2,this.mapWidth>3&&(n-=2)):"block14"==t.name?(i=e-1,n-=1):"block16"==t.name?(i=e-1,n-=1):"block18"==t.name?(i=e-1,n-=1):"block21"==t.name&&(i=e-1,n-=1),{minX:i,maxX:n,minY:1,maxY:c}},e.prototype.checkPass=function(t,e){for(var o=this.getMinAndMax(t),i=o.minX,n=o.maxX,c=o.minY,a=o.maxY,r=cc.v2(t.getComponent("Block").posX,t.getComponent("Block").posY),s=[],l=0;lm.x&&d.push(f);if(0!=d.length&&(1==(k=this.detectingBlock("left",t.getComponent("Block").posX,t.getComponent("Block").posY,s))&&(k=this.passWall(k,d,t)),k))return this.blockNum-=1,this.special_Treatment(t),h=2,this.createParticle(t,h),h}if(r.x>=n||1==u[1]){p+=1;var g=[];for(l=0;lm.y&&w<=t.getComponent("Block").shu&&C.push(x)}if(0!=C.length&&(1==(k=this.detectingBlock("down",t.getComponent("Block").posX,t.getComponent("Block").posY,s))&&(k=this.passWall(k,C,t)),k))return this.blockNum-=1,this.special_Treatment(t),h=1,this.createParticle(t,h),h}if(r.y>=a||1==u[3]){p+=1;var k,M=[];for(l=0;l0)for(var a=0;a=0){if(""!=this.mapBlocksWall[o-2][i].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o-2][i].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o-2][i].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o-2][i].opacity)return!1}}else if("right"==e){if(""!=this.mapBlocksWall[o+1][i].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o+1][i].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o+1][i].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o+1][i].opacity)return!1;if(o+2<=this.mapBlocksWall.length-1){if(""!=this.mapBlocksWall[o+2][i].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o+2][i].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o+2][i].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o+2][i].opacity)return!1}}if("up"==e){if(""!=this.mapBlocksWall[o][i+1].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o][i+1].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o][i+1].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o][i+1].opacity)return!1;if(i+2<=this.mapBlocksWall[o].length-1){if(""!=this.mapBlocksWall[o][i+2].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o][i+2].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o][i+2].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o][i+2].opacity)return!1}}if("down"==e){if(""!=this.mapBlocksWall[o][i-1].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o][i-1].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o][i-1].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o][i-1].opacity)return!1;if(i-2>=0){if(""!=this.mapBlocksWall[o][i-2].getComponent("MapBlock").block_Id&&"Wall"!=this.mapBlocksWall[o][i-2].getComponent("MapBlock").block_Id&&this.mapBlocksWall[o][i-2].getComponent("MapBlock").block_Id!=t)return!1;if(249==this.mapBlocksWall[o][i-2].opacity)return!1}}return n},e.prototype.checkDiraction=function(t){for(var e=[!1,!1,!1,!1],o=0;o0&&0==e[0]&&250==this.mapBlocksWall[t[o].x-1][t[o].y].opacity&&(e[0]=!0),0==e[1]&&250==this.mapBlocksWall[t[o].x+1][t[o].y].opacity&&(e[1]=!0),t[o].y>0&&0==e[2]&&250==this.mapBlocksWall[t[o].x][t[o].y-1].opacity&&(e[2]=!0),0==e[3]&&250==this.mapBlocksWall[t[o].x][t[o].y+1].opacity&&(e[3]=!0);return e},e.prototype.checkLeft=function(){return!1},e.prototype.checkRight=function(t){for(var e=0;e0)for(var o=0;o0)for(o=0;o156){if(cc.fx.GameConfig.GM_INFO.level=156,o._instance=null,3==this.new_mode)return this.node.parent.parent.getChildByName("Win").active=!1,this.openNewMode(2),void cc.fx.GameConfig.LEVEL_INFO_init(!1,0);cc.fx.AudioManager._instance.playEffect("zhuan1",null),this.node.parent.parent.parent.getChildByName("zhuanchang").active=!0,this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",!1),cc.director.preloadScene("HomeScene",function(t){t&&console.error("\u52a8\u6001\u52a0\u8f7d Prefab \u5931\u8d25:",t)}),setTimeout(function(){cc.director.loadScene("HomeScene")},1200)}else{if(o._instance=null,3==this.new_mode)return this.node.parent.parent.getChildByName("Win").active=!1,this.openNewMode(2),void cc.fx.GameConfig.LEVEL_INFO_init(!1,0);cc.fx.AudioManager._instance.playEffect("zhuan1",null),this.node.parent.parent.parent.getChildByName("zhuanchang").active=!0,this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",!1),setTimeout(function(){cc.fx.GameConfig.LEVEL_INFO_init(!0,0)},1200)}},e.prototype.againLevel=function(){cc.fx.AudioManager._instance.playEffect("anniu_Big",null),cc.fx.GameConfig.GM_INFO.hp<1?s.MiniGameSdk.API.showToast("\u4f53\u529b\u503c\u4e0d\u8db3"):this.againCanTouch&&(this.againCanTouch=!1,o._instance=null,cc.fx.AudioManager._instance.playEffect("zhuan1",null),this.node.parent.parent.parent.getChildByName("zhuanchang").active=!0,this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",!1),setTimeout(function(){cc.fx.GameConfig.LEVEL_INFO_init(!0,0)},1200))},e.prototype.reviewLevel=function(){cc.fx.AudioManager._instance.playEffect("anniu_Big",null);var t=900;1==cc.fx.GameConfig.GM_INFO.review?t=1900:2==cc.fx.GameConfig.GM_INFO.review&&(t=2500),cc.fx.GameConfig.GM_INFO.coin1){(n=cc.fx.GameTool.shuffleArray(n))[0].getComponent("Block").eliminate();var a=0;return 1!=n[0].getComponent("Block").type&&9!=n[0].getComponent("Block").type||(a=200),a>0?void setTimeout(function(){n[1].getComponent("Block").eliminate()},a):void n[1].getComponent("Block").eliminate()}if(1==n.length)n[0].getComponent("Block").eliminate(),a=0,1!=n[0].getComponent("Block").type&&9!=n[0].getComponent("Block").type||(a=200),setTimeout(function(){if(0==t.freezeArray.length&&0==t.loackArray.length);else{if(0!=t.loackArray.length)return void t.loackArray[0].getComponent("Block").eliminate();if(0!=t.freezeArray.length)return void t.freezeArray[0].getComponent("Block").eliminate()}},200+a);else{var r=2;if(0!=this.loackArray.length)for(c=0;c13&&(this.node.scale=1),cc.fx.GameConfig.GM_INFO.scale=this.node.scale},e.prototype.createParticle=function(t,e){var i=cc.instantiate(o._instance.Block_Prop[9]);i.parent=this.node,i.zIndex=1e3;var n=Math.floor(t.width/120),c=Math.floor(t.height/120),a="";if(0==e||1==e){var r=t.y+t.height,s=t.x-t.width/2;a="top_"+n+"_"+c,1==e&&(a="bot_"+n+"_"+c,r=t.y),.5==t.anchorX?s=t.x:.33==t.anchorX?s=t.x+t.width*(.5-.33):.66==t.anchorX&&(s=t.x+t.width*(.5-.66)),i.setPosition(s,r)}else 2!=e&&3!=e||(a="left_"+c+"_"+n,s=t.x-t.width,r=t.y+t.height/2,.5==t.anchorX?s=t.x-t.width/2:.33==t.anchorX?s=t.x-.33*t.width:.66==t.anchorX&&(s=t.x+.66*t.width),3==e&&(a="right_"+c+"_"+n,s=t.x,.5==t.anchorX?s=t.x+t.width/2:.33==t.anchorX?s=t.x+.66*t.width:.66==t.anchorX&&(s=t.x+.33*t.width)),i.setPosition(s,r));var l=i.getChildByName(a),h=t.getComponent("Block").color-1;l.getComponent(cc.ParticleSystem).spriteFrame=i.getComponent("Reduce").Block_Color[h],l.active=!0,setTimeout(function(){cc.tween(i).to(2,{opacity:0}).call(function(){i.destroy()}).start()},1200)},e.prototype.removeOneBlock=function(){for(var t=0;t=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.MiniGameManager=void 0;var a,r=t("./MiniGameSdk"),s=cc._decorator,l=s.ccclass,h=s.property;(function(t){t.CUMSTOM_01="adunit-f7c2417eb2c2e473"})(a||(a={}));var p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.entranceView=null,e}var o;return n(e,t),o=e,Object.defineProperty(e,"instance",{get:function(){return o._instance||(o._instance=new o),o._instance},enumerable:!1,configurable:!0}),e.prototype.start=function(){this.onGetLoginCode(),r.MiniGameSdk.isBytedance()&&r.MiniGameSdk.BytedanceSidebar.checkSideBar(function(){}),r.MiniGameSdk.BytedanceSidebar.listenFromSidebar(function(t){t&&r.MiniGameSdk.API.showToast("\u4fa7\u8fb9\u680f\u5956\u52b1",5)})},e.prototype.update=function(){},e.prototype.onShowBanner=function(){r.MiniGameSdk.AdvertManager.instance.loadBanner("adunit-4e7ef467e3eaab51"),r.MiniGameSdk.AdvertManager.instance.showBanner()},e.prototype.onHideBanner=function(){r.MiniGameSdk.AdvertManager.instance.hideBanner()},e.prototype.onShowInterstitial=function(){r.MiniGameSdk.AdvertManager.instance.showInterstitial("adunit-eadd67851d3050ad")},e.prototype.onShowCustom=function(){r.MiniGameSdk.AdvertManager.instance.loadCustom(a.CUMSTOM_01),r.MiniGameSdk.AdvertManager.instance.showCustom(a.CUMSTOM_01)},e.prototype.onHideCustom=function(){r.MiniGameSdk.AdvertManager.instance.hideCustom(a.CUMSTOM_01)},e.prototype.onShowVideo=function(){r.MiniGameSdk.AdvertManager.instance.showVideo("1re3nfqkmy81m4m8ge",function(t,e){switch(console.log("\u7528\u6237\u770b\u7684\u89c6\u9891\u5e7f\u544a\u4e2a\u6570\u662f:",e),t){case r.MiniGameSdk.EAdVideoResult.ACCEPT:r.MiniGameSdk.API.showToast("\u7528\u6237\u770b\u5b8c\u5e7f\u544a\uff0c\u53ef\u4ee5\u5956\u52b1");break;case r.MiniGameSdk.EAdVideoResult.REJECT:r.MiniGameSdk.API.showToast("\u7528\u6237\u62d2\u7edd\u6389\u5e7f\u544a\uff0c\u4e0d\u5956\u52b1");break;case r.MiniGameSdk.EAdVideoResult.ERROR:r.MiniGameSdk.API.showToast("\u64ad\u653e\u5e7f\u544a\u53d1\u751f\u9519\u8bef\uff0c\u4e0d\u5956\u52b1")}})},e.prototype.onShare=function(){r.MiniGameSdk.API.shareAppToFriends("\u6765\u73a9\u6e38\u620f\u5427")},e.prototype.onShowToast=function(){r.MiniGameSdk.API.showToast("\u8fd9\u662f\u4e00\u4e2atoast")},e.prototype.onVirbrate=function(){r.MiniGameSdk.API.vibrate()},e.prototype.onReboot=function(){r.MiniGameSdk.API.reboot()},e.prototype.onExit=function(){r.MiniGameSdk.API.exit()},e.prototype.onShowShareMenu=function(){r.MiniGameSdk.API.showShareMenu()},e.prototype.onNavigate=function(){r.MiniGameSdk.API.navigateTo("xxx")},e.prototype.onBytedanceEntranceView=function(){},e.prototype.onGetLoginCode=function(){r.MiniGameSdk.API.login(function(t){console.log("Wechat Or Bytedance Code:",t)})},e.prototype.onCreateClub=function(){r.MiniGameSdk.GameClub.instance.create(r.MiniGameSdk.EGameClubIcon.GREEN,{top:200,left:0},{width:50,height:50}),r.MiniGameSdk.GameClub.instance.show()},c([h(cc.Node)],e.prototype,"entranceView",void 0),o=c([l],e)}(cc.Component);o.MiniGameManager=p,cc._RF.pop()},{"./MiniGameSdk":"MiniGameSdk"}],MiniGameSdk:[function(t,e,o){"use strict";cc._RF.push(e,"c1af9nd7gNA95YJ04h9DdNX","MiniGameSdk"),Object.defineProperty(o,"__esModule",{value:!0}),o.MiniGameSdk=void 0,function(t){function e(){return null!==window.wx&&void 0!==window.wx}function o(){return null!==window.tt&&void 0!==window.tt}function i(){var t;e()?t=wx.getSystemInfoSync():o()&&(t=tt.getSystemInfoSync());var i={width:0,height:0};return t&&(i.width=t.windowWidth,i.height=t.windowHeight),i}t.isWechat=e,t.isBytedance=o;var n,c=function(){function t(t){this._adUid=t}return Object.defineProperty(t.prototype,"aduid",{get:function(){return this._adUid},enumerable:!1,configurable:!0}),t.prototype.show=function(){var t,i,n=this;return e()&&!wx.createInterstitialAd?(console.warn("wechat unsupport interstitial AD!"),void(this._interstitial=null)):o()&&!tt.createInterstitialAd?(console.warn("bytedance unsupport interstitial AD!"),void(this._interstitial=null)):void(this._interstitial?this._interstitial.load():(e()?this._interstitial=wx.createInterstitialAd({adUnitId:this._adUid}):o()?this._interstitial=tt.createInterstitialAd({adUnitId:this._adUid}):this._interstitial=null,null===(t=this._interstitial)||void 0===t||t.onLoad(function(){console.log("load interstitial ad success"),n._interstitial.show().catch(function(t){console.log("catch interstitial ad error:",t)})}),null===(i=this._interstitial)||void 0===i||i.onError(function(t){console.log("interstitial ad on error:",t)})))},t.prototype.destory=function(){var t;null===(t=this._interstitial)||void 0===t||t.destroy()},t}(),a=function(){function t(t,e,o,i){void 0===o&&(o=300),void 0===i&&(i=!1),this._adUid=t,this.create(i,o,e)}return Object.defineProperty(t.prototype,"aduid",{get:function(){return this._adUid},enumerable:!1,configurable:!0}),t.prototype.create=function(t,n,c){var a,r,s=this;if(e()||o()){this.destroy();var l=i(),h=.4*n,p=0,u=0;"boolean"==typeof c?(u=(l.width-n)/2,p=c?5:l.height-h):(u=c.left,p=c.top);var d={adUnitId:this._adUid,adIntervals:30,style:{left:u,top:p,width:n}};e()?this._banner=wx.createBannerAd(d):o()?this._banner=tt.createBannerAd(d):this._banner=null,null===(a=this._banner)||void 0===a||a.onError(function(t){console.log("ad banner error:",t)}),null===(r=this._banner)||void 0===r||r.onLoad(function(){t&&s._banner.show()})}else this._banner=null},t.prototype.show=function(){var t;null===(t=this._banner)||void 0===t||t.show()},t.prototype.hide=function(){var t;null===(t=this._banner)||void 0===t||t.hide()},t.prototype.destroy=function(){var t;null===(t=this._banner)||void 0===t||t.destroy()},t}(),r=function(){function t(t,e,o,i){void 0===e&&(e=0),void 0===o&&(o=0),void 0===i&&(i=1),this._adUid=t,this.createCustomAd(e,o,i)}return Object.defineProperty(t.prototype,"aduid",{get:function(){return this._adUid},enumerable:!1,configurable:!0}),t.prototype.createCustomAd=function(t,o){var i;if(!e())return this._adCustom=null,void console.log("Only wechat support Custom Ad");this.destroy(),this._adCustom=wx.createCustomAd({adUnitId:this._adUid,style:{left:o,top:t,fixed:!0}}),null===(i=this._adCustom)||void 0===i||i.onError(function(t){console.log("ad custom error:",t)})},t.prototype.show=function(){var t;null===(t=this._adCustom)||void 0===t||t.show()},t.prototype.hide=function(){var t;null===(t=this._adCustom)||void 0===t||t.hide()},t.prototype.destroy=function(){var t;null===(t=this._adCustom)||void 0===t||t.destroy()},t}();(function(t){t[t.ACCEPT=0]="ACCEPT",t[t.REJECT=1]="REJECT",t[t.ERROR=2]="ERROR"})(n=t.EAdVideoResult||(t.EAdVideoResult={}));var s,l=function(){function t(t){this._adVideo=null,this._adUid=t}return Object.defineProperty(t.prototype,"aduid",{get:function(){return this._adUid},enumerable:!1,configurable:!0}),t.prototype.show=function(t,i,c){var a,r,s,l,h,p=this;void 0===c&&(c=3);var u=function(e,o){null==t||t.call(i,e,o)};if(!e()&&!o())return u(n.ACCEPT,1),void(this._adVideo=null);var d=function(t){var i;if(null===(i=p._adVideo)||void 0===i||i.offClose(d),e())t&&t.isEnded||void 0===t?u(n.ACCEPT,1):u(n.REJECT,0);else if(o()){var c=t;c&&c.count>0?u(n.ACCEPT,c.count):u(n.REJECT,0)}};null===(a=this._adVideo)||void 0===a||a.offClose(d),e()?this._adVideo=wx.createRewardedVideoAd({adUnitId:this._adUid}):o()?this._adVideo=tt.createRewardedVideoAd({adUnitId:this._adUid,multiton:!0,multitonRewardMsg:["\u591a1\u6b21\u5956\u52b1","\u518d\u591a\u4e00\u6b21\u5956\u52b1","\u518d\u591a\u4e00\u6b21\u5956\u52b1"],multitonRewardTimes:c}):this._adVideo=null,null===(r=this._adVideo)||void 0===r||r.onLoad(function(){console.log("Ad load success")}),null===(s=this._adVideo)||void 0===s||s.onError(function(t){console.log("Ad video error:",t),u(n.ERROR,0)}),null===(l=this._adVideo)||void 0===l||l.onClose(d),null===(h=this._adVideo)||void 0===h||h.show().catch(function(){var t;null===(t=p._adVideo)||void 0===t||t.load().then(function(){var t;return null===(t=p._adVideo)||void 0===t?void 0:t.show()}).catch(function(t){console.log("Catch video ad error:",t),u(n.ERROR,0)})})},t.prototype.destory=function(){var t;null===(t=this._adVideo)||void 0===t||t.destory()},t}();(function(t){t[t.TOP=0]="TOP",t[t.BOTTOM=1]="BOTTOM"})(s=t.EAdBannerLocation||(t.EAdBannerLocation={}));var h,p=function(){function t(){this._customs={}}return Object.defineProperty(t,"instance",{get:function(){return t._instance||(t._instance=new t),t._instance},enumerable:!1,configurable:!0}),t.prototype.loadBanner=function(t,e,o){var n;void 0===e&&(e=s.TOP),void 0===o&&(o=1),null===(n=this._banner)||void 0===n||n.destroy();var c=i(),r=c.width*o;r=(r=r<300?300:r)>c.width?c.width:r,this._banner=new a(t,"number"==typeof e?e===s.TOP:e,r,!1)},t.prototype.showBanner=function(){this._banner?this._banner.show():console.warn("MiniGameSDK: banner is null, you must call loadBanner(...) first!")},t.prototype.hideBanner=function(){var t;null===(t=this._banner)||void 0===t||t.hide()},t.prototype.showInterstitial=function(t){var e;this._interstitial&&this._interstitial.aduid===t?this._interstitial.show():(null===(e=this._interstitial)||void 0===e||e.destory(),this._interstitial=new c(t),this._interstitial.show())},t.prototype.loadCustom=function(t,e,o){void 0===e&&(e={top:0,left:0}),void 0===o&&(o=1),this._customs[t]?console.log(t+" has been loaded."):this._customs[t]=new r(t,e.top,e.left,o)},t.prototype.showCustom=function(t){this._customs[t]?this._customs[t].show():console.warn("You have not load "+t+" of Custom AD, can not show!")},t.prototype.hideCustom=function(t){this._customs[t]?this._customs[t].hide():console.warn("You have not load "+t+" of Custom AD, can not hide!")},t.prototype.showVideo=function(t,e,o,i){var n;void 0===i&&(i=3),this._video&&this._video.aduid===t?this._video.show(e,o,i):(null===(n=this._video)||void 0===n||n.destory(),this._video=new l(t),this._video.show(e,o,i))},t.prototype.destroyAll=function(){var t,e,o,i;if(null===(t=this._banner)||void 0===t||t.destroy(),this._banner=null,null===(e=this._interstitial)||void 0===e||e.destory(),this._interstitial=null,null===(o=this._video)||void 0===o||o.destory(),this._video=null,this._customs){for(var n in this._customs)null===(i=this._customs[n])||void 0===i||i.destroy();this._customs={}}},t}();t.AdvertManager=p,function(t){t.GREEN="green",t.WHITE="white",t.DARK="dark",t.LIGHT="light"}(h=t.EGameClubIcon||(t.EGameClubIcon={}));var u,d=function(){function t(){}return Object.defineProperty(t,"instance",{get:function(){return this._instance||(this._instance=new t),this._instance},enumerable:!1,configurable:!0}),t.prototype.create=function(t,o,i,n){void 0===t&&(t=h.GREEN),void 0===o&&(o={top:0,left:0}),void 0===i&&(i={width:40,height:40}),e()&&(this._club=wx.createGameClubButton({icon:t,style:{left:o.left,top:o.top,width:i.width,height:i.height},openlink:n}))},t.prototype.show=function(){var t;null===(t=this._club)||void 0===t||t.show()},t.prototype.hide=function(){var t;null===(t=this._club)||void 0===t||t.hide()},t.prototype.destory=function(){var t;null===(t=this._club)||void 0===t||t.destroy()},t}();t.GameClub=d,function(t){t[t.SHORT=0]="SHORT",t[t.LONG=1]="LONG"}(u=t.EVirbrateType||(t.EVirbrateType={}));var f=function(){function t(){}return t.listenFromSidebar=function(t,e){if(o()){tt.onShow(function(o){console.log("onShow launch res:",o),"021036"===o.scene?(null==t||t.call(e,!0),console.log("launch from sidebar")):(null==t||t.call(e,!1),console.log("NOT launch from douyin sidebar!"))});var i=tt.getLaunchOptionsSync();i&&"021036"===i.scene&&(null==t||t.call(e,!0))}else null==t||t.call(e,!1)},t.checkSideBar=function(t,e){o()?tt.checkScene({scene:"sidebar",success:function(o){console.log("check scene success: ",o.isExist),null==t||t.call(e,o.isExist)},fail:function(o){console.log("check scene fail:",o),null==t||t.call(e,!1)}}):null==t||t.call(e,!1)},t.navigateToSidebar=function(t,e){if(!o())return console.log("not douyin platform!"),void(null==t||t.call(e,!1));tt.navigateToScene({scene:"sidebar",success:function(){console.log("navigate success"),null==t||t.call(e,!0)},fail:function(o){console.log("navigate failed reason:",o),null==t||t.call(e,!1)}})},t}();t.BytedanceSidebar=f;var m=function(){function t(){}return t.shareAppToFriends=function(t,i,n,c,a){if(void 0===i&&(i=""),e())try{wx.shareAppMessage({title:t,imageUrl:n,query:c})}catch(r){console.log("share faild: "+r)}o()&&tt.shareAppMessage({title:t,desc:i,imageUrl:null!=n?n:"",query:null!=c?c:"",success:function(t){console.log("share success:",t),null==a||a()},fail:function(t){console.log("share fail:",t)}})},t.showToast=function(t,o){void 0===o&&(o=2),e()&&wx.showToast({title:t,icon:"none",duration:500*o})},t.vibrate=function(t){if(void 0===t&&(t=u.SHORT),e())switch(t){case u.SHORT:wx.vibrateShort({success:function(t){console.log("vibrate success:",t)},fail:function(t){console.log("vibrateShort failed",t)}});break;case u.LONG:wx.vibrateLong({success:function(t){console.log("vibrate success",t)},fail:function(t){console.log("vibrateLong failed",t)}})}if(o())switch(t){case u.SHORT:tt.vibrateShort({success:function(t){console.log("vibrate success:",t)},fail:function(t){console.log("vibrateShort failed",t)}});break;case u.LONG:tt.vibrateLong({success:function(t){console.log("vibrate success",t)},fail:function(t){console.log("vibrateLong failed",t)}})}},t.reboot=function(){if(e()&&wx.restartMiniProgram({success:function(){console.log("restart success")},fail:function(){console.log("restart failed")}}),o())try{tt.restartMiniProgramSync()}catch(t){console.log("restartMiniProgramSync",t)}},t.exit=function(){e()&&wx.exitMiniProgram({success:function(){console.log("exit success")},fail:function(){console.log("exit failed")}}),o()&&tt.exitMiniProgram({success:function(t){console.log("exit success:",null==t?void 0:t.data)},fail:function(t){console.log("exit fail:",null==t?void 0:t.errMsg)}})},t.showShareMenu=function(){e()&&wx.showShareMenu({withShareTicket:!0,menus:["shareAppMessage","shareTimeline"],success:function(){},fail:function(){},complete:function(){}})},t.navigateTo=function(t,i){e()&&wx.navigateToMiniProgram({appId:t,extraData:{foo:"bar"},envVersion:"develop",success:function(){null==i||i()}}),o()&&tt.navigateToVideoView({videoId:t,success:function(){null==i||i()},fail:function(t){console.log("bytedance navigateToVideoView fail",t)}})},t.login=function(i){var n=function(){e()?wx.login({success:function(e){e.code?(t._loginCode=e.code,t._loginAnonymousCode=null,null==i||i(t._loginCode,t._loginAnonymousCode)):console.log("login error:",e.errMsg)},fail:function(){t._loginCode=null,t._loginAnonymousCode=null,null==i||i(t._loginCode,t._loginAnonymousCode),console.log("login fail")}}):o()?tt.login({force:!0,success:function(e){var o,n;console.log("login "+e.code+" "+e.anonymousCode),e.code?(t._loginCode=null===(o=e.code)||void 0===o?void 0:o.toString(),t._loginAnonymousCode=null===(n=e.anonymousCode)||void 0===n?void 0:n.toString(),null==i||i(t._loginCode,t._loginAnonymousCode)):console.log("login error:",e.errMsg)},fail:function(e){t._loginCode=null,t._loginAnonymousCode=null,null==i||i(t._loginCode,t._loginAnonymousCode),console.log("login fail",e)}}):(t._loginCode=null,t._loginAnonymousCode=null,null==i||i(t._loginCode,t._loginAnonymousCode),console.log("not mini game platform, login codes are all null"))};t._loginCode?e()?wx.checkSession({success:function(){console.log("session is valid, use current code:",t._loginCode),null==i||i(t._loginCode,t._loginAnonymousCode)},fail:function(){console.log("session expired"),n()}}):o()?tt.checkSession({success:function(){console.log("session is valid, user current code: "+t._loginCode+", "+t._loginAnonymousCode),null==i||i(t._loginCode,t._loginAnonymousCode)},fail:function(){console.log("session expired"),n()}}):(console.log("not mini game platform, login null"),null==i||i(null,null)):n()},t.getUserInfo=function(e){tt.getUserInfo({withCredentials:!0,success:function(o){t._userInfo=o,e(t._userInfo)},fail:function(t){e(t)}})},t.callWechatCloudFunction=function(o,i,n){e()?this.login(function(){t._hasInitWechatCloudFunction||(wx.cloud.init(),t._hasInitWechatCloudFunction=!0),wx.cloud.callFunction({name:i,data:n,success:function(t){return null==o?void 0:o(t)},fail:function(t){console.log("wechat cloud function error:",t),null==o||o(null)}})}):console.log("Not wechat platform, not support callWechatCloudFunction")},t.setUserCloudStorage=function(t,i){e()&&wx.setUserCloudStorage({KVDataList:[{key:t,value:i}],success:function(){return console.log("set cloud storage success:"+t+", value:"+i)},fail:function(t){return console.log("set cloud storage error:",t)}}),o()&&tt.setUserCloudStorage({KVDataList:[{key:t,value:i}],success:function(){return console.log("set cloud storage success:"+t+", value:"+i)},fail:function(t){return console.log("set cloud storage error:",t)}})},t.shushu_Init=function(){if("undefined"!=typeof wx&&null!==wx){console.log("\u5f00\u59cb\u63a5\u5165\u6570\u6570\u5e73\u53f0");var e="121591378fc1423893deb12041413eb3";"\u6b63\u5f0f\u7248"==cc.fx.GameTool.getWechatGameVersion()&&(e="87d18958cea145f29d3265470ecd3486");var o={appId:e,serverUrl:"https://data.nika4fun.com",autoTrack:{appShow:!0,appHide:!0}};t._ta=new ThinkingAnalyticsAPI(o),t._ta.login(cc.fx.GameConfig.GM_INFO.openid),t.shushu_Track("login","success"),t._ta.init(),t.shushu_SetSuperProperties()}},t.shushu_userSet=function(e){"undefined"!=typeof wx&&null!==wx&&(console.log("\u8bbe\u7f6e\u7528\u6237\u6ce8\u518c\u5c5e\u6027"),t._ta.userSet({register_time:e}))},t.shushu_SetSuperProperties=function(){if("undefined"!=typeof wx&&null!==wx&&t._ta){var e={current_level:cc.fx.GameConfig.GM_INFO.level+1,current_health:cc.fx.GameConfig.GM_INFO.hp,tmp_coin:cc.fx.GameConfig.GM_INFO.coin,version:"1.3"};t._ta.setSuperProperties(e)}},t.getWechatGameVersion=function(){if("undefined"!=typeof wx&&null!==wx)return wx.getAccountInfoSync().miniProgram.version},t.shushu_Track=function(e,o){"undefined"!=typeof wx&&null!==wx&&t._ta&&t._ta.track(e,o)},t._loginCode=null,t._loginAnonymousCode=null,t._hasInitWechatCloudFunction=!1,t._userInfo=null,t._ta=null,t}();t.API=m}(o.MiniGameSdk||(o.MiniGameSdk={})),cc._RF.pop()},{}],NewMode:[function(t,e,o){"use strict";cc._RF.push(e,"7fe14dRFQZKSKKAoEn4S7OU","NewMode");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.label=null,e.text="hello",e.btnStatic=0,e.propName="",e}return n(e,t),e.prototype.start=function(){for(var t=this,e=0;e=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.fontUI=null,e}var o;return n(e,t),o=e,e.prototype.onLoad=function(){null!=this.fontUI&&(o.font=this.fontUI)},e.numberToImageNodes=function(t,e,o,i,n,c){void 0===c&&(c=!1);var a=t.toString(),r=0;t>99?r=-o:t<10&&(r=o),n.children.length>0&&n.removeAllChildren();for(var s=0;s0)for(u=0;u1&&(f.x+=35),f.parent=i}},e.font=null,c([s(cc.SpriteAtlas)],e.prototype,"fontUI",void 0),o=c([r],e)}(cc.Component);o.default=l,cc._RF.pop()},{}],Pause:[function(t,e,o){"use strict";cc._RF.push(e,"aca4aut33NCvIC0yg3JmY0h","Pause");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=0,e.music=null,e.effect=null,e.vibrate=null,e.open=null,e.close=null,e.musicState=!0,e.effectState=!0,e.vibrateState=!0,e}return n(e,t),e.prototype.onLoad=function(){cc.fx.GameConfig.GM_INFO.musicOpen?(this.music.getComponent(cc.Sprite).spriteFrame=this.open,this.music.x=278):(this.music.getComponent(cc.Sprite).spriteFrame=this.close,this.music.x=161),cc.fx.GameConfig.GM_INFO.effectOpen?(this.effect.getComponent(cc.Sprite).spriteFrame=this.open,this.effect.x=278):(this.effect.getComponent(cc.Sprite).spriteFrame=this.close,this.effect.x=161),cc.fx.GameConfig.GM_INFO.vibrateOpen?(this.vibrate.getComponent(cc.Sprite).spriteFrame=this.open,this.vibrate.x=278):(this.vibrate.getComponent(cc.Sprite).spriteFrame=this.close,this.vibrate.x=161),this.musicState=cc.fx.GameConfig.GM_INFO.musicOpen,this.effectState=cc.fx.GameConfig.GM_INFO.effectOpen,this.vibrateState=cc.fx.GameConfig.GM_INFO.vibrateOpen},e.prototype.start=function(){},e.prototype.init=function(){},e.prototype.clickMusic=function(){var t=this;this.musicState?(this.musicState=!1,cc.fx.GameConfig.GM_INFO.musicOpen=this.musicState,this.setMusicConfig(),this.music.runAction(cc.sequence(cc.spawn(cc.moveTo(.05,cc.v2(161,this.music.y)),cc.fadeOut(.05)),cc.callFunc(function(){t.music.getComponent(cc.Sprite).spriteFrame=t.close}),cc.fadeIn(.1))),cc.fx.AudioManager._instance.stopMusic()):(this.musicState=!0,cc.fx.GameConfig.GM_INFO.musicOpen=this.musicState,this.setMusicConfig(),this.music.runAction(cc.sequence(cc.spawn(cc.moveTo(.05,cc.v2(278,this.music.y)),cc.fadeOut(.05)),cc.callFunc(function(){t.music.getComponent(cc.Sprite).spriteFrame=t.open}),cc.fadeIn(.1))),cc.fx.AudioManager._instance.playMusicGame())},e.prototype.setMusicConfig=function(){var t={musicOpen:cc.fx.GameConfig.GM_INFO.musicOpen,effectOpen:cc.fx.GameConfig.GM_INFO.effectOpen,vibrateOpen:cc.fx.GameConfig.GM_INFO.vibrateOpen};cc.fx.StorageMessage.setStorage("music",t)},e.prototype.clickEffect=function(){var t=this;this.effectState?(this.effectState=!1,cc.fx.GameConfig.GM_INFO.effectOpen=this.effectState,this.setMusicConfig(),this.effect.runAction(cc.sequence(cc.spawn(cc.moveTo(.05,cc.v2(161,this.effect.y)),cc.fadeOut(.05)),cc.callFunc(function(){t.effect.getComponent(cc.Sprite).spriteFrame=t.close}),cc.fadeIn(.1)))):(this.effectState=!0,cc.fx.GameConfig.GM_INFO.effectOpen=this.effectState,this.setMusicConfig(),this.effect.runAction(cc.sequence(cc.spawn(cc.moveTo(.05,cc.v2(278,this.effect.y)),cc.fadeOut(.05)),cc.callFunc(function(){t.effect.getComponent(cc.Sprite).spriteFrame=t.open}),cc.fadeIn(.1))))},e.prototype.clickVibrate=function(){var t=this;this.vibrateState?(this.vibrateState=!1,cc.fx.GameConfig.GM_INFO.vibrateOpen=this.vibrateState,this.setMusicConfig(),this.vibrate.runAction(cc.sequence(cc.spawn(cc.moveTo(.05,cc.v2(161,this.vibrate.y)),cc.fadeOut(.05)),cc.callFunc(function(){t.vibrate.getComponent(cc.Sprite).spriteFrame=t.close}),cc.fadeIn(.1)))):(this.vibrateState=!0,cc.fx.GameConfig.GM_INFO.vibrateOpen=this.vibrateState,this.setMusicConfig(),this.vibrate.runAction(cc.sequence(cc.spawn(cc.moveTo(.05,cc.v2(278,this.vibrate.y)),cc.fadeOut(.05)),cc.callFunc(function(){t.vibrate.getComponent(cc.Sprite).spriteFrame=t.open}),cc.fadeIn(.1))))},c([s(cc.Node)],e.prototype,"music",void 0),c([s(cc.Node)],e.prototype,"effect",void 0),c([s(cc.Node)],e.prototype,"vibrate",void 0),c([s(cc.SpriteFrame)],e.prototype,"open",void 0),c([s(cc.SpriteFrame)],e.prototype,"close",void 0),c([r],e)}(cc.Component);o.default=l,cc._RF.pop()},{}],RankManager:[function(t,e,o){"use strict";cc._RF.push(e,"e74a999IDFOabyymZgXQIiy","RankManager");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("./module/RankList/List"),r=cc._decorator,s=r.ccclass,l=r.property,h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.Player=null,e.selfNode=null,e.phone=null,e}return n(e,t),e.prototype.onLoad=function(){this.init()},e.prototype.init=function(){this.rankList=cc.find("ScrollView",this.node).getComponent(a.default),this.Player.getChildByName("rank").active=!1,this.listData=[],this.selfData=null,this.rankNumber=100,this.rankTotal=100,this.selfNode.opacity=0},e.prototype.start=function(){this.Player.active=!1,this.getRank()},e.prototype.getRank=function(){var t=this;cc.fx.GameTool.getRank({length:100},function(e){return t.getRankData(e)})},e.prototype.getRankData=function(t){t&&(cc.fx.GameTool.getRankData(t,this,6),this.setPic(this.selfData.pic))},e.prototype.backClick=function(){cc.director.loadScene("LoadScene")},e.prototype.playerAction=function(){var t=this;this.Player.getChildByName("rank").active=!1;var e=1;if(this.tween=cc.tween(this.Player).to(2,{position:cc.v3(215,525,0)}).call(function(){t.Player.getChildByName("rank").active=!0,t.Player.getChildByName("rank").getChildByName("number").getComponent(cc.Label).string=parseInt(100*e+"")+"%"}).start(),e=(this.listData.length-this.rankNumber)/this.listData.length,this.listData.length>=99&&this.rankNumber>=99){e=(49*Math.random()+1)/100;var o=cc.sys.localStorage.getItem("matchNumber");null!=o&&null!=o||(e=0)}setTimeout(function(){t.tween&&t.tween.stop(),t.Player.getChildByName("rank").active=!0,t.Player.getChildByName("rank").getChildByName("number").getComponent(cc.Label).string=parseInt(100*e+"")+"%"},2e3*e)},e.prototype.setPic=function(t){var e=this;this.phone.node.parent.getChildByName("icon").active=!1,this.phone.node.active=!1,this.Player.active=!0,this.Player.opacity=0,this.Player.getChildByName("mask").getChildByName("icon").active=!1,this.Player.getChildByName("mask").getChildByName("phone").active=!1,fetch(t).then(function(t){return t.headers.get("Content-Length")}).then(function(t){"5093"==t&&(e.phone.node.parent.getChildByName("icon").active=!0,e.Player.getChildByName("mask").getChildByName("icon").active=!0)}).catch(function(){});var o=this;cc.assetManager.loadRemote(t,{ext:".png"},function(t,e){o.Player.opacity=255,e?(o.phone.node.active=!0,o.phone.spriteFrame=new cc.SpriteFrame(e),o.Player.getChildByName("mask").getChildByName("icon").active=!1,o.Player.getChildByName("mask").getChildByName("phone").active=!0,o.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(e),setTimeout(function(){o.playerAction()},500)):(o.Player.getChildByName("mask").getChildByName("icon").active=!0,setTimeout(function(){o.playerAction()},500))})},c([l(cc.Node)],e.prototype,"Player",void 0),c([l(cc.Node)],e.prototype,"selfNode",void 0),c([l(cc.Sprite)],e.prototype,"phone",void 0),c([s],e)}(cc.Component);o.default=h,cc._RF.pop()},{"./module/RankList/List":"List"}],Reduce:[function(t,e,o){"use strict";cc._RF.push(e,"ca599IU5hFEYYrzoN59YOpT","Reduce");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.Block_Color=[],e.level=null,e}return n(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){},c([s({type:[cc.SpriteFrame],tooltip:"\u65b9\u5757\u989c\u8272\u56fe\u7247"})],e.prototype,"Block_Color",void 0),c([s(cc.Label)],e.prototype,"level",void 0),c([r],e)}(cc.Component);o.default=l,cc._RF.pop()},{}],SceneManager:[function(t,e,o){"use strict";cc._RF.push(e,"80998T1AYNNRZdRxsVvXR65","SceneManager");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("./Map"),r=t("./Sdk/MiniGameSdk"),s=cc._decorator,l=s.ccclass,h=s.property,p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.label=null,e.text="hello",e.freeze=null,e.hammer=null,e.magic_wand=null,e.pause=null,e.Block_Array=[],e.Wall_Prefab=[],e.load1=!1,e.load2=!1,e.load3=!1,e.btnName="",e}return n(e,t),e.prototype.onLoad=function(){cc.game.setFrameRate(63),this.changeBg(),setTimeout(function(){cc.director.preloadScene("HomeScene",function(){})},1e3)},e.prototype.changeBg=function(){var t=this,e="bg/bg"+(Math.floor(8*Math.random())+1);cc.resources.load(e,cc.SpriteFrame,function(e,o){e?console.error("\u52a8\u6001\u52a0\u8f7d\u80cc\u666f\u56fe\u5931\u8d25:",e):t.node.getChildByName("Game").getChildByName("bg").getComponent(cc.Sprite).spriteFrame=o})},e.prototype.loadParticleEffects=function(){var t=this;cc.resources.loadDir("Particle",cc.ParticleAsset,function(e,o){e?console.error("\u52a8\u6001\u52a0\u8f7d\u7c92\u5b50\u7279\u6548\u5931\u8d25:",e):(t.particleEffects=o,t.setParticleSort(),t.load3=!0)})},e.prototype.setWallPrefabSort=function(){var t=["down","downLeft","downRight","left","right","up","upLeft","upRight"];this.Wall_Prefab.sort(function(e,o){var i=t.indexOf(e.name),n=t.indexOf(o.name);return-1===i?1:-1===n?-1:i-n})},e.prototype.setParticleSort=function(){var t=["top","bot","rig","lef"];this.particleEffects.sort(function(e,o){var i=t.indexOf(e.name.substr(0,3)),n=t.indexOf(o.name.substr(0,3));return-1===i?1:-1===n?-1:i-n})},e.prototype.setSort=function(){this.Block_Array.sort(function(t,e){var o,i;return parseInt((null===(o=t.name.match(/\d+/))||void 0===o?void 0:o[0])||"0",10)-parseInt((null===(i=e.name.match(/\d+/))||void 0===i?void 0:i[0])||"0",10)})},e.prototype.start=function(){},e.prototype.startGame=function(){cc.director.loadScene("HomeScene",function(t){t?console.error("\u52a0\u8f7d HomeScene \u573a\u666f\u5931\u8d25:",t):cc.director.loadScene("HomeScene")})},e.prototype.returnHome=function(){if(this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl")._touch){if(1==a.default._instance.gameStart){r.MiniGameSdk.API.showToast("\u4f53\u529b\u503c\u51cf\u5c11"),cc.fx.GameTool.setUserHealth(-1,function(){});var t={time:a.default._instance.count_Time,add_Time:a.default._instance.add_Time,result:"give_up"};cc.fx.GameTool.shushu_Track("finish_stage",t)}this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl").setTouch(!1),cc.fx.AudioManager._instance.playEffect("zhuan1",null),this.node.getChildByName("zhuanchang").active=!0,this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",!1),cc.director.preloadScene("HomeScene",function(t){t&&console.error("\u52a8\u6001\u52a0\u8f7d Prefab \u5931\u8d25:",t)}),setTimeout(function(){cc.director.loadScene("HomeScene")},1200)}},e.prototype.destroyNodesInFrames=function(t,e){var o=this,i=0,n=function(){for(var c=0;i=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=t("../Map"),r=cc._decorator,s=r.ccclass,l=r.property,h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.time=60,e.star_SpriteFrame=null,e}return n(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){},e.prototype.init=function(t){t&&(this.time=t),this.node.getChildByName("time").active=!0,this.node.getChildByName("time").getComponent(cc.Label).string=this.time.toString(),this.schedule(this.updateTime,1)},e.prototype.updateTime=function(){this.time--,this.node.getChildByName("time").getComponent(cc.Label).string=this.time.toString(),this.time<=0&&(this.unschedule(this.updateTime),this.node.destroy(),a.default._instance.failLevel())},c([l(cc.SpriteAtlas)],e.prototype,"star_SpriteFrame",void 0),c([s],e)}(cc.Component);o.default=h,cc._RF.pop()},{"../Map":"Map"}],Storage:[function(t,e,o){"use strict";cc._RF.push(e,"1002938VFRJd70RiAno9Iys","Storage"),Object.defineProperty(o,"__esModule",{value:!0}),o.StorageMessage=void 0;var i={getStorage:function(t){var e=null;return cc.sys.localStorage.getItem(t)&&(e=cc.sys.localStorage.getItem(t)),e&&(e=JSON.parse(e)),e},setStorage:function(t,e){var o=JSON.stringify(e);cc.sys.localStorage.setItem(t,o)},removeStorage:function(t){cc.sys.localStorage.getItem(t)&&cc.sys.localStorage.removeItem(t)}};o.StorageMessage=i,cc._RF.pop()},{}],TmoAssembler:[function(t,e,o){"use strict";function i(t,e){for(var o=0;o>2,s=c._vData;i.length+r>s.length?s.set(i.subarray(0,s.length-r),r):s.set(i,r);for(var l=c._iData,h=a.indiceOffset,p=a.vertexOffset,u=0,d=n.length;u>>0];if(!L)continue;var R=L.tileset,z="img"+B.id;x[z]=!0;var D=this.node.getChildByName(z),E=B.width||L.width,j=B.height||L.height,W=R.tileOffset.x,H=R.tileOffset.y;D instanceof cc.PrivateNode&&(D.removeFromParent(),D.destroy(),D=null),D||(D=new cc.Node),r.ISO==e.orientation?(D.anchorX=.5+W/E,D.anchorY=H/j):(D.anchorX=W/E,D.anchorY=H/j),D.active=B.visible,D.angle=-B.rotation,D.x=B.x-y,D.y=B.y-v,D.name=z,D.parent=this.node,D.opacity=this._opacity,D.setSiblingIndex(k),D._tiledMap=n;var V=D.getComponent(i);V||(V=D.addComponent(i));var q=V.spriteFrame;q||(q=new cc.SpriteFrame),(P&p)>>>0?q.setFlipX(!0):q.setFlipX(!1),(P&u)>>>0?q.setFlipY(!0):q.setFlipY(!1);var X=L.tileset.sourceImage;q.setTexture(X,cc.rect(L)),V.spriteFrame=q,V.setVertsDirty(),D.width=E,D.height=j,b.has(X)||(b.set(X,w.length),w.push(X));var Q=b.get(X);V.setTextureIdx(Q+1)}}this._objects=C;for(var U=this.node.children,Y=/^(?:img|text)\d+$/,K=0,J=U.length;K>>0];if(s){var l=s.texId;if(void 0===i[l]&&(i[l]=o.length,o.push(l),c))break}else cc.error("CCTiledLayer:_traverseAllGrid grid is null, gid is:",r)}}}});o.default=a,e.exports=o.default,cc._RF.pop()},{}],TmoTiledMap:[function(t,e){"use strict";cc._RF.push(e,"0b9eetmSUdJRZCQS91TYCw/","TmoTiledMap");var o=t("./TmoTiledLayer"),i=t("./TmoObjectGroup");cc.Class({extends:cc.TiledMap,properties:{objectMaterial:cc.Material,noColor:!0,singleTexture:!0,_objectTextures:[]},_applyFile:function(){this.objectMaterial?this._super():cc.error("TiledmapOptimize: \u672a\u8bbe\u7f6eobjectMaterial!")},_buildLayerAndGroup:function(){var t=this._tilesets,e=this._texGrids,n=this._animations;e.length=0;for(var c=0,a=t.length;c0)for(var M=0,B=C.length;M=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.WallColor=o.WallType=o.WallSpecial=void 0;var a,r,s,l=t("./Map"),h=cc._decorator,p=h.ccclass,u=h.property;(function(t){t[t["\u666e\u901a\u95e8"]=0]="\u666e\u901a\u95e8",t[t["\u661f\u661f\u95e8"]=1]="\u661f\u661f\u95e8",t[t["\u5f00\u5173\u95e8"]=2]="\u5f00\u5173\u95e8",t[t["\u51bb\u7ed3\u95e8"]=3]="\u51bb\u7ed3\u95e8"})(a=o.WallSpecial||(o.WallSpecial={})),function(t){t[t["\u95e8\u6a2a\u5411\u4e0b"]=0]="\u95e8\u6a2a\u5411\u4e0b",t[t["\u95e8\u6a2a\u5411\u4e0a"]=1]="\u95e8\u6a2a\u5411\u4e0a",t[t["\u95e8\u7ad6\u5411\u53f3"]=2]="\u95e8\u7ad6\u5411\u53f3",t[t["\u95e8\u7ad6\u5411\u5de6"]=3]="\u95e8\u7ad6\u5411\u5de6",t[t["\u5899\u6a2a\u5411\u4e0b"]=4]="\u5899\u6a2a\u5411\u4e0b",t[t["\u5899\u6a2a\u5411\u4e0a"]=5]="\u5899\u6a2a\u5411\u4e0a",t[t["\u5899\u7ad6\u5411\u53f3"]=6]="\u5899\u7ad6\u5411\u53f3",t[t["\u5899\u7ad6\u5411\u5de6"]=7]="\u5899\u7ad6\u5411\u5de6"}(r=o.WallType||(o.WallType={})),function(t){t[t["\u7d2b\u8272"]=0]="\u7d2b\u8272",t[t["\u9ec4\u8272"]=1]="\u9ec4\u8272",t[t["\u7eff\u8272"]=2]="\u7eff\u8272",t[t["\u84dd\u8272"]=3]="\u84dd\u8272",t[t["\u7c89\u8272"]=4]="\u7c89\u8272",t[t["\u6a58\u9ec4\u8272"]=5]="\u6a58\u9ec4\u8272",t[t["\u9752\u8272"]=6]="\u9752\u8272",t[t["\u767d\u8272"]=7]="\u767d\u8272",t[t["\u7ea2\u8272"]=8]="\u7ea2\u8272",t[t["\u7070\u8272"]=9]="\u7070\u8272"}(s=o.WallColor||(o.WallColor={}));var d=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.number=null,e.type=r.\u5899\u6a2a\u5411\u4e0b,e.special=a.\u666e\u901a\u95e8,e.color=s.\u7d2b\u8272,e.wall_SpriteFrames=null,e.down_SpriteFrames=null,e}return n(e,t),e.prototype.start=function(){},e.prototype.jsonDeepClone=function(t){return JSON.parse(JSON.stringify(t))},e.prototype.init=function(t,e,o,i){this.wall_Info=this.jsonDeepClone(t),null==t&&(this.posX=e,this.posY=o,i&&(this.direction=i),this.node.parent.zIndex="up"==i?100+this.posX-3*this.posY:"down"==i||"right"==i||"rightdown"==i||"downright"==i||"rightup"==i||"upright"==i?30+this.posX-3*this.posY:70+this.posX-3*this.posY,l.default._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id="Wall"),null!=t&&(this.color=t.color,this.special=t.special,this.initType(),t.length>0?this.initColor(t.length):this.node.removeComponent("cc.Sprite"),null!=this.posX&&(l.default._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id="Wall"))},e.prototype.initColor=function(t){var e=this.node.parent.name,o=0;if("left"!=e&&"right"!=e||(o=3),this.wall_SpriteFrames){var i=this.color+"color"+(t+o),n=this.wall_SpriteFrames._spriteFrames[i];this.node.getComponent(cc.Sprite).spriteFrame=n}if(this.down_SpriteFrames){var c=this.color+"down"+(t+o),a=this.down_SpriteFrames._spriteFrames[c];this.node.parent.getChildByName("down").getComponent(cc.Sprite).spriteFrame=a}},e.prototype.initType=function(){switch(this.special){case a.\u661f\u661f\u95e8:var t=cc.instantiate(l.default._instance.Block_Prop[this.special]);t.parent=this.node.parent,this.wall_Info.length>0&&("right"==this.direction||"left"==this.direction?t.children[this.wall_Info.length+2].active=!0:"up"!=this.direction&&"down"!=this.direction||(t.children[this.wall_Info.length-1].active=!0)),t.setPosition(this.node.width/2+this.node.x,this.node.height/2+this.node.y);break;case a.\u5f00\u5173\u95e8:var e="open"+this.wall_Info.length;this.openNode=this.node.parent.getChildByName("open").getChildByName(e),this.openNode.active=!0,0==this.wall_Info.lock?(this.open=!0,this.openNode.children[0].scaleX*=.01,this.openNode.children[1].scaleX*=.01):this.open=!1;break;case a.\u51bb\u7ed3\u95e8:var o="freeze"+this.wall_Info.length;this.freezeNode=this.node.parent.getChildByName("freeze").getChildByName(o),this.freezeNode.active=!0,this.wall_Info.freeze&&(this.freezeNode.getChildByName("num").getComponent(cc.Label).string=this.wall_Info.freeze+"")}},e.prototype.playStarDoor=function(){if(this.node.parent.getChildByName("star"))for(var t=this.node.parent.getChildByName("star"),e=0;e=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=(a.property,function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onLoad=function(){this.can_Touch=!1},e.prototype.start=function(){},e.prototype.init=function(t){var e=this;this.can_Touch=!1,this.node.getChildByName("win").active=!1,this.node.getChildByName("lose").active=!1,this.node.getChildByName("finishi").active=!1,this.node.getChildByName(t.result).active=!0,"lose"==t.result&&this.setErrLabel(t.code);var o=this.node.getChildByName(t.result);if(o.getChildByName("btn").active=!1,o.opacity=0,o.scale=2,o.getChildByName("tip").opacity=0,"win"==t.result){var i=!1;2==cc.fx.GameConfig.GM_INFO.level&&(i=!0),o.getChildByName("yes").active=!i,o.getChildByName("start").active=i}cc.tween(o).delay(.1).to(.25,{opacity:255,scale:1}).delay(.3).call(function(){"lose"==o.name?cc.tween(o.getChildByName("tip")).to(.5,{opacity:255}).delay(.5).call(function(){e.can_Touch=!0,o.getChildByName("btn").active=!0}).start():(e.can_Touch=!0,o.getChildByName("btn").active=!0)}).start()},e.prototype.setErrLabel=function(t){this.node.getChildByName("lose").getChildByName("tip").getComponent(cc.Label).string=cc.fx.GameConfig.TIP_ERR[t]},e.prototype.click_Next=function(){var t=this;this.can_Touch&&(this.can_Touch=!1,cc.tween(this.node).to(.3,{opacity:0}).call(function(){t.node.active=!1,cc.director.loadScene("GameScene")}).start())},c([r],e)}(cc.Component));o.default=s,cc._RF.pop()},{}],btnControl:[function(t,e,o){"use strict";cc._RF.push(e,"6ee6czJ4eVNb4Feiqps5SIa","btnControl");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=(a.property,function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onLoad=function(){this._touch=!0},e.prototype.start=function(){},e.prototype.setTouch=function(t){this._touch=t},e.prototype.update=function(){},c([r],e)}(cc.Component));o.default=s,cc._RF.pop()},{}],"crypto-js.min":[function(t,e,o){"use strict";cc._RF.push(e,"e64e1qXyT9CV6s0gDQdj/ed","crypto-js.min"),function(t,i){"object"==typeof o?e.exports=o=i():"function"==typeof define&&define.amd?define([],i):(void 0).CryptoJS=i()}(0,function(){var t,e,o,i,n,c,a,r=r||function(t){var e=Object.create||function(){function t(){}return function(e){var o;return t.prototype=e,o=new t,t.prototype=null,o}}(),o={},i=o.lib={},n=i.Base={extend:function(t){var o=e(this);return t&&o.mixIn(t),o.hasOwnProperty("init")&&this.init!==o.init||(o.init=function(){o.$super.init.apply(this,arguments)}),o.init.prototype=o,o.$super=this,o},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},c=i.WordArray=n.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||r).stringify(this)},concat:function(t){var e=this.words,o=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var c=0;c>>2]>>>24-c%4*8&255;e[i+c>>>2]|=a<<24-(i+c)%4*8}else for(c=0;c>>2]=o[c>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,o=this.sigBytes;e[o>>>2]&=4294967295<<32-o%4*8,e.length=t.ceil(o/4)},clone:function(){var t=n.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var o,i=[],n=function(e){e=e;var o=987654321,i=4294967295;return function(){var n=((o=36969*(65535&o)+(o>>16)&i)<<16)+(e=18e3*(65535&e)+(e>>16)&i)&i;return n/=4294967296,(n+=.5)*(t.random()>.5?1:-1)}},a=0;a>>2]>>>24-n%4*8&255;i.push((c>>>4).toString(16)),i.push((15&c).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,o=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new c.init(o,e/2)}},s=a.Latin1={stringify:function(t){for(var e=t.words,o=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(c))}return i.join("")},parse:function(t){for(var e=t.length,o=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new c.init(o,e)}},l=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(s.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return s.parse(unescape(encodeURIComponent(t)))}},h=i.BufferedBlockAlgorithm=n.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=l.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var o=this._data,i=o.words,n=o.sigBytes,a=this.blockSize,r=n/(4*a),s=(r=e?t.ceil(r):t.max((0|r)-this._minBufferSize,0))*a,l=t.min(4*s,n);if(s){for(var h=0;h>>6-a%4*2;n[c>>>2]|=(r|s)<<24-c%4*8,c++}return o.create(n,c)}var e=r,o=e.lib.WordArray;e.enc.Base64={stringify:function(t){var e=t.words,o=t.sigBytes,i=this._map;t.clamp();for(var n=[],c=0;c>>2]>>>24-c%4*8&255)<<16|(e[c+1>>>2]>>>24-(c+1)%4*8&255)<<8|e[c+2>>>2]>>>24-(c+2)%4*8&255,r=0;r<4&&c+.75*r>>6*(3-r)&63));var s=i.charAt(64);if(s)for(;n.length%4;)n.push(s);return n.join("")},parse:function(e){var o=e.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var c=0;c>>32-c)+e}function o(t,e,o,i,n,c,a){var r=t+(e&i|o&~i)+n+a;return(r<>>32-c)+e}function i(t,e,o,i,n,c,a){var r=t+(e^o^i)+n+a;return(r<>>32-c)+e}function n(t,e,o,i,n,c,a){var r=t+(o^(e|~i))+n+a;return(r<>>32-c)+e}var c=r,a=c.lib,s=a.WordArray,l=a.Hasher,h=c.algo,p=[];!function(){for(var e=0;e<64;e++)p[e]=4294967296*t.abs(t.sin(e+1))|0}();var u=h.MD5=l.extend({_doReset:function(){this._hash=new s.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,c){for(var a=0;a<16;a++){var r=c+a,s=t[r];t[r]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}var l=this._hash.words,h=t[c+0],u=t[c+1],d=t[c+2],f=t[c+3],m=t[c+4],_=t[c+5],g=t[c+6],y=t[c+7],v=t[c+8],C=t[c+9],x=t[c+10],b=t[c+11],w=t[c+12],k=t[c+13],M=t[c+14],B=t[c+15],N=l[0],S=l[1],O=l[2],G=l[3];N=e(N,S,O,G,h,7,p[0]),G=e(G,N,S,O,u,12,p[1]),O=e(O,G,N,S,d,17,p[2]),S=e(S,O,G,N,f,22,p[3]),N=e(N,S,O,G,m,7,p[4]),G=e(G,N,S,O,_,12,p[5]),O=e(O,G,N,S,g,17,p[6]),S=e(S,O,G,N,y,22,p[7]),N=e(N,S,O,G,v,7,p[8]),G=e(G,N,S,O,C,12,p[9]),O=e(O,G,N,S,x,17,p[10]),S=e(S,O,G,N,b,22,p[11]),N=e(N,S,O,G,w,7,p[12]),G=e(G,N,S,O,k,12,p[13]),O=e(O,G,N,S,M,17,p[14]),N=o(N,S=e(S,O,G,N,B,22,p[15]),O,G,u,5,p[16]),G=o(G,N,S,O,g,9,p[17]),O=o(O,G,N,S,b,14,p[18]),S=o(S,O,G,N,h,20,p[19]),N=o(N,S,O,G,_,5,p[20]),G=o(G,N,S,O,x,9,p[21]),O=o(O,G,N,S,B,14,p[22]),S=o(S,O,G,N,m,20,p[23]),N=o(N,S,O,G,C,5,p[24]),G=o(G,N,S,O,M,9,p[25]),O=o(O,G,N,S,f,14,p[26]),S=o(S,O,G,N,v,20,p[27]),N=o(N,S,O,G,k,5,p[28]),G=o(G,N,S,O,d,9,p[29]),O=o(O,G,N,S,y,14,p[30]),N=i(N,S=o(S,O,G,N,w,20,p[31]),O,G,_,4,p[32]),G=i(G,N,S,O,v,11,p[33]),O=i(O,G,N,S,b,16,p[34]),S=i(S,O,G,N,M,23,p[35]),N=i(N,S,O,G,u,4,p[36]),G=i(G,N,S,O,m,11,p[37]),O=i(O,G,N,S,y,16,p[38]),S=i(S,O,G,N,x,23,p[39]),N=i(N,S,O,G,k,4,p[40]),G=i(G,N,S,O,h,11,p[41]),O=i(O,G,N,S,f,16,p[42]),S=i(S,O,G,N,g,23,p[43]),N=i(N,S,O,G,C,4,p[44]),G=i(G,N,S,O,w,11,p[45]),O=i(O,G,N,S,B,16,p[46]),N=n(N,S=i(S,O,G,N,d,23,p[47]),O,G,h,6,p[48]),G=n(G,N,S,O,y,10,p[49]),O=n(O,G,N,S,M,15,p[50]),S=n(S,O,G,N,_,21,p[51]),N=n(N,S,O,G,w,6,p[52]),G=n(G,N,S,O,f,10,p[53]),O=n(O,G,N,S,x,15,p[54]),S=n(S,O,G,N,u,21,p[55]),N=n(N,S,O,G,v,6,p[56]),G=n(G,N,S,O,B,10,p[57]),O=n(O,G,N,S,g,15,p[58]),S=n(S,O,G,N,k,21,p[59]),N=n(N,S,O,G,m,6,p[60]),G=n(G,N,S,O,b,10,p[61]),O=n(O,G,N,S,d,15,p[62]),S=n(S,O,G,N,C,21,p[63]),l[0]=l[0]+N|0,l[1]=l[1]+S|0,l[2]=l[2]+O|0,l[3]=l[3]+G|0},_doFinalize:function(){var e=this._data,o=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;o[n>>>5]|=128<<24-n%32;var c=t.floor(i/4294967296),a=i;o[15+(n+64>>>9<<4)]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),o[14+(n+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),e.sigBytes=4*(o.length+1),this._process();for(var r=this._hash,s=r.words,l=0;l<4;l++){var h=s[l];s[l]=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)}return r},clone:function(){var t=l.clone.call(this);return t._hash=this._hash.clone(),t}});c.MD5=l._createHelper(u),c.HmacMD5=l._createHmacHelper(u)}(Math),e=(t=r).lib,o=e.WordArray,i=e.Hasher,n=t.algo,c=[],a=n.SHA1=i.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var o=this._hash.words,i=o[0],n=o[1],a=o[2],r=o[3],s=o[4],l=0;l<80;l++){if(l<16)c[l]=0|t[e+l];else{var h=c[l-3]^c[l-8]^c[l-14]^c[l-16];c[l]=h<<1|h>>>31}var p=(i<<5|i>>>27)+s+c[l];p+=l<20?1518500249+(n&a|~n&r):l<40?1859775393+(n^a^r):l<60?(n&a|n&r|a&r)-1894007588:(n^a^r)-899497514,s=r,r=a,a=n<<30|n>>>2,n=i,i=p}o[0]=o[0]+i|0,o[1]=o[1]+n|0,o[2]=o[2]+a|0,o[3]=o[3]+r|0,o[4]=o[4]+s|0},_doFinalize:function(){var t=this._data,e=t.words,o=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(i+64>>>9<<4)]=Math.floor(o/4294967296),e[15+(i+64>>>9<<4)]=o,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t}}),t.SHA1=i._createHelper(a),t.HmacSHA1=i._createHmacHelper(a),function(t){var e=r,o=e.lib,i=o.WordArray,n=o.Hasher,c=e.algo,a=[],s=[];!function(){function e(e){for(var o=t.sqrt(e),i=2;i<=o;i++)if(!(e%i))return!1;return!0}function o(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)e(i)&&(n<8&&(a[n]=o(t.pow(i,.5))),s[n]=o(t.pow(i,1/3)),n++),i++}();var l=[],h=c.SHA256=n.extend({_doReset:function(){this._hash=new i.init(a.slice(0))},_doProcessBlock:function(t,e){for(var o=this._hash.words,i=o[0],n=o[1],c=o[2],a=o[3],r=o[4],h=o[5],p=o[6],u=o[7],d=0;d<64;d++){if(d<16)l[d]=0|t[e+d];else{var f=l[d-15],m=(f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3,_=l[d-2],g=(_<<15|_>>>17)^(_<<13|_>>>19)^_>>>10;l[d]=m+l[d-7]+g+l[d-16]}var y=i&n^i&c^n&c,v=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),C=u+((r<<26|r>>>6)^(r<<21|r>>>11)^(r<<7|r>>>25))+(r&h^~r&p)+s[d]+l[d];u=p,p=h,h=r,r=a+C|0,a=c,c=n,n=i,i=C+(v+y)|0}o[0]=o[0]+i|0,o[1]=o[1]+n|0,o[2]=o[2]+c|0,o[3]=o[3]+a|0,o[4]=o[4]+r|0,o[5]=o[5]+h|0,o[6]=o[6]+p|0,o[7]=o[7]+u|0},_doFinalize:function(){var e=this._data,o=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return o[n>>>5]|=128<<24-n%32,o[14+(n+64>>>9<<4)]=t.floor(i/4294967296),o[15+(n+64>>>9<<4)]=i,e.sigBytes=4*o.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=n._createHelper(h),e.HmacSHA256=n._createHmacHelper(h)}(Math),function(){function t(t){return t<<8&4278255360|t>>>8&16711935}var e=r,o=e.lib.WordArray,i=e.enc;i.Utf16=i.Utf16BE={stringify:function(t){for(var e=t.words,o=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(c))}return i.join("")},parse:function(t){for(var e=t.length,i=[],n=0;n>>1]|=t.charCodeAt(n)<<16-n%2*16;return o.create(i,2*e)}},i.Utf16LE={stringify:function(e){for(var o=e.words,i=e.sigBytes,n=[],c=0;c>>2]>>>16-c%4*8&65535);n.push(String.fromCharCode(a))}return n.join("")},parse:function(e){for(var i=e.length,n=[],c=0;c>>1]|=t(e.charCodeAt(c)<<16-c%2*16);return o.create(n,2*i)}}}(),function(){if("function"==typeof ArrayBuffer){var t=r.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var o=t.byteLength,i=[],n=0;n>>2]|=t[n]<<24-n%4*8;e.call(this,i,o)}else e.apply(this,arguments)}).prototype=t}}(),function(){function t(t,e,o){return t^e^o}function e(t,e,o){return t&e|~t&o}function o(t,e,o){return(t|~e)^o}function i(t,e,o){return t&o|e&~o}function n(t,e,o){return t^(e|~o)}function c(t,e){return t<>>32-e}var a=r,s=a.lib,l=s.WordArray,h=s.Hasher,p=a.algo,u=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),d=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),f=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),m=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),_=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),y=p.RIPEMD160=h.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(a,r){for(var s=0;s<16;s++){var l=r+s,h=a[l];a[l]=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)}var p,y,v,C,x,b,w,k,M,B,N,S=this._hash.words,O=_.words,G=g.words,I=u.words,T=d.words,A=f.words,F=m.words;for(b=p=S[0],w=y=S[1],k=v=S[2],M=C=S[3],B=x=S[4],s=0;s<80;s+=1)N=p+a[r+I[s]]|0,N+=s<16?t(y,v,C)+O[0]:s<32?e(y,v,C)+O[1]:s<48?o(y,v,C)+O[2]:s<64?i(y,v,C)+O[3]:n(y,v,C)+O[4],N=(N=c(N|=0,A[s]))+x|0,p=x,x=C,C=c(v,10),v=y,y=N,N=b+a[r+T[s]]|0,N+=s<16?n(w,k,M)+G[0]:s<32?i(w,k,M)+G[1]:s<48?o(w,k,M)+G[2]:s<64?e(w,k,M)+G[3]:t(w,k,M)+G[4],N=(N=c(N|=0,F[s]))+B|0,b=B,B=M,M=c(k,10),k=w,w=N;N=S[1]+v+M|0,S[1]=S[2]+C+B|0,S[2]=S[3]+x+b|0,S[3]=S[4]+p+w|0,S[4]=S[0]+y+k|0,S[0]=N},_doFinalize:function(){var t=this._data,e=t.words,o=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t.sigBytes=4*(e.length+1),this._process();for(var n=this._hash,c=n.words,a=0;a<5;a++){var r=c[a];c[a]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}return n},clone:function(){var t=h.clone.call(this);return t._hash=this._hash.clone(),t}});a.RIPEMD160=h._createHelper(y),a.HmacRIPEMD160=h._createHmacHelper(y)}(Math),function(){var t=r,e=t.lib.Base,o=t.enc.Utf8;t.algo.HMAC=e.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=o.parse(e));var i=t.blockSize,n=4*i;e.sigBytes>n&&(e=t.finalize(e)),e.clamp();for(var c=this._oKey=e.clone(),a=this._iKey=e.clone(),r=c.words,s=a.words,l=0;l>>24)|4278255360&(c<<24|c>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(S=o[n]).high^=a,S.low^=c}for(var r=0;r<24;r++){for(var u=0;u<5;u++){for(var d=0,f=0,m=0;m<5;m++)d^=(S=o[u+5*m]).high,f^=S.low;var _=p[u];_.high=d,_.low=f}for(u=0;u<5;u++){var g=p[(u+4)%5],y=p[(u+1)%5],v=y.high,C=y.low;for(d=g.high^(v<<1|C>>>31),f=g.low^(C<<1|v>>>31),m=0;m<5;m++)(S=o[u+5*m]).high^=d,S.low^=f}for(var x=1;x<25;x++){var b=(S=o[x]).high,w=S.low,k=s[x];k<32?(d=b<>>32-k,f=w<>>32-k):(d=w<>>64-k,f=b<>>64-k);var M=p[l[x]];M.high=d,M.low=f}var B=p[0],N=o[0];for(B.high=N.high,B.low=N.low,u=0;u<5;u++)for(m=0;m<5;m++){var S=o[x=u+5*m],O=p[x],G=p[(u+1)%5+5*m],I=p[(u+2)%5+5*m];S.high=O.high^~G.high&I.high,S.low=O.low^~G.low&I.low}S=o[0];var T=h[r];S.high^=T.high,S.low^=T.low}},_doFinalize:function(){var e=this._data,o=e.words,n=(this._nDataBytes,8*e.sigBytes),c=32*this.blockSize;o[n>>>5]|=1<<24-n%32,o[(t.ceil((n+1)/c)*c>>>5)-1]|=128,e.sigBytes=4*o.length,this._process();for(var a=this._state,r=this.cfg.outputLength/8,s=r/8,l=[],h=0;h>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),l.push(d),l.push(u)}return new i.init(l,r)},clone:function(){for(var t=n.clone.call(this),e=t._state=this._state.slice(0),o=0;o<25;o++)e[o]=e[o].clone();return t}});e.SHA3=n._createHelper(u),e.HmacSHA3=n._createHmacHelper(u)}(Math),function(){function t(){return n.create.apply(n,arguments)}var e=r,o=e.lib.Hasher,i=e.x64,n=i.Word,c=i.WordArray,a=e.algo,s=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],l=[];!function(){for(var e=0;e<80;e++)l[e]=t()}();var h=a.SHA512=o.extend({_doReset:function(){this._hash=new c.init([new n.init(1779033703,4089235720),new n.init(3144134277,2227873595),new n.init(1013904242,4271175723),new n.init(2773480762,1595750129),new n.init(1359893119,2917565137),new n.init(2600822924,725511199),new n.init(528734635,4215389547),new n.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var o=this._hash.words,i=o[0],n=o[1],c=o[2],a=o[3],r=o[4],h=o[5],p=o[6],u=o[7],d=i.high,f=i.low,m=n.high,_=n.low,g=c.high,y=c.low,v=a.high,C=a.low,x=r.high,b=r.low,w=h.high,k=h.low,M=p.high,B=p.low,N=u.high,S=u.low,O=d,G=f,I=m,T=_,A=g,F=y,P=v,L=C,R=x,z=b,D=w,E=k,j=M,W=B,H=N,V=S,q=0;q<80;q++){var X=l[q];if(q<16)var Q=X.high=0|t[e+2*q],U=X.low=0|t[e+2*q+1];else{var Y=l[q-15],K=Y.high,J=Y.low,Z=(K>>>1|J<<31)^(K>>>8|J<<24)^K>>>7,$=(J>>>1|K<<31)^(J>>>8|K<<24)^(J>>>7|K<<25),tt=l[q-2],et=tt.high,ot=tt.low,it=(et>>>19|ot<<13)^(et<<3|ot>>>29)^et>>>6,nt=(ot>>>19|et<<13)^(ot<<3|et>>>29)^(ot>>>6|et<<26),ct=l[q-7],at=ct.high,rt=ct.low,st=l[q-16],lt=st.high,ht=st.low;Q=(Q=(Q=Z+at+((U=$+rt)>>>0<$>>>0?1:0))+it+((U+=nt)>>>0>>0?1:0))+lt+((U+=ht)>>>0>>0?1:0),X.high=Q,X.low=U}var pt,ut=R&D^~R&j,dt=z&E^~z&W,ft=O&I^O&A^I&A,mt=G&T^G&F^T&F,_t=(O>>>28|G<<4)^(O<<30|G>>>2)^(O<<25|G>>>7),gt=(G>>>28|O<<4)^(G<<30|O>>>2)^(G<<25|O>>>7),yt=(R>>>14|z<<18)^(R>>>18|z<<14)^(R<<23|z>>>9),vt=(z>>>14|R<<18)^(z>>>18|R<<14)^(z<<23|R>>>9),Ct=s[q],xt=Ct.high,bt=Ct.low,wt=H+yt+((pt=V+vt)>>>0>>0?1:0),kt=gt+mt;H=j,V=W,j=D,W=E,D=R,E=z,R=P+(wt=(wt=(wt=wt+ut+((pt+=dt)>>>0
>>0?1:0))+xt+((pt+=bt)>>>0>>0?1:0))+Q+((pt+=U)>>>0>>0?1:0))+((z=L+pt|0)>>>0>>0?1:0)|0,P=A,L=F,A=I,F=T,I=O,T=G,O=wt+(_t+ft+(kt>>>0>>0?1:0))+((G=pt+kt|0)>>>0>>0?1:0)|0}f=i.low=f+G,i.high=d+O+(f>>>0>>0?1:0),_=n.low=_+T,n.high=m+I+(_>>>0>>0?1:0),y=c.low=y+F,c.high=g+A+(y>>>0>>0?1:0),C=a.low=C+L,a.high=v+P+(C>>>0>>0?1:0),b=r.low=b+z,r.high=x+R+(b>>>0>>0?1:0),k=h.low=k+E,h.high=w+D+(k>>>0>>0?1:0),B=p.low=B+W,p.high=M+j+(B>>>0>>0?1:0),S=u.low=S+V,u.high=N+H+(S>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,o=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(i+128>>>10<<5)]=Math.floor(o/4294967296),e[31+(i+128>>>10<<5)]=o,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=o._createHelper(h),e.HmacSHA512=o._createHmacHelper(h)}(),function(){var t=r,e=t.x64,o=e.Word,i=e.WordArray,n=t.algo,c=n.SHA512,a=n.SHA384=c.extend({_doReset:function(){this._hash=new i.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var t=c._doFinalize.call(this);return t.sigBytes-=16,t}});t.SHA384=c._createHelper(a),t.HmacSHA384=c._createHmacHelper(a)}(),r.lib.Cipher||function(t){var e=r,o=e.lib,i=o.Base,n=o.WordArray,c=o.BufferedBlockAlgorithm,a=e.enc,s=(a.Utf8,a.Base64),l=e.algo.EvpKDF,h=o.Cipher=c.extend({cfg:i.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,o){this.cfg=this.cfg.extend(o),this._xformMode=t,this._key=e,this.reset()},reset:function(){c.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?v:g}return function(e){return{encrypt:function(o,i,n){return t(i).encrypt(e,o,i,n)},decrypt:function(o,i,n){return t(i).decrypt(e,o,i,n)}}}}()}),p=(o.StreamCipher=h.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),e.mode={}),u=o.BlockCipherMode=i.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),d=p.CBC=function(){function e(e,o,i){var n=this._iv;if(n){var c=n;this._iv=t}else c=this._prevBlock;for(var a=0;a>>2];t.sigBytes-=e}},m=(o.BlockCipher=h.extend({cfg:h.cfg.extend({mode:d,padding:f}),reset:function(){h.reset.call(this);var t=this.cfg,e=t.iv,o=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=o.createEncryptor;else i=o.createDecryptor,this._minBufferSize=1;this._mode&&this._mode.__creator==i?this._mode.init(this,e&&e.words):(this._mode=i.call(o,this,e&&e.words),this._mode.__creator=i)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var e=this._process(!0)}else e=this._process(!0),t.unpad(e);return e},blockSize:4}),o.CipherParams=i.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),_=(e.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,o=t.salt;if(o)var i=n.create([1398893684,1701076831]).concat(o).concat(e);else i=e;return i.toString(s)},parse:function(t){var e=s.parse(t),o=e.words;if(1398893684==o[0]&&1701076831==o[1]){var i=n.create(o.slice(2,4));o.splice(0,4),e.sigBytes-=16}return m.create({ciphertext:e,salt:i})}},g=o.SerializableCipher=i.extend({cfg:i.extend({format:_}),encrypt:function(t,e,o,i){i=this.cfg.extend(i);var n=t.createEncryptor(o,i),c=n.finalize(e),a=n.cfg;return m.create({ciphertext:c,key:o,iv:a.iv,algorithm:t,mode:a.mode,padding:a.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,o,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(o,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),y=(e.kdf={}).OpenSSL={execute:function(t,e,o,i){i||(i=n.random(8));var c=l.create({keySize:e+o}).compute(t,i),a=n.create(c.words.slice(e),4*o);return c.sigBytes=4*e,m.create({key:c,iv:a,salt:i})}},v=o.PasswordBasedCipher=g.extend({cfg:g.cfg.extend({kdf:y}),encrypt:function(t,e,o,i){var n=(i=this.cfg.extend(i)).kdf.execute(o,t.keySize,t.ivSize);i.iv=n.iv;var c=g.encrypt.call(this,t,e,n.key,i);return c.mixIn(n),c},decrypt:function(t,e,o,i){i=this.cfg.extend(i),e=this._parse(e,i.format);var n=i.kdf.execute(o,t.keySize,t.ivSize,e.salt);return i.iv=n.iv,g.decrypt.call(this,t,e,n.key,i)}})}(),r.mode.CFB=function(){function t(t,e,o,i){var n=this._iv;if(n){var c=n.slice(0);this._iv=void 0}else c=this._prevBlock;i.encryptBlock(c,0);for(var a=0;a>>2]|=n<<24-c%4*8,t.sigBytes+=n},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},r.pad.Iso10126={pad:function(t,e){var o=4*e,i=o-t.sigBytes%o;t.concat(r.lib.WordArray.random(i-1)).concat(r.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},r.pad.Iso97971={pad:function(t,e){t.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(t,e)},unpad:function(t){r.pad.ZeroPadding.unpad(t),t.sigBytes--}},r.mode.OFB=function(){var t=r.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var o=this._cipher,i=o.blockSize,n=this._iv,c=this._keystream;n&&(c=this._keystream=n.slice(0),this._iv=void 0),o.encryptBlock(c,0);for(var a=0;a>>8^255&f^99,i[o]=f,n[f]=o;var m=t[o],_=t[m],g=t[_],y=257*t[f]^16843008*f;c[o]=y<<24|y>>>8,a[o]=y<<16|y>>>16,s[o]=y<<8|y>>>24,l[o]=y,y=16843009*g^65537*_^257*m^16843008*o,h[f]=y<<24|y>>>8,p[f]=y<<16|y>>>16,u[f]=y<<8|y>>>24,d[f]=y,o?(o=m^t[t[t[g^m]]],r^=t[t[r]]):o=r=1}}();var f=[0,1,2,4,8,16,32,64,128,27,54],m=o.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,o=t.sigBytes/4,n=4*((this._nRounds=o+6)+1),c=this._keySchedule=[],a=0;a6&&a%o==4&&(r=i[r>>>24]<<24|i[r>>>16&255]<<16|i[r>>>8&255]<<8|i[255&r]):(r=i[(r=r<<8|r>>>24)>>>24]<<24|i[r>>>16&255]<<16|i[r>>>8&255]<<8|i[255&r],r^=f[a/o|0]<<24),c[a]=c[a-o]^r}for(var s=this._invKeySchedule=[],l=0;l>>24]]^p[i[r>>>16&255]]^u[i[r>>>8&255]]^d[i[255&r]]}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,c,a,s,l,i)},decryptBlock:function(t,e){var o=t[e+1];t[e+1]=t[e+3],t[e+3]=o,this._doCryptBlock(t,e,this._invKeySchedule,h,p,u,d,n),o=t[e+1],t[e+1]=t[e+3],t[e+3]=o},_doCryptBlock:function(t,e,o,i,n,c,a,r){for(var s=this._nRounds,l=t[e]^o[0],h=t[e+1]^o[1],p=t[e+2]^o[2],u=t[e+3]^o[3],d=4,f=1;f>>24]^n[h>>>16&255]^c[p>>>8&255]^a[255&u]^o[d++],_=i[h>>>24]^n[p>>>16&255]^c[u>>>8&255]^a[255&l]^o[d++],g=i[p>>>24]^n[u>>>16&255]^c[l>>>8&255]^a[255&h]^o[d++],y=i[u>>>24]^n[l>>>16&255]^c[h>>>8&255]^a[255&p]^o[d++];l=m,h=_,p=g,u=y}m=(r[l>>>24]<<24|r[h>>>16&255]<<16|r[p>>>8&255]<<8|r[255&u])^o[d++],_=(r[h>>>24]<<24|r[p>>>16&255]<<16|r[u>>>8&255]<<8|r[255&l])^o[d++],g=(r[p>>>24]<<24|r[u>>>16&255]<<16|r[l>>>8&255]<<8|r[255&h])^o[d++],y=(r[u>>>24]<<24|r[l>>>16&255]<<16|r[h>>>8&255]<<8|r[255&p])^o[d++],t[e]=m,t[e+1]=_,t[e+2]=g,t[e+3]=y},keySize:8});t.AES=e._createHelper(m)}(),function(){function t(t,e){var o=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=o,this._lBlock^=o<>>t^this._lBlock)&e;this._lBlock^=o,this._rBlock^=o<>>5]>>>31-i%32&1}for(var n=this._subKeys=[],c=0;c<16;c++){var a=n[c]=[],r=h[c];for(o=0;o<24;o++)a[o/6|0]|=e[(l[o]-1+r)%28]<<31-o%6,a[4+(o/6|0)]|=e[28+(l[o+24]-1+r)%28]<<31-o%6;for(a[0]=a[0]<<1|a[0]>>>31,o=1;o<7;o++)a[o]=a[o]>>>4*(o-1)+3;a[7]=a[7]<<5|a[7]>>>27}var p=this._invSubKeys=[];for(o=0;o<16;o++)p[o]=n[15-o]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(o,i,n){this._lBlock=o[i],this._rBlock=o[i+1],t.call(this,4,252645135),t.call(this,16,65535),e.call(this,2,858993459),e.call(this,8,16711935),t.call(this,1,1431655765);for(var c=0;c<16;c++){for(var a=n[c],r=this._lBlock,s=this._rBlock,l=0,h=0;h<8;h++)l|=p[h][((s^a[h])&u[h])>>>0];this._lBlock=s,this._rBlock=r^l}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,t.call(this,1,1431655765),e.call(this,8,16711935),e.call(this,2,858993459),t.call(this,16,65535),t.call(this,4,252645135),o[i]=this._lBlock,o[i+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});o.DES=c._createHelper(d);var f=a.TripleDES=c.extend({_doReset:function(){var t=this._key.words;this._des1=d.createEncryptor(n.create(t.slice(0,2))),this._des2=d.createEncryptor(n.create(t.slice(2,4))),this._des3=d.createEncryptor(n.create(t.slice(4,6)))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});o.TripleDES=c._createHelper(f)}(),function(){function t(){for(var t=this._S,e=this._i,o=this._j,i=0,n=0;n<4;n++){o=(o+t[e=(e+1)%256])%256;var c=t[e];t[e]=t[o],t[o]=c,i|=t[(t[e]+t[o])%256]<<24-8*n}return this._i=e,this._j=o,i}var e=r,o=e.lib.StreamCipher,i=e.algo,n=i.RC4=o.extend({_doReset:function(){for(var t=this._key,e=t.words,o=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;n=0;for(var c=0;n<256;n++){var a=n%o,r=e[a>>>2]>>>24-a%4*8&255;c=(c+i[n]+r)%256;var s=i[n];i[n]=i[c],i[c]=s}this._i=this._j=0},_doProcessBlock:function(e,o){e[o]^=t.call(this)},keySize:8,ivSize:0});e.RC4=o._createHelper(n);var c=i.RC4Drop=n.extend({cfg:n.cfg.extend({drop:192}),_doReset:function(){n._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)t.call(this)}});e.RC4Drop=o._createHelper(c)}(),r.mode.CTRGladman=function(){function t(t){if(255==(t>>24&255)){var e=t>>16&255,o=t>>8&255,i=255&t;255===e?(e=0,255===o?(o=0,255===i?i=0:++i):++o):++e,t=0,t+=e<<16,t+=o<<8,t+=i}else t+=1<<24;return t}function e(e){return 0===(e[0]=t(e[0]))&&(e[1]=t(e[1])),e}var o=r.lib.BlockCipherMode.extend(),i=o.Encryptor=o.extend({processBlock:function(t,o){var i=this._cipher,n=i.blockSize,c=this._iv,a=this._counter;c&&(a=this._counter=c.slice(0),this._iv=void 0),e(a);var r=a.slice(0);i.encryptBlock(r,0);for(var s=0;s>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,o=0;o<8;o++){var i=t[o]+e[o],n=65535&i,r=i>>>16,s=((n*n>>>17)+n*r>>>15)+r*r,l=((4294901760&i)*i|0)+((65535&i)*i|0);a[o]=s^l}t[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,t[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,t[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,t[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,t[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,t[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,t[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,t[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}var e=r,o=e.lib.StreamCipher,i=e.algo,n=[],c=[],a=[],s=i.Rabbit=o.extend({_doReset:function(){for(var e=this._key.words,o=this.cfg.iv,i=0;i<4;i++)e[i]=16711935&(e[i]<<8|e[i]>>>24)|4278255360&(e[i]<<24|e[i]>>>8);var n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],c=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,i=0;i<4;i++)t.call(this);for(i=0;i<8;i++)c[i]^=n[i+4&7];if(o){var a=o.words,r=a[0],s=a[1],l=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),p=l>>>16|4294901760&h,u=h<<16|65535&l;for(c[0]^=l,c[1]^=p,c[2]^=h,c[3]^=u,c[4]^=l,c[5]^=p,c[6]^=h,c[7]^=u,i=0;i<4;i++)t.call(this)}},_doProcessBlock:function(e,o){var i=this._X;t.call(this),n[0]=i[0]^i[5]>>>16^i[3]<<16,n[1]=i[2]^i[7]>>>16^i[5]<<16,n[2]=i[4]^i[1]>>>16^i[7]<<16,n[3]=i[6]^i[3]>>>16^i[1]<<16;for(var c=0;c<4;c++)n[c]=16711935&(n[c]<<8|n[c]>>>24)|4278255360&(n[c]<<24|n[c]>>>8),e[o+c]^=n[c]},blockSize:4,ivSize:2});e.Rabbit=o._createHelper(s)}(),r.mode.CTR=function(){var t=r.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var o=this._cipher,i=o.blockSize,n=this._iv,c=this._counter;n&&(c=this._counter=n.slice(0),this._iv=void 0);var a=c.slice(0);o.encryptBlock(a,0),c[i-1]=c[i-1]+1|0;for(var r=0;r>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,o=0;o<8;o++){var i=t[o]+e[o],n=65535&i,r=i>>>16,s=((n*n>>>17)+n*r>>>15)+r*r,l=((4294901760&i)*i|0)+((65535&i)*i|0);a[o]=s^l}t[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,t[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,t[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,t[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,t[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,t[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,t[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,t[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}var e=r,o=e.lib.StreamCipher,i=e.algo,n=[],c=[],a=[],s=i.RabbitLegacy=o.extend({_doReset:function(){var e=this._key.words,o=this.cfg.iv,i=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var c=0;c<4;c++)t.call(this);for(c=0;c<8;c++)n[c]^=i[c+4&7];if(o){var a=o.words,r=a[0],s=a[1],l=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),p=l>>>16|4294901760&h,u=h<<16|65535&l;for(n[0]^=l,n[1]^=p,n[2]^=h,n[3]^=u,n[4]^=l,n[5]^=p,n[6]^=h,n[7]^=u,c=0;c<4;c++)t.call(this)}},_doProcessBlock:function(e,o){var i=this._X;t.call(this),n[0]=i[0]^i[5]>>>16^i[3]<<16,n[1]=i[2]^i[7]>>>16^i[5]<<16,n[2]=i[4]^i[1]>>>16^i[7]<<16,n[3]=i[6]^i[3]>>>16^i[1]<<16;for(var c=0;c<4;c++)n[c]=16711935&(n[c]<<8|n[c]>>>24)|4278255360&(n[c]<<24|n[c]>>>8),e[o+c]^=n[c]},blockSize:4,ivSize:2});e.RabbitLegacy=o._createHelper(s)}(),r.pad.ZeroPadding={pad:function(t,e){var o=4*e;t.clamp(),t.sigBytes+=o-(t.sigBytes%o||o)},unpad:function(t){for(var e=t.words,o=t.sigBytes-1;!(e[o>>>2]>>>24-o%4*8&255);)o--;t.sigBytes=o+1}},r}),cc._RF.pop()},{}],lq_base_util:[function(t,e,o){"use strict";cc._RF.push(e,"cd21fuTZY5LOoiXtN66R7wx","lq_base_util"),Object.defineProperty(o,"__esModule",{value:!0}),o.LQBaseUtil=void 0;var i=t("./lq_platform_util"),n=t("../data/lq_const"),c=cc.view,a=function(){function t(){}return t.has_value=function(t,e){for(var o=!1,i=0;it){o=i;break}if(-1===o)return e[e.length-1].y;var n=o-1;return e[n].y+(e[o].y-e[n].y)*((t-e[n].x)/(e[o].x-e[n].x))},t.number_to_counting=function(t){return t<1e3?t+"":t<1e6?Math.floor(t/1e3)+"K":t<1e9?Math.floor(t/1e6)+"M":t<1e12?Math.floor(t/1e9)+"B":Math.floor(t/1e12)+"T"},t.number_to_time=function(t){var e=Math.floor(t/3600);t-=3600*e;var o=e.toString(),i=Math.floor(t/60).toString(),n=(t%60).toString();return 1===o.length&&(o="0"+o),1===i.length&&(i="0"+i),1===n.length&&(n="0"+n),[o,i,n]},t.set_normal_angle=function(t){for(;t>360;)t-=360;for(;t<0;)t+=360;return t},t.compare_version=function(t,e){for(var o=t.split("."),i=e.split("."),n=Math.max(o.length,i.length);o.lengthr)return 1;if(a=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.LQCollideBase=void 0;var a=cc._decorator.ccclass,r=cc._decorator.executeInEditMode,s=(cc.PolygonCollider,cc._decorator.property),l=t("./lq_collide"),h=(t("../lq_base/data/lq_const"),function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.auto_update_point=!0,e}return n(e,t),e.prototype.find_collide=function(){var t=this.node.getComponent(l.LQCollide);if(t)return t;console.error(this.node.name+":\u6ca1\u6709\u627e\u5230LQCollide\u7ec4\u4ef6")},e.prototype.onLoad=function(){var t=this.find_collide();t&&t.init_lq_collide()},e.prototype.onEnable=function(){var t=this.find_collide();t&&t.enable_lq_collide()},e.prototype.onDisable=function(){var t=this.find_collide();t&&t.disable_lq_collide()},e.prototype.onDestroy=function(){this.find_collide()},e.prototype.onFocusInEditor=function(){this.find_collide()},e.prototype.onLostFocusInEditor=function(){this.find_collide()},e.prototype.resetInEditor=function(){this.find_collide()},e.prototype.update=function(){},c([s({tooltip:"\u591a\u8fb9\u5f62\u81ea\u52a8\u540c\u6b65cocos PolygonCollider \u7ec4\u4ef6\u4e2d\u7684\u78b0\u649e\u70b9"})],e.prototype,"auto_update_point",void 0),c([a,r],e)}(cc.Component));o.LQCollideBase=h,cc._RF.pop()},{"../lq_base/data/lq_const":"lq_const","./lq_collide":"lq_collide"}],lq_collide_config:[function(t,e,o){"use strict";cc._RF.push(e,"4bd21i88J9KfoWB6fqk7oW1","lq_collide_config"),Object.defineProperty(o,"__esModule",{value:!0}),o.LQCollideConfig=o.LQCollideInfoList=void 0,function(t){t[t.default=0]="default",t[t.role=1]="role",t[t.role_bullet=2]="role_bullet",t[t.enemy=3]="enemy",t[t.enemy_bullet=4]="enemy_bullet",t[t.prop=5]="prop"}(o.LQCollideInfoList||(o.LQCollideInfoList={}));var i=function(){function t(){}return t.switch_auto_run=!0,t.switch_print_log=!0,t.switch_quad_tree=!1,t.max_node_len=10,t.per_frame=60,t.max_node_level=4,t.active_area_x=0,t.active_area_y=0,t.active_area_width=1e3,t.active_area_height=1e3,t.collide_group_map={default:{id:1,category:1,index:0,mask:1},role:{id:2,category:2,index:1,mask:56},role_bullet:{id:3,category:4,index:2,mask:8},enemy:{id:4,category:8,index:3,mask:6},enemy_bullet:{id:5,category:16,index:4,mask:2},prop:{id:6,category:32,index:5,mask:2}},t}();o.LQCollideConfig=i,cc._RF.pop()},{}],lq_collide_system:[function(t,e,o){"use strict";cc._RF.push(e,"81314mE3BdESr87SAFK9cqv","lq_collide_system"),o.__esModule=!0,o.LQCollideSystem=void 0;var i=t("../lq_base/data/lq_const"),n=t("../lq_base/util/lq_math_util"),c=t("./lq_collide_config"),a=t("../lq_base/data/lq_data"),r=cc.Vec2,s=cc.game,l=cc.director,h=cc.Scheduler,p=cc.misc,u=function(){function t(t,e,o,i){this.collide_arr=[],this.node_arr=[],this.max_object=e||10,this.max_level=o||4,this.level=i||0,this.rect=t,this.collide_arr=[],this.node_arr=[]}return t.prototype.split=function(){var e=this.level+1,o=.5*this.rect.width,i=.5*this.rect.height,n=this.rect.x,c=this.rect.y;this.node_arr[0]=new t(new a.LQRect(n+o,c,o,i),this.max_object,this.max_level,e),this.node_arr[1]=new t(new a.LQRect(n,c,o,i),this.max_object,this.max_level,e),this.node_arr[2]=new t(new a.LQRect(n,c+i,o,i),this.max_object,this.max_level,e),this.node_arr[3]=new t(new a.LQRect(n+o,c+i,o,i),this.max_object,this.max_level,e)},t.prototype.get_index=function(t){var e=[],o=this.rect.x+this.rect.half_width,i=this.rect.y+this.rect.half_height,n=t.world_rect.y+t.world_rect.half_height>i,c=t.world_rect.x-t.world_rect.half_widtho,r=t.world_rect.y-t.world_rect.half_heightthis.max_object&&this.level=0;e--)if(this.collide_arr[e].collide_id===t.collide_id){this.collide_arr.splice(e,1);break}},t.line_point=function(t,e,o,i,n,c){return Math.abs(this.distanceSquared(t,e,o,i)-(this.distanceSquared(t,e,n,c)+this.distanceSquared(o,i,n,c)))<=1},t.distanceSquared=function(t,e,o,i){return Math.sqrt(Math.pow(t-o,2)+Math.pow(e-i,2))},t.polygon_point=function(t,e,o){var i,n,c=t.length,a=!1;for(i=0,n=c-2;io!=t[n+1]>o&&e<(t[n]-t[i])*(o-t[i+1])/(t[n+1]-t[i+1])+t[i]&&(a=!a),n=i;if(a)return!0;for(i=0;i1?1:h)+t-n,s[1]*h+e-c];return this.dot(p,p)<=a*a},t.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]},t.update_logic=function(){if(this.is_enable)if(c.LQCollideConfig.switch_quad_tree){this.quad_tree.clear();for(var t=this.collide_arr.length-1;t>=0;t--){if(!(s=this.collide_arr[t]))return;s.isValid?(this.update_collide_logic(s),s.is_enable&&(this.update_world_rect(s),this.quad_tree.insert(s))):this.collide_arr.splice(t,1)}u.all_collide_arr=[],this.quad_tree.get_all_area();for(var e=0;e=0;t--){var s;if(!(s=this.collide_arr[t]))return;s.isValid?(this.update_collide_logic(s),s.is_enable&&(this.update_world_rect(s),o.push(s))):this.collide_arr.splice(t,1)}var l=o.length;for(t=0;ti)&&(i=n);for(c=null,a=null,r=0;ra)&&(a=n);if(i=0;i--){var n=t.collide_arr[i];e!==n&&n.is_enable&&(e.follow_target_category?n.collide_category===e.follow_target_category&&o.push(n):0!=(n.collide_category&e.collide_mask)&&o.push(n))}return o.sort(function(t,o){return e.world_rect.sub(t.world_rect).magSqr()-e.world_rect.sub(o.world_rect).magSqr()}),o[0]},t.clear=function(t){if(void 0===t&&(t=!1),t)for(var e=this.collide_arr.length-1;e>=0;e--){var o=this.collide_arr[e];o.isValid&&o.node.destroy()}this.collide_arr=[]},t.check_collide=function(t){var e,o=[];c.LQCollideConfig.switch_quad_tree?(u.temp_collide_arr=[],this.quad_tree.retrieve(t),e=u.temp_collide_arr):e=this.collide_arr;for(var i=0;i=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.LQCollide=void 0;var a=cc._decorator.ccclass,r=cc._decorator.property,s=cc._decorator.requireComponent,l=cc._decorator.menu,h=cc.Component,p=cc.Enum,u=cc.Size,d=cc.Vec2,f=cc.Graphics,m=cc.Node,_=cc.macro,g=cc.Color,y=t("../lq_base/data/lq_const"),v=t("./lq_collide_config"),C=t("./lq_collide_system"),x=t("../lq_base/data/lq_data"),b=t("./lq_collide_base"),w=t("../lq_base/util/lq_game_util"),k=t("../Map"),M=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._draw_collide=!0,e.can_move=!0,e._collide_shape=y.LQCollideShape.Rect,e._collide_group_index=-1,e.collide_group_id=0,e.collide_scle=1,e._radius=50,e._size=new u(100,100),e._polygon_points=[new d(-45,-45),new d(45,-45),new d(60,40),new d(0,70),new d(-60,40)],e._offset=new d(0,0),e.data_string="",e.collide_id=0,e.collide_status=y.LQCollideStatus.Idle,e.is_enable=!0,e.is_open_func=!0,e.collide_category=0,e.collide_mask=0,e.collide_map={},e}var o;return n(e,t),o=e,Object.defineProperty(e.prototype,"draw_collide",{get:function(){return this._draw_collide},set:function(t){this._draw_collide=t,this.draw_shape()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"collide_shape",{get:function(){return this._collide_shape},set:function(t){this._collide_shape=t,this.draw_shape()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"collide_group_index",{get:function(){return-1===this._collide_group_index&&(this._collide_group_index=C.LQCollideSystem.get_info_by_id(this.collide_group_id).index),this._collide_group_index},set:function(t){this._collide_group_index!==t&&(this._collide_group_index=t,this.collide_group_id=C.LQCollideSystem.get_group_by_index(t).id)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){return this._radius},set:function(t){this._radius=t,this.draw_shape()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"size",{get:function(){return this._size},set:function(t){this._size=t,this.world_rect&&(this.world_rect.width=t.width,this.world_rect.height=t.height,this.world_rect.half_width=.5*t.width,this.world_rect.half_height=.5*t.height),this.draw_shape()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"offset",{get:function(){return this._offset},set:function(t){this._offset=t,this.draw_shape()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"polygon_points",{get:function(){return this._polygon_points},set:function(t){this._polygon_points=t,this.draw_shape()},enumerable:!1,configurable:!0}),e.prototype.checkDebugDrawValid=function(){if(!this._debugDrawer||!this._debugDrawer.isValid){var t=this.node.getChildByName("Collide");t?this._debugDrawer=t.getComponent(f):((t=new m("Collide")).zIndex=_.MAX_ZINDEX,this.node.addChild(t),t._objFlags=1096,this._debugDrawer=t.addComponent(f),this._debugDrawer.lineWidth=3,this._debugDrawer.strokeColor=new g(255,0,0),this._debugDrawer.fillColor=new g(255,0,0))}},e.prototype.draw_shape=function(){if(this._draw_collide){this.checkDebugDrawValid(),this._debugDrawer.clear();var t={key:"scaleX",value:this.node.scale},e={key:"scaleY",value:this.node.scale};if(w.LQGameUtil.recursion_node_property(this.node,t),w.LQGameUtil.recursion_node_property(this.node,e),0!==t.value&&0!==e.value)switch(this._debugDrawer.node.scaleX=1/t.value,this._debugDrawer.node.scaleY=1/e.value,this._collide_shape){case y.LQCollideShape.Circle:this._debugDrawer.circle(+this._offset.x,+this._offset.y,this._radius),this._debugDrawer.stroke();break;case y.LQCollideShape.Rect:this._debugDrawer.moveTo(.5*-this._size.width+this._offset.x,.5*-this._size.height+this._offset.y),this._debugDrawer.lineTo(.5*-this._size.width+this._offset.x,.5*+this._size.height+this._offset.y),this._debugDrawer.lineTo(.5*this._size.width+this._offset.x,.5*+this._size.height+this._offset.y),this._debugDrawer.lineTo(.5*this._size.width+this._offset.x,.5*-this._size.height+this._offset.y),this._debugDrawer.lineTo(.5*-this._size.width+this._offset.x,.5*-this._size.height+this._offset.y),this._debugDrawer.stroke();break;case y.LQCollideShape.Polygon:this._debugDrawer.moveTo(this._polygon_points[0].x+this._offset.x,this._polygon_points[0].y+this._offset.y);for(var o=1;othis.node.parent.y+this.node.parent.height&&(e.moveY=1)),"down"===this.node.name&&(e.moveDown=!1,e.touchPointYthis.node.parent.x&&(e.moveX=1)))}},e.prototype.disableCollider=function(t){var e=!1;if(t.node&&this.node&&t.node.parent&&this.node.parent&&(t.node.parent.uuid==this.node.parent.uuid&&(e=!0),this.node.parent.getComponent("Block"))){var o=this.node.parent.getComponent("Block");1!=o.type&&10!=o.type&&9!=o.type||t.node.parent==o.block_Info.node&&(e=!0)}return e},e.id_maker=1,c([r({displayName:"\u7ed8\u5236\u5f62\u72b6"})],e.prototype,"draw_collide",null),c([r],e.prototype,"_draw_collide",void 0),c([r({tooltip:"\u80fd\u5426\u79fb\u52a8"})],e.prototype,"can_move",void 0),c([r({tooltip:"\u78b0\u649e\u5f62\u72b6\uff0cNone\u5c31\u662f\u65e0\u654c\uff0c\u4e0d\u53c2\u4e0e\u78b0\u649e",type:p(y.LQCollideShape),displayName:"\u78b0\u649e\u5f62\u72b6"})],e.prototype,"collide_shape",null),c([r()],e.prototype,"_collide_shape",void 0),c([r({type:p(v.LQCollideInfoList),tooltip:"\u78b0\u649e\u7c7b\u522b",displayName:"\u78b0\u649e\u7c7b\u522b"})],e.prototype,"collide_group_index",null),c([r({serializable:!1})],e.prototype,"_collide_group_index",void 0),c([r({visible:!1})],e.prototype,"collide_group_id",void 0),c([r({visible:!1})],e.prototype,"collide_scle",void 0),c([r({tooltip:"collide\u534a\u5f84",visible:function(){return this._collide_shape===y.LQCollideShape.Circle},displayName:"\u534a\u5f84"})],e.prototype,"radius",null),c([r()],e.prototype,"_radius",void 0),c([r({tooltip:"collide\u957f\u5bbd",visible:function(){return this._collide_shape===y.LQCollideShape.Rect},displayName:"\u957f\u5bbd"})],e.prototype,"size",null),c([r()],e.prototype,"_size",void 0),c([r({displayName:"\u4f4d\u7f6e\u504f\u79fb"})],e.prototype,"offset",null),c([r({type:d,visible:function(){return this._collide_shape===y.LQCollideShape.Polygon},displayName:"\u591a\u8fb9\u5f62\u78b0\u649e\u70b9"})],e.prototype,"polygon_points",null),c([r()],e.prototype,"_polygon_points",void 0),c([r()],e.prototype,"_offset",void 0),c([r({displayName:"\u81ea\u5b9a\u4e49\u5b57\u7b26\u4e32"})],e.prototype,"data_string",void 0),o=c([a,s(b.LQCollideBase),l("lq/collide")],e)}(h);o.LQCollide=M,cc._RF.pop()},{"../Map":"Map","../lq_base/data/lq_const":"lq_const","../lq_base/data/lq_data":"lq_data","../lq_base/util/lq_game_util":"lq_game_util","./lq_collide_base":"lq_collide_base","./lq_collide_config":"lq_collide_config","./lq_collide_system":"lq_collide_system"}],lq_const:[function(t,e,o){"use strict";cc._RF.push(e,"98309gPXUxEF6zBe9e75Knb","lq_const"),Object.defineProperty(o,"__esModule",{value:!0}),o.LQConst=o.LQOperateType=o.LQLevelStatus=o.LQAdErrStr=o.LQCallAd=o.LQCallBase=o.LQAnalysisTag=o.LQByteDanceType=o.LQPlatformType=o.LQHttpDataType=o.LQHttpRequestType=o.LQEasing=o.LQCollideStatus=o.LQFollowTargetMode=o.LQCollideShape=o.LQBulletEmitterStatus=o.LQRecordStatus=void 0;var i=cc.Vec2;(function(t){t[t.Idle=0]="Idle",t[t.Start=1]="Start",t[t.Pause=2]="Pause"})(o.LQRecordStatus||(o.LQRecordStatus={})),function(t){t[t.Idle=0]="Idle",t[t.Start=1]="Start",t[t.End=2]="End"}(o.LQBulletEmitterStatus||(o.LQBulletEmitterStatus={})),function(t){t[t.Rect=1]="Rect",t[t.Circle=2]="Circle",t[t.Polygon=3]="Polygon"}(o.LQCollideShape||(o.LQCollideShape={})),function(t){t[t.Always=0]="Always",t[t.Once=1]="Once",t[t.Pass=2]="Pass"}(o.LQFollowTargetMode||(o.LQFollowTargetMode={})),function(t){t[t.Idle=0]="Idle",t[t.Live=1]="Live"}(o.LQCollideStatus||(o.LQCollideStatus={})),function(t){t.BackIn="backIn",t.BackOut="backOut",t.quadIn="quadIn",t.quadOut="quadOut",t.quadInOut="quadInOut",t.cubicIn="cubicIn",t.expoOut="expoOut"}(o.LQEasing||(o.LQEasing={})),function(t){t.Get="get",t.Post="post"}(o.LQHttpRequestType||(o.LQHttpRequestType={})),function(t){t[t.Text=0]="Text",t[t.Binary=1]="Binary"}(o.LQHttpDataType||(o.LQHttpDataType={})),function(t){t.unknown="\u672a\u77e5\u5e73\u53f0",t.all="\u5168\u5e73\u53f0",t.wx="\u5fae\u4fe1",t.tt="\u5b57\u8282\u8df3\u52a8",t.oppo="oppo",t.vivo="vivo",t.qq="qq",t.baidu="\u767e\u5ea6",t.kwaigame="\u5feb\u624b",t.android="\u5b89\u5353",t.ios="\u82f9\u679c",t.browser="\u6d4f\u89c8\u5668"}(o.LQPlatformType||(o.LQPlatformType={})),function(t){t.tt="\u5934\u6761",t.tt_lite="\u5934\u6761\u6781\u901f\u7248",t.douyin="\u6296\u97f3",t.douyin_lite="\u6296\u97f3\u6781\u901f\u7248",t.ppx="\u76ae\u76ae\u867e",t.devtools="\u5b57\u8282\u5f00\u53d1\u5de5\u5177"}(o.LQByteDanceType||(o.LQByteDanceType={})),function(t){t.VideoComplete="video_complete",t.VideoBegin="video_begin",t.VideoInterrupt="video_interrupt",t.InterstitialShow="interstitial_show",t.BannerShow="banner_show",t.ExportShow="export_show",t.NativeShow="native_show",t.NativeClick="native_show"}(o.LQAnalysisTag||(o.LQAnalysisTag={})),function(t){t[t.InitSdk=0]="InitSdk",t[t.KeepScreenOn=1]="KeepScreenOn",t[t.Vibrate=2]="Vibrate",t[t.GetVersionCode=3]="GetVersionCode",t[t.GetVersionName=4]="GetVersionName",t[t.OpenUrl=5]="OpenUrl",t[t.DeleteDir=6]="DeleteDir",t[t.DeleteFile=7]="DeleteFile"}(o.LQCallBase||(o.LQCallBase={})),function(t){t[t.ShowBanner=0]="ShowBanner",t[t.HideBanner=1]="HideBanner",t[t.ShowVideo=2]="ShowVideo",t[t.ShowInterstitial=3]="ShowInterstitial",t[t.ShowNative=4]="ShowNative",t[t.CacheAd=5]="CacheAd"}(o.LQCallAd||(o.LQCallAd={})),function(t){t.Unsupported="\u4e0d\u652f\u6301",t.NoParameters="\u6ca1\u6709\u914d\u7f6e\u53c2\u6570",t.NoAD="\u6682\u65e0\u5e7f\u544a",t.VersionOld="\u7248\u672c\u8fc7\u4f4e",t.VideoInterrupt="\u4e2d\u65ad\u64ad\u653e",t.InstanceErr="\u5b9e\u4f8b\u4e3a\u7a7a",t.AlreadyExist="\u5df2\u7ecf\u5b58\u5728",t.IntervalTooShort="\u95f4\u9694\u592a\u77ed"}(o.LQAdErrStr||(o.LQAdErrStr={})),function(t){t[t.Begin=0]="Begin",t[t.Failed=1]="Failed",t[t.Complete=2]="Complete"}(o.LQLevelStatus||(o.LQLevelStatus={})),function(t){t[t.ClickNode=0]="ClickNode",t[t.ClickScreen=1]="ClickScreen",t[t.Move=2]="Move",t[t.Null=3]="Null"}(o.LQOperateType||(o.LQOperateType={}));var n=function(){function t(){}return t.VEC_ZERO=i.ZERO,t}();o.LQConst=n,cc._RF.pop()},{}],lq_data:[function(t,e,o){"use strict";cc._RF.push(e,"a54702UNV9NA7pYgQd6eA5/","lq_data"),Object.defineProperty(o,"__esModule",{value:!0}),o.LQPlatformData=o.LQShareData=o.LQNativeComponent=o.LQRect=void 0;var i=cc.Vec2,n=cc.Rect,c=function(){function t(t,e,o,i){this.x=t,this.y=e,this.width=o,this.height=i,this.half_width=.5*o,this.half_height=.5*i}return t.prototype.top_left=function(){return new i(this.x-this.half_width,this.y+this.half_height)},t.prototype.top_right=function(){return new i(this.x+this.half_width,this.y+this.half_height)},t.prototype.bottom_left=function(){return new i(this.x-this.half_width,this.y-this.half_height)},t.prototype.bottom_right=function(){return new i(this.x+this.half_width,this.y-this.half_height)},t.prototype.pos=function(){return new i(this.x,this.y)},t.prototype.sub=function(t){return new i(t.x-this.x,t.y-this.y)},t.prototype.add=function(t){return new i(t.x+this.x,t.y+this.y)},t.prototype.to_cocos_rect=function(){return new n(this.x-this.half_width,this.y-this.half_height,this.width,this.height)},t}();o.LQRect=c;o.LQNativeComponent=function(){this.node_btn_arr=[]};o.LQShareData=function(t){t.title&&(this.title=t.title),t.remote_url&&(this.remote_url=t.remote_url),t.url_id&&(this.url_id=t.url_id),t.query&&(this.query=t.query),t.content&&(this.content=t.content),t.extra&&(this.extra=t.extra),t.type&&(this.type=t.type)};o.LQPlatformData=function(){},cc._RF.pop()},{}],lq_game_util:[function(t,e,o){"use strict";cc._RF.push(e,"63c53CB9dhL/phFOPtTeuF7","lq_game_util"),Object.defineProperty(o,"__esModule",{value:!0}),o.LQGameUtil=void 0;var i=cc.director,n=cc.tween,c=cc.visibleRect,a=cc.find,r=function(){function t(){}return t.get_image=function(t,e,o){void 0===o&&(o=!0),t&&""!==t?this.image_cache[t]&&e(!0,this.image_cache[t]):e(!1,void 0)},t.canvas_policy=function(t,e,o){return c.height/c.width>o/e?(t.fitHeight=!1,t.fitWidth=!0):(t.fitHeight=!0,t.fitWidth=!1),t.fitHeight},t.recursion_node_property=function(t,e){t.parent&&(e.value*=t.parent[e.key],this.recursion_node_property(t.parent,e))},t.find_node=function(t){if(!t||t.length<=0)console.warn("\u8def\u5f84\u4e0d\u6b63\u786e");else{var e=t.split("/"),o=a(e[0]);if(o){for(var i=o,n=1;n0?o:o+6.28},t.intersects_rect=function(t,e){return Math.abs(t.x-e.x)e.x-.5*e.width&&t.xe.y-.5*e.height&&t.y=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0});var a=cc._decorator,r=a.ccclass,s=a.property,l=(a.requireComponent,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.node1=null,e.node2=null,e.node3=null,e.localTest=!1,e.clientTestVersion="1.0.0",e.testVersion=null,e}return n(e,t),e.prototype.start=function(){},e.prototype.containsTrain=function(t){return/from=train/i.test(t)},e.prototype.startGame=function(){cc.director.loadScene("GameScene")},e.prototype.clickBtn=function(t,e){cc.fx.GameConfig.GM_INFO.custom=parseInt(e),cc.director.loadScene("GameScene")},e.prototype.openRank=function(){cc.director.loadScene("RankScene")},e.prototype.update=function(){},c([s(cc.Node)],e.prototype,"node1",void 0),c([s(cc.Node)],e.prototype,"node2",void 0),c([s(cc.Node)],e.prototype,"node3",void 0),c([s(!1)],e.prototype,"localTest",void 0),c([s("")],e.prototype,"clientTestVersion",void 0),c([s(cc.Label)],e.prototype,"testVersion",void 0),c([r],e)}(cc.Component));o.default=l,cc._RF.pop()},{}],position:[function(t,e){"use strict";cc._RF.push(e,"e0e34n/+FRF5JdkULm6vdT0","position"),cc._RF.pop()},{}],share:[function(t,e){"use strict";cc._RF.push(e,"7290caA39xMWZc2phTMKovP","share"),cc._RF.pop()},{}],"use_v2.1-2.2.1_cc.Toggle_event_1":[function(t,e){"use strict";cc._RF.push(e,"c9ad1iUTB1PyqJ3cmtMGJ31","use_v2.1-2.2.1_cc.Toggle_event_1"),cc.Toggle&&(cc.Toggle._triggerEventInScript_isChecked=!0),cc._RF.pop()},{}],"use_v2.1-2.2.1_cc.Toggle_event":[function(t,e){"use strict";cc._RF.push(e,"7a231Rz0d9LBYYgY3bDYlLB","use_v2.1-2.2.1_cc.Toggle_event"),cc.Toggle&&(cc.Toggle._triggerEventInScript_isChecked=!0),cc._RF.pop()},{}],"\u878d\u5316":[function(t,e,o){"use strict";cc._RF.push(e,"341aezWi/BCGa2q28VO8ioy","\u878d\u5316");var i,n=this&&this.__extends||(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){function o(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),c=this&&this.__decorate||function(t,e,o,i){var n,c=arguments.length,a=c<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,i);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(c<3?n(a):c>3?n(e,o,a):n(e,o))||a);return c>3&&a&&Object.defineProperty(e,o,a),a};Object.defineProperty(o,"__esModule",{value:!0}),o.IceMelt=void 0;var a=cc._decorator,r=a.ccclass,s=(a.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.speed=1,e._isMelt=!1,e._time=0,e}return n(e,t),e.prototype.start=function(){this._material=this.node.getComponent(cc.Sprite).getMaterial(0)},e.prototype.update=function(t){this._material&&this._isMelt&&(this._material.setProperty("u_time",this._time),this._time+=t*this.speed)},e.prototype.startMelt=function(){this._isMelt=!0,this._time=0},c([r()],e)}(cc.Component));o.IceMelt=s,cc._RF.pop()},{}]},{},["Barrier","Block","CollisionDetection","ControlManager","DynamicAtlasManager","GameManager","GameOver","GameScene","JiaZai","Load","Map","MapBlock","NewMode","NumberToImage","Pause","RankManager","Reduce","SceneManager","DouyinEntranceView","MiniGameManager","MiniGameSdk","Wall","Window","btnControl","lq_const","lq_data","lq_interface","lq_base_util","lq_game_util","lq_math_util","lq_platform_util","lq_pool_util","lq_collide","lq_collide_base","lq_collide_config","lq_collide_system","GameConfig","HttpUtil","crypto-js.min","GameAppStart","AudioManager","Notification","ItemRender","List","share","Storage","GameTool","peizhi","position","Adhesive","Boom","Freeze","Key","Lock","Star","NewScript","\u878d\u5316","use_v2.1-2.2.1_cc.Toggle_event","use_v2.1-2.2.1_cc.Toggle_event_1","TmoAssembler","TmoObjectGroup","TmoSprite","TmoTiledLayer","TmoTiledMap"]); \ No newline at end of file diff --git a/library/imports/00/006ec77b-2f24-4f23-8685-898cc6802c7f.json b/library/imports/00/006ec77b-2f24-4f23-8685-898cc6802c7f.json deleted file mode 100644 index 4ff6e46..0000000 --- a/library/imports/00/006ec77b-2f24-4f23-8685-898cc6802c7f.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "9color4", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1276, - 488, - 60, - 146 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 60, - 146 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/01/01a25c6d-3527-4d0b-8ac0-f3e54bd2863e.json b/library/imports/01/01a25c6d-3527-4d0b-8ac0-f3e54bd2863e.json deleted file mode 100644 index 3ff1717..0000000 --- a/library/imports/01/01a25c6d-3527-4d0b-8ac0-f3e54bd2863e.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "5color2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 387, - 671, - 258, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 258, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/d7/d7c81651-f2a3-4da1-aad2-f48c9773d1aa.json b/library/imports/01/01d1aed9-bd88-49f7-940f-39d72a62a6e7.json similarity index 72% rename from library/imports/d7/d7c81651-f2a3-4da1-aad2-f48c9773d1aa.json rename to library/imports/01/01d1aed9-bd88-49f7-940f-39d72a62a6e7.json index 38eb71b..0044e2f 100644 --- a/library/imports/d7/d7c81651-f2a3-4da1-aad2-f48c9773d1aa.json +++ b/library/imports/01/01d1aed9-bd88-49f7-940f-39d72a62a6e7.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_5", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1269, 1185, diff --git a/library/imports/02/0237ad36-2cdb-4e29-944a-8720564056bc.json b/library/imports/02/0237ad36-2cdb-4e29-944a-8720564056bc.json index f8aa391..00a15e5 100644 --- a/library/imports/02/0237ad36-2cdb-4e29-944a-8720564056bc.json +++ b/library/imports/02/0237ad36-2cdb-4e29-944a-8720564056bc.json @@ -1074,7 +1074,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/02/02a22e2f-85e0-4ce1-a955-6ea4bf514319.json b/library/imports/02/02a22e2f-85e0-4ce1-a955-6ea4bf514319.json deleted file mode 100644 index b050245..0000000 --- a/library/imports/02/02a22e2f-85e0-4ce1-a955-6ea4bf514319.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "wall4", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1129, - 488, - 137, - 145 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 137, - 145 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/02/02bf3192-04b2-440b-bee7-f63b5e749abf.json b/library/imports/02/02bf3192-04b2-440b-bee7-f63b5e749abf.json deleted file mode 100644 index d27eac3..0000000 --- a/library/imports/02/02bf3192-04b2-440b-bee7-f63b5e749abf.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "7down2", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 615, - 612, - 244, - 46 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 244, - 46 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/9b/9bc2635a-fd18-4c29-96f1-5bdf2e3ca994.json b/library/imports/03/03a5a06c-65ca-4848-b677-814ceca367e9.json similarity index 73% rename from library/imports/9b/9bc2635a-fd18-4c29-96f1-5bdf2e3ca994.json rename to library/imports/03/03a5a06c-65ca-4848-b677-814ceca367e9.json index c016b19..505b990 100644 --- a/library/imports/9b/9bc2635a-fd18-4c29-96f1-5bdf2e3ca994.json +++ b/library/imports/03/03a5a06c-65ca-4848-b677-814ceca367e9.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_16", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 398, 283, diff --git a/library/imports/05/0580cc03-5e99-4b1c-ae2f-61378360f51d.json b/library/imports/05/0580cc03-5e99-4b1c-ae2f-61378360f51d.json deleted file mode 100644 index 6598e26..0000000 --- a/library/imports/05/0580cc03-5e99-4b1c-ae2f-61378360f51d.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "6down2", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 615, - 330, - 243, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 243, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/06/06f9f620-7a88-4fb8-bc08-ac7d9db5b807.json b/library/imports/06/06f9f620-7a88-4fb8-bc08-ac7d9db5b807.json deleted file mode 100644 index af1fb41..0000000 --- a/library/imports/06/06f9f620-7a88-4fb8-bc08-ac7d9db5b807.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "skeleton", - "texture": "dca5e70b-8d3f-4ac0-abe7-d0c5647f7837", - "atlas": "", - "rect": [ - 2, - 2, - 24, - 89 - ], - "offset": [ - -34, - 1.5 - ], - "originalSize": [ - 96, - 96 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/07/071c697b-6b3e-4294-a6bb-e433ef19e445.png b/library/imports/07/071c697b-6b3e-4294-a6bb-e433ef19e445.png deleted file mode 100644 index 6f4d9ec..0000000 Binary files a/library/imports/07/071c697b-6b3e-4294-a6bb-e433ef19e445.png and /dev/null differ diff --git a/library/imports/07/071c697b-6b3e-4294-a6bb-e433ef19e445@6c48a.json b/library/imports/07/071c697b-6b3e-4294-a6bb-e433ef19e445@6c48a.json deleted file mode 100644 index 11de9b6..0000000 --- a/library/imports/07/071c697b-6b3e-4294-a6bb-e433ef19e445@6c48a.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "bang", - "texture": "071c697b-6b3e-4294-a6bb-e433ef19e445", - "atlas": "", - "rect": [ - 0, - 0, - 186, - 218 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 186, - 218 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/0a/0a33af4a-6c55-4b97-a88e-80ce9d1a2321.json b/library/imports/0a/0a33af4a-6c55-4b97-a88e-80ce9d1a2321.json deleted file mode 100644 index e7522d6..0000000 --- a/library/imports/0a/0a33af4a-6c55-4b97-a88e-80ce9d1a2321.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "__type__": "cc.Texture2D", - "content": "0,9729,9729,33071,33071,0,0,1" -} \ No newline at end of file diff --git a/library/imports/0a/0a33af4a-6c55-4b97-a88e-80ce9d1a2321.png b/library/imports/0a/0a33af4a-6c55-4b97-a88e-80ce9d1a2321.png deleted file mode 100644 index 3059d8c..0000000 Binary files a/library/imports/0a/0a33af4a-6c55-4b97-a88e-80ce9d1a2321.png and /dev/null differ diff --git a/library/imports/53/5342450a-68a2-4c7d-b26a-327243e82e67.json b/library/imports/0a/0ac33287-c45a-471c-ac50-5039da17ea1d.json similarity index 72% rename from library/imports/53/5342450a-68a2-4c7d-b26a-327243e82e67.json rename to library/imports/0a/0ac33287-c45a-471c-ac50-5039da17ea1d.json index c65eedc..71e46df 100644 --- a/library/imports/53/5342450a-68a2-4c7d-b26a-327243e82e67.json +++ b/library/imports/0a/0ac33287-c45a-471c-ac50-5039da17ea1d.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_5", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1513, 1175, diff --git a/library/imports/0e/0e005ec2-f5a3-41d3-8a99-7ea6d784440d.json b/library/imports/0e/0e005ec2-f5a3-41d3-8a99-7ea6d784440d.json deleted file mode 100644 index 0ce93b1..0000000 --- a/library/imports/0e/0e005ec2-f5a3-41d3-8a99-7ea6d784440d.json +++ /dev/null @@ -1,660 +0,0 @@ -{ - "__type__": "sp.SkeletonData", - "_name": "skeleton", - "_objFlags": 0, - "_native": "", - "_skeletonJson": { - "skeleton": { - "hash": "8JO/UTer3ajOZPnOtjA7VMfz2+I", - "spine": "3.8.99", - "x": -476.91, - "y": -152.86, - "width": 795, - "height": 728, - "images": "", - "audio": "D:/work/block/做完的/解扣" - }, - "bones": [ - { - "name": "root", - "x": 8.64, - "y": -17.49 - }, - { - "name": "bone3", - "parent": "root", - "x": -11.52, - "y": 52.57 - }, - { - "name": "kou1", - "parent": "bone3", - "x": 17.41, - "y": -32.85 - }, - { - "name": "bone", - "parent": "bone3", - "x": 16.62, - "y": -45.84 - }, - { - "name": "luosi", - "parent": "bone", - "x": 0.3, - "y": 0.82, - "scaleX": 0.6, - "scaleY": 0.6 - }, - { - "name": "bone2", - "parent": "bone3", - "x": 16.9, - "y": -19.1 - }, - { - "name": "luosi2", - "parent": "bone2", - "x": 0.3, - "y": 0.82, - "scaleX": 0.6, - "scaleY": 0.6 - }, - { - "name": "bone4", - "parent": "root", - "x": -40.06, - "y": 52.8 - }, - { - "name": "kou2", - "parent": "bone4", - "x": 17.41, - "y": -32.85 - }, - { - "name": "bone5", - "parent": "bone4", - "x": 16.42, - "y": -45.84 - }, - { - "name": "luosi3", - "parent": "bone5", - "x": 0.3, - "y": 0.82, - "scaleX": 0.6, - "scaleY": 0.6 - }, - { - "name": "bone6", - "parent": "bone4", - "x": 16.5, - "y": -18.9 - }, - { - "name": "luosi4", - "parent": "bone6", - "x": 0.3, - "y": 0.82, - "scaleX": 0.6, - "scaleY": 0.6 - } - ], - "slots": [ - { - "name": "连接块/连接块", - "bone": "root" - }, - { - "name": "连接块/kou1", - "bone": "kou1", - "attachment": "连接块/kou2shu" - }, - { - "name": "连接块/kou2", - "bone": "kou2", - "attachment": "连接块/kou2shu" - }, - { - "name": "连接块/luosi", - "bone": "luosi", - "attachment": "连接块/luosi" - }, - { - "name": "连接块/luosi6", - "bone": "luosi3", - "attachment": "连接块/luosi" - }, - { - "name": "连接块/luosi4", - "bone": "luosi2", - "attachment": "连接块/luosi" - }, - { - "name": "连接块/luosi8", - "bone": "luosi4", - "attachment": "连接块/luosi" - }, - { - "name": "连接块/luosi2", - "bone": "bone", - "attachment": "连接块/luosi2" - }, - { - "name": "连接块/luosi5", - "bone": "bone5", - "attachment": "连接块/luosi2" - }, - { - "name": "连接块/luosi3", - "bone": "bone2", - "attachment": "连接块/luosi2" - }, - { - "name": "连接块/luosi7", - "bone": "bone6", - "attachment": "连接块/luosi2" - } - ], - "skins": [ - { - "name": "default", - "attachments": { - "连接块/kou1": { - "连接块/kou2shu": { - "width": 24, - "height": 52 - } - }, - "连接块/kou2": { - "连接块/kou2shu": { - "width": 24, - "height": 52 - } - }, - "连接块/luosi": { - "连接块/luosi": { - "x": -0.28, - "y": -3.1, - "width": 23, - "height": 21 - } - }, - "连接块/luosi2": { - "连接块/luosi2": { - "x": -0.06, - "y": -0.22, - "width": 12, - "height": 12 - } - }, - "连接块/luosi3": { - "连接块/luosi2": { - "x": -0.06, - "y": -0.22, - "width": 12, - "height": 12 - } - }, - "连接块/luosi4": { - "连接块/luosi": { - "x": -0.28, - "y": -3.1, - "width": 23, - "height": 21 - } - }, - "连接块/luosi5": { - "连接块/luosi2": { - "x": -0.06, - "y": -0.22, - "width": 12, - "height": 12 - } - }, - "连接块/luosi6": { - "连接块/luosi": { - "x": -0.28, - "y": -3.1, - "width": 23, - "height": 21 - } - }, - "连接块/luosi7": { - "连接块/luosi2": { - "x": -0.06, - "y": -0.22, - "width": 12, - "height": 12 - } - }, - "连接块/luosi8": { - "连接块/luosi": { - "x": -0.28, - "y": -3.1, - "width": 23, - "height": 21 - } - } - } - } - ], - "animations": { - "animation": { - "slots": { - "连接块/kou1": { - "color": [ - { - "time": 0.3333, - "color": "ffffffff" - }, - { - "time": 0.6, - "color": "ffffff00" - } - ] - }, - "连接块/kou2": { - "color": [ - { - "time": 0.6667, - "color": "ffffffff" - }, - { - "time": 0.9333, - "color": "ffffff00" - } - ] - }, - "连接块/luosi": { - "color": [ - { - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.3333, - "color": "ffffff00" - }, - { - "time": 0.3667, - "color": "ffffffff" - }, - { - "time": 0.6667, - "color": "ffffff00" - } - ] - }, - "连接块/luosi2": { - "color": [ - { - "time": 0.3333, - "color": "ffffffff" - }, - { - "time": 0.3667, - "color": "ffffff00" - } - ] - }, - "连接块/luosi3": { - "color": [ - { - "time": 0.4667, - "color": "ffffffff" - }, - { - "time": 0.5, - "color": "ffffff00" - } - ] - }, - "连接块/luosi4": { - "color": [ - { - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.4667, - "color": "ffffff00" - }, - { - "time": 0.5, - "color": "ffffffff" - }, - { - "time": 0.8, - "color": "ffffff00" - } - ] - }, - "连接块/luosi5": { - "color": [ - { - "time": 0.5, - "color": "ffffffff" - }, - { - "time": 0.5333, - "color": "ffffff00" - } - ] - }, - "连接块/luosi6": { - "color": [ - { - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.3333, - "color": "ffffff00" - }, - { - "time": 0.3667, - "color": "ffffffff" - }, - { - "time": 0.6667, - "color": "ffffff00" - } - ] - }, - "连接块/luosi7": { - "color": [ - { - "time": 0.6333, - "color": "ffffffff" - }, - { - "time": 0.6667, - "color": "ffffff00" - } - ] - }, - "连接块/luosi8": { - "color": [ - { - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.4667, - "color": "ffffff00" - }, - { - "time": 0.5, - "color": "ffffffff" - }, - { - "time": 0.8, - "color": "ffffff00" - } - ] - } - }, - "bones": { - "kou1": { - "rotate": [ - { - "time": 0.3333 - }, - { - "time": 0.4667, - "angle": 35.85 - }, - { - "time": 0.6, - "angle": -136.48 - } - ], - "translate": [ - { - "time": 0.3333 - }, - { - "time": 0.6, - "x": 160.21, - "y": -504.28 - } - ] - }, - "luosi": { - "rotate": [ - { - "time": 0.3667 - }, - { - "time": 0.6667, - "angle": -120.91 - } - ] - }, - "bone": { - "rotate": [ - {}, - { - "time": 0.1667, - "angle": -177 - }, - { - "time": 0.3333, - "angle": 81.64 - } - ], - "translate": [ - { - "time": 0.3333 - }, - { - "time": 0.6667, - "x": -231.71, - "y": 365.51 - } - ], - "scale": [ - {}, - { - "time": 0.3333, - "x": 1.1, - "y": 1.1 - }, - { - "time": 0.6667, - "x": 3, - "y": 3 - } - ] - }, - "bone2": { - "rotate": [ - { - "time": 0.1333 - }, - { - "time": 0.3, - "angle": -177 - }, - { - "time": 0.4667, - "angle": 81.64 - } - ], - "translate": [ - { - "time": 0.4667 - }, - { - "time": 0.8, - "x": 258.57, - "y": 206.19 - } - ], - "scale": [ - { - "time": 0.1333 - }, - { - "time": 0.4667, - "x": 1.1, - "y": 1.1 - }, - { - "time": 0.8, - "x": 3, - "y": 3 - } - ] - }, - "luosi2": { - "rotate": [ - { - "time": 0.5 - }, - { - "time": 0.8, - "angle": -120.91 - } - ] - }, - "kou2": { - "rotate": [ - { - "time": 0.6667 - }, - { - "time": 0.9333, - "angle": -112.36 - } - ], - "translate": [ - { - "time": 0.6667 - }, - { - "time": 0.9333, - "x": -410.73, - "y": -378.57 - } - ] - }, - "bone5": { - "rotate": [ - { - "time": 0.1667 - }, - { - "time": 0.3333, - "angle": -177 - }, - { - "time": 0.5, - "angle": 81.64 - } - ], - "translate": [ - { - "time": 0.5 - }, - { - "time": 0.8333, - "x": -351.46, - "y": -250.38 - } - ], - "scale": [ - { - "time": 0.1667 - }, - { - "time": 0.5, - "x": 1.1, - "y": 1.1 - }, - { - "time": 0.8333, - "x": 3, - "y": 3 - } - ] - }, - "luosi3": { - "rotate": [ - { - "time": 0.3667 - }, - { - "time": 0.6667, - "angle": -120.91 - } - ] - }, - "bone6": { - "rotate": [ - { - "time": 0.3 - }, - { - "time": 0.4667, - "angle": -177 - }, - { - "time": 0.6333, - "angle": 81.64 - } - ], - "translate": [ - { - "time": 0.6333 - }, - { - "time": 0.9667, - "x": 173.03, - "y": -292.38 - } - ], - "scale": [ - { - "time": 0.3 - }, - { - "time": 0.6333, - "x": 1.1, - "y": 1.1 - }, - { - "time": 0.9667, - "x": 3, - "y": 3 - } - ] - }, - "luosi4": { - "rotate": [ - { - "time": 0.5 - }, - { - "time": 0.8, - "angle": -120.91 - } - ] - } - } - } - } - }, - "_atlasText": "\nskeleton.png\nsize: 96,96\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\n连接块/kou2shu\n rotate: false\n xy: 2, 39\n size: 24, 52\n orig: 24, 52\n offset: 0, 0\n index: -1\n连接块/luosi\n rotate: false\n xy: 2, 16\n size: 23, 21\n orig: 23, 21\n offset: 0, 0\n index: -1\n连接块/luosi2\n rotate: false\n xy: 2, 2\n size: 12, 12\n orig: 12, 12\n offset: 0, 0\n index: -1\n", - "textures": [ - { - "__uuid__": "dca5e70b-8d3f-4ac0-abe7-d0c5647f7837" - } - ], - "textureNames": [ - "skeleton.png" - ], - "scale": 1 -} \ No newline at end of file diff --git a/library/imports/0f/0f1dcd5c-03b8-4f85-9edc-9002472876e3.json b/library/imports/0f/0f1dcd5c-03b8-4f85-9edc-9002472876e3.json deleted file mode 100644 index f470445..0000000 --- a/library/imports/0f/0f1dcd5c-03b8-4f85-9edc-9002472876e3.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "3color5", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 64, - 390, - 61, - 267 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 267 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/11/118d4d54-d313-4f52-b49f-593effa13423.json b/library/imports/11/118d4d54-d313-4f52-b49f-593effa13423.json deleted file mode 100644 index e7522d6..0000000 --- a/library/imports/11/118d4d54-d313-4f52-b49f-593effa13423.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "__type__": "cc.Texture2D", - "content": "0,9729,9729,33071,33071,0,0,1" -} \ No newline at end of file diff --git a/library/imports/11/118d4d54-d313-4f52-b49f-593effa13423.png b/library/imports/11/118d4d54-d313-4f52-b49f-593effa13423.png deleted file mode 100644 index c261a22..0000000 Binary files a/library/imports/11/118d4d54-d313-4f52-b49f-593effa13423.png and /dev/null differ diff --git a/library/imports/d5/d5603a7d-2064-4cfd-aad9-9216b171f1fd.json b/library/imports/13/138f8f36-a044-4bd6-bc77-537095928721.json similarity index 72% rename from library/imports/d5/d5603a7d-2064-4cfd-aad9-9216b171f1fd.json rename to library/imports/13/138f8f36-a044-4bd6-bc77-537095928721.json index acacc42..e3c3419 100644 --- a/library/imports/d5/d5603a7d-2064-4cfd-aad9-9216b171f1fd.json +++ b/library/imports/13/138f8f36-a044-4bd6-bc77-537095928721.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_0", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1822, 1742, diff --git a/library/imports/13/13f1b3eb-4cde-4c8e-9dee-16929acd6d24.atlas b/library/imports/13/13f1b3eb-4cde-4c8e-9dee-16929acd6d24.atlas deleted file mode 100644 index ead6b3b..0000000 --- a/library/imports/13/13f1b3eb-4cde-4c8e-9dee-16929acd6d24.atlas +++ /dev/null @@ -1,104 +0,0 @@ - -mofabang_texiao.png -size: 1000,1000 -format: RGBA8888 -filter: Linear,Linear -repeat: none -images/effects/chixu/chixu_00 - rotate: false - xy: 2, 334 - size: 151, 124 - orig: 200, 200 - offset: 12, 44 - index: -1 -images/effects/chixu/chixu_01 - rotate: true - xy: 159, 567 - size: 148, 132 - orig: 200, 200 - offset: 12, 37 - index: -1 -images/effects/chixu/chixu_02 - rotate: false - xy: 2, 460 - size: 153, 125 - orig: 200, 200 - offset: 15, 37 - index: -1 -images/effects/chixu/chixu_03 - rotate: false - xy: 2, 587 - size: 155, 128 - orig: 200, 200 - offset: 15, 36 - index: -1 -images/effects/chixu/chixu_04 - rotate: true - xy: 157, 416 - size: 149, 126 - orig: 200, 200 - offset: 21, 36 - index: -1 -images/effects/chixu/chixu_05 - rotate: true - xy: 155, 265 - size: 149, 123 - orig: 200, 200 - offset: 21, 36 - index: -1 -images/effects/chixu/chixu_06 - rotate: false - xy: 148, 143 - size: 147, 120 - orig: 200, 200 - offset: 23, 38 - index: -1 -images/effects/chixu/chixu_07 - rotate: true - xy: 2, 61 - size: 145, 119 - orig: 200, 200 - offset: 24, 39 - index: -1 -images/effects/chixu/chixu_08 - rotate: false - xy: 2, 208 - size: 144, 124 - orig: 200, 200 - offset: 23, 41 - index: -1 -images/effects/chixu/chixu_09 - rotate: false - xy: 123, 23 - size: 140, 118 - orig: 200, 200 - offset: 23, 43 - index: -1 -images/effects/chixu/chixu_10 - rotate: true - xy: 265, 2 - size: 139, 117 - orig: 200, 200 - offset: 23, 43 - index: -1 -images/effects/guangdian - rotate: false - xy: 2, 54 - size: 5, 5 - orig: 5, 5 - offset: 0, 0 - index: -1 -images/effects/huiguang - rotate: false - xy: 2, 717 - size: 278, 278 - orig: 311, 310 - offset: 17, 16 - index: -1 -images/effects/微信图片_20250515181822 - rotate: false - xy: 280, 305 - size: 93, 109 - orig: 93, 109 - offset: 0, 0 - index: -1 diff --git a/library/imports/13/13f1b3eb-4cde-4c8e-9dee-16929acd6d24.json b/library/imports/13/13f1b3eb-4cde-4c8e-9dee-16929acd6d24.json deleted file mode 100644 index c0a2e2f..0000000 --- a/library/imports/13/13f1b3eb-4cde-4c8e-9dee-16929acd6d24.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "__type__": "cc.Asset", - "_name": "mofabang_texiao", - "_objFlags": 0, - "_native": ".atlas" -} \ No newline at end of file diff --git a/library/imports/14/1405acc7-1f74-46f3-9975-839e5337673d.json b/library/imports/14/1405acc7-1f74-46f3-9975-839e5337673d.json deleted file mode 100644 index b57d92c..0000000 --- a/library/imports/14/1405acc7-1f74-46f3-9975-839e5337673d.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "4color1", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 881, - 758, - 138, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 138, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/14/143fa66b-dd28-48f7-ab12-bd21b93291b2.json b/library/imports/14/143fa66b-dd28-48f7-ab12-bd21b93291b2.json deleted file mode 100644 index 81eb16c..0000000 --- a/library/imports/14/143fa66b-dd28-48f7-ab12-bd21b93291b2.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "3down1", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 142, - 122, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 122, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/14/14a5bea5-f456-41e2-bfa1-01bded6786fd.json b/library/imports/14/14a5bea5-f456-41e2-bfa1-01bded6786fd.json deleted file mode 100644 index a476302..0000000 --- a/library/imports/14/14a5bea5-f456-41e2-bfa1-01bded6786fd.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "9down6", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 613, - 518, - 45, - 365 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 365 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/15/1544a27e-b778-409c-8b21-763ab3e3399d.json b/library/imports/15/1544a27e-b778-409c-8b21-763ab3e3399d.json deleted file mode 100644 index 530e028..0000000 --- a/library/imports/15/1544a27e-b778-409c-8b21-763ab3e3399d.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "10down3", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 370, - 565, - 363, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 363, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/15/15e917cb-b4e4-4694-a025-45bd3a31ccc3.json b/library/imports/15/15e917cb-b4e4-4694-a025-45bd3a31ccc3.json index af666c0..56bacf5 100644 --- a/library/imports/15/15e917cb-b4e4-4694-a025-45bd3a31ccc3.json +++ b/library/imports/15/15e917cb-b4e4-4694-a025-45bd3a31ccc3.json @@ -1366,7 +1366,7 @@ "heng": 3, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/15/15f7f173-be51-47f3-8314-66d14e63471f.json b/library/imports/15/15f7f173-be51-47f3-8314-66d14e63471f.json deleted file mode 100644 index e7522d6..0000000 --- a/library/imports/15/15f7f173-be51-47f3-8314-66d14e63471f.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "__type__": "cc.Texture2D", - "content": "0,9729,9729,33071,33071,0,0,1" -} \ No newline at end of file diff --git a/library/imports/15/15f7f173-be51-47f3-8314-66d14e63471f.png b/library/imports/15/15f7f173-be51-47f3-8314-66d14e63471f.png deleted file mode 100644 index 4824d46..0000000 Binary files a/library/imports/15/15f7f173-be51-47f3-8314-66d14e63471f.png and /dev/null differ diff --git a/library/imports/16/1672955d-283c-47be-a394-28cac1c6ba5b.json b/library/imports/16/1672955d-283c-47be-a394-28cac1c6ba5b.json deleted file mode 100644 index a3d4158..0000000 --- a/library/imports/16/1672955d-283c-47be-a394-28cac1c6ba5b.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "7color6", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1, - 1, - 62, - 387 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 62, - 387 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/18/18d68fd0-41ef-430e-9de2-d38b9e55b08c.json b/library/imports/18/18d68fd0-41ef-430e-9de2-d38b9e55b08c.json deleted file mode 100644 index 68cc47b..0000000 --- a/library/imports/18/18d68fd0-41ef-430e-9de2-d38b9e55b08c.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "shu_zl2_1", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 965, - 829, - 32, - 54 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 32, - 54 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/b1/b189fafa-f688-4ba2-a11b-839d37caaa2d.json b/library/imports/1d/1dae414a-cce8-4e94-869b-ed869b85a7a2.json similarity index 72% rename from library/imports/b1/b189fafa-f688-4ba2-a11b-839d37caaa2d.json rename to library/imports/1d/1dae414a-cce8-4e94-869b-ed869b85a7a2.json index 5349a80..1aa1a65 100644 --- a/library/imports/b1/b189fafa-f688-4ba2-a11b-839d37caaa2d.json +++ b/library/imports/1d/1dae414a-cce8-4e94-869b-ed869b85a7a2.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_2", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1239, 1438, diff --git a/library/imports/b4/b4b91baf-30a5-4a20-9084-ef6e355c06f7.json b/library/imports/1d/1dcd9c5e-14ca-455f-89b1-c0fb13ab5d33.json similarity index 72% rename from library/imports/b4/b4b91baf-30a5-4a20-9084-ef6e355c06f7.json rename to library/imports/1d/1dcd9c5e-14ca-455f-89b1-c0fb13ab5d33.json index 03e6e51..90186e6 100644 --- a/library/imports/b4/b4b91baf-30a5-4a20-9084-ef6e355c06f7.json +++ b/library/imports/1d/1dcd9c5e-14ca-455f-89b1-c0fb13ab5d33.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_13", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1132, 561, diff --git a/library/imports/1e/1ea884bd-1a65-433f-8fcd-773756b17779.json b/library/imports/1e/1ea884bd-1a65-433f-8fcd-773756b17779.json deleted file mode 100644 index 919af19..0000000 --- a/library/imports/1e/1ea884bd-1a65-433f-8fcd-773756b17779.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "10down1", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 565, - 122, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 122, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/20/20e22b3b-684d-405d-ac5b-5cd9ba4f9b66.json b/library/imports/20/20e22b3b-684d-405d-ac5b-5cd9ba4f9b66.json deleted file mode 100644 index ef27906..0000000 --- a/library/imports/20/20e22b3b-684d-405d-ac5b-5cd9ba4f9b66.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "5color6", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 907, - 1, - 61, - 386 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 386 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/21/21696b26-2ba1-410c-a02f-c7cf63fdb349.json b/library/imports/21/21696b26-2ba1-410c-a02f-c7cf63fdb349.json deleted file mode 100644 index 31835a2..0000000 --- a/library/imports/21/21696b26-2ba1-410c-a02f-c7cf63fdb349.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "2color6", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 65, - 1, - 62, - 386 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 62, - 386 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/21/21a5c85c-fbfb-4192-a7ee-e353dd75a2f2.json b/library/imports/21/21a5c85c-fbfb-4192-a7ee-e353dd75a2f2.json deleted file mode 100644 index 54822ce..0000000 --- a/library/imports/21/21a5c85c-fbfb-4192-a7ee-e353dd75a2f2.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "5down2", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 125, - 283, - 243, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 243, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js b/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js index 0ff42c8..c2606f2 100644 --- a/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js +++ b/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js @@ -102,6 +102,8 @@ var MapConroler = /** @class */ (function (_super) { this.homeCanTouch = true; this.againCanTouch = true; this.new_mode = 0; + this.count_Time = 0; + this.add_Time = 0; this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString(); this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString(); this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString(); @@ -143,8 +145,6 @@ var MapConroler = /** @class */ (function (_super) { this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time"); this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level"); this.timeNumber = cc.fx.GameConfig.LEVEL_INFO[0].time; - this.count_Time = 0; - this.add_Time = 0; NumberToImage_1.default.getTimeMargin(this.timeNumber, 50, "time_", this.timeLabel); // var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber); // this.timeLabel.string = timeTemp.toString(); @@ -169,6 +169,8 @@ var MapConroler = /** @class */ (function (_super) { this.mapBlockArray = []; this.freezeArray = []; this.loackArray = []; + this.count_Time = 0; + this.add_Time = 0; var startX = this.mapWidth % 2 == 0 ? -(this.mapWidth - 1) * 60 : -(this.mapWidth - 1) * 60; var startY = this.mapHeight % 2 == 0 ? -(this.mapHeight - 1) * 60 : -(this.mapHeight - 1) * 60; // startX =(this.mapWidth-1)*60 + 60; @@ -1153,11 +1155,7 @@ var MapConroler = /** @class */ (function (_super) { this.stopTimeCutDown(); // console.log("成功消除一个"); cc.fx.GameTool.changeCoin(40); - var timeData = { - count_Time: this.count_Time, - add_Time: this.add_Time - }; - cc.fx.GameTool.addLevel(timeData); + cc.fx.GameTool.addLevel(this.count_Time, this.add_Time); this.check_NewMode(); setTimeout(function () { _this.node.parent.parent.getChildByName("Win").active = true; @@ -1181,7 +1179,7 @@ var MapConroler = /** @class */ (function (_super) { cc.fx.AudioManager._instance.playEffect("anniu_Big", null); if (cc.fx.GameConfig.GM_INFO.level > 156) { cc.fx.GameConfig.GM_INFO.level = 156; - MapConroler_1._instance = null; + // MapConroler._instance = null; if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; this.openNewMode(2); @@ -1210,7 +1208,7 @@ var MapConroler = /** @class */ (function (_super) { } else { // console.log("下一关"); - MapConroler_1._instance = null; + // MapConroler._instance = null; if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; this.openNewMode(2); @@ -1241,7 +1239,7 @@ var MapConroler = /** @class */ (function (_super) { if (!this.againCanTouch) return; this.againCanTouch = false; - MapConroler_1._instance = null; + // MapConroler._instance = null; cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.parent.parent.parent.getChildByName("zhuanchang").active = true; this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); @@ -1314,7 +1312,7 @@ var MapConroler = /** @class */ (function (_super) { return; } // MiniGameSdk.API.showToast("体力值减少"); - MapConroler_1._instance = null; + // MapConroler._instance = null; cc.fx.GameConfig.LEVEL_INFO_init(false, 0); if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; diff --git a/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js.map b/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js.map index 07b4659..04804f3 100644 --- a/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js.map +++ b/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\Map.ts"],"names":[],"mappings":";;;;;AAAA,oBAAoB;AACpB,wEAAwE;AACxE,mBAAmB;AACnB,kFAAkF;AAClF,8BAA8B;AAC9B,kFAAkF;;;;;;;;;;;;;;;;;;;;;AAElF,6CAAwC;AAExC,iDAA4C;AAC5C,iDAAgD;AAE1C,IAAA,KAAsB,EAAE,CAAC,UAAU,EAAlC,OAAO,aAAA,EAAE,QAAQ,cAAiB,CAAC;AAK1C;IAAyC,+BAAY;IAArD;QAAA,qEAm+DC;QA99DG,iBAAW,GAAsB,EAAE,CAAC;QAGpC,gBAAU,GAAsB,EAAE,CAAC;QAGnC,oBAAc,GAAc,IAAI,CAAC;QAGjC,iBAAW,GAA2B,EAAE,CAAC;QAIzC,iBAAW,GAAsB,EAAE,CAAC;QAKpC,oBAAc,GAAc,IAAI,CAAC;QAGjC,aAAO,GAAc,IAAI,CAAC;QAE1B,gBAAU,GAAc,IAAI,CAAC;QAE7B,cAAQ,GAAc,IAAI,CAAC;QAG3B,UAAI,GAAY,IAAI,CAAC;QAGrB,cAAQ,GAAa,IAAI,CAAC;QAE1B,iBAAW,GAAa,IAAI,CAAC;QAE7B,gBAAU,GAAa,IAAI,CAAC;QAG5B,eAAS,GAAY,IAAI,CAAC;QAG1B,gBAAU,GAAY,IAAI,CAAC;QAG3B,gBAAU,GAAY,IAAI,CAAC;QAI3B,aAAO,GAAY,IAAI,CAAC;QAExB,eAAS,GAAY,IAAI,CAAC;QAC1B,gBAAU,GAAY,IAAI,CAAC;QAE3B,cAAQ,GAAW,CAAC,CAAC;QACrB,cAAQ,GAAW,CAAC,CAAC;QACrB,eAAS,GAAW,CAAC,CAAC;QACtB,aAAO,GAAW,CAAC,CAAC;QACpB,cAAQ,GAAW,CAAC,CAAC;QAUrB,kBAAY,GAAW,IAAI,CAAC,CAAA,QAAQ;QACpC,mBAAa,GAAY,IAAI,CAAC,CAAA,WAAW;QACzC,cAAQ,GAAY,KAAK,CAAC,CAAA,QAAQ;QAClC,aAAO,GAAY,KAAK,CAAC,CAAA,QAAQ;QACjC,eAAS,GAAY,KAAK,CAAC,CAAA,QAAQ;QACnC,gBAAU,GAAW,CAAC,CAAC,CAAC,YAAY;QACpC,gBAAU,GAAW,CAAC,CAAC,CAAC,WAAW;QACnC,cAAQ,GAAW,CAAC,CAAC,CAAG,MAAM;QAE9B,WAAK,GAAW,KAAK,CAAC,CAAA,MAAM;QAC5B,YAAM,GAAW,KAAK,CAAC,CAAA,MAAM;;IAi5DjC,CAAC;oBAn+DoB,WAAW;IA6F5B,4BAA4B;IAE5B,4BAAM,GAAN;QAAA,iBAkCC;QAhCG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;QAClD,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACzB,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,EAAC,MAAM,EAAC,KAAK,CAAC,CAAC;QACnH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,UAAC,KAAK;YAC5G,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE;gBACjC,eAAe;gBACf,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;aAC9E;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,IAAI;QACzB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,IAAI;QAC1B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,IAAI;QACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,IAAI;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAElB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QACxE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC3E,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAEzE,yCAAyC;QACzC,aAAW,CAAC,SAAS,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,2BAAK,GAAL;QACI,UAAU,CAAC;YACF,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,UAAC,GAAG,EAAE,KAAK;gBAClD,IAAI,GAAG,EAAE;oBACL,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;oBACzC,OAAO;iBACV;YACL,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,8BAA8B;QAC9B,IAAI,CAAC,WAAW,GAAG,qBAAW,CAAC,SAAS,CAAC,WAAW,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,qBAAW,CAAC,SAAS,CAAC,WAAW,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,qBAAW,CAAC,SAAS,CAAC,WAAW,CAAC;QACrD,gEAAgE;QAEhE,IAAI,CAAC,OAAO,EAAE,CAAC;IAEnB,CAAC;IAED,iCAAW,GAAX;QACI,IAAG,IAAI,CAAC,SAAS,IAAI,KAAK,EAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,cAAc;YACd,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/B,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YAC3C,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,KAAI,IAAI,CAAC,GAAE,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBACpC,IAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,EAAC;oBAC9C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;iBAC1E;aACJ;SACJ;IACL,CAAC;IAED,6BAAO,GAAP;QACI,gDAAgD;QAChD,IAAI,CAAC,SAAS,GAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,GAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAClF,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,uBAAa,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAC,EAAE,EAAC,OAAO,EAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACtE,gEAAgE;QAChE,+CAA+C;QAC/C,uBAAa,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,CAAC,UAAU,EAAC,KAAK,CAAC,CAAA;QAEzG,0BAA0B;QAE1B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7C,IAAI,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEvD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAGrB,IAAI,MAAM,GAAI,IAAI,CAAC,QAAQ,GAAC,CAAC,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAC,CAAC,CAAC,GAAC,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAC,CAAC,CAAC,GAAC,EAAE,CAAC;QAC7E,IAAI,MAAM,GAAI,IAAI,CAAC,SAAS,GAAC,CAAC,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,GAAC,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,GAAC,EAAE,CAAC;QAChF,qCAAqC;QACrC,uCAAuC;QAEvC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAC;YAClC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAE3B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAC;gBACnC,IAAI,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBACpD,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;gBACzC,2EAA2E;gBAC3E,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;gBAC5D,IAAG,QAAQ,IAAI,IAAI,EAAC;oBAChB,IAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,QAAQ,EAAC,KAAK,CAAC,EAAC;wBAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAClC;iBACJ;gBACD,IAAG,GAAG,IAAG,IAAI,EAAC;oBACV,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAC,CAAC;2BAC9D,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAC;wBACjC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;wBACpB,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;wBACjC,KAAK,CAAC,iBAAiB,EAAE,CAAC;wBAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAC7B;;wBACI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACjC;qBACG;oBACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAC,CAAC;2BAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAC;wBACjC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;wBACpB,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;wBACjC,KAAK,CAAC,iBAAiB,EAAE,CAAC;wBAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAC7B;;wBACI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACjC;gBAED,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACrC;SACJ;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,EAAE,CAAC;IAErB,CAAC;IAED,MAAM;IACV,eAAe;IAEf,MAAM;IACN,eAAe;IAKf,+BAAS,GAAT;QAAA,iBA2FC;QA1FG,IAAI,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChD,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa;QAC5B,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAC,cAAc;QACxC,IAAM,aAAa,GAAG,EAAE,CAAC,CAAC,WAAW;QACrC,IAAM,aAAa,GAAG,CAAC,CAAC,CAAC,WAAW;QAEpC,IAAM,YAAY,GAAG;YACjB,IAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;oCAC3B,CAAC;gBACN,IAAI,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClC,oBAAoB;gBACpB,IAAM,WAAW,GAAG,KAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACtD,IAAI,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBACxC,KAAK,CAAC,MAAM,GAAG,KAAI,CAAC,IAAI,CAAC;gBACzB,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,IAAI,SAAS,CAAC,KAAK,IAAI,EAAE,EAAE;oBACvB,KAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;oBACnB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,EAAE;wBACrB,IAAI,IAAI,GAAG;4BACP,EAAE,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC;4BACpB,KAAK,EAAE,SAAS,CAAC,KAAK;4BACtB,KAAK,EAAE,SAAS,CAAC,QAAQ;4BACzB,IAAI,EAAE,EAAE;4BACR,QAAQ,EAAE,SAAS,CAAC,QAAQ;4BAC5B,QAAQ,EAAE,SAAS,CAAC,KAAK;yBAC5B,CAAC;wBACF,oBAAoB;wBACpB,IAAM,aAAa,GAAG,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACnD,IAAI,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;wBAC5C,OAAO,CAAC,MAAM,GAAG,KAAI,CAAC,IAAI,CAAC;wBAC3B,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBAE7D,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC1B,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;wBACjE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;wBAE5D,KAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;qBACtB;yBAAM,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,EAAE;wBAC5B,IAAG,SAAS,CAAC,YAAY,GAAG,CAAC,EAAC;4BAC1B,KAAK,EAAE,CAAC;;yBAEX;wBACD,KAAK,EAAE,CAAC;wBACR,IAAI,MAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;wBAC7B,oBAAoB;wBACpB,IAAM,aAAa,GAAG,KAAI,CAAC,WAAW,CAAC,MAAI,CAAC,KAAK,CAAC,CAAC;wBACnD,IAAI,SAAO,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;wBAC5C,SAAO,CAAC,MAAM,GAAG,KAAI,CAAC,IAAI,CAAC;wBAC3B,SAAO,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,MAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBAE7D,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAO,CAAC,CAAC;wBAC1B,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,SAAO,EAAC,KAAK,CAAC,CAAC;wBACvE,UAAU,CAAC;4BACP,SAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,IAAI,CAAC,CAAC;wBACrE,CAAC,EAAE,GAAG,CAAC,CAAC;wBACR,KAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;qBACtB;yBAAM;wBACH,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qBAC/C;iBACJ;qBACG;oBACA,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACjD;gBACD,KAAK,EAAE,CAAC;;YAxDZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE;wBAA7D,CAAC;aAyDT;YACD,IAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAClC,IAAM,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;YACtC,uBAAuB;YACvB,IAAI,SAAS,GAAG,EAAE,EAAE;gBAChB,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;aACpE;iBAAM;gBACH,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;aACpE;YAED,oBAAoB;YACpB,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE;gBAC3B,sCAAsC;gBACtC,KAAI,CAAC,YAAY,CAAC;oBACd,YAAY,EAAE,CAAC;gBACnB,CAAC,EAAE,CAAC,CAAC,CAAC;aACT;iBAAM;aAEN;QACL,CAAC,CAAC;QAEF,WAAW;QACX,YAAY,EAAE,CAAC;IACnB,CAAC;IACD,yBAAyB;IACzB,+BAAS,GAAT,UAAU,SAA2D;QACjE,OAAO,SAAS,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;YACvB,0BAA0B;YAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE;gBAC9B,OAAO,CAAC,CAAC;aACZ;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE;gBAC9B,OAAO,CAAC,CAAC,CAAC;aACb;YAED,2BAA2B;YAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE;gBAC9B,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;aAC1B;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE;gBAC9B,OAAO,CAAC,CAAC;aACZ;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE;gBAC9B,OAAO,CAAC,CAAC,CAAC;aACb;YAED,6BAA6B;YAC7B,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,EAAE;gBAClC,OAAO,CAAC,CAAC,CAAC;aACb;YACD,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,EAAE;gBAClC,OAAO,CAAC,CAAC;aACZ;YAED,iBAAiB;YACjB,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,MAAM;IAEN,8BAAQ,GAAR;QAAA,iBAsCC;QArCG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa;QAC5B,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC,cAAc;QACvC,IAAM,aAAa,GAAG,EAAE,CAAC,CAAC,WAAW;QACrC,IAAM,aAAa,GAAG,CAAC,CAAC,CAAC,WAAW;QAEpC,IAAM,WAAW,GAAG;YAChB,IAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,IAAI,KAAK,GAAG,KAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtE,IAAI,KAAK,GAAG,KAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,GAAG,GAAG,KAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxH,IAAI,GAAG,IAAI,IAAI,EAAE;oBACb,KAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBAC/B;gBACD,KAAK,EAAE,CAAC;aACX;YACD,IAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAClC,IAAM,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;YACtC,uBAAuB;YACvB,IAAI,SAAS,GAAG,EAAE,EAAE;gBAChB,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;aAClE;iBAAM;gBACH,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;aAClE;YAED,oBAAoB;YACpB,IAAI,KAAK,GAAG,KAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC9B,KAAI,CAAC,YAAY,CAAC;oBACd,WAAW,EAAE,CAAC;gBAClB,CAAC,EAAE,CAAC,CAAC,CAAC;aACT;iBAAM;gBACH,mBAAmB;gBACnB,KAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;QACL,CAAC,CAAC;QAEF,WAAW;QACX,WAAW,EAAE,CAAC;IAClB,CAAC;IAED,eAAe;IAEX,qCAAe,GAAf,UAAgB,IAAI,EAAC,MAAM;QACvB,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,IAAI,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAG,IAAI,IAAI,MAAM;YAAE,OAAO,GAAG,GAAG,CAAC;QACjC,IAAG,IAAI,IAAI,MAAM;YAAE,OAAO,GAAG,GAAG,CAAC;QAEjC,IAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAC;YACxB,IAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,EAAE;gBAC1D,IAAG,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,SAAS,IAAI,OAAO,EAAC;iBAEzG;;oBACI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC1B;SACJ;QACD,IAAG,MAAM,CAAC,CAAC,IAAI,CAAC,EAAC;YACb,IAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,EAAC;gBACzD,IAAG,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,SAAS,IAAI,MAAM,EAAC;iBAExG;;oBACI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACzB;SACJ;QACD,IAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAC;YACzB,IAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,EAAC;gBACzD,IAAG,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,SAAS,IAAI,IAAI,EAAC;iBAEtG;;oBACI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvB;SACJ;QACD,IAAG,MAAM,CAAC,CAAC,IAAI,CAAC,EAAC;YACb,IAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,EAAC;gBACzD,IAAG,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,SAAS,IAAI,MAAM,EAAC;iBAExG;;oBACI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACzB;SACJ;QACD,IAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAC;YAEd,OAAO,IAAI,CAAC;SACf;QACD,IAAG,GAAG,CAAC,MAAM,IAAI,CAAC,EAAC;YACf,IAAG,IAAI,IAAI,MAAM;gBACb,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;;gBAEd,OAAO,IAAI,CAAC;SACnB;aACI,IAAG,GAAG,CAAC,MAAM,IAAI,CAAC,EAAC;YACpB,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;SAC1B;IACL,CAAC;IAED,uCAAiB,GAAjB;QACI,SAAS;QACT,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACrC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAG,KAAK,CAAC,OAAO,IAAI,GAAG,EAAC;gBACpB,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtH,IAAG,GAAG,IAAI,IAAI,EAAC;oBACX,IAAI,CAAC,UAAU,CAAC,GAAG,EAAC,KAAK,EAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;iBACtG;aACJ;SAEJ;IAEL,CAAC;IAED,gCAAU,GAAV,UAAW,SAAS,EAAC,IAAI;QACrB,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACtD,QAAO,SAAS,EAAC;YACb,KAAK,OAAO;gBACR,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;gBACnB,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,kDAAkD;gBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;gBACnB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBAC5I,4GAA4G;gBAC5G,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAClB,IAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;oBAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACxB,IAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;oBACjE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAE/B,MAAM;YACV,KAAK,MAAM;gBACP,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;gBACnB,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,kDAAkD;gBAClD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBAC5I,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9C,4GAA4G;gBAC5G,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAClB,IAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;oBAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACxB,IAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;oBACjE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM;YACV,KAAK,IAAI;gBACL,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;gBACnB,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAExC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,kDAAkD;gBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEvC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBAC5I,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9C,4GAA4G;gBAC5G,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAClB,IAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;oBAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACxB,IAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;oBACjE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM;YACV,KAAK,MAAM;gBACP,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;gBACnB,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,kDAAkD;gBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,iDAAiD;gBACjD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBAC5I,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9C,4GAA4G;gBAC5G,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAClB,IAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;oBAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACxB,IAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;oBACjE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM;YACV,KAAK,SAAS,CAAE;YAAC,KAAK,SAAS;gBAC3B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;gBACnB,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,kDAAkD;gBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBACjI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBACjI,iGAAiG;gBACjG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAClB,iGAAiG;gBACjG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAElB,MAAM;YACV,KAAK,QAAQ,CAAE;YAAC,KAAK,QAAQ;gBACzB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;gBACnB,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,kDAAkD;gBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBACjI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBACjI,iGAAiG;gBACjG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAClB,iGAAiG;gBACjG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAElB,MAAM;YACV,KAAK,WAAW,CAAE;YAAC,KAAK,WAAW;gBAC/B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;gBACnB,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,kDAAkD;gBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBACjI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBACjI,iGAAiG;gBACjG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAClB,iGAAiG;gBACjG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAElB,MAAM;YACV,KAAK,UAAU,CAAE;YAAC,KAAK,UAAU;gBAC7B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;gBACnB,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,kDAAkD;gBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBACjI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBACjI,iGAAiG;gBACjG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAClB,iGAAiG;gBACjG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAElB,MAAM;SAEb;QAGD,gBAAgB;QAChB,oDAAoD;QACpD,IAAI;IACR,CAAC;IAED,iCAAW,GAAX,UAAY,IAAI;QACZ,IAAI,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAE7C,IAAG,QAAQ,EAAC;YACR,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBACpC,IAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,EAAC;oBAC/B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;oBAC3D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACpC;aACJ;SACJ;IACL,CAAC;IAED,gCAAU,GAAV,UAAW,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;QAC/B,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,QAAO,SAAS,EAAC;YACb,KAAK,SAAS,CAAE;YAAC,KAAK,SAAS;gBAC3B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBAEtC,MAAM;YACV,KAAK,QAAQ,CAAE;YAAC,KAAK,QAAQ;gBACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;gBACrC,MAAM;YACV,KAAK,WAAW,CAAE;YAAC,KAAK,WAAW;gBAC/B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;gBACjB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;gBACzC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;gBACrC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACnC,MAAM;YACV,KAAK,UAAU,CAAE;YAAC,KAAK,UAAU;gBAC7B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;gBACjB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;gBACzC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;gBACrC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;gBACrC,MAAM;SACb;QAED,6DAA6D;QAC7D,wCAAwC;QACxC,IAAI;QACJ,QAAQ;QACR,wCAAwC;QAExC,IAAG,SAAS,IAAI,IAAI,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,EACrE;YACG,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAC,CAAC,CAAC;SACrC;aACI,IAAG,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,EAAC;YACxI,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAC,CAAC,CAAC;SAChC;aACA,IAAI,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,UAAU,EAAC;YACpD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAC,CAAC,CAAC;SACpC;;YACI,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAC,CAAC,CAAC;QAEtC,kDAAkD;QAClD,uEAAuE;QACvE,6EAA6E;QAC7E,sCAAsC;QACtC,sBAAsB;QACtB,gFAAgF;IACpF,CAAC;IAED,UAAU;IACV,4BAAM,GAAN,UAAO,KAAK,EAAC,GAAG;QACZ,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC3B,IAAG,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;gBAC1C,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ;IACR,iCAAW,GAAX,UAAY,KAAK,EAAC,QAAQ,EAAC,KAAK;QAC5B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAChC,IAAG,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC;gBAC5D,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC/C,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAC,EAAE,CAAC;gBAC9G,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;gBAC9D,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC;gBACtF,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM;IACN,oCAAc,GAAd,UAAe,KAAK,EAAC,IAAI;QACrB,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC1C,IAAG,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,EAAC;gBAC/G,IAAG,IAAI,EAAC;oBACJ,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;oBAChE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;iBACpF;qBACG;oBACA,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC/D,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;oBAC9E,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC;iBACzG;aACJ;SAEJ;IACL,CAAC;IAID,SAAS;IACT,oCAAc,GAAd,UAAe,EAAE;QACb,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACnC,IAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,EAAE,EAAC;gBAClD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACzB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;IACL,iCAAW,GAAX,UAAY,EAAE;QACV,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACnC,IAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,EAAE,EAAC;gBAClD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACzB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kCAAY,GAAZ,UAAa,KAAK;QACd,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QAC1C,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAE5C,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAC,CAAC,CAAC;QAC3B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QAEzC,IAAG,KAAK,CAAC,IAAI,IAAI,SAAS,EAAC;YACvB,IAAI,GAAG,KAAK,GAAC,CAAC,CAAC;YACf,IAAG,IAAI,CAAC,QAAQ,GAAG,CAAC;gBAAE,IAAI,GAAG,IAAI,GAAC,CAAC,CAAC;SACvC;aACI,IAAG,KAAK,CAAC,IAAI,IAAI,SAAS,EAAC;YAC5B,IAAI,GAAG,KAAK,GAAC,CAAC,CAAC;YACf,IAAG,IAAI,CAAC,QAAQ,GAAG,CAAC;gBAAE,IAAI,GAAG,IAAI,GAAC,CAAC,CAAC;SACvC;aAEI,IAAG,KAAK,CAAC,IAAI,IAAI,SAAS,EAAC;YAC5B,IAAI,GAAG,KAAK,GAAC,CAAC,CAAC;YACf,IAAI,GAAG,IAAI,GAAC,CAAC,CAAC;SACjB;aACI,IAAG,KAAK,CAAC,IAAI,IAAI,SAAS,EAAC;YAC5B,IAAI,GAAG,KAAK,GAAC,CAAC,CAAC;YACf,IAAI,GAAG,IAAI,GAAC,CAAC,CAAC;SACjB;aACI,IAAG,KAAK,CAAC,IAAI,IAAI,SAAS,EAAC;YAC5B,IAAI,GAAG,KAAK,GAAC,CAAC,CAAC;YACf,IAAI,GAAG,IAAI,GAAC,CAAC,CAAC;SACjB;aACI,IAAG,KAAK,CAAC,IAAI,IAAI,SAAS,EAAC;YAC5B,IAAI,GAAG,KAAK,GAAC,CAAC,CAAC;YACf,IAAI,GAAG,IAAI,GAAC,CAAC,CAAC;SACjB;QAED,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC;IACrD,CAAC;IAED,YAAY;IACZ,+BAAS,GAAT,UAAU,IAAI,EAAC,MAAM;QACjB,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC1B,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC1B,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC1B,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAE1B,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QAEtF,WAAW;QAEX,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,MAAM,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YAC5B,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3E;QAED,sCAAsC;QACtC,mCAAmC;QAEnC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QACZ,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,WAAW;QACX,wBAAwB;QACxB,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;QAEzD,cAAc;QACd,IAAI,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;YAC3C,sCAAsC;YACtC,8BAA8B;YAC9B,EAAE,IAAI,CAAC,CAAC;YACR,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACxD,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC3F,KAAI,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAC,EAAE,EAAC;oBACrC,IAAG,SAAS,CAAC,GAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,GAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAC;wBACzD,+EAA+E;wBAC/E,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAC5B;iBACJ;aACJ;YACD,iCAAiC;YACjC,IAAG,SAAS,CAAC,MAAM,IAAI,CAAC,EAAC;gBACrB,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBACnH,IAAG,MAAM,IAAI,IAAI;oBAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,SAAS,EAAC,IAAI,CAAC,CAAC;gBACjE,8BAA8B;gBAC9B,IAAG,MAAM,EAAC;oBAEN,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;oBACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC7B,EAAE,GAAG,CAAC,CAAC;oBACP,IAAI,CAAC,cAAc,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC;oBAC7B,OAAO,EAAE,CAAC;iBACb;aACJ;SACJ;QACD,IAAI,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;YAC3C,sCAAsC;YACtC,8BAA8B;YAC9B,EAAE,IAAI,CAAC,CAAC;YACR,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBAC3C,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAC1D,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC7F,KAAI,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAC,EAAE,EAAC;oBACrC,IAAG,SAAS,CAAC,GAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,GAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAC;wBACzD,+EAA+E;wBAC/E,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qBAC9B;iBACJ;aACJ;YAED,IAAG,UAAU,CAAC,MAAM,IAAI,CAAC,EAAC;gBACtB,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBAEpH,IAAG,MAAM,IAAI,IAAI;oBAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,UAAU,EAAC,IAAI,CAAC,CAAC;gBAClE,8BAA8B;gBAC9B,IAAG,MAAM,EAAC;oBAEN,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;oBACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC7B,EAAE,GAAG,CAAC,CAAC;oBACP,IAAI,CAAC,cAAc,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC;oBAC7B,OAAO,EAAE,CAAC;iBACb;aACJ;SAGJ;QACD,IAAI,OAAO,CAAC,CAAC,IAAK,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;YAC5C,EAAE,IAAI,CAAC,CAAC;YACR,sCAAsC;YACtC,8BAA8B;YAC9B,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBACzC,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC/F,KAAI,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAC,EAAE,EAAC;oBACrC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;oBACjD,IAAG,SAAS,CAAC,GAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,GAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAC;wBACrG,+EAA+E;wBAC/E,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBAC9B;iBACJ;aACJ;YAED,IAAG,SAAS,CAAC,MAAM,IAAI,CAAC,EAAC;gBACrB,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBACnH,IAAG,MAAM,IAAI,IAAI;oBAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,SAAS,EAAC,IAAI,CAAC,CAAC;gBACjE,8BAA8B;gBAC9B,IAAG,MAAM,EAAC;oBAEN,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;oBACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC7B,EAAE,GAAG,CAAC,CAAC;oBACP,IAAI,CAAC,cAAc,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC;oBAC7B,OAAO,EAAE,CAAC;iBACb;aACJ;SAGJ;QACD,IAAI,OAAO,CAAC,CAAC,IAAK,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;YAC5C,EAAE,IAAI,CAAC,CAAC;YACR,sCAAsC;YACtC,8BAA8B;YAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBAC5C,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;gBACzF,KAAI,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAC,EAAE,EAAC;oBACrC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;oBACjD,IAAG,SAAS,CAAC,GAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,GAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAC;wBACrG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACzB;iBACJ;aACJ;YAED,IAAG,OAAO,CAAC,MAAM,IAAI,CAAC,EAAC;gBACnB,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;gBACjH,IAAG,MAAM,IAAI,IAAI;oBAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,OAAO,EAAC,IAAI,CAAC,CAAC;gBAC/D,kCAAkC;gBAClC,IAAG,MAAM,EAAC;oBAEN,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;oBACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC7B,EAAE,GAAG,CAAC,CAAC;oBACP,IAAI,CAAC,cAAc,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC;oBAC7B,OAAO,EAAE,CAAC;iBACb;aACJ;SAEJ;QACD,IAAG,EAAE,IAAI,CAAC;YAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QACpB,uCAAuC;QACvC,qCAAqC;QACrC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,iCAAW,GAAX;QACI,IAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAC;YACzB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;aAC7E;SACJ;QAED,IAAG,IAAI,CAAC,UAAU,CAAC,MAAM,IAAG,CAAC,EAAC;YAC1B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBACvC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC;aACjF;SACJ;IACL,CAAC;IAED,WAAW;IACX,8BAAQ,GAAR,UAAS,EAAE,EAAC,SAAS,EAAC,IAAI;QACtB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,SAAS,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YAC/B,IAAG,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;aAClE;YACD,IAAG,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,EAAC;gBACjG,EAAE,GAAG,KAAK,CAAC;gBACX,MAAM;aACT;YACD,8GAA8G;YAC9G,IAAG,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAC;gBAE3E,EAAE,GAAG,KAAK,CAAC;gBACX,MAAM;aACT;YACD,IAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,EAAC;gBACpC,IAAG,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAC;oBAC9C,EAAE,GAAG,KAAK,CAAC;oBACX,MAAM;iBACT;aACJ;SACJ;QACD,IAAG,EAAE,IAAI,IAAI,IAAK,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,EAAC;YACnD,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,SAAS,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBAC/B,IAAG,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAC;oBACzG,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC;iBACpD;aACJ;SACJ;QACD,sCAAsC;QACtC,oCAAoC;QACpC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,kBAAkB;IAClB,oCAAc,GAAd,UAAe,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM;QACrC,IAAI,EAAE,GAAG,IAAI,CAAC;QACd,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,IAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAC;YACjB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBAC9B,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACd,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC;gBAChE,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAC,SAAS,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;gBAC/C,IAAG,CAAC,EAAE,EAAC;oBACH,yBAAyB;oBACzB,CAAC,GAAG,OAAO,CAAC;oBACZ,OAAO,EAAE,CAAC;iBACb;aACJ;SACJ;QACD,sCAAsC;QACtC,kCAAkC;QAClC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,0CAA0C;IAC1C,wCAAkB,GAAlB,UAAmB,EAAE,EAAC,SAAS,EAAC,CAAC,EAAC,CAAC;QAC/B,IAAI,EAAE,GAAG,IAAI,CAAC;QAEd,IAAG,SAAS,IAAI,MAAM,EAAC;YACnB,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAG,MAAM;mBAC3I,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE;gBACnE,uBAAuB;gBACvB,EAAE,GAAG,KAAK,CAAC;gBACX,OAAO,EAAE,CAAC;aACb;YACD,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,EAAC;gBACzC,EAAE,GAAG,KAAK,CAAC;gBACX,OAAO,EAAE,CAAC;aACb;YACD,IAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC;gBACZ,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAG,MAAM;uBAC3I,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE;oBACnE,uBAAuB;oBACvB,EAAE,GAAG,KAAK,CAAC;oBACX,OAAO,EAAE,CAAC;iBACb;gBACD,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,EAAC;oBACzC,EAAE,GAAG,KAAK,CAAC;oBACX,OAAO,EAAE,CAAC;iBACb;aACJ;SACJ;aACI,IAAG,SAAS,IAAI,OAAO,EAAC;YACzB,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAG,MAAM;mBAC3I,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE;gBACnE,uBAAuB;gBACvB,EAAE,GAAG,KAAK,CAAC;gBACX,OAAO,EAAE,CAAC;aACb;YACD,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,EAAC;gBACzC,EAAE,GAAG,KAAK,CAAC;gBACX,OAAO,EAAE,CAAC;aACb;YACD,IAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAC,CAAC,EAAC;gBACtC,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAG,MAAM;uBAC3I,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE;oBACnE,uBAAuB;oBACvB,EAAE,GAAG,KAAK,CAAC;oBACX,OAAO,EAAE,CAAC;iBACb;gBACD,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,EAAC;oBACzC,EAAE,GAAG,KAAK,CAAC;oBACX,OAAO,EAAE,CAAC;iBACb;aACJ;SACJ;QACD,IAAG,SAAS,IAAI,IAAI,EAAC;YACjB,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAG,MAAM;mBAC3I,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE;gBACnE,uBAAuB;gBACvB,EAAE,GAAG,KAAK,CAAC;gBACX,OAAO,EAAE,CAAC;aACb;YACD,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,EAAC;gBACzC,EAAE,GAAG,KAAK,CAAC;gBACX,OAAO,EAAE,CAAC;aACb;YACD,IAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,EAAC;gBACzC,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAG,MAAM;uBAC3I,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE;oBACnE,uBAAuB;oBACvB,EAAE,GAAG,KAAK,CAAC;oBACX,OAAO,EAAE,CAAC;iBACb;gBACD,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,EAAC;oBACzC,EAAE,GAAG,KAAK,CAAC;oBACX,OAAO,EAAE,CAAC;iBACb;aACJ;SACJ;QACD,IAAG,SAAS,IAAI,MAAM,EAAC;YACnB,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAG,MAAM;mBAC3I,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE;gBACnE,uBAAuB;gBACvB,EAAE,GAAG,KAAK,CAAC;gBACX,OAAO,EAAE,CAAC;aACb;YACD,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,EAAC;gBACzC,EAAE,GAAG,KAAK,CAAC;gBACX,OAAO,EAAE,CAAC;aACb;YACD,IAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC;gBACZ,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAG,MAAM;uBAC3I,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE;oBACnE,uBAAuB;oBACvB,EAAE,GAAG,KAAK,CAAC;oBACX,OAAO,EAAE,CAAC;iBACb;gBACD,IAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,EAAC;oBACzC,EAAE,GAAG,KAAK,CAAC;oBACX,OAAO,EAAE,CAAC;iBACb;aACJ;SACJ;QACD,oCAAoC;QACpC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,oCAAc,GAAd,UAAe,SAAS,EAAC,IAAI,EAAC,IAAI;QAC9B,IAAI,EAAE,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,CAAC,CAAC;QACnC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACjC,IAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAC;gBACpC,IAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,EAAC;oBACnE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;iBAChB;aACJ;YACD,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAC;gBACf,IAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,EAAC;oBACnE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;iBAChB;aACJ;YACD,IAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAC;gBACpC,IAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,EAAC;oBACnE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;iBAChB;aACJ;YACD,IAAG,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAC;gBACd,IAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,EAAC;oBACnE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;iBAChB;aACJ;SACJ;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,+BAAS,GAAT,UAAU,SAAS;QACf,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,OAAO,EAAE,CAAC;IACd,CAAC;IAED,gCAAU,GAAV,UAAW,SAAS,EAAC,GAAG;QACpB,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;SAEpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,+BAAS,GAAT,UAAU,SAAS;QACf,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;SAEpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,6BAAO,GAAP,UAAQ,SAAS,EAAC,GAAG;QACjB,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;SAEpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAGD,oBAAoB;IACpB,uCAAiB,GAAjB,UAAkB,IAAI;QAClB,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAA,KAAK;YAC7C,IAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,EAAC;gBAC3B,IAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;oBACpC,OAAO,KAAK,CAAA;aACnB;QACL,CAAC,CAAC,CAAC;QACH,IAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAC;YACtB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBACnC,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC5E;SACJ;QAED,IAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,EAAC;YAC5E,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAA,KAAK;gBAC3C,IAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,EAAC;oBAC3B,IAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;wBACpC,OAAO,KAAK,CAAA;iBACnB;YACL,CAAC,CAAC,CAAC;YACH,IAAG,SAAS,CAAC,MAAM,GAAG,CAAC;gBACnB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;oBACjC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;iBACrE;SAER;QAED,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YACjC,IAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;aAC3B;SACJ;IAEL,CAAC;IAED,WAAW;IACX,+BAAS,GAAT;QAAA,iBA8BC;QA7BG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAEnC,IAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAC;YACrD,iBAAiB;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,yBAAyB;YACzB,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,QAAQ,GAAG;gBACX,UAAU,EAAC,IAAI,CAAC,UAAU;gBAC1B,QAAQ,EAAC,IAAI,CAAC,QAAQ;aACzB,CAAA;YACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAElC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,UAAU,CAAC;gBACP,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAChE,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,uBAAuB;SAC1B;aACG;YACA,IAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAC;gBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACxB;SACJ;IACL,CAAC;IAED,mCAAa,GAAb;QACI,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAClD,IAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC;gBACzE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;aACrB;SACJ;IACL,CAAC;IAED,8BAAQ,GAAR;QACI,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EAAC,IAAI,CAAC,CAAC;QAC1D,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,EAAC;YACpC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;YACrC,aAAW,CAAC,SAAS,GAAG,IAAI,CAAC;YAE7B,IAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7D,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;gBAC1C,OAAO;aACV;YACD,0CAA0C;YAC1C,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAC1E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC;YACjH,yHAAyH;YACzH,2CAA2C;YAC3C,0BAA0B;YAC1B,sFAAsF;YACtF,QAAQ;YACR,MAAM;YAEN,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,UAAC,GAAG,EAAE,KAAK;gBAC7C,IAAI,GAAG,EAAE;oBACL,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;oBACtC,OAAO;iBACV;YACL,CAAC,CAAC,CAAC;YACH,UAAU,CAAC;gBACP,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACvC,CAAC,EAAE,IAAI,CAAC,CAAC;SACZ;aACG;YAEA,sBAAsB;YACtB,aAAW,CAAC,SAAS,GAAG,IAAI,CAAC;YAE7B,IAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7D,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;gBAC1C,OAAO;aACV;YACD,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAC1E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC;YACjH,yHAAyH;YACzH,2CAA2C;YAC3C,0BAA0B;YAC1B,sFAAsF;YACtF,QAAQ;YACR,MAAM;YACN,UAAU,CAAC;gBACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC;YACjD,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,4CAA4C;SAE/C;IACL,CAAC;IAED,gCAAU,GAAV;QACI,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EAAC,IAAI,CAAC,CAAC;QAC1D,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,EAAC;YAC/B,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO;SACV;QACD,IAAG,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAE/B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAE3B,aAAW,CAAC,SAAS,GAAG,IAAI,CAAC;QAC7B,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC;QACjH,yHAAyH;QACzH,2CAA2C;QAC3C,0BAA0B;QAC1B,sFAAsF;QACtF,QAAQ;QACR,MAAM;QACN,UAAU,CAAC;YACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC;QACjD,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,4CAA4C;IAChD,CAAC;IAED,iCAAW,GAAX;QACI,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,IAAI,GAAG,GAAG,CAAC;QACf,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC;aAChD,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC;QAC1D,mEAAmE;QACnE,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAC;YAC9C,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACxC,OAAO;SACV;aACG;YACA,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;SACzB;IACL,CAAC;IAED,+BAAS,GAAT,UAAU,IAAI;QACV,OAAO,CAAC,GAAG,CAAC,SAAS,EAAC,IAAI,CAAC,CAAC;QAC5B,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAElC,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAClC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QAC9D,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAID,6BAAO,GAAP;QACI,iBAAiB;QACjB,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EAAC,IAAI,CAAC,CAAC;QAC1D,IAAG,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACrF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACrF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACrF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QACtF,IAAI,IAAI,GAAG;YACP,IAAI,EAAC,IAAI,CAAC,UAAU;YACpB,QAAQ,EAAC,IAAI,CAAC,QAAQ;YACtB,MAAM,EAAC,MAAM;SAChB,CAAA;QACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAC,IAAI,CAAC,CAAC;QACjD,IAAG,IAAI,CAAC,SAAS,IAAI,IAAI,EAAC;YACtB,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAC,UAAC,IAAI;YACrC,CAAC,CAAC,CAAA;SACL;QACD,4CAA4C;IAChD,CAAC;IAED,gCAAU,GAAV;QACI,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EAAC,IAAI,CAAC,CAAC;QAC1D,IAAG,aAAW,CAAC,SAAS,GAAG,IAAI,EAAC;YAC5B,OAAO;SACV;QACD,sCAAsC;QACtC,aAAW,CAAC,SAAS,GAAG,IAAI,CAAC;QAC7B,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;QAC1C,IAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAC;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;YAC7D,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACpB,OAAO;SACV;QACD,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC;QACjH,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,UAAC,GAAG,EAAE,KAAK;YAC7C,IAAI,GAAG,EAAE;gBACL,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;gBACtC,OAAO;aACV;QAEL,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC;YACP,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC,EAAE,IAAI,CAAC,CAAC;IACb,CAAC;IAED,QAAQ;IACR,+BAAS,GAAT,UAAU,IAAI;QAAd,iBA6BC;QA5BG,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAG,IAAI,CAAC,QAAQ,IAAG,IAAI,IAAG,IAAI,CAAC,OAAO,IAAI,IAAI,EAAC;YAC3C,OAAO;SACV;QAED,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAG,IAAI,IAAI,MAAM,EAAC;YACd,IAAI,GAAG,IAAI,CAAC;SACf;QACD,UAAU,CAAC;YACH,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAC7D,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YACpF,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;YACrF,IAAI,MAAM,GAAG,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC5G,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAE,KAAK,CAAC;YAC7H,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;gBAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;iBAChF,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;iBACtF,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAC3F,IAAG,IAAI,EAAC;gBACJ,IAAG,IAAI,IAAI,MAAM,EAAC;oBACd,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;oBACrF,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;iBACvF;aACJ;QACT,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,uBAAuB;IAC3B,CAAC;IAED,SAAS;IACT,iCAAW,GAAX,UAAY,IAAI;QAAhB,iBAoBC;QAnBG,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,YAAY;QACxC,IAAM,aAAa,GAAG;YAClB,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,gBAAgB,EAAE,KAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxE,OAAO,KAAK,GAAG,QAAQ,EAAE,KAAK,EAAE,EAAE;gBAC9B,IAAI,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBACpB,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;iBAChC;aACJ;YACD,kBAAkB;YAClB,IAAI,KAAK,GAAG,KAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAC5B,KAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;aACvC;iBAAM;aACN;QACL,CAAC,CAAC;QACF,WAAW;QACX,aAAa,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5F,CAAC;IAGD,8BAAQ,GAAR,UAAS,KAAK,EAAC,IAAI;QACf,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YACrC,IAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,KAAK,EAAC;gBAC5E,IAAG,IAAI,EAAC;oBACJ,IAAG,IAAI,IAAI,CAAC,EAAC;wBACT,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAC;4BAC3E,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;yBAC5E;qBACJ;;wBACK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;iBAClF;;oBACI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;aACjF;SACJ;IACL,CAAC;IAED,4BAAM,GAAN;QACI,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YACrC,IAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAC;gBACrD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;aAC1E;SACJ;IACL,CAAC;IAEF,OAAO;IACP,sCAAgB,GAAhB;QACK,IAAI,CAAC,gBAAgB,GAAG;YACpB,IAAG,IAAI,CAAC,KAAK;gBAAE,OAAO;YACtB,IAAG,IAAI,CAAC,UAAU,IAAI,CAAC,EAAC;gBACpB,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC7D,uBAAa,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAC,EAAE,EAAC,OAAO,EAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACtE,+CAA+C;gBAC/C,IAAG,CAAC,IAAI,CAAC,KAAK;oBAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aACzC;iBACG;gBACA,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;gBACrB,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;gBACrB,IAAI,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC7D,uBAAa,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAC,EAAE,EAAC,OAAO,EAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACtE,+CAA+C;aAClD;QACL,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,QAAQ;IACR,qCAAe,GAAf;QACI,IAAG,IAAI,CAAC,gBAAgB,EAAC;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC1C;IACL,CAAC;IAED,QAAQ;IACR,iCAAW,GAAX;QACI,IAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;eAC5E,IAAI,CAAC,SAAS,CAAC,MAAM,IAAG,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAC;YACpD,OAAO;SACV;QACA,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACrF,IAAG,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,MAAM,EAAC;YAC3C,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrD,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,EAAC;gBACzC,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,EAAC;oBACpC,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;oBACzC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACpD,OAAO;iBACV;gBACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;aACrF;iBACG;gBACA,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAC;oBAC7D,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;oBAE9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBACrD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAE3E,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;oBAC3C,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC;wBACxC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC;oBAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;oBACxE,IAAI,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACvD,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;oBAC9D,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC/B,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;oBACjD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,EAAC,UAAC,IAAI;oBAC3E,CAAC,CAAC,CAAA;oBACF,IAAI,IAAI,GAAG;wBACP,EAAE,EAAC,MAAM;wBACT,GAAG,EAAC,CAAC,CAAC;qBACT,CAAA;oBACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,EAAC,IAAI,CAAC,CAAC;iBACrD;;oBACI,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;aACjD;SACJ;IAGL,CAAC;IAED,QAAQ;IACR,6BAAO,GAAP;QACI,IAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,EAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;YAC/B,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACpF,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;YAC5E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,2BAA2B;SAC9B;IACL,CAAC;IAED,sCAAgB,GAAhB,UAAiB,IAAI;QAArB,iBAqDC;QApDG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,oCAAoC;QACpC,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACpF,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACvF,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACpF,IAAG,IAAI,IAAI,cAAc;YAAE,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC1E,IAAG,IAAI,IAAI,cAAc;YAAE,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC/E,IAAG,IAAI,IAAI,aAAa;YAAE,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClF,IAAG,IAAI,IAAI,cAAc,EAAC;YACtB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;YAC3C,IAAI,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACvD,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;YAC9D,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;YAC/B,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,YAAY,EAAE,CAAC;YAC3E,UAAU,CAAC;gBACP,KAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBACxE,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC5C,CAAC,EAAE,GAAG,CAAC,CAAC;SAGX;aACI,IAAG,IAAI,IAAI,aAAa,EAAC;YAC1B,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;YAC1C,IAAI,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACvD,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;YAC5D,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;YAC/B,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,YAAY,EAAE,CAAC;YAC3E,UAAU,CAAC;gBACP,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACtC,KAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC7E,CAAC,EAAE,GAAG,CAAC,CAAC;SAEX;aACI,IAAG,IAAI,IAAI,cAAc,EAAC;YAC3B,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;YAC3C,IAAI,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACvD,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;YAC9D,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;YAC/B,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,YAAY,EAAE,CAAC;YAC3E,UAAU,CAAC;gBACP,KAAI,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC3E,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC,EAAE,GAAG,CAAC,CAAC;SAEX;IAIL,CAAC;IAED,QAAQ;IACR,+BAAS,GAAT;QACI,IAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;eAC5E,IAAI,CAAC,SAAS,CAAC,MAAM,IAAG,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAC;YACpD,OAAO;SACV;QACD,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACvF,IAAG,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,MAAM,EAAC;YAC3C,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrD,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,EAAC;gBACzC,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,EAAC;oBACpC,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;oBACzC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACpD,OAAO;iBACV;gBACC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;gBACrE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;aACrF;iBACG;gBACA,IAAG,CAAC,IAAI,CAAC,MAAM,EAAC;oBACZ,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;oBAE9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;oBAC3C,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC;wBACxC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC;oBAC9C,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;oBAC3E,IAAI,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACvD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAC,QAAQ,CAAC,CAAC;oBAChC,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;oBAC9D,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC/B,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;oBACjD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,EAAC,UAAC,IAAI;oBAC3E,CAAC,CAAC,CAAA;oBACF,IAAI,IAAI,GAAG;wBACP,EAAE,EAAC,MAAM;wBACT,GAAG,EAAC,CAAC,CAAC;qBACT,CAAA;oBACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,EAAC,IAAI,CAAC,CAAC;iBACrD;;oBACI,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;aACjD;SAEJ;IAEL,CAAC;IAED,8BAAQ,GAAR;QACI,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,EAAC;YACpC,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACzC,OAAO;SACV;QACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAC,aAAa,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,+BAAS,GAAT;QACI,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,EAAC;YACpC,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACzC,OAAO;SACV;QACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAC,cAAc,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,+BAAS,GAAT;QACI,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,EAAC;YACpC,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACzC,OAAO;SACV;QACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAC,cAAc,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,eAAe;IACf,8BAAQ,GAAR;QAAA,iBAmIC;QAlIG,IAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;eAC5E,IAAI,CAAC,SAAS,CAAC,MAAM,IAAG,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAC;YACpD,OAAO;SACV;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACpF,IAAG,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,MAAM,EAAC;YAC1C,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpD,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,EAAC;gBACxC,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,EAAC;oBACpC,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;oBACzC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACnD,OAAO;iBACV;gBACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACjF,gDAAgD;aACnD;iBACG;gBACA,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC7B,UAAU,CAAC;oBACP,KAAI,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC;oBAC9B,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC,EAAE,IAAI,CAAC,CAAC;gBAET,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;gBAC1C,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC;oBACvC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;gBAC7C,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACzE,IAAI,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACvD,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC5D,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC/B,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;gBACjD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAC,UAAC,IAAI;gBAC1E,CAAC,CAAC,CAAA;gBACF,IAAI,IAAI,GAAG;oBACH,EAAE,EAAC,MAAM;oBACT,GAAG,EAAC,CAAC,CAAC;iBACT,CAAA;gBACL,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,EAAC,IAAI,CAAC,CAAC;gBAClD,IAAI,YAAU,GAAG,EAAE,CAAC;gBACpB,qCAAqC;gBACrC,KAAI,IAAI,CAAC,GAAE,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;oBACpC,iEAAiE;oBACjE,IAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,EAAC;wBAC9C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;qBACxC;yBACI,IAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,EAAC;wBACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;qBACzC;yBACI,IAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,EAAC;wBACpD,IAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,EAAC;4BACpD,YAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;yBACzE;;4BACI,YAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;qBACxC;yBACG;wBACA,YAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;qBACnC;iBACJ;gBACD,IAAG,YAAU,CAAC,MAAM,GAAG,CAAC,EAAC;oBACrB,YAAU,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAU,CAAC,CAAC;oBACrD,YAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;oBAChD,IAAI,IAAI,GAAG,CAAC,CAAC;oBACb,IAAG,YAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,YAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,EAAC;wBAC9F,IAAI,GAAG,GAAG,CAAC;qBACd;oBACD,IAAG,IAAI,GAAG,CAAC,EAAC;wBACR,UAAU,CAAC;4BACP,YAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;wBACpD,CAAC,EAAE,IAAI,CAAC,CAAC;wBACT,OAAO;qBACV;yBACG;wBACA,YAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;wBAChD,OAAO;qBACV;iBACJ;qBACI,IAAG,YAAU,CAAC,MAAM,IAAI,CAAC,EAAC;oBAC3B,YAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;oBAChD,IAAI,IAAI,GAAG,CAAC,CAAC;oBACb,IAAG,YAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,YAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,EAAC;wBAC9F,IAAI,GAAG,GAAG,CAAC;qBACd;oBACD,UAAU,CAAC;wBACP,IAAG,KAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,KAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAC;4BAC3D,+BAA+B;yBAClC;6BACG;4BACA,IAAG,KAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAC;gCAC3B,mCAAmC;gCACnC,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;gCACrD,OAAO;6BACV;iCACI,IAAG,KAAI,CAAC,WAAW,CAAC,MAAM,IAAG,CAAC,EAAC;gCAChC,mCAAmC;gCACnC,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;gCACtD,OAAO;6BACV;yBACJ;oBACL,CAAC,EAAE,GAAG,GAAC,IAAI,CAAC,CAAC;iBAChB;qBACG;oBACA,IAAI,OAAK,GAAG,CAAC,CAAC;oBACd,IAAG,IAAI,CAAC,UAAU,CAAC,MAAM,IAAG,CAAC,EAAC;wBAC1B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;4BACvC,kCAAkC;4BAClC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;4BACrD,OAAK,IAAI,CAAC,CAAC;4BACX,IAAG,OAAK,IAAI,CAAC,EAAC;gCACV,MAAM;6BACT;yBACJ;qBACJ;oBAED,UAAU,CAAC;wBACH,IAAG,OAAK,IAAI,CAAC,EAAC;4BACd,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,KAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gCACxC,kCAAkC;gCAClC,yDAAyD;gCACzD,OAAK,IAAI,CAAC,CAAC;gCACX,IAAG,OAAK,IAAI,CAAC,EAAC;oCACV,MAAM;iCACT;6BACJ;yBACJ;oBACL,CAAC,EAAE,GAAG,CAAC,CAAC;iBACX;aACJ;SACJ;IACL,CAAC;IAED,QAAQ;IACR,8BAAQ,GAAR;QACI,IAAG,IAAI,CAAC,KAAK,EAAC;YACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;aACG;YACA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACrB;IACL,CAAC;IAID,YAAY;IACZ,gCAAU,GAAV;QACI,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,EAAC;YAClB,KAAK,GAAG,GAAG,CAAC;SACf;aACI,IAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,EAAC;YACvB,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAC,EAAE,CAAC,GAAC,IAAI,CAAC;SAC1C;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAEpD,IAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,EAAC;YACzC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;SACvB;QAED,uBAAuB;QACvB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACjD,yBAAyB;QACzB,gCAAgC;QAChC,uBAAuB;IAC3B,CAAC;IAED,UAAU;IACV,oCAAc,GAAd,UAAe,KAAK,EAAC,EAAE;QACnB,IAAI,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,aAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;QACvB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QAC1C,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAC5C,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,IAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAC;YAClB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC;YAChC,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC;YACrC,IAAG,EAAE,IAAI,CAAC,EAAC;gBACP,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC;gBACrC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;aACf;YACD,IAAG,KAAK,CAAC,OAAO,IAAI,GAAG,EAAC;gBACpB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;aACf;iBACI,IAAG,KAAK,CAAC,OAAO,IAAI,IAAI,EAAC;gBAC3B,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAC,CAAC,GAAG,GAAC,IAAI,CAAC,CAAC;aACvC;iBACI,IAAG,KAAK,CAAC,OAAO,IAAI,IAAI,EAAC;gBAC1B,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAC,CAAC,GAAG,GAAC,IAAI,CAAC,CAAC;aACxC;YACD,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC9B;aACI,IAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAC;YACvB,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC;YACtC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;YAC9B,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,GAAC,CAAC,CAAC;YACjC,IAAG,KAAK,CAAC,OAAO,IAAI,GAAG,EAAC;gBACpB,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC;aAC/B;iBACI,IAAG,KAAK,CAAC,OAAO,IAAI,IAAI,EAAC;gBAC3B,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAC,IAAI,CAAC;aACjC;iBACI,IAAG,KAAK,CAAC,OAAO,IAAI,IAAI,EAAC;gBAC1B,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAC,IAAI,CAAC;aAClC;YACD,IAAG,EAAE,IAAI,CAAC,EAAC;gBACP,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC;gBACvC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACZ,IAAG,KAAK,CAAC,OAAO,IAAI,GAAG,EAAC;oBACpB,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC;iBAC/B;qBACI,IAAG,KAAK,CAAC,OAAO,IAAI,IAAI,EAAC;oBAC3B,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAC,IAAI,CAAC;iBACjC;qBACI,IAAG,KAAK,CAAC,OAAO,IAAI,IAAI,EAAC;oBAC1B,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAC,IAAI,CAAC;iBAClC;aACJ;YAED,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC9B;QAED,IAAI,YAAY,GAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAElD,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9G,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,CAAC;YACP,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;iBACjB,EAAE,CAAC,CAAC,EAAE,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC;iBACnB,IAAI,CAAC;gBACF,QAAQ,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC,CAAC;iBACD,KAAK,EAAE,CAAC;QACb,CAAC,EAAE,IAAI,CAAC,CAAC;IACb,CAAC;IAED,oCAAc,GAAd;QACI,SAAS;QACT,KAAI,IAAI,CAAC,GAAE,CAAC,EAAG,CAAC,GAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACrC,IAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,EAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;aAC5B;SACJ;IACL,CAAC;IAID,4BAAM,GAAN,UAAQ,EAAE;IAEV,CAAC;;IA79DD;QADC,QAAQ,CAAC,EAAC,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAC,MAAM,EAAC,CAAC;oDACV;IAGpC;QADC,QAAQ,CAAC,EAAC,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAC,QAAQ,EAAC,CAAC;mDACb;IAGnC;QADC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;uDACa;IAGjC;QADC,QAAQ,CAAC,EAAC,IAAI,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAC,MAAM,EAAC,CAAC;oDACV;IAIzC;QADC,QAAQ,CAAC,EAAC,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAC,MAAM,EAAC,CAAC;oDACV;IAKpC;QADC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;uDACa;IAGjC;QADC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;gDACM;IAE1B;QADC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;mDACS;IAE7B;QADC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;iDACO;IAG3B;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;6CACG;IAGrB;QADC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;iDACO;IAE1B;QADC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;oDACU;IAE7B;QADC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;mDACS;IAG5B;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;kDACQ;IAG1B;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;mDACS;IAG3B;QADK,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;mDACK;IAI3B;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;gDACM;IArDP,WAAW;QAD/B,OAAO;OACa,WAAW,CAm+D/B;IAAD,kBAAC;CAn+DD,AAm+DC,CAn+DwC,EAAE,CAAC,SAAS,GAm+DpD;kBAn+DoB,WAAW","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport GameManager from \"./GameManager\";\r\nimport { LQCollide } from \"./lq_collide_system/lq_collide\";\r\nimport NumberToImage from \"./NumberToImage\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n\r\n\r\n@ccclass\r\nexport default class MapConroler extends cc.Component {\r\n static _instance: any;\r\n\r\n\r\n @property({type: [cc.Prefab], tooltip:\"方块数组\"})\r\n Block_Array : Array = [];\r\n\r\n @property({type: [cc.Prefab], tooltip:\"方块道具数组\"})\r\n Block_Prop : Array = [];\r\n\r\n @property(cc.Prefab)\r\n MapBlockPrefab: cc.Prefab = null;\r\n\r\n @property({type: [cc.SpriteAtlas], tooltip:\"方块颜色\"})\r\n Block_Color : Array = [];\r\n\r\n\r\n @property({type: [cc.Prefab], tooltip:\"墙壁数组\"})\r\n Wall_Prefab : Array = [];\r\n\r\n \r\n\r\n @property(cc.Prefab)\r\n wallTurnPrefab: cc.Prefab = null;\r\n\r\n @property(cc.Button)\r\n timeBtn: cc.Button = null;\r\n @property(cc.Button)\r\n destroyBtn: cc.Button = null;\r\n @property(cc.Button)\r\n magicBtn: cc.Button = null;\r\n\r\n @property(cc.Node)\r\n mask: cc.Node = null;\r\n\r\n @property(cc.Label)\r\n iceLabel: cc.Label = null;\r\n @property(cc.Label)\r\n hammerLabel: cc.Label = null;\r\n @property(cc.Label)\r\n magicLabel: cc.Label = null;\r\n\r\n @property(cc.Node)\r\n magicMask: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n hammerMask: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n freezeMask: cc.Node = null;\r\n\r\n \r\n @property(cc.Node)\r\n coinPop: cc.Node = null;\r\n\r\n timeLabel: cc.Node = null;\r\n levelLabel: cc.Node = null;\r\n\r\n new_mode: number = 0;\r\n mapWidth: number = 0;\r\n mapHeight: number = 0;\r\n wallNum: number = 0;\r\n blockNum: number = 0;\r\n mapBlocksWall: any; //地图的所有底块\r\n mapInfo: any; //地图除了底块的其他信息\r\n blocks: any; //方块数组\r\n wallInfo: any; //墙壁数组\r\n wallArray:any; //\r\n openWall: any; //开关墙数组\r\n freezeWall: any; //冻结墙数组\r\n riseFallBlcok:any; //升降地块数组\r\n scheduleCallback: any;//倒计时用\r\n homeCanTouch:boolean = true;//按钮可用状态\r\n againCanTouch:boolean = true;//重玩按钮可以用状态\r\n gameOver: boolean = false;//游戏结束状态\r\n gameWin: boolean = false;//游戏胜利状态\r\n gameStart: boolean = false;//游戏开始状态\r\n timeNumber: number = 0; //游戏时间 用于倒计时\r\n count_Time: number = 0; //用于统计总游戏时长\r\n add_Time: number = 0; //复活时间\r\n mapBlockArray: any; //地图的所有格子状态存储\r\n pause:boolean = false;//暂停状态\r\n hammer:boolean = false;//锤子状态\r\n freezeArray: any; //冻结\r\n loackArray: any; //上锁\r\n particleEffects: cc.ParticleAsset[];\r\n // leftDoors: []; //左门\r\n rightDoors: any; //右门\r\n topDoors: any; //上门\r\n bottomDoors: any; //下门\r\n leftDoors: any;\r\n\r\n\r\n // mapInfo: number[][] = [];\r\n\r\n onLoad () {\r\n\r\n cc.fx.GameConfig.GM_INFO.review = 0;\r\n cc.fx.GameConfig.GM_INFO.gameState = true;\r\n this.mask.opacity = 0;\r\n this.node.getChildByName(\"Adhesive\").zIndex = 500;\r\n cc.game.setFrameRate(63); \r\n cc.fx.AudioManager._instance.playEffect(\"zhuan2\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"down\",false);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n if (entry.animation.name === \"down\") {\r\n // 动画播放结束后执行的逻辑\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n });\r\n this.blocks = [];\r\n this.leftDoors = []; //左门\r\n this.rightDoors = []; //右门\r\n this.topDoors = []; //上门\r\n this.bottomDoors = []; //下门\r\n this.gameWin = false;\r\n this.gameOver = false;\r\n this.gameStart = false; \r\n this.homeCanTouch = true;\r\n this.againCanTouch = true;\r\n this.new_mode = 0;\r\n \r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n \r\n // cc.game.addPersistRootNode(this.node);\r\n MapConroler._instance = this;\r\n } \r\n\r\n start () {\r\n setTimeout(() => {\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 HomeScene 失败:', err);\r\n return;\r\n }\r\n });\r\n }, 1000);\r\n // console.log(\"进入GameScene\");\r\n this.Block_Array = GameManager._instance.Block_Array;\r\n this.Wall_Prefab = GameManager._instance.Wall_Prefab;\r\n this.Block_Color = GameManager._instance.Block_Color;\r\n // this.particleEffects = GameManager._instance.particleEffects;\r\n \r\n this.initMap();\r\n \r\n }\r\n\r\n startUpdate(){\r\n if(this.gameStart == false){\r\n this.gameStart = true;\r\n //发送数数事件——进入关卡\r\n console.log(\"准备进入下一关,发送下一关进入\");\r\n cc.fx.GameTool.shushu_Track(\"enter_stage\");\r\n this.startTimeCutDown();\r\n for(let i =0; i {\r\n const startTime = performance.now();\r\n for (let i = 0; i < BLOCKS_PER_FRAME && index < blockArray.length; i++) {\r\n let blockInfo = blockArray[index];\r\n // 缓存 Block_Array 访问\r\n const blockPrefab = this.Block_Array[blockInfo.block]; \r\n let block = cc.instantiate(blockPrefab);\r\n block.parent = this.node;\r\n block.setPosition(cc.v2(blockInfo.position.x, blockInfo.position.y));\r\n if (blockInfo.block != 23) {\r\n this.blockNum += 1;\r\n this.blocks.push(block);\r\n if (blockInfo.type == 1) {\r\n let info = {\r\n id: blockInfo.id + 1,\r\n block: blockInfo.block,\r\n color: blockInfo.stacking,\r\n type: 10,\r\n position: blockInfo.position,\r\n stacking: blockInfo.color\r\n };\r\n // 缓存 Block_Array 访问\r\n const blockUpPrefab = this.Block_Array[info.block]; \r\n let blockUp = cc.instantiate(blockUpPrefab);\r\n blockUp.parent = this.node;\r\n blockUp.setPosition(cc.v2(info.position.x, info.position.y));\r\n\r\n this.blocks.push(blockUp);\r\n block.getComponent(\"Block\").init(blockInfo, null, null, blockUp);\r\n blockUp.getComponent(\"Block\").init(info, null, null, block);\r\n \r\n this.blockNum += 1;\r\n } else if (blockInfo.type == 9) {\r\n if(blockInfo.adhesiveTime < 2){\r\n index++;\r\n continue;\r\n }\r\n index++;\r\n let info = blockArray[index];\r\n // 缓存 Block_Array 访问\r\n const blockUpPrefab = this.Block_Array[info.block]; \r\n let blockUp = cc.instantiate(blockUpPrefab);\r\n blockUp.parent = this.node;\r\n blockUp.setPosition(cc.v2(info.position.x, info.position.y));\r\n\r\n this.blocks.push(blockUp);\r\n block.getComponent(\"Block\").init(blockInfo, null, null, blockUp,false);\r\n setTimeout(() => {\r\n blockUp.getComponent(\"Block\").init(info, null, null, block,true);\r\n }, 100);\r\n this.blockNum += 1;\r\n } else {\r\n block.getComponent(\"Block\").init(blockInfo);\r\n } \r\n }\r\n else{\r\n block.getComponent(\"Barrier\").init(blockInfo);\r\n }\r\n index++;\r\n }\r\n const endTime = performance.now();\r\n const frameTime = endTime - startTime;\r\n // 如果当前帧执行时间过长,减少每帧创建数量\r\n if (frameTime > 16) { \r\n BLOCKS_PER_FRAME = Math.max(BLOCKS_PER_FRAME - 1, MIN_PER_FRAME);\r\n } else {\r\n BLOCKS_PER_FRAME = Math.min(BLOCKS_PER_FRAME + 1, MAX_PER_FRAME);\r\n }\r\n\r\n // 如果还有方块未创建,下一帧继续创建\r\n if (index < blockArray.length) {\r\n // 使用 scheduleOnce 在下一帧执行 createBlocks\r\n this.scheduleOnce(() => {\r\n createBlocks();\r\n }, 0);\r\n } else {\r\n\r\n }\r\n };\r\n\r\n // 开始分帧创建方块\r\n createBlocks();\r\n}\r\n//给创建方块排序,用来降低drawcall 合批\r\nsortBlock(allBlocks: { color: number; block: number; type: number }[]) {\r\n return allBlocks.sort((a, b) => {\r\n // 先处理 type 为 1 的情况,将其放到最后\r\n if (a.type === 1 && b.type !== 1) {\r\n return 1;\r\n }\r\n if (a.type !== 1 && b.type === 1) {\r\n return -1;\r\n }\r\n\r\n // 对 type 不为 0 的元素按 type 排序\r\n if (a.type !== 0 && b.type !== 0) {\r\n return a.type - b.type;\r\n }\r\n if (a.type !== 0 && b.type === 0) {\r\n return 1;\r\n }\r\n if (a.type === 0 && b.type !== 0) {\r\n return -1;\r\n }\r\n\r\n // 再处理 block 为 23 的情况,将其放到最前面\r\n if (a.block === 23 && b.block !== 23) {\r\n return -1;\r\n }\r\n if (a.block !== 23 && b.block === 23) {\r\n return 1;\r\n }\r\n\r\n // 其余按 color 升序排列\r\n return a.color - b.color;\r\n });\r\n}\r\n\r\n\r\n//创建墙壁\r\n\r\nwallInit() {\r\n let index = 0; // 当前要创建的墙壁索引\r\n let WALLS_PER_FRAME = 1; // 初始每帧创建的墙壁数量\r\n const MAX_PER_FRAME = 10; // 每帧最大创建数量\r\n const MIN_PER_FRAME = 1; // 每帧最小创建数量\r\n\r\n const createWalls = () => {\r\n const startTime = performance.now();\r\n for (let i = 0; i < WALLS_PER_FRAME && index < this.wallInfo.length; i++) {\r\n let block = this.wallInfo[index];\r\n let dir = this.getWllDiraction(\"wall\", cc.v2(block.getComponent(\"MapBlock\").posX, block.getComponent(\"MapBlock\").posY));\r\n if (dir != null) {\r\n this.createWall(dir, block);\r\n }\r\n index++;\r\n }\r\n const endTime = performance.now();\r\n const frameTime = endTime - startTime;\r\n // 如果当前帧执行时间过长,减少每帧创建数量\r\n if (frameTime > 16) { \r\n WALLS_PER_FRAME = Math.max(WALLS_PER_FRAME - 1, MIN_PER_FRAME);\r\n } else {\r\n WALLS_PER_FRAME = Math.min(WALLS_PER_FRAME + 1, MAX_PER_FRAME);\r\n }\r\n\r\n // 如果还有墙壁未创建,下一帧继续创建\r\n if (index < this.wallInfo.length) {\r\n this.scheduleOnce(() => {\r\n createWalls();\r\n }, 0);\r\n } else {\r\n // 所有墙壁创建完成后,创建拐角节点\r\n this.createCornerNodes();\r\n }\r\n };\r\n\r\n // 开始分帧创建墙壁\r\n createWalls();\r\n}\r\n\r\n// ... 已有代码 ...\r\n\r\n getWllDiraction(type,pointA){\r\n let dir = [];\r\n let pointB = cc.v2(pointA.x + 1,pointA.y);\r\n let pointC = cc.v2(pointA.x - 1,pointA.y);\r\n let pointD = cc.v2(pointA.x,pointA.y + 1);\r\n let pointE = cc.v2(pointA.x,pointA.y - 1);\r\n let opacity = 0;\r\n if(type == \"wall\") opacity = 255;\r\n if(type == \"turn\") opacity = 250;\r\n \r\n if(pointB.x < this.mapWidth){\r\n if(this.mapBlocksWall[pointB.x][pointB.y].opacity == opacity ){\r\n if(type == \"turn\" && this.mapBlocksWall[pointB.x][pointB.y].getComponent(\"MapBlock\").direction == \"right\"){\r\n \r\n }\r\n else dir.push(\"right\");\r\n }\r\n }\r\n if(pointC.x >= 0){\r\n if(this.mapBlocksWall[pointC.x][pointC.y].opacity == opacity){\r\n if(type == \"turn\" && this.mapBlocksWall[pointC.x][pointC.y].getComponent(\"MapBlock\").direction == \"left\"){\r\n \r\n }\r\n else dir.push(\"left\");\r\n }\r\n }\r\n if(pointD.y < this.mapHeight){\r\n if(this.mapBlocksWall[pointD.x][pointD.y].opacity == opacity){\r\n if(type == \"turn\" && this.mapBlocksWall[pointD.x][pointD.y].getComponent(\"MapBlock\").direction == \"up\"){\r\n \r\n }\r\n else dir.push(\"up\");\r\n }\r\n }\r\n if(pointE.y >= 0){\r\n if(this.mapBlocksWall[pointE.x][pointE.y].opacity == opacity){\r\n if(type == \"turn\" && this.mapBlocksWall[pointE.x][pointE.y].getComponent(\"MapBlock\").direction == \"down\"){\r\n \r\n }\r\n else dir.push(\"down\");\r\n }\r\n }\r\n if(dir.length > 2){\r\n\r\n return null;\r\n }\r\n if(dir.length == 1){\r\n if(type == \"wall\")\r\n return dir[0];\r\n else \r\n return null;\r\n }\r\n else if(dir.length == 2){\r\n return dir[0] + dir[1];\r\n }\r\n }\r\n\r\n createCornerNodes() {\r\n // 定义拐角位置\r\n for(let i=0; i 3) maxX = maxX-1;\r\n }\r\n else if(block.name == \"block11\"){\r\n minX = width-2;\r\n if(this.mapWidth > 3) maxX = maxX-2;\r\n }\r\n\r\n else if(block.name == \"block14\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n else if(block.name == \"block16\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n else if(block.name == \"block18\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n else if(block.name == \"block21\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n \r\n return {minX:minX,maxX:maxX,minY:minY,maxY:maxY};\r\n }\r\n\r\n //检测落点是否可以消除\r\n checkPass(node,blocks) {\r\n let minAndMax = this.getMinAndMax(node);\r\n let minX = minAndMax.minX;\r\n let maxX = minAndMax.maxX;\r\n let minY = minAndMax.minY;\r\n let maxY = minAndMax.maxY;\r\n\r\n let nodePos = cc.v2(node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY);\r\n\r\n // 获取地图边界信息\r\n\r\n let allBlocks = [];\r\n for(let i=0;i wallPos.x){\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n leftWalls.push(wallLeft);\r\n }\r\n }\r\n }\r\n // console.log(\"得到左边墙壁数组\",date6);\r\n if(leftWalls.length != 0){\r\n let result = this.detectingBlock(\"left\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n if(result == true) result = this.passWall(result,leftWalls,node);\r\n // console.log(\"碰到左边缘结果:\",jg);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 2;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n }\r\n if (nodePos.x >= maxX || direction[1] == true) {\r\n // const date3 = new Date().getTime();\r\n // console.log(\"碰到右边缘\",date3);\r\n pz += 1;\r\n let rightWalls = [];\r\n for(let i = 0; i < this.rightDoors.length; i++){\r\n let wallRight = this.rightDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallRight.getComponent(\"Wall\").posX,wallRight.getComponent(\"Wall\").posY);\r\n for(let i = 0; i < allBlocks.length; i++){\r\n if(allBlocks[i].y == wallPos.y && allBlocks[i].x < wallPos.x){\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n rightWalls.push(wallRight);\r\n }\r\n }\r\n }\r\n\r\n if(rightWalls.length != 0){\r\n let result = this.detectingBlock(\"right\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n \r\n if(result == true) result = this.passWall(result,rightWalls,node);\r\n // console.log(\"碰到右边缘结果:\",jg);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 3;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n\r\n \r\n }\r\n if (nodePos.y <= minY || direction[2] == true) {\r\n pz += 1;\r\n // const date4 = new Date().getTime();\r\n // console.log(\"碰到下边缘\",date4);\r\n let downWalls = [];\r\n for(let i = 0; i < this.topDoors.length; i++){\r\n let wallBottom = this.topDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallBottom.getComponent(\"Wall\").posX,wallBottom.getComponent(\"Wall\").posY);\r\n for(let i = 0; i < allBlocks.length; i++){\r\n let luocha = Math.abs(allBlocks[i].y - wallPos.y)\r\n if(allBlocks[i].x == wallPos.x && allBlocks[i].y > wallPos.y && luocha <= node.getComponent(\"Block\").shu){\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n downWalls.push(wallBottom);\r\n }\r\n }\r\n }\r\n\r\n if(downWalls.length != 0){\r\n let result = this.detectingBlock(\"down\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n if(result == true) result = this.passWall(result,downWalls,node);\r\n // console.log(\"碰到下边缘结果:\",jg);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 1;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n \r\n\r\n }\r\n if (nodePos.y >= maxY || direction[3] == true) {\r\n pz += 1;\r\n // const date5 = new Date().getTime();\r\n // console.log(\"碰到上边缘\",date5);\r\n let upWalls = [];\r\n for(let i = 0; i < this.bottomDoors.length; i++){\r\n let wallTop = this.bottomDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallTop.getComponent(\"Wall\").posX,wallTop.getComponent(\"Wall\").posY);\r\n for(let i = 0; i < allBlocks.length; i++){\r\n let luocha = Math.abs(allBlocks[i].y - wallPos.y)\r\n if(allBlocks[i].x == wallPos.x && allBlocks[i].y < wallPos.y && luocha <= node.getComponent(\"Block\").shu){\r\n upWalls.push(wallTop);\r\n }\r\n }\r\n }\r\n\r\n if(upWalls.length != 0){\r\n let result = this.detectingBlock(\"up\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n if(result == true) result = this.passWall(result,upWalls,node);\r\n // console.log(\"碰到上边缘结果:\",result);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 0;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n\r\n }\r\n if(pz == 0 )jg = -1;\r\n // const date10 = new Date().getTime();\r\n // console.log(\"所有检测结束耗时\",date10,jg);\r\n return jg;\r\n }\r\n\r\n changeState(){\r\n if(this.openWall.length != 0){\r\n for(let i=0; i 0){\r\n for(let i=0; i= 0){\r\n if(this.mapBlocksWall[x-2][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x-2][y].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x-2][y].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"左侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x-2][y].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n else if(direction == \"right\"){\r\n if(this.mapBlocksWall[x+1][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x+1][y].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x+1][y].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"右侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x+1][y].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n if((x + 2) <= this.mapBlocksWall.length-1){\r\n if(this.mapBlocksWall[x+2][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x+2][y].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x+2][y].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"右侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x+2][y].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n if(direction == \"up\"){\r\n if(this.mapBlocksWall[x][y+1].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y+1].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y+1].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"上侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y+1].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n if((y + 2) <= this.mapBlocksWall[x].length-1){\r\n if(this.mapBlocksWall[x][y+2].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y+2].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y+2].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"上侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y+2].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n if(direction == \"down\"){\r\n if(this.mapBlocksWall[x][y-1].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y-1].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y-1].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"下侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y-1].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n if((y - 2) >= 0){\r\n if(this.mapBlocksWall[x][y-2].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y-2].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y-2].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"下侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y-2].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n // console.log(\"检测物体各方向是否有别的物块\",jg);\r\n return jg;\r\n }\r\n\r\n checkDiraction(allBlocks,maxX,maxY){\r\n let jg = [false,false,false,false];\r\n for(let i=0; i 0 && jg[0] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x-1][allBlocks[i].y].opacity == 250){\r\n jg[0] = true;\r\n } \r\n }\r\n if( jg[1] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x+1][allBlocks[i].y].opacity == 250){\r\n jg[1] = true;\r\n } \r\n }\r\n if(allBlocks[i].y > 0 && jg[2] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y-1].opacity == 250){\r\n jg[2] = true;\r\n } \r\n }\r\n if(jg[3] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y+1].opacity == 250){\r\n jg[3] = true;\r\n } \r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n checkLeft(allBlocks){\r\n let jg = false;\r\n return jg;\r\n }\r\n\r\n checkRight(allBlocks,max){\r\n let jg = false;\r\n for(let i=0; i {\r\n if(child.getComponent(\"Block\")){\r\n if(child.getComponent(\"Block\").type == 4)\r\n return child\r\n }\r\n });\r\n if(freezeBlock.length > 0){\r\n for(let i=0; i {\r\n if(child.getComponent(\"Block\")){\r\n if(child.getComponent(\"Block\").type == 3)\r\n return child\r\n }\r\n });\r\n if(lockBlock.length > 0)\r\n for(let i=0; i {\r\n this.node.parent.parent.getChildByName(\"Win\").active = true;\r\n }, 660);\r\n // console.log(\"游戏成功\");\r\n }\r\n else{\r\n if(this.gameOver == true){\r\n this.failLevel(null);\r\n }\r\n }\r\n }\r\n\r\n check_NewMode(){\r\n for(let i=0; i 156){\r\n cc.fx.GameConfig.GM_INFO.level = 156;\r\n MapConroler._instance = null;\r\n \r\n if(this.new_mode == 3){\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(2);\r\n cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n return;\r\n }\r\n // cc.fx.GameConfig.LEVEL_INFO_init(true);\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n });\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n } \r\n else{\r\n \r\n // console.log(\"下一关\");\r\n MapConroler._instance = null;\r\n \r\n if(this.new_mode == 3){\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(2);\r\n cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n return;\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.LEVEL_INFO_init(true,0);\r\n }, 1200);\r\n \r\n // this.node.parent.parent.parent.destroy();\r\n \r\n }\r\n }\r\n\r\n againLevel(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n if(cc.fx.GameConfig.GM_INFO.hp < 1){\r\n MiniGameSdk.API.showToast(\"体力值不足\");\r\n return;\r\n } \r\n if(!this.againCanTouch) return;\r\n \r\n this.againCanTouch = false;\r\n \r\n MapConroler._instance = null;\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.LEVEL_INFO_init(true,0);\r\n }, 1200);\r\n // this.node.parent.parent.parent.destroy();\r\n }\r\n\r\n reviewLevel(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n let coin = 900;\r\n if(cc.fx.GameConfig.GM_INFO.review == 1) coin = 1900;\r\n else if(cc.fx.GameConfig.GM_INFO.review == 2) coin = 2500;\r\n // console.log(\"自身金币:\",cc.fx.GameConfig.GM_INFO.coin,\"消耗金币:\",coin);\r\n if(cc.fx.GameConfig.GM_INFO.coin < Math.abs(coin)){\r\n MiniGameSdk.API.showToast(\"金币不足,无法加时间\");\r\n return;\r\n }\r\n else{\r\n this.runRewive(-coin);\r\n }\r\n }\r\n\r\n runRewive(data){\r\n console.log(\"复活回调函数内\",data);\r\n cc.fx.GameTool.changeCoin(data);\r\n MiniGameSdk.API.showToast(\"继续游戏\");\r\n \r\n if(cc.fx.GameConfig.GM_INFO.review < 2)\r\n cc.fx.GameConfig.GM_INFO.review += 1;\r\n \r\n this.gameOver = false;\r\n this.timeNumber = 21;\r\n this.add_Time += 20;\r\n this.pause = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").active = false;\r\n this.startTimeCutDown();\r\n }\r\n\r\n\r\n \r\n homeBtn(){\r\n // alert(\"游戏失败\");\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n if(!this.homeCanTouch) return;\r\n this.homeCanTouch = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Lock\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Health\").active = true;\r\n let data = {\r\n time:this.count_Time, \r\n add_Time:this.add_Time,\r\n result:\"fail\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\",data);\r\n if(this.gameStart == true){\r\n cc.fx.GameTool.setUserHealth(-1,(data)=>{\r\n })\r\n }\r\n // this.node.parent.parent.parent.destroy();\r\n }\r\n\r\n returnHome(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n if(MapConroler._instance = null){\r\n return;\r\n }\r\n // MiniGameSdk.API.showToast(\"体力值减少\");\r\n MapConroler._instance = null;\r\n cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n if(this.new_mode == 3){\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(1);\r\n return;\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n \r\n });\r\n\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n }\r\n\r\n //判断游戏失败\r\n failLevel(type){\r\n this.stopTimeCutDown();\r\n if(this.gameOver== true ||this.gameWin == true){\r\n return;\r\n }\r\n\r\n let time = 0;\r\n this.gameOver = true;\r\n if(type == \"boom\"){\r\n time = 2000;\r\n }\r\n setTimeout(() => {\r\n this.node.parent.parent.getChildByName(\"Lose\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = false;\r\n let buyBtn = this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").getChildByName(\"buyBtn\");\r\n buyBtn.getChildByName(\"coin1\").active = buyBtn.getChildByName(\"coin2\").active = buyBtn.getChildByName(\"coin3\").active =false; \r\n if(cc.fx.GameConfig.GM_INFO.review == 0)buyBtn.getChildByName(\"coin1\").active = true;\r\n else if(cc.fx.GameConfig.GM_INFO.review == 1) buyBtn.getChildByName(\"coin2\").active = true;\r\n else if(cc.fx.GameConfig.GM_INFO.review == 2) buyBtn.getChildByName(\"coin3\").active = true;\r\n if(type){\r\n if(type == \"boom\"){\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = true;\r\n }\r\n }\r\n }, time);\r\n \r\n // console.log(\"游戏失败\");\r\n }\r\n\r\n //打开新模式弹窗\r\n openNewMode(type){\r\n let index = 0;\r\n const BLOCKS_PER_FRAME = 5; // 每帧销毁的方块数量\r\n const destroyBlocks = () => {\r\n const endIndex = Math.min(index + BLOCKS_PER_FRAME, this.blocks.length);\r\n for (; index < endIndex; index++) {\r\n if (this.blocks[index]) {\r\n this.blocks[index].destroy();\r\n }\r\n }\r\n // 如果还有方块未销毁,下一帧继续\r\n if (index < this.blocks.length) {\r\n this.scheduleOnce(destroyBlocks, 0);\r\n } else {\r\n }\r\n };\r\n // 开始分帧销毁方块\r\n destroyBlocks();\r\n this.node.parent.parent.getChildByName(\"NewMode\").active = true;\r\n this.node.parent.parent.getChildByName(\"NewMode\").getComponent(\"NewMode\").setMode(type);\r\n }\r\n\r\n \r\n downDoor(color,type){\r\n for(let i=0; i{\r\n })\r\n let data = {\r\n id:\"2001\",\r\n num:-1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\",data);\r\n }\r\n else MiniGameSdk.API.showToast(\"道具使用中,请稍后再试\");\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n //解开时间冻结\r\n openIce(){\r\n if(this.node.parent.getChildByName(\"Ice\").active){\r\n this.freezeMask.active = false;\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n this.node.parent.getChildByName(\"Ice\").active = false;\r\n this.node.parent.getChildByName(\"Top\").getChildByName(\"Ice\").active = false;\r\n this.pause = false;\r\n // this.startTimeCutDown();\r\n }\r\n }\r\n \r\n handleBuySuccess(data){\r\n this.pause = false;\r\n const timestamp = Date.now();\r\n // console.log(\"回调函数内:\",this.pause);\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n let hammerBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n let magicBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if(data == \"freezeAmount\") freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if(data == \"hammerAmount\") hammerBtn.getComponent(\"btnControl\").setTouch(true); \r\n else if(data == \"magicAmount\") magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n if(data == \"freezeAmount\"){\r\n cc.fx.GameConfig.GM_INFO.freezeAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.freezeAmount = cc.fx.GameConfig.GM_INFO.freezeAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n MiniGameSdk.API.showToast(\"购买冻结时间道具成功\");\r\n }, 200);\r\n\r\n \r\n }\r\n else if(data == \"magicAmount\"){\r\n cc.fx.GameConfig.GM_INFO.magicAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n MiniGameSdk.API.showToast(\"购买锤子道具成功\");\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n }, 200);\r\n \r\n }\r\n else if(data == \"hammerAmount\"){\r\n cc.fx.GameConfig.GM_INFO.hammerAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n MiniGameSdk.API.showToast(\"购买魔法棒道具成功\");\r\n }, 200);\r\n\r\n }\r\n \r\n \r\n\r\n }\r\n\r\n //使用锤子道具\r\n useHammer(){\r\n if(this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true \r\n || this.magicMask.active== true || this.timeNumber <= 1){\r\n return;\r\n }\r\n let hammerBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n if(hammerBtn.getComponent(\"btnControl\")._touch){\r\n hammerBtn.getComponent(\"btnControl\").setTouch(false);\r\n if(cc.fx.GameConfig.GM_INFO.hammerAmount < 1){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n hammerBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"hammer\");\r\n }\r\n else{\r\n if(!this.hammer){\r\n const timestamp = Date.now();\r\n this.hammerMask.active = true;\r\n\r\n this.hammer = true;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount -= 1;\r\n if(cc.fx.GameConfig.GM_INFO.hammerAmount < 0) \r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n console.log(\"锤子道具信息:\",propInfo);\r\n propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n cc.fx.GameTool.setUserProp(2002,cc.fx.GameConfig.GM_INFO.hammerAmount,(data)=>{\r\n })\r\n let data = {\r\n id:\"2002\",\r\n num:-1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\",data);\r\n }\r\n else MiniGameSdk.API.showToast(\"道具使用中,请稍后再试\");\r\n }\r\n\r\n }\r\n\r\n }\r\n \r\n buyMagic(){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2003,this.handleBuySuccess.bind(this,\"magicAmount\"));\r\n }\r\n\r\n buyHammer(){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2002, this.handleBuySuccess.bind(this,\"hammerAmount\"));\r\n }\r\n\r\n buyFreeze(){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2001,this.handleBuySuccess.bind(this,\"freezeAmount\"));\r\n }\r\n\r\n //使用魔法棒随机消除两个方块\r\n useMagic(){\r\n if(this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true \r\n || this.magicMask.active== true || this.timeNumber <= 1){\r\n return;\r\n }\r\n let magicBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if(magicBtn.getComponent(\"btnControl\")._touch){\r\n magicBtn.getComponent(\"btnControl\").setTouch(false);\r\n if(cc.fx.GameConfig.GM_INFO.magicAmount < 1){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"magic\");\r\n // MiniGameSdk.API.showToast(\"魔法棒数量不足,自动购买魔法棒\");\r\n }\r\n else{\r\n const timestamp = Date.now();\r\n this.magicMask.active = true;\r\n setTimeout(() => {\r\n this.magicMask.active = false;\r\n magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n }, 1000);\r\n \r\n cc.fx.GameConfig.GM_INFO.magicAmount -= 1;\r\n if(cc.fx.GameConfig.GM_INFO.magicAmount < 0) \r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n cc.fx.GameTool.setUserProp(2003,cc.fx.GameConfig.GM_INFO.magicAmount,(data)=>{\r\n })\r\n let data = {\r\n id:\"2003\",\r\n num:-1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\",data);\r\n let nomalArray = [];\r\n // this.magicBtn.node.active = false;\r\n for(let i =0; i 1){\r\n nomalArray = cc.fx.GameTool.shuffleArray(nomalArray);\r\n nomalArray[0].getComponent(\"Block\").eliminate();\r\n let time = 0;\r\n if(nomalArray[0].getComponent(\"Block\").type == 1 || nomalArray[0].getComponent(\"Block\").type == 9){\r\n time = 200;\r\n }\r\n if(time > 0){\r\n setTimeout(() => {\r\n nomalArray[1].getComponent(\"Block\").eliminate();\r\n }, time);\r\n return;\r\n }\r\n else{\r\n nomalArray[1].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n }\r\n else if(nomalArray.length == 1){\r\n nomalArray[0].getComponent(\"Block\").eliminate();\r\n let time = 0;\r\n if(nomalArray[0].getComponent(\"Block\").type == 1 || nomalArray[0].getComponent(\"Block\").type == 9){\r\n time = 200;\r\n }\r\n setTimeout(() => {\r\n if(this.freezeArray.length == 0 && this.loackArray.length == 0){\r\n // console.log(\"只剩下一个块道具使用完毕\");\r\n }\r\n else{\r\n if(this.loackArray.length != 0){\r\n // console.log(\"消除一个普通块后,消除一个带锁块\");\r\n this.loackArray[0].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n else if(this.freezeArray.length!= 0){\r\n // console.log(\"消除一个普通块后,消除一个冻结块\");\r\n this.freezeArray[0].getComponent(\"Block\").eliminate();\r\n return; \r\n }\r\n }\r\n }, 200+time);\r\n }\r\n else{\r\n let count = 2;\r\n if(this.loackArray.length!= 0){\r\n for(let i=0; i {\r\n if(count != 0){\r\n for(let i=0; i 13){\r\n this.node.scale = 1;\r\n }\r\n\r\n // this.node.scale = 1;\r\n cc.fx.GameConfig.GM_INFO.scale = this.node.scale;\r\n // this.node.scale = 0.5;\r\n // console.log(this.node.scale);\r\n // this.node.scale = 1;\r\n }\r\n\r\n //创建门的粒子特效\r\n createParticle(block,jg){\r\n let particle = cc.instantiate(MapConroler._instance.Block_Prop[9]);\r\n particle.parent = this.node;\r\n particle.zIndex = 1000;\r\n let width = Math.floor(block.width / 120);\r\n let height = Math.floor(block.height / 120);\r\n let name = \"\";\r\n\r\n if(jg == 0 || jg == 1){\r\n let y = block.y + block.height;\r\n let x = block.x - block.width/2;\r\n name = \"top_\" + width + \"_\" + height;\r\n if(jg == 1){\r\n name = \"bot_\" + width + \"_\" + height;\r\n y = block.y;\r\n }\r\n if(block.anchorX == 0.5){\r\n x = block.x;\r\n }\r\n else if(block.anchorX == 0.33){\r\n x = block.x + block.width*(0.5-0.33);\r\n }\r\n else if(block.anchorX == 0.66){\r\n x = block.x + block.width*(0.5-0.66); \r\n }\r\n particle.setPosition(x, y); \r\n } \r\n else if(jg == 2 || jg == 3){\r\n name = \"left_\" + height + \"_\" + width;\r\n let x = block.x - block.width;\r\n let y = block.y + block.height/2;\r\n if(block.anchorX == 0.5){\r\n x = block.x - block.width/2;\r\n }\r\n else if(block.anchorX == 0.33){\r\n x = block.x - block.width*0.33;\r\n }\r\n else if(block.anchorX == 0.66){\r\n x = block.x + block.width*0.66; \r\n }\r\n if(jg == 3){\r\n name = \"right_\" + height + \"_\" + width;\r\n x = block.x;\r\n if(block.anchorX == 0.5){\r\n x = block.x + block.width/2;\r\n }\r\n else if(block.anchorX == 0.33){\r\n x = block.x + block.width*0.66;\r\n }\r\n else if(block.anchorX == 0.66){\r\n x = block.x + block.width*0.33; \r\n }\r\n }\r\n\r\n particle.setPosition(x, y); \r\n } \r\n\r\n let particleNode = particle.getChildByName(name);\r\n let color = block.getComponent(\"Block\").color - 1;\r\n\r\n particleNode.getComponent(cc.ParticleSystem).spriteFrame = particle.getComponent(\"Reduce\").Block_Color[color];\r\n particleNode.active = true;\r\n setTimeout(() => {\r\n cc.tween(particle)\r\n .to(2, {opacity: 0})\r\n .call(() => {\r\n particle.destroy(); \r\n })\r\n .start();\r\n }, 1200);\r\n }\r\n\r\n removeOneBlock() {\r\n // 移除所有方块\r\n for(let i =0 ; i = [];\r\n\r\n @property({type: [cc.Prefab], tooltip:\"方块道具数组\"})\r\n Block_Prop : Array = [];\r\n\r\n @property(cc.Prefab)\r\n MapBlockPrefab: cc.Prefab = null;\r\n\r\n @property({type: [cc.SpriteAtlas], tooltip:\"方块颜色\"})\r\n Block_Color : Array = [];\r\n\r\n\r\n @property({type: [cc.Prefab], tooltip:\"墙壁数组\"})\r\n Wall_Prefab : Array = [];\r\n\r\n \r\n\r\n @property(cc.Prefab)\r\n wallTurnPrefab: cc.Prefab = null;\r\n\r\n @property(cc.Button)\r\n timeBtn: cc.Button = null;\r\n @property(cc.Button)\r\n destroyBtn: cc.Button = null;\r\n @property(cc.Button)\r\n magicBtn: cc.Button = null;\r\n\r\n @property(cc.Node)\r\n mask: cc.Node = null;\r\n\r\n @property(cc.Label)\r\n iceLabel: cc.Label = null;\r\n @property(cc.Label)\r\n hammerLabel: cc.Label = null;\r\n @property(cc.Label)\r\n magicLabel: cc.Label = null;\r\n\r\n @property(cc.Node)\r\n magicMask: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n hammerMask: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n freezeMask: cc.Node = null;\r\n\r\n \r\n @property(cc.Node)\r\n coinPop: cc.Node = null;\r\n\r\n timeLabel: cc.Node = null;\r\n levelLabel: cc.Node = null;\r\n\r\n new_mode: number = 0;\r\n mapWidth: number = 0;\r\n mapHeight: number = 0;\r\n wallNum: number = 0;\r\n blockNum: number = 0;\r\n mapBlocksWall: any; //地图的所有底块\r\n mapInfo: any; //地图除了底块的其他信息\r\n blocks: any; //方块数组\r\n wallInfo: any; //墙壁数组\r\n wallArray:any; //\r\n openWall: any; //开关墙数组\r\n freezeWall: any; //冻结墙数组\r\n riseFallBlcok:any; //升降地块数组\r\n scheduleCallback: any;//倒计时用\r\n homeCanTouch:boolean = true;//按钮可用状态\r\n againCanTouch:boolean = true;//重玩按钮可以用状态\r\n gameOver: boolean = false;//游戏结束状态\r\n gameWin: boolean = false;//游戏胜利状态\r\n gameStart: boolean = false;//游戏开始状态\r\n timeNumber: number = 0; //游戏时间 用于倒计时\r\n count_Time: number = 0; //用于统计总游戏时长\r\n add_Time: number = 0; //复活时间\r\n mapBlockArray: any; //地图的所有格子状态存储\r\n pause:boolean = false;//暂停状态\r\n hammer:boolean = false;//锤子状态\r\n freezeArray: any; //冻结\r\n loackArray: any; //上锁\r\n particleEffects: cc.ParticleAsset[];\r\n // leftDoors: []; //左门\r\n rightDoors: any; //右门\r\n topDoors: any; //上门\r\n bottomDoors: any; //下门\r\n leftDoors: any;\r\n\r\n\r\n // mapInfo: number[][] = [];\r\n\r\n onLoad () {\r\n\r\n cc.fx.GameConfig.GM_INFO.review = 0;\r\n cc.fx.GameConfig.GM_INFO.gameState = true;\r\n this.mask.opacity = 0;\r\n this.node.getChildByName(\"Adhesive\").zIndex = 500;\r\n cc.game.setFrameRate(63); \r\n cc.fx.AudioManager._instance.playEffect(\"zhuan2\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"down\",false);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n if (entry.animation.name === \"down\") {\r\n // 动画播放结束后执行的逻辑\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n });\r\n this.blocks = [];\r\n this.leftDoors = []; //左门\r\n this.rightDoors = []; //右门\r\n this.topDoors = []; //上门\r\n this.bottomDoors = []; //下门\r\n this.gameWin = false;\r\n this.gameOver = false;\r\n this.gameStart = false; \r\n this.homeCanTouch = true;\r\n this.againCanTouch = true;\r\n this.new_mode = 0;\r\n this.count_Time = 0;\r\n this.add_Time = 0;\r\n \r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n \r\n // cc.game.addPersistRootNode(this.node);\r\n MapConroler._instance = this;\r\n } \r\n\r\n start () {\r\n setTimeout(() => {\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 HomeScene 失败:', err);\r\n return;\r\n }\r\n });\r\n }, 1000);\r\n // console.log(\"进入GameScene\");\r\n this.Block_Array = GameManager._instance.Block_Array;\r\n this.Wall_Prefab = GameManager._instance.Wall_Prefab;\r\n this.Block_Color = GameManager._instance.Block_Color;\r\n // this.particleEffects = GameManager._instance.particleEffects;\r\n \r\n this.initMap();\r\n \r\n }\r\n\r\n startUpdate(){\r\n if(this.gameStart == false){\r\n this.gameStart = true;\r\n //发送数数事件——进入关卡\r\n console.log(\"准备进入下一关,发送下一关进入\");\r\n cc.fx.GameTool.shushu_Track(\"enter_stage\");\r\n this.startTimeCutDown();\r\n for(let i =0; i {\r\n const startTime = performance.now();\r\n for (let i = 0; i < BLOCKS_PER_FRAME && index < blockArray.length; i++) {\r\n let blockInfo = blockArray[index];\r\n // 缓存 Block_Array 访问\r\n const blockPrefab = this.Block_Array[blockInfo.block]; \r\n let block = cc.instantiate(blockPrefab);\r\n block.parent = this.node;\r\n block.setPosition(cc.v2(blockInfo.position.x, blockInfo.position.y));\r\n if (blockInfo.block != 23) {\r\n this.blockNum += 1;\r\n this.blocks.push(block);\r\n if (blockInfo.type == 1) {\r\n let info = {\r\n id: blockInfo.id + 1,\r\n block: blockInfo.block,\r\n color: blockInfo.stacking,\r\n type: 10,\r\n position: blockInfo.position,\r\n stacking: blockInfo.color\r\n };\r\n // 缓存 Block_Array 访问\r\n const blockUpPrefab = this.Block_Array[info.block]; \r\n let blockUp = cc.instantiate(blockUpPrefab);\r\n blockUp.parent = this.node;\r\n blockUp.setPosition(cc.v2(info.position.x, info.position.y));\r\n\r\n this.blocks.push(blockUp);\r\n block.getComponent(\"Block\").init(blockInfo, null, null, blockUp);\r\n blockUp.getComponent(\"Block\").init(info, null, null, block);\r\n \r\n this.blockNum += 1;\r\n } else if (blockInfo.type == 9) {\r\n if(blockInfo.adhesiveTime < 2){\r\n index++;\r\n continue;\r\n }\r\n index++;\r\n let info = blockArray[index];\r\n // 缓存 Block_Array 访问\r\n const blockUpPrefab = this.Block_Array[info.block]; \r\n let blockUp = cc.instantiate(blockUpPrefab);\r\n blockUp.parent = this.node;\r\n blockUp.setPosition(cc.v2(info.position.x, info.position.y));\r\n\r\n this.blocks.push(blockUp);\r\n block.getComponent(\"Block\").init(blockInfo, null, null, blockUp,false);\r\n setTimeout(() => {\r\n blockUp.getComponent(\"Block\").init(info, null, null, block,true);\r\n }, 100);\r\n this.blockNum += 1;\r\n } else {\r\n block.getComponent(\"Block\").init(blockInfo);\r\n } \r\n }\r\n else{\r\n block.getComponent(\"Barrier\").init(blockInfo);\r\n }\r\n index++;\r\n }\r\n const endTime = performance.now();\r\n const frameTime = endTime - startTime;\r\n // 如果当前帧执行时间过长,减少每帧创建数量\r\n if (frameTime > 16) { \r\n BLOCKS_PER_FRAME = Math.max(BLOCKS_PER_FRAME - 1, MIN_PER_FRAME);\r\n } else {\r\n BLOCKS_PER_FRAME = Math.min(BLOCKS_PER_FRAME + 1, MAX_PER_FRAME);\r\n }\r\n\r\n // 如果还有方块未创建,下一帧继续创建\r\n if (index < blockArray.length) {\r\n // 使用 scheduleOnce 在下一帧执行 createBlocks\r\n this.scheduleOnce(() => {\r\n createBlocks();\r\n }, 0);\r\n } else {\r\n\r\n }\r\n };\r\n\r\n // 开始分帧创建方块\r\n createBlocks();\r\n}\r\n//给创建方块排序,用来降低drawcall 合批\r\nsortBlock(allBlocks: { color: number; block: number; type: number }[]) {\r\n return allBlocks.sort((a, b) => {\r\n // 先处理 type 为 1 的情况,将其放到最后\r\n if (a.type === 1 && b.type !== 1) {\r\n return 1;\r\n }\r\n if (a.type !== 1 && b.type === 1) {\r\n return -1;\r\n }\r\n\r\n // 对 type 不为 0 的元素按 type 排序\r\n if (a.type !== 0 && b.type !== 0) {\r\n return a.type - b.type;\r\n }\r\n if (a.type !== 0 && b.type === 0) {\r\n return 1;\r\n }\r\n if (a.type === 0 && b.type !== 0) {\r\n return -1;\r\n }\r\n\r\n // 再处理 block 为 23 的情况,将其放到最前面\r\n if (a.block === 23 && b.block !== 23) {\r\n return -1;\r\n }\r\n if (a.block !== 23 && b.block === 23) {\r\n return 1;\r\n }\r\n\r\n // 其余按 color 升序排列\r\n return a.color - b.color;\r\n });\r\n}\r\n\r\n\r\n//创建墙壁\r\n\r\nwallInit() {\r\n let index = 0; // 当前要创建的墙壁索引\r\n let WALLS_PER_FRAME = 1; // 初始每帧创建的墙壁数量\r\n const MAX_PER_FRAME = 10; // 每帧最大创建数量\r\n const MIN_PER_FRAME = 1; // 每帧最小创建数量\r\n\r\n const createWalls = () => {\r\n const startTime = performance.now();\r\n for (let i = 0; i < WALLS_PER_FRAME && index < this.wallInfo.length; i++) {\r\n let block = this.wallInfo[index];\r\n let dir = this.getWllDiraction(\"wall\", cc.v2(block.getComponent(\"MapBlock\").posX, block.getComponent(\"MapBlock\").posY));\r\n if (dir != null) {\r\n this.createWall(dir, block);\r\n }\r\n index++;\r\n }\r\n const endTime = performance.now();\r\n const frameTime = endTime - startTime;\r\n // 如果当前帧执行时间过长,减少每帧创建数量\r\n if (frameTime > 16) { \r\n WALLS_PER_FRAME = Math.max(WALLS_PER_FRAME - 1, MIN_PER_FRAME);\r\n } else {\r\n WALLS_PER_FRAME = Math.min(WALLS_PER_FRAME + 1, MAX_PER_FRAME);\r\n }\r\n\r\n // 如果还有墙壁未创建,下一帧继续创建\r\n if (index < this.wallInfo.length) {\r\n this.scheduleOnce(() => {\r\n createWalls();\r\n }, 0);\r\n } else {\r\n // 所有墙壁创建完成后,创建拐角节点\r\n this.createCornerNodes();\r\n }\r\n };\r\n\r\n // 开始分帧创建墙壁\r\n createWalls();\r\n}\r\n\r\n// ... 已有代码 ...\r\n\r\n getWllDiraction(type,pointA){\r\n let dir = [];\r\n let pointB = cc.v2(pointA.x + 1,pointA.y);\r\n let pointC = cc.v2(pointA.x - 1,pointA.y);\r\n let pointD = cc.v2(pointA.x,pointA.y + 1);\r\n let pointE = cc.v2(pointA.x,pointA.y - 1);\r\n let opacity = 0;\r\n if(type == \"wall\") opacity = 255;\r\n if(type == \"turn\") opacity = 250;\r\n \r\n if(pointB.x < this.mapWidth){\r\n if(this.mapBlocksWall[pointB.x][pointB.y].opacity == opacity ){\r\n if(type == \"turn\" && this.mapBlocksWall[pointB.x][pointB.y].getComponent(\"MapBlock\").direction == \"right\"){\r\n \r\n }\r\n else dir.push(\"right\");\r\n }\r\n }\r\n if(pointC.x >= 0){\r\n if(this.mapBlocksWall[pointC.x][pointC.y].opacity == opacity){\r\n if(type == \"turn\" && this.mapBlocksWall[pointC.x][pointC.y].getComponent(\"MapBlock\").direction == \"left\"){\r\n \r\n }\r\n else dir.push(\"left\");\r\n }\r\n }\r\n if(pointD.y < this.mapHeight){\r\n if(this.mapBlocksWall[pointD.x][pointD.y].opacity == opacity){\r\n if(type == \"turn\" && this.mapBlocksWall[pointD.x][pointD.y].getComponent(\"MapBlock\").direction == \"up\"){\r\n \r\n }\r\n else dir.push(\"up\");\r\n }\r\n }\r\n if(pointE.y >= 0){\r\n if(this.mapBlocksWall[pointE.x][pointE.y].opacity == opacity){\r\n if(type == \"turn\" && this.mapBlocksWall[pointE.x][pointE.y].getComponent(\"MapBlock\").direction == \"down\"){\r\n \r\n }\r\n else dir.push(\"down\");\r\n }\r\n }\r\n if(dir.length > 2){\r\n\r\n return null;\r\n }\r\n if(dir.length == 1){\r\n if(type == \"wall\")\r\n return dir[0];\r\n else \r\n return null;\r\n }\r\n else if(dir.length == 2){\r\n return dir[0] + dir[1];\r\n }\r\n }\r\n\r\n createCornerNodes() {\r\n // 定义拐角位置\r\n for(let i=0; i 3) maxX = maxX-1;\r\n }\r\n else if(block.name == \"block11\"){\r\n minX = width-2;\r\n if(this.mapWidth > 3) maxX = maxX-2;\r\n }\r\n\r\n else if(block.name == \"block14\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n else if(block.name == \"block16\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n else if(block.name == \"block18\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n else if(block.name == \"block21\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n \r\n return {minX:minX,maxX:maxX,minY:minY,maxY:maxY};\r\n }\r\n\r\n //检测落点是否可以消除\r\n checkPass(node,blocks) {\r\n let minAndMax = this.getMinAndMax(node);\r\n let minX = minAndMax.minX;\r\n let maxX = minAndMax.maxX;\r\n let minY = minAndMax.minY;\r\n let maxY = minAndMax.maxY;\r\n\r\n let nodePos = cc.v2(node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY);\r\n\r\n // 获取地图边界信息\r\n\r\n let allBlocks = [];\r\n for(let i=0;i wallPos.x){\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n leftWalls.push(wallLeft);\r\n }\r\n }\r\n }\r\n // console.log(\"得到左边墙壁数组\",date6);\r\n if(leftWalls.length != 0){\r\n let result = this.detectingBlock(\"left\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n if(result == true) result = this.passWall(result,leftWalls,node);\r\n // console.log(\"碰到左边缘结果:\",jg);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 2;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n }\r\n if (nodePos.x >= maxX || direction[1] == true) {\r\n // const date3 = new Date().getTime();\r\n // console.log(\"碰到右边缘\",date3);\r\n pz += 1;\r\n let rightWalls = [];\r\n for(let i = 0; i < this.rightDoors.length; i++){\r\n let wallRight = this.rightDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallRight.getComponent(\"Wall\").posX,wallRight.getComponent(\"Wall\").posY);\r\n for(let i = 0; i < allBlocks.length; i++){\r\n if(allBlocks[i].y == wallPos.y && allBlocks[i].x < wallPos.x){\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n rightWalls.push(wallRight);\r\n }\r\n }\r\n }\r\n\r\n if(rightWalls.length != 0){\r\n let result = this.detectingBlock(\"right\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n \r\n if(result == true) result = this.passWall(result,rightWalls,node);\r\n // console.log(\"碰到右边缘结果:\",jg);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 3;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n\r\n \r\n }\r\n if (nodePos.y <= minY || direction[2] == true) {\r\n pz += 1;\r\n // const date4 = new Date().getTime();\r\n // console.log(\"碰到下边缘\",date4);\r\n let downWalls = [];\r\n for(let i = 0; i < this.topDoors.length; i++){\r\n let wallBottom = this.topDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallBottom.getComponent(\"Wall\").posX,wallBottom.getComponent(\"Wall\").posY);\r\n for(let i = 0; i < allBlocks.length; i++){\r\n let luocha = Math.abs(allBlocks[i].y - wallPos.y)\r\n if(allBlocks[i].x == wallPos.x && allBlocks[i].y > wallPos.y && luocha <= node.getComponent(\"Block\").shu){\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n downWalls.push(wallBottom);\r\n }\r\n }\r\n }\r\n\r\n if(downWalls.length != 0){\r\n let result = this.detectingBlock(\"down\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n if(result == true) result = this.passWall(result,downWalls,node);\r\n // console.log(\"碰到下边缘结果:\",jg);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 1;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n \r\n\r\n }\r\n if (nodePos.y >= maxY || direction[3] == true) {\r\n pz += 1;\r\n // const date5 = new Date().getTime();\r\n // console.log(\"碰到上边缘\",date5);\r\n let upWalls = [];\r\n for(let i = 0; i < this.bottomDoors.length; i++){\r\n let wallTop = this.bottomDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallTop.getComponent(\"Wall\").posX,wallTop.getComponent(\"Wall\").posY);\r\n for(let i = 0; i < allBlocks.length; i++){\r\n let luocha = Math.abs(allBlocks[i].y - wallPos.y)\r\n if(allBlocks[i].x == wallPos.x && allBlocks[i].y < wallPos.y && luocha <= node.getComponent(\"Block\").shu){\r\n upWalls.push(wallTop);\r\n }\r\n }\r\n }\r\n\r\n if(upWalls.length != 0){\r\n let result = this.detectingBlock(\"up\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n if(result == true) result = this.passWall(result,upWalls,node);\r\n // console.log(\"碰到上边缘结果:\",result);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 0;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n\r\n }\r\n if(pz == 0 )jg = -1;\r\n // const date10 = new Date().getTime();\r\n // console.log(\"所有检测结束耗时\",date10,jg);\r\n return jg;\r\n }\r\n\r\n changeState(){\r\n if(this.openWall.length != 0){\r\n for(let i=0; i 0){\r\n for(let i=0; i= 0){\r\n if(this.mapBlocksWall[x-2][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x-2][y].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x-2][y].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"左侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x-2][y].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n else if(direction == \"right\"){\r\n if(this.mapBlocksWall[x+1][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x+1][y].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x+1][y].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"右侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x+1][y].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n if((x + 2) <= this.mapBlocksWall.length-1){\r\n if(this.mapBlocksWall[x+2][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x+2][y].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x+2][y].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"右侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x+2][y].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n if(direction == \"up\"){\r\n if(this.mapBlocksWall[x][y+1].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y+1].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y+1].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"上侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y+1].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n if((y + 2) <= this.mapBlocksWall[x].length-1){\r\n if(this.mapBlocksWall[x][y+2].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y+2].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y+2].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"上侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y+2].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n if(direction == \"down\"){\r\n if(this.mapBlocksWall[x][y-1].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y-1].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y-1].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"下侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y-1].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n if((y - 2) >= 0){\r\n if(this.mapBlocksWall[x][y-2].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y-2].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y-2].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"下侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y-2].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n // console.log(\"检测物体各方向是否有别的物块\",jg);\r\n return jg;\r\n }\r\n\r\n checkDiraction(allBlocks,maxX,maxY){\r\n let jg = [false,false,false,false];\r\n for(let i=0; i 0 && jg[0] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x-1][allBlocks[i].y].opacity == 250){\r\n jg[0] = true;\r\n } \r\n }\r\n if( jg[1] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x+1][allBlocks[i].y].opacity == 250){\r\n jg[1] = true;\r\n } \r\n }\r\n if(allBlocks[i].y > 0 && jg[2] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y-1].opacity == 250){\r\n jg[2] = true;\r\n } \r\n }\r\n if(jg[3] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y+1].opacity == 250){\r\n jg[3] = true;\r\n } \r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n checkLeft(allBlocks){\r\n let jg = false;\r\n return jg;\r\n }\r\n\r\n checkRight(allBlocks,max){\r\n let jg = false;\r\n for(let i=0; i {\r\n if(child.getComponent(\"Block\")){\r\n if(child.getComponent(\"Block\").type == 4)\r\n return child\r\n }\r\n });\r\n if(freezeBlock.length > 0){\r\n for(let i=0; i {\r\n if(child.getComponent(\"Block\")){\r\n if(child.getComponent(\"Block\").type == 3)\r\n return child\r\n }\r\n });\r\n if(lockBlock.length > 0)\r\n for(let i=0; i {\r\n this.node.parent.parent.getChildByName(\"Win\").active = true;\r\n }, 660);\r\n // console.log(\"游戏成功\");\r\n }\r\n else{\r\n if(this.gameOver == true){\r\n this.failLevel(null);\r\n }\r\n }\r\n }\r\n\r\n check_NewMode(){\r\n for(let i=0; i 156){\r\n cc.fx.GameConfig.GM_INFO.level = 156;\r\n // MapConroler._instance = null;\r\n \r\n if(this.new_mode == 3){\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(2);\r\n cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n return;\r\n }\r\n // cc.fx.GameConfig.LEVEL_INFO_init(true);\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n });\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n } \r\n else{\r\n \r\n // console.log(\"下一关\");\r\n // MapConroler._instance = null;\r\n \r\n if(this.new_mode == 3){\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(2);\r\n cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n return;\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.LEVEL_INFO_init(true,0);\r\n }, 1200);\r\n \r\n // this.node.parent.parent.parent.destroy();\r\n \r\n }\r\n }\r\n\r\n againLevel(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n if(cc.fx.GameConfig.GM_INFO.hp < 1){\r\n MiniGameSdk.API.showToast(\"体力值不足\");\r\n return;\r\n } \r\n if(!this.againCanTouch) return;\r\n \r\n this.againCanTouch = false;\r\n \r\n // MapConroler._instance = null;\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.LEVEL_INFO_init(true,0);\r\n }, 1200);\r\n // this.node.parent.parent.parent.destroy();\r\n }\r\n\r\n reviewLevel(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n let coin = 900;\r\n if(cc.fx.GameConfig.GM_INFO.review == 1) coin = 1900;\r\n else if(cc.fx.GameConfig.GM_INFO.review == 2) coin = 2500;\r\n // console.log(\"自身金币:\",cc.fx.GameConfig.GM_INFO.coin,\"消耗金币:\",coin);\r\n if(cc.fx.GameConfig.GM_INFO.coin < Math.abs(coin)){\r\n MiniGameSdk.API.showToast(\"金币不足,无法加时间\");\r\n return;\r\n }\r\n else{\r\n this.runRewive(-coin);\r\n }\r\n }\r\n\r\n runRewive(data){\r\n console.log(\"复活回调函数内\",data);\r\n cc.fx.GameTool.changeCoin(data);\r\n MiniGameSdk.API.showToast(\"继续游戏\");\r\n \r\n if(cc.fx.GameConfig.GM_INFO.review < 2)\r\n cc.fx.GameConfig.GM_INFO.review += 1;\r\n \r\n this.gameOver = false;\r\n this.timeNumber = 21;\r\n this.add_Time += 20;\r\n this.pause = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").active = false;\r\n this.startTimeCutDown();\r\n }\r\n\r\n\r\n \r\n homeBtn(){\r\n // alert(\"游戏失败\");\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n if(!this.homeCanTouch) return;\r\n this.homeCanTouch = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Lock\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Health\").active = true;\r\n let data = {\r\n time:this.count_Time, \r\n add_Time:this.add_Time,\r\n result:\"fail\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\",data);\r\n if(this.gameStart == true){\r\n cc.fx.GameTool.setUserHealth(-1,(data)=>{\r\n })\r\n }\r\n // this.node.parent.parent.parent.destroy();\r\n }\r\n\r\n returnHome(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n if(MapConroler._instance = null){\r\n return;\r\n }\r\n // MiniGameSdk.API.showToast(\"体力值减少\");\r\n // MapConroler._instance = null;\r\n cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n if(this.new_mode == 3){\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(1);\r\n return;\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n \r\n });\r\n\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n }\r\n\r\n //判断游戏失败\r\n failLevel(type){\r\n this.stopTimeCutDown();\r\n if(this.gameOver== true ||this.gameWin == true){\r\n return;\r\n }\r\n\r\n let time = 0;\r\n this.gameOver = true;\r\n if(type == \"boom\"){\r\n time = 2000;\r\n }\r\n setTimeout(() => {\r\n this.node.parent.parent.getChildByName(\"Lose\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = false;\r\n let buyBtn = this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").getChildByName(\"buyBtn\");\r\n buyBtn.getChildByName(\"coin1\").active = buyBtn.getChildByName(\"coin2\").active = buyBtn.getChildByName(\"coin3\").active =false; \r\n if(cc.fx.GameConfig.GM_INFO.review == 0)buyBtn.getChildByName(\"coin1\").active = true;\r\n else if(cc.fx.GameConfig.GM_INFO.review == 1) buyBtn.getChildByName(\"coin2\").active = true;\r\n else if(cc.fx.GameConfig.GM_INFO.review == 2) buyBtn.getChildByName(\"coin3\").active = true;\r\n if(type){\r\n if(type == \"boom\"){\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = true;\r\n }\r\n }\r\n }, time);\r\n \r\n // console.log(\"游戏失败\");\r\n }\r\n\r\n //打开新模式弹窗\r\n openNewMode(type){\r\n let index = 0;\r\n const BLOCKS_PER_FRAME = 5; // 每帧销毁的方块数量\r\n const destroyBlocks = () => {\r\n const endIndex = Math.min(index + BLOCKS_PER_FRAME, this.blocks.length);\r\n for (; index < endIndex; index++) {\r\n if (this.blocks[index]) {\r\n this.blocks[index].destroy();\r\n }\r\n }\r\n // 如果还有方块未销毁,下一帧继续\r\n if (index < this.blocks.length) {\r\n this.scheduleOnce(destroyBlocks, 0);\r\n } else {\r\n }\r\n };\r\n // 开始分帧销毁方块\r\n destroyBlocks();\r\n this.node.parent.parent.getChildByName(\"NewMode\").active = true;\r\n this.node.parent.parent.getChildByName(\"NewMode\").getComponent(\"NewMode\").setMode(type);\r\n }\r\n\r\n \r\n downDoor(color,type){\r\n for(let i=0; i{\r\n })\r\n let data = {\r\n id:\"2001\",\r\n num:-1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\",data);\r\n }\r\n else MiniGameSdk.API.showToast(\"道具使用中,请稍后再试\");\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n //解开时间冻结\r\n openIce(){\r\n if(this.node.parent.getChildByName(\"Ice\").active){\r\n this.freezeMask.active = false;\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n this.node.parent.getChildByName(\"Ice\").active = false;\r\n this.node.parent.getChildByName(\"Top\").getChildByName(\"Ice\").active = false;\r\n this.pause = false;\r\n // this.startTimeCutDown();\r\n }\r\n }\r\n \r\n handleBuySuccess(data){\r\n this.pause = false;\r\n const timestamp = Date.now();\r\n // console.log(\"回调函数内:\",this.pause);\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n let hammerBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n let magicBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if(data == \"freezeAmount\") freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if(data == \"hammerAmount\") hammerBtn.getComponent(\"btnControl\").setTouch(true); \r\n else if(data == \"magicAmount\") magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n if(data == \"freezeAmount\"){\r\n cc.fx.GameConfig.GM_INFO.freezeAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.freezeAmount = cc.fx.GameConfig.GM_INFO.freezeAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n MiniGameSdk.API.showToast(\"购买冻结时间道具成功\");\r\n }, 200);\r\n\r\n \r\n }\r\n else if(data == \"magicAmount\"){\r\n cc.fx.GameConfig.GM_INFO.magicAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n MiniGameSdk.API.showToast(\"购买锤子道具成功\");\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n }, 200);\r\n \r\n }\r\n else if(data == \"hammerAmount\"){\r\n cc.fx.GameConfig.GM_INFO.hammerAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n MiniGameSdk.API.showToast(\"购买魔法棒道具成功\");\r\n }, 200);\r\n\r\n }\r\n \r\n \r\n\r\n }\r\n\r\n //使用锤子道具\r\n useHammer(){\r\n if(this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true \r\n || this.magicMask.active== true || this.timeNumber <= 1){\r\n return;\r\n }\r\n let hammerBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n if(hammerBtn.getComponent(\"btnControl\")._touch){\r\n hammerBtn.getComponent(\"btnControl\").setTouch(false);\r\n if(cc.fx.GameConfig.GM_INFO.hammerAmount < 1){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n hammerBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"hammer\");\r\n }\r\n else{\r\n if(!this.hammer){\r\n const timestamp = Date.now();\r\n this.hammerMask.active = true;\r\n\r\n this.hammer = true;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount -= 1;\r\n if(cc.fx.GameConfig.GM_INFO.hammerAmount < 0) \r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n console.log(\"锤子道具信息:\",propInfo);\r\n propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n cc.fx.GameTool.setUserProp(2002,cc.fx.GameConfig.GM_INFO.hammerAmount,(data)=>{\r\n })\r\n let data = {\r\n id:\"2002\",\r\n num:-1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\",data);\r\n }\r\n else MiniGameSdk.API.showToast(\"道具使用中,请稍后再试\");\r\n }\r\n\r\n }\r\n\r\n }\r\n \r\n buyMagic(){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2003,this.handleBuySuccess.bind(this,\"magicAmount\"));\r\n }\r\n\r\n buyHammer(){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2002, this.handleBuySuccess.bind(this,\"hammerAmount\"));\r\n }\r\n\r\n buyFreeze(){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2001,this.handleBuySuccess.bind(this,\"freezeAmount\"));\r\n }\r\n\r\n //使用魔法棒随机消除两个方块\r\n useMagic(){\r\n if(this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true \r\n || this.magicMask.active== true || this.timeNumber <= 1){\r\n return;\r\n }\r\n let magicBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if(magicBtn.getComponent(\"btnControl\")._touch){\r\n magicBtn.getComponent(\"btnControl\").setTouch(false);\r\n if(cc.fx.GameConfig.GM_INFO.magicAmount < 1){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"magic\");\r\n // MiniGameSdk.API.showToast(\"魔法棒数量不足,自动购买魔法棒\");\r\n }\r\n else{\r\n const timestamp = Date.now();\r\n this.magicMask.active = true;\r\n setTimeout(() => {\r\n this.magicMask.active = false;\r\n magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n }, 1000);\r\n \r\n cc.fx.GameConfig.GM_INFO.magicAmount -= 1;\r\n if(cc.fx.GameConfig.GM_INFO.magicAmount < 0) \r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n cc.fx.GameTool.setUserProp(2003,cc.fx.GameConfig.GM_INFO.magicAmount,(data)=>{\r\n })\r\n let data = {\r\n id:\"2003\",\r\n num:-1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\",data);\r\n let nomalArray = [];\r\n // this.magicBtn.node.active = false;\r\n for(let i =0; i 1){\r\n nomalArray = cc.fx.GameTool.shuffleArray(nomalArray);\r\n nomalArray[0].getComponent(\"Block\").eliminate();\r\n let time = 0;\r\n if(nomalArray[0].getComponent(\"Block\").type == 1 || nomalArray[0].getComponent(\"Block\").type == 9){\r\n time = 200;\r\n }\r\n if(time > 0){\r\n setTimeout(() => {\r\n nomalArray[1].getComponent(\"Block\").eliminate();\r\n }, time);\r\n return;\r\n }\r\n else{\r\n nomalArray[1].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n }\r\n else if(nomalArray.length == 1){\r\n nomalArray[0].getComponent(\"Block\").eliminate();\r\n let time = 0;\r\n if(nomalArray[0].getComponent(\"Block\").type == 1 || nomalArray[0].getComponent(\"Block\").type == 9){\r\n time = 200;\r\n }\r\n setTimeout(() => {\r\n if(this.freezeArray.length == 0 && this.loackArray.length == 0){\r\n // console.log(\"只剩下一个块道具使用完毕\");\r\n }\r\n else{\r\n if(this.loackArray.length != 0){\r\n // console.log(\"消除一个普通块后,消除一个带锁块\");\r\n this.loackArray[0].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n else if(this.freezeArray.length!= 0){\r\n // console.log(\"消除一个普通块后,消除一个冻结块\");\r\n this.freezeArray[0].getComponent(\"Block\").eliminate();\r\n return; \r\n }\r\n }\r\n }, 200+time);\r\n }\r\n else{\r\n let count = 2;\r\n if(this.loackArray.length!= 0){\r\n for(let i=0; i {\r\n if(count != 0){\r\n for(let i=0; i 13){\r\n this.node.scale = 1;\r\n }\r\n\r\n // this.node.scale = 1;\r\n cc.fx.GameConfig.GM_INFO.scale = this.node.scale;\r\n // this.node.scale = 0.5;\r\n // console.log(this.node.scale);\r\n // this.node.scale = 1;\r\n }\r\n\r\n //创建门的粒子特效\r\n createParticle(block,jg){\r\n let particle = cc.instantiate(MapConroler._instance.Block_Prop[9]);\r\n particle.parent = this.node;\r\n particle.zIndex = 1000;\r\n let width = Math.floor(block.width / 120);\r\n let height = Math.floor(block.height / 120);\r\n let name = \"\";\r\n\r\n if(jg == 0 || jg == 1){\r\n let y = block.y + block.height;\r\n let x = block.x - block.width/2;\r\n name = \"top_\" + width + \"_\" + height;\r\n if(jg == 1){\r\n name = \"bot_\" + width + \"_\" + height;\r\n y = block.y;\r\n }\r\n if(block.anchorX == 0.5){\r\n x = block.x;\r\n }\r\n else if(block.anchorX == 0.33){\r\n x = block.x + block.width*(0.5-0.33);\r\n }\r\n else if(block.anchorX == 0.66){\r\n x = block.x + block.width*(0.5-0.66); \r\n }\r\n particle.setPosition(x, y); \r\n } \r\n else if(jg == 2 || jg == 3){\r\n name = \"left_\" + height + \"_\" + width;\r\n let x = block.x - block.width;\r\n let y = block.y + block.height/2;\r\n if(block.anchorX == 0.5){\r\n x = block.x - block.width/2;\r\n }\r\n else if(block.anchorX == 0.33){\r\n x = block.x - block.width*0.33;\r\n }\r\n else if(block.anchorX == 0.66){\r\n x = block.x + block.width*0.66; \r\n }\r\n if(jg == 3){\r\n name = \"right_\" + height + \"_\" + width;\r\n x = block.x;\r\n if(block.anchorX == 0.5){\r\n x = block.x + block.width/2;\r\n }\r\n else if(block.anchorX == 0.33){\r\n x = block.x + block.width*0.66;\r\n }\r\n else if(block.anchorX == 0.66){\r\n x = block.x + block.width*0.33; \r\n }\r\n }\r\n\r\n particle.setPosition(x, y); \r\n } \r\n\r\n let particleNode = particle.getChildByName(name);\r\n let color = block.getComponent(\"Block\").color - 1;\r\n\r\n particleNode.getComponent(cc.ParticleSystem).spriteFrame = particle.getComponent(\"Reduce\").Block_Color[color];\r\n particleNode.active = true;\r\n setTimeout(() => {\r\n cc.tween(particle)\r\n .to(2, {opacity: 0})\r\n .call(() => {\r\n particle.destroy(); \r\n })\r\n .start();\r\n }, 1200);\r\n }\r\n\r\n removeOneBlock() {\r\n // 移除所有方块\r\n for(let i =0 ; i", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 14 - }, - "_enabled": true, - "__prefab": { - "__id__": 18 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 1, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "duration": -1, - "emissionRate": 224.9, - "life": 1, - "lifeVar": 0.5, - "angle": 0, - "angleVar": 360, - "startSize": 100, - "startSizeVar": 30, - "endSize": 1, - "endSizeVar": 0, - "startSpin": 50, - "startSpinVar": 20, - "endSpin": 20, - "endSpinVar": 0, - "sourcePos": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "posVar": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "emitterMode": 0, - "gravity": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "speed": 112.1, - "speedVar": 0, - "tangentialAccel": 0, - "tangentialAccelVar": 0, - "radialAccel": -88.8, - "radialAccelVar": 50, - "rotationIsDir": false, - "startRadius": 100, - "startRadiusVar": 0, - "endRadius": 0, - "endRadiusVar": 0, - "rotatePerS": 0, - "rotatePerSVar": 0, - "playOnLoad": true, - "autoRemoveOnFinish": false, - "_preview": true, - "preview": true, - "_custom": true, - "_file": null, - "_spriteFrame": { - "__uuid__": "727ab669-af95-43be-9818-2065a98b84a5@f9941", - "__expectedType__": "cc.SpriteFrame" - }, - "_totalParticles": 100, - "_startColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 0 - }, - "_startColorVar": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 0 - }, - "_endColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_endColorVar": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 0 - }, - "_positionType": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "29Yg0IzqxLXpg3WEEEA8rx" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "79oTbIHqZP55cNO2Plw9CS", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "em_flash_0001", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 21 - }, - { - "__id__": 23 - } - ], - "_prefab": { - "__id__": 25 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 1, - "y": 1, - "z": 1 - }, - "_mobility": 0, - "_layer": 33554432, - "_euler": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_id": "", - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - } - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 20 - }, - "_enabled": true, - "__prefab": { - "__id__": 22 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 100, - "height": 100 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "63jpn9vu9KgJrVSe3VGxEH" - }, - { - "__type__": "cc.ParticleSystem2D", - "_name": "Node", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 20 - }, - "_enabled": true, - "__prefab": { - "__id__": 24 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 1, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "duration": -1, - "emissionRate": 100, - "life": 0.2, - "lifeVar": 0.5, - "angle": 0, - "angleVar": 360, - "startSize": 50, - "startSizeVar": 50, - "endSize": 0, - "endSizeVar": 0, - "startSpin": 0, - "startSpinVar": 0, - "endSpin": 0, - "endSpinVar": 0, - "sourcePos": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "posVar": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "emitterMode": 0, - "gravity": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "speed": 100, - "speedVar": 0, - "tangentialAccel": 0, - "tangentialAccelVar": 0, - "radialAccel": -100, - "radialAccelVar": 50, - "rotationIsDir": false, - "startRadius": 100, - "startRadiusVar": 0, - "endRadius": 0, - "endRadiusVar": 0, - "rotatePerS": 0, - "rotatePerSVar": 0, - "playOnLoad": true, - "autoRemoveOnFinish": false, - "_preview": true, - "preview": true, - "_custom": true, - "_file": null, - "_spriteFrame": { - "__uuid__": "118d4d54-d313-4f52-b49f-593effa13423@f9941", - "__expectedType__": "cc.SpriteFrame" - }, - "_totalParticles": 100, - "_startColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_startColorVar": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_endColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_endColorVar": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_positionType": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "d6zZxSYVRKao65R/JgmRQm" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "12615JbA9PJ4FPoMzO8C6x", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 1 - }, - "_enabled": true, - "__prefab": { - "__id__": 27 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 100, - "height": 100 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "bdEhcD5ulM9ZomwM3XdABi" - }, - { - "__type__": "cc.ParticleSystem2D", - "_name": "Node", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 1 - }, - "_enabled": true, - "__prefab": { - "__id__": 29 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 1, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "duration": -1, - "emissionRate": 999.999985098839, - "life": 0.20000000298023224, - "lifeVar": 0.5, - "angle": 360, - "angleVar": 360, - "startSize": 3.369999885559082, - "startSizeVar": 50, - "endSize": 30.31999969482422, - "endSizeVar": 0, - "startSpin": -47.369998931884766, - "startSpinVar": 0, - "endSpin": -47.369998931884766, - "endSpinVar": -142.11000061035156, - "sourcePos": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "posVar": { - "__type__": "cc.Vec2", - "x": 7, - "y": 7 - }, - "emitterMode": 0, - "gravity": { - "__type__": "cc.Vec2", - "x": 0.25, - "y": 0.8600000143051147 - }, - "speed": 0, - "speedVar": 190.7899932861328, - "tangentialAccel": -92.11000061035156, - "tangentialAccelVar": 65.79000091552734, - "radialAccel": -671.0499877929688, - "radialAccelVar": 65.79000091552734, - "rotationIsDir": false, - "startRadius": 100, - "startRadiusVar": 0, - "endRadius": 0, - "endRadiusVar": 0, - "rotatePerS": 0, - "rotatePerSVar": 0, - "playOnLoad": true, - "autoRemoveOnFinish": false, - "_preview": true, - "preview": true, - "_custom": false, - "_file": { - "__uuid__": "e17b4526-57a2-48d3-acc9-cf09f30aa138", - "__expectedType__": "cc.ParticleAsset" - }, - "_spriteFrame": { - "__uuid__": "24c419ea-63a8-4ea1-a9d0-7fc469489bbc@f9941", - "__expectedType__": "cc.SpriteFrame" - }, - "_totalParticles": 200, - "_startColor": { - "__type__": "cc.Color", - "r": 203, - "g": 201, - "b": 86, - "a": 163 - }, - "_startColorVar": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 0 - }, - "_endColor": { - "__type__": "cc.Color", - "r": 174, - "g": 162, - "b": 20, - "a": 214 - }, - "_endColorVar": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 0 - }, - "_positionType": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "0bZtCWyVpB6rYhwnVfPfEd" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "2aAPYQxm1P2KXFrtMmSuR+", - "targetOverrides": null - } -] \ No newline at end of file diff --git a/library/imports/b6/b637d46b-64fc-4f24-b0bf-ec3d740a1180.json b/library/imports/33/33d4d456-e972-4edd-9239-cb65b7e1a741.json similarity index 73% rename from library/imports/b6/b637d46b-64fc-4f24-b0bf-ec3d740a1180.json rename to library/imports/33/33d4d456-e972-4edd-9239-cb65b7e1a741.json index 2554f4b..8bfd982 100644 --- a/library/imports/b6/b637d46b-64fc-4f24-b0bf-ec3d740a1180.json +++ b/library/imports/33/33d4d456-e972-4edd-9239-cb65b7e1a741.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_2", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1570, 1742, diff --git a/library/imports/36/360ebdc2-02ca-4937-8d15-8224b0950ab2.json b/library/imports/36/360ebdc2-02ca-4937-8d15-8224b0950ab2.json deleted file mode 100644 index 387b6ca..0000000 --- a/library/imports/36/360ebdc2-02ca-4937-8d15-8224b0950ab2.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "9color1", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 661, - 892, - 138, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 138, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/36/363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de.json b/library/imports/36/363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de.json deleted file mode 100644 index e7522d6..0000000 --- a/library/imports/36/363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "__type__": "cc.Texture2D", - "content": "0,9729,9729,33071,33071,0,0,1" -} \ No newline at end of file diff --git a/library/imports/36/363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de.png b/library/imports/36/363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de.png deleted file mode 100644 index f9be12a..0000000 Binary files a/library/imports/36/363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de.png and /dev/null differ diff --git a/library/imports/36/36c23619-6422-47be-aa02-f78b7618bb3c.json b/library/imports/36/36c23619-6422-47be-aa02-f78b7618bb3c.json deleted file mode 100644 index 27bc04e..0000000 --- a/library/imports/36/36c23619-6422-47be-aa02-f78b7618bb3c.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "shu_zl1_2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 804, - 479, - 118, - 34 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 118, - 34 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/37/3718b4a0-0fb3-490b-85d4-64a2ac95c437.json b/library/imports/37/3718b4a0-0fb3-490b-85d4-64a2ac95c437.json deleted file mode 100644 index fee6265..0000000 --- a/library/imports/37/3718b4a0-0fb3-490b-85d4-64a2ac95c437.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "4color2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 387, - 600, - 258, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 258, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/39/39687b17-060f-401d-b776-9597fd00d95c.json b/library/imports/39/39687b17-060f-401d-b776-9597fd00d95c.json deleted file mode 100644 index fe62b47..0000000 --- a/library/imports/39/39687b17-060f-401d-b776-9597fd00d95c.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "2color3", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 129, - 190, - 378, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 378, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/3a/3a3098c2-78cb-4f85-834f-9a282d864462.json b/library/imports/3a/3a3098c2-78cb-4f85-834f-9a282d864462.json index 697c06b..1d6c860 100644 --- a/library/imports/3a/3a3098c2-78cb-4f85-834f-9a282d864462.json +++ b/library/imports/3a/3a3098c2-78cb-4f85-834f-9a282d864462.json @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/3a/3accf6ac-df0e-4432-a28f-f58b0ce1d488.json b/library/imports/3a/3accf6ac-df0e-4432-a28f-f58b0ce1d488.json deleted file mode 100644 index 706b9c2..0000000 --- a/library/imports/3a/3accf6ac-df0e-4432-a28f-f58b0ce1d488.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "1down6", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 248, - 48, - 45, - 365 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 365 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/6e/6e0fdf37-69be-4dbe-9d09-5c4f2e678b4a.json b/library/imports/3b/3b800928-497d-4c3f-a1d0-e6a919e4df02.json similarity index 72% rename from library/imports/6e/6e0fdf37-69be-4dbe-9d09-5c4f2e678b4a.json rename to library/imports/3b/3b800928-497d-4c3f-a1d0-e6a919e4df02.json index fef7fbc..f8db29d 100644 --- a/library/imports/6e/6e0fdf37-69be-4dbe-9d09-5c4f2e678b4a.json +++ b/library/imports/3b/3b800928-497d-4c3f-a1d0-e6a919e4df02.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_11", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 765, 561, diff --git a/library/imports/3b/3bd263ae-509c-4b63-8c11-c545402c77b8.json b/library/imports/3b/3bd263ae-509c-4b63-8c11-c545402c77b8.json deleted file mode 100644 index 2c5d210..0000000 --- a/library/imports/3b/3bd263ae-509c-4b63-8c11-c545402c77b8.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "5color3", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 509, - 198, - 378, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 378, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/3d/3d4ca3d9-74fd-4408-99e3-0f9b0101c7b3.json b/library/imports/3d/3d4ca3d9-74fd-4408-99e3-0f9b0101c7b3.json deleted file mode 100644 index f1813f0..0000000 --- a/library/imports/3d/3d4ca3d9-74fd-4408-99e3-0f9b0101c7b3.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "9color2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 261, - 884, - 258, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 258, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/3e/3e2536e0-8913-4e18-80ed-ae109a6fa197.json b/library/imports/3e/3e2536e0-8913-4e18-80ed-ae109a6fa197.json deleted file mode 100644 index 07cfa20..0000000 --- a/library/imports/3e/3e2536e0-8913-4e18-80ed-ae109a6fa197.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "circle_00", - "texture": "c88c6283-3de7-4606-b65a-fa3e18c95049", - "atlas": "", - "rect": [ - 0, - 0, - 200, - 200 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 200, - 200 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/3f/3f275c96-62b0-417f-9224-aeb073192f1d.json b/library/imports/3f/3f275c96-62b0-417f-9224-aeb073192f1d.json index ad813d8..550f143 100644 --- a/library/imports/3f/3f275c96-62b0-417f-9224-aeb073192f1d.json +++ b/library/imports/3f/3f275c96-62b0-417f-9224-aeb073192f1d.json @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/bd/bd4060ea-d0db-4bdb-9561-d63d034e7d01.json b/library/imports/40/40386653-0f9c-46df-9dd3-5dac1bf804a7.json similarity index 72% rename from library/imports/bd/bd4060ea-d0db-4bdb-9561-d63d034e7d01.json rename to library/imports/40/40386653-0f9c-46df-9dd3-5dac1bf804a7.json index 029c022..4caeb5d 100644 --- a/library/imports/bd/bd4060ea-d0db-4bdb-9561-d63d034e7d01.json +++ b/library/imports/40/40386653-0f9c-46df-9dd3-5dac1bf804a7.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_16", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 435, 1456, diff --git a/library/imports/41/4111004a-b5ef-4678-9183-a8bb1f930ad0.json b/library/imports/41/4111004a-b5ef-4678-9183-a8bb1f930ad0.json deleted file mode 100644 index 1da4166..0000000 --- a/library/imports/41/4111004a-b5ef-4678-9183-a8bb1f930ad0.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "5down4", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 735, - 283, - 45, - 124 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 124 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/9e/9e765f43-6a24-4439-af86-ff266b9c28ab.json b/library/imports/41/415f47f0-fad1-43e1-9bb0-a3829d65a394.json similarity index 72% rename from library/imports/9e/9e765f43-6a24-4439-af86-ff266b9c28ab.json rename to library/imports/41/415f47f0-fad1-43e1-9bb0-a3829d65a394.json index 41717bf..57a53b7 100644 --- a/library/imports/9e/9e765f43-6a24-4439-af86-ff266b9c28ab.json +++ b/library/imports/41/415f47f0-fad1-43e1-9bb0-a3829d65a394.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_21", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 959, 1456, diff --git a/library/imports/41/418b4767-01bf-4ac2-823b-9880f2a79215.json b/library/imports/41/418b4767-01bf-4ac2-823b-9880f2a79215.json deleted file mode 100644 index e7522d6..0000000 --- a/library/imports/41/418b4767-01bf-4ac2-823b-9880f2a79215.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "__type__": "cc.Texture2D", - "content": "0,9729,9729,33071,33071,0,0,1" -} \ No newline at end of file diff --git a/library/imports/41/418b4767-01bf-4ac2-823b-9880f2a79215.png b/library/imports/41/418b4767-01bf-4ac2-823b-9880f2a79215.png deleted file mode 100644 index ca9aaf4..0000000 Binary files a/library/imports/41/418b4767-01bf-4ac2-823b-9880f2a79215.png and /dev/null differ diff --git a/library/imports/43/433a5eb9-bd88-4fcf-9811-8b58f93dea65.json b/library/imports/43/433a5eb9-bd88-4fcf-9811-8b58f93dea65.json deleted file mode 100644 index 15674ef..0000000 --- a/library/imports/43/433a5eb9-bd88-4fcf-9811-8b58f93dea65.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "3color1", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 741, - 758, - 138, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 138, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/43/43ba2e3e-eb31-41b2-98d0-74bf98cad885.json b/library/imports/43/43ba2e3e-eb31-41b2-98d0-74bf98cad885.json deleted file mode 100644 index 9001b96..0000000 --- a/library/imports/43/43ba2e3e-eb31-41b2-98d0-74bf98cad885.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "8color4", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 678, - 829, - 61, - 145 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 145 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/43/43bfc27a-ff6e-45b3-87c7-504d0f781397.js b/library/imports/43/43bfc27a-ff6e-45b3-87c7-504d0f781397.js index e27fb75..cf67c5c 100644 --- a/library/imports/43/43bfc27a-ff6e-45b3-87c7-504d0f781397.js +++ b/library/imports/43/43bfc27a-ff6e-45b3-87c7-504d0f781397.js @@ -329,7 +329,7 @@ var GameTool = { return array; }, //增加关卡数 - addLevel: function (time) { + addLevel: function (time1, time2) { cc.fx.GameConfig.GM_INFO.level += 1; if (cc.fx.GameConfig.GM_INFO.level > 156) { cc.fx.GameConfig.GM_INFO.level = 156; @@ -341,13 +341,15 @@ var GameTool = { }; // console.log("55555存储关卡数据:",levelInfo); cc.fx.StorageMessage.setStorage("level", levelInfo); - var data = { - time: time.count_Time, - add_Time: time.add_Time, - result: "success" - }; - cc.fx.GameTool.shushu_Track("finish_stage", data); - MiniGameSdk_1.MiniGameSdk.API.shushu_SetSuperProperties(); + if (time1 && time2) { + var data = { + time: time1, + add_Time: time2, + result: "success" + }; + cc.fx.GameTool.shushu_Track("finish_stage", data); + MiniGameSdk_1.MiniGameSdk.API.shushu_SetSuperProperties(); + } cc.fx.GameTool.setUserLevel(function (data) { // console.log("存储结果:",data); // console.log("上传",data); diff --git a/library/imports/43/43bfc27a-ff6e-45b3-87c7-504d0f781397.js.map b/library/imports/43/43bfc27a-ff6e-45b3-87c7-504d0f781397.js.map index 244a570..da0338c 100644 --- a/library/imports/43/43bfc27a-ff6e-45b3-87c7-504d0f781397.js.map +++ b/library/imports/43/43bfc27a-ff6e-45b3-87c7-504d0f781397.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\module\\Tool\\GameTool.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import { MiniGameSdk } from \"../../Sdk/MiniGameSdk\";\r\n\r\n//最大工具类 各种公共方法,以及处理上传,获取后端接口数据\r\nvar GameTool = {\r\n _startTime: 0,\r\n _endTime: 0,\r\n _totalTime: 0,\r\n \r\n //获取userId\r\n Authentication(){\r\n let name = \"user_\" + cc.fx.GameConfig.GM_INFO.gameId;\r\n var data = JSON.parse(localStorage.getItem(name));\r\n if(data == \"undifend\" || data==null || data == \"\"){\r\n var urlNow = window.location.href;\r\n if(!this.containsTrain(urlNow)){\r\n let url = \"https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=\"+location.href;\r\n window.location.href = url;\r\n }\r\n }\r\n else{\r\n cc.fx.StorageMessage.setStorage(name,data);\r\n cc.fx.GameConfig.GM_INFO.userId = parseInt(data.userId);\r\n }\r\n },\r\n\r\n containsTrain(str) {\r\n return /from=train/i.test(str);\r\n },\r\n\r\n //埋点上传\r\n setGameData(){\r\n //GAME_DATA 初始化 每次清零\r\n cc.fx.GameConfig.GAME_DATA = [];\r\n cc.fx.GameConfig.GAME_DATA.push(cc.fx.GameConfig.CLICK_DATA);\r\n cc.fx.GameConfig.CLICK_init();\r\n let data = cc.fx.GameConfig.GAME_DATA;\r\n let matchId = this.getMatchId();\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"scode\": cc.fx.GameConfig.GM_INFO.scode,\r\n \"matchId\":matchId,\r\n \"data\": data\r\n };\r\n\r\n // console.log(\"上传数据:\",postData);\r\n // cc.fx.HttpUtil.uploadUserLogData(postData,function(){})\r\n },\r\n //上传排行榜 type为1\r\n setRank(data){\r\n //GAME_DATA 初始化 每次清零\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"type\":1,\r\n \"score\": data.score,\r\n \"accuracy\": data.date,\r\n \"success\": cc.fx.GameConfig.GM_INFO.success\r\n };\r\n // cc.fx.HttpUtil.rankData(1,function(){},postData);\r\n },\r\n //获取排行榜 type为2\r\n getRank(data,callback){\r\n let rankLength = data.length;\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"page\":1,\r\n \"pageSize\":rankLength\r\n }; \r\n //回调进getRankData\r\n // cc.fx.HttpUtil.rankData(2,data =>{callback(data)},postData);\r\n },\r\n //获取matchId 用于上传每次点击数据里面记录id方便查询\r\n getMatchId (){\r\n let matchId = cc.sys.localStorage.getItem(\"matchId\");\r\n let tempId = matchId;\r\n if(matchId == \"undifend\" || matchId==null){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n let char = parseInt(tempId.substring(10,tempId.length));\r\n if(cc.fx.GameConfig.GM_INFO.level == 1){\r\n char += 1;\r\n matchId = tempId.slice(0, 10) + char + \"\";\r\n if(this.containsNanana(matchId)) matchId = this.setMatchId();\r\n cc.fx.GameConfig.GM_INFO.matchId = matchId;\r\n cc.sys.localStorage.setItem(\"matchId\",matchId);\r\n }\r\n }\r\n }\r\n\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n return matchId;\r\n },\r\n //检测matchId 如果有缓存以前的nanana数据清除\r\n containsNanana(str) {\r\n return /na/i.test(str);\r\n },\r\n //重新设置MatchId\r\n setMatchId (){\r\n // 定义包含可用字符的字符集\r\n const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n // 创建一个数组以保存随机字符\r\n const uuidArray = [];\r\n // 循环10次 生成10位的UUID\r\n for (let i = 0; i < 10; i++) {\r\n // 生成随机索引,范围是字符集的长度\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n // 从字符集中获取随机字符\r\n const randomChar = characters.charAt(randomIndex);\r\n // 将字符添加到数组中\r\n uuidArray.push(randomChar);\r\n }\r\n let data = uuidArray.join('') + 1 + \"\";\r\n cc.sys.localStorage.setItem(\"matchNumber\",1);\r\n cc.sys.localStorage.setItem(\"matchId\",data);\r\n cc.fx.GameConfig.GM_INFO.matchId = data;\r\n return data;\r\n },\r\n //截取名字\r\n subName(name,length){\r\n if(name.length > length){\r\n name = name.substring(0,length) + \"...\"\r\n }\r\n return name;\r\n },\r\n //设置头像\r\n setPic(node,pic){\r\n node.active = false;\r\n let url = pic;\r\n setTimeout(() => {\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n node.active = true;\r\n }\r\n })\r\n .catch(error => {\r\n // console.error('Error fetching X-Info:', error);\r\n });\r\n }, 100);\r\n cc.assetManager.loadRemote(url, {ext:'.png'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n node.active = true;\r\n node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n // console.log(err,texture)\r\n }\r\n })\r\n },\r\n //第一个参数把目标带进来处理,第二个参数为名字长度,不同场景不同需求\r\n //名字4短,小排行,名字6长,大排行\r\n getRankData(data,target,nameLength){\r\n target.listData = data.data.list;\r\n target.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n cc.fx.GameTool.setPic(target.selfNode.getChildByName(\"pic\").getChildByName(\"icon\"),target.selfData.pic);\r\n for(let i=0;i<=target.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:target.listData[i].nickName, total:target.listData[i].score,time:null, pic:target.listData[i].pic});\r\n if(cc.fx.GameConfig.GM_INFO.userId == target.listData[i].userId){\r\n self = true;\r\n target.rankNumber = i;\r\n target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (target.listData.length-1) && self == false){\r\n target.rankNumber = i;\r\n target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n }\r\n target.selfData.nickName = cc.fx.GameTool.subName(target.selfData.nickName,nameLength);\r\n target.selfNode.getChildByName(\"nameLab\").getComponent(cc.Label).string = target.selfData.nickName;\r\n target.selfNode.getChildByName(\"totalLab\").getComponent(cc.Label).string = target.selfData.score;\r\n let timeTemp = cc.fx.GameTool.getTimeShenNong(target.selfData.totleTimes);\r\n // target.selfNode.getChildByName(\"timeLab\").getComponent(cc.Label).string = timeTemp + \"\";\r\n switch(target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string){\r\n case \"1\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"one\").active = true;\r\n break;\r\n case \"2\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"two\").active = true;\r\n break;\r\n case \"3\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"three\").active = true;\r\n break;\r\n }\r\n // 大排行\r\n if(nameLength == 6){\r\n target.rankList.setData(rankData);\r\n target.selfNode.opacity = 255;\r\n if(target.selfData.totalSunCount == 0) target.selfNode.opacity = 0;\r\n }\r\n },\r\n\r\n getSeedRandom: function (min, max) {//包含min 不包含max\r\n // console.log(\"随机数:\",cc.fx.GameConfig.GM_INFO.currSeed);\r\n max = max || 1;\r\n min = min || 0;\r\n cc.fx.GameConfig.GM_INFO.currSeed = (cc.fx.GameConfig.GM_INFO.currSeed * 9301 + 49297) % 233280;\r\n let rnd = cc.fx.GameConfig.GM_INFO.currSeed / 233280.0;\r\n let tmp = min + rnd * (max - min);\r\n return parseInt(tmp);\r\n },\r\n //获取关卡配置的那个关卡数\r\n getCustom(type){\r\n let custom = cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom);\r\n if(custom == \"undifend\" || custom==null || custom == \"\"){\r\n this.setCustom();\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO_SET(\"custom\",custom[0]);\r\n if(custom[0] != 0 || type == true){\r\n custom.shift();\r\n if(custom.length == 0){\r\n this.setCustom();\r\n }\r\n else cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,custom);\r\n }\r\n }\r\n },\r\n //本地没有存储到配置,或者配置用完,重新创建配置\r\n setCustom(){\r\n let arrayLength = cc.fx.GameConfig.LEVEL_INFO.length;\r\n let arrayList = [];\r\n for(let i=1; i Math.random() - 0.5);\r\n arrayList.unshift(0)\r\n cc.fx.GameConfig.GM_INFO_SET(\"custom\",arrayList[0]);\r\n cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,arrayList);\r\n },\r\n\r\n\r\n getSetScreenResolutionFlag: function () {\r\n let size = cc.winSize;\r\n let width = size.width;\r\n let height = size.height;\r\n if ((height / width) > (16.2 / 9)) return false;\r\n return true;\r\n },\r\n //判断全面屏适配\r\n setFit: function (canvas) {\r\n let flag = cc.fx.GameTool.getSetScreenResolutionFlag();\r\n if (flag) {\r\n \t// console.log(\"不是全面屏\");\r\n } else {\r\n \t// console.log(\"是全面屏\");\r\n }\r\n return flag;\r\n },\r\n //获取游戏信息\r\n getGameInfo: function(node){\r\n var jg = false;\r\n return jg;\r\n },\r\n //设置游戏信息\r\n setGameInfo: function(pd){\r\n \r\n },\r\n\r\n //打字机效果\r\n typingAni(label,text,cb,target){\r\n var self = target;\r\n var html = '';\r\n var arr = text.split('');\r\n var len = arr.length;\r\n var step = 0;\r\n self.func = ()=>{\r\n html += arr[step];\r\n label.string = html;\r\n if (++step == len) {\r\n self.unschedule(self.func);\r\n cb && cb();\r\n }\r\n }\r\n self.schedule(self.func,0.1, cc.macro.REPEAT_FOREVER, 0)\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeMargin:(second) => {\r\n let total = 0;\r\n total = second;\r\n let hour = 0;\r\n hour = parseInt((total / 3600) + \"\");//计算整数小时数\r\n let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数\r\n let min = parseInt((afterHour / 60)+\"\");//计算整数分\r\n let m = \"\" + min; \r\n if(min < 10) m = \"0\"+min;\r\n let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"\";\r\n if(afterMin < 10) miao = \"0\" + afterMin;\r\n return m + ':' + miao\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeShenNong:(second) => {\r\n second = parseInt(second/1000+\"\");\r\n let total = 0;\r\n total = second;\r\n let min = 0;\r\n if(total > 60){\r\n min = parseInt((total / 60)+\"\");//计算整数分\r\n }\r\n let m = min + \"'\"; \r\n\r\n let afterMin = total - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"''\";\r\n return m + miao\r\n },\r\n\r\n //打乱数组\r\n shuffleArray: function (array) {\r\n for (let i = array.length - 1; i > 0; i--) {\r\n const j = Math.floor(Math.random() * (i + 1));\r\n [array[i], array[j]] = [array[j], array[i]];\r\n }\r\n return array;\r\n },\r\n\r\n\r\n //增加关卡数\r\n addLevel(time){\r\n cc.fx.GameConfig.GM_INFO.level += 1;\r\n if(cc.fx.GameConfig.GM_INFO.level > 156){\r\n cc.fx.GameConfig.GM_INFO.level = 156; \r\n }\r\n const timestamp = Date.now();\r\n let levelInfo = {\r\n level:cc.fx.GameConfig.GM_INFO.level,\r\n timestamp:timestamp,\r\n }\r\n // console.log(\"55555存储关卡数据:\",levelInfo);\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n let data = {\r\n time:time.count_Time,\r\n add_Time:time.add_Time,\r\n result:\"success\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\",data);\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n // console.log(\"存储结果:\",data);\r\n // console.log(\"上传\",data);\r\n })\r\n },\r\n\r\n //改变金币信息\r\n changeCoin(coin){\r\n console.log(\"changeCoin\",coin);\r\n if(coin == undefined) return;\r\n if(coin < 0 && cc.fx.GameConfig.GM_INFO.coin < -coin){\r\n // console.log(\"金币不足\",cc.fx.GameConfig.GM_INFO.coin,-coin);\r\n return;\r\n }\r\n cc.fx.GameConfig.GM_INFO.coin += coin;\r\n\r\n if(cc.fx.GameConfig.GM_INFO.coin < 0){\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n }\r\n // console.log(\"改变的金币:\",coin);\r\n // console.log(\"自身金币信息:\",cc.fx.GameConfig.GM_INFO.coin);\r\n const timestamp = Date.now();\r\n let coinInfo = {\r\n coin:cc.fx.GameConfig.GM_INFO.coin,\r\n timestamp:timestamp,\r\n }\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n // console.log(\"存储金币数据:\",cc.fx.GameConfig.GM_INFO.coin,coinInfo);\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n // console.log(\"上传\",data);\r\n })\r\n },\r\n\r\n //获取用户金币数量\r\n getUserCoin(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userCoin',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n // console.log('读取用户金币数据成功', res.result)\r\n if(callback)\r\n callback(res); \r\n\r\n },\r\n fail: err => {\r\n callback(err); \r\n\r\n }\r\n })\r\n }\r\n },\r\n\r\n //改变用户金币\r\n setUserCoin(callback){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n if(cc.fx.GameConfig.GM_INFO.coin <= 0 || cc.fx.GameConfig.GM_INFO.coin == undefined){\r\n console.log(\"金币上传失败\",cc.fx.GameConfig.GM_INFO.coin);\r\n // MiniGameSdk.API.showToast(cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n }\r\n console.log(\"即将上传的金币数量:\",cc.fx.GameConfig.GM_INFO.coin);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userCoin',\r\n data: {\r\n action: 'save',\r\n coinAmount: cc.fx.GameConfig.GM_INFO.coin\r\n },\r\n success: res => {\r\n // console.log('云函数返回结果:', res);\r\n if(res.result.code == 200){\r\n // console.log('存储金币数据成功',cc.fx.GameConfig.GM_INFO.coin);\r\n }\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n // console.log('存储金币数据失败')\r\n if(callback){\r\n callback(err);\r\n }\r\n console.error('存储用户数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n\r\n //获取用户关卡数\r\n getUserLevel(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userLevel',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n if(callback)\r\n callback(res); \r\n\r\n },\r\n fail: err => {\r\n callback(err); \r\n\r\n }\r\n })\r\n }\r\n },\r\n\r\n //进游戏处理 体力值情况\r\n getHealth(callback: Function){\r\n let health = cc.fx.StorageMessage.getStorage(\"health\");\r\n const timestamp = Date.now();\r\n cc.fx.GameConfig.GM_INFO.hp = 5;\r\n //没有存储过体力值\r\n if(health == null || health == undefined || health == \"\"){\r\n console.log(\"没存储过体力值,初进\");\r\n cc.fx.GameConfig.GM_INFO.hp = 5;\r\n cc.fx.GameTool.getUserHealth((data)=>{\r\n console.log(\"体力接口返回结果\",data);\r\n if(data.result.code == 200){\r\n cc.fx.GameConfig.GM_INFO.hp = data.result.data;\r\n cc.fx.GameConfig.GM_INFO.min_Time = data.result.timestamp;\r\n let healthInfo = {\r\n \"health\":cc.fx.GameConfig.GM_INFO.hp,\r\n \"timestamp\":data.result.timestamp\r\n }\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n cc.fx.StorageMessage.setStorage(\"health\",healthInfo);\r\n }\r\n else if(data.result.code == 404 && data.result.message == \"未找到体力数据\"){\r\n cc.fx.GameTool.setUserHealth(0,()=>{\r\n });\r\n }\r\n if(callback) callback();\r\n })\r\n }\r\n else{\r\n console.log(\"有存储过体力值:\",health);\r\n cc.fx.GameConfig.GM_INFO.hp = health.health;\r\n if(callback){\r\n console.log(\"体力值读取完毕\");\r\n callback();\r\n } \r\n if(health.health < 0){\r\n console.log(\"体力值异常,归零\");\r\n cc.fx.GameConfig.GM_INFO.hp = 0;\r\n cc.fx.GameTool.setUserHealth(0,()=>{\r\n if(callback) callback();\r\n });\r\n }\r\n else if(health.health < 5){\r\n // 30分钟的毫秒数\r\n const thirtyMinutes = 30 * 60 * 1000; \r\n const elapsedTime = timestamp - health.timestamp;\r\n // 计算恢复的体力值\r\n const recoveredHealth = Math.min(5 - health.health, Math.floor(elapsedTime / thirtyMinutes)); \r\n if (recoveredHealth > 0) {\r\n health.health += recoveredHealth;\r\n cc.fx.GameTool.setUserHealth(recoveredHealth,()=>{\r\n if(callback) callback();\r\n });\r\n console.log(`体力值恢复 ${recoveredHealth} 点,当前体力值: ${cc.fx.GameConfig.GM_INFO.hp}`);\r\n } else {\r\n // 计算距离下一次恢复的剩余时间\r\n const remainingTime = Math.ceil((thirtyMinutes - (elapsedTime % thirtyMinutes)) / 1000);\r\n console.log(`体力值未满,待恢复,距离下一次恢复还剩 ${remainingTime} 秒`);\r\n cc.fx.GameConfig.GM_INFO.min_Time = remainingTime;\r\n }\r\n }\r\n }\r\n },\r\n\r\n //获取用户体力值\r\n getUserHealth(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n console.log(\"即将进入体力获取接口\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userHealth',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n // console.log(\"体力获取成功\",res);\r\n if(callback)\r\n callback(res); \r\n },\r\n fail: err => {\r\n // console.log(\"体力获取失败\",err);\r\n callback(err); \r\n }\r\n })\r\n }\r\n },\r\n\r\n //设置用户体力值 有可能加,有可能定时器减\r\n setUserHealth(health,callback){\r\n cc.fx.GameConfig.GM_INFO.hp += health;\r\n // if(health < 0) {\r\n // }\r\n // else MiniGameSdk.API.showToast(\"体力值恢复\");\r\n const timestamp = Date.now();\r\n let healthInfo ={}\r\n \r\n //如果消耗之前不是满体力,说明已经在恢复期,并不用修改时间\r\n if(health < 0 && cc.fx.GameConfig.GM_INFO.hp != 4) {\r\n let oldTime = cc.fx.StorageMessage.getStorage(\"health\").timestamp;\r\n healthInfo = {\r\n \"health\":cc.fx.GameConfig.GM_INFO.hp,\r\n \"timestamp\":oldTime\r\n }\r\n }\r\n else{\r\n healthInfo = {\r\n \"health\":cc.fx.GameConfig.GM_INFO.hp,\r\n \"timestamp\":timestamp\r\n }\r\n }\r\n cc.fx.StorageMessage.setStorage(\"health\",healthInfo);\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userHealth',\r\n data: {\r\n action: 'save',\r\n healthAmount: cc.fx.GameConfig.GM_INFO.hp,\r\n timestamp:timestamp\r\n },\r\n success: res => {\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n if(callback){\r\n callback(err);\r\n }\r\n // console.error('存储关卡数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n //购买行为\r\n buyReview(coin,callback: Function){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n // console.log(\"实际即将消耗金币:\",coin);\r\n // this.changeCoin(coin);\r\n callback();\r\n }\r\n },\r\n\r\n //更改用户道具数\r\n buyProp(propid,callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n cc.fx.GameTool.changeCoin(-1500);\r\n cc.fx.GameTool.setUserProp(propid,3,(data)=>{\r\n })\r\n const data = {\r\n id: (propid + \"\"),\r\n num:3\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_get\",data);\r\n let _id = \"\";\r\n if(propid == 2001) _id = \"freeze_in_game\";\r\n else if(propid == 2002) _id = \"hammer_in_game\";\r\n else if(propid == 2003) _id = \"wand_in_game\";\r\n \r\n const buyData = {\r\n item_id:_id,\r\n item_num:1,\r\n item_price:1500,\r\n cost_type:\"gold\"\r\n }\r\n console.log(\"____________即将上传Shop_buy\",buyData);\r\n cc.fx.GameTool.shushu_Track(\"shop_buy\",buyData);\r\n callback();\r\n }\r\n },\r\n\r\n\r\n //改变用户关卡\r\n setUserLevel(callback){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n // if(cc.fx.GameConfig.GM_INFO.level <= 0 || cc.fx.GameConfig.GM_INFO.level == undefined){\r\n // console.log(\"等级重置为0\");\r\n // cc.fx.GameConfig.GM_INFO.level = 0;\r\n // }\r\n // console.log(\"即将上传的关卡数:\",cc.fx.GameConfig.GM_INFO.level);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userLevel',\r\n data: {\r\n action: 'save',\r\n levelAmount: cc.fx.GameConfig.GM_INFO.level\r\n },\r\n success: res => {\r\n // console.log('云函数返回结果:', res);\r\n // console.log('存储关卡数据成功',cc.fx.GameConfig.GM_INFO.level);\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n // console.log('存储关卡数据失败')\r\n return;\r\n if(callback){\r\n callback(err);\r\n }\r\n console.error('存储关卡数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n //获取用户关卡数\r\n getUserProp(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userProp',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n // console.log('读取用户道具数据成功', res.result)\r\n if(res.result.data){\r\n // cc.fx.GameConfig.GM_INFO.freezeAmount = res.result.data.freeze;\r\n // cc.fx.GameConfig.GM_INFO.hammerAmount = res.result.data.hammer;\r\n // cc.fx.GameConfig.GM_INFO.magicAmount = res.result.data.magic_wand;\r\n }\r\n if(callback)\r\n callback(res); \r\n\r\n },\r\n fail: err => {\r\n callback(err); \r\n }\r\n })\r\n }\r\n },\r\n\r\n //改变用户道具\r\n setUserProp(propid,amount,callback){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n let newPropData = null;\r\n if(propid == 0){\r\n newPropData = {\r\n freeze:cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n hammer:cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n magic_wand:cc.fx.GameConfig.GM_INFO.magicAmount,\r\n }\r\n }\r\n else if(propid == 2001){\r\n newPropData = amount;\r\n }\r\n else if(propid == 2002){\r\n newPropData = amount; \r\n }\r\n else if(propid == 2003){\r\n newPropData = amount; \r\n }\r\n\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userProp',\r\n data: {\r\n action: 'save',\r\n propType: propid,\r\n propData: newPropData\r\n },\r\n success: res => {\r\n // console.log('云函数返回结果:', res);\r\n if(callback){\r\n callback(res);\r\n }\r\n // console.log('存储道具数据成功')\r\n },\r\n fail: err => {\r\n // console.log('存储道具数据失败')\r\n if(callback){\r\n callback(err);\r\n }\r\n console.error('存储道具数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n // 检查是否有足够的硬币\r\n consumeCoins(requiredCoins: number, propName: string, amount: number, callback) {\r\n \r\n\r\n },\r\n\r\n // 设置用户信息\r\n setUserInfo(callback: Function) {\r\n //@ts-ignore\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n const time = cc.fx.GameTool.formatDate(new Date());\r\n let userInfo = {\r\n // 这里填写要存储的用户数据\r\n username: cc.fx.GameConfig.GM_INFO.username, //用户名称\r\n useravatar: cc.fx.GameConfig.GM_INFO.useravatar, //用户头像\r\n register_time: time\r\n }\r\n \r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'save',\r\n userData: userInfo\r\n },\r\n success: res => {\r\n // console.log('存储用户数据成功')\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n if(callback){\r\n callback(\"fail\");\r\n }\r\n }\r\n })\r\n } \r\n },\r\n\r\n formatDate(date: Date): string {\r\n const year = date.getFullYear();\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const day = String(date.getDate()).padStart(2, '0');\r\n const hours = String(date.getHours()).padStart(2, '0');\r\n const minutes = String(date.getMinutes()).padStart(2, '0');\r\n const seconds = String(date.getSeconds()).padStart(2, '0');\r\n const milliseconds = String(date.getMilliseconds()).padStart(3, '0');\r\n\r\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`;\r\n },\r\n \r\n //获取时间戳\r\n getTime(){\r\n const timestamp = (new Date().getTime())\r\n return timestamp;\r\n },\r\n pushLister:function () {\r\n \r\n },\r\n removeAllLister:function () {\r\n \r\n },\r\n\r\n shushu_Track: function(name,data){\r\n let eventData = {}\r\n switch(name){\r\n case \"register\":\r\n break;\r\n case \"enter_stage\":\r\n eventData = {\r\n stage_id: (cc.fx.GameConfig.GM_INFO.level + 1)\r\n }\r\n break;\r\n case \"finish_stage\":\r\n eventData = {\r\n stage_id: (cc.fx.GameConfig.GM_INFO.level + 1),\r\n stage_duration: data.time,\r\n added_time: data.add_Time,\r\n result: data.result\r\n }\r\n break;\r\n case \"resource_get\":\r\n eventData = {\r\n change_reason:\"购买道具\", //获得来源\r\n change_num:data.num, //获得数量\r\n resource_id:data.id //道具id\r\n }\r\n break;\r\n case \"resource_cost\":\r\n eventData = {\r\n change_reason:\"使用道具\", //获得来源\r\n change_num:data.num, //获得数量\r\n resource_id:data.id //道具id\r\n }\r\n break; \r\n case \"shop_buy\":\r\n eventData = {\r\n item_id: data.item_id,\r\n item_num: data.item_num,\r\n item_price: data.item_price,\r\n cost_type: data.cost_type, \r\n }\r\n console.log(\"数据:\",eventData);\r\n break;\r\n }\r\n // MiniGameSdk.API.shushu_Track(name,eventData);\r\n MiniGameSdk.API.shushu_Track(name, eventData);\r\n },\r\n\r\n getWechatGameVersion: function(){\r\n //@ts-ignore\r\n const accountInfo = wx.getAccountInfoSync();\r\n const miniProgram = accountInfo.miniProgram;\r\n switch (miniProgram.envVersion) {\r\n case 'develop':\r\n return '开发版';\r\n case 'trial':\r\n return '体验版';\r\n case 'release':\r\n return '正式版';\r\n default:\r\n return '未知版本';\r\n }\r\n },\r\n\r\n};\r\nexport { GameTool };"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\module\\Tool\\GameTool.ts"],"names":[],"mappings":";;;;;;;AAAA,qDAAoD;AAEpD,+BAA+B;AAC/B,IAAI,QAAQ,GAAG;IACX,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,CAAC;IAEb,UAAU;IACV,cAAc;QACV,IAAI,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;QACrD,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,IAAG,IAAI,IAAI,UAAU,IAAI,IAAI,IAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAC;YAC9C,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClC,IAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAC;gBAC3B,IAAI,GAAG,GAAG,8EAA8E,GAAC,QAAQ,CAAC,IAAI,CAAC;gBACvG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;aAC9B;SACJ;aACG;YACA,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YAC3C,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3D;IACL,CAAC;IAED,aAAa,YAAC,GAAG;QACb,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,MAAM;IACN,WAAW;QACP,oBAAoB;QACpB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC;QAChC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC7D,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAChC,IAAI,QAAQ,GAAG;YACX,QAAQ,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM;YACxC,QAAQ,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM;YACxC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK;YACvC,SAAS,EAAC,OAAO;YACjB,MAAM,EAAE,IAAI;SACf,CAAC;QAEF,iCAAiC;QACjC,0DAA0D;IAC9D,CAAC;IACD,eAAe;IACf,OAAO,YAAC,IAAI;QACR,oBAAoB;QACpB,IAAI,QAAQ,GAAG;YACX,QAAQ,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM;YACxC,QAAQ,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM;YACxC,MAAM,EAAC,CAAC;YACR,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO;SAC9C,CAAC;QACF,oDAAoD;IACxD,CAAC;IACD,cAAc;IACd,OAAO,YAAC,IAAI,EAAC,QAAQ;QACjB,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,IAAI,QAAQ,GAAG;YACX,QAAQ,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM;YACxC,QAAQ,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM;YACxC,MAAM,EAAC,CAAC;YACR,UAAU,EAAC,UAAU;SACxB,CAAC;QACF,gBAAgB;QAChB,+DAA+D;IACnE,CAAC;IACD,iCAAiC;IACjC,UAAU;QACN,IAAI,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,MAAM,GAAG,OAAO,CAAC;QACrB,IAAG,OAAO,IAAI,UAAU,IAAI,OAAO,IAAE,IAAI,EAAC;YACtC,OAAO,GAAI,IAAI,CAAC,UAAU,EAAE,CAAC;SAChC;aACG;YACA,IAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,EAAC;gBACpC,OAAO,GAAI,IAAI,CAAC,UAAU,EAAE,CAAC;aAChC;iBACG;gBACA,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxD,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,EAAC;oBACnC,IAAI,IAAI,CAAC,CAAC;oBACV,OAAO,GAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;oBAC3C,IAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;wBAAE,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC7D,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;oBAC3C,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAC,OAAO,CAAC,CAAC;iBAClD;aACJ;SACJ;QAED,IAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,EAAC;YACpC,OAAO,GAAI,IAAI,CAAC,UAAU,EAAE,CAAC;SAChC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,8BAA8B;IAC9B,cAAc,YAAC,GAAG;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,aAAa;IACb,UAAU;QACN,eAAe;QACf,IAAM,UAAU,GAAG,gEAAgE,CAAC;QACpF,gBAAgB;QAChB,IAAM,SAAS,GAAG,EAAE,CAAC;QACrB,mBAAmB;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACrB,mBAAmB;YACvB,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAClE,cAAc;YACd,IAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAClD,YAAY;YACZ,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC9B;QACD,IAAI,IAAI,GAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACxC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,EAAC,CAAC,CAAC,CAAC;QAC7C,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAC,IAAI,CAAC,CAAC;QAC5C,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM;IACN,OAAO,YAAC,IAAI,EAAC,MAAM;QACf,IAAG,IAAI,CAAC,MAAM,GAAG,MAAM,EAAC;YACpB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,MAAM,CAAC,GAAG,KAAK,CAAA;SAC1C;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM;IACN,MAAM,EAAN,UAAO,IAAI,EAAC,GAAG;QACX,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,GAAG,GAAG,GAAG,CAAC;QACd,UAAU,CAAC;YACP,KAAK,CAAC,GAAG,CAAC;iBACT,IAAI,CAAC,UAAA,QAAQ;gBACV,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAClD,CAAC,CAAC;iBACD,IAAI,CAAC,UAAA,KAAK;gBACP,IAAG,KAAK,IAAI,MAAM,EAAC;oBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;iBACtB;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,UAAA,KAAK;gBACR,kDAAkD;YACtD,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAC,GAAG,EAAC,MAAM,EAAC,EAAC,UAAC,GAAG,EAAE,OAAoB;YACnE,IAAG,OAAO,EAAC;gBACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;aAC1E;iBACG;gBACA,2BAA2B;aAC9B;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IACD,mCAAmC;IACnC,mBAAmB;IACnB,WAAW,YAAC,IAAI,EAAC,MAAM,EAAC,UAAU;QAC9B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,GAAG,KAAK,CAAC;QAChB,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,EAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzG,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,IAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC,EAAE,EAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAE,IAAI,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAE,GAAG,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC;YACpI,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAC;gBAC5D,IAAI,GAAG,IAAI,CAAC;gBACZ,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;gBACtB,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAE,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,EAAE,CAAC;aACvF;YACD,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,EAAC;gBAChD,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;gBACtB,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;aACnF;SACJ;QACD,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAC,UAAU,CAAC,CAAC;QACvF,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACnG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjG,IAAI,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1E,2FAA2F;QAC3F,QAAO,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,EAAC;YAC3E,KAAK,GAAG;gBACJ,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC3E,MAAM;YACV,KAAK,GAAG;gBACJ,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC3E,MAAM;YACV,KAAK,GAAG;gBACJ,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC7E,MAAM;SACb;QACD,MAAM;QACN,IAAG,UAAU,IAAI,CAAC,EAAC;YACf,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC;YAC9B,IAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC;gBAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;SACtE;IACL,CAAC;IAED,aAAa,EAAE,UAAU,GAAG,EAAE,GAAG;QAC7B,yDAAyD;QACzD,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;QACf,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;QACf,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC;QAChG,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAI,QAAQ,CAAC;QACxD,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,cAAc;IACd,SAAS,YAAC,IAAI;QACV,IAAI,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAClF,IAAG,MAAM,IAAI,UAAU,IAAI,MAAM,IAAE,IAAI,IAAI,MAAM,IAAI,EAAE,EAAC;YACpD,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;aACG;YACA,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAK,IAAI,EAAC;gBAC/B,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,IAAG,MAAM,CAAC,MAAM,IAAI,CAAC,EAAC;oBAClB,IAAI,CAAC,SAAS,EAAE,CAAC;iBACpB;;oBACI,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;aACpF;SACJ;IACL,CAAC;IACD,yBAAyB;IACzB,SAAS;QACL,IAAI,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;QACrD,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,WAAW,EAAC,CAAC,EAAE,EAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACrB;QACD,SAAS,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAnB,CAAmB,CAAC,CAAC;QAC1C,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACpB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,iBAAiB,EAAC,SAAS,CAAC,CAAC;IACnF,CAAC;IAGD,0BAA0B,EAAE;QACxB,IAAI,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;QACtB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS;IACT,MAAM,EAAE,UAAU,MAAM;QACpB,IAAI,IAAI,GAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,0BAA0B,EAAE,CAAC;QACxD,IAAI,IAAI,EAAE;YACT,wBAAwB;SACxB;aAAM;YACN,uBAAuB;SACvB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,QAAQ;IACR,WAAW,EAAE,UAAS,IAAI;QACtB,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,OAAO,EAAE,CAAC;IACd,CAAC;IACD,QAAQ;IACR,WAAW,EAAE,UAAS,EAAE;IAExB,CAAC;IAED,OAAO;IACP,SAAS,YAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,MAAM;QAC1B,IAAI,IAAI,GAAG,MAAM,CAAC;QAClB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QACrB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,IAAI,GAAG;YACR,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACpB,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE;gBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,EAAE,IAAI,EAAE,EAAE,CAAC;aACd;QACL,CAAC,CAAA;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;IAC5D,CAAC;IAED,gBAAgB;IAChB,aAAa,EAAC,UAAC,MAAM;QACjB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,GAAG,MAAM,CAAC;QACf,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,GAAG,QAAQ,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,SAAS;QAC9C,IAAI,SAAS,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA,eAAe;QACtD,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,GAAC,EAAE,CAAC,CAAC,CAAA,OAAO;QAC/C,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;QACjB,IAAG,GAAG,GAAG,EAAE;YAAE,CAAC,GAAG,GAAG,GAAC,GAAG,CAAC;QACzB,IAAI,QAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,CAAA,aAAa;QAC9D,IAAI,IAAI,GAAG,QAAQ,GAAG,EAAE,CAAC;QACzB,IAAG,QAAQ,GAAG,EAAE;YAAE,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC;QACxC,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,CAAA;IACzB,CAAC;IAED,gBAAgB;IAChB,eAAe,EAAC,UAAC,MAAM;QACnB,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAC,IAAI,GAAC,EAAE,CAAC,CAAC;QAClC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,GAAG,MAAM,CAAC;QACf,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAG,KAAK,GAAG,EAAE,EAAC;YACV,GAAG,GAAG,QAAQ,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAC,EAAE,CAAC,CAAC,CAAA,OAAO;SAC1C;QACD,IAAI,CAAC,GAAI,GAAG,GAAG,GAAG,CAAC;QAEnB,IAAI,QAAQ,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAA,aAAa;QAC7C,IAAI,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;QAC3B,OAAO,CAAC,GAAG,IAAI,CAAA;IACnB,CAAC;IAED,MAAM;IACN,YAAY,EAAE,UAAU,KAAK;;QACzB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACvC,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,KAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAA1C,KAAK,CAAC,CAAC,CAAC,QAAA,EAAE,KAAK,CAAC,CAAC,CAAC,QAAA,CAAyB;SAC/C;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD,OAAO;IACP,QAAQ,YAAC,KAAK,EAAC,KAAK;QAChB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;QACpC,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,EAAC;YACpC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;SACxC;QACD,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,SAAS,GAAG;YACZ,KAAK,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK;YACpC,SAAS,EAAC,SAAS;SACtB,CAAA;QACD,yCAAyC;QACzC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,EAAC,SAAS,CAAC,CAAC;QACnD,IAAG,KAAK,IAAI,KAAK,EAAC;YACd,IAAI,IAAI,GAAG;gBACP,IAAI,EAAC,KAAK;gBACV,QAAQ,EAAC,KAAK;gBACd,MAAM,EAAC,SAAS;aACnB,CAAA;YACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAC,IAAI,CAAC,CAAC;YACjD,yBAAW,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC;SAC/C;QAED,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAC,IAAI;YAC7B,6BAA6B;YAC7B,0BAA0B;QAC9B,CAAC,CAAC,CAAA;IACN,CAAC;IAED,QAAQ;IACR,UAAU,YAAC,IAAI;QACX,OAAO,CAAC,GAAG,CAAC,YAAY,EAAC,IAAI,CAAC,CAAC;QAC/B,IAAG,IAAI,IAAI,SAAS;YAAE,OAAO;QAC7B,IAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,EAAC;YACjD,2DAA2D;YAC3D,OAAO;SACV;QACD,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;QAEtC,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAC;YACjC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;SACrC;QACD,8BAA8B;QAC9B,wDAAwD;QACxD,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,QAAQ,GAAG;YACX,IAAI,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;YAClC,SAAS,EAAC,SAAS;SACtB,CAAA;QACD,yBAAW,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC;QAC5C,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;QACjD,iEAAiE;QACjE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAC,IAAI;YAC5B,0BAA0B;QAC9B,CAAC,CAAC,CAAA;IACN,CAAC;IAED,UAAU;IACV,WAAW,EAAX,UAAY,QAAkB;QAC1B,IAAI,OAAO,EAAE,KAAI,WAAW,IAAI,EAAE,KAAI,IAAI,EAAE;YACrC,YAAY;YACf,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE;oBACF,MAAM,EAAE,MAAM;iBACjB;gBACD,OAAO,EAAE,UAAA,GAAG;oBACR,wCAAwC;oBACxC,IAAG,QAAQ;wBACP,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAEtB,CAAC;gBACD,IAAI,EAAE,UAAA,GAAG;oBACF,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAErB,CAAC;aACA,CAAC,CAAA;SACL;IACL,CAAC;IAED,QAAQ;IACR,WAAW,YAAC,QAAQ;QAChB,IAAI,OAAO,EAAE,KAAI,WAAW,IAAI,EAAE,KAAI,IAAI,EAAE;YACxC,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS,EAAC;gBAChF,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpD,4DAA4D;gBAC5D,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;aACrC;YACD,OAAO,CAAC,GAAG,CAAC,YAAY,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxD,YAAY;YACZ,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE;oBACF,MAAM,EAAE,MAAM;oBACd,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;iBAC5C;gBACD,OAAO,EAAE,UAAA,GAAG;oBACR,gCAAgC;oBAChC,IAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAC;wBACtB,yDAAyD;qBAC5D;oBACD,IAAG,QAAQ,EAAC;wBACR,QAAQ,CAAC,GAAG,CAAC,CAAC;qBACjB;gBAEL,CAAC;gBACD,IAAI,EAAE,UAAA,GAAG;oBACL,0BAA0B;oBAC1B,IAAG,QAAQ,EAAC;wBACR,QAAQ,CAAC,GAAG,CAAC,CAAC;qBACjB;oBACD,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;gBAClC,CAAC;aACA,CAAC,CAAA;SACL;IACL,CAAC;IAGD,SAAS;IACT,YAAY,EAAZ,UAAa,QAAkB;QAC3B,IAAI,OAAO,EAAE,KAAI,WAAW,IAAI,EAAE,KAAI,IAAI,EAAE;YACrC,YAAY;YACf,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE;oBACF,MAAM,EAAE,MAAM;iBACjB;gBACD,OAAO,EAAE,UAAA,GAAG;oBACR,IAAG,QAAQ;wBACP,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAEtB,CAAC;gBACD,IAAI,EAAE,UAAA,GAAG;oBACF,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAErB,CAAC;aACA,CAAC,CAAA;SACL;IACL,CAAC;IAED,aAAa;IACb,SAAS,EAAT,UAAU,QAAkB;QACxB,IAAI,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QAChC,UAAU;QACV,IAAG,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,IAAI,EAAE,EAAC;YACrD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1B,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;YAChC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAC,IAAI;gBAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,IAAI,CAAC,CAAC;gBAC7B,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAC;oBACvB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBAC/C,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;oBAC1D,IAAI,UAAU,GAAG;wBACb,QAAQ,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;wBACpC,WAAW,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS;qBACpC,CAAA;oBACD,yBAAW,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC;oBAC5C,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAC,UAAU,CAAC,CAAC;iBACxD;qBACI,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,EAAC;oBAChE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAC;oBAC/B,CAAC,CAAC,CAAC;iBACN;gBACD,IAAG,QAAQ;oBAAE,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAA;SACL;aACG;YACA,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,MAAM,CAAC,CAAC;YAC/B,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5C,IAAG,QAAQ,EAAC;gBACR,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACvB,QAAQ,EAAE,CAAC;aACd;YACD,IAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACxB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;gBAChC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAC;oBAC3B,IAAG,QAAQ;wBAAE,QAAQ,EAAE,CAAC;gBAC5B,CAAC,CAAC,CAAC;aACN;iBACI,IAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAC;gBACtB,WAAW;gBACX,IAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;gBACrC,IAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;gBACjD,WAAW;gBACX,IAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC;gBAC7F,IAAI,eAAe,GAAG,CAAC,EAAE;oBACrB,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC;oBACjC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,EAAC;wBACxC,IAAG,QAAQ;4BAAE,QAAQ,EAAE,CAAC;oBAC7B,CAAC,CAAC,CAAC;oBACH,OAAO,CAAC,GAAG,CAAC,oCAAS,eAAe,qDAAa,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAI,CAAC,CAAC;iBACnF;qBAAM;oBACH,iBAAiB;oBACjB,IAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;oBACxF,OAAO,CAAC,GAAG,CAAC,wHAAuB,aAAa,YAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC;iBACrD;aACJ;SACJ;IACL,CAAC;IAED,SAAS;IACT,aAAa,EAAb,UAAc,QAAkB;QAC5B,IAAI,OAAO,EAAE,KAAI,WAAW,IAAI,EAAE,KAAI,IAAI,EAAE;YACxC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACvB,YAAY;YACf,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE;oBACF,MAAM,EAAE,MAAM;iBACjB;gBACD,OAAO,EAAE,UAAA,GAAG;oBACR,6BAA6B;oBAC7B,IAAG,QAAQ;wBACP,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;gBACD,IAAI,EAAE,UAAA,GAAG;oBACD,6BAA6B;oBAC9B,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;aACA,CAAC,CAAA;SACL;IACL,CAAC;IAED,uBAAuB;IACvB,aAAa,YAAC,MAAM,EAAC,QAAQ;QACzB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC;QACtC,mBAAmB;QACnB,IAAI;QACJ,2CAA2C;QAC3C,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,UAAU,GAAE,EAAE,CAAA;QAElB,8BAA8B;QAC9B,IAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE;YAC/C,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;YAClE,UAAU,GAAG;gBACT,QAAQ,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBACpC,WAAW,EAAC,OAAO;aACtB,CAAA;SACJ;aACG;YACA,UAAU,GAAG;gBACT,QAAQ,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBACpC,WAAW,EAAC,SAAS;aACxB,CAAA;SACJ;QACD,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAC,UAAU,CAAC,CAAC;QACrD,yBAAW,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC;QAC5C,IAAI,OAAO,EAAE,KAAI,WAAW,IAAI,EAAE,KAAI,IAAI,EAAE;YACxC,YAAY;YACZ,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;gBAClB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE;oBACF,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;oBACzC,SAAS,EAAC,SAAS;iBACtB;gBACD,OAAO,EAAE,UAAA,GAAG;oBACR,IAAG,QAAQ,EAAC;wBACR,QAAQ,CAAC,GAAG,CAAC,CAAC;qBACjB;gBAEL,CAAC;gBACD,IAAI,EAAE,UAAA,GAAG;oBACL,IAAG,QAAQ,EAAC;wBACR,QAAQ,CAAC,GAAG,CAAC,CAAC;qBACjB;oBACD,iCAAiC;gBACrC,CAAC;aACJ,CAAC,CAAA;SACL;IACL,CAAC;IAED,MAAM;IACN,SAAS,EAAT,UAAU,IAAI,EAAC,QAAkB;QAC7B,IAAI,OAAO,EAAE,KAAI,WAAW,IAAI,EAAE,KAAI,IAAI,EAAE;YACxC,iCAAiC;YACjC,yBAAyB;YACzB,QAAQ,EAAE,CAAC;SACd;IACL,CAAC;IAED,SAAS;IACT,OAAO,EAAP,UAAQ,MAAM,EAAC,QAAkB;QAC7B,IAAI,OAAO,EAAE,KAAI,WAAW,IAAI,EAAE,KAAI,IAAI,EAAE;YACxC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;YACjC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAC,CAAC,EAAC,UAAC,IAAI;YACzC,CAAC,CAAC,CAAA;YACF,IAAM,IAAI,GAAG;gBACT,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,GAAG,EAAC,CAAC;aACR,CAAA;YACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAC,IAAI,CAAC,CAAC;YACjD,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,IAAG,MAAM,IAAI,IAAI;gBAAE,GAAG,GAAG,gBAAgB,CAAC;iBACrC,IAAG,MAAM,IAAI,IAAI;gBAAE,GAAG,GAAG,gBAAgB,CAAC;iBAC1C,IAAG,MAAM,IAAI,IAAI;gBAAE,GAAG,GAAG,cAAc,CAAC;YAE7C,IAAM,OAAO,GAAG;gBACZ,OAAO,EAAC,GAAG;gBACX,QAAQ,EAAC,CAAC;gBACV,UAAU,EAAC,IAAI;gBACf,SAAS,EAAC,MAAM;aACnB,CAAA;YACD,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAC,OAAO,CAAC,CAAC;YAChD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAC,OAAO,CAAC,CAAC;YAChD,QAAQ,EAAE,CAAC;SACd;IACL,CAAC;IAGD,QAAQ;IACR,YAAY,YAAC,QAAQ;QACjB,IAAI,OAAO,EAAE,KAAI,WAAW,IAAI,EAAE,KAAI,IAAI,EAAE;YACxC,0FAA0F;YAC1F,6BAA6B;YAC7B,0CAA0C;YAC1C,IAAI;YACJ,2DAA2D;YAC3D,YAAY;YACZ,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE;oBACF,MAAM,EAAE,MAAM;oBACd,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK;iBAC9C;gBACD,OAAO,EAAE,UAAA,GAAG;oBACR,gCAAgC;oBAChC,0DAA0D;oBAC1D,IAAG,QAAQ,EAAC;wBACR,QAAQ,CAAC,GAAG,CAAC,CAAC;qBACjB;gBAEL,CAAC;gBACD,IAAI,EAAE,UAAA,GAAG;oBACL,0BAA0B;oBAC1B,OAAO;oBACP,IAAG,QAAQ,EAAC;wBACR,QAAQ,CAAC,GAAG,CAAC,CAAC;qBACjB;oBACD,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;gBAClC,CAAC;aACA,CAAC,CAAA;SACL;IACL,CAAC;IAEG,SAAS;IACb,WAAW,EAAX,UAAY,QAAkB;QAC1B,IAAI,OAAO,EAAE,KAAI,WAAW,IAAI,EAAE,KAAI,IAAI,EAAE;YACrC,YAAY;YACf,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE;oBACF,MAAM,EAAE,MAAM;iBACjB;gBACD,OAAO,EAAE,UAAA,GAAG;oBACR,wCAAwC;oBACxC,IAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAC;wBACf,kEAAkE;wBAClE,kEAAkE;wBAClE,qEAAqE;qBACxE;oBACD,IAAG,QAAQ;wBACP,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAEtB,CAAC;gBACD,IAAI,EAAE,UAAA,GAAG;oBACF,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;aACA,CAAC,CAAA;SACL;IACL,CAAC;IAED,QAAQ;IACR,WAAW,YAAC,MAAM,EAAC,MAAM,EAAC,QAAQ;QAC9B,IAAI,OAAO,EAAE,KAAI,WAAW,IAAI,EAAE,KAAI,IAAI,EAAE;YACxC,IAAI,WAAW,GAAG,IAAI,CAAC;YACvB,IAAG,MAAM,IAAI,CAAC,EAAC;gBACX,WAAW,GAAG;oBACV,MAAM,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY;oBAC5C,MAAM,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY;oBAC5C,UAAU,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW;iBAClD,CAAA;aACJ;iBACI,IAAG,MAAM,IAAI,IAAI,EAAC;gBACnB,WAAW,GAAG,MAAM,CAAC;aACxB;iBACI,IAAG,MAAM,IAAI,IAAI,EAAC;gBACnB,WAAW,GAAG,MAAM,CAAC;aACxB;iBACI,IAAG,MAAM,IAAI,IAAI,EAAC;gBACnB,WAAW,GAAG,MAAM,CAAC;aACxB;YAED,YAAY;YACZ,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE;oBACF,MAAM,EAAE,MAAM;oBACd,QAAQ,EAAE,MAAM;oBAChB,QAAQ,EAAE,WAAW;iBACxB;gBACD,OAAO,EAAE,UAAA,GAAG;oBACR,gCAAgC;oBAChC,IAAG,QAAQ,EAAC;wBACR,QAAQ,CAAC,GAAG,CAAC,CAAC;qBACjB;oBACD,0BAA0B;gBAC9B,CAAC;gBACD,IAAI,EAAE,UAAA,GAAG;oBACL,0BAA0B;oBAC1B,IAAG,QAAQ,EAAC;wBACR,QAAQ,CAAC,GAAG,CAAC,CAAC;qBACjB;oBACD,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;gBAClC,CAAC;aACA,CAAC,CAAA;SACL;IACL,CAAC;IAED,aAAa;IACb,YAAY,EAAZ,UAAa,aAAqB,EAAE,QAAgB,EAAE,MAAc,EAAE,QAAQ;IAG9E,CAAC;IAED,SAAS;IACT,WAAW,EAAX,UAAY,QAAkB;QAC1B,YAAY;QACX,IAAI,OAAO,EAAE,KAAI,WAAW,IAAI,EAAE,KAAI,IAAI,EAAE;YACrC,IAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,QAAQ,GAAG;gBACX,eAAe;gBACf,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ;gBAC3C,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU;gBAC/C,aAAa,EAAE,IAAI;aACtB,CAAA;YAEF,YAAY;YACX,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE;oBACF,MAAM,EAAE,MAAM;oBACd,QAAQ,EAAE,QAAQ;iBACrB;gBACD,OAAO,EAAE,UAAA,GAAG;oBACR,0BAA0B;oBAC1B,IAAG,QAAQ,EAAC;wBACR,QAAQ,CAAC,GAAG,CAAC,CAAC;qBACjB;gBAEL,CAAC;gBACD,IAAI,EAAE,UAAA,GAAG;oBACL,IAAG,QAAQ,EAAC;wBACT,QAAQ,CAAC,MAAM,CAAC,CAAC;qBACnB;gBACL,CAAC;aACA,CAAC,CAAA;SACR;IACN,CAAC;IAEA,UAAU,EAAV,UAAW,IAAU;QAClB,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvD,IAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,IAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,IAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAErE,OAAU,IAAI,SAAI,KAAK,SAAI,GAAG,SAAI,KAAK,SAAI,OAAO,SAAI,OAAO,SAAI,YAAc,CAAC;IACpF,CAAC;IAED,OAAO;IACP,OAAO;QACH,IAAM,SAAS,GAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QACzC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,UAAU,EAAC;IAEX,CAAC;IACD,eAAe,EAAC;IAEhB,CAAC;IAED,YAAY,EAAE,UAAS,IAAI,EAAC,IAAI;QAC5B,IAAI,SAAS,GAAG,EAAE,CAAA;QAClB,QAAO,IAAI,EAAC;YACR,KAAK,UAAU;gBACX,MAAM;YACV,KAAK,aAAa;gBACd,SAAS,GAAG;oBACR,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;iBACjD,CAAA;gBACD,MAAM;YACV,KAAK,cAAc;gBACf,SAAS,GAAG;oBACR,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;oBAC9C,cAAc,EAAE,IAAI,CAAC,IAAI;oBACzB,UAAU,EAAE,IAAI,CAAC,QAAQ;oBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACtB,CAAA;gBACD,MAAM;YACV,KAAK,cAAc;gBACf,SAAS,GAAG;oBACR,aAAa,EAAC,MAAM;oBACpB,UAAU,EAAC,IAAI,CAAC,GAAG;oBACnB,WAAW,EAAC,IAAI,CAAC,EAAE,CAAQ,MAAM;iBACpC,CAAA;gBACD,MAAM;YACV,KAAK,eAAe;gBAChB,SAAS,GAAG;oBACR,aAAa,EAAC,MAAM;oBACpB,UAAU,EAAC,IAAI,CAAC,GAAG;oBACnB,WAAW,EAAC,IAAI,CAAC,EAAE,CAAQ,MAAM;iBACpC,CAAA;gBACD,MAAM;YACV,KAAK,UAAU;gBACX,SAAS,GAAG;oBACR,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC5B,CAAA;gBACD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,SAAS,CAAC,CAAC;gBAC7B,MAAM;SACb;QACD,gDAAgD;QAChD,yBAAW,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,oBAAoB,EAAE;QAClB,YAAY;QACZ,IAAM,WAAW,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAC5C,IAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;QAC5C,QAAQ,WAAW,CAAC,UAAU,EAAE;YAC5B,KAAK,SAAS;gBACV,OAAO,KAAK,CAAC;YACjB,KAAK,OAAO;gBACR,OAAO,KAAK,CAAC;YACjB,KAAK,SAAS;gBACV,OAAO,KAAK,CAAC;YACjB;gBACI,OAAO,MAAM,CAAC;SACrB;IACL,CAAC;CAEJ,CAAC;AACO,4BAAQ","file":"","sourceRoot":"/","sourcesContent":["import { MiniGameSdk } from \"../../Sdk/MiniGameSdk\";\r\n\r\n//最大工具类 各种公共方法,以及处理上传,获取后端接口数据\r\nvar GameTool = {\r\n _startTime: 0,\r\n _endTime: 0,\r\n _totalTime: 0,\r\n \r\n //获取userId\r\n Authentication(){\r\n let name = \"user_\" + cc.fx.GameConfig.GM_INFO.gameId;\r\n var data = JSON.parse(localStorage.getItem(name));\r\n if(data == \"undifend\" || data==null || data == \"\"){\r\n var urlNow = window.location.href;\r\n if(!this.containsTrain(urlNow)){\r\n let url = \"https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=\"+location.href;\r\n window.location.href = url;\r\n }\r\n }\r\n else{\r\n cc.fx.StorageMessage.setStorage(name,data);\r\n cc.fx.GameConfig.GM_INFO.userId = parseInt(data.userId);\r\n }\r\n },\r\n\r\n containsTrain(str) {\r\n return /from=train/i.test(str);\r\n },\r\n\r\n //埋点上传\r\n setGameData(){\r\n //GAME_DATA 初始化 每次清零\r\n cc.fx.GameConfig.GAME_DATA = [];\r\n cc.fx.GameConfig.GAME_DATA.push(cc.fx.GameConfig.CLICK_DATA);\r\n cc.fx.GameConfig.CLICK_init();\r\n let data = cc.fx.GameConfig.GAME_DATA;\r\n let matchId = this.getMatchId();\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"scode\": cc.fx.GameConfig.GM_INFO.scode,\r\n \"matchId\":matchId,\r\n \"data\": data\r\n };\r\n\r\n // console.log(\"上传数据:\",postData);\r\n // cc.fx.HttpUtil.uploadUserLogData(postData,function(){})\r\n },\r\n //上传排行榜 type为1\r\n setRank(data){\r\n //GAME_DATA 初始化 每次清零\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"type\":1,\r\n \"score\": data.score,\r\n \"accuracy\": data.date,\r\n \"success\": cc.fx.GameConfig.GM_INFO.success\r\n };\r\n // cc.fx.HttpUtil.rankData(1,function(){},postData);\r\n },\r\n //获取排行榜 type为2\r\n getRank(data,callback){\r\n let rankLength = data.length;\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"page\":1,\r\n \"pageSize\":rankLength\r\n }; \r\n //回调进getRankData\r\n // cc.fx.HttpUtil.rankData(2,data =>{callback(data)},postData);\r\n },\r\n //获取matchId 用于上传每次点击数据里面记录id方便查询\r\n getMatchId (){\r\n let matchId = cc.sys.localStorage.getItem(\"matchId\");\r\n let tempId = matchId;\r\n if(matchId == \"undifend\" || matchId==null){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n let char = parseInt(tempId.substring(10,tempId.length));\r\n if(cc.fx.GameConfig.GM_INFO.level == 1){\r\n char += 1;\r\n matchId = tempId.slice(0, 10) + char + \"\";\r\n if(this.containsNanana(matchId)) matchId = this.setMatchId();\r\n cc.fx.GameConfig.GM_INFO.matchId = matchId;\r\n cc.sys.localStorage.setItem(\"matchId\",matchId);\r\n }\r\n }\r\n }\r\n\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n return matchId;\r\n },\r\n //检测matchId 如果有缓存以前的nanana数据清除\r\n containsNanana(str) {\r\n return /na/i.test(str);\r\n },\r\n //重新设置MatchId\r\n setMatchId (){\r\n // 定义包含可用字符的字符集\r\n const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n // 创建一个数组以保存随机字符\r\n const uuidArray = [];\r\n // 循环10次 生成10位的UUID\r\n for (let i = 0; i < 10; i++) {\r\n // 生成随机索引,范围是字符集的长度\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n // 从字符集中获取随机字符\r\n const randomChar = characters.charAt(randomIndex);\r\n // 将字符添加到数组中\r\n uuidArray.push(randomChar);\r\n }\r\n let data = uuidArray.join('') + 1 + \"\";\r\n cc.sys.localStorage.setItem(\"matchNumber\",1);\r\n cc.sys.localStorage.setItem(\"matchId\",data);\r\n cc.fx.GameConfig.GM_INFO.matchId = data;\r\n return data;\r\n },\r\n //截取名字\r\n subName(name,length){\r\n if(name.length > length){\r\n name = name.substring(0,length) + \"...\"\r\n }\r\n return name;\r\n },\r\n //设置头像\r\n setPic(node,pic){\r\n node.active = false;\r\n let url = pic;\r\n setTimeout(() => {\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n node.active = true;\r\n }\r\n })\r\n .catch(error => {\r\n // console.error('Error fetching X-Info:', error);\r\n });\r\n }, 100);\r\n cc.assetManager.loadRemote(url, {ext:'.png'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n node.active = true;\r\n node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n // console.log(err,texture)\r\n }\r\n })\r\n },\r\n //第一个参数把目标带进来处理,第二个参数为名字长度,不同场景不同需求\r\n //名字4短,小排行,名字6长,大排行\r\n getRankData(data,target,nameLength){\r\n target.listData = data.data.list;\r\n target.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n cc.fx.GameTool.setPic(target.selfNode.getChildByName(\"pic\").getChildByName(\"icon\"),target.selfData.pic);\r\n for(let i=0;i<=target.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:target.listData[i].nickName, total:target.listData[i].score,time:null, pic:target.listData[i].pic});\r\n if(cc.fx.GameConfig.GM_INFO.userId == target.listData[i].userId){\r\n self = true;\r\n target.rankNumber = i;\r\n target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (target.listData.length-1) && self == false){\r\n target.rankNumber = i;\r\n target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n }\r\n target.selfData.nickName = cc.fx.GameTool.subName(target.selfData.nickName,nameLength);\r\n target.selfNode.getChildByName(\"nameLab\").getComponent(cc.Label).string = target.selfData.nickName;\r\n target.selfNode.getChildByName(\"totalLab\").getComponent(cc.Label).string = target.selfData.score;\r\n let timeTemp = cc.fx.GameTool.getTimeShenNong(target.selfData.totleTimes);\r\n // target.selfNode.getChildByName(\"timeLab\").getComponent(cc.Label).string = timeTemp + \"\";\r\n switch(target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string){\r\n case \"1\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"one\").active = true;\r\n break;\r\n case \"2\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"two\").active = true;\r\n break;\r\n case \"3\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"three\").active = true;\r\n break;\r\n }\r\n // 大排行\r\n if(nameLength == 6){\r\n target.rankList.setData(rankData);\r\n target.selfNode.opacity = 255;\r\n if(target.selfData.totalSunCount == 0) target.selfNode.opacity = 0;\r\n }\r\n },\r\n\r\n getSeedRandom: function (min, max) {//包含min 不包含max\r\n // console.log(\"随机数:\",cc.fx.GameConfig.GM_INFO.currSeed);\r\n max = max || 1;\r\n min = min || 0;\r\n cc.fx.GameConfig.GM_INFO.currSeed = (cc.fx.GameConfig.GM_INFO.currSeed * 9301 + 49297) % 233280;\r\n let rnd = cc.fx.GameConfig.GM_INFO.currSeed / 233280.0;\r\n let tmp = min + rnd * (max - min);\r\n return parseInt(tmp);\r\n },\r\n //获取关卡配置的那个关卡数\r\n getCustom(type){\r\n let custom = cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom);\r\n if(custom == \"undifend\" || custom==null || custom == \"\"){\r\n this.setCustom();\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO_SET(\"custom\",custom[0]);\r\n if(custom[0] != 0 || type == true){\r\n custom.shift();\r\n if(custom.length == 0){\r\n this.setCustom();\r\n }\r\n else cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,custom);\r\n }\r\n }\r\n },\r\n //本地没有存储到配置,或者配置用完,重新创建配置\r\n setCustom(){\r\n let arrayLength = cc.fx.GameConfig.LEVEL_INFO.length;\r\n let arrayList = [];\r\n for(let i=1; i Math.random() - 0.5);\r\n arrayList.unshift(0)\r\n cc.fx.GameConfig.GM_INFO_SET(\"custom\",arrayList[0]);\r\n cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,arrayList);\r\n },\r\n\r\n\r\n getSetScreenResolutionFlag: function () {\r\n let size = cc.winSize;\r\n let width = size.width;\r\n let height = size.height;\r\n if ((height / width) > (16.2 / 9)) return false;\r\n return true;\r\n },\r\n //判断全面屏适配\r\n setFit: function (canvas) {\r\n let flag = cc.fx.GameTool.getSetScreenResolutionFlag();\r\n if (flag) {\r\n \t// console.log(\"不是全面屏\");\r\n } else {\r\n \t// console.log(\"是全面屏\");\r\n }\r\n return flag;\r\n },\r\n //获取游戏信息\r\n getGameInfo: function(node){\r\n var jg = false;\r\n return jg;\r\n },\r\n //设置游戏信息\r\n setGameInfo: function(pd){\r\n \r\n },\r\n\r\n //打字机效果\r\n typingAni(label,text,cb,target){\r\n var self = target;\r\n var html = '';\r\n var arr = text.split('');\r\n var len = arr.length;\r\n var step = 0;\r\n self.func = ()=>{\r\n html += arr[step];\r\n label.string = html;\r\n if (++step == len) {\r\n self.unschedule(self.func);\r\n cb && cb();\r\n }\r\n }\r\n self.schedule(self.func,0.1, cc.macro.REPEAT_FOREVER, 0)\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeMargin:(second) => {\r\n let total = 0;\r\n total = second;\r\n let hour = 0;\r\n hour = parseInt((total / 3600) + \"\");//计算整数小时数\r\n let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数\r\n let min = parseInt((afterHour / 60)+\"\");//计算整数分\r\n let m = \"\" + min; \r\n if(min < 10) m = \"0\"+min;\r\n let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"\";\r\n if(afterMin < 10) miao = \"0\" + afterMin;\r\n return m + ':' + miao\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeShenNong:(second) => {\r\n second = parseInt(second/1000+\"\");\r\n let total = 0;\r\n total = second;\r\n let min = 0;\r\n if(total > 60){\r\n min = parseInt((total / 60)+\"\");//计算整数分\r\n }\r\n let m = min + \"'\"; \r\n\r\n let afterMin = total - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"''\";\r\n return m + miao\r\n },\r\n\r\n //打乱数组\r\n shuffleArray: function (array) {\r\n for (let i = array.length - 1; i > 0; i--) {\r\n const j = Math.floor(Math.random() * (i + 1));\r\n [array[i], array[j]] = [array[j], array[i]];\r\n }\r\n return array;\r\n },\r\n\r\n\r\n //增加关卡数\r\n addLevel(time1,time2){\r\n cc.fx.GameConfig.GM_INFO.level += 1;\r\n if(cc.fx.GameConfig.GM_INFO.level > 156){\r\n cc.fx.GameConfig.GM_INFO.level = 156; \r\n }\r\n const timestamp = Date.now();\r\n let levelInfo = {\r\n level:cc.fx.GameConfig.GM_INFO.level,\r\n timestamp:timestamp,\r\n }\r\n // console.log(\"55555存储关卡数据:\",levelInfo);\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n if(time1 && time2){\r\n let data = {\r\n time:time1,\r\n add_Time:time2,\r\n result:\"success\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\",data);\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n }\r\n \r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n // console.log(\"存储结果:\",data);\r\n // console.log(\"上传\",data);\r\n })\r\n },\r\n\r\n //改变金币信息\r\n changeCoin(coin){\r\n console.log(\"changeCoin\",coin);\r\n if(coin == undefined) return;\r\n if(coin < 0 && cc.fx.GameConfig.GM_INFO.coin < -coin){\r\n // console.log(\"金币不足\",cc.fx.GameConfig.GM_INFO.coin,-coin);\r\n return;\r\n }\r\n cc.fx.GameConfig.GM_INFO.coin += coin;\r\n\r\n if(cc.fx.GameConfig.GM_INFO.coin < 0){\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n }\r\n // console.log(\"改变的金币:\",coin);\r\n // console.log(\"自身金币信息:\",cc.fx.GameConfig.GM_INFO.coin);\r\n const timestamp = Date.now();\r\n let coinInfo = {\r\n coin:cc.fx.GameConfig.GM_INFO.coin,\r\n timestamp:timestamp,\r\n }\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n // console.log(\"存储金币数据:\",cc.fx.GameConfig.GM_INFO.coin,coinInfo);\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n // console.log(\"上传\",data);\r\n })\r\n },\r\n\r\n //获取用户金币数量\r\n getUserCoin(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userCoin',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n // console.log('读取用户金币数据成功', res.result)\r\n if(callback)\r\n callback(res); \r\n\r\n },\r\n fail: err => {\r\n callback(err); \r\n\r\n }\r\n })\r\n }\r\n },\r\n\r\n //改变用户金币\r\n setUserCoin(callback){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n if(cc.fx.GameConfig.GM_INFO.coin <= 0 || cc.fx.GameConfig.GM_INFO.coin == undefined){\r\n console.log(\"金币上传失败\",cc.fx.GameConfig.GM_INFO.coin);\r\n // MiniGameSdk.API.showToast(cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n }\r\n console.log(\"即将上传的金币数量:\",cc.fx.GameConfig.GM_INFO.coin);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userCoin',\r\n data: {\r\n action: 'save',\r\n coinAmount: cc.fx.GameConfig.GM_INFO.coin\r\n },\r\n success: res => {\r\n // console.log('云函数返回结果:', res);\r\n if(res.result.code == 200){\r\n // console.log('存储金币数据成功',cc.fx.GameConfig.GM_INFO.coin);\r\n }\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n // console.log('存储金币数据失败')\r\n if(callback){\r\n callback(err);\r\n }\r\n console.error('存储用户数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n\r\n //获取用户关卡数\r\n getUserLevel(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userLevel',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n if(callback)\r\n callback(res); \r\n\r\n },\r\n fail: err => {\r\n callback(err); \r\n\r\n }\r\n })\r\n }\r\n },\r\n\r\n //进游戏处理 体力值情况\r\n getHealth(callback: Function){\r\n let health = cc.fx.StorageMessage.getStorage(\"health\");\r\n const timestamp = Date.now();\r\n cc.fx.GameConfig.GM_INFO.hp = 5;\r\n //没有存储过体力值\r\n if(health == null || health == undefined || health == \"\"){\r\n console.log(\"没存储过体力值,初进\");\r\n cc.fx.GameConfig.GM_INFO.hp = 5;\r\n cc.fx.GameTool.getUserHealth((data)=>{\r\n console.log(\"体力接口返回结果\",data);\r\n if(data.result.code == 200){\r\n cc.fx.GameConfig.GM_INFO.hp = data.result.data;\r\n cc.fx.GameConfig.GM_INFO.min_Time = data.result.timestamp;\r\n let healthInfo = {\r\n \"health\":cc.fx.GameConfig.GM_INFO.hp,\r\n \"timestamp\":data.result.timestamp\r\n }\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n cc.fx.StorageMessage.setStorage(\"health\",healthInfo);\r\n }\r\n else if(data.result.code == 404 && data.result.message == \"未找到体力数据\"){\r\n cc.fx.GameTool.setUserHealth(0,()=>{\r\n });\r\n }\r\n if(callback) callback();\r\n })\r\n }\r\n else{\r\n console.log(\"有存储过体力值:\",health);\r\n cc.fx.GameConfig.GM_INFO.hp = health.health;\r\n if(callback){\r\n console.log(\"体力值读取完毕\");\r\n callback();\r\n } \r\n if(health.health < 0){\r\n console.log(\"体力值异常,归零\");\r\n cc.fx.GameConfig.GM_INFO.hp = 0;\r\n cc.fx.GameTool.setUserHealth(0,()=>{\r\n if(callback) callback();\r\n });\r\n }\r\n else if(health.health < 5){\r\n // 30分钟的毫秒数\r\n const thirtyMinutes = 30 * 60 * 1000; \r\n const elapsedTime = timestamp - health.timestamp;\r\n // 计算恢复的体力值\r\n const recoveredHealth = Math.min(5 - health.health, Math.floor(elapsedTime / thirtyMinutes)); \r\n if (recoveredHealth > 0) {\r\n health.health += recoveredHealth;\r\n cc.fx.GameTool.setUserHealth(recoveredHealth,()=>{\r\n if(callback) callback();\r\n });\r\n console.log(`体力值恢复 ${recoveredHealth} 点,当前体力值: ${cc.fx.GameConfig.GM_INFO.hp}`);\r\n } else {\r\n // 计算距离下一次恢复的剩余时间\r\n const remainingTime = Math.ceil((thirtyMinutes - (elapsedTime % thirtyMinutes)) / 1000);\r\n console.log(`体力值未满,待恢复,距离下一次恢复还剩 ${remainingTime} 秒`);\r\n cc.fx.GameConfig.GM_INFO.min_Time = remainingTime;\r\n }\r\n }\r\n }\r\n },\r\n\r\n //获取用户体力值\r\n getUserHealth(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n console.log(\"即将进入体力获取接口\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userHealth',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n // console.log(\"体力获取成功\",res);\r\n if(callback)\r\n callback(res); \r\n },\r\n fail: err => {\r\n // console.log(\"体力获取失败\",err);\r\n callback(err); \r\n }\r\n })\r\n }\r\n },\r\n\r\n //设置用户体力值 有可能加,有可能定时器减\r\n setUserHealth(health,callback){\r\n cc.fx.GameConfig.GM_INFO.hp += health;\r\n // if(health < 0) {\r\n // }\r\n // else MiniGameSdk.API.showToast(\"体力值恢复\");\r\n const timestamp = Date.now();\r\n let healthInfo ={}\r\n \r\n //如果消耗之前不是满体力,说明已经在恢复期,并不用修改时间\r\n if(health < 0 && cc.fx.GameConfig.GM_INFO.hp != 4) {\r\n let oldTime = cc.fx.StorageMessage.getStorage(\"health\").timestamp;\r\n healthInfo = {\r\n \"health\":cc.fx.GameConfig.GM_INFO.hp,\r\n \"timestamp\":oldTime\r\n }\r\n }\r\n else{\r\n healthInfo = {\r\n \"health\":cc.fx.GameConfig.GM_INFO.hp,\r\n \"timestamp\":timestamp\r\n }\r\n }\r\n cc.fx.StorageMessage.setStorage(\"health\",healthInfo);\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userHealth',\r\n data: {\r\n action: 'save',\r\n healthAmount: cc.fx.GameConfig.GM_INFO.hp,\r\n timestamp:timestamp\r\n },\r\n success: res => {\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n if(callback){\r\n callback(err);\r\n }\r\n // console.error('存储关卡数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n //购买行为\r\n buyReview(coin,callback: Function){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n // console.log(\"实际即将消耗金币:\",coin);\r\n // this.changeCoin(coin);\r\n callback();\r\n }\r\n },\r\n\r\n //更改用户道具数\r\n buyProp(propid,callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n cc.fx.GameTool.changeCoin(-1500);\r\n cc.fx.GameTool.setUserProp(propid,3,(data)=>{\r\n })\r\n const data = {\r\n id: (propid + \"\"),\r\n num:3\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_get\",data);\r\n let _id = \"\";\r\n if(propid == 2001) _id = \"freeze_in_game\";\r\n else if(propid == 2002) _id = \"hammer_in_game\";\r\n else if(propid == 2003) _id = \"wand_in_game\";\r\n \r\n const buyData = {\r\n item_id:_id,\r\n item_num:1,\r\n item_price:1500,\r\n cost_type:\"gold\"\r\n }\r\n console.log(\"____________即将上传Shop_buy\",buyData);\r\n cc.fx.GameTool.shushu_Track(\"shop_buy\",buyData);\r\n callback();\r\n }\r\n },\r\n\r\n\r\n //改变用户关卡\r\n setUserLevel(callback){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n // if(cc.fx.GameConfig.GM_INFO.level <= 0 || cc.fx.GameConfig.GM_INFO.level == undefined){\r\n // console.log(\"等级重置为0\");\r\n // cc.fx.GameConfig.GM_INFO.level = 0;\r\n // }\r\n // console.log(\"即将上传的关卡数:\",cc.fx.GameConfig.GM_INFO.level);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userLevel',\r\n data: {\r\n action: 'save',\r\n levelAmount: cc.fx.GameConfig.GM_INFO.level\r\n },\r\n success: res => {\r\n // console.log('云函数返回结果:', res);\r\n // console.log('存储关卡数据成功',cc.fx.GameConfig.GM_INFO.level);\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n // console.log('存储关卡数据失败')\r\n return;\r\n if(callback){\r\n callback(err);\r\n }\r\n console.error('存储关卡数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n //获取用户关卡数\r\n getUserProp(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userProp',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n // console.log('读取用户道具数据成功', res.result)\r\n if(res.result.data){\r\n // cc.fx.GameConfig.GM_INFO.freezeAmount = res.result.data.freeze;\r\n // cc.fx.GameConfig.GM_INFO.hammerAmount = res.result.data.hammer;\r\n // cc.fx.GameConfig.GM_INFO.magicAmount = res.result.data.magic_wand;\r\n }\r\n if(callback)\r\n callback(res); \r\n\r\n },\r\n fail: err => {\r\n callback(err); \r\n }\r\n })\r\n }\r\n },\r\n\r\n //改变用户道具\r\n setUserProp(propid,amount,callback){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n let newPropData = null;\r\n if(propid == 0){\r\n newPropData = {\r\n freeze:cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n hammer:cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n magic_wand:cc.fx.GameConfig.GM_INFO.magicAmount,\r\n }\r\n }\r\n else if(propid == 2001){\r\n newPropData = amount;\r\n }\r\n else if(propid == 2002){\r\n newPropData = amount; \r\n }\r\n else if(propid == 2003){\r\n newPropData = amount; \r\n }\r\n\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userProp',\r\n data: {\r\n action: 'save',\r\n propType: propid,\r\n propData: newPropData\r\n },\r\n success: res => {\r\n // console.log('云函数返回结果:', res);\r\n if(callback){\r\n callback(res);\r\n }\r\n // console.log('存储道具数据成功')\r\n },\r\n fail: err => {\r\n // console.log('存储道具数据失败')\r\n if(callback){\r\n callback(err);\r\n }\r\n console.error('存储道具数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n // 检查是否有足够的硬币\r\n consumeCoins(requiredCoins: number, propName: string, amount: number, callback) {\r\n \r\n\r\n },\r\n\r\n // 设置用户信息\r\n setUserInfo(callback: Function) {\r\n //@ts-ignore\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n const time = cc.fx.GameTool.formatDate(new Date());\r\n let userInfo = {\r\n // 这里填写要存储的用户数据\r\n username: cc.fx.GameConfig.GM_INFO.username, //用户名称\r\n useravatar: cc.fx.GameConfig.GM_INFO.useravatar, //用户头像\r\n register_time: time\r\n }\r\n \r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'save',\r\n userData: userInfo\r\n },\r\n success: res => {\r\n // console.log('存储用户数据成功')\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n if(callback){\r\n callback(\"fail\");\r\n }\r\n }\r\n })\r\n } \r\n },\r\n\r\n formatDate(date: Date): string {\r\n const year = date.getFullYear();\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const day = String(date.getDate()).padStart(2, '0');\r\n const hours = String(date.getHours()).padStart(2, '0');\r\n const minutes = String(date.getMinutes()).padStart(2, '0');\r\n const seconds = String(date.getSeconds()).padStart(2, '0');\r\n const milliseconds = String(date.getMilliseconds()).padStart(3, '0');\r\n\r\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`;\r\n },\r\n \r\n //获取时间戳\r\n getTime(){\r\n const timestamp = (new Date().getTime())\r\n return timestamp;\r\n },\r\n pushLister:function () {\r\n \r\n },\r\n removeAllLister:function () {\r\n \r\n },\r\n\r\n shushu_Track: function(name,data){\r\n let eventData = {}\r\n switch(name){\r\n case \"register\":\r\n break;\r\n case \"enter_stage\":\r\n eventData = {\r\n stage_id: (cc.fx.GameConfig.GM_INFO.level + 1)\r\n }\r\n break;\r\n case \"finish_stage\":\r\n eventData = {\r\n stage_id: (cc.fx.GameConfig.GM_INFO.level + 1),\r\n stage_duration: data.time,\r\n added_time: data.add_Time,\r\n result: data.result\r\n }\r\n break;\r\n case \"resource_get\":\r\n eventData = {\r\n change_reason:\"购买道具\", //获得来源\r\n change_num:data.num, //获得数量\r\n resource_id:data.id //道具id\r\n }\r\n break;\r\n case \"resource_cost\":\r\n eventData = {\r\n change_reason:\"使用道具\", //获得来源\r\n change_num:data.num, //获得数量\r\n resource_id:data.id //道具id\r\n }\r\n break; \r\n case \"shop_buy\":\r\n eventData = {\r\n item_id: data.item_id,\r\n item_num: data.item_num,\r\n item_price: data.item_price,\r\n cost_type: data.cost_type, \r\n }\r\n console.log(\"数据:\",eventData);\r\n break;\r\n }\r\n // MiniGameSdk.API.shushu_Track(name,eventData);\r\n MiniGameSdk.API.shushu_Track(name, eventData);\r\n },\r\n\r\n getWechatGameVersion: function(){\r\n //@ts-ignore\r\n const accountInfo = wx.getAccountInfoSync();\r\n const miniProgram = accountInfo.miniProgram;\r\n switch (miniProgram.envVersion) {\r\n case 'develop':\r\n return '开发版';\r\n case 'trial':\r\n return '体验版';\r\n case 'release':\r\n return '正式版';\r\n default:\r\n return '未知版本';\r\n }\r\n },\r\n\r\n};\r\nexport { GameTool };"]} \ No newline at end of file diff --git a/library/imports/46/46e7d0f6-f588-4a0b-b766-dbb03c43770d.json b/library/imports/46/46e7d0f6-f588-4a0b-b766-dbb03c43770d.json deleted file mode 100644 index c28c349..0000000 --- a/library/imports/46/46e7d0f6-f588-4a0b-b766-dbb03c43770d.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "2down3", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 95, - 363, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 363, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/48/484f1896-8707-4cc7-8e61-9995a2133f09.json b/library/imports/48/484f1896-8707-4cc7-8e61-9995a2133f09.json deleted file mode 100644 index e7522d6..0000000 --- a/library/imports/48/484f1896-8707-4cc7-8e61-9995a2133f09.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "__type__": "cc.Texture2D", - "content": "0,9729,9729,33071,33071,0,0,1" -} \ No newline at end of file diff --git a/library/imports/51/510b87b7-3ed2-4bb5-8c02-be013ea1f9bc.json b/library/imports/49/49c30af9-566f-4ccc-8967-371e632afaa9.json similarity index 72% rename from library/imports/51/510b87b7-3ed2-4bb5-8c02-be013ea1f9bc.json rename to library/imports/49/49c30af9-566f-4ccc-8967-371e632afaa9.json index dd72817..0af65d8 100644 --- a/library/imports/51/510b87b7-3ed2-4bb5-8c02-be013ea1f9bc.json +++ b/library/imports/49/49c30af9-566f-4ccc-8967-371e632afaa9.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_3", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1207, 1739, diff --git a/library/imports/4b/4b6d2792-ce59-4597-8d54-3e667f5e4ad7.json b/library/imports/4b/4b6d2792-ce59-4597-8d54-3e667f5e4ad7.json deleted file mode 100644 index 3eebc78..0000000 --- a/library/imports/4b/4b6d2792-ce59-4597-8d54-3e667f5e4ad7.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "5color1", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 521, - 884, - 138, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 138, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/4c/4c1187d9-40bd-4210-acd7-0eecf4b2706f.json b/library/imports/4c/4c1187d9-40bd-4210-acd7-0eecf4b2706f.json index de225f4..8e67d6b 100644 --- a/library/imports/4c/4c1187d9-40bd-4210-acd7-0eecf4b2706f.json +++ b/library/imports/4c/4c1187d9-40bd-4210-acd7-0eecf4b2706f.json @@ -1074,7 +1074,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/4d/4dccd2bf-2fef-4629-bb16-4a3163fcc482.json b/library/imports/4d/4dccd2bf-2fef-4629-bb16-4a3163fcc482.json deleted file mode 100644 index 96d2986..0000000 --- a/library/imports/4d/4dccd2bf-2fef-4629-bb16-4a3163fcc482.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "6down3", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 377, - 363, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 363, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/4d/4df8b354-d4c6-4219-852d-37ea032eb450.json b/library/imports/4d/4df8b354-d4c6-4219-852d-37ea032eb450.json index 9c9d186..d8edd0e 100644 --- a/library/imports/4d/4df8b354-d4c6-4219-852d-37ea032eb450.json +++ b/library/imports/4d/4df8b354-d4c6-4219-852d-37ea032eb450.json @@ -1220,7 +1220,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/50/503530e7-cfb4-4bcb-ac38-d4dd3ce3d1af.json b/library/imports/50/503530e7-cfb4-4bcb-ac38-d4dd3ce3d1af.json index 4517016..7484e3d 100644 --- a/library/imports/50/503530e7-cfb4-4bcb-ac38-d4dd3ce3d1af.json +++ b/library/imports/50/503530e7-cfb4-4bcb-ac38-d4dd3ce3d1af.json @@ -782,7 +782,7 @@ "heng": 1, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/51/51d5b5f5-f626-4241-b80e-28a9595e733a.json b/library/imports/51/51d5b5f5-f626-4241-b80e-28a9595e733a.json deleted file mode 100644 index 66975e0..0000000 --- a/library/imports/51/51d5b5f5-f626-4241-b80e-28a9595e733a.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "10down2", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 125, - 565, - 243, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 243, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/51/51dcfe18-8728-4792-9ddf-30ae829e28ac.json b/library/imports/51/51dcfe18-8728-4792-9ddf-30ae829e28ac.json deleted file mode 100644 index 9cbd0b0..0000000 --- a/library/imports/51/51dcfe18-8728-4792-9ddf-30ae829e28ac.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "3down4", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 735, - 142, - 45, - 124 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 124 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/c6/c6b24109-dc9a-475e-8587-24b1c1ce211c.json b/library/imports/52/528a16df-0cfd-4569-b06e-7b0045260762.json similarity index 73% rename from library/imports/c6/c6b24109-dc9a-475e-8587-24b1c1ce211c.json rename to library/imports/52/528a16df-0cfd-4569-b06e-7b0045260762.json index 909a32b..fca5dae 100644 --- a/library/imports/c6/c6b24109-dc9a-475e-8587-24b1c1ce211c.json +++ b/library/imports/52/528a16df-0cfd-4569-b06e-7b0045260762.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_12", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1602, 284, diff --git a/library/imports/52/52f7fc1c-b560-4b6d-b15e-b38b6584a5d8.json b/library/imports/52/52f7fc1c-b560-4b6d-b15e-b38b6584a5d8.json deleted file mode 100644 index 414819e..0000000 --- a/library/imports/52/52f7fc1c-b560-4b6d-b15e-b38b6584a5d8.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "wall2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1092, - 879, - 61, - 146 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 146 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/55/550602d1-08e8-467e-8bd0-5295c4981fec.json b/library/imports/55/550602d1-08e8-467e-8bd0-5295c4981fec.json deleted file mode 100644 index 2dd23f7..0000000 --- a/library/imports/55/550602d1-08e8-467e-8bd0-5295c4981fec.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "6color2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 333, - 742, - 258, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 258, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/cd/cd5dc1b6-8181-4a84-9e92-5f391b5d08aa.json b/library/imports/56/560503c2-3664-47c4-834f-b052031a95fe.json similarity index 72% rename from library/imports/cd/cd5dc1b6-8181-4a84-9e92-5f391b5d08aa.json rename to library/imports/56/560503c2-3664-47c4-834f-b052031a95fe.json index bc22475..9121ef6 100644 --- a/library/imports/cd/cd5dc1b6-8181-4a84-9e92-5f391b5d08aa.json +++ b/library/imports/56/560503c2-3664-47c4-834f-b052031a95fe.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_11", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1594, 1, diff --git a/library/imports/51/515f65de-054a-4a3e-a49b-f04c522334c6.json b/library/imports/56/56c79cf2-5c1c-4044-bf72-9c99c5302074.json similarity index 73% rename from library/imports/51/515f65de-054a-4a3e-a49b-f04c522334c6.json rename to library/imports/56/56c79cf2-5c1c-4044-bf72-9c99c5302074.json index 2982f41..2d98217 100644 --- a/library/imports/51/515f65de-054a-4a3e-a49b-f04c522334c6.json +++ b/library/imports/56/56c79cf2-5c1c-4044-bf72-9c99c5302074.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_13", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1, 1178, diff --git a/library/imports/57/57ea620f-b33b-49c4-9a94-696b7fef56fc.json b/library/imports/57/57ea620f-b33b-49c4-9a94-696b7fef56fc.json deleted file mode 100644 index c866ccb..0000000 --- a/library/imports/57/57ea620f-b33b-49c4-9a94-696b7fef56fc.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "4down3", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 236, - 363, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 363, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/58/582183eb-bd29-403e-848d-164b9ac0ed50.json b/library/imports/58/582183eb-bd29-403e-848d-164b9ac0ed50.json deleted file mode 100644 index a36ab90..0000000 --- a/library/imports/58/582183eb-bd29-403e-848d-164b9ac0ed50.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "8color3", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 509, - 340, - 378, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 378, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/59/59a8c009-6f37-4960-b842-18f457d55412.json b/library/imports/59/59a8c009-6f37-4960-b842-18f457d55412.json index bc3ba7c..b97fd46 100644 --- a/library/imports/59/59a8c009-6f37-4960-b842-18f457d55412.json +++ b/library/imports/59/59a8c009-6f37-4960-b842-18f457d55412.json @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/5b/5b0aa537-7f4b-4132-ac45-2101f453a688.json b/library/imports/5b/5b0aa537-7f4b-4132-ac45-2101f453a688.json index f236c00..5959c62 100644 --- a/library/imports/5b/5b0aa537-7f4b-4132-ac45-2101f453a688.json +++ b/library/imports/5b/5b0aa537-7f4b-4132-ac45-2101f453a688.json @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/5c/5cf21c17-96d2-4780-ba77-7dda56e64c98.json b/library/imports/5c/5cf21c17-96d2-4780-ba77-7dda56e64c98.json deleted file mode 100644 index 5d1251e..0000000 --- a/library/imports/5c/5cf21c17-96d2-4780-ba77-7dda56e64c98.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "10down6", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 248, - 612, - 45, - 365 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 365 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/f2/f263ce47-c0cb-4cc3-a8cc-2ca91555a86d.json b/library/imports/5e/5e0a536d-4c5f-42f6-8f2f-5dabc3dc2d0e.json similarity index 73% rename from library/imports/f2/f263ce47-c0cb-4cc3-a8cc-2ca91555a86d.json rename to library/imports/5e/5e0a536d-4c5f-42f6-8f2f-5dabc3dc2d0e.json index 60036fa..471594c 100644 --- a/library/imports/f2/f263ce47-c0cb-4cc3-a8cc-2ca91555a86d.json +++ b/library/imports/5e/5e0a536d-4c5f-42f6-8f2f-5dabc3dc2d0e.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_7", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1512, 812, diff --git a/library/imports/59/59a70589-9d42-4065-9a9f-5dfc15edd0ed.json b/library/imports/5e/5e13bde7-1c9f-4a8e-afc7-d1d8e6df870b.json similarity index 72% rename from library/imports/59/59a70589-9d42-4065-9a9f-5dfc15edd0ed.json rename to library/imports/5e/5e13bde7-1c9f-4a8e-afc7-d1d8e6df870b.json index ffbc095..91e3ebd 100644 --- a/library/imports/59/59a70589-9d42-4065-9a9f-5dfc15edd0ed.json +++ b/library/imports/5e/5e13bde7-1c9f-4a8e-afc7-d1d8e6df870b.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_8", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 773, 1085, diff --git a/library/imports/5f/5fb87968-bd45-4c4e-b84d-49babf968177.json b/library/imports/5f/5fb87968-bd45-4c4e-b84d-49babf968177.json deleted file mode 100644 index 41927f9..0000000 --- a/library/imports/5f/5fb87968-bd45-4c4e-b84d-49babf968177.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "2down2", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 615, - 48, - 243, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 243, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/60/6012f579-6820-44ee-89c4-87c6c9b25f44.json b/library/imports/60/6012f579-6820-44ee-89c4-87c6c9b25f44.json deleted file mode 100644 index c59405b..0000000 --- a/library/imports/60/6012f579-6820-44ee-89c4-87c6c9b25f44.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "shu_zl2_33", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 663, - 411, - 32, - 180 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 32, - 180 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/60/6023e99b-9806-44e9-8325-487a6cfdf3e5.json b/library/imports/60/6023e99b-9806-44e9-8325-487a6cfdf3e5.json index 8577439..069aea9 100644 --- a/library/imports/60/6023e99b-9806-44e9-8325-487a6cfdf3e5.json +++ b/library/imports/60/6023e99b-9806-44e9-8325-487a6cfdf3e5.json @@ -314,9 +314,7 @@ ], "_srcBlendFactor": 770, "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "b1760ce5-36c7-4d8b-bb5f-069a448ebbf2" - }, + "_spriteFrame": null, "_type": 0, "_sizeMode": 1, "_fillType": 0, @@ -328,9 +326,7 @@ "_fillStart": 0, "_fillRange": 0, "_isTrimmedMode": true, - "_atlas": { - "__uuid__": "cc01997d-495e-480d-871e-be405a6c38b5" - }, + "_atlas": null, "_id": "" }, { diff --git a/library/imports/31/3197674e-141b-4857-b39c-97d5b2e64782.json b/library/imports/62/62429a89-373d-44cb-a978-af1f32ab409d.json similarity index 72% rename from library/imports/31/3197674e-141b-4857-b39c-97d5b2e64782.json rename to library/imports/62/62429a89-373d-44cb-a978-af1f32ab409d.json index 5499b8c..ddb3356 100644 --- a/library/imports/31/3197674e-141b-4857-b39c-97d5b2e64782.json +++ b/library/imports/62/62429a89-373d-44cb-a978-af1f32ab409d.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_9", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1499, 561, diff --git a/library/imports/e3/e3336135-ade0-4e73-813e-893b3f1a02b5.json b/library/imports/64/64fa6afd-16c6-4473-a5cf-844bcbd25f73.json similarity index 73% rename from library/imports/e3/e3336135-ade0-4e73-813e-893b3f1a02b5.json rename to library/imports/64/64fa6afd-16c6-4473-a5cf-844bcbd25f73.json index 2bb7365..b2cd387 100644 --- a/library/imports/e3/e3336135-ade0-4e73-813e-893b3f1a02b5.json +++ b/library/imports/64/64fa6afd-16c6-4473-a5cf-844bcbd25f73.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_0", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1575, 1870, diff --git a/library/imports/66/66c27f02-719e-422c-9277-42063833c0af.json b/library/imports/66/66c27f02-719e-422c-9277-42063833c0af.json deleted file mode 100644 index 0fb3105..0000000 --- a/library/imports/66/66c27f02-719e-422c-9277-42063833c0af.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "shu_zl1", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1081, - 883, - 9, - 42 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 9, - 42 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/67/676deeda-d2ee-439b-82d7-6acd250bce0c.json b/library/imports/67/676deeda-d2ee-439b-82d7-6acd250bce0c.json deleted file mode 100644 index 20d4526..0000000 --- a/library/imports/67/676deeda-d2ee-439b-82d7-6acd250bce0c.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "1down5", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 48, - 45, - 245 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 245 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/0a/0a3badcc-62cb-40cb-8f95-0a7818c08c99.json b/library/imports/67/67a3e1e8-b956-4a3c-861d-d81ec149a0bf.json similarity index 73% rename from library/imports/0a/0a3badcc-62cb-40cb-8f95-0a7818c08c99.json rename to library/imports/67/67a3e1e8-b956-4a3c-861d-d81ec149a0bf.json index f3d9b9a..fbcad2b 100644 --- a/library/imports/0a/0a3badcc-62cb-40cb-8f95-0a7818c08c99.json +++ b/library/imports/67/67a3e1e8-b956-4a3c-861d-d81ec149a0bf.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_3", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1790, 1064, diff --git a/library/imports/68/6899ee49-88e4-44ff-b7f9-421031d84e6e.json b/library/imports/68/6899ee49-88e4-44ff-b7f9-421031d84e6e.json deleted file mode 100644 index 5948584..0000000 --- a/library/imports/68/6899ee49-88e4-44ff-b7f9-421031d84e6e.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "1color5", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 889, - 404, - 61, - 267 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 267 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/69/691087d9-32f7-44d2-b61c-87873e8f4242.json b/library/imports/69/691087d9-32f7-44d2-b61c-87873e8f4242.json deleted file mode 100644 index 4ea26d3..0000000 --- a/library/imports/69/691087d9-32f7-44d2-b61c-87873e8f4242.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "1down1", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 1, - 122, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 122, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/6a/6abff37f-5b52-4658-bd2b-c146e6dea162.json b/library/imports/6a/6abff37f-5b52-4658-bd2b-c146e6dea162.json deleted file mode 100644 index 823e95b..0000000 --- a/library/imports/6a/6abff37f-5b52-4658-bd2b-c146e6dea162.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "8color1", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 825, - 829, - 138, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 138, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/6a/6acd6f05-53d0-4866-b1a3-3fdc05bea16e.json b/library/imports/6a/6acd6f05-53d0-4866-b1a3-3fdc05bea16e.json index b02cc53..e8075d3 100644 --- a/library/imports/6a/6acd6f05-53d0-4866-b1a3-3fdc05bea16e.json +++ b/library/imports/6a/6acd6f05-53d0-4866-b1a3-3fdc05bea16e.json @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/6b/6b1b5072-9a41-44e7-9923-3855864d5120.json b/library/imports/6b/6b1b5072-9a41-44e7-9923-3855864d5120.json deleted file mode 100644 index af80f6e..0000000 --- a/library/imports/6b/6b1b5072-9a41-44e7-9923-3855864d5120.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "1color4", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 593, - 758, - 61, - 146 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 146 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/6c/6c4cf916-acbb-4217-8944-b92ed2fb0ea1.json b/library/imports/6c/6c4cf916-acbb-4217-8944-b92ed2fb0ea1.json deleted file mode 100644 index e287d2e..0000000 --- a/library/imports/6c/6c4cf916-acbb-4217-8944-b92ed2fb0ea1.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "3down2", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 125, - 142, - 243, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 243, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/6c/6c53e21f-0dfa-4273-b08a-951f6792467b.json b/library/imports/6c/6c53e21f-0dfa-4273-b08a-951f6792467b.json index 4940d83..5ab16aa 100644 --- a/library/imports/6c/6c53e21f-0dfa-4273-b08a-951f6792467b.json +++ b/library/imports/6c/6c53e21f-0dfa-4273-b08a-951f6792467b.json @@ -782,7 +782,7 @@ "heng": 1, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/6f/6f9a9443-aa0d-4e1b-8cd1-03cba11a2aad.json b/library/imports/6f/6f9a9443-aa0d-4e1b-8cd1-03cba11a2aad.json deleted file mode 100644 index e8ddb7e..0000000 --- a/library/imports/6f/6f9a9443-aa0d-4e1b-8cd1-03cba11a2aad.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "jiekou_heng", - "texture": "b422f3cf-81f1-4bda-9b15-c5ef7a9687b8", - "atlas": "", - "rect": [ - 2, - 121, - 143, - 24 - ], - "offset": [ - -0.5, - -59 - ], - "originalSize": [ - 148, - 148 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/72/727ab669-af95-43be-9818-2065a98b84a5.json b/library/imports/72/727ab669-af95-43be-9818-2065a98b84a5.json deleted file mode 100644 index e7522d6..0000000 --- a/library/imports/72/727ab669-af95-43be-9818-2065a98b84a5.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "__type__": "cc.Texture2D", - "content": "0,9729,9729,33071,33071,0,0,1" -} \ No newline at end of file diff --git a/library/imports/72/727ab669-af95-43be-9818-2065a98b84a5.png b/library/imports/72/727ab669-af95-43be-9818-2065a98b84a5.png deleted file mode 100644 index 28f3855..0000000 Binary files a/library/imports/72/727ab669-af95-43be-9818-2065a98b84a5.png and /dev/null differ diff --git a/library/imports/9c/9cc4e23c-bc99-4daf-a03b-4335ebf6c167.json b/library/imports/72/727e4b9d-8408-4bea-8a17-1ea8f55cb9eb.json similarity index 73% rename from library/imports/9c/9cc4e23c-bc99-4daf-a03b-4335ebf6c167.json rename to library/imports/72/727e4b9d-8408-4bea-8a17-1ea8f55cb9eb.json index 5bbb276..e7638b2 100644 --- a/library/imports/9c/9cc4e23c-bc99-4daf-a03b-4335ebf6c167.json +++ b/library/imports/72/727e4b9d-8408-4bea-8a17-1ea8f55cb9eb.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_20", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 655, 839, diff --git a/library/imports/fa/fa3cd527-294e-429f-b7ba-22662775fe0f.json b/library/imports/73/73cd9b62-4f5f-4846-9be8-53f206b00a7f.json similarity index 73% rename from library/imports/fa/fa3cd527-294e-429f-b7ba-22662775fe0f.json rename to library/imports/73/73cd9b62-4f5f-4846-9be8-53f206b00a7f.json index 021f63a..50db253 100644 --- a/library/imports/fa/fa3cd527-294e-429f-b7ba-22662775fe0f.json +++ b/library/imports/73/73cd9b62-4f5f-4846-9be8-53f206b00a7f.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_1", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1866, 561, diff --git a/library/imports/85/85831139-37a3-419d-8ae2-63e3de280069.json b/library/imports/74/740b4de2-f5ed-4218-b5ea-489795888132.json similarity index 73% rename from library/imports/85/85831139-37a3-419d-8ae2-63e3de280069.json rename to library/imports/74/740b4de2-f5ed-4218-b5ea-489795888132.json index 4abfaa8..3bb5493 100644 --- a/library/imports/85/85831139-37a3-419d-8ae2-63e3de280069.json +++ b/library/imports/74/740b4de2-f5ed-4218-b5ea-489795888132.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_17", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 365, 561, diff --git a/library/imports/74/747709de-f3f7-4042-8ac9-9ff807c4b7cf.json b/library/imports/74/747709de-f3f7-4042-8ac9-9ff807c4b7cf.json deleted file mode 100644 index dfbdceb..0000000 --- a/library/imports/74/747709de-f3f7-4042-8ac9-9ff807c4b7cf.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "10color6", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 889, - 277, - 61, - 386 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 386 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/74/74c1ec31-91eb-423e-97c9-68c93ffde355.json b/library/imports/74/74c1ec31-91eb-423e-97c9-68c93ffde355.json deleted file mode 100644 index 51aa319..0000000 --- a/library/imports/74/74c1ec31-91eb-423e-97c9-68c93ffde355.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "8color5", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 388, - 474, - 61, - 266 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 266 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/75/75a77063-a5a9-456a-8b4f-bfde10c137e8.json b/library/imports/75/75a77063-a5a9-456a-8b4f-bfde10c137e8.json index 1de6c37..cd0d909 100644 --- a/library/imports/75/75a77063-a5a9-456a-8b4f-bfde10c137e8.json +++ b/library/imports/75/75a77063-a5a9-456a-8b4f-bfde10c137e8.json @@ -262,9 +262,7 @@ ], "_srcBlendFactor": 770, "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "3042034a-eafb-4920-aacc-79bd4f56d417" - }, + "_spriteFrame": null, "_type": 0, "_sizeMode": 1, "_fillType": 0, @@ -276,9 +274,7 @@ "_fillStart": 0, "_fillRange": 0, "_isTrimmedMode": true, - "_atlas": { - "__uuid__": "cc01997d-495e-480d-871e-be405a6c38b5" - }, + "_atlas": null, "_id": "" }, { diff --git a/library/imports/75/75e28444-b63c-4b82-92de-09e76c1ff22e.json b/library/imports/75/75e28444-b63c-4b82-92de-09e76c1ff22e.json deleted file mode 100644 index a54f818..0000000 --- a/library/imports/75/75e28444-b63c-4b82-92de-09e76c1ff22e.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "3down3", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 370, - 142, - 363, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 363, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/26/2661e9df-d4da-4dcc-ac8d-cb16fcad7ea8.json b/library/imports/78/78f63367-3765-4e5a-ba97-ba1ff164785b.json similarity index 72% rename from library/imports/26/2661e9df-d4da-4dcc-ac8d-cb16fcad7ea8.json rename to library/imports/78/78f63367-3765-4e5a-ba97-ba1ff164785b.json index 219c20c..53fbf91 100644 --- a/library/imports/26/2661e9df-d4da-4dcc-ac8d-cb16fcad7ea8.json +++ b/library/imports/78/78f63367-3765-4e5a-ba97-ba1ff164785b.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_18", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1, 404, diff --git a/library/imports/79/793cb4eb-b353-4eb9-94ea-063c6736b6f8.json b/library/imports/79/793cb4eb-b353-4eb9-94ea-063c6736b6f8.json deleted file mode 100644 index 689abec..0000000 --- a/library/imports/79/793cb4eb-b353-4eb9-94ea-063c6736b6f8.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "7down6", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 615, - 661, - 46, - 366 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 46, - 366 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/9b/9b0ac44e-5295-470f-87c1-28064efef2c1.json b/library/imports/7b/7b23c8ea-807d-4f55-90ba-bd725aff309c.json similarity index 72% rename from library/imports/9b/9b0ac44e-5295-470f-87c1-28064efef2c1.json rename to library/imports/7b/7b23c8ea-807d-4f55-90ba-bd725aff309c.json index 4cf4af7..3cc19da 100644 --- a/library/imports/9b/9b0ac44e-5295-470f-87c1-28064efef2c1.json +++ b/library/imports/7b/7b23c8ea-807d-4f55-90ba-bd725aff309c.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_6", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1, 1576, diff --git a/library/imports/7e/7e0a9fcf-7599-443b-814d-05bf5cca516a.json b/library/imports/7e/7e0a9fcf-7599-443b-814d-05bf5cca516a.json index cb16507..18f8b57 100644 --- a/library/imports/7e/7e0a9fcf-7599-443b-814d-05bf5cca516a.json +++ b/library/imports/7e/7e0a9fcf-7599-443b-814d-05bf5cca516a.json @@ -1074,7 +1074,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/80/802a788c-fdd9-47b1-9ec4-1ece1a07d54e.json b/library/imports/80/802a788c-fdd9-47b1-9ec4-1ece1a07d54e.json deleted file mode 100644 index a634a5b..0000000 --- a/library/imports/80/802a788c-fdd9-47b1-9ec4-1ece1a07d54e.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "5down3", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 370, - 283, - 363, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 363, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/80/80954029-c956-4c1d-af71-ea5fd90f10e4.json b/library/imports/80/80954029-c956-4c1d-af71-ea5fd90f10e4.json deleted file mode 100644 index 31e42b8..0000000 --- a/library/imports/80/80954029-c956-4c1d-af71-ea5fd90f10e4.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "1down4", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 735, - 1, - 45, - 124 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 124 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js b/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js index 0c9f0ff..a22a8ed 100644 --- a/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js +++ b/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js @@ -145,12 +145,16 @@ var SceneManager = /** @class */ (function (_super) { MiniGameSdk_1.MiniGameSdk.API.showToast("体力值减少"); cc.fx.GameTool.setUserHealth(-1, function (data) { }); - var data = { - time: Map_1.default._instance.count_Time, - add_Time: Map_1.default._instance.add_Time, - result: "give_up" - }; - cc.fx.GameTool.shushu_Track("finish_stage", data); + if (Map_1.default._instance.count_Time) { + var count_Time = Map_1.default._instance.count_Time; + var add_Time = Map_1.default._instance.add_Time; + var data = { + time: count_Time, + add_Time: add_Time, + result: "give_up" + }; + cc.fx.GameTool.shushu_Track("finish_stage", data); + } } this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl").setTouch(false); cc.fx.AudioManager._instance.playEffect("zhuan1", null); diff --git a/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js.map b/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js.map index d4c3876..52fb454 100644 --- a/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js.map +++ b/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\SceneManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport MapConroler from \"./Map\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class SceneManager extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n\r\n @property(cc.Node)\r\n freeze: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n hammer: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n magic_wand: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n pause: cc.Node = null;\r\n\r\n\r\n @property({type: [cc.Prefab], tooltip:\"方块数组\"})\r\n Block_Array : Array = [];\r\n\r\n @property({type: [cc.Prefab], tooltip:\"墙壁数组\"})\r\n Wall_Prefab : Array = [];\r\n\r\n particleEffects: cc.ParticleAsset[];\r\n // @property({type: [cc.ParticleSystem], tooltip:\"粒子数组\"})\r\n // particleEffects : Array = [];\r\n\r\n load1 :boolean = false;\r\n load2 :boolean = false;\r\n load3 :boolean = false;\r\n btnName: string = '';\r\n callBack: any;\r\n\r\n \r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad () {\r\n cc.game.setFrameRate(63); \r\n this.changeBg();\r\n\r\n setTimeout(() => {\r\n cc.director.preloadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n // console.error('预加载 HomeScene 场景失败:', err);\r\n return;\r\n }\r\n // console.log('成功预加载 HomeScene 场景');\r\n });\r\n }, 1000);\r\n \r\n }\r\n \r\n changeBg(){\r\n let number = Math.floor(Math.random() * 8) + 1;\r\n const path = 'bg/bg' + number;\r\n cc.resources.load(path, cc.SpriteFrame, (err, spriteFrame: cc.SpriteFrame) => {\r\n if (err) {\r\n console.error('动态加载背景图失败:', err);\r\n return;\r\n } \r\n this.node.getChildByName(\"Game\").getChildByName(\"bg\").getComponent(cc.Sprite).spriteFrame = spriteFrame;\r\n })\r\n }\r\n\r\n loadParticleEffects() {\r\n const path = 'Particle';\r\n cc.resources.loadDir(path, cc.ParticleAsset, (err, assets: cc.ParticleAsset[]) => {\r\n if (err) {\r\n console.error('动态加载粒子特效失败:', err);\r\n return;\r\n }\r\n\r\n this.particleEffects = assets;\r\n this.setParticleSort();\r\n this.load3 = true;\r\n //console.log('粒子特效加载成功,共加载了', this.particleEffects.length, '个粒子特效');\r\n });\r\n }\r\n\r\n setWallPrefabSort() {\r\n const order = ['down', 'downLeft', 'downRight', 'left','right','up','upLeft','upRight'];\r\n this.Wall_Prefab.sort((a, b) => {\r\n const indexA = order.indexOf(a.name);\r\n const indexB = order.indexOf(b.name);\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n \r\n }\r\n\r\n setParticleSort() {\r\n const order = ['top', 'bot', 'rig', 'lef'];\r\n this.particleEffects.sort((a, b) => {\r\n // console.log(a.name.substr(0,3),b.name.substr(0,3));\r\n const indexA = order.indexOf(a.name.substr(0,3));\r\n const indexB = order.indexOf(b.name.substr(0,3));\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n }\r\n\r\n setSort(){\r\n this.Block_Array.sort((a, b) => {\r\n // 从名称中提取数字部分\r\n const numberA = parseInt(a.name.match(/\\d+/)?.[0] || '0', 10);\r\n const numberB = parseInt(b.name.match(/\\d+/)?.[0] || '0', 10);\r\n return numberA - numberB;\r\n });\r\n }\r\n\r\n start () {\r\n\r\n }\r\n\r\n startGame(){\r\n cc.director.loadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n console.error('加载 HomeScene 场景失败:', err);\r\n } else {\r\n // console.log('成功切换到 HomeScene 场景');\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n });\r\n\r\n }\r\n\r\n returnHome(){\r\n if(this.node.getChildByName(\"Pause\").getChildByName(\"btn\").getComponent(\"btnControl\")._touch){\r\n if(MapConroler._instance.gameStart == true){\r\n MiniGameSdk.API.showToast(\"体力值减少\");\r\n cc.fx.GameTool.setUserHealth(-1,(data)=>{\r\n })\r\n let data = {\r\n time:MapConroler._instance.count_Time, \r\n add_Time:MapConroler._instance.add_Time,\r\n result:\"give_up\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\",data);\r\n }\r\n this.node.getChildByName(\"Pause\").getChildByName(\"btn\").getComponent(\"btnControl\").setTouch(false);\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n \r\n });\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n }\r\n }\r\n\r\n\r\n destroyNodesInFrames(nodes: cc.Node[], callback: () => void) {\r\n const BATCH_SIZE = 10; // 每帧销毁的节点数量\r\n let index = 0;\r\n\r\n const destroyBatch = () => {\r\n let count = 0;\r\n while (index < nodes.length && count < BATCH_SIZE) {\r\n const node = nodes[index];\r\n if (node) {\r\n\r\n node.active = false;\r\n }\r\n index++;\r\n count++;\r\n }\r\n\r\n if (index < nodes.length) {\r\n this.scheduleOnce(destroyBatch, 6);\r\n } else {\r\n callback();\r\n }\r\n };\r\n\r\n destroyBatch();\r\n }\r\n\r\n // 改进后的切换场景方法\r\n switchToEmptyScene() {\r\n const allNodes = cc.director.getScene().children;\r\n this.destroyNodesInFrames(allNodes, () => {\r\n cc.director.loadScene(\"HomeScene\");\r\n });\r\n }\r\n\r\n openPause(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\",null);\r\n if(this.pause.getComponent(\"btnControl\")._touch){\r\n this.pause.getComponent(\"btnControl\").setTouch(false);\r\n this.node.getChildByName(\"Pause\").active = true;\r\n MapConroler._instance.pause = true;\r\n }\r\n\r\n }\r\n\r\n closePause(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\",null);\r\n this.pause.getComponent(\"btnControl\").setTouch(true);\r\n this.node.getChildByName(\"Pause\").active = false; \r\n if(MapConroler._instance.node.parent.getChildByName(\"Ice\").active == false){\r\n MapConroler._instance.pause = false;\r\n } \r\n }\r\n\r\n openPropBuy(name){\r\n MapConroler._instance.pause = true;\r\n this.btnName = name;\r\n let propWindow = this.node.getChildByName(\"Game\").getChildByName(\"propWindow\");\r\n propWindow.active = true;\r\n propWindow.getChildByName(\"freeze\").active = false;\r\n propWindow.getChildByName(\"hammer\").active = false;\r\n propWindow.getChildByName(\"magic\").active = false;\r\n propWindow.getChildByName(\"buy_Btn\").getComponent(\"btnControl\").setTouch(true);\r\n propWindow.getChildByName(name).active = true;\r\n }\r\n\r\n clickBtn(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n let propWindow = this.node.getChildByName(\"Game\").getChildByName(\"propWindow\");\r\n if(propWindow.getChildByName(\"buy_Btn\").getComponent(\"btnControl\")._touch){\r\n propWindow.getChildByName(\"buy_Btn\").getComponent(\"btnControl\").setTouch(false);\r\n if(this.btnName == \"freeze\")\r\n MapConroler._instance.buyFreeze();\r\n else if(this.btnName == \"hammer\")\r\n MapConroler._instance.buyHammer();\r\n else if(this.btnName == \"magic\")\r\n MapConroler._instance.buyMagic();\r\n }\r\n }\r\n\r\n\r\n\r\n closePropBuy(){\r\n MapConroler._instance.pause = false;\r\n let freezeBtn = MapConroler._instance.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n let hammerBtn = MapConroler._instance.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n let magicBtn = MapConroler._instance.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if(this.btnName == \"freeze\") freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if(this.btnName == \"hammer\") hammerBtn.getComponent(\"btnControl\").setTouch(true); \r\n else if(this.btnName == \"magic\") magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n\r\n this.node.getChildByName(\"Game\").getChildByName(\"propWindow\").active = false;\r\n }\r\n\r\n update (dt) {\r\n\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\SceneManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport MapConroler from \"./Map\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class SceneManager extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n\r\n @property(cc.Node)\r\n freeze: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n hammer: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n magic_wand: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n pause: cc.Node = null;\r\n\r\n\r\n @property({type: [cc.Prefab], tooltip:\"方块数组\"})\r\n Block_Array : Array = [];\r\n\r\n @property({type: [cc.Prefab], tooltip:\"墙壁数组\"})\r\n Wall_Prefab : Array = [];\r\n\r\n particleEffects: cc.ParticleAsset[];\r\n // @property({type: [cc.ParticleSystem], tooltip:\"粒子数组\"})\r\n // particleEffects : Array = [];\r\n\r\n load1 :boolean = false;\r\n load2 :boolean = false;\r\n load3 :boolean = false;\r\n btnName: string = '';\r\n callBack: any;\r\n\r\n \r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad () {\r\n cc.game.setFrameRate(63); \r\n this.changeBg();\r\n\r\n setTimeout(() => {\r\n cc.director.preloadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n // console.error('预加载 HomeScene 场景失败:', err);\r\n return;\r\n }\r\n // console.log('成功预加载 HomeScene 场景');\r\n });\r\n }, 1000);\r\n \r\n }\r\n \r\n changeBg(){\r\n let number = Math.floor(Math.random() * 8) + 1;\r\n const path = 'bg/bg' + number;\r\n cc.resources.load(path, cc.SpriteFrame, (err, spriteFrame: cc.SpriteFrame) => {\r\n if (err) {\r\n console.error('动态加载背景图失败:', err);\r\n return;\r\n } \r\n this.node.getChildByName(\"Game\").getChildByName(\"bg\").getComponent(cc.Sprite).spriteFrame = spriteFrame;\r\n })\r\n }\r\n\r\n loadParticleEffects() {\r\n const path = 'Particle';\r\n cc.resources.loadDir(path, cc.ParticleAsset, (err, assets: cc.ParticleAsset[]) => {\r\n if (err) {\r\n console.error('动态加载粒子特效失败:', err);\r\n return;\r\n }\r\n\r\n this.particleEffects = assets;\r\n this.setParticleSort();\r\n this.load3 = true;\r\n //console.log('粒子特效加载成功,共加载了', this.particleEffects.length, '个粒子特效');\r\n });\r\n }\r\n\r\n setWallPrefabSort() {\r\n const order = ['down', 'downLeft', 'downRight', 'left','right','up','upLeft','upRight'];\r\n this.Wall_Prefab.sort((a, b) => {\r\n const indexA = order.indexOf(a.name);\r\n const indexB = order.indexOf(b.name);\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n \r\n }\r\n\r\n setParticleSort() {\r\n const order = ['top', 'bot', 'rig', 'lef'];\r\n this.particleEffects.sort((a, b) => {\r\n // console.log(a.name.substr(0,3),b.name.substr(0,3));\r\n const indexA = order.indexOf(a.name.substr(0,3));\r\n const indexB = order.indexOf(b.name.substr(0,3));\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n }\r\n\r\n setSort(){\r\n this.Block_Array.sort((a, b) => {\r\n // 从名称中提取数字部分\r\n const numberA = parseInt(a.name.match(/\\d+/)?.[0] || '0', 10);\r\n const numberB = parseInt(b.name.match(/\\d+/)?.[0] || '0', 10);\r\n return numberA - numberB;\r\n });\r\n }\r\n\r\n start () {\r\n\r\n }\r\n\r\n startGame(){\r\n cc.director.loadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n console.error('加载 HomeScene 场景失败:', err);\r\n } else {\r\n // console.log('成功切换到 HomeScene 场景');\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n });\r\n\r\n }\r\n\r\n returnHome(){\r\n if(this.node.getChildByName(\"Pause\").getChildByName(\"btn\").getComponent(\"btnControl\")._touch){\r\n if(MapConroler._instance.gameStart == true){\r\n MiniGameSdk.API.showToast(\"体力值减少\");\r\n cc.fx.GameTool.setUserHealth(-1,(data)=>{\r\n })\r\n if(MapConroler._instance.count_Time){\r\n let count_Time = MapConroler._instance.count_Time;\r\n let add_Time = MapConroler._instance.add_Time;\r\n let data = {\r\n time:count_Time, \r\n add_Time:add_Time,\r\n result:\"give_up\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\",data);\r\n }\r\n }\r\n this.node.getChildByName(\"Pause\").getChildByName(\"btn\").getComponent(\"btnControl\").setTouch(false);\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n \r\n });\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n }\r\n }\r\n\r\n\r\n destroyNodesInFrames(nodes: cc.Node[], callback: () => void) {\r\n const BATCH_SIZE = 10; // 每帧销毁的节点数量\r\n let index = 0;\r\n\r\n const destroyBatch = () => {\r\n let count = 0;\r\n while (index < nodes.length && count < BATCH_SIZE) {\r\n const node = nodes[index];\r\n if (node) {\r\n\r\n node.active = false;\r\n }\r\n index++;\r\n count++;\r\n }\r\n\r\n if (index < nodes.length) {\r\n this.scheduleOnce(destroyBatch, 6);\r\n } else {\r\n callback();\r\n }\r\n };\r\n\r\n destroyBatch();\r\n }\r\n\r\n // 改进后的切换场景方法\r\n switchToEmptyScene() {\r\n const allNodes = cc.director.getScene().children;\r\n this.destroyNodesInFrames(allNodes, () => {\r\n cc.director.loadScene(\"HomeScene\");\r\n });\r\n }\r\n\r\n openPause(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\",null);\r\n if(this.pause.getComponent(\"btnControl\")._touch){\r\n this.pause.getComponent(\"btnControl\").setTouch(false);\r\n this.node.getChildByName(\"Pause\").active = true;\r\n MapConroler._instance.pause = true;\r\n }\r\n\r\n }\r\n\r\n closePause(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\",null);\r\n this.pause.getComponent(\"btnControl\").setTouch(true);\r\n this.node.getChildByName(\"Pause\").active = false; \r\n if(MapConroler._instance.node.parent.getChildByName(\"Ice\").active == false){\r\n MapConroler._instance.pause = false;\r\n } \r\n }\r\n\r\n openPropBuy(name){\r\n MapConroler._instance.pause = true;\r\n this.btnName = name;\r\n let propWindow = this.node.getChildByName(\"Game\").getChildByName(\"propWindow\");\r\n propWindow.active = true;\r\n propWindow.getChildByName(\"freeze\").active = false;\r\n propWindow.getChildByName(\"hammer\").active = false;\r\n propWindow.getChildByName(\"magic\").active = false;\r\n propWindow.getChildByName(\"buy_Btn\").getComponent(\"btnControl\").setTouch(true);\r\n propWindow.getChildByName(name).active = true;\r\n }\r\n\r\n clickBtn(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n let propWindow = this.node.getChildByName(\"Game\").getChildByName(\"propWindow\");\r\n if(propWindow.getChildByName(\"buy_Btn\").getComponent(\"btnControl\")._touch){\r\n propWindow.getChildByName(\"buy_Btn\").getComponent(\"btnControl\").setTouch(false);\r\n if(this.btnName == \"freeze\")\r\n MapConroler._instance.buyFreeze();\r\n else if(this.btnName == \"hammer\")\r\n MapConroler._instance.buyHammer();\r\n else if(this.btnName == \"magic\")\r\n MapConroler._instance.buyMagic();\r\n }\r\n }\r\n\r\n\r\n\r\n closePropBuy(){\r\n MapConroler._instance.pause = false;\r\n let freezeBtn = MapConroler._instance.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n let hammerBtn = MapConroler._instance.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n let magicBtn = MapConroler._instance.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if(this.btnName == \"freeze\") freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if(this.btnName == \"hammer\") hammerBtn.getComponent(\"btnControl\").setTouch(true); \r\n else if(this.btnName == \"magic\") magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n\r\n this.node.getChildByName(\"Game\").getChildByName(\"propWindow\").active = false;\r\n }\r\n\r\n update (dt) {\r\n\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/32/322ab075-1404-4bd4-89a9-f9e530153a9b.json b/library/imports/82/82bc9160-309d-4c6b-9895-5c0de13783c2.json similarity index 72% rename from library/imports/32/322ab075-1404-4bd4-89a9-f9e530153a9b.json rename to library/imports/82/82bc9160-309d-4c6b-9895-5c0de13783c2.json index 7df0fc1..8395c15 100644 --- a/library/imports/32/322ab075-1404-4bd4-89a9-f9e530153a9b.json +++ b/library/imports/82/82bc9160-309d-4c6b-9895-5c0de13783c2.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_19", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 679, 1456, diff --git a/library/imports/86/865e12b4-8506-4026-ab52-9c8421100cc4.json b/library/imports/86/865e12b4-8506-4026-ab52-9c8421100cc4.json deleted file mode 100644 index 47271fa..0000000 --- a/library/imports/86/865e12b4-8506-4026-ab52-9c8421100cc4.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "wall3", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1158, - 340, - 138, - 146 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 138, - 146 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/86/86d1493b-efcb-4010-8f9e-fe17d9950ed2.json b/library/imports/86/86d1493b-efcb-4010-8f9e-fe17d9950ed2.json deleted file mode 100644 index 5a05f6c..0000000 --- a/library/imports/86/86d1493b-efcb-4010-8f9e-fe17d9950ed2.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "7down1", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 861, - 565, - 122, - 46 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 122, - 46 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/86/86f338ab-4874-40d7-ac5e-06e2bf339c6c.json b/library/imports/86/86f338ab-4874-40d7-ac5e-06e2bf339c6c.json deleted file mode 100644 index 7620cce..0000000 --- a/library/imports/86/86f338ab-4874-40d7-ac5e-06e2bf339c6c.json +++ /dev/null @@ -1,772 +0,0 @@ -{ - "__type__": "sp.SkeletonData", - "_name": "mofabang_texiao", - "_objFlags": 0, - "_native": "", - "_skeletonJson": { - "skeleton": { - "hash": "KwnUpLoFTPi0z5vmLJV6Z4zmnmE", - "spine": "3.8.99", - "x": -152.76, - "y": -158.93, - "width": 316.61, - "height": 310, - "images": "", - "audio": "C:\\Users\\EDY\\Desktop\\common\\battle\\特效\\500210_skill1" - }, - "bones": [ - { - "name": "root" - }, - { - "name": "all", - "parent": "root" - }, - { - "name": "shifa", - "parent": "all", - "scaleX": 1.5, - "scaleY": 1.5 - }, - { - "name": "chixu", - "parent": "shifa" - }, - { - "name": "chixu1", - "parent": "chixu" - }, - { - "name": "chixu2", - "parent": "chixu", - "scaleX": -1 - }, - { - "name": "bone", - "parent": "root", - "x": 0.19, - "y": -0.13 - }, - { - "name": "bone2", - "parent": "root", - "x": -2.4, - "y": -1.65 - }, - { - "name": "bone3", - "parent": "root", - "x": -2.4, - "y": -1.65 - }, - { - "name": "bone4", - "parent": "root", - "x": -2.4, - "y": -1.65 - }, - { - "name": "bone5", - "parent": "root", - "x": -2.4, - "y": -1.65 - }, - { - "name": "bone6", - "parent": "root", - "x": -2.4, - "y": -1.65 - }, - { - "name": "bone7", - "parent": "root", - "x": -2.4, - "y": -1.65 - }, - { - "name": "bone8", - "parent": "root", - "x": -2.4, - "y": -1.65 - } - ], - "slots": [ - { - "name": "images/effects/bg", - "bone": "root" - }, - { - "name": "images/effects/chixu/chixu_0", - "bone": "chixu2", - "color": "d120a1ca", - "blend": "additive" - }, - { - "name": "images/effects/微信图片_20250515181822", - "bone": "bone", - "attachment": "images/effects/微信图片_20250515181822" - }, - { - "name": "images/effects/chixu/chixu_00", - "bone": "chixu1", - "blend": "additive" - }, - { - "name": "images/effects/huiguang", - "bone": "all", - "attachment": "images/effects/huiguang", - "blend": "additive" - }, - { - "name": "images/effects/guangdian", - "bone": "bone2", - "attachment": "images/effects/guangdian", - "blend": "additive" - }, - { - "name": "images/effects/guangdian2", - "bone": "bone3", - "attachment": "images/effects/guangdian", - "blend": "additive" - }, - { - "name": "images/effects/guangdian4", - "bone": "bone5", - "attachment": "images/effects/guangdian", - "blend": "additive" - }, - { - "name": "images/effects/guangdian7", - "bone": "bone8", - "attachment": "images/effects/guangdian", - "blend": "additive" - }, - { - "name": "images/effects/guangdian5", - "bone": "bone6", - "attachment": "images/effects/guangdian", - "blend": "additive" - }, - { - "name": "images/effects/guangdian3", - "bone": "bone4", - "attachment": "images/effects/guangdian", - "blend": "additive" - }, - { - "name": "images/effects/guangdian6", - "bone": "bone7", - "attachment": "images/effects/guangdian", - "blend": "additive" - } - ], - "skins": [ - { - "name": "default", - "attachments": { - "images/effects/chixu/chixu_0": { - "images/effects/chixu/chixu_00": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_01": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_02": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_03": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_04": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_05": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_06": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_07": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_08": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_09": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_10": { - "width": 200, - "height": 200 - } - }, - "images/effects/chixu/chixu_00": { - "images/effects/chixu/chixu_00": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_01": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_02": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_03": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_04": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_05": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_06": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_07": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_08": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_09": { - "width": 200, - "height": 200 - }, - "images/effects/chixu/chixu_10": { - "width": 200, - "height": 200 - } - }, - "images/effects/guangdian": { - "images/effects/guangdian": { - "x": -0.53, - "scaleX": 2, - "scaleY": 2, - "width": 5, - "height": 5 - } - }, - "images/effects/guangdian2": { - "images/effects/guangdian": { - "x": -0.53, - "scaleX": 2, - "scaleY": 2, - "width": 5, - "height": 5 - } - }, - "images/effects/guangdian3": { - "images/effects/guangdian": { - "x": -0.53, - "scaleX": 2, - "scaleY": 2, - "width": 5, - "height": 5 - } - }, - "images/effects/guangdian4": { - "images/effects/guangdian": { - "x": -0.53, - "scaleX": 2, - "scaleY": 2, - "width": 5, - "height": 5 - } - }, - "images/effects/guangdian5": { - "images/effects/guangdian": { - "x": -0.53, - "scaleX": 2, - "scaleY": 2, - "width": 5, - "height": 5 - } - }, - "images/effects/guangdian6": { - "images/effects/guangdian": { - "x": -0.53, - "scaleX": 2, - "scaleY": 2, - "width": 5, - "height": 5 - } - }, - "images/effects/guangdian7": { - "images/effects/guangdian": { - "x": -0.53, - "scaleX": 2, - "scaleY": 2, - "width": 5, - "height": 5 - } - }, - "images/effects/huiguang": { - "images/effects/huiguang": { - "x": 2.74, - "y": -3.93, - "rotation": 180, - "width": 311, - "height": 310 - } - }, - "images/effects/微信图片_20250515181822": { - "images/effects/微信图片_20250515181822": { - "x": 36.11, - "y": -31.15, - "scaleX": 2, - "scaleY": 2, - "rotation": 76.63, - "width": 93, - "height": 109 - } - } - } - } - ], - "animations": { - "play": { - "slots": { - "images/effects/chixu/chixu_0": { - "attachment": [ - { - "time": 0.1333, - "name": "images/effects/chixu/chixu_00" - }, - { - "time": 0.2, - "name": "images/effects/chixu/chixu_01" - }, - { - "time": 0.2667, - "name": "images/effects/chixu/chixu_02" - }, - { - "time": 0.3333, - "name": "images/effects/chixu/chixu_03" - }, - { - "time": 0.4, - "name": "images/effects/chixu/chixu_04" - }, - { - "time": 0.4667, - "name": "images/effects/chixu/chixu_05" - }, - { - "time": 0.5333, - "name": "images/effects/chixu/chixu_06" - }, - { - "time": 0.6, - "name": "images/effects/chixu/chixu_07" - }, - { - "time": 0.6667, - "name": "images/effects/chixu/chixu_08" - }, - { - "time": 0.7333, - "name": "images/effects/chixu/chixu_09" - }, - { - "time": 0.8, - "name": "images/effects/chixu/chixu_10" - }, - { - "time": 0.8667, - "name": null - } - ] - }, - "images/effects/chixu/chixu_00": { - "attachment": [ - { - "name": "images/effects/chixu/chixu_06" - }, - { - "time": 0.0667, - "name": "images/effects/chixu/chixu_07" - }, - { - "time": 0.1333, - "name": "images/effects/chixu/chixu_08" - }, - { - "time": 0.2, - "name": "images/effects/chixu/chixu_09" - }, - { - "time": 0.2667, - "name": "images/effects/chixu/chixu_10" - }, - { - "time": 0.3333, - "name": null - }, - { - "time": 0.6, - "name": "images/effects/chixu/chixu_00" - }, - { - "time": 0.6667, - "name": "images/effects/chixu/chixu_01" - }, - { - "time": 0.7333, - "name": "images/effects/chixu/chixu_02" - }, - { - "time": 0.8, - "name": "images/effects/chixu/chixu_03" - }, - { - "time": 0.8667, - "name": "images/effects/chixu/chixu_04" - }, - { - "time": 0.9333, - "name": "images/effects/chixu/chixu_05" - } - ] - }, - "images/effects/guangdian": { - "color": [ - { - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.1333, - "color": "ffffff00" - }, - { - "time": 0.1667, - "color": "ffffffff" - }, - { - "time": 0.2667, - "color": "ffffff00" - }, - { - "time": 0.3667, - "color": "ffffffed" - }, - { - "time": 0.4333, - "color": "fffffff5" - }, - { - "time": 0.5333, - "color": "ffffff33" - }, - { - "time": 0.5667, - "color": "ffffffff", - "curve": "stepped" - }, - { - "time": 0.6667, - "color": "ffffffff" - }, - { - "time": 0.8333, - "color": "ffffff00" - } - ] - }, - "images/effects/guangdian2": { - "color": [ - { - "time": 0.3667, - "color": "ffffffff" - }, - { - "time": 0.5333, - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.9, - "color": "ffffff00" - }, - { - "time": 0.9333, - "color": "ffffffff" - } - ] - }, - "images/effects/guangdian3": { - "color": [ - { - "time": 0.2333, - "color": "ffffffff" - }, - { - "time": 0.4, - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.6333, - "color": "ffffff00" - }, - { - "time": 0.6667, - "color": "ffffffff" - } - ] - }, - "images/effects/guangdian4": { - "color": [ - { - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.2, - "color": "ffffff00" - }, - { - "time": 0.2333, - "color": "ffffffff", - "curve": "stepped" - }, - { - "time": 0.7333, - "color": "ffffffff" - }, - { - "time": 0.9, - "color": "ffffff00" - } - ] - }, - "images/effects/guangdian5": { - "color": [ - { - "color": "ffffff00" - }, - { - "time": 0.0333, - "color": "ffffffff", - "curve": "stepped" - }, - { - "time": 0.5333, - "color": "ffffffff" - }, - { - "time": 0.7, - "color": "ffffff00" - } - ] - }, - "images/effects/guangdian6": { - "color": [ - { - "time": 0.2333, - "color": "ffffffff" - }, - { - "time": 0.4, - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.6333, - "color": "ffffff00" - }, - { - "time": 0.6667, - "color": "ffffffff" - } - ] - }, - "images/effects/guangdian7": { - "color": [ - { - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.1333, - "color": "ffffff00" - }, - { - "time": 0.1667, - "color": "ffffffff", - "curve": "stepped" - }, - { - "time": 0.6667, - "color": "ffffffff" - }, - { - "time": 0.8333, - "color": "ffffff00" - } - ] - }, - "images/effects/huiguang": { - "color": [ - { - "color": "ffffffff" - }, - { - "time": 0.4667, - "color": "ffffff71" - }, - { - "time": 0.9333, - "color": "ffffffff" - } - ] - } - }, - "bones": { - "bone2": { - "translate": [ - { - "time": 0.1667 - }, - { - "time": 0.8333, - "x": 18.29, - "y": 73.14 - } - ] - }, - "bone3": { - "translate": [ - { - "x": 34.13, - "y": -4.63 - }, - { - "time": 0.5333, - "x": 170.66, - "y": -23.16, - "curve": "stepped" - }, - { - "time": 0.8667, - "x": 170.66, - "y": -23.16 - }, - { - "time": 0.9333 - } - ] - }, - "bone4": { - "translate": [ - { - "x": 33.29, - "y": 31.52 - }, - { - "time": 0.4, - "x": -69.48, - "y": -142.62 - }, - { - "time": 0.6667 - }, - { - "time": 0.9333, - "x": 33.29, - "y": 31.52 - } - ] - }, - "bone5": { - "translate": [ - { - "time": 0.2333 - }, - { - "time": 0.9, - "x": -128.62, - "y": -19.54 - } - ] - }, - "bone6": { - "translate": [ - { - "time": 0.0333 - }, - { - "time": 0.7, - "x": -57.7, - "y": 131.91 - } - ] - }, - "bone7": { - "translate": [ - { - "x": 18.08, - "y": 13.84 - }, - { - "time": 0.4, - "x": 98.49, - "y": 94.57 - }, - { - "time": 0.6667 - }, - { - "time": 0.9333, - "x": 18.08, - "y": 13.84 - } - ] - }, - "bone8": { - "translate": [ - { - "time": 0.1667 - }, - { - "time": 0.8333, - "x": 97.32, - "y": 76.27 - } - ] - } - } - } - } - }, - "_atlasText": "\nmofabang_texiao.png\nsize: 1000,1000\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\nimages/effects/chixu/chixu_00\n rotate: false\n xy: 2, 334\n size: 151, 124\n orig: 200, 200\n offset: 12, 44\n index: -1\nimages/effects/chixu/chixu_01\n rotate: true\n xy: 159, 567\n size: 148, 132\n orig: 200, 200\n offset: 12, 37\n index: -1\nimages/effects/chixu/chixu_02\n rotate: false\n xy: 2, 460\n size: 153, 125\n orig: 200, 200\n offset: 15, 37\n index: -1\nimages/effects/chixu/chixu_03\n rotate: false\n xy: 2, 587\n size: 155, 128\n orig: 200, 200\n offset: 15, 36\n index: -1\nimages/effects/chixu/chixu_04\n rotate: true\n xy: 157, 416\n size: 149, 126\n orig: 200, 200\n offset: 21, 36\n index: -1\nimages/effects/chixu/chixu_05\n rotate: true\n xy: 155, 265\n size: 149, 123\n orig: 200, 200\n offset: 21, 36\n index: -1\nimages/effects/chixu/chixu_06\n rotate: false\n xy: 148, 143\n size: 147, 120\n orig: 200, 200\n offset: 23, 38\n index: -1\nimages/effects/chixu/chixu_07\n rotate: true\n xy: 2, 61\n size: 145, 119\n orig: 200, 200\n offset: 24, 39\n index: -1\nimages/effects/chixu/chixu_08\n rotate: false\n xy: 2, 208\n size: 144, 124\n orig: 200, 200\n offset: 23, 41\n index: -1\nimages/effects/chixu/chixu_09\n rotate: false\n xy: 123, 23\n size: 140, 118\n orig: 200, 200\n offset: 23, 43\n index: -1\nimages/effects/chixu/chixu_10\n rotate: true\n xy: 265, 2\n size: 139, 117\n orig: 200, 200\n offset: 23, 43\n index: -1\nimages/effects/guangdian\n rotate: false\n xy: 2, 54\n size: 5, 5\n orig: 5, 5\n offset: 0, 0\n index: -1\nimages/effects/huiguang\n rotate: false\n xy: 2, 717\n size: 278, 278\n orig: 311, 310\n offset: 17, 16\n index: -1\nimages/effects/微信图片_20250515181822\n rotate: false\n xy: 280, 305\n size: 93, 109\n orig: 93, 109\n offset: 0, 0\n index: -1\n", - "textures": [ - { - "__uuid__": "363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de" - } - ], - "textureNames": [ - "mofabang_texiao.png" - ], - "scale": 1 -} \ No newline at end of file diff --git a/library/imports/88/880acb82-9636-4221-b533-3c9f826c4d9c.json b/library/imports/88/880acb82-9636-4221-b533-3c9f826c4d9c.json deleted file mode 100644 index 454fe60..0000000 --- a/library/imports/88/880acb82-9636-4221-b533-3c9f826c4d9c.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "7color3", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 129, - 332, - 378, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 378, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/88/88a9a994-1d0b-49c1-a081-3f33c864b120.json b/library/imports/88/88a9a994-1d0b-49c1-a081-3f33c864b120.json deleted file mode 100644 index 1abba42..0000000 --- a/library/imports/88/88a9a994-1d0b-49c1-a081-3f33c864b120.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "9color3", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 906, - 135, - 378, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 378, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/88/88cf729e-5501-40cb-9039-36e92ee9c49b.json b/library/imports/88/88cf729e-5501-40cb-9039-36e92ee9c49b.json deleted file mode 100644 index 66aebf2..0000000 --- a/library/imports/88/88cf729e-5501-40cb-9039-36e92ee9c49b.json +++ /dev/null @@ -1,500 +0,0 @@ -{ - "__type__": "sp.SkeletonData", - "_name": "mofabang_baozha", - "_objFlags": 0, - "_native": "", - "_skeletonJson": { - "skeleton": { - "hash": "hZHGx+scAEPxWQrFsM0GBbRcUg0", - "spine": "3.8.99", - "x": -273.93, - "y": -795.48, - "width": 640, - "height": 1136, - "images": "", - "audio": "C:\\Users\\EDY\\Desktop\\common\\battle\\特效\\300970_skill_hit" - }, - "bones": [ - { - "name": "root" - }, - { - "name": "all", - "parent": "root" - }, - { - "name": "hit", - "parent": "all" - }, - { - "name": "hit2", - "parent": "all" - }, - { - "name": "glow", - "parent": "all" - }, - { - "name": "lizi2", - "parent": "root", - "rotation": 90, - "x": 1.13, - "y": -2.39 - } - ], - "slots": [ - { - "name": "images/bg", - "bone": "root" - }, - { - "name": "images/effects/hit/hit_00", - "bone": "hit", - "attachment": "images/effects/hit/hit_00", - "blend": "screen" - }, - { - "name": "images/effects/hit/hit_0", - "bone": "hit2" - }, - { - "name": "images/effects/Glow1", - "bone": "glow", - "blend": "additive" - }, - { - "name": "images/lizi/shoujibaodian_34", - "bone": "lizi2", - "attachment": "images/lizi/shoujibaodian_34", - "blend": "additive" - } - ], - "skins": [ - { - "name": "default", - "attachments": { - "images/effects/Glow1": { - "images/effects/Glow1": { - "width": 256, - "height": 256 - } - }, - "images/effects/hit/hit_0": { - "images/effects/hit/hit_02": { - "width": 400, - "height": 400 - }, - "images/effects/hit/hit_03": { - "width": 400, - "height": 400 - }, - "images/effects/hit/hit_04": { - "width": 400, - "height": 400 - }, - "images/effects/hit/hit_05": { - "width": 400, - "height": 400 - }, - "images/effects/hit/hit_06": { - "width": 400, - "height": 400 - }, - "images/effects/hit/hit_07": { - "width": 400, - "height": 400 - }, - "images/effects/hit/hit_08": { - "width": 400, - "height": 400 - }, - "images/effects/hit/hit_09": { - "width": 400, - "height": 400 - }, - "images/effects/hit/hit_10": { - "width": 400, - "height": 400 - }, - "images/effects/hit/hit_11": { - "width": 400, - "height": 400 - }, - "images/effects/hit/hit_12": { - "width": 400, - "height": 400 - }, - "images/effects/hit/hit_13": { - "width": 400, - "height": 400 - }, - "images/effects/hit/hit_14": { - "width": 1, - "height": 1 - } - }, - "images/effects/hit/hit_00": { - "images/effects/hit/hit_00": { - "width": 400, - "height": 400 - }, - "images/effects/hit/hit_01": { - "width": 400, - "height": 400 - } - }, - "images/lizi/shoujibaodian_34": { - "images/lizi/shoujibaodian_34": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_35": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_36": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_37": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_38": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_39": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_40": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_41": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_42": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_43": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_44": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_45": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_46": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_47": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - }, - "images/lizi/shoujibaodian_48": { - "x": -225.09, - "y": -44.94, - "width": 1136, - "height": 640 - } - } - } - } - ], - "animations": { - "play": { - "slots": { - "images/effects/Glow1": { - "color": [ - { - "time": 0.0333, - "color": "5a05ffff" - }, - { - "time": 0.4667, - "color": "bd00ff00" - } - ], - "attachment": [ - { - "time": 0.0333, - "name": "images/effects/Glow1" - } - ] - }, - "images/effects/hit/hit_0": { - "attachment": [ - { - "time": 0.1333, - "name": "images/effects/hit/hit_02" - }, - { - "time": 0.1667, - "name": "images/effects/hit/hit_03" - }, - { - "time": 0.2, - "name": "images/effects/hit/hit_04" - }, - { - "time": 0.2333, - "name": "images/effects/hit/hit_05" - }, - { - "time": 0.2667, - "name": "images/effects/hit/hit_06" - }, - { - "time": 0.3, - "name": "images/effects/hit/hit_07" - }, - { - "time": 0.3333, - "name": "images/effects/hit/hit_08" - }, - { - "time": 0.3667, - "name": "images/effects/hit/hit_09" - }, - { - "time": 0.4, - "name": "images/effects/hit/hit_10" - }, - { - "time": 0.4333, - "name": "images/effects/hit/hit_11" - }, - { - "time": 0.4667, - "name": "images/effects/hit/hit_12" - }, - { - "time": 0.5, - "name": "images/effects/hit/hit_13" - }, - { - "time": 0.5333, - "name": "images/effects/hit/hit_14" - }, - { - "time": 0.5667, - "name": null - } - ] - }, - "images/effects/hit/hit_00": { - "color": [ - { - "color": "ffffff00" - }, - { - "time": 0.0333, - "color": "ffffffff" - } - ], - "attachment": [ - { - "time": 0.0667, - "name": "images/effects/hit/hit_01" - }, - { - "time": 0.1, - "name": null - } - ] - }, - "images/lizi/shoujibaodian_34": { - "color": [ - { - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.3333, - "color": "ffffff00" - }, - { - "time": 0.3667, - "color": "ffffffff", - "curve": "stepped" - }, - { - "time": 1.3, - "color": "ffffffff" - }, - { - "time": 1.3667, - "color": "ffffff00" - } - ], - "attachment": [ - { - "time": 0.4333, - "name": "images/lizi/shoujibaodian_35" - }, - { - "time": 0.5, - "name": "images/lizi/shoujibaodian_36" - }, - { - "time": 0.5667, - "name": "images/lizi/shoujibaodian_37" - }, - { - "time": 0.6333, - "name": "images/lizi/shoujibaodian_38" - }, - { - "time": 0.7, - "name": "images/lizi/shoujibaodian_39" - }, - { - "time": 0.7667, - "name": "images/lizi/shoujibaodian_40" - }, - { - "time": 0.8333, - "name": "images/lizi/shoujibaodian_41" - }, - { - "time": 0.9, - "name": "images/lizi/shoujibaodian_42" - }, - { - "time": 0.9667, - "name": "images/lizi/shoujibaodian_43" - }, - { - "time": 1.0333, - "name": "images/lizi/shoujibaodian_44" - }, - { - "time": 1.1, - "name": "images/lizi/shoujibaodian_45" - }, - { - "time": 1.1667, - "name": "images/lizi/shoujibaodian_46" - }, - { - "time": 1.2333, - "name": "images/lizi/shoujibaodian_47" - }, - { - "time": 1.3, - "name": "images/lizi/shoujibaodian_48" - } - ] - } - }, - "bones": { - "glow": { - "scale": [ - { - "time": 0.0333, - "x": 0.5, - "y": 0.5 - }, - { - "time": 0.1333, - "x": 2, - "y": 2 - }, - { - "time": 0.4667, - "x": 3, - "y": 3 - } - ] - }, - "hit": { - "scale": [ - { - "time": 0.0333, - "x": 1.5, - "y": 1.5 - } - ] - }, - "lizi2": { - "translate": [ - { - "time": 0.3667 - }, - { - "time": 0.7667, - "y": 6 - }, - { - "time": 1.3, - "y": -20.01 - } - ], - "scale": [ - { - "x": 0.7, - "y": 0.7, - "curve": "stepped" - }, - { - "time": 0.3667, - "x": 0.7, - "y": 0.7 - }, - { - "time": 1.3 - } - ] - } - } - } - } - }, - "_atlasText": "\nmofabang_baozha.png\nsize: 2040,2040\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\nimages/effects/Glow1\n rotate: false\n xy: 862, 1516\n size: 216, 216\n orig: 256, 256\n offset: 20, 19\n index: -1\nimages/effects/hit/hit_00\n rotate: true\n xy: 1379, 1762\n size: 276, 272\n orig: 400, 400\n offset: 61, 64\n index: -1\nimages/effects/hit/hit_01\n rotate: false\n xy: 1395, 1520\n size: 248, 240\n orig: 400, 400\n offset: 76, 80\n index: -1\nimages/effects/hit/hit_02\n rotate: false\n xy: 2, 1734\n size: 332, 304\n orig: 400, 400\n offset: 39, 51\n index: -1\nimages/effects/hit/hit_03\n rotate: true\n xy: 604, 1726\n size: 312, 252\n orig: 400, 400\n offset: 50, 83\n index: -1\nimages/effects/hit/hit_04\n rotate: false\n xy: 270, 1524\n size: 272, 208\n orig: 400, 400\n offset: 78, 108\n index: -1\nimages/effects/hit/hit_05\n rotate: false\n xy: 2, 1512\n size: 266, 220\n orig: 400, 400\n offset: 79, 103\n index: -1\nimages/effects/hit/hit_06\n rotate: false\n xy: 1117, 1496\n size: 276, 240\n orig: 400, 400\n offset: 73, 94\n index: -1\nimages/effects/hit/hit_07\n rotate: true\n xy: 1117, 1738\n size: 300, 260\n orig: 400, 400\n offset: 67, 85\n index: -1\nimages/effects/hit/hit_08\n rotate: true\n xy: 858, 1734\n size: 304, 257\n orig: 400, 400\n offset: 69, 82\n index: -1\nimages/effects/hit/hit_09\n rotate: true\n xy: 336, 1738\n size: 300, 266\n orig: 400, 400\n offset: 70, 74\n index: -1\nimages/effects/hit/hit_10\n rotate: true\n xy: 1645, 1380\n size: 162, 230\n orig: 400, 400\n offset: 95, 114\n index: -1\nimages/effects/hit/hit_11\n rotate: false\n xy: 1148, 1399\n size: 101, 95\n orig: 400, 400\n offset: 99, 119\n index: -1\nimages/effects/hit/hit_12\n rotate: false\n xy: 2037, 2037\n size: 1, 1\n orig: 400, 400\n offset: 198, 213\n index: -1\nimages/lizi/shoujibaodian_34\n rotate: false\n xy: 1653, 1719\n size: 211, 319\n orig: 1136, 640\n offset: 696, 201\n index: -1\nimages/lizi/shoujibaodian_35\n rotate: true\n xy: 544, 1546\n size: 178, 316\n orig: 1136, 640\n offset: 694, 201\n index: -1\nimages/lizi/shoujibaodian_36\n rotate: true\n xy: 1645, 1544\n size: 173, 313\n orig: 1136, 640\n offset: 696, 200\n index: -1\nimages/lizi/shoujibaodian_37\n rotate: false\n xy: 1866, 1810\n size: 169, 228\n orig: 1136, 640\n offset: 698, 233\n index: -1\nimages/lizi/shoujibaodian_38\n rotate: true\n xy: 544, 1378\n size: 166, 228\n orig: 1136, 640\n offset: 702, 235\n index: -1\nimages/lizi/shoujibaodian_39\n rotate: true\n xy: 270, 1358\n size: 164, 219\n orig: 1136, 640\n offset: 703, 241\n index: -1\nimages/lizi/shoujibaodian_40\n rotate: true\n xy: 1395, 1361\n size: 157, 208\n orig: 1136, 640\n offset: 710, 249\n index: -1\nimages/lizi/shoujibaodian_41\n rotate: true\n xy: 774, 1396\n size: 118, 189\n orig: 1136, 640\n offset: 749, 266\n index: -1\nimages/lizi/shoujibaodian_42\n rotate: true\n xy: 2, 1430\n size: 80, 187\n orig: 1136, 640\n offset: 751, 268\n index: -1\nimages/lizi/shoujibaodian_43\n rotate: true\n xy: 965, 1418\n size: 76, 181\n orig: 1136, 640\n offset: 752, 269\n index: -1\nimages/lizi/shoujibaodian_44\n rotate: false\n xy: 1960, 1665\n size: 72, 143\n orig: 1136, 640\n offset: 753, 305\n index: -1\nimages/lizi/shoujibaodian_45\n rotate: false\n xy: 1960, 1520\n size: 69, 143\n orig: 1136, 640\n offset: 754, 304\n index: -1\nimages/lizi/shoujibaodian_46\n rotate: false\n xy: 1947, 1376\n size: 67, 142\n orig: 1136, 640\n offset: 755, 304\n index: -1\nimages/lizi/shoujibaodian_47\n rotate: false\n xy: 191, 1369\n size: 67, 141\n orig: 1136, 640\n offset: 755, 304\n index: -1\nimages/lizi/shoujibaodian_48\n rotate: false\n xy: 1877, 1400\n size: 68, 142\n orig: 1136, 640\n offset: 754, 303\n index: -1\n", - "textures": [ - { - "__uuid__": "ff0d5773-ca66-4087-b1b7-4777121d85be" - } - ], - "textureNames": [ - "mofabang_baozha.png" - ], - "scale": 1 -} \ No newline at end of file diff --git a/library/imports/89/894c0780-7f4a-4a9f-ad92-de3471abb5c5.json b/library/imports/89/894c0780-7f4a-4a9f-ad92-de3471abb5c5.json deleted file mode 100644 index 885efeb..0000000 --- a/library/imports/89/894c0780-7f4a-4a9f-ad92-de3471abb5c5.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "shu_zl2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 64, - 659, - 40, - 10 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 40, - 10 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/8b/8b6fd107-6aa0-4523-8fd3-c0f064524b0c.json b/library/imports/8b/8b6fd107-6aa0-4523-8fd3-c0f064524b0c.json deleted file mode 100644 index d06f832..0000000 --- a/library/imports/8b/8b6fd107-6aa0-4523-8fd3-c0f064524b0c.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "__type__": "cc.SpriteAtlas", - "_name": "freeze.plist", - "_objFlags": 0, - "_native": "", - "_spriteFrames": { - "ice_0": { - "__uuid__": "e3336135-ade0-4e73-813e-893b3f1a02b5" - }, - "ice_1": { - "__uuid__": "fa3cd527-294e-429f-b7ba-22662775fe0f" - }, - "ice_10": { - "__uuid__": "65b2a758-2670-48ed-a008-328544dcd575" - }, - "ice_11": { - "__uuid__": "6e0fdf37-69be-4dbe-9d09-5c4f2e678b4a" - }, - "ice_12": { - "__uuid__": "c77015b4-f5c1-4179-a0e9-5d2cd6d6b9e5" - }, - "ice_13": { - "__uuid__": "b4b91baf-30a5-4a20-9084-ef6e355c06f7" - }, - "ice_14": { - "__uuid__": "b25c96cd-057b-4fc0-aa62-21f11068ecdd" - }, - "ice_15": { - "__uuid__": "2764a9d6-9cd2-4e21-b697-d77664324940" - }, - "ice_16": { - "__uuid__": "bd4060ea-d0db-4bdb-9561-d63d034e7d01" - }, - "ice_17": { - "__uuid__": "6efd9b9f-19a1-4c83-8116-5b15cc775967" - }, - "ice_18": { - "__uuid__": "2661e9df-d4da-4dcc-ac8d-cb16fcad7ea8" - }, - "ice_19": { - "__uuid__": "21918f8d-57fb-4d73-992d-e58af9bf91ae" - }, - "ice_2": { - "__uuid__": "b637d46b-64fc-4f24-b0bf-ec3d740a1180" - }, - "ice_20": { - "__uuid__": "9cc4e23c-bc99-4daf-a03b-4335ebf6c167" - }, - "ice_21": { - "__uuid__": "49aa5f88-cb13-4a14-ace5-e36d0d5ad9ae" - }, - "ice_22": { - "__uuid__": "0286d77f-e962-4050-8a77-250f4a3a139c" - }, - "ice_3": { - "__uuid__": "510b87b7-3ed2-4bb5-8c02-be013ea1f9bc" - }, - "ice_4": { - "__uuid__": "486555ef-ae94-4faa-ad96-d807968d9d3a" - }, - "ice_5": { - "__uuid__": "d7c81651-f2a3-4da1-aad2-f48c9773d1aa" - }, - "ice_6": { - "__uuid__": "07c5118d-73f4-4415-b80a-a94eb9b538c0" - }, - "ice_7": { - "__uuid__": "f263ce47-c0cb-4cc3-a8cc-2ca91555a86d" - }, - "ice_8": { - "__uuid__": "59a70589-9d42-4065-9a9f-5dfc15edd0ed" - }, - "ice_9": { - "__uuid__": "3197674e-141b-4857-b39c-97d5b2e64782" - }, - "xz_0": { - "__uuid__": "d5603a7d-2064-4cfd-aad9-9216b171f1fd" - }, - "xz_1": { - "__uuid__": "d7251c98-6e8e-4a25-a9b8-f679b5358540" - }, - "xz_10": { - "__uuid__": "34a7a697-bfd3-414f-8443-b782bcaef077" - }, - "xz_11": { - "__uuid__": "cd5dc1b6-8181-4a84-9e92-5f391b5d08aa" - }, - "xz_12": { - "__uuid__": "c6b24109-dc9a-475e-8587-24b1c1ce211c" - }, - "xz_13": { - "__uuid__": "515f65de-054a-4a3e-a49b-f04c522334c6" - }, - "xz_14": { - "__uuid__": "bbe9ff36-9442-4582-94b6-18c80b98a88b" - }, - "xz_15": { - "__uuid__": "bf0f6fdf-2cb6-4a4d-80b6-9bd2f2a70f64" - }, - "xz_16": { - "__uuid__": "9bc2635a-fd18-4c29-96f1-5bdf2e3ca994" - }, - "xz_17": { - "__uuid__": "85831139-37a3-419d-8ae2-63e3de280069" - }, - "xz_18": { - "__uuid__": "2b68a266-8696-4acc-93a1-41067ad499f6" - }, - "xz_19": { - "__uuid__": "322ab075-1404-4bd4-89a9-f9e530153a9b" - }, - "xz_2": { - "__uuid__": "b189fafa-f688-4ba2-a11b-839d37caaa2d" - }, - "xz_20": { - "__uuid__": "53ebd7d6-1d1b-4d3a-a058-a18bfe3bd426" - }, - "xz_21": { - "__uuid__": "9e765f43-6a24-4439-af86-ff266b9c28ab" - }, - "xz_22": { - "__uuid__": "d3ded0a3-0ec1-4f0e-8e62-e090263e06a3" - }, - "xz_3": { - "__uuid__": "0a3badcc-62cb-40cb-8f95-0a7818c08c99" - }, - "xz_4": { - "__uuid__": "f77686ab-3aef-4ae9-8a04-55c03cf2b689" - }, - "xz_5": { - "__uuid__": "5342450a-68a2-4c7d-b26a-327243e82e67" - }, - "xz_6": { - "__uuid__": "9b0ac44e-5295-470f-87c1-28064efef2c1" - }, - "xz_7": { - "__uuid__": "8808dcaf-1158-4df2-8eff-725d85cf63f1" - }, - "xz_8": { - "__uuid__": "7f4466e7-8e5e-41f0-9a31-37b2b86e8066" - }, - "xz_9": { - "__uuid__": "25e0fb3a-394e-42ae-b792-2748f15d82c9" - } - } -} \ No newline at end of file diff --git a/library/imports/8b/8b82f85e-df4a-4b5f-b6a1-697cf5633026.json b/library/imports/8b/8b82f85e-df4a-4b5f-b6a1-697cf5633026.json deleted file mode 100644 index 9e9432b..0000000 --- a/library/imports/8b/8b82f85e-df4a-4b5f-b6a1-697cf5633026.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "5down1", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 283, - 122, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 122, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/48/486555ef-ae94-4faa-ad96-d807968d9d3a.json b/library/imports/8c/8c55e356-f4bb-4483-af03-f498c36f6639.json similarity index 73% rename from library/imports/48/486555ef-ae94-4faa-ad96-d807968d9d3a.json rename to library/imports/8c/8c55e356-f4bb-4483-af03-f498c36f6639.json index 1ee3c71..87842d6 100644 --- a/library/imports/48/486555ef-ae94-4faa-ad96-d807968d9d3a.json +++ b/library/imports/8c/8c55e356-f4bb-4483-af03-f498c36f6639.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_4", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1207, 1873, diff --git a/library/imports/90/90a9eb51-3d7f-4094-add0-ad20f9379337.json b/library/imports/90/90a9eb51-3d7f-4094-add0-ad20f9379337.json index 21882cb..c2e9322 100644 --- a/library/imports/90/90a9eb51-3d7f-4094-add0-ad20f9379337.json +++ b/library/imports/90/90a9eb51-3d7f-4094-add0-ad20f9379337.json @@ -782,7 +782,7 @@ "heng": 3, "shu": 1, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/90/90d2bb3b-aeca-4ea8-9afa-c2ae9871791b.json b/library/imports/90/90d2bb3b-aeca-4ea8-9afa-c2ae9871791b.json deleted file mode 100644 index 667ddd3..0000000 --- a/library/imports/90/90d2bb3b-aeca-4ea8-9afa-c2ae9871791b.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "shu_zl2_2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1295, - 1, - 32, - 114 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 32, - 114 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/90/90e7427b-50fd-408a-a069-4c5420dfe5c9.json b/library/imports/90/90e7427b-50fd-408a-a069-4c5420dfe5c9.json deleted file mode 100644 index d6815da..0000000 --- a/library/imports/90/90e7427b-50fd-408a-a069-4c5420dfe5c9.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "6down4", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 860, - 330, - 45, - 124 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 124 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/91/917a86f2-c688-4cf5-9568-37632e1964b1.json b/library/imports/91/917a86f2-c688-4cf5-9568-37632e1964b1.json deleted file mode 100644 index 4fa1853..0000000 --- a/library/imports/91/917a86f2-c688-4cf5-9568-37632e1964b1.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "1color6", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1, - 390, - 61, - 387 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 387 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/92/92dfa35c-14f5-48b7-8f57-583c7a23d434.json b/library/imports/92/92dfa35c-14f5-48b7-8f57-583c7a23d434.json index bafe9d8..5dd1895 100644 --- a/library/imports/92/92dfa35c-14f5-48b7-8f57-583c7a23d434.json +++ b/library/imports/92/92dfa35c-14f5-48b7-8f57-583c7a23d434.json @@ -782,7 +782,7 @@ "heng": 1, "shu": 1, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/92/92f23179-46e7-4f6c-8d1f-3b68910937db.json b/library/imports/92/92f23179-46e7-4f6c-8d1f-3b68910937db.json index 19b7a1e..06e27ec 100644 --- a/library/imports/92/92f23179-46e7-4f6c-8d1f-3b68910937db.json +++ b/library/imports/92/92f23179-46e7-4f6c-8d1f-3b68910937db.json @@ -782,7 +782,7 @@ "heng": 2, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/97/97459c20-5c45-444d-b533-f50d2406fe43.atlas b/library/imports/97/97459c20-5c45-444d-b533-f50d2406fe43.atlas deleted file mode 100644 index 6ef4747..0000000 --- a/library/imports/97/97459c20-5c45-444d-b533-f50d2406fe43.atlas +++ /dev/null @@ -1,209 +0,0 @@ - -mofabang_baozha.png -size: 2040,2040 -format: RGBA8888 -filter: Linear,Linear -repeat: none -images/effects/Glow1 - rotate: false - xy: 862, 1516 - size: 216, 216 - orig: 256, 256 - offset: 20, 19 - index: -1 -images/effects/hit/hit_00 - rotate: true - xy: 1379, 1762 - size: 276, 272 - orig: 400, 400 - offset: 61, 64 - index: -1 -images/effects/hit/hit_01 - rotate: false - xy: 1395, 1520 - size: 248, 240 - orig: 400, 400 - offset: 76, 80 - index: -1 -images/effects/hit/hit_02 - rotate: false - xy: 2, 1734 - size: 332, 304 - orig: 400, 400 - offset: 39, 51 - index: -1 -images/effects/hit/hit_03 - rotate: true - xy: 604, 1726 - size: 312, 252 - orig: 400, 400 - offset: 50, 83 - index: -1 -images/effects/hit/hit_04 - rotate: false - xy: 270, 1524 - size: 272, 208 - orig: 400, 400 - offset: 78, 108 - index: -1 -images/effects/hit/hit_05 - rotate: false - xy: 2, 1512 - size: 266, 220 - orig: 400, 400 - offset: 79, 103 - index: -1 -images/effects/hit/hit_06 - rotate: false - xy: 1117, 1496 - size: 276, 240 - orig: 400, 400 - offset: 73, 94 - index: -1 -images/effects/hit/hit_07 - rotate: true - xy: 1117, 1738 - size: 300, 260 - orig: 400, 400 - offset: 67, 85 - index: -1 -images/effects/hit/hit_08 - rotate: true - xy: 858, 1734 - size: 304, 257 - orig: 400, 400 - offset: 69, 82 - index: -1 -images/effects/hit/hit_09 - rotate: true - xy: 336, 1738 - size: 300, 266 - orig: 400, 400 - offset: 70, 74 - index: -1 -images/effects/hit/hit_10 - rotate: true - xy: 1645, 1380 - size: 162, 230 - orig: 400, 400 - offset: 95, 114 - index: -1 -images/effects/hit/hit_11 - rotate: false - xy: 1148, 1399 - size: 101, 95 - orig: 400, 400 - offset: 99, 119 - index: -1 -images/effects/hit/hit_12 - rotate: false - xy: 2037, 2037 - size: 1, 1 - orig: 400, 400 - offset: 198, 213 - index: -1 -images/lizi/shoujibaodian_34 - rotate: false - xy: 1653, 1719 - size: 211, 319 - orig: 1136, 640 - offset: 696, 201 - index: -1 -images/lizi/shoujibaodian_35 - rotate: true - xy: 544, 1546 - size: 178, 316 - orig: 1136, 640 - offset: 694, 201 - index: -1 -images/lizi/shoujibaodian_36 - rotate: true - xy: 1645, 1544 - size: 173, 313 - orig: 1136, 640 - offset: 696, 200 - index: -1 -images/lizi/shoujibaodian_37 - rotate: false - xy: 1866, 1810 - size: 169, 228 - orig: 1136, 640 - offset: 698, 233 - index: -1 -images/lizi/shoujibaodian_38 - rotate: true - xy: 544, 1378 - size: 166, 228 - orig: 1136, 640 - offset: 702, 235 - index: -1 -images/lizi/shoujibaodian_39 - rotate: true - xy: 270, 1358 - size: 164, 219 - orig: 1136, 640 - offset: 703, 241 - index: -1 -images/lizi/shoujibaodian_40 - rotate: true - xy: 1395, 1361 - size: 157, 208 - orig: 1136, 640 - offset: 710, 249 - index: -1 -images/lizi/shoujibaodian_41 - rotate: true - xy: 774, 1396 - size: 118, 189 - orig: 1136, 640 - offset: 749, 266 - index: -1 -images/lizi/shoujibaodian_42 - rotate: true - xy: 2, 1430 - size: 80, 187 - orig: 1136, 640 - offset: 751, 268 - index: -1 -images/lizi/shoujibaodian_43 - rotate: true - xy: 965, 1418 - size: 76, 181 - orig: 1136, 640 - offset: 752, 269 - index: -1 -images/lizi/shoujibaodian_44 - rotate: false - xy: 1960, 1665 - size: 72, 143 - orig: 1136, 640 - offset: 753, 305 - index: -1 -images/lizi/shoujibaodian_45 - rotate: false - xy: 1960, 1520 - size: 69, 143 - orig: 1136, 640 - offset: 754, 304 - index: -1 -images/lizi/shoujibaodian_46 - rotate: false - xy: 1947, 1376 - size: 67, 142 - orig: 1136, 640 - offset: 755, 304 - index: -1 -images/lizi/shoujibaodian_47 - rotate: false - xy: 191, 1369 - size: 67, 141 - orig: 1136, 640 - offset: 755, 304 - index: -1 -images/lizi/shoujibaodian_48 - rotate: false - xy: 1877, 1400 - size: 68, 142 - orig: 1136, 640 - offset: 754, 303 - index: -1 diff --git a/library/imports/97/97459c20-5c45-444d-b533-f50d2406fe43.json b/library/imports/97/97459c20-5c45-444d-b533-f50d2406fe43.json deleted file mode 100644 index 9dc203b..0000000 --- a/library/imports/97/97459c20-5c45-444d-b533-f50d2406fe43.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "__type__": "cc.Asset", - "_name": "mofabang_baozha", - "_objFlags": 0, - "_native": ".atlas" -} \ No newline at end of file diff --git a/library/imports/9a/9ac5c83d-af36-4eb8-993a-3eb5ee4b698f.json b/library/imports/9a/9ac5c83d-af36-4eb8-993a-3eb5ee4b698f.json deleted file mode 100644 index 62fd944..0000000 --- a/library/imports/9a/9ac5c83d-af36-4eb8-993a-3eb5ee4b698f.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "4down2", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 615, - 189, - 243, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 243, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/9b/9b80c949-4fcd-4e45-afa9-ad91683ef7b7.json b/library/imports/9b/9b80c949-4fcd-4e45-afa9-ad91683ef7b7.json deleted file mode 100644 index 200efd7..0000000 --- a/library/imports/9b/9b80c949-4fcd-4e45-afa9-ad91683ef7b7.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "shu_zl1_1", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 333, - 680, - 58, - 34 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 58, - 34 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/9c/9c994197-5b81-48cb-87fe-49be94b0a5a4.json b/library/imports/9c/9c994197-5b81-48cb-87fe-49be94b0a5a4.json deleted file mode 100644 index 2639aa1..0000000 --- a/library/imports/9c/9c994197-5b81-48cb-87fe-49be94b0a5a4.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "4down1", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 861, - 142, - 122, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 122, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/9c/9c999eaf-168d-480a-9a0e-175e787630c9.json b/library/imports/9c/9c999eaf-168d-480a-9a0e-175e787630c9.json deleted file mode 100644 index 4d0ce4d..0000000 --- a/library/imports/9c/9c999eaf-168d-480a-9a0e-175e787630c9.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "4color5", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 64, - 680, - 61, - 267 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 267 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/9c/9cca10f3-7a1a-402a-83d4-30597d8144c7.json b/library/imports/9c/9cca10f3-7a1a-402a-83d4-30597d8144c7.json deleted file mode 100644 index 358361b..0000000 --- a/library/imports/9c/9cca10f3-7a1a-402a-83d4-30597d8144c7.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "6color4", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1092, - 753, - 61, - 146 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 146 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/9d/9d3445ca-4bb2-4825-a21d-ca76f517203d.json b/library/imports/9d/9d3445ca-4bb2-4825-a21d-ca76f517203d.json deleted file mode 100644 index bd2dc7b..0000000 --- a/library/imports/9d/9d3445ca-4bb2-4825-a21d-ca76f517203d.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "9down3", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 518, - 363, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 363, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/a2/a2592571-4219-493e-98e1-f485f515d460.json b/library/imports/a2/a2592571-4219-493e-98e1-f485f515d460.json deleted file mode 100644 index 0fce691..0000000 --- a/library/imports/a2/a2592571-4219-493e-98e1-f485f515d460.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "8down3", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 370, - 424, - 363, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 363, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/a2/a28b8261-be09-47df-aaa7-db3b6edebc3e.json b/library/imports/a2/a28b8261-be09-47df-aaa7-db3b6edebc3e.json deleted file mode 100644 index a4a6830..0000000 --- a/library/imports/a2/a28b8261-be09-47df-aaa7-db3b6edebc3e.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "flash", - "texture": "118d4d54-d313-4f52-b49f-593effa13423", - "atlas": "", - "rect": [ - 0, - 0, - 73, - 73 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 73, - 73 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/a2/a2a2084f-96a0-4646-a699-ba9714473c81.atlas b/library/imports/a2/a2a2084f-96a0-4646-a699-ba9714473c81.atlas deleted file mode 100644 index cdcb019..0000000 --- a/library/imports/a2/a2a2084f-96a0-4646-a699-ba9714473c81.atlas +++ /dev/null @@ -1,181 +0,0 @@ - -zhandan.png -size: 1020,1020 -format: RGBA8888 -filter: Linear,Linear -repeat: none -banyuan0001 - rotate: true - xy: 758, 692 - size: 86, 79 - orig: 265, 209 - offset: 87, 34 - index: -1 -banyuan0004 - rotate: true - xy: 633, 273 - size: 172, 133 - orig: 265, 209 - offset: 46, 11 - index: -1 -banyuan0007 - rotate: false - xy: 2, 4 - size: 242, 188 - orig: 265, 209 - offset: 10, 6 - index: -1 -banyuan0010 - rotate: false - xy: 2, 194 - size: 253, 195 - orig: 265, 209 - offset: 5, 7 - index: -1 -banyuan0013 - rotate: false - xy: 2, 611 - size: 259, 199 - orig: 265, 209 - offset: 2, 5 - index: -1 -banyuan0016 - rotate: false - xy: 2, 812 - size: 262, 203 - orig: 265, 209 - offset: 1, 3 - index: -1 -huoquan0001 - rotate: true - xy: 758, 780 - size: 123, 80 - orig: 222, 151 - offset: 52, 41 - index: -1 -huoquan0004 - rotate: true - xy: 633, 17 - size: 193, 140 - orig: 222, 151 - offset: 16, 9 - index: -1 -huoquan0006 - rotate: true - xy: 463, 615 - size: 209, 148 - orig: 222, 151 - offset: 7, 3 - index: -1 -huoquan0009 - rotate: false - xy: 468, 870 - size: 213, 145 - orig: 222, 151 - offset: 5, 2 - index: -1 -huoquan0012 - rotate: true - xy: 613, 655 - size: 213, 143 - orig: 222, 151 - offset: 5, 1 - index: -1 -huoquan0015 - rotate: true - xy: 633, 447 - size: 206, 140 - orig: 222, 151 - offset: 9, 1 - index: -1 -zaza0001 - rotate: true - xy: 683, 905 - size: 110, 98 - orig: 251, 223 - offset: 74, 45 - index: -1 -zaza0003 - rotate: false - xy: 240, 408 - size: 218, 201 - orig: 251, 223 - offset: 28, 0 - index: -1 -zaza0004 - rotate: false - xy: 2, 391 - size: 236, 218 - orig: 251, 223 - offset: 15, 0 - index: -1 -zaza0008 - rotate: true - xy: 266, 612 - size: 212, 195 - orig: 251, 223 - offset: 27, 6 - index: -1 -zaza0012 - rotate: true - xy: 257, 191 - size: 215, 198 - orig: 251, 223 - offset: 24, 6 - index: -1 -zaza0016 - rotate: true - xy: 266, 826 - size: 189, 200 - orig: 251, 223 - offset: 28, 4 - index: -1 -zaza0020 - rotate: true - xy: 246, 2 - size: 187, 205 - orig: 251, 223 - offset: 24, 2 - index: -1 -zaza0024 - rotate: false - xy: 457, 212 - size: 174, 194 - orig: 251, 223 - offset: 30, 6 - index: -1 -zaza0028 - rotate: false - xy: 457, 16 - size: 174, 194 - orig: 251, 223 - offset: 30, 6 - index: -1 -zaza0032 - rotate: false - xy: 460, 415 - size: 171, 194 - orig: 251, 223 - offset: 30, 6 - index: -1 -zhadan1 - rotate: false - xy: 768, 352 - size: 60, 93 - orig: 62, 95 - offset: 1, 1 - index: -1 -zhadan2 - rotate: false - xy: 768, 267 - size: 59, 83 - orig: 62, 95 - offset: 1, 1 - index: -1 -zhadan3 - rotate: false - xy: 775, 447 - size: 59, 76 - orig: 62, 95 - offset: 1, 1 - index: -1 diff --git a/library/imports/a2/a2a2084f-96a0-4646-a699-ba9714473c81.json b/library/imports/a2/a2a2084f-96a0-4646-a699-ba9714473c81.json deleted file mode 100644 index ad8731e..0000000 --- a/library/imports/a2/a2a2084f-96a0-4646-a699-ba9714473c81.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "__type__": "cc.Asset", - "_name": "zhandan", - "_objFlags": 0, - "_native": ".atlas" -} \ No newline at end of file diff --git a/library/imports/a3/a39ecd5d-7cdf-4caf-865d-81f806b582f3.json b/library/imports/a3/a39ecd5d-7cdf-4caf-865d-81f806b582f3.json deleted file mode 100644 index da1cbc1..0000000 --- a/library/imports/a3/a39ecd5d-7cdf-4caf-865d-81f806b582f3.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "5color4", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 530, - 821, - 61, - 146 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 146 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/a3/a3f51e26-9f3f-4a35-8d40-dfff45754b25.json b/library/imports/a3/a3f51e26-9f3f-4a35-8d40-dfff45754b25.json deleted file mode 100644 index 671c837..0000000 --- a/library/imports/a3/a3f51e26-9f3f-4a35-8d40-dfff45754b25.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "6color5", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 64, - 743, - 61, - 267 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 267 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/a5/a5543b75-5f2f-4355-8b34-7770803e78bc.json b/library/imports/a5/a5543b75-5f2f-4355-8b34-7770803e78bc.json deleted file mode 100644 index 9de9541..0000000 --- a/library/imports/a5/a5543b75-5f2f-4355-8b34-7770803e78bc.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "9color6", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 129, - 127, - 61, - 387 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 387 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/07/071c697b-6b3e-4294-a6bb-e433ef19e445.json b/library/imports/a7/a7769b53-73c4-4fd2-bcad-e83d044a502e.json similarity index 100% rename from library/imports/07/071c697b-6b3e-4294-a6bb-e433ef19e445.json rename to library/imports/a7/a7769b53-73c4-4fd2-bcad-e83d044a502e.json diff --git a/library/imports/48/484f1896-8707-4cc7-8e61-9995a2133f09.png b/library/imports/a7/a7769b53-73c4-4fd2-bcad-e83d044a502e.png similarity index 100% rename from library/imports/48/484f1896-8707-4cc7-8e61-9995a2133f09.png rename to library/imports/a7/a7769b53-73c4-4fd2-bcad-e83d044a502e.png diff --git a/library/imports/a8/a8c7af66-0323-4bbd-b41b-ae9ed5671c84.json b/library/imports/a8/a8c7af66-0323-4bbd-b41b-ae9ed5671c84.json deleted file mode 100644 index d88285c..0000000 --- a/library/imports/a8/a8c7af66-0323-4bbd-b41b-ae9ed5671c84.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "shu_zl2_11", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1277, - 277, - 32, - 59 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 32, - 59 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/a9/a94d62af-b5ee-40d4-8b56-8fb2e314b265.json b/library/imports/a9/a94d62af-b5ee-40d4-8b56-8fb2e314b265.json deleted file mode 100644 index d27cce0..0000000 --- a/library/imports/a9/a94d62af-b5ee-40d4-8b56-8fb2e314b265.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "5down5", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 330, - 45, - 245 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 245 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/a9/a9fa3419-564a-4a37-9c25-b49783d827c0.json b/library/imports/a9/a9fa3419-564a-4a37-9c25-b49783d827c0.json deleted file mode 100644 index 6de843a..0000000 --- a/library/imports/a9/a9fa3419-564a-4a37-9c25-b49783d827c0.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "3down5", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 189, - 45, - 245 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 245 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/aa/aa13f028-c4c4-4978-bc3e-56b1ef1f2843.json b/library/imports/aa/aa13f028-c4c4-4978-bc3e-56b1ef1f2843.json deleted file mode 100644 index 23dadf9..0000000 --- a/library/imports/aa/aa13f028-c4c4-4978-bc3e-56b1ef1f2843.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "shu_zl2_22", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 866, - 724, - 32, - 120 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 32, - 120 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/34/34a7a697-bfd3-414f-8443-b782bcaef077.json b/library/imports/aa/aa2fd905-3a30-4de0-82a9-e2340e62f004.json similarity index 73% rename from library/imports/34/34a7a697-bfd3-414f-8443-b782bcaef077.json rename to library/imports/aa/aa2fd905-3a30-4de0-82a9-e2340e62f004.json index 97cc831..fd7ed35 100644 --- a/library/imports/34/34a7a697-bfd3-414f-8443-b782bcaef077.json +++ b/library/imports/aa/aa2fd905-3a30-4de0-82a9-e2340e62f004.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_10", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1200, 284, diff --git a/library/imports/b2/b25c96cd-057b-4fc0-aa62-21f11068ecdd.json b/library/imports/aa/aa6f0547-ebd5-4e9c-919f-cdb7e4d09ce8.json similarity index 72% rename from library/imports/b2/b25c96cd-057b-4fc0-aa62-21f11068ecdd.json rename to library/imports/aa/aa6f0547-ebd5-4e9c-919f-cdb7e4d09ce8.json index 48f5cb5..cb165b7 100644 --- a/library/imports/b2/b25c96cd-057b-4fc0-aa62-21f11068ecdd.json +++ b/library/imports/aa/aa6f0547-ebd5-4e9c-919f-cdb7e4d09ce8.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_14", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 905, 816, diff --git a/library/imports/bf/bf0f6fdf-2cb6-4a4d-80b6-9bd2f2a70f64.json b/library/imports/ab/ab387f59-de04-44b9-b209-e8326eeaa6cf.json similarity index 73% rename from library/imports/bf/bf0f6fdf-2cb6-4a4d-80b6-9bd2f2a70f64.json rename to library/imports/ab/ab387f59-de04-44b9-b209-e8326eeaa6cf.json index 4938f06..eba6ba2 100644 --- a/library/imports/bf/bf0f6fdf-2cb6-4a4d-80b6-9bd2f2a70f64.json +++ b/library/imports/ab/ab387f59-de04-44b9-b209-e8326eeaa6cf.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_15", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1, 778, diff --git a/library/imports/02/0286d77f-e962-4050-8a77-250f4a3a139c.json b/library/imports/ab/abb431df-2fda-497e-9941-a1c7205b1945.json similarity index 72% rename from library/imports/02/0286d77f-e962-4050-8a77-250f4a3a139c.json rename to library/imports/ab/abb431df-2fda-497e-9941-a1c7205b1945.json index d86690d..ace4cda 100644 --- a/library/imports/02/0286d77f-e962-4050-8a77-250f4a3a139c.json +++ b/library/imports/ab/abb431df-2fda-497e-9941-a1c7205b1945.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_22", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1764, 812, diff --git a/library/imports/ac/ac2a29e0-63e5-4f9d-b088-dd6682f8bde4.json b/library/imports/ac/ac2a29e0-63e5-4f9d-b088-dd6682f8bde4.json deleted file mode 100644 index 0cd6748..0000000 --- a/library/imports/ac/ac2a29e0-63e5-4f9d-b088-dd6682f8bde4.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "shu_zl2_3", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 663, - 445, - 32, - 175 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 32, - 175 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/ac/ac5d82a3-1111-4557-b9f7-0b4ba525fbd5.json b/library/imports/ac/ac5d82a3-1111-4557-b9f7-0b4ba525fbd5.json deleted file mode 100644 index eb6ed8e..0000000 --- a/library/imports/ac/ac5d82a3-1111-4557-b9f7-0b4ba525fbd5.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "4color4", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1127, - 690, - 61, - 146 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 146 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/ad/add61af3-637e-4ecf-b75e-ea17e4422220.json b/library/imports/ad/add61af3-637e-4ecf-b75e-ea17e4422220.json deleted file mode 100644 index 84a2097..0000000 --- a/library/imports/ad/add61af3-637e-4ecf-b75e-ea17e4422220.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "6down6", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 613, - 377, - 45, - 365 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 365 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/ae/aefc3f97-13c2-4a83-94e2-5d28bcf9ee88.json b/library/imports/ae/aefc3f97-13c2-4a83-94e2-5d28bcf9ee88.json deleted file mode 100644 index c9a351f..0000000 --- a/library/imports/ae/aefc3f97-13c2-4a83-94e2-5d28bcf9ee88.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "4down5", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 366, - 236, - 45, - 245 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 245 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/f7/f77686ab-3aef-4ae9-8a04-55c03cf2b689.json b/library/imports/b0/b0c52cbf-9933-4e65-be5f-aeb2c16cb99c.json similarity index 72% rename from library/imports/f7/f77686ab-3aef-4ae9-8a04-55c03cf2b689.json rename to library/imports/b0/b0c52cbf-9933-4e65-be5f-aeb2c16cb99c.json index 543decc..2db6398 100644 --- a/library/imports/f7/f77686ab-3aef-4ae9-8a04-55c03cf2b689.json +++ b/library/imports/b0/b0c52cbf-9933-4e65-be5f-aeb2c16cb99c.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_4", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 278, 1576, diff --git a/library/imports/b1/b1760ce5-36c7-4d8b-bb5f-069a448ebbf2.json b/library/imports/b1/b1760ce5-36c7-4d8b-bb5f-069a448ebbf2.json deleted file mode 100644 index 8c5c37c..0000000 --- a/library/imports/b1/b1760ce5-36c7-4d8b-bb5f-069a448ebbf2.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "dikuai", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 866, - 602, - 120, - 120 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 120, - 120 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/b1/b1db6411-8fe7-465c-bb8e-3ea8dee8aae9.json b/library/imports/b1/b1db6411-8fe7-465c-bb8e-3ea8dee8aae9.json deleted file mode 100644 index 0ab5f67..0000000 --- a/library/imports/b1/b1db6411-8fe7-465c-bb8e-3ea8dee8aae9.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "7down4", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 861, - 613, - 46, - 124 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 46, - 124 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/b3/b38991fe-2e45-431c-8f23-974e7905dfaa.json b/library/imports/b3/b38991fe-2e45-431c-8f23-974e7905dfaa.json index ac19d7b..e275fa9 100644 --- a/library/imports/b3/b38991fe-2e45-431c-8f23-974e7905dfaa.json +++ b/library/imports/b3/b38991fe-2e45-431c-8f23-974e7905dfaa.json @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/b4/b422f3cf-81f1-4bda-9b15-c5ef7a9687b8.json b/library/imports/b4/b422f3cf-81f1-4bda-9b15-c5ef7a9687b8.json deleted file mode 100644 index e7522d6..0000000 --- a/library/imports/b4/b422f3cf-81f1-4bda-9b15-c5ef7a9687b8.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "__type__": "cc.Texture2D", - "content": "0,9729,9729,33071,33071,0,0,1" -} \ No newline at end of file diff --git a/library/imports/b4/b422f3cf-81f1-4bda-9b15-c5ef7a9687b8.png b/library/imports/b4/b422f3cf-81f1-4bda-9b15-c5ef7a9687b8.png deleted file mode 100644 index 35e62c5..0000000 Binary files a/library/imports/b4/b422f3cf-81f1-4bda-9b15-c5ef7a9687b8.png and /dev/null differ diff --git a/library/imports/b5/b54f9b14-fdec-476f-98f8-f0a519f7e844.json b/library/imports/b5/b54f9b14-fdec-476f-98f8-f0a519f7e844.json index fa6987b..ada463d 100644 --- a/library/imports/b5/b54f9b14-fdec-476f-98f8-f0a519f7e844.json +++ b/library/imports/b5/b54f9b14-fdec-476f-98f8-f0a519f7e844.json @@ -1220,7 +1220,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/c7/c77015b4-f5c1-4179-a0e9-5d2cd6d6b9e5.json b/library/imports/b5/b5d05ad0-9ba6-40ca-9d11-b9fd23a0b1f7.json similarity index 72% rename from library/imports/c7/c77015b4-f5c1-4179-a0e9-5d2cd6d6b9e5.json rename to library/imports/b5/b5d05ad0-9ba6-40ca-9d11-b9fd23a0b1f7.json index 8a20b70..8f23174 100644 --- a/library/imports/c7/c77015b4-f5c1-4179-a0e9-5d2cd6d6b9e5.json +++ b/library/imports/b5/b5d05ad0-9ba6-40ca-9d11-b9fd23a0b1f7.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_12", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 284, 1085, diff --git a/library/imports/b6/b6ed74f8-9e62-419d-9ea7-59972f6e1a52.atlas b/library/imports/b6/b6ed74f8-9e62-419d-9ea7-59972f6e1a52.atlas deleted file mode 100644 index 11433e6..0000000 --- a/library/imports/b6/b6ed74f8-9e62-419d-9ea7-59972f6e1a52.atlas +++ /dev/null @@ -1,34 +0,0 @@ - -jiekou_heng.png -size: 148,148 -format: RGBA8888 -filter: Linear,Linear -repeat: none -连接块/kou1 - rotate: false - xy: 2, 121 - size: 52, 24 - orig: 52, 24 - offset: 0, 0 - index: -1 -连接块/kou2 - rotate: false - xy: 56, 121 - size: 52, 24 - orig: 52, 24 - offset: 0, 0 - index: -1 -连接块/luosi - rotate: true - xy: 110, 122 - size: 23, 21 - orig: 23, 21 - offset: 0, 0 - index: -1 -连接块/luosi2 - rotate: false - xy: 133, 133 - size: 12, 12 - orig: 12, 12 - offset: 0, 0 - index: -1 diff --git a/library/imports/b6/b6ed74f8-9e62-419d-9ea7-59972f6e1a52.json b/library/imports/b6/b6ed74f8-9e62-419d-9ea7-59972f6e1a52.json deleted file mode 100644 index 165f25f..0000000 --- a/library/imports/b6/b6ed74f8-9e62-419d-9ea7-59972f6e1a52.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "__type__": "cc.Asset", - "_name": "jiekou_heng", - "_objFlags": 0, - "_native": ".atlas" -} \ No newline at end of file diff --git a/library/imports/b8/b898eccd-0766-4b61-a4ac-c4c3af89f87e.json b/library/imports/b8/b898eccd-0766-4b61-a4ac-c4c3af89f87e.json deleted file mode 100644 index 76bce17..0000000 --- a/library/imports/b8/b898eccd-0766-4b61-a4ac-c4c3af89f87e.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "7down5", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 367, - 659, - 46, - 246 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 46, - 246 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/b9/b9e0f800-5ea5-4884-ace8-412f2c2733cf.json b/library/imports/b9/b9e0f800-5ea5-4884-ace8-412f2c2733cf.json deleted file mode 100644 index b3ae5d3..0000000 --- a/library/imports/b9/b9e0f800-5ea5-4884-ace8-412f2c2733cf.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "9down4", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 860, - 471, - 45, - 124 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 124 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/ba/ba2878f1-3d11-4c66-8c2e-58e33b45e628.json b/library/imports/ba/ba2878f1-3d11-4c66-8c2e-58e33b45e628.json deleted file mode 100644 index c686727..0000000 --- a/library/imports/ba/ba2878f1-3d11-4c66-8c2e-58e33b45e628.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "mofabang_baozha", - "texture": "ff0d5773-ca66-4087-b1b7-4777121d85be", - "atlas": "", - "rect": [ - 2, - 1358, - 2036, - 680 - ], - "offset": [ - 0, - -678 - ], - "originalSize": [ - 2040, - 2040 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/ba/ba9a4097-f4d2-4cc8-b325-34405e67b130.json b/library/imports/ba/ba9a4097-f4d2-4cc8-b325-34405e67b130.json new file mode 100644 index 0000000..dc23dac --- /dev/null +++ b/library/imports/ba/ba9a4097-f4d2-4cc8-b325-34405e67b130.json @@ -0,0 +1,146 @@ +{ + "__type__": "cc.SpriteAtlas", + "_name": "freeze.plist", + "_objFlags": 0, + "_native": "", + "_spriteFrames": { + "ice_0": { + "__uuid__": "64fa6afd-16c6-4473-a5cf-844bcbd25f73" + }, + "ice_1": { + "__uuid__": "73cd9b62-4f5f-4846-9be8-53f206b00a7f" + }, + "ice_10": { + "__uuid__": "d9d381ae-0c72-4ab4-a470-89bb04e2c78d" + }, + "ice_11": { + "__uuid__": "3b800928-497d-4c3f-a1d0-e6a919e4df02" + }, + "ice_12": { + "__uuid__": "b5d05ad0-9ba6-40ca-9d11-b9fd23a0b1f7" + }, + "ice_13": { + "__uuid__": "1dcd9c5e-14ca-455f-89b1-c0fb13ab5d33" + }, + "ice_14": { + "__uuid__": "aa6f0547-ebd5-4e9c-919f-cdb7e4d09ce8" + }, + "ice_15": { + "__uuid__": "ceb856fb-1003-46dd-9a43-3c3c8399376e" + }, + "ice_16": { + "__uuid__": "40386653-0f9c-46df-9dd3-5dac1bf804a7" + }, + "ice_17": { + "__uuid__": "f1428a88-74aa-4353-9a97-1d2325437304" + }, + "ice_18": { + "__uuid__": "78f63367-3765-4e5a-ba97-ba1ff164785b" + }, + "ice_19": { + "__uuid__": "c9773340-b1bc-4d65-b238-d316da70778d" + }, + "ice_2": { + "__uuid__": "33d4d456-e972-4edd-9239-cb65b7e1a741" + }, + "ice_20": { + "__uuid__": "727e4b9d-8408-4bea-8a17-1ea8f55cb9eb" + }, + "ice_21": { + "__uuid__": "c1e2f27b-c5fe-41ce-964f-671a6acefbfe" + }, + "ice_22": { + "__uuid__": "abb431df-2fda-497e-9941-a1c7205b1945" + }, + "ice_3": { + "__uuid__": "49c30af9-566f-4ccc-8967-371e632afaa9" + }, + "ice_4": { + "__uuid__": "8c55e356-f4bb-4483-af03-f498c36f6639" + }, + "ice_5": { + "__uuid__": "01d1aed9-bd88-49f7-940f-39d72a62a6e7" + }, + "ice_6": { + "__uuid__": "eaa436a0-38d0-4580-9745-0d6ef1e3aa7d" + }, + "ice_7": { + "__uuid__": "5e0a536d-4c5f-42f6-8f2f-5dabc3dc2d0e" + }, + "ice_8": { + "__uuid__": "5e13bde7-1c9f-4a8e-afc7-d1d8e6df870b" + }, + "ice_9": { + "__uuid__": "62429a89-373d-44cb-a978-af1f32ab409d" + }, + "xz_0": { + "__uuid__": "138f8f36-a044-4bd6-bc77-537095928721" + }, + "xz_1": { + "__uuid__": "ce2c1c04-dfdd-485f-ba0b-9e9e2d5bd775" + }, + "xz_10": { + "__uuid__": "aa2fd905-3a30-4de0-82a9-e2340e62f004" + }, + "xz_11": { + "__uuid__": "560503c2-3664-47c4-834f-b052031a95fe" + }, + "xz_12": { + "__uuid__": "528a16df-0cfd-4569-b06e-7b0045260762" + }, + "xz_13": { + "__uuid__": "56c79cf2-5c1c-4044-bf72-9c99c5302074" + }, + "xz_14": { + "__uuid__": "c6c8593c-e9ec-48fa-82ce-68de832b0588" + }, + "xz_15": { + "__uuid__": "ab387f59-de04-44b9-b209-e8326eeaa6cf" + }, + "xz_16": { + "__uuid__": "03a5a06c-65ca-4848-b677-814ceca367e9" + }, + "xz_17": { + "__uuid__": "740b4de2-f5ed-4218-b5ea-489795888132" + }, + "xz_18": { + "__uuid__": "326f4d71-ec3e-4e60-80b7-366644f8e4bc" + }, + "xz_19": { + "__uuid__": "82bc9160-309d-4c6b-9895-5c0de13783c2" + }, + "xz_2": { + "__uuid__": "1dae414a-cce8-4e94-869b-ed869b85a7a2" + }, + "xz_20": { + "__uuid__": "f4c34816-7926-4e19-b11b-5ffd9340accb" + }, + "xz_21": { + "__uuid__": "415f47f0-fad1-43e1-9bb0-a3829d65a394" + }, + "xz_22": { + "__uuid__": "ba9b6fef-aacb-479a-8861-764c39e05d75" + }, + "xz_3": { + "__uuid__": "67a3e1e8-b956-4a3c-861d-d81ec149a0bf" + }, + "xz_4": { + "__uuid__": "b0c52cbf-9933-4e65-be5f-aeb2c16cb99c" + }, + "xz_5": { + "__uuid__": "0ac33287-c45a-471c-ac50-5039da17ea1d" + }, + "xz_6": { + "__uuid__": "7b23c8ea-807d-4f55-90ba-bd725aff309c" + }, + "xz_7": { + "__uuid__": "dc762f76-685e-44d7-88f5-5bd670c20532" + }, + "xz_8": { + "__uuid__": "f502ad08-6edf-4fc1-b3a2-45315d91c7d0" + }, + "xz_9": { + "__uuid__": "3193b747-13f1-4800-91ff-8de019c658da" + } + } +} \ No newline at end of file diff --git a/library/imports/d3/d3ded0a3-0ec1-4f0e-8e62-e090263e06a3.json b/library/imports/ba/ba9b6fef-aacb-479a-8861-764c39e05d75.json similarity index 72% rename from library/imports/d3/d3ded0a3-0ec1-4f0e-8e62-e090263e06a3.json rename to library/imports/ba/ba9b6fef-aacb-479a-8861-764c39e05d75.json index e830e24..2686b51 100644 --- a/library/imports/d3/d3ded0a3-0ec1-4f0e-8e62-e090263e06a3.json +++ b/library/imports/ba/ba9b6fef-aacb-479a-8861-764c39e05d75.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_22", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1680, 1462, diff --git a/library/imports/bb/bb986b73-e1fa-4a5d-8e38-082686877964.json b/library/imports/bb/bb986b73-e1fa-4a5d-8e38-082686877964.json deleted file mode 100644 index 0565193..0000000 --- a/library/imports/bb/bb986b73-e1fa-4a5d-8e38-082686877964.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "4down4", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 860, - 189, - 45, - 124 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 124 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/bb/bbafd681-01fb-47b0-a2ff-b15b926a240b.json b/library/imports/bb/bbafd681-01fb-47b0-a2ff-b15b926a240b.json deleted file mode 100644 index 24cbbfb..0000000 --- a/library/imports/bb/bbafd681-01fb-47b0-a2ff-b15b926a240b.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "4color3", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 898, - 64, - 378, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 378, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/bc/bc027956-4f24-4f96-b705-359a19cccb53.json b/library/imports/bc/bc027956-4f24-4f96-b705-359a19cccb53.json index b6f0f0a..59a6c00 100644 --- a/library/imports/bc/bc027956-4f24-4f96-b705-359a19cccb53.json +++ b/library/imports/bc/bc027956-4f24-4f96-b705-359a19cccb53.json @@ -1074,7 +1074,7 @@ "heng": 2, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/bc/bc920137-4c10-41ac-b55d-afaa7a733177.json b/library/imports/bc/bc920137-4c10-41ac-b55d-afaa7a733177.json deleted file mode 100644 index 52f32ae..0000000 --- a/library/imports/bc/bc920137-4c10-41ac-b55d-afaa7a733177.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "3color4", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1275, - 636, - 61, - 146 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 146 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/bd/bd251070-02ef-4b04-ad5d-b4407fa251ec.json b/library/imports/bd/bd251070-02ef-4b04-ad5d-b4407fa251ec.json deleted file mode 100644 index c704d9a..0000000 --- a/library/imports/bd/bd251070-02ef-4b04-ad5d-b4407fa251ec.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "9down5", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 366, - 518, - 45, - 245 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 245 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/be/be254ba3-b7fd-418b-995f-274fa1273a73.json b/library/imports/be/be254ba3-b7fd-418b-995f-274fa1273a73.json deleted file mode 100644 index 5a53e5c..0000000 --- a/library/imports/be/be254ba3-b7fd-418b-995f-274fa1273a73.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "10down5", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 612, - 45, - 245 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 245 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/be/be5782f3-3dc7-43b8-a66a-ec50c83d0077.json b/library/imports/be/be5782f3-3dc7-43b8-a66a-ec50c83d0077.json index d105cac..0f2335c 100644 --- a/library/imports/be/be5782f3-3dc7-43b8-a66a-ec50c83d0077.json +++ b/library/imports/be/be5782f3-3dc7-43b8-a66a-ec50c83d0077.json @@ -1220,7 +1220,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/49/49aa5f88-cb13-4a14-ace5-e36d0d5ad9ae.json b/library/imports/c1/c1e2f27b-c5fe-41ce-964f-671a6acefbfe.json similarity index 72% rename from library/imports/49/49aa5f88-cb13-4a14-ace5-e36d0d5ad9ae.json rename to library/imports/c1/c1e2f27b-c5fe-41ce-964f-671a6acefbfe.json index aa30c0b..d4daf1f 100644 --- a/library/imports/49/49aa5f88-cb13-4a14-ace5-e36d0d5ad9ae.json +++ b/library/imports/c1/c1e2f27b-c5fe-41ce-964f-671a6acefbfe.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_21", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 712, 1735, diff --git a/library/imports/c3/c3dc068c-934c-442d-a81b-d18f30e918b8.json b/library/imports/c3/c3dc068c-934c-442d-a81b-d18f30e918b8.json deleted file mode 100644 index 0201c64..0000000 --- a/library/imports/c3/c3dc068c-934c-442d-a81b-d18f30e918b8.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "9down2", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 615, - 471, - 243, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 243, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/c4/c4a12113-071c-4077-a323-3e222fc3824a.json b/library/imports/c4/c4a12113-071c-4077-a323-3e222fc3824a.json deleted file mode 100644 index ba13c12..0000000 --- a/library/imports/c4/c4a12113-071c-4077-a323-3e222fc3824a.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "3down6", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 248, - 189, - 45, - 365 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 365 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/c5/c5195cb6-e974-4b2b-9b9a-fa73a8c21cfb.json b/library/imports/c5/c5195cb6-e974-4b2b-9b9a-fa73a8c21cfb.json deleted file mode 100644 index 286fc6a..0000000 --- a/library/imports/c5/c5195cb6-e974-4b2b-9b9a-fa73a8c21cfb.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "LiZi1", - "texture": "727ab669-af95-43be-9818-2065a98b84a5", - "atlas": "", - "rect": [ - 0, - 0, - 192, - 192 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 192, - 192 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/c6/c6771c3c-3935-41f7-87e6-595dcdc3fbca.json b/library/imports/c6/c6771c3c-3935-41f7-87e6-595dcdc3fbca.json deleted file mode 100644 index f3f0465..0000000 --- a/library/imports/c6/c6771c3c-3935-41f7-87e6-595dcdc3fbca.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "7down3", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 659, - 364, - 46 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 364, - 46 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/bb/bbe9ff36-9442-4582-94b6-18c80b98a88b.json b/library/imports/c6/c6c8593c-e9ec-48fa-82ce-68de832b0588.json similarity index 72% rename from library/imports/bb/bbe9ff36-9442-4582-94b6-18c80b98a88b.json rename to library/imports/c6/c6c8593c-e9ec-48fa-82ce-68de832b0588.json index 482fc9f..5fe68d0 100644 --- a/library/imports/bb/bbe9ff36-9442-4582-94b6-18c80b98a88b.json +++ b/library/imports/c6/c6c8593c-e9ec-48fa-82ce-68de832b0588.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_14", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 398, 1, diff --git a/library/imports/c7/c71ff0d4-efd0-4b07-970f-14c8dda67865.json b/library/imports/c7/c71ff0d4-efd0-4b07-970f-14c8dda67865.json deleted file mode 100644 index 2ec766c..0000000 --- a/library/imports/c7/c71ff0d4-efd0-4b07-970f-14c8dda67865.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "8down2", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 125, - 424, - 243, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 243, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/c7/c74f5c84-d250-4e6a-a6dc-5ce8b9e46633.json b/library/imports/c7/c74f5c84-d250-4e6a-a6dc-5ce8b9e46633.json deleted file mode 100644 index 7b5518f..0000000 --- a/library/imports/c7/c74f5c84-d250-4e6a-a6dc-5ce8b9e46633.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "2color5", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 127, - 403, - 62, - 266 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 62, - 266 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/c7/c7ca2d02-32a0-4509-bca6-d08498d9877b.json b/library/imports/c7/c7ca2d02-32a0-4509-bca6-d08498d9877b.json deleted file mode 100644 index c373254..0000000 --- a/library/imports/c7/c7ca2d02-32a0-4509-bca6-d08498d9877b.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "2down6", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 613, - 95, - 45, - 365 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 365 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/c8/c84b719d-af4e-4688-b270-b5b3ebe7f7f0.json b/library/imports/c8/c84b719d-af4e-4688-b270-b5b3ebe7f7f0.json deleted file mode 100644 index e46c727..0000000 --- a/library/imports/c8/c84b719d-af4e-4688-b270-b5b3ebe7f7f0.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "10color3", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 889, - 206, - 378, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 378, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/c8/c88c6283-3de7-4606-b65a-fa3e18c95049.json b/library/imports/c8/c88c6283-3de7-4606-b65a-fa3e18c95049.json deleted file mode 100644 index e7522d6..0000000 --- a/library/imports/c8/c88c6283-3de7-4606-b65a-fa3e18c95049.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "__type__": "cc.Texture2D", - "content": "0,9729,9729,33071,33071,0,0,1" -} \ No newline at end of file diff --git a/library/imports/c8/c88c6283-3de7-4606-b65a-fa3e18c95049.png b/library/imports/c8/c88c6283-3de7-4606-b65a-fa3e18c95049.png deleted file mode 100644 index 0e01bbe..0000000 Binary files a/library/imports/c8/c88c6283-3de7-4606-b65a-fa3e18c95049.png and /dev/null differ diff --git a/library/imports/21/21918f8d-57fb-4d73-992d-e58af9bf91ae.json b/library/imports/c9/c9773340-b1bc-4d65-b238-d316da70778d.json similarity index 72% rename from library/imports/21/21918f8d-57fb-4d73-992d-e58af9bf91ae.json rename to library/imports/c9/c9773340-b1bc-4d65-b238-d316da70778d.json index 2a6888f..e311303 100644 --- a/library/imports/21/21918f8d-57fb-4d73-992d-e58af9bf91ae.json +++ b/library/imports/c9/c9773340-b1bc-4d65-b238-d316da70778d.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_19", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 960, 1735, diff --git a/library/imports/c9/c97d0dd9-8a86-4d84-a51c-4451beea4e1a.json b/library/imports/c9/c97d0dd9-8a86-4d84-a51c-4451beea4e1a.json deleted file mode 100644 index 3a59436..0000000 --- a/library/imports/c9/c97d0dd9-8a86-4d84-a51c-4451beea4e1a.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "7color4", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 840, - 538, - 62, - 147 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 62, - 147 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/ca/ca1fbdcb-5180-4815-8751-4b66146e74de.json b/library/imports/ca/ca1fbdcb-5180-4815-8751-4b66146e74de.json deleted file mode 100644 index 41e0a2b..0000000 --- a/library/imports/ca/ca1fbdcb-5180-4815-8751-4b66146e74de.json +++ /dev/null @@ -1,670 +0,0 @@ -{ - "__type__": "sp.SkeletonData", - "_name": "jiekou_heng", - "_objFlags": 0, - "_native": "", - "_skeletonJson": { - "skeleton": { - "hash": "SglAgIli7zPuz0syxY5xlYrKWAw", - "spine": "3.8.99", - "x": -34.31, - "y": -28.63, - "width": 52, - "height": 60.36, - "images": "", - "audio": "" - }, - "bones": [ - { - "name": "root" - }, - { - "name": "bone3", - "parent": "root", - "x": -11.52, - "y": 52.57 - }, - { - "name": "kou1", - "parent": "bone3", - "x": 17.41, - "y": -32.85 - }, - { - "name": "bone", - "parent": "bone3", - "x": -10.72, - "y": -32.17 - }, - { - "name": "luosi", - "parent": "bone", - "x": 0.3, - "y": 0.82, - "scaleX": 0.6, - "scaleY": 0.6 - }, - { - "name": "bone2", - "parent": "bone3", - "x": 17.3, - "y": -32.17 - }, - { - "name": "luosi2", - "parent": "bone2", - "x": 0.3, - "y": 0.82, - "scaleX": 0.6, - "scaleY": 0.6 - }, - { - "name": "bone4", - "parent": "root", - "x": -11.52, - "y": 16.22 - }, - { - "name": "kou2", - "parent": "bone4", - "x": 17.41, - "y": -32.85 - }, - { - "name": "bone5", - "parent": "bone4", - "x": -10.72, - "y": -32.17 - }, - { - "name": "luosi3", - "parent": "bone5", - "x": 0.3, - "y": 0.82, - "scaleX": 0.6, - "scaleY": 0.6 - }, - { - "name": "bone6", - "parent": "bone4", - "x": 17.3, - "y": -32.17 - }, - { - "name": "luosi4", - "parent": "bone6", - "x": 0.3, - "y": 0.82, - "scaleX": 0.6, - "scaleY": 0.6 - } - ], - "slots": [ - { - "name": "连接块/连接块", - "bone": "root" - }, - { - "name": "连接块/kou1", - "bone": "kou1", - "attachment": "连接块/kou2" - }, - { - "name": "连接块/kou2", - "bone": "kou2", - "attachment": "连接块/kou2" - }, - { - "name": "连接块/luosi", - "bone": "luosi", - "attachment": "连接块/luosi" - }, - { - "name": "连接块/luosi6", - "bone": "luosi3", - "attachment": "连接块/luosi" - }, - { - "name": "连接块/luosi4", - "bone": "luosi2", - "attachment": "连接块/luosi" - }, - { - "name": "连接块/luosi8", - "bone": "luosi4", - "attachment": "连接块/luosi" - }, - { - "name": "连接块/luosi2", - "bone": "bone", - "attachment": "连接块/luosi2" - }, - { - "name": "连接块/luosi5", - "bone": "bone5", - "attachment": "连接块/luosi2" - }, - { - "name": "连接块/luosi3", - "bone": "bone2", - "attachment": "连接块/luosi2" - }, - { - "name": "连接块/luosi7", - "bone": "bone6", - "attachment": "连接块/luosi2" - } - ], - "skins": [ - { - "name": "default", - "attachments": { - "连接块/kou1": { - "连接块/kou1": { - "x": 13.89, - "width": 52, - "height": 24 - }, - "连接块/kou2": { - "x": -14.21, - "width": 52, - "height": 24 - } - }, - "连接块/kou2": { - "连接块/kou1": { - "x": 13.89, - "width": 52, - "height": 24 - }, - "连接块/kou2": { - "x": -14.21, - "width": 52, - "height": 24 - } - }, - "连接块/luosi": { - "连接块/luosi": { - "x": -0.28, - "y": -3.1, - "width": 23, - "height": 21 - } - }, - "连接块/luosi2": { - "连接块/luosi2": { - "x": -0.06, - "y": -0.22, - "width": 12, - "height": 12 - } - }, - "连接块/luosi3": { - "连接块/luosi2": { - "x": -0.06, - "y": -0.22, - "width": 12, - "height": 12 - } - }, - "连接块/luosi4": { - "连接块/luosi": { - "x": -0.28, - "y": -3.1, - "width": 23, - "height": 21 - } - }, - "连接块/luosi5": { - "连接块/luosi2": { - "x": -0.06, - "y": -0.22, - "width": 12, - "height": 12 - } - }, - "连接块/luosi6": { - "连接块/luosi": { - "x": -0.28, - "y": -3.1, - "width": 23, - "height": 21 - } - }, - "连接块/luosi7": { - "连接块/luosi2": { - "x": -0.06, - "y": -0.22, - "width": 12, - "height": 12 - } - }, - "连接块/luosi8": { - "连接块/luosi": { - "x": -0.28, - "y": -3.1, - "width": 23, - "height": 21 - } - } - } - } - ], - "animations": { - "animation": { - "slots": { - "连接块/kou1": { - "color": [ - { - "time": 0.3333, - "color": "ffffffff" - }, - { - "time": 0.6, - "color": "ffffff00" - } - ] - }, - "连接块/kou2": { - "color": [ - { - "time": 0.6667, - "color": "ffffffff" - }, - { - "time": 0.9333, - "color": "ffffff00" - } - ] - }, - "连接块/luosi": { - "color": [ - { - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.3333, - "color": "ffffff00" - }, - { - "time": 0.3667, - "color": "ffffffff" - }, - { - "time": 0.6667, - "color": "ffffff00" - } - ] - }, - "连接块/luosi2": { - "color": [ - { - "time": 0.3333, - "color": "ffffffff" - }, - { - "time": 0.3667, - "color": "ffffff00" - } - ] - }, - "连接块/luosi3": { - "color": [ - { - "time": 0.4667, - "color": "ffffffff" - }, - { - "time": 0.5, - "color": "ffffff00" - } - ] - }, - "连接块/luosi4": { - "color": [ - { - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.4667, - "color": "ffffff00" - }, - { - "time": 0.5, - "color": "ffffffff" - }, - { - "time": 0.8, - "color": "ffffff00" - } - ] - }, - "连接块/luosi5": { - "color": [ - { - "time": 0.5, - "color": "ffffffff" - }, - { - "time": 0.5333, - "color": "ffffff00" - } - ] - }, - "连接块/luosi6": { - "color": [ - { - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.3333, - "color": "ffffff00" - }, - { - "time": 0.3667, - "color": "ffffffff" - }, - { - "time": 0.6667, - "color": "ffffff00" - } - ] - }, - "连接块/luosi7": { - "color": [ - { - "time": 0.6333, - "color": "ffffffff" - }, - { - "time": 0.6667, - "color": "ffffff00" - } - ] - }, - "连接块/luosi8": { - "color": [ - { - "color": "ffffff00", - "curve": "stepped" - }, - { - "time": 0.4667, - "color": "ffffff00" - }, - { - "time": 0.5, - "color": "ffffffff" - }, - { - "time": 0.8, - "color": "ffffff00" - } - ] - } - }, - "bones": { - "kou1": { - "rotate": [ - { - "time": 0.3333 - }, - { - "time": 0.4667, - "angle": 35.85 - }, - { - "time": 0.6, - "angle": -136.48 - } - ], - "translate": [ - { - "time": 0.3333 - }, - { - "time": 0.6, - "x": 160.21, - "y": -504.28 - } - ] - }, - "luosi": { - "rotate": [ - { - "time": 0.3667 - }, - { - "time": 0.6667, - "angle": -120.91 - } - ] - }, - "bone": { - "rotate": [ - {}, - { - "time": 0.1667, - "angle": -177 - }, - { - "time": 0.3333, - "angle": 81.64 - } - ], - "translate": [ - { - "time": 0.3333 - }, - { - "time": 0.6667, - "x": -231.71, - "y": 365.51 - } - ], - "scale": [ - {}, - { - "time": 0.3333, - "x": 1.1, - "y": 1.1 - }, - { - "time": 0.6667, - "x": 3, - "y": 3 - } - ] - }, - "bone2": { - "rotate": [ - { - "time": 0.1333 - }, - { - "time": 0.3, - "angle": -177 - }, - { - "time": 0.4667, - "angle": 81.64 - } - ], - "translate": [ - { - "time": 0.4667 - }, - { - "time": 0.8, - "x": 258.57, - "y": 206.19 - } - ], - "scale": [ - { - "time": 0.1333 - }, - { - "time": 0.4667, - "x": 1.1, - "y": 1.1 - }, - { - "time": 0.8, - "x": 3, - "y": 3 - } - ] - }, - "luosi2": { - "rotate": [ - { - "time": 0.5 - }, - { - "time": 0.8, - "angle": -120.91 - } - ] - }, - "kou2": { - "rotate": [ - { - "time": 0.6667 - }, - { - "time": 0.9333, - "angle": -136.48 - } - ], - "translate": [ - { - "time": 0.6667 - }, - { - "time": 0.9333, - "x": -410.73, - "y": -378.57 - } - ] - }, - "bone5": { - "rotate": [ - { - "time": 0.1667 - }, - { - "time": 0.3333, - "angle": -177 - }, - { - "time": 0.5, - "angle": 81.64 - } - ], - "translate": [ - { - "time": 0.5 - }, - { - "time": 0.8333, - "x": -351.46, - "y": -250.38 - } - ], - "scale": [ - { - "time": 0.1667 - }, - { - "time": 0.5, - "x": 1.1, - "y": 1.1 - }, - { - "time": 0.8333, - "x": 3, - "y": 3 - } - ] - }, - "luosi3": { - "rotate": [ - { - "time": 0.3667 - }, - { - "time": 0.6667, - "angle": -120.91 - } - ] - }, - "bone6": { - "rotate": [ - { - "time": 0.3 - }, - { - "time": 0.4667, - "angle": -177 - }, - { - "time": 0.6333, - "angle": 81.64 - } - ], - "translate": [ - { - "time": 0.6333 - }, - { - "time": 0.9667, - "x": 173.03, - "y": -292.38 - } - ], - "scale": [ - { - "time": 0.3 - }, - { - "time": 0.6333, - "x": 1.1, - "y": 1.1 - }, - { - "time": 0.9667, - "x": 3, - "y": 3 - } - ] - }, - "luosi4": { - "rotate": [ - { - "time": 0.5 - }, - { - "time": 0.8, - "angle": -120.91 - } - ] - } - } - } - } - }, - "_atlasText": "\njiekou_heng.png\nsize: 148,148\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\n连接块/kou1\n rotate: false\n xy: 2, 121\n size: 52, 24\n orig: 52, 24\n offset: 0, 0\n index: -1\n连接块/kou2\n rotate: false\n xy: 56, 121\n size: 52, 24\n orig: 52, 24\n offset: 0, 0\n index: -1\n连接块/luosi\n rotate: true\n xy: 110, 122\n size: 23, 21\n orig: 23, 21\n offset: 0, 0\n index: -1\n连接块/luosi2\n rotate: false\n xy: 133, 133\n size: 12, 12\n orig: 12, 12\n offset: 0, 0\n index: -1\n", - "textures": [ - { - "__uuid__": "b422f3cf-81f1-4bda-9b15-c5ef7a9687b8" - } - ], - "textureNames": [ - "jiekou_heng.png" - ], - "scale": 1 -} \ No newline at end of file diff --git a/library/imports/cb/cbf87552-edd2-496f-827c-a59a22552fbb.json b/library/imports/cb/cbf87552-edd2-496f-827c-a59a22552fbb.json deleted file mode 100644 index 6ae5d74..0000000 --- a/library/imports/cb/cbf87552-edd2-496f-827c-a59a22552fbb.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "10color5", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 388, - 537, - 61, - 266 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 266 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/cc/cc01997d-495e-480d-871e-be405a6c38b5.json b/library/imports/cc/cc01997d-495e-480d-871e-be405a6c38b5.json deleted file mode 100644 index 90b1800..0000000 --- a/library/imports/cc/cc01997d-495e-480d-871e-be405a6c38b5.json +++ /dev/null @@ -1,248 +0,0 @@ -{ - "__type__": "cc.SpriteAtlas", - "_name": "door.plist", - "_objFlags": 0, - "_native": "", - "_spriteFrames": { - "10color1": { - "__uuid__": "f9de4f9f-c4fa-49af-a8c5-7299bbbc26c6" - }, - "10color2": { - "__uuid__": "cddc81e8-863d-4e14-91ac-4eb044ef5f96" - }, - "10color3": { - "__uuid__": "c84b719d-af4e-4688-b270-b5b3ebe7f7f0" - }, - "10color4": { - "__uuid__": "2f23c78c-a279-4428-81a7-098cc67b3640" - }, - "10color5": { - "__uuid__": "cbf87552-edd2-496f-827c-a59a22552fbb" - }, - "10color6": { - "__uuid__": "747709de-f3f7-4042-8ac9-9ff807c4b7cf" - }, - "1color1": { - "__uuid__": "d94491c5-a3e8-48d2-b260-3b8d516f564e" - }, - "1color2": { - "__uuid__": "cd704b98-c709-4fb6-a3b1-873723c82e14" - }, - "1color3": { - "__uuid__": "edd195cc-2af5-4a7a-bf49-2af75e60d50a" - }, - "1color4": { - "__uuid__": "6b1b5072-9a41-44e7-9923-3855864d5120" - }, - "1color5": { - "__uuid__": "6899ee49-88e4-44ff-b7f9-421031d84e6e" - }, - "1color6": { - "__uuid__": "917a86f2-c688-4cf5-9568-37632e1964b1" - }, - "2color1": { - "__uuid__": "287c291c-a6f2-4f5f-9c2e-af814874901b" - }, - "2color2": { - "__uuid__": "d8ed1577-eef1-42b8-986a-a9619e068d41" - }, - "2color3": { - "__uuid__": "39687b17-060f-401d-b776-9597fd00d95c" - }, - "2color4": { - "__uuid__": "f895411c-ea37-4419-9f12-057e76049b29" - }, - "2color5": { - "__uuid__": "c74f5c84-d250-4e6a-a6dc-5ce8b9e46633" - }, - "2color6": { - "__uuid__": "21696b26-2ba1-410c-a02f-c7cf63fdb349" - }, - "3color1": { - "__uuid__": "433a5eb9-bd88-4fcf-9811-8b58f93dea65" - }, - "3color2": { - "__uuid__": "ef5bfdc0-6a9e-4866-bc77-9c69a629796b" - }, - "3color3": { - "__uuid__": "e6235cef-05a1-44b7-aa4c-46b51bc91632" - }, - "3color4": { - "__uuid__": "bc920137-4c10-41ac-b55d-afaa7a733177" - }, - "3color5": { - "__uuid__": "0f1dcd5c-03b8-4f85-9edc-9002472876e3" - }, - "3color6": { - "__uuid__": "daad8024-c803-4b18-bb58-77a8620fd0ec" - }, - "4color1": { - "__uuid__": "1405acc7-1f74-46f3-9975-839e5337673d" - }, - "4color2": { - "__uuid__": "3718b4a0-0fb3-490b-85d4-64a2ac95c437" - }, - "4color3": { - "__uuid__": "bbafd681-01fb-47b0-a2ff-b15b926a240b" - }, - "4color4": { - "__uuid__": "ac5d82a3-1111-4557-b9f7-0b4ba525fbd5" - }, - "4color5": { - "__uuid__": "9c999eaf-168d-480a-9a0e-175e787630c9" - }, - "4color6": { - "__uuid__": "dc7d898f-98f6-45e3-a908-1eab888d9383" - }, - "5color1": { - "__uuid__": "4b6d2792-ce59-4597-8d54-3e667f5e4ad7" - }, - "5color2": { - "__uuid__": "01a25c6d-3527-4d0b-8ac0-f3e54bd2863e" - }, - "5color3": { - "__uuid__": "3bd263ae-509c-4b63-8c11-c545402c77b8" - }, - "5color4": { - "__uuid__": "a39ecd5d-7cdf-4caf-865d-81f806b582f3" - }, - "5color5": { - "__uuid__": "f05b3170-ab5d-4af5-96fa-ca996cc795e3" - }, - "5color6": { - "__uuid__": "20e22b3b-684d-405d-ac5b-5cd9ba4f9b66" - }, - "6color1": { - "__uuid__": "28e0793b-62a9-41b7-9512-082ce55eca71" - }, - "6color2": { - "__uuid__": "550602d1-08e8-467e-8bd0-5295c4981fec" - }, - "6color3": { - "__uuid__": "e538a058-80c2-49b8-aea0-f39d69183437" - }, - "6color4": { - "__uuid__": "9cca10f3-7a1a-402a-83d4-30597d8144c7" - }, - "6color5": { - "__uuid__": "a3f51e26-9f3f-4a35-8d40-dfff45754b25" - }, - "6color6": { - "__uuid__": "fe897368-c5ca-4c14-a316-afe70f5e80cc" - }, - "7color1": { - "__uuid__": "e712ba83-24ff-404f-8699-61c4902001c9" - }, - "7color2": { - "__uuid__": "dd2060c3-db79-48ff-b6b2-346e357ec7ed" - }, - "7color3": { - "__uuid__": "880acb82-9636-4221-b533-3c9f826c4d9c" - }, - "7color4": { - "__uuid__": "c97d0dd9-8a86-4d84-a51c-4451beea4e1a" - }, - "7color5": { - "__uuid__": "2defa794-ed61-4edf-a314-b8cda4b029aa" - }, - "7color6": { - "__uuid__": "1672955d-283c-47be-a394-28cac1c6ba5b" - }, - "8color1": { - "__uuid__": "6abff37f-5b52-4658-bd2b-c146e6dea162" - }, - "8color2": { - "__uuid__": "e91b0b84-c90c-4f76-b1e4-b8976cb6dede" - }, - "8color3": { - "__uuid__": "582183eb-bd29-403e-848d-164b9ac0ed50" - }, - "8color4": { - "__uuid__": "43ba2e3e-eb31-41b2-98d0-74bf98cad885" - }, - "8color5": { - "__uuid__": "74c1ec31-91eb-423e-97c9-68c93ffde355" - }, - "8color6": { - "__uuid__": "e468d8cc-1332-4516-b4d6-f4dd61e6ab54" - }, - "9color1": { - "__uuid__": "360ebdc2-02ca-4937-8d15-8224b0950ab2" - }, - "9color2": { - "__uuid__": "3d4ca3d9-74fd-4408-99e3-0f9b0101c7b3" - }, - "9color3": { - "__uuid__": "88a9a994-1d0b-49c1-a081-3f33c864b120" - }, - "9color4": { - "__uuid__": "006ec77b-2f24-4f23-8685-898cc6802c7f" - }, - "9color5": { - "__uuid__": "dab229f9-0033-4f2e-a766-b34f445fe773" - }, - "9color6": { - "__uuid__": "a5543b75-5f2f-4355-8b34-7770803e78bc" - }, - "dikuai": { - "__uuid__": "b1760ce5-36c7-4d8b-bb5f-069a448ebbf2" - }, - "shu_zl1": { - "__uuid__": "66c27f02-719e-422c-9277-42063833c0af" - }, - "shu_zl1_1": { - "__uuid__": "9b80c949-4fcd-4e45-afa9-ad91683ef7b7" - }, - "shu_zl1_2": { - "__uuid__": "36c23619-6422-47be-aa02-f78b7618bb3c" - }, - "shu_zl1_3": { - "__uuid__": "2c8edc9c-c130-4c61-98f1-0a9b2edf3270" - }, - "shu_zl2": { - "__uuid__": "894c0780-7f4a-4a9f-ad92-de3471abb5c5" - }, - "shu_zl2_1": { - "__uuid__": "18d68fd0-41ef-430e-9de2-d38b9e55b08c" - }, - "shu_zl2_11": { - "__uuid__": "a8c7af66-0323-4bbd-b41b-ae9ed5671c84" - }, - "shu_zl2_2": { - "__uuid__": "90d2bb3b-aeca-4ea8-9afa-c2ae9871791b" - }, - "shu_zl2_22": { - "__uuid__": "aa13f028-c4c4-4978-bc3e-56b1ef1f2843" - }, - "shu_zl2_3": { - "__uuid__": "ac2a29e0-63e5-4f9d-b088-dd6682f8bde4" - }, - "shu_zl2_33": { - "__uuid__": "6012f579-6820-44ee-89c4-87c6c9b25f44" - }, - "wall1": { - "__uuid__": "fc8fd6fa-3cc2-4a69-a2f7-2c521de510b1" - }, - "wall2": { - "__uuid__": "52f7fc1c-b560-4b6d-b15e-b38b6584a5d8" - }, - "wall3": { - "__uuid__": "865e12b4-8506-4026-ab52-9c8421100cc4" - }, - "wall4": { - "__uuid__": "02a22e2f-85e0-4ce1-a955-6ea4bf514319" - }, - "wall5": { - "__uuid__": "ee73bdf1-0624-464f-a268-cb0ff3f2952b" - }, - "wall6": { - "__uuid__": "e7bbdb15-5185-4c6e-a2f6-1c337b60b460" - }, - "wall7": { - "__uuid__": "3042034a-eafb-4920-aacc-79bd4f56d417" - }, - "zhangai": { - "__uuid__": "e200ed15-b2bf-49eb-864b-d0ead7b9fbd6" - } - } -} \ No newline at end of file diff --git a/library/imports/cd/cd704b98-c709-4fb6-a3b1-873723c82e14.json b/library/imports/cd/cd704b98-c709-4fb6-a3b1-873723c82e14.json deleted file mode 100644 index 4e95523..0000000 --- a/library/imports/cd/cd704b98-c709-4fb6-a3b1-873723c82e14.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "1color2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 127, - 538, - 258, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 258, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/cd/cddc81e8-863d-4e14-91ac-4eb044ef5f96.json b/library/imports/cd/cddc81e8-863d-4e14-91ac-4eb044ef5f96.json deleted file mode 100644 index 14b53bd..0000000 --- a/library/imports/cd/cddc81e8-863d-4e14-91ac-4eb044ef5f96.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "10color2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 840, - 467, - 258, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 258, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/d7/d7251c98-6e8e-4a25-a9b8-f679b5358540.json b/library/imports/ce/ce2c1c04-dfdd-485f-ba0b-9e9e2d5bd775.json similarity index 72% rename from library/imports/d7/d7251c98-6e8e-4a25-a9b8-f679b5358540.json rename to library/imports/ce/ce2c1c04-dfdd-485f-ba0b-9e9e2d5bd775.json index 7b551f0..996591e 100644 --- a/library/imports/d7/d7251c98-6e8e-4a25-a9b8-f679b5358540.json +++ b/library/imports/ce/ce2c1c04-dfdd-485f-ba0b-9e9e2d5bd775.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_1", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 435, 1824, diff --git a/library/imports/27/2764a9d6-9cd2-4e21-b697-d77664324940.json b/library/imports/ce/ceb856fb-1003-46dd-9a43-3c3c8399376e.json similarity index 73% rename from library/imports/27/2764a9d6-9cd2-4e21-b697-d77664324940.json rename to library/imports/ce/ceb856fb-1003-46dd-9a43-3c3c8399376e.json index 6fad8b2..604bd91 100644 --- a/library/imports/27/2764a9d6-9cd2-4e21-b697-d77664324940.json +++ b/library/imports/ce/ceb856fb-1003-46dd-9a43-3c3c8399376e.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_15", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1017, 1068, diff --git a/library/imports/d0/d0b9df3e-5096-4aab-b7dc-02ef468a7b5a.json b/library/imports/d0/d0b9df3e-5096-4aab-b7dc-02ef468a7b5a.json deleted file mode 100644 index c24d765..0000000 --- a/library/imports/d0/d0b9df3e-5096-4aab-b7dc-02ef468a7b5a.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "2down4", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 860, - 48, - 45, - 124 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 124 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/d2/d2310ccc-2e6d-46da-adb9-dd8bf15d9f3f.json b/library/imports/d2/d2310ccc-2e6d-46da-adb9-dd8bf15d9f3f.json deleted file mode 100644 index 7d0a753..0000000 --- a/library/imports/d2/d2310ccc-2e6d-46da-adb9-dd8bf15d9f3f.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "1down2", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 125, - 1, - 243, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 243, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/d3/d3b86b6b-23b7-4ff2-914a-cd69af879bad.json b/library/imports/d3/d3b86b6b-23b7-4ff2-914a-cd69af879bad.json deleted file mode 100644 index 8387113..0000000 --- a/library/imports/d3/d3b86b6b-23b7-4ff2-914a-cd69af879bad.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "8down5", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 471, - 45, - 245 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 245 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/d4/d4d42228-3ee1-4a5f-808f-ce8b0b494ba7.json b/library/imports/d4/d4d42228-3ee1-4a5f-808f-ce8b0b494ba7.json deleted file mode 100644 index 3279846..0000000 --- a/library/imports/d4/d4d42228-3ee1-4a5f-808f-ce8b0b494ba7.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "mofabang_texiao", - "texture": "363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de", - "atlas": "", - "rect": [ - 2, - 2, - 380, - 993 - ], - "offset": [ - -308, - 1.5 - ], - "originalSize": [ - 1000, - 1000 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/d8/d8ed1577-eef1-42b8-986a-a9619e068d41.json b/library/imports/d8/d8ed1577-eef1-42b8-986a-a9619e068d41.json deleted file mode 100644 index 94ad35b..0000000 --- a/library/imports/d8/d8ed1577-eef1-42b8-986a-a9619e068d41.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "2color2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 127, - 609, - 258, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 258, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/d9/d94491c5-a3e8-48d2-b260-3b8d516f564e.json b/library/imports/d9/d94491c5-a3e8-48d2-b260-3b8d516f564e.json deleted file mode 100644 index f433889..0000000 --- a/library/imports/d9/d94491c5-a3e8-48d2-b260-3b8d516f564e.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "1color1", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 989, - 538, - 138, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 138, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/d9/d981ca29-90a8-485d-a024-a8167d239985.json b/library/imports/d9/d981ca29-90a8-485d-a024-a8167d239985.json deleted file mode 100644 index c183dcc..0000000 --- a/library/imports/d9/d981ca29-90a8-485d-a024-a8167d239985.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "5down6", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 248, - 330, - 45, - 365 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 365 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/65/65b2a758-2670-48ed-a008-328544dcd575.json b/library/imports/d9/d9d381ae-0c72-4ab4-a470-89bb04e2c78d.json similarity index 73% rename from library/imports/65/65b2a758-2670-48ed-a008-328544dcd575.json rename to library/imports/d9/d9d381ae-0c72-4ab4-a470-89bb04e2c78d.json index 4620788..58e6126 100644 --- a/library/imports/65/65b2a758-2670-48ed-a008-328544dcd575.json +++ b/library/imports/d9/d9d381ae-0c72-4ab4-a470-89bb04e2c78d.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_10", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 283, 839, diff --git a/library/imports/da/daad8024-c803-4b18-bb58-77a8620fd0ec.json b/library/imports/da/daad8024-c803-4b18-bb58-77a8620fd0ec.json deleted file mode 100644 index abfe271..0000000 --- a/library/imports/da/daad8024-c803-4b18-bb58-77a8620fd0ec.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "3color6", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 129, - 1, - 61, - 387 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 387 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/da/dab229f9-0033-4f2e-a766-b34f445fe773.json b/library/imports/da/dab229f9-0033-4f2e-a766-b34f445fe773.json deleted file mode 100644 index 2c9c0d8..0000000 --- a/library/imports/da/dab229f9-0033-4f2e-a766-b34f445fe773.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "9color5", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1, - 806, - 61, - 267 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 267 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/88/8808dcaf-1158-4df2-8eff-725d85cf63f1.json b/library/imports/dc/dc762f76-685e-44d7-88f5-5bd670c20532.json similarity index 72% rename from library/imports/88/8808dcaf-1158-4df2-8eff-725d85cf63f1.json rename to library/imports/dc/dc762f76-685e-44d7-88f5-5bd670c20532.json index 91d8a12..dd5edfe 100644 --- a/library/imports/88/8808dcaf-1158-4df2-8eff-725d85cf63f1.json +++ b/library/imports/dc/dc762f76-685e-44d7-88f5-5bd670c20532.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_7", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 798, 1, diff --git a/library/imports/dc/dc7d898f-98f6-45e3-a908-1eab888d9383.json b/library/imports/dc/dc7d898f-98f6-45e3-a908-1eab888d9383.json deleted file mode 100644 index 245c755..0000000 --- a/library/imports/dc/dc7d898f-98f6-45e3-a908-1eab888d9383.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "4color6", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 129, - 64, - 61, - 387 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 387 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/dc/dca5e70b-8d3f-4ac0-abe7-d0c5647f7837.json b/library/imports/dc/dca5e70b-8d3f-4ac0-abe7-d0c5647f7837.json deleted file mode 100644 index e7522d6..0000000 --- a/library/imports/dc/dca5e70b-8d3f-4ac0-abe7-d0c5647f7837.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "__type__": "cc.Texture2D", - "content": "0,9729,9729,33071,33071,0,0,1" -} \ No newline at end of file diff --git a/library/imports/dc/dca5e70b-8d3f-4ac0-abe7-d0c5647f7837.png b/library/imports/dc/dca5e70b-8d3f-4ac0-abe7-d0c5647f7837.png deleted file mode 100644 index f6c3ec3..0000000 Binary files a/library/imports/dc/dca5e70b-8d3f-4ac0-abe7-d0c5647f7837.png and /dev/null differ diff --git a/library/imports/dd/dd2060c3-db79-48ff-b6b2-346e357ec7ed.json b/library/imports/dd/dd2060c3-db79-48ff-b6b2-346e357ec7ed.json deleted file mode 100644 index 82188de..0000000 --- a/library/imports/dd/dd2060c3-db79-48ff-b6b2-346e357ec7ed.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "7color2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 270, - 813, - 258, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 258, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js b/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js index fb71e2f..54fb6e6 100644 --- a/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js +++ b/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js @@ -373,13 +373,16 @@ var GameManager = /** @class */ (function (_super) { cc.fx.StorageMessage.setStorage("prop", propInfoNew); } else { - cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; - cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; - cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; + // cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; + // cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; + // cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; + cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; + cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; + cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; } - cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; - cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; - cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; + // cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; + // cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; + // cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; cc.fx.GameTool.setUserProp(0, 0, function (data) { }); } diff --git a/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js.map b/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js.map index c28c802..bb917b4 100644 --- a/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js.map +++ b/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\GameManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport { MiniGameManager } from \"./Sdk/MiniGameManager\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class GameManager extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n static _instance : GameManager = null;\r\n\r\n @property({type: [cc.Prefab], tooltip:\"方块数组\"})\r\n Block_Array : Array = [];\r\n\r\n @property({type: [cc.Prefab], tooltip:\"墙壁数组\"})\r\n Wall_Prefab : Array = [];\r\n\r\n @property({type: [cc.SpriteAtlas], tooltip:\"方块颜色\"})\r\n Block_Color : Array = [];\r\n\r\n particleEffects: cc.ParticleAsset[];\r\n // @property({type: [cc.ParticleSystem], tooltip:\"粒子数组\"})\r\n // particleEffects : Array = [];\r\n\r\n load1 :boolean = false;\r\n load2 :boolean = false;\r\n load3 :boolean = false;\r\n load4 :boolean = false;\r\n load5 :boolean = false;\r\n scheduleCallback: any;\r\n timeNumber: number;\r\n\r\n \r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad () {\r\n\r\n window.initMgr();\r\n this.timeNumber = 3;\r\n this.startTimeCutDown();\r\n cc.fx.GameConfig.init(true);\r\n cc.fx.GameConfig.GM_INFO.gameState = false;\r\n this.readMusicConfig();\r\n console.log(\"音乐开关\",cc.fx.GameConfig.GM_INFO.musicOpen);\r\n cc.fx.AudioManager._instance.playMusicGame();\r\n\r\n this.load1 = this.load2 = this.load3 = this.load4 = this.load5 =false;\r\n setTimeout(() => {\r\n this.readUserData();\r\n }, 200);\r\n \r\n\r\n if (GameManager._instance == null) {\r\n GameManager._instance = this;\r\n cc.game.addPersistRootNode(this.node);\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n const path = 'prefab/block';\r\n const path2 = 'prefab/wall';\r\n cc.resources.loadDir(path, cc.Prefab, (err, assets: cc.Prefab[]) => {\r\n if (err) {\r\n \r\n console.error('动态加载 Prefab 失败:', err);\r\n cc.director.loadScene(\"LoadScene\");\r\n return;\r\n }\r\n // 将加载的 Prefab 赋值给 Block_Array\r\n this.Block_Array = assets;\r\n this.setSort();\r\n this.load1 = true;\r\n });\r\n\r\n cc.resources.loadDir(path2, cc.Prefab, (err, assets: cc.Prefab[]) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n cc.director.loadScene(\"LoadScene\");\r\n return;\r\n }\r\n // 将加载的 Prefab 赋值给 Block_Array\r\n this.Wall_Prefab = assets;\r\n this.load2 = true;\r\n this.setWallPrefabSort();\r\n });\r\n\r\n // debugger;\r\n\r\n // setTimeout(() => {\r\n // cc.director.preloadScene(\"HomeScene\", (err) => {\r\n // if (err) {\r\n // console.error('预加载 HomeScene 场景失败:', err);\r\n // return;\r\n // }\r\n // });\r\n // }, 1000);\r\n\r\n // 检测微信小游戏切到后台\r\n if (cc.sys.platform === cc.sys.WECHAT_GAME) {\r\n //@ts-ignore\r\n wx.onHide(() => {\r\n this.onHide();\r\n });\r\n // 检测微信小游戏回到前台\r\n //@ts-ignore\r\n wx.onShow(() => {\r\n this.onShow();\r\n });\r\n }\r\n\r\n }\r\n\r\n onHide () {\r\n cc.audioEngine.stopMusic();\r\n cc.game.pause();\r\n }\r\n\r\n onShow () {\r\n cc.audioEngine.resumeMusic();\r\n cc.game.resume();\r\n }\r\n\r\n loadParticleEffects() {\r\n }\r\n\r\n\r\n \r\n\r\n setWallPrefabSort() {\r\n const order = ['down', 'downLeft', 'downRight', 'left','right','up','upLeft','upRight'];\r\n this.Wall_Prefab.sort((a, b) => {\r\n const indexA = order.indexOf(a.name);\r\n const indexB = order.indexOf(b.name);\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n \r\n }\r\n\r\n setParticleSort() {\r\n const order = ['top', 'bot', 'rig', 'lef'];\r\n this.particleEffects.sort((a, b) => {\r\n const indexA = order.indexOf(a.name.substr(0,3));\r\n const indexB = order.indexOf(b.name.substr(0,3));\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n }\r\n\r\n setSort(){\r\n this.Block_Array.sort((a, b) => {\r\n // 从名称中提取数字部分\r\n const numberA = parseInt(a.name.match(/\\d+/)?.[0] || '0', 10);\r\n const numberB = parseInt(b.name.match(/\\d+/)?.[0] || '0', 10);\r\n return numberA - numberB;\r\n });\r\n }\r\n\r\n start () {\r\n\r\n }\r\n\r\n startGame(){\r\n console.log(\"进入场景之前_____________\",cc.fx.GameConfig.GM_INFO.first);\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n\r\n returnHome(){\r\n cc.tween(this.node.getChildByName(\"Game\"))\r\n .to(0.5, {opacity: 100})\r\n .call(() => {\r\n \r\n // 预加载成功后加载场景\r\n cc.director.loadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n console.error('加载 HomeScene 场景失败:', err);\r\n } else {\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n });\r\n })\r\n .start();\r\n\r\n cc.tween(this.node.getChildByName(\"mask\"))\r\n .to(0.5,{opacity: 255})\r\n .start();\r\n\r\n // cc.loader.releaseAll();\r\n // 预加载 HomeScene 场景\r\n\r\n \r\n }\r\n\r\n\r\n readUserData(retryCount = 0){\r\n //@ts-ignore\r\n if (typeof wx !== 'undefined' && wx !== null) { \r\n let levelInfo = cc.fx.StorageMessage.getStorage(\"level\");\r\n //旧的读取数据设置数据方法,以强联网为主\r\n if(levelInfo == undefined || levelInfo == \"\" || levelInfo == null){\r\n this.oldReadData(retryCount);\r\n }\r\n //新的读取数据设置方法,以本地为主\r\n else{\r\n this.newReadData();\r\n }\r\n console.log(\"即将读取体力值\");\r\n cc.fx.GameTool.getHealth((data)=>{\r\n console.log(\"体力值完成进入游戏\");\r\n this.load5 = true;\r\n });\r\n\r\n }\r\n else{\r\n this.load3 = true;\r\n this.load4 = true;\r\n this.load5 = true;\r\n cc.fx.GameTool.getHealth(null);\r\n }\r\n // 存储用户数据\r\n }\r\n\r\n readMusicConfig(){\r\n let audioInfo = cc.fx.StorageMessage.getStorage(\"music\");\r\n if(audioInfo == undefined || audioInfo == \"\" || audioInfo == null){\r\n audioInfo = {\r\n \"musicOpen\": true, //音乐\r\n \"effectOpen\": true, //音效\r\n \"vibrateOpen\": true, //震动\r\n }\r\n cc.fx.StorageMessage.setStorage(\"music\",audioInfo);\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO.musicOpen = audioInfo.musicOpen;\r\n cc.fx.GameConfig.GM_INFO.effectOpen = audioInfo.effectOpen;\r\n cc.fx.GameConfig.GM_INFO.vibrateOpen = audioInfo.vibrateOpen;\r\n }\r\n }\r\n \r\n //新用户,有本地缓存读取配置\r\n newReadData(){\r\n console.log(\"读取新信息\");\r\n let openid = cc.fx.StorageMessage.getStorage(\"openid\");\r\n if(openid == null || openid == \"\" || openid == undefined){\r\n console.log(\"没有openid\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n console.log('读取用户数据成功', res.result)\r\n if(res.result.code == 404 && res.result.message == \"未找到用户数据\"){\r\n }\r\n else if(res.result.code == 200){\r\n if(res.result.data){\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid;\r\n cc.fx.GameConfig.GM_INFO.username = res.result.data.username;\r\n cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar;\r\n const register_time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(register_time);\r\n cc.fx.StorageMessage.setStorage(\"openid\",cc.fx.GameConfig.GM_INFO.openid);\r\n }\r\n }\r\n },\r\n fail: err => {\r\n console.error('读取用户数据失败', err)\r\n }\r\n })\r\n }\r\n else{\r\n if(openid)\r\n cc.fx.GameConfig.GM_INFO.openid = openid;\r\n }\r\n \r\n\r\n\r\n //等级信息\r\n cc.fx.GameTool.getUserLevel((data) =>{\r\n const timestamp = Date.now();\r\n let levelInfo = cc.fx.StorageMessage.getStorage(\"level\");\r\n if(data.result.code == 404 && data.result.message == \"未找到关卡数据\"){\r\n // console.log(\"没有等级信息,从用户接口拿到数据\");\r\n if(levelInfo.level){\r\n cc.fx.GameConfig.GM_INFO.level = levelInfo.level;\r\n }\r\n this.load4 = true;\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n // console.log(\"有等级信息,从关卡接口拿到数据\",data.result.data);\r\n //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储\r\n let temp = data.result.timestamp - levelInfo.timestamp;\r\n console.log(\"等级时间差:\",temp);\r\n if((data.result.timestamp - levelInfo.timestamp) < 10000){\r\n if(levelInfo.level){\r\n console.log(\"以游戏前端等级为准\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = levelInfo.level;\r\n // console.log(\"等级为:\",cc.fx.GameConfig.GM_INFO.level);\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n });\r\n }\r\n\r\n }\r\n //服务器端存储时间新于游戏端,以服务器端为主,往前端存储\r\n else{\r\n console.log(\"以服务器等级为准\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = data.result.data; \r\n levelInfo.level = cc.fx.GameConfig.GM_INFO.level;\r\n levelInfo.timestamp = timestamp;\r\n // console.log(\"1111111存储关卡数据:\",cc.fx.GameConfig.GM_INFO.level);\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n }\r\n this.load4 = true;\r\n }\r\n });\r\n //金币信息\r\n cc.fx.GameTool.getUserCoin((data) =>{\r\n const timestamp = Date.now();\r\n let coinInfo = cc.fx.StorageMessage.getStorage(\"coin\");\r\n if(data.result.code == 404 && data.result.message == \"未找到金币数据\"){\r\n if(coinInfo.coin)\r\n cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin;\r\n console.log(\"没有金币信息,从用户接口拿到数据\",cc.fx.GameConfig.GM_INFO.coin);\r\n this.load3 = true;\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n // console.log(\"有金币信息,从金币接口拿到数据\",data.result.data);\r\n //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储\r\n let temp = data.result.timestamp - coinInfo.timestamp;\r\n console.log(\"金币时间差:\",temp);\r\n if((data.result.timestamp - coinInfo.timestamp) < 10000){\r\n console.log(\"以前端金幣为准:\",coinInfo);\r\n if(coinInfo.coin)\r\n cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin;\r\n else{\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin;\r\n coinInfo.timestamp = timestamp;\r\n console.log(\"11111111111\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n }\r\n console.log(\"改变后金币:\",cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n });\r\n }\r\n //服务器端存储时间新于游戏端,以服务器端为主,往前端存储\r\n else{\r\n console.log(\"以服务器金幣为准:\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data; \r\n coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin;\r\n coinInfo.timestamp = timestamp;\r\n console.log(\"2222222222\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n }\r\n this.load3 = true;\r\n } \r\n });\r\n //道具信息\r\n cc.fx.GameTool.getUserProp((data) =>{\r\n const timestamp = Date.now();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n if(data.result.code == 404 && data.result.message == \"未找到道具数据\"){\r\n console.log(\"没有道具信息,从用户接口拿到数据\",propInfo);\r\n if(propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined){\r\n console.log(\"2222222道具数据异常\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmoun = 0;\r\n let propInfoNew = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmoun,\r\n \"timestamp\":timestamp\r\n }\r\n console.log(\"1111111上传道具信息:\",propInfoNew);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfoNew);\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n }\r\n\r\n \r\n cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n // console.log(\"本地时间戳\",propInfo.timestamp,\"服务器时间戳\",data.result.timestamp);\r\n if((data.result.timestamp - propInfo.timestamp) < 10000){\r\n console.log(\"以前端道具为主:\",propInfo);\r\n if(propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined){\r\n console.log(\"111111道具数据异常\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n let propInfoNew = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\":timestamp\r\n }\r\n console.log(\"333333上传道具信息:\",propInfoNew);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfoNew);\r\n }\r\n else{\r\n console.log(\"道具数据正常\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n });\r\n }\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n let propInfoNew = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\":timestamp\r\n }\r\n console.log(\"22222222上传道具信息:\",propInfoNew,data.result);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfoNew);\r\n }\r\n } \r\n });\r\n }\r\n //旧用户,无本地缓存读取配置\r\n oldReadData(retryCount:number){\r\n console.log(\"读取旧信息\");\r\n const MAX_RETRIES = 15;\r\n const timestamp = Date.now();\r\n // 读取用户数据\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => { \r\n console.log('读取用户数据成功', res.result)\r\n if(res.result.code == 404 && res.result.message == \"未找到用户数据\"){\r\n if(res.result.openid){\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid\r\n }\r\n cc.fx.GameConfig.GM_INFO.first = true;\r\n this.load3 = true;\r\n this.load4 = true;\r\n let levelInfo = {\"level\":0,\"timestamp\":timestamp};\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n let coinInfo = {\"coin\":0,\"timestamp\":timestamp};\r\n console.log(\"33333333333\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n let propInfo = {\r\n \"freezeAmount\":0,\r\n \"hammerAmount\":0,\r\n \"magicAmount\":0,\r\n \"timestamp\":timestamp,\r\n }\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n\r\n\r\n cc.fx.GameTool.setUserInfo((data)=>{\r\n if(data.result.code == 200){\r\n console.log(\"上传用户信息成功\",data);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n }, \r\n success: res => {\r\n console.log(\"上传后,读取用户信息,为上报注册时间\")\r\n if(res.result.code == 200){\r\n const time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(time);\r\n }\r\n }\r\n })\r\n }\r\n });\r\n console.log(\"服务器也没有金币信息\",cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin(cc.fx.GameConfig.GM_INFO.coin,(data)=>{\r\n \r\n });\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n if(data.result.code == 200){\r\n console.log(\"上传道具信息成功\",data);\r\n }\r\n else{\r\n MiniGameSdk.API.showToast(\"网络异常,正在努力加载\");\r\n setTimeout(() => {\r\n this.oldReadData(0);\r\n }, 1000);\r\n }\r\n });\r\n }, 0);\r\n }\r\n else if(res.result.code == 200){\r\n if(res.result.data){\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid;\r\n cc.fx.GameConfig.GM_INFO.level = res.result.data.level;\r\n cc.fx.GameConfig.GM_INFO.coin = res.result.data.coinAmount;\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = res.result.data.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = res.result.data.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = res.result.data.magicAmount;\r\n cc.fx.GameConfig.GM_INFO.username = res.result.data.username;\r\n cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar;\r\n cc.fx.StorageMessage.setStorage(\"openid\",cc.fx.GameConfig.GM_INFO.openid);\r\n const register_time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(register_time);\r\n }\r\n setTimeout(() => {\r\n cc.fx.GameTool.getUserCoin((data) =>{\r\n if(data.result.code == 404 && data.result.message == \"未找到金币数据\"){\r\n \r\n let coinInfo = {\"coin\":0,\"timestamp\":timestamp};\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n console.log(\"没有金币信息,从用户接口拿到数据\",cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n // console.log(\"上传\",data);\r\n this.load3 = true;\r\n });\r\n }\r\n else if(data.result.code == 200){\r\n // console.log(\"有金币信息,从金币接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n let coinInfo = {\"coin\":cc.fx.GameConfig.GM_INFO.coin,\"timestamp\":timestamp};\r\n console.log(\"存储金币信息:\",cc.fx.GameConfig.GM_INFO.coin);\r\n console.log(\"4444444444\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n this.load3 = true;\r\n }\r\n })\r\n }, 500);\r\n\r\n cc.fx.GameTool.getUserLevel((data) =>{\r\n if(data.result.code == 404 && data.result.message == \"未找到关卡数据\"){\r\n console.log(\"没有等级信息,从用户接口拿到数据\");\r\n let levelInfo = {\"level\":0,\"timestamp\":timestamp};\r\n // console.log(\"333333存储关卡数据:\",levelInfo);\r\n cc.fx.GameConfig.GM_INFO.level = 0;\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n console.log(\"拿到的数据\",data);\r\n this.load4 = true;\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n console.log(\"有等级信息,从关卡接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = data.result.data; \r\n let levelInfo = {\"level\":cc.fx.GameConfig.GM_INFO.level,\"timestamp\":timestamp};\r\n // console.log(\"444444存储关卡信息:\",levelInfo);\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n this.load4 = true;\r\n }\r\n })\r\n setTimeout(() => {\r\n cc.fx.GameTool.getUserProp((data) =>{\r\n if(data.result.code == 404 && data.result.message == \"未找到道具数据\"){\r\n console.log(\"没有道具信息,从用户接口拿到数据\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n let propInfo = {\r\n \"freezeAmount\":0,\r\n \"hammerAmount\":0,\r\n \"magicAmount\":0,\r\n \"timestamp\":timestamp,\r\n }\r\n console.log(\"上传道具信息:\",propInfo);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n console.log(\"有道具信息,从道具接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze || 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer || 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand || 0;\r\n let propInfo = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\":timestamp,\r\n }\r\n console.log(\"上传道具信息:\",propInfo);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n\r\n }\r\n })\r\n }, 0);\r\n \r\n }\r\n\r\n },\r\n fail: err => {\r\n console.error('读取用户数据失败', err)\r\n if (retryCount < MAX_RETRIES) {\r\n console.error(`读取用户数据失败,第 ${retryCount + 1} 次重试,错误信息:`, err);\r\n // 延迟 2 秒后重试\r\n setTimeout(() => {\r\n this.readUserData(retryCount + 1);\r\n }, 2000);\r\n } else {\r\n console.error('读取用户数据失败,达到最大重试次数,退出游戏', err);\r\n // 退出游戏\r\n cc.game.end();\r\n }\r\n }\r\n })\r\n }\r\n\r\n setUserData(){\r\n cc.fx.GameConfig.GameTool((data)=>{\r\n console.log(\"上传\",data);\r\n })\r\n }\r\n\r\n startTimeCutDown(){\r\n this.scheduleCallback = function(){\r\n if(this.timeNumber <= 0){\r\n this.stopTimeCutDown();\r\n }\r\n else{\r\n this.timeNumber -= 1;\r\n }\r\n }.bind(this);\r\n this.schedule(this.scheduleCallback, 1);\r\n }\r\n\r\n stopTimeCutDown(){\r\n if(this.scheduleCallback){\r\n this.unschedule(this.scheduleCallback);\r\n }\r\n }\r\n\r\n update (dt) {\r\n if(this.load1 && this.load2 && this.load3 && this.load4 && this.load5 && this.timeNumber <= 0){\r\n this.load1 = this.load2 = false;\r\n MiniGameSdk.API.shushu_Init();\r\n this.startGame();\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\GameManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport { MiniGameManager } from \"./Sdk/MiniGameManager\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class GameManager extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n static _instance : GameManager = null;\r\n\r\n @property({type: [cc.Prefab], tooltip:\"方块数组\"})\r\n Block_Array : Array = [];\r\n\r\n @property({type: [cc.Prefab], tooltip:\"墙壁数组\"})\r\n Wall_Prefab : Array = [];\r\n\r\n @property({type: [cc.SpriteAtlas], tooltip:\"方块颜色\"})\r\n Block_Color : Array = [];\r\n\r\n particleEffects: cc.ParticleAsset[];\r\n // @property({type: [cc.ParticleSystem], tooltip:\"粒子数组\"})\r\n // particleEffects : Array = [];\r\n\r\n load1 :boolean = false;\r\n load2 :boolean = false;\r\n load3 :boolean = false;\r\n load4 :boolean = false;\r\n load5 :boolean = false;\r\n scheduleCallback: any;\r\n timeNumber: number;\r\n\r\n \r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad () {\r\n\r\n window.initMgr();\r\n this.timeNumber = 3;\r\n this.startTimeCutDown();\r\n cc.fx.GameConfig.init(true);\r\n cc.fx.GameConfig.GM_INFO.gameState = false;\r\n this.readMusicConfig();\r\n console.log(\"音乐开关\",cc.fx.GameConfig.GM_INFO.musicOpen);\r\n cc.fx.AudioManager._instance.playMusicGame();\r\n\r\n this.load1 = this.load2 = this.load3 = this.load4 = this.load5 =false;\r\n setTimeout(() => {\r\n this.readUserData();\r\n }, 200);\r\n \r\n\r\n if (GameManager._instance == null) {\r\n GameManager._instance = this;\r\n cc.game.addPersistRootNode(this.node);\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n const path = 'prefab/block';\r\n const path2 = 'prefab/wall';\r\n cc.resources.loadDir(path, cc.Prefab, (err, assets: cc.Prefab[]) => {\r\n if (err) {\r\n \r\n console.error('动态加载 Prefab 失败:', err);\r\n cc.director.loadScene(\"LoadScene\");\r\n return;\r\n }\r\n // 将加载的 Prefab 赋值给 Block_Array\r\n this.Block_Array = assets;\r\n this.setSort();\r\n this.load1 = true;\r\n });\r\n\r\n cc.resources.loadDir(path2, cc.Prefab, (err, assets: cc.Prefab[]) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n cc.director.loadScene(\"LoadScene\");\r\n return;\r\n }\r\n // 将加载的 Prefab 赋值给 Block_Array\r\n this.Wall_Prefab = assets;\r\n this.load2 = true;\r\n this.setWallPrefabSort();\r\n });\r\n\r\n // debugger;\r\n\r\n // setTimeout(() => {\r\n // cc.director.preloadScene(\"HomeScene\", (err) => {\r\n // if (err) {\r\n // console.error('预加载 HomeScene 场景失败:', err);\r\n // return;\r\n // }\r\n // });\r\n // }, 1000);\r\n\r\n // 检测微信小游戏切到后台\r\n if (cc.sys.platform === cc.sys.WECHAT_GAME) {\r\n //@ts-ignore\r\n wx.onHide(() => {\r\n this.onHide();\r\n });\r\n // 检测微信小游戏回到前台\r\n //@ts-ignore\r\n wx.onShow(() => {\r\n this.onShow();\r\n });\r\n }\r\n\r\n }\r\n\r\n onHide () {\r\n cc.audioEngine.stopMusic();\r\n cc.game.pause();\r\n }\r\n\r\n onShow () {\r\n cc.audioEngine.resumeMusic();\r\n cc.game.resume();\r\n }\r\n\r\n loadParticleEffects() {\r\n }\r\n\r\n\r\n \r\n\r\n setWallPrefabSort() {\r\n const order = ['down', 'downLeft', 'downRight', 'left','right','up','upLeft','upRight'];\r\n this.Wall_Prefab.sort((a, b) => {\r\n const indexA = order.indexOf(a.name);\r\n const indexB = order.indexOf(b.name);\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n \r\n }\r\n\r\n setParticleSort() {\r\n const order = ['top', 'bot', 'rig', 'lef'];\r\n this.particleEffects.sort((a, b) => {\r\n const indexA = order.indexOf(a.name.substr(0,3));\r\n const indexB = order.indexOf(b.name.substr(0,3));\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n }\r\n\r\n setSort(){\r\n this.Block_Array.sort((a, b) => {\r\n // 从名称中提取数字部分\r\n const numberA = parseInt(a.name.match(/\\d+/)?.[0] || '0', 10);\r\n const numberB = parseInt(b.name.match(/\\d+/)?.[0] || '0', 10);\r\n return numberA - numberB;\r\n });\r\n }\r\n\r\n start () {\r\n\r\n }\r\n\r\n startGame(){\r\n console.log(\"进入场景之前_____________\",cc.fx.GameConfig.GM_INFO.first);\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n\r\n returnHome(){\r\n cc.tween(this.node.getChildByName(\"Game\"))\r\n .to(0.5, {opacity: 100})\r\n .call(() => {\r\n \r\n // 预加载成功后加载场景\r\n cc.director.loadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n console.error('加载 HomeScene 场景失败:', err);\r\n } else {\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n });\r\n })\r\n .start();\r\n\r\n cc.tween(this.node.getChildByName(\"mask\"))\r\n .to(0.5,{opacity: 255})\r\n .start();\r\n\r\n // cc.loader.releaseAll();\r\n // 预加载 HomeScene 场景\r\n\r\n \r\n }\r\n\r\n\r\n readUserData(retryCount = 0){\r\n //@ts-ignore\r\n if (typeof wx !== 'undefined' && wx !== null) { \r\n let levelInfo = cc.fx.StorageMessage.getStorage(\"level\");\r\n //旧的读取数据设置数据方法,以强联网为主\r\n if(levelInfo == undefined || levelInfo == \"\" || levelInfo == null){\r\n this.oldReadData(retryCount);\r\n }\r\n //新的读取数据设置方法,以本地为主\r\n else{\r\n this.newReadData();\r\n }\r\n console.log(\"即将读取体力值\");\r\n cc.fx.GameTool.getHealth((data)=>{\r\n console.log(\"体力值完成进入游戏\");\r\n this.load5 = true;\r\n });\r\n\r\n }\r\n else{\r\n this.load3 = true;\r\n this.load4 = true;\r\n this.load5 = true;\r\n cc.fx.GameTool.getHealth(null);\r\n }\r\n // 存储用户数据\r\n }\r\n\r\n readMusicConfig(){\r\n let audioInfo = cc.fx.StorageMessage.getStorage(\"music\");\r\n if(audioInfo == undefined || audioInfo == \"\" || audioInfo == null){\r\n audioInfo = {\r\n \"musicOpen\": true, //音乐\r\n \"effectOpen\": true, //音效\r\n \"vibrateOpen\": true, //震动\r\n }\r\n cc.fx.StorageMessage.setStorage(\"music\",audioInfo);\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO.musicOpen = audioInfo.musicOpen;\r\n cc.fx.GameConfig.GM_INFO.effectOpen = audioInfo.effectOpen;\r\n cc.fx.GameConfig.GM_INFO.vibrateOpen = audioInfo.vibrateOpen;\r\n }\r\n }\r\n \r\n //新用户,有本地缓存读取配置\r\n newReadData(){\r\n console.log(\"读取新信息\");\r\n let openid = cc.fx.StorageMessage.getStorage(\"openid\");\r\n if(openid == null || openid == \"\" || openid == undefined){\r\n console.log(\"没有openid\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n console.log('读取用户数据成功', res.result)\r\n if(res.result.code == 404 && res.result.message == \"未找到用户数据\"){\r\n }\r\n else if(res.result.code == 200){\r\n if(res.result.data){\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid;\r\n cc.fx.GameConfig.GM_INFO.username = res.result.data.username;\r\n cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar;\r\n const register_time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(register_time);\r\n cc.fx.StorageMessage.setStorage(\"openid\",cc.fx.GameConfig.GM_INFO.openid);\r\n }\r\n }\r\n },\r\n fail: err => {\r\n console.error('读取用户数据失败', err)\r\n }\r\n })\r\n }\r\n else{\r\n if(openid)\r\n cc.fx.GameConfig.GM_INFO.openid = openid;\r\n }\r\n \r\n\r\n\r\n //等级信息\r\n cc.fx.GameTool.getUserLevel((data) =>{\r\n const timestamp = Date.now();\r\n let levelInfo = cc.fx.StorageMessage.getStorage(\"level\");\r\n if(data.result.code == 404 && data.result.message == \"未找到关卡数据\"){\r\n // console.log(\"没有等级信息,从用户接口拿到数据\");\r\n if(levelInfo.level){\r\n cc.fx.GameConfig.GM_INFO.level = levelInfo.level;\r\n }\r\n this.load4 = true;\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n // console.log(\"有等级信息,从关卡接口拿到数据\",data.result.data);\r\n //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储\r\n let temp = data.result.timestamp - levelInfo.timestamp;\r\n console.log(\"等级时间差:\",temp);\r\n if((data.result.timestamp - levelInfo.timestamp) < 10000){\r\n if(levelInfo.level){\r\n console.log(\"以游戏前端等级为准\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = levelInfo.level;\r\n // console.log(\"等级为:\",cc.fx.GameConfig.GM_INFO.level);\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n });\r\n }\r\n\r\n }\r\n //服务器端存储时间新于游戏端,以服务器端为主,往前端存储\r\n else{\r\n console.log(\"以服务器等级为准\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = data.result.data; \r\n levelInfo.level = cc.fx.GameConfig.GM_INFO.level;\r\n levelInfo.timestamp = timestamp;\r\n // console.log(\"1111111存储关卡数据:\",cc.fx.GameConfig.GM_INFO.level);\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n }\r\n this.load4 = true;\r\n }\r\n });\r\n //金币信息\r\n cc.fx.GameTool.getUserCoin((data) =>{\r\n const timestamp = Date.now();\r\n let coinInfo = cc.fx.StorageMessage.getStorage(\"coin\");\r\n if(data.result.code == 404 && data.result.message == \"未找到金币数据\"){\r\n if(coinInfo.coin)\r\n cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin;\r\n console.log(\"没有金币信息,从用户接口拿到数据\",cc.fx.GameConfig.GM_INFO.coin);\r\n this.load3 = true;\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n // console.log(\"有金币信息,从金币接口拿到数据\",data.result.data);\r\n //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储\r\n let temp = data.result.timestamp - coinInfo.timestamp;\r\n console.log(\"金币时间差:\",temp);\r\n if((data.result.timestamp - coinInfo.timestamp) < 10000){\r\n console.log(\"以前端金幣为准:\",coinInfo);\r\n if(coinInfo.coin)\r\n cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin;\r\n else{\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin;\r\n coinInfo.timestamp = timestamp;\r\n console.log(\"11111111111\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n }\r\n console.log(\"改变后金币:\",cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n });\r\n }\r\n //服务器端存储时间新于游戏端,以服务器端为主,往前端存储\r\n else{\r\n console.log(\"以服务器金幣为准:\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data; \r\n coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin;\r\n coinInfo.timestamp = timestamp;\r\n console.log(\"2222222222\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n }\r\n this.load3 = true;\r\n } \r\n });\r\n //道具信息\r\n cc.fx.GameTool.getUserProp((data) =>{\r\n const timestamp = Date.now();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n if(data.result.code == 404 && data.result.message == \"未找到道具数据\"){\r\n console.log(\"没有道具信息,从用户接口拿到数据\",propInfo);\r\n if(propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined){\r\n console.log(\"2222222道具数据异常\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmoun = 0;\r\n let propInfoNew = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmoun,\r\n \"timestamp\":timestamp\r\n }\r\n console.log(\"1111111上传道具信息:\",propInfoNew);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfoNew);\r\n }\r\n else{\r\n // cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n // cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n // cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n }\r\n\r\n \r\n // cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n // cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n // cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n // console.log(\"本地时间戳\",propInfo.timestamp,\"服务器时间戳\",data.result.timestamp);\r\n if((data.result.timestamp - propInfo.timestamp) < 10000){\r\n console.log(\"以前端道具为主:\",propInfo);\r\n if(propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined){\r\n console.log(\"111111道具数据异常\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n let propInfoNew = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\":timestamp\r\n }\r\n console.log(\"333333上传道具信息:\",propInfoNew);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfoNew);\r\n }\r\n else{\r\n console.log(\"道具数据正常\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n });\r\n }\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n let propInfoNew = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\":timestamp\r\n }\r\n console.log(\"22222222上传道具信息:\",propInfoNew,data.result);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfoNew);\r\n }\r\n } \r\n });\r\n }\r\n //旧用户,无本地缓存读取配置\r\n oldReadData(retryCount:number){\r\n console.log(\"读取旧信息\");\r\n const MAX_RETRIES = 15;\r\n const timestamp = Date.now();\r\n // 读取用户数据\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => { \r\n console.log('读取用户数据成功', res.result)\r\n if(res.result.code == 404 && res.result.message == \"未找到用户数据\"){\r\n if(res.result.openid){\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid\r\n }\r\n cc.fx.GameConfig.GM_INFO.first = true;\r\n this.load3 = true;\r\n this.load4 = true;\r\n let levelInfo = {\"level\":0,\"timestamp\":timestamp};\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n let coinInfo = {\"coin\":0,\"timestamp\":timestamp};\r\n console.log(\"33333333333\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n let propInfo = {\r\n \"freezeAmount\":0,\r\n \"hammerAmount\":0,\r\n \"magicAmount\":0,\r\n \"timestamp\":timestamp,\r\n }\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n\r\n\r\n cc.fx.GameTool.setUserInfo((data)=>{\r\n if(data.result.code == 200){\r\n console.log(\"上传用户信息成功\",data);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n }, \r\n success: res => {\r\n console.log(\"上传后,读取用户信息,为上报注册时间\")\r\n if(res.result.code == 200){\r\n const time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(time);\r\n }\r\n }\r\n })\r\n }\r\n });\r\n console.log(\"服务器也没有金币信息\",cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin(cc.fx.GameConfig.GM_INFO.coin,(data)=>{\r\n \r\n });\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n if(data.result.code == 200){\r\n console.log(\"上传道具信息成功\",data);\r\n }\r\n else{\r\n MiniGameSdk.API.showToast(\"网络异常,正在努力加载\");\r\n setTimeout(() => {\r\n this.oldReadData(0);\r\n }, 1000);\r\n }\r\n });\r\n }, 0);\r\n }\r\n else if(res.result.code == 200){\r\n if(res.result.data){\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid;\r\n cc.fx.GameConfig.GM_INFO.level = res.result.data.level;\r\n cc.fx.GameConfig.GM_INFO.coin = res.result.data.coinAmount;\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = res.result.data.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = res.result.data.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = res.result.data.magicAmount;\r\n cc.fx.GameConfig.GM_INFO.username = res.result.data.username;\r\n cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar;\r\n cc.fx.StorageMessage.setStorage(\"openid\",cc.fx.GameConfig.GM_INFO.openid);\r\n const register_time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(register_time);\r\n }\r\n setTimeout(() => {\r\n cc.fx.GameTool.getUserCoin((data) =>{\r\n if(data.result.code == 404 && data.result.message == \"未找到金币数据\"){\r\n \r\n let coinInfo = {\"coin\":0,\"timestamp\":timestamp};\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n console.log(\"没有金币信息,从用户接口拿到数据\",cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n // console.log(\"上传\",data);\r\n this.load3 = true;\r\n });\r\n }\r\n else if(data.result.code == 200){\r\n // console.log(\"有金币信息,从金币接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n let coinInfo = {\"coin\":cc.fx.GameConfig.GM_INFO.coin,\"timestamp\":timestamp};\r\n console.log(\"存储金币信息:\",cc.fx.GameConfig.GM_INFO.coin);\r\n console.log(\"4444444444\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n this.load3 = true;\r\n }\r\n })\r\n }, 500);\r\n\r\n cc.fx.GameTool.getUserLevel((data) =>{\r\n if(data.result.code == 404 && data.result.message == \"未找到关卡数据\"){\r\n console.log(\"没有等级信息,从用户接口拿到数据\");\r\n let levelInfo = {\"level\":0,\"timestamp\":timestamp};\r\n // console.log(\"333333存储关卡数据:\",levelInfo);\r\n cc.fx.GameConfig.GM_INFO.level = 0;\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n console.log(\"拿到的数据\",data);\r\n this.load4 = true;\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n console.log(\"有等级信息,从关卡接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = data.result.data; \r\n let levelInfo = {\"level\":cc.fx.GameConfig.GM_INFO.level,\"timestamp\":timestamp};\r\n // console.log(\"444444存储关卡信息:\",levelInfo);\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n this.load4 = true;\r\n }\r\n })\r\n setTimeout(() => {\r\n cc.fx.GameTool.getUserProp((data) =>{\r\n if(data.result.code == 404 && data.result.message == \"未找到道具数据\"){\r\n console.log(\"没有道具信息,从用户接口拿到数据\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n let propInfo = {\r\n \"freezeAmount\":0,\r\n \"hammerAmount\":0,\r\n \"magicAmount\":0,\r\n \"timestamp\":timestamp,\r\n }\r\n console.log(\"上传道具信息:\",propInfo);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n console.log(\"有道具信息,从道具接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze || 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer || 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand || 0;\r\n let propInfo = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\":timestamp,\r\n }\r\n console.log(\"上传道具信息:\",propInfo);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n\r\n }\r\n })\r\n }, 0);\r\n \r\n }\r\n\r\n },\r\n fail: err => {\r\n console.error('读取用户数据失败', err)\r\n if (retryCount < MAX_RETRIES) {\r\n console.error(`读取用户数据失败,第 ${retryCount + 1} 次重试,错误信息:`, err);\r\n // 延迟 2 秒后重试\r\n setTimeout(() => {\r\n this.readUserData(retryCount + 1);\r\n }, 2000);\r\n } else {\r\n console.error('读取用户数据失败,达到最大重试次数,退出游戏', err);\r\n // 退出游戏\r\n cc.game.end();\r\n }\r\n }\r\n })\r\n }\r\n\r\n setUserData(){\r\n cc.fx.GameConfig.GameTool((data)=>{\r\n console.log(\"上传\",data);\r\n })\r\n }\r\n\r\n startTimeCutDown(){\r\n this.scheduleCallback = function(){\r\n if(this.timeNumber <= 0){\r\n this.stopTimeCutDown();\r\n }\r\n else{\r\n this.timeNumber -= 1;\r\n }\r\n }.bind(this);\r\n this.schedule(this.scheduleCallback, 1);\r\n }\r\n\r\n stopTimeCutDown(){\r\n if(this.scheduleCallback){\r\n this.unschedule(this.scheduleCallback);\r\n }\r\n }\r\n\r\n update (dt) {\r\n if(this.load1 && this.load2 && this.load3 && this.load4 && this.load5 && this.timeNumber <= 0){\r\n this.load1 = this.load2 = false;\r\n MiniGameSdk.API.shushu_Init();\r\n this.startGame();\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/e1/e1e1fde9-4548-4234-97c0-b571d29d6964.json b/library/imports/e1/e1e1fde9-4548-4234-97c0-b571d29d6964.json index 754b603..484728b 100644 --- a/library/imports/e1/e1e1fde9-4548-4234-97c0-b571d29d6964.json +++ b/library/imports/e1/e1e1fde9-4548-4234-97c0-b571d29d6964.json @@ -782,7 +782,7 @@ "heng": 2, "shu": 1, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/e2/e200ed15-b2bf-49eb-864b-d0ead7b9fbd6.json b/library/imports/e2/e200ed15-b2bf-49eb-864b-d0ead7b9fbd6.json deleted file mode 100644 index e772e76..0000000 --- a/library/imports/e2/e200ed15-b2bf-49eb-864b-d0ead7b9fbd6.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "zhangai", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 988, - 609, - 132, - 137 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 132, - 137 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/e2/e2f75c5f-3623-4126-98da-bd2758d8c2b0.json b/library/imports/e2/e2f75c5f-3623-4126-98da-bd2758d8c2b0.json deleted file mode 100644 index a4e4579..0000000 --- a/library/imports/e2/e2f75c5f-3623-4126-98da-bd2758d8c2b0.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "2down5", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 366, - 95, - 45, - 245 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 245 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/e4/e468d8cc-1332-4516-b4d6-f4dd61e6ab54.json b/library/imports/e4/e468d8cc-1332-4516-b4d6-f4dd61e6ab54.json deleted file mode 100644 index 05ccf29..0000000 --- a/library/imports/e4/e468d8cc-1332-4516-b4d6-f4dd61e6ab54.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "8color6", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 518, - 135, - 61, - 386 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 386 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/e5/e538a058-80c2-49b8-aea0-f39d69183437.json b/library/imports/e5/e538a058-80c2-49b8-aea0-f39d69183437.json deleted file mode 100644 index d9f6700..0000000 --- a/library/imports/e5/e538a058-80c2-49b8-aea0-f39d69183437.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "6color3", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 509, - 269, - 378, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 378, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/e5/e5962965-a9fd-47d1-b705-a677246be9dc.json b/library/imports/e5/e5962965-a9fd-47d1-b705-a677246be9dc.json deleted file mode 100644 index ac3e8bc..0000000 --- a/library/imports/e5/e5962965-a9fd-47d1-b705-a677246be9dc.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "1down3", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 370, - 1, - 363, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 363, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/e6/e6235cef-05a1-44b7-aa4c-46b51bc91632.json b/library/imports/e6/e6235cef-05a1-44b7-aa4c-46b51bc91632.json deleted file mode 100644 index 2421d7e..0000000 --- a/library/imports/e6/e6235cef-05a1-44b7-aa4c-46b51bc91632.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "3color3", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 129, - 261, - 378, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 378, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/e7/e712ba83-24ff-404f-8699-61c4902001c9.json b/library/imports/e7/e712ba83-24ff-404f-8699-61c4902001c9.json deleted file mode 100644 index 6febb47..0000000 --- a/library/imports/e7/e712ba83-24ff-404f-8699-61c4902001c9.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "7color1", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1240, - 784, - 138, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 138, - 69 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/e7/e7bbdb15-5185-4c6e-a2f6-1c337b60b460.json b/library/imports/e7/e7bbdb15-5185-4c6e-a2f6-1c337b60b460.json deleted file mode 100644 index e3179cb..0000000 --- a/library/imports/e7/e7bbdb15-5185-4c6e-a2f6-1c337b60b460.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "wall6", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 647, - 618, - 138, - 146 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 138, - 146 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/e9/e91b0b84-c90c-4f76-b1e4-b8976cb6dede.json b/library/imports/e9/e91b0b84-c90c-4f76-b1e4-b8976cb6dede.json deleted file mode 100644 index 4f18549..0000000 --- a/library/imports/e9/e91b0b84-c90c-4f76-b1e4-b8976cb6dede.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "8color2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 127, - 467, - 259, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 259, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/07/07c5118d-73f4-4415-b80a-a94eb9b538c0.json b/library/imports/ea/eaa436a0-38d0-4580-9745-0d6ef1e3aa7d.json similarity index 72% rename from library/imports/07/07c5118d-73f4-4415-b80a-a94eb9b538c0.json rename to library/imports/ea/eaa436a0-38d0-4580-9745-0d6ef1e3aa7d.json index 7881425..2b0e8be 100644 --- a/library/imports/07/07c5118d-73f4-4415-b80a-a94eb9b538c0.json +++ b/library/imports/ea/eaa436a0-38d0-4580-9745-0d6ef1e3aa7d.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_6", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 531, 1085, diff --git a/library/imports/ed/edd195cc-2af5-4a7a-bf49-2af75e60d50a.json b/library/imports/ed/edd195cc-2af5-4a7a-bf49-2af75e60d50a.json deleted file mode 100644 index 8d7a907..0000000 --- a/library/imports/ed/edd195cc-2af5-4a7a-bf49-2af75e60d50a.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "1color3", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 518, - 64, - 378, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 378, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/ee/ee73bdf1-0624-464f-a268-cb0ff3f2952b.json b/library/imports/ee/ee73bdf1-0624-464f-a268-cb0ff3f2952b.json deleted file mode 100644 index e77ff21..0000000 --- a/library/imports/ee/ee73bdf1-0624-464f-a268-cb0ff3f2952b.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "wall5", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 656, - 479, - 137, - 146 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 137, - 146 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/ef/ef5bfdc0-6a9e-4866-bc77-9c69a629796b.json b/library/imports/ef/ef5bfdc0-6a9e-4866-bc77-9c69a629796b.json deleted file mode 100644 index 2002588..0000000 --- a/library/imports/ef/ef5bfdc0-6a9e-4866-bc77-9c69a629796b.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "3color2", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1, - 869, - 258, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 258, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/f0/f05b3170-ab5d-4af5-96fa-ca996cc795e3.json b/library/imports/f0/f05b3170-ab5d-4af5-96fa-ca996cc795e3.json deleted file mode 100644 index 8b8a646..0000000 --- a/library/imports/f0/f05b3170-ab5d-4af5-96fa-ca996cc795e3.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "5color5", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 395, - 411, - 61, - 266 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 266 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/6e/6efd9b9f-19a1-4c83-8116-5b15cc775967.json b/library/imports/f1/f1428a88-74aa-4353-9a97-1d2325437304.json similarity index 72% rename from library/imports/6e/6efd9b9f-19a1-4c83-8116-5b15cc775967.json rename to library/imports/f1/f1428a88-74aa-4353-9a97-1d2325437304.json index c27cd52..e49cbb9 100644 --- a/library/imports/6e/6efd9b9f-19a1-4c83-8116-5b15cc775967.json +++ b/library/imports/f1/f1428a88-74aa-4353-9a97-1d2325437304.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "ice_17", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1269, 816, diff --git a/library/imports/f1/f1438518-2842-4ed1-92b0-7953382ef63e.json b/library/imports/f1/f1438518-2842-4ed1-92b0-7953382ef63e.json deleted file mode 100644 index d6e3fbe..0000000 --- a/library/imports/f1/f1438518-2842-4ed1-92b0-7953382ef63e.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "10down4", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 735, - 565, - 45, - 124 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 124 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/f3/f312bd2b-75a2-493d-ab1d-32dabed46f9f.json b/library/imports/f3/f312bd2b-75a2-493d-ab1d-32dabed46f9f.json deleted file mode 100644 index b4213f3..0000000 --- a/library/imports/f3/f312bd2b-75a2-493d-ab1d-32dabed46f9f.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "8down4", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 735, - 424, - 45, - 124 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 124 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/53/53ebd7d6-1d1b-4d3a-a058-a18bfe3bd426.json b/library/imports/f4/f4c34816-7926-4e19-b11b-5ffd9340accb.json similarity index 73% rename from library/imports/53/53ebd7d6-1d1b-4d3a-a058-a18bfe3bd426.json rename to library/imports/f4/f4c34816-7926-4e19-b11b-5ffd9340accb.json index cbaa80b..14847a0 100644 --- a/library/imports/53/53ebd7d6-1d1b-4d3a-a058-a18bfe3bd426.json +++ b/library/imports/f4/f4c34816-7926-4e19-b11b-5ffd9340accb.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_20", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 1400, 1460, diff --git a/library/imports/7f/7f4466e7-8e5e-41f0-9a31-37b2b86e8066.json b/library/imports/f5/f502ad08-6edf-4fc1-b3a2-45315d91c7d0.json similarity index 73% rename from library/imports/7f/7f4466e7-8e5e-41f0-9a31-37b2b86e8066.json rename to library/imports/f5/f502ad08-6edf-4fc1-b3a2-45315d91c7d0.json index ab5a9f7..8954b82 100644 --- a/library/imports/7f/7f4466e7-8e5e-41f0-9a31-37b2b86e8066.json +++ b/library/imports/f5/f502ad08-6edf-4fc1-b3a2-45315d91c7d0.json @@ -2,8 +2,8 @@ "__type__": "cc.SpriteFrame", "content": { "name": "xz_8", - "texture": "484f1896-8707-4cc7-8e61-9995a2133f09", - "atlas": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c", + "texture": "a7769b53-73c4-4fd2-bcad-e83d044a502e", + "atlas": "ba9a4097-f4d2-4cc8-b325-34405e67b130", "rect": [ 798, 284, diff --git a/library/imports/f5/f5eb32ae-c97b-4173-abf2-83de016c2ace.json b/library/imports/f5/f5eb32ae-c97b-4173-abf2-83de016c2ace.json deleted file mode 100644 index e7522d6..0000000 --- a/library/imports/f5/f5eb32ae-c97b-4173-abf2-83de016c2ace.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "__type__": "cc.Texture2D", - "content": "0,9729,9729,33071,33071,0,0,1" -} \ No newline at end of file diff --git a/library/imports/f5/f5eb32ae-c97b-4173-abf2-83de016c2ace.png b/library/imports/f5/f5eb32ae-c97b-4173-abf2-83de016c2ace.png deleted file mode 100644 index 096d32a..0000000 Binary files a/library/imports/f5/f5eb32ae-c97b-4173-abf2-83de016c2ace.png and /dev/null differ diff --git a/library/imports/f6/f6c17854-d1b0-477f-a026-811aafcc744b.json b/library/imports/f6/f6c17854-d1b0-477f-a026-811aafcc744b.json deleted file mode 100644 index f22b4a6..0000000 --- a/library/imports/f6/f6c17854-d1b0-477f-a026-811aafcc744b.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "6down1", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 861, - 283, - 122, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 122, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/f7/f77c0d10-e213-4f25-9a5b-ac5d327158b8.json b/library/imports/f7/f77c0d10-e213-4f25-9a5b-ac5d327158b8.json deleted file mode 100644 index d98dbf4..0000000 --- a/library/imports/f7/f77c0d10-e213-4f25-9a5b-ac5d327158b8.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "zhandan", - "texture": "15f7f173-be51-47f3-8314-66d14e63471f", - "atlas": "", - "rect": [ - 2, - 2, - 836, - 1013 - ], - "offset": [ - -90, - 1.5 - ], - "originalSize": [ - 1020, - 1020 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/f7/f78d2f84-7dca-496c-bb20-80141eb6a284.json b/library/imports/f7/f78d2f84-7dca-496c-bb20-80141eb6a284.json deleted file mode 100644 index c053617..0000000 --- a/library/imports/f7/f78d2f84-7dca-496c-bb20-80141eb6a284.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "8down1", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 1, - 424, - 122, - 45 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 122, - 45 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/f8/f895411c-ea37-4419-9f12-057e76049b29.json b/library/imports/f8/f895411c-ea37-4419-9f12-057e76049b29.json deleted file mode 100644 index 127e109..0000000 --- a/library/imports/f8/f895411c-ea37-4419-9f12-057e76049b29.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "2color4", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 1127, - 627, - 61, - 146 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 146 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/f9/f9de4f9f-c4fa-49af-a8c5-7299bbbc26c6.json b/library/imports/f9/f9de4f9f-c4fa-49af-a8c5-7299bbbc26c6.json deleted file mode 100644 index 7937204..0000000 --- a/library/imports/f9/f9de4f9f-c4fa-49af-a8c5-7299bbbc26c6.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "10color1", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 801, - 900, - 138, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 138, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/fc/fc86c297-6f55-42d1-b39c-2c3555cd69cf.json b/library/imports/fc/fc86c297-6f55-42d1-b39c-2c3555cd69cf.json deleted file mode 100644 index 5453d07..0000000 --- a/library/imports/fc/fc86c297-6f55-42d1-b39c-2c3555cd69cf.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "4down6", - "texture": "f5eb32ae-c97b-4173-abf2-83de016c2ace", - "atlas": "31479c6e-5626-4598-97ab-f94303e9efe7", - "rect": [ - 613, - 236, - 45, - 365 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 45, - 365 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/fc/fc8fd6fa-3cc2-4a69-a2f7-2c521de510b1.json b/library/imports/fc/fc8fd6fa-3cc2-4a69-a2f7-2c521de510b1.json deleted file mode 100644 index fe9d663..0000000 --- a/library/imports/fc/fc8fd6fa-3cc2-4a69-a2f7-2c521de510b1.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "wall1", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 941, - 900, - 138, - 69 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 138, - 69 - ], - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/fe/fe897368-c5ca-4c14-a316-afe70f5e80cc.json b/library/imports/fe/fe897368-c5ca-4c14-a316-afe70f5e80cc.json deleted file mode 100644 index 4ce2328..0000000 --- a/library/imports/fe/fe897368-c5ca-4c14-a316-afe70f5e80cc.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "__type__": "cc.SpriteFrame", - "content": { - "name": "6color6", - "texture": "418b4767-01bf-4ac2-823b-9880f2a79215", - "atlas": "cc01997d-495e-480d-871e-be405a6c38b5", - "rect": [ - 518, - 1, - 61, - 387 - ], - "offset": [ - 0, - 0 - ], - "originalSize": [ - 61, - 387 - ], - "rotated": 1, - "capInsets": [ - 0, - 0, - 0, - 0 - ] - } -} \ No newline at end of file diff --git a/library/imports/fe/fe980cba-a552-4d61-a357-19c19262f33e.json b/library/imports/fe/fe980cba-a552-4d61-a357-19c19262f33e.json index 6e487e0..d8f1e99 100644 --- a/library/imports/fe/fe980cba-a552-4d61-a357-19c19262f33e.json +++ b/library/imports/fe/fe980cba-a552-4d61-a357-19c19262f33e.json @@ -1220,7 +1220,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/library/imports/ff/ff0d5773-ca66-4087-b1b7-4777121d85be.json b/library/imports/ff/ff0d5773-ca66-4087-b1b7-4777121d85be.json deleted file mode 100644 index e7522d6..0000000 --- a/library/imports/ff/ff0d5773-ca66-4087-b1b7-4777121d85be.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "__type__": "cc.Texture2D", - "content": "0,9729,9729,33071,33071,0,0,1" -} \ No newline at end of file diff --git a/library/imports/ff/ff0d5773-ca66-4087-b1b7-4777121d85be.png b/library/imports/ff/ff0d5773-ca66-4087-b1b7-4777121d85be.png deleted file mode 100644 index 17e06ee..0000000 Binary files a/library/imports/ff/ff0d5773-ca66-4087-b1b7-4777121d85be.png and /dev/null differ diff --git a/library/uuid-to-mtime.json b/library/uuid-to-mtime.json index 5471d25..61ff1e3 100644 --- a/library/uuid-to-mtime.json +++ b/library/uuid-to-mtime.json @@ -1,17 +1,17 @@ { "2e3d6223-9889-4122-8121-c6d837f5367e": { - "asset": 1750750367916, - "meta": 1750750430440, + "asset": 1750920249178, + "meta": 1751250884665, "relativePath": "migration" }, "29f52784-2fca-467b-92e7-8fd9ef8c57b7": { - "asset": 1750750368785, - "meta": 1750750430447, + "asset": 1750920250061, + "meta": 1751250884680, "relativePath": "Scene" }, "4734c20c-0db8-4eb2-92ea-e692f4d70934": { - "asset": 1750750368996, - "meta": 1750750430448, + "asset": 1750920250250, + "meta": 1751250884682, "relativePath": "Script" }, "7a231473-d1df-4b05-8620-6376c36252c1": { @@ -20,78 +20,73 @@ "relativePath": "migration\\use_v2.1-2.2.1_cc.Toggle_event.js" }, "7c1d6faa-66b9-4423-aa04-8c38a15768cf": { - "asset": 1750750367722, - "meta": 1750750430437, + "asset": 1750920249005, + "meta": 1751250884665, "relativePath": "animation" }, "6ebfe2d9-539a-4853-8b16-fca5c89cf2ce": { - "asset": 1750750367939, - "meta": 1750750430441, + "asset": 1750920249210, + "meta": 1751250884665, "relativePath": "music" }, "bf3935ca-518a-42f4-84e4-ad96badfd1b4": { - "asset": 1750750367956, - "meta": 1750750430444, + "asset": 1750920249225, + "meta": 1751250884678, "relativePath": "prefab" }, "52e78fe3-9095-42ad-8e4d-f9bb12dc69ce": { - "asset": 1750750368706, - "meta": 1750750430446, + "asset": 1750920249997, + "meta": 1751250884680, "relativePath": "resources" }, - "afa9e39a-94ca-477f-8a2a-25082d9092c3": { - "asset": 1750750369086, - "meta": 1750750430449, - "relativePath": "Shader" - }, "2880dc26-5b38-48bd-baba-daaec97499cb": { - "asset": 1750750368019, - "meta": 1750750430445, + "asset": 1751253653508, + "meta": 1751254278271, "relativePath": "res" }, "eaa8b84d-69d0-4170-9f7d-8179ea948cde": { - "asset": 1750750368970, - "meta": 1750750430491, + "asset": 1750920250218, + "meta": 1751250884714, "relativePath": "Script\\module" }, "8848cd9b-8115-456d-a656-2abcda1dadbe": { - "asset": 1750750368924, - "meta": 1750750430510, + "asset": 1750920250186, + "meta": 1751250884733, "relativePath": "Script\\module\\Config" }, "13a0b173-d59e-4a9d-b5e3-4dbe4dc37cc1": { - "asset": 1750750368934, - "meta": 1750750430512, + "asset": 1750920250186, + "meta": 1751250884733, "relativePath": "Script\\module\\Crypto" }, "b4e113c6-a987-4133-bfa0-3355d8ab4bd1": { - "asset": 1750750368936, - "meta": 1750750430512, + "asset": 1750920250202, + "meta": 1751250884735, "relativePath": "Script\\module\\GameStart" }, "0487cacb-b94a-4ab6-a301-b6402ab0ac5d": { - "asset": 1750750368941, - "meta": 1750750430512, + "asset": 1750920250202, + "meta": 1751250884735, "relativePath": "Script\\module\\Music" }, "ff6560d9-676d-42ad-8ec7-e44acb84ad9e": { - "asset": 1750750368945, - "meta": 1750750430515, + "asset": 1750920250202, + "meta": 1751250884735, "relativePath": "Script\\module\\Notification" }, "d3520299-33dc-43d2-b522-d424efb5575d": { - "asset": 1750750368953, - "meta": 1750750430516, + "asset": 1750920250218, + "meta": 1751250884737, "relativePath": "Script\\module\\RankList" }, "2af8f2ef-b8a0-43ad-a144-ef4a887f2fa9": { - "asset": 1750750368966, - "meta": 1750750430520, + "asset": 1750920250218, + "meta": 1751250884740, "relativePath": "Script\\module\\Storage" }, "2a81f82d-8d16-44af-b947-44eea4dde54f": { - "asset": 1750750368975, - "meta": 1750750430520, + "asset": 1750920250234, + "meta": 1751250884741, "relativePath": "Script\\module\\Tool" }, "e64e1a97-c93f-4257-ab34-80341d8ff79d": { @@ -115,8 +110,8 @@ "relativePath": "resources\\Json\\LEVEL_INFO.json" }, "066e91c2-fc55-407c-b061-9e4de4a9f224": { - "asset": 1750820043724, - "meta": 1750848887990, + "asset": 1750920249666, + "meta": 1751250884706, "relativePath": "resources\\Json" }, "e8b23e56-8d10-44ad-a8f0-2e637cc45533": { @@ -125,13 +120,13 @@ "relativePath": "Script\\GameScene.js" }, "e92938d8-5d93-4823-8770-fd489523a2f5": { - "asset": 1750750369207, - "meta": 1750750430502, + "asset": 1750920250470, + "meta": 1751250884727, "relativePath": "UI\\UI" }, "bdc76845-baea-4381-911e-af437cccf839": { - "asset": 1750750368962, - "meta": 1750750430518, + "asset": 1750920250218, + "meta": 1751250884739, "relativePath": "Script\\module\\Share" }, "b42c4fc1-4cd1-4b12-b206-930cea3d49ca": { @@ -155,8 +150,8 @@ "relativePath": "Scene\\LoadScene.fire" }, "93c9bdf3-8205-46e5-a8f1-3576b0dbc836": { - "asset": 1750750369004, - "meta": 1750750430492, + "asset": 1750920250250, + "meta": 1751250884715, "relativePath": "Script\\Sdk" }, "ca0f9934-a015-436e-9402-f8e30d4c5de6": { @@ -174,19 +169,14 @@ "meta": 1725869717675, "relativePath": "Script\\ControlManager.ts" }, - "cb16ad0c-b68c-450e-a440-eb78a1562e04": { - "asset": 1741936568672, - "meta": 1741936568672, - "relativePath": "level" - }, "771a3d9a-4013-4654-a777-fbaea0c93280": { "asset": 1744193262345, "meta": 1744193408326, "relativePath": "Script\\module\\Crypto\\HttpUtil.ts" }, "dbc5acf2-1061-4d14-a2c5-61c3b03f302f": { - "asset": 1750750367956, - "meta": 1750750430472, + "asset": 1750920249225, + "meta": 1751250884700, "relativePath": "prefab\\map" }, "805c69df-dfdf-4759-97ae-5a7341f424c7": { @@ -195,8 +185,8 @@ "relativePath": "Script\\GameOver.ts" }, "4fc739bf-784a-4b9a-b36f-3752a98df628": { - "asset": 1750750367867, - "meta": 1750750430438, + "asset": 1750920249147, + "meta": 1751250884665, "relativePath": "effect" }, "edf0e3d4-4233-4e7b-a725-a1a37209b53a": { @@ -210,13 +200,13 @@ "relativePath": "effect\\full.effect" }, "7929eb2c-aa5c-4d48-bceb-0312f46aede8": { - "asset": 1750750368993, - "meta": 1750750430491, + "asset": 1750920250250, + "meta": 1751250884715, "relativePath": "Script\\prop" }, "c390fa89-6858-4fdd-a0df-42f78cb37275": { - "asset": 1750750367982, - "meta": 1750750430473, + "asset": 1750920249242, + "meta": 1751250884702, "relativePath": "prefab\\prop" }, "92465aa7-5132-43c3-9493-ab5b7ba1e968": { @@ -250,8 +240,8 @@ "relativePath": "Script\\module\\Share\\share.ts" }, "75a77063-a5a9-456a-8b4f-bfde10c137e8": { - "asset": 1745834478631, - "meta": 1745834478636, + "asset": 1751254988503, + "meta": 1751254988509, "relativePath": "prefab\\map\\turn_Wall.prefab" }, "1c619601-a6ae-4c45-be2c-20b0d95e950f": { @@ -269,114 +259,109 @@ "meta": 1744793852733, "relativePath": "res\\music" }, - "79bddc67-afa7-4275-9dc3-a2986648eeff": { - "asset": 1750750368035, - "meta": 1750750430477, - "relativePath": "res\\texture_Block" - }, "7d8008d1-2a44-467e-a492-ddf8527addba": { "asset": 1744794871178, "meta": 1744794875511, "relativePath": "Script\\peizhi.ts" }, "4e7ff711-8a91-49f7-8580-bf07609eaaa9": { - "asset": 1750750368680, - "meta": 1750750430486, + "asset": 1750920249966, + "meta": 1751250884710, "relativePath": "resources\\prefab" }, "a500df91-fa68-49df-9b91-3087fab64e20": { - "asset": 1750750368676, - "meta": 1750750430505, + "asset": 1750920249966, + "meta": 1751250884729, "relativePath": "resources\\prefab\\block" }, "2ea4f287-fa08-4f3e-8c66-6f9738b0fd0a": { - "asset": 1749540116034, - "meta": 1749540116039, + "asset": 1751254201731, + "meta": 1751254201740, "relativePath": "resources\\prefab\\block\\block11.prefab" }, "3f275c96-62b0-417f-9224-aeb073192f1d": { - "asset": 1749540120000, - "meta": 1749540120005, + "asset": 1751254116544, + "meta": 1751254116553, "relativePath": "resources\\prefab\\block\\block12.prefab" }, "4c1187d9-40bd-4210-acd7-0eecf4b2706f": { - "asset": 1749540124112, - "meta": 1749540124119, + "asset": 1751254125782, + "meta": 1751254125793, "relativePath": "resources\\prefab\\block\\block13.prefab" }, "4df8b354-d4c6-4219-852d-37ea032eb450": { - "asset": 1749540135049, - "meta": 1749540135053, + "asset": 1751254149832, + "meta": 1751254149842, "relativePath": "resources\\prefab\\block\\block16.prefab" }, "b54f9b14-fdec-476f-98f8-f0a519f7e844": { - "asset": 1749540127882, - "meta": 1749540127888, + "asset": 1751254134219, + "meta": 1751254134229, "relativePath": "resources\\prefab\\block\\block14.prefab" }, "fe980cba-a552-4d61-a357-19c19262f33e": { - "asset": 1749540139305, - "meta": 1749540139311, + "asset": 1751254156589, + "meta": 1751254156598, "relativePath": "resources\\prefab\\block\\block17.prefab" }, "6acd6f05-53d0-4866-b1a3-3fdc05bea16e": { - "asset": 1749540150309, - "meta": 1749540150317, + "asset": 1751254176591, + "meta": 1751254176601, "relativePath": "resources\\prefab\\block\\block20.prefab" }, "be5782f3-3dc7-43b8-a66a-ec50c83d0077": { - "asset": 1749540131354, - "meta": 1749540131359, + "asset": 1751254142921, + "meta": 1751254142932, "relativePath": "resources\\prefab\\block\\block15.prefab" }, "3a3098c2-78cb-4f85-834f-9a282d864462": { - "asset": 1749540146634, - "meta": 1749540146640, + "asset": 1751254170279, + "meta": 1751254170289, "relativePath": "resources\\prefab\\block\\block19.prefab" }, "503530e7-cfb4-4bcb-ac38-d4dd3ce3d1af": { - "asset": 1749539945053, - "meta": 1749539945062, + "asset": 1751253683568, + "meta": 1751253683581, "relativePath": "resources\\prefab\\block\\block2.prefab" }, "bc027956-4f24-4f96-b705-359a19cccb53": { - "asset": 1749540153898, - "meta": 1749540153902, + "asset": 1751254182847, + "meta": 1751254182859, "relativePath": "resources\\prefab\\block\\block21.prefab" }, "59a8c009-6f37-4960-b842-18f457d55412": { - "asset": 1749540157927, - "meta": 1749540157933, + "asset": 1751254188354, + "meta": 1751254188362, "relativePath": "resources\\prefab\\block\\block22.prefab" }, "90a9eb51-3d7f-4094-add0-ad20f9379337": { - "asset": 1749539948344, - "meta": 1749539948350, + "asset": 1751253695382, + "meta": 1751253695395, "relativePath": "resources\\prefab\\block\\block3.prefab" }, "7e0a9fcf-7599-443b-814d-05bf5cca516a": { - "asset": 1749540101052, - "meta": 1749540101068, + "asset": 1751254071640, + "meta": 1751254071649, "relativePath": "resources\\prefab\\block\\block7.prefab" }, "5b0aa537-7f4b-4132-ac45-2101f453a688": { - "asset": 1749540105284, - "meta": 1749540105289, + "asset": 1751254083118, + "meta": 1751254083132, "relativePath": "resources\\prefab\\block\\block8.prefab" }, "0237ad36-2cdb-4e29-944a-8720564056bc": { - "asset": 1749540109136, - "meta": 1749540109143, + "asset": 1751254090308, + "meta": 1751254090317, "relativePath": "resources\\prefab\\block\\block9.prefab" }, "b38991fe-2e45-431c-8f23-974e7905dfaa": { - "asset": 1749540011903, - "meta": 1749540011906, + "asset": 1751254061691, + "meta": 1751254061700, "relativePath": "resources\\prefab\\block\\block6.prefab" }, "74a04df7-a212-4b10-b77c-99e06c88867a": { - "asset": 1750750368702, - "meta": 1750750430505, + "asset": 1750920249997, + "meta": 1751250884729, "relativePath": "resources\\prefab\\wall" }, "a63ade2f-c476-4f26-84e6-b978db27c435": { @@ -400,8 +385,8 @@ "relativePath": "prefab\\prop\\risefall.prefab" }, "6023e99b-9806-44e9-8325-487a6cfdf3e5": { - "asset": 1749110801807, - "meta": 1749110801814, + "asset": 1751254255980, + "meta": 1751254255984, "relativePath": "prefab\\map\\MapBlock.prefab" }, "eec86efa-7642-410f-934a-7af388c0311a": { @@ -430,8 +415,8 @@ "relativePath": "resources\\prefab\\wall\\up.prefab" }, "2873d380-eeb8-4805-af74-462d711f466a": { - "asset": 1749540112707, - "meta": 1749540112714, + "asset": 1751254098759, + "meta": 1751254098769, "relativePath": "resources\\prefab\\block\\block10.prefab" }, "e0e349ff-f854-45e4-9764-50b9babdd4f4": { @@ -530,8 +515,8 @@ "relativePath": "resources\\Json\\level47.json" }, "15e917cb-b4e4-4694-a025-45bd3a31ccc3": { - "asset": 1749540142910, - "meta": 1749540142917, + "asset": 1751254163888, + "meta": 1751254163897, "relativePath": "resources\\prefab\\block\\block18.prefab" }, "52958c6c-bab5-40a7-9e16-328fb1143a3a": { @@ -550,8 +535,8 @@ "relativePath": "resources\\prefab\\wall\\upLeft.prefab" }, "340590d7-f501-4626-8c74-a8246476d27e": { - "asset": 1750750368014, - "meta": 1750750430476, + "asset": 1750920249273, + "meta": 1751250884704, "relativePath": "res\\spine" }, "34fa006b-b745-41c9-8260-44a60254952b": { @@ -685,15 +670,10 @@ "relativePath": "resources\\Json\\level62.json" }, "cb1d6907-6e2b-4c96-ae04-20f4be8eca78": { - "asset": 1750750369174, - "meta": 1750750430453, + "asset": 1750920250438, + "meta": 1751250884688, "relativePath": "UI" }, - "264543aa-e611-4ca0-8a6e-737ae87ece33": { - "asset": 1745840128744, - "meta": 1745893418404, - "relativePath": "LoadScene" - }, "a5a1fd16-fffe-4e74-8bf9-7fd966fce8b7": { "asset": 1745999667397, "meta": 1745999674098, @@ -720,8 +700,8 @@ "relativePath": "Script\\module\\GameStart\\GameAppStart.ts" }, "825f4992-deeb-4f19-8c4e-9a65b191753b": { - "asset": 1750750368613, - "meta": 1750750430481, + "asset": 1750920249871, + "meta": 1751250884708, "relativePath": "resources\\Particle" }, "e3319d66-f8c4-44d7-8e31-d0decdefcacc": { @@ -965,8 +945,8 @@ "relativePath": "resources\\Particle\\top_3_2.plist" }, "c5ee34da-68b8-453a-996d-dcb9cd04c942": { - "asset": 1750750368003, - "meta": 1750750430475, + "asset": 1750920249257, + "meta": 1751250884704, "relativePath": "res\\font" }, "297683d0-3b76-4fa0-befa-20deae2e66c4": { @@ -1015,13 +995,13 @@ "relativePath": "resources\\Json\\level72.json" }, "41916418-405c-4025-8e60-c3fdb4a83154": { - "asset": 1750750369124, - "meta": 1750750430453, + "asset": 1750920250375, + "meta": 1751250884686, "relativePath": "TextureBlock" }, "6713016b-5658-4a59-ac4a-ce9d84f47b8d": { - "asset": 1750750369165, - "meta": 1750750430500, + "asset": 1751253550181, + "meta": 1751254278272, "relativePath": "TextureBlock\\block" }, "8f9cd656-30c2-4d3f-88dd-ef00d02b3f3e": { @@ -1049,11 +1029,6 @@ "meta": 1746785425594, "relativePath": "TextureBlock\\block\\down.plist" }, - "f5eb32ae-c97b-4173-abf2-83de016c2ace": { - "asset": 1746785322424, - "meta": 1746785425317, - "relativePath": "res\\texture_Block\\down.png" - }, "d01519e3-ffe3-4b8f-980b-50811cc6eb58": { "asset": 1749622845471, "meta": 1749692957651, @@ -1079,11 +1054,6 @@ "meta": 1746785425331, "relativePath": "TextureBlock\\block\\block3.png" }, - "0c4d4d5d-030c-48cd-8abf-8475e0e4ea85": { - "asset": 1746786259272, - "meta": 1747017090310, - "relativePath": "font" - }, "04e50346-1a72-40e7-84f4-34fc35145f86": { "asset": 1746788471263, "meta": 1746788501154, @@ -1094,21 +1064,6 @@ "meta": 1746788501121, "relativePath": "TextureBlock\\block\\block1.png" }, - "8b6fd107-6aa0-4523-8fd3-c0f064524b0c": { - "asset": 1747031220662, - "meta": 1747035385860, - "relativePath": "res\\texture_Block\\freeze.plist" - }, - "484f1896-8707-4cc7-8e61-9995a2133f09": { - "asset": 1747031237447, - "meta": 1747035385828, - "relativePath": "res\\texture_Block\\freeze.png" - }, - "0a33af4a-6c55-4b97-a88e-80ce9d1a2321": { - "asset": 1745905232000, - "meta": 1747036608344, - "relativePath": "res\\texture_Block\\zhangai.png" - }, "90c37607-5145-4fb1-8d26-94d9a89baeee": { "asset": 1748318266184, "meta": 1748437823886, @@ -1165,8 +1120,8 @@ "relativePath": "resources\\Particle\\sp7.png" }, "c8f0a088-7a76-4057-b546-8e50c5b105c8": { - "asset": 1750750367996, - "meta": 1750750430474, + "asset": 1750920249257, + "meta": 1751250884702, "relativePath": "res\\effect" }, "a546d6f3-5346-4f7c-b2cb-e369cab36b48": { @@ -1200,13 +1155,13 @@ "relativePath": "effect\\融化.ts" }, "daf4fd67-c532-4d40-ac76-f104d2e011fc": { - "asset": 1750750372504, - "meta": 1750750429443, + "asset": 1750920255338, + "meta": 1751250884150, "relativePath": "Map" }, "f20c7bea-752c-4521-bba7-facfb396bd0f": { - "asset": 1750750372512, - "meta": 1750750429444, + "asset": 1750920255354, + "meta": 1751250884151, "relativePath": "Material" }, "40181e0c-789f-47f1-ba3c-d92486df52dd": { @@ -1215,8 +1170,8 @@ "relativePath": "Material\\TmoEffect.effect" }, "f2c5d7aa-95bc-4b34-a4c1-01ef2cf23d19": { - "asset": 1750750372529, - "meta": 1750750429445, + "asset": 1750920255369, + "meta": 1751250884152, "relativePath": "Script" }, "18d1ce4e-6c1b-4279-acac-c8ee5b30881b": { @@ -1274,161 +1229,6 @@ "meta": 1747388064818, "relativePath": "effect\\lianjie_1.png" }, - "8b8ec6d3-f576-46ed-beea-a154efe1621c": { - "asset": 1750750369043, - "meta": 1750750430496, - "relativePath": "Shader\\mofabang_baozha" - }, - "afcb829a-5254-4c11-9105-dfd8221fb5a9": { - "asset": 1750750369026, - "meta": 1750750430493, - "relativePath": "Shader\\jiekou" - }, - "52d6fee1-c5ed-4712-8dbf-cbea31617bd1": { - "asset": 1750750369026, - "meta": 1750750430525, - "relativePath": "Shader\\jiekou\\横" - }, - "eec9349a-c7f0-4791-9e85-caba15e44e97": { - "asset": 1750750369034, - "meta": 1750750430528, - "relativePath": "Shader\\jiekou\\竖" - }, - "f5c90851-ef9a-44a5-96de-54f17b7a766b": { - "asset": 1750750369056, - "meta": 1750750430497, - "relativePath": "Shader\\mofabang_texiao" - }, - "fe7bac61-99b4-4653-9428-8e258da15302": { - "asset": 1750750369067, - "meta": 1750750430497, - "relativePath": "Shader\\mofabang_tuowei" - }, - "b6ed74f8-9e62-419d-9ea7-59972f6e1a52": { - "asset": 1747710116542, - "meta": 1747710423396, - "relativePath": "Shader\\jiekou\\横\\jiekou_heng.atlas" - }, - "319e830d-24b7-499e-b9ab-e6484934d981": { - "asset": 1747710140423, - "meta": 1747710423400, - "relativePath": "Shader\\jiekou\\竖\\skeleton.atlas" - }, - "97459c20-5c45-444d-b533-f50d2406fe43": { - "asset": 1747709651535, - "meta": 1747710423407, - "relativePath": "Shader\\mofabang_baozha\\mofabang_baozha.atlas" - }, - "13f1b3eb-4cde-4c8e-9dee-16929acd6d24": { - "asset": 1747709904309, - "meta": 1747710423411, - "relativePath": "Shader\\mofabang_texiao\\mofabang_texiao.atlas" - }, - "a4736a35-1bd8-4751-89b4-d0bc089a2614": { - "asset": 1750750369095, - "meta": 1750750430497, - "relativePath": "Shader\\zhadan" - }, - "dca5e70b-8d3f-4ac0-abe7-d0c5647f7837": { - "asset": 1747710140422, - "meta": 1747710423467, - "relativePath": "Shader\\jiekou\\竖\\skeleton.png" - }, - "b422f3cf-81f1-4bda-9b15-c5ef7a9687b8": { - "asset": 1747710116541, - "meta": 1747710423473, - "relativePath": "Shader\\jiekou\\横\\jiekou_heng.png" - }, - "a2a2084f-96a0-4646-a699-ba9714473c81": { - "asset": 1747710233734, - "meta": 1747710423523, - "relativePath": "Shader\\zhadan\\zhandan.atlas" - }, - "88cf729e-5501-40cb-9039-36e92ee9c49b": { - "asset": 1747709650847, - "meta": 1747710423740, - "relativePath": "Shader\\mofabang_baozha\\mofabang_baozha.json" - }, - "0e005ec2-f5a3-41d3-8a99-7ea6d784440d": { - "asset": 1747710140407, - "meta": 1747710423752, - "relativePath": "Shader\\jiekou\\竖\\skeleton.json" - }, - "86f338ab-4874-40d7-ac5e-06e2bf339c6c": { - "asset": 1747709904145, - "meta": 1747710423764, - "relativePath": "Shader\\mofabang_texiao\\mofabang_texiao.json" - }, - "ca1fbdcb-5180-4815-8751-4b66146e74de": { - "asset": 1747710116501, - "meta": 1747710423771, - "relativePath": "Shader\\jiekou\\横\\jiekou_heng.json" - }, - "2a1bffdc-6b63-425c-9710-a32b4d93ea4b": { - "asset": 1747710233511, - "meta": 1747710423781, - "relativePath": "Shader\\zhadan\\zhandan.json" - }, - "43aa6fa9-d440-4a11-93ae-e92a87fc2c4a": { - "asset": 1750750369069, - "meta": 1750750430529, - "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects" - }, - "1aa36344-6803-464b-9ccd-bd47a2dc65d7": { - "asset": 1750750369073, - "meta": 1750750430538, - "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x" - }, - "a016c003-4b29-4f55-8f78-f3b6dd5abab6": { - "asset": 1750750369078, - "meta": 1750750430542, - "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures" - }, - "866e4be5-7181-407b-8a74-8822bf3e46db": { - "asset": 1750750369086, - "meta": 1750750430549, - "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle" - }, - "32ec5e41-9aeb-475a-9ad2-1d0a81b8dfc2": { - "asset": 1747711946060, - "meta": 1747711946061, - "relativePath": "Shader\\mofabang_tuowei\\tuowei1.prefab" - }, - "118d4d54-d313-4f52-b49f-593effa13423": { - "asset": 1747341686000, - "meta": 1747711946094, - "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle\\flash.png" - }, - "c88c6283-3de7-4606-b65a-fa3e18c95049": { - "asset": 1747341686000, - "meta": 1747711946095, - "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle\\circle_00.png" - }, - "727ab669-af95-43be-9818-2065a98b84a5": { - "asset": 1747341686000, - "meta": 1747711946098, - "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle\\LiZi1.png" - }, - "363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de": { - "asset": 1747710488564, - "meta": 1747711946103, - "relativePath": "Shader\\mofabang_texiao\\mofabang_texiao.png" - }, - "071c697b-6b3e-4294-a6bb-e433ef19e445": { - "asset": 1747341686000, - "meta": 1747711946106, - "relativePath": "Shader\\mofabang_tuowei\\bang.png" - }, - "15f7f173-be51-47f3-8314-66d14e63471f": { - "asset": 1747710491070, - "meta": 1747711946124, - "relativePath": "Shader\\zhadan\\zhandan.png" - }, - "ff0d5773-ca66-4087-b1b7-4777121d85be": { - "asset": 1747710487679, - "meta": 1747711946149, - "relativePath": "Shader\\mofabang_baozha\\mofabang_baozha.png" - }, "3d20e513-a37f-4e1f-81b2-ad82655fbae7": { "asset": 1747385177000, "meta": 1747825104791, @@ -1530,8 +1330,8 @@ "relativePath": "resources\\Json\\level76.json" }, "e9baff1b-7642-4be9-88ca-f3f9a4e2f510": { - "asset": 1750750368065, - "meta": 1750750430478, + "asset": 1750920249320, + "meta": 1751250884706, "relativePath": "resources\\bg" }, "02990639-fe0f-4ad3-803c-df7b0f848c77": { @@ -1575,8 +1375,8 @@ "relativePath": "resources\\bg\\bg2.jpg" }, "034840bc-3824-492a-9542-0b64edfb4046": { - "asset": 1750750368769, - "meta": 1750750430487, + "asset": 1750920250045, + "meta": 1751250884712, "relativePath": "resources\\Window_Prop" }, "1c111e49-b82d-4996-b6e9-bc78e698c880": { @@ -1799,11 +1599,6 @@ "meta": 1748228747360, "relativePath": "resources\\Json\\level56.json" }, - "cc01997d-495e-480d-871e-be405a6c38b5": { - "asset": 1748243270785, - "meta": 1748243294435, - "relativePath": "res\\texture_Block\\door.plist" - }, "0320e925-da03-488f-9e62-0018a6fdbb83": { "asset": 1748249803539, "meta": 1748249848882, @@ -2330,8 +2125,8 @@ "relativePath": "resources\\Json\\level68.json" }, "f307257e-fd8b-4b22-88e1-40d22df34759": { - "asset": 1750750367905, - "meta": 1750750430439, + "asset": 1750920249178, + "meta": 1751250884665, "relativePath": "libs" }, "2cd54f87-8181-484e-915e-e902e5bea0c1": { @@ -2340,48 +2135,48 @@ "relativePath": "animation\\NewScript.js" }, "19d0cfc7-d042-4f1c-803a-556069623174": { - "asset": 1750750367776, - "meta": 1750750430454, + "asset": 1750920249052, + "meta": 1751250884688, "relativePath": "effect\\boom" }, "4848d7c0-2271-44f9-b68c-8af7c82e7d39": { - "asset": 1750750367784, - "meta": 1750750430454, + "asset": 1750920249068, + "meta": 1751250884690, "relativePath": "effect\\freeze" }, "515bdb91-ddae-43df-aa2d-c51b6c703979": { - "asset": 1750750367801, - "meta": 1750750430461, + "asset": 1750920249084, + "meta": 1751250884692, "relativePath": "effect\\good" }, "fb664eba-5060-4ce6-b405-1f291dbc4aef": { - "asset": 1750750367809, - "meta": 1750750430463, + "asset": 1750920249099, + "meta": 1751250884692, "relativePath": "effect\\load" }, "9ecf33ff-c969-4fec-abd0-12b243dc28a9": { - "asset": 1750750367826, - "meta": 1750750430466, + "asset": 1750920249099, + "meta": 1751250884694, "relativePath": "effect\\magic" }, "f3e6bd15-b228-457b-a153-3c060d0ed521": { - "asset": 1750750367847, - "meta": 1750750430468, + "asset": 1750920249115, + "meta": 1751250884694, "relativePath": "effect\\nianhe" }, "4521acf8-e934-426e-b598-0e3130cff6e4": { - "asset": 1750750367856, - "meta": 1750750430470, + "asset": 1750920249131, + "meta": 1751250884696, "relativePath": "effect\\star" }, "fb8c4ca9-3797-49ea-9e0b-aba6bf29a72c": { - "asset": 1750750367867, - "meta": 1750750430471, + "asset": 1750920249147, + "meta": 1751250884696, "relativePath": "effect\\touch" }, "6cbb4c39-cc05-40b9-ade7-d861892eec7d": { - "asset": 1750750367876, - "meta": 1750750430471, + "asset": 1750920249147, + "meta": 1751250884698, "relativePath": "effect\\tuowei" }, "c9ad1894-4c1d-4fca-a277-726b4c189df5": { @@ -2435,8 +2230,8 @@ "relativePath": "effect\\good\\太棒了-.png" }, "7edcbf54-d8ee-4027-950d-7d5e0086d76d": { - "asset": 1750750367880, - "meta": 1750750430502, + "asset": 1750920249147, + "meta": 1751250884727, "relativePath": "effect\\tuowei\\2D and UI trailing effects" }, "fe2e1147-b4a4-4f5d-885b-e2bac6b7b42e": { @@ -2800,18 +2595,18 @@ "relativePath": "resources\\Particle\\sp2_1.png" }, "b7dfc157-1e68-4278-a452-23541de3bab7": { - "asset": 1750750367884, - "meta": 1750750430536, + "asset": 1750920249162, + "meta": 1751250884745, "relativePath": "effect\\tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x" }, "9d39798c-3312-4cfe-b597-73c0057c8e99": { - "asset": 1750750367888, - "meta": 1750750430542, + "asset": 1750920249162, + "meta": 1751250884750, "relativePath": "effect\\tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures" }, "e0b3973d-fd82-4d03-a0db-8ec2dd56271a": { - "asset": 1750750367897, - "meta": 1750750430547, + "asset": 1750920249162, + "meta": 1751250884752, "relativePath": "effect\\tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle" }, "05875bd1-0240-40cc-b2d9-0166038382ba": { @@ -2830,18 +2625,18 @@ "relativePath": "effect\\tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle\\LiZi1.png" }, "6c53e21f-0dfa-4273-b08a-951f6792467b": { - "asset": 1749539953146, - "meta": 1749539953150, + "asset": 1751253708450, + "meta": 1751253708459, "relativePath": "resources\\prefab\\block\\block4.prefab" }, "6413d7ad-bfc3-4b8c-bc1c-c1d819e9d892": { - "asset": 1750750368870, - "meta": 1750750430508, + "asset": 1750920250139, + "meta": 1751250884731, "relativePath": "Script\\lq_base\\data" }, "0432403f-8c23-4a3e-813a-1a9a1d88aeed": { - "asset": 1750750368886, - "meta": 1750750430508, + "asset": 1750920250155, + "meta": 1751250884731, "relativePath": "Script\\lq_base\\util" }, "c22a3c1c-53fb-4174-9fea-8e7fd0eaeb80": { @@ -2895,18 +2690,18 @@ "relativePath": "Script\\lq_base\\util\\lq_game_util.ts" }, "b6fd3869-f3bc-4fcb-9660-e4cbe0824ad3": { - "asset": 1750750368874, - "meta": 1750750430489, + "asset": 1750920250139, + "meta": 1751250884712, "relativePath": "Script\\lq_base" }, "7262f828-3947-4d61-ab6b-0c5ef01a6473": { - "asset": 1750750368903, - "meta": 1750750430490, + "asset": 1750920250171, + "meta": 1751250884714, "relativePath": "Script\\lq_collide_system" }, "92f23179-46e7-4f6c-8d1f-3b68910937db": { - "asset": 1749539958392, - "meta": 1749539958401, + "asset": 1751254045760, + "meta": 1751254045768, "relativePath": "resources\\prefab\\block\\block5.prefab" }, "4bd218bc-f09f-4a7e-8581-e9faa4ee85b5": { @@ -2915,8 +2710,8 @@ "relativePath": "Script\\lq_collide_system\\lq_collide_config.ts" }, "e1e1fde9-4548-4234-97c0-b571d29d6964": { - "asset": 1749539941348, - "meta": 1749539941353, + "asset": 1751253674536, + "meta": 1751253674549, "relativePath": "resources\\prefab\\block\\block1.prefab" }, "92586008-06b8-4305-818c-ab9e69997bd3": { @@ -2930,8 +2725,8 @@ "relativePath": "resources\\Json\\level83.json" }, "3c71c961-6f67-4945-8fc8-4423bde5a407": { - "asset": 1750750369224, - "meta": 1750750430533, + "asset": 1750920250486, + "meta": 1751250884745, "relativePath": "UI\\UI\\start" }, "e1b9ccf5-5ce0-4f3a-98b3-be03da8aa0b1": { @@ -2975,13 +2770,13 @@ "relativePath": "UI\\UI\\ice1.png" }, "a8367177-3aba-42cd-9f77-1f1ad166b0ac": { - "asset": 1750750369099, - "meta": 1750750430451, + "asset": 1750920250360, + "meta": 1751250884686, "relativePath": "TextureBg" }, "89c216a8-80c9-4e97-a06f-864e5640fcc8": { - "asset": 1750750369116, - "meta": 1750750430500, + "asset": 1750920250375, + "meta": 1751250884724, "relativePath": "TextureBg\\pop_Bg" }, "22bce3a4-1d59-4e46-a06c-530039f813b8": { @@ -3255,8 +3050,8 @@ "relativePath": "Script\\prop\\Adhesive.ts" }, "92dfa35c-14f5-48b7-8f57-583c7a23d434": { - "asset": 1749539899772, - "meta": 1749539936458, + "asset": 1751253635838, + "meta": 1751253635849, "relativePath": "resources\\prefab\\block\\block0.prefab" }, "a57bdbd8-3153-459e-b71c-9dc08d255d09": { @@ -3345,15 +3140,10 @@ "relativePath": "UI\\UI\\publicUI.plist" }, "4eaf518b-35ec-4262-928d-4d497c3f2830": { - "asset": 1750848806469, - "meta": 1750848806484, + "asset": 1751254209243, + "meta": 1751254209259, "relativePath": "Scene\\GameScene.fire" }, - "87a449b9-7ffa-4f00-a22b-b3202b4abfd5": { - "asset": 1750042387657, - "meta": 1750042389357, - "relativePath": "Script\\Wall.ts" - }, "c58de376-bb53-4664-bf27-270be7bb53d1": { "asset": 1750042622364, "meta": 1750042623994, @@ -3374,16 +3164,6 @@ "meta": 1750145376899, "relativePath": "TextureBlock\\block\\star.plist" }, - "31479c6e-5626-4598-97ab-f94303e9efe7": { - "asset": 1746785313569, - "meta": 1750153005864, - "relativePath": "res\\texture_Block\\down.plist" - }, - "418b4767-01bf-4ac2-823b-9880f2a79215": { - "asset": 1748243270783, - "meta": 1750153342399, - "relativePath": "res\\texture_Block\\door.png" - }, "66281f32-0047-4af8-8237-90c93fc4b0e8": { "asset": 1750755483755, "meta": 1750755483762, @@ -3449,11 +3229,6 @@ "meta": 1750755469968, "relativePath": "resources\\Json\\level137.json" }, - "809984f5-0183-4d45-9751-c6c56f5d1eb9": { - "asset": 1750759139580, - "meta": 1750760972407, - "relativePath": "Script\\SceneManager.ts" - }, "f41d602c-b8df-4067-a88a-16c4ba168356": { "asset": 1750389088000, "meta": 1750820043751, @@ -3504,29 +3279,49 @@ "meta": 1750820043789, "relativePath": "resources\\Json\\level127.json" }, - "2234ab2c-a7b4-48be-90e0-ae7aa58e9d91": { - "asset": 1750839815897, - "meta": 1750848888371, - "relativePath": "Script\\Map.ts" - }, "1dc936f8-7de8-4eae-91a0-4e48a1047e20": { "asset": 1750848051026, "meta": 1750848888061, "relativePath": "Script\\JiaZai.ts" }, - "43bfc27a-ff6e-45b3-87c7-504d0f781397": { - "asset": 1750847473264, - "meta": 1750848888494, - "relativePath": "Script\\module\\Tool\\GameTool.ts" - }, - "df248952-2e59-4e66-9087-c06a90e587b7": { - "asset": 1750848525693, - "meta": 1750848751177, - "relativePath": "Script\\GameManager.ts" - }, "c1af99dd-ee03-40f7-9609-d3887d0dd357": { "asset": 1750848799605, "meta": 1750848800986, "relativePath": "Script\\Sdk\\MiniGameSdk.ts" + }, + "df248952-2e59-4e66-9087-c06a90e587b7": { + "asset": 1750920932621, + "meta": 1750920933587, + "relativePath": "Script\\GameManager.ts" + }, + "87a449b9-7ffa-4f00-a22b-b3202b4abfd5": { + "asset": 1751253182979, + "meta": 1751253295959, + "relativePath": "Script\\Wall.ts" + }, + "ba9a4097-f4d2-4cc8-b325-34405e67b130": { + "asset": 1747031220662, + "meta": 1751253550229, + "relativePath": "TextureBlock\\block\\freeze.plist" + }, + "a7769b53-73c4-4fd2-bcad-e83d044a502e": { + "asset": 1747031237447, + "meta": 1751253550202, + "relativePath": "TextureBlock\\block\\freeze.png" + }, + "43bfc27a-ff6e-45b3-87c7-504d0f781397": { + "asset": 1751253977856, + "meta": 1751254030790, + "relativePath": "Script\\module\\Tool\\GameTool.ts" + }, + "2234ab2c-a7b4-48be-90e0-ae7aa58e9d91": { + "asset": 1751263945555, + "meta": 1751264007407, + "relativePath": "Script\\Map.ts" + }, + "809984f5-0183-4d45-9751-c6c56f5d1eb9": { + "asset": 1751263859517, + "meta": 1751264007473, + "relativePath": "Script\\SceneManager.ts" } } \ No newline at end of file diff --git a/local/builder.json b/local/builder.json index 9e9d08d..fb4d275 100644 --- a/local/builder.json +++ b/local/builder.json @@ -16,5 +16,5 @@ "apiLevel": "", "appABIs": [], "vsVersion": "auto", - "buildScriptsOnly": true + "buildScriptsOnly": false } diff --git a/local/layout.editor.json b/local/layout.editor.json index b0f0a69..5020548 100644 --- a/local/layout.editor.json +++ b/local/layout.editor.json @@ -8,18 +8,18 @@ "x": 0, "y": 0, "width": 1280, - "height": 676, + "height": 672, "layout": { "type": "dock-h", "children": [ { - "width": 204.8541717529297, - "height": 553.8333740234375, + "width": 204.64584350585938, + "height": 556.3333740234375, "type": "dock-v", "children": [ { - "width": 204.8541717529297, - "height": 323.90625, + "width": 204.64584350585938, + "height": 226, "type": "panel", "active": 0, "children": [ @@ -27,8 +27,8 @@ ] }, { - "width": 204.8541717529297, - "height": 226.92709350585938, + "width": 204.64584350585938, + "height": 327.3333435058594, "type": "panel", "active": 0, "children": [ @@ -38,8 +38,8 @@ ] }, { - "width": 751.1458740234375, - "height": 553.8333740234375, + "width": 751.34375, + "height": 556.3333740234375, "type": "panel", "active": 0, "children": [ @@ -48,7 +48,7 @@ }, { "width": 304, - "height": 556, + "height": 556.3333740234375, "type": "panel", "active": 0, "children": [ @@ -65,6 +65,32 @@ "inspector", "cocos-services" ] + }, + "window-1751254982251": { + "main": false, + "url": "unpack://static/window.html", + "windowType": "dockable", + "x": 6, + "y": 50, + "width": 1292, + "height": 700, + "layout": { + "type": "dock-v", + "children": [ + { + "width": 1278, + "height": 663.3333740234375, + "type": "panel", + "active": 0, + "children": [ + "console" + ] + } + ] + }, + "panels": [ + "console" + ] } }, "panels": { diff --git a/local/local.json b/local/local.json index 35661fc..6aa6e00 100644 --- a/local/local.json +++ b/local/local.json @@ -1,5 +1,5 @@ { - "last-edit": "4eaf518b-35ec-4262-928d-4d497c3f2830", + "last-edit": "66281f32-0047-4af8-8237-90c93fc4b0e8", "recent-items": [ "badb56f7-1c07-4fbb-87e6-5bfd805fe81b", "a264c8df-80f6-474f-9fe5-28b7ae529d95", @@ -54,22 +54,32 @@ "59cd32c1-278f-4aba-a2b6-0e0c4f73e063", "1c619601-a6ae-4c45-be2c-20b0d95e950f", "e98498e1-12bf-4280-8def-6f8e543fb934", - "5ed13d95-5b93-4407-b770-0dedeb674b0f", "a496b103-90e1-421c-94c5-500167b26227", "725f6dd5-18b0-44f9-997a-d89b23ac1fc0", "2ad95b5e-51fe-4864-ad40-6743b8fac9d5", "b5a00886-b32d-4185-a4a6-fd9f7a8dbe90", "ec5b9995-a54c-47bd-adb5-27ec0160146e", + "a99d5bb3-6216-4c6e-bfb6-f793289870df", + "25bab75a-d0a5-42a2-b0d4-f1aca4ac8d80", + "0cf46635-8a58-4196-b24e-d075875778d0", + "a710c09b-ab49-4276-9660-b882fcff8b24", + "a63ade2f-c476-4f26-84e6-b978db27c435", + "1024689e-c2b8-4ef4-91de-02732703334f", + "fc41ae6e-8743-4057-86fa-bff2f8ff171b", + "cef92b6b-13fd-44c8-a4af-848b55a7ba57", + "bf502854-8e31-40c1-9d27-ac480682b4c4", + "f0da65e3-27d4-43c7-9945-ace5c5d815e5", + "8600d9b3-b4ad-4c84-b458-42b4f31addcd", + "5ed13d95-5b93-4407-b770-0dedeb674b0f", + "b6ab43fe-8e9a-48ac-9dc9-9107a47de661", + "92dfa35c-14f5-48b7-8f57-583c7a23d434", "e1e1fde9-4548-4234-97c0-b571d29d6964", - "90a9eb51-3d7f-4094-add0-ad20f9379337", + "503530e7-cfb4-4bcb-ac38-d4dd3ce3d1af", "6c53e21f-0dfa-4273-b08a-951f6792467b", "92f23179-46e7-4f6c-8d1f-3b68910937db", - "b38991fe-2e45-431c-8f23-974e7905dfaa", "7e0a9fcf-7599-443b-814d-05bf5cca516a", "5b0aa537-7f4b-4132-ac45-2101f453a688", - "0237ad36-2cdb-4e29-944a-8720564056bc", "2873d380-eeb8-4805-af74-462d711f466a", - "2ea4f287-fa08-4f3e-8c66-6f9738b0fd0a", "3f275c96-62b0-417f-9224-aeb073192f1d", "4c1187d9-40bd-4210-acd7-0eecf4b2706f", "b54f9b14-fdec-476f-98f8-f0a519f7e844", @@ -82,24 +92,14 @@ "bc027956-4f24-4f96-b705-359a19cccb53", "59a8c009-6f37-4960-b842-18f457d55412", "eec86efa-7642-410f-934a-7af388c0311a", + "b38991fe-2e45-431c-8f23-974e7905dfaa", + "0237ad36-2cdb-4e29-944a-8720564056bc", + "2ea4f287-fa08-4f3e-8c66-6f9738b0fd0a", + "4eaf518b-35ec-4262-928d-4d497c3f2830", "6023e99b-9806-44e9-8325-487a6cfdf3e5", "75a77063-a5a9-456a-8b4f-bfde10c137e8", - "a99d5bb3-6216-4c6e-bfb6-f793289870df", - "25bab75a-d0a5-42a2-b0d4-f1aca4ac8d80", - "0cf46635-8a58-4196-b24e-d075875778d0", - "92dfa35c-14f5-48b7-8f57-583c7a23d434", - "503530e7-cfb4-4bcb-ac38-d4dd3ce3d1af", - "b6ab43fe-8e9a-48ac-9dc9-9107a47de661", - "f0da65e3-27d4-43c7-9945-ace5c5d815e5", - "8600d9b3-b4ad-4c84-b458-42b4f31addcd", - "a710c09b-ab49-4276-9660-b882fcff8b24", - "a63ade2f-c476-4f26-84e6-b978db27c435", - "1024689e-c2b8-4ef4-91de-02732703334f", - "fc41ae6e-8743-4057-86fa-bff2f8ff171b", - "cef92b6b-13fd-44c8-a4af-848b55a7ba57", - "bf502854-8e31-40c1-9d27-ac480682b4c4", + "90a9eb51-3d7f-4094-add0-ad20f9379337", "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d", - "66281f32-0047-4af8-8237-90c93fc4b0e8", - "4eaf518b-35ec-4262-928d-4d497c3f2830" + "66281f32-0047-4af8-8237-90c93fc4b0e8" ] } diff --git a/local/node-tree-state.json b/local/node-tree-state.json index d398205..fceeb42 100644 --- a/local/node-tree-state.json +++ b/local/node-tree-state.json @@ -1,11 +1,5 @@ { "nodeFoldStates": [ - "47lrY92iRGip1jLAj3HJMJ", - "d1P2P9ZpxIb7LGkUbDusBf", - "c4jTeZS3xNo5yzq75a9iuH", - "83Z2UibrBLEJ4MPbwZRG5R", - "bduGrKwyNCio+x5K6dFs9v", - "13bcnAr9pGkZTePmaMSsVe", "a8YKids/pBo7a6DhcKC/x6", "2dETzylNRCQqKpL2ZTQgkQ", "73C9Kx3DVLIauCEDxAkpJQ", @@ -493,12 +487,18 @@ "faTUOwCO9I+5u+/Z51XIk/", "8cioaWxzdBwaC5lZHRaEyQ", "b2/1NmDPVCXovcyHPoKEHX", - "cbuzoJCRZOuo5AU8opcyOt", "2a7fKXbxNM+7oVc5ylGZS3", "bbsXTvcuBLUr67DsG2oE8g", "39zlXmZYZOXKpd5NRIFb8h", "349IYUpJ9GgqafnciDCl3J", "366Lx63TdOsbhMMswe7QCc", - "1100mE3D9NOZt7Z7LNDlJY" + "1100mE3D9NOZt7Z7LNDlJY", + "63u0GWwYBHQYonYh/K0LnP", + "2bLO47dXNKSZvDbXHMD3j8", + "fb3vwX7QtHTJwW1wJf0/zx", + "0diNuzxEBDO5wPCjOf+aqe", + "98xw+IhclIt6YWRiX2ipvR", + "7caCsCl3pCKJyr7HLfz28L", + "f8ATbGJ+ZAo7ZtWPoOc15o" ] } diff --git a/temp/BackupAssets/assets/prefab/map/MapBlock.prefab b/temp/BackupAssets/assets/prefab/map/MapBlock.prefab index 7bca426..23ce973 100644 --- a/temp/BackupAssets/assets/prefab/map/MapBlock.prefab +++ b/temp/BackupAssets/assets/prefab/map/MapBlock.prefab @@ -314,9 +314,7 @@ ], "_srcBlendFactor": 770, "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "b1760ce5-36c7-4d8b-bb5f-069a448ebbf2" - }, + "_spriteFrame": null, "_type": 0, "_sizeMode": 1, "_fillType": 0, @@ -328,9 +326,7 @@ "_fillStart": 0, "_fillRange": 0, "_isTrimmedMode": true, - "_atlas": { - "__uuid__": "cc01997d-495e-480d-871e-be405a6c38b5" - }, + "_atlas": null, "_id": "" }, { diff --git a/temp/BackupAssets/assets/prefab/map/turn_Wall.prefab b/temp/BackupAssets/assets/prefab/map/turn_Wall.prefab new file mode 100644 index 0000000..02d69a5 --- /dev/null +++ b/temp/BackupAssets/assets/prefab/map/turn_Wall.prefab @@ -0,0 +1,302 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "turn_Wall", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 8 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 120, + "height": 120 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite(Splash)", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 120, + "height": 120 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "f1WknqcE9GnoOIdZqUwd1D", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 7 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 61, + "height": 69 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 36.842, + 35.803, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "49hfa7I3ROIqdVm0qtkvm2", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/temp/BackupAssets/assets/resources/prefab/block/block0.prefab b/temp/BackupAssets/assets/resources/prefab/block/block0.prefab index c2097fc..2f38ad3 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block0.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block0.prefab @@ -782,7 +782,7 @@ "heng": 1, "shu": 1, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block1.prefab b/temp/BackupAssets/assets/resources/prefab/block/block1.prefab index 89fe4c4..5654c58 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block1.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block1.prefab @@ -31,22 +31,19 @@ }, { "__id__": 17 - }, - { - "__id__": 21 } ], "_active": true, "_components": [ { - "__id__": 23 + "__id__": 21 }, { - "__id__": 24 + "__id__": 22 } ], "_prefab": { - "__id__": 25 + "__id__": 23 }, "_opacity": 255, "_color": { @@ -772,77 +769,6 @@ "fileId": "e9YUZAmK9HCJEc5eGwDOl7", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 22 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "18wfakY7xNY5UQ8IehmDF9", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -856,7 +782,7 @@ "heng": 2, "shu": 1, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block10.prefab b/temp/BackupAssets/assets/resources/prefab/block/block10.prefab index d4b7a56..551d453 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block10.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block10.prefab @@ -37,22 +37,19 @@ }, { "__id__": 25 - }, - { - "__id__": 29 } ], "_active": true, "_components": [ { - "__id__": 31 + "__id__": 29 }, { - "__id__": 32 + "__id__": 30 } ], "_prefab": { - "__id__": 33 + "__id__": 31 }, "_opacity": 255, "_color": { @@ -1064,77 +1061,6 @@ "fileId": "3fqtakn1xAU6rne5NKW2tW", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 30 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "05sE0XpsNN+YUGfzYZKVYi", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -1148,7 +1074,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block11.prefab b/temp/BackupAssets/assets/resources/prefab/block/block11.prefab index 4e63d6b..1f526ed 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block11.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block11.prefab @@ -37,22 +37,19 @@ }, { "__id__": 25 - }, - { - "__id__": 29 } ], "_active": true, "_components": [ { - "__id__": 31 + "__id__": 29 }, { - "__id__": 32 + "__id__": 30 } ], "_prefab": { - "__id__": 33 + "__id__": 31 }, "_opacity": 255, "_color": { @@ -1064,77 +1061,6 @@ "fileId": "fdL42sgylIS642V/6or5nB", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 30 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "d45Xlw7xNC5bpaNVojxwhI", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -1148,7 +1074,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block12.prefab b/temp/BackupAssets/assets/resources/prefab/block/block12.prefab index 32db8a9..902b81d 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block12.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block12.prefab @@ -37,22 +37,19 @@ }, { "__id__": 25 - }, - { - "__id__": 29 } ], "_active": true, "_components": [ { - "__id__": 31 + "__id__": 29 }, { - "__id__": 32 + "__id__": 30 } ], "_prefab": { - "__id__": 33 + "__id__": 31 }, "_opacity": 255, "_color": { @@ -1064,77 +1061,6 @@ "fileId": "ddwFSF+CBD+ogHMAejLDXf", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 30 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "18p+jDpDlDSLHokOsKDHQz", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -1148,7 +1074,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block13.prefab b/temp/BackupAssets/assets/resources/prefab/block/block13.prefab index 160e8ad..2b42352 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block13.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block13.prefab @@ -37,22 +37,19 @@ }, { "__id__": 25 - }, - { - "__id__": 29 } ], "_active": true, "_components": [ { - "__id__": 31 + "__id__": 29 }, { - "__id__": 32 + "__id__": 30 } ], "_prefab": { - "__id__": 33 + "__id__": 31 }, "_opacity": 255, "_color": { @@ -1064,77 +1061,6 @@ "fileId": "dbLlIrQB1OZbep1IZXAakQ", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 30 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "fdwjwreuxKJIKtdmSSOHlV", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -1148,7 +1074,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block14.prefab b/temp/BackupAssets/assets/resources/prefab/block/block14.prefab index 99d3e13..c21b47e 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block14.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block14.prefab @@ -40,22 +40,19 @@ }, { "__id__": 29 - }, - { - "__id__": 33 } ], "_active": true, "_components": [ { - "__id__": 35 + "__id__": 33 }, { - "__id__": 36 + "__id__": 34 } ], "_prefab": { - "__id__": 37 + "__id__": 35 }, "_opacity": 255, "_color": { @@ -1210,77 +1207,6 @@ "fileId": "fbPri7frJJJpf0whW3EHbz", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 34 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "060Edyt8NMYLHeYSOjG24C", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -1294,7 +1220,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block15.prefab b/temp/BackupAssets/assets/resources/prefab/block/block15.prefab index a858545..17b5c7d 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block15.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block15.prefab @@ -40,22 +40,19 @@ }, { "__id__": 29 - }, - { - "__id__": 33 } ], "_active": true, "_components": [ { - "__id__": 35 + "__id__": 33 }, { - "__id__": 36 + "__id__": 34 } ], "_prefab": { - "__id__": 37 + "__id__": 35 }, "_opacity": 255, "_color": { @@ -1210,77 +1207,6 @@ "fileId": "5fZrHZLutOZ4PQRc26CEJ6", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 34 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "1esifvoq9HU6ueXxezMBqX", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", diff --git a/temp/BackupAssets/assets/resources/prefab/block/block16.prefab b/temp/BackupAssets/assets/resources/prefab/block/block16.prefab index 774290e..86f5b86 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block16.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block16.prefab @@ -40,22 +40,19 @@ }, { "__id__": 29 - }, - { - "__id__": 33 } ], "_active": true, "_components": [ { - "__id__": 35 + "__id__": 33 }, { - "__id__": 36 + "__id__": 34 } ], "_prefab": { - "__id__": 37 + "__id__": 35 }, "_opacity": 255, "_color": { @@ -1210,77 +1207,6 @@ "fileId": "6avWrBeBhJF4CJX0eBnYvR", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 34 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "22IisoGFNFwISIIRCYwhvR", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", diff --git a/temp/BackupAssets/assets/resources/prefab/block/block17.prefab b/temp/BackupAssets/assets/resources/prefab/block/block17.prefab index c2b1610..c17d04d 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block17.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block17.prefab @@ -40,22 +40,19 @@ }, { "__id__": 29 - }, - { - "__id__": 33 } ], "_active": true, "_components": [ { - "__id__": 35 + "__id__": 33 }, { - "__id__": 36 + "__id__": 34 } ], "_prefab": { - "__id__": 37 + "__id__": 35 }, "_opacity": 255, "_color": { @@ -1210,77 +1207,6 @@ "fileId": "bd0WTL29JAP725qjY2w0oW", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 34 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "3e+NHsXG9DppGWowxfMLff", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", diff --git a/temp/BackupAssets/assets/resources/prefab/block/block18.prefab b/temp/BackupAssets/assets/resources/prefab/block/block18.prefab index 33f97b9..3e13512 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block18.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block18.prefab @@ -43,22 +43,19 @@ }, { "__id__": 33 - }, - { - "__id__": 37 } ], "_active": true, "_components": [ { - "__id__": 39 + "__id__": 37 }, { - "__id__": 40 + "__id__": 38 } ], "_prefab": { - "__id__": 41 + "__id__": 39 }, "_opacity": 255, "_color": { @@ -1356,77 +1353,6 @@ "fileId": "e2l6sUHVlCN4lJX0bWyFvH", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 38 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "e7zyjXGklExZIZELQPtgKG", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -1440,7 +1366,7 @@ "heng": 3, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block19.prefab b/temp/BackupAssets/assets/resources/prefab/block/block19.prefab index 6dd3eb9..0e943f6 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block19.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block19.prefab @@ -37,22 +37,19 @@ }, { "__id__": 25 - }, - { - "__id__": 29 } ], "_active": true, "_components": [ { - "__id__": 31 + "__id__": 29 }, { - "__id__": 32 + "__id__": 30 } ], "_prefab": { - "__id__": 33 + "__id__": 31 }, "_opacity": 255, "_color": { @@ -1064,77 +1061,6 @@ "fileId": "a132v2HgNNQajhVXLzJP7J", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 30 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "07j29aGwpCrYH829qg0gu+", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", diff --git a/temp/BackupAssets/assets/resources/prefab/block/block2.prefab b/temp/BackupAssets/assets/resources/prefab/block/block2.prefab index 1ec97f7..edb87c4 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block2.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block2.prefab @@ -31,22 +31,19 @@ }, { "__id__": 17 - }, - { - "__id__": 21 } ], "_active": true, "_components": [ { - "__id__": 23 + "__id__": 21 }, { - "__id__": 24 + "__id__": 22 } ], "_prefab": { - "__id__": 25 + "__id__": 23 }, "_opacity": 255, "_color": { @@ -772,77 +769,6 @@ "fileId": "c8rm4s589EYZ/Tji7rgueB", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 22 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "bdqUf3+y9BT5HYAFMEm4OG", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -856,7 +782,7 @@ "heng": 1, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block20.prefab b/temp/BackupAssets/assets/resources/prefab/block/block20.prefab index 2a21571..d8231b2 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block20.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block20.prefab @@ -37,22 +37,19 @@ }, { "__id__": 25 - }, - { - "__id__": 29 } ], "_active": true, "_components": [ { - "__id__": 31 + "__id__": 29 }, { - "__id__": 32 + "__id__": 30 } ], "_prefab": { - "__id__": 33 + "__id__": 31 }, "_opacity": 255, "_color": { @@ -1064,77 +1061,6 @@ "fileId": "5fsC7n00pOOqIJYOwraZfh", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 30 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "3expK0a2JGro9IfQBY0SOS", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", diff --git a/temp/BackupAssets/assets/resources/prefab/block/block21.prefab b/temp/BackupAssets/assets/resources/prefab/block/block21.prefab index a7c8c45..a9c6a17 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block21.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block21.prefab @@ -37,22 +37,19 @@ }, { "__id__": 25 - }, - { - "__id__": 29 } ], "_active": true, "_components": [ { - "__id__": 31 + "__id__": 29 }, { - "__id__": 32 + "__id__": 30 } ], "_prefab": { - "__id__": 33 + "__id__": 31 }, "_opacity": 255, "_color": { @@ -1064,77 +1061,6 @@ "fileId": "40vo4N485NVJDZyY9X5IAn", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 30 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "ef4gc9DpZAHYZowkJqe2Ix", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -1148,7 +1074,7 @@ "heng": 2, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block22.prefab b/temp/BackupAssets/assets/resources/prefab/block/block22.prefab index 6d24e57..230caaa 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block22.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block22.prefab @@ -37,22 +37,19 @@ }, { "__id__": 25 - }, - { - "__id__": 29 } ], "_active": true, "_components": [ { - "__id__": 31 + "__id__": 29 }, { - "__id__": 32 + "__id__": 30 } ], "_prefab": { - "__id__": 33 + "__id__": 31 }, "_opacity": 255, "_color": { @@ -1064,77 +1061,6 @@ "fileId": "c6BQI2DxROg5NJgUGDXZxH", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 30 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "2ayvZHJpBM7qfAC4Rs2KpR", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -1148,7 +1074,7 @@ "heng": 2, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block3.prefab b/temp/BackupAssets/assets/resources/prefab/block/block3.prefab index b466c79..1093cc5 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block3.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block3.prefab @@ -31,22 +31,19 @@ }, { "__id__": 17 - }, - { - "__id__": 21 } ], "_active": true, "_components": [ { - "__id__": 23 + "__id__": 21 }, { - "__id__": 24 + "__id__": 22 } ], "_prefab": { - "__id__": 25 + "__id__": 23 }, "_opacity": 255, "_color": { @@ -772,77 +769,6 @@ "fileId": "87m7vzA7pAgYHkEJ/xO+tL", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 22 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "eaVniixyBGt4ta+hgZ3z2b", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -856,7 +782,7 @@ "heng": 3, "shu": 1, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block4.prefab b/temp/BackupAssets/assets/resources/prefab/block/block4.prefab index 7e4aa33..cc46452 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block4.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block4.prefab @@ -31,22 +31,19 @@ }, { "__id__": 17 - }, - { - "__id__": 21 } ], "_active": true, "_components": [ { - "__id__": 23 + "__id__": 21 }, { - "__id__": 24 + "__id__": 22 } ], "_prefab": { - "__id__": 25 + "__id__": 23 }, "_opacity": 255, "_color": { @@ -772,77 +769,6 @@ "fileId": "38Hw5xkP5D1pz0l3Ht2pPt", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 22 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "d9sqRyd7pHrZM+/99JQRBd", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -856,7 +782,7 @@ "heng": 1, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block5.prefab b/temp/BackupAssets/assets/resources/prefab/block/block5.prefab index 7faee35..34e276c 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block5.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block5.prefab @@ -782,7 +782,7 @@ "heng": 2, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block6.prefab b/temp/BackupAssets/assets/resources/prefab/block/block6.prefab index 2510ede..f8b7ea7 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block6.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block6.prefab @@ -37,22 +37,19 @@ }, { "__id__": 25 - }, - { - "__id__": 29 } ], "_active": true, "_components": [ { - "__id__": 31 + "__id__": 29 }, { - "__id__": 32 + "__id__": 30 } ], "_prefab": { - "__id__": 33 + "__id__": 31 }, "_opacity": 255, "_color": { @@ -1064,77 +1061,6 @@ "fileId": "0b9fb+hlNCYLq8891atJEx", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 30 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "adJNwi8LBP4bv35TbkaJfy", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -1148,7 +1074,7 @@ "heng": 2, "shu": 3, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block7.prefab b/temp/BackupAssets/assets/resources/prefab/block/block7.prefab index 66561fa..37ee7a0 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block7.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block7.prefab @@ -37,22 +37,19 @@ }, { "__id__": 25 - }, - { - "__id__": 29 } ], "_active": true, "_components": [ { - "__id__": 31 + "__id__": 29 }, { - "__id__": 32 + "__id__": 30 } ], "_prefab": { - "__id__": 33 + "__id__": 31 }, "_opacity": 255, "_color": { @@ -1064,77 +1061,6 @@ "fileId": "74zQ0qQopK7Y7INKyJuunv", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 30 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "1bXJneyYhKlobD+Dtr/J2Q", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -1148,7 +1074,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/temp/BackupAssets/assets/resources/prefab/block/block8.prefab b/temp/BackupAssets/assets/resources/prefab/block/block8.prefab index 54b515a..f5950dc 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block8.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block8.prefab @@ -37,22 +37,19 @@ }, { "__id__": 25 - }, - { - "__id__": 29 } ], "_active": true, "_components": [ { - "__id__": 31 + "__id__": 29 }, { - "__id__": 32 + "__id__": 30 } ], "_prefab": { - "__id__": 33 + "__id__": 31 }, "_opacity": 255, "_color": { @@ -1064,77 +1061,6 @@ "fileId": "e3+OFY+qJCmY4rdm8S6nYM", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 30 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "04R1Wp3VNGSb5eS0VNXWdb", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", diff --git a/temp/BackupAssets/assets/resources/prefab/block/block9.prefab b/temp/BackupAssets/assets/resources/prefab/block/block9.prefab index 67b08e2..4c0bce9 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block9.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block9.prefab @@ -37,22 +37,19 @@ }, { "__id__": 25 - }, - { - "__id__": 29 } ], "_active": true, "_components": [ { - "__id__": 31 + "__id__": 29 }, { - "__id__": 32 + "__id__": 30 } ], "_prefab": { - "__id__": 33 + "__id__": 31 }, "_opacity": 255, "_color": { @@ -1064,77 +1061,6 @@ "fileId": "0cOGORP15AJbWSassqqmar", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 30 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "edLLOANSZG9Z/SlW1J3iHj", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", @@ -1148,7 +1074,7 @@ "heng": 3, "shu": 2, "ice_SpriteFrame": { - "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + "__uuid__": "ba9a4097-f4d2-4cc8-b325-34405e67b130" }, "_id": "" }, diff --git a/assets/LoadScene.meta b/temp/RemovedMetas/LoadScene.meta similarity index 100% rename from assets/LoadScene.meta rename to temp/RemovedMetas/LoadScene.meta diff --git a/assets/Shader.meta b/temp/RemovedMetas/Shader.meta similarity index 100% rename from assets/Shader.meta rename to temp/RemovedMetas/Shader.meta diff --git a/assets/font.meta b/temp/RemovedMetas/font.meta similarity index 100% rename from assets/font.meta rename to temp/RemovedMetas/font.meta diff --git a/assets/level.meta b/temp/RemovedMetas/level.meta similarity index 100% rename from assets/level.meta rename to temp/RemovedMetas/level.meta diff --git a/assets/res/texture_Block.meta b/temp/RemovedMetas/res/texture_Block.meta similarity index 100% rename from assets/res/texture_Block.meta rename to temp/RemovedMetas/res/texture_Block.meta diff --git a/temp/quick-scripts/dst/__file_stats__.json b/temp/quick-scripts/dst/__file_stats__.json index da083f1..b9b5768 100644 --- a/temp/quick-scripts/dst/__file_stats__.json +++ b/temp/quick-scripts/dst/__file_stats__.json @@ -1 +1 @@ -{"version":"1.0.8","stats":{"C:/Work/Project/cb/temp/quick-scripts/src/__qc_index__.js":"2025-06-26T01:57:19.781Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js":"2025-06-26T01:57:19.480Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js":"2025-06-26T01:57:19.406Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_game_util.js":"2025-06-26T01:57:19.353Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js":"2025-06-26T01:57:19.188Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/CollisionDetection.js":"2025-06-26T01:57:19.712Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_base.js":"2025-06-26T01:57:19.543Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Boom.js":"2025-06-26T01:57:19.261Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js":"2025-06-26T01:57:19.417Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/animation/NewScript.js":"2025-06-26T01:57:19.209Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/effect/融化.js":"2025-06-26T01:57:19.248Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/data/lq_const.js":"2025-06-26T01:57:19.495Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js":"2025-06-26T01:57:19.316Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js":"2025-06-26T01:57:19.343Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js":"2025-06-26T01:57:19.321Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Share/share.js":"2025-06-26T01:57:19.401Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js":"2025-06-26T01:57:19.172Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js":"2025-06-26T01:57:19.321Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/RankList/List.js":"2025-06-26T01:57:19.622Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/ControlManager.js":"2025-06-26T01:57:19.655Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js":"2025-06-26T01:57:19.273Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js":"2025-06-26T01:57:19.560Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/GameOver.js":"2025-06-26T01:57:19.444Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/GameScene.js":"2025-06-26T01:57:19.702Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Load.js":"2025-06-26T01:57:19.292Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/GameManager.js":"2025-06-26T01:57:19.654Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/JiaZai.js":"2025-06-26T01:57:19.197Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/MapBlock.js":"2025-06-26T01:57:19.307Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Reduce.js":"2025-06-26T01:57:19.607Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/NumberToImage.js":"2025-06-26T01:57:19.353Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/NewMode.js":"2025-06-26T01:57:19.432Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/SceneManager.js":"2025-06-26T01:57:19.448Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/RankManager.js":"2025-06-26T01:57:19.686Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Window.js":"2025-06-26T01:57:19.261Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Wall.js":"2025-06-26T01:57:19.464Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js":"2025-06-26T01:57:19.172Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/position.js":"2025-06-26T01:57:19.655Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_config.js":"2025-06-26T01:57:19.294Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/peizhi.js":"2025-06-26T01:57:19.429Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Barrier.js":"2025-06-26T01:57:19.492Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/btnControl.js":"2025-06-26T01:57:19.379Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Map.js":"2025-06-26T01:57:19.204Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Lock.js":"2025-06-26T01:57:19.269Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Pause.js":"2025-06-26T01:57:19.527Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Freeze.js":"2025-06-26T01:57:19.543Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js":"2025-06-26T01:57:19.543Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide.js":"2025-06-26T01:57:19.622Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Adhesive.js":"2025-06-26T01:57:19.321Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js":"2025-06-26T01:57:19.591Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_system.js":"2025-06-26T01:57:19.458Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Key.js":"2025-06-26T01:57:19.495Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Star.js":"2025-06-26T01:57:19.638Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_pool_util.js":"2025-06-26T01:57:19.511Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/data/lq_data.js":"2025-06-26T01:57:19.527Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/data/lq_interface.js":"2025-06-26T01:57:19.273Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_platform_util.js":"2025-06-26T01:57:19.252Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Block.js":"2025-06-26T01:57:19.575Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_math_util.js":"2025-06-26T01:57:19.521Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_base_util.js":"2025-06-26T01:57:19.613Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js":"2025-06-26T01:57:19.670Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js":"2025-06-26T01:57:19.591Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js":"2025-06-26T01:57:19.307Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js":"2025-06-26T01:57:19.636Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledMap.js":"2025-06-26T01:57:19.163Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js":"2025-06-26T01:57:19.230Z"}} +{"version":"1.0.8","stats":{"C:/Work/Project/cb/temp/quick-scripts/src/__qc_index__.js":"2025-06-30T03:31:18.892Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js":"2025-06-30T03:31:18.585Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_game_util.js":"2025-06-30T03:31:18.636Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js":"2025-06-30T03:31:18.646Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js":"2025-06-30T03:31:18.704Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/CollisionDetection.js":"2025-06-30T03:31:18.761Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Star.js":"2025-06-30T03:31:18.706Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_base.js":"2025-06-30T03:31:18.684Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js":"2025-06-30T03:31:18.690Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/animation/NewScript.js":"2025-06-30T03:31:18.593Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/data/lq_interface.js":"2025-06-30T03:31:18.607Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/effect/融化.js":"2025-06-30T03:31:18.597Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js":"2025-06-30T03:31:18.624Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js":"2025-06-30T03:31:18.587Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js":"2025-06-30T03:31:18.635Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/RankList/List.js":"2025-06-30T03:31:18.702Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js":"2025-06-30T03:31:18.686Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js":"2025-06-30T03:31:18.628Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js":"2025-06-30T03:31:18.626Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js":"2025-06-30T03:31:18.610Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Share/share.js":"2025-06-30T03:31:18.643Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Load.js":"2025-06-30T03:31:18.615Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/ControlManager.js":"2025-06-30T03:31:18.722Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/JiaZai.js":"2025-06-30T03:31:18.590Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/NumberToImage.js":"2025-06-30T03:31:18.639Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/GameManager.js":"2025-06-30T03:31:18.709Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Pause.js":"2025-06-30T03:31:18.677Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/GameScene.js":"2025-06-30T03:31:18.759Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/NewMode.js":"2025-06-30T03:31:18.653Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/SceneManager.js":"2025-06-30T03:31:18.657Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/MapBlock.js":"2025-06-30T03:31:18.621Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js":"2025-06-30T03:31:18.664Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/RankManager.js":"2025-06-30T03:31:18.756Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Map.js":"2025-06-30T03:31:18.591Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/peizhi.js":"2025-06-30T03:31:18.651Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Reduce.js":"2025-06-30T03:31:18.696Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/GameOver.js":"2025-06-30T03:31:18.655Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/btnControl.js":"2025-06-30T03:31:18.641Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/position.js":"2025-06-30T03:31:18.711Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Window.js":"2025-06-30T03:31:18.603Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Wall.js":"2025-06-30T03:31:18.661Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Lock.js":"2025-06-30T03:31:18.606Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js":"2025-06-30T03:31:18.681Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_system.js":"2025-06-30T03:31:18.659Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Key.js":"2025-06-30T03:31:18.668Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Barrier.js":"2025-06-30T03:31:18.666Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Boom.js":"2025-06-30T03:31:18.605Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Freeze.js":"2025-06-30T03:31:18.679Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Adhesive.js":"2025-06-30T03:31:18.631Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_config.js":"2025-06-30T03:31:18.618Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js":"2025-06-30T03:31:18.649Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide.js":"2025-06-30T03:31:18.699Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_base_util.js":"2025-06-30T03:31:18.697Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Block.js":"2025-06-30T03:31:18.687Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/data/lq_const.js":"2025-06-30T03:31:18.669Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_math_util.js":"2025-06-30T03:31:18.672Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/data/lq_data.js":"2025-06-30T03:31:18.674Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_platform_util.js":"2025-06-30T03:31:18.601Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_pool_util.js":"2025-06-30T03:31:18.671Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js":"2025-06-30T03:31:18.739Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js":"2025-06-30T03:31:18.694Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js":"2025-06-30T03:31:18.588Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js":"2025-06-30T03:31:18.620Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledMap.js":"2025-06-30T03:31:18.583Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js":"2025-06-30T03:31:18.595Z"}} diff --git a/temp/quick-scripts/dst/__qc_bundle__.js b/temp/quick-scripts/dst/__qc_bundle__.js index c2ccf48..f3c402e 100644 --- a/temp/quick-scripts/dst/__qc_bundle__.js +++ b/temp/quick-scripts/dst/__qc_bundle__.js @@ -90,7 +90,7 @@ require('./tiledmap-optimize-resource/Script/TmoTiledMap'); (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Sdk/DouyinEntranceView.js'; + var __filename = 'preview-scripts/assets/Script/Sdk/MiniGameManager.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -98,8 +98,8 @@ require('./tiledmap-optimize-resource/Script/TmoTiledMap'); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '8a024+q5K9MrpxcaTvucSDB', 'DouyinEntranceView'); -// Script/Sdk/DouyinEntranceView.ts +cc._RF.push(module, '0d272pXVChFDqi5FXTD2JlR', 'MiniGameManager'); +// Script/Sdk/MiniGameManager.ts "use strict"; var __extends = (this && this.__extends) || (function () { @@ -122,37 +122,317 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.DouyinEntranceView = void 0; +exports.MiniGameManager = void 0; var MiniGameSdk_1 = require("./MiniGameSdk"); var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var DouyinEntranceView = /** @class */ (function (_super) { - __extends(DouyinEntranceView, _super); - function DouyinEntranceView() { - return _super !== null && _super.apply(this, arguments) || this; +var EWechatAD; +(function (EWechatAD) { + EWechatAD["CUMSTOM_01"] = "adunit-f7c2417eb2c2e473"; +})(EWechatAD || (EWechatAD = {})); +var MiniGameManager = /** @class */ (function (_super) { + __extends(MiniGameManager, _super); + function MiniGameManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.entranceView = null; + return _this; } - DouyinEntranceView.prototype.start = function () { - }; - DouyinEntranceView.prototype.update = function (deltaTime) { - }; - DouyinEntranceView.prototype.onCloseClick = function () { - this.node.active = false; - }; - DouyinEntranceView.prototype.onNavigateToDouyinClick = function () { - MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.navigateToSidebar(function (success) { + MiniGameManager_1 = MiniGameManager; + Object.defineProperty(MiniGameManager, "instance", { + get: function () { + if (!MiniGameManager_1._instance) { + MiniGameManager_1._instance = new MiniGameManager_1(); + } + return MiniGameManager_1._instance; + }, + enumerable: false, + configurable: true + }); + MiniGameManager.prototype.start = function () { + // 禁用游戏入口视图 + // this.entranceView.active = false; + // MiniGameSdk.API.getUserProfile(this.setUserId); + // cc.fx.GameTool.setUserInfo(""); + this.onGetLoginCode(); + // 尝试获取游戏入口按钮,如果存在则直接返回,不进行后续操作 + // let buttonEntrance = this.node.getChildByName('Btns')?.getChildByName('Button_EntranceView'); + // if (buttonEntrance) { + // return; + // } + // 如果是字节跳动小游戏环境,检查侧边栏是否存在 + if (MiniGameSdk_1.MiniGameSdk.isBytedance()) { + //抖音环境,检测侧边栏存在 + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.checkSideBar(function (success) { + // 根据侧边栏存在性激活或禁用游戏入口按钮 + // buttonEntrance.active = success; + }); + } + else { + // 非抖音小游戏环境,直接激活游戏入口按钮 + // 非抖音环境,正常显示按钮 + // buttonEntrance.active = true; + } + // 设置监听器,以处理来自侧边栏的交互事件 + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.listenFromSidebar(function (success) { + // 如果交互成功,显示奖励提示 if (success) { - console.log('跳转成功'); - } - else { - console.log('跳转失败'); + MiniGameSdk_1.MiniGameSdk.API.showToast('侧边栏奖励', 5); } }); }; - DouyinEntranceView = __decorate([ + MiniGameManager.prototype.update = function (deltaTime) { + }; + /** + * 弹出广告横幅。 + * 此方法用于加载并显示广告横幅。它首先加载指定广告位的横幅广告,然后显示广告。 + * 加载广告和显示广告是通过MiniGameSdk.AdvertManager的实例方法来实现的。 + * + * @remarks + * 此方法提供了两种显示横幅广告的方式: + * 1. 默认方式:调用showBanner方法显示广告,系统会自动选择显示位置。 + * 2. 指定位置方式:可以通过传入额外的参数来指定广告显示在屏幕的顶部或底部,或者通过坐标指定显示位置。 + * + * 示例代码中注释掉了两种显示广告的具体方法,可以根据实际需求选择使用。 + */ + MiniGameManager.prototype.onShowBanner = function () { + // 加载指定广告位的横幅广告。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadBanner('adunit-4e7ef467e3eaab51'); + // 默认方式显示横幅广告。 + // 方法1:默认调用 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showBanner(); + // 示例:指定屏幕底部正中显示横幅广告。 + // 方法2:指定屏幕顶部或底部正中 + // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', MiniGameSdk.EAdBannerLocation.BOTTOM); + // 示例:通过坐标指定位置显示横幅广告。 + // 方法2:指定坐标 + // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', { top: 10, left: 10 }); + }; + /** + * 隐藏广告横幅的函数。 + * + * 该函数调用MiniGameSdk.AdvertManager实例的方法,用于隐藏广告横幅。 + * 当需要暂时停止展示广告或用户主动请求隐藏广告时,可以调用此函数。 + * + * @remarks + * 此函数不接受任何参数,也不返回任何值。 + * 它单纯地触发广告横幅的隐藏操作,具体实现依赖于AdvertManager的实现。 + */ + MiniGameManager.prototype.onHideBanner = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideBanner(); + }; + /** + * 显示插屏广告的函数。 + * + * 此函数调用MiniGameSdk.AdvertManager实例的方法,以显示一个指定的插屏广告。 + * 它使用了硬编码的广告单元标识符,这意味着它专为特定的广告位设计。 + * 在实际应用中,可能需要根据应用的配置或用户的特定条件来动态选择广告单元标识符。 + */ + MiniGameManager.prototype.onShowInterstitial = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showInterstitial('adunit-eadd67851d3050ad'); + }; + /** + * 调用广告管理器加载并展示自定义广告。 + * 此方法首先通过广告管理器的实例加载指定的自定义广告单元,然后展示这个自定义广告。 + * 加载和展示广告是广告管理系统中的常见操作,这里通过两步分别完成加载和展示的过程, + * 以确保广告在展示前正确且充分地被加载。 + */ + MiniGameManager.prototype.onShowCustom = function () { + // 加载指定的自定义广告单元。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadCustom(EWechatAD.CUMSTOM_01); + // 展示已加载的自定义广告。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showCustom(EWechatAD.CUMSTOM_01); + }; + /** + * 隐藏自定义广告。 + * + * 本函数调用MiniGameSdk.AdvertManager.instance.hideCustom()来隐藏自定义广告。 + * 这是对接广告管理系统的一部分,用于控制广告的显示与隐藏。 + * 在需要隐藏自定义广告的场景下,调用此函数即可实现相应功能。 + */ + MiniGameManager.prototype.onHideCustom = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideCustom(EWechatAD.CUMSTOM_01); + }; + /** + * 触发显示视频广告的函数。 + * 通过调用MiniGameSdk.AdvertManager.instance.showVideo方法,显示一个视频广告,并根据用户观看广告的情况执行相应的逻辑。 + * + * @remarks + * 此函数首先传入一个广告单元ID,用于标识要显示的视频广告。然后传入一个回调函数,该回调函数在用户观看广告后被调用,无论用户是完成了观看、拒绝了观看还是观看过程中发生了错误。 + * 回调函数接收两个参数:一个是用户观看广告的结果,另一个是用户观看的广告数量。根据观看结果的不同,显示不同的提示信息。 + */ + MiniGameManager.prototype.onShowVideo = function () { + // 广告单元ID,用于标识要显示的视频广告 + // 广告单元ID的样例 + //抖音形如: 1re3nfqkmy81m4m8ge + //微信形如: adunit-a7718f6e195e42fe + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showVideo('1re3nfqkmy81m4m8ge', function (res, count) { + // 输出用户观看的广告数量 + console.log('用户看的视频广告个数是:', count); + // 根据用户观看广告的结果,执行不同的逻辑 + switch (res) { + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ACCEPT: + // 用户完成了广告观看,显示奖励提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('用户看完广告,可以奖励'); + break; + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.REJECT: + // 用户拒绝了广告观看,显示不奖励提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('用户拒绝掉广告,不奖励'); + break; + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ERROR: + // 广告播放发生错误,显示错误提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('播放广告发生错误,不奖励'); + break; + default: + // 其他情况,不作处理 + break; + } + }); + }; + /** + * 引导用户分享应用给朋友。 + * + * 通过调用MiniGameSdk的API分享功能,向用户的朋友圈发送邀请,邀请他们一起玩游戏。 + * 这是一个重要的推广手段,可以增加应用的曝光度和用户量。 + * + * @remarks + * 此方法中调用的API依赖于特定的小游戏平台,因此在不同的平台上可能需要不同的实现。 + */ + MiniGameManager.prototype.onShare = function () { + MiniGameSdk_1.MiniGameSdk.API.shareAppToFriends('来玩游戏吧'); + }; + /** + * 显示一个toast提示。 + * + * 通过调用MiniGameSdk的API方法来显示一个简短的提示信息。toast是一种轻量级的提示方式,用于在界面上短暂地展示一些信息,不影响用户操作。 + * 这里使用了固定的提示文本 '这是一个toast',在实际应用中,可以根据需要动态设置提示文本。 + */ + MiniGameManager.prototype.onShowToast = function () { + MiniGameSdk_1.MiniGameSdk.API.showToast('这是一个toast'); + }; + /** + * 触发设备振动功能。 + * + * 该方法用于调用MiniGameSdk提供的API,以实现设备的振动功能。当需要提醒用户或提供触觉反馈时,可以调用此方法。 + * 例如,在游戏或应用中,当用户完成特定操作或发生特定事件时,可以通过振动给予用户反馈。 + * + * @remarks + * 此方法无参数,也不返回任何值。 + */ + MiniGameManager.prototype.onVirbrate = function () { + MiniGameSdk_1.MiniGameSdk.API.vibrate(); + }; + /** + * 重新启动游戏实例。 + * + * 此函数调用MiniGameSdk中的API重新启动游戏。重新启动操作可能是为了初始化游戏环境、重置游戏状态或处理其他需要重启的场景。 + * 调用此函数后,游戏将会重新开始,当前的游戏状态将会被清除。 + * + * @remarks + * 此函数不接受任何参数。 + * + * @returns 无返回值。 + */ + MiniGameManager.prototype.onReboot = function () { + MiniGameSdk_1.MiniGameSdk.API.reboot(); + }; + /** + * 当前函数用于在迷你游戏中实现退出功能。 + * 它调用了MiniGameSdk提供的API方法来触发退出操作。 + * 该方法通常在需要结束当前迷你游戏或返回到上一级菜单时被调用。 + */ + MiniGameManager.prototype.onExit = function () { + MiniGameSdk_1.MiniGameSdk.API.exit(); + }; + /** + * 显示分享菜单。 + * + * 通过调用MiniGameSdk的API方法,触发显示分享菜单的操作。此函数旨在提供一个统一的入口, + * 以便在需要时轻松调用分享功能,而无需直接与具体的SDK接口交互。 + * + * @remarks + * 此方法不接受任何参数,也不返回任何值。 + */ + MiniGameManager.prototype.onShowShareMenu = function () { + MiniGameSdk_1.MiniGameSdk.API.showShareMenu(); + }; + /** + * 导航到指定的小游戏。 + * + * 本函数用于触发导航到一个特定的小游戏。这需要提供目标小游戏的ID, + * 以便系统能够正确地将用户重定向到目标小游戏。 + * + * 注意:这里的'xxx'是占位符,实际使用时需要替换为具体的小游戏ID。 + */ + MiniGameManager.prototype.onNavigate = function () { + MiniGameSdk_1.MiniGameSdk.API.navigateTo('xxx'); // xxx替换为你的小游戏id + }; + /** + * 激活字节跳动入口视图。 + * + * 此方法用于将字节跳动入口视图设置为活跃状态。当需要在用户界面中显示字节跳动的入口时, + * 可以调用此方法来激活相应的视图元素,使其对用户可见。 + */ + MiniGameManager.prototype.onBytedanceEntranceView = function () { + // this.entranceView.active = true; + }; + /** + * 请求登录代码 + * + * 本函数用于触发小程序的登录流程,获取微信或头条等第三方平台的登录代码。 + * 这些代码可以用于后续的用户身份验证和数据同步流程。 + */ + MiniGameManager.prototype.onGetLoginCode = function () { + // 调用MiniGameSdk的API登录方法,传入一个回调函数处理登录结果 + MiniGameSdk_1.MiniGameSdk.API.login(function (code, anonymousCode) { + // 打印微信或头条的登录代码 + console.log('Wechat Or Bytedance Code:', code); + // 打印头条的匿名登录代码 + // console.log('Bytedance Anonymous Code:', anonymousCode); + if (code) { + // cc.fx.GameTool.getUserId(code, data => this.setUserId(data)); + } + }); + }; + // setUserId(data){ + // cc.fx.GameConfig.GM_INFO.userId = data.data.userId; + // MiniGameSdk.API.getUserInfo(this.setUserInfo); + // } + // setUserInfo(data){ + // console.log("获取到的用户信息",data.userInfo); + // var useData = { + // "gameId": cc.fx.GameConfig.GM_INFO.gameId, + // "userId": cc.fx.GameConfig.GM_INFO.userId, + // "nickName":data.userInfo.nickName, + // "pic": data.userInfo.avatarUrl + // } + // console.log("即将上传的用户信息:",cc.fx.GameConfig.GM_INFO.userId,data.userInfo.nickName,data.userInfo.avatarUrl); + // console.log("Post数据:",useData); + // cc.fx.GameTool.setUserInfo(useData,(res)=>{ + // console.log("上传成功:",res); + // }); + // } + /** + * 创建并显示游戏圈按钮 + * + * 本函数通过调用MiniGameSdk的GameClub实例方法,实现游戏俱乐部的创建和显示。 + * 它首先配置俱乐部的图标类型和位置大小,然后创建俱乐部,最后显示俱乐部。 + * 这样做是为了在小游戏内创建并展示一个游戏俱乐部的图标,供玩家加入或互动。 + */ + MiniGameManager.prototype.onCreateClub = function () { + // 配置俱乐部图标为绿色,设置图标的位置为顶部200像素,左侧0像素 + MiniGameSdk_1.MiniGameSdk.GameClub.instance.create(MiniGameSdk_1.MiniGameSdk.EGameClubIcon.GREEN, { top: 200, left: 0 }, { width: 50, height: 50 }); + // 显示游戏俱乐部图标 + MiniGameSdk_1.MiniGameSdk.GameClub.instance.show(); + }; + var MiniGameManager_1; + __decorate([ + property(cc.Node) + ], MiniGameManager.prototype, "entranceView", void 0); + MiniGameManager = MiniGameManager_1 = __decorate([ ccclass - ], DouyinEntranceView); - return DouyinEntranceView; + ], MiniGameManager); + return MiniGameManager; }(cc.Component)); -exports.DouyinEntranceView = DouyinEntranceView; +exports.MiniGameManager = MiniGameManager; cc._RF.pop(); } @@ -165,152 +445,7 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXERvdXlpbkVudHJhbmNlVmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBSTVDO0lBQXdDLHNDQUFZO0lBQXBEOztJQXVCQSxDQUFDO0lBdEJHLGtDQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsbUNBQU0sR0FBTixVQUFPLFNBQWlCO0lBRXhCLENBQUM7SUFFRCx5Q0FBWSxHQUFaO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvREFBdUIsR0FBdkI7UUFFSSx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFVBQUMsT0FBZ0I7WUFDNUQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QjtpQkFBTTtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBdEJRLGtCQUFrQjtRQUQ5QixPQUFPO09BQ0ssa0JBQWtCLENBdUI5QjtJQUFELHlCQUFDO0NBdkJELEFBdUJDLENBdkJ1QyxFQUFFLENBQUMsU0FBUyxHQXVCbkQ7QUF2QlksZ0RBQWtCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9NaW5pR2FtZVNka1wiO1xyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBjbGFzcyBEb3V5aW5FbnRyYW5jZVZpZXcgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhcnQoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShkZWx0YVRpbWU6IG51bWJlcikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlQ2xpY2soKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTmF2aWdhdGVUb0RvdXlpbkNsaWNrKCkge1xyXG5cclxuICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLm5hdmlnYXRlVG9TaWRlYmFyKChzdWNjZXNzOiBib29sZWFuKSA9PiB7IC8vIOi3s+i9rOWIsOaKlumfs+S+p+i+ueagj1xyXG4gICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOaIkOWKnycpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOWksei0pScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/module/Crypto/HttpUtil.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '771a32aQBNGVKd3+66gyTKA', 'HttpUtil'); -// Script/module/Crypto/HttpUtil.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var CryptoJS = require("./crypto-js.min.js"); //引用AES源码js -var BASE_URL = "https://api.sparkus.cn"; -//只负责网络接口 次类只负责和后端交互,不负责处理数据 数据处理在GameTool -var HttpUtil = /** @class */ (function (_super) { - __extends(HttpUtil, _super); - function HttpUtil() { - return _super !== null && _super.apply(this, arguments) || this; - } - HttpUtil = __decorate([ - ccclass - ], HttpUtil); - return HttpUtil; -}(cc.Component)); -exports.default = HttpUtil; -// 响应拦截器 -// Rq.interceptors.response.use(responseHandler) -var config = { - gameId: "100012", - secretKey: "onnfPKJW", - EK: "hui231%1" -}; -var Crypoto = /** @class */ (function () { - function Crypoto() { - // 加密的向明值,自己根据项目实际情况定,需要跟后端开发保持一致 - this.keyHex = this.getHetKey(); - } - Crypoto.prototype.getHetKey = function () { - return CryptoJS.enc.Utf8.parse(config.EK); - }; - /** DES加密 */ - Crypoto.prototype.encryptByDES = function (message, secret) { - if (!message) { - return message; - } - var key = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; - var encrypted = CryptoJS.DES.encrypt(message, key, { - mode: CryptoJS.mode.ECB, - padding: CryptoJS.pad.Pkcs7 - }); - return encrypted.toString(); - }; - /** DES解密 */ - Crypoto.prototype.decryptByDES = function (message, secret) { - var key = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; - var decrypted = CryptoJS.DES.decrypt({ - ciphertext: CryptoJS.enc.Base64.parse(message) - }, key, { - mode: CryptoJS.mode.ECB, - padding: CryptoJS.pad.Pkcs7 - }); - return decrypted.toString(CryptoJS.enc.Utf8); - }; - /** hmacSHA256加密 */ - Crypoto.prototype.hmacSha256 = function (message, secret) { - var keyHex = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; - var hash = CryptoJS.HmacSHA256(message, keyHex); - return hash.toString(); - }; - /** hmacSHA256验证 */ - Crypoto.prototype.verifyHmacSha256 = function (message, signature) { - var hash = CryptoJS.HmacSHA256(message, this.keyHex); - return hash.toString() === signature; - }; - /** CBC加密 */ - Crypoto.prototype.encryptCBC = function (word) { - if (!word) { - return word; - } - var srcs = CryptoJS.enc.Utf8.parse(word); - var encrypted = CryptoJS.AES.encrypt(srcs, this.keyHex, { - iv: this.keyHex, - mode: CryptoJS.mode.CBC, - padding: CryptoJS.pad.ZeroPadding - }); - return encrypted.toString(); - }; - /** CBC解密 */ - Crypoto.prototype.decryptCBC = function (word) { - if (!word) { - return word; - } - var encryptedHexStr = CryptoJS.enc.Hex.parse(word); - var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); - var decrypt = CryptoJS.AES.decrypt(srcs, this.keyHex, { - iv: this.keyHex, - mode: CryptoJS.mode.CBC, - padding: CryptoJS.pad.ZeroPadding - }); - var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); - return decryptedStr.toString(); - }; - return Crypoto; -}()); -var fxCry = new Crypoto(); - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENyeXB0b1xcSHR0cFV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ00sSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFDMUMsNkNBQWdELENBQUUsV0FBVztBQUU3RCxJQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQztBQUMxQywwQ0FBMEM7QUFFMUM7SUFBc0MsNEJBQVk7SUFBbEQ7O0lBR0EsQ0FBQztJQUhvQixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBRzVCO0lBQUQsZUFBQztDQUhELEFBR0MsQ0FIcUMsRUFBRSxDQUFDLFNBQVMsR0FHakQ7a0JBSG9CLFFBQVE7QUFNN0IsUUFBUTtBQUNSLGdEQUFnRDtBQUNoRCxJQUFNLE1BQU0sR0FBRztJQUNiLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLEVBQUUsRUFBQyxVQUFVO0NBQ2QsQ0FBQztBQVFGO0lBQUE7UUFDSSxpQ0FBaUM7UUFDekIsV0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQTJFckMsQ0FBQztJQTFFVywyQkFBUyxHQUFqQjtRQUNJLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsWUFBWTtJQUNaLDhCQUFZLEdBQVosVUFBYSxPQUFlLEVBQUUsTUFBZTtRQUMzQyxJQUFHLENBQUMsT0FBTyxFQUFFO1lBQ1gsT0FBTyxPQUFPLENBQUE7U0FDZjtRQUNELElBQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ2hFLElBQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDbkQsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRztZQUN2QixPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLO1NBQzVCLENBQUMsQ0FBQztRQUNILE9BQU8sU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFFRCxZQUFZO0lBQ1osOEJBQVksR0FBWixVQUFhLE9BQWUsRUFBRSxNQUFlO1FBQzNDLElBQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBRWhFLElBQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ3JDLFVBQVUsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1NBQy9DLEVBQUUsR0FBRyxFQUFFO1lBQ04sSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRztZQUN2QixPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLO1NBQzVCLENBQUMsQ0FBQTtRQUVGLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsNEJBQVUsR0FBVixVQUFXLE9BQWUsRUFBRSxNQUFlO1FBQ3pDLElBQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBRW5FLElBQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsa0NBQWdCLEdBQWhCLFVBQWlCLE9BQWUsRUFBRSxTQUFpQjtRQUNqRCxJQUFNLElBQUksR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkQsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssU0FBUyxDQUFBO0lBQ3RDLENBQUM7SUFFRCxZQUFZO0lBQ1osNEJBQVUsR0FBVixVQUFXLElBQVk7UUFDbkIsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsSUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDdEQsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ2YsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRztZQUN2QixPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXO1NBQ3BDLENBQUMsQ0FBQztRQUNILE9BQU8sU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZO0lBQ1osNEJBQVUsR0FBVixVQUFXLElBQVk7UUFDbkIsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckQsSUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVELElBQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3BELEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNmLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFDdkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVztTQUNwQyxDQUFDLENBQUM7UUFDSCxJQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsT0FBTyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUNMLGNBQUM7QUFBRCxDQTdFQSxBQTZFQyxJQUFBO0FBQ0QsSUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuaW1wb3J0IENyeXB0b0pTID0gcmVxdWlyZSgnLi9jcnlwdG8tanMubWluLmpzJyk7ICAvL+W8leeUqEFFU+a6kOeggWpzXHJcblxyXG5jb25zdCBCQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuc3Bhcmt1cy5jblwiO1xyXG4vL+WPqui0n+i0o+e9kee7nOaOpeWPoyDmrKHnsbvlj6rotJ/otKPlkozlkI7nq6/kuqTkupLvvIzkuI3otJ/otKPlpITnkIbmlbDmja4g5pWw5o2u5aSE55CG5ZyoR2FtZVRvb2xcclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSHR0cFV0aWwgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgLy/mjpLooYzmppxcclxuXHJcbn1cclxuXHJcblxyXG4vLyDlk43lupTmi6bmiKrlmahcclxuLy8gUnEuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLnVzZShyZXNwb25zZUhhbmRsZXIpXHJcbmNvbnN0IGNvbmZpZyA9IHtcclxuICBnYW1lSWQ6IFwiMTAwMDEyXCIsXHJcbiAgc2VjcmV0S2V5OiBcIm9ubmZQS0pXXCIsXHJcbiAgRUs6XCJodWkyMzElMVwiXHJcbn07XHJcblxyXG5pbnRlcmZhY2UgQ3J5cG90b1R5cGUge1xyXG4gIGVuY3J5cHRCeURFUzogYW55XHJcbiAgZGVjcnlwdEJ5REVTOiBhbnlcclxuICBobWFjU2hhMjU2OiBhbnlcclxufVxyXG4gXHJcbmNsYXNzIENyeXBvdG8gaW1wbGVtZW50cyBDcnlwb3RvVHlwZSB7XHJcbiAgICAvLyDliqDlr4bnmoTlkJHmmI7lgLzvvIzoh6rlt7HmoLnmja7pobnnm67lrp7pmYXmg4XlhrXlrprvvIzpnIDopoHot5/lkI7nq6/lvIDlj5Hkv53mjIHkuIDoh7RcclxuICAgIHByaXZhdGUga2V5SGV4ID0gdGhpcy5nZXRIZXRLZXkoKVxyXG4gICAgcHJpdmF0ZSBnZXRIZXRLZXkoKSB7XHJcbiAgICAgICAgcmV0dXJuIENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKGNvbmZpZy5FSyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIERFU+WKoOWvhiAqL1xyXG4gICAgZW5jcnlwdEJ5REVTKG1lc3NhZ2U6IHN0cmluZywgc2VjcmV0Pzogc3RyaW5nKSB7XHJcbiAgICAgIGlmKCFtZXNzYWdlKSB7XHJcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBrZXkgPSBzZWNyZXQ/IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHNlY3JldCk6IHRoaXMua2V5SGV4XHJcbiAgICAgIGNvbnN0IGVuY3J5cHRlZCA9IENyeXB0b0pTLkRFUy5lbmNyeXB0KG1lc3NhZ2UsIGtleSwge1xyXG4gICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuRUNCLFxyXG4gICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGVuY3J5cHRlZC50b1N0cmluZygpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIERFU+ino+WvhiAqL1xyXG4gICAgZGVjcnlwdEJ5REVTKG1lc3NhZ2U6IHN0cmluZywgc2VjcmV0Pzogc3RyaW5nKSB7XHJcbiAgICAgIGNvbnN0IGtleSA9IHNlY3JldD8gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2Uoc2VjcmV0KTogdGhpcy5rZXlIZXhcclxuXHJcbiAgICAgIGNvbnN0IGRlY3J5cHRlZCA9IENyeXB0b0pTLkRFUy5kZWNyeXB0KHtcclxuICAgICAgICBjaXBoZXJ0ZXh0OiBDcnlwdG9KUy5lbmMuQmFzZTY0LnBhcnNlKG1lc3NhZ2UpXHJcbiAgICAgIH0sIGtleSwge1xyXG4gICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuRUNCLFxyXG4gICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xyXG4gICAgICB9KVxyXG5cclxuICAgICAgcmV0dXJuIGRlY3J5cHRlZC50b1N0cmluZyhDcnlwdG9KUy5lbmMuVXRmOClcclxuICAgIH1cclxuXHJcbiAgICAvKiogaG1hY1NIQTI1NuWKoOWvhiAqL1xyXG4gICAgaG1hY1NoYTI1NihtZXNzYWdlOiBzdHJpbmcsIHNlY3JldD86IHN0cmluZykge1xyXG4gICAgICBjb25zdCBrZXlIZXggPSBzZWNyZXQ/IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHNlY3JldCk6IHRoaXMua2V5SGV4XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBoYXNoID0gQ3J5cHRvSlMuSG1hY1NIQTI1NihtZXNzYWdlLCBrZXlIZXgpO1xyXG4gICAgICByZXR1cm4gaGFzaC50b1N0cmluZygpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIGhtYWNTSEEyNTbpqozor4EgKi9cclxuICAgIHZlcmlmeUhtYWNTaGEyNTYobWVzc2FnZTogc3RyaW5nLCBzaWduYXR1cmU6IHN0cmluZykge1xyXG4gICAgICBjb25zdCBoYXNoID0gQ3J5cHRvSlMuSG1hY1NIQTI1NihtZXNzYWdlLCB0aGlzLmtleUhleCk7XHJcbiAgICAgIHJldHVybiBoYXNoLnRvU3RyaW5nKCkgPT09IHNpZ25hdHVyZVxyXG4gICAgfVxyXG4gXHJcbiAgICAvKiogQ0JD5Yqg5a+GICovXHJcbiAgICBlbmNyeXB0Q0JDKHdvcmQ6IHN0cmluZykge1xyXG4gICAgICAgIGlmICghd29yZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gd29yZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgc3JjcyA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHdvcmQpO1xyXG4gICAgICAgIGNvbnN0IGVuY3J5cHRlZCA9IENyeXB0b0pTLkFFUy5lbmNyeXB0KHNyY3MsIHRoaXMua2V5SGV4LCB7XHJcbiAgICAgICAgICAgIGl2OiB0aGlzLmtleUhleCxcclxuICAgICAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXHJcbiAgICAgICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5aZXJvUGFkZGluZ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBlbmNyeXB0ZWQudG9TdHJpbmcoKTsgXHJcbiAgICB9XHJcbiBcclxuICAgIC8qKiBDQkPop6Plr4YgKi9cclxuICAgIGRlY3J5cHRDQkMod29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCF3b3JkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB3b3JkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBlbmNyeXB0ZWRIZXhTdHIgPSBDcnlwdG9KUy5lbmMuSGV4LnBhcnNlKHdvcmQpO1xyXG4gICAgICAgIGNvbnN0IHNyY3MgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeShlbmNyeXB0ZWRIZXhTdHIpO1xyXG4gICAgICAgIGNvbnN0IGRlY3J5cHQgPSBDcnlwdG9KUy5BRVMuZGVjcnlwdChzcmNzLCB0aGlzLmtleUhleCwge1xyXG4gICAgICAgICAgICBpdjogdGhpcy5rZXlIZXgsXHJcbiAgICAgICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLFxyXG4gICAgICAgICAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuWmVyb1BhZGRpbmdcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBkZWNyeXB0ZWRTdHIgPSBkZWNyeXB0LnRvU3RyaW5nKENyeXB0b0pTLmVuYy5VdGY4KTtcclxuICAgICAgICByZXR1cm4gZGVjcnlwdGVkU3RyLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbn1cclxuY29uc3QgZnhDcnkgPSBuZXcgQ3J5cG90bygpO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBQzVDLElBQUssU0FFSjtBQUZELFdBQUssU0FBUztJQUNWLG1EQUFzQyxDQUFBO0FBQzFDLENBQUMsRUFGSSxTQUFTLEtBQVQsU0FBUyxRQUViO0FBR0Q7SUFBcUMsbUNBQVk7SUFBakQ7UUFBQSxxRUEyVUM7UUF4VUcsa0JBQVksR0FBWSxJQUFJLENBQUM7O0lBd1VqQyxDQUFDO3dCQTNVWSxlQUFlO0lBa0J4QixzQkFBVywyQkFBUTthQUFuQjtZQUNJLElBQUksQ0FBQyxpQkFBZSxDQUFDLFNBQVMsRUFBRTtnQkFDNUIsaUJBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQkFBZSxFQUFFLENBQUM7YUFDckQ7WUFDRCxPQUFPLGlCQUFlLENBQUMsU0FBUyxDQUFDO1FBQ3JDLENBQUM7OztPQUFBO0lBRUQsK0JBQUssR0FBTDtRQUNJLFdBQVc7UUFDWCxvQ0FBb0M7UUFDcEMsa0RBQWtEO1FBQ2xELGtDQUFrQztRQUNsQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsK0JBQStCO1FBQy9CLGdHQUFnRztRQUNoRyx3QkFBd0I7UUFDeEIsY0FBYztRQUNkLElBQUk7UUFFSix5QkFBeUI7UUFFekIsSUFBSSx5QkFBVyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzNCLGNBQWM7WUFDZCx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxVQUFDLE9BQWdCO2dCQUN2RCxzQkFBc0I7Z0JBQ3RCLG1DQUFtQztZQUN2QyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxzQkFBc0I7WUFDdEIsZUFBZTtZQUNmLGdDQUFn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LHFCQUFxQjtJQUNyQiw2Q0FBNkM7SUFDN0Msc0JBQXNCO0lBQ3RCLHFEQUFxRDtJQUNyRCxxREFBcUQ7SUFDckQsNkNBQTZDO0lBQzdDLHlDQUF5QztJQUV6QyxRQUFRO0lBQ1IsZ0hBQWdIO0lBQ2hILHNDQUFzQztJQUN0QyxrREFBa0Q7SUFDbEQsb0NBQW9DO0lBQ3BDLFVBQVU7SUFDVixJQUFJO0lBRUo7Ozs7OztPQU1HO0lBQ0gsc0NBQVksR0FBWjtRQUNJLG1DQUFtQztRQUNuQyx5QkFBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUNoQyx5QkFBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQy9CLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQ3JCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQixZQUFZO1FBQ1oseUJBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7O0lBdlVEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7eURBQ1c7SUFIcEIsZUFBZTtRQUQzQixPQUFPO09BQ0ssZUFBZSxDQTJVM0I7SUFBRCxzQkFBQztDQTNVRCxBQTJVQyxDQTNVb0MsRUFBRSxDQUFDLFNBQVMsR0EyVWhEO0FBM1VZLDBDQUFlIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vTWluaUdhbWVTZGtcIjtcclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuZW51bSBFV2VjaGF0QUQge1xyXG4gICAgQ1VNU1RPTV8wMSA9ICdhZHVuaXQtZjdjMjQxN2ViMmMyZTQ3MydcclxufVxyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGNsYXNzIE1pbmlHYW1lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBlbnRyYW5jZVZpZXc6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgLyoqXHJcbiAgICAgKiDlvIDlp4vmuLjmiI/liY3nmoTliJ3lp4vljJbmk43kvZzjgIJcclxuICAgICAqIOS4u+imgei0n+i0o+ajgOafpeW5tuWkhOeQhua4uOaIj+WFpeWPo+aMiemSrueahOa/gOa0u+eKtuaAge+8jOS7peWPiuWcqOeJueWumueOr+Wig+S4i+iuvue9ruS+p+i+ueagj+eahOebkeWQrOWZqOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5pa55rOV6aaW5YWI5bCG5ri45oiP5YWl5Y+j6KeG5Zu+6K6+5Li66Z2e5r+A5rS754q25oCB77yM5Lul5YeG5aSH6L+b6KGM5ZCO57ut55qE5qOA5p+l5ZKM6K6+572u44CCXHJcbiAgICAgKiDlpoLmnpzlvZPliY3njq/looPmmK/mipbpn7PlsI/muLjmiI/vvIzkvJrmo4Dmn6XmmK/lkKblrZjlnKjkvqfovrnmoI/vvIzlubbmoLnmja7mo4Dmn6Xnu5Pmnpzmv4DmtLvmiJbnpoHnlKjmuLjmiI/lhaXlj6PmjInpkq7jgIJcclxuICAgICAqIOWvueS6jumdnuaKlumfs+Wwj+a4uOaIj+eOr+Wig++8jOebtOaOpea/gOa0u+a4uOaIj+WFpeWPo+aMiemSruOAglxyXG4gICAgICog5q2k5aSW77yM5peg6K66546v5aKD5aaC5L2V77yM6YO95Lya6K6+572u5LiA5Liq55uR5ZCs5Zmo77yM5Lul5aSE55CG5p2l6Ieq5L6n6L655qCP55qE5LqL5Lu277yM5aaC5oiQ5Yqf6Kem5Y+R5pe25pi+56S65aWW5Yqx5o+Q56S644CCXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2lkOmFueTtcclxuICAgIHByaXZhdGUgX3VzZXJEYXRhOmFueTtcclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IE1pbmlHYW1lTWFuYWdlcjtcclxuICAgIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogTWluaUdhbWVNYW5hZ2VyIHtcclxuICAgICAgICBpZiAoIU1pbmlHYW1lTWFuYWdlci5faW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgTWluaUdhbWVNYW5hZ2VyLl9pbnN0YW5jZSA9IG5ldyBNaW5pR2FtZU1hbmFnZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE1pbmlHYW1lTWFuYWdlci5faW5zdGFuY2U7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQoKSB7XHJcbiAgICAgICAgLy8g56aB55So5ri45oiP5YWl5Y+j6KeG5Zu+XHJcbiAgICAgICAgLy8gdGhpcy5lbnRyYW5jZVZpZXcuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgLy8gTWluaUdhbWVTZGsuQVBJLmdldFVzZXJQcm9maWxlKHRoaXMuc2V0VXNlcklkKTtcclxuICAgICAgICAvLyBjYy5meC5HYW1lVG9vbC5zZXRVc2VySW5mbyhcIlwiKTtcclxuICAgICAgICB0aGlzLm9uR2V0TG9naW5Db2RlKCk7XHJcbiAgICAgICAgLy8g5bCd6K+V6I635Y+W5ri45oiP5YWl5Y+j5oyJ6ZKu77yM5aaC5p6c5a2Y5Zyo5YiZ55u05o6l6L+U5Zue77yM5LiN6L+b6KGM5ZCO57ut5pON5L2cXHJcbiAgICAgICAgLy8gbGV0IGJ1dHRvbkVudHJhbmNlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdCdG5zJyk/LmdldENoaWxkQnlOYW1lKCdCdXR0b25fRW50cmFuY2VWaWV3Jyk7XHJcbiAgICAgICAgLy8gaWYgKGJ1dHRvbkVudHJhbmNlKSB7XHJcbiAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIC8vIOWmguaenOaYr+Wtl+iKgui3s+WKqOWwj+a4uOaIj+eOr+Wig++8jOajgOafpeS+p+i+ueagj+aYr+WQpuWtmOWcqFxyXG5cclxuICAgICAgICBpZiAoTWluaUdhbWVTZGsuaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAvL+aKlumfs+eOr+Wig++8jOajgOa1i+S+p+i+ueagj+WtmOWcqFxyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLmNoZWNrU2lkZUJhcigoc3VjY2VzczogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8g5qC55o2u5L6n6L655qCP5a2Y5Zyo5oCn5r+A5rS75oiW56aB55So5ri45oiP5YWl5Y+j5oyJ6ZKuXHJcbiAgICAgICAgICAgICAgICAvLyBidXR0b25FbnRyYW5jZS5hY3RpdmUgPSBzdWNjZXNzO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyDpnZ7mipbpn7PlsI/muLjmiI/njq/looPvvIznm7TmjqXmv4DmtLvmuLjmiI/lhaXlj6PmjInpkq5cclxuICAgICAgICAgICAgLy8g6Z2e5oqW6Z+z546v5aKD77yM5q2j5bi45pi+56S65oyJ6ZKuXHJcbiAgICAgICAgICAgIC8vIGJ1dHRvbkVudHJhbmNlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDorr7nva7nm5HlkKzlmajvvIzku6XlpITnkIbmnaXoh6rkvqfovrnmoI/nmoTkuqTkupLkuovku7ZcclxuICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLmxpc3RlbkZyb21TaWRlYmFyKChzdWNjZXNzOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOWmguaenOS6pOS6kuaIkOWKn++8jOaYvuekuuWlluWKseaPkOekulxyXG4gICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdCgn5L6n6L655qCP5aWW5YqxJywgNSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUoZGVsdGFUaW1lOiBudW1iZXIpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlvLnlh7rlub/lkYrmqKrluYXjgIJcclxuICAgICAqIOatpOaWueazleeUqOS6juWKoOi9veW5tuaYvuekuuW5v+WRiuaoquW5heOAguWug+mmluWFiOWKoOi9veaMh+WumuW5v+WRiuS9jeeahOaoquW5heW5v+WRiu+8jOeEtuWQjuaYvuekuuW5v+WRiuOAglxyXG4gICAgICog5Yqg6L295bm/5ZGK5ZKM5pi+56S65bm/5ZGK5piv6YCa6L+HTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlcueahOWunuS+i+aWueazleadpeWunueOsOeahOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5pa55rOV5o+Q5L6b5LqG5Lik56eN5pi+56S65qiq5bmF5bm/5ZGK55qE5pa55byP77yaXHJcbiAgICAgKiAxLiDpu5jorqTmlrnlvI/vvJrosIPnlKhzaG93QmFubmVy5pa55rOV5pi+56S65bm/5ZGK77yM57O757uf5Lya6Ieq5Yqo6YCJ5oup5pi+56S65L2N572u44CCXHJcbiAgICAgKiAyLiDmjIflrprkvY3nva7mlrnlvI/vvJrlj6/ku6XpgJrov4fkvKDlhaXpop3lpJbnmoTlj4LmlbDmnaXmjIflrprlub/lkYrmmL7npLrlnKjlsY/luZXnmoTpobbpg6jmiJblupXpg6jvvIzmiJbogIXpgJrov4flnZDmoIfmjIflrprmmL7npLrkvY3nva7jgIJcclxuICAgICAqIFxyXG4gICAgICog56S65L6L5Luj56CB5Lit5rOo6YeK5o6J5LqG5Lik56eN5pi+56S65bm/5ZGK55qE5YW35L2T5pa55rOV77yM5Y+v5Lul5qC55o2u5a6e6ZmF6ZyA5rGC6YCJ5oup5L2/55So44CCXHJcbiAgICAgKi9cclxuICAgIG9uU2hvd0Jhbm5lcigpIHtcclxuICAgICAgICAvLyDliqDovb3mjIflrprlub/lkYrkvY3nmoTmqKrluYXlub/lkYrjgIJcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLmxvYWRCYW5uZXIoJ2FkdW5pdC00ZTdlZjQ2N2UzZWFhYjUxJyk7XHJcblxyXG4gICAgICAgIC8vIOm7mOiupOaWueW8j+aYvuekuuaoquW5heW5v+WRiuOAglxyXG4gICAgICAgIC8vIOaWueazlTHvvJrpu5jorqTosIPnlKhcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dCYW5uZXIoKTtcclxuXHJcbiAgICAgICAgLy8g56S65L6L77ya5oyH5a6a5bGP5bmV5bqV6YOo5q2j5Lit5pi+56S65qiq5bmF5bm/5ZGK44CCXHJcbiAgICAgICAgLy8g5pa55rOVMu+8muaMh+WumuWxj+W5lemhtumDqOaIluW6lemDqOato+S4rVxyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0Jhbm5lcignYWR1bml0LTRlN2VmNDY3ZTNlYWFiNTEnLCBNaW5pR2FtZVNkay5FQWRCYW5uZXJMb2NhdGlvbi5CT1RUT00pOyBcclxuXHJcbiAgICAgICAgLy8g56S65L6L77ya6YCa6L+H5Z2Q5qCH5oyH5a6a5L2N572u5pi+56S65qiq5bmF5bm/5ZGK44CCXHJcbiAgICAgICAgLy8g5pa55rOVMu+8muaMh+WumuWdkOagh1xyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0Jhbm5lcignYWR1bml0LTRlN2VmNDY3ZTNlYWFiNTEnLCB7IHRvcDogMTAsIGxlZnQ6IDEwIH0pOyBcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOmakOiXj+W5v+WRiuaoquW5heeahOWHveaVsOOAglxyXG4gICAgICogXHJcbiAgICAgKiDor6Xlh73mlbDosIPnlKhNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2Vy5a6e5L6L55qE5pa55rOV77yM55So5LqO6ZqQ6JeP5bm/5ZGK5qiq5bmF44CCXHJcbiAgICAgKiDlvZPpnIDopoHmmoLml7blgZzmraLlsZXnpLrlub/lkYrmiJbnlKjmiLfkuLvliqjor7fmsYLpmpDol4/lub/lkYrml7bvvIzlj6/ku6XosIPnlKjmraTlh73mlbDjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOWHveaVsOS4jeaOpeWPl+S7u+S9leWPguaVsO+8jOS5n+S4jei/lOWbnuS7u+S9leWAvOOAglxyXG4gICAgICog5a6D5Y2V57qv5Zyw6Kem5Y+R5bm/5ZGK5qiq5bmF55qE6ZqQ6JeP5pON5L2c77yM5YW35L2T5a6e546w5L6d6LWW5LqOQWR2ZXJ0TWFuYWdlcueahOWunueOsOOAglxyXG4gICAgICovXHJcbiAgICBvbkhpZGVCYW5uZXIoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5oaWRlQmFubmVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmmL7npLrmj5LlsY/lub/lkYrnmoTlh73mlbDjgIJcclxuICAgICAqIFxyXG4gICAgICog5q2k5Ye95pWw6LCD55SoTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlcuWunuS+i+eahOaWueazle+8jOS7peaYvuekuuS4gOS4quaMh+WumueahOaPkuWxj+W5v+WRiuOAglxyXG4gICAgICog5a6D5L2/55So5LqG56Gs57yW56CB55qE5bm/5ZGK5Y2V5YWD5qCH6K+G56ym77yM6L+Z5oSP5ZGz552A5a6D5LiT5Li654m55a6a55qE5bm/5ZGK5L2N6K6+6K6h44CCXHJcbiAgICAgKiDlnKjlrp7pmYXlupTnlKjkuK3vvIzlj6/og73pnIDopoHmoLnmja7lupTnlKjnmoTphY3nva7miJbnlKjmiLfnmoTnibnlrprmnaHku7bmnaXliqjmgIHpgInmi6nlub/lkYrljZXlhYPmoIfor4bnrKbjgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93SW50ZXJzdGl0aWFsKCkge1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0ludGVyc3RpdGlhbCgnYWR1bml0LWVhZGQ2Nzg1MWQzMDUwYWQnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOiwg+eUqOW5v+WRiueuoeeQhuWZqOWKoOi9veW5tuWxleekuuiHquWumuS5ieW5v+WRiuOAglxyXG4gICAgICog5q2k5pa55rOV6aaW5YWI6YCa6L+H5bm/5ZGK566h55CG5Zmo55qE5a6e5L6L5Yqg6L295oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK5Y2V5YWD77yM54S25ZCO5bGV56S66L+Z5Liq6Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiDliqDovb3lkozlsZXnpLrlub/lkYrmmK/lub/lkYrnrqHnkIbns7vnu5/kuK3nmoTluLjop4Hmk43kvZzvvIzov5nph4zpgJrov4fkuKTmraXliIbliKvlrozmiJDliqDovb3lkozlsZXnpLrnmoTov4fnqIvvvIxcclxuICAgICAqIOS7peehruS/neW5v+WRiuWcqOWxleekuuWJjeato+ehruS4lOWFheWIhuWcsOiiq+WKoOi9veOAglxyXG4gICAgICovXHJcbiAgICBvblNob3dDdXN0b20oKSB7XHJcbiAgICAgICAgLy8g5Yqg6L295oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK5Y2V5YWD44CCXHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5sb2FkQ3VzdG9tKEVXZWNoYXRBRC5DVU1TVE9NXzAxKTtcclxuICAgICAgICAvLyDlsZXnpLrlt7LliqDovb3nmoToh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dDdXN0b20oRVdlY2hhdEFELkNVTVNUT01fMDEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6ZqQ6JeP6Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiBcclxuICAgICAqIOacrOWHveaVsOiwg+eUqE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2UuaGlkZUN1c3RvbSgp5p2l6ZqQ6JeP6Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiDov5nmmK/lr7nmjqXlub/lkYrnrqHnkIbns7vnu5/nmoTkuIDpg6jliIbvvIznlKjkuo7mjqfliLblub/lkYrnmoTmmL7npLrkuI7pmpDol4/jgIJcclxuICAgICAqIOWcqOmcgOimgemakOiXj+iHquWumuS5ieW5v+WRiueahOWcuuaZr+S4i++8jOiwg+eUqOatpOWHveaVsOWNs+WPr+WunueOsOebuOW6lOWKn+iDveOAglxyXG4gICAgICovXHJcbiAgICBvbkhpZGVDdXN0b20oKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5oaWRlQ3VzdG9tKEVXZWNoYXRBRC5DVU1TVE9NXzAxKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOinpuWPkeaYvuekuuinhumikeW5v+WRiueahOWHveaVsOOAglxyXG4gICAgICog6YCa6L+H6LCD55SoTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5zaG93VmlkZW/mlrnms5XvvIzmmL7npLrkuIDkuKrop4bpopHlub/lkYrvvIzlubbmoLnmja7nlKjmiLfop4LnnIvlub/lkYrnmoTmg4XlhrXmiafooYznm7jlupTnmoTpgLvovpHjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOWHveaVsOmmluWFiOS8oOWFpeS4gOS4quW5v+WRiuWNleWFg0lE77yM55So5LqO5qCH6K+G6KaB5pi+56S655qE6KeG6aKR5bm/5ZGK44CC54S25ZCO5Lyg5YWl5LiA5Liq5Zue6LCD5Ye95pWw77yM6K+l5Zue6LCD5Ye95pWw5Zyo55So5oi36KeC55yL5bm/5ZGK5ZCO6KKr6LCD55So77yM5peg6K6655So5oi35piv5a6M5oiQ5LqG6KeC55yL44CB5ouS57ud5LqG6KeC55yL6L+Y5piv6KeC55yL6L+H56iL5Lit5Y+R55Sf5LqG6ZSZ6K+v44CCXHJcbiAgICAgKiDlm57osIPlh73mlbDmjqXmlLbkuKTkuKrlj4LmlbDvvJrkuIDkuKrmmK/nlKjmiLfop4LnnIvlub/lkYrnmoTnu5PmnpzvvIzlj6bkuIDkuKrmmK/nlKjmiLfop4LnnIvnmoTlub/lkYrmlbDph4/jgILmoLnmja7op4LnnIvnu5PmnpznmoTkuI3lkIzvvIzmmL7npLrkuI3lkIznmoTmj5DnpLrkv6Hmga/jgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93VmlkZW8oKSB7XHJcbiAgICAgICAgLy8g5bm/5ZGK5Y2V5YWDSUTvvIznlKjkuo7moIfor4bopoHmmL7npLrnmoTop4bpopHlub/lkYpcclxuICAgICAgICAvLyDlub/lkYrljZXlhYNJROeahOagt+S+i1xyXG4gICAgICAgIC8v5oqW6Z+z5b2i5aaCOiAxcmUzbmZxa215ODFtNG04Z2VcclxuICAgICAgICAvL+W+ruS/oeW9ouWmgjogYWR1bml0LWE3NzE4ZjZlMTk1ZTQyZmVcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dWaWRlbygnMXJlM25mcWtteTgxbTRtOGdlJywgKHJlczogTWluaUdhbWVTZGsuRUFkVmlkZW9SZXN1bHQsIGNvdW50OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgLy8g6L6T5Ye655So5oi36KeC55yL55qE5bm/5ZGK5pWw6YePXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCfnlKjmiLfnnIvnmoTop4bpopHlub/lkYrkuKrmlbDmmK86JywgY291bnQpO1xyXG5cclxuICAgICAgICAgICAgLy8g5qC55o2u55So5oi36KeC55yL5bm/5ZGK55qE57uT5p6c77yM5omn6KGM5LiN5ZCM55qE6YC76L6RXHJcbiAgICAgICAgICAgIHN3aXRjaCAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIE1pbmlHYW1lU2RrLkVBZFZpZGVvUmVzdWx0LkFDQ0VQVDpcclxuICAgICAgICAgICAgICAgICAgICAvLyDnlKjmiLflrozmiJDkuoblub/lkYrop4LnnIvvvIzmmL7npLrlpZblirHmj5DnpLpcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KCfnlKjmiLfnnIvlrozlub/lkYrvvIzlj6/ku6XlpZblirEnKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgTWluaUdhbWVTZGsuRUFkVmlkZW9SZXN1bHQuUkVKRUNUOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOeUqOaIt+aLkue7neS6huW5v+WRiuingueci++8jOaYvuekuuS4jeWlluWKseaPkOekulxyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoJ+eUqOaIt+aLkue7neaOieW5v+WRiu+8jOS4jeWlluWKsScpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBNaW5pR2FtZVNkay5FQWRWaWRlb1Jlc3VsdC5FUlJPUjpcclxuICAgICAgICAgICAgICAgICAgICAvLyDlub/lkYrmkq3mlL7lj5HnlJ/plJnor6/vvIzmmL7npLrplJnor6/mj5DnpLpcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KCfmkq3mlL7lub/lkYrlj5HnlJ/plJnor6/vvIzkuI3lpZblirEnKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5YW25LuW5oOF5Ya177yM5LiN5L2c5aSE55CGXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOW8leWvvOeUqOaIt+WIhuS6q+W6lOeUqOe7meaci+WPi+OAglxyXG4gICAgICogXHJcbiAgICAgKiDpgJrov4fosIPnlKhNaW5pR2FtZVNka+eahEFQSeWIhuS6q+WKn+iDve+8jOWQkeeUqOaIt+eahOaci+WPi+WciOWPkemAgemCgOivt++8jOmCgOivt+S7luS7rOS4gOi1t+eOqea4uOaIj+OAglxyXG4gICAgICog6L+Z5piv5LiA5Liq6YeN6KaB55qE5o6o5bm/5omL5q6177yM5Y+v5Lul5aKe5Yqg5bqU55So55qE5pud5YWJ5bqm5ZKM55So5oi36YeP44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZW1hcmtzXHJcbiAgICAgKiDmraTmlrnms5XkuK3osIPnlKjnmoRBUEnkvp3otZbkuo7nibnlrprnmoTlsI/muLjmiI/lubPlj7DvvIzlm6DmraTlnKjkuI3lkIznmoTlubPlj7DkuIrlj6/og73pnIDopoHkuI3lkIznmoTlrp7njrDjgIJcclxuICAgICAqL1xyXG4gICAgb25TaGFyZSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hhcmVBcHBUb0ZyaWVuZHMoJ+adpeeOqea4uOaIj+WQpycpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pi+56S65LiA5LiqdG9hc3Tmj5DnpLrjgIJcclxuICAgICAqIFxyXG4gICAgICog6YCa6L+H6LCD55SoTWluaUdhbWVTZGvnmoRBUEnmlrnms5XmnaXmmL7npLrkuIDkuKrnroDnn63nmoTmj5DnpLrkv6Hmga/jgIJ0b2FzdOaYr+S4gOenjei9u+mHj+e6p+eahOaPkOekuuaWueW8j++8jOeUqOS6juWcqOeVjOmdouS4iuefreaaguWcsOWxleekuuS4gOS6m+S/oeaBr++8jOS4jeW9seWTjeeUqOaIt+aTjeS9nOOAglxyXG4gICAgICog6L+Z6YeM5L2/55So5LqG5Zu65a6a55qE5o+Q56S65paH5pysICfov5nmmK/kuIDkuKp0b2FzdCfvvIzlnKjlrp7pmYXlupTnlKjkuK3vvIzlj6/ku6XmoLnmja7pnIDopoHliqjmgIHorr7nva7mj5DnpLrmlofmnKzjgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93VG9hc3QoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdCgn6L+Z5piv5LiA5LiqdG9hc3QnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOinpuWPkeiuvuWkh+aMr+WKqOWKn+iDveOAglxyXG4gICAgICogXHJcbiAgICAgKiDor6Xmlrnms5XnlKjkuo7osIPnlKhNaW5pR2FtZVNka+aPkOS+m+eahEFQSe+8jOS7peWunueOsOiuvuWkh+eahOaMr+WKqOWKn+iDveOAguW9k+mcgOimgeaPkOmGkueUqOaIt+aIluaPkOS+m+inpuinieWPjemmiOaXtu+8jOWPr+S7peiwg+eUqOatpOaWueazleOAglxyXG4gICAgICog5L6L5aaC77yM5Zyo5ri45oiP5oiW5bqU55So5Lit77yM5b2T55So5oi35a6M5oiQ54m55a6a5pON5L2c5oiW5Y+R55Sf54m55a6a5LqL5Lu25pe277yM5Y+v5Lul6YCa6L+H5oyv5Yqo57uZ5LqI55So5oi35Y+N6aaI44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZW1hcmtzXHJcbiAgICAgKiDmraTmlrnms5Xml6Dlj4LmlbDvvIzkuZ/kuI3ov5Tlm57ku7vkvZXlgLzjgIJcclxuICAgICAqL1xyXG4gICAgb25WaXJicmF0ZSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkudmlicmF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6YeN5paw5ZCv5Yqo5ri45oiP5a6e5L6L44CCXHJcbiAgICAgKiBcclxuICAgICAqIOatpOWHveaVsOiwg+eUqE1pbmlHYW1lU2Rr5Lit55qEQVBJ6YeN5paw5ZCv5Yqo5ri45oiP44CC6YeN5paw5ZCv5Yqo5pON5L2c5Y+v6IO95piv5Li65LqG5Yid5aeL5YyW5ri45oiP546v5aKD44CB6YeN572u5ri45oiP54q25oCB5oiW5aSE55CG5YW25LuW6ZyA6KaB6YeN5ZCv55qE5Zy65pmv44CCXHJcbiAgICAgKiDosIPnlKjmraTlh73mlbDlkI7vvIzmuLjmiI/lsIbkvJrph43mlrDlvIDlp4vvvIzlvZPliY3nmoTmuLjmiI/nirbmgIHlsIbkvJrooqvmuIXpmaTjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOWHveaVsOS4jeaOpeWPl+S7u+S9leWPguaVsOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyDml6Dov5Tlm57lgLzjgIJcclxuICAgICAqL1xyXG4gICAgb25SZWJvb3QoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnJlYm9vdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5b2T5YmN5Ye95pWw55So5LqO5Zyo6L+35L2g5ri45oiP5Lit5a6e546w6YCA5Ye65Yqf6IO944CCXHJcbiAgICAgKiDlroPosIPnlKjkuoZNaW5pR2FtZVNka+aPkOS+m+eahEFQSeaWueazleadpeinpuWPkemAgOWHuuaTjeS9nOOAglxyXG4gICAgICog6K+l5pa55rOV6YCa5bi45Zyo6ZyA6KaB57uT5p2f5b2T5YmN6L+35L2g5ri45oiP5oiW6L+U5Zue5Yiw5LiK5LiA57qn6I+c5Y2V5pe26KKr6LCD55So44CCXHJcbiAgICAgKi9cclxuICAgIG9uRXhpdCgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuZXhpdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pi+56S65YiG5Lqr6I+c5Y2V44CCXHJcbiAgICAgKiBcclxuICAgICAqIOmAmui/h+iwg+eUqE1pbmlHYW1lU2Rr55qEQVBJ5pa55rOV77yM6Kem5Y+R5pi+56S65YiG5Lqr6I+c5Y2V55qE5pON5L2c44CC5q2k5Ye95pWw5peo5Zyo5o+Q5L6b5LiA5Liq57uf5LiA55qE5YWl5Y+j77yMXHJcbiAgICAgKiDku6Xkvr/lnKjpnIDopoHml7bovbvmnb7osIPnlKjliIbkuqvlip/og73vvIzogIzml6DpnIDnm7TmjqXkuI7lhbfkvZPnmoRTREvmjqXlj6PkuqTkupLjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOaWueazleS4jeaOpeWPl+S7u+S9leWPguaVsO+8jOS5n+S4jei/lOWbnuS7u+S9leWAvOOAglxyXG4gICAgICovXHJcbiAgICBvblNob3dTaGFyZU1lbnUoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dTaGFyZU1lbnUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWvvOiIquWIsOaMh+WumueahOWwj+a4uOaIj+OAglxyXG4gICAgICogXHJcbiAgICAgKiDmnKzlh73mlbDnlKjkuo7op6blj5Hlr7zoiKrliLDkuIDkuKrnibnlrprnmoTlsI/muLjmiI/jgILov5npnIDopoHmj5Dkvpvnm67moIflsI/muLjmiI/nmoRJRO+8jFxyXG4gICAgICog5Lul5L6/57O757uf6IO95aSf5q2j56Gu5Zyw5bCG55So5oi36YeN5a6a5ZCR5Yiw55uu5qCH5bCP5ri45oiP44CCXHJcbiAgICAgKiBcclxuICAgICAqIOazqOaEj++8mui/memHjOeahCd4eHgn5piv5Y2g5L2N56ym77yM5a6e6ZmF5L2/55So5pe26ZyA6KaB5pu/5o2i5Li65YW35L2T55qE5bCP5ri45oiPSUTjgIJcclxuICAgICAqL1xyXG4gICAgb25OYXZpZ2F0ZSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkubmF2aWdhdGVUbygneHh4Jyk7IC8vIHh4eOabv+aNouS4uuS9oOeahOWwj+a4uOaIj2lkXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmv4DmtLvlrZfoioLot7PliqjlhaXlj6Pop4blm77jgIJcclxuICAgICAqIFxyXG4gICAgICog5q2k5pa55rOV55So5LqO5bCG5a2X6IqC6Lez5Yqo5YWl5Y+j6KeG5Zu+6K6+572u5Li65rS76LeD54q25oCB44CC5b2T6ZyA6KaB5Zyo55So5oi355WM6Z2i5Lit5pi+56S65a2X6IqC6Lez5Yqo55qE5YWl5Y+j5pe277yMXHJcbiAgICAgKiDlj6/ku6XosIPnlKjmraTmlrnms5XmnaXmv4DmtLvnm7jlupTnmoTop4blm77lhYPntKDvvIzkvb/lhbblr7nnlKjmiLflj6/op4HjgIJcclxuICAgICAqL1xyXG4gICAgb25CeXRlZGFuY2VFbnRyYW5jZVZpZXcoKSB7XHJcbiAgICAgICAgLy8gdGhpcy5lbnRyYW5jZVZpZXcuYWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOivt+axgueZu+W9leS7o+eggVxyXG4gICAgICogXHJcbiAgICAgKiDmnKzlh73mlbDnlKjkuo7op6blj5HlsI/nqIvluo/nmoTnmbvlvZXmtYHnqIvvvIzojrflj5blvq7kv6HmiJblpLTmnaHnrYnnrKzkuInmlrnlubPlj7DnmoTnmbvlvZXku6PnoIHjgIJcclxuICAgICAqIOi/meS6m+S7o+eggeWPr+S7peeUqOS6juWQjue7reeahOeUqOaIt+i6q+S7vemqjOivgeWSjOaVsOaNruWQjOatpea1geeoi+OAglxyXG4gICAgICovXHJcbiAgICBvbkdldExvZ2luQ29kZSgpIHtcclxuICAgICAgICAvLyDosIPnlKhNaW5pR2FtZVNka+eahEFQSeeZu+W9leaWueazle+8jOS8oOWFpeS4gOS4quWbnuiwg+WHveaVsOWkhOeQhueZu+W9lee7k+aenFxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5sb2dpbigoY29kZTogc3RyaW5nLCBhbm9ueW1vdXNDb2RlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgLy8g5omT5Y2w5b6u5L+h5oiW5aS05p2h55qE55m75b2V5Luj56CBXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdXZWNoYXQgT3IgQnl0ZWRhbmNlIENvZGU6JywgY29kZSk7XHJcbiAgICAgICAgICAgIC8vIOaJk+WNsOWktOadoeeahOWMv+WQjeeZu+W9leS7o+eggVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnQnl0ZWRhbmNlIEFub255bW91cyBDb2RlOicsIGFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICBpZihjb2RlKXtcclxuICAgICAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJJZChjb2RlLCBkYXRhID0+IHRoaXMuc2V0VXNlcklkKGRhdGEpKTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXRVc2VySWQoZGF0YSl7XHJcbiAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCA9IGRhdGEuZGF0YS51c2VySWQ7XHJcbiAgICAvLyAgICAgTWluaUdhbWVTZGsuQVBJLmdldFVzZXJJbmZvKHRoaXMuc2V0VXNlckluZm8pO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIHNldFVzZXJJbmZvKGRhdGEpe1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwi6I635Y+W5Yiw55qE55So5oi35L+h5oGvXCIsZGF0YS51c2VySW5mbyk7XHJcbiAgICAvLyAgICAgdmFyIHVzZURhdGEgPSB7XHJcbiAgICAvLyAgICAgICAgIFwiZ2FtZUlkXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAvLyAgICAgICAgIFwidXNlcklkXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VySWQsXHJcbiAgICAvLyAgICAgICAgIFwibmlja05hbWVcIjpkYXRhLnVzZXJJbmZvLm5pY2tOYW1lLFxyXG4gICAgLy8gICAgICAgICBcInBpY1wiOiBkYXRhLnVzZXJJbmZvLmF2YXRhclVybFxyXG4gICAgICAgICAgIFxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuS4iuS8oOeahOeUqOaIt+S/oeaBrzpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkLGRhdGEudXNlckluZm8ubmlja05hbWUsZGF0YS51c2VySW5mby5hdmF0YXJVcmwpO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwiUG9zdOaVsOaNrjpcIix1c2VEYXRhKTtcclxuICAgIC8vICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VySW5mbyh1c2VEYXRhLChyZXMpPT57XHJcbiAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg5oiQ5YqfOlwiLHJlcyk7XHJcbiAgICAvLyAgICAgfSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliJvlu7rlubbmmL7npLrmuLjmiI/lnIjmjInpkq5cclxuICAgICAqIFxyXG4gICAgICog5pys5Ye95pWw6YCa6L+H6LCD55SoTWluaUdhbWVTZGvnmoRHYW1lQ2x1YuWunuS+i+aWueazle+8jOWunueOsOa4uOaIj+S/seS5kOmDqOeahOWIm+W7uuWSjOaYvuekuuOAglxyXG4gICAgICog5a6D6aaW5YWI6YWN572u5L+x5LmQ6YOo55qE5Zu+5qCH57G75Z6L5ZKM5L2N572u5aSn5bCP77yM54S25ZCO5Yib5bu65L+x5LmQ6YOo77yM5pyA5ZCO5pi+56S65L+x5LmQ6YOo44CCXHJcbiAgICAgKiDov5nmoLflgZrmmK/kuLrkuoblnKjlsI/muLjmiI/lhoXliJvlu7rlubblsZXnpLrkuIDkuKrmuLjmiI/kv7HkuZDpg6jnmoTlm77moIfvvIzkvpvnjqnlrrbliqDlhaXmiJbkupLliqjjgIJcclxuICAgICAqL1xyXG4gICAgb25DcmVhdGVDbHViKCkge1xyXG4gICAgICAgIC8vIOmFjee9ruS/seS5kOmDqOWbvuagh+S4uue7v+iJsu+8jOiuvue9ruWbvuagh+eahOS9jee9ruS4uumhtumDqDIwMOWDj+e0oO+8jOW3puS+pzDlg4/ntKBcclxuICAgICAgICBNaW5pR2FtZVNkay5HYW1lQ2x1Yi5pbnN0YW5jZS5jcmVhdGUoXHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkVHYW1lQ2x1Ykljb24uR1JFRU4sXHJcbiAgICAgICAgICAgIHsgdG9wOiAyMDAsIGxlZnQ6IDAgfSxcclxuICAgICAgICAgICAgeyB3aWR0aDogNTAsIGhlaWdodDogNTAgfSk7XHJcbiAgICAgICAgLy8g5pi+56S65ri45oiP5L+x5LmQ6YOo5Zu+5qCHXHJcbiAgICAgICAgTWluaUdhbWVTZGsuR2FtZUNsdWIuaW5zdGFuY2Uuc2hvdygpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ== //------QC-SOURCE-SPLIT------ (function() { @@ -485,7 +620,7 @@ cc._RF.pop(); (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/tiledmap-optimize-resource/Script/TmoAssembler.js'; + var __filename = 'preview-scripts/assets/Script/module/Crypto/HttpUtil.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -493,367 +628,125 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '18d1c5ObBtCeaysyO5bMIgb', 'TmoAssembler'); -// Script/TmoAssembler.js +cc._RF.push(module, '771a32aQBNGVKd3+66gyTKA', 'HttpUtil'); +// Script/module/Crypto/HttpUtil.ts "use strict"; - -exports.__esModule = true; -exports.TmoAssembler = void 0; - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var gfx = cc.gfx; // 颜色去除 + 物件图集合批 - -var vfmtPosUvIndex = new gfx.VertexFormat([{ - name: gfx.ATTR_POSITION, - type: gfx.ATTR_TYPE_FLOAT32, - num: 2 -}, { - name: gfx.ATTR_UV0, - type: gfx.ATTR_TYPE_FLOAT32, - num: 2 -}, { - name: "a_texture_idx", - type: gfx.ATTR_TYPE_FLOAT32, - num: 1 -}]); // 仅物件图集合批 - -var vfmtPosUvColorIndex = new gfx.VertexFormat([{ - name: gfx.ATTR_POSITION, - type: gfx.ATTR_TYPE_FLOAT32, - num: 2 -}, { - name: gfx.ATTR_UV0, - type: gfx.ATTR_TYPE_FLOAT32, - num: 2 -}, { - name: "a_texture_idx", - type: gfx.ATTR_TYPE_FLOAT32, - num: 1 -}, { - name: gfx.ATTR_COLOR, - type: gfx.ATTR_TYPE_UINT8, - num: 4, - normalize: true -}]); - -var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { - _inheritsLoose(TmoAssembler, _cc$Assembler); - - function TmoAssembler() { - return _cc$Assembler.apply(this, arguments) || this; - } - - var _proto = TmoAssembler.prototype; - - _proto.init = function init(comp) { - _cc$Assembler.prototype.init.call(this, comp); - - this._noColor = comp.isNoColor(); - this.updateColor = this._noColor ? undefined : this.updateColorFunc; - this.uvOffset = 2; - this.colorOffset = 5; - this.textureIndexOffset = 4; - this.floatsPerVert = this._noColor ? 5 : 6; - this.indicesCount = 6; - this.verticesCount = 4; - this._renderData = new cc.RenderData(); - - this._renderData.init(this); - - this.initLocal(); - this.initData(); - }; - - _proto.initLocal = function initLocal() { - this._local = []; - this._local.length = 4; - }; - - _proto.initData = function initData() { - var data = this._renderData; - data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt()); // 填充顶点索引信息 - - var indices = data.iDatas[0]; - var count = indices.length / 6; - - for (var i = 0, idx = 0; i < count; i++) { - var vertextID = i * 4; - indices[idx++] = vertextID; - indices[idx++] = vertextID + 1; - indices[idx++] = vertextID + 2; - indices[idx++] = vertextID + 1; - indices[idx++] = vertextID + 3; - indices[idx++] = vertextID + 2; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var CryptoJS = require("./crypto-js.min.js"); //引用AES源码js +var BASE_URL = "https://api.sparkus.cn"; +//只负责网络接口 次类只负责和后端交互,不负责处理数据 数据处理在GameTool +var HttpUtil = /** @class */ (function (_super) { + __extends(HttpUtil, _super); + function HttpUtil() { + return _super !== null && _super.apply(this, arguments) || this; } - }; - - _proto.getBuffer = function getBuffer() { - return cc.renderer._handle.getBuffer("mesh", this.getVfmt()); - }; - - _proto.getVfmt = function getVfmt() { - return this._noColor ? vfmtPosUvIndex : vfmtPosUvColorIndex; - }; - - _proto.updateRenderData = function updateRenderData(sprite) { - this.packToDynamicAtlas(sprite, sprite._spriteFrame); - - if (sprite._vertsDirty) { - this.updateUVs(sprite); - this.updateVerts(sprite); - this.updateTextureIdx(sprite); - sprite._vertsDirty = false; + HttpUtil = __decorate([ + ccclass + ], HttpUtil); + return HttpUtil; +}(cc.Component)); +exports.default = HttpUtil; +// 响应拦截器 +// Rq.interceptors.response.use(responseHandler) +var config = { + gameId: "100012", + secretKey: "onnfPKJW", + EK: "hui231%1" +}; +var Crypoto = /** @class */ (function () { + function Crypoto() { + // 加密的向明值,自己根据项目实际情况定,需要跟后端开发保持一致 + this.keyHex = this.getHetKey(); } - } - /** - * 填充textureIndex数据 - * @param {cc.Sprite} sprite - */ - ; - - _proto.updateTextureIdx = function updateTextureIdx(sprite) { - var textureIdx = sprite._textureIdx; - var verts = this._renderData.vDatas[0]; - var verticesCount = this.verticesCount; - var floatsPerVert = this.floatsPerVert; - var textureIndexOffset = this.textureIndexOffset; - - for (var i = 0; i < verticesCount; i++) { - var index = i * floatsPerVert + textureIndexOffset; - verts[index] = textureIdx; - } - }; - - _proto.updateUVs = function updateUVs(sprite) { - var uv = sprite._spriteFrame.uv; - var uvOffset = this.uvOffset; - var floatsPerVert = this.floatsPerVert; - var verts = this._renderData.vDatas[0]; - - for (var i = 0; i < 4; i++) { - var srcOffset = i * 2; - var dstOffset = floatsPerVert * i + uvOffset; - verts[dstOffset] = uv[srcOffset]; - verts[dstOffset + 1] = uv[srcOffset + 1]; - } - }; - - _proto.updateVerts = function updateVerts(sprite) { - var node = sprite.node, - cw = node.width, - ch = node.height, - appx = node.anchorX * cw, - appy = node.anchorY * ch, - l, - b, - r, - t; - - if (sprite.trim) { - l = -appx; - b = -appy; - r = cw - appx; - t = ch - appy; - } else { - var frame = sprite.spriteFrame, - ow = frame._originalSize.width, - oh = frame._originalSize.height, - rw = frame._rect.width, - rh = frame._rect.height, - offset = frame._offset, - scaleX = cw / ow, - scaleY = ch / oh; - var trimLeft = offset.x + (ow - rw) / 2; - var trimRight = offset.x - (ow - rw) / 2; - var trimBottom = offset.y + (oh - rh) / 2; - var trimTop = offset.y - (oh - rh) / 2; - l = trimLeft * scaleX - appx; - b = trimBottom * scaleY - appy; - r = cw + trimRight * scaleX - appx; - t = ch + trimTop * scaleY - appy; - } - - var local = this._local; - local[0] = l; - local[1] = b; - local[2] = r; - local[3] = t; - this.updateWorldVerts(sprite); - }; - - _proto.updateColorFunc = function updateColorFunc(comp, color) { - var uintVerts = this._renderData.uintVDatas[0]; - if (!uintVerts) return; - color = color != null ? color : comp.node.color._val; - var floatsPerVert = this.floatsPerVert; - var colorOffset = this.colorOffset; - - for (var i = colorOffset, l = uintVerts.length; i < l; i += floatsPerVert) { - uintVerts[i] = color; - } - }; - - _proto.updateWorldVerts = function updateWorldVerts(comp) { - if (CC_NATIVERENDERER) { - // 原生平台兼容代码 复制于jsb-engine.js中的cc.Assembler2D.prototype.updateWorldVerts - var local = this._local; - var verts = this._renderData.vDatas[0]; - var vl = local[0], - vr = local[2], - vb = local[1], - vt = local[3]; - var floatsPerVert = this.floatsPerVert; - var vertexOffset = 0; // left bottom - - verts[vertexOffset] = vl; - verts[vertexOffset + 1] = vb; - vertexOffset += floatsPerVert; // right bottom - - verts[vertexOffset] = vr; - verts[vertexOffset + 1] = vb; - vertexOffset += floatsPerVert; // left top - - verts[vertexOffset] = vl; - verts[vertexOffset + 1] = vt; - vertexOffset += floatsPerVert; // right top - - verts[vertexOffset] = vr; - verts[vertexOffset + 1] = vt; - } else { - var _local = this._local; - var _verts = this._renderData.vDatas[0]; - var matrix = comp.node._worldMatrix; - var matrixm = matrix.m, - a = matrixm[0], - b = matrixm[1], - c = matrixm[4], - d = matrixm[5], - tx = matrixm[12], - ty = matrixm[13]; - var _vl = _local[0], - _vr = _local[2], - _vb = _local[1], - _vt = _local[3]; - var _floatsPerVert = this.floatsPerVert; - var _vertexOffset = 0; - var justTranslate = a === 1 && b === 0 && c === 0 && d === 1; - - if (justTranslate) { - // left bottom - _verts[_vertexOffset] = _vl + tx; - _verts[_vertexOffset + 1] = _vb + ty; - _vertexOffset += _floatsPerVert; // right bottom - - _verts[_vertexOffset] = _vr + tx; - _verts[_vertexOffset + 1] = _vb + ty; - _vertexOffset += _floatsPerVert; // left top - - _verts[_vertexOffset] = _vl + tx; - _verts[_vertexOffset + 1] = _vt + ty; - _vertexOffset += _floatsPerVert; // right top - - _verts[_vertexOffset] = _vr + tx; - _verts[_vertexOffset + 1] = _vt + ty; - } else { - var al = a * _vl, - ar = a * _vr, - bl = b * _vl, - br = b * _vr, - cb = c * _vb, - ct = c * _vt, - db = d * _vb, - dt = d * _vt; // left bottom - - _verts[_vertexOffset] = al + cb + tx; - _verts[_vertexOffset + 1] = bl + db + ty; - _vertexOffset += _floatsPerVert; // right bottom - - _verts[_vertexOffset] = ar + cb + tx; - _verts[_vertexOffset + 1] = br + db + ty; - _vertexOffset += _floatsPerVert; // left top - - _verts[_vertexOffset] = al + ct + tx; - _verts[_vertexOffset + 1] = bl + dt + ty; - _vertexOffset += _floatsPerVert; // right top - - _verts[_vertexOffset] = ar + ct + tx; - _verts[_vertexOffset + 1] = br + dt + ty; - } - } - }; - - _proto.fillBuffers = function fillBuffers(comp, renderer) { - if (renderer.worldMatDirty) { - this.updateWorldVerts(comp); - } - - var renderData = this._renderData; - var vData = renderData.vDatas[0]; - var iData = renderData.iDatas[0]; - var buffer = this.getBuffer(renderer); - var offsetInfo = buffer.request(this.verticesCount, this.indicesCount); // buffer data may be realloc, need get reference after request. - // fill vertices - - var vertexOffset = offsetInfo.byteOffset >> 2, - vbuf = buffer._vData; - - if (vData.length + vertexOffset > vbuf.length) { - vbuf.set(vData.subarray(0, vbuf.length - vertexOffset), vertexOffset); - } else { - vbuf.set(vData, vertexOffset); - } // fill indices - - - var ibuf = buffer._iData, - indiceOffset = offsetInfo.indiceOffset, - vertexId = offsetInfo.vertexOffset; - - for (var i = 0, l = iData.length; i < l; i++) { - ibuf[indiceOffset++] = vertexId + iData[i]; - } - }; - - _proto.packToDynamicAtlas = function packToDynamicAtlas(comp, frame) { - if (CC_TEST) return; - - if (!frame._original && cc.dynamicAtlasManager && frame._texture.packable) { - var packedFrame = cc.dynamicAtlasManager.insertSpriteFrame(frame); - - if (packedFrame) { - frame._setDynamicAtlasFrame(packedFrame); - } - } - - var material = comp._materials[0]; - if (!material) return; - - if (material.getProperty('texture') !== frame._texture) { - // texture was packed to dynamic atlas, should update uvs - comp._vertsDirty = true; - - comp._updateMaterial(); - } - }; - - _createClass(TmoAssembler, [{ - key: "verticesFloats", - get: function get() { - return this.verticesCount * this.floatsPerVert; - } - }]); - - return TmoAssembler; -}(cc.Assembler); - -exports.TmoAssembler = TmoAssembler; + Crypoto.prototype.getHetKey = function () { + return CryptoJS.enc.Utf8.parse(config.EK); + }; + /** DES加密 */ + Crypoto.prototype.encryptByDES = function (message, secret) { + if (!message) { + return message; + } + var key = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var encrypted = CryptoJS.DES.encrypt(message, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return encrypted.toString(); + }; + /** DES解密 */ + Crypoto.prototype.decryptByDES = function (message, secret) { + var key = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var decrypted = CryptoJS.DES.decrypt({ + ciphertext: CryptoJS.enc.Base64.parse(message) + }, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return decrypted.toString(CryptoJS.enc.Utf8); + }; + /** hmacSHA256加密 */ + Crypoto.prototype.hmacSha256 = function (message, secret) { + var keyHex = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var hash = CryptoJS.HmacSHA256(message, keyHex); + return hash.toString(); + }; + /** hmacSHA256验证 */ + Crypoto.prototype.verifyHmacSha256 = function (message, signature) { + var hash = CryptoJS.HmacSHA256(message, this.keyHex); + return hash.toString() === signature; + }; + /** CBC加密 */ + Crypoto.prototype.encryptCBC = function (word) { + if (!word) { + return word; + } + var srcs = CryptoJS.enc.Utf8.parse(word); + var encrypted = CryptoJS.AES.encrypt(srcs, this.keyHex, { + iv: this.keyHex, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }); + return encrypted.toString(); + }; + /** CBC解密 */ + Crypoto.prototype.decryptCBC = function (word) { + if (!word) { + return word; + } + var encryptedHexStr = CryptoJS.enc.Hex.parse(word); + var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); + var decrypt = CryptoJS.AES.decrypt(srcs, this.keyHex, { + iv: this.keyHex, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }); + var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); + return decryptedStr.toString(); + }; + return Crypoto; +}()); +var fxCry = new Crypoto(); cc._RF.pop(); } @@ -866,7 +759,212 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vQXNzZW1ibGVyLmpzIl0sIm5hbWVzIjpbImdmeCIsImNjIiwidmZtdFBvc1V2SW5kZXgiLCJWZXJ0ZXhGb3JtYXQiLCJuYW1lIiwiQVRUUl9QT1NJVElPTiIsInR5cGUiLCJBVFRSX1RZUEVfRkxPQVQzMiIsIm51bSIsIkFUVFJfVVYwIiwidmZtdFBvc1V2Q29sb3JJbmRleCIsIkFUVFJfQ09MT1IiLCJBVFRSX1RZUEVfVUlOVDgiLCJub3JtYWxpemUiLCJUbW9Bc3NlbWJsZXIiLCJpbml0IiwiY29tcCIsIl9ub0NvbG9yIiwiaXNOb0NvbG9yIiwidXBkYXRlQ29sb3IiLCJ1bmRlZmluZWQiLCJ1cGRhdGVDb2xvckZ1bmMiLCJ1dk9mZnNldCIsImNvbG9yT2Zmc2V0IiwidGV4dHVyZUluZGV4T2Zmc2V0IiwiZmxvYXRzUGVyVmVydCIsImluZGljZXNDb3VudCIsInZlcnRpY2VzQ291bnQiLCJfcmVuZGVyRGF0YSIsIlJlbmRlckRhdGEiLCJpbml0TG9jYWwiLCJpbml0RGF0YSIsIl9sb2NhbCIsImxlbmd0aCIsImRhdGEiLCJjcmVhdGVGbGV4RGF0YSIsImdldFZmbXQiLCJpbmRpY2VzIiwiaURhdGFzIiwiY291bnQiLCJpIiwiaWR4IiwidmVydGV4dElEIiwiZ2V0QnVmZmVyIiwicmVuZGVyZXIiLCJfaGFuZGxlIiwidXBkYXRlUmVuZGVyRGF0YSIsInNwcml0ZSIsInBhY2tUb0R5bmFtaWNBdGxhcyIsIl9zcHJpdGVGcmFtZSIsIl92ZXJ0c0RpcnR5IiwidXBkYXRlVVZzIiwidXBkYXRlVmVydHMiLCJ1cGRhdGVUZXh0dXJlSWR4IiwidGV4dHVyZUlkeCIsIl90ZXh0dXJlSWR4IiwidmVydHMiLCJ2RGF0YXMiLCJpbmRleCIsInV2Iiwic3JjT2Zmc2V0IiwiZHN0T2Zmc2V0Iiwibm9kZSIsImN3Iiwid2lkdGgiLCJjaCIsImhlaWdodCIsImFwcHgiLCJhbmNob3JYIiwiYXBweSIsImFuY2hvclkiLCJsIiwiYiIsInIiLCJ0IiwidHJpbSIsImZyYW1lIiwic3ByaXRlRnJhbWUiLCJvdyIsIl9vcmlnaW5hbFNpemUiLCJvaCIsInJ3IiwiX3JlY3QiLCJyaCIsIm9mZnNldCIsIl9vZmZzZXQiLCJzY2FsZVgiLCJzY2FsZVkiLCJ0cmltTGVmdCIsIngiLCJ0cmltUmlnaHQiLCJ0cmltQm90dG9tIiwieSIsInRyaW1Ub3AiLCJsb2NhbCIsInVwZGF0ZVdvcmxkVmVydHMiLCJjb2xvciIsInVpbnRWZXJ0cyIsInVpbnRWRGF0YXMiLCJfdmFsIiwiQ0NfTkFUSVZFUkVOREVSRVIiLCJ2bCIsInZyIiwidmIiLCJ2dCIsInZlcnRleE9mZnNldCIsIm1hdHJpeCIsIl93b3JsZE1hdHJpeCIsIm1hdHJpeG0iLCJtIiwiYSIsImMiLCJkIiwidHgiLCJ0eSIsImp1c3RUcmFuc2xhdGUiLCJhbCIsImFyIiwiYmwiLCJiciIsImNiIiwiY3QiLCJkYiIsImR0IiwiZmlsbEJ1ZmZlcnMiLCJ3b3JsZE1hdERpcnR5IiwicmVuZGVyRGF0YSIsInZEYXRhIiwiaURhdGEiLCJidWZmZXIiLCJvZmZzZXRJbmZvIiwicmVxdWVzdCIsImJ5dGVPZmZzZXQiLCJ2YnVmIiwiX3ZEYXRhIiwic2V0Iiwic3ViYXJyYXkiLCJpYnVmIiwiX2lEYXRhIiwiaW5kaWNlT2Zmc2V0IiwidmVydGV4SWQiLCJDQ19URVNUIiwiX29yaWdpbmFsIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsIl90ZXh0dXJlIiwicGFja2FibGUiLCJwYWNrZWRGcmFtZSIsImluc2VydFNwcml0ZUZyYW1lIiwiX3NldER5bmFtaWNBdGxhc0ZyYW1lIiwibWF0ZXJpYWwiLCJfbWF0ZXJpYWxzIiwiZ2V0UHJvcGVydHkiLCJfdXBkYXRlTWF0ZXJpYWwiLCJBc3NlbWJsZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFJQSxHQUFHLEdBQUdDLEVBQUUsQ0FBQ0QsR0FBYixFQUNBOztBQUNBLElB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RSxFQUEyRTtBQUN2RSxVQUFJQyxXQUFXLEdBQUdqSixFQUFFLENBQUM4SSxtQkFBSCxDQUF1QkksaUJBQXZCLENBQXlDdkUsS0FBekMsQ0FBbEI7O0FBQ0EsVUFBSXNFLFdBQUosRUFBaUI7QUFDYnRFLFFBQUFBLEtBQUssQ0FBQ3dFLHFCQUFOLENBQTRCRixXQUE1QjtBQUNIO0FBQ0o7O0FBQ0QsUUFBSUcsUUFBUSxHQUFHckksSUFBSSxDQUFDc0ksVUFBTCxDQUFnQixDQUFoQixDQUFmO0FBQ0EsUUFBSSxDQUFDRCxRQUFMLEVBQWU7O0FBRWYsUUFBSUEsUUFBUSxDQUFDRSxXQUFULENBQXFCLFNBQXJCLE1BQW9DM0UsS0FBSyxDQUFDb0UsUUFBOUMsRUFBd0Q7QUFDcEQ7QUFDQWhJLE1BQUFBLElBQUksQ0FBQ2tDLFdBQUwsR0FBbUIsSUFBbkI7O0FBQ0FsQyxNQUFBQSxJQUFJLENBQUN3SSxlQUFMO0FBQ0g7QUFDSjs7OztTQXBKRCxlQUFxQjtBQUNqQixhQUFPLEtBQUs3SCxhQUFMLEdBQXFCLEtBQUtGLGFBQWpDO0FBQ0g7Ozs7RUFwSTZCeEIsRUFBRSxDQUFDd0oiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImxldCBnZnggPSBjYy5nZng7XHJcbi8vIOminOiJsuWOu+mZpCArIOeJqeS7tuWbvumbhuWQiOaJuVxyXG52YXIgdmZtdFBvc1V2SW5kZXggPSBuZXcgZ2Z4LlZlcnRleEZvcm1hdChbXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX1BPU0lUSU9OLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMiB9LFxyXG4gICAgeyBuYW1lOiBnZnguQVRUUl9VVjAsIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAyIH0sXHJcbiAgICB7IG5hbWU6IFwiYV90ZXh0dXJlX2lkeFwiLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMSB9LFxyXG5dKTtcclxuXHJcbi8vIOS7heeJqeS7tuWbvumbhuWQiOaJuVxyXG52YXIgdmZtdFBvc1V2Q29sb3JJbmRleCA9IG5ldyBnZnguVmVydGV4Rm9ybWF0KFtcclxuICAgIHsgbmFtZTogZ2Z4LkFUVFJfUE9TSVRJT04sIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAyIH0sXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX1VWMCwgdHlwZTogZ2Z4LkFUVFJfVFlQRV9GTE9BVDMyLCBudW06IDIgfSxcclxuICAgIHsgbmFtZTogXCJhX3RleHR1cmVfaWR4XCIsIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAxIH0sXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX0NPTE9SLCB0eXBlOiBnZnguQVRUUl9UWVBFX1VJTlQ4LCBudW06IDQsIG5vcm1hbGl6ZTogdHJ1ZSB9LFxyXG5dKTtcclxuXHJcbmV4cG9ydCBjbGFzcyBUbW9Bc3NlbWJsZXIgZXh0ZW5kcyBjYy5Bc3NlbWJsZXIge1xyXG4gICAgaW5pdChjb21wKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdChjb21wKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbm9Db2xvciA9IGNvbXAuaXNOb0NvbG9yKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb2xvciA9IHRoaXMuX25vQ29sb3IgPyB1bmRlZmluZWQgOiB0aGlzLnVwZGF0ZUNvbG9yRnVuYztcclxuXHJcbiAgICAgICAgdGhpcy51dk9mZnNldCA9IDI7XHJcbiAgICAgICAgdGhpcy5jb2xvck9mZnNldCA9IDU7XHJcbiAgICAgICAgdGhpcy50ZXh0dXJlSW5kZXhPZmZzZXQgPSA0O1xyXG4gICAgICAgIHRoaXMuZmxvYXRzUGVyVmVydCA9IHRoaXMuX25vQ29sb3IgPyA1IDogNjtcclxuXHJcbiAgICAgICAgdGhpcy5pbmRpY2VzQ291bnQgPSA2O1xyXG4gICAgICAgIHRoaXMudmVydGljZXNDb3VudCA9IDQ7XHJcblxyXG4gICAgICAgIHRoaXMuX3JlbmRlckRhdGEgPSBuZXcgY2MuUmVuZGVyRGF0YSgpO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlckRhdGEuaW5pdCh0aGlzKTtcclxuXHJcbiAgICAgICAgdGhpcy5pbml0TG9jYWwoKTtcclxuICAgICAgICB0aGlzLmluaXREYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdExvY2FsKCkge1xyXG4gICAgICAgIHRoaXMuX2xvY2FsID0gW107XHJcbiAgICAgICAgdGhpcy5fbG9jYWwubGVuZ3RoID0gNDtcclxuICAgIH1cclxuXHJcbiAgICBpbml0RGF0YSgpIHtcclxuICAgICAgICBsZXQgZGF0YSA9IHRoaXMuX3JlbmRlckRhdGE7XHJcbiAgICAgICAgZGF0YS5jcmVhdGVGbGV4RGF0YSgwLCB0aGlzLnZlcnRpY2VzQ291bnQsIHRoaXMuaW5kaWNlc0NvdW50LCB0aGlzLmdldFZmbXQoKSk7XHJcblxyXG4gICAgICAgIC8vIOWhq+WFhemhtueCuee0ouW8leS/oeaBr1xyXG4gICAgICAgIGxldCBpbmRpY2VzID0gZGF0YS5pRGF0YXNbMF07XHJcbiAgICAgICAgbGV0IGNvdW50ID0gaW5kaWNlcy5sZW5ndGggLyA2O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBpZHggPSAwOyBpIDwgY291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgdmVydGV4dElEID0gaSAqIDQ7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEO1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRCArIDE7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEICsgMjtcclxuICAgICAgICAgICAgaW5kaWNlc1tpZHgrK10gPSB2ZXJ0ZXh0SUQgKyAxO1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRCArIDM7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEICsgMjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QnVmZmVyKCkge1xyXG4gICAgICAgIHJldHVybiBjYy5yZW5kZXJlci5faGFuZGxlLmdldEJ1ZmZlcihcIm1lc2hcIiwgdGhpcy5nZXRWZm10KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFZmbXQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vQ29sb3IgPyB2Zm10UG9zVXZJbmRleCA6IHZmbXRQb3NVdkNvbG9ySW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUmVuZGVyRGF0YShzcHJpdGUpIHtcclxuICAgICAgICB0aGlzLnBhY2tUb0R5bmFtaWNBdGxhcyhzcHJpdGUsIHNwcml0ZS5fc3ByaXRlRnJhbWUpO1xyXG5cclxuICAgICAgICBpZiAoc3ByaXRlLl92ZXJ0c0RpcnR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVVZzKHNwcml0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmVydHMoc3ByaXRlKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0dXJlSWR4KHNwcml0ZSk7XHJcbiAgICAgICAgICAgIHNwcml0ZS5fdmVydHNEaXJ0eSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWhq+WFhXRleHR1cmVJbmRleOaVsOaNrlxyXG4gICAgICogQHBhcmFtIHtjYy5TcHJpdGV9IHNwcml0ZSBcclxuICAgICAqL1xyXG4gICAgdXBkYXRlVGV4dHVyZUlkeChzcHJpdGUpIHtcclxuICAgICAgICBsZXQgdGV4dHVyZUlkeCA9IHNwcml0ZS5fdGV4dHVyZUlkeDtcclxuICAgICAgICBsZXQgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuXHJcbiAgICAgICAgbGV0IHZlcnRpY2VzQ291bnQgPSB0aGlzLnZlcnRpY2VzQ291bnQ7XHJcbiAgICAgICAgbGV0IGZsb2F0c1BlclZlcnQgPSB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgbGV0IHRleHR1cmVJbmRleE9mZnNldCA9IHRoaXMudGV4dHVyZUluZGV4T2Zmc2V0O1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZlcnRpY2VzQ291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSBpICogZmxvYXRzUGVyVmVydCArIHRleHR1cmVJbmRleE9mZnNldDtcclxuICAgICAgICAgICAgdmVydHNbaW5kZXhdID0gdGV4dHVyZUlkeDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVVZzKHNwcml0ZSkge1xyXG4gICAgICAgIGxldCB1diA9IHNwcml0ZS5fc3ByaXRlRnJhbWUudXY7XHJcbiAgICAgICAgbGV0IHV2T2Zmc2V0ID0gdGhpcy51dk9mZnNldDtcclxuICAgICAgICBsZXQgZmxvYXRzUGVyVmVydCA9IHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgICAgICBsZXQgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgc3JjT2Zmc2V0ID0gaSAqIDI7XHJcbiAgICAgICAgICAgIGxldCBkc3RPZmZzZXQgPSBmbG9hdHNQZXJWZXJ0ICogaSArIHV2T2Zmc2V0O1xyXG4gICAgICAgICAgICB2ZXJ0c1tkc3RPZmZzZXRdID0gdXZbc3JjT2Zmc2V0XTtcclxuICAgICAgICAgICAgdmVydHNbZHN0T2Zmc2V0ICsgMV0gPSB1dltzcmNPZmZzZXQgKyAxXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVmVydHMoc3ByaXRlKSB7XHJcbiAgICAgICAgbGV0IG5vZGUgPSBzcHJpdGUubm9kZSxcclxuICAgICAgICAgICAgY3cgPSBub2RlLndpZHRoLCBjaCA9IG5vZGUuaGVpZ2h0LFxyXG4gICAgICAgICAgICBhcHB4ID0gbm9kZS5hbmNob3JYICogY3csIGFwcHkgPSBub2RlLmFuY2hvclkgKiBjaCxcclxuICAgICAgICAgICAgbCwgYiwgciwgdDtcclxuICAgICAgICBpZiAoc3ByaXRlLnRyaW0pIHtcclxuICAgICAgICAgICAgbCA9IC1hcHB4O1xyXG4gICAgICAgICAgICBiID0gLWFwcHk7XHJcbiAgICAgICAgICAgIHIgPSBjdyAtIGFwcHg7XHJcbiAgICAgICAgICAgIHQgPSBjaCAtIGFwcHk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgZnJhbWUgPSBzcHJpdGUuc3ByaXRlRnJhbWUsXHJcbiAgICAgICAgICAgICAgICBvdyA9IGZyYW1lLl9vcmlnaW5hbFNpemUud2lkdGgsIG9oID0gZnJhbWUuX29yaWdpbmFsU2l6ZS5oZWlnaHQsXHJcbiAgICAgICAgICAgICAgICBydyA9IGZyYW1lLl9yZWN0LndpZHRoLCByaCA9IGZyYW1lLl9yZWN0LmhlaWdodCxcclxuICAgICAgICAgICAgICAgIG9mZnNldCA9IGZyYW1lLl9vZmZzZXQsXHJcbiAgICAgICAgICAgICAgICBzY2FsZVggPSBjdyAvIG93LCBzY2FsZVkgPSBjaCAvIG9oO1xyXG4gICAgICAgICAgICBsZXQgdHJpbUxlZnQgPSBvZmZzZXQueCArIChvdyAtIHJ3KSAvIDI7XHJcbiAgICAgICAgICAgIGxldCB0cmltUmlnaHQgPSBvZmZzZXQueCAtIChvdyAtIHJ3KSAvIDI7XHJcbiAgICAgICAgICAgIGxldCB0cmltQm90dG9tID0gb2Zmc2V0LnkgKyAob2ggLSByaCkgLyAyO1xyXG4gICAgICAgICAgICBsZXQgdHJpbVRvcCA9IG9mZnNldC55IC0gKG9oIC0gcmgpIC8gMjtcclxuICAgICAgICAgICAgbCA9IHRyaW1MZWZ0ICogc2NhbGVYIC0gYXBweDtcclxuICAgICAgICAgICAgYiA9IHRyaW1Cb3R0b20gKiBzY2FsZVkgLSBhcHB5O1xyXG4gICAgICAgICAgICByID0gY3cgKyB0cmltUmlnaHQgKiBzY2FsZVggLSBhcHB4O1xyXG4gICAgICAgICAgICB0ID0gY2ggKyB0cmltVG9wICogc2NhbGVZIC0gYXBweTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBsb2NhbCA9IHRoaXMuX2xvY2FsO1xyXG4gICAgICAgIGxvY2FsWzBdID0gbDtcclxuICAgICAgICBsb2NhbFsxXSA9IGI7XHJcbiAgICAgICAgbG9jYWxbMl0gPSByO1xyXG4gICAgICAgIGxvY2FsWzNdID0gdDtcclxuICAgICAgICB0aGlzLnVwZGF0ZVdvcmxkVmVydHMoc3ByaXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmVydGljZXNGbG9hdHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmVydGljZXNDb3VudCAqIHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVDb2xvckZ1bmMoY29tcCwgY29sb3IpIHtcclxuICAgICAgICBsZXQgdWludFZlcnRzID0gdGhpcy5fcmVuZGVyRGF0YS51aW50VkRhdGFzWzBdO1xyXG4gICAgICAgIGlmICghdWludFZlcnRzKSByZXR1cm47XHJcbiAgICAgICAgY29sb3IgPSBjb2xvciAhPSBudWxsID8gY29sb3IgOiBjb21wLm5vZGUuY29sb3IuX3ZhbDtcclxuICAgICAgICBsZXQgZmxvYXRzUGVyVmVydCA9IHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgICAgICBsZXQgY29sb3JPZmZzZXQgPSB0aGlzLmNvbG9yT2Zmc2V0O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBjb2xvck9mZnNldCwgbCA9IHVpbnRWZXJ0cy5sZW5ndGg7IGkgPCBsOyBpICs9IGZsb2F0c1BlclZlcnQpIHtcclxuICAgICAgICAgICAgdWludFZlcnRzW2ldID0gY29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVdvcmxkVmVydHMoY29tcCkge1xyXG4gICAgICAgIGlmIChDQ19OQVRJVkVSRU5ERVJFUikge1xyXG4gICAgICAgICAgICAvLyDljp/nlJ/lubPlj7Dlhbzlrrnku6PnoIEg5aSN5Yi25LqOanNiLWVuZ2luZS5qc+S4reeahGNjLkFzc2VtYmxlcjJELnByb3RvdHlwZS51cGRhdGVXb3JsZFZlcnRzXHJcbiAgICAgICAgICAgIHZhciBsb2NhbCA9IHRoaXMuX2xvY2FsO1xyXG4gICAgICAgICAgICB2YXIgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuICAgICAgICAgICAgdmFyIHZsID0gbG9jYWxbMF0sXHJcbiAgICAgICAgICAgICAgICB2ciA9IGxvY2FsWzJdLFxyXG4gICAgICAgICAgICAgICAgdmIgPSBsb2NhbFsxXSxcclxuICAgICAgICAgICAgICAgIHZ0ID0gbG9jYWxbM107XHJcbiAgICAgICAgICAgIHZhciBmbG9hdHNQZXJWZXJ0ID0gdGhpcy5mbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICB2YXIgdmVydGV4T2Zmc2V0ID0gMDsgLy8gbGVmdCBib3R0b21cclxuXHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bDtcclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YjtcclxuICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7IC8vIHJpZ2h0IGJvdHRvbVxyXG5cclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZyO1xyXG4gICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZiO1xyXG4gICAgICAgICAgICB2ZXJ0ZXhPZmZzZXQgKz0gZmxvYXRzUGVyVmVydDsgLy8gbGVmdCB0b3BcclxuXHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bDtcclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2dDtcclxuICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7IC8vIHJpZ2h0IHRvcFxyXG5cclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZyO1xyXG4gICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZ0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBsb2NhbCA9IHRoaXMuX2xvY2FsO1xyXG4gICAgICAgICAgICBsZXQgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuXHJcbiAgICAgICAgICAgIGxldCBtYXRyaXggPSBjb21wLm5vZGUuX3dvcmxkTWF0cml4O1xyXG4gICAgICAgICAgICBsZXQgbWF0cml4bSA9IG1hdHJpeC5tLFxyXG4gICAgICAgICAgICAgICAgYSA9IG1hdHJpeG1bMF0sIGIgPSBtYXRyaXhtWzFdLCBjID0gbWF0cml4bVs0XSwgZCA9IG1hdHJpeG1bNV0sXHJcbiAgICAgICAgICAgICAgICB0eCA9IG1hdHJpeG1bMTJdLCB0eSA9IG1hdHJpeG1bMTNdO1xyXG5cclxuICAgICAgICAgICAgbGV0IHZsID0gbG9jYWxbMF0sIHZyID0gbG9jYWxbMl0sXHJcbiAgICAgICAgICAgICAgICB2YiA9IGxvY2FsWzFdLCB2dCA9IGxvY2FsWzNdO1xyXG5cclxuICAgICAgICAgICAgbGV0IGZsb2F0c1BlclZlcnQgPSB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgIGxldCB2ZXJ0ZXhPZmZzZXQgPSAwO1xyXG4gICAgICAgICAgICBsZXQganVzdFRyYW5zbGF0ZSA9IGEgPT09IDEgJiYgYiA9PT0gMCAmJiBjID09PSAwICYmIGQgPT09IDE7XHJcblxyXG4gICAgICAgICAgICBpZiAoanVzdFRyYW5zbGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gbGVmdCBib3R0b21cclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bCArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyByaWdodCBib3R0b21cclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2ciArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBsZWZ0IHRvcFxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZsICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZ0ICsgdHk7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0ZXhPZmZzZXQgKz0gZmxvYXRzUGVyVmVydDtcclxuICAgICAgICAgICAgICAgIC8vIHJpZ2h0IHRvcFxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZyICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZ0ICsgdHk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgYWwgPSBhICogdmwsIGFyID0gYSAqIHZyLFxyXG4gICAgICAgICAgICAgICAgICAgIGJsID0gYiAqIHZsLCBiciA9IGIgKiB2cixcclxuICAgICAgICAgICAgICAgICAgICBjYiA9IGMgKiB2YiwgY3QgPSBjICogdnQsXHJcbiAgICAgICAgICAgICAgICAgICAgZGIgPSBkICogdmIsIGR0ID0gZCAqIHZ0O1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIGxlZnQgYm90dG9tXHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gYWwgKyBjYiArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSBibCArIGRiICsgdHk7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0ZXhPZmZzZXQgKz0gZmxvYXRzUGVyVmVydDtcclxuICAgICAgICAgICAgICAgIC8vIHJpZ2h0IGJvdHRvbVxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IGFyICsgY2IgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gYnIgKyBkYiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBsZWZ0IHRvcFxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IGFsICsgY3QgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gYmwgKyBkdCArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyByaWdodCB0b3BcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSBhciArIGN0ICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IGJyICsgZHQgKyB0eTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmaWxsQnVmZmVycyhjb21wLCByZW5kZXJlcikge1xyXG4gICAgICAgIGlmIChyZW5kZXJlci53b3JsZE1hdERpcnR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlV29ybGRWZXJ0cyhjb21wKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCByZW5kZXJEYXRhID0gdGhpcy5fcmVuZGVyRGF0YTtcclxuICAgICAgICBsZXQgdkRhdGEgPSByZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuICAgICAgICBsZXQgaURhdGEgPSByZW5kZXJEYXRhLmlEYXRhc1swXTtcclxuXHJcbiAgICAgICAgbGV0IGJ1ZmZlciA9IHRoaXMuZ2V0QnVmZmVyKHJlbmRlcmVyKTtcclxuICAgICAgICBsZXQgb2Zmc2V0SW5mbyA9IGJ1ZmZlci5yZXF1ZXN0KHRoaXMudmVydGljZXNDb3VudCwgdGhpcy5pbmRpY2VzQ291bnQpO1xyXG5cclxuICAgICAgICAvLyBidWZmZXIgZGF0YSBtYXkgYmUgcmVhbGxvYywgbmVlZCBnZXQgcmVmZXJlbmNlIGFmdGVyIHJlcXVlc3QuXHJcblxyXG4gICAgICAgIC8vIGZpbGwgdmVydGljZXNcclxuICAgICAgICBsZXQgdmVydGV4T2Zmc2V0ID0gb2Zmc2V0SW5mby5ieXRlT2Zmc2V0ID4+IDIsXHJcbiAgICAgICAgICAgIHZidWYgPSBidWZmZXIuX3ZEYXRhO1xyXG5cclxuICAgICAgICBpZiAodkRhdGEubGVuZ3RoICsgdmVydGV4T2Zmc2V0ID4gdmJ1Zi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdmJ1Zi5zZXQodkRhdGEuc3ViYXJyYXkoMCwgdmJ1Zi5sZW5ndGggLSB2ZXJ0ZXhPZmZzZXQpLCB2ZXJ0ZXhPZmZzZXQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZidWYuc2V0KHZEYXRhLCB2ZXJ0ZXhPZmZzZXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gZmlsbCBpbmRpY2VzXHJcbiAgICAgICAgbGV0IGlidWYgPSBidWZmZXIuX2lEYXRhLFxyXG4gICAgICAgICAgICBpbmRpY2VPZmZzZXQgPSBvZmZzZXRJbmZvLmluZGljZU9mZnNldCxcclxuICAgICAgICAgICAgdmVydGV4SWQgPSBvZmZzZXRJbmZvLnZlcnRleE9mZnNldDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbCA9IGlEYXRhLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBpYnVmW2luZGljZU9mZnNldCsrXSA9IHZlcnRleElkICsgaURhdGFbaV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHBhY2tUb0R5bmFtaWNBdGxhcyhjb21wLCBmcmFtZSkge1xyXG4gICAgICAgIGlmIChDQ19URVNUKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICghZnJhbWUuX29yaWdpbmFsICYmIGNjLmR5bmFtaWNBdGxhc01hbmFnZXIgJiYgZnJhbWUuX3RleHR1cmUucGFja2FibGUpIHtcclxuICAgICAgICAgICAgbGV0IHBhY2tlZEZyYW1lID0gY2MuZHluYW1pY0F0bGFzTWFuYWdlci5pbnNlcnRTcHJpdGVGcmFtZShmcmFtZSk7XHJcbiAgICAgICAgICAgIGlmIChwYWNrZWRGcmFtZSkge1xyXG4gICAgICAgICAgICAgICAgZnJhbWUuX3NldER5bmFtaWNBdGxhc0ZyYW1lKHBhY2tlZEZyYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbWF0ZXJpYWwgPSBjb21wLl9tYXRlcmlhbHNbMF07XHJcbiAgICAgICAgaWYgKCFtYXRlcmlhbCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAobWF0ZXJpYWwuZ2V0UHJvcGVydHkoJ3RleHR1cmUnKSAhPT0gZnJhbWUuX3RleHR1cmUpIHtcclxuICAgICAgICAgICAgLy8gdGV4dHVyZSB3YXMgcGFja2VkIHRvIGR5bmFtaWMgYXRsYXMsIHNob3VsZCB1cGRhdGUgdXZzXHJcbiAgICAgICAgICAgIGNvbXAuX3ZlcnRzRGlydHkgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb21wLl91cGRhdGVNYXRlcmlhbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENyeXB0b1xcSHR0cFV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ00sSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFDMUMsNkNBQWdELENBQUUsV0FBVztBQUU3RCxJQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQztBQUMxQywwQ0FBMEM7QUFFMUM7SUFBc0MsNEJBQVk7SUFBbEQ7O0lBR0EsQ0FBQztJQUhvQixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBRzVCO0lBQUQsZUFBQztDQUhELEFBR0MsQ0FIcUMsRUFBRSxDQUFDLFNBQVMsR0FHakQ7a0JBSG9CLFFBQVE7QUFNN0IsUUFBUTtBQUNSLGdEQUFnRDtBQUNoRCxJQUFNLE1BQU0sR0FBRztJQUNiLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLEVBQUUsRUFBQyxVQUFVO0NBQ2QsQ0FBQztBQVFGO0lBQUE7UUFDSSxpQ0FBaUM7UUFDekIsV0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQTJFckMsQ0FBQztJQTFFVywyQkFBUyxHQUFqQjtRQUNJLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsWUFBWTtJQUNaLDhCQUFZLEdBQVosVUFBYSxPQUFlLEVBQUUsTUFBZTtRQUMzQyxJQUFHLENBQUMsT0FBTyxFQUFFO1lBQ1gsT0FBTyxPQUFPLENBQUE7U0FDZjtRQUNELElBQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJ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QUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVELElBQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3BELEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNmLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFDdkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVztTQUNwQyxDQUFDLENBQUM7UUFDSCxJQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsT0FBTyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUNMLGNBQUM7QUFBRCxDQTdFQSxBQTZFQyxJQUFBO0FBQ0QsSUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuaW1wb3J0IENyeXB0b0pTID0gcmVxdWlyZSgnLi9jcnlwdG8tanMubWluLmpzJyk7ICAvL+W8leeUqEFFU+a6kOeggWpzXHJcblxyXG5jb25zdCBCQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuc3Bhcmt1cy5jblwiO1xyXG4vL+WPqui0n+i0o+e9kee7nOaOpeWPoyDmrKHnsbvlj6rotJ/otKPlkozlkI7nq6/kuqTkupLvvIzkuI3otJ/otKPlpITnkIbmlbDmja4g5pWw5o2u5aSE55CG5ZyoR2FtZVRvb2xcclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSHR0cFV0aWwgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgLy/mjpLooYzmppxcclxuXHJcbn1cclxuXHJcblxyXG4vLyDlk43lupTmi6bmiKrlmahcclxuLy8gUnEuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLnVzZShyZXNwb25zZUhhbmRsZXIpXHJcbmNvbnN0IGNvbmZpZyA9IHtcclxuICBnYW1lSWQ6IFwiMTAwMDEyXCIsXHJcbiAgc2VjcmV0S2V5OiBcIm9ubmZQS0pXXCIsXHJcbiAgRUs6XCJodWkyMzElMVwiXHJcbn07XHJcblxyXG5pbnRlcmZhY2UgQ3J5cG90b1R5cGUge1xyXG4gIGVuY3J5cHRCeURFUzogYW55XHJcbiAgZGVjcnlwdEJ5REVTOiBhbnlcclxuICBobWFjU2hhMjU2OiBhbnlcclxufVxyXG4gXHJcbmNsYXNzIENyeXBvdG8gaW1wbGVtZW50cyBDcnlwb3RvVHlwZSB7XHJcbiAgICAvLyDliqDlr4bnmoTlkJHmmI7lgLzvvIzoh6rlt7HmoLnmja7pobnnm67lrp7pmYXmg4XlhrXlrprvvIzpnIDopoHot5/lkI7nq6/lvIDlj5Hkv53mjIHkuIDoh7RcclxuICAgIHByaXZhdGUga2V5SGV4ID0gdGhpcy5nZXRIZXRLZXkoKVxyXG4gICAgcHJpdmF0ZSBnZXRIZXRLZXkoKSB7XHJcbiAgICAgICAgcmV0dXJuIENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKGNvbmZpZy5FSyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIERFU+WKoOWvhiAqL1xyXG4gICAgZW5jcnlwdEJ5REVTKG1lc3NhZ2U6IHN0cmluZywgc2VjcmV0Pzogc3RyaW5nKSB7XHJcbiAgICAgIGlmKCFtZXNzYWdlKSB7XHJcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBrZXkgPSBzZWNyZXQ/IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHNlY3JldCk6IHRoaXMua2V5SGV4XHJcbiAgICAgIGNvbnN0IGVuY3J5cHRlZCA9IENyeXB0b0pTLkRFUy5lbmNyeXB0KG1lc3NhZ2UsIGtleSwge1xyXG4gICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuRUNCLFxyXG4gICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGVuY3J5cHRlZC50b1N0cmluZygpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIERFU+ino+WvhiAqL1xyXG4gICAgZGVjcnlwdEJ5REVTKG1lc3NhZ2U6IHN0cmluZywgc2VjcmV0Pzogc3RyaW5nKSB7XHJcbiAgICAgIGNvbnN0IGtleSA9IHNlY3JldD8gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2Uoc2VjcmV0KTogdGhpcy5rZXlIZXhcclxuXHJcbiAgICAgIGNvbnN0IGRlY3J5cHRlZCA9IENyeXB0b0pTLkRFUy5kZWNyeXB0KHtcclxuICAgICAgICBjaXBoZXJ0ZXh0OiBDcnlwdG9KUy5lbmMuQmFzZTY0LnBhcnNlKG1lc3NhZ2UpXHJcbiAgICAgIH0sIGtleSwge1xyXG4gICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuRUNCLFxyXG4gICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xyXG4gICAgICB9KVxyXG5cclxuICAgICAgcmV0dXJuIGRlY3J5cHRlZC50b1N0cmluZyhDcnlwdG9KUy5lbmMuVXRmOClcclxuICAgIH1cclxuXHJcbiAgICAvKiogaG1hY1NIQTI1NuWKoOWvhiAqL1xyXG4gICAgaG1hY1NoYTI1NihtZXNzYWdlOiBzdHJpbmcsIHNlY3JldD86IHN0cmluZykge1xyXG4gICAgICBjb25zdCBrZXlIZXggPSBzZWNyZXQ/IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHNlY3JldCk6IHRoaXMua2V5SGV4XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBoYXNoID0gQ3J5cHRvSlMuSG1hY1NIQTI1NihtZXNzYWdlLCBrZXlIZXgpO1xyXG4gICAgICByZXR1cm4gaGFzaC50b1N0cmluZygpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIGhtYWNTSEEyNTbpqozor4EgKi9cclxuICAgIHZlcmlmeUhtYWNTaGEyNTYobWVzc2FnZTogc3RyaW5nLCBzaWduYXR1cmU6IHN0cmluZykge1xyXG4gICAgICBjb25zdCBoYXNoID0gQ3J5cHRvSlMuSG1hY1NIQTI1NihtZXNzYWdlLCB0aGlzLmtleUhleCk7XHJcbiAgICAgIHJldHVybiBoYXNoLnRvU3RyaW5nKCkgPT09IHNpZ25hdHVyZVxyXG4gICAgfVxyXG4gXHJcbiAgICAvKiogQ0JD5Yqg5a+GICovXHJcbiAgICBlbmNyeXB0Q0JDKHdvcmQ6IHN0cmluZykge1xyXG4gICAgICAgIGlmICghd29yZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gd29yZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgc3JjcyA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHdvcmQpO1xyXG4gICAgICAgIGNvbnN0IGVuY3J5cHRlZCA9IENyeXB0b0pTLkFFUy5lbmNyeXB0KHNyY3MsIHRoaXMua2V5SGV4LCB7XHJcbiAgICAgICAgICAgIGl2OiB0aGlzLmtleUhleCxcclxuICAgICAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXHJcbiAgICAgICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5aZXJvUGFkZGluZ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBlbmNyeXB0ZWQudG9TdHJpbmcoKTsgXHJcbiAgICB9XHJcbiBcclxuICAgIC8qKiBDQkPop6Plr4YgKi9cclxuICAgIGRlY3J5cHRDQkMod29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCF3b3JkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB3b3JkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBlbmNyeXB0ZWRIZXhTdHIgPSBDcnlwdG9KUy5lbmMuSGV4LnBhcnNlKHdvcmQpO1xyXG4gICAgICAgIGNvbnN0IHNyY3MgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeShlbmNyeXB0ZWRIZXhTdHIpO1xyXG4gICAgICAgIGNvbnN0IGRlY3J5cHQgPSBDcnlwdG9KUy5BRVMuZGVjcnlwdChzcmNzLCB0aGlzLmtleUhleCwge1xyXG4gICAgICAgICAgICBpdjogdGhpcy5rZXlIZXgsXHJcbiAgICAgICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLFxyXG4gICAgICAgICAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuWmVyb1BhZGRpbmdcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBkZWNyeXB0ZWRTdHIgPSBkZWNyeXB0LnRvU3RyaW5nKENyeXB0b0pTLmVuYy5VdGY4KTtcclxuICAgICAgICByZXR1cm4gZGVjcnlwdGVkU3RyLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbn1cclxuY29uc3QgZnhDcnkgPSBuZXcgQ3J5cG90bygpO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/tiledmap-optimize-resource/Script/TmoTiledLayer.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'd60cfrGbXBLBbplLoT7TBn7', 'TmoTiledLayer'); +// Script/TmoTiledLayer.js + +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; + +// Learn cc.Class: +// - https://docs.cocos.com/creator/manual/en/scripting/class.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var _mat4_temp = cc.mat4(); + +var _vec2_temp = cc.v2(); + +var _vec2_temp2 = cc.v2(); + +var _default = cc.Class({ + "extends": cc.TiledLayer, + // 此处修改 增加firstTmxLayer参数 + _init: function _init(layerInfo, mapInfo, tilesets, textures, texGrids, tiledMap, firstTmxLayer) { + // 修改结束 + this._cullingDirty = true; + this._layerInfo = layerInfo; + this._mapInfo = mapInfo; // 此处修改 保存firstTmxLayer参数 + + this._firstTmxLayer = firstTmxLayer; + this._tiledMap = tiledMap; // 修改结束 + + var size = layerInfo._layerSize; // layerInfo + + this._layerName = layerInfo.name; + this._tiles = layerInfo._tiles; + this._properties = layerInfo.properties; + this._layerSize = size; + this._minGID = layerInfo._minGID; + this._maxGID = layerInfo._maxGID; + this._opacity = layerInfo._opacity; + this._renderOrder = mapInfo.renderOrder; + this._staggerAxis = mapInfo.getStaggerAxis(); + this._staggerIndex = mapInfo.getStaggerIndex(); + this._hexSideLength = mapInfo.getHexSideLength(); + this._animations = mapInfo.getTileAnimations(); // tilesets + + this._tilesets = tilesets; // textures + + this._textures = textures; // grid texture + + this._texGrids = texGrids; // mapInfo + + this._layerOrientation = mapInfo.orientation; + this._mapTileSize = mapInfo.getTileSize(); + var maptw = this._mapTileSize.width; + var mapth = this._mapTileSize.height; + var layerW = this._layerSize.width; + var layerH = this._layerSize.height; + + if (this._layerOrientation === cc.TiledMap.Orientation.HEX) { + // handle hex map + var TiledMap = cc.TiledMap; + var StaggerAxis = TiledMap.StaggerAxis; + var StaggerIndex = TiledMap.StaggerIndex; + var width = 0, + height = 0; + this._odd_even = this._staggerIndex === StaggerIndex.STAGGERINDEX_ODD ? 1 : -1; + + if (this._staggerAxis === StaggerAxis.STAGGERAXIS_X) { + this._diffX1 = (maptw - this._hexSideLength) / 2; + this._diffY1 = 0; + height = mapth * (layerH + 0.5); + width = (maptw + this._hexSideLength) * Math.floor(layerW / 2) + maptw * (layerW % 2); + } else { + this._diffX1 = 0; + this._diffY1 = (mapth - this._hexSideLength) / 2; + width = maptw * (layerW + 0.5); + height = (mapth + this._hexSideLength) * Math.floor(layerH / 2) + mapth * (layerH % 2); + } + + this.node.setContentSize(width, height); + } else if (this._layerOrientation === cc.TiledMap.Orientation.ISO) { + var wh = layerW + layerH; + this.node.setContentSize(maptw * 0.5 * wh, mapth * 0.5 * wh); + } else { + this.node.setContentSize(layerW * maptw, layerH * mapth); + } // offset (after layer orientation is set); + + + this._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y); + this._useAutomaticVertexZ = false; + this._vertexZvalue = 0; + + this._syncAnchorPoint(); + + this._prepareToRender(); + }, + _updateCulling: function _updateCulling() { + if (CC_EDITOR) { + this.enableCulling(false); + } else if (this._enableCulling) { + // 此处修改 若不为首个layer 直接复用firstLayer的结果 + // this._firstTmxLayer不为空时 表示当前layer不是首个layer + var firstTmxLayer = this._firstTmxLayer; + + if (!!firstTmxLayer) { + this._cullingRect = firstTmxLayer._cullingRect; + this._cullingDirty = firstTmxLayer._cacheCullingDirty; + return; + } // 修改结束 + + + this.node._updateWorldMatrix(); + + cc.Mat4.invert(_mat4_temp, this.node._worldMatrix); + var rect = cc.visibleRect; + var camera = cc.Camera.findCamera(this.node); + + if (camera) { + _vec2_temp.x = 0; + _vec2_temp.y = 0; + _vec2_temp2.x = _vec2_temp.x + rect.width; + _vec2_temp2.y = _vec2_temp.y + rect.height; + camera.getScreenToWorldPoint(_vec2_temp, _vec2_temp); + camera.getScreenToWorldPoint(_vec2_temp2, _vec2_temp2); + cc.Vec2.transformMat4(_vec2_temp, _vec2_temp, _mat4_temp); + cc.Vec2.transformMat4(_vec2_temp2, _vec2_temp2, _mat4_temp); + + this._updateViewPort(_vec2_temp.x, _vec2_temp.y, _vec2_temp2.x - _vec2_temp.x, _vec2_temp2.y - _vec2_temp.y); // 此处修改 若为首个layer 缓存_cullingDirty。 + // _cullingDirty会在填充渲染数据后被改为false 所以需要缓存这里的结果 + + + if (!firstTmxLayer) { + this._cacheCullingDirty = this._cullingDirty; + } // 修改结束 + + } + } + }, + _traverseAllGrid: function _traverseAllGrid() { + var tiles = this._tiles; + var texGrids = this._texGrids; + var tilesetIndexArr = this._tilesetIndexArr; + var tilesetIndexToArrIndex = this._tilesetIndexToArrIndex = {}; + var TiledMap = cc.TiledMap; + var TileFlag = TiledMap.TileFlag; + var FLIPPED_MASK = TileFlag.FLIPPED_MASK; + + var singleTexture = this._tiledMap.isSingleTexture(); + + tilesetIndexArr.length = 0; + + for (var i = 0; i < tiles.length; i++) { + var gid = tiles[i]; + if (gid === 0) continue; + gid = (gid & FLIPPED_MASK) >>> 0; + var grid = texGrids[gid]; + + if (!grid) { + cc.error("CCTiledLayer:_traverseAllGrid grid is null, gid is:", gid); + continue; + } + + var tilesetIdx = grid.texId; + if (tilesetIndexToArrIndex[tilesetIdx] !== undefined) continue; + tilesetIndexToArrIndex[tilesetIdx] = tilesetIndexArr.length; + tilesetIndexArr.push(tilesetIdx); // 此处修改 当只有一个图集时 可以直接停止遍历 + + if (singleTexture) { + break; + } // 修改结束 + + } + } +}); + +exports["default"] = _default; +module.exports = exports["default"]; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vVGlsZWRMYXllci5qcyJdLCJuYW1lcyI6WyJfbWF0NF90ZW1wIiwiY2MiLCJtYXQ0IiwiX3ZlYzJfdGVtcCIsInYyIiwiX3ZlYzJfdGVtcDIiLCJDbGFzcyIsIlRpbGVkTGF5ZXIiLCJfaW5pdCIsImxheWVySW5mbyIsIm1hcEluZm8iLCJ0aWxlc2V0cyIsInRleHR1cmVzIiwidGV4R3JpZHMiLCJ0aWxlZE1hcCIsImZpcnN0VG14TGF5ZXIiLCJfY3VsbGluZ0RpcnR5IiwiX2xheWVySW5mbyIsIl9tYXBJbmZvIiwiX2ZpcnN0VG14TGF5ZXIiLCJfdGlsZWRNYXAiLCJzaXplIiwiX2xheWVyU2l6ZSIsIl9sYXllck5hbWUiLCJuYW1lIiwiX3RpbGVzIiwiX3Byb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwiX21pbkdJRCIsIl9tYXhHSUQiLCJfb3BhY2l0eSIsIl9yZW5kZXJPcmRlciIsInJlbmRlck9yZGVyIiwiX3N0YWdnZXJBeGlzIiwiZ2V0U3RhZ2dlckF4aXMiLCJfc3RhZ2dlckluZGV4IiwiZ2V0U3RhZ2dlckluZGV4IiwiX2hleFNpZGVMZW5ndGgiLCJnZXRIZXhTaWRlTGVuZ3RoIiwiX2FuaW1hdGlvbnMiLCJnZXRUaWxlQW5pbWF0aW9ucyIsIl90aWxlc2V0cyIsIl90ZXh0dXJlcyIsIl90ZXhHcmlkcyIsIl9sYXllck9yaWVudGF0aW9uIiwib3JpZW50YXRpb24iLCJfbWFwVGlsZVNpemUiLCJnZXRUaWxlU2l6ZSIsIm1hcHR3Iiwid2lkdGgiLCJtYXB0aCIsImhlaWdodCIsImxheWVyVyIsImxheWVySCIsIlRpbGVkTWFwIiwiT3JpZW50YXRpb24iLCJIRVgiLCJTdGFnZ2VyQXhpcyIsIlN0YWdnZXJJbmRleCIsIl9vZGRfZXZlbiIsIlNUQUdHRVJJTkRFWF9PREQiLCJTVEFHR0VSQVhJU19YIiwiX2RpZmZYMSIsIl9kaWZmWTEiLCJNYXRoIiwiZmxvb3IiLCJub2RlIiwic2V0Q29udGVudFNpemUiLCJJU08iLCJ3aCIsIl9vZmZzZXQiLCJvZmZzZXQiLCJ4IiwieSIsIl91c2VBdXRvbWF0aWNWZXJ0ZXhaIiwiX3ZlcnRleFp2YWx1ZSIsIl9zeW5jQW5jaG9yUG9pbnQiLCJfcHJlcGFyZVRvUmVuZGVyIiwiX3VwZGF0ZUN1bGxpbmciLCJDQ19FRElUT1IiLCJlbmFibGVDdWxsaW5nIiwiX2VuYWJsZUN1bGxpbmciLCJfY3VsbGluZ1JlY3QiLCJfY2FjaGVDdWxsaW5nRGlydHkiLCJfdXBkYXRlV29ybGRNYXRyaXgiLCJNYXQ0IiwiaW52ZXJ0IiwiX3dvcmxkTWF0cml4IiwicmVjdCIsInZpc2libGVSZWN0IiwiY2FtZXJhIiwiQ2FtZXJhIiwiZmluZENhbWVyYSIsImdldFNjcmVlblRvV29ybGRQb2ludCIsIlZlYzIiLCJ0cmFuc2Zvcm1NYXQ0IiwiX3VwZGF0ZVZpZXdQb3J0IiwiX3RyYXZlcnNlQWxsR3JpZCIsInRpbGVzIiwidGlsZXNldEluZGV4QXJyIiwiX3RpbGVzZXRJbmRleEFyciIsInRpbGVzZXRJbmRleFRvQXJySW5kZXgiLCJfdGlsZXNldEluZGV4VG9BcnJJbmRleCIsIlRpbGVGbGFnIiwiRkxJUFBFRF9NQVNLIiwic2luZ2xlVGV4dHVyZSIsImlzU2luZ2xlVGV4dHVyZSIsImxlbmd0aCIsImkiLCJnaWQiLCJncmlkIiwiZXJyb3IiLCJ0aWxlc2V0SWR4IiwidGV4SWQiLCJ1bmRlZmluZWQiLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLFVBQVUsR0FBR0MsRUFBRSxDQUFDQyxJQUFILEVBQWpCOztBQUNBLElBQUlDLFVBQVUsR0FBR0YsRUFBRSxDQUFDRyxFQUFILEVBQWpCOztBQUNBLElBQUlDLFdBQVcsR0FBR0osRUFBRSxDQUFDRyxFQUFILEVBQWxCOztlQUVlSCxFQUFFLENBQUNLLEtBQUgsQ0FBUztBQUNwQixhQUFTTCxFQUFFLENB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akQsUUFBUSxDQUFDaUQsUUFBMUI7QUFDQSxRQUFNQyxZQUFZLEdBQUdELFFBQVEsQ0FBQ0MsWUFBOUI7O0FBRUEsUUFBSUMsYUFBYSxHQUFHLEtBQUtyRixTQUFMLENBQWVzRixlQUFmLEVBQXBCOztBQUVBUCxJQUFBQSxlQUFlLENBQUNRLE1BQWhCLEdBQXlCLENBQXpCOztBQUNBLFNBQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR1YsS0FBSyxDQUFDUyxNQUExQixFQUFrQ0MsQ0FBQyxFQUFuQyxFQUF1QztBQUNuQyxVQUFJQyxHQUFHLEdBQUdYLEtBQUssQ0FBQ1UsQ0FBRCxDQUFmO0FBQ0EsVUFBSUMsR0FBRyxLQUFLLENBQVosRUFBZTtBQUNmQSxNQUFBQSxHQUFHLEdBQUksQ0FBQ0EsR0FBRyxHQUFHTCxZQUFQLE1BQXlCLENBQWhDO0FBQ0EsVUFBSU0sSUFBSSxHQUFHakcsUUFBUSxDQUFDZ0csR0FBRCxDQUFuQjs7QUFDQSxVQUFJLENBQUNDLElBQUwsRUFBVztBQUNQN0csUUFBQUEsRUFBRSxDQUFDOEcsS0FBSCxDQUFTLHFEQUFULEVBQWdFRixHQUFoRTtBQUNBO0FBQ0g7O0FBQ0QsVUFBSUcsVUFBVSxHQUFHRixJQUFJLENBQUNHLEtBQXRCO0FBQ0EsVUFBSVosc0JBQXNCLENBQUNXLFVBQUQsQ0FBdEIsS0FBdUNFLFNBQTNDLEVBQXNEO0FBQ3REYixNQUFBQSxzQkFBc0IsQ0FBQ1csVUFBRCxDQUF0QixHQUFxQ2IsZUFBZSxDQUFDUSxNQUFyRDtBQUNBUixNQUFBQSxlQUFlLENBQUNnQixJQUFoQixDQUFxQkgsVUFBckIsRUFabUMsQ0FjbkM7O0FBQ0EsVUFBSVAsYUFBSixFQUFtQjtBQUNmO0FBQ0gsT0FqQmtDLENBa0JuQzs7QUFDSDtBQUNKO0FBdkptQixDQUFUIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBjYy5DbGFzczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvY2xhc3MuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmxldCBfbWF0NF90ZW1wID0gY2MubWF0NCgpO1xyXG5sZXQgX3ZlYzJfdGVtcCA9IGNjLnYyKCk7XHJcbmxldCBfdmVjMl90ZW1wMiA9IGNjLnYyKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5UaWxlZExheWVyLFxyXG5cclxuICAgIC8vIOatpOWkhOS/ruaUuSDlop7liqBmaXJzdFRteExheWVy5Y+C5pWwXHJcbiAgICBfaW5pdChsYXllckluZm8sIG1hcEluZm8sIHRpbGVzZXRzLCB0ZXh0dXJlcywgdGV4R3JpZHMsIHRpbGVkTWFwLCBmaXJzdFRteExheWVyKSB7XHJcbiAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgdGhpcy5fY3VsbGluZ0RpcnR5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9sYXllckluZm8gPSBsYXllckluZm87XHJcbiAgICAgICAgdGhpcy5fbWFwSW5mbyA9IG1hcEluZm87XHJcbiAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOS/neWtmGZpcnN0VG14TGF5ZXLlj4LmlbBcclxuICAgICAgICB0aGlzLl9maXJzdFRteExheWVyID0gZmlyc3RUbXhMYXllcjtcclxuICAgICAgICB0aGlzLl90aWxlZE1hcCA9IHRpbGVkTWFwO1xyXG4gICAgICAgIC8vIOS/ruaUuee7k+adn1xyXG5cclxuICAgICAgICBsZXQgc2l6ZSA9IGxheWVySW5mby5fbGF5ZXJTaXplO1xyXG5cclxuICAgICAgICAvLyBsYXllckluZm9cclxuICAgICAgICB0aGlzLl9sYXllck5hbWUgPSBsYXllckluZm8ubmFtZTtcclxuICAgICAgICB0aGlzLl90aWxlcyA9IGxheWVySW5mby5fdGlsZXM7XHJcbiAgICAgICAgdGhpcy5fcHJvcGVydGllcyA9IGxheWVySW5mby5wcm9wZXJ0aWVzO1xyXG4gICAgICAgIHRoaXMuX2xheWVyU2l6ZSA9IHNpemU7XHJcbiAgICAgICAgdGhpcy5fbWluR0lEID0gbGF5ZXJJbmZvLl9taW5HSUQ7XHJcbiAgICAgICAgdGhpcy5fbWF4R0lEID0gbGF5ZXJJbmZvLl9tYXhHSUQ7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IGxheWVySW5mby5fb3BhY2l0eTtcclxuICAgICAgICB0aGlzLl9yZW5kZXJPcmRlciA9IG1hcEluZm8ucmVuZGVyT3JkZXI7XHJcbiAgICAgICAgdGhpcy5fc3RhZ2dlckF4aXMgPSBtYXBJbmZvLmdldFN0YWdnZXJBeGlzKCk7XHJcbiAgICAgICAgdGhpcy5fc3RhZ2dlckluZGV4ID0gbWFwSW5mby5nZXRTdGFnZ2VySW5kZXgoKTtcclxuICAgICAgICB0aGlzLl9oZXhTaWRlTGVuZ3RoID0gbWFwSW5mby5nZXRIZXhTaWRlTGVuZ3RoKCk7XHJcbiAgICAgICAgdGhpcy5fYW5pbWF0aW9ucyA9IG1hcEluZm8uZ2V0VGlsZUFuaW1hdGlvbnMoKTtcclxuXHJcbiAgICAgICAgLy8gdGlsZXNldHNcclxuICAgICAgICB0aGlzLl90aWxlc2V0cyA9IHRpbGVzZXRzO1xyXG4gICAgICAgIC8vIHRleHR1cmVzXHJcbiAgICAgICAgdGhpcy5fdGV4dHVyZXMgPSB0ZXh0dXJlcztcclxuICAgICAgICAvLyBncmlkIHRleHR1cmVcclxuICAgICAgICB0aGlzLl90ZXhHcmlkcyA9IHRleEdyaWRzO1xyXG5cclxuICAgICAgICAvLyBtYXBJbmZvXHJcbiAgICAgICAgdGhpcy5fbGF5ZXJPcmllbnRhdGlvbiA9IG1hcEluZm8ub3JpZW50YXRpb247XHJcbiAgICAgICAgdGhpcy5fbWFwVGlsZVNpemUgPSBtYXBJbmZvLmdldFRpbGVTaXplKCk7XHJcblxyXG4gICAgICAgIGxldCBtYXB0dyA9IHRoaXMuX21hcFRpbGVTaXplLndpZHRoO1xyXG4gICAgICAgIGxldCBtYXB0aCA9IHRoaXMuX21hcFRpbGVTaXplLmhlaWdodDtcclxuICAgICAgICBsZXQgbGF5ZXJXID0gdGhpcy5fbGF5ZXJTaXplLndpZHRoO1xyXG4gICAgICAgIGxldCBsYXllckggPSB0aGlzLl9sYXllclNpemUuaGVpZ2h0O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fbGF5ZXJPcmllbnRhdGlvbiA9PT0gY2MuVGlsZWRNYXAuT3JpZW50YXRpb24uSEVYKSB7XHJcbiAgICAgICAgICAgIC8vIGhhbmRsZSBoZXggbWFwXHJcbiAgICAgICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgICAgIGNvbnN0IFN0YWdnZXJBeGlzID0gVGlsZWRNYXAuU3RhZ2dlckF4aXM7XHJcbiAgICAgICAgICAgIGNvbnN0IFN0YWdnZXJJbmRleCA9IFRpbGVkTWFwLlN0YWdnZXJJbmRleDtcclxuICAgICAgICAgICAgbGV0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX29kZF9ldmVuID0gKHRoaXMuX3N0YWdnZXJJbmRleCA9PT0gU3RhZ2dlckluZGV4LlNUQUdHRVJJTkRFWF9PREQpID8gMSA6IC0xO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fc3RhZ2dlckF4aXMgPT09IFN0YWdnZXJBeGlzLlNUQUdHRVJBWElTX1gpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZYMSA9IChtYXB0dyAtIHRoaXMuX2hleFNpZGVMZW5ndGgpIC8gMjtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZZMSA9IDA7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSBtYXB0aCAqIChsYXllckggKyAwLjUpO1xyXG4gICAgICAgICAgICAgICAgd2lkdGggPSAobWFwdHcgKyB0aGlzLl9oZXhTaWRlTGVuZ3RoKSAqIE1hdGguZmxvb3IobGF5ZXJXIC8gMikgKyBtYXB0dyAqIChsYXllclcgJSAyKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZYMSA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kaWZmWTEgPSAobWFwdGggLSB0aGlzLl9oZXhTaWRlTGVuZ3RoKSAvIDI7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG1hcHR3ICogKGxheWVyVyArIDAuNSk7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSAobWFwdGggKyB0aGlzLl9oZXhTaWRlTGVuZ3RoKSAqIE1hdGguZmxvb3IobGF5ZXJIIC8gMikgKyBtYXB0aCAqIChsYXllckggJSAyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuc2V0Q29udGVudFNpemUod2lkdGgsIGhlaWdodCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9sYXllck9yaWVudGF0aW9uID09PSBjYy5UaWxlZE1hcC5PcmllbnRhdGlvbi5JU08pIHtcclxuICAgICAgICAgICAgbGV0IHdoID0gbGF5ZXJXICsgbGF5ZXJIO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuc2V0Q29udGVudFNpemUobWFwdHcgKiAwLjUgKiB3aCwgbWFwdGggKiAwLjUgKiB3aCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnNldENvbnRlbnRTaXplKGxheWVyVyAqIG1hcHR3LCBsYXllckggKiBtYXB0aCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBvZmZzZXQgKGFmdGVyIGxheWVyIG9yaWVudGF0aW9uIGlzIHNldCk7XHJcbiAgICAgICAgdGhpcy5fb2Zmc2V0ID0gY2MudjIobGF5ZXJJbmZvLm9mZnNldC54LCAtbGF5ZXJJbmZvLm9mZnNldC55KTtcclxuICAgICAgICB0aGlzLl91c2VBdXRvbWF0aWNWZXJ0ZXhaID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fdmVydGV4WnZhbHVlID0gMDtcclxuICAgICAgICB0aGlzLl9zeW5jQW5jaG9yUG9pbnQoKTtcclxuICAgICAgICB0aGlzLl9wcmVwYXJlVG9SZW5kZXIoKTtcclxuICAgIH0sXHJcbiAgICBfdXBkYXRlQ3VsbGluZygpIHtcclxuICAgICAgICBpZiAoQ0NfRURJVE9SKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlQ3VsbGluZyhmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9lbmFibGVDdWxsaW5nKSB7XHJcbiAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDoi6XkuI3kuLrpppbkuKpsYXllciDnm7TmjqXlpI3nlKhmaXJzdExheWVy55qE57uT5p6cXHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2ZpcnN0VG14TGF5ZXLkuI3kuLrnqbrml7Yg6KGo56S65b2T5YmNbGF5ZXLkuI3mmK/pppbkuKpsYXllclxyXG4gICAgICAgICAgICBsZXQgZmlyc3RUbXhMYXllciA9IHRoaXMuX2ZpcnN0VG14TGF5ZXI7XHJcbiAgICAgICAgICAgIGlmICghIWZpcnN0VG14TGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1bGxpbmdSZWN0ID0gZmlyc3RUbXhMYXllci5fY3VsbGluZ1JlY3Q7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jdWxsaW5nRGlydHkgPSBmaXJzdFRteExheWVyLl9jYWNoZUN1bGxpbmdEaXJ0eTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDkv67mlLnnu5PmnZ9cclxuXHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5fdXBkYXRlV29ybGRNYXRyaXgoKTtcclxuICAgICAgICAgICAgY2MuTWF0NC5pbnZlcnQoX21hdDRfdGVtcCwgdGhpcy5ub2RlLl93b3JsZE1hdHJpeCk7XHJcbiAgICAgICAgICAgIGxldCByZWN0ID0gY2MudmlzaWJsZVJlY3Q7XHJcbiAgICAgICAgICAgIGxldCBjYW1lcmEgPSBjYy5DYW1lcmEuZmluZENhbWVyYSh0aGlzLm5vZGUpO1xyXG4gICAgICAgICAgICBpZiAoY2FtZXJhKSB7XHJcbiAgICAgICAgICAgICAgICBfdmVjMl90ZW1wLnggPSAwO1xyXG4gICAgICAgICAgICAgICAgX3ZlYzJfdGVtcC55ID0gMDtcclxuICAgICAgICAgICAgICAgIF92ZWMyX3RlbXAyLnggPSBfdmVjMl90ZW1wLnggKyByZWN0LndpZHRoO1xyXG4gICAgICAgICAgICAgICAgX3ZlYzJfdGVtcDIueSA9IF92ZWMyX3RlbXAueSArIHJlY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgY2FtZXJhLmdldFNjcmVlblRvV29ybGRQb2ludChfdmVjMl90ZW1wLCBfdmVjMl90ZW1wKTtcclxuICAgICAgICAgICAgICAgIGNhbWVyYS5nZXRTY3JlZW5Ub1dvcmxkUG9pbnQoX3ZlYzJfdGVtcDIsIF92ZWMyX3RlbXAyKTtcclxuICAgICAgICAgICAgICAgIGNjLlZlYzIudHJhbnNmb3JtTWF0NChfdmVjMl90ZW1wLCBfdmVjMl90ZW1wLCBfbWF0NF90ZW1wKTtcclxuICAgICAgICAgICAgICAgIGNjLlZlYzIudHJhbnNmb3JtTWF0NChfdmVjMl90ZW1wMiwgX3ZlYzJfdGVtcDIsIF9tYXQ0X3RlbXApO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZpZXdQb3J0KF92ZWMyX3RlbXAueCwgX3ZlYzJfdGVtcC55LCBfdmVjMl90ZW1wMi54IC0gX3ZlYzJfdGVtcC54LCBfdmVjMl90ZW1wMi55IC0gX3ZlYzJfdGVtcC55KTtcclxuICAgICAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDoi6XkuLrpppbkuKpsYXllciDnvJPlrZhfY3VsbGluZ0RpcnR544CCXHJcbiAgICAgICAgICAgICAgICAvLyBfY3VsbGluZ0RpcnR55Lya5Zyo5aGr5YWF5riy5p+T5pWw5o2u5ZCO6KKr5pS55Li6ZmFsc2Ug5omA5Lul6ZyA6KaB57yT5a2Y6L+Z6YeM55qE57uT5p6cXHJcbiAgICAgICAgICAgICAgICBpZiAoIWZpcnN0VG14TGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZUN1bGxpbmdEaXJ0eSA9IHRoaXMuX2N1bGxpbmdEaXJ0eTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIOS/ruaUuee7k+adn1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIF90cmF2ZXJzZUFsbEdyaWQgKCkge1xyXG4gICAgICAgIGxldCB0aWxlcyA9IHRoaXMuX3RpbGVzO1xyXG4gICAgICAgIGxldCB0ZXhHcmlkcyA9IHRoaXMuX3RleEdyaWRzO1xyXG4gICAgICAgIGxldCB0aWxlc2V0SW5kZXhBcnIgPSB0aGlzLl90aWxlc2V0SW5kZXhBcnI7XHJcbiAgICAgICAgbGV0IHRpbGVzZXRJbmRleFRvQXJySW5kZXggPSB0aGlzLl90aWxlc2V0SW5kZXhUb0FyckluZGV4ID0ge307XHJcblxyXG4gICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgY29uc3QgVGlsZUZsYWcgPSBUaWxlZE1hcC5UaWxlRmxhZztcclxuICAgICAgICBjb25zdCBGTElQUEVEX01BU0sgPSBUaWxlRmxhZy5GTElQUEVEX01BU0s7XHJcblxyXG4gICAgICAgIGxldCBzaW5nbGVUZXh0dXJlID0gdGhpcy5fdGlsZWRNYXAuaXNTaW5nbGVUZXh0dXJlKCk7XHJcblxyXG4gICAgICAgIHRpbGVzZXRJbmRleEFyci5sZW5ndGggPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGdpZCA9IHRpbGVzW2ldO1xyXG4gICAgICAgICAgICBpZiAoZ2lkID09PSAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgZ2lkID0gKChnaWQgJiBGTElQUEVEX01BU0spID4+PiAwKTtcclxuICAgICAgICAgICAgbGV0IGdyaWQgPSB0ZXhHcmlkc1tnaWRdO1xyXG4gICAgICAgICAgICBpZiAoIWdyaWQpIHtcclxuICAgICAgICAgICAgICAgIGNjLmVycm9yKFwiQ0NUaWxlZExheWVyOl90cmF2ZXJzZUFsbEdyaWQgZ3JpZCBpcyBudWxsLCBnaWQgaXM6XCIsIGdpZCk7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgdGlsZXNldElkeCA9IGdyaWQudGV4SWQ7XHJcbiAgICAgICAgICAgIGlmICh0aWxlc2V0SW5kZXhUb0FyckluZGV4W3RpbGVzZXRJZHhdICE9PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB0aWxlc2V0SW5kZXhUb0FyckluZGV4W3RpbGVzZXRJZHhdID0gdGlsZXNldEluZGV4QXJyLmxlbmd0aDtcclxuICAgICAgICAgICAgdGlsZXNldEluZGV4QXJyLnB1c2godGlsZXNldElkeCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyDmraTlpITkv67mlLkg5b2T5Y+q5pyJ5LiA5Liq5Zu+6ZuG5pe2IOWPr+S7peebtOaOpeWBnOatoumBjeWOhlxyXG4gICAgICAgICAgICBpZiAoc2luZ2xlVGV4dHVyZSkge1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufSk7XHJcbiJdfQ== //------QC-SOURCE-SPLIT------ (function() { @@ -989,6 +1087,104 @@ cc._RF.pop(); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxDb2xsaXNpb25EZXRlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHNUUsSUFBQSxLQUF3QyxFQUFFLENBQUMsVUFBVSxFQUFwRCxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxnQkFBZ0Isc0JBQWlCLENBQUM7QUFHNUQ7SUFBZ0Qsc0NBQVk7SUFBNUQ7O0lBNkRBLENBQUM7MkJBN0RvQixrQkFBa0I7SUFDUCxtQ0FBTSxHQUFOO1FBQ3hCLElBQUksb0JBQWtCLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUN0QyxvQkFBa0IsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3BDLHlDQUF5QztTQUM1QzthQUNJO1lBQ0QsT0FBTztTQUNWO0lBRUwsQ0FBQztJQUNELFFBQVE7SUFDRCx3Q0FBVyxHQUFsQixVQUFtQixLQUFjLEVBQUUsS0FBYztRQUM3QyxpQkFBaUI7UUFDakIsSUFBSSxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUNqQztRQUVELHNCQUFzQjtRQUN0QixJQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLE9BQU8sRUFBRSxXQUFXLGFBQUEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFHRCxlQUFlO0lBQ1AsdUNBQVUsR0FBbEIsVUFBbUIsT0FBa0I7UUFDakMsSUFBTSxPQUFPLEdBQWMsRUFBRSxDQUFDO1FBQzlCLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QixJQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsSUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQ3JDLElBQU0sSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsSUFBTSxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFBWTtJQUNKLG9DQUFPLEdBQWYsVUFBZ0IsT0FBa0IsRUFBRSxJQUFhO1FBQzdDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQyxJQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakQsSUFBSSxVQUFVLEdBQUcsR0FBRyxFQUFFO2dCQUNsQixHQUFHLEdBQUcsVUFBVSxDQUFDO2FBQ3BCO2lCQUFNLElBQUksVUFBVSxHQUFHLEdBQUcsRUFBRTtnQkFDekIsR0FBRyxHQUFHLFVBQVUsQ0FBQzthQUNwQjtTQUNKO1FBQ0QsT0FBTyxFQUFFLEdBQUcsS0FBQSxFQUFFLEdBQUcsS0FBQSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGFBQWE7SUFDTCxvQ0FBTyxHQUFmLFVBQWdCLFdBQXlDLEVBQUUsV0FBeUM7UUFDaEcsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7O0lBMURnQixrQkFBa0I7UUFEdEMsT0FBTztPQUNhLGtCQUFrQixDQTZEdEM7SUFBRCx5QkFBQztDQTdERCxBQTZEQyxDQTdEK0MsRUFBRSxDQUFDLFNBQVMsR0E2RDNEO2tCQTdEb0Isa0JBQWtCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eSwgcmVxdWlyZUNvbXBvbmVudH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29sbGlzaW9uRGV0ZWN0aW9uIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTsgICAgICBvbkxvYWQoKSB7XHJcbiAgICAgICAgaWYgKENvbGxpc2lvbkRldGVjdGlvbi5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBDb2xsaXNpb25EZXRlY3Rpb24uX2luc3RhbmNlID0gdGhpcztcclxuICAgICAgICAgICAgLy8gY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgLy/norDmkp7mo4DmtYvlh73mlbBcclxuICAgIHB1YmxpYyBpc0NvbGxpZGluZyhyZWN0MTogY2MuUmVjdCwgcmVjdDI6IGNjLlJlY3QpOiB7IGlzQ29sbGlkaW5nOiBib29sZWFuIH0ge1xyXG4gICAgICAgIC8vIOW/q+mAn+aOkumZpO+8muajgOafpei+ueeVjOahhuaYr+WQpuebuOS6pFxyXG4gICAgICAgIGlmIChyZWN0MS54TWF4IDwgcmVjdDIueE1pbiB8fCByZWN0Mi54TWF4IDwgcmVjdDEueE1pbiB8fCByZWN0MS55TWF4IDwgcmVjdDIueU1pbiB8fCByZWN0Mi55TWF4IDwgcmVjdDEueU1pbikge1xyXG4gICAgICAgICAgICByZXR1cm4geyBpc0NvbGxpZGluZzogZmFsc2UgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOiwg+eUqOWOn+Wni+eahCBpbnRlcnNlY3RzIOaWueazlVxyXG4gICAgICAgIGNvbnN0IGlzQ29sbGlkaW5nID0gcmVjdDEuaW50ZXJzZWN0cyhyZWN0Mik7XHJcblxyXG4gICAgICAgIHJldHVybiB7IGlzQ29sbGlkaW5nIH07XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIOiOt+WPluWkmui+ueW9oueahOaJgOaciei+ueeahOazlee6v1xyXG4gICAgcHJpdmF0ZSBnZXROb3JtYWxzKHBvbHlnb246IGNjLlZlYzJbXSk6IGNjLlZlYzJbXSB7XHJcbiAgICAgICAgY29uc3Qgbm9ybWFsczogY2MuVmVjMltdID0gW107XHJcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gcG9seWdvbi5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBwMSA9IHBvbHlnb25baV07XHJcbiAgICAgICAgICAgIGNvbnN0IHAyID0gcG9seWdvblsoaSArIDEpICUgbGVuZ3RoXTtcclxuICAgICAgICAgICAgY29uc3QgZWRnZSA9IG5ldyBjYy5WZWMyKHAyLnggLSBwMS54LCBwMi55IC0gcDEueSk7XHJcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbCA9IG5ldyBjYy5WZWMyKC1lZGdlLnksIGVkZ2UueCk7XHJcbiAgICAgICAgICAgIG5vcm1hbC5ub3JtYWxpemUoKTtcclxuICAgICAgICAgICAgbm9ybWFscy5wdXNoKG5vcm1hbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBub3JtYWxzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOWwhuWkmui+ueW9ouaKleW9seWIsOi9tOS4ilxyXG4gICAgcHJpdmF0ZSBwcm9qZWN0KHBvbHlnb246IGNjLlZlYzJbXSwgYXhpczogY2MuVmVjMik6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0ge1xyXG4gICAgICAgIGxldCBtaW4gPSBjYy5WZWMyLmRvdChwb2x5Z29uWzBdLCBheGlzKTtcclxuICAgICAgICBsZXQgbWF4ID0gbWluO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgcG9seWdvbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkb3RQcm9kdWN0ID0gY2MuVmVjMi5kb3QocG9seWdvbltpXSwgYXhpcyk7XHJcbiAgICAgICAgICAgIGlmIChkb3RQcm9kdWN0IDwgbWluKSB7XHJcbiAgICAgICAgICAgICAgICBtaW4gPSBkb3RQcm9kdWN0O1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRvdFByb2R1Y3QgPiBtYXgpIHtcclxuICAgICAgICAgICAgICAgIG1heCA9IGRvdFByb2R1Y3Q7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHsgbWluLCBtYXggfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDmo4Dmn6XkuKTkuKrmipXlvbHmmK/lkKbph43lj6BcclxuICAgIHByaXZhdGUgb3ZlcmxhcChwcm9qZWN0aW9uMTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSwgcHJvamVjdGlvbjI6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0pOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIShwcm9qZWN0aW9uMS5tYXggPCBwcm9qZWN0aW9uMi5taW4gfHwgcHJvamVjdGlvbjIubWF4IDwgcHJvamVjdGlvbjEubWluKTtcclxuICAgIH1cclxuXHJcblxyXG59XHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/prop/Star.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'd773dbWW6tAz6F+Z0L3IXUx', 'Star'); +// Script/prop/Star.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var Map_1 = require("../Map"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var Star = /** @class */ (function (_super) { + __extends(Star, _super); + function Star() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.time = 60; + // mapInfo: number[][] = []; + _this.star_SpriteFrame = null; + return _this; + // update (dt) {} + } + Star.prototype.onLoad = function () { + }; + Star.prototype.start = function () { + }; + Star.prototype.init = function (time) { + if (time) + this.time = time; + this.node.getChildByName("time").active = true; + this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString(); + this.schedule(this.updateTime, 1); + }; + Star.prototype.updateTime = function () { + this.time--; + this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString(); + if (this.time <= 0) { + this.unschedule(this.updateTime); + this.node.destroy(); + Map_1.default._instance.failLevel(); + // this.node.destroy(); + } + }; + __decorate([ + property(cc.SpriteAtlas) + ], Star.prototype, "star_SpriteFrame", void 0); + Star = __decorate([ + ccclass + ], Star); + return Star; +}(cc.Component)); +exports.default = Star; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxTdGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxGLDhCQUFpQztBQUUzQixJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUsxQztJQUFrQyx3QkFBWTtJQUE5QztRQUFBLHFFQW1DQztRQWpDRyxVQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLDRCQUE0QjtRQUU1QixzQkFBZ0IsR0FBbUIsSUFBSSxDQUFDOztRQTRCeEMsaUJBQWlCO0lBQ3JCLENBQUM7SUEzQkcscUJBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCxvQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELG1CQUFJLEdBQUosVUFBSyxJQUFJO1FBQ0wsSUFBRyxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBR0QseUJBQVUsR0FBVjtRQUNJLElBQUksQ0FBQyxJQUFJLEVBQUcsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEYsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsYUFBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQyx1QkFBdUI7U0FDMUI7SUFDTCxDQUFDO0lBMUJEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7a0RBQ2U7SUFOdkIsSUFBSTtRQUR4QixPQUFPO09BQ2EsSUFBSSxDQW1DeEI7SUFBRCxXQUFDO0NBbkNELEFBbUNDLENBbkNpQyxFQUFFLENBQUMsU0FBUyxHQW1DN0M7a0JBbkNvQixJQUFJIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuLi9NYXBcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdGFyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDYwO1xyXG5cclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVBdGxhcylcclxuICAgIHN0YXJfU3ByaXRlRnJhbWU6IGNjLlNwcml0ZUF0bGFzID0gbnVsbDtcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgIH0gXHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQodGltZSl7XHJcbiAgICAgICAgaWYodGltZSkgdGhpcy50aW1lID0gdGltZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMudGltZS50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy51cGRhdGVUaW1lLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIHVwZGF0ZVRpbWUoKXtcclxuICAgICAgICB0aGlzLnRpbWUgLS07XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMudGltZS50b1N0cmluZygpO1xyXG4gICAgICAgIGlmKHRoaXMudGltZSA8PSAwKXtcclxuICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMudXBkYXRlVGltZSk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5mYWlsTGV2ZWwoKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= //------QC-SOURCE-SPLIT------ (function() { @@ -1138,7 +1334,7 @@ cc._RF.pop(); (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/prop/Boom.js'; + var __filename = 'preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -1146,119 +1342,8 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '3c749iEEwlAMKPyjGEkwU2l', 'Boom'); -// Script/prop/Boom.ts - -"use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var Map_1 = require("../Map"); -var NumberToImage_1 = require("../NumberToImage"); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var Boom = /** @class */ (function (_super) { - __extends(Boom, _super); - function Boom() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.time = 60; - return _this; - // update (dt) {} - } - // mapInfo: number[][] = []; - Boom.prototype.onLoad = function () { - }; - Boom.prototype.start = function () { - }; - Boom.prototype.init = function (time) { - if (time) - this.time = time; - this.node.getChildByName("time").active = true; - NumberToImage_1.default.numberToImageNodes(this.time, 20, 8, "lock_", this.node.getChildByName("time"), false); - // this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString(); - }; - Boom.prototype.startBoom = function () { - this.schedule(this.updateTime, 1); - }; - Boom.prototype.stopBoom = function () { - this.unschedule(this.updateTime); - this.node.parent.getComponent("Block").resetFreeze(); - this.node.destroy(); - }; - Boom.prototype.updateTime = function () { - var _this = this; - this.time--; - NumberToImage_1.default.numberToImageNodes(this.time, 20, 8, "lock_", this.node.getChildByName("time"), false); - if (this.time <= 0) { - this.unschedule(this.updateTime); - this.node.getChildByName("zhandan").active = true; - var skeleton = this.node.getChildByName("zhandan").getComponent(sp.Skeleton); - skeleton.setAnimation(1, "eff", false); - // 监听动画完成事件 - skeleton.setCompleteListener(function () { - // 动画播放完成后销毁节点 - _this.node.destroy(); - }); - Map_1.default._instance.failLevel("boom"); - // this.node.destroy(); - } - }; - Boom = __decorate([ - ccclass - ], Boom); - return Boom; -}(cc.Component)); -exports.default = Boom; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxCb29tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxGLDhCQUFpQztBQUNqQyxrREFBNkM7QUFFdkMsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFLMUM7SUFBa0Msd0JBQVk7SUFBOUM7UUFBQSxxRUFtREM7UUFqREcsVUFBSSxHQUFXLEVBQUUsQ0FBQzs7UUFnRGxCLGlCQUFpQjtJQUNyQixDQUFDO0lBL0NHLDRCQUE0QjtJQUU1QixxQkFBTSxHQUFOO0lBRUEsQ0FBQztJQUVELG9CQUFLLEdBQUw7SUFDQSxDQUFDO0lBRUQsbUJBQUksR0FBSixVQUFLLElBQUk7UUFDTCxJQUFHLElBQUk7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzdDLHVCQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUNsRyx5RkFBeUY7SUFFN0YsQ0FBQztJQUVELHdCQUFTLEdBQVQ7UUFDSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELHVCQUFRLEdBQVI7UUFDSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBR0QseUJBQVUsR0FBVjtRQUFBLGlCQWdCQztRQWZHLElBQUksQ0FBQyxJQUFJLEVBQUcsQ0FBQztRQUNiLHVCQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUNoRyxJQUFHLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFDO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNsRCxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9FLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxXQUFXO1lBQ1gsUUFBUSxDQUFDLG1CQUFtQixDQUFDO2dCQUN6QixjQUFjO2dCQUNkLEtBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7WUFDSCxhQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4Qyx1QkFBdUI7U0FDMUI7SUFDTCxDQUFDO0lBaERnQixJQUFJO1FBRHhCLE9BQU87T0FDYSxJQUFJLENBbUR4QjtJQUFELFdBQUM7Q0FuREQsQUFtREMsQ0FuRGlDLEVBQUUsQ0FBQyxTQUFTLEdBbUQ3QztrQkFuRG9CLElBQUkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJvb20gZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG4gICAgdGltZTogbnVtYmVyID0gNjA7XHJcblxyXG4gICAgLy8gbWFwSW5mbzogbnVtYmVyW11bXSA9IFtdO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcblxyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCh0aW1lKXtcclxuICAgICAgICBpZih0aW1lKSB0aGlzLnRpbWUgPSB0aW1lO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKHRoaXMudGltZSwyMCw4LFwibG9ja19cIix0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLGZhbHNlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy50aW1lLnRvU3RyaW5nKCk7XHJcbiAgIFxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0Qm9vbSgpe1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy51cGRhdGVUaW1lLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBzdG9wQm9vbSgpe1xyXG4gICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnVwZGF0ZVRpbWUpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzZXRGcmVlemUoKTtcclxuICAgICAgICB0aGlzLm5vZGUuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIFxyXG4gICAgdXBkYXRlVGltZSgpe1xyXG4gICAgICAgIHRoaXMudGltZSAtLTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyh0aGlzLnRpbWUsMjAsOCxcImxvY2tfXCIsdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKSxmYWxzZSk7XHJcbiAgICAgICAgaWYodGhpcy50aW1lIDw9IDApe1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy51cGRhdGVUaW1lKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemhhbmRhblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zdCBza2VsZXRvbiA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpoYW5kYW5cIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKTtcclxuICAgICAgICAgICAgc2tlbGV0b24uc2V0QW5pbWF0aW9uKDEsXCJlZmZcIixmYWxzZSk7XHJcbiAgICAgICAgICAgIC8vIOebkeWQrOWKqOeUu+WujOaIkOS6i+S7tlxyXG4gICAgICAgICAgICBza2VsZXRvbi5zZXRDb21wbGV0ZUxpc3RlbmVyKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvuWujOaIkOWQjumUgOavgeiKgueCuVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5mYWlsTGV2ZWwoXCJib29tXCIpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUuZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '7a231Rz0d9LBYYgY3bDYlLB', 'use_v2.1-2.2.1_cc.Toggle_event'); -// migration/use_v2.1-2.2.1_cc.Toggle_event.js +cc._RF.push(module, 'c9ad1iUTB1PyqJ3cmtMGJ31', 'use_v2.1-2.2.1_cc.Toggle_event_1'); +// migration/use_v2.1-2.2.1_cc.Toggle_event_1.js "use strict"; @@ -1290,7 +1375,7 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnQuanMiXSwibmFtZXMiOlsiY2MiLCJUb2dnbGUiLCJfdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxFQUFFLENBQUNDLE1BQVAsRUFBZTtBQUNYO0FBQ0E7QUFDQUQsRUFBQUEsRUFBRSxDQUFDQyxNQUFILENBQVVDLCtCQUFWLEdBQTRDLElBQTVDO0FBQ0giLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFRoaXMgc2NyaXB0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IENvY29zIENyZWF0b3IgYW5kIGlzIG9ubHkgdXNlZCBmb3IgcHJvamVjdHMgY29tcGF0aWJsZSB3aXRoIHRoZSB2Mi4xLjAg772eIDIuMi4xIHZlcnNpb24uXHJcbiAqIFlvdSBkbyBub3QgbmVlZCB0byBtYW51YWxseSBhZGQgdGhpcyBzY3JpcHQgaW4gYW55IG90aGVyIHByb2plY3QuXHJcbiAqIElmIHlvdSBkb24ndCB1c2UgY2MuVG9nZ2xlIGluIHlvdXIgcHJvamVjdCwgeW91IGNhbiBkZWxldGUgdGhpcyBzY3JpcHQgZGlyZWN0bHkuXHJcbiAqIElmIHlvdXIgcHJvamVjdCBpcyBob3N0ZWQgaW4gVkNTIHN1Y2ggYXMgZ2l0LCBzdWJtaXQgdGhpcyBzY3JpcHQgdG9nZXRoZXIuXHJcbiAqXHJcbiAqIOatpOiEmuacrOeUsSBDb2NvcyBDcmVhdG9yIOiHquWKqOeUn+aIkO+8jOS7heeUqOS6juWFvOWuuSB2Mi4xLjAgfiAyLjIuMSDniYjmnKznmoTlt6XnqIvvvIxcclxuICog5L2g5peg6ZyA5Zyo5Lu75L2V5YW25a6D6aG555uu5Lit5omL5Yqo5re75Yqg5q2k6ISa5pys44CCXHJcbiAqIOWmguaenOS9oOeahOmhueebruS4reayoeeUqOWIsCBUb2dnbGXvvIzlj6/nm7TmjqXliKDpmaTor6XohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5pyJ5omY566h5LqOIGdpdCDnrYnniYjmnKzlupPvvIzor7flsIbmraTohJrmnKzkuIDlubbkuIrkvKDjgIJcclxuICovXHJcblxyXG5pZiAoY2MuVG9nZ2xlKSB7XHJcbiAgICAvLyBXaGV0aGVyIHRvIHRyaWdnZXIgJ3RvZ2dsZScgYW5kICdjaGVja0V2ZW50cycgZXZlbnRzIHdoZW4gbW9kaWZ5aW5nICd0b2dnbGUuaXNDaGVja2VkJyBpbiB0aGUgY29kZVxyXG4gICAgLy8g5Zyo5Luj56CB5Lit5L+u5pS5ICd0b2dnbGUuaXNDaGVja2VkJyDml7bmmK/lkKbop6blj5EgJ3RvZ2dsZScg5LiOICdjaGVja0V2ZW50cycg5LqL5Lu2XHJcbiAgICBjYy5Ub2dnbGUuX3RyaWdnZXJFdmVudEluU2NyaXB0X2lzQ2hlY2tlZCA9IHRydWU7XHJcbn1cclxuIl19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnRfMS5qcyJdLCJuYW1lcyI6WyJjYyIsIlRvZ2dsZSIsIl90cmlnZ2VyRXZlbnRJblNjcmlwdF9pc0NoZWNrZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLEVBQUUsQ0FBQ0MsTUFBUCxFQUFlO0FBQ1g7QUFDQTtBQUNBRCxFQUFBQSxFQUFFLENBQUNDLE1BQUgsQ0FBVUMsK0JBQVYsR0FBNEMsSUFBNUM7QUFDSCIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogVGhpcyBzY3JpcHQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgQ29jb3MgQ3JlYXRvciBhbmQgaXMgb25seSB1c2VkIGZvciBwcm9qZWN0cyBjb21wYXRpYmxlIHdpdGggdGhlIHYyLjEuMCDvvZ4gMi4yLjEgdmVyc2lvbi5cclxuICogWW91IGRvIG5vdCBuZWVkIHRvIG1hbnVhbGx5IGFkZCB0aGlzIHNjcmlwdCBpbiBhbnkgb3RoZXIgcHJvamVjdC5cclxuICogSWYgeW91IGRvbid0IHVzZSBjYy5Ub2dnbGUgaW4geW91ciBwcm9qZWN0LCB5b3UgY2FuIGRlbGV0ZSB0aGlzIHNjcmlwdCBkaXJlY3RseS5cclxuICogSWYgeW91ciBwcm9qZWN0IGlzIGhvc3RlZCBpbiBWQ1Mgc3VjaCBhcyBnaXQsIHN1Ym1pdCB0aGlzIHNjcmlwdCB0b2dldGhlci5cclxuICpcclxuICog5q2k6ISa5pys55SxIENvY29zIENyZWF0b3Ig6Ieq5Yqo55Sf5oiQ77yM5LuF55So5LqO5YW85a65IHYyLjEuMCB+IDIuMi4xIOeJiOacrOeahOW3peeoi++8jFxyXG4gKiDkvaDml6DpnIDlnKjku7vkvZXlhbblroPpobnnm67kuK3miYvliqjmt7vliqDmraTohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5Lit5rKh55So5YiwIFRvZ2dsZe+8jOWPr+ebtOaOpeWIoOmZpOivpeiEmuacrOOAglxyXG4gKiDlpoLmnpzkvaDnmoTpobnnm67mnInmiZjnrqHkuo4gZ2l0IOetieeJiOacrOW6k++8jOivt+WwhuatpOiEmuacrOS4gOW5tuS4iuS8oOOAglxyXG4gKi9cclxuXHJcbmlmIChjYy5Ub2dnbGUpIHtcclxuICAgIC8vIFdoZXRoZXIgdG8gdHJpZ2dlciAndG9nZ2xlJyBhbmQgJ2NoZWNrRXZlbnRzJyBldmVudHMgd2hlbiBtb2RpZnlpbmcgJ3RvZ2dsZS5pc0NoZWNrZWQnIGluIHRoZSBjb2RlXHJcbiAgICAvLyDlnKjku6PnoIHkuK3kv67mlLkgJ3RvZ2dsZS5pc0NoZWNrZWQnIOaXtuaYr+WQpuinpuWPkSAndG9nZ2xlJyDkuI4gJ2NoZWNrRXZlbnRzJyDkuovku7ZcclxuICAgIGNjLlRvZ2dsZS5fdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkID0gdHJ1ZTtcclxufVxyXG4iXX0= //------QC-SOURCE-SPLIT------ (function() { @@ -1359,6 +1444,37 @@ cc._RF.pop(); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcYW5pbWF0aW9uXFxOZXdTY3JpcHQuanMiXSwibmFtZXMiOlsiY2MiLCJDbGFzcyIsIkNvbXBvbmVudCIsInByb3BlcnRpZXMiLCJzZXgiLCJ0eXBlIiwiRW51bSIsIm1hbGUiLCJmZW1hbGUiLCJzdGFydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQUEsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDTCxhQUFTRCxFQUFFLENBQUNFLFNBRFA7QUFHTEMsRUFBQUEsVUFBVSxFQUFFO0FBQ1JDLElBQUFBLEdBQUcsRUFBQztBQUNBQyxNQUFBQSxJQUFJLEVBQUNMLEVBQUUsQ0FBQ00sSUFBSCxDQUFRO0FBQ1RDLFFBQUFBLElBQUksRUFBQyxDQURJO0FBRVRDLFFBQUFBLE1BQU0sRUFBQztBQUZFLE9BQVIsQ0FETDtBQUtBLGlCQUFRO0FBTFIsS0FESSxDQVFSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUF0QlEsR0FIUDtBQTRCTDtBQUVBO0FBRUFDLEVBQUFBLEtBaENLLG1CQWdDSSxDQUVSLENBbENJLENBb0NMOztBQXBDSyxDQUFUIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBjYy5DbGFzczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvY2xhc3MuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcclxuXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgc2V4OntcclxuICAgICAgICAgICAgdHlwZTpjYy5FbnVtKHtcclxuICAgICAgICAgICAgICAgIG1hbGU6MCxcclxuICAgICAgICAgICAgICAgIGZlbWFsZToxXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBkZWZhdWx0OjBcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gZm9vOiB7XHJcbiAgICAgICAgLy8gICAgIC8vIEFUVFJJQlVURVM6XHJcbiAgICAgICAgLy8gICAgIGRlZmF1bHQ6IG51bGwsICAgICAgICAvLyBUaGUgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIHVzZWQgb25seSB3aGVuIHRoZSBjb21wb25lbnQgYXR0YWNoaW5nXHJcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBhIG5vZGUgZm9yIHRoZSBmaXJzdCB0aW1lXHJcbiAgICAgICAgLy8gICAgIHR5cGU6IGNjLlNwcml0ZUZyYW1lLCAvLyBvcHRpb25hbCwgZGVmYXVsdCBpcyB0eXBlb2YgZGVmYXVsdFxyXG4gICAgICAgIC8vICAgICBzZXJpYWxpemFibGU6IHRydWUsICAgLy8gb3B0aW9uYWwsIGRlZmF1bHQgaXMgdHJ1ZVxyXG4gICAgICAgIC8vIH0sXHJcbiAgICAgICAgLy8gYmFyOiB7XHJcbiAgICAgICAgLy8gICAgIGdldCAoKSB7XHJcbiAgICAgICAgLy8gICAgICAgICByZXR1cm4gdGhpcy5fYmFyO1xyXG4gICAgICAgIC8vICAgICB9LFxyXG4gICAgICAgIC8vICAgICBzZXQgKHZhbHVlKSB7XHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLl9iYXIgPSB2YWx1ZTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vIH0sXHJcbiAgICB9LFxyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIC8vIG9uTG9hZCAoKSB7fSxcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fSxcclxufSk7XHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/lq_base/data/lq_interface.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '41e45V6/vBNz5ftgHCoFmei', 'lq_interface'); +// Script/lq_base/data/lq_interface.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFxkYXRhXFxscV9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWZWMyID0gY2MuVmVjMjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVBvcyB7XHJcbiAgICB4OiBudW1iZXI7XHJcbiAgICB5OiBudW1iZXI7XHJcblxyXG4gICAgc3ViKHBvczogSVBvcyk6IFZlYzI7XHJcblxyXG4gICAgYWRkKHBvczogSVBvcyk6IFZlYzI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJlY3Qge1xyXG4gICAgeDogbnVtYmVyO1xyXG4gICAgeTogbnVtYmVyO1xyXG4gICAgd2lkdGg6IG51bWJlcjtcclxuICAgIGhlaWdodDogbnVtYmVyO1xyXG4gICAgaGFsZl93aWR0aDogbnVtYmVyO1xyXG4gICAgaGFsZl9oZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICBzdWIocG9zOiBJUG9zKTogVmVjMjtcclxuXHJcbiAgICBhZGQocG9zOiBJUG9zKTogVmVjMjtcclxufSJdfQ== //------QC-SOURCE-SPLIT------ (function() { @@ -1442,174 +1558,6 @@ cc._RF.pop(); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcZWZmZWN0XFzono3ljJYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJUCxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUE2QiwyQkFBWTtJQUF6QztRQUFBLHFFQXlCQztRQXZCRyxXQUFLLEdBQVcsQ0FBQyxDQUFDO1FBRWxCLE1BQU07UUFDRSxhQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFdBQUssR0FBVyxDQUFDLENBQUM7O0lBbUI5QixDQUFDO0lBaEJHLHVCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELHdCQUFNLEdBQU4sVUFBTyxFQUFFO1FBQ0wsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVELE1BQU07SUFDTiwyQkFBUyxHQUFUO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQXhCUSxPQUFPO1FBRG5CLE9BQU8sRUFBRTtPQUNHLE9BQU8sQ0F5Qm5CO0lBQUQsY0FBQztDQXpCRCxBQXlCQyxDQXpCNEIsRUFBRSxDQUFDLFNBQVMsR0F5QnhDO0FBekJZLDBCQUFPIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSWNlTWVsdC50c1xyXG5cclxuXHJcblxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3MoKVxyXG5leHBvcnQgY2xhc3MgSWNlTWVsdCBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgc3BlZWQ6IG51bWJlciA9IDE7XHJcblxyXG4gICAgLy/mmK/lkKbono3ljJZcclxuICAgIHByaXZhdGUgX2lzTWVsdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfdGltZTogbnVtYmVyID0gMDtcclxuICAgIHByaXZhdGUgX21hdGVyaWFsOiBjYy5NYXRlcmlhbFZhcmlhbnQ7XHJcblxyXG4gICAgc3RhcnQoKSB7XHJcbiAgICAgICAgdGhpcy5fbWF0ZXJpYWwgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuZ2V0TWF0ZXJpYWwoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlKGR0KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX21hdGVyaWFsICYmIHRoaXMuX2lzTWVsdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tYXRlcmlhbC5zZXRQcm9wZXJ0eSgndV90aW1lJywgdGhpcy5fdGltZSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3RpbWUgKz0gZHQgKiB0aGlzLnNwZWVkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+iejeWMllxyXG4gICAgc3RhcnRNZWx0KCkge1xyXG4gICAgICAgIHRoaXMuX2lzTWVsdCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fdGltZSA9IDA7XHJcbiAgICB9XHJcbn0iXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/lq_base/data/lq_const.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '98309gPXUxEF6zBe9e75Knb', 'lq_const'); -// Script/lq_base/data/lq_const.ts - -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.LQConst = exports.LQOperateType = exports.LQLevelStatus = exports.LQAdErrStr = exports.LQCallAd = exports.LQCallBase = exports.LQAnalysisTag = exports.LQByteDanceType = exports.LQPlatformType = exports.LQHttpDataType = exports.LQHttpRequestType = exports.LQEasing = exports.LQCollideStatus = exports.LQFollowTargetMode = exports.LQCollideShape = exports.LQBulletEmitterStatus = exports.LQRecordStatus = void 0; -var Vec2 = cc.Vec2; -var LQRecordStatus; -(function (LQRecordStatus) { - LQRecordStatus[LQRecordStatus["Idle"] = 0] = "Idle"; - LQRecordStatus[LQRecordStatus["Start"] = 1] = "Start"; - LQRecordStatus[LQRecordStatus["Pause"] = 2] = "Pause"; -})(LQRecordStatus = exports.LQRecordStatus || (exports.LQRecordStatus = {})); -var LQBulletEmitterStatus; -(function (LQBulletEmitterStatus) { - LQBulletEmitterStatus[LQBulletEmitterStatus["Idle"] = 0] = "Idle"; - LQBulletEmitterStatus[LQBulletEmitterStatus["Start"] = 1] = "Start"; - LQBulletEmitterStatus[LQBulletEmitterStatus["End"] = 2] = "End"; -})(LQBulletEmitterStatus = exports.LQBulletEmitterStatus || (exports.LQBulletEmitterStatus = {})); -var LQCollideShape; -(function (LQCollideShape) { - LQCollideShape[LQCollideShape["Rect"] = 1] = "Rect"; - LQCollideShape[LQCollideShape["Circle"] = 2] = "Circle"; - LQCollideShape[LQCollideShape["Polygon"] = 3] = "Polygon"; -})(LQCollideShape = exports.LQCollideShape || (exports.LQCollideShape = {})); -var LQFollowTargetMode; -(function (LQFollowTargetMode) { - LQFollowTargetMode[LQFollowTargetMode["Always"] = 0] = "Always"; - LQFollowTargetMode[LQFollowTargetMode["Once"] = 1] = "Once"; - LQFollowTargetMode[LQFollowTargetMode["Pass"] = 2] = "Pass"; -})(LQFollowTargetMode = exports.LQFollowTargetMode || (exports.LQFollowTargetMode = {})); -var LQCollideStatus; -(function (LQCollideStatus) { - LQCollideStatus[LQCollideStatus["Idle"] = 0] = "Idle"; - LQCollideStatus[LQCollideStatus["Live"] = 1] = "Live"; -})(LQCollideStatus = exports.LQCollideStatus || (exports.LQCollideStatus = {})); -var LQEasing; -(function (LQEasing) { - LQEasing["BackIn"] = "backIn"; - LQEasing["BackOut"] = "backOut"; - LQEasing["quadIn"] = "quadIn"; - LQEasing["quadOut"] = "quadOut"; - LQEasing["quadInOut"] = "quadInOut"; - LQEasing["cubicIn"] = "cubicIn"; - LQEasing["expoOut"] = "expoOut"; -})(LQEasing = exports.LQEasing || (exports.LQEasing = {})); -var LQHttpRequestType; -(function (LQHttpRequestType) { - LQHttpRequestType["Get"] = "get"; - LQHttpRequestType["Post"] = "post"; -})(LQHttpRequestType = exports.LQHttpRequestType || (exports.LQHttpRequestType = {})); -var LQHttpDataType; -(function (LQHttpDataType) { - LQHttpDataType[LQHttpDataType["Text"] = 0] = "Text"; - LQHttpDataType[LQHttpDataType["Binary"] = 1] = "Binary"; -})(LQHttpDataType = exports.LQHttpDataType || (exports.LQHttpDataType = {})); -var LQPlatformType; -(function (LQPlatformType) { - LQPlatformType["unknown"] = "\u672A\u77E5\u5E73\u53F0"; - LQPlatformType["all"] = "\u5168\u5E73\u53F0"; - LQPlatformType["wx"] = "\u5FAE\u4FE1"; - LQPlatformType["tt"] = "\u5B57\u8282\u8DF3\u52A8"; - LQPlatformType["oppo"] = "oppo"; - LQPlatformType["vivo"] = "vivo"; - LQPlatformType["qq"] = "qq"; - LQPlatformType["baidu"] = "\u767E\u5EA6"; - LQPlatformType["kwaigame"] = "\u5FEB\u624B"; - LQPlatformType["android"] = "\u5B89\u5353"; - LQPlatformType["ios"] = "\u82F9\u679C"; - LQPlatformType["browser"] = "\u6D4F\u89C8\u5668"; -})(LQPlatformType = exports.LQPlatformType || (exports.LQPlatformType = {})); -var LQByteDanceType; -(function (LQByteDanceType) { - LQByteDanceType["tt"] = "\u5934\u6761"; - LQByteDanceType["tt_lite"] = "\u5934\u6761\u6781\u901F\u7248"; - LQByteDanceType["douyin"] = "\u6296\u97F3"; - LQByteDanceType["douyin_lite"] = "\u6296\u97F3\u6781\u901F\u7248"; - LQByteDanceType["ppx"] = "\u76AE\u76AE\u867E"; - LQByteDanceType["devtools"] = "\u5B57\u8282\u5F00\u53D1\u5DE5\u5177"; -})(LQByteDanceType = exports.LQByteDanceType || (exports.LQByteDanceType = {})); -var LQAnalysisTag; -(function (LQAnalysisTag) { - LQAnalysisTag["VideoComplete"] = "video_complete"; - LQAnalysisTag["VideoBegin"] = "video_begin"; - LQAnalysisTag["VideoInterrupt"] = "video_interrupt"; - LQAnalysisTag["InterstitialShow"] = "interstitial_show"; - LQAnalysisTag["BannerShow"] = "banner_show"; - LQAnalysisTag["ExportShow"] = "export_show"; - LQAnalysisTag["NativeShow"] = "native_show"; - LQAnalysisTag["NativeClick"] = "native_show"; -})(LQAnalysisTag = exports.LQAnalysisTag || (exports.LQAnalysisTag = {})); -var LQCallBase; -(function (LQCallBase) { - LQCallBase[LQCallBase["InitSdk"] = 0] = "InitSdk"; - LQCallBase[LQCallBase["KeepScreenOn"] = 1] = "KeepScreenOn"; - LQCallBase[LQCallBase["Vibrate"] = 2] = "Vibrate"; - LQCallBase[LQCallBase["GetVersionCode"] = 3] = "GetVersionCode"; - LQCallBase[LQCallBase["GetVersionName"] = 4] = "GetVersionName"; - LQCallBase[LQCallBase["OpenUrl"] = 5] = "OpenUrl"; - LQCallBase[LQCallBase["DeleteDir"] = 6] = "DeleteDir"; - LQCallBase[LQCallBase["DeleteFile"] = 7] = "DeleteFile"; -})(LQCallBase = exports.LQCallBase || (exports.LQCallBase = {})); -var LQCallAd; -(function (LQCallAd) { - LQCallAd[LQCallAd["ShowBanner"] = 0] = "ShowBanner"; - LQCallAd[LQCallAd["HideBanner"] = 1] = "HideBanner"; - LQCallAd[LQCallAd["ShowVideo"] = 2] = "ShowVideo"; - LQCallAd[LQCallAd["ShowInterstitial"] = 3] = "ShowInterstitial"; - LQCallAd[LQCallAd["ShowNative"] = 4] = "ShowNative"; - LQCallAd[LQCallAd["CacheAd"] = 5] = "CacheAd"; -})(LQCallAd = exports.LQCallAd || (exports.LQCallAd = {})); -var LQAdErrStr; -(function (LQAdErrStr) { - LQAdErrStr["Unsupported"] = "\u4E0D\u652F\u6301"; - LQAdErrStr["NoParameters"] = "\u6CA1\u6709\u914D\u7F6E\u53C2\u6570"; - LQAdErrStr["NoAD"] = "\u6682\u65E0\u5E7F\u544A"; - LQAdErrStr["VersionOld"] = "\u7248\u672C\u8FC7\u4F4E"; - LQAdErrStr["VideoInterrupt"] = "\u4E2D\u65AD\u64AD\u653E"; - LQAdErrStr["InstanceErr"] = "\u5B9E\u4F8B\u4E3A\u7A7A"; - LQAdErrStr["AlreadyExist"] = "\u5DF2\u7ECF\u5B58\u5728"; - LQAdErrStr["IntervalTooShort"] = "\u95F4\u9694\u592A\u77ED"; -})(LQAdErrStr = exports.LQAdErrStr || (exports.LQAdErrStr = {})); -var LQLevelStatus; -(function (LQLevelStatus) { - LQLevelStatus[LQLevelStatus["Begin"] = 0] = "Begin"; - LQLevelStatus[LQLevelStatus["Failed"] = 1] = "Failed"; - LQLevelStatus[LQLevelStatus["Complete"] = 2] = "Complete"; -})(LQLevelStatus = exports.LQLevelStatus || (exports.LQLevelStatus = {})); -var LQOperateType; -(function (LQOperateType) { - LQOperateType[LQOperateType["ClickNode"] = 0] = "ClickNode"; - LQOperateType[LQOperateType["ClickScreen"] = 1] = "ClickScreen"; - LQOperateType[LQOperateType["Move"] = 2] = "Move"; - LQOperateType[LQOperateType["Null"] = 3] = "Null"; -})(LQOperateType = exports.LQOperateType || (exports.LQOperateType = {})); -var LQConst = /** @class */ (function () { - function LQConst() { - } - LQConst.VEC_ZERO = Vec2.ZERO; - return LQConst; -}()); -exports.LQConst = LQConst; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFxkYXRhXFxscV9jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFPLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBRXRCLElBQVksY0FFWDtBQUZELFdBQVksY0FBYztJQUN0QixtREFBSSxDQUFBO0lBQUUscURBQUssQ0FBQTtJQUFFLHFEQUFLLENBQUE7QUFDdEIsQ0FBQyxFQUZXLGNBQWMsR0FBZCxzQkFBYyxLQUFkLHNCQUFjLFFBRXpCO0FBRUQsSUFBWSxxQkFFWDtBQUZELFdBQVkscUJBQXFCO0lBQzdCLGlFQUFJLENBQUE7SUFBRSxtRUFBSyxDQUFBO0lBQUUsK0RBQUcsQ0FBQTtBQUNwQixDQUFDLEVBRlcscUJBQXFCLEdBQXJCLDZCQUFxQixLQUFyQiw2QkFBcUIsUUFFaEM7QUFFRCxJQUFZLGNBRVg7QUFGRCxXQUFZLGNBQWM7SUFDdEIsbURBQVEsQ0FBQTtJQUFFLHVEQUFNLENBQUE7SUFBRSx5REFBTyxDQUFBO0FBQzdCLENBQUMsRUFGVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQUV6QjtBQUVELElBQVksa0JBRVg7QUFGRCxXQUFZLGtCQUFrQjtJQUMxQiwrREFBTSxDQUFBO0lBQUUsMkRBQUksQ0FBQTtJQUFFLDJEQUFJLENBQUE7QUFDdEIsQ0FBQyxFQUZXLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBRTdCO0FBRUQsSUFBWSxlQUVYO0FBRkQsV0FBWSxlQUFlO0lBQ3ZCLHFEQUFJLENBQUE7SUFBRSxxREFBSSxDQUFBO0FBQ2QsQ0FBQyxFQUZXLGVBQWUsR0FBZix1QkFBZSxLQUFmLHVCQUFlLFFBRTFCO0FBRUQsSUFBWSxRQUdYO0FBSEQsV0FBWSxRQUFRO0lBQ2hCLDZCQUFpQixDQUFBO0lBQUUsK0JBQW1CLENBQUE7SUFBRSw2QkFBaUIsQ0FBQTtJQUN6RCwrQkFBbUIsQ0FBQTtJQUFFLG1D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O0lBQUUsaURBQUksQ0FBQTtBQUN0QyxDQUFDLEVBRlcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFFeEI7QUFFRDtJQUFBO0lBRUEsQ0FBQztJQURpQixnQkFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDdkMsY0FBQztDQUZELEFBRUMsSUFBQTtBQUZZLDBCQUFPIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFZlYzIgPSBjYy5WZWMyO1xyXG5cclxuZXhwb3J0IGVudW0gTFFSZWNvcmRTdGF0dXMge1xyXG4gICAgSWRsZSwgU3RhcnQsIFBhdXNlXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIExRQnVsbGV0RW1pdHRlclN0YXR1cyB7XHJcbiAgICBJZGxlLCBTdGFydCwgRW5kXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIExRQ29sbGlkZVNoYXBlIHtcclxuICAgIFJlY3QgPSAxLCBDaXJjbGUsIFBvbHlnb25cclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFGb2xsb3dUYXJnZXRNb2RlIHtcclxuICAgIEFsd2F5cywgT25jZSwgUGFzc1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUNvbGxpZGVTdGF0dXMge1xyXG4gICAgSWRsZSwgTGl2ZVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUVhc2luZyB7XHJcbiAgICBCYWNrSW4gPSAnYmFja0luJywgQmFja091dCA9ICdiYWNrT3V0JywgcXVhZEluID0gJ3F1YWRJbicsXHJcbiAgICBxdWFkT3V0ID0gJ3F1YWRPdXQnLCBxdWFkSW5PdXQgPSAncXVhZEluT3V0JywgY3ViaWNJbiA9ICdjdWJpY0luJywgZXhwb091dCA9ICdleHBvT3V0J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUh0dHBSZXF1ZXN0VHlwZSB7XHJcbiAgICBHZXQgPSAnZ2V0JywgUG9zdCA9ICdwb3N0J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUh0dHBEYXRhVHlwZSB7XHJcbiAgICBUZXh0LCBCaW5hcnlcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFQbGF0Zm9ybVR5cGUge1xyXG4gICAgdW5rbm93biA9ICfmnKrnn6XlubPlj7AnLCBhbGwgPSAn5YWo5bmz5Y+wJywgd3ggPSAn5b6u5L+hJywgdHQgPSAn5a2X6IqC6Lez5YqoJywgb3BwbyA9ICdvcHBvJywgdml2byA9ICd2aXZvJywgcXEgPSAncXEnLCBiYWlkdSA9ICfnmb7luqYnLCBrd2FpZ2FtZSA9ICflv6vmiYsnLCBhbmRyb2lkID0gJ+WuieWNkycsIGlvcyA9ICfoi7nmnpwnLCBicm93c2VyID0gJ+a1j+iniOWZqCdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFCeXRlRGFuY2VUeXBlIHtcclxuICAgIHR0ID0gJ+WktOadoScsIHR0X2xpdGUgPSAn5aS05p2h5p6B6YCf54mIJywgZG91eWluID0gJ+aKlumfsycsIGRvdXlpbl9saXRlID0gJ+aKlumfs+aegemAn+eJiCcsIHBweCA9ICfnmq7nmq7omb4nLCBkZXZ0b29scyA9ICflrZfoioLlvIDlj5Hlt6XlhbcnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIExRQW5hbHlzaXNUYWcge1xyXG4gICAgVmlkZW9Db21wbGV0ZSA9ICd2aWRlb19jb21wbGV0ZScsIFZpZGVvQmVnaW4gPSAndmlkZW9fYmVnaW4nLCBWaWRlb0ludGVycnVwdCA9ICd2aWRlb19pbnRlcnJ1cHQnLCBJbnRlcnN0aXRpYWxTaG93ID0gJ2ludGVyc3RpdGlhbF9zaG93JywgQmFubmVyU2hvdyA9ICdiYW5uZXJfc2hvdycsIEV4cG9ydFNob3cgPSAnZXhwb3J0X3Nob3cnLCBOYXRpdmVTaG93ID0gJ25hdGl2ZV9zaG93JywgTmF0aXZlQ2xpY2sgPSAnbmF0aXZlX3Nob3cnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIExRQ2FsbEJhc2Uge1xyXG4gICAgSW5pdFNkaywgS2VlcFNjcmVlbk9uLCBWaWJyYXRlLCBHZXRWZXJzaW9uQ29kZSwgR2V0VmVyc2lvbk5hbWUsIE9wZW5VcmwsIERlbGV0ZURpciwgRGVsZXRlRmlsZVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUNhbGxBZCB7XHJcbiAgICBTaG93QmFubmVyLCBIaWRlQmFubmVyLCBTaG93VmlkZW8sIFNob3dJbnRlcnN0aXRpYWwsIFNob3dOYXRpdmUsIENhY2hlQWRcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFBZEVyclN0ciB7XHJcbiAgICBVbnN1cHBvcnRlZCA9ICfkuI3mlK/mjIEnLCBOb1BhcmFtZXRlcnMgPSAn5rKh5pyJ6YWN572u5Y+C5pWwJywgTm9BRCA9ICfmmoLml6Dlub/lkYonLCBWZXJzaW9uT2xkID0gJ+eJiOacrOi/h+S9jicsIFZpZGVvSW50ZXJydXB0ID0gJ+S4reaWreaSreaUvicsIEluc3RhbmNlRXJyID0gJ+WunuS+i+S4uuepuicsIEFscmVhZHlFeGlzdCA9ICflt7Lnu4/lrZjlnKgnLCBJbnRlcnZhbFRvb1Nob3J0ID0gJ+mXtOmalOWkquefrSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFMZXZlbFN0YXR1cyB7XHJcbiAgICBCZWdpbiwgRmFpbGVkLCBDb21wbGV0ZVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUU9wZXJhdGVUeXBlIHtcclxuICAgIENsaWNrTm9kZSwgQ2xpY2tTY3JlZW4sIE1vdmUsIE51bGxcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExRQ29uc3Qge1xyXG4gICAgcHVibGljIHN0YXRpYyBWRUNfWkVSTyA9IFZlYzIuWkVSTztcclxufVxyXG5cclxuIl19 //------QC-SOURCE-SPLIT------ (function() { @@ -1685,6 +1633,63 @@ cc._RF.pop(); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE5vdGlmaWNhdGlvblxcTm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE1BQU07QUFDTixJQUFJLGFBQWEsR0FBRztJQUNoQixTQUFTLEVBQUUsRUFBRTtJQUNiLEVBQUUsRUFBRSxVQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTTtRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLEVBQUUsVUFBVSxNQUFNLEVBQUUsU0FBUztRQUM3QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBRWhDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU87Z0JBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNqRTtJQUNMLENBQUM7SUFFRCxHQUFHLEVBQUUsVUFBVSxNQUFNLEVBQUUsUUFBUTtRQUMzQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtnQkFDMUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDckIsTUFBTTthQUNUO1NBQ0o7SUFDTCxDQUFDO0lBRUQsU0FBUyxFQUFFLFVBQVUsTUFBTTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWSxFQUFFO1FBQ1YsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQjtTQUNKO0lBQ0wsQ0FBQztDQUNKLENBQUM7QUFDTyxzQ0FBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v5YWo5bGA6YCa55+lXG52YXIgTm90aWZpY2F0aW9ucyA9IHtcbiAgICBfZXZlbnRNYXA6IFtdLFxuICAgIG9uOiBmdW5jdGlvbiAobWFzZ0lkLCBjYWxsYmFjaywgdGFyZ2V0KSB7XG4gICAgICAgIGlmICh0aGlzLl9ldmVudE1hcFttYXNnSWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50TWFwW21hc2dJZF0gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdLnB1c2goeyBjYWxsYmFjazogY2FsbGJhY2ssIHRhcmdldDogdGFyZ2V0IH0pO1xuICAgIH0sXG5cbiAgICBlbWl0OiBmdW5jdGlvbiAobWFzZ0lkLCBwYXJhbWV0ZXIpIHtcbiAgICAgICAgbGV0IGFycmF5ID0gdGhpcy5fZXZlbnRNYXBbbWFzZ0lkXTtcbiAgICAgICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9IGFycmF5W2ldO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQpIGVsZW1lbnQuY2FsbGJhY2suY2FsbChlbGVtZW50LnRhcmdldCwgcGFyYW1ldGVyKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBvZmY6IGZ1bmN0aW9uIChtYXNnSWQsIGNhbGxiYWNrKSB7XG4gICAgICAgIGxldCBhcnJheSA9IHRoaXMuX2V2ZW50TWFwW21hc2dJZF07XG4gICAgICAgIGlmIChhcnJheSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gYXJyYXlbaV07XG4gICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNhbGxiYWNrID09PSBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIG9mZk1hc2dJZDogZnVuY3Rpb24gKG1hc2dJZCkge1xuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdID0gdW5kZWZpbmVkO1xuICAgIH0sXG5cbiAgICByZW1vdmVBbGxNc2c6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChsZXQgayBpbiB0aGlzLl9ldmVudE1hcCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2V2ZW50TWFwW2tdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vZmZNYXNnSWQoayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuZXhwb3J0IHsgTm90aWZpY2F0aW9ucyB9OyJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Storage/Storage.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '1002938VFRJd70RiAno9Iys', 'Storage'); +// Script/module/Storage/Storage.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StorageMessage = void 0; +//缓存浏览器数据 +var StorageMessage = { + getStorage: function (key) { + var result = null; + if (cc.sys.localStorage.getItem(key)) { + var result = cc.sys.localStorage.getItem(key); + } + if (result) { + result = JSON.parse(result); + } + return result; + }, + setStorage: function (key, value) { + //主动拉起分享接口 + var temp = JSON.stringify(value); + cc.sys.localStorage.setItem(key, temp); + }, + removeStorage: function (key) { + //主动删除消息接口 + if (cc.sys.localStorage.getItem(key)) { + cc.sys.localStorage.removeItem(key); + } + }, +}; +exports.StorageMessage = StorageMessage; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFN0b3JhZ2VcXFN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULElBQUksY0FBYyxHQUFHO0lBQ2pCLFVBQVUsRUFBRyxVQUFTLEdBQUc7UUFDckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQ2xDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQztRQUVELElBQUcsTUFBTSxFQUFDO1lBQ1IsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsVUFBVSxFQUFHLFVBQVMsR0FBRyxFQUFDLEtBQUs7UUFDM0IsVUFBVTtRQUNWLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBQ0QsYUFBYSxFQUFHLFVBQVMsR0FBRztRQUMxQixVQUFVO1FBQ1YsSUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDbEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO0lBQ0gsQ0FBQztDQUNKLENBQUM7QUFFTyx3Q0FBYyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v57yT5a2Y5rWP6KeI5Zmo5pWw5o2uXG52YXIgU3RvcmFnZU1lc3NhZ2UgPSB7XG4gICAgZ2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xuICAgICAgICBpZihjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSl7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZihyZXN1bHQpe1xuICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gICAgc2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSx2YWx1ZSl7XG4gICAgICAgIC8v5Li75Yqo5ouJ6LW35YiG5Lqr5o6l5Y+jXG4gICAgICAgIHZhciB0ZW1wID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0ZW1wKVxuICAgIH0sXG4gICAgcmVtb3ZlU3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAvL+S4u+WKqOWIoOmZpOa2iOaBr+aOpeWPo1xuICAgICAgaWYoY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpe1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICAgICAgfVxuICAgIH0sXG59O1xuXG5leHBvcnQgeyBTdG9yYWdlTWVzc2FnZSB9OyJdfQ== //------QC-SOURCE-SPLIT------ (function() { @@ -1808,425 +1813,6 @@ cc._RF.pop(); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXEdhbWVTdGFydFxcR2FtZUFwcFN0YXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQW9EO0FBQ3BELG1EQUFrRDtBQUNsRCwrQ0FBMEM7QUFDMUMsc0RBQWlEO0FBQ2pELDZEQUE2RDtBQUM3RCw2Q0FBNEM7QUFHNUMsTUFBTSxDQUFDLE9BQU8sR0FBRztJQUNiLElBQUcsRUFBRSxDQUFDLEVBQUUsRUFDUjtRQUNJLE9BQU87S0FDVjtJQUNELEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ1gsdUJBQXVCO0lBRXZCLFFBQVE7SUFDUixFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsR0FBRztRQUNkLFNBQVMsRUFBRSxJQUFJO1FBQ2YsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixXQUFXLEVBQUUsTUFBTTtRQUNuQixjQUFjLEVBQUUsSUFBSSxDQUFNLFVBQVU7S0FDdkMsQ0FBQztJQUVGLFFBQVE7SUFDUixNQUFNO0lBQ04sRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEdBQUcsd0JBQWMsQ0FBQztJQUN0QyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksR0FBRyxzQkFBWSxDQUFDO0lBQ2xDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxHQUFHLHVCQUFVLENBQUM7SUFDOUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEdBQUcsa0JBQVEsQ0FBQztJQUMxQixFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsR0FBRyxtQkFBUSxDQUFDO0lBQzFCLEVBQUUsQ0FBQyxFQUFFLENBQUMsYUFBYSxHQUFHLDRCQUFhLENBQUM7SUFHcEMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUc7UUFDZCxPQUFPLEVBQUcsQ0FBQyxDQUFDLENBQWMsTUFBTTtLQUNuQyxDQUFDO0lBRUYsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUc7UUFDWixPQUFPLEVBQUUsT0FBTztRQUNoQixTQUFTLEVBQUMsT0FBTztRQUNqQixJQUFJLEVBQUUsT0FBTztRQUNiLFVBQVUsRUFBRSxPQUFPO1FBQ25CLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLE1BQU0sRUFBRSxPQUFPO1FBQ2YsT0FBTyxFQUFFLE9BQU87UUFDaEIsU0FBUyxFQUFFLE9BQU87UUFDbEIsVUFBVSxFQUFFLE9BQU87UUFDbkIsU0FBUyxFQUFFLE9BQU8sQ0FBVSxpQkFBaUI7S0FDaEQsQ0FBQTtJQUVEOztNQUVFO0lBQ0YsRUFBRSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEdBQUc7UUFDcEIsT0FBTyxFQUFHLFNBQVM7UUFDbkIsTUFBTSxFQUFHLFFBQVE7UUFFakIsbUJBQW1CLEVBQUMsa0JBQWtCO1FBQ3RDLGlCQUFpQixFQUFHLGVBQWU7UUFDbkMsZ0JBQWdCLEVBQUcsY0FBYztRQUNqQyxxQkFBcUIsRUFBRSxjQUFjO1FBQ3JDLHNCQUFzQixFQUFFLGdCQUFnQjtRQUN4QyxtQkFBbUIsRUFBRSxZQUFZO1FBQ2pDLG9CQUFvQixFQUFFLGFBQWE7UUFFbkMsV0FBVyxFQUFHLGFBQWE7UUFDM0IsU0FBUyxFQUFFLFdBQVc7UUFDdEIsVUFBVSxFQUFFLFlBQVk7UUFDeEIsV0FBVyxFQUFFLGFBQWE7UUFDMUIsV0FBVyxFQUFFLGFBQWE7UUFDMUIsZ0JBQWdCLEVBQUUsa0JBQWtCO1FBQ3BDLGNBQWMsRUFBRSxnQkFBZ0I7UUFDaEMsUUFBUSxFQUFHLFVBQVU7UUFDckIsaUJBQWlCLEVBQUUsbUJBQW1CO1FBQ3RDLG1CQUFtQixFQUFFLHFCQUFxQjtRQUMxQyxtQkFBbUIsRUFBRSxxQkFBcUI7UUFDMUMsbUJBQW1CLEVBQUUscUJBQXFCO0tBQzdDLENBQUM7SUFFRjs7T0FFRztJQUNILEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEdBQUc7UUFDckIsS0FBSyxFQUFFLE9BQU87UUFDZCxNQUFNLEVBQUcsUUFBUTtRQUNqQixHQUFHLEVBQUcsS0FBSztLQUNkLENBQUM7SUFFRixXQUFXO0lBQ1gsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztRQUMzQixpQkFBaUIsRUFBRSxPQUFPO0tBQzdCLENBQUMsQ0FBQztJQUVBLGlCQUFpQjtJQUNqQixFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxpREFBaUQ7UUFDekQsTUFBTSxFQUFFLG1EQUFtRDtRQUMzRCxTQUFTLEVBQUUsaUJBQWlCO1FBQzVCLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLFVBQVUsRUFBRSxvQkFBb0I7UUFDaEMsU0FBUyxFQUFFLG9CQUFvQjtRQUMvQixVQUFVLEVBQUUsMkJBQTJCO0tBRTFDLENBQUMsQ0FBQztBQUVQLENBQUMsQ0FBQyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0b3JhZ2VNZXNzYWdlIH0gZnJvbSBcIi4uL1N0b3JhZ2UvU3RvcmFnZVwiO1xyXG5pbXBvcnQgeyBHYW1lQ29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZy9HYW1lQ29uZmlnXCI7XHJcbmltcG9ydCBIdHRwVXRpbCBmcm9tIFwiLi4vQ3J5cHRvL0h0dHBVdGlsXCI7XHJcbmltcG9ydCBBdWRpb01hbmFnZXIgZnJvbSBcIi4uL011c2ljL0F1ZGlvTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25zIH0gZnJvbSBcIi4uL05vdGlmaWNhdGlvbi9Ob3RpZmljYXRpb25cIjtcclxuaW1wb3J0IHsgR2FtZVRvb2wgfSBmcm9tIFwiLi4vVG9vbC9HYW1lVG9vbFwiO1xyXG5cclxuXHJcbndpbmRvdy5pbml0TWdyID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZihjYy5meClcclxuICAgIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjYy5meCA9IHt9O1xyXG4gICAgLy8gY29uc29sZS5sb2coXCIx5Yid5aeL5YyWXCIpO1xyXG5cclxuICAgIC8v5Z+656GA54q25oCB5L+h5oGvXHJcbiAgICBjYy5meC5TdGF0ZUluZm8gPSB7XHJcbiAgICAgICAgZGVidWdNb2RlOiB0cnVlLFxyXG4gICAgICAgIG5ldHdvcmtDb25uZWN0ZWQ6IHRydWUsICAgLy/nvZHnu5znirbmgIFcclxuICAgICAgICBuZXR3b3JrVHlwZTogJ25vbmUnLCAgICAgIC8v572R57uc57G75Z6LXHJcbiAgICAgICAgaXNPbkZvcmVncm91bmQ6IHRydWUgICAgICAvL+W9k+WJjeaYr+WQpuaYr+WcqOWJjeWPsFxyXG4gICAgfTtcclxuXHJcbiAgICAvL+W6lOeUqOezu+e7n+S/oeaBr1xyXG4gICAgLy/phY3nva7mlofku7ZcclxuICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlID0gU3RvcmFnZU1lc3NhZ2U7XHJcbiAgICBjYy5meC5BdWRpb01hbmFnZXIgPSBBdWRpb01hbmFnZXI7XHJcbiAgICBjYy5meC5HYW1lQ29uZmlnID0gR2FtZUNvbmZpZztcclxuICAgIGNjLmZ4Lkh0dHBVdGlsID0gSHR0cFV0aWw7XHJcbiAgICBjYy5meC5HYW1lVG9vbCA9IEdhbWVUb29sO1xyXG4gICAgY2MuZnguTm90aWZpY2F0aW9ucyA9IE5vdGlmaWNhdGlvbnM7XHJcbiAgXHJcblxyXG4gICAgY2MuZnguU2hhcmVJbmZvID0ge1xyXG4gICAgICAgIHF1ZXJ5SWQgOiAtMSAgICAgICAgICAgICAgLy/liIbkuqtpZFxyXG4gICAgfTtcclxuXHJcbiAgICBjYy5meC5NZXNzYWdlID0ge1xyXG4gICAgICAgIGNvbnRyb2w6IFwiMTAwMDFcIiwgICAgICAgLy/kvKDpgJLmk43kvZzmjqfliLZcclxuICAgICAgICBzdGFydEdhbWU6XCIxMDAwMlwiLCAgICAgIC8v5Lyg6YCS5byA5aeL5bu6562RXHJcbiAgICAgICAgbmV4dDogXCIxMDAwM1wiICwgICAgICAgICAgLy/kvKDpgJLmiafooYzkuIvkuIDkuKrmoLzlrZDmtKrmsLTmtYHov4dcclxuICAgICAgICBjaGFuZ2VQYXRoOiBcIjEwMDA0XCIsICAgICAgIC8v5Lyg6YCS5pON5L2c5o6n5Yi2XHJcbiAgICAgICAgY2hhbmdlTWFwOiBcIjEwMDA1XCIsICAgICAgICAgLy/mlLnlj5jpgqPlnLDlm75cclxuICAgICAgICBuZXh0V2F0ZXI6IFwiMTAwMDZcIiAsICAgICAgICAgIC8v5Lyg6YCS5omn6KGM5LiL5LiA5Liq5qC85a2Q5rSq5rC05rWB6L+HXHJcbiAgICAgICAgYWRkRW5kOiBcIjEwMDA3XCIgLCAgICAgICAgICAvL+a3u+WKoOe7k+adn+eCuVxyXG4gICAgICAgIHNldERhdGE6IFwiMTAwMDhcIiAsICAgICAgICAgLy/kuIrkvKDliIbmlbBcclxuICAgICAgICBndWlkZU5leHQ6IFwiMTAwMDlcIiAsICAgICAgICAvL+W8leWvvOi/m+WFpeS4i+S4gOatpVxyXG4gICAgICAgIHNob3dSZXN1bHQ6IFwiMTAwMTBcIiwgICAgICAgICAgLy/lsZXnpLrmsrvmsLTnu5PmnpxcclxuICAgICAgICByZW1vdmVUaXA6IFwiMTAwMTFcIiAgICAgICAgICAvL+aJp+ihjOaSpOWbnuaIluiAheWQjumAgOWKqOS9nO+8jOenu+mZpOaPkOekulxyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgICAgKiDlrqLmiLfnq6/ln4vngrnliIbkuqvnsbvlnotcclxuICAgICovXHJcbiAgICBjYy5meC5CdXJpYWxTaGFyZVR5cGUgPSB7XHJcbiAgICAgICAgRGVmYXVsdCA6IFwiZGVmYXVsdFwiLCAgICAgICAgLy/pu5jorqTliIbkuqvnsbvlnoss5YiG5Lqr5Yiw576kXHJcbiAgICAgICAgSW52aXRlIDogXCJpbnZpdGVcIiwgICAgICAgICAgLy8g6YKA6K+35aW95Y+LXHJcblxyXG4gICAgICAgIERhaWx5SW52aXRlUm9vbUpvaW46J2ludml0ZV9qb2luX3Jvb20nLCAvL+mCgOivt+WlveWPi+WKoOWFpVxyXG4gICAgICAgIERhaWx5SW52aXRlRnJpZW5kIDogJ2ludml0ZV9mcmllbmQnLCAvLyDml6XluLjpgoDor7flpb3lj4tcclxuICAgICAgICBEYWlseUludml0ZUdyb3VwIDogJ2ludmF0ZV9ncm91cCcsIC8vIOaXpeW4uOWIhuS6q+e+pFxyXG4gICAgICAgIERhaWx5SW52aXRlR3JvdXBBbGl2ZTogJ2ludmF0ZV9hbGl2ZScsIC8v5pel5bi45YiG5Lqr576k5aSN5rS7XHJcbiAgICAgICAgRGFpbHlJbnZpdGVHcm91cFJld2FyZDogJ2ludmF0ZV9yZXdhcmVkJywvL+WIhuS6q+WlluWKsee/u+WAjVxyXG4gICAgICAgIERhaWx5SW52aXRlR3JvdXBCb3g6ICdpbnZhdGVfYm94JywgIC8v5a6d566x5YiG5Lqr5aWW5YqxXHJcbiAgICAgICAgRGFpbHlJbnZpdGVHcm91cEJhbGw6ICdpbnZhdGVfYmFsbCcsICAvL+WIhuS6q+mihuWPlueQg+eQg1xyXG5cclxuICAgICAgICBNYXRjaFJlc3VsdCA6ICdtYXRjaFJlc3VsdCcsICAvLyDmr5TotZvnu5PnrpfliIbkuqtcclxuICAgICAgICBNYXRjaEZpeDU6ICdNYXRjaEZpeDUnLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNeWFg+e6ouWMhei1m1xyXG4gICAgICAgIE1hdGNoRml4MjA6ICdNYXRjaEZpeDIwJywgICAgICAgICAgICAgICAgICAgICAgICAvLyAyMOWFg+e6ouWMhei1m1xyXG4gICAgICAgIE1hdGNoRml4MTAwOiAnTWF0Y2hGaXgxMDAnLCAgICAgICAgICAgICAgICAgICAgICAvLyAxMDDlhYPnuqLljIXotZtcclxuICAgICAgICBNYXRjaEZpeDUwMDogJ01hdGNoRml4NTAwJywgICAgICAgICAgICAgICAgICAgICAgLy8gNTAw5YWD57qi5YyF6LWbXHJcbiAgICAgICAgTmV3ZXJSZWRFbnZlbG9wZTogJ25ld2VyUmVkRW52ZWxvcGUnLCAgICAgICAgICAgIC8vIOaWsOaJi+e6ouWMhVxyXG4gICAgICAgIENvaW5Sb29tUmVzdWx0OiAnY29pblJvb21SZXN1bHQnLCAgICAgICAgICAgICAgICAvLyDph5HluIHmoYznu5PnrpdcclxuICAgICAgICBIaWdoUmF0ZSA6IFwiaGlnaFJhdGVcIiwvL+mrmOWAjeWIhuS6q1xyXG4gICAgICAgIENvaW5Sb29tV2luU3RyZWFrOiAnY29pblJvb21XaW5TdHJlYWsnLCAgICAgICAgIC8vIOi/nuiDnFxyXG4gICAgICAgIENvaW5Sb29tQmFua3J1cHRjeTE6ICdjb2luUm9vbUJhbmtydXB0Y3kxJywgICAgICAgICAvLyDph5HluIHmoYznoLTkuqdcclxuICAgICAgICBDb2luUm9vbUJhbmtydXB0Y3kyOiAnY29pblJvb21CYW5rcnVwdGN5MicsICAgICAgICAgLy8g6YeR5biB5qGM56C05LqnXHJcbiAgICAgICAgQ29pblJvb21CYW5rcnVwdGN5MzogJ2NvaW5Sb29tQmFua3J1cHRjeTMnLCAgICAgICAgIC8vIOmHkeW4geahjOegtOS6p1xyXG4gICAgfTtcclxuXHJcbiAgICAvKlxyXG4gICAgICog5YiG5Lqr5Yiw5ZOq5YS/57uZ5aWW5YqxIGdyb3VwIGZyaW5lZCBhbGxcclxuICAgICAqL1xyXG4gICAgY2MuZnguU2hhcmVXaGVyZVJld2FyZCA9IHtcclxuICAgICAgICBHcm91cCA6XCJncm91cFwiLCAvL+W+ruS/oee+pFxyXG4gICAgICAgIEZyaWVuZCA6IFwiZnJpZW5kXCIsLy/lpb3lj4tcclxuICAgICAgICBBbGwgOiBcImFsbFwiLCAvL+S4jeWMuuWIhlxyXG4gICAgfTtcclxuXHJcbiAgICAvL+eUqOS6juWtmOWCqOa2iOaBr+eahElEXHJcbiAgICBjYy5meC5zdG9yYWdlVHlwZSA9IGNjLkVudW0oe1xyXG5cdCAgICBzdG9yYWdlVHlwZUN1c3RvbTogMTAwMDEwMSwgLy/nlKjkuo7lrZjlgqjlhbPljaHnrYnnuqdcclxuXHR9KTtcclxuXHJcbiAgICAvL+eUqOS6juWtmOWCqOaPkOekuuivrSAg5oyJ54Wn5q2l6aqk5o+Q56S6XHJcbiAgICBjYy5meC50aXBUeXBlID0gY2MuRW51bSh7XHJcbiAgICAgICAgdGlwT25lOiAn56We5Yac5rCP5Zue5Yiw5a625Lit77yM5byA5aeL5pW055CG5LuK5aSp5pS26ZuG5p2l55qE54mp5ZOB44CC5b2T5LuW56ys5LiA5qyh5ou/5Ye65oiW6K+05Ye65LiA56eN5qSN54mp5pe277yM6K+35ZGK6K+J5LuW6L+Z5piv5paw5qSN54mp44CCJyxcclxuICAgICAgICB0aXBUd286ICflpoLmnpzku5bmi7/lh7rmiJbor7Tlh7rnmoTmpI3niankvaDku4rlpKnnnIvliLDov4fvvIzor7flkYror4nku5bkuIrmrKHmmK/nnIvliLDnmoTvvJvlpoLmnpzkvaDlkKzku5bor7Tov4fvvIzliJnor7flkYror4nku5bkuIrmrKHmmK/lkKzliLDnmoTjgIInLCAvL+eUqOS6juWtmOWCqOWFs+WNoeetiee6p1xyXG4gICAgICAgIHRpcEVyck5ldzogJ+i/meaYr+i/meWxgOa4uOaIj+esrOS4gOasoeWHuueOsHvmpI3nial9JyxcclxuICAgICAgICB0aXBFcnJPbGQ6ICd75qSN54mpfeWImuaJjeWHuueOsOi/h+WRoicsXHJcbiAgICAgICAgdGlwRXJySGVhcjogJ+S4iuasoemBh+WIsHvmpI3nial95pe277yM5Ly85LmO5LiN5piv5ZCs5Yiw55qE5ZCnJyxcclxuICAgICAgICB0aXBFcnJTZWU6ICfkuIrmrKHpgYfliLB75qSN54mpfeaXtu+8jOS8vOS5juS4jeaYr+eci+WIsOeahOWQpycsXHJcbiAgICAgICAgdGlwRXJyTGFzdDogJ+S5i+WJjeehruWunueci+WIsOi/h3vmpI3nial977yM5L2G5pyA6L+R5LiA5qyh5Ly85LmO5LiN5piv55yL5Yiw55qE5ZGiJyxcclxuXHJcbiAgICB9KTtcclxuXHJcbn07Il19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/module/Music/AudioManager.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '58403/n16JCa5sZhNMjZzGo', 'AudioManager'); -// Script/module/Music/AudioManager.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var AudioManager = /** @class */ (function (_super) { - __extends(AudioManager, _super); - function AudioManager() { - var _this = _super !== null && _super.apply(this, arguments) || this; - //背景音乐 - _this.audioGameBgm0 = null; - _this.xiaochu = null; - _this.hit = null; - _this.down = null; - _this.fangxiang = null; - _this.build = null; - _this.win = null; - _this.lose = null; - _this.anniu_Big = null; - _this.anniu_little = null; - _this.zhuan1 = null; - _this.zhuan2 = null; - return _this; - } - AudioManager_1 = AudioManager; - AudioManager.prototype.onLoad = function () { - if (AudioManager_1._instance == null) { - AudioManager_1._instance = this; - cc.game.addPersistRootNode(this.node); - } - else { - return; - } - this.reward = false; - this.finish = false; - this.rewardCount = 0; - this.ctor(); - this.preload(); - }; - AudioManager.prototype.ctor = function () { - this.mAudioMap = {}; - /** - * 默认音量大小 - * @type {number} - */ - this.bgMusicVolume = 0.1; - this.effectMusicVolume = 1; - this.mMusicSwitch = 1; - this.mEffectSwitch = 1; - }; - AudioManager.prototype.play = function (audioSource, loop, callback, isBgMusic) { - // if (isBgMusic && !this.mMusicSwitch) return; - // if (!isBgMusic && !this.mEffectSwitch) return; - var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume; - // if (cc.sys.isBrowser) { - // if(audioSource == this.brickSound){ - // volume = 0.1; - // } - volume = 1; - cc.audioEngine.setEffectsVolume(1); - cc.audioEngine.setMusicVolume(1); - if (audioSource.name == "lose") { - cc.audioEngine.setEffectsVolume(0.5); - } - else { - cc.audioEngine.setEffectsVolume(1); - } - var context = cc.audioEngine.playEffect(audioSource, loop); - if (callback) { - cc.audioEngine.setFinishCallback(context, function () { - callback.call(this); - }.bind(this)); - } - // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src); - this.mAudioMap[audioSource] = context; - return audioSource; - // } else { - // return audioSource; - // } - }; - AudioManager.prototype.save = function () { - // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch); - // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch); - }; - // static get Instance() - // { - // if (this._instance == null) - // { - // this._instance = new AudioManager(); - // } - // return this._instance; - // } - AudioManager.prototype.preload = function () { - if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { - return; - } - var musics = [ - this.audioGameBgm0, - ]; - musics.forEach(function (path) { - }); - }; - AudioManager.prototype.getAudioMusicSwitch = function () { - return this.mMusicSwitch; - }; - AudioManager.prototype.getAudioEffectSwitch = function () { - return this.mEffectSwitch; - }; - AudioManager.prototype.trunAudioSound = function (on) { - this.switchMusic(on); - this.switchEffect(on); - }; - AudioManager.prototype.switchMusic = function (on) { - if (this.mMusicSwitch != (on ? 1 : 0)) { - this.mMusicSwitch = 1 - this.mMusicSwitch; - // this.save(); - } - if (on) { - this.playMusicGame(); - } - else { - this.stopMusic(); - } - }; - AudioManager.prototype.switchEffect = function (on) { - if (this.mEffectSwitch != (on ? 1 : 0)) { - this.mEffectSwitch = 1 - this.mEffectSwitch; - // this.save(); - } - }; - AudioManager.prototype.onHide = function () { - cc.audioEngine.pauseAll(); - }; - AudioManager.prototype.onShow = function () { - cc.audioEngine.resumeAll(); - }; - //播放音效 - AudioManager.prototype.playEffect = function (name, callback) { - if (!cc.fx.GameConfig.GM_INFO.effectOpen) { - return; - } - if (this[name]) - return this.play(this[name], false, callback, this.mEffectSwitch); - }; - AudioManager.prototype.playMusic = function (key, callback, loop) { - if (!cc.fx.GameConfig.GM_INFO.musicOpen) { - return; - } - loop = typeof loop == 'undefined' || loop ? true : false; - this.stopMusic(); - this.mMusicKey = this.play(key, loop, callback, true); - }; - /** - * 游戏背景音乐 - */ - AudioManager.prototype.playMusicGame = function () { - this.stopMusic(); - this.playMusic(this.audioGameBgm0, {}, true); - }; - /** - * 停止背景音乐播放 - */ - AudioManager.prototype.stopMusic = function () { - // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey); - cc.audioEngine.stopAll(); - }; - /** - * 恢复被暂停的背景音乐播放 - */ - AudioManager.prototype.resumeMusic = function () { - // 调用 cc.audioEngine 的 resumeMusic 方法恢复音乐播放 - cc.audioEngine.resumeMusic(); - }; - /* - * 游戏开始音效 - * - */ - AudioManager.prototype.playGameStart = function () { - }; - /* - * 失败的游戏结束 - */ - AudioManager.prototype.playGameOver = function () { - }; - /* - * 成功的游戏结束 - */ - AudioManager.prototype.playGameResultFailed = function () { - }; - /* - * 成功的游戏结束 - */ - AudioManager.prototype.playGameResultSuccess = function () { - }; - /** - * 报警的音效 - */ - /** - * 按钮 - */ - AudioManager.prototype.playAudioButton = function () { - // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch); - }; - var AudioManager_1; - __decorate([ - property(cc.AudioClip) - ], AudioManager.prototype, "audioGameBgm0", void 0); - __decorate([ - property(cc.AudioClip) - ], AudioManager.prototype, "xiaochu", void 0); - __decorate([ - property(cc.AudioClip) - ], AudioManager.prototype, "hit", void 0); - __decorate([ - property(cc.AudioClip) - ], AudioManager.prototype, "down", void 0); - __decorate([ - property(cc.AudioClip) - ], AudioManager.prototype, "fangxiang", void 0); - __decorate([ - property(cc.AudioClip) - ], AudioManager.prototype, "build", void 0); - __decorate([ - property(cc.AudioClip) - ], AudioManager.prototype, "win", void 0); - __decorate([ - property(cc.AudioClip) - ], AudioManager.prototype, "lose", void 0); - __decorate([ - property(cc.AudioClip) - ], AudioManager.prototype, "anniu_Big", void 0); - __decorate([ - property(cc.AudioClip) - ], AudioManager.prototype, "anniu_little", void 0); - __decorate([ - property(cc.AudioClip) - ], AudioManager.prototype, "zhuan1", void 0); - __decorate([ - property(cc.AudioClip) - ], AudioManager.prototype, "zhuan2", void 0); - AudioManager = AudioManager_1 = __decorate([ - ccclass - ], AudioManager); - return AudioManager; -}(cc.Component)); -exports.default = AudioManager; -; -// export { AudioManager }; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE11c2ljXFxBdWRpb01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUM7SUFBMEMsZ0NBQVk7SUFBdEQ7UUFBQSxxRUF3UEM7UUF0UEcsTUFBTTtRQUVOLG1CQUFhLEdBQWlCLElBQUksQ0FBQztRQUduQyxhQUFPLEdBQWlCLElBQUksQ0FBQztRQUU3QixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixXQUFLLEdBQWlCLElBQUksQ0FBQztRQUUzQixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixrQkFBWSxHQUFpQixJQUFJLENBQUM7UUFFbEMsWUFBTSxHQUFpQixJQUFJLENBQUM7UUFFNUIsWUFBTSxHQUFpQixJQUFJLENBQUM7O0lBNk5oQyxDQUFDO3FCQXhQb0IsWUFBWTtJQXdDN0IsNkJBQU0sR0FBTjtRQUNJLElBQUksY0FBWSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDaEMsY0FBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDOUIsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekM7YUFDSTtZQUNELE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVaLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsMkJBQUksR0FBSjtRQUNJLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCOzs7V0FHRztRQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELDJCQUFJLEdBQUosVUFBTSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTO1FBQ3hDLCtDQUErQztRQUMvQyxpREFBaUQ7UUFDakQsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFFckUsMEJBQTBCO1FBQ3RCLHNDQUFzQztRQUN0QyxvQkFBb0I7UUFDcEIsS0FBSztRQUNMLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxFQUFFLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLEVBQUUsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUcsV0FBVyxDQUFDLElBQUksSUFBSSxNQUFNLEVBQUM7WUFDMUIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QzthQUNHO1lBQ0EsRUFBRSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0QztRQUNELElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxJQUFJLFFBQVEsRUFBQztZQUNULEVBQUUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFO2dCQUN0QyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNqQjtRQUNELG9FQUFvRTtRQUVwRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUN0QyxPQUFPLFdBQVcsQ0FBQztRQUN2QixXQUFXO1FBQ1gsMEJBQTBCO1FBQzFCLElBQUk7SUFDUixDQUFDO0lBRUQsMkJBQUksR0FBSjtRQUNJLHNGQUFzRjtRQUN0Rix3RkFBd0Y7SUFDNUYsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixJQUFJO0lBQ0osa0NBQWtDO0lBQ2xDLFFBQVE7SUFDUiwrQ0FBK0M7SUFDL0MsUUFBUTtJQUNSLDZCQUE2QjtJQUM3QixJQUFJO0lBRUosOEJBQU8sR0FBUDtRQUNJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFMUQsSUFBSSxNQUFNLEdBQUc7WUFDVCxJQUFJLENBQUMsYUFBYTtTQUNyQixDQUFDO1FBQ0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFTLElBQUk7UUFDNUIsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsMENBQW1CLEdBQW5CO1FBRUksT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBRTdCLENBQUM7SUFDRCwyQ0FBb0IsR0FBcEI7UUFFSSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUNELHFDQUFjLEdBQWQsVUFBZSxFQUFFO1FBRWIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFDRCxrQ0FBVyxHQUFYLFVBQWEsRUFBRTtRQUNYLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFDakM7WUFDSSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3hDLGVBQWU7U0FDbEI7UUFDRCxJQUFHLEVBQUUsRUFDTDtZQUNJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QjthQUVEO1lBQ0ksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUNELG1DQUFZLEdBQVosVUFBYyxFQUFFO1FBQ1osSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDO1lBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxHQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDMUMsZUFBZTtTQUVsQjtJQUNMLENBQUM7SUFDRCw2QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsNkJBQU0sR0FBTjtRQUNJLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU07SUFDTixpQ0FBVSxHQUFWLFVBQVcsSUFBSSxFQUFDLFFBQVE7UUFDcEIsSUFBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUM7WUFDcEMsT0FBTztTQUNWO1FBQ0QsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0QsZ0NBQVMsR0FBVCxVQUFXLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSTtRQUMxQixJQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBQztZQUNuQyxPQUFPO1NBQ1Y7UUFDRCxJQUFJLEdBQUcsT0FBTyxJQUFJLElBQUksV0FBVyxJQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDMUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUUxRCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxvQ0FBYSxHQUFiO1FBQ0ksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBQyxFQUFFLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNEOztPQUVHO0lBQ0gsZ0NBQVMsR0FBVDtRQUNJLHFFQUFxRTtRQUNyRSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILGtDQUFXLEdBQVg7UUFDSSwyQ0FBMkM7UUFDM0MsRUFBRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztNQUdFO0lBQ0Ysb0NBQWEsR0FBYjtJQUdBLENBQUM7SUFDRDs7TUFFRTtJQUNGLG1DQUFZLEdBQVo7SUFHQSxDQUFDO0lBQ0Q7O1VBRU07SUFDTiwyQ0FBb0IsR0FBcEI7SUFHQSxDQUFDO0lBQ0Q7O01BRUU7SUFDRiw0Q0FBcUIsR0FBckI7SUFHQSxDQUFDO0lBQ0Q7O09BRUc7SUFFSDs7T0FFRztJQUNILHNDQUFlLEdBQWY7UUFDSSwwRUFBMEU7SUFDOUUsQ0FBQzs7SUFuUEQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzt1REFDWTtJQUduQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2lEQUNNO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7NkNBQ0U7SUFFekI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs4Q0FDRztJQUUxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO21EQUNRO0lBRS9CO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7K0NBQ0k7SUFFM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs2Q0FDRTtJQUV6QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDOzhDQUNHO0lBRTFCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7bURBQ1E7SUFFL0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQztzREFDVztJQUVsQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2dEQUNLO0lBRTVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0RBQ0s7SUEzQlgsWUFBWTtRQURoQyxPQUFPO09BQ2EsWUFBWSxDQXdQaEM7SUFBRCxtQkFBQztDQXhQRCxBQXdQQyxDQXhQeUMsRUFBRSxDQUFDLFNBQVMsR0F3UHJEO2tCQXhQb0IsWUFBWTtBQXdQaEMsQ0FBQztBQUVGLDJCQUEyQiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcbkBjY2NsYXNzXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdWRpb01hbmFnZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcbiAgICAvL+iDjOaZr+mfs+S5kFxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgYXVkaW9HYW1lQmdtMDogY2MuQXVkaW9DbGlwID0gbnVsbDtcblxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgeGlhb2NodTogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGhpdDogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGRvd246IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBmYW5neGlhbmc6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBidWlsZDogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIHdpbjogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGxvc2U6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhbm5pdV9CaWc6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhbm5pdV9saXR0bGU6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICB6aHVhbjE6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICB6aHVhbjI6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG5cbiAgICBtQXVkaW9NYXA6IHt9O1xuICAgIGJnTXVzaWNWb2x1bWU6IG51bWJlcjtcbiAgICBlZmZlY3RNdXNpY1ZvbHVtZTogbnVtYmVyO1xuICAgIG1NdXNpY1N3aXRjaDogbnVtYmVyO1xuICAgIG1FZmZlY3RTd2l0Y2g6IG51bWJlcjtcbiAgICBicmlja1NvdW5kOiBhbnk7XG4gICAgcmV3YXJkOiBib29sZWFuO1xuICAgIGZpbmlzaDogYm9vbGVhbjtcbiAgICByZXdhcmRDb3VudDogbnVtYmVyO1xuICAgIG1NdXNpY0tleTogYW55O1xuXG4gICAgb25Mb2FkKCkge1xuICAgICAgICBpZiAoQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZSA9PSBudWxsKSB7XG4gICAgICAgICAgICBBdWRpb01hbmFnZXIuX2luc3RhbmNlID0gdGhpcztcbiAgICAgICAgICAgIGNjLmdhbWUuYWRkUGVyc2lzdFJvb3ROb2RlKHRoaXMubm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXdhcmQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maW5pc2ggPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZXdhcmRDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuY3RvcigpO1xuXG4gICAgICAgIHRoaXMucHJlbG9hZCgpO1xuICAgIH1cblxuICAgIGN0b3IgKCkge1xuICAgICAgICB0aGlzLm1BdWRpb01hcCA9IHt9O1xuICAgICAgICAvKipcbiAgICAgICAgICog6buY6K6k6Z+z6YeP5aSn5bCPXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJnTXVzaWNWb2x1bWUgPSAwLjE7XG4gICAgICAgIHRoaXMuZWZmZWN0TXVzaWNWb2x1bWUgPSAxO1xuXG4gICAgICAgIHRoaXMubU11c2ljU3dpdGNoID0gMTtcbiAgICAgICAgdGhpcy5tRWZmZWN0U3dpdGNoID0gMTtcbiAgICB9XG4gICAgcGxheSAoYXVkaW9Tb3VyY2UsIGxvb3AsIGNhbGxiYWNrLCBpc0JnTXVzaWMpIHtcbiAgICAgICAgLy8gaWYgKGlzQmdNdXNpYyAmJiAhdGhpcy5tTXVzaWNTd2l0Y2gpIHJldHVybjtcbiAgICAgICAgLy8gaWYgKCFpc0JnTXVzaWMgJiYgIXRoaXMubUVmZmVjdFN3aXRjaCkgcmV0dXJuO1xuICAgICAgICB2YXIgdm9sdW1lID0gaXNCZ011c2ljID8gdGhpcy5iZ011c2ljVm9sdW1lIDogdGhpcy5lZmZlY3RNdXNpY1ZvbHVtZTtcblxuICAgICAgICAvLyBpZiAoY2Muc3lzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgLy8gaWYoYXVkaW9Tb3VyY2UgPT0gdGhpcy5icmlja1NvdW5kKXtcbiAgICAgICAgICAgIC8vICAgICB2b2x1bWUgPSAwLjE7XG4gICAgICAgICAgICAvLyB9IFxuICAgICAgICAgICAgdm9sdW1lID0gMTtcbiAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEVmZmVjdHNWb2x1bWUoMSk7XG4gICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRNdXNpY1ZvbHVtZSgxKTtcbiAgICAgICAgICAgIGlmKGF1ZGlvU291cmNlLm5hbWUgPT0gXCJsb3NlXCIpe1xuICAgICAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEVmZmVjdHNWb2x1bWUoMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RWZmZWN0c1ZvbHVtZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gY2MuYXVkaW9FbmdpbmUucGxheUVmZmVjdChhdWRpb1NvdXJjZSwgbG9vcCk7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2spe1xuICAgICAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEZpbmlzaENhbGxiYWNrKGNvbnRleHQsIGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwodGhpcyk7XG4gICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGNjLnd3eC5PdXRQdXQubG9nKCdwbGF5IGF1ZGlvIGVmZmVjdCBpc0Jyb3dzZXI6ICcgKyBjb250ZXh0LnNyYyk7XG5cbiAgICAgICAgICAgIHRoaXMubUF1ZGlvTWFwW2F1ZGlvU291cmNlXSA9IGNvbnRleHQ7XG4gICAgICAgICAgICByZXR1cm4gYXVkaW9Tb3VyY2U7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gYXVkaW9Tb3VyY2U7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBzYXZlICgpIHtcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19NdXNpY19Wb2x1bWUsIHRoaXMubU11c2ljU3dpdGNoKTtcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19FZmZlY3RfVm9sdW1lLCB0aGlzLm1FZmZlY3RTd2l0Y2gpO1xuICAgIH1cblxuICAgIC8vIHN0YXRpYyBnZXQgSW5zdGFuY2UoKVxuICAgIC8vIHtcbiAgICAvLyAgICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpXG4gICAgLy8gICAgIHtcbiAgICAvLyAgICAgICAgIHRoaXMuX2luc3RhbmNlID0gbmV3IEF1ZGlvTWFuYWdlcigpO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcbiAgICAvLyB9XG5cbiAgICBwcmVsb2FkICgpIHtcbiAgICAgICAgaWYgKCEoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHZhciBtdXNpY3MgPSBbXG4gICAgICAgICAgICB0aGlzLmF1ZGlvR2FtZUJnbTAsXG4gICAgICAgIF07XG4gICAgICAgIG11c2ljcy5mb3JFYWNoKGZ1bmN0aW9uKHBhdGgpIHtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBnZXRBdWRpb011c2ljU3dpdGNoKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLm1NdXNpY1N3aXRjaDtcblxuICAgIH1cbiAgICBnZXRBdWRpb0VmZmVjdFN3aXRjaCgpXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5tRWZmZWN0U3dpdGNoO1xuICAgIH1cbiAgICB0cnVuQXVkaW9Tb3VuZChvbilcbiAgICB7XG4gICAgICAgIHRoaXMuc3dpdGNoTXVzaWMob24pO1xuICAgICAgICB0aGlzLnN3aXRjaEVmZmVjdChvbilcbiAgICB9XG4gICAgc3dpdGNoTXVzaWMgKG9uKSB7XG4gICAgICAgIGlmICh0aGlzLm1NdXNpY1N3aXRjaCAhPSAob24/MTowKSlcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5tTXVzaWNTd2l0Y2ggPSAxLXRoaXMubU11c2ljU3dpdGNoO1xuICAgICAgICAgICAgLy8gdGhpcy5zYXZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYob24pXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRoaXMucGxheU11c2ljR2FtZSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzd2l0Y2hFZmZlY3QgKG9uKSB7XG4gICAgICAgIGlmICh0aGlzLm1FZmZlY3RTd2l0Y2ggIT0gKG9uPzE6MCkpe1xuICAgICAgICAgICAgdGhpcy5tRWZmZWN0U3dpdGNoID0gMS10aGlzLm1FZmZlY3RTd2l0Y2g7XG4gICAgICAgICAgICAvLyB0aGlzLnNhdmUoKTtcblxuICAgICAgICB9XG4gICAgfVxuICAgIG9uSGlkZSAoKSB7XG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnBhdXNlQWxsKCk7XG4gICAgfVxuXG4gICAgb25TaG93ICgpIHtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lQWxsKCk7XG4gICAgfVxuXG4gICAgLy/mkq3mlL7pn7PmlYhcbiAgICBwbGF5RWZmZWN0KG5hbWUsY2FsbGJhY2spe1xuICAgICAgICBpZighY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmVmZmVjdE9wZW4pe1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmKHRoaXNbbmFtZV0pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXNbbmFtZV0sIGZhbHNlLGNhbGxiYWNrLHRoaXMubUVmZmVjdFN3aXRjaCk7XG4gICAgfVxuICAgIHBsYXlNdXNpYyAoa2V5LCBjYWxsYmFjaywgbG9vcCkge1xuICAgICAgICBpZighY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbil7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbG9vcCA9IHR5cGVvZiBsb29wID09ICd1bmRlZmluZWQnICB8fCBsb29wID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICB0aGlzLm1NdXNpY0tleSA9IHRoaXMucGxheShrZXksIGxvb3AsIGNhbGxiYWNrLCB0cnVlKTtcblxuICAgIH1cbiAgICAvKipcbiAgICAgKiDmuLjmiI/og4zmma/pn7PkuZBcbiAgICAgKi9cbiAgICBwbGF5TXVzaWNHYW1lICgpIHtcbiAgICAgICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICAgICAgdGhpcy5wbGF5TXVzaWModGhpcy5hdWRpb0dhbWVCZ20wLHt9LHRydWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiDlgZzmraLog4zmma/pn7PkuZDmkq3mlL5cbiAgICAgKi9cbiAgICBzdG9wTXVzaWMgKCkge1xuICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygnc3RvcE11c2ljIGF1ZGlvIGVmZmVjdCB3eDogJyArIHRoaXMubU11c2ljS2V5KTtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc3RvcEFsbCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaBouWkjeiiq+aaguWBnOeahOiDjOaZr+mfs+S5kOaSreaUvlxuICAgICAqL1xuICAgIHJlc3VtZU11c2ljICgpIHtcbiAgICAgICAgLy8g6LCD55SoIGNjLmF1ZGlvRW5naW5lIOeahCByZXN1bWVNdXNpYyDmlrnms5XmgaLlpI3pn7PkuZDmkq3mlL5cbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lTXVzaWMoKTtcbiAgICB9XG5cbiAgICAvKlxuICAgICog5ri45oiP5byA5aeL6Z+z5pWIXG4gICAgKlxuICAgICovXG4gICAgcGxheUdhbWVTdGFydCgpXG4gICAge1xuICAgIFxuICAgIH1cbiAgICAvKlxuICAgICog5aSx6LSl55qE5ri45oiP57uT5p2fXG4gICAgKi9cbiAgICBwbGF5R2FtZU92ZXIoKVxuICAgIHtcblxuICAgIH1cbiAgICAvKlxuICAgICAgICAqIOaIkOWKn+eahOa4uOaIj+e7k+adn1xuICAgICAgICAqL1xuICAgIHBsYXlHYW1lUmVzdWx0RmFpbGVkKClcbiAgICB7XG5cbiAgICB9XG4gICAgLypcbiAgICAqIOaIkOWKn+eahOa4uOaIj+e7k+adn1xuICAgICovXG4gICAgcGxheUdhbWVSZXN1bHRTdWNjZXNzKClcbiAgICB7XG5cbiAgICB9XG4gICAgLyoqXG4gICAgICog5oql6K2m55qE6Z+z5pWIXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiDmjInpkq5cbiAgICAgKi9cbiAgICBwbGF5QXVkaW9CdXR0b24gKCkge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5wbGF5KHRoaXMuYXVkaW9CdXR0b25DbGljaywgZmFsc2UsbnVsbCx0aGlzLm1FZmZlY3RTd2l0Y2gpO1xuICAgIH1cbn07XG5cbi8vIGV4cG9ydCB7IEF1ZGlvTWFuYWdlciB9O1xuIl19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/module/Share/share.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '7290caA39xMWZc2phTMKovP', 'share'); -// Script/module/Share/share.ts - - - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFNoYXJlXFxzaGFyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiIl19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/module/Storage/Storage.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '1002938VFRJd70RiAno9Iys', 'Storage'); -// Script/module/Storage/Storage.ts - -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.StorageMessage = void 0; -//缓存浏览器数据 -var StorageMessage = { - getStorage: function (key) { - var result = null; - if (cc.sys.localStorage.getItem(key)) { - var result = cc.sys.localStorage.getItem(key); - } - if (result) { - result = JSON.parse(result); - } - return result; - }, - setStorage: function (key, value) { - //主动拉起分享接口 - var temp = JSON.stringify(value); - cc.sys.localStorage.setItem(key, temp); - }, - removeStorage: function (key) { - //主动删除消息接口 - if (cc.sys.localStorage.getItem(key)) { - cc.sys.localStorage.removeItem(key); - } - }, -}; -exports.StorageMessage = StorageMessage; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFN0b3JhZ2VcXFN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULElBQUksY0FBYyxHQUFHO0lBQ2pCLFVBQVUsRUFBRyxVQUFTLEdBQUc7UUFDckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQ2xDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQztRQUVELElBQUcsTUFBTSxFQUFDO1lBQ1IsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsVUFBVSxFQUFHLFVBQVMsR0FBRyxFQUFDLEtBQUs7UUFDM0IsVUFBVTtRQUNWLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBQ0QsYUFBYSxFQUFHLFVBQVMsR0FBRztRQUMxQixVQUFVO1FBQ1YsSUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDbEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO0lBQ0gsQ0FBQztDQUNKLENBQUM7QUFFTyx3Q0FBYyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v57yT5a2Y5rWP6KeI5Zmo5pWw5o2uXG52YXIgU3RvcmFnZU1lc3NhZ2UgPSB7XG4gICAgZ2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xuICAgICAgICBpZihjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSl7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZihyZXN1bHQpe1xuICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gICAgc2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSx2YWx1ZSl7XG4gICAgICAgIC8v5Li75Yqo5ouJ6LW35YiG5Lqr5o6l5Y+jXG4gICAgICAgIHZhciB0ZW1wID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0ZW1wKVxuICAgIH0sXG4gICAgcmVtb3ZlU3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAvL+S4u+WKqOWIoOmZpOa2iOaBr+aOpeWPo1xuICAgICAgaWYoY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpe1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICAgICAgfVxuICAgIH0sXG59O1xuXG5leHBvcnQgeyBTdG9yYWdlTWVzc2FnZSB9OyJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/DynamicAtlasManager.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '5c9b8FZiaNLMrMDs9T3rByf', 'DynamicAtlasManager'); -// Script/DynamicAtlasManager.js - -"use strict"; - -cc.Class({ - "extends": cc.Component, - properties: {}, - onLoad: function onLoad() { - cc.dynamicAtlasManager.enabled = false; - } -}); - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEeW5hbWljQXRsYXNNYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwib25Mb2FkIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ0wsYUFBU0QsRUFBRSxDQUFDRSxTQURQO0FBR0xDLEVBQUFBLFVBQVUsRUFBRSxFQUhQO0FBTUxDLEVBQUFBLE1BTkssb0JBTUs7QUFDTkosSUFBQUEsRUFBRSxDQUFDSyxtQkFBSCxDQUF1QkMsT0FBdkIsR0FBaUMsS0FBakM7QUFDSDtBQVJJLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcclxuXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICB9LFxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgY2MuZHluYW1pY0F0bGFzTWFuYWdlci5lbmFibGVkID0gZmFsc2U7XHJcbiAgICB9LFxyXG59KTtcclxuIl19 //------QC-SOURCE-SPLIT------ (function() { @@ -2877,7 +2463,7 @@ cc._RF.pop(); (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/ControlManager.js'; + var __filename = 'preview-scripts/assets/Script/module/Config/GameConfig.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -2885,16 +2471,468 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'e35abcX5VRAoItO6mgFcYyX', 'ControlManager'); -// Script/ControlManager.ts +cc._RF.push(module, 'c5692vnhwNF5J9nI7VNKQNW', 'GameConfig'); +// Script/module/Config/GameConfig.ts + +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GameConfig = void 0; +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var GameConfig = /** @class */ (function () { + function GameConfig() { + } + GameConfig_1 = GameConfig; + Object.defineProperty(GameConfig, "Instance", { + //游戏内信息 + get: function () { + if (this._instance == null) { + this._instance = new GameConfig_1(); + } + return this._instance; + }, + enumerable: false, + configurable: true + }); + //getSeedRandom + GameConfig.init = function (Authentication) { + //@ts-ignore + if (typeof wx !== 'undefined' && wx !== null) { + //@ts-ignore + wx.cloud.init(); + } + this.TA = null; + this.CLICK_init(); + this.GM_INFO_init(); + this.LEVEL_INFO_init(false, 0); + var self = this; + //GAME_DATA 废弃了,暂时不删除以防后面修改回 一整局传一次 + this.GAME_DATA = []; + // if(!Authentication) self.Authentication(); + }; + GameConfig.generateUUID = function () { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0; + var v = c === 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); + }; + // 版本比较函数 + GameConfig.compareVersion = function (v1, v2) { + var arr1 = v1.split('.'); + var arr2 = v2.split('.'); + var len = Math.max(arr1.length, arr2.length); + for (var i = 0; i < len; i++) { + var num1 = parseInt(arr1[i] || '0', 10); + var num2 = parseInt(arr2[i] || '0', 10); + if (num1 > num2) { + return 1; + } + else if (num1 < num2) { + return -1; + } + } + return 0; + }; + GameConfig.GM_INFO_SET = function (key, value) { + this.GM_INFO[key] = value; + }; + GameConfig.CLICK_init = function () { + this.CLICK_DATA = + { + type: 1, + success: false, + round: 0, + getScore: 0, + cumulativeScore: 0, + mapId: "", + difficulty: 0, + optimizedSteps: 0, + usedSteps: 0, + stepList: [], + startTime: -1, + submitTime: -1, + duration: 0, + drawingBack: 0, + drawingReset: 0, + timer: 0 //测评倒计时剩余时间 去秒 + }; + }; + GameConfig.CLICK_SET = function (key, value) { + this.CLICK_DATA[key] = value; + }; + //数据备用 + GameConfig.GM_INFO_init = function () { + var _this = this; + this.GM_INFO = { + // isEnd: false, + mean_Time: 0, + hp: 5, + review: 0, + currSeed: 200000, + openid: "", + gameId: "100001", + userId: 0, + scode: "", + username: "user", + useravatar: "", + guide: true, + url: "https://api.sparkus.cn", + coin: 0, + success: false, + matchId: null, + gameState: false, + custom: 0, + round: 0, + level: 0, + stepTimeList: 0, + successList: [], + first: false, + score: 0, + scale: 1, + min_Steps: 0, + min_Time: 0, + freezeAmount: 0, + hammerAmount: 0, + magicAmount: 0, + musicOpen: true, + effectOpen: true, + vibrateOpen: true, + }; + // this.setCode(this.getKey("scode")); + // this.GM_INFO.level = 0; + cc.resources.load("Json/NEW_LEVEL", function (err, res) { + if (err) { + console.error("加载 NEW_LEVEL.JSON 失败:", err); + return; + } + var newLevelData = res.json; + _this.NEW_LEVEL = newLevelData.NEW_LEVEL; + // 可以根据需求对 newLevelData 进行处理 + // //console.log("NEW_LEVEL.JSON 加载成功:", newLevelData); + }); + }; + GameConfig.LEVEL_INFO_init = function (type, time) { + // 示例 围墙会根据缺的地块自动生成 + // 带缺口 {"id":"1006","map":[10,11],"gap":[cc.v2(4,9),cc.v2(5,9)]}, + // 带升降地块 {"id":"1004","map":[7,8],"risefall":[{pos:cc.v2(5,4),color:2},{pos:cc.v2(5,5),color:5}]}, + // 如果普通的就 {"id":"1001","map":[6,7]}, 这个样子就可以了 + var self = this; + if ((cc.fx.GameConfig.GM_INFO.level) > 156) { + cc.fx.GameConfig.GM_INFO.level = 156; + } + var name = "Json/level" + (cc.fx.GameConfig.GM_INFO.level + 1); + // //console.log("关卡名称:",name); + // name = "Json/level" + 68; + // cc.fx.StorageMessage.setStorage("level",cc.fx.GameConfig.GM_INFO.level.toString()); + cc.resources.load(name, function (err, res) { + if (err) { + cc.fx.GameTool.addLevel(); + self.LEVEL_INFO_init(type, time); + return; + } + var jsonData = res.json; + self.BLOCK_INFO = jsonData["BLOCK_INFO"]; + self.LEVEL_INFO = jsonData["LEVEL_INFO"]; + self.WALL_INFO = jsonData["WALL_INFO"]; + // //console.log("配置加载完成"); + if (type) { + cc.director.preloadScene("GameScene", function () { + if (time == 0) + cc.director.loadScene("GameScene"); + else { + setTimeout(function () { + cc.director.loadScene("GameScene"); + }, time); + } + }); + } + }); + //道具位置信息 + this.PROP_INFO = [ + { + "pos1": { "x": -66, "y": 60, "z": 0 }, + "pos2": { "x": -19, "y": 36, "z": 0 }, + "pos3": { "x": -34.362, "y": 13.246, "z": 0 }, + "pos4": { "x": -17, "y": 12, "z": 0 }, + "pos5": { "x": -85, "y": 70, "z": 0 }, + "pos6": { "x": -5, "y": 3, "z": 0 }, + }, + { + "pos1": { "x": -126, "y": 61, "z": 0 }, + "pos2": { "x": -25.792, "y": 34.675, "z": 0 }, + "pos3": { "x": -94.792, "y": 21.675, "z": 0 }, + "pos4": { "x": -20, "y": 13, "z": 0 }, + "pos5": { "x": -140, "y": 68, "z": 0 }, + "pos6": { "x": -2, "y": 0, "z": 0 }, + }, + { + "pos1": { "x": -67, "y": 122, "z": 0 }, + "pos2": { "x": -20, "y": 94, "z": 0 }, + "pos3": { "x": -34.792, "y": 23.675, "z": 0 }, + "pos4": { "x": -14, "y": 24, "z": 0 }, + "pos5": { "x": -84, "y": 128, "z": 0 }, + "pos6": { "x": -5, "y": 3, "z": 0 }, + }, + { + "pos1": { "x": -178, "y": 61, "z": 0 }, + "pos2": { "x": -34.792, "y": 37.675, "z": 0 }, + "pos3": { "x": -150, "y": 23.675, "z": 0 }, + "pos4": { "x": -22, "y": 16, "z": 0 }, + "pos5": { "x": -200, "y": 67, "z": 0 }, + "pos6": { "x": 0, "y": 0, "z": 0 }, + }, + { + "pos1": { "x": -63, "y": 178, "z": 0 }, + "pos2": { "x": -17.792, "y": 166.675, "z": 0 }, + "pos3": { "x": -31.792, "y": 33.675, "z": 0 }, + "pos4": { "x": -14, "y": 37, "z": 0 }, + "pos5": { "x": -78, "y": 182, "z": 0 }, + "pos6": { "x": 0, "y": 2, "z": 0 }, + }, + { + "pos1": { "x": -123, "y": 124, "z": 0 }, + "pos2": { "x": -25.792, "y": 99.675, "z": 0 }, + "pos3": { "x": -97.792, "y": 27.675, "z": 0 }, + "pos4": { "x": -27, "y": 19, "z": 0 }, + "pos5": { "x": -135, "y": 127, "z": 0 }, + "pos6": { "x": 0, "y": 0, "z": 0 }, + }, + { + "pos1": { "x": -64, "y": 178, "z": 0 }, + "pos2": { "x": -24.792, "y": 275.675, "z": 0 }, + "pos3": { "x": -31.792, "y": 35.675, "z": 0 }, + "pos4": { "x": -7, "y": 39, "z": 0 }, + "pos5": { "x": -77, "y": 188, "z": 0 }, + "pos6": { "x": 0, "y": 0, "z": 0 }, + }, + { + "pos1": { "x": -178, "y": 186, "z": 0 }, + "pos2": { "x": -31.792, "y": 163.675, "z": 0 }, + "pos3": { "x": -33.792, "y": 34.675, "z": 0 }, + "pos4": { "x": -18, "y": 30, "z": 0 }, + "pos5": { "x": -200, "y": 192, "z": 0 }, + "pos6": { "x": 0, "y": 5, "z": 0 }, + }, + { + "pos1": { "x": -186, "y": 178, "z": 0 }, + "pos2": { "x": -25.792, "y": 38.675, "z": 0 }, + "pos3": { "x": -153.792, "y": 34.675, "z": 0 }, + "pos4": { "x": -23, "y": 14, "z": 0 }, + "pos5": { "x": -200, "y": 185, "z": 0 }, + "pos6": { "x": 0, "y": 0, "z": 0 }, + }, + { + "pos1": { "x": -183, "y": 64, "z": 0 }, + "pos2": { "x": -37.792, "y": 37.675, "z": 0 }, + "pos3": { "x": -36.792, "y": 26.675, "z": 0 }, + "pos4": { "x": -24, "y": 17, "z": 0 }, + "pos5": { "x": -212, "y": 74, "z": 0 }, + "pos6": { "x": 0, "y": 0, "z": 0 }, + }, + { + "pos1": { "x": -65, "y": 177, "z": 0 }, + "pos2": { "x": 93.208, "y": 276.675, "z": 0 }, + "pos3": { "x": -33.792, "y": 34.675, "z": 0 }, + "pos4": { "x": 3, "y": 31, "z": 0 }, + "pos5": { "x": -80, "y": 190, "z": 0 }, + "pos6": { "x": 0, "y": 3, "z": 0 }, + }, + { + "pos1": { "x": 58, "y": 179, "z": 0 }, + "pos2": { "x": 205.225, "y": 154.034, "z": 0 }, + "pos3": { "x": -29.642, "y": 25.691, "z": 0 }, + "pos4": { "x": 7.218, "y": 29.765, "z": 0 }, + "pos5": { "x": 45, "y": 185, "z": 0 }, + "pos6": { "x": 0, "y": 0, "z": 0 }, + }, + { + "pos1": { "x": -68, "y": 182, "z": 0 }, + "pos2": { "x": -25.792, "y": 37.675, "z": 0 }, + "pos3": { "x": -35.792, "y": 33.675, "z": 0 }, + "pos4": { "x": -14, "y": 12, "z": 0 }, + "pos5": { "x": -82, "y": 190, "z": 0 }, + "pos6": { "x": -2, "y": 1, "z": 0 }, + }, + { + "pos1": { "x": -184, "y": 62, "z": 0 }, + "pos2": { "x": -35.792, "y": 36.675, "z": 0 }, + "pos3": { "x": -271.792, "y": 24.675, "z": 0 }, + "pos4": { "x": -17, "y": 20, "z": 0 }, + "pos5": { "x": -200, "y": 72, "z": 0 }, + "pos6": { "x": 0, "y": 0, "z": 0 }, + }, + { + "pos1": { "x": -62, "y": 175, "z": 0 }, + "pos2": { "x": 87.208, "y": 164.675, "z": 0 }, + "pos3": { "x": -31.792, "y": 35.675, "z": 0 }, + "pos4": { "x": -6, "y": 24, "z": 0 }, + "pos5": { "x": -79, "y": 172, "z": 0 }, + "pos6": { "x": 0, "y": 5, "z": 0 }, + }, + { + "pos1": { "x": -184, "y": 72, "z": 0 }, + "pos2": { "x": -33.792, "y": 38.675, "z": 0 }, + "pos3": { "x": -154.792, "y": 29.675, "z": 0 }, + "pos4": { "x": -29, "y": 16, "z": 0 }, + "pos5": { "x": -201, "y": 85, "z": 0 }, + "pos6": { "x": -1, "y": 3, "z": 0 }, + }, + { + "pos1": { "x": -64, "y": 181, "z": 0 }, + "pos2": { "x": 95.208, "y": 155.675, "z": 0 }, + "pos3": { "x": -30.792, "y": 36.675, "z": 0 }, + "pos4": { "x": -12, "y": 32, "z": 0 }, + "pos5": { "x": -78, "y": 190, "z": 0 }, + "pos6": { "x": 0, "y": 3, "z": 0 }, + }, + { + "pos1": { "x": -65, "y": 178, "z": 0 }, + "pos2": { "x": -21.792, "y": 156.675, "z": 0 }, + "pos3": { "x": -31.792, "y": 37.675, "z": 0 }, + "pos4": { "x": -12, "y": 32, "z": 0 }, + "pos5": { "x": -78, "y": 188, "z": 0 }, + "pos6": { "x": 0, "y": 2, "z": 0 }, + }, + { + "pos1": { "x": -62, "y": 183, "z": 0 }, + "pos2": { "x": 88.208, "y": 162.675, "z": 0 }, + "pos3": { "x": -29.792, "y": 41.675, "z": 0 }, + "pos4": { "x": -12, "y": 18, "z": 0 }, + "pos5": { "x": -80, "y": 188, "z": 0 }, + "pos6": { "x": -4, "y": 2, "z": 0 }, + }, + { + "pos1": { "x": -67, "y": 80, "z": 0 }, + "pos2": { "x": -26.792, "y": 32.675, "z": 0 }, + "pos3": { "x": -34.792, "y": 23.675, "z": 0 }, + "pos4": { "x": -12, "y": 18, "z": 0 }, + "pos5": { "x": -84, "y": 90, "z": 0 }, + "pos6": { "x": 0, "y": 0, "z": 0 }, + }, + { + "pos1": { "x": -184, "y": 80, "z": 0 }, + "pos2": { "x": -25.792, "y": 34.675, "z": 0 }, + "pos3": { "x": -155.792, "y": 25.675, "z": 0 }, + "pos4": { "x": -18, "y": 26, "z": 0 }, + "pos5": { "x": -196, "y": 96, "z": 0 }, + "pos6": { "x": 0, "y": 0, "z": 0 }, + }, + { + "pos1": { "x": -62, "y": 160, "z": 0 }, + "pos2": { "x": 95.208, "y": 158.675, "z": 0 }, + "pos3": { "x": -33.792, "y": 29.675, "z": 0 }, + "pos4": { "x": -18, "y": 26, "z": 0 }, + "pos5": { "x": -78, "y": 170, "z": 0 }, + "pos6": { "x": 0, "y": 2, "z": 0 }, + }, + { + "pos1": { "x": -68, "y": 160, "z": 0 }, + "pos2": { "x": -25.792, "y": 156.675, "z": 0 }, + "pos3": { "x": -35.792, "y": 27.675, "z": 0 }, + "pos4": { "x": -25, "y": 40, "z": 0 }, + "pos5": { "x": -82, "y": 170, "z": 0 }, + "pos6": { "x": -2, "y": 2, "z": 0 }, + } + ]; + // this.PROP_INFO = [{"pos1": {"x": -60,"y": 60,"z": 0},"pos2": {"x": -16.442,"y": 30,"z": 0},"pos3": {"x": -34.362,"y": 13.246,"z": 0},"pos4": {"x": -17,"y": 12,"z": 0}},{"pos1": {"x": -126,"y": 63,"z": 0},"pos2": {"x": -25.792,"y": 34.675,"z": 0},"pos3": {"x": -94.792,"y": 21.675,"z": 0},"pos4": {"x": -20,"y": 13,"z": 0}},{"pos1": {"x": -60,"y": 125,"z": 0},"pos2": {"x": -12.792,"y": 92.675,"z": 0},"pos3": {"x": -34.792,"y": 23.675,"z": 0},"pos4": {"x": -14,"y": 24,"z": 0}},{"pos1": {"x": -185,"y": 63,"z": 0},"pos2": {"x": -34.792,"y": 37.675,"z": 0},"pos3": {"x": -154.792,"y": 23.675,"z": 0},"pos4": {"x": -22,"y": 16,"z": 0}},{"pos1": {"x": -57,"y": 178,"z": 0},"pos2": {"x": -17.792,"y": 166.675,"z": 0},"pos3": {"x": -31.792,"y": 33.675,"z": 0},"pos4": {"x": -14,"y": 37,"z": 0}},{"pos1": {"x": -123,"y": 127,"z": 0},"pos2": {"x": -25.792,"y": 99.675,"z": 0},"pos3": {"x": -97.792,"y": 27.675,"z": 0},"pos4": {"x": -27,"y": 19,"z": 0}},{"pos1": {"x": -62,"y": 181,"z": 0},"pos2": {"x": -24.792,"y": 275.675,"z": 0},"pos3": {"x": -31.792,"y": 35.675,"z": 0},"pos4": {"x": -7,"y": 39,"z": 0}},{"pos1": {"x": -181,"y": 180,"z": 0},"pos2": {"x": -31.792,"y": 163.675,"z": 0},"pos3": {"x": -33.792,"y": 34.675,"z": 0},"pos4": {"x": -18,"y": 30,"z": 0}},{"pos1": {"x": -182,"y": 182,"z": 0},"pos2": {"x": -25.792,"y": 38.675,"z": 0},"pos3": {"x": -153.792,"y": 34.675,"z": 0},"pos4": {"x": -23,"y": 14,"z": 0}},{"pos1": {"x": -186,"y": 61,"z": 0},"pos2": {"x": -37.792,"y": 37.675,"z": 0},"pos3": {"x": -36.792,"y": 26.675,"z": 0},"pos4": {"x": -24,"y": 17,"z": 0}},{"pos1": {"x": -62,"y": 177,"z": 0},"pos2": {"x": 93.208,"y": 276.675,"z": 0},"pos3": {"x": -33.792,"y": 34.675,"z": 0},"pos4": {"x": 3,"y": 31,"z": 0}},{"pos1": {"x": 58,"y": 179,"z": 0},"pos2": {"x": 205.225,"y": 154.034,"z": 0},"pos3": {"x": -29.642,"y": 25.691,"z": 0},"pos4": {"x": 7.218,"y": 29.765,"z": 0}},{"pos1": {"x": -57,"y": 182,"z": 0},"pos2": {"x": -25.792,"y": 37.675,"z": 0},"pos3": {"x": -35.792,"y": 33.675,"z": 0},"pos4": {"x": -14,"y": 12,"z": 0}},{"pos1": {"x": -180,"y": 62,"z": 0},"pos2": {"x": -35.792,"y": 36.675,"z": 0},"pos3": {"x": -271.792,"y": 24.675,"z": 0},"pos4": {"x": -17,"y": 20,"z": 0}},{"pos1": {"x": -62,"y": 178,"z": 0},"pos2": {"x": 87.208,"y": 164.675,"z": 0},"pos3": {"x": -31.792,"y": 35.675,"z": 0},"pos4": {"x": -6,"y": 24,"z": 0}},{"pos1": {"x": -176,"y": 60,"z": 0},"pos2": {"x": -33.792,"y": 38.675,"z": 0},"pos3": {"x": -154.792,"y": 29.675,"z": 0},"pos4": {"x": -29,"y": 16,"z": 0}},{"pos1": {"x": -60,"y": 181,"z": 0},"pos2": {"x": 95.208,"y": 155.675,"z": 0},"pos3": {"x": -30.792,"y": 36.675,"z": 0},"pos4": {"x": -12,"y": 32,"z": 0}},{"pos1": {"x": -63,"y": 178,"z": 0},"pos2": {"x": -21.792,"y": 156.675,"z": 0},"pos3": {"x": -31.792,"y": 37.675,"z": 0},"pos4": {"x": -12,"y": 32,"z": 0}},{"pos1": {"x": -60,"y": 183,"z": 0},"pos2": {"x": 88.208,"y": 162.675,"z": 0},"pos3": {"x": -29.792,"y": 41.675,"z": 0},"pos4": {"x": -12,"y": 18,"z": 0}},{"pos1": {"x": -64,"y": 58,"z": 0},"pos2": {"x": -26.792,"y": 32.675,"z": 0},"pos3": {"x": -34.792,"y": 23.675,"z": 0},"pos4": {"x": -12,"y": 18,"z": 0}},{"pos1": {"x": -184,"y": 62,"z": 0},"pos2": {"x": -25.792,"y": 34.675,"z": 0},"pos3": {"x": -155.792,"y": 25.675,"z": 0},"pos4": {"x": -18,"y": 26,"z": 0}},{"pos1": {"x": -57,"y": 190,"z": 0},"pos2": {"x": 95.208,"y": 158.675,"z": 0},"pos3": {"x": -33.792,"y": 29.675,"z": 0},"pos4": {"x": -18,"y": 26,"z": 0}},{"pos1": {"x": -71,"y": 184,"z": 0},"pos2": {"x": -25.792,"y": 156.675,"z": 0},"pos3": {"x": -35.792,"y": 27.675,"z": 0},"pos4": {"x": -25,"y": 40,"z": 0}}]; + }; + GameConfig.setCode = function (code) { + this.GM_INFO.scode = code; + }; + GameConfig.getKey = function (key) { + // var reg = new RegExp('(^|&)' + key + '=([^&]*)(&|$)', 'i'); + // var r = window.location.search.substring(1).match(reg); + // if (r != null) { + // return unescape(r[2]); + // } + return ""; + }; + GameConfig.Authentication = function () { + cc.fx.GameTool.Authentication(); + }; + var GameConfig_1; + //所有控制信息都通过GameAppStart内控制 + GameConfig._instance = null; + GameConfig = GameConfig_1 = __decorate([ + ccclass('GameConfig') + ], GameConfig); + return GameConfig; +}()); +exports.GameConfig = GameConfig; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENvbmZpZ1xcR2FtZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJTSxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUU1QztJQUFBO0lBb2VBLENBQUM7bUJBcGVZLFVBQVU7SUF3Rm5CLHNCQUFXLHNCQUFRO1FBRm5CLE9BQU87YUFFUDtZQUVJLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQzFCO2dCQUNJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxZQUFVLEVBQUUsQ0FBQzthQUNyQztZQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixDQUFDOzs7T0FBQTtJQUNELGVBQWU7SUFDUixlQUFJLEdBQVgsVUFBWSxjQUFjO1FBQ2YsWUFBWTtRQUNuQixJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzFDLFlBQVk7WUFDWixFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1NBR25CO1FBRUQsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDZixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUNoQixDQUFBO1FBR0QsNkNBQTZDO0lBQ2pELENBQUM7SUFJTSx1QkFBWSxHQUFuQjtRQUNJLE9BQU8sc0NBQXNDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFTLENBQUM7WUFDckUsSUFBTSxDQUFDLEdBQUcsSUFB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LENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztxQkFDWjtnQkFDTCxDQUFDLENBQUMsQ0FBQTthQUNMO1FBRVQsQ0FBQyxDQUFDLENBQUE7UUFHSCxRQUFRO1FBQ1QsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNYO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3RDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUN0QztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3JDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3BDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3JDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3JDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzNDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNwQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3RDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7U0FDSixDQUFDO1FBQ0osNGdIQUE0Z0g7SUFDOWdILENBQUM7SUFJTSxrQkFBTyxHQUFkLFVBQWUsSUFBSTtRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRU0saUJBQU0sR0FBYixVQUFjLEdBQUc7UUFDYiw4REFBOEQ7UUFDOUQsMERBQTBEO1FBQzFELG1CQUFtQjtRQUNuQiw2QkFBNkI7UUFDN0IsSUFBSTtRQUNKLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUdNLHlCQUFjLEdBQXJCO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7SUFsZUQsMEJBQTBCO0lBQ1gsb0JBQVMsR0FBZ0IsSUFBSSxDQUFDO0lBRnBDLFVBQVU7UUFEdEIsT0FBTyxDQUFDLFlBQVksQ0FBQztPQUNULFVBQVUsQ0FvZXRCO0lBQUQsaUJBQUM7Q0FwZUQsQUFvZUMsSUFBQTtBQXBlWSxnQ0FBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBHYW1lVG9vbCB9IGZyb20gXCIuLi9Ub29sL0dhbWVUb29sXCI7XHJcblxyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuQGNjY2xhc3MoJ0dhbWVDb25maWcnKVxyXG5leHBvcnQgY2xhc3MgR2FtZUNvbmZpZyAge1xyXG4gICAgLy/miYDmnInmjqfliLbkv6Hmga/pg73pgJrov4dHYW1lQXBwU3RhcnTlhoXmjqfliLZcclxuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZSA6IEdhbWVDb25maWcgPSBudWxsO1xyXG5cclxuICAgIHN0YXRpYyBHQU1FX0RBVEE6IGFueVtdO1xyXG4gICAgLy/lhbPljaHmlbDmja5cclxuICAgIC8v55So5oi36ZyA6KaB5a2Y5YKo5Zyo5pys5Zyw55qE5pWw5o2u77yMIOmHkeW4ge+8jOWFs+WNoeetiee6p++8jOS9k+WKm+WAvOS7peWPiuaBouWkje+8jOmBk+WFt+aVsOmHj+OAglxyXG4gICAgXHJcblxyXG4gICAgc3RhdGljIENVU1RPTV9JTkZPOiB7XHJcbiAgICAgICAgbW92ZVNwZWVkOiBudW1iZXI7IC8v5rSq5bOw56e75Yqo6YCf5bqmXHJcbiAgICAgICAgd2FpdFRpbWU6IG51bWJlcjsgLy/mtKrls7DlhrLlh7vlgJLorqHml7ZcclxuICAgICAgICBmYXN0UGF0aDogbnVtYmVyOyAvL+acgOefrei3r+W+hFxyXG4gICAgfVtdO1xyXG4gICAgc3RhdGljIFRJTUVfSU5GTzoge1xyXG4gICAgICAgIHdhdGVyU3BlZWQ6IG51bWJlcltdOyAvL+a0quWzsOmAn+W6plxyXG4gICAgICAgIHRvdGFsVGltZTogbnVtYmVyOyAvL+a4uOaIj+aAu+aXtumVv1xyXG4gICAgICAgIHdhdGVyVGltZTogbnVtYmVyW107IC8v5rSq5bOw5p2l55qE5YCS6K6h5pe2XHJcbiAgICAgICAgcm9hZFNwZWVkOiBudW1iZXI7IC8v5rKz6YGT5L+u562R6YCf5bqmXHJcbiAgICAgICAgUmVpbmZvcmNlU3BlZWQ6IG51bWJlcjsgLy/liqDlm7rml7bpl7TpgJ/luqZcclxuICAgICAgICBYaV9Tb2lsU3BlZWQ6IG51bWJlcjtcclxuICAgIH07XHJcbiAgICAvL+eUqOS6juebm+aUvuWfi+eCueaVsOaNruS4iuS8oO+8jOavj+asoeS4iuS8oOWQjua4heepulxyXG4gICAgc3RhdGljIENMSUNLX0RBVEE6IHtcclxuICAgICAgICB0eXBlOiBudW1iZXI7IC8v5LiK5Lyg5pWw5o2u57G75Z6LXHJcbiAgICAgICAgc3VjY2VzczogYm9vbGVhbjsgLy/mraTlsYDmuLjmiI/mraPnoa7kuI7lkKZcclxuICAgICAgICByb3VuZDogbnVtYmVyOyAvL+WbnuWQiOaVsOi9ruasoVxyXG4gICAgICAgIGdldFNjb3JlOiBudW1iZXI7IC8v5pys6L2u5b6X5YiG77yM5aSx6LSl5Li6MOWIhlxyXG4gICAgICAgIGN1bXVsYXRpdmVTY29yZTogbnVtYmVyOyAvL+acrOWJp+a4uOaIj+aAu+iuoeW+l+WIhlxyXG4gICAgICAgIG1hcElkOiBzdHJpbmc7IC8v5Zyw5Zu+SURcclxuICAgICAgICBkaWZmaWN1bHR5OiBudW1iZXI7IC8v5Zyw5Zu+6Zq+5bqmXHJcbiAgICAgICAgb3B0aW1pemVkU3RlcHM6IG51bWJlcjsgLy/lhbPljaHmnIDnn63mraXmlbBcclxuICAgICAgICB1c2VkU3RlcHM6IG51bWJlcjsgLy/njqnlrrbkv67lu7rmgLvmraXmlbBcclxuICAgICAgICBzdGVwTGlzdDogYW55W107IC8vVeOAgUTjgIFM44CBUiAgIFgg5oGv5aOkICAgRiDliqDlm7pcclxuICAgICAgICBzdGFydFRpbWU6IG51bWJlcjsgLy/ku47muLjmiI/lvIDlp4vliLDnjqnlrrbmk43kvZznmoTnrKzkuIDmraXmiKrmraLml7bpl7QgIOWNleS9jeavq+enklxyXG4gICAgICAgIHN1Ym1pdFRpbWU6IG51bWJlcjsgLy/ku47nrKzkuIDmraXmk43kvZzliLDmj5DkuqTml7bpl7TvvIzlpoLmnpzmnKrmj5DkuqTkuLotMSDljZXkvY3mr6vnp5JcclxuICAgICAgICBkdXJhdGlvbjogbnVtYmVyOyAvL+a4uOaIj+aAu+eUqOaXtu+8iOaIquatouWIsOaPkOS6pO+8iSDljZXkvY3mr6vnp5JcclxuICAgICAgICBkcmF3aW5nQmFjazogbnVtYmVyOyAvL+WQjumAgOasoeaVsFxyXG4gICAgICAgIGRyYXdpbmdSZXNldDogbnVtYmVyOyAvL+a4heepuuasoeaVsFxyXG4gICAgICAgIHRpbWVyOiBudW1iZXI7ICAvL+a4uOaIj+WAkuiuoeaXtuWJqeS9meaXtumVvyDnp5JcclxuICAgIH07XHJcblxyXG4gICAgc3RhdGljIFRJUF9FUlI6IHN0cmluZ1tdOyAgIC8v5L+u562R5aSx6LSl6ZSZ6K+v5o+Q56S6XHJcblxyXG4gICAgc3RhdGljIEJMT0NLX0lORk86IHt9W11bXTtcclxuICAgIC8vc3RhdGljIFdBTExfSU5GTzogKHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHR5cGU6IG51bWJlcjsgc3BlY2lhbDogbnVtYmVyOyBsZW5ndGg6IG51bWJlcjsgfVtdIHwgeyBpZDogbnVtYmVyOyBudW06IG51bWJlcjsgYmxvY2s6IG51bWJlcjsgY29sb3I6IG51bWJlcjsgdHlwZTogbnVtYmVyOyBzcGVjaWFsOiBudW1iZXI7IH1bXSlbXTtcclxuICAgIHN0YXRpYyBMRVZFTF9JTkZPOiAoeyBpZDogc3RyaW5nOyBtYXA6IG51bWJlcltdOyByaXNlZmFsbD86IHVuZGVmaW5lZDsgZ2FwPzogdW5kZWZpbmVkOyB9IHwgeyBpZDogc3RyaW5nOyBtYXA6IG51bWJlcltdOyByaXNlZmFsbDogeyBwb3M6IGNjLlZlYzI7IGNvbG9yOiBudW1iZXI7IH1bXTsgZ2FwPzogdW5kZWZpbmVkOyB9IHwgeyBpZDogc3RyaW5nOyBtYXA6IG51bWJlcltdOyBnYXA6IGNjLlZlYzJbXTsgcmlzZWZhbGw/OiB1bmRlZmluZWQ7IH0pW107XHJcbiAgICBzdGF0aWMgV0FMTF9JTkZPOiAoKHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHNwZWNpYWw6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGxvY2s/OiB1bmRlZmluZWQ7IH0gfCB7IGlkOiBudW1iZXI7IG51bTogbnVtYmVyOyBibG9jazogbnVtYmVyOyBjb2xvcjogbnVtYmVyOyBzcGVjaWFsOiBudW1iZXI7IGxlbmd0aDogbnVtYmVyOyBsb2NrOiBib29sZWFuOyB9KVtdIHwgKHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHNwZWNpYWw6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGZyZWV6ZT86IHVuZGVmaW5lZDsgfSB8IHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHNwZWNpYWw6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGZyZWV6ZTogbnVtYmVyOyB9KVtdKVtdO1xyXG4gICAgc3RhdGljIFBST1BfSU5GTzogKHsgcG9zMTogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3MyOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczM6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTsgcG9zNDogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3M1OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczY6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTsgfSB8IHsgcG9zMTogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3MyOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczM6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTsgcG9zNDogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3M1OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczY/OiB1bmRlZmluZWQ7IH0pW107XHJcbiAgICBzdGF0aWMgTkVXX0xFVkVMOiBhbnk7XHJcbiAgICBzdGF0aWMgVEE6IGFueTtcclxuICAgIHN0YXRpYyBHTV9JTkZPOiB7XHJcbiAgICAgICAgLy8gaXNFbmQ6IGZhbHNlLCAgICBcclxuICAgICAgICBtZWFuX1RpbWU6IG51bWJlcjsgLy/lubPlnYfmlL7nrq3pgJ/luqZcclxuICAgICAgICBocDogbnVtYmVyOyAvL+S9k+WKm+WAvFxyXG4gICAgICAgIHJldmlldzogbnVtYmVyOyAvL+Wkjea0u+asoeaVsFxyXG4gICAgICAgIC8v5aSN5rS75qyh5pWwXHJcbiAgICAgICAgY3VyclNlZWQ6IG51bWJlcjsgLy/nlKjkuo7pmo/mnLrmlbDnp43lrZBcclxuICAgICAgICBvcGVuaWQ6IHN0cmluZzsgLy/lvq7kv6HnlKjmiLfllK/kuIBpZFxyXG4gICAgICAgIGdhbWVJZDogc3RyaW5nOyAvL+a4uOaIj0lEXHJcbiAgICAgICAgdXNlcklkOiBudW1iZXI7IC8v55So5oi3SURcclxuICAgICAgICBzY29kZTogc3RyaW5nOyAvL+eUqOaIt2NvZGUs5LuO572R6aG15ZCO57yA6I635Y+WXHJcbiAgICAgICAgdXNlcm5hbWU6IHN0cmluZzsgLy/nlKjmiLflkI3np7BcclxuICAgICAgICB1c2VyYXZhdGFyOiBzdHJpbmc7IC8v55So5oi35aS05YOP5Zyw5Z2AXHJcbiAgICAgICAgZ3VpZGU6IGJvb2xlYW47IC8v5piv5ZCm5pyJ5byV5a+8XHJcbiAgICAgICAgdXJsOiBzdHJpbmc7IC8v6K6/6Zeu5Z+f5ZCNXHJcbiAgICAgICAgY29pbjogbnVtYmVyOyAvL+eUqOaIt+mHkeW4gVxyXG4gICAgICAgIHN1Y2Nlc3M6IGJvb2xlYW47IC8v55So5oi35ri45oiP5oiQ5Yqf5LiO5ZCmXHJcbiAgICAgICAgbWF0Y2hJZDogYW55OyAvL+eUqOS6juWfi+eCueS4iuS8oOeahElEXHJcbiAgICAgICAgZ2FtZVN0YXRlOiBib29sZWFuOyBjdXN0b206IG51bWJlcjsgLy/nlKjkuo7mtYvor5Xot7PlhbPljaFcclxuICAgICAgICByb3VuZDogbnVtYmVyOyAvL+WbnuWQiOaVsFxyXG4gICAgICAgIGxldmVsOiBudW1iZXI7IC8v5YW35L2T5ri45oiP5YaF6L+b6KGM5Yiw56ys5Yeg5q2lIFxyXG4gICAgICAgIHN0ZXBUaW1lTGlzdDogbnVtYmVyOyAvL+aVtOWxgOa4uOaIj+eUqOaXtu+8jOeUseS6jua2ieWPiuWcuuaZr+WIh+aNou+8jOaVsOaNrumcgOimgeS/neeVmVxyXG4gICAgICAgIHN1Y2Nlc3NMaXN0OiBhbnlbXTsgLy/mlbTlsYDog5zotJ9cclxuICAgICAgICBmaXJzdDogYm9vbGVhbjsgLy/mmK/lkKbpppbmrKHov5vlhaXmuLjmiI9cclxuICAgICAgICBzY29yZTogbnVtYmVyOyAvL+aAu+W+l+WIhlxyXG4gICAgICAgIHNjYWxlOiBudW1iZXI7IC8v546p5a625oC76K6h5oiQ5Yqf54K554Gr5pWwXHJcbiAgICAgICAgbWluX1N0ZXBzOiBudW1iZXI7IC8v5q+P5qyh5LiK5LiA5oqK5pyA5bCP5q2l5pWwXHJcbiAgICAgICAgbWluX1RpbWU6IG51bWJlcjsgLy/kvZPlipvmgaLlpI3nmoTliankvZnml7bpl7RcclxuICAgICAgICBmcmVlemVBbW91bnQ6IG51bWJlcjsgLy/lhrvnu5PpgZPlhbfmrKHmlbBcclxuICAgICAgICBoYW1tZXJBbW91bnQ6IG51bWJlcjsgLy/plKTlrZDpgZPlhbfmrKHmlbBcclxuICAgICAgICBtYWdpY0Ftb3VudDogbnVtYmVyOyAvL+mtlOazleajkumBk+WFt+asoeaVsFxyXG4gICAgICAgIG11c2ljT3BlbjogYm9vbGVhbjsgLy/pn7PkuZBcclxuICAgICAgICBlZmZlY3RPcGVuOiBib29sZWFuOyAvL+mfs+aViFxyXG4gICAgICAgIHZpYnJhdGVPcGVuOiBib29sZWFuO1xyXG4gICAgfTtcclxuICAgIC8v5ri45oiP5YaF5L+h5oGvXHJcblxyXG4gICAgc3RhdGljIGdldCBJbnN0YW5jZSgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBHYW1lQ29uZmlnKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcclxuICAgIH1cclxuICAgIC8vZ2V0U2VlZFJhbmRvbVxyXG4gICAgc3RhdGljIGluaXQoQXV0aGVudGljYXRpb24pe1xyXG4gICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJyAmJiB3eCAhPT0gbnVsbCkgeyBcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmluaXQoKTtcclxuICAgICAgIFxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuVEEgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuQ0xJQ0tfaW5pdCgpO1xyXG4gICAgICAgIHRoaXMuR01fSU5GT19pbml0KCk7XHJcbiAgICAgICAgdGhpcy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsMCk7XHJcbiAgXHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIC8vR0FNRV9EQVRBIOW6n+W8g+S6hu+8jOaaguaXtuS4jeWIoOmZpOS7pemYsuWQjumdouS/ruaUueWbniDkuIDmlbTlsYDkvKDkuIDmrKFcclxuICAgICAgICB0aGlzLkdBTUVfREFUQSA9IFtcclxuICAgICAgICBdXHJcbiAgIFxyXG5cclxuICAgICAgICAvLyBpZighQXV0aGVudGljYXRpb24pIHNlbGYuQXV0aGVudGljYXRpb24oKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyBnZW5lcmF0ZVVVSUQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbihjKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwO1xyXG4gICAgICAgICAgICBjb25zdCB2ID0gYyA9PT0gJ3gnID8gciA6IChyICYgMHgzIHwgMHg4KTtcclxuICAgICAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOeJiOacrOavlOi+g+WHveaVsFxyXG4gICAgc3RhdGljIGNvbXBhcmVWZXJzaW9uKHYxOiBzdHJpbmcsIHYyOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGFycjEgPSB2MS5zcGxpdCgnLicpO1xyXG4gICAgICAgIGNvbnN0IGFycjIgPSB2Mi5zcGxpdCgnLicpO1xyXG4gICAgICAgIGNvbnN0IGxlbiA9IE1hdGgubWF4KGFycjEubGVuZ3RoLCBhcnIyLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgbnVtMSA9IHBhcnNlSW50KGFycjFbaV0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bTIgPSBwYXJzZUludChhcnIyW2ldIHx8ICcwJywgMTApO1xyXG4gICAgICAgICAgICBpZiAobnVtMSA+IG51bTIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG51bTEgPCBudW0yKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBHTV9JTkZPX1NFVChrZXksdmFsdWUpIHtcclxuICAgICAgICB0aGlzLkdNX0lORk9ba2V5XSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIENMSUNLX2luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5DTElDS19EQVRBID1cclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IDEsICAgICAgICAgICAgLy/kuIrkvKDmlbDmja7nsbvlnotcclxuICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsICAgICAvL+atpOWxgOa4uOaIj+ato+ehruS4juWQplxyXG4gICAgICAgICAgICByb3VuZDogMCwgICAgICAgICAgIC8v5Zue5ZCI5pWw6L2u5qyhXHJcbiAgICAgICAgICAgIGdldFNjb3JlOiAwLCAgICAgICAgLy/mnKzova7lvpfliIbvvIzlpLHotKXkuLow5YiGXHJcbiAgICAgICAgICAgIGN1bXVsYXRpdmVTY29yZTogMCwgLy/mnKzliafmuLjmiI/mgLvorqHlvpfliIZcclxuICAgICAgICAgICAgbWFwSWQ6IFwiXCIsICAgICAgICAgIC8v5Zyw5Zu+SURcclxuICAgICAgICAgICAgZGlmZmljdWx0eTogMCwgICAgICAvL+WcsOWbvumavuW6plxyXG4gICAgICAgICAgICBvcHRpbWl6ZWRTdGVwczogMCwgIC8v5YWz5Y2h5pyA55+t5q2l5pWwXHJcbiAgICAgICAgICAgIHVzZWRTdGVwczogMCwgICAgICAgLy/njqnlrrbkv67lu7rmgLvmraXmlbBcclxuICAgICAgICAgICAgc3RlcExpc3Q6IFtdLCAgICAgICAvL1XjgIFE44CBTOOAgVIgICBYIOaBr+WjpCAgIEYg5Yqg5Zu6XHJcbiAgICAgICAgICAgIHN0YXJ0VGltZTotMSwgICAgICAgIC8v5LuO5ri45oiP5byA5aeL5Yiw546p5a625pON5L2c55qE56ys5LiA5q2l5oiq5q2i5pe26Ze0ICDljZXkvY3mr6vnp5JcclxuICAgICAgICAgICAgc3VibWl0VGltZTotMSwgICAgICAgLy/ku47nrKzkuIDmraXmk43kvZzliLDmj5DkuqTml7bpl7TvvIzlpoLmnpzmnKrmj5DkuqTkuLotMSDljZXkvY3mr6vnp5JcclxuICAgICAgICAgICAgZHVyYXRpb246MCwgICAgICAgICAvL+a4uOaIj+aAu+eUqOaXtu+8iOaIquatouWIsOaPkOS6pO+8iSDljZXkvY3mr6vnp5Ig5aaC5p6c5pyq5LuW56e75Lqk5YiZ5Li65pe26Ze05LiK6ZmQXHJcbiAgICAgICAgICAgIGRyYXdpbmdCYWNrOjAsICAgICAgLy/lkI7pgIDmrKHmlbBcclxuICAgICAgICAgICAgZHJhd2luZ1Jlc2V0OjAsICAgICAvL+a4heepuuasoeaVsFxyXG4gICAgICAgICAgICB0aW1lcjogMCAgICAgICAgICAgLy/mtYvor4TlgJLorqHml7bliankvZnml7bpl7Qg5Y6756eSXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgQ0xJQ0tfU0VUKGtleSx2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuQ0xJQ0tfREFUQVtrZXldID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mlbDmja7lpIfnlKhcclxuICAgIHN0YXRpYyBHTV9JTkZPX2luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5HTV9JTkZPID0ge1xyXG4gICAgICAgICAgICAvLyBpc0VuZDogZmFsc2UsICAgIFxyXG4gICAgICAgICAgICBtZWFuX1RpbWU6IDAsICAgICAgICAgICAgICAgLy/lubPlnYfmlL7nrq3pgJ/luqZcclxuICAgICAgICAgICAgaHA6IDUsICAgICAgICAgICAgICAgICAgICAgIC8v5L2T5Yqb5YC8XHJcbiAgICAgICAgICAgIHJldmlldzowLCAgICAgICAgICAgICAgICAgICAgLy/lpI3mtLvmrKHmlbBcclxuICAgICAgICAgICAgY3VyclNlZWQ6IDIwMDAwMCwgICAgICAgICAgIC8v55So5LqO6ZqP5py65pWw56eN5a2QXHJcbiAgICAgICAgICAgIG9wZW5pZDpcIlwiLCAgICAgICAgICAgICAgICAgIC8v5b6u5L+h55So5oi35ZSv5LiAaWRcclxuICAgICAgICAgICAgZ2FtZUlkOiBcIjEwMDAwMVwiLCAgICAgICAgICAgLy/muLjmiI9JRFxyXG4gICAgICAgICAgICB1c2VySWQ6IDAsICAgICAgICAgICAgICAgICAgLy/nlKjmiLdJRFxyXG4gICAgICAgICAgICBzY29kZTogXCJcIiwgICAgICAgICAgICAgICAgICAvL+eUqOaIt2NvZGUs5LuO572R6aG15ZCO57yA6I635Y+WXHJcbiAgICAgICAgICAgIHVzZXJuYW1lOlwidXNlclwiLCAgICAgICAgICAgICAgICAvL+eUqOaIt+WQjeensFxyXG4gICAgICAgICAgICB1c2VyYXZhdGFyOlwiXCIsICAgICAgICAgICAgICAvL+eUqOaIt+WktOWDj+WcsOWdgFxyXG4gICAgICAgICAgICBndWlkZTogdHJ1ZSwgICAgICAgICAgICAgICAgIC8v5piv5ZCm5pyJ5byV5a+8XHJcbiAgICAgICAgICAgIHVybDogXCJodHRwczovL2FwaS5zcGFya3VzLmNuXCIsLy/orr/pl67ln5/lkI1cclxuICAgICAgICAgICAgY29pbjogMCwgICAgICAgICAgICAgICAgICAgIC8v55So5oi36YeR5biBXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLCAgICAgICAgICAgICAvL+eUqOaIt+a4uOaIj+aIkOWKn+S4juWQplxyXG4gICAgICAgICAgICBtYXRjaElkOiBudWxsLCAgICAgICAgICAgICAgLy/nlKjkuo7ln4vngrnkuIrkvKDnmoRJRFxyXG4gICAgICAgICAgICBnYW1lU3RhdGU6ZmFsc2UsXHJcbiAgICAgICAgICAgIGN1c3RvbTogMCwgICAgICAgICAgICAgICAgICAvL+eUqOS6jua1i+ivlei3s+WFs+WNoVxyXG4gICAgICAgICAgICByb3VuZDowLCAgICAgICAgICAgICAgICAgICAgLy/lm57lkIjmlbBcclxuICAgICAgICAgICAgbGV2ZWw6IDAsICAgICAgICAgICAgICAgICAgICAvL+WFt+S9k+a4uOaIj+WGhei/m+ihjOWIsOesrOWHoOatpSBcclxuICAgICAgICAgICAgc3RlcFRpbWVMaXN0OjAsICAgICAgICAgICAgIC8v5pW05bGA5ri45oiP55So5pe277yM55Sx5LqO5raJ5Y+K5Zy65pmv5YiH5o2i77yM5pWw5o2u6ZyA6KaB5L+d55WZXHJcbiAgICAgICAgICAgIHN1Y2Nlc3NMaXN0OltdLCAgICAgICAgICAgICAgLy/mlbTlsYDog5zotJ9cclxuICAgICAgICAgICAgZmlyc3Q6ZmFsc2UsICAgICAgICAgICAgICAgICAgICAgIC8v5piv5ZCm6aaW5qyh6L+b5YWl5ri45oiPXHJcbiAgICAgICAgICAgIHNjb3JlOjAsICAgICAgICAgICAgICAgICAgICAvL+aAu+W+l+WIhlxyXG4gICAgICAgICAgICBzY2FsZTogMSwgICAgICAgICAgICAgLy/njqnlrrbmgLvorqHmiJDlip/ngrnngavmlbBcclxuICAgICAgICAgICAgbWluX1N0ZXBzOjAsICAgICAgICAgICAgICAgIC8v5q+P5qyh5LiK5LiA5oqK5pyA5bCP5q2l5pWwXHJcbiAgICAgICAgICAgIG1pbl9UaW1lOjAsICAgICAgICAgICAgICAgICAgLy/kvZPlipvmgaLlpI3nmoTliankvZnml7bpl7RcclxuICAgICAgICAgICAgZnJlZXplQW1vdW50OjAsICAgICAgICAgICAgICAvL+WGu+e7k+mBk+WFt+asoeaVsFxyXG4gICAgICAgICAgICBoYW1tZXJBbW91bnQ6MCwgICAgICAgICAgICAgIC8v6ZSk5a2Q6YGT5YW35qyh5pWwXHJcbiAgICAgICAgICAgIG1hZ2ljQW1vdW50OjAsICAgICAgICAgICAgICAgLy/prZTms5Xmo5LpgZPlhbfmrKHmlbBcclxuICAgICAgICAgICAgbXVzaWNPcGVuOiB0cnVlLCAgICAgICAgICAgICAvL+mfs+S5kFxyXG4gICAgICAgICAgICBlZmZlY3RPcGVuOiB0cnVlLCAgICAgICAgICAgICAvL+mfs+aViFxyXG4gICAgICAgICAgICB2aWJyYXRlT3BlbjogdHJ1ZSwgICAgICAgICAgIC8v6ZyH5YqoXHJcblxyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gdGhpcy5zZXRDb2RlKHRoaXMuZ2V0S2V5KFwic2NvZGVcIikpO1xyXG4gICAgICAgIC8vIHRoaXMuR01fSU5GTy5sZXZlbCA9IDA7XHJcblxyXG5cclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChcIkpzb24vTkVXX0xFVkVMXCIsIChlcnI6IGFueSwgcmVzOiBjYy5Kc29uQXNzZXQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIuWKoOi9vSBORVdfTEVWRUwuSlNPTiDlpLHotKU6XCIsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgbmV3TGV2ZWxEYXRhID0gcmVzLmpzb247XHJcbiAgICAgICAgICAgIHRoaXMuTkVXX0xFVkVMID0gbmV3TGV2ZWxEYXRhLk5FV19MRVZFTDtcclxuICAgICAgICAgICAgLy8g5Y+v5Lul5qC55o2u6ZyA5rGC5a+5IG5ld0xldmVsRGF0YSDov5vooYzlpITnkIZcclxuICAgICAgICAgICAgLy8gLy9jb25zb2xlLmxvZyhcIk5FV19MRVZFTC5KU09OIOWKoOi9veaIkOWKnzpcIiwgbmV3TGV2ZWxEYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzdGF0aWMgTEVWRUxfSU5GT19pbml0KHR5cGUsdGltZSkgeyBcclxuICAgICAgICAvLyDnpLrkvosgICAgICAgICDlm7TlopnkvJrmoLnmja7nvLrnmoTlnLDlnZfoh6rliqjnlJ/miJBcclxuICAgICAgICAvLyDluKbnvLrlj6MgICAgICAge1wiaWRcIjpcIjEwMDZcIixcIm1hcFwiOlsxMCwxMV0sXCJnYXBcIjpbY2MudjIoNCw5KSxjYy52Mig1LDkpXX0sXHJcbiAgICAgICAgLy8g5bim5Y2H6ZmN5Zyw5Z2XICAge1wiaWRcIjpcIjEwMDRcIixcIm1hcFwiOls3LDhdLFwicmlzZWZhbGxcIjpbe3BvczpjYy52Mig1LDQpLGNvbG9yOjJ9LHtwb3M6Y2MudjIoNSw1KSxjb2xvcjo1fV19LFxyXG4gICAgICAgIC8vIOWmguaenOaZrumAmueahOWwsSAge1wiaWRcIjpcIjEwMDFcIixcIm1hcFwiOls2LDddfSwg6L+Z5Liq5qC35a2Q5bCx5Y+v5Lul5LqGXHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG5cclxuXHJcbiAgICAgICAgaWYoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCkgPiAxNTYpe1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAxNTY7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBuYW1lID0gXCJKc29uL2xldmVsXCIgKyAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKzEpO1xyXG5cclxuICAgICAgICAvLyAvL2NvbnNvbGUubG9nKFwi5YWz5Y2h5ZCN56ewOlwiLG5hbWUpO1xyXG4gICAgICAgIC8vIG5hbWUgPSBcIkpzb24vbGV2ZWxcIiArIDY4O1xyXG4gICAgICAgIC8vIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbC50b1N0cmluZygpKTtcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChuYW1lLCAoZXJyOiBhbnksIHJlczogY2MuSnNvbkFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuYWRkTGV2ZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICBzZWxmLkxFVkVMX0lORk9faW5pdCh0eXBlLHRpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBqc29uRGF0YTogb2JqZWN0ID0gcmVzLmpzb24hO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5CTE9DS19JTkZPID0ganNvbkRhdGFbXCJCTE9DS19JTkZPXCJdO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5MRVZFTF9JTkZPID0ganNvbkRhdGFbXCJMRVZFTF9JTkZPXCJdO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5XQUxMX0lORk8gPSBqc29uRGF0YVtcIldBTExfSU5GT1wiXTtcclxuICAgICAgICAgICAgICAgIC8vIC8vY29uc29sZS5sb2coXCLphY3nva7liqDovb3lrozmiJBcIik7IFxyXG4gICAgICAgICAgICAgICAgaWYodHlwZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIsICgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRpbWUgPT0gMCkgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIH0pXHJcblxyXG5cclxuICAgICAgIC8v6YGT5YW35L2N572u5L+h5oGvXHJcbiAgICAgIHRoaXMuUFJPUF9JTkZPID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY2LCBcInlcIjogNjAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTE5LCBcInlcIjogMzYsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM0LjM2MiwgXCJ5XCI6IDEzLjI0NiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTcsIFwieVwiOiAxMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODUsIFwieVwiOiA3MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAtNSwgXCJ5XCI6IDMsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtMTI2LCBcInlcIjogNjEsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTI1Ljc5MiwgXCJ5XCI6IDM0LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtOTQuNzkyLCBcInlcIjogMjEuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0yMCwgXCJ5XCI6IDEzLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC0xNDAsIFwieVwiOiA2OCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAtMiwgXCJ5XCI6IDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjcsIFwieVwiOiAxMjIsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTIwLCBcInlcIjogOTQsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM0Ljc5MiwgXCJ5XCI6IDIzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTQsIFwieVwiOiAyNCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODQsIFwieVwiOiAxMjgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogLTUsIFwieVwiOiAzLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTE3OCwgXCJ5XCI6IDYxLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zNC43OTIsIFwieVwiOiAzNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTE1MCwgXCJ5XCI6IDIzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjIsIFwieVwiOiAxNiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMjAwLCBcInlcIjogNjcsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDAsIFwielwiOiAwIH0sICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjMsIFwieVwiOiAxNzgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTE3Ljc5MiwgXCJ5XCI6IDE2Ni42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTMxLjc5MiwgXCJ5XCI6IDMzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTQsIFwieVwiOiAzNywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtNzgsIFwieVwiOiAxODIsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDIsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtMTIzLCBcInlcIjogMTI0LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNS43OTIsIFwieVwiOiA5OS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTk3Ljc5MiwgXCJ5XCI6IDI3LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjcsIFwieVwiOiAxOSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMTM1LCBcInlcIjogMTI3LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY0LCBcInlcIjogMTc4LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNC43OTIsIFwieVwiOiAyNzUuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zMS43OTIsIFwieVwiOiAzNS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTcsIFwieVwiOiAzOSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtNzcsIFwieVwiOiAxODgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtMTc4LCBcInlcIjogMTg2LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zMS43OTIsIFwieVwiOiAxNjMuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zMy43OTIsIFwieVwiOiAzNC42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTE4LCBcInlcIjogMzAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTIwMCwgXCJ5XCI6IDE5MiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogNSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC0xODYsIFwieVwiOiAxNzgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTI1Ljc5MiwgXCJ5XCI6IDM4LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMTUzLjc5MiwgXCJ5XCI6IDM0LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjMsIFwieVwiOiAxNCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMjAwLCBcInlcIjogMTg1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTE4MywgXCJ5XCI6IDY0LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zNy43OTIsIFwieVwiOiAzNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM2Ljc5MiwgXCJ5XCI6IDI2LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjQsIFwieVwiOiAxNywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMjEyLCBcInlcIjogNzQsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjUsIFwieVwiOiAxNzcsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogOTMuMjA4LCBcInlcIjogMjc2LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMzMuNzkyLCBcInlcIjogMzQuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IDMsIFwieVwiOiAzMSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODAsIFwieVwiOiAxOTAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDMsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiA1OCwgXCJ5XCI6IDE3OSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAyMDUuMjI1LCBcInlcIjogMTU0LjAzNCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMjkuNjQyLCBcInlcIjogMjUuNjkxLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IDcuMjE4LCBcInlcIjogMjkuNzY1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IDQ1LCBcInlcIjogMTg1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY4LCBcInlcIjogMTgyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNS43OTIsIFwieVwiOiAzNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM1Ljc5MiwgXCJ5XCI6IDMzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTQsIFwieVwiOiAxMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODIsIFwieVwiOiAxOTAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogLTIsIFwieVwiOiAxLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTE4NCwgXCJ5XCI6IDYyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zNS43OTIsIFwieVwiOiAzNi42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTI3MS43OTIsIFwieVwiOiAyNC42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTE3LCBcInlcIjogMjAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTIwMCwgXCJ5XCI6IDcyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTYyLCBcInlcIjogMTc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IDg3LjIwOCwgXCJ5XCI6IDE2NC42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTMxLjc5MiwgXCJ5XCI6IDM1LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtNiwgXCJ5XCI6IDI0LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC03OSwgXCJ5XCI6IDE3MiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogNSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC0xODQsIFwieVwiOiA3MiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAtMzMuNzkyLCBcInlcIjogMzguNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0xNTQuNzkyLCBcInlcIjogMjkuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0yOSwgXCJ5XCI6IDE2LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC0yMDEsIFwieVwiOiA4NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAtMSwgXCJ5XCI6IDMsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjQsIFwieVwiOiAxODEsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogOTUuMjA4LCBcInlcIjogMTU1LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMzAuNzkyLCBcInlcIjogMzYuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0xMiwgXCJ5XCI6IDMyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC03OCwgXCJ5XCI6IDE5MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02NSwgXCJ5XCI6IDE3OCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAtMjEuNzkyLCBcInlcIjogMTU2LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMzEuNzkyLCBcInlcIjogMzcuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0xMiwgXCJ5XCI6IDMyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC03OCwgXCJ5XCI6IDE4OCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02MiwgXCJ5XCI6IDE4MywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiA4OC4yMDgsIFwieVwiOiAxNjIuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0yOS43OTIsIFwieVwiOiA0MS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTEyLCBcInlcIjogMTgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTgwLCBcInlcIjogMTg4LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IC00LCBcInlcIjogMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02NywgXCJ5XCI6IDgwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNi43OTIsIFwieVwiOiAzMi42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM0Ljc5MiwgXCJ5XCI6IDIzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTIsIFwieVwiOiAxOCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODQsIFwieVwiOiA5MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC0xODQsIFwieVwiOiA4MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAtMjUuNzkyLCBcInlcIjogMzQuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0xNTUuNzkyLCBcInlcIjogMjUuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0xOCwgXCJ5XCI6IDI2LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC0xOTYsIFwieVwiOiA5NiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02MiwgXCJ5XCI6IDE2MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiA5NS4yMDgsIFwieVwiOiAxNTguNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zMy43OTIsIFwieVwiOiAyOS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTE4LCBcInlcIjogMjYsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTc4LCBcInlcIjogMTcwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY4LCBcInlcIjogMTYwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNS43OTIsIFwieVwiOiAxNTYuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zNS43OTIsIFwieVwiOiAyNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTI1LCBcInlcIjogNDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTgyLCBcInlcIjogMTcwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IC0yLCBcInlcIjogMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF07XHJcbiAgICAgIC8vIHRoaXMuUFJPUF9JTkZPID0gW3tcInBvczFcIjoge1wieFwiOiAtNjAsXCJ5XCI6IDYwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMTYuNDQyLFwieVwiOiAzMCxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM0LjM2MixcInlcIjogMTMuMjQ2LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTcsXCJ5XCI6IDEyLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xMjYsXCJ5XCI6IDYzLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC05NC43OTIsXCJ5XCI6IDIxLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTIwLFwieVwiOiAxMyxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjAsXCJ5XCI6IDEyNSxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTEyLjc5MixcInlcIjogOTIuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzQuNzkyLFwieVwiOiAyMy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNCxcInlcIjogMjQsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4NSxcInlcIjogNjMsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0zNC43OTIsXCJ5XCI6IDM3LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTE1NC43OTIsXCJ5XCI6IDIzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTIyLFwieVwiOiAxNixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNTcsXCJ5XCI6IDE3OCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTE3Ljc5MixcInlcIjogMTY2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMzMuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTQsXCJ5XCI6IDM3LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xMjMsXCJ5XCI6IDEyNyxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogOTkuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtOTcuNzkyLFwieVwiOiAyNy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yNyxcInlcIjogMTksXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTYyLFwieVwiOiAxODEsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0yNC43OTIsXCJ5XCI6IDI3NS42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMS43OTIsXCJ5XCI6IDM1LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTcsXCJ5XCI6IDM5LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODEsXCJ5XCI6IDE4MCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMTYzLjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMzLjc5MixcInlcIjogMzQuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTgsXCJ5XCI6IDMwLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODIsXCJ5XCI6IDE4MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMzguNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTUzLjc5MixcInlcIjogMzQuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjMsXCJ5XCI6IDE0LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODYsXCJ5XCI6IDYxLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMzcuNzkyLFwieVwiOiAzNy42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zNi43OTIsXCJ5XCI6IDI2LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTI0LFwieVwiOiAxNyxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjIsXCJ5XCI6IDE3NyxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogOTMuMjA4LFwieVwiOiAyNzYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzMuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IDMsXCJ5XCI6IDMxLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IDU4LFwieVwiOiAxNzksXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDIwNS4yMjUsXCJ5XCI6IDE1NC4wMzQsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0yOS42NDIsXCJ5XCI6IDI1LjY5MSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogNy4yMTgsXCJ5XCI6IDI5Ljc2NSxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNTcsXCJ5XCI6IDE4MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMzcuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzUuNzkyLFwieVwiOiAzMy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNCxcInlcIjogMTIsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4MCxcInlcIjogNjIsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0zNS43OTIsXCJ5XCI6IDM2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTI3MS43OTIsXCJ5XCI6IDI0LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE3LFwieVwiOiAyMCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjIsXCJ5XCI6IDE3OCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogODcuMjA4LFwieVwiOiAxNjQuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAzNS42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC02LFwieVwiOiAyNCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTc2LFwieVwiOiA2MCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTMzLjc5MixcInlcIjogMzguNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTU0Ljc5MixcInlcIjogMjkuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjksXCJ5XCI6IDE2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogMTgxLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA5NS4yMDgsXCJ5XCI6IDE1NS42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMC43OTIsXCJ5XCI6IDM2LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTEyLFwieVwiOiAzMixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjMsXCJ5XCI6IDE3OCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTIxLjc5MixcInlcIjogMTU2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMzcuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDMyLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogMTgzLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA4OC4yMDgsXCJ5XCI6IDE2Mi42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0yOS43OTIsXCJ5XCI6IDQxLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTEyLFwieVwiOiAxOCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjQsXCJ5XCI6IDU4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjYuNzkyLFwieVwiOiAzMi42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zNC43OTIsXCJ5XCI6IDIzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTEyLFwieVwiOiAxOCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTg0LFwieVwiOiA2MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMzQuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTU1Ljc5MixcInlcIjogMjUuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTgsXCJ5XCI6IDI2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC01NyxcInlcIjogMTkwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA5NS4yMDgsXCJ5XCI6IDE1OC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMy43OTIsXCJ5XCI6IDI5LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE4LFwieVwiOiAyNixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNzEsXCJ5XCI6IDE4NCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMTU2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM1Ljc5MixcInlcIjogMjcuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjUsXCJ5XCI6IDQwLFwielwiOiAwfX1dO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgc3RhdGljIHNldENvZGUoY29kZSl7XHJcbiAgICAgICAgdGhpcy5HTV9JTkZPLnNjb2RlID0gY29kZTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgc3RhdGljIGdldEtleShrZXkpe1xyXG4gICAgICAgIC8vIHZhciByZWcgPSBuZXcgUmVnRXhwKCcoXnwmKScgKyBrZXkgKyAnPShbXiZdKikoJnwkKScsICdpJyk7XHJcbiAgICAgICAgLy8gdmFyIHIgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKS5tYXRjaChyZWcpO1xyXG4gICAgICAgIC8vIGlmIChyICE9IG51bGwpIHtcclxuICAgICAgICAvLyAgICAgcmV0dXJuIHVuZXNjYXBlKHJbMl0pO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhdGljIEF1dGhlbnRpY2F0aW9uKCl7XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuQXV0aGVudGljYXRpb24oKTtcclxuICAgIH1cclxufVxyXG5cclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/DynamicAtlasManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '5c9b8FZiaNLMrMDs9T3rByf', 'DynamicAtlasManager'); +// Script/DynamicAtlasManager.js + +"use strict"; + +cc.Class({ + "extends": cc.Component, + properties: {}, + onLoad: function onLoad() { + cc.dynamicAtlasManager.enabled = false; + } +}); + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEeW5hbWljQXRsYXNNYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwib25Mb2FkIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ0wsYUFBU0QsRUFBRSxDQUFDRSxTQURQO0FBR0xDLEVBQUFBLFVBQVUsRUFBRSxFQUhQO0FBTUxDLEVBQUFBLE1BTkssb0JBTUs7QUFDTkosSUFBQUEsRUFBRSxDQUFDSyxtQkFBSCxDQUF1QkMsT0FBdkIsR0FBaUMsS0FBakM7QUFDSDtBQVJJLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcclxuXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICB9LFxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgY2MuZHluYW1pY0F0bGFzTWFuYWdlci5lbmFibGVkID0gZmFsc2U7XHJcbiAgICB9LFxyXG59KTtcclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Music/AudioManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '58403/n16JCa5sZhNMjZzGo', 'AudioManager'); +// Script/module/Music/AudioManager.ts "use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || @@ -2916,187 +2954,249 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, }; Object.defineProperty(exports, "__esModule", { value: true }); var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var NewClass = /** @class */ (function (_super) { - __extends(NewClass, _super); - function NewClass() { +var AudioManager = /** @class */ (function (_super) { + __extends(AudioManager, _super); + function AudioManager() { var _this = _super !== null && _super.apply(this, arguments) || this; - _this.Map = null; - _this.tip = null; - _this.reinforce = null; - _this.soil = null; + //背景音乐 + _this.audioGameBgm0 = null; + _this.xiaochu = null; + _this.hit = null; + _this.down = null; + _this.fangxiang = null; + _this.build = null; + _this.win = null; + _this.lose = null; + _this.anniu_Big = null; + _this.anniu_little = null; + _this.zhuan1 = null; + _this.zhuan2 = null; return _this; - // update (dt) {} } - // LIFE-CYCLE CALLBACKS: - // onLoad () {} - NewClass.prototype.start = function () { - this.tipArray = []; - this.controlArray = []; - this.canTouch = true; - this.Reinforce = false; - this.Soil = false; - this.mapHeight = 0; - }; - NewClass.prototype.setPosition = function (tip) { - tip.setPosition(30, -25); - if (this.tipArray.length > 0) { - var length = this.tipArray.length + 1; - var posY = Math.ceil(length / 8) - 1; - var posX = length - Math.floor(posY) * 8 - 1; - tip.setPosition(30 + 48 * posX, -25 - 48 * posY + this.mapHeight); - } - }; - //清空所有 - NewClass.prototype.removeAllTip = function () { - if (!this.canTouch) - return; - if (this.tipArray.length > 0) { - cc.fx.AudioManager._instance.playEffect("qingkong", null); - for (var i = 0; i < this.tipArray.length; i++) { - var tip = this.tipArray[i]; - tip.active = false; - tip.removeFromParent(this.Map); - tip = null; - } - this.tipArray = []; - this.controlArray = []; - var drawingReset = cc.fx.GameConfig.CLICK_DATA.drawingReset + 1; - cc.fx.GameConfig.CLICK_SET("drawingReset", drawingReset); - cc.fx.Notifications.emit(cc.fx.Message.removeTip, "remove"); - this.mapHeight = 0; - } - }; - //撤回一步 - NewClass.prototype.back_Click = function () { - if (!this.canTouch) - return; - if (this.tipArray.length > 0) { - cc.fx.AudioManager._instance.playEffect("chehui", null); - var tip = this.tipArray[this.tipArray.length - 1]; - tip.active = false; - tip.removeFromParent(this.Map); - tip = null; - this.tipArray.pop(); - this.controlArray.pop(); - var drawingBack = cc.fx.GameConfig.CLICK_DATA.drawingBack + 1; - cc.fx.GameConfig.CLICK_SET("drawingBack", drawingBack); - cc.fx.Notifications.emit(cc.fx.Message.removeTip, "back"); - if (this.tipArray.length >= 24) { - if ((this.tipArray.length) % 8 == 0) { - this.mapMove(false); - } - } - } - }; - //点击事件 - NewClass.prototype.btn_Click = function (target, data) { - var GameManager = this.node.parent.getComponent("GameManager"); - if (GameManager.btnClick == true) { - GameManager.btnClick = false; - cc.fx.Notifications.emit(cc.fx.Message.guideNext); - } - cc.fx.Notifications.emit(cc.fx.Message.control, data); - if (!this.canTouch) - return; - var prefab = this.tip; - if (data == "reinforce" || data == "soil") { - prefab = this[data]; - if (data == "reinforce") { - if (this.Reinforce) { - this.Reinforce = false; - this.back_Click(); - return; - } - else { - cc.fx.AudioManager._instance.playEffect("jineng", null); - this.Reinforce = true; - this.Soil = false; - } - } - else if (data == "soil") { - if (this.Soil) { - this.Soil = false; - this.back_Click(); - return; - } - else { - cc.fx.AudioManager._instance.playEffect("jineng", null); - this.Soil = true; - this.Reinforce = false; - } - } + AudioManager_1 = AudioManager; + AudioManager.prototype.onLoad = function () { + if (AudioManager_1._instance == null) { + AudioManager_1._instance = this; + cc.game.addPersistRootNode(this.node); } else { - cc.fx.AudioManager._instance.playEffect("fangxiang", null); - this.Reinforce = false; - this.Soil = false; - } - var tip = cc.instantiate(prefab); - if (data == "up") - tip.angle = 180; - if (data == "left") - tip.angle = -90; - if (data == "right") - tip.angle = 90; - tip.parent = this.Map; - if (this.controlArray[this.controlArray.length - 1] == "reinforce" || - this.controlArray[this.controlArray.length - 1] == "soil") { - if (data == "reinforce" || data == "soil") { - this.tipArray[this.tipArray.length - 1].removeFromParent(); - this.tipArray[this.tipArray.length - 1] = null; - this.tipArray.pop(); - this.controlArray.pop(); - } - } - this.setPosition(tip); - this.tipArray.push(tip); - this.controlArray.push(data); - if (this.tipArray.length >= 25) { - if ((this.tipArray.length - 1) % 8 == 0) { - this.mapMove(true); - } - } - }; - //地图放不下了上下移动 - NewClass.prototype.mapMove = function (type) { - if (type) - this.mapHeight += 48; - else - this.mapHeight -= 48; - for (var i = 0; i < this.tipArray.length; i++) { - var tip = this.tipArray[i]; - if (type) - tip.y += 48; - else - tip.y -= 48; - } - }; - //点击开始 创建河道 - NewClass.prototype.start_Click = function () { - if (!this.canTouch) return; - this.canTouch = false; - cc.fx.AudioManager._instance.playEffect("build", null); - cc.fx.Notifications.emit(cc.fx.Message.startGame, this.controlArray); + } + this.reward = false; + this.finish = false; + this.rewardCount = 0; + this.ctor(); + this.preload(); }; + AudioManager.prototype.ctor = function () { + this.mAudioMap = {}; + /** + * 默认音量大小 + * @type {number} + */ + this.bgMusicVolume = 0.1; + this.effectMusicVolume = 1; + this.mMusicSwitch = 1; + this.mEffectSwitch = 1; + }; + AudioManager.prototype.play = function (audioSource, loop, callback, isBgMusic) { + // if (isBgMusic && !this.mMusicSwitch) return; + // if (!isBgMusic && !this.mEffectSwitch) return; + var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume; + // if (cc.sys.isBrowser) { + // if(audioSource == this.brickSound){ + // volume = 0.1; + // } + volume = 1; + cc.audioEngine.setEffectsVolume(1); + cc.audioEngine.setMusicVolume(1); + if (audioSource.name == "lose") { + cc.audioEngine.setEffectsVolume(0.5); + } + else { + cc.audioEngine.setEffectsVolume(1); + } + var context = cc.audioEngine.playEffect(audioSource, loop); + if (callback) { + cc.audioEngine.setFinishCallback(context, function () { + callback.call(this); + }.bind(this)); + } + // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src); + this.mAudioMap[audioSource] = context; + return audioSource; + // } else { + // return audioSource; + // } + }; + AudioManager.prototype.save = function () { + // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch); + // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch); + }; + // static get Instance() + // { + // if (this._instance == null) + // { + // this._instance = new AudioManager(); + // } + // return this._instance; + // } + AudioManager.prototype.preload = function () { + if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { + return; + } + var musics = [ + this.audioGameBgm0, + ]; + musics.forEach(function (path) { + }); + }; + AudioManager.prototype.getAudioMusicSwitch = function () { + return this.mMusicSwitch; + }; + AudioManager.prototype.getAudioEffectSwitch = function () { + return this.mEffectSwitch; + }; + AudioManager.prototype.trunAudioSound = function (on) { + this.switchMusic(on); + this.switchEffect(on); + }; + AudioManager.prototype.switchMusic = function (on) { + if (this.mMusicSwitch != (on ? 1 : 0)) { + this.mMusicSwitch = 1 - this.mMusicSwitch; + // this.save(); + } + if (on) { + this.playMusicGame(); + } + else { + this.stopMusic(); + } + }; + AudioManager.prototype.switchEffect = function (on) { + if (this.mEffectSwitch != (on ? 1 : 0)) { + this.mEffectSwitch = 1 - this.mEffectSwitch; + // this.save(); + } + }; + AudioManager.prototype.onHide = function () { + cc.audioEngine.pauseAll(); + }; + AudioManager.prototype.onShow = function () { + cc.audioEngine.resumeAll(); + }; + //播放音效 + AudioManager.prototype.playEffect = function (name, callback) { + if (!cc.fx.GameConfig.GM_INFO.effectOpen) { + return; + } + if (this[name]) + return this.play(this[name], false, callback, this.mEffectSwitch); + }; + AudioManager.prototype.playMusic = function (key, callback, loop) { + if (!cc.fx.GameConfig.GM_INFO.musicOpen) { + return; + } + loop = typeof loop == 'undefined' || loop ? true : false; + this.stopMusic(); + this.mMusicKey = this.play(key, loop, callback, true); + }; + /** + * 游戏背景音乐 + */ + AudioManager.prototype.playMusicGame = function () { + this.stopMusic(); + this.playMusic(this.audioGameBgm0, {}, true); + }; + /** + * 停止背景音乐播放 + */ + AudioManager.prototype.stopMusic = function () { + // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey); + cc.audioEngine.stopAll(); + }; + /** + * 恢复被暂停的背景音乐播放 + */ + AudioManager.prototype.resumeMusic = function () { + // 调用 cc.audioEngine 的 resumeMusic 方法恢复音乐播放 + cc.audioEngine.resumeMusic(); + }; + /* + * 游戏开始音效 + * + */ + AudioManager.prototype.playGameStart = function () { + }; + /* + * 失败的游戏结束 + */ + AudioManager.prototype.playGameOver = function () { + }; + /* + * 成功的游戏结束 + */ + AudioManager.prototype.playGameResultFailed = function () { + }; + /* + * 成功的游戏结束 + */ + AudioManager.prototype.playGameResultSuccess = function () { + }; + /** + * 报警的音效 + */ + /** + * 按钮 + */ + AudioManager.prototype.playAudioButton = function () { + // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch); + }; + var AudioManager_1; __decorate([ - property(cc.Node) - ], NewClass.prototype, "Map", void 0); + property(cc.AudioClip) + ], AudioManager.prototype, "audioGameBgm0", void 0); __decorate([ - property(cc.Prefab) - ], NewClass.prototype, "tip", void 0); + property(cc.AudioClip) + ], AudioManager.prototype, "xiaochu", void 0); __decorate([ - property(cc.Prefab) - ], NewClass.prototype, "reinforce", void 0); + property(cc.AudioClip) + ], AudioManager.prototype, "hit", void 0); __decorate([ - property(cc.Prefab) - ], NewClass.prototype, "soil", void 0); - NewClass = __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "down", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "fangxiang", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "build", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "win", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "lose", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "anniu_Big", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "anniu_little", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "zhuan1", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "zhuan2", void 0); + AudioManager = AudioManager_1 = __decorate([ ccclass - ], NewClass); - return NewClass; + ], AudioManager); + return AudioManager; }(cc.Component)); -exports.default = NewClass; +exports.default = AudioManager; +; +// export { AudioManager }; cc._RF.pop(); } @@ -3109,7 +3209,7 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxDb250cm9sTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXVLQztRQXBLRyxTQUFHLEdBQVksSUFBSSxDQUFDO1FBRXBCLFNBQUcsR0FBYyxJQUFJLENBQUM7UUFFdEIsZUFBUyxHQUFjLElBQUksQ0FBQztRQUU1QixVQUFJLEdBQWMsSUFBSSxDQUFDOztRQTZKdkIsaUJBQWlCO0lBQ3JCLENBQUM7SUFySkcsd0JBQXdCO0lBRXhCLGVBQWU7SUFFZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELDhCQUFXLEdBQVgsVUFBWSxHQUFHO1FBQ1gsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUN4QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7WUFDcEMsSUFB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QUFDOzBDQUNHO0lBVE4sUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXVLNUI7SUFBRCxlQUFDO0NBdktELEFBdUtDLENBdktxQyxFQUFFLENBQUMsU0FBUyxHQXVLakQ7a0JBdktvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBNYXA6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHRpcDogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICByZWluZm9yY2U6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgc29pbDogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIFxyXG5cclxuICAgIHRpcEFycmF5OmFueTtcclxuICAgIGNvbnRyb2xBcnJheTphbnk7XHJcbiAgICBjYW5Ub3VjaDpib29sZWFuO1xyXG4gICAgUmVpbmZvcmNlOmJvb2xlYW47XHJcbiAgICBTb2lsOmJvb2xlYW47XHJcbiAgICBtYXBIZWlnaHQ6bnVtYmVyO1xyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgICAgIHRoaXMudGlwQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY2FuVG91Y2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuUmVpbmZvcmNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tYXBIZWlnaHQgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFBvc2l0aW9uKHRpcCl7XHJcbiAgICAgICAgdGlwLnNldFBvc2l0aW9uKDMwLC0yNSk7XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgbGV0IGxlbmd0aCA9IHRoaXMudGlwQXJyYXkubGVuZ3RoKzE7XHJcbiAgICAgICAgICAgIGxldCBwb3NZID0gTWF0aC5jZWlsKGxlbmd0aC84KSAtIDE7XHJcbiAgICAgICAgICAgIGxldCBwb3NYID0gbGVuZ3RoIC0gTWF0aC5mbG9vcihwb3NZKSo4IC0gMTtcclxuICAgICAgICAgICAgdGlwLnNldFBvc2l0aW9uKDMwICsgNDgqcG9zWCwtMjUgLTQ4KnBvc1kgKyB0aGlzLm1hcEhlaWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/muIXnqbrmiYDmnIlcclxuICAgIHJlbW92ZUFsbFRpcCgpe1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwicWluZ2tvbmdcIixudWxsKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy50aXBBcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W2ldO1xyXG4gICAgICAgICAgICAgICAgdGlwLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGlwLnJlbW92ZUZyb21QYXJlbnQodGhpcy5NYXApO1xyXG4gICAgICAgICAgICAgICAgdGlwID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRpcEFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbEFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHZhciBkcmF3aW5nUmVzZXQgPSBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEuZHJhd2luZ1Jlc2V0ICsgMTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5DTElDS19TRVQoXCJkcmF3aW5nUmVzZXRcIixkcmF3aW5nUmVzZXQpO1xyXG4gICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5yZW1vdmVUaXAsXCJyZW1vdmVcIik7XHJcbiAgICAgICAgICAgIHRoaXMubWFwSGVpZ2h0ID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+aSpOWbnuS4gOatpVxyXG4gICAgYmFja19DbGljaygpe1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiY2hlaHVpXCIsbnVsbCk7XHJcbiAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdO1xyXG4gICAgICAgICAgICB0aXAuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRpcC5yZW1vdmVGcm9tUGFyZW50KHRoaXMuTWFwKTtcclxuICAgICAgICAgICAgdGlwID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy50aXBBcnJheS5wb3AoKTtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sQXJyYXkucG9wKCk7XHJcbiAgICAgICAgICAgIHZhciBkcmF3aW5nQmFjayA9IGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfREFUQS5kcmF3aW5nQmFjayArIDE7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfU0VUKFwiZHJhd2luZ0JhY2tcIixkcmF3aW5nQmFjayk7XHJcbiAgICAgICAgICAgIGNjLmZ4Lk5vdGlmaWNhdGlvbnMuZW1pdChjYy5meC5NZXNzYWdlLnJlbW92ZVRpcCxcImJhY2tcIik7XHJcbiAgICAgICAgICAgIGlmKHRoaXMudGlwQXJyYXkubGVuZ3RoID49IDI0KXtcclxuICAgICAgICAgICAgICAgIGlmKCh0aGlzLnRpcEFycmF5Lmxlbmd0aCApJTggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXBNb3ZlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+eCueWHu+S6i+S7tlxyXG4gICAgYnRuX0NsaWNrKHRhcmdldCxkYXRhKXtcclxuICAgICAgICB2YXIgR2FtZU1hbmFnZXIgPSB0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkdhbWVNYW5hZ2VyXCIpO1xyXG4gICAgICAgIGlmKEdhbWVNYW5hZ2VyLmJ0bkNsaWNrID09IHRydWUpe1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5idG5DbGljayA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5ndWlkZU5leHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5jb250cm9sLGRhdGEpO1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgbGV0IHByZWZhYiA9IHRoaXMudGlwO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJyZWluZm9yY2VcIiB8fCBkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgcHJlZmFiID0gdGhpc1tkYXRhXTtcclxuICAgICAgICAgICAgaWYoZGF0YSA9PSBcInJlaW5mb3JjZVwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuUmVpbmZvcmNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlaW5mb3JjZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFja19DbGljaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImppbmVuZ1wiLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVpbmZvcmNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlNvaWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZihkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuU29pbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWNrX0NsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiamluZW5nXCIsbnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb2lsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlaW5mb3JjZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJmYW5neGlhbmdcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5SZWluZm9yY2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0aXAgPSBjYy5pbnN0YW50aWF0ZShwcmVmYWIpO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJ1cFwiKSB0aXAuYW5nbGUgPSAxODA7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImxlZnRcIikgdGlwLmFuZ2xlID0gLTkwO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJyaWdodFwiKSB0aXAuYW5nbGUgPSA5MDtcclxuICAgICAgICB0aXAucGFyZW50ID0gdGhpcy5NYXA7XHJcbiAgICBcclxuICAgICAgICBpZih0aGlzLmNvbnRyb2xBcnJheVt0aGlzLmNvbnRyb2xBcnJheS5sZW5ndGgtMV0gPT0gXCJyZWluZm9yY2VcIiB8fCBcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sQXJyYXlbdGhpcy5jb250cm9sQXJyYXkubGVuZ3RoLTFdID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgIGlmKGRhdGEgPT0gXCJyZWluZm9yY2VcIiB8fCBkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHRpcCk7XHJcblxyXG4gICAgICAgIHRoaXMudGlwQXJyYXkucHVzaCh0aXApO1xyXG4gICAgICAgIHRoaXMuY29udHJvbEFycmF5LnB1c2goZGF0YSk7XHJcbiAgICBcclxuICAgICAgICBpZih0aGlzLnRpcEFycmF5Lmxlbmd0aCA+PSAyNSl7XHJcbiAgICAgICAgICAgIGlmKCh0aGlzLnRpcEFycmF5Lmxlbmd0aCAtIDEpJTggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcE1vdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+WcsOWbvuaUvuS4jeS4i+S6huS4iuS4i+enu+WKqFxyXG4gICAgbWFwTW92ZSh0eXBlKXtcclxuICAgICAgICBpZih0eXBlKSB0aGlzLm1hcEhlaWdodCArPSA0ODtcclxuICAgICAgICBlbHNlIHRoaXMubWFwSGVpZ2h0IC09IDQ4O1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMudGlwQXJyYXkubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W2ldO1xyXG4gICAgICAgICAgICBpZih0eXBlKXRpcC55ICs9IDQ4O1xyXG4gICAgICAgICAgICBlbHNlIHRpcC55IC09IDQ4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+eCueWHu+W8gOWniyDliJvlu7rmsrPpgZNcclxuICAgIHN0YXJ0X0NsaWNrKCl7XHJcbiAgICAgICAgaWYoIXRoaXMuY2FuVG91Y2gpIHJldHVybjtcclxuICAgICAgICB0aGlzLmNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYnVpbGRcIixudWxsKTtcclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5zdGFydEdhbWUsdGhpcy5jb250cm9sQXJyYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE11c2ljXFxBdWRpb01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUM7SUFBMEMsZ0NBQVk7SUFBdEQ7UUFBQSxxRUF3UEM7UUF0UEcsTUFBTTtRQUVOLG1CQUFhLEdBQWlCLElBQUksQ0FBQztRQUduQyxhQUFPLEdBQWlCLElBQUksQ0FBQztRQUU3QixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixXQUFLLEdBQWlCLElBQUksQ0FBQztRQUUzQixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixrQkFBWSxHQUFpQixJQUFJLENBQUM7UUFFbEMsWUFBTSxHQUFpQixJQUFJLENBQUM7UUFFNUIsWUFBTSxHQUFpQixJQUFJLENBQUM7O0lBNk5oQyxDQUFDO3FCQXhQb0IsWUFBWTtJQXdDN0IsNkJBQU0sR0FBTjtRQUNJLElBQUksY0FBWSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDaEMsY0FBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDOUIsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekM7YUFDSTtZQUNELE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUks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Qzt1REFDWTtJQUduQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2lEQUNNO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7NkNBQ0U7SUFFekI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs4Q0FDRztJQUUxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO21EQUNRO0lBRS9CO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7K0NBQ0k7SUFFM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs2Q0FDRTtJQUV6QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDOzhDQUNHO0lBRTFCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7bURBQ1E7SUFFL0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQztzREFDVztJQUVsQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2dEQUNLO0lBRTVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0RBQ0s7SUEzQlgsWUFBWTtRQURoQyxPQUFPO09BQ2EsWUFBWSxDQXdQaEM7SUFBRCxtQkFBQztDQXhQRCxBQXdQQyxDQXhQeUMsRUFBRSxDQUFDLFNBQVMsR0F3UHJEO2tCQXhQb0IsWUFBWTtBQXdQaEMsQ0FBQztBQUVGLDJCQUEyQiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcbkBjY2NsYXNzXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdWRpb01hbmFnZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcbiAgICAvL+iDjOaZr+mfs+S5kFxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgYXVkaW9HYW1lQmdtMDogY2MuQXVkaW9DbGlwID0gbnVsbDtcblxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgeGlhb2NodTogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGhpdDogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGRvd246IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBmYW5neGlhbmc6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBidWlsZDogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIHdpbjogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGxvc2U6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhbm5pdV9CaWc6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhbm5pdV9saXR0bGU6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICB6aHVhbjE6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICB6aHVhbjI6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG5cbiAgICBtQXVkaW9NYXA6IHt9O1xuICAgIGJnTXVzaWNWb2x1bWU6IG51bWJlcjtcbiAgICBlZmZlY3RNdXNpY1ZvbHVtZTogbnVtYmVyO1xuICAgIG1NdXNpY1N3aXRjaDogbnVtYmVyO1xuICAgIG1FZmZlY3RTd2l0Y2g6IG51bWJlcjtcbiAgICBicmlja1NvdW5kOiBhbnk7XG4gICAgcmV3YXJkOiBib29sZWFuO1xuICAgIGZpbmlzaDogYm9vbGVhbjtcbiAgICByZXdhcmRDb3VudDogbnVtYmVyO1xuICAgIG1NdXNpY0tleTogYW55O1xuXG4gICAgb25Mb2FkKCkge1xuICAgICAgICBpZiAoQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZSA9PSBudWxsKSB7XG4gICAgICAgICAgICBBdWRpb01hbmFnZXIuX2luc3RhbmNlID0gdGhpcztcbiAgICAgICAgICAgIGNjLmdhbWUuYWRkUGVyc2lzdFJvb3ROb2RlKHRoaXMubm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXdhcmQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maW5pc2ggPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZXdhcmRDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuY3RvcigpO1xuXG4gICAgICAgIHRoaXMucHJlbG9hZCgpO1xuICAgIH1cblxuICAgIGN0b3IgKCkge1xuICAgICAgICB0aGlzLm1BdWRpb01hcCA9IHt9O1xuICAgICAgICAvKipcbiAgICAgICAgICog6buY6K6k6Z+z6YeP5aSn5bCPXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJnTXVzaWNWb2x1bWUgPSAwLjE7XG4gICAgICAgIHRoaXMuZWZmZWN0TXVzaWNWb2x1bWUgPSAxO1xuXG4gICAgICAgIHRoaXMubU11c2ljU3dpdGNoID0gMTtcbiAgICAgICAgdGhpcy5tRWZmZWN0U3dpdGNoID0gMTtcbiAgICB9XG4gICAgcGxheSAoYXVkaW9Tb3VyY2UsIGxvb3AsIGNhbGxiYWNrLCBpc0JnTXVzaWMpIHtcbiAgICAgICAgLy8gaWYgKGlzQmdNdXNpYyAmJiAhdGhpcy5tTXVzaWNTd2l0Y2gpIHJldHVybjtcbiAgICAgICAgLy8gaWYgKCFpc0JnTXVzaWMgJiYgIXRoaXMubUVmZmVjdFN3aXRjaCkgcmV0dXJuO1xuICAgICAgICB2YXIgdm9sdW1lID0gaXNCZ011c2ljID8gdGhpcy5iZ011c2ljVm9sdW1lIDogdGhpcy5lZmZlY3RNdXNpY1ZvbHVtZTtcblxuICAgICAgICAvLyBpZiAoY2Muc3lzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgLy8gaWYoYXVkaW9Tb3VyY2UgPT0gdGhpcy5icmlja1NvdW5kKXtcbiAgICAgICAgICAgIC8vICAgICB2b2x1bWUgPSAwLjE7XG4gICAgICAgICAgICAvLyB9IFxuICAgICAgICAgICAgdm9sdW1lID0gMTtcbiAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEVmZmVjdHNWb2x1bWUoMSk7XG4gICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRNdXNpY1ZvbHVtZSgxKTtcbiAgICAgICAgICAgIGlmKGF1ZGlvU291cmNlLm5hbWUgPT0gXCJsb3NlXCIpe1xuICAgICAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEVmZmVjdHNWb2x1bWUoMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RWZmZWN0c1ZvbHVtZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gY2MuYXVkaW9FbmdpbmUucGxheUVmZmVjdChhdWRpb1NvdXJjZSwgbG9vcCk7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2spe1xuICAgICAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEZpbmlzaENhbGxiYWNrKGNvbnRleHQsIGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwodGhpcyk7XG4gICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGNjLnd3eC5PdXRQdXQubG9nKCdwbGF5IGF1ZGlvIGVmZmVjdCBpc0Jyb3dzZXI6ICcgKyBjb250ZXh0LnNyYyk7XG5cbiAgICAgICAgICAgIHRoaXMubUF1ZGlvTWFwW2F1ZGlvU291cmNlXSA9IGNvbnRleHQ7XG4gICAgICAgICAgICByZXR1cm4gYXVkaW9Tb3VyY2U7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gYXVkaW9Tb3VyY2U7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBzYXZlICgpIHtcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19NdXNpY19Wb2x1bWUsIHRoaXMubU11c2ljU3dpdGNoKTtcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19FZmZlY3RfVm9sdW1lLCB0aGlzLm1FZmZlY3RTd2l0Y2gpO1xuICAgIH1cblxuICAgIC8vIHN0YXRpYyBnZXQgSW5zdGFuY2UoKVxuICAgIC8vIHtcbiAgICAvLyAgICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpXG4gICAgLy8gICAgIHtcbiAgICAvLyAgICAgICAgIHRoaXMuX2luc3RhbmNlID0gbmV3IEF1ZGlvTWFuYWdlcigpO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcbiAgICAvLyB9XG5cbiAgICBwcmVsb2FkICgpIHtcbiAgICAgICAgaWYgKCEoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHZhciBtdXNpY3MgPSBbXG4gICAgICAgICAgICB0aGlzLmF1ZGlvR2FtZUJnbTAsXG4gICAgICAgIF07XG4gICAgICAgIG11c2ljcy5mb3JFYWNoKGZ1bmN0aW9uKHBhdGgpIHtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBnZXRBdWRpb011c2ljU3dpdGNoKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLm1NdXNpY1N3aXRjaDtcblxuICAgIH1cbiAgICBnZXRBdWRpb0VmZmVjdFN3aXRjaCgpXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5tRWZmZWN0U3dpdGNoO1xuICAgIH1cbiAgICB0cnVuQXVkaW9Tb3VuZChvbilcbiAgICB7XG4gICAgICAgIHRoaXMuc3dpdGNoTXVzaWMob24pO1xuICAgICAgICB0aGlzLnN3aXRjaEVmZmVjdChvbilcbiAgICB9XG4gICAgc3dpdGNoTXVzaWMgKG9uKSB7XG4gICAgICAgIGlmICh0aGlzLm1NdXNpY1N3aXRjaCAhPSAob24/MTowKSlcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5tTXVzaWNTd2l0Y2ggPSAxLXRoaXMubU11c2ljU3dpdGNoO1xuICAgICAgICAgICAgLy8gdGhpcy5zYXZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYob24pXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRoaXMucGxheU11c2ljR2FtZSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzd2l0Y2hFZmZlY3QgKG9uKSB7XG4gICAgICAgIGlmICh0aGlzLm1FZmZlY3RTd2l0Y2ggIT0gKG9uPzE6MCkpe1xuICAgICAgICAgICAgdGhpcy5tRWZmZWN0U3dpdGNoID0gMS10aGlzLm1FZmZlY3RTd2l0Y2g7XG4gICAgICAgICAgICAvLyB0aGlzLnNhdmUoKTtcblxuICAgICAgICB9XG4gICAgfVxuICAgIG9uSGlkZSAoKSB7XG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnBhdXNlQWxsKCk7XG4gICAgfVxuXG4gICAgb25TaG93ICgpIHtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lQWxsKCk7XG4gICAgfVxuXG4gICAgLy/mkq3mlL7pn7PmlYhcbiAgICBwbGF5RWZmZWN0KG5hbWUsY2FsbGJhY2spe1xuICAgICAgICBpZighY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmVmZmVjdE9wZW4pe1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmKHRoaXNbbmFtZV0pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXNbbmFtZV0sIGZhbHNlLGNhbGxiYWNrLHRoaXMubUVmZmVjdFN3aXRjaCk7XG4gICAgfVxuICAgIHBsYXlNdXNpYyAoa2V5LCBjYWxsYmFjaywgbG9vcCkge1xuICAgICAgICBpZighY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbil7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbG9vcCA9IHR5cGVvZiBsb29wID09ICd1bmRlZmluZWQnICB8fCBsb29wID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICB0aGlzLm1NdXNpY0tleSA9IHRoaXMucGxheShrZXksIGxvb3AsIGNhbGxiYWNrLCB0cnVlKTtcblxuICAgIH1cbiAgICAvKipcbiAgICAgKiDmuLjmiI/og4zmma/pn7PkuZBcbiAgICAgKi9cbiAgICBwbGF5TXVzaWNHYW1lICgpIHtcbiAgICAgICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICAgICAgdGhpcy5wbGF5TXVzaWModGhpcy5hdWRpb0dhbWVCZ20wLHt9LHRydWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiDlgZzmraLog4zmma/pn7PkuZDmkq3mlL5cbiAgICAgKi9cbiAgICBzdG9wTXVzaWMgKCkge1xuICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygnc3RvcE11c2ljIGF1ZGlvIGVmZmVjdCB3eDogJyArIHRoaXMubU11c2ljS2V5KTtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc3RvcEFsbCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaBouWkjeiiq+aaguWBnOeahOiDjOaZr+mfs+S5kOaSreaUvlxuICAgICAqL1xuICAgIHJlc3VtZU11c2ljICgpIHtcbiAgICAgICAgLy8g6LCD55SoIGNjLmF1ZGlvRW5naW5lIOeahCByZXN1bWVNdXNpYyDmlrnms5XmgaLlpI3pn7PkuZDmkq3mlL5cbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lTXVzaWMoKTtcbiAgICB9XG5cbiAgICAvKlxuICAgICog5ri45oiP5byA5aeL6Z+z5pWIXG4gICAgKlxuICAgICovXG4gICAgcGxheUdhbWVTdGFydCgpXG4gICAge1xuICAgIFxuICAgIH1cbiAgICAvKlxuICAgICog5aSx6LSl55qE5ri45oiP57uT5p2fXG4gICAgKi9cbiAgICBwbGF5R2FtZU92ZXIoKVxuICAgIHtcblxuICAgIH1cbiAgICAvKlxuICAgICAgICAqIOaIkOWKn+eahOa4uOaIj+e7k+adn1xuICAgICAgICAqL1xuICAgIHBsYXlHYW1lUmVzdWx0RmFpbGVkKClcbiAgICB7XG5cbiAgICB9XG4gICAgLypcbiAgICAqIOaIkOWKn+eahOa4uOaIj+e7k+adn1xuICAgICovXG4gICAgcGxheUdhbWVSZXN1bHRTdWNjZXNzKClcbiAgICB7XG5cbiAgICB9XG4gICAgLyoqXG4gICAgICog5oql6K2m55qE6Z+z5pWIXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiDmjInpkq5cbiAgICAgKi9cbiAgICBwbGF5QXVkaW9CdXR0b24gKCkge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5wbGF5KHRoaXMuYXVkaW9CdXR0b25DbGljaywgZmFsc2UsbnVsbCx0aGlzLm1FZmZlY3RTd2l0Y2gpO1xuICAgIH1cbn07XG5cbi8vIGV4cG9ydCB7IEF1ZGlvTWFuYWdlciB9O1xuIl19 //------QC-SOURCE-SPLIT------ (function() { @@ -3453,7 +3553,7 @@ var GameTool = { return array; }, //增加关卡数 - addLevel: function (time) { + addLevel: function (time1, time2) { cc.fx.GameConfig.GM_INFO.level += 1; if (cc.fx.GameConfig.GM_INFO.level > 156) { cc.fx.GameConfig.GM_INFO.level = 156; @@ -3465,13 +3565,15 @@ var GameTool = { }; // console.log("55555存储关卡数据:",levelInfo); cc.fx.StorageMessage.setStorage("level", levelInfo); - var data = { - time: time.count_Time, - add_Time: time.add_Time, - result: "success" - }; - cc.fx.GameTool.shushu_Track("finish_stage", data); - MiniGameSdk_1.MiniGameSdk.API.shushu_SetSuperProperties(); + if (time1 && time2) { + var data = { + time: time1, + add_Time: time2, + result: "success" + }; + cc.fx.GameTool.shushu_Track("finish_stage", data); + MiniGameSdk_1.MiniGameSdk.API.shushu_SetSuperProperties(); + } cc.fx.GameTool.setUserLevel(function (data) { // console.log("存储结果:",data); // console.log("上传",data); @@ -3982,13 +4084,13 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFRvb2xcXEdhbWVUb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFvRDtBQUVwRCwrQkFBK0I7QUFDL0IsSUFBSSxRQUFRLEdBQUc7SUFDWCxVQUFVLEVBQUUsQ0FBQztJQUNiLFFBQVEsRUFBRSxDQUFDO0lBQ1gsVUFBVSxFQUFFLENBQUM7SUFFYixVQUFVO0lBQ1YsY0FBYztRQUNWLElBQUksSUFBSSxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3JELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUcsSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUM7WUFDOUMsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDbEMsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUM7Z0JBQzNCLElBQUksR0FBRyxHQUFHLDhFQUE4RSxHQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQzthQUM5QjtTQUNKO2FBQ0c7WUFDQSxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzRDtJQUNMLENBQUM7SUFFRCxhQUFhLFlBQUMsR0FBRztRQUNiLE9BQU8sYUFBYSxD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QUM7WUFDakIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sS0FBSyxDQUFDO1lBQ2pCO2dCQUNJLE9BQU8sTUFBTSxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQztDQUVKLENBQUM7QUFDTyw0QkFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4uLy4uL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuLy/mnIDlpKflt6XlhbfnsbsgIOWQhOenjeWFrOWFseaWueazle+8jOS7peWPiuWkhOeQhuS4iuS8oO+8jOiOt+WPluWQjuerr+aOpeWPo+aVsOaNrlxyXG52YXIgR2FtZVRvb2wgPSB7XHJcbiAgICBfc3RhcnRUaW1lOiAwLFxyXG4gICAgX2VuZFRpbWU6IDAsXHJcbiAgICBfdG90YWxUaW1lOiAwLFxyXG4gICAgXHJcbiAgICAvL+iOt+WPlnVzZXJJZFxyXG4gICAgQXV0aGVudGljYXRpb24oKXtcclxuICAgICAgICBsZXQgbmFtZSA9IFwidXNlcl9cIiArIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQ7XHJcbiAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKG5hbWUpKTtcclxuICAgICAgICBpZihkYXRhID09IFwidW5kaWZlbmRcIiB8fCBkYXRhPT1udWxsIHx8IGRhdGEgPT0gXCJcIil7XHJcbiAgICAgICAgICAgIHZhciB1cmxOb3cgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuICAgICAgICAgICAgaWYoIXRoaXMuY29udGFpbnNUcmFpbih1cmxOb3cpKXtcclxuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBcImh0dHBzOi8vYXBpLnNwYXJrdXMuY24vYXBpL3VzZXIvYXV0aC9sb2dpbj9kb21haW49aHVpMzI1NzlXZFlQc2dZcSZjYWxsYmFjaz1cIitsb2NhdGlvbi5ocmVmO1xyXG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShuYW1lLGRhdGEpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID0gcGFyc2VJbnQoZGF0YS51c2VySWQpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgY29udGFpbnNUcmFpbihzdHIpIHtcclxuICAgICAgICByZXR1cm4gL2Zyb209dHJhaW4vaS50ZXN0KHN0cik7XHJcbiAgICB9LFxyXG5cclxuICAgIC8v5Z+L54K55LiK5LygXHJcbiAgICBzZXRHYW1lRGF0YSgpe1xyXG4gICAgICAgIC8vR0FNRV9EQVRBIOWIneWni+WMliDmr4/mrKHmuIXpm7ZcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdBTUVfREFUQSA9IFtdO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR0FNRV9EQVRBLnB1c2goY2MuZnguR2FtZUNvbmZpZy5DTElDS19EQVRBKTtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX2luaXQoKTtcclxuICAgICAgICBsZXQgZGF0YSA9IGNjLmZ4LkdhbWVDb25maWcuR0FNRV9EQVRBO1xyXG4gICAgICAgIGxldCBtYXRjaElkID0gdGhpcy5nZXRNYXRjaElkKCk7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcImdhbWVJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJzY29kZVwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NvZGUsXHJcbiAgICAgICAgICAgIFwibWF0Y2hJZFwiOm1hdGNoSWQsXHJcbiAgICAgICAgICAgIFwiZGF0YVwiOiBkYXRhXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvKDmlbDmja46XCIscG9zdERhdGEpO1xyXG4gICAgICAgIC8vIGNjLmZ4Lkh0dHBVdGlsLnVwbG9hZFVzZXJMb2dEYXRhKHBvc3REYXRhLGZ1bmN0aW9uKCl7fSlcclxuICAgIH0sXHJcbiAgICAvL+S4iuS8oOaOkuihjOamnCAgdHlwZeS4ujFcclxuICAgIHNldFJhbmsoZGF0YSl7XHJcbiAgICAgICAgLy9HQU1FX0RBVEEg5Yid5aeL5YyWIOavj+asoea4hembtlxyXG4gICAgICAgIGxldCBwb3N0RGF0YSA9IHtcclxuICAgICAgICAgICAgXCJnYW1lSWRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZUlkLFxyXG4gICAgICAgICAgICBcInVzZXJJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VySWQsXHJcbiAgICAgICAgICAgIFwidHlwZVwiOjEsXHJcbiAgICAgICAgICAgIFwic2NvcmVcIjogZGF0YS5zY29yZSxcclxuICAgICAgICAgICAgXCJhY2N1cmFjeVwiOiBkYXRhLmRhdGUsXHJcbiAgICAgICAgICAgIFwic3VjY2Vzc1wiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc3VjY2Vzc1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMSxmdW5jdGlvbigpe30scG9zdERhdGEpO1xyXG4gICAgfSxcclxuICAgIC8v6I635Y+W5o6S6KGM5qacIHR5cGXkuLoyXHJcbiAgICBnZXRSYW5rKGRhdGEsY2FsbGJhY2spe1xyXG4gICAgICAgIGxldCByYW5rTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcImdhbWVJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJwYWdlXCI6MSxcclxuICAgICAgICAgICAgXCJwYWdlU2l6ZVwiOnJhbmtMZW5ndGhcclxuICAgICAgICB9OyBcclxuICAgICAgICAvL+Wbnuiwg+i/m2dldFJhbmtEYXRhXHJcbiAgICAgICAgLy8gY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMixkYXRhID0+e2NhbGxiYWNrKGRhdGEpfSxwb3N0RGF0YSk7XHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5ZtYXRjaElkICDnlKjkuo7kuIrkvKDmr4/mrKHngrnlh7vmlbDmja7ph4zpnaLorrDlvZVpZOaWueS+v+afpeivolxyXG4gICAgZ2V0TWF0Y2hJZCAoKXtcclxuICAgICAgICBsZXQgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoSWRcIik7XHJcbiAgICAgICAgbGV0IHRlbXBJZCA9IG1hdGNoSWQ7XHJcbiAgICAgICAgaWYobWF0Y2hJZCA9PSBcInVuZGlmZW5kXCIgfHwgbWF0Y2hJZD09bnVsbCl7XHJcbiAgICAgICAgICAgIG1hdGNoSWQgPSAgdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29udGFpbnNOYW5hbmEobWF0Y2hJZCkgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICBtYXRjaElkID0gIHRoaXMuc2V0TWF0Y2hJZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBsZXQgY2hhciA9IHBhcnNlSW50KHRlbXBJZC5zdWJzdHJpbmcoMTAsdGVtcElkLmxlbmd0aCkpO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYXIgKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICBtYXRjaElkICA9IHRlbXBJZC5zbGljZSgwLCAxMCkgKyBjaGFyICsgXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmNvbnRhaW5zTmFuYW5hKG1hdGNoSWQpKSBtYXRjaElkID0gdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hdGNoSWQgPSBtYXRjaElkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoSWRcIixtYXRjaElkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYodGhpcy5jb250YWluc05hbmFuYShtYXRjaElkKSA9PSB0cnVlKXtcclxuICAgICAgICAgICAgbWF0Y2hJZCA9ICB0aGlzLnNldE1hdGNoSWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1hdGNoSWQ7XHJcbiAgICB9LFxyXG4gICAgLy/mo4DmtYttYXRjaElkIOWmguaenOaciee8k+WtmOS7peWJjeeahG5hbmFuYeaVsOaNrua4hemZpFxyXG4gICAgY29udGFpbnNOYW5hbmEoc3RyKSB7XHJcbiAgICAgICAgcmV0dXJuIC9uYS9pLnRlc3Qoc3RyKTtcclxuICAgIH0sXHJcbiAgICAvL+mHjeaWsOiuvue9rk1hdGNoSWRcclxuICAgIHNldE1hdGNoSWQgKCl7XHJcbiAgICAgICAgLy8g5a6a5LmJ5YyF5ZCr5Y+v55So5a2X56ym55qE5a2X56ym6ZuGXHJcbiAgICAgICAgY29uc3QgY2hhcmFjdGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSc7XHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq5pWw57uE5Lul5L+d5a2Y6ZqP5py65a2X56ymXHJcbiAgICAgICAgY29uc3QgdXVpZEFycmF5ID0gW107XHJcbiAgICAgICAgLy8g5b6q546vMTDmrKEg55Sf5oiQMTDkvY3nmoRVVUlEXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDnlJ/miJDpmo/mnLrntKLlvJXvvIzojIPlm7TmmK/lrZfnrKbpm4bnmoTplb/luqZcclxuICAgICAgICAgICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIC8vIOS7juWtl+espumbhuS4reiOt+WPlumaj+acuuWtl+esplxyXG4gICAgICAgICAgICBjb25zdCByYW5kb21DaGFyID0gY2hhcmFjdGVycy5jaGFyQXQocmFuZG9tSW5kZXgpO1xyXG4gICAgICAgICAgICAvLyDlsIblrZfnrKbmt7vliqDliLDmlbDnu4TkuK1cclxuICAgICAgICAgICAgdXVpZEFycmF5LnB1c2gocmFuZG9tQ2hhcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBkYXRhID0gIHV1aWRBcnJheS5qb2luKCcnKSArIDEgKyBcIlwiO1xyXG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoTnVtYmVyXCIsMSk7XHJcbiAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibWF0Y2hJZFwiLGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYXRjaElkID0gZGF0YTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgIH0sXHJcbiAgICAvL+aIquWPluWQjeWtl1xyXG4gICAgc3ViTmFtZShuYW1lLGxlbmd0aCl7XHJcbiAgICAgICAgaWYobmFtZS5sZW5ndGggPiBsZW5ndGgpe1xyXG4gICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoMCxsZW5ndGgpICsgXCIuLi5cIlxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmFtZTtcclxuICAgIH0sXHJcbiAgICAvL+iuvue9ruWktOWDj1xyXG4gICAgc2V0UGljKG5vZGUscGljKXtcclxuICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB1cmwgPSBwaWM7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGZldGNoKHVybClcclxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbihlcnJObyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcbiAgICAvL+esrOS4gOS4quWPguaVsOaKiuebruagh+W4pui/m+adpeWkhOeQhu+8jOesrOS6jOS4quWPguaVsOS4uuWQjeWtl+mVv+W6pu+8jOS4jeWQjOWcuuaZr+S4jeWQjOmcgOaxglxyXG4gICAgLy/lkI3lrZc055+t77yM5bCP5o6S6KGM77yM5ZCN5a2XNumVv++8jOWkp+aOkuihjFxyXG4gICAgZ2V0UmFua0RhdGEoZGF0YSx0YXJnZXQsbmFtZUxlbmd0aCl7XHJcbiAgICAgICAgdGFyZ2V0Lmxpc3REYXRhID0gZGF0YS5kYXRhLmxpc3Q7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZEYXRhID0gZGF0YS5kYXRhLmluZm87XHJcbiAgICAgICAgbGV0IHJhbmtEYXRhID0gW107XHJcbiAgICAgICAgbGV0IHNlbGYgPSBmYWxzZTtcclxuICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0UGljKHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksdGFyZ2V0LnNlbGZEYXRhLnBpYyk7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTw9dGFyZ2V0Lmxpc3REYXRhLmxlbmd0aC0xO2krKyl7XHJcbiAgICAgICAgICAgIHJhbmtEYXRhLnB1c2goe3Jhbms6KGkrMSksIG5hbWU6dGFyZ2V0Lmxpc3REYXRhW2ldLm5pY2tOYW1lLCB0b3RhbDp0YXJnZXQubGlzdERhdGFbaV0uc2NvcmUsdGltZTpudWxsLCBwaWM6dGFyZ2V0Lmxpc3REYXRhW2ldLnBpY30pO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID09IHRhcmdldC5saXN0RGF0YVtpXS51c2VySWQpe1xyXG4gICAgICAgICAgICAgICAgc2VsZiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0oaSsxKSArIFwiXCI7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGkgPT0gKHRhcmdldC5saXN0RGF0YS5sZW5ndGgtMSkgJiYgc2VsZiA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI5OStcIjsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZEYXRhLm5pY2tOYW1lID0gY2MuZnguR2FtZVRvb2wuc3ViTmFtZSh0YXJnZXQuc2VsZkRhdGEubmlja05hbWUsbmFtZUxlbmd0aCk7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwibmFtZUxhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRhcmdldC5zZWxmRGF0YS5uaWNrTmFtZTtcclxuICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0b3RhbExhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRhcmdldC5zZWxmRGF0YS5zY29yZTtcclxuICAgICAgICBsZXQgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lU2hlbk5vbmcodGFyZ2V0LnNlbGZEYXRhLnRvdGxlVGltZXMpO1xyXG4gICAgICAgIC8vIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcCArIFwiXCI7XHJcbiAgICAgICAgc3dpdGNoKHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpe1xyXG4gICAgICAgICAgICBjYXNlIFwiMVwiOlxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCIyXCI6XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcIjNcIjpcclxuICAgICAgICAgICAgICAgIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIOWkp+aOkuihjFxyXG4gICAgICAgIGlmKG5hbWVMZW5ndGggPT0gNil7XHJcbiAgICAgICAgICAgIHRhcmdldC5yYW5rTGlzdC5zZXREYXRhKHJhbmtEYXRhKTtcclxuICAgICAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgIGlmKHRhcmdldC5zZWxmRGF0YS50b3RhbFN1bkNvdW50ID09IDApIHRhcmdldC5zZWxmTm9kZS5vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIGdldFNlZWRSYW5kb206IGZ1bmN0aW9uIChtaW4sIG1heCkgey8v5YyF5ZCrbWluIOS4jeWMheWQq21heFxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6ZqP5py65pWwOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCk7XHJcbiAgICAgICAgbWF4ID0gbWF4IHx8IDE7XHJcbiAgICAgICAgbWluID0gbWluIHx8IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmN1cnJTZWVkID0gKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCAqIDkzMDEgKyA0OTI5NykgJSAyMzMyODA7XHJcbiAgICAgICAgbGV0IHJuZCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCAgLyAyMzMyODAuMDtcclxuICAgICAgICBsZXQgdG1wID0gbWluICsgcm5kICogKG1heCAtIG1pbik7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHRtcCk7XHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5blhbPljaHphY3nva7nmoTpgqPkuKrlhbPljaHmlbBcclxuICAgIGdldEN1c3RvbSh0eXBlKXtcclxuICAgICAgICBsZXQgY3VzdG9tID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShjYy5meC5zdG9yYWdlVHlwZS5zdG9yYWdlVHlwZUN1c3RvbSk7XHJcbiAgICAgICAgaWYoY3VzdG9tID09IFwidW5kaWZlbmRcIiB8fCBjdXN0b209PW51bGwgfHwgY3VzdG9tID09IFwiXCIpe1xyXG4gICAgICAgICAgICB0aGlzLnNldEN1c3RvbSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk9fU0VUKFwiY3VzdG9tXCIsY3VzdG9tWzBdKTtcclxuICAgICAgICAgICAgaWYoY3VzdG9tWzBdICE9IDAgfHwgdHlwZSA9PSAgdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICBjdXN0b20uc2hpZnQoKTtcclxuICAgICAgICAgICAgICAgIGlmKGN1c3RvbS5sZW5ndGggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRDdXN0b20oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShjYy5meC5zdG9yYWdlVHlwZS5zdG9yYWdlVHlwZUN1c3RvbSxjdXN0b20pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8v5pys5Zyw5rKh5pyJ5a2Y5YKo5Yiw6YWN572u77yM5oiW6ICF6YWN572u55So5a6M77yM6YeN5paw5Yib5bu66YWN572uXHJcbiAgICBzZXRDdXN0b20oKXtcclxuICAgICAgICBsZXQgYXJyYXlMZW5ndGggPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk8ubGVuZ3RoO1xyXG4gICAgICAgIGxldCBhcnJheUxpc3QgPSBbXTtcclxuICAgICAgICBmb3IobGV0IGk9MTsgaTxhcnJheUxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBhcnJheUxpc3QucHVzaChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXJyYXlMaXN0LnNvcnQoKCkgPT4gTWF0aC5yYW5kb20oKSAtIDAuNSk7XHJcbiAgICAgICAgYXJyYXlMaXN0LnVuc2hpZnQoMClcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk9fU0VUKFwiY3VzdG9tXCIsYXJyYXlMaXN0WzBdKTtcclxuICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKGNjLmZ4LnN0b3JhZ2VUeXBlLnN0b3JhZ2VUeXBlQ3VzdG9tLGFycmF5TGlzdCk7XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICBnZXRTZXRTY3JlZW5SZXNvbHV0aW9uRmxhZzogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGxldCBzaXplID0gY2Mud2luU2l6ZTtcclxuICAgICAgICBsZXQgd2lkdGggPSBzaXplLndpZHRoO1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSBzaXplLmhlaWdodDtcclxuICAgICAgICBpZiAoKGhlaWdodCAvIHdpZHRoKSA+ICgxNi4yIC8gOSkpIHJldHVybiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICAvL+WIpOaWreWFqOmdouWxj+mAgumFjVxyXG4gICAgc2V0Rml0OiBmdW5jdGlvbiAoY2FudmFzKSB7XHJcbiAgICAgICAgbGV0IGZsYWcgPSAgY2MuZnguR2FtZVRvb2wuZ2V0U2V0U2NyZWVuUmVzb2x1dGlvbkZsYWcoKTtcclxuICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgIFx0Ly8gY29uc29sZS5sb2coXCLkuI3mmK/lhajpnaLlsY9cIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICBcdC8vIGNvbnNvbGUubG9nKFwi5piv5YWo6Z2i5bGPXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmxhZztcclxuICAgIH0sXHJcbiAgICAvL+iOt+WPlua4uOaIj+S/oeaBr1xyXG4gICAgZ2V0R2FtZUluZm86IGZ1bmN0aW9uKG5vZGUpe1xyXG4gICAgICAgIHZhciBqZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH0sXHJcbiAgICAvL+iuvue9rua4uOaIj+S/oeaBr1xyXG4gICAgc2V0R2FtZUluZm86IGZ1bmN0aW9uKHBkKXtcclxuICAgXHJcbiAgICB9LFxyXG5cclxuICAgIC8v5omT5a2X5py65pWI5p6cXHJcbiAgICB0eXBpbmdBbmkobGFiZWwsdGV4dCxjYix0YXJnZXQpe1xyXG4gICAgICAgIHZhciBzZWxmID0gdGFyZ2V0O1xyXG4gICAgICAgIHZhciBodG1sID0gJyc7XHJcbiAgICAgICAgdmFyIGFyciA9IHRleHQuc3BsaXQoJycpO1xyXG4gICAgICAgIHZhciBsZW4gPSBhcnIubGVuZ3RoO1xyXG4gICAgICAgIHZhciBzdGVwID0gMDtcclxuICAgICAgICBzZWxmLmZ1bmMgPSAoKT0+e1xyXG4gICAgICAgICAgICBodG1sICs9IGFycltzdGVwXTtcclxuICAgICAgICAgICAgbGFiZWwuc3RyaW5nID0gaHRtbDtcclxuICAgICAgICAgICAgaWYgKCsrc3RlcCA9PSBsZW4pIHtcclxuICAgICAgICAgICAgICAgIHNlbGYudW5zY2hlZHVsZShzZWxmLmZ1bmMpO1xyXG4gICAgICAgICAgICAgICAgY2IgJiYgY2IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZWxmLnNjaGVkdWxlKHNlbGYuZnVuYywwLjEsIGNjLm1hY3JvLlJFUEVBVF9GT1JFVkVSLCAwKVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+i+k+WFpeenkizov5Tlm57pnIDopoHlsZXnpLrml7bpl7TmoLzlvI9cclxuICAgIGdldFRpbWVNYXJnaW46KHNlY29uZCkgPT4ge1xyXG4gICAgICAgIGxldCB0b3RhbCA9IDA7XHJcbiAgICAgICAgdG90YWwgPSBzZWNvbmQ7XHJcbiAgICAgICAgbGV0IGhvdXIgPSAwO1xyXG4gICAgICAgIGhvdXIgPSBwYXJzZUludCgodG90YWwgLyAzNjAwKSArIFwiXCIpOy8v6K6h566X5pW05pWw5bCP5pe25pWwXHJcbiAgICAgICAgbGV0IGFmdGVySG91ciA9IHRvdGFsIC0gaG91ciAqIDYwICogNjA7Ly/lj5blvpfnrpflh7rlsI/ml7bmlbDlkI7liankvZnnmoTnp5LmlbBcclxuICAgICAgICBsZXQgbWluID0gcGFyc2VJbnQoKGFmdGVySG91ciAvIDYwKStcIlwiKTsvL+iuoeeul+aVtOaVsOWIhlxyXG4gICAgICAgIGxldCBtID0gXCJcIiArIG1pbjsgIFxyXG4gICAgICAgIGlmKG1pbiA8IDEwKSBtID0gXCIwXCIrbWluO1xyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gaG91ciAqIDYwICogNjAgLSBtaW4gKiA2MDsvL+WPluW+l+eul+WHuuWIhuWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaWFvID0gYWZ0ZXJNaW4gKyBcIlwiO1xyXG4gICAgICAgIGlmKGFmdGVyTWluIDwgMTApIG1pYW8gPSBcIjBcIiArIGFmdGVyTWluO1xyXG4gICAgICAgIHJldHVybiBtICsgJzonICsgbWlhb1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+i+k+WFpeenkizov5Tlm57pnIDopoHlsZXnpLrml7bpl7TmoLzlvI9cclxuICAgIGdldFRpbWVTaGVuTm9uZzooc2Vjb25kKSA9PiB7XHJcbiAgICAgICAgc2Vjb25kID0gcGFyc2VJbnQoc2Vjb25kLzEwMDArXCJcIik7XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IHNlY29uZDtcclxuICAgICAgICBsZXQgbWluID0gMDtcclxuICAgICAgICBpZih0b3RhbCA+IDYwKXtcclxuICAgICAgICAgICAgbWluID0gcGFyc2VJbnQoKHRvdGFsIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBtID0gIG1pbiArIFwiJ1wiOyAgXHJcblxyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gbWluICogNjA7Ly/lj5blvpfnrpflh7rliIblkI7liankvZnnmoTnp5LmlbBcclxuICAgICAgICBsZXQgbWlhbyA9IGFmdGVyTWluICsgXCInJ1wiO1xyXG4gICAgICAgIHJldHVybiBtICsgbWlhb1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+aJk+S5seaVsOe7hFxyXG4gICAgc2h1ZmZsZUFycmF5OiBmdW5jdGlvbiAoYXJyYXkpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gYXJyYXkubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkge1xyXG4gICAgICAgICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGkgKyAxKSk7XHJcbiAgICAgICAgICAgIFthcnJheVtpXSwgYXJyYXlbal1dID0gW2FycmF5W2pdLCBhcnJheVtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcnJheTtcclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8v5aKe5Yqg5YWz5Y2h5pWwXHJcbiAgICBhZGRMZXZlbCh0aW1lKXtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgKz0gMTtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPiAxNTYpe1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAxNTY7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIGxldCBsZXZlbEluZm8gPSB7XHJcbiAgICAgICAgICAgIGxldmVsOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCxcclxuICAgICAgICAgICAgdGltZXN0YW1wOnRpbWVzdGFtcCxcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCI1NTU1NeWtmOWCqOWFs+WNoeaVsOaNrjpcIixsZXZlbEluZm8pO1xyXG4gICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIHRpbWU6dGltZS5jb3VudF9UaW1lLFxyXG4gICAgICAgICAgICBhZGRfVGltZTp0aW1lLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICByZXN1bHQ6XCJzdWNjZXNzXCJcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsZGF0YSk7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV9TZXRTdXBlclByb3BlcnRpZXMoKTtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyTGV2ZWwoKGRhdGEpPT57XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5a2Y5YKo57uT5p6cOlwiLGRhdGEpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS8oFwiLGRhdGEpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9LFxyXG5cclxuICAgIC8v5pS55Y+Y6YeR5biB5L+h5oGvXHJcbiAgICBjaGFuZ2VDb2luKGNvaW4pe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiY2hhbmdlQ29pblwiLGNvaW4pO1xyXG4gICAgICAgIGlmKGNvaW4gPT0gdW5kZWZpbmVkKSByZXR1cm47XHJcbiAgICAgICAgaWYoY29pbiA8IDAgJiYgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAtY29pbil7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6YeR5biB5LiN6LazXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sLWNvaW4pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luICs9IGNvaW47XHJcblxyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMCl7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlLnlj5jnmoTph5HluIE6XCIsY29pbik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLoh6rouqvph5HluIHkv6Hmga86XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgbGV0IGNvaW5JbmZvID0ge1xyXG4gICAgICAgICAgICBjb2luOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLFxyXG4gICAgICAgICAgICB0aW1lc3RhbXA6dGltZXN0YW1wLFxyXG4gICAgICAgIH1cclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X1NldFN1cGVyUHJvcGVydGllcygpO1xyXG4gICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5a2Y5YKo6YeR5biB5pWw5o2uOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLGNvaW5JbmZvKTtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyQ29pbigoZGF0YSk9PntcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvKBcIixkYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+iOt+WPlueUqOaIt+mHkeW4geaVsOmHj1xyXG4gICAgZ2V0VXNlckNvaW4oY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckNvaW4nLFxyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+ivu+WPlueUqOaIt+mHkeW4geaVsOaNruaIkOWKnycsIHJlcy5yZXN1bHQpXHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjaylcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpOyBcclxuXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpOyBcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v5pS55Y+Y55So5oi36YeR5biBXHJcbiAgICBzZXRVc2VyQ29pbihjYWxsYmFjayl7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDw9IDAgfHwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6YeR5biB5LiK5Lyg5aSx6LSlXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgLy8gTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLljbPlsIbkuIrkvKDnmoTph5HluIHmlbDph486XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJDb2luJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAnc2F2ZScsXHJcbiAgICAgICAgICAgICAgICBjb2luQW1vdW50OiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pblxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+S6keWHveaVsOi/lOWbnue7k+aenDonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOmHkeW4geaVsOaNruaIkOWKnycsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCflrZjlgqjph5HluIHmlbDmja7lpLHotKUnKVxyXG4gICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCflrZjlgqjnlKjmiLfmlbDmja7lpLHotKUnLCBlcnIpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvL+iOt+WPlueUqOaIt+WFs+WNoeaVsFxyXG4gICAgZ2V0VXNlckxldmVsKGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJMZXZlbCcsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjaylcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpOyBcclxuXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpOyBcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v6L+b5ri45oiP5aSE55CGIOS9k+WKm+WAvOaDheWGtVxyXG4gICAgZ2V0SGVhbHRoKGNhbGxiYWNrOiBGdW5jdGlvbil7XHJcbiAgICAgICAgbGV0IGhlYWx0aCA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJoZWFsdGhcIik7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPSA1O1xyXG4gICAgICAgIC8v5rKh5pyJ5a2Y5YKo6L+H5L2T5Yqb5YC8XHJcbiAgICAgICAgaWYoaGVhbHRoID09IG51bGwgfHwgaGVhbHRoID09IHVuZGVmaW5lZCB8fCBoZWFsdGggPT0gXCJcIil7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5a2Y5YKo6L+H5L2T5Yqb5YC877yM5Yid6L+bXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPSA1O1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VySGVhbHRoKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvmjqXlj6Pov5Tlm57nu5PmnpxcIixkYXRhKTtcclxuICAgICAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPSBkYXRhLnJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSA9IGRhdGEucmVzdWx0LnRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaGVhbHRoSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJoZWFsdGhcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6ZGF0YS5yZXN1bHQudGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfU2V0U3VwZXJQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImhlYWx0aFwiLGhlYWx0aEluZm8pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw5L2T5Yqb5pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoMCwoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pyJ5a2Y5YKo6L+H5L2T5Yqb5YC8OlwiLGhlYWx0aCk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9IGhlYWx0aC5oZWFsdGg7XHJcbiAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5L2T5Yqb5YC86K+75Y+W5a6M5q+VXCIpO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgaWYoaGVhbHRoLmhlYWx0aCA8IDApe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvlgLzlvILluLjvvIzlvZLpm7ZcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPSAwO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aCgwLCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKGhlYWx0aC5oZWFsdGggPCA1KXtcclxuICAgICAgICAgICAgICAgIC8vIDMw5YiG6ZKf55qE5q+r56eS5pWwXHJcbiAgICAgICAgICAgICAgICBjb25zdCB0aGlydHlNaW51dGVzID0gMzAgKiA2MCAqIDEwMDA7IFxyXG4gICAgICAgICAgICAgICAgY29uc3QgZWxhcHNlZFRpbWUgPSB0aW1lc3RhbXAgLSBoZWFsdGgudGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgLy8g6K6h566X5oGi5aSN55qE5L2T5Yqb5YC8XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZWNvdmVyZWRIZWFsdGggPSBNYXRoLm1pbig1IC0gaGVhbHRoLmhlYWx0aCwgTWF0aC5mbG9vcihlbGFwc2VkVGltZSAvIHRoaXJ0eU1pbnV0ZXMpKTsgXHJcbiAgICAgICAgICAgICAgICBpZiAocmVjb3ZlcmVkSGVhbHRoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWx0aC5oZWFsdGggKz0gcmVjb3ZlcmVkSGVhbHRoO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgocmVjb3ZlcmVkSGVhbHRoLCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBpZihjYWxsYmFjaykgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhg5L2T5Yqb5YC85oGi5aSNICR7cmVjb3ZlcmVkSGVhbHRofSDngrnvvIzlvZPliY3kvZPlipvlgLw6ICR7Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwfWApO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyDorqHnrpfot53nprvkuIvkuIDmrKHmgaLlpI3nmoTliankvZnml7bpl7RcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZW1haW5pbmdUaW1lID0gTWF0aC5jZWlsKCh0aGlydHlNaW51dGVzIC0gKGVsYXBzZWRUaW1lICUgdGhpcnR5TWludXRlcykpIC8gMTAwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYOS9k+WKm+WAvOacqua7oe+8jOW+heaBouWkje+8jOi3neemu+S4i+S4gOasoeaBouWkjei/mOWJqSAke3JlbWFpbmluZ1RpbWV9IOenkmApO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSA9IHJlbWFpbmluZ1RpbWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v6I635Y+W55So5oi35L2T5Yqb5YC8XHJcbiAgICBnZXRVc2VySGVhbHRoKGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWNs+Wwhui/m+WFpeS9k+WKm+iOt+WPluaOpeWPo1wiKTtcclxuICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd1c2VySGVhbHRoJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5L2T5Yqb6I635Y+W5oiQ5YqfXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKVxyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7IFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5L2T5Yqb6I635Y+W5aSx6LSlXCIsZXJyKTtcclxuICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+iuvue9rueUqOaIt+S9k+WKm+WAvCAg5pyJ5Y+v6IO95Yqg77yM5pyJ5Y+v6IO95a6a5pe25Zmo5YePXHJcbiAgICBzZXRVc2VySGVhbHRoKGhlYWx0aCxjYWxsYmFjayl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwICs9IGhlYWx0aDtcclxuICAgICAgICAvLyBpZihoZWFsdGggPCAwKSB7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vIGVsc2UgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOaBouWkjVwiKTtcclxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIGxldCBoZWFsdGhJbmZvID17fVxyXG4gXHJcbiAgICAgICAgLy/lpoLmnpzmtojogJfkuYvliY3kuI3mmK/mu6HkvZPlipvvvIzor7TmmI7lt7Lnu4/lnKjmgaLlpI3mnJ/vvIzlubbkuI3nlKjkv67mlLnml7bpl7RcclxuICAgICAgICBpZihoZWFsdGggPCAwICYmIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCAhPSA0KSB7XHJcbiAgICAgICAgICAgIGxldCBvbGRUaW1lID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImhlYWx0aFwiKS50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgIGhlYWx0aEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICBcImhlYWx0aFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCxcclxuICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6b2xkVGltZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGhlYWx0aEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICBcImhlYWx0aFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCxcclxuICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImhlYWx0aFwiLGhlYWx0aEluZm8pO1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfU2V0U3VwZXJQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ3VzZXJIZWFsdGgnLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3NhdmUnLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWx0aEFtb3VudDogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDp0aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ+WtmOWCqOWFs+WNoeaVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v6LSt5Lmw6KGM5Li6XHJcbiAgICBidXlSZXZpZXcoY29pbixjYWxsYmFjazogRnVuY3Rpb24pe1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWunumZheWNs+Wwhua2iOiAl+mHkeW4gTpcIixjb2luKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5jaGFuZ2VDb2luKGNvaW4pO1xyXG4gICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/mm7TmlLnnlKjmiLfpgZPlhbfmlbBcclxuICAgIGJ1eVByb3AocHJvcGlkLGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5jaGFuZ2VDb2luKC0xNTAwKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AocHJvcGlkLDMsKGRhdGEpPT57XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICBpZDogKHByb3BpZCArIFwiXCIpLFxyXG4gICAgICAgICAgICAgICAgbnVtOjNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9nZXRcIixkYXRhKTtcclxuICAgICAgICAgICAgbGV0IF9pZCA9IFwiXCI7XHJcbiAgICAgICAgICAgIGlmKHByb3BpZCA9PSAyMDAxKSBfaWQgPSBcImZyZWV6ZV9pbl9nYW1lXCI7XHJcbiAgICAgICAgICAgIGVsc2UgaWYocHJvcGlkID09IDIwMDIpIF9pZCA9IFwiaGFtbWVyX2luX2dhbWVcIjtcclxuICAgICAgICAgICAgZWxzZSBpZihwcm9waWQgPT0gMjAwMykgX2lkID0gXCJ3YW5kX2luX2dhbWVcIjtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGNvbnN0IGJ1eURhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtX2lkOl9pZCxcclxuICAgICAgICAgICAgICAgIGl0ZW1fbnVtOjEsXHJcbiAgICAgICAgICAgICAgICBpdGVtX3ByaWNlOjE1MDAsXHJcbiAgICAgICAgICAgICAgICBjb3N0X3R5cGU6XCJnb2xkXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIl9fX19fX19fX19fX+WNs+WwhuS4iuS8oFNob3BfYnV5XCIsYnV5RGF0YSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInNob3BfYnV5XCIsYnV5RGF0YSk7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLy/mlLnlj5jnlKjmiLflhbPljaFcclxuICAgIHNldFVzZXJMZXZlbChjYWxsYmFjayl7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIC8vIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA8PSAwIHx8IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICAvLyAgICAgY29uc29sZS5sb2coXCLnrYnnuqfph43nva7kuLowXCIpO1xyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMDtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWNs+WwhuS4iuS8oOeahOWFs+WNoeaVsDpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwpO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJMZXZlbCcsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3NhdmUnLFxyXG4gICAgICAgICAgICAgICAgbGV2ZWxBbW91bnQ6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+S6keWHveaVsOi/lOWbnue7k+aenDonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOWFs+WNoeaVsOaNruaIkOWKnycsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKTtcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgIFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOWFs+WNoeaVsOaNruWksei0pScpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WtmOWCqOWFs+WNoeaVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgICAgIC8v6I635Y+W55So5oi35YWz5Y2h5pWwXHJcbiAgICBnZXRVc2VyUHJvcChjYWxsYmFjazogRnVuY3Rpb24pIHtcclxuICAgICAgICBpZiAodHlwZW9mIHd4IT09ICd1bmRlZmluZWQnICYmIHd4IT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd1c2VyUHJvcCcsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn6K+75Y+W55So5oi36YGT5YW35pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuZGF0YSl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5mcmVlemU7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjaylcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpOyBcclxuXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/mlLnlj5jnlKjmiLfpgZPlhbdcclxuICAgIHNldFVzZXJQcm9wKHByb3BpZCxhbW91bnQsY2FsbGJhY2spe1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsZXQgbmV3UHJvcERhdGEgPSBudWxsO1xyXG4gICAgICAgICAgICBpZihwcm9waWQgPT0gMCl7XHJcbiAgICAgICAgICAgICAgICBuZXdQcm9wRGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBmcmVlemU6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICBoYW1tZXI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICBtYWdpY193YW5kOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHByb3BpZCA9PSAyMDAxKXtcclxuICAgICAgICAgICAgICAgIG5ld1Byb3BEYXRhID0gYW1vdW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYocHJvcGlkID09IDIwMDIpe1xyXG4gICAgICAgICAgICAgICAgbmV3UHJvcERhdGEgPSBhbW91bnQ7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYocHJvcGlkID09IDIwMDMpe1xyXG4gICAgICAgICAgICAgICAgbmV3UHJvcERhdGEgPSBhbW91bnQ7IFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJQcm9wJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAnc2F2ZScsXHJcbiAgICAgICAgICAgICAgICBwcm9wVHlwZTogcHJvcGlkLFxyXG4gICAgICAgICAgICAgICAgcHJvcERhdGE6IG5ld1Byb3BEYXRhXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5LqR5Ye95pWw6L+U5Zue57uT5p6cOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCflrZjlgqjpgZPlhbfmlbDmja7miJDlip8nKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOmBk+WFt+aVsOaNruWksei0pScpXHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WtmOWCqOmBk+WFt+aVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy8g5qOA5p+l5piv5ZCm5pyJ6Laz5aSf55qE56Gs5biBXHJcbiAgICBjb25zdW1lQ29pbnMocmVxdWlyZWRDb2luczogbnVtYmVyLCBwcm9wTmFtZTogc3RyaW5nLCBhbW91bnQ6IG51bWJlciwgY2FsbGJhY2spIHtcclxuICBcclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8vIOiuvue9rueUqOaIt+S/oeaBr1xyXG4gICAgc2V0VXNlckluZm8oY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGltZSA9IGNjLmZ4LkdhbWVUb29sLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgdXNlckluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g6L+Z6YeM5aGr5YaZ6KaB5a2Y5YKo55qE55So5oi35pWw5o2uXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWU6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VybmFtZSwgICAvL+eUqOaIt+WQjeensFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJhdmF0YXI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VyYXZhdGFyLCAgICAgLy/nlKjmiLflpLTlg49cclxuICAgICAgICAgICAgICAgICAgICByZWdpc3Rlcl90aW1lOiB0aW1lXHJcbiAgICAgICAgICAgICAgICB9XHJcbiBcclxuICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ3VzZXJEYXRhJyxcclxuICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdzYXZlJyxcclxuICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YTogdXNlckluZm9cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCflrZjlgqjnlKjmiLfmlbDmja7miJDlip8nKVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKFwiZmFpbFwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICB9IFxyXG4gICAgfSxcclxuXHJcbiAgICAgZm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgICAgIGNvbnN0IGhvdXJzID0gU3RyaW5nKGRhdGUuZ2V0SG91cnMoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgICBjb25zdCBtaW51dGVzID0gU3RyaW5nKGRhdGUuZ2V0TWludXRlcygpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBTdHJpbmcoZGF0ZS5nZXRTZWNvbmRzKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3QgbWlsbGlzZWNvbmRzID0gU3RyaW5nKGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCkpLnBhZFN0YXJ0KDMsICcwJyk7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX0gJHtob3Vyc306JHttaW51dGVzfToke3NlY29uZHN9LiR7bWlsbGlzZWNvbmRzfWA7XHJcbiAgICB9LFxyXG4gICAgXHJcbiAgICAvL+iOt+WPluaXtumXtOaIs1xyXG4gICAgZ2V0VGltZSgpe1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9ICAobmV3IERhdGUoKS5nZXRUaW1lKCkpXHJcbiAgICAgICAgcmV0dXJuIHRpbWVzdGFtcDtcclxuICAgIH0sXHJcbiAgICBwdXNoTGlzdGVyOmZ1bmN0aW9uICgpIHtcclxuICAgICAgICBcclxuICAgIH0sXHJcbiAgICByZW1vdmVBbGxMaXN0ZXI6ZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIFxyXG4gICAgfSxcclxuXHJcbiAgICBzaHVzaHVfVHJhY2s6IGZ1bmN0aW9uKG5hbWUsZGF0YSl7XHJcbiAgICAgICAgbGV0IGV2ZW50RGF0YSA9IHt9XHJcbiAgICAgICAgc3dpdGNoKG5hbWUpe1xyXG4gICAgICAgICAgICBjYXNlIFwicmVnaXN0ZXJcIjpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZW50ZXJfc3RhZ2VcIjpcclxuICAgICAgICAgICAgICAgIGV2ZW50RGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBzdGFnZV9pZDogKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCArIDEpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImZpbmlzaF9zdGFnZVwiOlxyXG4gICAgICAgICAgICAgICAgZXZlbnREYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YWdlX2lkOiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhZ2VfZHVyYXRpb246IGRhdGEudGltZSxcclxuICAgICAgICAgICAgICAgICAgICBhZGRlZF90aW1lOiBkYXRhLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdDogZGF0YS5yZXN1bHRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwicmVzb3VyY2VfZ2V0XCI6XHJcbiAgICAgICAgICAgICAgICBldmVudERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlX3JlYXNvbjpcIui0reS5sOmBk+WFt1wiLCAgIC8v6I635b6X5p2l5rqQXHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlX251bTpkYXRhLm51bSwgICAgICAgLy/ojrflvpfmlbDph49cclxuICAgICAgICAgICAgICAgICAgICByZXNvdXJjZV9pZDpkYXRhLmlkICAgICAgICAvL+mBk+WFt2lkXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInJlc291cmNlX2Nvc3RcIjpcclxuICAgICAgICAgICAgICAgIGV2ZW50RGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VfcmVhc29uOlwi5L2/55So6YGT5YW3XCIsICAgLy/ojrflvpfmnaXmupBcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VfbnVtOmRhdGEubnVtLCAgICAgICAvL+iOt+W+l+aVsOmHj1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlX2lkOmRhdGEuaWQgICAgICAgIC8v6YGT5YW3aWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrOyBcclxuICAgICAgICAgICAgY2FzZSBcInNob3BfYnV5XCI6XHJcbiAgICAgICAgICAgICAgICBldmVudERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbV9pZDogZGF0YS5pdGVtX2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1fbnVtOiBkYXRhLml0ZW1fbnVtLFxyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1fcHJpY2U6IGRhdGEuaXRlbV9wcmljZSxcclxuICAgICAgICAgICAgICAgICAgICBjb3N0X3R5cGU6IGRhdGEuY29zdF90eXBlLCAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmlbDmja46XCIsZXZlbnREYXRhKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X1RyYWNrKG5hbWUsZXZlbnREYXRhKTtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X1RyYWNrKG5hbWUsIGV2ZW50RGF0YSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldFdlY2hhdEdhbWVWZXJzaW9uOiBmdW5jdGlvbigpe1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIGNvbnN0IGFjY291bnRJbmZvID0gd3guZ2V0QWNjb3VudEluZm9TeW5jKCk7XHJcbiAgICAgICAgY29uc3QgbWluaVByb2dyYW0gPSBhY2NvdW50SW5mby5taW5pUHJvZ3JhbTtcclxuICAgICAgICBzd2l0Y2ggKG1pbmlQcm9ncmFtLmVudlZlcnNpb24pIHtcclxuICAgICAgICAgICAgY2FzZSAnZGV2ZWxvcCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+W8gOWPkeeJiCc7XHJcbiAgICAgICAgICAgIGNhc2UgJ3RyaWFsJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAn5L2T6aqM54mIJztcclxuICAgICAgICAgICAgY2FzZSAncmVsZWFzZSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+ato+W8j+eJiCc7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+acquefpeeJiOacrCc7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbn07XHJcbmV4cG9ydCB7IEdhbWVUb29sIH07Il19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFRvb2xcXEdhbWVUb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFvRDtBQUVwRCwrQkFBK0I7QUFDL0IsSUFBSSxRQUFRLEdBQUc7SUFDWCxVQUFVLEVBQUUsQ0FBQztJQUNiLFFBQVEsRUFBRSxDQUFDO0lBQ1gsVUFBVSxFQUFFLENBQUM7SUFFYixVQUFVO0lBQ1YsY0FBYztRQUNWLElBQUksSUFBSSxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3JELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUcsSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUM7WUFDOUMsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDbEMsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUM7Z0JBQzNCLElBQUksR0FBRyxHQUFHLDhFQUE4RSxHQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQzthQUM5QjtTQUNKO2FBQ0c7WUFDQSxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzRDtJQUNMLENBQUM7SUFFRCxhQUFhLFlBQUMsR0FBRztRQUNiLE9BQU8sYUFBYSxD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QUFLLE9BQU87Z0JBQ1IsT0FBTyxLQUFLLENBQUM7WUFDakIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sS0FBSyxDQUFDO1lBQ2pCO2dCQUNJLE9BQU8sTUFBTSxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQztDQUVKLENBQUM7QUFDTyw0QkFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4uLy4uL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuLy/mnIDlpKflt6XlhbfnsbsgIOWQhOenjeWFrOWFseaWueazle+8jOS7peWPiuWkhOeQhuS4iuS8oO+8jOiOt+WPluWQjuerr+aOpeWPo+aVsOaNrlxyXG52YXIgR2FtZVRvb2wgPSB7XHJcbiAgICBfc3RhcnRUaW1lOiAwLFxyXG4gICAgX2VuZFRpbWU6IDAsXHJcbiAgICBfdG90YWxUaW1lOiAwLFxyXG4gICAgXHJcbiAgICAvL+iOt+WPlnVzZXJJZFxyXG4gICAgQXV0aGVudGljYXRpb24oKXtcclxuICAgICAgICBsZXQgbmFtZSA9IFwidXNlcl9cIiArIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQ7XHJcbiAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKG5hbWUpKTtcclxuICAgICAgICBpZihkYXRhID09IFwidW5kaWZlbmRcIiB8fCBkYXRhPT1udWxsIHx8IGRhdGEgPT0gXCJcIil7XHJcbiAgICAgICAgICAgIHZhciB1cmxOb3cgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuICAgICAgICAgICAgaWYoIXRoaXMuY29udGFpbnNUcmFpbih1cmxOb3cpKXtcclxuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBcImh0dHBzOi8vYXBpLnNwYXJrdXMuY24vYXBpL3VzZXIvYXV0aC9sb2dpbj9kb21haW49aHVpMzI1NzlXZFlQc2dZcSZjYWxsYmFjaz1cIitsb2NhdGlvbi5ocmVmO1xyXG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShuYW1lLGRhdGEpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID0gcGFyc2VJbnQoZGF0YS51c2VySWQpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgY29udGFpbnNUcmFpbihzdHIpIHtcclxuICAgICAgICByZXR1cm4gL2Zyb209dHJhaW4vaS50ZXN0KHN0cik7XHJcbiAgICB9LFxyXG5cclxuICAgIC8v5Z+L54K55LiK5LygXHJcbiAgICBzZXRHYW1lRGF0YSgpe1xyXG4gICAgICAgIC8vR0FNRV9EQVRBIOWIneWni+WMliDmr4/mrKHmuIXpm7ZcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdBTUVfREFUQSA9IFtdO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR0FNRV9EQVRBLnB1c2goY2MuZnguR2FtZUNvbmZpZy5DTElDS19EQVRBKTtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX2luaXQoKTtcclxuICAgICAgICBsZXQgZGF0YSA9IGNjLmZ4LkdhbWVDb25maWcuR0FNRV9EQVRBO1xyXG4gICAgICAgIGxldCBtYXRjaElkID0gdGhpcy5nZXRNYXRjaElkKCk7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcImdhbWVJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJzY29kZVwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NvZGUsXHJcbiAgICAgICAgICAgIFwibWF0Y2hJZFwiOm1hdGNoSWQsXHJcbiAgICAgICAgICAgIFwiZGF0YVwiOiBkYXRhXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvKDmlbDmja46XCIscG9zdERhdGEpO1xyXG4gICAgICAgIC8vIGNjLmZ4Lkh0dHBVdGlsLnVwbG9hZFVzZXJMb2dEYXRhKHBvc3REYXRhLGZ1bmN0aW9uKCl7fSlcclxuICAgIH0sXHJcbiAgICAvL+S4iuS8oOaOkuihjOamnCAgdHlwZeS4ujFcclxuICAgIHNldFJhbmsoZGF0YSl7XHJcbiAgICAgICAgLy9HQU1FX0RBVEEg5Yid5aeL5YyWIOavj+asoea4hembtlxyXG4gICAgICAgIGxldCBwb3N0RGF0YSA9IHtcclxuICAgICAgICAgICAgXCJnYW1lSWRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZUlkLFxyXG4gICAgICAgICAgICBcInVzZXJJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VySWQsXHJcbiAgICAgICAgICAgIFwidHlwZVwiOjEsXHJcbiAgICAgICAgICAgIFwic2NvcmVcIjogZGF0YS5zY29yZSxcclxuICAgICAgICAgICAgXCJhY2N1cmFjeVwiOiBkYXRhLmRhdGUsXHJcbiAgICAgICAgICAgIFwic3VjY2Vzc1wiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc3VjY2Vzc1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMSxmdW5jdGlvbigpe30scG9zdERhdGEpO1xyXG4gICAgfSxcclxuICAgIC8v6I635Y+W5o6S6KGM5qacIHR5cGXkuLoyXHJcbiAgICBnZXRSYW5rKGRhdGEsY2FsbGJhY2spe1xyXG4gICAgICAgIGxldCByYW5rTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcImdhbWVJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJwYWdlXCI6MSxcclxuICAgICAgICAgICAgXCJwYWdlU2l6ZVwiOnJhbmtMZW5ndGhcclxuICAgICAgICB9OyBcclxuICAgICAgICAvL+Wbnuiwg+i/m2dldFJhbmtEYXRhXHJcbiAgICAgICAgLy8gY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMixkYXRhID0+e2NhbGxiYWNrKGRhdGEpfSxwb3N0RGF0YSk7XHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5ZtYXRjaElkICDnlKjkuo7kuIrkvKDmr4/mrKHngrnlh7vmlbDmja7ph4zpnaLorrDlvZVpZOaWueS+v+afpeivolxyXG4gICAgZ2V0TWF0Y2hJZCAoKXtcclxuICAgICAgICBsZXQgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoSWRcIik7XHJcbiAgICAgICAgbGV0IHRlbXBJZCA9IG1hdGNoSWQ7XHJcbiAgICAgICAgaWYobWF0Y2hJZCA9PSBcInVuZGlmZW5kXCIgfHwgbWF0Y2hJZD09bnVsbCl7XHJcbiAgICAgICAgICAgIG1hdGNoSWQgPSAgdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29udGFpbnNOYW5hbmEobWF0Y2hJZCkgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICBtYXRjaElkID0gIHRoaXMuc2V0TWF0Y2hJZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBsZXQgY2hhciA9IHBhcnNlSW50KHRlbXBJZC5zdWJzdHJpbmcoMTAsdGVtcElkLmxlbmd0aCkpO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYXIgKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICBtYXRjaElkICA9IHRlbXBJZC5zbGljZSgwLCAxMCkgKyBjaGFyICsgXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmNvbnRhaW5zTmFuYW5hKG1hdGNoSWQpKSBtYXRjaElkID0gdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hdGNoSWQgPSBtYXRjaElkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoSWRcIixtYXRjaElkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYodGhpcy5jb250YWluc05hbmFuYShtYXRjaElkKSA9PSB0cnVlKXtcclxuICAgICAgICAgICAgbWF0Y2hJZCA9ICB0aGlzLnNldE1hdGNoSWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1hdGNoSWQ7XHJcbiAgICB9LFxyXG4gICAgLy/mo4DmtYttYXRjaElkIOWmguaenOaciee8k+WtmOS7peWJjeeahG5hbmFuYeaVsOaNrua4hemZpFxyXG4gICAgY29udGFpbnNOYW5hbmEoc3RyKSB7XHJcbiAgICAgICAgcmV0dXJuIC9uYS9pLnRlc3Qoc3RyKTtcclxuICAgIH0sXHJcbiAgICAvL+mHjeaWsOiuvue9rk1hdGNoSWRcclxuICAgIHNldE1hdGNoSWQgKCl7XHJcbiAgICAgICAgLy8g5a6a5LmJ5YyF5ZCr5Y+v55So5a2X56ym55qE5a2X56ym6ZuGXHJcbiAgICAgICAgY29uc3QgY2hhcmFjdGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSc7XHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq5pWw57uE5Lul5L+d5a2Y6ZqP5py65a2X56ymXHJcbiAgICAgICAgY29uc3QgdXVpZEFycmF5ID0gW107XHJcbiAgICAgICAgLy8g5b6q546vMTDmrKEg55Sf5oiQMTDkvY3nmoRVVUlEXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDnlJ/miJDpmo/mnLrntKLlvJXvvIzojIPlm7TmmK/lrZfnrKbpm4bnmoTplb/luqZcclxuICAgICAgICAgICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIC8vIOS7juWtl+espumbhuS4reiOt+WPlumaj+acuuWtl+esplxyXG4gICAgICAgICAgICBjb25zdCByYW5kb21DaGFyID0gY2hhcmFjdGVycy5jaGFyQXQocmFuZG9tSW5kZXgpO1xyXG4gICAgICAgICAgICAvLyDlsIblrZfnrKbmt7vliqDliLDmlbDnu4TkuK1cclxuICAgICAgICAgICAgdXVpZEFycmF5LnB1c2gocmFuZG9tQ2hhcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBkYXRhID0gIHV1aWRBcnJheS5qb2luKCcnKSArIDEgKyBcIlwiO1xyXG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoTnVtYmVyXCIsMSk7XHJcbiAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibWF0Y2hJZFwiLGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYXRjaElkID0gZGF0YTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgIH0sXHJcbiAgICAvL+aIquWPluWQjeWtl1xyXG4gICAgc3ViTmFtZShuYW1lLGxlbmd0aCl7XHJcbiAgICAgICAgaWYobmFtZS5sZW5ndGggPiBsZW5ndGgpe1xyXG4gICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoMCxsZW5ndGgpICsgXCIuLi5cIlxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmFtZTtcclxuICAgIH0sXHJcbiAgICAvL+iuvue9ruWktOWDj1xyXG4gICAgc2V0UGljKG5vZGUscGljKXtcclxuICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB1cmwgPSBwaWM7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGZldGNoKHVybClcclxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbihlcnJObyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcbiAgICAvL+esrOS4gOS4quWPguaVsOaKiuebruagh+W4pui/m+adpeWkhOeQhu+8jOesrOS6jOS4quWPguaVsOS4uuWQjeWtl+mVv+W6pu+8jOS4jeWQjOWcuuaZr+S4jeWQjOmcgOaxglxyXG4gICAgLy/lkI3lrZc055+t77yM5bCP5o6S6KGM77yM5ZCN5a2XNumVv++8jOWkp+aOkuihjFxyXG4gICAgZ2V0UmFua0RhdGEoZGF0YSx0YXJnZXQsbmFtZUxlbmd0aCl7XHJcbiAgICAgICAgdGFyZ2V0Lmxpc3REYXRhID0gZGF0YS5kYXRhLmxpc3Q7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZEYXRhID0gZGF0YS5kYXRhLmluZm87XHJcbiAgICAgICAgbGV0IHJhbmtEYXRhID0gW107XHJcbiAgICAgICAgbGV0IHNlbGYgPSBmYWxzZTtcclxuICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0UGljKHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksdGFyZ2V0LnNlbGZEYXRhLnBpYyk7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTw9dGFyZ2V0Lmxpc3REYXRhLmxlbmd0aC0xO2krKyl7XHJcbiAgICAgICAgICAgIHJhbmtEYXRhLnB1c2goe3Jhbms6KGkrMSksIG5hbWU6dGFyZ2V0Lmxpc3REYXRhW2ldLm5pY2tOYW1lLCB0b3RhbDp0YXJnZXQubGlzdERhdGFbaV0uc2NvcmUsdGltZTpudWxsLCBwaWM6dGFyZ2V0Lmxpc3REYXRhW2ldLnBpY30pO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID09IHRhcmdldC5saXN0RGF0YVtpXS51c2VySWQpe1xyXG4gICAgICAgICAgICAgICAgc2VsZiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0oaSsxKSArIFwiXCI7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGkgPT0gKHRhcmdldC5saXN0RGF0YS5sZW5ndGgtMSkgJiYgc2VsZiA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI5OStcIjsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZEYXRhLm5pY2tOYW1lID0gY2MuZnguR2FtZVRvb2wuc3ViTmFtZSh0YXJnZXQuc2VsZkRhdGEubmlja05hbWUsbmFtZUxlbmd0aCk7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwibmFtZUxhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRhcmdldC5zZWxmRGF0YS5uaWNrTmFtZTtcclxuICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0b3RhbExhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRhcmdldC5zZWxmRGF0YS5zY29yZTtcclxuICAgICAgICBsZXQgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lU2hlbk5vbmcodGFyZ2V0LnNlbGZEYXRhLnRvdGxlVGltZXMpO1xyXG4gICAgICAgIC8vIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcCArIFwiXCI7XHJcbiAgICAgICAgc3dpdGNoKHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpe1xyXG4gICAgICAgICAgICBjYXNlIFwiMVwiOlxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCIyXCI6XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcIjNcIjpcclxuICAgICAgICAgICAgICAgIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIOWkp+aOkuihjFxyXG4gICAgICAgIGlmKG5hbWVMZW5ndGggPT0gNil7XHJcbiAgICAgICAgICAgIHRhcmdldC5yYW5rTGlzdC5zZXREYXRhKHJhbmtEYXRhKTtcclxuICAgICAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgIGlmKHRhcmdldC5zZWxmRGF0YS50b3RhbFN1bkNvdW50ID09IDApIHRhcmdldC5zZWxmTm9kZS5vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIGdldFNlZWRSYW5kb206IGZ1bmN0aW9uIChtaW4sIG1heCkgey8v5YyF5ZCrbWluIOS4jeWMheWQq21heFxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6ZqP5py65pWwOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCk7XHJcbiAgICAgICAgbWF4ID0gbWF4IHx8IDE7XHJcbiAgICAgICAgbWluID0gbWluIHx8IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmN1cnJTZWVkID0gKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCAqIDkzMDEgKyA0OTI5NykgJSAyMzMyODA7XHJcbiAgICAgICAgbGV0IHJuZCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCAgLyAyMzMyODAuMDtcclxuICAgICAgICBsZXQgdG1wID0gbWluICsgcm5kICogKG1heCAtIG1pbik7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHRtcCk7XHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5blhbPljaHphY3nva7nmoTpgqPkuKrlhbPljaHmlbBcclxuICAgIGdldEN1c3RvbSh0eXBlKXtcclxuICAgICAgICBsZXQgY3VzdG9tID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShjYy5meC5zdG9yYWdlVHlwZS5zdG9yYWdlVHlwZUN1c3RvbSk7XHJcbiAgICAgICAgaWYoY3VzdG9tID09IFwidW5kaWZlbmRcIiB8fCBjdXN0b209PW51bGwgfHwgY3VzdG9tID09IFwiXCIpe1xyXG4gICAgICAgICAgICB0aGlzLnNldEN1c3RvbSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk9fU0VUKFwiY3VzdG9tXCIsY3VzdG9tWzBdKTtcclxuICAgICAgICAgICAgaWYoY3VzdG9tWzBdICE9IDAgfHwgdHlwZSA9PSAgdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICBjdXN0b20uc2hpZnQoKTtcclxuICAgICAgICAgICAgICAgIGlmKGN1c3RvbS5sZW5ndGggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRDdXN0b20oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShjYy5meC5zdG9yYWdlVHlwZS5zdG9yYWdlVHlwZUN1c3RvbSxjdXN0b20pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8v5pys5Zyw5rKh5pyJ5a2Y5YKo5Yiw6YWN572u77yM5oiW6ICF6YWN572u55So5a6M77yM6YeN5paw5Yib5bu66YWN572uXHJcbiAgICBzZXRDdXN0b20oKXtcclxuICAgICAgICBsZXQgYXJyYXlMZW5ndGggPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk8ubGVuZ3RoO1xyXG4gICAgICAgIGxldCBhcnJheUxpc3QgPSBbXTtcclxuICAgICAgICBmb3IobGV0IGk9MTsgaTxhcnJheUxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBhcnJheUxpc3QucHVzaChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXJyYXlMaXN0LnNvcnQoKCkgPT4gTWF0aC5yYW5kb20oKSAtIDAuNSk7XHJcbiAgICAgICAgYXJyYXlMaXN0LnVuc2hpZnQoMClcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk9fU0VUKFwiY3VzdG9tXCIsYXJyYXlMaXN0WzBdKTtcclxuICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKGNjLmZ4LnN0b3JhZ2VUeXBlLnN0b3JhZ2VUeXBlQ3VzdG9tLGFycmF5TGlzdCk7XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICBnZXRTZXRTY3JlZW5SZXNvbHV0aW9uRmxhZzogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGxldCBzaXplID0gY2Mud2luU2l6ZTtcclxuICAgICAgICBsZXQgd2lkdGggPSBzaXplLndpZHRoO1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSBzaXplLmhlaWdodDtcclxuICAgICAgICBpZiAoKGhlaWdodCAvIHdpZHRoKSA+ICgxNi4yIC8gOSkpIHJldHVybiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICAvL+WIpOaWreWFqOmdouWxj+mAgumFjVxyXG4gICAgc2V0Rml0OiBmdW5jdGlvbiAoY2FudmFzKSB7XHJcbiAgICAgICAgbGV0IGZsYWcgPSAgY2MuZnguR2FtZVRvb2wuZ2V0U2V0U2NyZWVuUmVzb2x1dGlvbkZsYWcoKTtcclxuICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgIFx0Ly8gY29uc29sZS5sb2coXCLkuI3mmK/lhajpnaLlsY9cIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICBcdC8vIGNvbnNvbGUubG9nKFwi5piv5YWo6Z2i5bGPXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmxhZztcclxuICAgIH0sXHJcbiAgICAvL+iOt+WPlua4uOaIj+S/oeaBr1xyXG4gICAgZ2V0R2FtZUluZm86IGZ1bmN0aW9uKG5vZGUpe1xyXG4gICAgICAgIHZhciBqZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH0sXHJcbiAgICAvL+iuvue9rua4uOaIj+S/oeaBr1xyXG4gICAgc2V0R2FtZUluZm86IGZ1bmN0aW9uKHBkKXtcclxuICAgXHJcbiAgICB9LFxyXG5cclxuICAgIC8v5omT5a2X5py65pWI5p6cXHJcbiAgICB0eXBpbmdBbmkobGFiZWwsdGV4dCxjYix0YXJnZXQpe1xyXG4gICAgICAgIHZhciBzZWxmID0gdGFyZ2V0O1xyXG4gICAgICAgIHZhciBodG1sID0gJyc7XHJcbiAgICAgICAgdmFyIGFyciA9IHRleHQuc3BsaXQoJycpO1xyXG4gICAgICAgIHZhciBsZW4gPSBhcnIubGVuZ3RoO1xyXG4gICAgICAgIHZhciBzdGVwID0gMDtcclxuICAgICAgICBzZWxmLmZ1bmMgPSAoKT0+e1xyXG4gICAgICAgICAgICBodG1sICs9IGFycltzdGVwXTtcclxuICAgICAgICAgICAgbGFiZWwuc3RyaW5nID0gaHRtbDtcclxuICAgICAgICAgICAgaWYgKCsrc3RlcCA9PSBsZW4pIHtcclxuICAgICAgICAgICAgICAgIHNlbGYudW5zY2hlZHVsZShzZWxmLmZ1bmMpO1xyXG4gICAgICAgICAgICAgICAgY2IgJiYgY2IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZWxmLnNjaGVkdWxlKHNlbGYuZnVuYywwLjEsIGNjLm1hY3JvLlJFUEVBVF9GT1JFVkVSLCAwKVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+i+k+WFpeenkizov5Tlm57pnIDopoHlsZXnpLrml7bpl7TmoLzlvI9cclxuICAgIGdldFRpbWVNYXJnaW46KHNlY29uZCkgPT4ge1xyXG4gICAgICAgIGxldCB0b3RhbCA9IDA7XHJcbiAgICAgICAgdG90YWwgPSBzZWNvbmQ7XHJcbiAgICAgICAgbGV0IGhvdXIgPSAwO1xyXG4gICAgICAgIGhvdXIgPSBwYXJzZUludCgodG90YWwgLyAzNjAwKSArIFwiXCIpOy8v6K6h566X5pW05pWw5bCP5pe25pWwXHJcbiAgICAgICAgbGV0IGFmdGVySG91ciA9IHRvdGFsIC0gaG91ciAqIDYwICogNjA7Ly/lj5blvpfnrpflh7rlsI/ml7bmlbDlkI7liankvZnnmoTnp5LmlbBcclxuICAgICAgICBsZXQgbWluID0gcGFyc2VJbnQoKGFmdGVySG91ciAvIDYwKStcIlwiKTsvL+iuoeeul+aVtOaVsOWIhlxyXG4gICAgICAgIGxldCBtID0gXCJcIiArIG1pbjsgIFxyXG4gICAgICAgIGlmKG1pbiA8IDEwKSBtID0gXCIwXCIrbWluO1xyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gaG91ciAqIDYwICogNjAgLSBtaW4gKiA2MDsvL+WPluW+l+eul+WHuuWIhuWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaWFvID0gYWZ0ZXJNaW4gKyBcIlwiO1xyXG4gICAgICAgIGlmKGFmdGVyTWluIDwgMTApIG1pYW8gPSBcIjBcIiArIGFmdGVyTWluO1xyXG4gICAgICAgIHJldHVybiBtICsgJzonICsgbWlhb1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+i+k+WFpeenkizov5Tlm57pnIDopoHlsZXnpLrml7bpl7TmoLzlvI9cclxuICAgIGdldFRpbWVTaGVuTm9uZzooc2Vjb25kKSA9PiB7XHJcbiAgICAgICAgc2Vjb25kID0gcGFyc2VJbnQoc2Vjb25kLzEwMDArXCJcIik7XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IHNlY29uZDtcclxuICAgICAgICBsZXQgbWluID0gMDtcclxuICAgICAgICBpZih0b3RhbCA+IDYwKXtcclxuICAgICAgICAgICAgbWluID0gcGFyc2VJbnQoKHRvdGFsIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBtID0gIG1pbiArIFwiJ1wiOyAgXHJcblxyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gbWluICogNjA7Ly/lj5blvpfnrpflh7rliIblkI7liankvZnnmoTnp5LmlbBcclxuICAgICAgICBsZXQgbWlhbyA9IGFmdGVyTWluICsgXCInJ1wiO1xyXG4gICAgICAgIHJldHVybiBtICsgbWlhb1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+aJk+S5seaVsOe7hFxyXG4gICAgc2h1ZmZsZUFycmF5OiBmdW5jdGlvbiAoYXJyYXkpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gYXJyYXkubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkge1xyXG4gICAgICAgICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGkgKyAxKSk7XHJcbiAgICAgICAgICAgIFthcnJheVtpXSwgYXJyYXlbal1dID0gW2FycmF5W2pdLCBhcnJheVtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcnJheTtcclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8v5aKe5Yqg5YWz5Y2h5pWwXHJcbiAgICBhZGRMZXZlbCh0aW1lMSx0aW1lMil7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICs9IDE7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID4gMTU2KXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMTU2OyBcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICBsZXQgbGV2ZWxJbmZvID0ge1xyXG4gICAgICAgICAgICBsZXZlbDpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwsXHJcbiAgICAgICAgICAgIHRpbWVzdGFtcDp0aW1lc3RhbXAsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiNTU1NTXlrZjlgqjlhbPljaHmlbDmja46XCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixsZXZlbEluZm8pO1xyXG4gICAgICAgIGlmKHRpbWUxICYmIHRpbWUyKXtcclxuICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICB0aW1lOnRpbWUxLFxyXG4gICAgICAgICAgICAgICAgYWRkX1RpbWU6dGltZTIsXHJcbiAgICAgICAgICAgICAgICByZXN1bHQ6XCJzdWNjZXNzXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJmaW5pc2hfc3RhZ2VcIixkYXRhKTtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV9TZXRTdXBlclByb3BlcnRpZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlrZjlgqjnu5Pmnpw6XCIsZGF0YSk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiK5LygXCIsZGF0YSk7XHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcblxyXG4gICAgLy/mlLnlj5jph5HluIHkv6Hmga9cclxuICAgIGNoYW5nZUNvaW4oY29pbil7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJjaGFuZ2VDb2luXCIsY29pbik7XHJcbiAgICAgICAgaWYoY29pbiA9PSB1bmRlZmluZWQpIHJldHVybjtcclxuICAgICAgICBpZihjb2luIDwgMCAmJiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IC1jb2luKXtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLph5HluIHkuI3otrNcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiwtY29pbik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gKz0gY29pbjtcclxuXHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAwKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaUueWPmOeahOmHkeW4gTpcIixjb2luKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiHqui6q+mHkeW4geS/oeaBrzpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICBsZXQgY29pbkluZm8gPSB7XHJcbiAgICAgICAgICAgIGNvaW46Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sXHJcbiAgICAgICAgICAgIHRpbWVzdGFtcDp0aW1lc3RhbXAsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfU2V0U3VwZXJQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlrZjlgqjph5HluIHmlbDmja46XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sY29pbkluZm8pO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS8oFwiLGRhdGEpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9LFxyXG5cclxuICAgIC8v6I635Y+W55So5oi36YeR5biB5pWw6YePXHJcbiAgICBnZXRVc2VyQ29pbihjYWxsYmFjazogRnVuY3Rpb24pIHtcclxuICAgICAgICBpZiAodHlwZW9mIHd4IT09ICd1bmRlZmluZWQnICYmIHd4IT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd1c2VyQ29pbicsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn6K+75Y+W55So5oi36YeR5biB5pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKVxyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7IFxyXG5cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7IFxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/mlLnlj5jnlKjmiLfph5HluIFcclxuICAgIHNldFVzZXJDb2luKGNhbGxiYWNrKXtcclxuICAgICAgICBpZiAodHlwZW9mIHd4IT09ICd1bmRlZmluZWQnICYmIHd4IT09IG51bGwpIHtcclxuICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPD0gMCB8fCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLph5HluIHkuIrkvKDlpLHotKVcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuS4iuS8oOeahOmHkeW4geaVsOmHjzpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckNvaW4nLFxyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdzYXZlJyxcclxuICAgICAgICAgICAgICAgIGNvaW5BbW91bnQ6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5LqR5Ye95pWw6L+U5Zue57uT5p6cOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5a2Y5YKo6YeR5biB5pWw5o2u5oiQ5YqfJyxjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOmHkeW4geaVsOaNruWksei0pScpXHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WtmOWCqOeUqOaIt+aVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8v6I635Y+W55So5oi35YWz5Y2h5pWwXHJcbiAgICBnZXRVc2VyTGV2ZWwoY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckxldmVsJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKVxyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7IFxyXG5cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7IFxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/ov5vmuLjmiI/lpITnkIYg5L2T5Yqb5YC85oOF5Ya1XHJcbiAgICBnZXRIZWFsdGgoY2FsbGJhY2s6IEZ1bmN0aW9uKXtcclxuICAgICAgICBsZXQgaGVhbHRoID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImhlYWx0aFwiKTtcclxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9IDU7XHJcbiAgICAgICAgLy/msqHmnInlrZjlgqjov4fkvZPlipvlgLxcclxuICAgICAgICBpZihoZWFsdGggPT0gbnVsbCB8fCBoZWFsdGggPT0gdW5kZWZpbmVkIHx8IGhlYWx0aCA9PSBcIlwiKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHlrZjlgqjov4fkvZPlipvlgLzvvIzliJ3ov5tcIik7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9IDU7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJIZWFsdGgoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS9k+WKm+aOpeWPo+i/lOWbnue7k+aenFwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9IGRhdGEucmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lID0gZGF0YS5yZXN1bHQudGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBoZWFsdGhJbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImhlYWx0aFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjpkYXRhLnJlc3VsdC50aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV9TZXRTdXBlclByb3BlcnRpZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiaGVhbHRoXCIsaGVhbHRoSW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gNDA0ICYmIGRhdGEucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDkvZPlipvmlbDmja5cIil7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aCgwLCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjaykgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLmnInlrZjlgqjov4fkvZPlipvlgLw6XCIsaGVhbHRoKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwID0gaGVhbHRoLmhlYWx0aDtcclxuICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvlgLzor7vlj5blrozmr5VcIik7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBpZihoZWFsdGguaGVhbHRoIDwgMCl7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS9k+WKm+WAvOW8guW4uO+8jOW9kumbtlwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9IDA7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VySGVhbHRoKDAsKCk9PntcclxuICAgICAgICAgICAgICAgICAgICBpZihjYWxsYmFjaykgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYoaGVhbHRoLmhlYWx0aCA8IDUpe1xyXG4gICAgICAgICAgICAgICAgLy8gMzDliIbpkp/nmoTmr6vnp5LmlbBcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRoaXJ0eU1pbnV0ZXMgPSAzMCAqIDYwICogMTAwMDsgXHJcbiAgICAgICAgICAgICAgICBjb25zdCBlbGFwc2VkVGltZSA9IHRpbWVzdGFtcCAtIGhlYWx0aC50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAvLyDorqHnrpfmgaLlpI3nmoTkvZPlipvlgLxcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlY292ZXJlZEhlYWx0aCA9IE1hdGgubWluKDUgLSBoZWFsdGguaGVhbHRoLCBNYXRoLmZsb29yKGVsYXBzZWRUaW1lIC8gdGhpcnR5TWludXRlcykpOyBcclxuICAgICAgICAgICAgICAgIGlmIChyZWNvdmVyZWRIZWFsdGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhbHRoLmhlYWx0aCArPSByZWNvdmVyZWRIZWFsdGg7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aChyZWNvdmVyZWRIZWFsdGgsKCk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKSBjYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGDkvZPlipvlgLzmgaLlpI0gJHtyZWNvdmVyZWRIZWFsdGh9IOeCue+8jOW9k+WJjeS9k+WKm+WAvDogJHtjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHB9YCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOiuoeeul+i3neemu+S4i+S4gOasoeaBouWkjeeahOWJqeS9meaXtumXtFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbWFpbmluZ1RpbWUgPSBNYXRoLmNlaWwoKHRoaXJ0eU1pbnV0ZXMgLSAoZWxhcHNlZFRpbWUgJSB0aGlydHlNaW51dGVzKSkgLyAxMDAwKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhg5L2T5Yqb5YC85pyq5ruh77yM5b6F5oGi5aSN77yM6Led56a75LiL5LiA5qyh5oGi5aSN6L+Y5YmpICR7cmVtYWluaW5nVGltZX0g56eSYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lID0gcmVtYWluaW5nVGltZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/ojrflj5bnlKjmiLfkvZPlipvlgLxcclxuICAgIGdldFVzZXJIZWFsdGgoY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Y2z5bCG6L+b5YWl5L2T5Yqb6I635Y+W5o6l5Y+jXCIpO1xyXG4gICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJIZWFsdGgnLFxyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkvZPlipvojrflj5bmiJDlip9cIixyZXMpO1xyXG4gICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spXHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzKTsgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkvZPlipvojrflj5blpLHotKVcIixlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v6K6+572u55So5oi35L2T5Yqb5YC8ICDmnInlj6/og73liqDvvIzmnInlj6/og73lrprml7blmajlh49cclxuICAgIHNldFVzZXJIZWFsdGgoaGVhbHRoLGNhbGxiYWNrKXtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgKz0gaGVhbHRoO1xyXG4gICAgICAgIC8vIGlmKGhlYWx0aCA8IDApIHtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZSBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85oGi5aSNXCIpO1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgbGV0IGhlYWx0aEluZm8gPXt9XHJcbiBcclxuICAgICAgICAvL+WmguaenOa2iOiAl+S5i+WJjeS4jeaYr+a7oeS9k+WKm++8jOivtOaYjuW3sue7j+WcqOaBouWkjeacn++8jOW5tuS4jeeUqOS/ruaUueaXtumXtFxyXG4gICAgICAgIGlmKGhlYWx0aCA8IDAgJiYgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwICE9IDQpIHtcclxuICAgICAgICAgICAgbGV0IG9sZFRpbWUgPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwiaGVhbHRoXCIpLnRpbWVzdGFtcDtcclxuICAgICAgICAgICAgaGVhbHRoSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgIFwiaGVhbHRoXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwLFxyXG4gICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjpvbGRUaW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgaGVhbHRoSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgIFwiaGVhbHRoXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwLFxyXG4gICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiaGVhbHRoXCIsaGVhbHRoSW5mbyk7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV9TZXRTdXBlclByb3BlcnRpZXMoKTtcclxuICAgICAgICBpZiAodHlwZW9mIHd4IT09ICd1bmRlZmluZWQnICYmIHd4IT09IG51bGwpIHtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAndXNlckhlYWx0aCcsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnc2F2ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgaGVhbHRoQW1vdW50OiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAsXHJcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOnRpbWVzdGFtcFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcign5a2Y5YKo5YWz5Y2h5pWw5o2u5aSx6LSlJywgZXJyKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/otK3kubDooYzkuLpcclxuICAgIGJ1eVJldmlldyhjb2luLGNhbGxiYWNrOiBGdW5jdGlvbil7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5a6e6ZmF5Y2z5bCG5raI6ICX6YeR5biBOlwiLGNvaW4pO1xyXG4gICAgICAgICAgICAvLyB0aGlzLmNoYW5nZUNvaW4oY29pbik7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+abtOaUueeUqOaIt+mBk+WFt+aVsFxyXG4gICAgYnV5UHJvcChwcm9waWQsY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmNoYW5nZUNvaW4oLTE1MDApO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcChwcm9waWQsMywoZGF0YSk9PntcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgIGlkOiAocHJvcGlkICsgXCJcIiksXHJcbiAgICAgICAgICAgICAgICBudW06M1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlc291cmNlX2dldFwiLGRhdGEpO1xyXG4gICAgICAgICAgICBsZXQgX2lkID0gXCJcIjtcclxuICAgICAgICAgICAgaWYocHJvcGlkID09IDIwMDEpIF9pZCA9IFwiZnJlZXplX2luX2dhbWVcIjtcclxuICAgICAgICAgICAgZWxzZSBpZihwcm9waWQgPT0gMjAwMikgX2lkID0gXCJoYW1tZXJfaW5fZ2FtZVwiO1xyXG4gICAgICAgICAgICBlbHNlIGlmKHByb3BpZCA9PSAyMDAzKSBfaWQgPSBcIndhbmRfaW5fZ2FtZVwiO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgY29uc3QgYnV5RGF0YSA9IHtcclxuICAgICAgICAgICAgICAgIGl0ZW1faWQ6X2lkLFxyXG4gICAgICAgICAgICAgICAgaXRlbV9udW06MSxcclxuICAgICAgICAgICAgICAgIGl0ZW1fcHJpY2U6MTUwMCxcclxuICAgICAgICAgICAgICAgIGNvc3RfdHlwZTpcImdvbGRcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiX19fX19fX19fX19f5Y2z5bCG5LiK5LygU2hvcF9idXlcIixidXlEYXRhKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwic2hvcF9idXlcIixidXlEYXRhKTtcclxuICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvL+aUueWPmOeUqOaIt+WFs+WNoVxyXG4gICAgc2V0VXNlckxldmVsKGNhbGxiYWNrKXtcclxuICAgICAgICBpZiAodHlwZW9mIHd4IT09ICd1bmRlZmluZWQnICYmIHd4IT09IG51bGwpIHtcclxuICAgICAgICAgICAgLy8gaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsIDw9IDAgfHwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgIC8vICAgICBjb25zb2xlLmxvZyhcIuetiee6p+mHjee9ruS4ujBcIik7XHJcbiAgICAgICAgICAgIC8vICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAwO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y2z5bCG5LiK5Lyg55qE5YWz5Y2h5pWwOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCk7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckxldmVsJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAnc2F2ZScsXHJcbiAgICAgICAgICAgICAgICBsZXZlbEFtb3VudDogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5LqR5Ye95pWw6L+U5Zue57uT5p6cOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5a2Y5YKo5YWz5Y2h5pWw5o2u5oiQ5YqfJyxjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwpO1xyXG4gICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5a2Y5YKo5YWz5Y2h5pWw5o2u5aSx6LSlJylcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5a2Y5YKo5YWz5Y2h5pWw5o2u5aSx6LSlJywgZXJyKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAgICAgLy/ojrflj5bnlKjmiLflhbPljaHmlbBcclxuICAgIGdldFVzZXJQcm9wKGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJQcm9wJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCfor7vlj5bnlKjmiLfpgZPlhbfmlbDmja7miJDlip8nLCByZXMucmVzdWx0KVxyXG4gICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5kYXRhKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLmZyZWV6ZTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLmhhbW1lcjtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSByZXMucmVzdWx0LmRhdGEubWFnaWNfd2FuZDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKVxyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7IFxyXG5cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+aUueWPmOeUqOaIt+mBk+WFt1xyXG4gICAgc2V0VXNlclByb3AocHJvcGlkLGFtb3VudCxjYWxsYmFjayl7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGxldCBuZXdQcm9wRGF0YSA9IG51bGw7XHJcbiAgICAgICAgICAgIGlmKHByb3BpZCA9PSAwKXtcclxuICAgICAgICAgICAgICAgIG5ld1Byb3BEYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGZyZWV6ZTpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgIGhhbW1lcjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgIG1hZ2ljX3dhbmQ6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYocHJvcGlkID09IDIwMDEpe1xyXG4gICAgICAgICAgICAgICAgbmV3UHJvcERhdGEgPSBhbW91bnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihwcm9waWQgPT0gMjAwMil7XHJcbiAgICAgICAgICAgICAgICBuZXdQcm9wRGF0YSA9IGFtb3VudDsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihwcm9waWQgPT0gMjAwMyl7XHJcbiAgICAgICAgICAgICAgICBuZXdQcm9wRGF0YSA9IGFtb3VudDsgXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlclByb3AnLFxyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdzYXZlJyxcclxuICAgICAgICAgICAgICAgIHByb3BUeXBlOiBwcm9waWQsXHJcbiAgICAgICAgICAgICAgICBwcm9wRGF0YTogbmV3UHJvcERhdGFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCfkupHlh73mlbDov5Tlm57nu5Pmnpw6JywgcmVzKTtcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOmBk+WFt+aVsOaNruaIkOWKnycpXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5a2Y5YKo6YGT5YW35pWw5o2u5aSx6LSlJylcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5a2Y5YKo6YGT5YW35pWw5o2u5aSx6LSlJywgZXJyKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvLyDmo4Dmn6XmmK/lkKbmnInotrPlpJ/nmoTnoazluIFcclxuICAgIGNvbnN1bWVDb2lucyhyZXF1aXJlZENvaW5zOiBudW1iZXIsIHByb3BOYW1lOiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBjYWxsYmFjaykge1xyXG4gIFxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLy8g6K6+572u55So5oi35L+h5oGvXHJcbiAgICBzZXRVc2VySW5mbyhjYWxsYmFjazogRnVuY3Rpb24pIHtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0aW1lID0gY2MuZnguR2FtZVRvb2wuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpKTtcclxuICAgICAgICAgICAgICAgIGxldCB1c2VySW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyDov5nph4zloavlhpnopoHlrZjlgqjnmoTnlKjmiLfmlbDmja5cclxuICAgICAgICAgICAgICAgICAgICB1c2VybmFtZTogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJuYW1lLCAgIC8v55So5oi35ZCN56ewXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlcmF2YXRhcjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJhdmF0YXIsICAgICAvL+eUqOaIt+WktOWDj1xyXG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX3RpbWU6IHRpbWVcclxuICAgICAgICAgICAgICAgIH1cclxuIFxyXG4gICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAndXNlckRhdGEnLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3NhdmUnLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhOiB1c2VySW5mb1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOeUqOaIt+aVsOaNruaIkOWKnycpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soXCJmYWlsXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgIH0gXHJcbiAgICB9LFxyXG5cclxuICAgICBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgICAgY29uc3QgbW9udGggPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgICBjb25zdCBkYXkgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3QgaG91cnMgPSBTdHJpbmcoZGF0ZS5nZXRIb3VycygpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBTdHJpbmcoZGF0ZS5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kcyA9IFN0cmluZyhkYXRlLmdldFNlY29uZHMoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgICBjb25zdCBtaWxsaXNlY29uZHMgPSBTdHJpbmcoZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSkucGFkU3RhcnQoMywgJzAnKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fSAke2hvdXJzfToke21pbnV0ZXN9OiR7c2Vjb25kc30uJHttaWxsaXNlY29uZHN9YDtcclxuICAgIH0sXHJcbiAgICBcclxuICAgIC8v6I635Y+W5pe26Ze05oizXHJcbiAgICBnZXRUaW1lKCl7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gIChuZXcgRGF0ZSgpLmdldFRpbWUoKSlcclxuICAgICAgICByZXR1cm4gdGltZXN0YW1wO1xyXG4gICAgfSxcclxuICAgIHB1c2hMaXN0ZXI6ZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIFxyXG4gICAgfSxcclxuICAgIHJlbW92ZUFsbExpc3RlcjpmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgXHJcbiAgICB9LFxyXG5cclxuICAgIHNodXNodV9UcmFjazogZnVuY3Rpb24obmFtZSxkYXRhKXtcclxuICAgICAgICBsZXQgZXZlbnREYXRhID0ge31cclxuICAgICAgICBzd2l0Y2gobmFtZSl7XHJcbiAgICAgICAgICAgIGNhc2UgXCJyZWdpc3RlclwiOlxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJlbnRlcl9zdGFnZVwiOlxyXG4gICAgICAgICAgICAgICAgZXZlbnREYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YWdlX2lkOiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZmluaXNoX3N0YWdlXCI6XHJcbiAgICAgICAgICAgICAgICBldmVudERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhZ2VfaWQ6IChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgKyAxKSxcclxuICAgICAgICAgICAgICAgICAgICBzdGFnZV9kdXJhdGlvbjogZGF0YS50aW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGFkZGVkX3RpbWU6IGRhdGEuYWRkX1RpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBkYXRhLnJlc3VsdFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJyZXNvdXJjZV9nZXRcIjpcclxuICAgICAgICAgICAgICAgIGV2ZW50RGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VfcmVhc29uOlwi6LSt5Lmw6YGT5YW3XCIsICAgLy/ojrflvpfmnaXmupBcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VfbnVtOmRhdGEubnVtLCAgICAgICAvL+iOt+W+l+aVsOmHj1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlX2lkOmRhdGEuaWQgICAgICAgIC8v6YGT5YW3aWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwicmVzb3VyY2VfY29zdFwiOlxyXG4gICAgICAgICAgICAgICAgZXZlbnREYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZV9yZWFzb246XCLkvb/nlKjpgZPlhbdcIiwgICAvL+iOt+W+l+adpea6kFxyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZV9udW06ZGF0YS5udW0sICAgICAgIC8v6I635b6X5pWw6YePXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VfaWQ6ZGF0YS5pZCAgICAgICAgLy/pgZPlhbdpZFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7IFxyXG4gICAgICAgICAgICBjYXNlIFwic2hvcF9idXlcIjpcclxuICAgICAgICAgICAgICAgIGV2ZW50RGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtX2lkOiBkYXRhLml0ZW1faWQsXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbV9udW06IGRhdGEuaXRlbV9udW0sXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbV9wcmljZTogZGF0YS5pdGVtX3ByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvc3RfdHlwZTogZGF0YS5jb3N0X3R5cGUsICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaVsOaNrjpcIixldmVudERhdGEpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfVHJhY2sobmFtZSxldmVudERhdGEpO1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfVHJhY2sobmFtZSwgZXZlbnREYXRhKTtcclxuICAgIH0sXHJcblxyXG4gICAgZ2V0V2VjaGF0R2FtZVZlcnNpb246IGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgY29uc3QgYWNjb3VudEluZm8gPSB3eC5nZXRBY2NvdW50SW5mb1N5bmMoKTtcclxuICAgICAgICBjb25zdCBtaW5pUHJvZ3JhbSA9IGFjY291bnRJbmZvLm1pbmlQcm9ncmFtO1xyXG4gICAgICAgIHN3aXRjaCAobWluaVByb2dyYW0uZW52VmVyc2lvbikge1xyXG4gICAgICAgICAgICBjYXNlICdkZXZlbG9wJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAn5byA5Y+R54mIJztcclxuICAgICAgICAgICAgY2FzZSAndHJpYWwnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICfkvZPpqozniYgnO1xyXG4gICAgICAgICAgICBjYXNlICdyZWxlYXNlJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAn5q2j5byP54mIJztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiAn5pyq55+l54mI5pysJztcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxufTtcclxuZXhwb3J0IHsgR2FtZVRvb2wgfTsiXX0= //------QC-SOURCE-SPLIT------ (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/module/Config/GameConfig.js'; + var __filename = 'preview-scripts/assets/Script/module/Share/share.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -3996,400 +4098,10 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'c5692vnhwNF5J9nI7VNKQNW', 'GameConfig'); -// Script/module/Config/GameConfig.ts +cc._RF.push(module, '7290caA39xMWZc2phTMKovP', 'share'); +// Script/module/Share/share.ts + -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.GameConfig = void 0; -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var GameConfig = /** @class */ (function () { - function GameConfig() { - } - GameConfig_1 = GameConfig; - Object.defineProperty(GameConfig, "Instance", { - //游戏内信息 - get: function () { - if (this._instance == null) { - this._instance = new GameConfig_1(); - } - return this._instance; - }, - enumerable: false, - configurable: true - }); - //getSeedRandom - GameConfig.init = function (Authentication) { - //@ts-ignore - if (typeof wx !== 'undefined' && wx !== null) { - //@ts-ignore - wx.cloud.init(); - } - this.TA = null; - this.CLICK_init(); - this.GM_INFO_init(); - this.LEVEL_INFO_init(false, 0); - var self = this; - //GAME_DATA 废弃了,暂时不删除以防后面修改回 一整局传一次 - this.GAME_DATA = []; - // if(!Authentication) self.Authentication(); - }; - GameConfig.generateUUID = function () { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0; - var v = c === 'x' ? r : (r & 0x3 | 0x8); - return v.toString(16); - }); - }; - // 版本比较函数 - GameConfig.compareVersion = function (v1, v2) { - var arr1 = v1.split('.'); - var arr2 = v2.split('.'); - var len = Math.max(arr1.length, arr2.length); - for (var i = 0; i < len; i++) { - var num1 = parseInt(arr1[i] || '0', 10); - var num2 = parseInt(arr2[i] || '0', 10); - if (num1 > num2) { - return 1; - } - else if (num1 < num2) { - return -1; - } - } - return 0; - }; - GameConfig.GM_INFO_SET = function (key, value) { - this.GM_INFO[key] = value; - }; - GameConfig.CLICK_init = function () { - this.CLICK_DATA = - { - type: 1, - success: false, - round: 0, - getScore: 0, - cumulativeScore: 0, - mapId: "", - difficulty: 0, - optimizedSteps: 0, - usedSteps: 0, - stepList: [], - startTime: -1, - submitTime: -1, - duration: 0, - drawingBack: 0, - drawingReset: 0, - timer: 0 //测评倒计时剩余时间 去秒 - }; - }; - GameConfig.CLICK_SET = function (key, value) { - this.CLICK_DATA[key] = value; - }; - //数据备用 - GameConfig.GM_INFO_init = function () { - var _this = this; - this.GM_INFO = { - // isEnd: false, - mean_Time: 0, - hp: 5, - review: 0, - currSeed: 200000, - openid: "", - gameId: "100001", - userId: 0, - scode: "", - username: "user", - useravatar: "", - guide: true, - url: "https://api.sparkus.cn", - coin: 0, - success: false, - matchId: null, - gameState: false, - custom: 0, - round: 0, - level: 0, - stepTimeList: 0, - successList: [], - first: false, - score: 0, - scale: 1, - min_Steps: 0, - min_Time: 0, - freezeAmount: 0, - hammerAmount: 0, - magicAmount: 0, - musicOpen: true, - effectOpen: true, - vibrateOpen: true, - }; - // this.setCode(this.getKey("scode")); - // this.GM_INFO.level = 0; - cc.resources.load("Json/NEW_LEVEL", function (err, res) { - if (err) { - console.error("加载 NEW_LEVEL.JSON 失败:", err); - return; - } - var newLevelData = res.json; - _this.NEW_LEVEL = newLevelData.NEW_LEVEL; - // 可以根据需求对 newLevelData 进行处理 - // //console.log("NEW_LEVEL.JSON 加载成功:", newLevelData); - }); - }; - GameConfig.LEVEL_INFO_init = function (type, time) { - // 示例 围墙会根据缺的地块自动生成 - // 带缺口 {"id":"1006","map":[10,11],"gap":[cc.v2(4,9),cc.v2(5,9)]}, - // 带升降地块 {"id":"1004","map":[7,8],"risefall":[{pos:cc.v2(5,4),color:2},{pos:cc.v2(5,5),color:5}]}, - // 如果普通的就 {"id":"1001","map":[6,7]}, 这个样子就可以了 - var self = this; - if ((cc.fx.GameConfig.GM_INFO.level) > 156) { - cc.fx.GameConfig.GM_INFO.level = 156; - } - var name = "Json/level" + (cc.fx.GameConfig.GM_INFO.level + 1); - // //console.log("关卡名称:",name); - // name = "Json/level" + 68; - // cc.fx.StorageMessage.setStorage("level",cc.fx.GameConfig.GM_INFO.level.toString()); - cc.resources.load(name, function (err, res) { - if (err) { - cc.fx.GameTool.addLevel(); - self.LEVEL_INFO_init(type, time); - return; - } - var jsonData = res.json; - self.BLOCK_INFO = jsonData["BLOCK_INFO"]; - self.LEVEL_INFO = jsonData["LEVEL_INFO"]; - self.WALL_INFO = jsonData["WALL_INFO"]; - // //console.log("配置加载完成"); - if (type) { - cc.director.preloadScene("GameScene", function () { - if (time == 0) - cc.director.loadScene("GameScene"); - else { - setTimeout(function () { - cc.director.loadScene("GameScene"); - }, time); - } - }); - } - }); - //道具位置信息 - this.PROP_INFO = [ - { - "pos1": { "x": -66, "y": 60, "z": 0 }, - "pos2": { "x": -19, "y": 36, "z": 0 }, - "pos3": { "x": -34.362, "y": 13.246, "z": 0 }, - "pos4": { "x": -17, "y": 12, "z": 0 }, - "pos5": { "x": -85, "y": 70, "z": 0 }, - "pos6": { "x": -5, "y": 3, "z": 0 }, - }, - { - "pos1": { "x": -126, "y": 61, "z": 0 }, - "pos2": { "x": -25.792, "y": 34.675, "z": 0 }, - "pos3": { "x": -94.792, "y": 21.675, "z": 0 }, - "pos4": { "x": -20, "y": 13, "z": 0 }, - "pos5": { "x": -140, "y": 68, "z": 0 }, - "pos6": { "x": -2, "y": 0, "z": 0 }, - }, - { - "pos1": { "x": -67, "y": 122, "z": 0 }, - "pos2": { "x": -20, "y": 94, "z": 0 }, - "pos3": { "x": -34.792, "y": 23.675, "z": 0 }, - "pos4": { "x": -14, "y": 24, "z": 0 }, - "pos5": { "x": -84, "y": 128, "z": 0 }, - "pos6": { "x": -5, "y": 3, "z": 0 }, - }, - { - "pos1": { "x": -178, "y": 61, "z": 0 }, - "pos2": { "x": -34.792, "y": 37.675, "z": 0 }, - "pos3": { "x": -150, "y": 23.675, "z": 0 }, - "pos4": { "x": -22, "y": 16, "z": 0 }, - "pos5": { "x": -200, "y": 67, "z": 0 }, - "pos6": { "x": 0, "y": 0, "z": 0 }, - }, - { - "pos1": { "x": -63, "y": 178, "z": 0 }, - "pos2": { "x": -17.792, "y": 166.675, "z": 0 }, - "pos3": { "x": -31.792, "y": 33.675, "z": 0 }, - "pos4": { "x": -14, "y": 37, "z": 0 }, - "pos5": { "x": -78, "y": 182, "z": 0 }, - "pos6": { "x": 0, "y": 2, "z": 0 }, - }, - { - "pos1": { "x": -123, "y": 124, "z": 0 }, - "pos2": { "x": -25.792, "y": 99.675, "z": 0 }, - "pos3": { "x": -97.792, "y": 27.675, "z": 0 }, - "pos4": { "x": -27, "y": 19, "z": 0 }, - "pos5": { "x": -135, "y": 127, "z": 0 }, - "pos6": { "x": 0, "y": 0, "z": 0 }, - }, - { - "pos1": { "x": -64, "y": 178, "z": 0 }, - "pos2": { "x": -24.792, "y": 275.675, "z": 0 }, - "pos3": { "x": -31.792, "y": 35.675, "z": 0 }, - "pos4": { "x": -7, "y": 39, "z": 0 }, - "pos5": { "x": -77, "y": 188, "z": 0 }, - "pos6": { "x": 0, "y": 0, "z": 0 }, - }, - { - "pos1": { "x": -178, "y": 186, "z": 0 }, - "pos2": { "x": -31.792, "y": 163.675, "z": 0 }, - "pos3": { "x": -33.792, "y": 34.675, "z": 0 }, - "pos4": { "x": -18, "y": 30, "z": 0 }, - "pos5": { "x": -200, "y": 192, "z": 0 }, - "pos6": { "x": 0, "y": 5, "z": 0 }, - }, - { - "pos1": { "x": -186, "y": 178, "z": 0 }, - "pos2": { "x": -25.792, "y": 38.675, "z": 0 }, - "pos3": { "x": -153.792, "y": 34.675, "z": 0 }, - "pos4": { "x": -23, "y": 14, "z": 0 }, - "pos5": { "x": -200, "y": 185, "z": 0 }, - "pos6": { "x": 0, "y": 0, "z": 0 }, - }, - { - "pos1": { "x": -183, "y": 64, "z": 0 }, - "pos2": { "x": -37.792, "y": 37.675, "z": 0 }, - "pos3": { "x": -36.792, "y": 26.675, "z": 0 }, - "pos4": { "x": -24, "y": 17, "z": 0 }, - "pos5": { "x": -212, "y": 74, "z": 0 }, - "pos6": { "x": 0, "y": 0, "z": 0 }, - }, - { - "pos1": { "x": -65, "y": 177, "z": 0 }, - "pos2": { "x": 93.208, "y": 276.675, "z": 0 }, - "pos3": { "x": -33.792, "y": 34.675, "z": 0 }, - "pos4": { "x": 3, "y": 31, "z": 0 }, - "pos5": { "x": -80, "y": 190, "z": 0 }, - "pos6": { "x": 0, "y": 3, "z": 0 }, - }, - { - "pos1": { "x": 58, "y": 179, "z": 0 }, - "pos2": { "x": 205.225, "y": 154.034, "z": 0 }, - "pos3": { "x": -29.642, "y": 25.691, "z": 0 }, - "pos4": { "x": 7.218, "y": 29.765, "z": 0 }, - "pos5": { "x": 45, "y": 185, "z": 0 }, - "pos6": { "x": 0, "y": 0, "z": 0 }, - }, - { - "pos1": { "x": -68, "y": 182, "z": 0 }, - "pos2": { "x": -25.792, "y": 37.675, "z": 0 }, - "pos3": { "x": -35.792, "y": 33.675, "z": 0 }, - "pos4": { "x": -14, "y": 12, "z": 0 }, - "pos5": { "x": -82, "y": 190, "z": 0 }, - "pos6": { "x": -2, "y": 1, "z": 0 }, - }, - { - "pos1": { "x": -184, "y": 62, "z": 0 }, - "pos2": { "x": -35.792, "y": 36.675, "z": 0 }, - "pos3": { "x": -271.792, "y": 24.675, "z": 0 }, - "pos4": { "x": -17, "y": 20, "z": 0 }, - "pos5": { "x": -200, "y": 72, "z": 0 }, - "pos6": { "x": 0, "y": 0, "z": 0 }, - }, - { - "pos1": { "x": -62, "y": 175, "z": 0 }, - "pos2": { "x": 87.208, "y": 164.675, "z": 0 }, - "pos3": { "x": -31.792, "y": 35.675, "z": 0 }, - "pos4": { "x": -6, "y": 24, "z": 0 }, - "pos5": { "x": -79, "y": 172, "z": 0 }, - "pos6": { "x": 0, "y": 5, "z": 0 }, - }, - { - "pos1": { "x": -184, "y": 72, "z": 0 }, - "pos2": { "x": -33.792, "y": 38.675, "z": 0 }, - "pos3": { "x": -154.792, "y": 29.675, "z": 0 }, - "pos4": { "x": -29, "y": 16, "z": 0 }, - "pos5": { "x": -201, "y": 85, "z": 0 }, - "pos6": { "x": -1, "y": 3, "z": 0 }, - }, - { - "pos1": { "x": -64, "y": 181, "z": 0 }, - "pos2": { "x": 95.208, "y": 155.675, "z": 0 }, - "pos3": { "x": -30.792, "y": 36.675, "z": 0 }, - "pos4": { "x": -12, "y": 32, "z": 0 }, - "pos5": { "x": -78, "y": 190, "z": 0 }, - "pos6": { "x": 0, "y": 3, "z": 0 }, - }, - { - "pos1": { "x": -65, "y": 178, "z": 0 }, - "pos2": { "x": -21.792, "y": 156.675, "z": 0 }, - "pos3": { "x": -31.792, "y": 37.675, "z": 0 }, - "pos4": { "x": -12, "y": 32, "z": 0 }, - "pos5": { "x": -78, "y": 188, "z": 0 }, - "pos6": { "x": 0, "y": 2, "z": 0 }, - }, - { - "pos1": { "x": -62, "y": 183, "z": 0 }, - "pos2": { "x": 88.208, "y": 162.675, "z": 0 }, - "pos3": { "x": -29.792, "y": 41.675, "z": 0 }, - "pos4": { "x": -12, "y": 18, "z": 0 }, - "pos5": { "x": -80, "y": 188, "z": 0 }, - "pos6": { "x": -4, "y": 2, "z": 0 }, - }, - { - "pos1": { "x": -67, "y": 80, "z": 0 }, - "pos2": { "x": -26.792, "y": 32.675, "z": 0 }, - "pos3": { "x": -34.792, "y": 23.675, "z": 0 }, - "pos4": { "x": -12, "y": 18, "z": 0 }, - "pos5": { "x": -84, "y": 90, "z": 0 }, - "pos6": { "x": 0, "y": 0, "z": 0 }, - }, - { - "pos1": { "x": -184, "y": 80, "z": 0 }, - "pos2": { "x": -25.792, "y": 34.675, "z": 0 }, - "pos3": { "x": -155.792, "y": 25.675, "z": 0 }, - "pos4": { "x": -18, "y": 26, "z": 0 }, - "pos5": { "x": -196, "y": 96, "z": 0 }, - "pos6": { "x": 0, "y": 0, "z": 0 }, - }, - { - "pos1": { "x": -62, "y": 160, "z": 0 }, - "pos2": { "x": 95.208, "y": 158.675, "z": 0 }, - "pos3": { "x": -33.792, "y": 29.675, "z": 0 }, - "pos4": { "x": -18, "y": 26, "z": 0 }, - "pos5": { "x": -78, "y": 170, "z": 0 }, - "pos6": { "x": 0, "y": 2, "z": 0 }, - }, - { - "pos1": { "x": -68, "y": 160, "z": 0 }, - "pos2": { "x": -25.792, "y": 156.675, "z": 0 }, - "pos3": { "x": -35.792, "y": 27.675, "z": 0 }, - "pos4": { "x": -25, "y": 40, "z": 0 }, - "pos5": { "x": -82, "y": 170, "z": 0 }, - "pos6": { "x": -2, "y": 2, "z": 0 }, - } - ]; - // this.PROP_INFO = [{"pos1": {"x": -60,"y": 60,"z": 0},"pos2": {"x": -16.442,"y": 30,"z": 0},"pos3": {"x": -34.362,"y": 13.246,"z": 0},"pos4": {"x": -17,"y": 12,"z": 0}},{"pos1": {"x": -126,"y": 63,"z": 0},"pos2": {"x": -25.792,"y": 34.675,"z": 0},"pos3": {"x": -94.792,"y": 21.675,"z": 0},"pos4": {"x": -20,"y": 13,"z": 0}},{"pos1": {"x": -60,"y": 125,"z": 0},"pos2": {"x": -12.792,"y": 92.675,"z": 0},"pos3": {"x": -34.792,"y": 23.675,"z": 0},"pos4": {"x": -14,"y": 24,"z": 0}},{"pos1": {"x": -185,"y": 63,"z": 0},"pos2": {"x": -34.792,"y": 37.675,"z": 0},"pos3": {"x": -154.792,"y": 23.675,"z": 0},"pos4": {"x": -22,"y": 16,"z": 0}},{"pos1": {"x": -57,"y": 178,"z": 0},"pos2": {"x": -17.792,"y": 166.675,"z": 0},"pos3": {"x": -31.792,"y": 33.675,"z": 0},"pos4": {"x": -14,"y": 37,"z": 0}},{"pos1": {"x": -123,"y": 127,"z": 0},"pos2": {"x": -25.792,"y": 99.675,"z": 0},"pos3": {"x": -97.792,"y": 27.675,"z": 0},"pos4": {"x": -27,"y": 19,"z": 0}},{"pos1": {"x": -62,"y": 181,"z": 0},"pos2": {"x": -24.792,"y": 275.675,"z": 0},"pos3": {"x": -31.792,"y": 35.675,"z": 0},"pos4": {"x": -7,"y": 39,"z": 0}},{"pos1": {"x": -181,"y": 180,"z": 0},"pos2": {"x": -31.792,"y": 163.675,"z": 0},"pos3": {"x": -33.792,"y": 34.675,"z": 0},"pos4": {"x": -18,"y": 30,"z": 0}},{"pos1": {"x": -182,"y": 182,"z": 0},"pos2": {"x": -25.792,"y": 38.675,"z": 0},"pos3": {"x": -153.792,"y": 34.675,"z": 0},"pos4": {"x": -23,"y": 14,"z": 0}},{"pos1": {"x": -186,"y": 61,"z": 0},"pos2": {"x": -37.792,"y": 37.675,"z": 0},"pos3": {"x": -36.792,"y": 26.675,"z": 0},"pos4": {"x": -24,"y": 17,"z": 0}},{"pos1": {"x": -62,"y": 177,"z": 0},"pos2": {"x": 93.208,"y": 276.675,"z": 0},"pos3": {"x": -33.792,"y": 34.675,"z": 0},"pos4": {"x": 3,"y": 31,"z": 0}},{"pos1": {"x": 58,"y": 179,"z": 0},"pos2": {"x": 205.225,"y": 154.034,"z": 0},"pos3": {"x": -29.642,"y": 25.691,"z": 0},"pos4": {"x": 7.218,"y": 29.765,"z": 0}},{"pos1": {"x": -57,"y": 182,"z": 0},"pos2": {"x": -25.792,"y": 37.675,"z": 0},"pos3": {"x": -35.792,"y": 33.675,"z": 0},"pos4": {"x": -14,"y": 12,"z": 0}},{"pos1": {"x": -180,"y": 62,"z": 0},"pos2": {"x": -35.792,"y": 36.675,"z": 0},"pos3": {"x": -271.792,"y": 24.675,"z": 0},"pos4": {"x": -17,"y": 20,"z": 0}},{"pos1": {"x": -62,"y": 178,"z": 0},"pos2": {"x": 87.208,"y": 164.675,"z": 0},"pos3": {"x": -31.792,"y": 35.675,"z": 0},"pos4": {"x": -6,"y": 24,"z": 0}},{"pos1": {"x": -176,"y": 60,"z": 0},"pos2": {"x": -33.792,"y": 38.675,"z": 0},"pos3": {"x": -154.792,"y": 29.675,"z": 0},"pos4": {"x": -29,"y": 16,"z": 0}},{"pos1": {"x": -60,"y": 181,"z": 0},"pos2": {"x": 95.208,"y": 155.675,"z": 0},"pos3": {"x": -30.792,"y": 36.675,"z": 0},"pos4": {"x": -12,"y": 32,"z": 0}},{"pos1": {"x": -63,"y": 178,"z": 0},"pos2": {"x": -21.792,"y": 156.675,"z": 0},"pos3": {"x": -31.792,"y": 37.675,"z": 0},"pos4": {"x": -12,"y": 32,"z": 0}},{"pos1": {"x": -60,"y": 183,"z": 0},"pos2": {"x": 88.208,"y": 162.675,"z": 0},"pos3": {"x": -29.792,"y": 41.675,"z": 0},"pos4": {"x": -12,"y": 18,"z": 0}},{"pos1": {"x": -64,"y": 58,"z": 0},"pos2": {"x": -26.792,"y": 32.675,"z": 0},"pos3": {"x": -34.792,"y": 23.675,"z": 0},"pos4": {"x": -12,"y": 18,"z": 0}},{"pos1": {"x": -184,"y": 62,"z": 0},"pos2": {"x": -25.792,"y": 34.675,"z": 0},"pos3": {"x": -155.792,"y": 25.675,"z": 0},"pos4": {"x": -18,"y": 26,"z": 0}},{"pos1": {"x": -57,"y": 190,"z": 0},"pos2": {"x": 95.208,"y": 158.675,"z": 0},"pos3": {"x": -33.792,"y": 29.675,"z": 0},"pos4": {"x": -18,"y": 26,"z": 0}},{"pos1": {"x": -71,"y": 184,"z": 0},"pos2": {"x": -25.792,"y": 156.675,"z": 0},"pos3": {"x": -35.792,"y": 27.675,"z": 0},"pos4": {"x": -25,"y": 40,"z": 0}}]; - }; - GameConfig.setCode = function (code) { - this.GM_INFO.scode = code; - }; - GameConfig.getKey = function (key) { - // var reg = new RegExp('(^|&)' + key + '=([^&]*)(&|$)', 'i'); - // var r = window.location.search.substring(1).match(reg); - // if (r != null) { - // return unescape(r[2]); - // } - return ""; - }; - GameConfig.Authentication = function () { - cc.fx.GameTool.Authentication(); - }; - var GameConfig_1; - //所有控制信息都通过GameAppStart内控制 - GameConfig._instance = null; - GameConfig = GameConfig_1 = __decorate([ - ccclass('GameConfig') - ], GameConfig); - return GameConfig; -}()); -exports.GameConfig = GameConfig; cc._RF.pop(); } @@ -4402,329 +4114,7 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENvbmZpZ1xcR2FtZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJTSxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUU1QztJQUFBO0lBb2VBLENBQUM7bUJBcGVZLFVBQVU7SUF3Rm5CLHNCQUFXLHNCQUFRO1FBRm5CLE9BQU87YUFFUDtZQUVJLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQzFCO2dCQUNJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxZQUFVLEVBQUUsQ0FBQzthQUNyQztZQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixDQUFDOzs7T0FBQTtJQUNELGVBQWU7SUFDUixlQUFJLEdBQVgsVUFBWSxjQUFjO1FBQ2YsWUFBWTtRQUNuQixJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzFDLFlBQVk7WUFDWixFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1NBR25CO1FBRUQsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDZixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUNoQixDQUFBO1FBR0QsNkNBQTZDO0lBQ2pELENBQUM7SUFJTSx1QkFBWSxHQUFuQjtRQUNJLE9BQU8sc0NBQXNDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFTLENBQUM7WUFDckUsSUFBTSxDQUFDLEdBQUcsSUFB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LENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztxQkFDWjtnQkFDTCxDQUFDLENBQUMsQ0FBQTthQUNMO1FBRVQsQ0FBQyxDQUFDLENBQUE7UUFHSCxRQUFRO1FBQ1QsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNYO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3RDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUN0QztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3JDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3BDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3JDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3JDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzNDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNwQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3RDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7U0FDSixDQUFDO1FBQ0osNGdIQUE0Z0g7SUFDOWdILENBQUM7SUFJTSxrQkFBTyxHQUFkLFVBQWUsSUFBSTtRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRU0saUJBQU0sR0FBYixVQUFjLEdBQUc7UUFDYiw4REFBOEQ7UUFDOUQsMERBQTBEO1FBQzFELG1CQUFtQjtRQUNuQiw2QkFBNkI7UUFDN0IsSUFBSTtRQUNKLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUdNLHlCQUFjLEdBQXJCO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7SUFsZUQsMEJBQTBCO0lBQ1gsb0JBQVMsR0FBZ0IsSUFBSSxDQUFDO0lBRnBDLFVBQVU7UUFEdEIsT0FBTyxDQUFDLFlBQVksQ0FBQztPQUNULFVBQVUsQ0FvZXRCO0lBQUQsaUJBQUM7Q0FwZUQsQUFvZUMsSUFBQTtBQXBlWSxnQ0FBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBHYW1lVG9vbCB9IGZyb20gXCIuLi9Ub29sL0dhbWVUb29sXCI7XHJcblxyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuQGNjY2xhc3MoJ0dhbWVDb25maWcnKVxyXG5leHBvcnQgY2xhc3MgR2FtZUNvbmZpZyAge1xyXG4gICAgLy/miYDmnInmjqfliLbkv6Hmga/pg73pgJrov4dHYW1lQXBwU3RhcnTlhoXmjqfliLZcclxuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZSA6IEdhbWVDb25maWcgPSBudWxsO1xyXG5cclxuICAgIHN0YXRpYyBHQU1FX0RBVEE6IGFueVtdO1xyXG4gICAgLy/lhbPljaHmlbDmja5cclxuICAgIC8v55So5oi36ZyA6KaB5a2Y5YKo5Zyo5pys5Zyw55qE5pWw5o2u77yMIOmHkeW4ge+8jOWFs+WNoeetiee6p++8jOS9k+WKm+WAvOS7peWPiuaBouWkje+8jOmBk+WFt+aVsOmHj+OAglxyXG4gICAgXHJcblxyXG4gICAgc3RhdGljIENVU1RPTV9JTkZPOiB7XHJcbiAgICAgICAgbW92ZVNwZWVkOiBudW1iZXI7IC8v5rSq5bOw56e75Yqo6YCf5bqmXHJcbiAgICAgICAgd2FpdFRpbWU6IG51bWJlcjsgLy/mtKrls7DlhrLlh7vlgJLorqHml7ZcclxuICAgICAgICBmYXN0UGF0aDogbnVtYmVyOyAvL+acgOefrei3r+W+hFxyXG4gICAgfVtdO1xyXG4gICAgc3RhdGljIFRJTUVfSU5GTzoge1xyXG4gICAgICAgIHdhdGVyU3BlZWQ6IG51bWJlcltdOyAvL+a0quWzsOmAn+W6plxyXG4gICAgICAgIHRvdGFsVGltZTogbnVtYmVyOyAvL+a4uOaIj+aAu+aXtumVv1xyXG4gICAgICAgIHdhdGVyVGltZTogbnVtYmVyW107IC8v5rSq5bOw5p2l55qE5YCS6K6h5pe2XHJcbiAgICAgICAgcm9hZFNwZWVkOiBudW1iZXI7IC8v5rKz6YGT5L+u562R6YCf5bqmXHJcbiAgICAgICAgUmVpbmZvcmNlU3BlZWQ6IG51bWJlcjsgLy/liqDlm7rml7bpl7TpgJ/luqZcclxuICAgICAgICBYaV9Tb2lsU3BlZWQ6IG51bWJlcjtcclxuICAgIH07XHJcbiAgICAvL+eUqOS6juebm+aUvuWfi+eCueaVsOaNruS4iuS8oO+8jOavj+asoeS4iuS8oOWQjua4heepulxyXG4gICAgc3RhdGljIENMSUNLX0RBVEE6IHtcclxuICAgICAgICB0eXBlOiBudW1iZXI7IC8v5LiK5Lyg5pWw5o2u57G75Z6LXHJcbiAgICAgICAgc3VjY2VzczogYm9vbGVhbjsgLy/mraTlsYDmuLjmiI/mraPnoa7kuI7lkKZcclxuICAgICAgICByb3VuZDogbnVtYmVyOyAvL+WbnuWQiOaVsOi9ruasoVxyXG4gICAgICAgIGdldFNjb3JlOiBudW1iZXI7IC8v5pys6L2u5b6X5YiG77yM5aSx6LSl5Li6MOWIhlxyXG4gICAgICAgIGN1bXVsYXRpdmVTY29yZTogbnVtYmVyOyAvL+acrOWJp+a4uOaIj+aAu+iuoeW+l+WIhlxyXG4gICAgICAgIG1hcElkOiBzdHJpbmc7IC8v5Zyw5Zu+SURcclxuICAgICAgICBkaWZmaWN1bHR5OiBudW1iZXI7IC8v5Zyw5Zu+6Zq+5bqmXHJcbiAgICAgICAgb3B0aW1pemVkU3RlcHM6IG51bWJlcjsgLy/lhbPljaHmnIDnn63mraXmlbBcclxuICAgICAgICB1c2VkU3RlcHM6IG51bWJlcjsgLy/njqnlrrbkv67lu7rmgLvmraXmlbBcclxuICAgICAgICBzdGVwTGlzdDogYW55W107IC8vVeOAgUTjgIFM44CBUiAgIFgg5oGv5aOkICAgRiDliqDlm7pcclxuICAgICAgICBzdGFydFRpbWU6IG51bWJlcjsgLy/ku47muLjmiI/lvIDlp4vliLDnjqnlrrbmk43kvZznmoTnrKzkuIDmraXmiKrmraLml7bpl7QgIOWNleS9jeavq+enklxyXG4gICAgICAgIHN1Ym1pdFRpbWU6IG51bWJlcjsgLy/ku47nrKzkuIDmraXmk43kvZzliLDmj5DkuqTml7bpl7TvvIzlpoLmnpzmnKrmj5DkuqTkuLotMSDljZXkvY3mr6vnp5JcclxuICAgICAgICBkdXJhdGlvbjogbnVtYmVyOyAvL+a4uOaIj+aAu+eUqOaXtu+8iOaIquatouWIsOaPkOS6pO+8iSDljZXkvY3mr6vnp5JcclxuICAgICAgICBkcmF3aW5nQmFjazogbnVtYmVyOyAvL+WQjumAgOasoeaVsFxyXG4gICAgICAgIGRyYXdpbmdSZXNldDogbnVtYmVyOyAvL+a4heepuuasoeaVsFxyXG4gICAgICAgIHRpbWVyOiBudW1iZXI7ICAvL+a4uOaIj+WAkuiuoeaXtuWJqeS9meaXtumVvyDnp5JcclxuICAgIH07XHJcblxyXG4gICAgc3RhdGljIFRJUF9FUlI6IHN0cmluZ1tdOyAgIC8v5L+u562R5aSx6LSl6ZSZ6K+v5o+Q56S6XHJcblxyXG4gICAgc3RhdGljIEJMT0NLX0lORk86IHt9W11bXTtcclxuICAgIC8vc3RhdGljIFdBTExfSU5GTzogKHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHR5cGU6IG51bWJlcjsgc3BlY2lhbDogbnVtYmVyOyBsZW5ndGg6IG51bWJlcjsgfVtdIHwgeyBpZDogbnVtYmVyOyBudW06IG51bWJlcjsgYmxvY2s6IG51bWJlcjsgY29sb3I6IG51bWJlcjsgdHlwZTogbnVtYmVyOyBzcGVjaWFsOiBudW1iZXI7IH1bXSlbXTtcclxuICAgIHN0YXRpYyBMRVZFTF9JTkZPOiAoeyBpZDogc3RyaW5nOyBtYXA6IG51bWJlcltdOyByaXNlZmFsbD86IHVuZGVmaW5lZDsgZ2FwPzogdW5kZWZpbmVkOyB9IHwgeyBpZDogc3RyaW5nOyBtYXA6IG51bWJlcltdOyByaXNlZmFsbDogeyBwb3M6IGNjLlZlYzI7IGNvbG9yOiBudW1iZXI7IH1bXTsgZ2FwPzogdW5kZWZpbmVkOyB9IHwgeyBpZDogc3RyaW5nOyBtYXA6IG51bWJlcltdOyBnYXA6IGNjLlZlYzJbXTsgcmlzZWZhbGw/OiB1bmRlZmluZWQ7IH0pW107XHJcbiAgICBzdGF0aWMgV0FMTF9JTkZPOiAoKHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHNwZWNpYWw6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGxvY2s/OiB1bmRlZmluZWQ7IH0gfCB7IGlkOiBudW1iZXI7IG51bTogbnVtYmVyOyBibG9jazogbnVtYmVyOyBjb2xvcjogbnVtYmVyOyBzcGVjaWFsOiBudW1iZXI7IGxlbmd0aDogbnVtYmVyOyBsb2NrOiBib29sZWFuOyB9KVtdIHwgKHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHNwZWNpYWw6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGZyZWV6ZT86IHVuZGVmaW5lZDsgfSB8IHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHNwZWNpYWw6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGZyZWV6ZTogbnVtYmVyOyB9KVtdKVtdO1xyXG4gICAgc3RhdGljIFBST1BfSU5GTzogKHsgcG9zMTogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3MyOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczM6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTsgcG9zNDogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3M1OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczY6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTsgfSB8IHsgcG9zMTogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3MyOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczM6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTsgcG9zNDogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3M1OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczY/OiB1bmRlZmluZWQ7IH0pW107XHJcbiAgICBzdGF0aWMgTkVXX0xFVkVMOiBhbnk7XHJcbiAgICBzdGF0aWMgVEE6IGFueTtcclxuICAgIHN0YXRpYyBHTV9JTkZPOiB7XHJcbiAgICAgICAgLy8gaXNFbmQ6IGZhbHNlLCAgICBcclxuICAgICAgICBtZWFuX1RpbWU6IG51bWJlcjsgLy/lubPlnYfmlL7nrq3pgJ/luqZcclxuICAgICAgICBocDogbnVtYmVyOyAvL+S9k+WKm+WAvFxyXG4gICAgICAgIHJldmlldzogbnVtYmVyOyAvL+Wkjea0u+asoeaVsFxyXG4gICAgICAgIC8v5aSN5rS75qyh5pWwXHJcbiAgICAgICAgY3VyclNlZWQ6IG51bWJlcjsgLy/nlKjkuo7pmo/mnLrmlbDnp43lrZBcclxuICAgICAgICBvcGVuaWQ6IHN0cmluZzsgLy/lvq7kv6HnlKjmiLfllK/kuIBpZFxyXG4gICAgICAgIGdhbWVJZDogc3RyaW5nOyAvL+a4uOaIj0lEXHJcbiAgICAgICAgdXNlcklkOiBudW1iZXI7IC8v55So5oi3SURcclxuICAgICAgICBzY29kZTogc3RyaW5nOyAvL+eUqOaIt2NvZGUs5LuO572R6aG15ZCO57yA6I635Y+WXHJcbiAgICAgICAgdXNlcm5hbWU6IHN0cmluZzsgLy/nlKjmiLflkI3np7BcclxuICAgICAgICB1c2VyYXZhdGFyOiBzdHJpbmc7IC8v55So5oi35aS05YOP5Zyw5Z2AXHJcbiAgICAgICAgZ3VpZGU6IGJvb2xlYW47IC8v5piv5ZCm5pyJ5byV5a+8XHJcbiAgICAgICAgdXJsOiBzdHJpbmc7IC8v6K6/6Zeu5Z+f5ZCNXHJcbiAgICAgICAgY29pbjogbnVtYmVyOyAvL+eUqOaIt+mHkeW4gVxyXG4gICAgICAgIHN1Y2Nlc3M6IGJvb2xlYW47IC8v55So5oi35ri45oiP5oiQ5Yqf5LiO5ZCmXHJcbiAgICAgICAgbWF0Y2hJZDogYW55OyAvL+eUqOS6juWfi+eCueS4iuS8oOeahElEXHJcbiAgICAgICAgZ2FtZVN0YXRlOiBib29sZWFuOyBjdXN0b206IG51bWJlcjsgLy/nlKjkuo7mtYvor5Xot7PlhbPljaFcclxuICAgICAgICByb3VuZDogbnVtYmVyOyAvL+WbnuWQiOaVsFxyXG4gICAgICAgIGxldmVsOiBudW1iZXI7IC8v5YW35L2T5ri45oiP5YaF6L+b6KGM5Yiw56ys5Yeg5q2lIFxyXG4gICAgICAgIHN0ZXBUaW1lTGlzdDogbnVtYmVyOyAvL+aVtOWxgOa4uOaIj+eUqOaXtu+8jOeUseS6jua2ieWPiuWcuuaZr+WIh+aNou+8jOaVsOaNrumcgOimgeS/neeVmVxyXG4gICAgICAgIHN1Y2Nlc3NMaXN0OiBhbnlbXTsgLy/mlbTlsYDog5zotJ9cclxuICAgICAgICBmaXJzdDogYm9vbGVhbjsgLy/mmK/lkKbpppbmrKHov5vlhaXmuLjmiI9cclxuICAgICAgICBzY29yZTogbnVtYmVyOyAvL+aAu+W+l+WIhlxyXG4gICAgICAgIHNjYWxlOiBudW1iZXI7IC8v546p5a625oC76K6h5oiQ5Yqf54K554Gr5pWwXHJcbiAgICAgICAgbWluX1N0ZXBzOiBudW1iZXI7IC8v5q+P5qyh5LiK5LiA5oqK5pyA5bCP5q2l5pWwXHJcbiAgICAgICAgbWluX1RpbWU6IG51bWJlcjsgLy/kvZPlipvmgaLlpI3nmoTliankvZnml7bpl7RcclxuICAgICAgICBmcmVlemVBbW91bnQ6IG51bWJlcjsgLy/lhrvnu5PpgZPlhbfmrKHmlbBcclxuICAgICAgICBoYW1tZXJBbW91bnQ6IG51bWJlcjsgLy/plKTlrZDpgZPlhbfmrKHmlbBcclxuICAgICAgICBtYWdpY0Ftb3VudDogbnVtYmVyOyAvL+mtlOazleajkumBk+WFt+asoeaVsFxyXG4gICAgICAgIG11c2ljT3BlbjogYm9vbGVhbjsgLy/pn7PkuZBcclxuICAgICAgICBlZmZlY3RPcGVuOiBib29sZWFuOyAvL+mfs+aViFxyXG4gICAgICAgIHZpYnJhdGVPcGVuOiBib29sZWFuO1xyXG4gICAgfTtcclxuICAgIC8v5ri45oiP5YaF5L+h5oGvXHJcblxyXG4gICAgc3RhdGljIGdldCBJbnN0YW5jZSgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBHYW1lQ29uZmlnKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcclxuICAgIH1cclxuICAgIC8vZ2V0U2VlZFJhbmRvbVxyXG4gICAgc3RhdGljIGluaXQoQXV0aGVudGljYXRpb24pe1xyXG4gICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJyAmJiB3eCAhPT0gbnVsbCkgeyBcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmluaXQoKTtcclxuICAgICAgIFxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuVEEgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuQ0xJQ0tfaW5pdCgpO1xyXG4gICAgICAgIHRoaXMuR01fSU5GT19pbml0KCk7XHJcbiAgICAgICAgdGhpcy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsMCk7XHJcbiAgXHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIC8vR0FNRV9EQVRBIOW6n+W8g+S6hu+8jOaaguaXtuS4jeWIoOmZpOS7pemYsuWQjumdouS/ruaUueWbniDkuIDmlbTlsYDkvKDkuIDmrKFcclxuICAgICAgICB0aGlzLkdBTUVfREFUQSA9IFtcclxuICAgICAgICBdXHJcbiAgIFxyXG5cclxuICAgICAgICAvLyBpZighQXV0aGVudGljYXRpb24pIHNlbGYuQXV0aGVudGljYXRpb24oKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyBnZW5lcmF0ZVVVSUQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbihjKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwO1xyXG4gICAgICAgICAgICBjb25zdCB2ID0gYyA9PT0gJ3gnID8gciA6IChyICYgMHgzIHwgMHg4KTtcclxuICAgICAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOeJiOacrOavlOi+g+WHveaVsFxyXG4gICAgc3RhdGljIGNvbXBhcmVWZXJzaW9uKHYxOiBzdHJpbmcsIHYyOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGFycjEgPSB2MS5zcGxpdCgnLicpO1xyXG4gICAgICAgIGNvbnN0IGFycjIgPSB2Mi5zcGxpdCgnLicpO1xyXG4gICAgICAgIGNvbnN0IGxlbiA9IE1hdGgubWF4KGFycjEubGVuZ3RoLCBhcnIyLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgbnVtMSA9IHBhcnNlSW50KGFycjFbaV0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bTIgPSBwYXJzZUludChhcnIyW2ldIHx8ICcwJywgMTApO1xyXG4gICAgICAgICAgICBpZiAobnVtMSA+IG51bTIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG51bTEgPCBudW0yKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBHTV9JTkZPX1NFVChrZXksdmFsdWUpIHtcclxuICAgICAgICB0aGlzLkdNX0lORk9ba2V5XSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIENMSUNLX2luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5DTElDS19EQVRBID1cclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IDEsICAgICAgICAgICAgLy/kuIrkvKDmlbDmja7nsbvlnotcclxuICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsICAgICAvL+atpOWxgOa4uOaIj+ato+ehruS4juWQplxyXG4gICAgICAgICAgICByb3VuZDogMCwgICAgICAgICAgIC8v5Zue5ZCI5pWw6L2u5qyhXHJcbiAgICAgICAgICAgIGdldFNjb3JlOiAwLCAgICAgICAgLy/mnKzova7lvpfliIbvvIzlpLHotKXkuLow5YiGXHJcbiAgICAgICAgICAgIGN1bXVsYXRpdmVTY29yZTogMCwgLy/mnKzliafmuLjmiI/mgLvorqHlvpfliIZcclxuICAgICAgICAgICAgbWFwSWQ6IFwiXCIsICAgICAgICAgIC8v5Zyw5Zu+SURcclxuICAgICAgICAgICAgZGlmZmljdWx0eTogMCwgICAgICAvL+WcsOWbvumavuW6plxyXG4gICAgICAgICAgICBvcHRpbWl6ZWRTdGVwczogMCwgIC8v5YWz5Y2h5pyA55+t5q2l5pWwXHJcbiAgICAgICAgICAgIHVzZWRTdGVwczogMCwgICAgICAgLy/njqnlrrbkv67lu7rmgLvmraXmlbBcclxuICAgICAgICAgICAgc3RlcExpc3Q6IFtdLCAgICAgICAvL1XjgIFE44CBTOOAgVIgICBYIOaBr+WjpCAgIEYg5Yqg5Zu6XHJcbiAgICAgICAgICAgIHN0YXJ0VGltZTotMSwgICAgICAgIC8v5LuO5ri45oiP5byA5aeL5Yiw546p5a625pON5L2c55qE56ys5LiA5q2l5oiq5q2i5pe26Ze0ICDljZXkvY3mr6vnp5JcclxuICAgICAgICAgICAgc3VibWl0VGltZTotMSwgICAgICAgLy/ku47nrKzkuIDmraXmk43kvZzliLDmj5DkuqTml7bpl7TvvIzlpoLmnpzmnKrmj5DkuqTkuLotMSDljZXkvY3mr6vnp5JcclxuICAgICAgICAgICAgZHVyYXRpb246MCwgICAgICAgICAvL+a4uOaIj+aAu+eUqOaXtu+8iOaIquatouWIsOaPkOS6pO+8iSDljZXkvY3mr6vnp5Ig5aaC5p6c5pyq5LuW56e75Lqk5YiZ5Li65pe26Ze05LiK6ZmQXHJcbiAgICAgICAgICAgIGRyYXdpbmdCYWNrOjAsICAgICAgLy/lkI7pgIDmrKHmlbBcclxuICAgICAgICAgICAgZHJhd2luZ1Jlc2V0OjAsICAgICAvL+a4heepuuasoeaVsFxyXG4gICAgICAgICAgICB0aW1lcjogMCAgICAgICAgICAgLy/mtYvor4TlgJLorqHml7bliankvZnml7bpl7Qg5Y6756eSXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgQ0xJQ0tfU0VUKGtleSx2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuQ0xJQ0tfREFUQVtrZXldID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mlbDmja7lpIfnlKhcclxuICAgIHN0YXRpYyBHTV9JTkZPX2luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5HTV9JTkZPID0ge1xyXG4gICAgICAgICAgICAvLyBpc0VuZDogZmFsc2UsICAgIFxyXG4gICAgICAgICAgICBtZWFuX1RpbWU6IDAsICAgICAgICAgICAgICAgLy/lubPlnYfmlL7nrq3pgJ/luqZcclxuICAgICAgICAgICAgaHA6IDUsICAgICAgICAgICAgICAgICAgICAgIC8v5L2T5Yqb5YC8XHJcbiAgICAgICAgICAgIHJldmlldzowLCAgICAgICAgICAgICAgICAgICAgLy/lpI3mtLvmrKHmlbBcclxuICAgICAgICAgICAgY3VyclNlZWQ6IDIwMDAwMCwgICAgICAgICAgIC8v55So5LqO6ZqP5py65pWw56eN5a2QXHJcbiAgICAgICAgICAgIG9wZW5pZDpcIlwiLCAgICAgICAgICAgICAgICAgIC8v5b6u5L+h55So5oi35ZSv5LiAaWRcclxuICAgICAgICAgICAgZ2FtZUlkOiBcIjEwMDAwMVwiLCAgICAgICAgICAgLy/muLjmiI9JRFxyXG4gICAgICAgICAgICB1c2VySWQ6IDAsICAgICAgICAgICAgICAgICAgLy/nlKjmiLdJRFxyXG4gICAgICAgICAgICBzY29kZTogXCJcIiwgICAgICAgICAgICAgICAgICAvL+eUqOaIt2NvZGUs5LuO572R6aG15ZCO57yA6I635Y+WXHJcbiAgICAgICAgICAgIHVzZXJuYW1lOlwidXNlclwiLCAgICAgICAgICAgICAgICAvL+eUqOaIt+WQjeensFxyXG4gICAgICAgICAgICB1c2VyYXZhdGFyOlwiXCIsICAgICAgICAgICAgICAvL+eUqOaIt+WktOWDj+WcsOWdgFxyXG4gICAgICAgICAgICBndWlkZTogdHJ1ZSwgICAgICAgICAgICAgICAgIC8v5piv5ZCm5pyJ5byV5a+8XHJcbiAgICAgICAgICAgIHVybDogXCJodHRwczovL2FwaS5zcGFya3VzLmNuXCIsLy/orr/pl67ln5/lkI1cclxuICAgICAgICAgICAgY29pbjogMCwgICAgICAgICAgICAgICAgICAgIC8v55So5oi36YeR5biBXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLCAgICAgICAgICAgICAvL+eUqOaIt+a4uOaIj+aIkOWKn+S4juWQplxyXG4gICAgICAgICAgICBtYXRjaElkOiBudWxsLCAgICAgICAgICAgICAgLy/nlKjkuo7ln4vngrnkuIrkvKDnmoRJRFxyXG4gICAgICAgICAgICBnYW1lU3RhdGU6ZmFsc2UsXHJcbiAgICAgICAgICAgIGN1c3RvbTogMCwgICAgICAgICAgICAgICAgICAvL+eUqOS6jua1i+ivlei3s+WFs+WNoVxyXG4gICAgICAgICAgICByb3VuZDowLCAgICAgICAgICAgICAgICAgICAgLy/lm57lkIjmlbBcclxuICAgICAgICAgICAgbGV2ZWw6IDAsICAgICAgICAgICAgICAgICAgICAvL+WFt+S9k+a4uOaIj+WGhei/m+ihjOWIsOesrOWHoOatpSBcclxuICAgICAgICAgICAgc3RlcFRpbWVMaXN0OjAsICAgICAgICAgICAgIC8v5pW05bGA5ri45oiP55So5pe277yM55Sx5LqO5raJ5Y+K5Zy65pmv5YiH5o2i77yM5pWw5o2u6ZyA6KaB5L+d55WZXHJcbiAgICAgICAgICAgIHN1Y2Nlc3NMaXN0OltdLCAgICAgICAgICAgICAgLy/mlbTlsYDog5zotJ9cclxuICAgICAgICAgICAgZmlyc3Q6ZmFsc2UsICAgICAgICAgICAgICAgICAgICAgIC8v5piv5ZCm6aaW5qyh6L+b5YWl5ri45oiPXHJcbiAgICAgICAgICAgIHNjb3JlOjAsICAgICAgICAgICAgICAgICAgICAvL+aAu+W+l+WIhlxyXG4gICAgICAgICAgICBzY2FsZTogMSwgICAgICAgICAgICAgLy/njqnlrrbmgLvorqHmiJDlip/ngrnngavmlbBcclxuICAgICAgICAgICAgbWluX1N0ZXBzOjAsICAgICAgICAgICAgICAgIC8v5q+P5qyh5LiK5LiA5oqK5pyA5bCP5q2l5pWwXHJcbiAgICAgICAgICAgIG1pbl9UaW1lOjAsICAgICAgICAgICAgICAgICAgLy/kvZPlipvmgaLlpI3nmoTliankvZnml7bpl7RcclxuICAgICAgICAgICAgZnJlZXplQW1vdW50OjAsICAgICAgICAgICAgICAvL+WGu+e7k+mBk+WFt+asoeaVsFxyXG4gICAgICAgICAgICBoYW1tZXJBbW91bnQ6MCwgICAgICAgICAgICAgIC8v6ZSk5a2Q6YGT5YW35qyh5pWwXHJcbiAgICAgICAgICAgIG1hZ2ljQW1vdW50OjAsICAgICAgICAgICAgICAgLy/prZTms5Xmo5LpgZPlhbfmrKHmlbBcclxuICAgICAgICAgICAgbXVzaWNPcGVuOiB0cnVlLCAgICAgICAgICAgICAvL+mfs+S5kFxyXG4gICAgICAgICAgICBlZmZlY3RPcGVuOiB0cnVlLCAgICAgICAgICAgICAvL+mfs+aViFxyXG4gICAgICAgICAgICB2aWJyYXRlT3BlbjogdHJ1ZSwgICAgICAgICAgIC8v6ZyH5YqoXHJcblxyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gdGhpcy5zZXRDb2RlKHRoaXMuZ2V0S2V5KFwic2NvZGVcIikpO1xyXG4gICAgICAgIC8vIHRoaXMuR01fSU5GTy5sZXZlbCA9IDA7XHJcblxyXG5cclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChcIkpzb24vTkVXX0xFVkVMXCIsIChlcnI6IGFueSwgcmVzOiBjYy5Kc29uQXNzZXQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIuWKoOi9vSBORVdfTEVWRUwuSlNPTiDlpLHotKU6XCIsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgbmV3TGV2ZWxEYXRhID0gcmVzLmpzb247XHJcbiAgICAgICAgICAgIHRoaXMuTkVXX0xFVkVMID0gbmV3TGV2ZWxEYXRhLk5FV19MRVZFTDtcclxuICAgICAgICAgICAgLy8g5Y+v5Lul5qC55o2u6ZyA5rGC5a+5IG5ld0xldmVsRGF0YSDov5vooYzlpITnkIZcclxuICAgICAgICAgICAgLy8gLy9jb25zb2xlLmxvZyhcIk5FV19MRVZFTC5KU09OIOWKoOi9veaIkOWKnzpcIiwgbmV3TGV2ZWxEYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzdGF0aWMgTEVWRUxfSU5GT19pbml0KHR5cGUsdGltZSkgeyBcclxuICAgICAgICAvLyDnpLrkvosgICAgICAgICDlm7TlopnkvJrmoLnmja7nvLrnmoTlnLDlnZfoh6rliqjnlJ/miJBcclxuICAgICAgICAvLyDluKbnvLrlj6MgICAgICAge1wiaWRcIjpcIjEwMDZcIixcIm1hcFwiOlsxMCwxMV0sXCJnYXBcIjpbY2MudjIoNCw5KSxjYy52Mig1LDkpXX0sXHJcbiAgICAgICAgLy8g5bim5Y2H6ZmN5Zyw5Z2XICAge1wiaWRcIjpcIjEwMDRcIixcIm1hcFwiOls3LDhdLFwicmlzZWZhbGxcIjpbe3BvczpjYy52Mig1LDQpLGNvbG9yOjJ9LHtwb3M6Y2MudjIoNSw1KSxjb2xvcjo1fV19LFxyXG4gICAgICAgIC8vIOWmguaenOaZrumAmueahOWwsSAge1wiaWRcIjpcIjEwMDFcIixcIm1hcFwiOls2LDddfSwg6L+Z5Liq5qC35a2Q5bCx5Y+v5Lul5LqGXHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG5cclxuXHJcbiAgICAgICAgaWYoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCkgPiAxNTYpe1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAxNTY7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBuYW1lID0gXCJKc29uL2xldmVsXCIgKyAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKzEpO1xyXG5cclxuICAgICAgICAvLyAvL2NvbnNvbGUubG9nKFwi5YWz5Y2h5ZCN56ewOlwiLG5hbWUpO1xyXG4gICAgICAgIC8vIG5hbWUgPSBcIkpzb24vbGV2ZWxcIiArIDY4O1xyXG4gICAgICAgIC8vIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbC50b1N0cmluZygpKTtcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChuYW1lLCAoZXJyOiBhbnksIHJlczogY2MuSnNvbkFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuYWRkTGV2ZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICBzZWxmLkxFVkVMX0lORk9faW5pdCh0eXBlLHRpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBqc29uRGF0YTogb2JqZWN0ID0gcmVzLmpzb24hO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5CTE9DS19JTkZPID0ganNvbkRhdGFbXCJCTE9DS19JTkZPXCJdO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5MRVZFTF9JTkZPID0ganNvbkRhdGFbXCJMRVZFTF9JTkZPXCJdO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5XQUxMX0lORk8gPSBqc29uRGF0YVtcIldBTExfSU5GT1wiXTtcclxuICAgICAgICAgICAgICAgIC8vIC8vY29uc29sZS5sb2coXCLphY3nva7liqDovb3lrozmiJBcIik7IFxyXG4gICAgICAgICAgICAgICAgaWYodHlwZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIsICgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRpbWUgPT0gMCkgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIH0pXHJcblxyXG5cclxuICAgICAgIC8v6YGT5YW35L2N572u5L+h5oGvXHJcbiAgICAgIHRoaXMuUFJPUF9JTkZPID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY2LCBcInlcIjogNjAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTE5LCBcInlcIjogMzYsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM0LjM2MiwgXCJ5XCI6IDEzLjI0NiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTcsIFwieVwiOiAxMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODUsIFwieVwiOiA3MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAtNSwgXCJ5XCI6IDMsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtMTI2LCBcInlcIjogNjEsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTI1Ljc5MiwgXCJ5XCI6IDM0LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtOTQuNzkyLCBcInlcIjogMjEuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0yMCwgXCJ5XCI6IDEzLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC0xNDAsIFwieVwiOiA2OCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAtMiwgXCJ5XCI6IDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjcsIFwieVwiOiAxMjIsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTIwLCBcInlcIjogOTQsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM0Ljc5MiwgXCJ5XCI6IDIzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTQsIFwieVwiOiAyNCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODQsIFwieVwiOiAxMjgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogLTUsIFwieVwiOiAzLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTE3OCwgXCJ5XCI6IDYxLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zNC43OTIsIFwieVwiOiAzNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTE1MCwgXCJ5XCI6IDIzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjIsIFwieVwiOiAxNiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMjAwLCBcInlcIjogNjcsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDAsIFwielwiOiAwIH0sICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjMsIFwieVwiOiAxNzgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTE3Ljc5MiwgXCJ5XCI6IDE2Ni42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTMxLjc5MiwgXCJ5XCI6IDMzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTQsIFwieVwiOiAzNywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtNzgsIFwieVwiOiAxODIsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDIsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtMTIzLCBcInlcIjogMTI0LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNS43OTIsIFwieVwiOiA5OS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTk3Ljc5MiwgXCJ5XCI6IDI3LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjcsIFwieVwiOiAxOSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMTM1LCBcInlcIjogMTI3LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY0LCBcInlcIjogMTc4LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNC43OTIsIFwieVwiOiAyNzUuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zMS43OTIsIFwieVwiOiAzNS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTcsIFwieVwiOiAzOSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtNzcsIFwieVwiOiAxODgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtMTc4LCBcInlcIjogMTg2LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zMS43OTIsIFwieVwiOiAxNjMuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zMy43OTIsIFwieVwiOiAzNC42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTE4LCBcInlcIjogMzAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTIwMCwgXCJ5XCI6IDE5MiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogNSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC0xODYsIFwieVwiOiAxNzgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTI1Ljc5MiwgXCJ5XCI6IDM4LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMTUzLjc5MiwgXCJ5XCI6IDM0LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjMsIFwieVwiOiAxNCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMjAwLCBcInlcIjogMTg1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTE4MywgXCJ5XCI6IDY0LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zNy43OTIsIFwieVwiOiAzNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM2Ljc5MiwgXCJ5XCI6IDI2LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjQsIFwieVwiOiAxNywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMjEyLCBcInlcIjogNzQsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjUsIFwieVwiOiAxNzcsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogOTMuMjA4LCBcInlcIjogMjc2LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMzMuNzkyLCBcInlcIjogMzQuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IDMsIFwieVwiOiAzMSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODAsIFwieVwiOiAxOTAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDMsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiA1OCwgXCJ5XCI6IDE3OSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAyMDUuMjI1LCBcInlcIjogMTU0LjAzNCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMjkuNjQyLCBcInlcIjogMjUuNjkxLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IDcuMjE4LCBcInlcIjogMjkuNzY1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IDQ1LCBcInlcIjogMTg1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY4LCBcInlcIjogMTgyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNS43OTIsIFwieVwiOiAzNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM1Ljc5MiwgXCJ5XCI6IDMzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTQsIFwieVwiOiAxMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODIsIFwieVwiOiAxOTAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogLTIsIFwieVwiOiAxLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTE4NCwgXCJ5XCI6IDYyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zNS43OTIsIFwieVwiOiAzNi42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTI3MS43OTIsIFwieVwiOiAyNC42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTE3LCBcInlcIjogMjAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTIwMCwgXCJ5XCI6IDcyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTYyLCBcInlcIjogMTc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IDg3LjIwOCwgXCJ5XCI6IDE2NC42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTMxLjc5MiwgXCJ5XCI6IDM1LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtNiwgXCJ5XCI6IDI0LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC03OSwgXCJ5XCI6IDE3MiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogNSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC0xODQsIFwieVwiOiA3MiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAtMzMuNzkyLCBcInlcIjogMzguNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0xNTQuNzkyLCBcInlcIjogMjkuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0yOSwgXCJ5XCI6IDE2LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC0yMDEsIFwieVwiOiA4NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAtMSwgXCJ5XCI6IDMsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjQsIFwieVwiOiAxODEsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogOTUuMjA4LCBcInlcIjogMTU1LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMzAuNzkyLCBcInlcIjogMzYuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0xMiwgXCJ5XCI6IDMyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC03OCwgXCJ5XCI6IDE5MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02NSwgXCJ5XCI6IDE3OCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAtMjEuNzkyLCBcInlcIjogMTU2LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMzEuNzkyLCBcInlcIjogMzcuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0xMiwgXCJ5XCI6IDMyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC03OCwgXCJ5XCI6IDE4OCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02MiwgXCJ5XCI6IDE4MywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiA4OC4yMDgsIFwieVwiOiAxNjIuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0yOS43OTIsIFwieVwiOiA0MS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTEyLCBcInlcIjogMTgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTgwLCBcInlcIjogMTg4LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IC00LCBcInlcIjogMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02NywgXCJ5XCI6IDgwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNi43OTIsIFwieVwiOiAzMi42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM0Ljc5MiwgXCJ5XCI6IDIzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTIsIFwieVwiOiAxOCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODQsIFwieVwiOiA5MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC0xODQsIFwieVwiOiA4MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAtMjUuNzkyLCBcInlcIjogMzQuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0xNTUuNzkyLCBcInlcIjogMjUuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0xOCwgXCJ5XCI6IDI2LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC0xOTYsIFwieVwiOiA5NiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02MiwgXCJ5XCI6IDE2MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiA5NS4yMDgsIFwieVwiOiAxNTguNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zMy43OTIsIFwieVwiOiAyOS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTE4LCBcInlcIjogMjYsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTc4LCBcInlcIjogMTcwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY4LCBcInlcIjogMTYwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNS43OTIsIFwieVwiOiAxNTYuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zNS43OTIsIFwieVwiOiAyNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTI1LCBcInlcIjogNDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTgyLCBcInlcIjogMTcwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IC0yLCBcInlcIjogMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF07XHJcbiAgICAgIC8vIHRoaXMuUFJPUF9JTkZPID0gW3tcInBvczFcIjoge1wieFwiOiAtNjAsXCJ5XCI6IDYwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMTYuNDQyLFwieVwiOiAzMCxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM0LjM2MixcInlcIjogMTMuMjQ2LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTcsXCJ5XCI6IDEyLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xMjYsXCJ5XCI6IDYzLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC05NC43OTIsXCJ5XCI6IDIxLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTIwLFwieVwiOiAxMyxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjAsXCJ5XCI6IDEyNSxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTEyLjc5MixcInlcIjogOTIuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzQuNzkyLFwieVwiOiAyMy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNCxcInlcIjogMjQsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4NSxcInlcIjogNjMsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0zNC43OTIsXCJ5XCI6IDM3LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTE1NC43OTIsXCJ5XCI6IDIzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTIyLFwieVwiOiAxNixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNTcsXCJ5XCI6IDE3OCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTE3Ljc5MixcInlcIjogMTY2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMzMuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTQsXCJ5XCI6IDM3LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xMjMsXCJ5XCI6IDEyNyxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogOTkuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtOTcuNzkyLFwieVwiOiAyNy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yNyxcInlcIjogMTksXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTYyLFwieVwiOiAxODEsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0yNC43OTIsXCJ5XCI6IDI3NS42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMS43OTIsXCJ5XCI6IDM1LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTcsXCJ5XCI6IDM5LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODEsXCJ5XCI6IDE4MCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMTYzLjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMzLjc5MixcInlcIjogMzQuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTgsXCJ5XCI6IDMwLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODIsXCJ5XCI6IDE4MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMzguNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTUzLjc5MixcInlcIjogMzQuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjMsXCJ5XCI6IDE0LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODYsXCJ5XCI6IDYxLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMzcuNzkyLFwieVwiOiAzNy42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zNi43OTIsXCJ5XCI6IDI2LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTI0LFwieVwiOiAxNyxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjIsXCJ5XCI6IDE3NyxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogOTMuMjA4LFwieVwiOiAyNzYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzMuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IDMsXCJ5XCI6IDMxLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IDU4LFwieVwiOiAxNzksXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDIwNS4yMjUsXCJ5XCI6IDE1NC4wMzQsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0yOS42NDIsXCJ5XCI6IDI1LjY5MSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogNy4yMTgsXCJ5XCI6IDI5Ljc2NSxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNTcsXCJ5XCI6IDE4MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMzcuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzUuNzkyLFwieVwiOiAzMy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNCxcInlcIjogMTIsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4MCxcInlcIjogNjIsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0zNS43OTIsXCJ5XCI6IDM2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTI3MS43OTIsXCJ5XCI6IDI0LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE3LFwieVwiOiAyMCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjIsXCJ5XCI6IDE3OCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogODcuMjA4LFwieVwiOiAxNjQuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAzNS42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC02LFwieVwiOiAyNCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTc2LFwieVwiOiA2MCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTMzLjc5MixcInlcIjogMzguNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTU0Ljc5MixcInlcIjogMjkuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjksXCJ5XCI6IDE2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogMTgxLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA5NS4yMDgsXCJ5XCI6IDE1NS42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMC43OTIsXCJ5XCI6IDM2LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTEyLFwieVwiOiAzMixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjMsXCJ5XCI6IDE3OCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTIxLjc5MixcInlcIjogMTU2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMzcuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDMyLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogMTgzLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA4OC4yMDgsXCJ5XCI6IDE2Mi42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0yOS43OTIsXCJ5XCI6IDQxLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTEyLFwieVwiOiAxOCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjQsXCJ5XCI6IDU4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjYuNzkyLFwieVwiOiAzMi42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zNC43OTIsXCJ5XCI6IDIzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTEyLFwieVwiOiAxOCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTg0LFwieVwiOiA2MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMzQuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTU1Ljc5MixcInlcIjogMjUuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTgsXCJ5XCI6IDI2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC01NyxcInlcIjogMTkwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA5NS4yMDgsXCJ5XCI6IDE1OC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMy43OTIsXCJ5XCI6IDI5LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE4LFwieVwiOiAyNixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNzEsXCJ5XCI6IDE4NCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMTU2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM1Ljc5MixcInlcIjogMjcuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjUsXCJ5XCI6IDQwLFwielwiOiAwfX1dO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgc3RhdGljIHNldENvZGUoY29kZSl7XHJcbiAgICAgICAgdGhpcy5HTV9JTkZPLnNjb2RlID0gY29kZTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgc3RhdGljIGdldEtleShrZXkpe1xyXG4gICAgICAgIC8vIHZhciByZWcgPSBuZXcgUmVnRXhwKCcoXnwmKScgKyBrZXkgKyAnPShbXiZdKikoJnwkKScsICdpJyk7XHJcbiAgICAgICAgLy8gdmFyIHIgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKS5tYXRjaChyZWcpO1xyXG4gICAgICAgIC8vIGlmIChyICE9IG51bGwpIHtcclxuICAgICAgICAvLyAgICAgcmV0dXJuIHVuZXNjYXBlKHJbMl0pO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhdGljIEF1dGhlbnRpY2F0aW9uKCl7XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuQXV0aGVudGljYXRpb24oKTtcclxuICAgIH1cclxufVxyXG5cclxuIl19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/GameOver.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '805c6nf399HWZeuWnNB9CTH', 'GameOver'); -// Script/GameOver.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var NewClass = /** @class */ (function (_super) { - __extends(NewClass, _super); - function NewClass() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.count = null; - _this.time = null; - _this.selfNode = null; - _this.one = null; - _this.two = null; - _this.three = null; - _this.four = null; - _this.five = null; - return _this; - } - // onLoad () {} - NewClass.prototype.start = function () { - this.count.string = cc.fx.GameConfig.GM_INFO.score + ""; - var yes = 0; - var successList = cc.fx.GameConfig.GM_INFO.successList; - if (successList.length > 0) { - var success = 0; - for (var i = 0; i < successList.length; i++) { - if (successList[i] == true) - success += 1; - } - yes = success / successList.length; - } - yes = Math.floor(yes * 1000) / 10; - this.time.string = yes + "%"; - this.init(); - }; - //初始化数据 - NewClass.prototype.init = function () { - this.listData = []; - this.selfData = null; - this.one.active = false; - this.two.active = false; - this.three.active = false; - this.four.active = false; - this.five.active = false; - var urlNow = window.location.href; - if (this.containsTrain(urlNow)) { - this.node.getChildByName("again").active = false; - this.node.getChildByName("back").active = false; - this.node.getChildByName("finishi").active = true; - this.setLocalStorage(); - } - else { - this.setLocalStorage(); - this.node.getChildByName("again").active = true; - this.node.getChildByName("back").active = true; - this.node.getChildByName("finishi").active = false; - } - this.getRank(); - }; - NewClass.prototype.setLocalStorage = function () { - var timeData = cc.fx.GameConfig.TIME_INFO.totalTime; - var today = new Date().toLocaleDateString(); - var name = "success_" + today + "_" + cc.fx.GameConfig.GM_INFO.scode + "_" + cc.fx.GameConfig.GM_INFO.gameId; - localStorage.setItem(name, JSON.stringify({ success: true })); - }; - //打开排行榜 - NewClass.prototype.openRank = function () { - cc.director.loadScene("RankScene"); - }; - //重新开始玩 - NewClass.prototype.again = function () { - cc.fx.GameConfig.GM_INFO.round = 0; - cc.fx.GameConfig.GM_INFO.level = 0; - cc.fx.GameConfig.GM_INFO.stepTimeList = 0; - cc.fx.GameConfig.GM_INFO.successList = []; - cc.fx.GameConfig.GM_INFO.fen = 0; - cc.fx.GameConfig.GM_INFO.score = 0; - cc.fx.GameConfig.GM_INFO.min_Steps = 0; - cc.fx.GameConfig.GM_INFO.min_Time = 0; - cc.fx.GameConfig.TIME_INFO.totalTime = 120; - cc.director.loadScene("GameScene"); - }; - //判断来源 - NewClass.prototype.containsTrain = function (str) { - return /from=train/i.test(str); - }; - //获取排行榜 - NewClass.prototype.getRank = function () { - var _this = this; - //获取排行榜数据 所需数据量 - var dataFile = { - length: 5 - }; - cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); }); - }; - //打开排行榜 - NewClass.prototype.jumpFinishi = function () { - var url = "https://train.sparkus.cn/poster/game/" + cc.fx.GameConfig.GM_INFO.scode + "?suc=1"; - window.location.href = url; - }; - //设置排行信息 - NewClass.prototype.getRankData = function (data) { - if (data) { - cc.fx.GameTool.getRankData(data, this, 4); - cc.fx.GameTool.setPic(this.selfNode.getChildByName("pic").getChildByName("icon"), this.selfData.pic); - var length = this.listData.length - 1; - if (length > 4) - length = 4; - for (var i = 0; i <= length; i++) { - this.setRank(i, this.listData[i]); - } - } - }; - //根据内容填充排行榜 - NewClass.prototype.setRank = function (num, data) { - var _this = this; - if (!data) { - return; - } - var hitNode = null; - if (num == 0) { - hitNode = this.one; - } - else if (num == 1) { - hitNode = this.two; - } - else if (num == 2) { - hitNode = this.three; - } - else if (num == 3) { - hitNode = this.four; - } - else if (num == 4) { - hitNode = this.five; - } - var trun = num + 1; - for (var i = 0; i < trun; i++) { - if (this.listData[i] && this.listData[i].nickName == cc.fx.GameConfig.GM_INFO.nickName) { - trun = i + 1; - break; - } - else if (!this.listData[i] == null) { - trun = i * 2; - break; - } - this.node.color = cc.color(this.listData[0], this.listData[1], this.listData[2]); - cc.tween(this.node) - .to(0.5, { scale: 2 }) - .by(1, { opacity: 0 }) - .delay(0.5) - .call(function () { - _this.node.scale = 1; - _this.node.opacity = 255; - _this.node.color = cc.color(255, 255, 255); - }) - .start(); - } - hitNode.getChildByName("num").getComponent(cc.Label).string = num + ""; - cc.tween(hitNode.getChildByName("num").getComponent(cc.Label)) - .to(0.5, { string: trun + "" }) - .start(); - var record = cc.fx.GameConfi.GM_INFO.score; - if (data.score >= record) { - this.selfData = data; - this.selfNode.active = true; - } - if (hitNode) { - hitNode.active = true; - if (data.nickName.length >= 4) - data.nickName = cc.fx.GameTool.subName(data.nickName, 4); - hitNode.getChildByName("name").getComponent(cc.Label).string = data.nickName; - hitNode.getChildByName("total").getComponent(cc.Label).string = data.score; - cc.fx.GameTool.setPic(hitNode.getChildByName("pic").getChildByName("icon"), data.pic); - } - }; - __decorate([ - property(cc.Label) - ], NewClass.prototype, "count", void 0); - __decorate([ - property(cc.Label) - ], NewClass.prototype, "time", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "selfNode", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "one", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "two", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "three", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "four", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "five", void 0); - NewClass = __decorate([ - ccclass - ], NewClass); - return NewClass; -}(cc.Component)); -exports.default = NewClass; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lT3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDTSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXFMQztRQW5MRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBRXZCLFVBQUksR0FBYSxJQUFJLENBQUM7UUFFdEIsY0FBUSxHQUFZLElBQUksQ0FBQztRQUV6QixTQUFHLEdBQVksSUFBSSxDQUFDO1FBRXBCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFFcEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUV0QixVQUFJLEdBQVksSUFBSSxDQUFDO1FBRXJCLFVBQUksR0FBWSxJQUFJLENBQUM7O0lBcUt6QixDQUFDO0lBbEtHLGVBQWU7SUFDZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDeEQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1osSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN2RCxJQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1lBQ3RCLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztZQUNoQixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDbkMsSUFBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSTtvQkFBRSxPQUFPLElBQUksQ0FBQyxDQUFDO2FBQzNDO1lBQ0QsR0FBRyxH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QUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFoQkosUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXFMNUI7SUFBRCxlQUFDO0NBckxELEFBcUxDLENBckxxQyxFQUFFLENBQUMsU0FBUyxHQXFMakQ7a0JBckxvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgY291bnQ6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIHRpbWU6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2VsZk5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBvbmU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0d286IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0aHJlZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZvdXI6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmaXZlOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIGxpc3REYXRhOiBhbnk7XHJcbiAgICBzZWxmRGF0YTogYW55O1xyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgdGhpcy5jb3VudC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NvcmUgKyBcIlwiO1xyXG4gICAgICAgIHZhciB5ZXMgPSAwO1xyXG4gICAgICAgIHZhciBzdWNjZXNzTGlzdCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zdWNjZXNzTGlzdDtcclxuICAgICAgICBpZihzdWNjZXNzTGlzdC5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSAwO1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTxzdWNjZXNzTGlzdC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBpZihzdWNjZXNzTGlzdFtpXSA9PSB0cnVlKSBzdWNjZXNzICs9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgeWVzID0gc3VjY2Vzcy9zdWNjZXNzTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHllcyA9IE1hdGguZmxvb3IoeWVzICogMTAwMCkvMTA7XHJcbiAgICAgICAgdGhpcy50aW1lLnN0cmluZyA9ICAgeWVzICsgXCIlXCI7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgICBcclxuICAgIH0gICBcclxuICAgIC8v5Yid5aeL5YyW5pWw5o2uXHJcbiAgICBpbml0KCl7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZkRhdGEgPSBudWxsO1xyXG4gICAgICAgIHRoaXMub25lLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudHdvLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGhyZWUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5mb3VyLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZml2ZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB2YXIgdXJsTm93ID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XHJcbiAgICAgICAgaWYodGhpcy5jb250YWluc1RyYWluKHVybE5vdykpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJhZ2FpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYmFja1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiZmluaXNoaVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNldExvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLnNldExvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJhZ2FpblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJiYWNrXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImZpbmlzaGlcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmdldFJhbmsoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRMb2NhbFN0b3JhZ2UoKXtcclxuICAgICAgICBsZXQgdGltZURhdGEgPSBjYy5meC5HYW1lQ29uZmlnLlRJTUVfSU5GTy50b3RhbFRpbWU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xyXG4gICAgICAgIHZhciBuYW1lID0gYHN1Y2Nlc3NfJHt0b2RheX1fJHtjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NvZGV9XyR7Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVJZH1gXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0obmFtZSwgSlNPTi5zdHJpbmdpZnkoe3N1Y2Nlc3M6dHJ1ZX0pKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+aJk+W8gOaOkuihjOamnFxyXG4gICAgb3BlblJhbmsoKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJSYW5rU2NlbmVcIik7XHJcbiAgICB9XHJcbiAgICAvL+mHjeaWsOW8gOWni+eOqVxyXG4gICAgYWdhaW4oKXtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucm91bmQgPSAwO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnN0ZXBUaW1lTGlzdCA9IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnN1Y2Nlc3NMaXN0ID0gW107XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZlbiA9IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnNjb3JlID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1N0ZXBzID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1RpbWUgPSAwO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuVElNRV9JTkZPLnRvdGFsVGltZSA9IDEyMDtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICB9XHJcbiAgICAvL+WIpOaWreadpea6kFxyXG4gICAgY29udGFpbnNUcmFpbihzdHIpIHtcclxuICAgICAgICByZXR1cm4gL2Zyb209dHJhaW4vaS50ZXN0KHN0cik7XHJcbiAgICB9XHJcbiAgICAvL+iOt+WPluaOkuihjOamnFxyXG4gICAgZ2V0UmFuaygpe1xyXG4gICAgICAgIC8v6I635Y+W5o6S6KGM5qac5pWw5o2uICDmiYDpnIDmlbDmja7ph49cclxuICAgICAgICBsZXQgZGF0YUZpbGUgPSB7XHJcbiAgICAgICAgICAgIGxlbmd0aDo1XHJcbiAgICAgICAgfVxyXG4gICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRSYW5rKGRhdGFGaWxlLGRhdGEgPT50aGlzLmdldFJhbmtEYXRhKGRhdGEpKTtcclxuICAgIH1cclxuICAgIC8v5omT5byA5o6S6KGM5qacXHJcbiAgICBqdW1wRmluaXNoaSgpe1xyXG4gICAgICAgIGxldCB1cmwgPSBcImh0dHBzOi8vdHJhaW4uc3Bhcmt1cy5jbi9wb3N0ZXIvZ2FtZS9cIiArIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zY29kZSArIFwiP3N1Yz0xXCI7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICB9XHJcbiAgICAvL+iuvue9ruaOkuihjOS/oeaBr1xyXG4gICAgZ2V0UmFua0RhdGEoZGF0YSl7XHJcbiAgICAgICAgaWYoZGF0YSl7XHJcbiAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRSYW5rRGF0YShkYXRhLHRoaXMsNCk7XHJcbiAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRQaWModGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksdGhpcy5zZWxmRGF0YS5waWMpO1xyXG4gICAgICAgICAgICB2YXIgbGVuZ3RoID0gdGhpcy5saXN0RGF0YS5sZW5ndGgtMTsgaWYobGVuZ3RoID4gNCkgbGVuZ3RoID0gNDtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7aTw9bGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFJhbmsoaSx0aGlzLmxpc3REYXRhW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8v5qC55o2u5YaF5a655aGr5YWF5o6S6KGM5qacXHJcbiAgICBzZXRSYW5rKG51bSxkYXRhKXtcclxuICAgICAgICBpZighZGF0YSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBoaXROb2RlID0gbnVsbDtcclxuICAgICAgICBpZihudW0gPT0gMCl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gMSl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLnR3bztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gMil7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLnRocmVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSAzKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMuZm91cjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gNCl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLmZpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdHJ1biA9IG51bSArIDE7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8IHRydW47IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubGlzdERhdGFbaV0gJiYgdGhpcy5saXN0RGF0YVtpXS5uaWNrTmFtZSA9PSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubmlja05hbWUpe1xyXG4gICAgICAgICAgICAgICAgdHJ1biA9IGkgKyAxO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZighdGhpcy5saXN0RGF0YVtpXSA9PSBudWxsICl7XHJcbiAgICAgICAgICAgICAgICB0cnVuID0gaSAqIDI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuY29sb3IgPSBjYy5jb2xvcih0aGlzLmxpc3REYXRhWzBdLHRoaXMubGlzdERhdGFbMV0sdGhpcy5saXN0RGF0YVsyXSk7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZSlcclxuICAgICAgICAgICAgLnRvKDAuNSx7c2NhbGU6Mn0pXHJcbiAgICAgICAgICAgIC5ieSgxLHtvcGFjaXR5OjB9KVxyXG4gICAgICAgICAgICAuZGVsYXkoMC41KVxyXG4gICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5jb2xvciA9IGNjLmNvbG9yKDI1NSwyNTUsMjU1KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gbnVtICsgXCJcIjtcclxuICAgICAgICBjYy50d2VlbihoaXROb2RlLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkpXHJcbiAgICAgICAgLnRvKDAuNSx7c3RyaW5nOnRydW4rXCJcIn0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIGxldCByZWNvcmQgPSBjYy5meC5HYW1lQ29uZmkuR01fSU5GTy5zY29yZTtcclxuICAgICAgICBpZihkYXRhLnNjb3JlID49IHJlY29yZCl7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZkRhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZihoaXROb2RlKXtcclxuICAgICAgICAgICAgaGl0Tm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZihkYXRhLm5pY2tOYW1lLmxlbmd0aCA+PSA0KVxyXG4gICAgICAgICAgICAgICAgZGF0YS5uaWNrTmFtZSA9IGNjLmZ4LkdhbWVUb29sLnN1Yk5hbWUoZGF0YS5uaWNrTmFtZSw0KTtcclxuICAgICAgICAgICAgaGl0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLnNjb3JlO1xyXG4gICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0UGljKGhpdE5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLGRhdGEucGljKTtcclxuICAgICAgICB9XHJcbiAgICB9ICAgXHJcbn1cclxuIl19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/GameScene.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'e8b235WjRBErajwLmN8xFUz', 'GameScene'); -// Script/GameScene.js - -// cc.Class({ -// extends: cc.Component, -// properties: { -// localTest: { -// default: false, -// tooltip: '本地测试时勾选,避免tz_url和Configure报错,提交前勾掉' -// }, -// clientTest: { -// default: false, -// tooltip: '客户端测试时勾选,展示版本标记方便测试区分,上线前勾掉' -// }, -// clientTestVersion: { -// default: '', -// tooltip: '版本标记' -// }, -// testVersion: cc.Label, -// score: cc.Label, -// double_hit: cc.Node, -// add: cc.Node, -// add2: cc.Node, -// double_title: cc.Node, -// count_time: cc.Node, -// beginNode: cc.Node, -// ball_nomal: [cc.SpriteFrame], -// bg_nomal: [cc.SpriteFrame], -// ball_light: [cc.SpriteFrame], -// kuang_Frame: [cc.SpriteFrame], -// daojishi: cc.Label, -// pause_anniu: cc.Sprite, -// mask: cc.Node, -// flashUI: { -// default: null, -// type: cc.SpriteAtlas -// }, -// }, -// onLoad() { -// }, -// update(dt) { -// }, -// }); -"use strict"; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lU2NlbmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFFQTtBQUVBO0FBRUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4vLyBjYy5DbGFzcyh7XHJcbi8vICAgICBleHRlbmRzOiBjYy5Db21wb25lbnQsXHJcbi8vICAgICBwcm9wZXJ0aWVzOiB7XHJcbi8vICAgICAgICAgbG9jYWxUZXN0OiB7XHJcbi8vICAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4vLyAgICAgICAgICAgICB0b29sdGlwOiAn5pys5Zyw5rWL6K+V5pe25Yu+6YCJ77yM6YG/5YWNdHpfdXJs5ZKMQ29uZmlndXJl5oql6ZSZ77yM5o+Q5Lqk5YmN5Yu+5o6JJ1xyXG4vLyAgICAgICAgIH0sXHJcbi8vICAgICAgICAgY2xpZW50VGVzdDoge1xyXG4vLyAgICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcclxuLy8gICAgICAgICAgICAgdG9vbHRpcDogJ+WuouaIt+err+a1i+ivleaXtuWLvumAie+8jOWxleekuueJiOacrOagh+iusOaWueS+v+a1i+ivleWMuuWIhu+8jOS4iue6v+WJjeWLvuaOiSdcclxuLy8gICAgICAgICB9LFxyXG4vLyAgICAgICAgIGNsaWVudFRlc3RWZXJzaW9uOiB7XHJcbi8vICAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxyXG4vLyAgICAgICAgICAgICB0b29sdGlwOiAn54mI5pys5qCH6K6wJ1xyXG4vLyAgICAgICAgIH0sXHJcbi8vICAgICAgICAgdGVzdFZlcnNpb246IGNjLkxhYmVsLFxyXG4vLyAgICAgICAgIHNjb3JlOiBjYy5MYWJlbCxcclxuLy8gICAgICAgICBkb3VibGVfaGl0OiBjYy5Ob2RlLFxyXG4vLyAgICAgICAgIGFkZDogY2MuTm9kZSxcclxuLy8gICAgICAgICBhZGQyOiBjYy5Ob2RlLFxyXG4vLyAgICAgICAgIGRvdWJsZV90aXRsZTogY2MuTm9kZSxcclxuLy8gICAgICAgICBjb3VudF90aW1lOiBjYy5Ob2RlLFxyXG4vLyAgICAgICAgIGJlZ2luTm9kZTogY2MuTm9kZSxcclxuLy8gICAgICAgICBiYWxsX25vbWFsOiBbY2MuU3ByaXRlRnJhbWVdLFxyXG4vLyAgICAgICAgIGJnX25vbWFsOiBbY2MuU3ByaXRlRnJhbWVdLFxyXG4vLyAgICAgICAgIGJhbGxfbGlnaHQ6IFtjYy5TcHJpdGVGcmFtZV0sXHJcbi8vICAgICAgICAga3VhbmdfRnJhbWU6IFtjYy5TcHJpdGVGcmFtZV0sXHJcbi8vICAgICAgICAgZGFvamlzaGk6IGNjLkxhYmVsLFxyXG4vLyAgICAgICAgIHBhdXNlX2Fubml1OiBjYy5TcHJpdGUsXHJcbi8vICAgICAgICAgbWFzazogY2MuTm9kZSxcclxuXHJcbi8vICAgICAgICAgZmxhc2hVSToge1xyXG4vLyAgICAgICAgICAgICBkZWZhdWx0OiBudWxsLFxyXG4vLyAgICAgICAgICAgICB0eXBlOiBjYy5TcHJpdGVBdGxhc1xyXG4vLyAgICAgICAgIH0sXHJcbi8vICAgICB9LFxyXG5cclxuLy8gICAgIG9uTG9hZCgpIHtcclxuXHJcblxyXG4vLyAgICAgfSxcclxuXHJcbi8vICAgICB1cGRhdGUoZHQpIHtcclxuXHJcbi8vICAgICB9LFxyXG5cclxuLy8gfSk7Il19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFNoYXJlXFxzaGFyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiIl19 //------QC-SOURCE-SPLIT------ (function() { @@ -4938,6 +4328,719 @@ cc._RF.pop(); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,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Iiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eSwgcmVxdWlyZUNvbXBvbmVudH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG5vZGUxOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG5vZGUyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG5vZGUzOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoZmFsc2UpXHJcbiAgICBsb2NhbFRlc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAcHJvcGVydHkoXCJcIilcclxuICAgIGNsaWVudFRlc3RWZXJzaW9uOiBzdHJpbmcgPSBcIjEuMC4wXCI7XHJcblxyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICB0ZXN0VmVyc2lvbjogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgLy8gY2MuZGlyZWN0b3IuZ2V0UGh5c2ljc01hbmFnZXIoKS5lbmFibGVkID0gdHJ1ZTtcclxuICAgICAgICAvLyBjYy5kaXJlY3Rvci5nZXRQaHlzaWNzTWFuYWdlcigpLmRlYnVnRHJhd0ZsYWdzID0gMTtcclxuICAgICAgICAvLyBjYy5kaXJlY3Rvci5nZXRQaHlzaWNzTWFuYWdlcigpLmVuYWJsZWRBY2N1bXVsYXRvciA9IHRydWU7XHJcbiAgICAgICAgLy8gY2MuUGh5c2ljc01hbmFnZXIuVkVMT0NJVFlfSVRFUkFUSU9OUyA9IDIwO1xyXG4gICAgICAgIC8vIGNjLlBoeXNpY3NNYW5hZ2VyLkZJWEVEX1RJTUVfU1RFUCA9IDEgLyAxMjA7XHJcbiAgICAgICAgLy8gY2MuUGh5c2ljc01hbmFnZXIuUE9TSVRJT05fSVRFUkFUSU9OUyA9IDIwO1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIFxyXG4gICAgICAgIGNjLmludGVybmFsLmlucHV0TWFuYWdlci5fbWF4VG91Y2hlcyA9IDFcclxuXHJcbiAgICAgICAgbGV0IG1hbmFnZXIgPSBjYy5kaXJlY3Rvci5nZXRDb2xsaXNpb25NYW5hZ2VyKCk7XHJcbiAgICAgICAgbWFuYWdlci5lbmFibGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldFdYKCk7XHJcblxyXG4gICAgICAgIGNjLmRlYnVnLnNldERpc3BsYXlTdGF0cyhmYWxzZSk7XHJcblxyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUxKVxyXG4gICAgICAgIC5kZWxheSgwICogMC4zKSBcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC50bygwLjMsIHtzY2FsZTogMS4zfSlcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC51bmlvbigpXHJcbiAgICAgICAgLnJlcGVhdEZvcmV2ZXIoKVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUyKVxyXG4gICAgICAgIC5kZWxheSgxICogMC4zKSBcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC50bygwLjMsIHtzY2FsZTogMS4zfSlcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC51bmlvbigpXHJcbiAgICAgICAgLnJlcGVhdEZvcmV2ZXIoKVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUzKVxyXG4gICAgICAgIC5kZWxheSgyICogMC4zKSBcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC50bygwLjMsIHtzY2FsZTogMS4zfSlcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC51bmlvbigpXHJcbiAgICAgICAgLnJlcGVhdEZvcmV2ZXIoKVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzZXRXWCgpe1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHsgLy8g5Yik5pat5piv5ZCm5Zyo5b6u5L+h546v5aKDXHJcbiAgICAgICAgICAgIHd4LnNldFByZWZlcnJlZEZyYW1lc1BlclNlY29uZCg2MCk7XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAvLyAvLyDorr7nva7ovazlj5HmjInpkq7ngrnlh7vlkI7nmoTlm57osINcclxuICAgICAgICAgICAgLy8gd3gub25TaGFyZUFwcE1lc3NhZ2UoKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLy8gICAgICAgICB0aXRsZTogJ+S9oOaDs+eOqeS4iuaAjuagt+eahOa4uOaIj++8nycsXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgaW1hZ2VVcmw6ICcnLFxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHF1ZXJ5OiAnJ1xyXG4gICAgICAgICAgICAvLyAgICAgfTtcclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICB3eC5vblNoYXJlQXBwTWVzc2FnZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIC8vIOeUqOaIt+eCueWHu+S6huKAnOi9rOWPkeKAneaMiemSrlxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfkvaDmg7PnjqnkuIrmgI7moLfnmoTmuLjmiI/vvJ8nXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuXHJcblxyXG4gICAgICAgICAgICAvLyDnm5HlkKzliIbkuqvliLDmnIvlj4vlnIjkuovku7ZcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4Lm9uU2hhcmVUaW1lbGluZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5L2g5oOz546p5LiK5oCO5qC355qE5ri45oiP77yfJ1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICB3eC5zaG93U2hhcmVNZW51KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfkvaDmg7PnjqnkuIrmgI7moLfnmoTmuLjmiI/vvJ8nLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlVXJsOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBxdWVyeTogJydcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgd3guc2hvd1NoYXJlTWVudSh7XHJcbiAgICAgICAgICAgICAgICAgICAgbWVudXM6IFsnc2hhcmVBcHBNZXNzYWdlJywgJ3NoYXJlVGltZWxpbmUnXVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSwgMjAwMCk7XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIC8vIOiuvue9ruWIhuS6q+WIsOaci+WPi+WciFxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgLy8gd3gudXBkYXRlU2hhcmVNZW51KHtcclxuICAgICAgICAgICAgLy8gICAgIHdpdGhTaGFyZVRpY2tldDogdHJ1ZSxcclxuICAgICAgICAgICAgLy8gICAgIHN1Y2Nlc3M6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgY29uc29sZS5sb2coJ+abtOaWsOWIhuS6q+iPnOWNleaIkOWKnycsIGRhdGEpO1xyXG4gICAgICAgICAgICAvLyAgICAgfSxcclxuICAgICAgICAgICAgLy8gICAgIGZhaWw6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgY29uc29sZS5sb2coJ+abtOaWsOWIhuS6q+iPnOWNleWksei0pScsIGRhdGEpO1xyXG4gICAgICAgICAgICAvLyAgICAgfSxcclxuICAgICAgICAgICAgLy8gICAgIGNvbXBsZXRlOiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKCfmm7TmlrDliIbkuqvoj5zljZXlrozmiJAnLCBkYXRhKTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIH1cclxuICAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yik5pat5p2l5rqQXHJcbiAgICBjb250YWluc1RyYWluKHN0cikge1xyXG4gICAgXHJcbiAgICAgICAgcmV0dXJuIC9mcm9tPXRyYWluL2kudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5byA5aeL5ri45oiP77yM6Lez6L2s6Iez5byV5a+86aG16Z2iXHJcbiAgICBzdGFydEdhbWUoKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgLy8gY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR3VpZGVTY2VuZVwiKTtcclxuICAgIH1cclxuICAgIC8v5aSH55So77yM55So5p2l5rWL6K+V6Lez6L2sIOaMh+WumuWFs+WNoVxyXG4gICAgY2xpY2tCdG4oZXZlbnQsZGF0YSl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmN1c3RvbSA9IHBhcnNlSW50KGRhdGEpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgIH0gICBcclxuICAgIC8v5omT5byA5o6S6KGM5qacXHJcbiAgICBvcGVuUmFuaygpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIlJhbmtTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIHByb3RlY3RlZCB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgfVxyXG4gICAgXHJcbi8vICAgICAz5pyIMTfml6UgLSAz5pyIMjHml6Ug5bel5L2c5a6M5oiQ5YaF5a65XHJcblxyXG4vLyAx77ya5ri45oiP5qGG5p625pCt5bu6XHJcbi8vIDLvvJrliLbkvZwxOOS4quWfuuehgOaWueWdl+mihOWItuS9kyAo5pa55Z2X5Y+v57yW6L6R6aKc6Imy5LiO6YGT5YW35ZKM54q25oCBKVxyXG4vLyAz77ya5a6M5oiQ5Zyw5Zu+55qE5pCt5bu677yM5Y+v6YWN572uOCo45Lul5YaF77yM5Lu75oSP57uE5ZCI77yM5YyF5ous5Y+v57y65Y+j5ZKM6Zqc56KN54mp6YWN572uXHJcbi8vIDTvvJrlrozmiJDlnLDlm77lopnpnaLlu7rnq4vvvIzmoLnmja4g4oaRM+S4iumdouaehOW7uueahOWcsOWbvuiHquWKqOeUn+aIkOWimeS9k+OAglxyXG4vLyA177ya5YGa5a6M5pa55Z2X55qE5Z+656GA56e75Yqo77yM6Lef6ZqP5omL5oyH77yM6YGH5Yiw5pa55Z2X5oiW6ICF5aKZ5aOB5oiW6ICF6Zqc56KN54mp6Zi756KN56e75Yqo44CCXHJcbi8vIDbvvJrmlrnlnZfnmoToh6rliqjokL3ngrnlgZrlrowxMeS4quWfuuehgOaWueWdl+eahO+8iOacquWBmuWujOi/mOW3rjEx5Liq77yJXHJcblxyXG4vLyAz5pyIMjTml6UgLSAz5pyIMjjml6Ug6aKE6K6h5a6M5oiQ55uu5qCHXHJcblxyXG4vLyAx77ya5a6M5oiQ5YWo6YOo5pa55Z2X55qE6JC954K544CCXHJcbi8vIDLvvJrlrozmiJDpl6jnmoTmkK3lu7rvvIzpl6jlj6/pgInpopzoibLvvIzlj6/pgInlvIDlhbPmiJbogIXmmJ/mmJ/nrYnnibnmrornirbmgIFcclxuLy8gM++8muWujOaIkOaWueWdl+mAmui/h+mXqOeahOa4uOaIj+mAu+i+ke+8jOS9v+a4uOaIj+WPr+S7peacgOWfuuehgOi/kOihjOeOqei1t+adpVxyXG4vLyA077ya5Ye6NeWFs+eJiOacrO+8jOmFjeWQiOWwj+eZveWkh+ahiOWuoeaguOOAglxyXG4vLyA177ya5qC55o2u5pa55Z2X77yM5Zyw5Zu+77yM5Lul5Y+K6YGT5YW377yM5Yi25L2c5Zyw5Zu+57yW6L6R5ZmoICjmlrnlnZflkozlnLDlm77liLbkvZznmoTml7blgJnpg73lt7Lnu4/ogIPomZHliLDnvJbovpHlmajnmoTpnIDmsYLkuoYpIFxyXG4vLyBcdOS8mOWFiOWItuS9nO+8jOWQjue7reW8gOWPkeaLk+WxleeOqeazleWKn+iDveaXtu+8jOWwj+eZveWPr+WQjOatpei/m+ihjOWItuS9nOWFs+WNoeOAglxyXG59XHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/ControlManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'e35abcX5VRAoItO6mgFcYyX', 'ControlManager'); +// Script/ControlManager.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.Map = null; + _this.tip = null; + _this.reinforce = null; + _this.soil = null; + return _this; + // update (dt) {} + } + // LIFE-CYCLE CALLBACKS: + // onLoad () {} + NewClass.prototype.start = function () { + this.tipArray = []; + this.controlArray = []; + this.canTouch = true; + this.Reinforce = false; + this.Soil = false; + this.mapHeight = 0; + }; + NewClass.prototype.setPosition = function (tip) { + tip.setPosition(30, -25); + if (this.tipArray.length > 0) { + var length = this.tipArray.length + 1; + var posY = Math.ceil(length / 8) - 1; + var posX = length - Math.floor(posY) * 8 - 1; + tip.setPosition(30 + 48 * posX, -25 - 48 * posY + this.mapHeight); + } + }; + //清空所有 + NewClass.prototype.removeAllTip = function () { + if (!this.canTouch) + return; + if (this.tipArray.length > 0) { + cc.fx.AudioManager._instance.playEffect("qingkong", null); + for (var i = 0; i < this.tipArray.length; i++) { + var tip = this.tipArray[i]; + tip.active = false; + tip.removeFromParent(this.Map); + tip = null; + } + this.tipArray = []; + this.controlArray = []; + var drawingReset = cc.fx.GameConfig.CLICK_DATA.drawingReset + 1; + cc.fx.GameConfig.CLICK_SET("drawingReset", drawingReset); + cc.fx.Notifications.emit(cc.fx.Message.removeTip, "remove"); + this.mapHeight = 0; + } + }; + //撤回一步 + NewClass.prototype.back_Click = function () { + if (!this.canTouch) + return; + if (this.tipArray.length > 0) { + cc.fx.AudioManager._instance.playEffect("chehui", null); + var tip = this.tipArray[this.tipArray.length - 1]; + tip.active = false; + tip.removeFromParent(this.Map); + tip = null; + this.tipArray.pop(); + this.controlArray.pop(); + var drawingBack = cc.fx.GameConfig.CLICK_DATA.drawingBack + 1; + cc.fx.GameConfig.CLICK_SET("drawingBack", drawingBack); + cc.fx.Notifications.emit(cc.fx.Message.removeTip, "back"); + if (this.tipArray.length >= 24) { + if ((this.tipArray.length) % 8 == 0) { + this.mapMove(false); + } + } + } + }; + //点击事件 + NewClass.prototype.btn_Click = function (target, data) { + var GameManager = this.node.parent.getComponent("GameManager"); + if (GameManager.btnClick == true) { + GameManager.btnClick = false; + cc.fx.Notifications.emit(cc.fx.Message.guideNext); + } + cc.fx.Notifications.emit(cc.fx.Message.control, data); + if (!this.canTouch) + return; + var prefab = this.tip; + if (data == "reinforce" || data == "soil") { + prefab = this[data]; + if (data == "reinforce") { + if (this.Reinforce) { + this.Reinforce = false; + this.back_Click(); + return; + } + else { + cc.fx.AudioManager._instance.playEffect("jineng", null); + this.Reinforce = true; + this.Soil = false; + } + } + else if (data == "soil") { + if (this.Soil) { + this.Soil = false; + this.back_Click(); + return; + } + else { + cc.fx.AudioManager._instance.playEffect("jineng", null); + this.Soil = true; + this.Reinforce = false; + } + } + } + else { + cc.fx.AudioManager._instance.playEffect("fangxiang", null); + this.Reinforce = false; + this.Soil = false; + } + var tip = cc.instantiate(prefab); + if (data == "up") + tip.angle = 180; + if (data == "left") + tip.angle = -90; + if (data == "right") + tip.angle = 90; + tip.parent = this.Map; + if (this.controlArray[this.controlArray.length - 1] == "reinforce" || + this.controlArray[this.controlArray.length - 1] == "soil") { + if (data == "reinforce" || data == "soil") { + this.tipArray[this.tipArray.length - 1].removeFromParent(); + this.tipArray[this.tipArray.length - 1] = null; + this.tipArray.pop(); + this.controlArray.pop(); + } + } + this.setPosition(tip); + this.tipArray.push(tip); + this.controlArray.push(data); + if (this.tipArray.length >= 25) { + if ((this.tipArray.length - 1) % 8 == 0) { + this.mapMove(true); + } + } + }; + //地图放不下了上下移动 + NewClass.prototype.mapMove = function (type) { + if (type) + this.mapHeight += 48; + else + this.mapHeight -= 48; + for (var i = 0; i < this.tipArray.length; i++) { + var tip = this.tipArray[i]; + if (type) + tip.y += 48; + else + tip.y -= 48; + } + }; + //点击开始 创建河道 + NewClass.prototype.start_Click = function () { + if (!this.canTouch) + return; + this.canTouch = false; + cc.fx.AudioManager._instance.playEffect("build", null); + cc.fx.Notifications.emit(cc.fx.Message.startGame, this.controlArray); + }; + __decorate([ + property(cc.Node) + ], NewClass.prototype, "Map", void 0); + __decorate([ + property(cc.Prefab) + ], NewClass.prototype, "tip", void 0); + __decorate([ + property(cc.Prefab) + ], NewClass.prototype, "reinforce", void 0); + __decorate([ + property(cc.Prefab) + ], NewClass.prototype, "soil", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxDb250cm9sTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXVLQztRQXBLRyxTQUFHLEdBQVksSUFBSSxDQUFDO1FBRXBCLFNBQUcsR0FBYyxJQUFJLENBQUM7UUFFdEIsZUFBUyxHQUFjLElBQUksQ0FBQztRQUU1QixVQUFJLEdBQWMsSUFBSSxDQUFDOztRQTZKdkIsaUJBQWlCO0lBQ3JCLENBQUM7SUFySkcsd0JBQXdCO0lBRXhCLGVBQWU7SUFFZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELDhCQUFXLEdBQVgsVUFBWSxHQUFHO1FBQ1gsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUN4QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7WUFDcEMsSUFB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QUFDOzBDQUNHO0lBVE4sUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXVLNUI7SUFBRCxlQUFDO0NBdktELEFBdUtDLENBdktxQyxFQUFFLENBQUMsU0FBUyxHQXVLakQ7a0JBdktvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBNYXA6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHRpcDogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICByZWluZm9yY2U6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgc29pbDogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIFxyXG5cclxuICAgIHRpcEFycmF5OmFueTtcclxuICAgIGNvbnRyb2xBcnJheTphbnk7XHJcbiAgICBjYW5Ub3VjaDpib29sZWFuO1xyXG4gICAgUmVpbmZvcmNlOmJvb2xlYW47XHJcbiAgICBTb2lsOmJvb2xlYW47XHJcbiAgICBtYXBIZWlnaHQ6bnVtYmVyO1xyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgICAgIHRoaXMudGlwQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY2FuVG91Y2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuUmVpbmZvcmNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tYXBIZWlnaHQgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFBvc2l0aW9uKHRpcCl7XHJcbiAgICAgICAgdGlwLnNldFBvc2l0aW9uKDMwLC0yNSk7XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgbGV0IGxlbmd0aCA9IHRoaXMudGlwQXJyYXkubGVuZ3RoKzE7XHJcbiAgICAgICAgICAgIGxldCBwb3NZID0gTWF0aC5jZWlsKGxlbmd0aC84KSAtIDE7XHJcbiAgICAgICAgICAgIGxldCBwb3NYID0gbGVuZ3RoIC0gTWF0aC5mbG9vcihwb3NZKSo4IC0gMTtcclxuICAgICAgICAgICAgdGlwLnNldFBvc2l0aW9uKDMwICsgNDgqcG9zWCwtMjUgLTQ4KnBvc1kgKyB0aGlzLm1hcEhlaWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/muIXnqbrmiYDmnIlcclxuICAgIHJlbW92ZUFsbFRpcCgpe1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwicWluZ2tvbmdcIixudWxsKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy50aXBBcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W2ldO1xyXG4gICAgICAgICAgICAgICAgdGlwLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGlwLnJlbW92ZUZyb21QYXJlbnQodGhpcy5NYXApO1xyXG4gICAgICAgICAgICAgICAgdGlwID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRpcEFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbEFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHZhciBkcmF3aW5nUmVzZXQgPSBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEuZHJhd2luZ1Jlc2V0ICsgMTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5DTElDS19TRVQoXCJkcmF3aW5nUmVzZXRcIixkcmF3aW5nUmVzZXQpO1xyXG4gICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5yZW1vdmVUaXAsXCJyZW1vdmVcIik7XHJcbiAgICAgICAgICAgIHRoaXMubWFwSGVpZ2h0ID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+aSpOWbnuS4gOatpVxyXG4gICAgYmFja19DbGljaygpe1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiY2hlaHVpXCIsbnVsbCk7XHJcbiAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdO1xyXG4gICAgICAgICAgICB0aXAuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRpcC5yZW1vdmVGcm9tUGFyZW50KHRoaXMuTWFwKTtcclxuICAgICAgICAgICAgdGlwID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy50aXBBcnJheS5wb3AoKTtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sQXJyYXkucG9wKCk7XHJcbiAgICAgICAgICAgIHZhciBkcmF3aW5nQmFjayA9IGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfREFUQS5kcmF3aW5nQmFjayArIDE7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfU0VUKFwiZHJhd2luZ0JhY2tcIixkcmF3aW5nQmFjayk7XHJcbiAgICAgICAgICAgIGNjLmZ4Lk5vdGlmaWNhdGlvbnMuZW1pdChjYy5meC5NZXNzYWdlLnJlbW92ZVRpcCxcImJhY2tcIik7XHJcbiAgICAgICAgICAgIGlmKHRoaXMudGlwQXJyYXkubGVuZ3RoID49IDI0KXtcclxuICAgICAgICAgICAgICAgIGlmKCh0aGlzLnRpcEFycmF5Lmxlbmd0aCApJTggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXBNb3ZlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+eCueWHu+S6i+S7tlxyXG4gICAgYnRuX0NsaWNrKHRhcmdldCxkYXRhKXtcclxuICAgICAgICB2YXIgR2FtZU1hbmFnZXIgPSB0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkdhbWVNYW5hZ2VyXCIpO1xyXG4gICAgICAgIGlmKEdhbWVNYW5hZ2VyLmJ0bkNsaWNrID09IHRydWUpe1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5idG5DbGljayA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5ndWlkZU5leHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5jb250cm9sLGRhdGEpO1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgbGV0IHByZWZhYiA9IHRoaXMudGlwO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJyZWluZm9yY2VcIiB8fCBkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgcHJlZmFiID0gdGhpc1tkYXRhXTtcclxuICAgICAgICAgICAgaWYoZGF0YSA9PSBcInJlaW5mb3JjZVwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuUmVpbmZvcmNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlaW5mb3JjZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFja19DbGljaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImppbmVuZ1wiLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVpbmZvcmNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlNvaWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZihkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuU29pbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWNrX0NsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiamluZW5nXCIsbnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb2lsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlaW5mb3JjZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJmYW5neGlhbmdcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5SZWluZm9yY2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0aXAgPSBjYy5pbnN0YW50aWF0ZShwcmVmYWIpO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJ1cFwiKSB0aXAuYW5nbGUgPSAxODA7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImxlZnRcIikgdGlwLmFuZ2xlID0gLTkwO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJyaWdodFwiKSB0aXAuYW5nbGUgPSA5MDtcclxuICAgICAgICB0aXAucGFyZW50ID0gdGhpcy5NYXA7XHJcbiAgICBcclxuICAgICAgICBpZih0aGlzLmNvbnRyb2xBcnJheVt0aGlzLmNvbnRyb2xBcnJheS5sZW5ndGgtMV0gPT0gXCJyZWluZm9yY2VcIiB8fCBcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sQXJyYXlbdGhpcy5jb250cm9sQXJyYXkubGVuZ3RoLTFdID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgIGlmKGRhdGEgPT0gXCJyZWluZm9yY2VcIiB8fCBkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHRpcCk7XHJcblxyXG4gICAgICAgIHRoaXMudGlwQXJyYXkucHVzaCh0aXApO1xyXG4gICAgICAgIHRoaXMuY29udHJvbEFycmF5LnB1c2goZGF0YSk7XHJcbiAgICBcclxuICAgICAgICBpZih0aGlzLnRpcEFycmF5Lmxlbmd0aCA+PSAyNSl7XHJcbiAgICAgICAgICAgIGlmKCh0aGlzLnRpcEFycmF5Lmxlbmd0aCAtIDEpJTggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcE1vdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+WcsOWbvuaUvuS4jeS4i+S6huS4iuS4i+enu+WKqFxyXG4gICAgbWFwTW92ZSh0eXBlKXtcclxuICAgICAgICBpZih0eXBlKSB0aGlzLm1hcEhlaWdodCArPSA0ODtcclxuICAgICAgICBlbHNlIHRoaXMubWFwSGVpZ2h0IC09IDQ4O1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMudGlwQXJyYXkubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W2ldO1xyXG4gICAgICAgICAgICBpZih0eXBlKXRpcC55ICs9IDQ4O1xyXG4gICAgICAgICAgICBlbHNlIHRpcC55IC09IDQ4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+eCueWHu+W8gOWniyDliJvlu7rmsrPpgZNcclxuICAgIHN0YXJ0X0NsaWNrKCl7XHJcbiAgICAgICAgaWYoIXRoaXMuY2FuVG91Y2gpIHJldHVybjtcclxuICAgICAgICB0aGlzLmNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYnVpbGRcIixudWxsKTtcclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5zdGFydEdhbWUsdGhpcy5jb250cm9sQXJyYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/JiaZai.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '1dc93b4fehOrpGgTkihBH4g', 'JiaZai'); +// Script/JiaZai.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var GameManager_1 = require("./GameManager"); +var NumberToImage_1 = require("./NumberToImage"); +var MiniGameSdk_1 = require("./Sdk/MiniGameSdk"); +var lq_collide_system_1 = require("./lq_collide_system/lq_collide_system"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.node1 = null; + _this.node2 = null; + _this.node3 = null; + _this.Block_Color = []; + _this.custom = null; + _this.level = null; + _this.coin = null; + _this.Stamina = null; + return _this; + // update (dt) {} + } + // LIFE-CYCLE CALLBACKS: + NewClass.prototype.onLoad = function () { + cc.game.setFrameRate(63); + lq_collide_system_1.LQCollideSystem.is_enable = true; + // console.log("加载关卡配置2"); + // window.initMgr(); + GameManager_1.default._instance.Block_Color = this.Block_Color; + if (cc.fx.GameConfig.GM_INFO.first) { + console.log("————————准备注册事件", cc.fx.GameConfig.GM_INFO.openid); + if (cc.fx.GameConfig.GM_INFO.openid != "") { + console.log("————————发送注册事件"); + cc.fx.GameTool.shushu_Track("register"); + } + cc.fx.AudioManager._instance.playEffect("zhuan1", null); + this.node.getChildByName("zhuanchang").active = true; + this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); + setTimeout(function () { + cc.fx.GameConfig.GM_INFO.first = false; + cc.director.loadScene("GameScene"); + }, 1000); + } + }; + NewClass.prototype.start = function () { + // console.log("已经进入Home界面"); + // console.log("金币",cc.fx.GameConfig.GM_INFO.coin); + // console.log("关卡",cc.fx.GameConfig.GM_INFO.level+1); + var _this = this; + cc.fx.GameTool.getHealth(null); + // cc.fx.GameConfig.LEVEL_INFO_init(false,0); + setTimeout(function () { + NumberToImage_1.default.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 25, 15, "big_", _this.level, false); + NumberToImage_1.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", _this.coin, true); + _this.setHealthInfo(); + }, 0); + if (cc.fx.GameConfig.GM_INFO.gameState) { + this.node.getChildByName("zhuanchang").active = true; + setTimeout(function () { + cc.fx.AudioManager._instance.playEffect("zhuan2", null); + _this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "down", false); + _this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setCompleteListener(function (entry) { + if (entry.animation.name === "down" && !cc.fx.GameConfig.GM_INFO.first) { + // 动画播放结束后执行的逻辑 + _this.node.getChildByName("zhuanchang").active = false; + } + }); + }, 500); + } + else { + if (!cc.fx.GameConfig.GM_INFO.first) + this.node.getChildByName("zhuanchang").active = false; + } + }; + //开始倒计时 + NewClass.prototype.startTimeCutDown = function () { + this.scheduleCallback = function () { + var _this = this; + if (this.pause) + return; + if (cc.fx.GameConfig.GM_INFO.min_Time <= 0) { + this.stopTimeCutDown(); + var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time); + this.Stamina.getChildByName("time").getComponent(cc.Label).string = timeTemp; + cc.fx.GameTool.setUserHealth(1, function (data) { + cc.fx.GameTool.getHealth(null); + _this.setHealthInfo(); + }); + } + else { + cc.fx.GameConfig.GM_INFO.min_Time -= 1; + var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time); + this.Stamina.getChildByName("time").getComponent(cc.Label).string = timeTemp; + } + }.bind(this); + this.schedule(this.scheduleCallback, 1); + }; + // 停止倒计时 + NewClass.prototype.stopTimeCutDown = function () { + if (this.scheduleCallback) { + this.unschedule(this.scheduleCallback); + } + }; + NewClass.prototype.setHealthInfo = function () { + if (cc.fx.GameConfig.GM_INFO.hp == 5) { + this.Stamina.getChildByName("man").active = true; + this.Stamina.getChildByName("health").active = false; + this.Stamina.getChildByName("time").active = false; + } + else { + this.Stamina.getChildByName("man").active = false; + this.Stamina.getChildByName("health").active = true; + NumberToImage_1.default.numberToImageNodes((cc.fx.GameConfig.GM_INFO.hp), 25, 15, "coin_", this.Stamina.getChildByName("health"), false); + this.Stamina.getChildByName("time").active = true; + if (cc.fx.GameConfig.GM_INFO.min_Time != 0) { + var time = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time); + this.Stamina.getChildByName("time").getComponent(cc.Label).string = time; + this.startTimeCutDown(); + } + } + }; + NewClass.prototype.startGame = function () { + cc.fx.AudioManager._instance.playEffect("anniu_Big", null); + if (cc.fx.GameConfig.GM_INFO.hp < 1) { + MiniGameSdk_1.MiniGameSdk.API.showToast("体力值不足"); + return; + } + if (this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl")._touch) { + this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl").setTouch(false); + // if(this.custom.string != ""){ + // cc.fx.GameConfig.GM_INFO.level = parseInt(this.custom.string) - 1; + // // cc.fx.StorageMessage.setStorage("level",cc.fx.GameConfig.GM_INFO.level.toString()); + // cc.fx.GameConfig.LEVEL_INFO_init(true); + // } + // else{ + cc.fx.AudioManager._instance.playEffect("zhuan1", null); + this.node.getChildByName("zhuanchang").active = true; + this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); + cc.fx.GameConfig.LEVEL_INFO_init(true, 1000); + // } + } + }; + NewClass.prototype.closeRank = function () { + this.node.getChildByName("Rank").active = false; + }; + NewClass.prototype.openRank = function () { + this.node.getChildByName("Rank").active = true; + }; + NewClass.prototype.openReward = function () { + this.node.getChildByName("Reward").active = true; + }; + NewClass.prototype.clickShop = function () { + // 假设已经获取到了 userId 和 productId + var userId = cc.fx.GameConfig.GM_INFO.openid; + var productId = '1'; + console.log("即将创建createorder"); + //@ts-ignore + wx.cloud.callFunction({ + name: "createOrder", + data: { + "userId": userId, + "productId": productId, + }, + success: function (res) { + // 取得云函数返回的订单信息 + console.log("createOrder结果:", res.result); + var payment = res.result.paymentResult.payment; + console.log("payment:", payment); + // 调起微信客户端支付 + //@ts-ignore + // 调起微信客户端支付 + //@ts-ignore + wx.requestPayment({ + // 时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间 + timeStamp: payment.timeStamp, + // 随机字符串,长度为32个字符以下 + nonceStr: payment.nonceStr, + // 统一下单接口返回的 prepay_id 参数值 + package: payment.package, + // 签名算法,暂支持 MD5、HMAC-SHA256 + signType: payment.signType || 'MD5', + // 支付签名 + paySign: payment.paySign, + success: function (res) { + /* 成功回调 */ + console.log("支付成功", res); + }, + fail: function (res) { + /* 失败回调 */ + console.log("支付失败", res); + }, + complete: function (res) { + console.log("支付完成", res); + } + }); + }, + }); + }; + NewClass.prototype.openPause = function () { + cc.fx.AudioManager._instance.playEffect("anniu_little", null); + console.log(cc.fx.GameConfig.GM_INFO); + if (cc.fx.GameConfig.GM_INFO.openid == undefined) { + console.log(cc.fx.GameConfig.GM_INFO.openid); + cc.fx.GameConfig.GM_INFO.openid = ""; + } + this.node.getChildByName("Pause").active = true; + this.node.getChildByName("Pause").getChildByName("openID").getComponent(cc.Label).string = cc.fx.GameConfig.GM_INFO.openid; + }; + NewClass.prototype.closePause = function () { + cc.fx.AudioManager._instance.playEffect("anniu_little", null); + this.node.getChildByName("Pause").active = false; + }; + NewClass.prototype.closeReward = function () { + this.node.getChildByName("Reward").active = false; + }; + NewClass.prototype.openStamina = function () { + this.node.getChildByName("Stamina").active = true; + }; + NewClass.prototype.closeStamina = function () { + this.node.getChildByName("Stamina").active = false; + }; + __decorate([ + property(cc.Node) + ], NewClass.prototype, "node1", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "node2", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "node3", void 0); + __decorate([ + property({ type: [cc.SpriteAtlas], tooltip: "方块颜色" }) + ], NewClass.prototype, "Block_Color", void 0); + __decorate([ + property(cc.EditBox) + ], NewClass.prototype, "custom", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "level", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "coin", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "Stamina", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxKaWFaYWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkNBQXdDO0FBQ3hDLGlEQUE0QztBQUM1QyxpREFBZ0Q7QUFDaEQsMkVBQXNFO0FBQ2hFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBOFBDO1FBM1BHLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUd0QixXQUFLLEdBQVksSUFBSSxDQUFDO1FBS3RCLGlCQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUd6QyxZQUFNLEdBQWUsSUFBSSxDQUFDO1FBSzFCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsVUFBSSxHQUFZLElBQUksQ0FBQztRQUdyQixhQUFPLEdBQVksSUFBSSxDQUFDOztRQWlPeEIsaUJBQWlCO0lBQ3JCLENBQUM7SUEvTkcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47UUFDSSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixtQ0FBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakMsMEJBQTBCO1FBQzFCLG9CQUFvQjtRQUNwQixxQkFBVyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyRCxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUM7WUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFD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OzJDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFHckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzs2Q0FDTTtJQTVCUCxRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBOFA1QjtJQUFELGVBQUM7Q0E5UEQsQUE4UEMsQ0E5UHFDLEVBQUUsQ0FBQyxTQUFTLEdBOFBqRDtrQkE5UG9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgR2FtZU1hbmFnZXIgZnJvbSBcIi4vR2FtZU1hbmFnZXJcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5pbXBvcnQge0xRQ29sbGlkZVN5c3RlbX0gZnJvbSBcIi4vbHFfY29sbGlkZV9zeXN0ZW0vbHFfY29sbGlkZV9zeXN0ZW1cIjtcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMzogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgXHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOlwi5pa55Z2X6aKc6ImyXCJ9KVxyXG4gICAgQmxvY2tfQ29sb3IgOiBBcnJheTxjYy5TcHJpdGVBdGxhcz4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuRWRpdEJveClcclxuICAgIGN1c3RvbTogY2MuRWRpdEJveCA9IG51bGw7XHJcbiAgICBcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBsZXZlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIFN0YW1pbmE6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55O1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgY2MuZ2FtZS5zZXRGcmFtZVJhdGUoNjMpOyBcclxuICAgICAgICBMUUNvbGxpZGVTeXN0ZW0uaXNfZW5hYmxlID0gdHJ1ZTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWKoOi9veWFs+WNoemFjee9rjJcIik7XHJcbiAgICAgICAgLy8gd2luZG93LmluaXRNZ3IoKTtcclxuICAgICAgICBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQ29sb3IgPSB0aGlzLkJsb2NrX0NvbG9yO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCl7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOWHhuWkh+azqOWGjOS6i+S7tlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQpO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkICE9IFwiXCIpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLigJTigJTigJTigJTigJTigJTigJTigJTlj5HpgIHms6jlhozkuovku7ZcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZWdpc3RlclwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ1cFwiLGZhbHNlKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3sue7j+i/m+WFpUhvbWXnlYzpnaJcIik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLph5HluIFcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlhbPljaFcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwrMSk7XHJcblxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldEhlYWx0aChudWxsKTtcclxuICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCsxKSwyNSwxNSxcImJpZ19cIix0aGlzLmxldmVsLGZhbHNlKTtcclxuICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sMzAsMTUsXCJjb2luX1wiLHRoaXMuY29pbix0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRIZWFsdGhJbmZvKCk7XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVTdGF0ZSl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjJcIixudWxsKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcImRvd25cIixmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwiZG93blwiICYmICFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKCFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+WAkuiuoeaXtlxyXG4gICAgc3RhcnRUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVDYWxsYmFjayA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucGF1c2UpIHJldHVybjtcclxuICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoMSwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRIZWFsdGhJbmZvKCk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1RpbWUgLT0gMTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjaywgMSk7XHJcbiAgICB9XHJcbiAgICAvLyDlgZzmraLlgJLorqHml7ZcclxuICAgIHN0b3BUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIGlmKHRoaXMuc2NoZWR1bGVDYWxsYmFjayl7XHJcbiAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgc2V0SGVhbHRoSW5mbygpe1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9PSA1KXtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwibWFuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcImhlYWx0aFwiKS5hY3RpdmUgPSBmYWxzZTsgXHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJtYW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJoZWFsdGhcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHApLDI1LDE1LFwiY29pbl9cIix0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJoZWFsdGhcIiksZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lICE9IDApe1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbWUgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGltZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA8IDEpe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85LiN6LazXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxvYWRcIikuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydEJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxvYWRcIikuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydEJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gaWYodGhpcy5jdXN0b20uc3RyaW5nICE9IFwiXCIpe1xyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gcGFyc2VJbnQodGhpcy5jdXN0b20uc3RyaW5nKSAtIDE7XHJcbiAgICAgICAgICAgIC8vICAgICAvLyBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwudG9TdHJpbmcoKSk7IFxyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgLy8gZWxzZXtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLDEwMDApO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgICAgICAgICAgXHJcblxyXG4gICAgXHJcbiAgY2xvc2VSYW5rKCl7XHJcbiAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJhbmtcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvcGVuUmFuaygpe1xyXG4gICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJSYW5rXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvcGVuUmV3YXJkKCl7XHJcbiAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tTaG9wKCkge1xyXG4gICAgLy8g5YGH6K6+5bey57uP6I635Y+W5Yiw5LqGIHVzZXJJZCDlkowgcHJvZHVjdElkXHJcbiAgICBjb25zdCB1c2VySWQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkOyBcclxuICAgIGNvbnN0IHByb2R1Y3RJZCA9ICcxJzsgXHJcbiAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuWIm+W7umNyZWF0ZW9yZGVyXCIpO1xyXG4gICAgLy9AdHMtaWdub3JlXHJcbiAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgIG5hbWU6IFwiY3JlYXRlT3JkZXJcIixcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6dXNlcklkLFxyXG4gICAgICAgICAgICBcInByb2R1Y3RJZFwiOnByb2R1Y3RJZCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuICAgICAgICAgICAgLy8g5Y+W5b6X5LqR5Ye95pWw6L+U5Zue55qE6K6i5Y2V5L+h5oGvXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY3JlYXRlT3JkZXLnu5Pmnpw6XCIscmVzLnJlc3VsdCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHBheW1lbnQgPSByZXMucmVzdWx0LnBheW1lbnRSZXN1bHQucGF5bWVudDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJwYXltZW50OlwiLHBheW1lbnQpO1xyXG4gICAgICAgICAgICAvLyDosIPotbflvq7kv6HlrqLmiLfnq6/mlK/ku5hcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIC8vIOiwg+i1t+W+ruS/oeWuouaIt+err+aUr+S7mFxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3gucmVxdWVzdFBheW1lbnQoe1xyXG4gICAgICAgICAgICAgICAgLy8g5pe26Ze05oiz77yM5LuOIDE5NzAg5bm0IDEg5pyIIDEg5pelIDAwOjAwOjAwIOiHs+S7iueahOenkuaVsO+8jOWNs+W9k+WJjeeahOaXtumXtFxyXG4gICAgICAgICAgICAgICAgdGltZVN0YW1wOiBwYXltZW50LnRpbWVTdGFtcCxcclxuICAgICAgICAgICAgICAgIC8vIOmaj+acuuWtl+espuS4su+8jOmVv+W6puS4ujMy5Liq5a2X56ym5Lul5LiLXHJcbiAgICAgICAgICAgICAgICBub25jZVN0cjogcGF5bWVudC5ub25jZVN0cixcclxuICAgICAgICAgICAgICAgIC8vIOe7n+S4gOS4i+WNleaOpeWPo+i/lOWbnueahCBwcmVwYXlfaWQg5Y+C5pWw5YC8XHJcbiAgICAgICAgICAgICAgICBwYWNrYWdlOiBwYXltZW50LnBhY2thZ2UsXHJcbiAgICAgICAgICAgICAgICAvLyDnrb7lkI3nrpfms5XvvIzmmoLmlK/mjIEgTUQ144CBSE1BQy1TSEEyNTZcclxuICAgICAgICAgICAgICAgIHNpZ25UeXBlOiBwYXltZW50LnNpZ25UeXBlIHx8ICdNRDUnLFxyXG4gICAgICAgICAgICAgICAgLy8g5pSv5LuY562+5ZCNXHJcbiAgICAgICAgICAgICAgICBwYXlTaWduOiBwYXltZW50LnBheVNpZ24sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIOaIkOWKn+WbnuiwgyAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5oiQ5YqfXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIOWksei0peWbnuiwgyAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5aSx6LSlXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjb21wbGV0ZShyZXMpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5a6M5oiQXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIG9wZW5QYXVzZSgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLG51bGwpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTyk7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IHRydWU7IFxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmdldENoaWxkQnlOYW1lKFwib3BlbklEXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZDtcclxuICB9XHJcblxyXG4gIGNsb3NlUGF1c2UoKXtcclxuICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLG51bGwpO1xyXG4gICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuYWN0aXZlID0gZmFsc2U7IFxyXG5cclxuICB9XHJcblxyXG4gIGNsb3NlUmV3YXJkKCl7XHJcbiAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSBmYWxzZTsgXHJcbiAgfVxyXG5cclxuICBvcGVuU3RhbWluYSgpe1xyXG4gICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJTdGFtaW5hXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZVN0YW1pbmEoKXtcclxuICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiU3RhbWluYVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/NumberToImage.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '669f4SuSl9ORqawBcbwCNpG', 'NumberToImage'); +// Script/NumberToImage.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var NumberToImage = /** @class */ (function (_super) { + __extends(NumberToImage, _super); + function NumberToImage() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.fontUI = null; + return _this; + // static calculateAndConvert(num1: number, num2: number, operator: '+' | '-' | '*' | '/', spriteFrames: SpriteFrame[]): Node[] { + // let result: number; + // switch (operator) { + // case '+': + // result = num1 + num2; + // break; + // case '-': + // result = num1 - num2; + // break; + // case '*': + // result = num1 * num2; + // break; + // case '/': + // result = num1 / num2; + // break; + // default: + // throw new Error('不支持的运算符'); + // } + // // 处理结果为小数的情况,这里简单取整 + // result = Math.floor(result); + // return this.numberToImageNodes(result, spriteFrames); + // } + // update (dt) {} + } + NumberToImage_1 = NumberToImage; + // LIFE-CYCLE CALLBACKS: + NumberToImage.prototype.onLoad = function () { + if (this.fontUI != null) { + NumberToImage_1.font = this.fontUI; + } + }; + //第一个参数 数字, 第二个参数 数字间距 第三个参数 占位宽度 第四个参数 目标节点 + NumberToImage.numberToImageNodes = function (number, width, posX, name, targetNode, middle) { + if (middle === void 0) { middle = false; } + var numStr = number.toString(); + var cha = 0; + if (number > 99) + cha = -posX; + else if (number < 10) + cha = posX; + if (targetNode.children.length > 0) + targetNode.removeAllChildren(); + for (var i = 0; i < numStr.length; i++) { + var digit = parseInt(numStr[i], 10); + var node = new cc.Node(); + var sprite = node.addComponent(cc.Sprite); + // debugger; + sprite.spriteFrame = this.font._spriteFrames[name + digit + ""]; + // 将节点添加到目标节点下 + node.x = i * width + cha; + node.parent = targetNode; + } + if (middle) { + targetNode.x = targetNode.x - targetNode.children.length * (width - 15) / 2; + } + }; + NumberToImage.getTimeMargin = function (number, width, name, targetNode) { + var timeArr = []; + var total = 0; + total = number; + var hour = 0; + hour = parseInt((total / 3600) + ""); //计算整数小时数 + var afterHour = total - hour * 60 * 60; //取得算出小时数后剩余的秒数 + var min = parseInt((afterHour / 60) + ""); //计算整数分 + var m = "" + min; + if (min < 10) + m = "0" + min; + var afterMin = total - hour * 60 * 60 - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + ""; + if (afterMin < 10) + miao = "0" + afterMin; + var result = m + miao; + for (var i = 0; i < result.length; i++) { + var digit = parseInt(result[i], 10); + timeArr.push(digit); + } + if (targetNode.children.length > 0) { + for (var i = 0; i < targetNode.children.length; i++) { + targetNode.children[i].getComponent(cc.Sprite).spriteFrame = this.font._spriteFrames[name + timeArr[i] + ""]; + } + } + else { + for (var i = 0; i < 4; i++) { + var node = new cc.Node(); + var sprite = node.addComponent(cc.Sprite); + var digit = timeArr[i]; + // debugger; + sprite.spriteFrame = this.font._spriteFrames[name + digit + ""]; + // 将节点添加到目标节点下 + node.x = i * width; + if (i > 1) + node.x += 35; + node.parent = targetNode; + } + } + }; + var NumberToImage_1; + NumberToImage.font = null; + __decorate([ + property(cc.SpriteAtlas) + ], NumberToImage.prototype, "fontUI", void 0); + NumberToImage = NumberToImage_1 = __decorate([ + ccclass + ], NumberToImage); + return NumberToImage; +}(cc.Component)); +exports.default = NumberToImage; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxOdW1iZXJUb0ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQTJDLGlDQUFZO0lBQXZEO1FBQUEscUVBeUdDO1FBdEdHLFlBQU0sR0FBbUIsSUFBSSxDQUFDOztRQTZFOUIsaUlBQWlJO1FBQ2pJLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLDBDQUEwQztRQUMxQyxRQUFRO1FBRVIsMkJBQTJCO1FBQzNCLG1DQUFtQztRQUNuQyw0REFBNEQ7UUFDNUQsSUFBSTtRQUVKLGlCQUFpQjtJQUNyQixDQUFDO3NCQXpHb0IsYUFBYTtJQU05Qix3QkFBd0I7SUFFeEIsOEJBQU0sR0FBTjtRQUNJLElBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUM7WUFDbkIsZUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUVELGdEQUFnRDtJQUN6QyxnQ0FBa0IsR0FBekIsVUFBMEIsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQWtCLEVBQUMsTUFBc0I7UUFBdEIsdUJBQUEsRUFBQSxjQUFzQjtRQUMx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Q0FBQztJQUZ2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO2lEQUNLO0lBSGIsYUFBYTtRQURqQyxPQUFPO09BQ2EsYUFBYSxDQXlHakM7SUFBRCxvQkFBQztDQXpHRCxBQXlHQyxDQXpHMEMsRUFBRSxDQUFDLFNBQVMsR0F5R3REO2tCQXpHb0IsYUFBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnVtYmVyVG9JbWFnZSBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZUF0bGFzKVxyXG4gICAgZm9udFVJOiBjYy5TcHJpdGVBdGxhcyA9IG51bGw7XHJcblxyXG4gICAgc3RhdGljIGZvbnQ6YW55ID0gbnVsbDtcclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgaWYodGhpcy5mb250VUkgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIE51bWJlclRvSW1hZ2UuZm9udCA9IHRoaXMuZm9udFVJO1xyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcblxyXG4gICAgLy/nrKzkuIDkuKrlj4LmlbAgIOaVsOWtl++8jCDnrKzkuozkuKrlj4LmlbAgIOaVsOWtl+mXtOi3nSAg56ys5LiJ5Liq5Y+C5pWwIOWNoOS9jeWuveW6piAg56ys5Zub5Liq5Y+C5pWwIOebruagh+iKgueCuVxyXG4gICAgc3RhdGljIG51bWJlclRvSW1hZ2VOb2RlcyhudW1iZXIsIHdpZHRoLCBwb3NYLCBuYW1lICx0YXJnZXROb2RlOmNjLk5vZGUsbWlkZGxlOmJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IG51bVN0ciA9IG51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgIGxldCBjaGEgPSAwOyBcclxuICAgICAgICBpZihudW1iZXIgPiA5OSkgY2hhICA9IC1wb3NYXHJcbiAgICAgICAgZWxzZSBpZihudW1iZXIgPCAxMCkgY2hhICA9IHBvc1hcclxuICAgICAgICBpZih0YXJnZXROb2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHRhcmdldE5vZGUucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVN0ci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkaWdpdCA9IHBhcnNlSW50KG51bVN0cltpXSwgMTApO1xyXG4gICAgICAgICAgICBjb25zdCBub2RlID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICAgICAgY29uc3Qgc3ByaXRlID0gbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgICAgIHNwcml0ZS5zcHJpdGVGcmFtZSA9IHRoaXMuZm9udC5fc3ByaXRlRnJhbWVzW25hbWUgKyBkaWdpdCArIFwiXCJdO1xyXG4gICAgICAgICAgICAvLyDlsIboioLngrnmt7vliqDliLDnm67moIfoioLngrnkuItcclxuICAgICAgICAgICAgbm9kZS54ID0gaSAqIHdpZHRoICsgY2hhO1xyXG4gICAgICAgICAgICBub2RlLnBhcmVudCA9IHRhcmdldE5vZGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKG1pZGRsZSl7XHJcbiAgICAgICAgICAgIHRhcmdldE5vZGUueCA9IHRhcmdldE5vZGUueCAtIHRhcmdldE5vZGUuY2hpbGRyZW4ubGVuZ3RoICogKHdpZHRoLTE1KSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRUaW1lTWFyZ2luKG51bWJlciwgd2lkdGgsIG5hbWUgLHRhcmdldE5vZGU6Y2MuTm9kZSkge1xyXG4gICAgICAgIGxldCB0aW1lQXJyID0gW107XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IG51bWJlcjtcclxuICAgICAgICBsZXQgaG91ciA9IDA7XHJcbiAgICAgICAgaG91ciA9IHBhcnNlSW50KCh0b3RhbCAvIDM2MDApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDlsI/ml7bmlbBcclxuICAgICAgICBsZXQgYWZ0ZXJIb3VyID0gdG90YWwgLSBob3VyICogNjAgKiA2MDsvL+WPluW+l+eul+WHuuWwj+aXtuaVsOWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaW4gPSBwYXJzZUludCgoYWZ0ZXJIb3VyIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgbGV0IG0gPSBcIlwiICsgbWluOyAgXHJcblxyXG4gICAgICAgIGlmKG1pbiA8IDEwKSBtID0gXCIwXCIrbWluO1xyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gaG91ciAqIDYwICogNjAgLSBtaW4gKiA2MDsvL+WPluW+l+eul+WHuuWIhuWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaWFvID0gYWZ0ZXJNaW4gKyBcIlwiO1xyXG5cclxuICAgICAgICBpZihhZnRlck1pbiA8IDEwKSBtaWFvID0gXCIwXCIgKyBhZnRlck1pbjtcclxuXHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IG0gKyBtaWFvO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpZ2l0ID0gcGFyc2VJbnQocmVzdWx0W2ldLCAxMCk7XHJcbiAgICAgICAgICAgIHRpbWVBcnIucHVzaChkaWdpdCk7XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgIGlmKHRhcmdldE5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0Tm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0Tm9kZS5jaGlsZHJlbltpXS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMuZm9udC5fc3ByaXRlRnJhbWVzW25hbWUgKyB0aW1lQXJyW2ldICsgXCJcIl07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0OyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgY2MuTm9kZSgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3ByaXRlID0gbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRpZ2l0ID0gdGltZUFycltpXTtcclxuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICAgICAgc3ByaXRlLnNwcml0ZUZyYW1lID0gdGhpcy5mb250Ll9zcHJpdGVGcmFtZXNbbmFtZSArIGRpZ2l0ICsgXCJcIl07XHJcbiAgICAgICAgICAgICAgICAvLyDlsIboioLngrnmt7vliqDliLDnm67moIfoioLngrnkuItcclxuICAgICAgICAgICAgICAgIG5vZGUueCA9IGkgKiB3aWR0aDtcclxuICAgICAgICAgICAgICAgIGlmKGkgPiAxKSBub2RlLnggKz0gMzU7XHJcbiAgICAgICAgICAgICAgICBub2RlLnBhcmVudCA9IHRhcmdldE5vZGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8vIHN0YXRpYyBjYWxjdWxhdGVBbmRDb252ZXJ0KG51bTE6IG51bWJlciwgbnVtMjogbnVtYmVyLCBvcGVyYXRvcjogJysnIHwgJy0nIHwgJyonIHwgJy8nLCBzcHJpdGVGcmFtZXM6IFNwcml0ZUZyYW1lW10pOiBOb2RlW10ge1xyXG4gICAgLy8gICAgIGxldCByZXN1bHQ6IG51bWJlcjtcclxuICAgIC8vICAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgJysnOlxyXG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0ID0gbnVtMSArIG51bTI7XHJcbiAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgIC8vICAgICAgICAgY2FzZSAnLSc6XHJcbiAgICAvLyAgICAgICAgICAgICByZXN1bHQgPSBudW0xIC0gbnVtMjtcclxuICAgIC8vICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgLy8gICAgICAgICBjYXNlICcqJzpcclxuICAgIC8vICAgICAgICAgICAgIHJlc3VsdCA9IG51bTEgKiBudW0yO1xyXG4gICAgLy8gICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgJy8nOlxyXG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0ID0gbnVtMSAvIG51bTI7XHJcbiAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgIC8vICAgICAgICAgZGVmYXVsdDpcclxuICAgIC8vICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcign5LiN5pSv5oyB55qE6L+Q566X56ymJyk7XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICAvLyDlpITnkIbnu5PmnpzkuLrlsI/mlbDnmoTmg4XlhrXvvIzov5nph4znroDljZXlj5bmlbRcclxuICAgIC8vICAgICByZXN1bHQgPSBNYXRoLmZsb29yKHJlc3VsdCk7XHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMubnVtYmVyVG9JbWFnZU5vZGVzKHJlc3VsdCwgc3ByaXRlRnJhbWVzKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== //------QC-SOURCE-SPLIT------ (function() { @@ -5325,13 +5428,16 @@ var GameManager = /** @class */ (function (_super) { cc.fx.StorageMessage.setStorage("prop", propInfoNew); } else { - cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; - cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; - cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; + // cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; + // cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; + // cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; + cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; + cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; + cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; } - cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; - cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; - cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; + // cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; + // cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; + // cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; cc.fx.GameTool.setUserProp(0, 0, function (data) { }); } @@ -5627,13 +5733,13 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdsRixpREFBZ0Q7QUFFMUMsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUF1cEJDO1FBcHBCRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFJdkIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyxpQkFBVyxHQUEyQixFQUFFLENBQUM7UUFHekMseURBQXlEO1FBQ3pELG1EQUFtRDtRQUVuRCxXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7O0lBNm5CM0IsQ0FBQztvQkF2cEJvQixXQUFXO0lBK0I1Qix3QkFBd0I7SUFFeEIsNEJBQU0sR0FBTjtRQUFBLGlCQTRFQztRQTFFRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxD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QUFDLEtBQUssQ0FBQzs4Q0FDSTtJQUd2QjtRQURDLFFBQVE7NkNBQ2M7SUFJdkI7UUFEQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDO29EQUNWO0lBR3BDO1FBREMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBQyxNQUFNLEVBQUMsQ0FBQztvREFDVjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUM7b0RBQ1Y7SUFoQnhCLFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0F1cEIvQjtJQUFELGtCQUFDO0NBdnBCRCxBQXVwQkMsQ0F2cEJ3QyxFQUFFLENBQUMsU0FBUyxHQXVwQnBEO2tCQXZwQm9CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgeyBNaW5pR2FtZU1hbmFnZXIgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIHN0YXRpYyBfaW5zdGFuY2UgOiBHYW1lTWFuYWdlciA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuaWueWdl+aVsOe7hFwifSlcclxuICAgIEJsb2NrX0FycmF5IDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLlopnlo4HmlbDnu4RcIn0pXHJcbiAgICBXYWxsX1ByZWZhYiA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5TcHJpdGVBdGxhc10sIHRvb2x0aXA6XCLmlrnlnZfpopzoibJcIn0pXHJcbiAgICBCbG9ja19Db2xvciA6IEFycmF5PGNjLlNwcml0ZUF0bGFzPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDQgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQ1IDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBzY2hlZHVsZUNhbGxiYWNrOiBhbnk7XHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXI7XHJcblxyXG4gICAgXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICB3aW5kb3cuaW5pdE1ncigpO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IDM7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5pbml0KHRydWUpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lU3RhdGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlYWRNdXNpY0NvbmZpZygpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6Z+z5LmQ5byA5YWzXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbik7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5TXVzaWNHYW1lKCk7XHJcblxyXG4gICAgICAgIHRoaXMubG9hZDEgPSB0aGlzLmxvYWQyID0gdGhpcy5sb2FkMyA9IHRoaXMubG9hZDQgPSB0aGlzLmxvYWQ1ID1mYWxzZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEoKTtcclxuICAgICAgICB9LCAyMDApO1xyXG4gXHJcblxyXG4gICAgICAgIGlmIChHYW1lTWFuYWdlci5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgICAgICAgICBjYy5nYW1lLmFkZFBlcnNpc3RSb290Tm9kZSh0aGlzLm5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdwcmVmYWIvYmxvY2snO1xyXG4gICAgICAgIGNvbnN0IHBhdGgyID0gJ3ByZWZhYi93YWxsJztcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoLCBjYy5QcmVmYWIsIChlcnIsIGFzc2V0czogY2MuUHJlZmFiW10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5zZXRTb3J0KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDEgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoMiwgY2MuUHJlZmFiLCAoZXJyLCBhc3NldHM6IGNjLlByZWZhYltdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5XYWxsX1ByZWZhYiA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5sb2FkMiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0V2FsbFByZWZhYlNvcnQoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gZGVidWdnZXI7XHJcblxyXG4gICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIC8vICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVycikgPT4ge1xyXG4gICAgICAgIC8vICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+mihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8vICAgICAgICAgfVxyXG4gICAgICAgIC8vICAgICB9KTtcclxuICAgICAgICAvLyB9LCAxMDAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDmo4DmtYvlvq7kv6HlsI/muLjmiI/liIfliLDlkI7lj7BcclxuICAgICAgICBpZiAoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpIHtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4Lm9uSGlkZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGlkZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgLy8g5qOA5rWL5b6u5L+h5bCP5ri45oiP5Zue5Yiw5YmN5Y+wXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5vblNob3coKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblNob3coKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkhpZGUgKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIGNjLmdhbWUucGF1c2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNob3cgKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnJlc3VtZU11c2ljKCk7XHJcbiAgICAgICAgY2MuZ2FtZS5yZXN1bWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkUGFydGljbGVFZmZlY3RzKCkge1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuXHJcbiAgICBzZXRXYWxsUHJlZmFiU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsnZG93bicsICdkb3duTGVmdCcsICdkb3duUmlnaHQnLCAnbGVmdCcsJ3JpZ2h0JywndXAnLCd1cExlZnQnLCd1cFJpZ2h0J107XHJcbiAgICAgICAgdGhpcy5XYWxsX1ByZWZhYi5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgc2V0UGFydGljbGVTb3J0KCkge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gWyd0b3AnLCAnYm90JywgJ3JpZycsICdsZWYnXTtcclxuICAgICAgICB0aGlzLnBhcnRpY2xlRWZmZWN0cy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U29ydCgpe1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQXJyYXkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyDku47lkI3np7DkuK3mj5Dlj5bmlbDlrZfpg6jliIZcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQSA9IHBhcnNlSW50KGEubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bWJlckIgPSBwYXJzZUludChiLm5hbWUubWF0Y2goL1xcZCsvKT8uWzBdIHx8ICcwJywgMTApO1xyXG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyQSAtIG51bWJlckI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzdGFydEdhbWUoKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIui/m+WFpeWcuuaZr+S5i+WJjV9fX19fX19fX19fX19cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKSlcclxuICAgICAgICAgICAgLnRvKDAuNSwge29wYWNpdHk6IDEwMH0pXHJcbiAgICAgICAgICAgIC5jYWxsKCgpID0+IHtcclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIOmihOWKoOi9veaIkOWKn+WQjuWKoOi9veWcuuaZr1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikpXHJcbiAgICAgICAgICAgIC50bygwLjUse29wYWNpdHk6IDI1NX0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICAvLyBjYy5sb2FkZXIucmVsZWFzZUFsbCgpO1xyXG4gICAgICAgIC8vIOmihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmvXHJcblxyXG4gICBcclxuICAgIH1cclxuXHJcblxyXG4gICAgcmVhZFVzZXJEYXRhKHJldHJ5Q291bnQgPSAwKXtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHsgXHJcbiAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImxldmVsXCIpO1xyXG4gICAgICAgICAgICAgICAgLy/ml6fnmoTor7vlj5bmlbDmja7orr7nva7mlbDmja7mlrnms5Us5Lul5by66IGU572R5Li65Li7XHJcbiAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8gPT0gdW5kZWZpbmVkIHx8IGxldmVsSW5mbyA9PSBcIlwiIHx8IGxldmVsSW5mbyA9PSBudWxsKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9sZFJlYWREYXRhKHJldHJ5Q291bnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy/mlrDnmoTor7vlj5bmlbDmja7orr7nva7mlrnms5XvvIzku6XmnKzlnLDkuLrkuLtcclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXdSZWFkRGF0YSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLljbPlsIbor7vlj5bkvZPlipvlgLxcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvlgLzlrozmiJDov5vlhaXmuLjmiI9cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgIH1cclxuICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQ1ID0gdHJ1ZTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0SGVhbHRoKG51bGwpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgLy8g5a2Y5YKo55So5oi35pWw5o2uXHJcbiAgICB9XHJcblxyXG4gICAgcmVhZE11c2ljQ29uZmlnKCl7XHJcbiAgICAgICAgbGV0IGF1ZGlvSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJtdXNpY1wiKTtcclxuICAgICAgICBpZihhdWRpb0luZm8gPT0gdW5kZWZpbmVkIHx8IGF1ZGlvSW5mbyA9PSBcIlwiIHx8IGF1ZGlvSW5mbyA9PSBudWxsKXtcclxuICAgICAgICAgICAgYXVkaW9JbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgXCJtdXNpY09wZW5cIjogdHJ1ZSwgICAgICAgICAgICAgLy/pn7PkuZBcclxuICAgICAgICAgICAgICAgIFwiZWZmZWN0T3BlblwiOiB0cnVlLCAgICAgICAgICAgIC8v6Z+z5pWIXHJcbiAgICAgICAgICAgICAgICBcInZpYnJhdGVPcGVuXCI6IHRydWUsICAgICAgICAgICAvL+mch+WKqFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJtdXNpY1wiLGF1ZGlvSW5mbyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4gPSBhdWRpb0luZm8ubXVzaWNPcGVuO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IGF1ZGlvSW5mby5lZmZlY3RPcGVuO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW4gPSBhdWRpb0luZm8udmlicmF0ZU9wZW47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvL+aWsOeUqOaIt++8jOacieacrOWcsOe8k+WtmOivu+WPlumFjee9rlxyXG4gICAgbmV3UmVhZERhdGEoKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuivu+WPluaWsOS/oeaBr1wiKTtcclxuICAgICAgICBsZXQgb3BlbmlkID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcIm9wZW5pZFwiKTtcclxuICAgICAgICBpZihvcGVuaWQgPT0gbnVsbCB8fCBvcGVuaWQgPT0gXCJcIiB8fCBvcGVuaWQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnIlvcGVuaWRcIik7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckRhdGEnLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygn6K+75Y+W55So5oi35pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmNvZGUgPT0gNDA0ICYmIHJlcy5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOeUqOaIt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihyZXMucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5kYXRhKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VybmFtZSA9IHJlcy5yZXN1bHQuZGF0YS51c2VybmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VyYXZhdGFyID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJhdmF0YXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpc3Rlcl90aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X3VzZXJTZXQocmVnaXN0ZXJfdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwib3BlbmlkXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKUnLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKG9wZW5pZClcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSBvcGVuaWQ7XHJcbiAgICAgICAgfVxyXG4gICBcclxuXHJcblxyXG4gICAgICAgIC8v562J57qn5L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckxldmVsKChkYXRhKSA9PntcclxuICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJsZXZlbFwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOWFs+WNoeaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ562J57qn5L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYobGV2ZWxJbmZvLmxldmVsKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pyJ562J57qn5L+h5oGv77yM5LuO5YWz5Y2h5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAvL+a4uOaIj+WJjeerr+WtmOWCqCDmlrDkuo7mnI3liqHlmajnq68s5Lul5ri45oiP5YmN56uv5L+h5oGv5Li65Li777yM5pS+5pyN5Yqh5Zmo5a2Y5YKoXHJcbiAgICAgICAgICAgICAgICBsZXQgdGVtcCA9IGRhdGEucmVzdWx0LnRpbWVzdGFtcCAtIGxldmVsSW5mby50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuetiee6p+aXtumXtOW3rjpcIix0ZW1wKTtcclxuICAgICAgICAgICAgICAgIGlmKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBsZXZlbEluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8ubGV2ZWwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7pea4uOaIj+WJjeerr+etiee6p+S4uuWHhlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi562J57qn5Li6OlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v5pyN5Yqh5Zmo56uv5a2Y5YKo5pe26Ze05paw5LqO5ri45oiP56uv77yM5Lul5pyN5Yqh5Zmo56uv5Li65Li7LOW+gOWJjeerr+WtmOWCqFxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peacjeWKoeWZqOetiee6p+S4uuWHhlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGRhdGEucmVzdWx0LmRhdGE7IFxyXG4gICAgICAgICAgICAgICAgICAgIGxldmVsSW5mby5sZXZlbCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbDtcclxuICAgICAgICAgICAgICAgICAgICBsZXZlbEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiMTExMTExMeWtmOWCqOWFs+WNoeaVsOaNrjpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v6YeR5biB5L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckNvaW4oKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgY29pbkluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwiY29pblwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmHkeW4geaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGlmKGNvaW5JbmZvLmNvaW4pXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInph5HluIHkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnInph5HluIHkv6Hmga/vvIzku47ph5HluIHmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgIC8v5ri45oiP5YmN56uv5a2Y5YKoIOaWsOS6juacjeWKoeWZqOerryzku6XmuLjmiI/liY3nq6/kv6Hmga/kuLrkuLvvvIzmlL7mnI3liqHlmajlrZjlgqhcclxuICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLph5HluIHml7bpl7Tlt646XCIsdGVtcCk7XHJcbiAgICAgICAgICAgICAgICBpZigoZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peWJjeerr+mHkeW5o+S4uuWHhjpcIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY29pbkluZm8uY29pbilcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gZGF0YS5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29pbkluZm8uY29pbiA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2luSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMTExMTExMTExMTFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaUueWPmOWQjumHkeW4gTpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL+acjeWKoeWZqOerr+WtmOWCqOaXtumXtOaWsOS6jua4uOaIj+err++8jOS7peacjeWKoeWZqOerr+S4uuS4uyzlvoDliY3nq6/lrZjlgqhcclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLku6XmnI3liqHlmajph5HluaPkuLrlh4Y6XCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBkYXRhLnJlc3VsdC5kYXRhOyBcclxuICAgICAgICAgICAgICAgICAgICBjb2luSW5mby5jb2luID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW47XHJcbiAgICAgICAgICAgICAgICAgICAgY29pbkluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMjIyMlwiKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v6YGT5YW35L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlclByb3AoKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmBk+WFt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YGT5YW35L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgaWYocHJvcEluZm8uZnJlZXplQW1vdW50ID09IHVuZGVmaW5lZCB8fCBwcm9wSW5mby5oYW1tZXJBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLm1hZ2ljQW1vdW50ID09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMumBk+WFt+aVsOaNruW8guW4uFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91biA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mb05ldyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIxMTExMTEx5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHByb3BJbmZvLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBwcm9wSW5mby5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBwcm9wSW5mby5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDAsMCwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pys5Zyw5pe26Ze05oizXCIscHJvcEluZm8udGltZXN0YW1wLFwi5pyN5Yqh5Zmo5pe26Ze05oizXCIsZGF0YS5yZXN1bHQudGltZXN0YW1wKTtcclxuICAgICAgICAgICAgICAgIGlmKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBwcm9wSW5mby50aW1lc3RhbXApIDwgMTAwMDApe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Lul5YmN56uv6YGT5YW35Li65Li7OlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBpZihwcm9wSW5mby5mcmVlemVBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLmhhbW1lckFtb3VudCA9PSB1bmRlZmluZWQgfHwgcHJvcEluZm8ubWFnaWNBbW91bnQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIxMTExMTHpgZPlhbfmlbDmja7lvILluLhcIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IGRhdGEucmVzdWx0LmRhdGEubWFnaWNfd2FuZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvTmV3ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIzMzMzMzPkuIrkvKDpgZPlhbfkv6Hmga86XCIscHJvcEluZm9OZXcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLpgZPlhbfmlbDmja7mraPluLhcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBwcm9wSW5mby5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBwcm9wSW5mby5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IHByb3BJbmZvLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLDAsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmhhbW1lcjtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvTmV3ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIyMjIyMjIyMuS4iuS8oOmBk+WFt+S/oeaBrzpcIixwcm9wSW5mb05ldyxkYXRhLnJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvL+aXp+eUqOaIt++8jOaXoOacrOWcsOe8k+WtmOivu+WPlumFjee9rlxyXG4gICAgb2xkUmVhZERhdGEocmV0cnlDb3VudDpudW1iZXIpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6K+75Y+W5pen5L+h5oGvXCIpO1xyXG4gICAgICAgIGNvbnN0IE1BWF9SRVRSSUVTID0gMTU7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAvLyDor7vlj5bnlKjmiLfmlbDmja5cclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgIG5hbWU6ICd1c2VyRGF0YScsXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3VjY2VzczogcmVzID0+IHsgICBcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ+ivu+WPlueUqOaIt+aVsOaNruaIkOWKnycsIHJlcy5yZXN1bHQpXHJcbiAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuY29kZSA9PSA0MDQgJiYgcmVzLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw55So5oi35pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5vcGVuaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZpcnN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0ge1wibGV2ZWxcIjowLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICBsZXQgY29pbkluZm8gPSB7XCJjb2luXCI6MCxcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjMzMzMzMzMzMzMzXCIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcCxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VySW5mbygoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg55So5oi35L+h5oGv5oiQ5YqfXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3VzZXJEYXRhJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOWQju+8jOivu+WPlueUqOaIt+S/oeaBr++8jOS4uuS4iuaKpeazqOWGjOaXtumXtFwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfdXNlclNldCh0aW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuacjeWKoeWZqOS5n+ayoeaciemHkeW4geS/oeaBr1wiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyTGV2ZWwoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwwLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOmBk+WFt+S/oeaBr+aIkOWKn1wiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi572R57uc5byC5bi477yM5q2j5Zyo5Yqq5Yqb5Yqg6L29XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbGRSZWFkRGF0YSgwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHJlcy5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5kYXRhKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkID0gcmVzLnJlc3VsdC5vcGVuaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gcmVzLnJlc3VsdC5kYXRhLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gcmVzLnJlc3VsdC5kYXRhLmNvaW5BbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VybmFtZSA9IHJlcy5yZXN1bHQuZGF0YS51c2VybmFtZTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcmF2YXRhciA9IHJlcy5yZXN1bHQuZGF0YS51c2VyYXZhdGFyO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJvcGVuaWRcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpc3Rlcl90aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV91c2VyU2V0KHJlZ2lzdGVyX3RpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckNvaW4oKGRhdGEpID0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw6YeR5biB5pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvaW5JbmZvID0ge1wiY29pblwiOjAsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeaciemHkeW4geS/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiK5LygXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pyJ6YeR5biB5L+h5oGv77yM5LuO6YeR5biB5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IGRhdGEucmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29pbkluZm8gPSB7XCJjb2luXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlrZjlgqjph5HluIHkv6Hmga86XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCI0NDQ0NDQ0NDQ0XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9LCA1MDApO1xyXG5cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJMZXZlbCgoZGF0YSkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOWFs+WNoeaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInnrYnnuqfkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsZXZlbEluZm8gPSB7XCJsZXZlbFwiOjAsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIjMzMzMzM+WtmOWCqOWFs+WNoeaVsOaNrjpcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckxldmVsKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmi7/liLDnmoTmlbDmja5cIixkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuacieetiee6p+S/oeaBr++8jOS7juWFs+WNoeaOpeWPo+aLv+WIsOaVsOaNrlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBkYXRhLnJlc3VsdC5kYXRhOyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IHtcImxldmVsXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCI0NDQ0NDTlrZjlgqjlhbPljaHkv6Hmga86XCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJQcm9wKChkYXRhKSA9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmBk+WFt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YGT5YW35L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwwLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmnInpgZPlhbfkv6Hmga/vvIzku47pgZPlhbfmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZSB8fCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuaGFtbWVyIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOmBk+WFt+S/oeaBrzpcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9LFxyXG4gICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+ivu+WPlueUqOaIt+aVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgaWYgKHJldHJ5Q291bnQgPCBNQVhfUkVUUklFUykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYOivu+WPlueUqOaIt+aVsOaNruWksei0pe+8jOesrCAke3JldHJ5Q291bnQgKyAxfSDmrKHph43or5XvvIzplJnor6/kv6Hmga86YCwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyDlu7bov58gMiDnp5LlkI7ph43or5VcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEocmV0cnlDb3VudCArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMDApO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKXvvIzovr7liLDmnIDlpKfph43or5XmrKHmlbDvvIzpgIDlh7rmuLjmiI8nLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOmAgOWHuua4uOaIj1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmdhbWUuZW5kKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHNldFVzZXJEYXRhKCl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HYW1lVG9vbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKBcIixkYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0VGltZUN1dERvd24oKXtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBpZih0aGlzLnRpbWVOdW1iZXIgPD0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVOdW1iZXIgLT0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjaywgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcFRpbWVDdXREb3duKCl7XHJcbiAgICAgICAgaWYodGhpcy5zY2hlZHVsZUNhbGxiYWNrKXtcclxuICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICAgICAgICBpZih0aGlzLmxvYWQxICYmIHRoaXMubG9hZDIgJiYgdGhpcy5sb2FkMyAgJiYgdGhpcy5sb2FkNCAmJiB0aGlzLmxvYWQ1ICYmIHRoaXMudGltZU51bWJlciA8PSAwKXtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMSA9IHRoaXMubG9hZDIgPSBmYWxzZTtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV9Jbml0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdsRixpREFBZ0Q7QUFFMUMsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUEwcEJDO1FBdnBCRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFJdkIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyxpQkFBVyxHQUEyQixFQUFFLENBQUM7UUFHekMseURBQXlEO1FBQ3pELG1EQUFtRDtRQUVuRCxXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7O0lBZ29CM0IsQ0FBQztvQkExcEJvQixXQUFXO0lBK0I1Qix3QkFBd0I7SUFFeEIsNEJBQU0sR0FBTjtRQUFBLGlCQTRFQztRQTFFRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxD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QU8sRUFBQyxNQUFNLEVBQUMsQ0FBQztvREFDVjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUM7b0RBQ1Y7SUFoQnhCLFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0EwcEIvQjtJQUFELGtCQUFDO0NBMXBCRCxBQTBwQkMsQ0ExcEJ3QyxFQUFFLENBQUMsU0FBUyxHQTBwQnBEO2tCQTFwQm9CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgeyBNaW5pR2FtZU1hbmFnZXIgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIHN0YXRpYyBfaW5zdGFuY2UgOiBHYW1lTWFuYWdlciA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuaWueWdl+aVsOe7hFwifSlcclxuICAgIEJsb2NrX0FycmF5IDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLlopnlo4HmlbDnu4RcIn0pXHJcbiAgICBXYWxsX1ByZWZhYiA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5TcHJpdGVBdGxhc10sIHRvb2x0aXA6XCLmlrnlnZfpopzoibJcIn0pXHJcbiAgICBCbG9ja19Db2xvciA6IEFycmF5PGNjLlNwcml0ZUF0bGFzPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDQgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQ1IDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBzY2hlZHVsZUNhbGxiYWNrOiBhbnk7XHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXI7XHJcblxyXG4gICAgXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICB3aW5kb3cuaW5pdE1ncigpO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IDM7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5pbml0KHRydWUpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lU3RhdGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlYWRNdXNpY0NvbmZpZygpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6Z+z5LmQ5byA5YWzXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbik7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5TXVzaWNHYW1lKCk7XHJcblxyXG4gICAgICAgIHRoaXMubG9hZDEgPSB0aGlzLmxvYWQyID0gdGhpcy5sb2FkMyA9IHRoaXMubG9hZDQgPSB0aGlzLmxvYWQ1ID1mYWxzZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEoKTtcclxuICAgICAgICB9LCAyMDApO1xyXG4gXHJcblxyXG4gICAgICAgIGlmIChHYW1lTWFuYWdlci5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgICAgICAgICBjYy5nYW1lLmFkZFBlcnNpc3RSb290Tm9kZSh0aGlzLm5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdwcmVmYWIvYmxvY2snO1xyXG4gICAgICAgIGNvbnN0IHBhdGgyID0gJ3ByZWZhYi93YWxsJztcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoLCBjYy5QcmVmYWIsIChlcnIsIGFzc2V0czogY2MuUHJlZmFiW10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5zZXRTb3J0KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDEgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoMiwgY2MuUHJlZmFiLCAoZXJyLCBhc3NldHM6IGNjLlByZWZhYltdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5XYWxsX1ByZWZhYiA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5sb2FkMiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0V2FsbFByZWZhYlNvcnQoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gZGVidWdnZXI7XHJcblxyXG4gICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIC8vICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVycikgPT4ge1xyXG4gICAgICAgIC8vICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+mihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8vICAgICAgICAgfVxyXG4gICAgICAgIC8vICAgICB9KTtcclxuICAgICAgICAvLyB9LCAxMDAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDmo4DmtYvlvq7kv6HlsI/muLjmiI/liIfliLDlkI7lj7BcclxuICAgICAgICBpZiAoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpIHtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4Lm9uSGlkZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGlkZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgLy8g5qOA5rWL5b6u5L+h5bCP5ri45oiP5Zue5Yiw5YmN5Y+wXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5vblNob3coKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblNob3coKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkhpZGUgKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIGNjLmdhbWUucGF1c2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNob3cgKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnJlc3VtZU11c2ljKCk7XHJcbiAgICAgICAgY2MuZ2FtZS5yZXN1bWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkUGFydGljbGVFZmZlY3RzKCkge1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuXHJcbiAgICBzZXRXYWxsUHJlZmFiU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsnZG93bicsICdkb3duTGVmdCcsICdkb3duUmlnaHQnLCAnbGVmdCcsJ3JpZ2h0JywndXAnLCd1cExlZnQnLCd1cFJpZ2h0J107XHJcbiAgICAgICAgdGhpcy5XYWxsX1ByZWZhYi5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgc2V0UGFydGljbGVTb3J0KCkge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gWyd0b3AnLCAnYm90JywgJ3JpZycsICdsZWYnXTtcclxuICAgICAgICB0aGlzLnBhcnRpY2xlRWZmZWN0cy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U29ydCgpe1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQXJyYXkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyDku47lkI3np7DkuK3mj5Dlj5bmlbDlrZfpg6jliIZcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQSA9IHBhcnNlSW50KGEubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bWJlckIgPSBwYXJzZUludChiLm5hbWUubWF0Y2goL1xcZCsvKT8uWzBdIHx8ICcwJywgMTApO1xyXG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyQSAtIG51bWJlckI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzdGFydEdhbWUoKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIui/m+WFpeWcuuaZr+S5i+WJjV9fX19fX19fX19fX19cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKSlcclxuICAgICAgICAgICAgLnRvKDAuNSwge29wYWNpdHk6IDEwMH0pXHJcbiAgICAgICAgICAgIC5jYWxsKCgpID0+IHtcclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIOmihOWKoOi9veaIkOWKn+WQjuWKoOi9veWcuuaZr1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikpXHJcbiAgICAgICAgICAgIC50bygwLjUse29wYWNpdHk6IDI1NX0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICAvLyBjYy5sb2FkZXIucmVsZWFzZUFsbCgpO1xyXG4gICAgICAgIC8vIOmihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmvXHJcblxyXG4gICBcclxuICAgIH1cclxuXHJcblxyXG4gICAgcmVhZFVzZXJEYXRhKHJldHJ5Q291bnQgPSAwKXtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHsgXHJcbiAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImxldmVsXCIpO1xyXG4gICAgICAgICAgICAgICAgLy/ml6fnmoTor7vlj5bmlbDmja7orr7nva7mlbDmja7mlrnms5Us5Lul5by66IGU572R5Li65Li7XHJcbiAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8gPT0gdW5kZWZpbmVkIHx8IGxldmVsSW5mbyA9PSBcIlwiIHx8IGxldmVsSW5mbyA9PSBudWxsKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9sZFJlYWREYXRhKHJldHJ5Q291bnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy/mlrDnmoTor7vlj5bmlbDmja7orr7nva7mlrnms5XvvIzku6XmnKzlnLDkuLrkuLtcclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXdSZWFkRGF0YSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLljbPlsIbor7vlj5bkvZPlipvlgLxcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvlgLzlrozmiJDov5vlhaXmuLjmiI9cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgIH1cclxuICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQ1ID0gdHJ1ZTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0SGVhbHRoKG51bGwpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgLy8g5a2Y5YKo55So5oi35pWw5o2uXHJcbiAgICB9XHJcblxyXG4gICAgcmVhZE11c2ljQ29uZmlnKCl7XHJcbiAgICAgICAgbGV0IGF1ZGlvSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJtdXNpY1wiKTtcclxuICAgICAgICBpZihhdWRpb0luZm8gPT0gdW5kZWZpbmVkIHx8IGF1ZGlvSW5mbyA9PSBcIlwiIHx8IGF1ZGlvSW5mbyA9PSBudWxsKXtcclxuICAgICAgICAgICAgYXVkaW9JbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgXCJtdXNpY09wZW5cIjogdHJ1ZSwgICAgICAgICAgICAgLy/pn7PkuZBcclxuICAgICAgICAgICAgICAgIFwiZWZmZWN0T3BlblwiOiB0cnVlLCAgICAgICAgICAgIC8v6Z+z5pWIXHJcbiAgICAgICAgICAgICAgICBcInZpYnJhdGVPcGVuXCI6IHRydWUsICAgICAgICAgICAvL+mch+WKqFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJtdXNpY1wiLGF1ZGlvSW5mbyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4gPSBhdWRpb0luZm8ubXVzaWNPcGVuO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IGF1ZGlvSW5mby5lZmZlY3RPcGVuO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW4gPSBhdWRpb0luZm8udmlicmF0ZU9wZW47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvL+aWsOeUqOaIt++8jOacieacrOWcsOe8k+WtmOivu+WPlumFjee9rlxyXG4gICAgbmV3UmVhZERhdGEoKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuivu+WPluaWsOS/oeaBr1wiKTtcclxuICAgICAgICBsZXQgb3BlbmlkID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcIm9wZW5pZFwiKTtcclxuICAgICAgICBpZihvcGVuaWQgPT0gbnVsbCB8fCBvcGVuaWQgPT0gXCJcIiB8fCBvcGVuaWQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnIlvcGVuaWRcIik7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckRhdGEnLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygn6K+75Y+W55So5oi35pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmNvZGUgPT0gNDA0ICYmIHJlcy5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOeUqOaIt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihyZXMucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5kYXRhKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VybmFtZSA9IHJlcy5yZXN1bHQuZGF0YS51c2VybmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VyYXZhdGFyID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJhdmF0YXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpc3Rlcl90aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X3VzZXJTZXQocmVnaXN0ZXJfdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwib3BlbmlkXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKUnLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKG9wZW5pZClcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSBvcGVuaWQ7XHJcbiAgICAgICAgfVxyXG4gICBcclxuXHJcblxyXG4gICAgICAgIC8v562J57qn5L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckxldmVsKChkYXRhKSA9PntcclxuICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJsZXZlbFwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOWFs+WNoeaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ562J57qn5L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYobGV2ZWxJbmZvLmxldmVsKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pyJ562J57qn5L+h5oGv77yM5LuO5YWz5Y2h5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAvL+a4uOaIj+WJjeerr+WtmOWCqCDmlrDkuo7mnI3liqHlmajnq68s5Lul5ri45oiP5YmN56uv5L+h5oGv5Li65Li777yM5pS+5pyN5Yqh5Zmo5a2Y5YKoXHJcbiAgICAgICAgICAgICAgICBsZXQgdGVtcCA9IGRhdGEucmVzdWx0LnRpbWVzdGFtcCAtIGxldmVsSW5mby50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuetiee6p+aXtumXtOW3rjpcIix0ZW1wKTtcclxuICAgICAgICAgICAgICAgIGlmKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBsZXZlbEluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8ubGV2ZWwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7pea4uOaIj+WJjeerr+etiee6p+S4uuWHhlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi562J57qn5Li6OlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v5pyN5Yqh5Zmo56uv5a2Y5YKo5pe26Ze05paw5LqO5ri45oiP56uv77yM5Lul5pyN5Yqh5Zmo56uv5Li65Li7LOW+gOWJjeerr+WtmOWCqFxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peacjeWKoeWZqOetiee6p+S4uuWHhlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGRhdGEucmVzdWx0LmRhdGE7IFxyXG4gICAgICAgICAgICAgICAgICAgIGxldmVsSW5mby5sZXZlbCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbDtcclxuICAgICAgICAgICAgICAgICAgICBsZXZlbEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiMTExMTExMeWtmOWCqOWFs+WNoeaVsOaNrjpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v6YeR5biB5L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckNvaW4oKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgY29pbkluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwiY29pblwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmHkeW4geaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGlmKGNvaW5JbmZvLmNvaW4pXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInph5HluIHkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnInph5HluIHkv6Hmga/vvIzku47ph5HluIHmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgIC8v5ri45oiP5YmN56uv5a2Y5YKoIOaWsOS6juacjeWKoeWZqOerryzku6XmuLjmiI/liY3nq6/kv6Hmga/kuLrkuLvvvIzmlL7mnI3liqHlmajlrZjlgqhcclxuICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLph5HluIHml7bpl7Tlt646XCIsdGVtcCk7XHJcbiAgICAgICAgICAgICAgICBpZigoZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peWJjeerr+mHkeW5o+S4uuWHhjpcIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY29pbkluZm8uY29pbilcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gZGF0YS5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29pbkluZm8uY29pbiA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2luSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMTExMTExMTExMTFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaUueWPmOWQjumHkeW4gTpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL+acjeWKoeWZqOerr+WtmOWCqOaXtumXtOaWsOS6jua4uOaIj+err++8jOS7peacjeWKoeWZqOerr+S4uuS4uyzlvoDliY3nq6/lrZjlgqhcclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLku6XmnI3liqHlmajph5HluaPkuLrlh4Y6XCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBkYXRhLnJlc3VsdC5kYXRhOyBcclxuICAgICAgICAgICAgICAgICAgICBjb2luSW5mby5jb2luID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW47XHJcbiAgICAgICAgICAgICAgICAgICAgY29pbkluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMjIyMlwiKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v6YGT5YW35L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlclByb3AoKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmBk+WFt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YGT5YW35L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgaWYocHJvcEluZm8uZnJlZXplQW1vdW50ID09IHVuZGVmaW5lZCB8fCBwcm9wSW5mby5oYW1tZXJBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLm1hZ2ljQW1vdW50ID09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMumBk+WFt+aVsOaNruW8guW4uFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91biA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mb05ldyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIxMTExMTEx5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBwcm9wSW5mby5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHByb3BJbmZvLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBwcm9wSW5mby5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBwcm9wSW5mby5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gcHJvcEluZm8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcHJvcEluZm8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLDAsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuacrOWcsOaXtumXtOaIs1wiLHByb3BJbmZvLnRpbWVzdGFtcCxcIuacjeWKoeWZqOaXtumXtOaIs1wiLGRhdGEucmVzdWx0LnRpbWVzdGFtcCk7XHJcbiAgICAgICAgICAgICAgICBpZigoZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gcHJvcEluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peWJjeerr+mBk+WFt+S4uuS4uzpcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYocHJvcEluZm8uZnJlZXplQW1vdW50ID09IHVuZGVmaW5lZCB8fCBwcm9wSW5mby5oYW1tZXJBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLm1hZ2ljQW1vdW50ID09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMTExMTEx6YGT5YW35pWw5o2u5byC5bi4XCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuaGFtbWVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mb05ldyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMzMzMzMz5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6YGT5YW35pWw5o2u5q2j5bi4XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gcHJvcEluZm8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gcHJvcEluZm8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBwcm9wSW5mby5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwwLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mb05ldyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMjLkuIrkvKDpgZPlhbfkv6Hmga86XCIscHJvcEluZm9OZXcsZGF0YS5yZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm9OZXcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLy/ml6fnlKjmiLfvvIzml6DmnKzlnLDnvJPlrZjor7vlj5bphY3nva5cclxuICAgIG9sZFJlYWREYXRhKHJldHJ5Q291bnQ6bnVtYmVyKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuivu+WPluaXp+S/oeaBr1wiKTtcclxuICAgICAgICBjb25zdCBNQVhfUkVUUklFUyA9IDE1O1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgLy8g6K+75Y+W55So5oi35pWw5o2uXHJcbiAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICBuYW1lOiAndXNlckRhdGEnLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7ICAgXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCfor7vlj5bnlKjmiLfmlbDmja7miJDlip8nLCByZXMucmVzdWx0KVxyXG4gICAgICAgICAgICBpZihyZXMucmVzdWx0LmNvZGUgPT0gNDA0ICYmIHJlcy5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOeUqOaIt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQub3BlbmlkKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkID0gcmVzLnJlc3VsdC5vcGVuaWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IHtcImxldmVsXCI6MCxcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgbGV0IGNvaW5JbmZvID0ge1wiY29pblwiOjAsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIzMzMzMzMzMzMzM1wiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOjAsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOjAsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXAsXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckluZm8oKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOeUqOaIt+S/oeaBr+aIkOWKn1wiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICd1c2VyRGF0YScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDlkI7vvIzor7vlj5bnlKjmiLfkv6Hmga/vvIzkuLrkuIrmiqXms6jlhozml7bpl7RcIilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZSA9IHJlcy5yZXN1bHQuZGF0YS5yZWdpc3Rlcl90aW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X3VzZXJTZXQodGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmnI3liqHlmajkuZ/msqHmnInph5HluIHkv6Hmga9cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyQ29pbihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckxldmVsKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDAsMCwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDpgZPlhbfkv6Hmga/miJDlip9cIixkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIue9kee7nOW8guW4uO+8jOato+WcqOWKquWKm+WKoOi9vVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub2xkUmVhZERhdGEoMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAxMDAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihyZXMucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuZGF0YSl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IHJlcy5yZXN1bHQub3BlbmlkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IHJlcy5yZXN1bHQuZGF0YS5sZXZlbDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IHJlcy5yZXN1bHQuZGF0YS5jb2luQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSByZXMucmVzdWx0LmRhdGEuZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSByZXMucmVzdWx0LmRhdGEuaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcm5hbWUgPSByZXMucmVzdWx0LmRhdGEudXNlcm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJhdmF0YXIgPSByZXMucmVzdWx0LmRhdGEudXNlcmF2YXRhcjtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwib3BlbmlkXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVnaXN0ZXJfdGltZSA9IHJlcy5yZXN1bHQuZGF0YS5yZWdpc3Rlcl90aW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfdXNlclNldChyZWdpc3Rlcl90aW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJDb2luKChkYXRhKSA9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmHkeW4geaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2luSW5mbyA9IHtcImNvaW5cIjowLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInph5HluIHkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyQ29pbigoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS8oFwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaciemHkeW4geS/oeaBr++8jOS7jumHkeW4geaOpeWPo+aLv+WIsOaVsOaNrlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBkYXRhLnJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvaW5JbmZvID0ge1wiY29pblwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5a2Y5YKo6YeR5biB5L+h5oGvOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiNDQ0NDQ0NDQ0NFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyTGV2ZWwoKGRhdGEpID0+e1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gNDA0ICYmIGRhdGEucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDlhbPljaHmlbDmja5cIil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ562J57qn5L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0ge1wibGV2ZWxcIjowLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCIzMzMzMzPlrZjlgqjlhbPljaHmlbDmja46XCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5ou/5Yiw55qE5pWw5o2uXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmnInnrYnnuqfkv6Hmga/vvIzku47lhbPljaHmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gZGF0YS5yZXN1bHQuZGF0YTsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsZXZlbEluZm8gPSB7XCJsZXZlbFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCxcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiNDQ0NDQ05a2Y5YKo5YWz5Y2h5L+h5oGvOlwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyUHJvcCgoZGF0YSkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gNDA0ICYmIGRhdGEucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDpgZPlhbfmlbDmja5cIil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeaciemBk+WFt+S/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOjAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOjAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOmBk+WFt+S/oeaBrzpcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDAsMCwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pyJ6YGT5YW35L+h5oGv77yM5LuO6YGT5YW35o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5mcmVlemUgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmhhbW1lciB8fCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDpgZPlhbfkv6Hmga86XCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSxcclxuICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKUnLCBlcnIpXHJcbiAgICAgICAgICAgIGlmIChyZXRyeUNvdW50IDwgTUFYX1JFVFJJRVMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGDor7vlj5bnlKjmiLfmlbDmja7lpLHotKXvvIznrKwgJHtyZXRyeUNvdW50ICsgMX0g5qyh6YeN6K+V77yM6ZSZ6K+v5L+h5oGvOmAsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5bu26L+fIDIg56eS5ZCO6YeN6K+VXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVhZFVzZXJEYXRhKHJldHJ5Q291bnQgKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9LCAyMDAwKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign6K+75Y+W55So5oi35pWw5o2u5aSx6LSl77yM6L6+5Yiw5pyA5aSn6YeN6K+V5qyh5pWw77yM6YCA5Ye65ri45oiPJywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyDpgIDlh7rmuLjmiI9cclxuICAgICAgICAgICAgICAgICAgICBjYy5nYW1lLmVuZCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBzZXRVc2VyRGF0YSgpe1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR2FtZVRvb2woKGRhdGEpPT57XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5LygXCIsZGF0YSk7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBzdGFydFRpbWVDdXREb3duKCl7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZUNhbGxiYWNrID0gZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgaWYodGhpcy50aW1lTnVtYmVyIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aW1lTnVtYmVyIC09IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2ssIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0b3BUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIGlmKHRoaXMuc2NoZWR1bGVDYWxsYmFjayl7XHJcbiAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUgKGR0KSB7XHJcbiAgICAgICAgaWYodGhpcy5sb2FkMSAmJiB0aGlzLmxvYWQyICYmIHRoaXMubG9hZDMgICYmIHRoaXMubG9hZDQgJiYgdGhpcy5sb2FkNSAmJiB0aGlzLnRpbWVOdW1iZXIgPD0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDEgPSB0aGlzLmxvYWQyID0gZmFsc2U7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfSW5pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0R2FtZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0= //------QC-SOURCE-SPLIT------ (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/JiaZai.js'; + var __filename = 'preview-scripts/assets/Script/Pause.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -5641,8 +5747,8 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '1dc93b4fehOrpGgTkihBH4g', 'JiaZai'); -// Script/JiaZai.ts +cc._RF.push(module, 'aca4aut33NCvIC0yg3JmY0h', 'Pause'); +// Script/Pause.ts "use strict"; // Learn TypeScript: @@ -5671,255 +5777,145 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); -var GameManager_1 = require("./GameManager"); -var NumberToImage_1 = require("./NumberToImage"); -var MiniGameSdk_1 = require("./Sdk/MiniGameSdk"); -var lq_collide_system_1 = require("./lq_collide_system/lq_collide_system"); var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var NewClass = /** @class */ (function (_super) { - __extends(NewClass, _super); - function NewClass() { +var Pause = /** @class */ (function (_super) { + __extends(Pause, _super); + function Pause() { var _this = _super !== null && _super.apply(this, arguments) || this; - _this.node1 = null; - _this.node2 = null; - _this.node3 = null; - _this.Block_Color = []; - _this.custom = null; - _this.level = null; - _this.coin = null; - _this.Stamina = null; + _this.time = 0; + _this.music = null; + _this.effect = null; + _this.vibrate = null; + _this.open = null; + _this.close = null; + // mapInfo: number[][] = []; + _this.musicState = true; + _this.effectState = true; + _this.vibrateState = true; return _this; // update (dt) {} } - // LIFE-CYCLE CALLBACKS: - NewClass.prototype.onLoad = function () { - cc.game.setFrameRate(63); - lq_collide_system_1.LQCollideSystem.is_enable = true; - // console.log("加载关卡配置2"); - // window.initMgr(); - GameManager_1.default._instance.Block_Color = this.Block_Color; - if (cc.fx.GameConfig.GM_INFO.first) { - console.log("————————准备注册事件", cc.fx.GameConfig.GM_INFO.openid); - if (cc.fx.GameConfig.GM_INFO.openid != "") { - console.log("————————发送注册事件"); - cc.fx.GameTool.shushu_Track("register"); - } - cc.fx.AudioManager._instance.playEffect("zhuan1", null); - this.node.getChildByName("zhuanchang").active = true; - this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); - setTimeout(function () { - cc.fx.GameConfig.GM_INFO.first = false; - cc.director.loadScene("GameScene"); - }, 1000); + Pause.prototype.onLoad = function () { + if (cc.fx.GameConfig.GM_INFO.musicOpen) { + this.music.getComponent(cc.Sprite).spriteFrame = this.open; + this.music.x = 278; } + else { + this.music.getComponent(cc.Sprite).spriteFrame = this.close; + this.music.x = 161; + } + if (cc.fx.GameConfig.GM_INFO.effectOpen) { + this.effect.getComponent(cc.Sprite).spriteFrame = this.open; + this.effect.x = 278; + } + else { + this.effect.getComponent(cc.Sprite).spriteFrame = this.close; + this.effect.x = 161; + } + if (cc.fx.GameConfig.GM_INFO.vibrateOpen) { + this.vibrate.getComponent(cc.Sprite).spriteFrame = this.open; + this.vibrate.x = 278; + } + else { + this.vibrate.getComponent(cc.Sprite).spriteFrame = this.close; + this.vibrate.x = 161; + } + this.musicState = cc.fx.GameConfig.GM_INFO.musicOpen; + this.effectState = cc.fx.GameConfig.GM_INFO.effectOpen; + this.vibrateState = cc.fx.GameConfig.GM_INFO.vibrateOpen; }; - NewClass.prototype.start = function () { - // console.log("已经进入Home界面"); - // console.log("金币",cc.fx.GameConfig.GM_INFO.coin); - // console.log("关卡",cc.fx.GameConfig.GM_INFO.level+1); + Pause.prototype.start = function () { + }; + Pause.prototype.init = function (time) { + }; + Pause.prototype.clickMusic = function () { var _this = this; - cc.fx.GameTool.getHealth(null); - // cc.fx.GameConfig.LEVEL_INFO_init(false,0); - setTimeout(function () { - NumberToImage_1.default.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 25, 15, "big_", _this.level, false); - NumberToImage_1.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", _this.coin, true); - _this.setHealthInfo(); - }, 0); - if (cc.fx.GameConfig.GM_INFO.gameState) { - this.node.getChildByName("zhuanchang").active = true; - setTimeout(function () { - cc.fx.AudioManager._instance.playEffect("zhuan2", null); - _this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "down", false); - _this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setCompleteListener(function (entry) { - if (entry.animation.name === "down" && !cc.fx.GameConfig.GM_INFO.first) { - // 动画播放结束后执行的逻辑 - _this.node.getChildByName("zhuanchang").active = false; - } - }); - }, 500); + if (this.musicState) { + this.musicState = false; + cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState; + this.setMusicConfig(); + this.music.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(161, this.music.y)), cc.fadeOut(0.05)), cc.callFunc(function () { + _this.music.getComponent(cc.Sprite).spriteFrame = _this.close; + }), cc.fadeIn(0.1))); + cc.fx.AudioManager._instance.stopMusic(); } else { - if (!cc.fx.GameConfig.GM_INFO.first) - this.node.getChildByName("zhuanchang").active = false; + this.musicState = true; + cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState; + this.setMusicConfig(); + this.music.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(278, this.music.y)), cc.fadeOut(0.05)), cc.callFunc(function () { + _this.music.getComponent(cc.Sprite).spriteFrame = _this.open; + }), cc.fadeIn(0.1))); + cc.fx.AudioManager._instance.playMusicGame(); } }; - //开始倒计时 - NewClass.prototype.startTimeCutDown = function () { - this.scheduleCallback = function () { - var _this = this; - if (this.pause) - return; - if (cc.fx.GameConfig.GM_INFO.min_Time <= 0) { - this.stopTimeCutDown(); - var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time); - this.Stamina.getChildByName("time").getComponent(cc.Label).string = timeTemp; - cc.fx.GameTool.setUserHealth(1, function (data) { - cc.fx.GameTool.getHealth(null); - _this.setHealthInfo(); - }); - } - else { - cc.fx.GameConfig.GM_INFO.min_Time -= 1; - var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time); - this.Stamina.getChildByName("time").getComponent(cc.Label).string = timeTemp; - } - }.bind(this); - this.schedule(this.scheduleCallback, 1); + Pause.prototype.setMusicConfig = function () { + var audioInfo = { + "musicOpen": cc.fx.GameConfig.GM_INFO.musicOpen, + "effectOpen": cc.fx.GameConfig.GM_INFO.effectOpen, + "vibrateOpen": cc.fx.GameConfig.GM_INFO.vibrateOpen, + }; + cc.fx.StorageMessage.setStorage("music", audioInfo); }; - // 停止倒计时 - NewClass.prototype.stopTimeCutDown = function () { - if (this.scheduleCallback) { - this.unschedule(this.scheduleCallback); - } - }; - NewClass.prototype.setHealthInfo = function () { - if (cc.fx.GameConfig.GM_INFO.hp == 5) { - this.Stamina.getChildByName("man").active = true; - this.Stamina.getChildByName("health").active = false; - this.Stamina.getChildByName("time").active = false; + Pause.prototype.clickEffect = function () { + var _this = this; + if (this.effectState) { + this.effectState = false; + cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState; + this.setMusicConfig(); + this.effect.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(161, this.effect.y)), cc.fadeOut(0.05)), cc.callFunc(function () { + _this.effect.getComponent(cc.Sprite).spriteFrame = _this.close; + }), cc.fadeIn(0.1))); } else { - this.Stamina.getChildByName("man").active = false; - this.Stamina.getChildByName("health").active = true; - NumberToImage_1.default.numberToImageNodes((cc.fx.GameConfig.GM_INFO.hp), 25, 15, "coin_", this.Stamina.getChildByName("health"), false); - this.Stamina.getChildByName("time").active = true; - if (cc.fx.GameConfig.GM_INFO.min_Time != 0) { - var time = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time); - this.Stamina.getChildByName("time").getComponent(cc.Label).string = time; - this.startTimeCutDown(); - } + this.effectState = true; + cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState; + this.setMusicConfig(); + this.effect.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(278, this.effect.y)), cc.fadeOut(0.05)), cc.callFunc(function () { + _this.effect.getComponent(cc.Sprite).spriteFrame = _this.open; + }), cc.fadeIn(0.1))); } }; - NewClass.prototype.startGame = function () { - cc.fx.AudioManager._instance.playEffect("anniu_Big", null); - if (cc.fx.GameConfig.GM_INFO.hp < 1) { - MiniGameSdk_1.MiniGameSdk.API.showToast("体力值不足"); - return; + Pause.prototype.clickVibrate = function () { + var _this = this; + if (this.vibrateState) { + this.vibrateState = false; + cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState; + this.setMusicConfig(); + this.vibrate.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(161, this.vibrate.y)), cc.fadeOut(0.05)), cc.callFunc(function () { + _this.vibrate.getComponent(cc.Sprite).spriteFrame = _this.close; + }), cc.fadeIn(0.1))); } - if (this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl")._touch) { - this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl").setTouch(false); - // if(this.custom.string != ""){ - // cc.fx.GameConfig.GM_INFO.level = parseInt(this.custom.string) - 1; - // // cc.fx.StorageMessage.setStorage("level",cc.fx.GameConfig.GM_INFO.level.toString()); - // cc.fx.GameConfig.LEVEL_INFO_init(true); - // } - // else{ - cc.fx.AudioManager._instance.playEffect("zhuan1", null); - this.node.getChildByName("zhuanchang").active = true; - this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); - cc.fx.GameConfig.LEVEL_INFO_init(true, 1000); - // } + else { + this.vibrateState = true; + cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState; + this.setMusicConfig(); + this.vibrate.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(278, this.vibrate.y)), cc.fadeOut(0.05)), cc.callFunc(function () { + _this.vibrate.getComponent(cc.Sprite).spriteFrame = _this.open; + }), cc.fadeIn(0.1))); } }; - NewClass.prototype.closeRank = function () { - this.node.getChildByName("Rank").active = false; - }; - NewClass.prototype.openRank = function () { - this.node.getChildByName("Rank").active = true; - }; - NewClass.prototype.openReward = function () { - this.node.getChildByName("Reward").active = true; - }; - NewClass.prototype.clickShop = function () { - // 假设已经获取到了 userId 和 productId - var userId = cc.fx.GameConfig.GM_INFO.openid; - var productId = '1'; - console.log("即将创建createorder"); - //@ts-ignore - wx.cloud.callFunction({ - name: "createOrder", - data: { - "userId": userId, - "productId": productId, - }, - success: function (res) { - // 取得云函数返回的订单信息 - console.log("createOrder结果:", res.result); - var payment = res.result.paymentResult.payment; - console.log("payment:", payment); - // 调起微信客户端支付 - //@ts-ignore - // 调起微信客户端支付 - //@ts-ignore - wx.requestPayment({ - // 时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间 - timeStamp: payment.timeStamp, - // 随机字符串,长度为32个字符以下 - nonceStr: payment.nonceStr, - // 统一下单接口返回的 prepay_id 参数值 - package: payment.package, - // 签名算法,暂支持 MD5、HMAC-SHA256 - signType: payment.signType || 'MD5', - // 支付签名 - paySign: payment.paySign, - success: function (res) { - /* 成功回调 */ - console.log("支付成功", res); - }, - fail: function (res) { - /* 失败回调 */ - console.log("支付失败", res); - }, - complete: function (res) { - console.log("支付完成", res); - } - }); - }, - }); - }; - NewClass.prototype.openPause = function () { - cc.fx.AudioManager._instance.playEffect("anniu_little", null); - console.log(cc.fx.GameConfig.GM_INFO); - if (cc.fx.GameConfig.GM_INFO.openid == undefined) { - console.log(cc.fx.GameConfig.GM_INFO.openid); - cc.fx.GameConfig.GM_INFO.openid = ""; - } - this.node.getChildByName("Pause").active = true; - this.node.getChildByName("Pause").getChildByName("openID").getComponent(cc.Label).string = cc.fx.GameConfig.GM_INFO.openid; - }; - NewClass.prototype.closePause = function () { - cc.fx.AudioManager._instance.playEffect("anniu_little", null); - this.node.getChildByName("Pause").active = false; - }; - NewClass.prototype.closeReward = function () { - this.node.getChildByName("Reward").active = false; - }; - NewClass.prototype.openStamina = function () { - this.node.getChildByName("Stamina").active = true; - }; - NewClass.prototype.closeStamina = function () { - this.node.getChildByName("Stamina").active = false; - }; __decorate([ property(cc.Node) - ], NewClass.prototype, "node1", void 0); + ], Pause.prototype, "music", void 0); __decorate([ property(cc.Node) - ], NewClass.prototype, "node2", void 0); + ], Pause.prototype, "effect", void 0); __decorate([ property(cc.Node) - ], NewClass.prototype, "node3", void 0); + ], Pause.prototype, "vibrate", void 0); __decorate([ - property({ type: [cc.SpriteAtlas], tooltip: "方块颜色" }) - ], NewClass.prototype, "Block_Color", void 0); + property(cc.SpriteFrame) + ], Pause.prototype, "open", void 0); __decorate([ - property(cc.EditBox) - ], NewClass.prototype, "custom", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "level", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "coin", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "Stamina", void 0); - NewClass = __decorate([ + property(cc.SpriteFrame) + ], Pause.prototype, "close", void 0); + Pause = __decorate([ ccclass - ], NewClass); - return NewClass; + ], Pause); + return Pause; }(cc.Component)); -exports.default = NewClass; +exports.default = Pause; cc._RF.pop(); } @@ -5932,13 +5928,13 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxKaWFaYWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkNBQXdDO0FBQ3hDLGlEQUE0QztBQUM1QyxpREFBZ0Q7QUFDaEQsMkVBQXNFO0FBQ2hFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBOFBDO1FBM1BHLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUd0QixXQUFLLEdBQVksSUFBSSxDQUFDO1FBS3RCLGlCQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUd6QyxZQUFNLEdBQWUsSUFBSSxDQUFDO1FBSzFCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsVUFBSSxHQUFZLElBQUksQ0FBQztRQUdyQixhQUFPLEdBQVksSUFBSSxDQUFDOztRQWlPeEIsaUJBQWlCO0lBQ3JCLENBQUM7SUEvTkcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47UUFDSSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixtQ0FBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakMsMEJBQTBCO1FBQzFCLG9CQUFvQjtRQUNwQixxQkFBVyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyRCxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUM7WUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFD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OzJDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFHckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzs2Q0FDTTtJQTVCUCxRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBOFA1QjtJQUFELGVBQUM7Q0E5UEQsQUE4UEMsQ0E5UHFDLEVBQUUsQ0FBQyxTQUFTLEdBOFBqRDtrQkE5UG9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgR2FtZU1hbmFnZXIgZnJvbSBcIi4vR2FtZU1hbmFnZXJcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5pbXBvcnQge0xRQ29sbGlkZVN5c3RlbX0gZnJvbSBcIi4vbHFfY29sbGlkZV9zeXN0ZW0vbHFfY29sbGlkZV9zeXN0ZW1cIjtcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMzogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgXHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOlwi5pa55Z2X6aKc6ImyXCJ9KVxyXG4gICAgQmxvY2tfQ29sb3IgOiBBcnJheTxjYy5TcHJpdGVBdGxhcz4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuRWRpdEJveClcclxuICAgIGN1c3RvbTogY2MuRWRpdEJveCA9IG51bGw7XHJcbiAgICBcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBsZXZlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIFN0YW1pbmE6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55O1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgY2MuZ2FtZS5zZXRGcmFtZVJhdGUoNjMpOyBcclxuICAgICAgICBMUUNvbGxpZGVTeXN0ZW0uaXNfZW5hYmxlID0gdHJ1ZTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWKoOi9veWFs+WNoemFjee9rjJcIik7XHJcbiAgICAgICAgLy8gd2luZG93LmluaXRNZ3IoKTtcclxuICAgICAgICBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQ29sb3IgPSB0aGlzLkJsb2NrX0NvbG9yO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCl7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOWHhuWkh+azqOWGjOS6i+S7tlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQpO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkICE9IFwiXCIpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLigJTigJTigJTigJTigJTigJTigJTigJTlj5HpgIHms6jlhozkuovku7ZcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZWdpc3RlclwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ1cFwiLGZhbHNlKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3sue7j+i/m+WFpUhvbWXnlYzpnaJcIik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLph5HluIFcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlhbPljaFcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwrMSk7XHJcblxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldEhlYWx0aChudWxsKTtcclxuICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCsxKSwyNSwxNSxcImJpZ19cIix0aGlzLmxldmVsLGZhbHNlKTtcclxuICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sMzAsMTUsXCJjb2luX1wiLHRoaXMuY29pbix0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRIZWFsdGhJbmZvKCk7XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVTdGF0ZSl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjJcIixudWxsKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcImRvd25cIixmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwiZG93blwiICYmICFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKCFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+WAkuiuoeaXtlxyXG4gICAgc3RhcnRUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVDYWxsYmFjayA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucGF1c2UpIHJldHVybjtcclxuICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoMSwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRIZWFsdGhJbmZvKCk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1RpbWUgLT0gMTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjaywgMSk7XHJcbiAgICB9XHJcbiAgICAvLyDlgZzmraLlgJLorqHml7ZcclxuICAgIHN0b3BUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIGlmKHRoaXMuc2NoZWR1bGVDYWxsYmFjayl7XHJcbiAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgc2V0SGVhbHRoSW5mbygpe1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9PSA1KXtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwibWFuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcImhlYWx0aFwiKS5hY3RpdmUgPSBmYWxzZTsgXHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJtYW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJoZWFsdGhcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHApLDI1LDE1LFwiY29pbl9cIix0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJoZWFsdGhcIiksZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lICE9IDApe1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbWUgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGltZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA8IDEpe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85LiN6LazXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxvYWRcIikuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydEJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxvYWRcIikuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydEJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gaWYodGhpcy5jdXN0b20uc3RyaW5nICE9IFwiXCIpe1xyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gcGFyc2VJbnQodGhpcy5jdXN0b20uc3RyaW5nKSAtIDE7XHJcbiAgICAgICAgICAgIC8vICAgICAvLyBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwudG9TdHJpbmcoKSk7IFxyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgLy8gZWxzZXtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLDEwMDApO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgICAgICAgICAgXHJcblxyXG4gICAgXHJcbiAgY2xvc2VSYW5rKCl7XHJcbiAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJhbmtcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvcGVuUmFuaygpe1xyXG4gICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJSYW5rXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvcGVuUmV3YXJkKCl7XHJcbiAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tTaG9wKCkge1xyXG4gICAgLy8g5YGH6K6+5bey57uP6I635Y+W5Yiw5LqGIHVzZXJJZCDlkowgcHJvZHVjdElkXHJcbiAgICBjb25zdCB1c2VySWQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkOyBcclxuICAgIGNvbnN0IHByb2R1Y3RJZCA9ICcxJzsgXHJcbiAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuWIm+W7umNyZWF0ZW9yZGVyXCIpO1xyXG4gICAgLy9AdHMtaWdub3JlXHJcbiAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgIG5hbWU6IFwiY3JlYXRlT3JkZXJcIixcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6dXNlcklkLFxyXG4gICAgICAgICAgICBcInByb2R1Y3RJZFwiOnByb2R1Y3RJZCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuICAgICAgICAgICAgLy8g5Y+W5b6X5LqR5Ye95pWw6L+U5Zue55qE6K6i5Y2V5L+h5oGvXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY3JlYXRlT3JkZXLnu5Pmnpw6XCIscmVzLnJlc3VsdCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHBheW1lbnQgPSByZXMucmVzdWx0LnBheW1lbnRSZXN1bHQucGF5bWVudDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJwYXltZW50OlwiLHBheW1lbnQpO1xyXG4gICAgICAgICAgICAvLyDosIPotbflvq7kv6HlrqLmiLfnq6/mlK/ku5hcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIC8vIOiwg+i1t+W+ruS/oeWuouaIt+err+aUr+S7mFxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3gucmVxdWVzdFBheW1lbnQoe1xyXG4gICAgICAgICAgICAgICAgLy8g5pe26Ze05oiz77yM5LuOIDE5NzAg5bm0IDEg5pyIIDEg5pelIDAwOjAwOjAwIOiHs+S7iueahOenkuaVsO+8jOWNs+W9k+WJjeeahOaXtumXtFxyXG4gICAgICAgICAgICAgICAgdGltZVN0YW1wOiBwYXltZW50LnRpbWVTdGFtcCxcclxuICAgICAgICAgICAgICAgIC8vIOmaj+acuuWtl+espuS4su+8jOmVv+W6puS4ujMy5Liq5a2X56ym5Lul5LiLXHJcbiAgICAgICAgICAgICAgICBub25jZVN0cjogcGF5bWVudC5ub25jZVN0cixcclxuICAgICAgICAgICAgICAgIC8vIOe7n+S4gOS4i+WNleaOpeWPo+i/lOWbnueahCBwcmVwYXlfaWQg5Y+C5pWw5YC8XHJcbiAgICAgICAgICAgICAgICBwYWNrYWdlOiBwYXltZW50LnBhY2thZ2UsXHJcbiAgICAgICAgICAgICAgICAvLyDnrb7lkI3nrpfms5XvvIzmmoLmlK/mjIEgTUQ144CBSE1BQy1TSEEyNTZcclxuICAgICAgICAgICAgICAgIHNpZ25UeXBlOiBwYXltZW50LnNpZ25UeXBlIHx8ICdNRDUnLFxyXG4gICAgICAgICAgICAgICAgLy8g5pSv5LuY562+5ZCNXHJcbiAgICAgICAgICAgICAgICBwYXlTaWduOiBwYXltZW50LnBheVNpZ24sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIOaIkOWKn+WbnuiwgyAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5oiQ5YqfXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIOWksei0peWbnuiwgyAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5aSx6LSlXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjb21wbGV0ZShyZXMpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5a6M5oiQXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIG9wZW5QYXVzZSgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLG51bGwpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTyk7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IHRydWU7IFxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmdldENoaWxkQnlOYW1lKFwib3BlbklEXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZDtcclxuICB9XHJcblxyXG4gIGNsb3NlUGF1c2UoKXtcclxuICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLG51bGwpO1xyXG4gICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuYWN0aXZlID0gZmFsc2U7IFxyXG5cclxuICB9XHJcblxyXG4gIGNsb3NlUmV3YXJkKCl7XHJcbiAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSBmYWxzZTsgXHJcbiAgfVxyXG5cclxuICBvcGVuU3RhbWluYSgpe1xyXG4gICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJTdGFtaW5hXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZVN0YW1pbmEoKXtcclxuICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiU3RhbWluYVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxQYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUc1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUkxQztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQW1JQztRQWpJRyxVQUFJLEdBQVcsQ0FBQyxDQUFDO1FBR2pCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixhQUFPLEdBQVksSUFBSSxDQUFDO1FBR3hCLFVBQUksR0FBbUIsSUFBSSxDQUFDO1FBRzVCLFdBQUssR0FBbUIsSUFBSSxDQUFDO1FBRTdCLDRCQUE0QjtRQUU1QixnQkFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixpQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixrQkFBWSxHQUFZLElBQUksQ0FBQzs7UUEyRzdCLGlCQUFpQjtJQUNyQixDQUFDO0lBMUdHLHNCQUFNLEdBQU47UUFDSSxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzNELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN0QjthQUNHO1lBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzVELElBQUksQ0FB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Q0FBQztZQUN6RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFDbEgsS0FBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ3RCO0lBQ0wsQ0FBQztJQTNIRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO3dDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ0s7SUFHdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDTTtJQUd4QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO3VDQUNHO0lBRzVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7d0NBQ0k7SUFqQlosS0FBSztRQUR6QixPQUFPO09BQ2EsS0FBSyxDQW1JekI7SUFBRCxZQUFDO0NBbklELEFBbUlDLENBbklrQyxFQUFFLENBQUMsU0FBUyxHQW1JOUM7a0JBbklvQixLQUFLIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhdXNlIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDA7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBtdXNpYzogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBlZmZlY3Q6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgdmlicmF0ZTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZUZyYW1lKVxyXG4gICAgb3BlbjogY2MuU3ByaXRlRnJhbWUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVGcmFtZSlcclxuICAgIGNsb3NlOiBjYy5TcHJpdGVGcmFtZSA9IG51bGw7XHJcbiAgICBcclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuXHJcbiAgICBtdXNpY1N0YXRlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGVmZmVjdFN0YXRlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHZpYnJhdGVTdGF0ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuKXtcclxuICAgICAgICAgICAgdGhpcy5tdXNpYy5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMub3BlbjtcclxuICAgICAgICAgICAgdGhpcy5tdXNpYy54ID0gMjc4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5jbG9zZTtcclxuICAgICAgICAgICAgdGhpcy5tdXNpYy54ID0gMTYxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3Blbil7XHJcbiAgICAgICAgICAgIHRoaXMuZWZmZWN0LmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5vcGVuO1xyXG4gICAgICAgICAgICB0aGlzLmVmZmVjdC54ID0gMjc4OyBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3QuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmNsb3NlO1xyXG4gICAgICAgICAgICB0aGlzLmVmZmVjdC54ID0gMTYxOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuKXtcclxuICAgICAgICAgICAgdGhpcy52aWJyYXRlLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5vcGVuO1xyXG4gICAgICAgICAgICB0aGlzLnZpYnJhdGUueCA9IDI3ODsgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMudmlicmF0ZS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMuY2xvc2U7IFxyXG4gICAgICAgICAgICB0aGlzLnZpYnJhdGUueCA9IDE2MTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tdXNpY1N0YXRlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3BlbjtcclxuICAgICAgICB0aGlzLmVmZmVjdFN0YXRlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmVmZmVjdE9wZW47XHJcbiAgICAgICAgdGhpcy52aWJyYXRlU3RhdGUgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW47XHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KHRpbWUpe1xyXG5cclxuICAgIH1cclxuICAgIFxyXG4gICAgY2xpY2tNdXNpYygpe1xyXG4gICAgICAgIGlmKHRoaXMubXVzaWNTdGF0ZSl7XHJcbiAgICAgICAgICAgIHRoaXMubXVzaWNTdGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuID0gdGhpcy5tdXNpY1N0YXRlO1xyXG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XHJcbiAgICAgICAgICAgIHRoaXMubXVzaWMucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigxNjEsdGhpcy5tdXNpYy55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5jbG9zZTtcclxuICAgICAgICAgICAgfSksY2MuZmFkZUluKDAuMSkpKVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLm11c2ljU3RhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuID0gdGhpcy5tdXNpY1N0YXRlO1xyXG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XHJcbiAgICAgICAgICAgIHRoaXMubXVzaWMucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigyNzgsdGhpcy5tdXNpYy55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5vcGVuO1xyXG4gICAgICAgICAgICB9KSxjYy5mYWRlSW4oMC4xKSkpXHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheU11c2ljR2FtZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRNdXNpY0NvbmZpZygpe1xyXG4gICAgICAgIGxldCBhdWRpb0luZm8gPSB7XHJcbiAgICAgICAgICAgIFwibXVzaWNPcGVuXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4sICAgICAgICAgICAgIC8v6Z+z5LmQXHJcbiAgICAgICAgICAgIFwiZWZmZWN0T3BlblwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiwgICAgICAgICAgICAvL+mfs+aViFxyXG4gICAgICAgICAgICBcInZpYnJhdGVPcGVuXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy52aWJyYXRlT3BlbiwgICAgICAgICAgIC8v6ZyH5YqoXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJtdXNpY1wiLGF1ZGlvSW5mbyk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tFZmZlY3QoKXtcclxuICAgICAgICBpZih0aGlzLmVmZmVjdFN0YXRlKXtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3RTdGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IHRoaXMuZWZmZWN0U3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3QucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigxNjEsdGhpcy5lZmZlY3QueSkpLCBjYy5mYWRlT3V0KDAuMDUpKSxjYy5jYWxsRnVuYygoKT0+e1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lZmZlY3QuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmNsb3NlO1xyXG4gICAgICAgICAgICB9KSxjYy5mYWRlSW4oMC4xKSkpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuZWZmZWN0U3RhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IHRoaXMuZWZmZWN0U3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3QucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigyNzgsdGhpcy5lZmZlY3QueSkpLCBjYy5mYWRlT3V0KDAuMDUpKSxjYy5jYWxsRnVuYygoKT0+e1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lZmZlY3QuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLm9wZW47XHJcbiAgICAgICAgICAgIH0pLGNjLmZhZGVJbigwLjEpKSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tWaWJyYXRlKCl7XHJcbiAgICAgICAgaWYodGhpcy52aWJyYXRlU3RhdGUpe1xyXG4gICAgICAgICAgICB0aGlzLnZpYnJhdGVTdGF0ZSA9IGZhbHNlOyBcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuID0gdGhpcy52aWJyYXRlU3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy52aWJyYXRlLnJ1bkFjdGlvbihjYy5zZXF1ZW5jZShjYy5zcGF3bihjYy5tb3ZlVG8oMC4wNSwgY2MudjIoMTYxLHRoaXMudmlicmF0ZS55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpYnJhdGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmNsb3NlO1xyXG4gICAgICAgICAgICB9KSxjYy5mYWRlSW4oMC4xKSkpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMudmlicmF0ZVN0YXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuID0gdGhpcy52aWJyYXRlU3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy52aWJyYXRlLnJ1bkFjdGlvbihjYy5zZXF1ZW5jZShjYy5zcGF3bihjYy5tb3ZlVG8oMC4wNSwgY2MudjIoMjc4LHRoaXMudmlicmF0ZS55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpYnJhdGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLm9wZW47XHJcbiAgICAgICAgICAgIH0pLGNjLmZhZGVJbigwLjEpKSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= //------QC-SOURCE-SPLIT------ (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/MapBlock.js'; + var __filename = 'preview-scripts/assets/Script/GameScene.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -5946,76 +5942,50 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '52958xsurVAp54WMo+xFDo6', 'MapBlock'); -// Script/MapBlock.ts +cc._RF.push(module, 'e8b235WjRBErajwLmN8xFUz', 'GameScene'); +// Script/GameScene.js +// cc.Class({ +// extends: cc.Component, +// properties: { +// localTest: { +// default: false, +// tooltip: '本地测试时勾选,避免tz_url和Configure报错,提交前勾掉' +// }, +// clientTest: { +// default: false, +// tooltip: '客户端测试时勾选,展示版本标记方便测试区分,上线前勾掉' +// }, +// clientTestVersion: { +// default: '', +// tooltip: '版本标记' +// }, +// testVersion: cc.Label, +// score: cc.Label, +// double_hit: cc.Node, +// add: cc.Node, +// add2: cc.Node, +// double_title: cc.Node, +// count_time: cc.Node, +// beginNode: cc.Node, +// ball_nomal: [cc.SpriteFrame], +// bg_nomal: [cc.SpriteFrame], +// ball_light: [cc.SpriteFrame], +// kuang_Frame: [cc.SpriteFrame], +// daojishi: cc.Label, +// pause_anniu: cc.Sprite, +// mask: cc.Node, +// flashUI: { +// default: null, +// type: cc.SpriteAtlas +// }, +// }, +// onLoad() { +// }, +// update(dt) { +// }, +// }); "use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var NewClass = /** @class */ (function (_super) { - __extends(NewClass, _super); - function NewClass() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.label = null; - _this.block_Id = ''; - // LIFE-CYCLE CALLBACKS: - _this.posX = 0; //地图块的X坐标 - _this.posY = 0; //地图块的Y坐标 - _this.direction = ""; //地图块的方向 - return _this; - // update (dt) {} - } - // onLoad () {} - NewClass.prototype.start = function () { - this.direction = ""; - this.block_Id = ""; - // this.node.getChildByName("num").getComponent(cc.Label).string = this.direction; - }; - NewClass.prototype.setDiraction = function (direction) { - this.direction = direction; - // this.node.getChildByName("num").getComponent(cc.Label).string = this.direction; - }; - NewClass.prototype.init = function (posX, posY) { - this.posX = posX; - this.posY = posY; - }; - __decorate([ - property(cc.Label) - ], NewClass.prototype, "label", void 0); - __decorate([ - property - ], NewClass.prototype, "block_Id", void 0); - NewClass = __decorate([ - ccclass - ], NewClass); - return NewClass; -}(cc.Component)); -exports.default = NewClass; cc._RF.pop(); } @@ -6028,260 +5998,7 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxNYXBCbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQWdDQztRQTdCRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLGNBQVEsR0FBVyxFQUFFLENBQUM7UUFFdEIsd0JBQXdCO1FBRXhCLFVBQUksR0FBVyxDQUFDLENBQUMsQ0FBZSxTQUFTO1FBQ3pDLFVBQUksR0FBVyxDQUFDLENBQUMsQ0FBZSxTQUFTO1FBQ3pDLGVBQVMsR0FBVyxFQUFFLENBQUMsQ0FBVSxRQUFROztRQW1CekMsaUJBQWlCO0lBQ3JCLENBQUM7SUFuQkcsZUFBZTtJQUVmLHdCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixrRkFBa0Y7SUFDdEYsQ0FBQztJQUVELCtCQUFZLEdBQVosVUFBYSxTQUFTO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLGtGQUFrRjtJQUN0RixDQUFDO0lBRUQsdUJBQUksR0FBSixVQUFLLElBQUksRUFBQyxJQUFJO1FBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQTFCRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOzJDQUNJO0lBR3ZCO1FBREMsUUFBUTs4Q0FDYTtJQU5MLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0FnQzVCO0lBQUQsZUFBQztDQWhDRCxBQWdDQyxDQWhDcUMsRUFBRSxDQUFDLFNBQVMsR0FnQ2pEO2tCQWhDb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBibG9ja19JZDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgcG9zWDogbnVtYmVyID0gMDsgICAgICAgICAgICAgICAvL+WcsOWbvuWdl+eahFjlnZDmoIdcclxuICAgIHBvc1k6IG51bWJlciA9IDA7ICAgICAgICAgICAgICAgLy/lnLDlm77lnZfnmoRZ5Z2Q5qCHXHJcbiAgICBkaXJlY3Rpb246IHN0cmluZyA9IFwiXCI7ICAgICAgICAgIC8v5Zyw5Zu+5Z2X55qE5pa55ZCRXHJcbiAgICAvLyBvbkxvYWQgKCkge31cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuYmxvY2tfSWQgPSBcIlwiO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGlyZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpcmFjdGlvbihkaXJlY3Rpb24pe1xyXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gZGlyZWN0aW9uOyAgIFxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGlyZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQocG9zWCxwb3NZKXtcclxuICAgICAgICB0aGlzLnBvc1ggPSBwb3NYO1xyXG4gICAgICAgIHRoaXMucG9zWSA9IHBvc1k7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Reduce.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'ca599IU5hFEYYrzoN59YOpT', 'Reduce'); -// Script/Reduce.ts - -"use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var NewClass = /** @class */ (function (_super) { - __extends(NewClass, _super); - function NewClass() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.Block_Color = []; - _this.level = null; - return _this; - // update (dt) {} - } - // LIFE-CYCLE CALLBACKS: - NewClass.prototype.onLoad = function () { - }; - NewClass.prototype.start = function () { - }; - __decorate([ - property({ type: [cc.SpriteFrame], tooltip: "方块颜色图片" }) - ], NewClass.prototype, "Block_Color", void 0); - __decorate([ - property(cc.Label) - ], NewClass.prototype, "level", void 0); - NewClass = __decorate([ - ccclass - ], NewClass); - return NewClass; -}(cc.Component)); -exports.default = NewClass; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxSZWR1Y2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUUsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBc0MsNEJBQVk7SUFBbEQ7UUFBQSxxRUF1QkM7UUFwQkcsaUJBQVcsR0FBMkIsRUFBRSxDQUFDO1FBSXpDLFdBQUssR0FBYSxJQUFJLENBQUM7O1FBZXZCLGlCQUFpQjtJQUNyQixDQUFDO0lBZEcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47SUFFQSxDQUFDO0lBQ0Qsd0JBQUssR0FBTDtJQUVBLENBQUM7SUFiRDtRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUMsUUFBUSxFQUFDLENBQUM7aURBQ1o7SUFJekM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzsyQ0FDSTtJQVBOLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0F1QjVCO0lBQUQsZUFBQztDQXZCRCxBQXVCQyxDQXZCcUMsRUFBRSxDQUFDLFNBQVMsR0F1QmpEO2tCQXZCb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlNwcml0ZUZyYW1lXSwgdG9vbHRpcDpcIuaWueWdl+minOiJsuWbvueJh1wifSlcclxuICAgIEJsb2NrX0NvbG9yIDogQXJyYXk8Y2MuU3ByaXRlRnJhbWU+ID0gW107XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGxldmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuXHJcbiAgICB9XHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG4gICAgXHJcblxyXG5cclxuXHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/NumberToImage.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '669f4SuSl9ORqawBcbwCNpG', 'NumberToImage'); -// Script/NumberToImage.ts - -"use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var NumberToImage = /** @class */ (function (_super) { - __extends(NumberToImage, _super); - function NumberToImage() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.fontUI = null; - return _this; - // static calculateAndConvert(num1: number, num2: number, operator: '+' | '-' | '*' | '/', spriteFrames: SpriteFrame[]): Node[] { - // let result: number; - // switch (operator) { - // case '+': - // result = num1 + num2; - // break; - // case '-': - // result = num1 - num2; - // break; - // case '*': - // result = num1 * num2; - // break; - // case '/': - // result = num1 / num2; - // break; - // default: - // throw new Error('不支持的运算符'); - // } - // // 处理结果为小数的情况,这里简单取整 - // result = Math.floor(result); - // return this.numberToImageNodes(result, spriteFrames); - // } - // update (dt) {} - } - NumberToImage_1 = NumberToImage; - // LIFE-CYCLE CALLBACKS: - NumberToImage.prototype.onLoad = function () { - if (this.fontUI != null) { - NumberToImage_1.font = this.fontUI; - } - }; - //第一个参数 数字, 第二个参数 数字间距 第三个参数 占位宽度 第四个参数 目标节点 - NumberToImage.numberToImageNodes = function (number, width, posX, name, targetNode, middle) { - if (middle === void 0) { middle = false; } - var numStr = number.toString(); - var cha = 0; - if (number > 99) - cha = -posX; - else if (number < 10) - cha = posX; - if (targetNode.children.length > 0) - targetNode.removeAllChildren(); - for (var i = 0; i < numStr.length; i++) { - var digit = parseInt(numStr[i], 10); - var node = new cc.Node(); - var sprite = node.addComponent(cc.Sprite); - // debugger; - sprite.spriteFrame = this.font._spriteFrames[name + digit + ""]; - // 将节点添加到目标节点下 - node.x = i * width + cha; - node.parent = targetNode; - } - if (middle) { - targetNode.x = targetNode.x - targetNode.children.length * (width - 15) / 2; - } - }; - NumberToImage.getTimeMargin = function (number, width, name, targetNode) { - var timeArr = []; - var total = 0; - total = number; - var hour = 0; - hour = parseInt((total / 3600) + ""); //计算整数小时数 - var afterHour = total - hour * 60 * 60; //取得算出小时数后剩余的秒数 - var min = parseInt((afterHour / 60) + ""); //计算整数分 - var m = "" + min; - if (min < 10) - m = "0" + min; - var afterMin = total - hour * 60 * 60 - min * 60; //取得算出分后剩余的秒数 - var miao = afterMin + ""; - if (afterMin < 10) - miao = "0" + afterMin; - var result = m + miao; - for (var i = 0; i < result.length; i++) { - var digit = parseInt(result[i], 10); - timeArr.push(digit); - } - if (targetNode.children.length > 0) { - for (var i = 0; i < targetNode.children.length; i++) { - targetNode.children[i].getComponent(cc.Sprite).spriteFrame = this.font._spriteFrames[name + timeArr[i] + ""]; - } - } - else { - for (var i = 0; i < 4; i++) { - var node = new cc.Node(); - var sprite = node.addComponent(cc.Sprite); - var digit = timeArr[i]; - // debugger; - sprite.spriteFrame = this.font._spriteFrames[name + digit + ""]; - // 将节点添加到目标节点下 - node.x = i * width; - if (i > 1) - node.x += 35; - node.parent = targetNode; - } - } - }; - var NumberToImage_1; - NumberToImage.font = null; - __decorate([ - property(cc.SpriteAtlas) - ], NumberToImage.prototype, "fontUI", void 0); - NumberToImage = NumberToImage_1 = __decorate([ - ccclass - ], NumberToImage); - return NumberToImage; -}(cc.Component)); -exports.default = NumberToImage; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxOdW1iZXJUb0ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQTJDLGlDQUFZO0lBQXZEO1FBQUEscUVBeUdDO1FBdEdHLFlBQU0sR0FBbUIsSUFBSSxDQUFDOztRQTZFOUIsaUlBQWlJO1FBQ2pJLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLDBDQUEwQztRQUMxQyxRQUFRO1FBRVIsMkJBQTJCO1FBQzNCLG1DQUFtQztRQUNuQyw0REFBNEQ7UUFDNUQsSUFBSTtRQUVKLGlCQUFpQjtJQUNyQixDQUFDO3NCQXpHb0IsYUFBYTtJQU05Qix3QkFBd0I7SUFFeEIsOEJBQU0sR0FBTjtRQUNJLElBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUM7WUFDbkIsZUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUVELGdEQUFnRDtJQUN6QyxnQ0FBa0IsR0FBekIsVUFBMEIsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQWtCLEVBQUMsTUFBc0I7UUFBdEIsdUJBQUEsRUFBQSxjQUFzQjtRQUMx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Q0FBQztJQUZ2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO2lEQUNLO0lBSGIsYUFBYTtRQURqQyxPQUFPO09BQ2EsYUFBYSxDQXlHakM7SUFBRCxvQkFBQztDQXpHRCxBQXlHQyxDQXpHMEMsRUFBRSxDQUFDLFNBQVMsR0F5R3REO2tCQXpHb0IsYUFBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnVtYmVyVG9JbWFnZSBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZUF0bGFzKVxyXG4gICAgZm9udFVJOiBjYy5TcHJpdGVBdGxhcyA9IG51bGw7XHJcblxyXG4gICAgc3RhdGljIGZvbnQ6YW55ID0gbnVsbDtcclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgaWYodGhpcy5mb250VUkgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIE51bWJlclRvSW1hZ2UuZm9udCA9IHRoaXMuZm9udFVJO1xyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcblxyXG4gICAgLy/nrKzkuIDkuKrlj4LmlbAgIOaVsOWtl++8jCDnrKzkuozkuKrlj4LmlbAgIOaVsOWtl+mXtOi3nSAg56ys5LiJ5Liq5Y+C5pWwIOWNoOS9jeWuveW6piAg56ys5Zub5Liq5Y+C5pWwIOebruagh+iKgueCuVxyXG4gICAgc3RhdGljIG51bWJlclRvSW1hZ2VOb2RlcyhudW1iZXIsIHdpZHRoLCBwb3NYLCBuYW1lICx0YXJnZXROb2RlOmNjLk5vZGUsbWlkZGxlOmJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IG51bVN0ciA9IG51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgIGxldCBjaGEgPSAwOyBcclxuICAgICAgICBpZihudW1iZXIgPiA5OSkgY2hhICA9IC1wb3NYXHJcbiAgICAgICAgZWxzZSBpZihudW1iZXIgPCAxMCkgY2hhICA9IHBvc1hcclxuICAgICAgICBpZih0YXJnZXROb2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHRhcmdldE5vZGUucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVN0ci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkaWdpdCA9IHBhcnNlSW50KG51bVN0cltpXSwgMTApO1xyXG4gICAgICAgICAgICBjb25zdCBub2RlID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICAgICAgY29uc3Qgc3ByaXRlID0gbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgICAgIHNwcml0ZS5zcHJpdGVGcmFtZSA9IHRoaXMuZm9udC5fc3ByaXRlRnJhbWVzW25hbWUgKyBkaWdpdCArIFwiXCJdO1xyXG4gICAgICAgICAgICAvLyDlsIboioLngrnmt7vliqDliLDnm67moIfoioLngrnkuItcclxuICAgICAgICAgICAgbm9kZS54ID0gaSAqIHdpZHRoICsgY2hhO1xyXG4gICAgICAgICAgICBub2RlLnBhcmVudCA9IHRhcmdldE5vZGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKG1pZGRsZSl7XHJcbiAgICAgICAgICAgIHRhcmdldE5vZGUueCA9IHRhcmdldE5vZGUueCAtIHRhcmdldE5vZGUuY2hpbGRyZW4ubGVuZ3RoICogKHdpZHRoLTE1KSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRUaW1lTWFyZ2luKG51bWJlciwgd2lkdGgsIG5hbWUgLHRhcmdldE5vZGU6Y2MuTm9kZSkge1xyXG4gICAgICAgIGxldCB0aW1lQXJyID0gW107XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IG51bWJlcjtcclxuICAgICAgICBsZXQgaG91ciA9IDA7XHJcbiAgICAgICAgaG91ciA9IHBhcnNlSW50KCh0b3RhbCAvIDM2MDApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDlsI/ml7bmlbBcclxuICAgICAgICBsZXQgYWZ0ZXJIb3VyID0gdG90YWwgLSBob3VyICogNjAgKiA2MDsvL+WPluW+l+eul+WHuuWwj+aXtuaVsOWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaW4gPSBwYXJzZUludCgoYWZ0ZXJIb3VyIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgbGV0IG0gPSBcIlwiICsgbWluOyAgXHJcblxyXG4gICAgICAgIGlmKG1pbiA8IDEwKSBtID0gXCIwXCIrbWluO1xyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gaG91ciAqIDYwICogNjAgLSBtaW4gKiA2MDsvL+WPluW+l+eul+WHuuWIhuWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaWFvID0gYWZ0ZXJNaW4gKyBcIlwiO1xyXG5cclxuICAgICAgICBpZihhZnRlck1pbiA8IDEwKSBtaWFvID0gXCIwXCIgKyBhZnRlck1pbjtcclxuXHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IG0gKyBtaWFvO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpZ2l0ID0gcGFyc2VJbnQocmVzdWx0W2ldLCAxMCk7XHJcbiAgICAgICAgICAgIHRpbWVBcnIucHVzaChkaWdpdCk7XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgIGlmKHRhcmdldE5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0Tm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0Tm9kZS5jaGlsZHJlbltpXS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMuZm9udC5fc3ByaXRlRnJhbWVzW25hbWUgKyB0aW1lQXJyW2ldICsgXCJcIl07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0OyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgY2MuTm9kZSgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3ByaXRlID0gbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRpZ2l0ID0gdGltZUFycltpXTtcclxuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICAgICAgc3ByaXRlLnNwcml0ZUZyYW1lID0gdGhpcy5mb250Ll9zcHJpdGVGcmFtZXNbbmFtZSArIGRpZ2l0ICsgXCJcIl07XHJcbiAgICAgICAgICAgICAgICAvLyDlsIboioLngrnmt7vliqDliLDnm67moIfoioLngrnkuItcclxuICAgICAgICAgICAgICAgIG5vZGUueCA9IGkgKiB3aWR0aDtcclxuICAgICAgICAgICAgICAgIGlmKGkgPiAxKSBub2RlLnggKz0gMzU7XHJcbiAgICAgICAgICAgICAgICBub2RlLnBhcmVudCA9IHRhcmdldE5vZGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8vIHN0YXRpYyBjYWxjdWxhdGVBbmRDb252ZXJ0KG51bTE6IG51bWJlciwgbnVtMjogbnVtYmVyLCBvcGVyYXRvcjogJysnIHwgJy0nIHwgJyonIHwgJy8nLCBzcHJpdGVGcmFtZXM6IFNwcml0ZUZyYW1lW10pOiBOb2RlW10ge1xyXG4gICAgLy8gICAgIGxldCByZXN1bHQ6IG51bWJlcjtcclxuICAgIC8vICAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgJysnOlxyXG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0ID0gbnVtMSArIG51bTI7XHJcbiAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgIC8vICAgICAgICAgY2FzZSAnLSc6XHJcbiAgICAvLyAgICAgICAgICAgICByZXN1bHQgPSBudW0xIC0gbnVtMjtcclxuICAgIC8vICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgLy8gICAgICAgICBjYXNlICcqJzpcclxuICAgIC8vICAgICAgICAgICAgIHJlc3VsdCA9IG51bTEgKiBudW0yO1xyXG4gICAgLy8gICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgJy8nOlxyXG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0ID0gbnVtMSAvIG51bTI7XHJcbiAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgIC8vICAgICAgICAgZGVmYXVsdDpcclxuICAgIC8vICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcign5LiN5pSv5oyB55qE6L+Q566X56ymJyk7XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICAvLyDlpITnkIbnu5PmnpzkuLrlsI/mlbDnmoTmg4XlhrXvvIzov5nph4znroDljZXlj5bmlbRcclxuICAgIC8vICAgICByZXN1bHQgPSBNYXRoLmZsb29yKHJlc3VsdCk7XHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMubnVtYmVyVG9JbWFnZU5vZGVzKHJlc3VsdCwgc3ByaXRlRnJhbWVzKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lU2NlbmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFFQTtBQUVBO0FBRUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4vLyBjYy5DbGFzcyh7XHJcbi8vICAgICBleHRlbmRzOiBjYy5Db21wb25lbnQsXHJcbi8vICAgICBwcm9wZXJ0aWVzOiB7XHJcbi8vICAgICAgICAgbG9jYWxUZXN0OiB7XHJcbi8vICAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4vLyAgICAgICAgICAgICB0b29sdGlwOiAn5pys5Zyw5rWL6K+V5pe25Yu+6YCJ77yM6YG/5YWNdHpfdXJs5ZKMQ29uZmlndXJl5oql6ZSZ77yM5o+Q5Lqk5YmN5Yu+5o6JJ1xyXG4vLyAgICAgICAgIH0sXHJcbi8vICAgICAgICAgY2xpZW50VGVzdDoge1xyXG4vLyAgICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcclxuLy8gICAgICAgICAgICAgdG9vbHRpcDogJ+WuouaIt+err+a1i+ivleaXtuWLvumAie+8jOWxleekuueJiOacrOagh+iusOaWueS+v+a1i+ivleWMuuWIhu+8jOS4iue6v+WJjeWLvuaOiSdcclxuLy8gICAgICAgICB9LFxyXG4vLyAgICAgICAgIGNsaWVudFRlc3RWZXJzaW9uOiB7XHJcbi8vICAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxyXG4vLyAgICAgICAgICAgICB0b29sdGlwOiAn54mI5pys5qCH6K6wJ1xyXG4vLyAgICAgICAgIH0sXHJcbi8vICAgICAgICAgdGVzdFZlcnNpb246IGNjLkxhYmVsLFxyXG4vLyAgICAgICAgIHNjb3JlOiBjYy5MYWJlbCxcclxuLy8gICAgICAgICBkb3VibGVfaGl0OiBjYy5Ob2RlLFxyXG4vLyAgICAgICAgIGFkZDogY2MuTm9kZSxcclxuLy8gICAgICAgICBhZGQyOiBjYy5Ob2RlLFxyXG4vLyAgICAgICAgIGRvdWJsZV90aXRsZTogY2MuTm9kZSxcclxuLy8gICAgICAgICBjb3VudF90aW1lOiBjYy5Ob2RlLFxyXG4vLyAgICAgICAgIGJlZ2luTm9kZTogY2MuTm9kZSxcclxuLy8gICAgICAgICBiYWxsX25vbWFsOiBbY2MuU3ByaXRlRnJhbWVdLFxyXG4vLyAgICAgICAgIGJnX25vbWFsOiBbY2MuU3ByaXRlRnJhbWVdLFxyXG4vLyAgICAgICAgIGJhbGxfbGlnaHQ6IFtjYy5TcHJpdGVGcmFtZV0sXHJcbi8vICAgICAgICAga3VhbmdfRnJhbWU6IFtjYy5TcHJpdGVGcmFtZV0sXHJcbi8vICAgICAgICAgZGFvamlzaGk6IGNjLkxhYmVsLFxyXG4vLyAgICAgICAgIHBhdXNlX2Fubml1OiBjYy5TcHJpdGUsXHJcbi8vICAgICAgICAgbWFzazogY2MuTm9kZSxcclxuXHJcbi8vICAgICAgICAgZmxhc2hVSToge1xyXG4vLyAgICAgICAgICAgICBkZWZhdWx0OiBudWxsLFxyXG4vLyAgICAgICAgICAgICB0eXBlOiBjYy5TcHJpdGVBdGxhc1xyXG4vLyAgICAgICAgIH0sXHJcbi8vICAgICB9LFxyXG5cclxuLy8gICAgIG9uTG9hZCgpIHtcclxuXHJcblxyXG4vLyAgICAgfSxcclxuXHJcbi8vICAgICB1cGRhdGUoZHQpIHtcclxuXHJcbi8vICAgICB9LFxyXG5cclxuLy8gfSk7Il19 //------QC-SOURCE-SPLIT------ (function() { @@ -6558,12 +6275,16 @@ var SceneManager = /** @class */ (function (_super) { MiniGameSdk_1.MiniGameSdk.API.showToast("体力值减少"); cc.fx.GameTool.setUserHealth(-1, function (data) { }); - var data = { - time: Map_1.default._instance.count_Time, - add_Time: Map_1.default._instance.add_Time, - result: "give_up" - }; - cc.fx.GameTool.shushu_Track("finish_stage", data); + if (Map_1.default._instance.count_Time) { + var count_Time = Map_1.default._instance.count_Time; + var add_Time = Map_1.default._instance.add_Time; + var data = { + time: count_Time, + add_Time: add_Time, + result: "give_up" + }; + cc.fx.GameTool.shushu_Track("finish_stage", data); + } } this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl").setTouch(false); cc.fx.AudioManager._instance.playEffect("zhuan1", null); @@ -6707,7 +6428,184 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTY2VuZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkJBQWdDO0FBQ2hDLGlEQUFnRDtBQUUxQyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUEwQyxnQ0FBWTtJQUF0RDtRQUFBLHFFQW1RQztRQWhRRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFHdkIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFJdEIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyx5REFBeUQ7UUFDekQsbURBQW1EO1FBRW5ELFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQU8sR0FBVyxFQUFFLENBQUM7O0lBaU96QixDQUFDO0lBN05HLHdCQUF3QjtJQUV4Qiw2QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLFVBQVUsQ0FBQztZQUNQLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUc7Z0JBQ3RDLElBQUksR0FBRyxFQUFFO29CQUNMLDZDQUE2QztvQkFDN0MsT0FBTztpQkFDVjtnQkFDRCxxQ0FBcUM7WUFDekMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFYixDQUFDO0lBRUQsK0JBQVEsR0FBUjtRQUFBLGlCQVVDO1FBVEcsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLElBQU0sSUFBSSxHQUFHLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDOUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBQyxHQUFHLEVBQUUsV0FBMkI7WUFDckUsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2pDLE9BQU87YUFDVjtZQUNELEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDNUcsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsMENBQW1CLEdBQW5CO1FBQUEsaUJBYUM7UUFaRyxJQUFNLElBQUksR0FBRyxVQUFVLENBQUM7UUFDeEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBQyxHQUFHLEVBQUUsTUFBMEI7WUFDekUsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLE9BQU87YUFDVjtZQUVELEtBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO1lBQzlCLEtBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixxRUFBcUU7UUFDekUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsd0NBQWlCLEdBQWpCO1FBQ0ksSUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxRQUFRLEVBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxDQUFDLENBQUM7WUFDNUIsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0IsT0FBTyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUVELHNDQUFlLEdBQWY7UUFDSSxJQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0Isc0RBQXNEO1lBQ3RELElBQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxDQUFDLENBQUM7WUFDNUIsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0IsT0FBTyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDhCQUFPLEdBQVA7UUFDSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsRUFBRSxDQUFDOztZQUN2QixhQUFhO1lBQ2IsSUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLDBDQUFHLENBQUMsTUFBSyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUQsSUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLDBDQUFHLENBQUMsTUFBSyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUQsT0FBTyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDRCQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsZ0NBQVMsR0FBVDtRQUNJLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUc7WUFDbkMsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUM1QztpQkFBTTtnQkFDSCxxQ0FBcUM7Z0JBQ3JDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3RDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBRUQsaUNBQVUsR0FBVjtRQUNJLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEVBQUM7WUFDekYsSUFBRyxhQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUM7Z0JBQ3ZDLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbkMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLFVBQUMsSUFBSTtnQkFDckMsQ0FBQyxDQUFDLENBQUE7Z0JBQ0YsSUFBSSxJQUFJLEdBQUc7b0JBQ1AsSUFBSSxFQUFDLGFBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVTtvQkFDckMsUUFBUSxFQUFDLGFBQVcsQ0FBQyxTQUFTLENBQUMsUUFBUTtvQkFDdkMsTUFBTSxFQUFDLFNBQVM7aUJBQ25CLENBQUE7Z0JBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBQyxJQUFJLENBQUMsQ0FBQzthQUNwRDtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25HLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxLQUFLLENBQUMsQ0FBQztZQUM1RixFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsVUFBQyxHQUFHLEVBQUUsS0FBSztnQkFDN0MsSUFBSSxHQUFHLEVBQUU7b0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDdEMsT0FBTztpQkFDVjtZQUVMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsVUFBVSxDQUFDO2dCQUNQLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQztJQUdELDJDQUFvQixHQUFwQixVQUFxQixLQUFnQixFQUFFLFFBQW9CO1FBQTNELGlCQXdCQztRQXZCRyxJQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQyxZQUFZO1FBQ25DLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVkLElBQU0sWUFBWSxHQUFHO1lBQ2pCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNkLE9BQU8sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxHQUFHLFVBQVUsRUFBRTtnQkFDL0MsSUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixJQUFJLElBQUksRUFBRTtvQkFFTixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztpQkFDdkI7Z0JBQ0QsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsS0FBSyxFQUFFLENBQUM7YUFDWDtZQUVELElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RCLEtBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3RDO2lCQUFNO2dCQUNILFFBQVEsRUFBRSxDQUFDO2FBQ2Q7UUFDTCxDQUFDLENBQUM7UUFFRixZQUFZLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsYUFBYTtJQUNiLHlDQUFrQixHQUFsQjtRQUNJLElBQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQ2pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUU7WUFDaEMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZ0NBQVMsR0FBVDtRQUNJLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFDO1lBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2hELGFBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUN0QztJQUVMLENBQUM7SUFFRCxpQ0FBVSxHQUFWO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDakQsSUFBRyxhQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQUM7WUFDdkUsYUFBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUVELGtDQUFXLEdBQVgsVUFBWSxJQUFJO1FBQ1osYUFBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvRSxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUN6QixVQUFVLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkQsVUFBVSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ25ELFVBQVUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNsRCxVQUFVLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0UsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ2xELENBQUM7SUFFRCwrQkFBUSxHQUFSO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9FLElBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFDO1lBQ3BFLFVBQVUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoRixJQUFHLElBQUksQ0FBQyxPQUFPLElBQUksUUFBUTtnQkFDekIsYUFBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztpQkFDL0IsSUFBRyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVE7Z0JBQzlCLGFBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7aUJBQy9CLElBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPO2dCQUM3QixhQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQztJQUlELG1DQUFZLEdBQVo7UUFDSSxhQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxTQUFTLEdBQUcsYUFBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckcsSUFBSSxTQUFTLEdBQUcsYUFBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEcsSUFBSSxRQUFRLEdBQUcsYUFBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckcsSUFBRyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVE7WUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM1RSxJQUFHLElBQUksQ0FBQyxPQUFPLElBQUksUUFBUTtZQUFFLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pGLElBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPO1lBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEYsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDakYsQ0FBQztJQUVELDZCQUFNLEdBQU4sVUFBUSxFQUFFO0lBRVYsQ0FBQztJQS9QRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOytDQUNJO0lBR3ZCO1FBREMsUUFBUTs4Q0FDYztJQUd2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO2dEQUNLO0lBR3ZCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0RBQ0s7SUFHdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztvREFDUztJQUczQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOytDQUNJO0lBSXRCO1FBREMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBQyxNQUFNLEVBQUMsQ0FBQztxREFDVjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUM7cURBQ1Y7SUF6Qm5CLFlBQVk7UUFEaEMsT0FBTztPQUNhLFlBQVksQ0FtUWhDO0lBQUQsbUJBQUM7Q0FuUUQsQUFtUUMsQ0FuUXlDLEVBQUUsQ0FBQyxTQUFTLEdBbVFyRDtrQkFuUW9CLFlBQVkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjZW5lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHlcclxuICAgIHRleHQ6IHN0cmluZyA9ICdoZWxsbyc7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmcmVlemU6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgaGFtbWVyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hZ2ljX3dhbmQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgcGF1c2U6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOlwi5pa55Z2X5pWw57uEXCJ9KVxyXG4gICAgQmxvY2tfQXJyYXkgOiBBcnJheTxjYy5QcmVmYWI+ID0gW107XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuWimeWjgeaVsOe7hFwifSlcclxuICAgIFdhbGxfUHJlZmFiIDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgYnRuTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICBjYWxsQmFjazogYW55O1xyXG5cclxuICAgIFxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICBjYy5nYW1lLnNldEZyYW1lUmF0ZSg2Myk7IFxyXG4gICAgICAgIHRoaXMuY2hhbmdlQmcoKTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcign6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma/lpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNoYW5nZUJnKCl7XHJcbiAgICAgICAgbGV0IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDgpICsgMTtcclxuICAgICAgICBjb25zdCBwYXRoID0gJ2JnL2JnJyArIG51bWJlcjtcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChwYXRoLCBjYy5TcHJpdGVGcmFtZSwgKGVyciwgc3ByaXRlRnJhbWU6IGNjLlNwcml0ZUZyYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9veiDjOaZr+WbvuWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwiYmdcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBzcHJpdGVGcmFtZTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGxvYWRQYXJ0aWNsZUVmZmVjdHMoKSB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdQYXJ0aWNsZSc7XHJcbiAgICAgICAgY2MucmVzb3VyY2VzLmxvYWREaXIocGF0aCwgY2MuUGFydGljbGVBc3NldCwgKGVyciwgYXNzZXRzOiBjYy5QYXJ0aWNsZUFzc2V0W10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L2957KS5a2Q54m55pWI5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucGFydGljbGVFZmZlY3RzID0gYXNzZXRzO1xyXG4gICAgICAgICAgICB0aGlzLnNldFBhcnRpY2xlU29ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygn57KS5a2Q54m55pWI5Yqg6L295oiQ5Yqf77yM5YWx5Yqg6L295LqGJywgdGhpcy5wYXJ0aWNsZUVmZmVjdHMubGVuZ3RoLCAn5Liq57KS5a2Q54m55pWIJyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0V2FsbFByZWZhYlNvcnQoKSB7XHJcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBbJ2Rvd24nLCAnZG93bkxlZnQnLCAnZG93blJpZ2h0JywgJ2xlZnQnLCdyaWdodCcsJ3VwJywndXBMZWZ0JywndXBSaWdodCddO1xyXG4gICAgICAgIHRoaXMuV2FsbF9QcmVmYWIuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEEgPSBvcmRlci5pbmRleE9mKGEubmFtZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QiA9IG9yZGVyLmluZGV4T2YoYi5uYW1lKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QSA9PT0gLTEpIHJldHVybiAxO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhCID09PSAtMSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXhBIC0gaW5kZXhCO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIHNldFBhcnRpY2xlU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsndG9wJywgJ2JvdCcsICdyaWcnLCAnbGVmJ107XHJcbiAgICAgICAgdGhpcy5wYXJ0aWNsZUVmZmVjdHMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhhLm5hbWUuc3Vic3RyKDAsMyksYi5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEIgPSBvcmRlci5pbmRleE9mKGIubmFtZS5zdWJzdHIoMCwzKSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEEgPT09IC0xKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QiA9PT0gLTEpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRTb3J0KCl7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOS7juWQjeensOS4reaPkOWPluaVsOWtl+mDqOWIhlxyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gcGFyc2VJbnQoYS5uYW1lLm1hdGNoKC9cXGQrLyk/LlswXSB8fCAnMCcsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IHBhcnNlSW50KGIubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudW1iZXJBIC0gbnVtYmVyQjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf5YiH5o2i5YiwIEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgaWYodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICBpZihNYXBDb25yb2xlci5faW5zdGFuY2UuZ2FtZVN0YXJ0ID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOWHj+WwkVwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGltZTpNYXBDb25yb2xlci5faW5zdGFuY2UuY291bnRfVGltZSwgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBhZGRfVGltZTpNYXBDb25yb2xlci5faW5zdGFuY2UuYWRkX1RpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OlwiZ2l2ZV91cFwiXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJmaW5pc2hfc3RhZ2VcIixkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgZGVzdHJveU5vZGVzSW5GcmFtZXMobm9kZXM6IGNjLk5vZGVbXSwgY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcclxuICAgICAgICBjb25zdCBCQVRDSF9TSVpFID0gMTA7IC8vIOavj+W4p+mUgOavgeeahOiKgueCueaVsOmHj1xyXG4gICAgICAgIGxldCBpbmRleCA9IDA7XHJcblxyXG4gICAgICAgIGNvbnN0IGRlc3Ryb3lCYXRjaCA9ICgpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICAgICAgd2hpbGUgKGluZGV4IDwgbm9kZXMubGVuZ3RoICYmIGNvdW50IDwgQkFUQ0hfU0laRSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW2luZGV4XTtcclxuICAgICAgICAgICAgICAgIGlmIChub2RlKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgY291bnQrKztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgbm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZShkZXN0cm95QmF0Y2gsIDYpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGRlc3Ryb3lCYXRjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOaUuei/m+WQjueahOWIh+aNouWcuuaZr+aWueazlVxyXG4gICAgc3dpdGNoVG9FbXB0eVNjZW5lKCkge1xyXG4gICAgICAgIGNvbnN0IGFsbE5vZGVzID0gY2MuZGlyZWN0b3IuZ2V0U2NlbmUoKS5jaGlsZHJlbjtcclxuICAgICAgICB0aGlzLmRlc3Ryb3lOb2Rlc0luRnJhbWVzKGFsbE5vZGVzLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUGF1c2UoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9saXR0bGVcIixudWxsKTtcclxuICAgICAgICBpZih0aGlzLnBhdXNlLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUGF1c2UoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9saXR0bGVcIixudWxsKTtcclxuICAgICAgICB0aGlzLnBhdXNlLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuYWN0aXZlID0gZmFsc2U7IFxyXG4gICAgICAgIGlmKE1hcENvbnJvbGVyLl9pbnN0YW5jZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB9IFxyXG4gICAgfVxyXG5cclxuICAgIG9wZW5Qcm9wQnV5KG5hbWUpe1xyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5idG5OYW1lID0gbmFtZTtcclxuICAgICAgICBsZXQgcHJvcFdpbmRvdyA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpO1xyXG4gICAgICAgIHByb3BXaW5kb3cuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiZnJlZXplXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJoYW1tZXJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcIm1hZ2ljXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJidXlfQnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShuYW1lKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrQnRuKCl7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsbnVsbCk7XHJcbiAgICAgICAgbGV0IHByb3BXaW5kb3cgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKTtcclxuICAgICAgICBpZihwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiYnV5X0J0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCl7XHJcbiAgICAgICAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImJ1eV9CdG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgaWYodGhpcy5idG5OYW1lID09IFwiZnJlZXplXCIpXHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuYnV5RnJlZXplKCk7XHJcbiAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmJ0bk5hbWUgPT0gXCJoYW1tZXJcIilcclxuICAgICAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5idXlIYW1tZXIoKTtcclxuICAgICAgICAgICAgICBlbHNlIGlmKHRoaXMuYnRuTmFtZSA9PSBcIm1hZ2ljXCIpXHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuYnV5TWFnaWMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBjbG9zZVByb3BCdXkoKXtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICBsZXQgZnJlZXplQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSBNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY0J0blwiKTtcclxuICAgICAgICBpZih0aGlzLmJ0bk5hbWUgPT0gXCJmcmVlemVcIikgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLmJ0bk5hbWUgPT0gXCJoYW1tZXJcIikgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7IFxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5idG5OYW1lID09IFwibWFnaWNcIikgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTY2VuZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkJBQWdDO0FBQ2hDLGlEQUFnRDtBQUUxQyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUEwQyxnQ0FBWTtJQUF0RDtRQUFBLHFFQXVRQztRQXBRRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFHdkIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFJdEIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyx5REFBeUQ7UUFDekQsbURBQW1EO1FBRW5ELFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQU8sR0FBVyxFQUFFLENBQUM7O0lBcU96QixDQUFDO0lBak9HLHdCQUF3QjtJQUV4Qiw2QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLFVBQVUsQ0FBQztZQUNQLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUc7Z0JBQ3RDLElBQUksR0FBRyxFQUFFO29CQUNMLDZDQUE2Qztv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Q0F2UXlDLEVBQUUsQ0FBQyxTQUFTLEdBdVFyRDtrQkF2UW9CLFlBQVkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjZW5lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHlcclxuICAgIHRleHQ6IHN0cmluZyA9ICdoZWxsbyc7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmcmVlemU6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgaGFtbWVyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hZ2ljX3dhbmQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgcGF1c2U6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOlwi5pa55Z2X5pWw57uEXCJ9KVxyXG4gICAgQmxvY2tfQXJyYXkgOiBBcnJheTxjYy5QcmVmYWI+ID0gW107XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuWimeWjgeaVsOe7hFwifSlcclxuICAgIFdhbGxfUHJlZmFiIDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgYnRuTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICBjYWxsQmFjazogYW55O1xyXG5cclxuICAgIFxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICBjYy5nYW1lLnNldEZyYW1lUmF0ZSg2Myk7IFxyXG4gICAgICAgIHRoaXMuY2hhbmdlQmcoKTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcign6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma/lpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNoYW5nZUJnKCl7XHJcbiAgICAgICAgbGV0IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDgpICsgMTtcclxuICAgICAgICBjb25zdCBwYXRoID0gJ2JnL2JnJyArIG51bWJlcjtcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChwYXRoLCBjYy5TcHJpdGVGcmFtZSwgKGVyciwgc3ByaXRlRnJhbWU6IGNjLlNwcml0ZUZyYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9veiDjOaZr+WbvuWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwiYmdcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBzcHJpdGVGcmFtZTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGxvYWRQYXJ0aWNsZUVmZmVjdHMoKSB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdQYXJ0aWNsZSc7XHJcbiAgICAgICAgY2MucmVzb3VyY2VzLmxvYWREaXIocGF0aCwgY2MuUGFydGljbGVBc3NldCwgKGVyciwgYXNzZXRzOiBjYy5QYXJ0aWNsZUFzc2V0W10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L2957KS5a2Q54m55pWI5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucGFydGljbGVFZmZlY3RzID0gYXNzZXRzO1xyXG4gICAgICAgICAgICB0aGlzLnNldFBhcnRpY2xlU29ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygn57KS5a2Q54m55pWI5Yqg6L295oiQ5Yqf77yM5YWx5Yqg6L295LqGJywgdGhpcy5wYXJ0aWNsZUVmZmVjdHMubGVuZ3RoLCAn5Liq57KS5a2Q54m55pWIJyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0V2FsbFByZWZhYlNvcnQoKSB7XHJcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBbJ2Rvd24nLCAnZG93bkxlZnQnLCAnZG93blJpZ2h0JywgJ2xlZnQnLCdyaWdodCcsJ3VwJywndXBMZWZ0JywndXBSaWdodCddO1xyXG4gICAgICAgIHRoaXMuV2FsbF9QcmVmYWIuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEEgPSBvcmRlci5pbmRleE9mKGEubmFtZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QiA9IG9yZGVyLmluZGV4T2YoYi5uYW1lKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QSA9PT0gLTEpIHJldHVybiAxO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhCID09PSAtMSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXhBIC0gaW5kZXhCO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIHNldFBhcnRpY2xlU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsndG9wJywgJ2JvdCcsICdyaWcnLCAnbGVmJ107XHJcbiAgICAgICAgdGhpcy5wYXJ0aWNsZUVmZmVjdHMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhhLm5hbWUuc3Vic3RyKDAsMyksYi5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEIgPSBvcmRlci5pbmRleE9mKGIubmFtZS5zdWJzdHIoMCwzKSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEEgPT09IC0xKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QiA9PT0gLTEpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRTb3J0KCl7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOS7juWQjeensOS4reaPkOWPluaVsOWtl+mDqOWIhlxyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gcGFyc2VJbnQoYS5uYW1lLm1hdGNoKC9cXGQrLyk/LlswXSB8fCAnMCcsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IHBhcnNlSW50KGIubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudW1iZXJBIC0gbnVtYmVyQjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf5YiH5o2i5YiwIEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgaWYodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICBpZihNYXBDb25yb2xlci5faW5zdGFuY2UuZ2FtZVN0YXJ0ID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOWHj+WwkVwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlLmNvdW50X1RpbWUpe1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb3VudF9UaW1lID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLmNvdW50X1RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFkZF9UaW1lID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLmFkZF9UaW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lOmNvdW50X1RpbWUsICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZF9UaW1lOmFkZF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ6XCJnaXZlX3VwXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcInVwXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGRlc3Ryb3lOb2Rlc0luRnJhbWVzKG5vZGVzOiBjYy5Ob2RlW10sIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XHJcbiAgICAgICAgY29uc3QgQkFUQ0hfU0laRSA9IDEwOyAvLyDmr4/luKfplIDmr4HnmoToioLngrnmlbDph49cclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG5cclxuICAgICAgICBjb25zdCBkZXN0cm95QmF0Y2ggPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgICAgICAgIHdoaWxlIChpbmRleCA8IG5vZGVzLmxlbmd0aCAmJiBjb3VudCA8IEJBVENIX1NJWkUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tpbmRleF07XHJcbiAgICAgICAgICAgICAgICBpZiAobm9kZSkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IG5vZGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoZGVzdHJveUJhdGNoLCA2KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBkZXN0cm95QmF0Y2goKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDmlLnov5vlkI7nmoTliIfmjaLlnLrmma/mlrnms5VcclxuICAgIHN3aXRjaFRvRW1wdHlTY2VuZSgpIHtcclxuICAgICAgICBjb25zdCBhbGxOb2RlcyA9IGNjLmRpcmVjdG9yLmdldFNjZW5lKCkuY2hpbGRyZW47XHJcbiAgICAgICAgdGhpcy5kZXN0cm95Tm9kZXNJbkZyYW1lcyhhbGxOb2RlcywgKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblBhdXNlKCl7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfbGl0dGxlXCIsbnVsbCk7XHJcbiAgICAgICAgaWYodGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCl7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBjbG9zZVBhdXNlKCl7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfbGl0dGxlXCIsbnVsbCk7XHJcbiAgICAgICAgdGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IGZhbHNlOyBcclxuICAgICAgICBpZihNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IGZhbHNlKXtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgfSBcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUHJvcEJ1eShuYW1lKXtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYnRuTmFtZSA9IG5hbWU7XHJcbiAgICAgICAgbGV0IHByb3BXaW5kb3cgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKTtcclxuICAgICAgICBwcm9wV2luZG93LmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImZyZWV6ZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiaGFtbWVyXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiYnV5X0J0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUobmFtZSkuYWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjbGlja0J0bigpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGxldCBwcm9wV2luZG93ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIik7XHJcbiAgICAgICAgaWYocHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImJ1eV9CdG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJidXlfQnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMuYnRuTmFtZSA9PSBcImZyZWV6ZVwiKVxyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLmJ1eUZyZWV6ZSgpO1xyXG4gICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5idG5OYW1lID09IFwiaGFtbWVyXCIpXHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuYnV5SGFtbWVyKCk7XHJcbiAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmJ0bk5hbWUgPT0gXCJtYWdpY1wiKVxyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLmJ1eU1hZ2ljKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgY2xvc2VQcm9wQnV5KCl7XHJcbiAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IE1hcENvbnJvbGVyLl9pbnN0YW5jZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgbGV0IGhhbW1lckJ0biA9IE1hcENvbnJvbGVyLl9pbnN0YW5jZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcImRlc3Ryb3lCdG5cIik7XHJcbiAgICAgICAgbGV0IG1hZ2ljQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwibWFnaWNCdG5cIik7XHJcbiAgICAgICAgaWYodGhpcy5idG5OYW1lID09IFwiZnJlZXplXCIpIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIGVsc2UgaWYodGhpcy5idG5OYW1lID09IFwiaGFtbWVyXCIpIGhhbW1lckJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpOyBcclxuICAgICAgICBlbHNlIGlmKHRoaXMuYnRuTmFtZSA9PSBcIm1hZ2ljXCIpIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcblxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuXHJcbiAgICB9XHJcbn1cclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/MapBlock.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '52958xsurVAp54WMo+xFDo6', 'MapBlock'); +// Script/MapBlock.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.label = null; + _this.block_Id = ''; + // LIFE-CYCLE CALLBACKS: + _this.posX = 0; //地图块的X坐标 + _this.posY = 0; //地图块的Y坐标 + _this.direction = ""; //地图块的方向 + return _this; + // update (dt) {} + } + // onLoad () {} + NewClass.prototype.start = function () { + this.direction = ""; + this.block_Id = ""; + // this.node.getChildByName("num").getComponent(cc.Label).string = this.direction; + }; + NewClass.prototype.setDiraction = function (direction) { + this.direction = direction; + // this.node.getChildByName("num").getComponent(cc.Label).string = this.direction; + }; + NewClass.prototype.init = function (posX, posY) { + this.posX = posX; + this.posY = posY; + }; + __decorate([ + property(cc.Label) + ], NewClass.prototype, "label", void 0); + __decorate([ + property + ], NewClass.prototype, "block_Id", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxNYXBCbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQWdDQztRQTdCRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLGNBQVEsR0FBVyxFQUFFLENBQUM7UUFFdEIsd0JBQXdCO1FBRXhCLFVBQUksR0FBVyxDQUFDLENBQUMsQ0FBZSxTQUFTO1FBQ3pDLFVBQUksR0FBVyxDQUFDLENBQUMsQ0FBZSxTQUFTO1FBQ3pDLGVBQVMsR0FBVyxFQUFFLENBQUMsQ0FBVSxRQUFROztRQW1CekMsaUJBQWlCO0lBQ3JCLENBQUM7SUFuQkcsZUFBZTtJQUVmLHdCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixrRkFBa0Y7SUFDdEYsQ0FBQztJQUVELCtCQUFZLEdBQVosVUFBYSxTQUFTO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLGtGQUFrRjtJQUN0RixDQUFDO0lBRUQsdUJBQUksR0FBSixVQUFLLElBQUksRUFBQyxJQUFJO1FBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQTFCRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOzJDQUNJO0lBR3ZCO1FBREMsUUFBUTs4Q0FDYTtJQU5MLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0FnQzVCO0lBQUQsZUFBQztDQWhDRCxBQWdDQyxDQWhDcUMsRUFBRSxDQUFDLFNBQVMsR0FnQ2pEO2tCQWhDb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBibG9ja19JZDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgcG9zWDogbnVtYmVyID0gMDsgICAgICAgICAgICAgICAvL+WcsOWbvuWdl+eahFjlnZDmoIdcclxuICAgIHBvc1k6IG51bWJlciA9IDA7ICAgICAgICAgICAgICAgLy/lnLDlm77lnZfnmoRZ5Z2Q5qCHXHJcbiAgICBkaXJlY3Rpb246IHN0cmluZyA9IFwiXCI7ICAgICAgICAgIC8v5Zyw5Zu+5Z2X55qE5pa55ZCRXHJcbiAgICAvLyBvbkxvYWQgKCkge31cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuYmxvY2tfSWQgPSBcIlwiO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGlyZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpcmFjdGlvbihkaXJlY3Rpb24pe1xyXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gZGlyZWN0aW9uOyAgIFxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGlyZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQocG9zWCxwb3NZKXtcclxuICAgICAgICB0aGlzLnBvc1ggPSBwb3NYO1xyXG4gICAgICAgIHRoaXMucG9zWSA9IHBvc1k7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Sdk/DouyinEntranceView.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '8a024+q5K9MrpxcaTvucSDB', 'DouyinEntranceView'); +// Script/Sdk/DouyinEntranceView.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DouyinEntranceView = void 0; +var MiniGameSdk_1 = require("./MiniGameSdk"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var DouyinEntranceView = /** @class */ (function (_super) { + __extends(DouyinEntranceView, _super); + function DouyinEntranceView() { + return _super !== null && _super.apply(this, arguments) || this; + } + DouyinEntranceView.prototype.start = function () { + }; + DouyinEntranceView.prototype.update = function (deltaTime) { + }; + DouyinEntranceView.prototype.onCloseClick = function () { + this.node.active = false; + }; + DouyinEntranceView.prototype.onNavigateToDouyinClick = function () { + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.navigateToSidebar(function (success) { + if (success) { + console.log('跳转成功'); + } + else { + console.log('跳转失败'); + } + }); + }; + DouyinEntranceView = __decorate([ + ccclass + ], DouyinEntranceView); + return DouyinEntranceView; +}(cc.Component)); +exports.DouyinEntranceView = DouyinEntranceView; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXERvdXlpbkVudHJhbmNlVmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBSTVDO0lBQXdDLHNDQUFZO0lBQXBEOztJQXVCQSxDQUFDO0lBdEJHLGtDQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsbUNBQU0sR0FBTixVQUFPLFNBQWlCO0lBRXhCLENBQUM7SUFFRCx5Q0FBWSxHQUFaO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvREFBdUIsR0FBdkI7UUFFSSx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFVBQUMsT0FBZ0I7WUFDNUQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QjtpQkFBTTtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBdEJRLGtCQUFrQjtRQUQ5QixPQUFPO09BQ0ssa0JBQWtCLENBdUI5QjtJQUFELHlCQUFDO0NBdkJELEFBdUJDLENBdkJ1QyxFQUFFLENBQUMsU0FBUyxHQXVCbkQ7QUF2QlksZ0RBQWtCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9NaW5pR2FtZVNka1wiO1xyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBjbGFzcyBEb3V5aW5FbnRyYW5jZVZpZXcgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhcnQoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShkZWx0YVRpbWU6IG51bWJlcikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlQ2xpY2soKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTmF2aWdhdGVUb0RvdXlpbkNsaWNrKCkge1xyXG5cclxuICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLm5hdmlnYXRlVG9TaWRlYmFyKChzdWNjZXNzOiBib29sZWFuKSA9PiB7IC8vIOi3s+i9rOWIsOaKlumfs+S+p+i+ueagj1xyXG4gICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOaIkOWKnycpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOWksei0pScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19 //------QC-SOURCE-SPLIT------ (function() { @@ -6898,1275 +6796,6 @@ cc._RF.pop(); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxSYW5rTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSwrQ0FBMEM7QUFDcEMsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFDNUMsS0FBSztBQUVMO0lBQXlDLCtCQUFZO0lBQXJEO1FBQUEscUVBK0hDO1FBN0hHLFlBQU0sR0FBWSxJQUFJLENBQUM7UUFFdkIsY0FBUSxHQUFZLElBQUksQ0FBQztRQUV6QixXQUFLLEdBQWMsSUFBSSxDQUFDOztJQXlINUIsQ0FBQztJQWpIRyw0QkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPO0lBQ1AsMEJBQUksR0FBSjtRQUNJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUUsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsMkJBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJ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QUM7Z0JBQzNDLFVBQVUsQ0FBQztvQkFDUCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3hCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNYO2lCQUNHO2dCQUNBLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUN4RSxVQUFVLENBQUM7b0JBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDWDtRQUVMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQTNIRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQVUsUUFBUTsrQ0FDYjtJQUV2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQVUsV0FBVztpREFDZDtJQUV6QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQVEsUUFBUTs4Q0FDWjtJQU5QLFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0ErSC9CO0lBQUQsa0JBQUM7Q0EvSEQsQUErSEMsQ0EvSHdDLEVBQUUsQ0FBQyxTQUFTLEdBK0hwRDtrQkEvSG9CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IExpc3QgZnJvbSBcIi4vbW9kdWxlL1JhbmtMaXN0L0xpc3RcIjtcclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuLy/mjpLooYzmppxcclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFua01hbmFnZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpICAgICAgICAgIC8v55So5oi35LiK5pa55aS05YOPXHJcbiAgICBQbGF5ZXI6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpICAgICAgICAgIC8v55So5oi35pyA5LiL5pa55Liq5Lq65L+h5oGvXHJcbiAgICBzZWxmTm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuU3ByaXRlKSAgICAgICAgLy/nlKjmiLflpLTlg4/mjaLlm75cclxuICAgIHBob25lOiBjYy5TcHJpdGUgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSByYW5rTGlzdDogTGlzdDsgICAgIC8v5o6S6KGM5qacXHJcbiAgICB0d2VlbjogY2MuVHdlZW48Y2MuTm9kZT47ICAgLy/mnIDkuIrmlrnnlKjmiLflpLTlg4/liqjnlLtcclxuICAgIGxpc3REYXRhOiBhbnk7ICAgICAgICAgICAgICAvL+aAu+WIl+ihqOS/oeaBr1xyXG4gICAgc2VsZkRhdGE6IGFueTsgICAgICAgICAgICAgIC8v6Ieq5bex5L+h5oGvXHJcbiAgICByYW5rTnVtYmVyOiBudW1iZXI7ICAgICAgICAgLy/nlKjmiLfoh6rlt7HmjpLlkI0g5pyJ5Y+v6IO95LiN5Zyo5o6S6KGM5qac5YaFOTkrXHJcbiAgICByYW5rVG90YWw6IG51bWJlcjsgICAgICAgICAgLy/ojrflj5bmjpLooYzmppznlKjmiLfmlbDph48g546w5Zyo5Li6MTAwXHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG4gICAgLy/liJ3lp4vljJbmlbDmja5cclxuICAgIGluaXQoKXtcclxuICAgICAgICB0aGlzLnJhbmtMaXN0ID0gY2MuZmluZChcIlNjcm9sbFZpZXdcIiwgdGhpcy5ub2RlKS5nZXRDb21wb25lbnQoTGlzdCk7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEgPSBbXTtcclxuICAgICAgICB0aGlzLnNlbGZEYXRhID0gbnVsbDtcclxuICAgICAgICB0aGlzLnJhbmtOdW1iZXIgPSAxMDA7XHJcbiAgICAgICAgdGhpcy5yYW5rVG90YWw9IDEwMDtcclxuICAgICAgICB0aGlzLnNlbGZOb2RlLm9wYWNpdHkgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2V0UmFuaygpO1xyXG4gICAgfVxyXG4gICAgLy/osIPnlKjojrflj5bmjpLooYzmppzmjqXlj6NcclxuICAgIGdldFJhbmsoKXtcclxuICAgICAgICBsZXQgZGF0YUZpbGUgPSB7XHJcbiAgICAgICAgICAgIGxlbmd0aDoxMDBcclxuICAgICAgICB9XHJcbiAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFJhbmsoZGF0YUZpbGUsZGF0YSA9PnRoaXMuZ2V0UmFua0RhdGEoZGF0YSkpO1xyXG4gICAgfVxyXG4gICAgLy/lrp7pmYXorr7nva7mjpLooYzmlbDmja5cclxuICAgIGdldFJhbmtEYXRhKGRhdGEpe1xyXG4gICAgICAgIGlmKGRhdGEpe1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0UmFua0RhdGEoZGF0YSx0aGlzLDYpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFBpYyh0aGlzLnNlbGZEYXRhLnBpYyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/ov5Tlm57mjInpkq5cclxuICAgIGJhY2tDbGljaygpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkxvYWRTY2VuZVwiKTtcclxuICAgIH1cclxuICAgIC8v5pyA5LiK5pa555So5oi35Yqo55S7XHJcbiAgICBwbGF5ZXJBY3Rpb24oKXtcclxuICAgICAgICAvLy0yNTQgMzc3ICAyMTAgNDUzXHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB0aW1lID0gMTtcclxuICAgICAgICB0aGlzLnR3ZWVuID0gY2MudHdlZW4odGhpcy5QbGF5ZXIpXHJcbiAgICAgICAgLnRvKDIse3Bvc2l0aW9uOmNjLnYzKDIxNSw1MjUsMCl9KVxyXG4gICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwibnVtYmVyXCIpXHJcbiAgICAgICAgICAgIC5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9ICBwYXJzZUludCh0aW1lKjEwMCArIFwiXCIpICsgXCIlXCI7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB0aW1lID0gKHRoaXMubGlzdERhdGEubGVuZ3RoIC0gdGhpcy5yYW5rTnVtYmVyKS90aGlzLmxpc3REYXRhLmxlbmd0aDtcclxuICAgICAgICBpZih0aGlzLmxpc3REYXRhLmxlbmd0aCA+PSA5OSl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucmFua051bWJlciA+PSA5OSl7XHJcbiAgICAgICAgICAgICAgICB0aW1lID0gKE1hdGgucmFuZG9tKCkqNDkrMSkvMTAwXHJcbiAgICAgICAgICAgICAgICB2YXIgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoTnVtYmVyXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYobWF0Y2hJZCA9PSBudWxsIHx8IG1hdGNoSWQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgICAgICAgICB0aW1lID0gMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYodGhpcy50d2Vlbil0aGlzLnR3ZWVuLnN0b3AoKTtcclxuICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm51bWJlclwiKVxyXG4gICAgICAgICAgICAuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSAgcGFyc2VJbnQodGltZSoxMDAgKyBcIlwiKSArIFwiJVwiO1xyXG4gICAgICAgIH0sIHRpbWUqMjAwMCk7XHJcblxyXG4gICAgfVxyXG4gICAgLy/orr7nva7lpLTlg48gIOWkhOeQhueahOmAu+i+keavlOi+g+Wkmu+8jOS4jeeUqOWFrOWFseexu+eahOS6hlxyXG4gICAgcHVibGljIHNldFBpYyhwaWMpe1xyXG4gICAgICAgIHRoaXMucGhvbmUubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucGhvbmUubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLlBsYXllci5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuUGxheWVyLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwicGhvbmVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgZmV0Y2gocGljKVxyXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBob25lLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBYLUluZm86JywgZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZShwaWMsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBzZWxmLlBsYXllci5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHNlbGYucGhvbmUubm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5waG9uZS5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICAgICAgICAgIHNlbGYuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBzZWxmLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwaG9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwicGhvbmVcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSlcclxuICAgICAgICAgICAgICAgIC5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYucGxheWVyQWN0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBzZWxmLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZWxmLnBsYXllckFjdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxufVxyXG4iXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Window.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '3bad2uyOw5MzLq3b5g9aHn2', 'Window'); -// Script/Window.ts - -"use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var NewClass = /** @class */ (function (_super) { - __extends(NewClass, _super); - function NewClass() { - return _super !== null && _super.apply(this, arguments) || this; - } - // LIFE-CYCLE CALLBACKS: - NewClass.prototype.onLoad = function () { - this.can_Touch = false; - }; - NewClass.prototype.start = function () { - }; - NewClass.prototype.init = function (data) { - var _this = this; - this.can_Touch = false; - this.node.getChildByName("win").active = false; - this.node.getChildByName("lose").active = false; - this.node.getChildByName("finishi").active = false; - this.node.getChildByName(data.result).active = true; - if (data.result == "lose") { - this.setErrLabel(data.code); - } - var target = this.node.getChildByName(data.result); - target.getChildByName("btn").active = false; - target.opacity = 0; - target.scale = 2; - target.getChildByName("tip").opacity = 0; - if (data.result == "win") { - var lianXi = false; - if (cc.fx.GameConfig.GM_INFO.level == 2) - lianXi = true; - target.getChildByName("yes").active = !lianXi; - target.getChildByName("start").active = lianXi; - } - cc.tween(target) - .delay(0.1) - .to(0.25, { opacity: 255, scale: 1 }) - .delay(0.3) - .call(function () { - if (target.name == "lose") { - cc.tween(target.getChildByName("tip")) - .to(0.5, { opacity: 255 }) - .delay(0.5) - .call(function () { - _this.can_Touch = true; - target.getChildByName("btn").active = true; - }) - .start(); - } - else { - _this.can_Touch = true; - target.getChildByName("btn").active = true; - } - }) - .start(); - }; - NewClass.prototype.setErrLabel = function (code) { - var tip = this.node.getChildByName("lose").getChildByName("tip").getComponent(cc.Label); - tip.string = cc.fx.GameConfig.TIP_ERR[code]; - }; - NewClass.prototype.click_Next = function () { - var _this = this; - if (!this.can_Touch) { - return; - } - this.can_Touch = false; - cc.tween(this.node) - .to(0.3, { opacity: 0 }) - .call(function () { - _this.node.active = false; - cc.director.loadScene("GameScene"); - }) - .start(); - }; - NewClass = __decorate([ - ccclass - ], NewClass); - return NewClass; -}(cc.Component)); -exports.default = NewClass; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxXaW5kb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUUsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBc0MsNEJBQVk7SUFBbEQ7O0lBMkVBLENBQUM7SUF4RUcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsd0JBQUssR0FBTDtJQUVBLENBQUM7SUFFRCx1QkFBSSxHQUFKLFVBQUssSUFBSTtRQUFULGlCQXdDQztRQXZDRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwRCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FB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Q0FBQztJQUNiLENBQUM7SUF4RWdCLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0EyRTVCO0lBQUQsZUFBQztDQTNFRCxBQTJFQyxDQTNFcUMsRUFBRSxDQUFDLFNBQVMsR0EyRWpEO2tCQTNFb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgY2FuX1RvdWNoOiBib29sZWFuO1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgdGhpcy5jYW5fVG91Y2ggPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoZGF0YSl7XHJcbiAgICAgICAgdGhpcy5jYW5fVG91Y2ggPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ3aW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibG9zZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJmaW5pc2hpXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShkYXRhLnJlc3VsdCkuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBpZihkYXRhLnJlc3VsdCA9PSBcImxvc2VcIil7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RXJyTGFiZWwoZGF0YS5jb2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHRhcmdldCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShkYXRhLnJlc3VsdCk7XHJcbiAgICAgICAgdGFyZ2V0LmdldENoaWxkQnlOYW1lKFwiYnRuXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRhcmdldC5vcGFjaXR5ID0gMDsgdGFyZ2V0LnNjYWxlID0gMjt0YXJnZXQuZ2V0Q2hpbGRCeU5hbWUoXCJ0aXBcIikub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgaWYoZGF0YS5yZXN1bHQgPT0gXCJ3aW5cIil7XHJcbiAgICAgICAgICAgIHZhciBsaWFuWGkgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID09IDIpIGxpYW5YaSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRhcmdldC5nZXRDaGlsZEJ5TmFtZShcInllc1wiKS5hY3RpdmUgPSAhbGlhblhpO1xyXG4gICAgICAgICAgICB0YXJnZXQuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydFwiKS5hY3RpdmUgPSBsaWFuWGk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLnR3ZWVuKHRhcmdldClcclxuICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgIC50bygwLjI1LHtvcGFjaXR5OjI1NSxzY2FsZToxfSlcclxuICAgICAgICAuZGVsYXkoMC4zKVxyXG4gICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgIGlmKHRhcmdldC5uYW1lID09IFwibG9zZVwiKXtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRhcmdldC5nZXRDaGlsZEJ5TmFtZShcInRpcFwiKSlcclxuICAgICAgICAgICAgICAgIC50bygwLjUse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAgICAgICAgIC5kZWxheSgwLjUpXHJcbiAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbl9Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmdldENoaWxkQnlOYW1lKFwiYnRuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FuX1RvdWNoID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRhcmdldC5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RXJyTGFiZWwoY29kZSl7XHJcbiAgICAgICAgdmFyIHRpcCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aXBcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICB0aXAuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5USVBfRVJSW2NvZGVdO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrX05leHQoKXtcclxuICAgICAgICBpZighdGhpcy5jYW5fVG91Y2gpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2FuX1RvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlKVxyXG4gICAgICAgIC50bygwLjMse29wYWNpdHk6MH0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Wall.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '87a44m5f/pPAKIrsyArSr/V', 'Wall'); -// Script/Wall.ts - -"use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.WallColor = exports.WallType = exports.WallSpecial = void 0; -var Map_1 = require("./Map"); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var WallSpecial; -(function (WallSpecial) { - /*普通门*/ - WallSpecial[WallSpecial["\u666E\u901A\u95E8"] = 0] = "\u666E\u901A\u95E8"; - /*星星门*/ - WallSpecial[WallSpecial["\u661F\u661F\u95E8"] = 1] = "\u661F\u661F\u95E8"; - /*开关门*/ - WallSpecial[WallSpecial["\u5F00\u5173\u95E8"] = 2] = "\u5F00\u5173\u95E8"; - /*冻结门 */ - WallSpecial[WallSpecial["\u51BB\u7ED3\u95E8"] = 3] = "\u51BB\u7ED3\u95E8"; -})(WallSpecial = exports.WallSpecial || (exports.WallSpecial = {})); -var WallType; -(function (WallType) { - /*普通地块 */ - WallType[WallType["\u95E8\u6A2A\u5411\u4E0B"] = 0] = "\u95E8\u6A2A\u5411\u4E0B"; - /*起点地块 */ - WallType[WallType["\u95E8\u6A2A\u5411\u4E0A"] = 1] = "\u95E8\u6A2A\u5411\u4E0A"; - /*湿地 */ - WallType[WallType["\u95E8\u7AD6\u5411\u53F3"] = 2] = "\u95E8\u7AD6\u5411\u53F3"; - /*山峰 */ - WallType[WallType["\u95E8\u7AD6\u5411\u5DE6"] = 3] = "\u95E8\u7AD6\u5411\u5DE6"; - /*终点地块 */ - WallType[WallType["\u5899\u6A2A\u5411\u4E0B"] = 4] = "\u5899\u6A2A\u5411\u4E0B"; - /*息壤 */ - WallType[WallType["\u5899\u6A2A\u5411\u4E0A"] = 5] = "\u5899\u6A2A\u5411\u4E0A"; - /*加固 */ - WallType[WallType["\u5899\u7AD6\u5411\u53F3"] = 6] = "\u5899\u7AD6\u5411\u53F3"; - /*加固 */ - WallType[WallType["\u5899\u7AD6\u5411\u5DE6"] = 7] = "\u5899\u7AD6\u5411\u5DE6"; -})(WallType = exports.WallType || (exports.WallType = {})); -var WallColor; -(function (WallColor) { - /*普通地块 */ - WallColor[WallColor["\u7D2B\u8272"] = 0] = "\u7D2B\u8272"; - /*湿地 */ - WallColor[WallColor["\u9EC4\u8272"] = 1] = "\u9EC4\u8272"; - /*山峰 */ - WallColor[WallColor["\u7EFF\u8272"] = 2] = "\u7EFF\u8272"; - /*终点地块 */ - WallColor[WallColor["\u84DD\u8272"] = 3] = "\u84DD\u8272"; - /*息壤 */ - WallColor[WallColor["\u7C89\u8272"] = 4] = "\u7C89\u8272"; - /*加固 */ - WallColor[WallColor["\u6A58\u9EC4\u8272"] = 5] = "\u6A58\u9EC4\u8272"; - /*加固 */ - WallColor[WallColor["\u9752\u8272"] = 6] = "\u9752\u8272"; - /*加固 */ - WallColor[WallColor["\u767D\u8272"] = 7] = "\u767D\u8272"; - /*普通地块 */ - WallColor[WallColor["\u7EA2\u8272"] = 8] = "\u7EA2\u8272"; - /*普通地块 */ - WallColor[WallColor["\u7070\u8272"] = 9] = "\u7070\u8272"; -})(WallColor = exports.WallColor || (exports.WallColor = {})); -var Wall = /** @class */ (function (_super) { - __extends(Wall, _super); - function Wall() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.number = null; - _this.type = WallType.墙横向下; - _this.special = WallSpecial.普通门; - _this.color = WallColor.紫色; - _this.wall_SpriteFrames = null; - _this.down_SpriteFrames = null; - return _this; - // update (dt) {} - } - // LIFE-CYCLE CALLBACKS: - // onLoad () {} - Wall.prototype.start = function () { - // console.log(this.type); - }; - Wall.prototype.jsonDeepClone = function (obj) { - return JSON.parse(JSON.stringify(obj)); - }; - Wall.prototype.init = function (wall_Info, posX, posY, direction) { - this.wall_Info = this.jsonDeepClone(wall_Info); - // this.open = true; - if (wall_Info == null) { - this.posX = posX; - this.posY = posY; - if (direction) - this.direction = direction; - // console.log("门方向赋值",direction); - if (direction == "up") { - this.node.parent.zIndex = 100 + this.posX - this.posY * 3; - } - else if (direction == "down" || direction == "right" || - direction == "rightdown" || direction == "downright" - || direction == "rightup" || direction == "upright") { - this.node.parent.zIndex = 30 + this.posX - this.posY * 3; - } - else if (direction == "left" || direction == "leftdown" || direction == "downleft") { - this.node.parent.zIndex = 70 + this.posX - this.posY * 3; - } - else - this.node.parent.zIndex = 70 + this.posX - this.posY * 3; - Map_1.default._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id = "Wall"; - //console.log(this.posX,this.posY,MapConroler._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id); - // console.log(this.posX,this.posY,this.node.zIndex); - //this.node.getChildByName("num").getComponent(cc.Label).string = direction; - //this.node.getChildByName("num").getComponent(cc.Label).string = ":" + this.node.parent.zIndex; - } - if (wall_Info != null) { - this.color = wall_Info.color; - this.special = wall_Info.special; - this.initType(); - if (wall_Info.length > 0) { - this.initColor(wall_Info.length); - } - else - this.node.removeComponent("cc.Sprite"); - if (this.posX != null) { - Map_1.default._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id = "Wall"; - //console.log(this.posX,this.posY,MapConroler._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id); - } - } - // setTimeout(() => { - // this.node.getChildByName("num").getComponent(cc.Label).string = ":" + this.node.parent.zIndex; - // }, 1000); - }; - //创建门的颜色 - Wall.prototype.initColor = function (length) { - var direction = this.node.parent.name; - var double = 0; - if (direction == "left" || direction == "right") { - double = 3; - } - // debugger; - if (this.wall_SpriteFrames) { - var name = this.color + "color" + (length + double); - var spriteFrame = this.wall_SpriteFrames._spriteFrames[name]; - this.node.getComponent(cc.Sprite).spriteFrame = spriteFrame; - } - if (this.down_SpriteFrames) { - var name2 = this.color + "down" + (length + double); - var downFrame = this.down_SpriteFrames._spriteFrames[name2]; - this.node.parent.getChildByName("down").getComponent(cc.Sprite).spriteFrame = downFrame; - } - }; - //创建特殊类型门 - Wall.prototype.initType = function () { - switch (this.special) { - case WallSpecial.星星门: - var star = cc.instantiate(Map_1.default._instance.Block_Prop[this.special]); - star.parent = this.node.parent; - // console.log("门的方向",this.direction,"长度",this.wall_Info.length); - // star.scaleX = star.scaleY = 0.5; - if (this.wall_Info.length > 0) { - if (this.direction == "right" || this.direction == "left") { - star.children[this.wall_Info.length + 2].active = true; - } - else if (this.direction == "up" || this.direction == "down") { - star.children[this.wall_Info.length - 1].active = true; - } - } - star.setPosition(this.node.width / 2 + this.node.x, this.node.height / 2 + this.node.y); - break; - case WallSpecial.开关门: - var name = "open" + this.wall_Info.length; - this.openNode = this.node.parent.getChildByName("open").getChildByName(name); - this.openNode.active = true; - if (this.wall_Info.lock == false) { - this.open = true; - this.openNode.children[0].scaleX *= 0.01; - this.openNode.children[1].scaleX *= 0.01; - } - else { - this.open = false; - } - break; - case WallSpecial.冻结门: - var freeze = "freeze" + this.wall_Info.length; - this.freezeNode = this.node.parent.getChildByName("freeze").getChildByName(freeze); - this.freezeNode.active = true; - if (this.wall_Info.freeze) { - this.freezeNode.getChildByName("num").getComponent(cc.Label).string = this.wall_Info.freeze + ""; - } - break; - } - }; - //播放星星门通过 - Wall.prototype.playStarDoor = function () { - if (this.node.parent.getChildByName("star")) { - var star = this.node.parent.getChildByName("star"); - for (var i = 0; i < star.children.length; i++) { - if (star.children[i].active == true) { - var starChild = star.children[i]; - for (var j = 0; j < starChild.children.length; j++) { - starChild.children[j].active = true; - starChild.children[j].getComponent(sp.Skeleton).setAnimation(1, "taopao1", false); - } - } - } - } - }; - //改变开关门状态 - Wall.prototype.changeLock = function () { - this.open = !this.open; - console.log("开关门状态改变", this.open); - if (!this.openNode.active) { - this.openNode.active = true; - } - var fill = this.openNode.children[0].scaleX == 1 ? 0.01 : 1; - if (this.openNode.children[0].scaleX < 0) - fill = -fill; - // console.log("目标",fill); - cc.tween(this.openNode.children[0]) - .to(0.3, { scaleX: this.openNode.children[0].scaleX < 0 ? -fill : fill }) - .call(function () { - // console.log("左边完成"); - }) - .start(); - cc.tween(this.openNode.children[1]) - .to(0.3, { scaleX: this.openNode.children[1].scaleX < 0 ? -fill : fill }) - .call(function () { - // console.log("右边完成"); - }) - .start(); - }; - Wall.prototype.changeFreeze = function () { - var numStr = this.freezeNode.getChildByName("num").getComponent(cc.Label); - var num = parseInt(numStr.string); - num -= 1; - this.freezeNode.getChildByName("num").getComponent(cc.Label).string = num + ""; - if (num == 0) { - this.freezeNode.parent.active = false; - } - }; - Wall.prototype.downDoor = function () { - if (this.openNode) { - if (this.openNode.children[0].scaleX == 1) - return; - } - if (this.freezeNode) { - if (this.freezeNode.active == true) - return; - } - this.node.opacity = 0; - if (this.special == WallSpecial.星星门) { - this.node.parent.getChildByName("star").y -= 10; - } - this.node.parent.getChildByName("down").active = true; - }; - Wall.prototype.upDoor = function () { - if (this.special == WallSpecial.星星门) { - this.node.parent.getChildByName("star").y += 10; - } - this.node.parent.getChildByName("down").active = false; - this.node.opacity = 250; - }; - __decorate([ - property(cc.Label) - ], Wall.prototype, "number", void 0); - __decorate([ - property({ - tooltip: '墙或者门的方向', - type: cc.Enum(WallType), - }) - ], Wall.prototype, "type", void 0); - __decorate([ - property({ - tooltip: '墙或者门的方向', - type: cc.Enum(WallSpecial), - }) - ], Wall.prototype, "special", void 0); - __decorate([ - property({ - tooltip: '门的颜色', - type: cc.Enum(WallColor), - }) - ], Wall.prototype, "color", void 0); - __decorate([ - property(cc.SpriteAtlas) - ], Wall.prototype, "wall_SpriteFrames", void 0); - __decorate([ - property(cc.SpriteAtlas) - ], Wall.prototype, "down_SpriteFrames", void 0); - Wall = __decorate([ - ccclass - ], Wall); - return Wall; -}(cc.Component)); -exports.default = Wall; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxXYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRiw2QkFBZ0M7QUFFMUIsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUMsSUFBWSxXQVNYO0FBVEQsV0FBWSxXQUFXO0lBQ25CLE9BQU87SUFDUCx5RUFBUyxDQUFBO0lBQ1QsT0FBTztJQUNQLHlFQUFTLENBQUE7SUFDVCxPQUFPO0lBQ1AseUVBQVMsQ0FBQTtJQUNULFFBQVE7SUFDUix5RUFBUyxDQUFBO0FBQ2IsQ0FBQyxFQVRXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBU3RCO0FBRUQsSUFBWSxRQWtCWDtBQWxCRCxXQUFZLFFBQVE7SUFFaEIsU0FBUztJQUNULCtFQUFVLENBQUE7SUFDVixTQUFTO0lBQ1QsK0VBQVUsQ0FBQTtJQUNWLE9BQU87SUFDUCwrRUFBVSxDQUFBO0lBQ1YsT0FBTztJQUNQLCtFQUFVLENBQUE7SUFDVixTQUFTO0lBQ1QsK0VBQVUsQ0FBQTtJQUNWLE9BQU87SUFDUCwrRUFBVSxDQUFBO0lBQ1YsT0FBTztJQUNQLCtFQUFVLENBQUE7SUFDVixPQUFPO0lBQ1AsK0VBQVUsQ0FBQTtBQUNkLENBQUMsRUFsQlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFrQm5CO0FBRUQsSUFBWSxTQXFCWDtBQXJCRCxXQUFZLFNBQVM7SUFDakIsU0FBUztJQUNULHlEQUFRLENBQUE7SUFDUixPQUFPO0lBQ1AseURBQVEsQ0FBQTtJQUNSLE9BQU87SUFDUCx5REFBUSxDQUFBO0lBQ1IsU0FBUztJQUNULHlEQUFRLENBQUE7SUFDUixPQUFPO0lBQ1AseURB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LFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUM3QixDQUFDO3lDQUNxQztJQU12QztRQUpDLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRSxNQUFNO1lBQ2YsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQzNCLENBQUM7dUNBQzhCO0lBR2hDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7bURBQ2dCO0lBR3pDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7bURBQ2dCO0lBM0J4QixJQUFJO1FBRHhCLE9BQU87T0FDYSxJQUFJLENBcVB4QjtJQUFELFdBQUM7Q0FyUEQsQUFxUEMsQ0FyUGlDLEVBQUUsQ0FBQyxTQUFTLEdBcVA3QztrQkFyUG9CLElBQUkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbmV4cG9ydCBlbnVtIFdhbGxTcGVjaWFse1xyXG4gICAgLyrmma7pgJrpl6gqL1xyXG4gICAgXCLmma7pgJrpl6hcIiA9IDAsICBcclxuICAgIC8q5pif5pif6ZeoKi9cclxuICAgIFwi5pif5pif6ZeoXCIgPSAxLCAgXHJcbiAgICAvKuW8gOWFs+mXqCovXHJcbiAgICBcIuW8gOWFs+mXqFwiID0gMiwgIFxyXG4gICAgLyrlhrvnu5Ppl6ggKi9cclxuICAgIFwi5Ya757uT6ZeoXCIgPSAzLCAgXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFdhbGxUeXBle1xyXG4gICAgXHJcbiAgICAvKuaZrumAmuWcsOWdlyAqL1xyXG4gICAgXCLpl6jmqKrlkJHkuItcIiA9IDAsICBcclxuICAgIC8q6LW354K55Zyw5Z2XICovXHJcbiAgICBcIumXqOaoquWQkeS4ilwiID0gMSwgIFxyXG4gICAgLyrmub/lnLAgKi9cclxuICAgIFwi6Zeo56uW5ZCR5Y+zXCIgPSAyLCAgXHJcbiAgICAvKuWxseWzsCAqL1xyXG4gICAgXCLpl6jnq5blkJHlt6ZcIiA9IDMsICBcclxuICAgIC8q57uI54K55Zyw5Z2XICovXHJcbiAgICBcIuWimeaoquWQkeS4i1wiID0gNCwgIFxyXG4gICAgLyrmga/lo6QgKi9cclxuICAgIFwi5aKZ5qiq5ZCR5LiKXCIgPSA1LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLlopnnq5blkJHlj7NcIiA9IDYsICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIuWimeerluWQkeW3plwiID0gNywgIFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBXYWxsQ29sb3J7XHJcbiAgICAvKuaZrumAmuWcsOWdlyAqL1xyXG4gICAgXCLntKvoibJcIiA9IDAsICBcclxuICAgIC8q5rm/5ZywICovXHJcbiAgICBcIum7hOiJslwiID0gMSwgIFxyXG4gICAgLyrlsbHls7AgKi9cclxuICAgIFwi57u/6ImyXCIgPSAyLCAgXHJcbiAgICAvKue7iOeCueWcsOWdlyAqL1xyXG4gICAgXCLok53oibJcIiA9IDMsICBcclxuICAgIC8q5oGv5aOkICovXHJcbiAgICBcIueyieiJslwiID0gNCwgIFxyXG4gICAgLyrliqDlm7ogKi9cclxuICAgIFwi5qmY6buE6ImyXCIgPSA1LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLpnZLoibJcIiA9IDYsICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIueZveiJslwiID0gNywgIFxyXG4gICAgLyrmma7pgJrlnLDlnZcgKi9cclxuICAgIFwi57qi6ImyXCIgPSA4LCBcclxuICAgIC8q5pmu6YCa5Zyw5Z2XICovXHJcbiAgICBcIueBsOiJslwiID0gOSwgXHJcbn1cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdhbGwgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIG51bWJlcjogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7XHJcbiAgICAgICAgdG9vbHRpcDogJ+WimeaIluiAhemXqOeahOaWueWQkScsXHJcbiAgICAgICAgdHlwZTogY2MuRW51bShXYWxsVHlwZSksXHJcbiAgICB9KVxyXG4gICAgdHlwZTogV2FsbFR5cGUgPSBXYWxsVHlwZS7lopnmqKrlkJHkuIs7XHJcblxyXG4gICAgQHByb3BlcnR5KHtcclxuICAgICAgICB0b29sdGlwOiAn5aKZ5oiW6ICF6Zeo55qE5pa55ZCRJyxcclxuICAgICAgICB0eXBlOiBjYy5FbnVtKFdhbGxTcGVjaWFsKSxcclxuICAgIH0pXHJcbiAgICBzcGVjaWFsOiBXYWxsU3BlY2lhbCA9IFdhbGxTcGVjaWFsLuaZrumAmumXqDtcclxuXHJcbiAgICBAcHJvcGVydHkoe1xyXG4gICAgICAgIHRvb2x0aXA6ICfpl6jnmoTpopzoibInLFxyXG4gICAgICAgIHR5cGU6IGNjLkVudW0oV2FsbENvbG9yKSxcclxuICAgIH0pXHJcbiAgICBjb2xvcjogV2FsbENvbG9yID0gV2FsbENvbG9yLue0q+iJsjtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuU3ByaXRlQXRsYXMpXHJcbiAgICB3YWxsX1Nwcml0ZUZyYW1lczogY2MuU3ByaXRlQXRsYXMgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVBdGxhcylcclxuICAgIGRvd25fU3ByaXRlRnJhbWVzOiBjYy5TcHJpdGVBdGxhcyA9IG51bGw7XHJcblxyXG5cclxuICAgIHBvc1g6IG51bWJlcjtcclxuICAgIHBvc1k6IG51bWJlcjtcclxuICAgIGRpcmVjdGlvbjogYW55O1xyXG4gICAgd2FsbF9JbmZvOiBhbnk7XHJcbiAgICBvcGVuTm9kZTogY2MuTm9kZTtcclxuICAgIGZyZWV6ZU5vZGU6IGNjLk5vZGU7XHJcbiAgICBvcGVuOmJvb2xlYW47XHJcbiAgICBcclxuXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICAvLyBvbkxvYWQgKCkge31cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy50eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBqc29uRGVlcENsb25lPFQ+KG9iajogVCk6IFQge1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQod2FsbF9JbmZvLCBwb3NYOiBudW1iZXIsIHBvc1k6IG51bWJlciwgZGlyZWN0aW9uOiBhbnkpe1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMud2FsbF9JbmZvID0gdGhpcy5qc29uRGVlcENsb25lKHdhbGxfSW5mbyk7XHJcbiAgICAgICAgLy8gdGhpcy5vcGVuID0gdHJ1ZTtcclxuICAgICAgICBpZih3YWxsX0luZm8gPT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMucG9zWCA9IHBvc1g7XHJcbiAgICAgICAgICAgIHRoaXMucG9zWSA9IHBvc1k7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZihkaXJlY3Rpb24pdGhpcy5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6Zeo5pa55ZCR6LWL5YC8XCIsZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgaWYoZGlyZWN0aW9uID09IFwidXBcIiApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC56SW5kZXggPSAxMDAgKyB0aGlzLnBvc1ggLSB0aGlzLnBvc1kqMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKCBkaXJlY3Rpb24gPT0gXCJkb3duXCIgfHwgZGlyZWN0aW9uID09IFwicmlnaHRcIiB8fCBcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9PSBcInJpZ2h0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25yaWdodFwiXHJcbiAgICAgICAgICAgIHx8IGRpcmVjdGlvbiA9PSBcInJpZ2h0dXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJ1cHJpZ2h0XCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC56SW5kZXggPSAzMCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKCBkaXJlY3Rpb24gPT0gXCJsZWZ0XCJ8fCBkaXJlY3Rpb24gPT0gXCJsZWZ0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25sZWZ0XCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC56SW5kZXggPSA3MCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHRoaXMubm9kZS5wYXJlbnQuekluZGV4ID0gNzAgKyB0aGlzLnBvc1ggLSB0aGlzLnBvc1kqMztcclxuXHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5tYXBCbG9ja3NXYWxsW3RoaXMucG9zWF1bdGhpcy5wb3NZXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCA9IFwiV2FsbFwiO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMucG9zWCx0aGlzLnBvc1ksTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbdGhpcy5wb3NYXVt0aGlzLnBvc1ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5wb3NYLHRoaXMucG9zWSx0aGlzLm5vZGUuekluZGV4KTtcclxuICAgICAgICAgICAgLy90aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkaXJlY3Rpb247XHJcbiAgICAgICAgICAgLy90aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBcIjpcIiArIHRoaXMubm9kZS5wYXJlbnQuekluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih3YWxsX0luZm8gIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSB3YWxsX0luZm8uY29sb3I7XHJcbiAgICAgICAgICAgIHRoaXMuc3BlY2lhbCA9IHdhbGxfSW5mby5zcGVjaWFsO1xyXG4gICAgICAgICAgICB0aGlzLmluaXRUeXBlKCk7XHJcbiAgICAgICAgICAgIGlmKHdhbGxfSW5mby5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdENvbG9yKHdhbGxfSW5mby5sZW5ndGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5ub2RlLnJlbW92ZUNvbXBvbmVudChcImNjLlNwcml0ZVwiKTtcclxuICAgICAgICAgICAgaWYodGhpcy5wb3NYICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbdGhpcy5wb3NYXVt0aGlzLnBvc1ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkID0gXCJXYWxsXCI7XHJcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMucG9zWCx0aGlzLnBvc1ksTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbdGhpcy5wb3NYXVt0aGlzLnBvc1ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI6XCIgKyB0aGlzLm5vZGUucGFyZW50LnpJbmRleDtcclxuICAgICAgICAvLyB9LCAxMDAwKTtcclxuIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu66Zeo55qE6aKc6ImyXHJcbiAgICBpbml0Q29sb3IobGVuZ3RoOiBudW1iZXIpe1xyXG4gICAgICAgIGxldCBkaXJlY3Rpb24gPSB0aGlzLm5vZGUucGFyZW50Lm5hbWU7XHJcbiAgICAgICAgbGV0IGRvdWJsZSA9IDA7XHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwibGVmdFwiICB8fCBkaXJlY3Rpb24gPT0gXCJyaWdodFwiKXtcclxuICAgICAgICAgICAgZG91YmxlID0gMztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgIGlmKHRoaXMud2FsbF9TcHJpdGVGcmFtZXMpe1xyXG4gICAgICAgICAgICBsZXQgbmFtZSA9IHRoaXMuY29sb3IrXCJjb2xvclwiICsgKGxlbmd0aCtkb3VibGUpO1xyXG4gICAgICAgICAgICB2YXIgc3ByaXRlRnJhbWUgPSB0aGlzLndhbGxfU3ByaXRlRnJhbWVzLl9zcHJpdGVGcmFtZXNbbmFtZV07XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHNwcml0ZUZyYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLmRvd25fU3ByaXRlRnJhbWVzKXtcclxuICAgICAgICAgICAgbGV0IG5hbWUyID0gdGhpcy5jb2xvciArIFwiZG93blwiICsgKGxlbmd0aCtkb3VibGUpO1xyXG4gICAgICAgICAgICB2YXIgZG93bkZyYW1lID0gdGhpcy5kb3duX1Nwcml0ZUZyYW1lcy5fc3ByaXRlRnJhbWVzW25hbWUyXTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcImRvd25cIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBkb3duRnJhbWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu654m55q6K57G75Z6L6ZeoXHJcbiAgICBpbml0VHlwZSgpe1xyXG4gICAgICAgIHN3aXRjaCh0aGlzLnNwZWNpYWwpe1xyXG4gICAgICAgICAgICBjYXNlIFdhbGxTcGVjaWFsLuaYn+aYn+mXqDpcclxuICAgICAgICAgICAgICAgIGxldCBzdGFyID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbdGhpcy5zcGVjaWFsXSk7XHJcbiAgICAgICAgICAgICAgICBzdGFyLnBhcmVudCA9IHRoaXMubm9kZS5wYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIumXqOeahOaWueWQkVwiLHRoaXMuZGlyZWN0aW9uLFwi6ZW/5bqmXCIsdGhpcy53YWxsX0luZm8ubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgIC8vIHN0YXIuc2NhbGVYID0gc3Rhci5zY2FsZVkgPSAwLjU7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLndhbGxfSW5mby5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmRpcmVjdGlvbiA9PSBcInJpZ2h0XCIgfHwgdGhpcy5kaXJlY3Rpb24gPT0gXCJsZWZ0XCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFyLmNoaWxkcmVuW3RoaXMud2FsbF9JbmZvLmxlbmd0aCArIDJdLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5kaXJlY3Rpb24gPT0gXCJ1cFwiIHx8IHRoaXMuZGlyZWN0aW9uID09IFwiZG93blwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Rhci5jaGlsZHJlblt0aGlzLndhbGxfSW5mby5sZW5ndGggLSAxXS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHN0YXIuc2V0UG9zaXRpb24odGhpcy5ub2RlLndpZHRoLzIrdGhpcy5ub2RlLngsdGhpcy5ub2RlLmhlaWdodC8yK3RoaXMubm9kZS55KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFdhbGxTcGVjaWFsLuW8gOWFs+mXqDpcclxuICAgICAgICAgICAgICAgIGxldCBuYW1lID0gXCJvcGVuXCIgKyB0aGlzLndhbGxfSW5mby5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5Ob2RlID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIm9wZW5cIikuZ2V0Q2hpbGRCeU5hbWUobmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5Ob2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLndhbGxfSW5mby5sb2NrID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYICo9IDAuMDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuTm9kZS5jaGlsZHJlblsxXS5zY2FsZVggKj0gMC4wMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBXYWxsU3BlY2lhbC7lhrvnu5Ppl6g6XHJcbiAgICAgICAgICAgICAgICBsZXQgZnJlZXplID0gXCJmcmVlemVcIiArIHRoaXMud2FsbF9JbmZvLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplTm9kZSA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuZ2V0Q2hpbGRCeU5hbWUoZnJlZXplKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplTm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy53YWxsX0luZm8uZnJlZXplKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZU5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxfSW5mby5mcmVlemUrXCJcIjtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9IFxyXG4gICAgfVxyXG5cclxuICAgIC8v5pKt5pS+5pif5pif6Zeo6YCa6L+HXHJcbiAgICBwbGF5U3RhckRvb3IoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwic3RhclwiKSl7XHJcbiAgICAgICAgICAgIGxldCBzdGFyID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInN0YXJcIik7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHN0YXIuY2hpbGRyZW4ubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYoc3Rhci5jaGlsZHJlbltpXS5hY3RpdmUgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHN0YXJDaGlsZCA9IHN0YXIuY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBqPTA7IGo8c3RhckNoaWxkLmNoaWxkcmVuLmxlbmd0aDsgaisrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhckNoaWxkLmNoaWxkcmVuW2pdLmFjdGl2ZSA9IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhckNoaWxkLmNoaWxkcmVuW2pdLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ0YW9wYW8xXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy/mlLnlj5jlvIDlhbPpl6jnirbmgIFcclxuICAgIGNoYW5nZUxvY2soKXtcclxuICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5byA5YWz6Zeo54q25oCB5pS55Y+YXCIsdGhpcy5vcGVuKTtcclxuICAgICAgICBpZighdGhpcy5vcGVuTm9kZS5hY3RpdmUpe1xyXG4gICAgICAgICAgICB0aGlzLm9wZW5Ob2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gIFxyXG5cclxuICAgICAgICBsZXQgZmlsbCA9IHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYPT0xID8gMC4wMToxO1xyXG4gICAgICAgIGlmKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYIDwgMCkgZmlsbCA9IC1maWxsO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi55uu5qCHXCIsZmlsbCk7XHJcblxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0pXHJcbiAgICAgICAgLnRvKDAuMywge3NjYWxlWDogdGhpcy5vcGVuTm9kZS5jaGlsZHJlblswXS5zY2FsZVggPCAwPy1maWxsOmZpbGx9KVxyXG4gICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bem6L655a6M5oiQXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMV0pXHJcbiAgICAgICAgLnRvKDAuMywge3NjYWxlWDogdGhpcy5vcGVuTm9kZS5jaGlsZHJlblsxXS5zY2FsZVggPCAwPy1maWxsOmZpbGx9KVxyXG4gICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z6L655a6M5oiQXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlRnJlZXplKCl7XHJcbiAgICAgICAgbGV0IG51bVN0ciA9IHRoaXMuZnJlZXplTm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgIGxldCBudW0gPSBwYXJzZUludChudW1TdHIuc3RyaW5nKTtcclxuICAgICAgICBudW0gLT0gMTtcclxuICAgICAgICB0aGlzLmZyZWV6ZU5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBudW0rXCJcIjtcclxuICAgICAgICBpZihudW0gPT0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMuZnJlZXplTm9kZS5wYXJlbnQuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRvd25Eb29yKCl7XHJcbiAgICAgICAgaWYodGhpcy5vcGVuTm9kZSl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYID09IDEpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMuZnJlZXplTm9kZSl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZnJlZXplTm9kZS5hY3RpdmUgPT0gdHJ1ZSlcclxuICAgICAgICAgICAgICAgIHJldHVybjsgXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm5vZGUub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgaWYodGhpcy5zcGVjaWFsID09IFdhbGxTcGVjaWFsLuaYn+aYn+mXqCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyXCIpLnkgLT0gMTA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJkb3duXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdXBEb29yKCl7XHJcbiAgICAgICAgaWYodGhpcy5zcGVjaWFsID09IFdhbGxTcGVjaWFsLuaYn+aYn+mXqCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyXCIpLnkgKz0gMTA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJkb3duXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Sdk/MiniGameManager.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '0d272pXVChFDqi5FXTD2JlR', 'MiniGameManager'); -// Script/Sdk/MiniGameManager.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MiniGameManager = void 0; -var MiniGameSdk_1 = require("./MiniGameSdk"); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var EWechatAD; -(function (EWechatAD) { - EWechatAD["CUMSTOM_01"] = "adunit-f7c2417eb2c2e473"; -})(EWechatAD || (EWechatAD = {})); -var MiniGameManager = /** @class */ (function (_super) { - __extends(MiniGameManager, _super); - function MiniGameManager() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.entranceView = null; - return _this; - } - MiniGameManager_1 = MiniGameManager; - Object.defineProperty(MiniGameManager, "instance", { - get: function () { - if (!MiniGameManager_1._instance) { - MiniGameManager_1._instance = new MiniGameManager_1(); - } - return MiniGameManager_1._instance; - }, - enumerable: false, - configurable: true - }); - MiniGameManager.prototype.start = function () { - // 禁用游戏入口视图 - // this.entranceView.active = false; - // MiniGameSdk.API.getUserProfile(this.setUserId); - // cc.fx.GameTool.setUserInfo(""); - this.onGetLoginCode(); - // 尝试获取游戏入口按钮,如果存在则直接返回,不进行后续操作 - // let buttonEntrance = this.node.getChildByName('Btns')?.getChildByName('Button_EntranceView'); - // if (buttonEntrance) { - // return; - // } - // 如果是字节跳动小游戏环境,检查侧边栏是否存在 - if (MiniGameSdk_1.MiniGameSdk.isBytedance()) { - //抖音环境,检测侧边栏存在 - MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.checkSideBar(function (success) { - // 根据侧边栏存在性激活或禁用游戏入口按钮 - // buttonEntrance.active = success; - }); - } - else { - // 非抖音小游戏环境,直接激活游戏入口按钮 - // 非抖音环境,正常显示按钮 - // buttonEntrance.active = true; - } - // 设置监听器,以处理来自侧边栏的交互事件 - MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.listenFromSidebar(function (success) { - // 如果交互成功,显示奖励提示 - if (success) { - MiniGameSdk_1.MiniGameSdk.API.showToast('侧边栏奖励', 5); - } - }); - }; - MiniGameManager.prototype.update = function (deltaTime) { - }; - /** - * 弹出广告横幅。 - * 此方法用于加载并显示广告横幅。它首先加载指定广告位的横幅广告,然后显示广告。 - * 加载广告和显示广告是通过MiniGameSdk.AdvertManager的实例方法来实现的。 - * - * @remarks - * 此方法提供了两种显示横幅广告的方式: - * 1. 默认方式:调用showBanner方法显示广告,系统会自动选择显示位置。 - * 2. 指定位置方式:可以通过传入额外的参数来指定广告显示在屏幕的顶部或底部,或者通过坐标指定显示位置。 - * - * 示例代码中注释掉了两种显示广告的具体方法,可以根据实际需求选择使用。 - */ - MiniGameManager.prototype.onShowBanner = function () { - // 加载指定广告位的横幅广告。 - MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadBanner('adunit-4e7ef467e3eaab51'); - // 默认方式显示横幅广告。 - // 方法1:默认调用 - MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showBanner(); - // 示例:指定屏幕底部正中显示横幅广告。 - // 方法2:指定屏幕顶部或底部正中 - // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', MiniGameSdk.EAdBannerLocation.BOTTOM); - // 示例:通过坐标指定位置显示横幅广告。 - // 方法2:指定坐标 - // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', { top: 10, left: 10 }); - }; - /** - * 隐藏广告横幅的函数。 - * - * 该函数调用MiniGameSdk.AdvertManager实例的方法,用于隐藏广告横幅。 - * 当需要暂时停止展示广告或用户主动请求隐藏广告时,可以调用此函数。 - * - * @remarks - * 此函数不接受任何参数,也不返回任何值。 - * 它单纯地触发广告横幅的隐藏操作,具体实现依赖于AdvertManager的实现。 - */ - MiniGameManager.prototype.onHideBanner = function () { - MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideBanner(); - }; - /** - * 显示插屏广告的函数。 - * - * 此函数调用MiniGameSdk.AdvertManager实例的方法,以显示一个指定的插屏广告。 - * 它使用了硬编码的广告单元标识符,这意味着它专为特定的广告位设计。 - * 在实际应用中,可能需要根据应用的配置或用户的特定条件来动态选择广告单元标识符。 - */ - MiniGameManager.prototype.onShowInterstitial = function () { - MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showInterstitial('adunit-eadd67851d3050ad'); - }; - /** - * 调用广告管理器加载并展示自定义广告。 - * 此方法首先通过广告管理器的实例加载指定的自定义广告单元,然后展示这个自定义广告。 - * 加载和展示广告是广告管理系统中的常见操作,这里通过两步分别完成加载和展示的过程, - * 以确保广告在展示前正确且充分地被加载。 - */ - MiniGameManager.prototype.onShowCustom = function () { - // 加载指定的自定义广告单元。 - MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadCustom(EWechatAD.CUMSTOM_01); - // 展示已加载的自定义广告。 - MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showCustom(EWechatAD.CUMSTOM_01); - }; - /** - * 隐藏自定义广告。 - * - * 本函数调用MiniGameSdk.AdvertManager.instance.hideCustom()来隐藏自定义广告。 - * 这是对接广告管理系统的一部分,用于控制广告的显示与隐藏。 - * 在需要隐藏自定义广告的场景下,调用此函数即可实现相应功能。 - */ - MiniGameManager.prototype.onHideCustom = function () { - MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideCustom(EWechatAD.CUMSTOM_01); - }; - /** - * 触发显示视频广告的函数。 - * 通过调用MiniGameSdk.AdvertManager.instance.showVideo方法,显示一个视频广告,并根据用户观看广告的情况执行相应的逻辑。 - * - * @remarks - * 此函数首先传入一个广告单元ID,用于标识要显示的视频广告。然后传入一个回调函数,该回调函数在用户观看广告后被调用,无论用户是完成了观看、拒绝了观看还是观看过程中发生了错误。 - * 回调函数接收两个参数:一个是用户观看广告的结果,另一个是用户观看的广告数量。根据观看结果的不同,显示不同的提示信息。 - */ - MiniGameManager.prototype.onShowVideo = function () { - // 广告单元ID,用于标识要显示的视频广告 - // 广告单元ID的样例 - //抖音形如: 1re3nfqkmy81m4m8ge - //微信形如: adunit-a7718f6e195e42fe - MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showVideo('1re3nfqkmy81m4m8ge', function (res, count) { - // 输出用户观看的广告数量 - console.log('用户看的视频广告个数是:', count); - // 根据用户观看广告的结果,执行不同的逻辑 - switch (res) { - case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ACCEPT: - // 用户完成了广告观看,显示奖励提示 - MiniGameSdk_1.MiniGameSdk.API.showToast('用户看完广告,可以奖励'); - break; - case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.REJECT: - // 用户拒绝了广告观看,显示不奖励提示 - MiniGameSdk_1.MiniGameSdk.API.showToast('用户拒绝掉广告,不奖励'); - break; - case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ERROR: - // 广告播放发生错误,显示错误提示 - MiniGameSdk_1.MiniGameSdk.API.showToast('播放广告发生错误,不奖励'); - break; - default: - // 其他情况,不作处理 - break; - } - }); - }; - /** - * 引导用户分享应用给朋友。 - * - * 通过调用MiniGameSdk的API分享功能,向用户的朋友圈发送邀请,邀请他们一起玩游戏。 - * 这是一个重要的推广手段,可以增加应用的曝光度和用户量。 - * - * @remarks - * 此方法中调用的API依赖于特定的小游戏平台,因此在不同的平台上可能需要不同的实现。 - */ - MiniGameManager.prototype.onShare = function () { - MiniGameSdk_1.MiniGameSdk.API.shareAppToFriends('来玩游戏吧'); - }; - /** - * 显示一个toast提示。 - * - * 通过调用MiniGameSdk的API方法来显示一个简短的提示信息。toast是一种轻量级的提示方式,用于在界面上短暂地展示一些信息,不影响用户操作。 - * 这里使用了固定的提示文本 '这是一个toast',在实际应用中,可以根据需要动态设置提示文本。 - */ - MiniGameManager.prototype.onShowToast = function () { - MiniGameSdk_1.MiniGameSdk.API.showToast('这是一个toast'); - }; - /** - * 触发设备振动功能。 - * - * 该方法用于调用MiniGameSdk提供的API,以实现设备的振动功能。当需要提醒用户或提供触觉反馈时,可以调用此方法。 - * 例如,在游戏或应用中,当用户完成特定操作或发生特定事件时,可以通过振动给予用户反馈。 - * - * @remarks - * 此方法无参数,也不返回任何值。 - */ - MiniGameManager.prototype.onVirbrate = function () { - MiniGameSdk_1.MiniGameSdk.API.vibrate(); - }; - /** - * 重新启动游戏实例。 - * - * 此函数调用MiniGameSdk中的API重新启动游戏。重新启动操作可能是为了初始化游戏环境、重置游戏状态或处理其他需要重启的场景。 - * 调用此函数后,游戏将会重新开始,当前的游戏状态将会被清除。 - * - * @remarks - * 此函数不接受任何参数。 - * - * @returns 无返回值。 - */ - MiniGameManager.prototype.onReboot = function () { - MiniGameSdk_1.MiniGameSdk.API.reboot(); - }; - /** - * 当前函数用于在迷你游戏中实现退出功能。 - * 它调用了MiniGameSdk提供的API方法来触发退出操作。 - * 该方法通常在需要结束当前迷你游戏或返回到上一级菜单时被调用。 - */ - MiniGameManager.prototype.onExit = function () { - MiniGameSdk_1.MiniGameSdk.API.exit(); - }; - /** - * 显示分享菜单。 - * - * 通过调用MiniGameSdk的API方法,触发显示分享菜单的操作。此函数旨在提供一个统一的入口, - * 以便在需要时轻松调用分享功能,而无需直接与具体的SDK接口交互。 - * - * @remarks - * 此方法不接受任何参数,也不返回任何值。 - */ - MiniGameManager.prototype.onShowShareMenu = function () { - MiniGameSdk_1.MiniGameSdk.API.showShareMenu(); - }; - /** - * 导航到指定的小游戏。 - * - * 本函数用于触发导航到一个特定的小游戏。这需要提供目标小游戏的ID, - * 以便系统能够正确地将用户重定向到目标小游戏。 - * - * 注意:这里的'xxx'是占位符,实际使用时需要替换为具体的小游戏ID。 - */ - MiniGameManager.prototype.onNavigate = function () { - MiniGameSdk_1.MiniGameSdk.API.navigateTo('xxx'); // xxx替换为你的小游戏id - }; - /** - * 激活字节跳动入口视图。 - * - * 此方法用于将字节跳动入口视图设置为活跃状态。当需要在用户界面中显示字节跳动的入口时, - * 可以调用此方法来激活相应的视图元素,使其对用户可见。 - */ - MiniGameManager.prototype.onBytedanceEntranceView = function () { - // this.entranceView.active = true; - }; - /** - * 请求登录代码 - * - * 本函数用于触发小程序的登录流程,获取微信或头条等第三方平台的登录代码。 - * 这些代码可以用于后续的用户身份验证和数据同步流程。 - */ - MiniGameManager.prototype.onGetLoginCode = function () { - // 调用MiniGameSdk的API登录方法,传入一个回调函数处理登录结果 - MiniGameSdk_1.MiniGameSdk.API.login(function (code, anonymousCode) { - // 打印微信或头条的登录代码 - console.log('Wechat Or Bytedance Code:', code); - // 打印头条的匿名登录代码 - // console.log('Bytedance Anonymous Code:', anonymousCode); - if (code) { - // cc.fx.GameTool.getUserId(code, data => this.setUserId(data)); - } - }); - }; - // setUserId(data){ - // cc.fx.GameConfig.GM_INFO.userId = data.data.userId; - // MiniGameSdk.API.getUserInfo(this.setUserInfo); - // } - // setUserInfo(data){ - // console.log("获取到的用户信息",data.userInfo); - // var useData = { - // "gameId": cc.fx.GameConfig.GM_INFO.gameId, - // "userId": cc.fx.GameConfig.GM_INFO.userId, - // "nickName":data.userInfo.nickName, - // "pic": data.userInfo.avatarUrl - // } - // console.log("即将上传的用户信息:",cc.fx.GameConfig.GM_INFO.userId,data.userInfo.nickName,data.userInfo.avatarUrl); - // console.log("Post数据:",useData); - // cc.fx.GameTool.setUserInfo(useData,(res)=>{ - // console.log("上传成功:",res); - // }); - // } - /** - * 创建并显示游戏圈按钮 - * - * 本函数通过调用MiniGameSdk的GameClub实例方法,实现游戏俱乐部的创建和显示。 - * 它首先配置俱乐部的图标类型和位置大小,然后创建俱乐部,最后显示俱乐部。 - * 这样做是为了在小游戏内创建并展示一个游戏俱乐部的图标,供玩家加入或互动。 - */ - MiniGameManager.prototype.onCreateClub = function () { - // 配置俱乐部图标为绿色,设置图标的位置为顶部200像素,左侧0像素 - MiniGameSdk_1.MiniGameSdk.GameClub.instance.create(MiniGameSdk_1.MiniGameSdk.EGameClubIcon.GREEN, { top: 200, left: 0 }, { width: 50, height: 50 }); - // 显示游戏俱乐部图标 - MiniGameSdk_1.MiniGameSdk.GameClub.instance.show(); - }; - var MiniGameManager_1; - __decorate([ - property(cc.Node) - ], MiniGameManager.prototype, "entranceView", void 0); - MiniGameManager = MiniGameManager_1 = __decorate([ - ccclass - ], MiniGameManager); - return MiniGameManager; -}(cc.Component)); -exports.MiniGameManager = MiniGameManager; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBQzVDLElBQUssU0FFSjtBQUZELFdBQUssU0FBUztJQUNWLG1EQUFzQyxDQUFBO0FBQzFDLENBQUMsRUFGSSxTQUFTLEtBQVQsU0FBUyxRQUViO0FBR0Q7SUFBcUMsbUNBQVk7SUFBakQ7UUFBQSxxRUEyVUM7UUF4VUcsa0JBQVksR0FBWSxJQUFJLENBQUM7O0lBd1VqQyxDQUFDO3dCQTNVWSxlQUFlO0lBa0J4QixzQkFBVywyQkFBUTthQUFuQjtZQUNJLElBQUksQ0FBQyxpQkFBZSxDQUFDLFNBQVMsRUFBRTtnQkFDNUIsaUJBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQkFBZSxFQUFFLENBQUM7YUFDckQ7WUFDRCxPQUFPLGlCQUFlLENBQUMsU0FBUyxDQUFDO1FBQ3JDLENBQUM7OztPQUFBO0lBRUQsK0JBQUssR0FBTDtRQUNJLFdBQVc7UUFDWCxvQ0FBb0M7UUFDcEMsa0RBQWtEO1FBQ2xELGtDQUFrQztRQUNsQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsK0JBQStCO1FBQy9CLGdHQUFnRztRQUNoRyx3QkFBd0I7UUFDeEIsY0FBYztRQUNkLElBQUk7UUFFSix5QkFBeUI7UUFFekIsSUFBSSx5QkFBVyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzNCLGNBQWM7WUFDZCx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxVQUFDLE9BQWdCO2dCQUN2RCxzQkFBc0I7Z0JBQ3RCLG1DQUFtQztZQUN2QyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxzQkFBc0I7WUFDdEIsZUFBZTtZQUNmLGdDQUFn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LHFCQUFxQjtJQUNyQiw2Q0FBNkM7SUFDN0Msc0JBQXNCO0lBQ3RCLHFEQUFxRDtJQUNyRCxxREFBcUQ7SUFDckQsNkNBQTZDO0lBQzdDLHlDQUF5QztJQUV6QyxRQUFRO0lBQ1IsZ0hBQWdIO0lBQ2hILHNDQUFzQztJQUN0QyxrREFBa0Q7SUFDbEQsb0NBQW9DO0lBQ3BDLFVBQVU7SUFDVixJQUFJO0lBRUo7Ozs7OztPQU1HO0lBQ0gsc0NBQVksR0FBWjtRQUNJLG1DQUFtQztRQUNuQyx5QkFBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUNoQyx5QkFBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQy9CLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQ3JCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQixZQUFZO1FBQ1oseUJBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7O0lBdlVEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7eURBQ1c7SUFIcEIsZUFBZTtRQUQzQixPQUFPO09BQ0ssZUFBZSxDQTJVM0I7SUFBRCxzQkFBQztDQTNVRCxBQTJVQyxDQTNVb0MsRUFBRSxDQUFDLFNBQVMsR0EyVWhEO0FBM1VZLDBDQUFlIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vTWluaUdhbWVTZGtcIjtcclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuZW51bSBFV2VjaGF0QUQge1xyXG4gICAgQ1VNU1RPTV8wMSA9ICdhZHVuaXQtZjdjMjQxN2ViMmMyZTQ3MydcclxufVxyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGNsYXNzIE1pbmlHYW1lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBlbnRyYW5jZVZpZXc6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgLyoqXHJcbiAgICAgKiDlvIDlp4vmuLjmiI/liY3nmoTliJ3lp4vljJbmk43kvZzjgIJcclxuICAgICAqIOS4u+imgei0n+i0o+ajgOafpeW5tuWkhOeQhua4uOaIj+WFpeWPo+aMiemSrueahOa/gOa0u+eKtuaAge+8jOS7peWPiuWcqOeJueWumueOr+Wig+S4i+iuvue9ruS+p+i+ueagj+eahOebkeWQrOWZqOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5pa55rOV6aaW5YWI5bCG5ri45oiP5YWl5Y+j6KeG5Zu+6K6+5Li66Z2e5r+A5rS754q25oCB77yM5Lul5YeG5aSH6L+b6KGM5ZCO57ut55qE5qOA5p+l5ZKM6K6+572u44CCXHJcbiAgICAgKiDlpoLmnpzlvZPliY3njq/looPmmK/mipbpn7PlsI/muLjmiI/vvIzkvJrmo4Dmn6XmmK/lkKblrZjlnKjkvqfovrnmoI/vvIzlubbmoLnmja7mo4Dmn6Xnu5Pmnpzmv4DmtLvmiJbnpoHnlKjmuLjmiI/lhaXlj6PmjInpkq7jgIJcclxuICAgICAqIOWvueS6jumdnuaKlumfs+Wwj+a4uOaIj+eOr+Wig++8jOebtOaOpea/gOa0u+a4uOaIj+WFpeWPo+aMiemSruOAglxyXG4gICAgICog5q2k5aSW77yM5peg6K66546v5aKD5aaC5L2V77yM6YO95Lya6K6+572u5LiA5Liq55uR5ZCs5Zmo77yM5Lul5aSE55CG5p2l6Ieq5L6n6L655qCP55qE5LqL5Lu277yM5aaC5oiQ5Yqf6Kem5Y+R5pe25pi+56S65aWW5Yqx5o+Q56S644CCXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2lkOmFueTtcclxuICAgIHByaXZhdGUgX3VzZXJEYXRhOmFueTtcclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IE1pbmlHYW1lTWFuYWdlcjtcclxuICAgIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogTWluaUdhbWVNYW5hZ2VyIHtcclxuICAgICAgICBpZiAoIU1pbmlHYW1lTWFuYWdlci5faW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgTWluaUdhbWVNYW5hZ2VyLl9pbnN0YW5jZSA9IG5ldyBNaW5pR2FtZU1hbmFnZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE1pbmlHYW1lTWFuYWdlci5faW5zdGFuY2U7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQoKSB7XHJcbiAgICAgICAgLy8g56aB55So5ri45oiP5YWl5Y+j6KeG5Zu+XHJcbiAgICAgICAgLy8gdGhpcy5lbnRyYW5jZVZpZXcuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgLy8gTWluaUdhbWVTZGsuQVBJLmdldFVzZXJQcm9maWxlKHRoaXMuc2V0VXNlcklkKTtcclxuICAgICAgICAvLyBjYy5meC5HYW1lVG9vbC5zZXRVc2VySW5mbyhcIlwiKTtcclxuICAgICAgICB0aGlzLm9uR2V0TG9naW5Db2RlKCk7XHJcbiAgICAgICAgLy8g5bCd6K+V6I635Y+W5ri45oiP5YWl5Y+j5oyJ6ZKu77yM5aaC5p6c5a2Y5Zyo5YiZ55u05o6l6L+U5Zue77yM5LiN6L+b6KGM5ZCO57ut5pON5L2cXHJcbiAgICAgICAgLy8gbGV0IGJ1dHRvbkVudHJhbmNlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdCdG5zJyk/LmdldENoaWxkQnlOYW1lKCdCdXR0b25fRW50cmFuY2VWaWV3Jyk7XHJcbiAgICAgICAgLy8gaWYgKGJ1dHRvbkVudHJhbmNlKSB7XHJcbiAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIC8vIOWmguaenOaYr+Wtl+iKgui3s+WKqOWwj+a4uOaIj+eOr+Wig++8jOajgOafpeS+p+i+ueagj+aYr+WQpuWtmOWcqFxyXG5cclxuICAgICAgICBpZiAoTWluaUdhbWVTZGsuaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAvL+aKlumfs+eOr+Wig++8jOajgOa1i+S+p+i+ueagj+WtmOWcqFxyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLmNoZWNrU2lkZUJhcigoc3VjY2VzczogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8g5qC55o2u5L6n6L655qCP5a2Y5Zyo5oCn5r+A5rS75oiW56aB55So5ri45oiP5YWl5Y+j5oyJ6ZKuXHJcbiAgICAgICAgICAgICAgICAvLyBidXR0b25FbnRyYW5jZS5hY3RpdmUgPSBzdWNjZXNzO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyDpnZ7mipbpn7PlsI/muLjmiI/njq/looPvvIznm7TmjqXmv4DmtLvmuLjmiI/lhaXlj6PmjInpkq5cclxuICAgICAgICAgICAgLy8g6Z2e5oqW6Z+z546v5aKD77yM5q2j5bi45pi+56S65oyJ6ZKuXHJcbiAgICAgICAgICAgIC8vIGJ1dHRvbkVudHJhbmNlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDorr7nva7nm5HlkKzlmajvvIzku6XlpITnkIbmnaXoh6rkvqfovrnmoI/nmoTkuqTkupLkuovku7ZcclxuICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLmxpc3RlbkZyb21TaWRlYmFyKChzdWNjZXNzOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOWmguaenOS6pOS6kuaIkOWKn++8jOaYvuekuuWlluWKseaPkOekulxyXG4gICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdCgn5L6n6L655qCP5aWW5YqxJywgNSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUoZGVsdGFUaW1lOiBudW1iZXIpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlvLnlh7rlub/lkYrmqKrluYXjgIJcclxuICAgICAqIOatpOaWueazleeUqOS6juWKoOi9veW5tuaYvuekuuW5v+WRiuaoquW5heOAguWug+mmluWFiOWKoOi9veaMh+WumuW5v+WRiuS9jeeahOaoquW5heW5v+WRiu+8jOeEtuWQjuaYvuekuuW5v+WRiuOAglxyXG4gICAgICog5Yqg6L295bm/5ZGK5ZKM5pi+56S65bm/5ZGK5piv6YCa6L+HTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlcueahOWunuS+i+aWueazleadpeWunueOsOeahOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5pa55rOV5o+Q5L6b5LqG5Lik56eN5pi+56S65qiq5bmF5bm/5ZGK55qE5pa55byP77yaXHJcbiAgICAgKiAxLiDpu5jorqTmlrnlvI/vvJrosIPnlKhzaG93QmFubmVy5pa55rOV5pi+56S65bm/5ZGK77yM57O757uf5Lya6Ieq5Yqo6YCJ5oup5pi+56S65L2N572u44CCXHJcbiAgICAgKiAyLiDmjIflrprkvY3nva7mlrnlvI/vvJrlj6/ku6XpgJrov4fkvKDlhaXpop3lpJbnmoTlj4LmlbDmnaXmjIflrprlub/lkYrmmL7npLrlnKjlsY/luZXnmoTpobbpg6jmiJblupXpg6jvvIzmiJbogIXpgJrov4flnZDmoIfmjIflrprmmL7npLrkvY3nva7jgIJcclxuICAgICAqIFxyXG4gICAgICog56S65L6L5Luj56CB5Lit5rOo6YeK5o6J5LqG5Lik56eN5pi+56S65bm/5ZGK55qE5YW35L2T5pa55rOV77yM5Y+v5Lul5qC55o2u5a6e6ZmF6ZyA5rGC6YCJ5oup5L2/55So44CCXHJcbiAgICAgKi9cclxuICAgIG9uU2hvd0Jhbm5lcigpIHtcclxuICAgICAgICAvLyDliqDovb3mjIflrprlub/lkYrkvY3nmoTmqKrluYXlub/lkYrjgIJcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLmxvYWRCYW5uZXIoJ2FkdW5pdC00ZTdlZjQ2N2UzZWFhYjUxJyk7XHJcblxyXG4gICAgICAgIC8vIOm7mOiupOaWueW8j+aYvuekuuaoquW5heW5v+WRiuOAglxyXG4gICAgICAgIC8vIOaWueazlTHvvJrpu5jorqTosIPnlKhcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dCYW5uZXIoKTtcclxuXHJcbiAgICAgICAgLy8g56S65L6L77ya5oyH5a6a5bGP5bmV5bqV6YOo5q2j5Lit5pi+56S65qiq5bmF5bm/5ZGK44CCXHJcbiAgICAgICAgLy8g5pa55rOVMu+8muaMh+WumuWxj+W5lemhtumDqOaIluW6lemDqOato+S4rVxyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0Jhbm5lcignYWR1bml0LTRlN2VmNDY3ZTNlYWFiNTEnLCBNaW5pR2FtZVNkay5FQWRCYW5uZXJMb2NhdGlvbi5CT1RUT00pOyBcclxuXHJcbiAgICAgICAgLy8g56S65L6L77ya6YCa6L+H5Z2Q5qCH5oyH5a6a5L2N572u5pi+56S65qiq5bmF5bm/5ZGK44CCXHJcbiAgICAgICAgLy8g5pa55rOVMu+8muaMh+WumuWdkOagh1xyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0Jhbm5lcignYWR1bml0LTRlN2VmNDY3ZTNlYWFiNTEnLCB7IHRvcDogMTAsIGxlZnQ6IDEwIH0pOyBcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOmakOiXj+W5v+WRiuaoquW5heeahOWHveaVsOOAglxyXG4gICAgICogXHJcbiAgICAgKiDor6Xlh73mlbDosIPnlKhNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2Vy5a6e5L6L55qE5pa55rOV77yM55So5LqO6ZqQ6JeP5bm/5ZGK5qiq5bmF44CCXHJcbiAgICAgKiDlvZPpnIDopoHmmoLml7blgZzmraLlsZXnpLrlub/lkYrmiJbnlKjmiLfkuLvliqjor7fmsYLpmpDol4/lub/lkYrml7bvvIzlj6/ku6XosIPnlKjmraTlh73mlbDjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOWHveaVsOS4jeaOpeWPl+S7u+S9leWPguaVsO+8jOS5n+S4jei/lOWbnuS7u+S9leWAvOOAglxyXG4gICAgICog5a6D5Y2V57qv5Zyw6Kem5Y+R5bm/5ZGK5qiq5bmF55qE6ZqQ6JeP5pON5L2c77yM5YW35L2T5a6e546w5L6d6LWW5LqOQWR2ZXJ0TWFuYWdlcueahOWunueOsOOAglxyXG4gICAgICovXHJcbiAgICBvbkhpZGVCYW5uZXIoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5oaWRlQmFubmVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmmL7npLrmj5LlsY/lub/lkYrnmoTlh73mlbDjgIJcclxuICAgICAqIFxyXG4gICAgICog5q2k5Ye95pWw6LCD55SoTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlcuWunuS+i+eahOaWueazle+8jOS7peaYvuekuuS4gOS4quaMh+WumueahOaPkuWxj+W5v+WRiuOAglxyXG4gICAgICog5a6D5L2/55So5LqG56Gs57yW56CB55qE5bm/5ZGK5Y2V5YWD5qCH6K+G56ym77yM6L+Z5oSP5ZGz552A5a6D5LiT5Li654m55a6a55qE5bm/5ZGK5L2N6K6+6K6h44CCXHJcbiAgICAgKiDlnKjlrp7pmYXlupTnlKjkuK3vvIzlj6/og73pnIDopoHmoLnmja7lupTnlKjnmoTphY3nva7miJbnlKjmiLfnmoTnibnlrprmnaHku7bmnaXliqjmgIHpgInmi6nlub/lkYrljZXlhYPmoIfor4bnrKbjgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93SW50ZXJzdGl0aWFsKCkge1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0ludGVyc3RpdGlhbCgnYWR1bml0LWVhZGQ2Nzg1MWQzMDUwYWQnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOiwg+eUqOW5v+WRiueuoeeQhuWZqOWKoOi9veW5tuWxleekuuiHquWumuS5ieW5v+WRiuOAglxyXG4gICAgICog5q2k5pa55rOV6aaW5YWI6YCa6L+H5bm/5ZGK566h55CG5Zmo55qE5a6e5L6L5Yqg6L295oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK5Y2V5YWD77yM54S25ZCO5bGV56S66L+Z5Liq6Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiDliqDovb3lkozlsZXnpLrlub/lkYrmmK/lub/lkYrnrqHnkIbns7vnu5/kuK3nmoTluLjop4Hmk43kvZzvvIzov5nph4zpgJrov4fkuKTmraXliIbliKvlrozmiJDliqDovb3lkozlsZXnpLrnmoTov4fnqIvvvIxcclxuICAgICAqIOS7peehruS/neW5v+WRiuWcqOWxleekuuWJjeato+ehruS4lOWFheWIhuWcsOiiq+WKoOi9veOAglxyXG4gICAgICovXHJcbiAgICBvblNob3dDdXN0b20oKSB7XHJcbiAgICAgICAgLy8g5Yqg6L295oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK5Y2V5YWD44CCXHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5sb2FkQ3VzdG9tKEVXZWNoYXRBRC5DVU1TVE9NXzAxKTtcclxuICAgICAgICAvLyDlsZXnpLrlt7LliqDovb3nmoToh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dDdXN0b20oRVdlY2hhdEFELkNVTVNUT01fMDEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6ZqQ6JeP6Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiBcclxuICAgICAqIOacrOWHveaVsOiwg+eUqE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2UuaGlkZUN1c3RvbSgp5p2l6ZqQ6JeP6Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiDov5nmmK/lr7nmjqXlub/lkYrnrqHnkIbns7vnu5/nmoTkuIDpg6jliIbvvIznlKjkuo7mjqfliLblub/lkYrnmoTmmL7npLrkuI7pmpDol4/jgIJcclxuICAgICAqIOWcqOmcgOimgemakOiXj+iHquWumuS5ieW5v+WRiueahOWcuuaZr+S4i++8jOiwg+eUqOatpOWHveaVsOWNs+WPr+WunueOsOebuOW6lOWKn+iDveOAglxyXG4gICAgICovXHJcbiAgICBvbkhpZGVDdXN0b20oKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5oaWRlQ3VzdG9tKEVXZWNoYXRBRC5DVU1TVE9NXzAxKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOinpuWPkeaYvuekuuinhumikeW5v+WRiueahOWHveaVsOOAglxyXG4gICAgICog6YCa6L+H6LCD55SoTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5zaG93VmlkZW/mlrnms5XvvIzmmL7npLrkuIDkuKrop4bpopHlub/lkYrvvIzlubbmoLnmja7nlKjmiLfop4LnnIvlub/lkYrnmoTmg4XlhrXmiafooYznm7jlupTnmoTpgLvovpHjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOWHveaVsOmmluWFiOS8oOWFpeS4gOS4quW5v+WRiuWNleWFg0lE77yM55So5LqO5qCH6K+G6KaB5pi+56S655qE6KeG6aKR5bm/5ZGK44CC54S25ZCO5Lyg5YWl5LiA5Liq5Zue6LCD5Ye95pWw77yM6K+l5Zue6LCD5Ye95pWw5Zyo55So5oi36KeC55yL5bm/5ZGK5ZCO6KKr6LCD55So77yM5peg6K6655So5oi35piv5a6M5oiQ5LqG6KeC55yL44CB5ouS57ud5LqG6KeC55yL6L+Y5piv6KeC55yL6L+H56iL5Lit5Y+R55Sf5LqG6ZSZ6K+v44CCXHJcbiAgICAgKiDlm57osIPlh73mlbDmjqXmlLbkuKTkuKrlj4LmlbDvvJrkuIDkuKrmmK/nlKjmiLfop4LnnIvlub/lkYrnmoTnu5PmnpzvvIzlj6bkuIDkuKrmmK/nlKjmiLfop4LnnIvnmoTlub/lkYrmlbDph4/jgILmoLnmja7op4LnnIvnu5PmnpznmoTkuI3lkIzvvIzmmL7npLrkuI3lkIznmoTmj5DnpLrkv6Hmga/jgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93VmlkZW8oKSB7XHJcbiAgICAgICAgLy8g5bm/5ZGK5Y2V5YWDSUTvvIznlKjkuo7moIfor4bopoHmmL7npLrnmoTop4bpopHlub/lkYpcclxuICAgICAgICAvLyDlub/lkYrljZXlhYNJROeahOagt+S+i1xyXG4gICAgICAgIC8v5oqW6Z+z5b2i5aaCOiAxcmUzbmZxa215ODFtNG04Z2VcclxuICAgICAgICAvL+W+ruS/oeW9ouWmgjogYWR1bml0LWE3NzE4ZjZlMTk1ZTQyZmVcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dWaWRlbygnMXJlM25mcWtteTgxbTRtOGdlJywgKHJlczogTWluaUdhbWVTZGsuRUFkVmlkZW9SZXN1bHQsIGNvdW50OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgLy8g6L6T5Ye655So5oi36KeC55yL55qE5bm/5ZGK5pWw6YePXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCfnlKjmiLfnnIvnmoTop4bpopHlub/lkYrkuKrmlbDmmK86JywgY291bnQpO1xyXG5cclxuICAgICAgICAgICAgLy8g5qC55o2u55So5oi36KeC55yL5bm/5ZGK55qE57uT5p6c77yM5omn6KGM5LiN5ZCM55qE6YC76L6RXHJcbiAgICAgICAgICAgIHN3aXRjaCAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIE1pbmlHYW1lU2RrLkVBZFZpZGVvUmVzdWx0LkFDQ0VQVDpcclxuICAgICAgICAgICAgICAgICAgICAvLyDnlKjmiLflrozmiJDkuoblub/lkYrop4LnnIvvvIzmmL7npLrlpZblirHmj5DnpLpcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KCfnlKjmiLfnnIvlrozlub/lkYrvvIzlj6/ku6XlpZblirEnKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgTWluaUdhbWVTZGsuRUFkVmlkZW9SZXN1bHQuUkVKRUNUOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOeUqOaIt+aLkue7neS6huW5v+WRiuingueci++8jOaYvuekuuS4jeWlluWKseaPkOekulxyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoJ+eUqOaIt+aLkue7neaOieW5v+WRiu+8jOS4jeWlluWKsScpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBNaW5pR2FtZVNkay5FQWRWaWRlb1Jlc3VsdC5FUlJPUjpcclxuICAgICAgICAgICAgICAgICAgICAvLyDlub/lkYrmkq3mlL7lj5HnlJ/plJnor6/vvIzmmL7npLrplJnor6/mj5DnpLpcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KCfmkq3mlL7lub/lkYrlj5HnlJ/plJnor6/vvIzkuI3lpZblirEnKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5YW25LuW5oOF5Ya177yM5LiN5L2c5aSE55CGXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOW8leWvvOeUqOaIt+WIhuS6q+W6lOeUqOe7meaci+WPi+OAglxyXG4gICAgICogXHJcbiAgICAgKiDpgJrov4fosIPnlKhNaW5pR2FtZVNka+eahEFQSeWIhuS6q+WKn+iDve+8jOWQkeeUqOaIt+eahOaci+WPi+WciOWPkemAgemCgOivt++8jOmCgOivt+S7luS7rOS4gOi1t+eOqea4uOaIj+OAglxyXG4gICAgICog6L+Z5piv5LiA5Liq6YeN6KaB55qE5o6o5bm/5omL5q6177yM5Y+v5Lul5aKe5Yqg5bqU55So55qE5pud5YWJ5bqm5ZKM55So5oi36YeP44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZW1hcmtzXHJcbiAgICAgKiDmraTmlrnms5XkuK3osIPnlKjnmoRBUEnkvp3otZbkuo7nibnlrprnmoTlsI/muLjmiI/lubPlj7DvvIzlm6DmraTlnKjkuI3lkIznmoTlubPlj7DkuIrlj6/og73pnIDopoHkuI3lkIznmoTlrp7njrDjgIJcclxuICAgICAqL1xyXG4gICAgb25TaGFyZSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hhcmVBcHBUb0ZyaWVuZHMoJ+adpeeOqea4uOaIj+WQpycpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pi+56S65LiA5LiqdG9hc3Tmj5DnpLrjgIJcclxuICAgICAqIFxyXG4gICAgICog6YCa6L+H6LCD55SoTWluaUdhbWVTZGvnmoRBUEnmlrnms5XmnaXmmL7npLrkuIDkuKrnroDnn63nmoTmj5DnpLrkv6Hmga/jgIJ0b2FzdOaYr+S4gOenjei9u+mHj+e6p+eahOaPkOekuuaWueW8j++8jOeUqOS6juWcqOeVjOmdouS4iuefreaaguWcsOWxleekuuS4gOS6m+S/oeaBr++8jOS4jeW9seWTjeeUqOaIt+aTjeS9nOOAglxyXG4gICAgICog6L+Z6YeM5L2/55So5LqG5Zu65a6a55qE5o+Q56S65paH5pysICfov5nmmK/kuIDkuKp0b2FzdCfvvIzlnKjlrp7pmYXlupTnlKjkuK3vvIzlj6/ku6XmoLnmja7pnIDopoHliqjmgIHorr7nva7mj5DnpLrmlofmnKzjgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93VG9hc3QoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdCgn6L+Z5piv5LiA5LiqdG9hc3QnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOinpuWPkeiuvuWkh+aMr+WKqOWKn+iDveOAglxyXG4gICAgICogXHJcbiAgICAgKiDor6Xmlrnms5XnlKjkuo7osIPnlKhNaW5pR2FtZVNka+aPkOS+m+eahEFQSe+8jOS7peWunueOsOiuvuWkh+eahOaMr+WKqOWKn+iDveOAguW9k+mcgOimgeaPkOmGkueUqOaIt+aIluaPkOS+m+inpuinieWPjemmiOaXtu+8jOWPr+S7peiwg+eUqOatpOaWueazleOAglxyXG4gICAgICog5L6L5aaC77yM5Zyo5ri45oiP5oiW5bqU55So5Lit77yM5b2T55So5oi35a6M5oiQ54m55a6a5pON5L2c5oiW5Y+R55Sf54m55a6a5LqL5Lu25pe277yM5Y+v5Lul6YCa6L+H5oyv5Yqo57uZ5LqI55So5oi35Y+N6aaI44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZW1hcmtzXHJcbiAgICAgKiDmraTmlrnms5Xml6Dlj4LmlbDvvIzkuZ/kuI3ov5Tlm57ku7vkvZXlgLzjgIJcclxuICAgICAqL1xyXG4gICAgb25WaXJicmF0ZSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkudmlicmF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6YeN5paw5ZCv5Yqo5ri45oiP5a6e5L6L44CCXHJcbiAgICAgKiBcclxuICAgICAqIOatpOWHveaVsOiwg+eUqE1pbmlHYW1lU2Rr5Lit55qEQVBJ6YeN5paw5ZCv5Yqo5ri45oiP44CC6YeN5paw5ZCv5Yqo5pON5L2c5Y+v6IO95piv5Li65LqG5Yid5aeL5YyW5ri45oiP546v5aKD44CB6YeN572u5ri45oiP54q25oCB5oiW5aSE55CG5YW25LuW6ZyA6KaB6YeN5ZCv55qE5Zy65pmv44CCXHJcbiAgICAgKiDosIPnlKjmraTlh73mlbDlkI7vvIzmuLjmiI/lsIbkvJrph43mlrDlvIDlp4vvvIzlvZPliY3nmoTmuLjmiI/nirbmgIHlsIbkvJrooqvmuIXpmaTjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOWHveaVsOS4jeaOpeWPl+S7u+S9leWPguaVsOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyDml6Dov5Tlm57lgLzjgIJcclxuICAgICAqL1xyXG4gICAgb25SZWJvb3QoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnJlYm9vdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5b2T5YmN5Ye95pWw55So5LqO5Zyo6L+35L2g5ri45oiP5Lit5a6e546w6YCA5Ye65Yqf6IO944CCXHJcbiAgICAgKiDlroPosIPnlKjkuoZNaW5pR2FtZVNka+aPkOS+m+eahEFQSeaWueazleadpeinpuWPkemAgOWHuuaTjeS9nOOAglxyXG4gICAgICog6K+l5pa55rOV6YCa5bi45Zyo6ZyA6KaB57uT5p2f5b2T5YmN6L+35L2g5ri45oiP5oiW6L+U5Zue5Yiw5LiK5LiA57qn6I+c5Y2V5pe26KKr6LCD55So44CCXHJcbiAgICAgKi9cclxuICAgIG9uRXhpdCgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuZXhpdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pi+56S65YiG5Lqr6I+c5Y2V44CCXHJcbiAgICAgKiBcclxuICAgICAqIOmAmui/h+iwg+eUqE1pbmlHYW1lU2Rr55qEQVBJ5pa55rOV77yM6Kem5Y+R5pi+56S65YiG5Lqr6I+c5Y2V55qE5pON5L2c44CC5q2k5Ye95pWw5peo5Zyo5o+Q5L6b5LiA5Liq57uf5LiA55qE5YWl5Y+j77yMXHJcbiAgICAgKiDku6Xkvr/lnKjpnIDopoHml7bovbvmnb7osIPnlKjliIbkuqvlip/og73vvIzogIzml6DpnIDnm7TmjqXkuI7lhbfkvZPnmoRTREvmjqXlj6PkuqTkupLjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOaWueazleS4jeaOpeWPl+S7u+S9leWPguaVsO+8jOS5n+S4jei/lOWbnuS7u+S9leWAvOOAglxyXG4gICAgICovXHJcbiAgICBvblNob3dTaGFyZU1lbnUoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dTaGFyZU1lbnUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWvvOiIquWIsOaMh+WumueahOWwj+a4uOaIj+OAglxyXG4gICAgICogXHJcbiAgICAgKiDmnKzlh73mlbDnlKjkuo7op6blj5Hlr7zoiKrliLDkuIDkuKrnibnlrprnmoTlsI/muLjmiI/jgILov5npnIDopoHmj5Dkvpvnm67moIflsI/muLjmiI/nmoRJRO+8jFxyXG4gICAgICog5Lul5L6/57O757uf6IO95aSf5q2j56Gu5Zyw5bCG55So5oi36YeN5a6a5ZCR5Yiw55uu5qCH5bCP5ri45oiP44CCXHJcbiAgICAgKiBcclxuICAgICAqIOazqOaEj++8mui/memHjOeahCd4eHgn5piv5Y2g5L2N56ym77yM5a6e6ZmF5L2/55So5pe26ZyA6KaB5pu/5o2i5Li65YW35L2T55qE5bCP5ri45oiPSUTjgIJcclxuICAgICAqL1xyXG4gICAgb25OYXZpZ2F0ZSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkubmF2aWdhdGVUbygneHh4Jyk7IC8vIHh4eOabv+aNouS4uuS9oOeahOWwj+a4uOaIj2lkXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmv4DmtLvlrZfoioLot7PliqjlhaXlj6Pop4blm77jgIJcclxuICAgICAqIFxyXG4gICAgICog5q2k5pa55rOV55So5LqO5bCG5a2X6IqC6Lez5Yqo5YWl5Y+j6KeG5Zu+6K6+572u5Li65rS76LeD54q25oCB44CC5b2T6ZyA6KaB5Zyo55So5oi355WM6Z2i5Lit5pi+56S65a2X6IqC6Lez5Yqo55qE5YWl5Y+j5pe277yMXHJcbiAgICAgKiDlj6/ku6XosIPnlKjmraTmlrnms5XmnaXmv4DmtLvnm7jlupTnmoTop4blm77lhYPntKDvvIzkvb/lhbblr7nnlKjmiLflj6/op4HjgIJcclxuICAgICAqL1xyXG4gICAgb25CeXRlZGFuY2VFbnRyYW5jZVZpZXcoKSB7XHJcbiAgICAgICAgLy8gdGhpcy5lbnRyYW5jZVZpZXcuYWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOivt+axgueZu+W9leS7o+eggVxyXG4gICAgICogXHJcbiAgICAgKiDmnKzlh73mlbDnlKjkuo7op6blj5HlsI/nqIvluo/nmoTnmbvlvZXmtYHnqIvvvIzojrflj5blvq7kv6HmiJblpLTmnaHnrYnnrKzkuInmlrnlubPlj7DnmoTnmbvlvZXku6PnoIHjgIJcclxuICAgICAqIOi/meS6m+S7o+eggeWPr+S7peeUqOS6juWQjue7reeahOeUqOaIt+i6q+S7vemqjOivgeWSjOaVsOaNruWQjOatpea1geeoi+OAglxyXG4gICAgICovXHJcbiAgICBvbkdldExvZ2luQ29kZSgpIHtcclxuICAgICAgICAvLyDosIPnlKhNaW5pR2FtZVNka+eahEFQSeeZu+W9leaWueazle+8jOS8oOWFpeS4gOS4quWbnuiwg+WHveaVsOWkhOeQhueZu+W9lee7k+aenFxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5sb2dpbigoY29kZTogc3RyaW5nLCBhbm9ueW1vdXNDb2RlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgLy8g5omT5Y2w5b6u5L+h5oiW5aS05p2h55qE55m75b2V5Luj56CBXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdXZWNoYXQgT3IgQnl0ZWRhbmNlIENvZGU6JywgY29kZSk7XHJcbiAgICAgICAgICAgIC8vIOaJk+WNsOWktOadoeeahOWMv+WQjeeZu+W9leS7o+eggVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnQnl0ZWRhbmNlIEFub255bW91cyBDb2RlOicsIGFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICBpZihjb2RlKXtcclxuICAgICAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJJZChjb2RlLCBkYXRhID0+IHRoaXMuc2V0VXNlcklkKGRhdGEpKTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXRVc2VySWQoZGF0YSl7XHJcbiAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCA9IGRhdGEuZGF0YS51c2VySWQ7XHJcbiAgICAvLyAgICAgTWluaUdhbWVTZGsuQVBJLmdldFVzZXJJbmZvKHRoaXMuc2V0VXNlckluZm8pO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIHNldFVzZXJJbmZvKGRhdGEpe1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwi6I635Y+W5Yiw55qE55So5oi35L+h5oGvXCIsZGF0YS51c2VySW5mbyk7XHJcbiAgICAvLyAgICAgdmFyIHVzZURhdGEgPSB7XHJcbiAgICAvLyAgICAgICAgIFwiZ2FtZUlkXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAvLyAgICAgICAgIFwidXNlcklkXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VySWQsXHJcbiAgICAvLyAgICAgICAgIFwibmlja05hbWVcIjpkYXRhLnVzZXJJbmZvLm5pY2tOYW1lLFxyXG4gICAgLy8gICAgICAgICBcInBpY1wiOiBkYXRhLnVzZXJJbmZvLmF2YXRhclVybFxyXG4gICAgICAgICAgIFxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuS4iuS8oOeahOeUqOaIt+S/oeaBrzpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkLGRhdGEudXNlckluZm8ubmlja05hbWUsZGF0YS51c2VySW5mby5hdmF0YXJVcmwpO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwiUG9zdOaVsOaNrjpcIix1c2VEYXRhKTtcclxuICAgIC8vICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VySW5mbyh1c2VEYXRhLChyZXMpPT57XHJcbiAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg5oiQ5YqfOlwiLHJlcyk7XHJcbiAgICAvLyAgICAgfSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliJvlu7rlubbmmL7npLrmuLjmiI/lnIjmjInpkq5cclxuICAgICAqIFxyXG4gICAgICog5pys5Ye95pWw6YCa6L+H6LCD55SoTWluaUdhbWVTZGvnmoRHYW1lQ2x1YuWunuS+i+aWueazle+8jOWunueOsOa4uOaIj+S/seS5kOmDqOeahOWIm+W7uuWSjOaYvuekuuOAglxyXG4gICAgICog5a6D6aaW5YWI6YWN572u5L+x5LmQ6YOo55qE5Zu+5qCH57G75Z6L5ZKM5L2N572u5aSn5bCP77yM54S25ZCO5Yib5bu65L+x5LmQ6YOo77yM5pyA5ZCO5pi+56S65L+x5LmQ6YOo44CCXHJcbiAgICAgKiDov5nmoLflgZrmmK/kuLrkuoblnKjlsI/muLjmiI/lhoXliJvlu7rlubblsZXnpLrkuIDkuKrmuLjmiI/kv7HkuZDpg6jnmoTlm77moIfvvIzkvpvnjqnlrrbliqDlhaXmiJbkupLliqjjgIJcclxuICAgICAqL1xyXG4gICAgb25DcmVhdGVDbHViKCkge1xyXG4gICAgICAgIC8vIOmFjee9ruS/seS5kOmDqOWbvuagh+S4uue7v+iJsu+8jOiuvue9ruWbvuagh+eahOS9jee9ruS4uumhtumDqDIwMOWDj+e0oO+8jOW3puS+pzDlg4/ntKBcclxuICAgICAgICBNaW5pR2FtZVNkay5HYW1lQ2x1Yi5pbnN0YW5jZS5jcmVhdGUoXHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkVHYW1lQ2x1Ykljb24uR1JFRU4sXHJcbiAgICAgICAgICAgIHsgdG9wOiAyMDAsIGxlZnQ6IDAgfSxcclxuICAgICAgICAgICAgeyB3aWR0aDogNTAsIGhlaWdodDogNTAgfSk7XHJcbiAgICAgICAgLy8g5pi+56S65ri45oiP5L+x5LmQ6YOo5Zu+5qCHXHJcbiAgICAgICAgTWluaUdhbWVTZGsuR2FtZUNsdWIuaW5zdGFuY2Uuc2hvdygpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/position.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'e0e34n/+FRF5JdkULm6vdT0', 'position'); -// Script/position.ts - -var _PROP_INFO = [{ "pos1": { "x": -60, "y": 60, "z": 0 }, "pos2": { "x": -16.442, "y": 30, "z": 0 }, "pos3": { "x": -34.362, "y": 13.246, "z": 0 }, "pos4": { "x": -17, "y": 12, "z": 0 } }, { "pos1": { "x": -126, "y": 63, "z": 0 }, "pos2": { "x": -25.792, "y": 34.675, "z": 0 }, "pos3": { "x": -94.792, "y": 21.675, "z": 0 }, "pos4": { "x": -20, "y": 13, "z": 0 } }, { "pos1": { "x": -60, "y": 125, "z": 0 }, "pos2": { "x": -12.792, "y": 92.675, "z": 0 }, "pos3": { "x": -27.792, "y": 23.675, "z": 0 }, "pos4": { "x": -14, "y": 24, "z": 0 } }, { "pos1": { "x": -185, "y": 63, "z": 0 }, "pos2": { "x": -34.792, "y": 37.675, "z": 0 }, "pos3": { "x": -154.792, "y": 23.675, "z": 0 }, "pos4": { "x": -22, "y": 16, "z": 0 } }, { "pos1": { "x": -57, "y": 178, "z": 0 }, "pos2": { "x": -17.792, "y": 166.675, "z": 0 }, "pos3": { "x": -31.792, "y": 33.675, "z": 0 }, "pos4": { "x": -14, "y": 37, "z": 0 } }, { "pos1": { "x": -123, "y": 127, "z": 0 }, "pos2": { "x": -25.792, "y": 99.675, "z": 0 }, "pos3": { "x": -97.792, "y": 27.675, "z": 0 }, "pos4": { "x": -27, "y": 19, "z": 0 } }, { "pos1": { "x": -62, "y": 181, "z": 0 }, "pos2": { "x": -24.792, "y": 275.675, "z": 0 }, "pos3": { "x": -31.792, "y": 35.675, "z": 0 }, "pos4": { "x": -7, "y": 39, "z": 0 } }, { "pos1": { "x": -181, "y": 180, "z": 0 }, "pos2": { "x": -31.792, "y": 163.675, "z": 0 }, "pos3": { "x": -33.792, "y": 34.675, "z": 0 }, "pos4": { "x": -18, "y": 25, "z": 0 } }, { "pos1": { "x": -182, "y": 182, "z": 0 }, "pos2": { "x": -25.792, "y": 38.675, "z": 0 }, "pos3": { "x": -153.792, "y": 34.675, "z": 0 }, "pos4": { "x": -23, "y": 14, "z": 0 } }, { "pos1": { "x": -186, "y": 61, "z": 0 }, "pos2": { "x": -37.792, "y": 37.675, "z": 0 }, "pos3": { "x": -36.792, "y": 26.675, "z": 0 }, "pos4": { "x": -24, "y": 17, "z": 0 } }, { "pos1": { "x": -62, "y": 177, "z": 0 }, "pos2": { "x": 93.208, "y": 276.675, "z": 0 }, "pos3": { "x": -33.792, "y": 34.675, "z": 0 }, "pos4": { "x": 3, "y": 31, "z": 0 } }, { "pos1": { "x": 58, "y": 179, "z": 0 }, "pos2": { "x": 205.225, "y": 154.034, "z": 0 }, "pos3": { "x": -29.642, "y": 25.691, "z": 0 }, "pos4": { "x": 7.218, "y": 29.765, "z": 0 } }, { "pos1": { "x": -57, "y": 182, "z": 0 }, "pos2": { "x": -25.792, "y": 37.675, "z": 0 }, "pos3": { "x": -35.792, "y": 33.675, "z": 0 }, "pos4": { "x": -14, "y": 12, "z": 0 } }, { "pos1": { "x": -180, "y": 62, "z": 0 }, "pos2": { "x": -35.792, "y": 36.675, "z": 0 }, "pos3": { "x": -271.792, "y": 24.675, "z": 0 }, "pos4": { "x": -17, "y": 20, "z": 0 } }, { "pos1": { "x": -62, "y": 178, "z": 0 }, "pos2": { "x": 87.208, "y": 164.675, "z": 0 }, "pos3": { "x": -31.792, "y": 35.675, "z": 0 }, "pos4": { "x": -6, "y": 24, "z": 0 } }, { "pos1": { "x": -176, "y": 60, "z": 0 }, "pos2": { "x": -33.792, "y": 38.675, "z": 0 }, "pos3": { "x": -154.792, "y": 29.675, "z": 0 }, "pos4": { "x": -29, "y": 16, "z": 0 } }, { "pos1": { "x": -60, "y": 181, "z": 0 }, "pos2": { "x": 95.208, "y": 155.675, "z": 0 }, "pos3": { "x": -30.792, "y": 36.675, "z": 0 }, "pos4": { "x": -12, "y": 32, "z": 0 } }, { "pos1": { "x": -63, "y": 178, "z": 0 }, "pos2": { "x": -21.792, "y": 156.675, "z": 0 }, "pos3": { "x": -31.792, "y": 37.675, "z": 0 }, "pos4": { "x": -12, "y": 32, "z": 0 } }, { "pos1": { "x": -60, "y": 183, "z": 0 }, "pos2": { "x": 88.208, "y": 162.675, "z": 0 }, "pos3": { "x": -29.792, "y": 41.675, "z": 0 }, "pos4": { "x": -12, "y": 18, "z": 0 } }, { "pos1": { "x": -64, "y": 58, "z": 0 }, "pos2": { "x": -26.792, "y": 32.675, "z": 0 }, "pos3": { "x": -34.792, "y": 23.675, "z": 0 }, "pos4": { "x": -12, "y": 18, "z": 0 } }, { "pos1": { "x": -184, "y": 62, "z": 0 }, "pos2": { "x": -25.792, "y": 34.675, "z": 0 }, "pos3": { "x": -155.792, "y": 25.675, "z": 0 }, "pos4": { "x": -18, "y": 26, "z": 0 } }, { "pos1": { "x": -57, "y": 190, "z": 0 }, "pos2": { "x": 95.208, "y": 158.675, "z": 0 }, "pos3": { "x": -33.792, "y": 29.675, "z": 0 }, "pos4": { "x": -18, "y": 26, "z": 0 } }, { "pos1": { "x": -71, "y": 184, "z": 0 }, "pos2": { "x": -25.792, "y": 156.675, "z": 0 }, "pos3": { "x": -35.792, "y": 27.675, "z": 0 }, "pos4": { "x": -25, "y": 40, "z": 0 } }]; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwb3NpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLE9BQU8sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9QUk9QX0lORk8gPSBbe1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogNjAsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0xNi40NDIsXCJ5XCI6IDMwLFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzQuMzYyLFwieVwiOiAxMy4yNDYsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNyxcInlcIjogMTIsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTEyNixcInlcIjogNjMsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0yNS43OTIsXCJ5XCI6IDM0LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTk0Ljc5MixcInlcIjogMjEuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjAsXCJ5XCI6IDEzLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogMTI1LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMTIuNzkyLFwieVwiOiA5Mi42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0yNy43OTIsXCJ5XCI6IDIzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE0LFwieVwiOiAyNCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTg1LFwieVwiOiA2MyxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTM0Ljc5MixcInlcIjogMzcuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTU0Ljc5MixcInlcIjogMjMuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjIsXCJ5XCI6IDE2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC01NyxcInlcIjogMTc4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMTcuNzkyLFwieVwiOiAxNjYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAzMy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNCxcInlcIjogMzcsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTEyMyxcInlcIjogMTI3LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiA5OS42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC05Ny43OTIsXCJ5XCI6IDI3LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTI3LFwieVwiOiAxOSxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjIsXCJ5XCI6IDE4MSxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI0Ljc5MixcInlcIjogMjc1LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMzUuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtNyxcInlcIjogMzksXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4MSxcInlcIjogMTgwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAxNjMuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzMuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xOCxcInlcIjogMjUsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4MixcInlcIjogMTgyLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzOC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0xNTMuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yMyxcInlcIjogMTQsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4NixcInlcIjogNjEsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0zNy43OTIsXCJ5XCI6IDM3LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM2Ljc5MixcInlcIjogMjYuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjQsXCJ5XCI6IDE3LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MixcInlcIjogMTc3LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA5My4yMDgsXCJ5XCI6IDI3Ni42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMy43OTIsXCJ5XCI6IDM0LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogMyxcInlcIjogMzEsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogNTgsXCJ5XCI6IDE3OSxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogMjA1LjIyNSxcInlcIjogMTU0LjAzNCxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTI5LjY0MixcInlcIjogMjUuNjkxLFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiA3LjIxOCxcInlcIjogMjkuNzY1LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC01NyxcInlcIjogMTgyLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzNy42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zNS43OTIsXCJ5XCI6IDMzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE0LFwieVwiOiAxMixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTgwLFwieVwiOiA2MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTM1Ljc5MixcInlcIjogMzYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMjcxLjc5MixcInlcIjogMjQuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTcsXCJ5XCI6IDIwLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MixcInlcIjogMTc4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA4Ny4yMDgsXCJ5XCI6IDE2NC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMS43OTIsXCJ5XCI6IDM1LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTYsXCJ5XCI6IDI0LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xNzYsXCJ5XCI6IDYwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMzMuNzkyLFwieVwiOiAzOC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0xNTQuNzkyLFwieVwiOiAyOS42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yOSxcInlcIjogMTYsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTYwLFwieVwiOiAxODEsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDk1LjIwOCxcInlcIjogMTU1LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMwLjc5MixcInlcIjogMzYuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDMyLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MyxcInlcIjogMTc4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjEuNzkyLFwieVwiOiAxNTYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAzNy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xMixcInlcIjogMzIsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTYwLFwieVwiOiAxODMsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDg4LjIwOCxcInlcIjogMTYyLjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTI5Ljc5MixcInlcIjogNDEuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDE4LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02NCxcInlcIjogNTgsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0yNi43OTIsXCJ5XCI6IDMyLjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM0Ljc5MixcInlcIjogMjMuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDE4LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODQsXCJ5XCI6IDYyLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0xNTUuNzkyLFwieVwiOiAyNS42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xOCxcInlcIjogMjYsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTU3LFwieVwiOiAxOTAsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDk1LjIwOCxcInlcIjogMTU4LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMzLjc5MixcInlcIjogMjkuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTgsXCJ5XCI6IDI2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC03MSxcInlcIjogMTg0LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAxNTYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzUuNzkyLFwieVwiOiAyNy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yNSxcInlcIjogNDAsXCJ6XCI6IDB9fV07Il19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/lq_collide_system/lq_collide_config.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '4bd21i88J9KfoWB6fqk7oW1', 'lq_collide_config'); -// Script/lq_collide_system/lq_collide_config.ts - -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.LQCollideConfig = exports.LQCollideInfoList = void 0; -var LQCollideInfoList; -(function (LQCollideInfoList) { - LQCollideInfoList[LQCollideInfoList["default"] = 0] = "default"; - LQCollideInfoList[LQCollideInfoList["role"] = 1] = "role"; - LQCollideInfoList[LQCollideInfoList["role_bullet"] = 2] = "role_bullet"; - LQCollideInfoList[LQCollideInfoList["enemy"] = 3] = "enemy"; - LQCollideInfoList[LQCollideInfoList["enemy_bullet"] = 4] = "enemy_bullet"; - LQCollideInfoList[LQCollideInfoList["prop"] = 5] = "prop"; -})(LQCollideInfoList = exports.LQCollideInfoList || (exports.LQCollideInfoList = {})); -var LQCollideConfig = /** @class */ (function () { - function LQCollideConfig() { - } - LQCollideConfig.switch_auto_run = true; - LQCollideConfig.switch_print_log = true; - LQCollideConfig.switch_quad_tree = false; - LQCollideConfig.max_node_len = 10; - LQCollideConfig.per_frame = 60; - LQCollideConfig.max_node_level = 4; - LQCollideConfig.active_area_x = 0; - LQCollideConfig.active_area_y = 0; - LQCollideConfig.active_area_width = 1000; - LQCollideConfig.active_area_height = 1000; - LQCollideConfig.collide_group_map = { - "default": { id: 1, category: 1, index: 0, mask: 1 }, - "role": { id: 2, category: 2, index: 1, mask: 56 }, - "role_bullet": { id: 3, category: 4, index: 2, mask: 8 }, - "enemy": { id: 4, category: 8, index: 3, mask: 6 }, - "enemy_bullet": { id: 5, category: 16, index: 4, mask: 2 }, - "prop": { id: 6, category: 32, index: 5, mask: 2 }, - }; - return LQCollideConfig; -}()); -exports.LQCollideConfig = LQCollideConfig; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9jb2xsaWRlX3N5c3RlbVxcbHFfY29sbGlkZV9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBWSxpQkFFWDtBQUZELFdBQVksaUJBQWlCO0lBQ3pCLCtEQUFPLENBQUE7SUFBRSx5REFBSSxDQUFBO0lBQUUsdUVBQVcsQ0FBQTtJQUFFLDJEQUFLLENBQUE7SUFBRSx5RUFBWSxDQUFBO0lBQUUseURBQUksQ0FBQTtBQUN6RCxDQUFDLEVBRlcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFFNUI7QUFFRDtJQUFBO0lBbUJBLENBQUM7SUFsQmlCLCtCQUFlLEdBQVksSUFBSSxDQUFDO0lBQ2hDLGdDQUFnQixHQUFZLElBQUksQ0FBQztJQUNqQyxnQ0FBZ0IsR0FBWSxLQUFLLENBQUM7SUFDbEMsNEJBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIseUJBQVMsR0FBVyxFQUFFLENBQUM7SUFDdkIsOEJBQWMsR0FBVyxDQUFDLENBQUM7SUFDM0IsNkJBQWEsR0FBVyxDQUFDLENBQUM7SUFDMUIsNkJBQWEsR0FBVyxDQUFDLENBQUM7SUFDMUIsaUNBQWlCLEdBQVcsSUFBSSxDQUFDO0lBQ2pDLGtDQUFrQixHQUFXLElBQUksQ0FBQztJQUNsQyxpQ0FBaUIsR0FBRztRQUM5QixTQUFTLEVBQUUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFDO1FBQ2xELE1BQU0sRUFBRSxFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUM7UUFDaEQsYUFBYSxFQUFFLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBQztRQUN0RCxPQUFPLEVBQUUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFDO1FBQ2hELGNBQWMsRUFBRSxFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUM7UUFDeEQsTUFBTSxFQUFFLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBQztLQUNuRCxDQUFBO0lBQ0wsc0JBQUM7Q0FuQkQsQUFtQkMsSUFBQTtBQW5CWSwwQ0FBZSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIExRQ29sbGlkZUluZm9MaXN0IHtcclxuICAgIGRlZmF1bHQsIHJvbGUsIHJvbGVfYnVsbGV0LCBlbmVteSwgZW5lbXlfYnVsbGV0LCBwcm9wXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMUUNvbGxpZGVDb25maWcge1xyXG4gICAgcHVibGljIHN0YXRpYyBzd2l0Y2hfYXV0b19ydW46IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgcHVibGljIHN0YXRpYyBzd2l0Y2hfcHJpbnRfbG9nOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHB1YmxpYyBzdGF0aWMgc3dpdGNoX3F1YWRfdHJlZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHN0YXRpYyBtYXhfbm9kZV9sZW46IG51bWJlciA9IDEwO1xyXG4gICAgcHVibGljIHN0YXRpYyBwZXJfZnJhbWU6IG51bWJlciA9IDYwO1xyXG4gICAgcHVibGljIHN0YXRpYyBtYXhfbm9kZV9sZXZlbDogbnVtYmVyID0gNDtcclxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aXZlX2FyZWFfeDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aXZlX2FyZWFfeTogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aXZlX2FyZWFfd2lkdGg6IG51bWJlciA9IDEwMDA7XHJcbiAgICBwdWJsaWMgc3RhdGljIGFjdGl2ZV9hcmVhX2hlaWdodDogbnVtYmVyID0gMTAwMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgY29sbGlkZV9ncm91cF9tYXAgPSB7XHJcbiAgICAgICAgXCJkZWZhdWx0XCI6IHtpZDogMSwgY2F0ZWdvcnk6IDEsIGluZGV4OiAwLCBtYXNrOiAxfSxcclxuICAgICAgICBcInJvbGVcIjoge2lkOiAyLCBjYXRlZ29yeTogMiwgaW5kZXg6IDEsIG1hc2s6IDU2fSxcclxuICAgICAgICBcInJvbGVfYnVsbGV0XCI6IHtpZDogMywgY2F0ZWdvcnk6IDQsIGluZGV4OiAyLCBtYXNrOiA4fSxcclxuICAgICAgICBcImVuZW15XCI6IHtpZDogNCwgY2F0ZWdvcnk6IDgsIGluZGV4OiAzLCBtYXNrOiA2fSxcclxuICAgICAgICBcImVuZW15X2J1bGxldFwiOiB7aWQ6IDUsIGNhdGVnb3J5OiAxNiwgaW5kZXg6IDQsIG1hc2s6IDJ9LFxyXG4gICAgICAgIFwicHJvcFwiOiB7aWQ6IDYsIGNhdGVnb3J5OiAzMiwgaW5kZXg6IDUsIG1hc2s6IDJ9LFxyXG4gICAgfVxyXG59Il19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/peizhi.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '7d800jRKkRGfqSS3fhSet26', 'peizhi'); -// Script/peizhi.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent; -var NewClass = /** @class */ (function (_super) { - __extends(NewClass, _super); - function NewClass() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.node1 = null; - _this.node2 = null; - _this.node3 = null; - _this.localTest = false; - _this.clientTestVersion = "1.0.0"; - _this.testVersion = null; - return _this; - // 3月17日 - 3月21日 工作完成内容 - // 1:游戏框架搭建 - // 2:制作18个基础方块预制体 (方块可编辑颜色与道具和状态) - // 3:完成地图的搭建,可配置8*8以内,任意组合,包括可缺口和障碍物配置 - // 4:完成地图墙面建立,根据 ↑3上面构建的地图自动生成墙体。 - // 5:做完方块的基础移动,跟随手指,遇到方块或者墙壁或者障碍物阻碍移动。 - // 6:方块的自动落点做完11个基础方块的(未做完还差11个) - // 3月24日 - 3月28日 预计完成目标 - // 1:完成全部方块的落点。 - // 2:完成门的搭建,门可选颜色,可选开关或者星星等特殊状态 - // 3:完成方块通过门的游戏逻辑,使游戏可以最基础运行玩起来 - // 4:出5关版本,配合小白备案审核。 - // 5:根据方块,地图,以及道具,制作地图编辑器 (方块和地图制作的时候都已经考虑到编辑器的需求了) - // 优先制作,后续开发拓展玩法功能时,小白可同步进行制作关卡。 - } - NewClass.prototype.start = function () { - // cc.fx.AudioManager.Instance.init(); - // this.testVersion.string = this.clientTestVersion; - // cc.director.loadScene("GameScene"); - // cc.director.preloadScene("GameScene", ()=>{ - // // debugger; - // }) - }; - //判断来源 - NewClass.prototype.containsTrain = function (str) { - return /from=train/i.test(str); - }; - //开始游戏,跳转至引导页面 - NewClass.prototype.startGame = function () { - cc.director.loadScene("GameScene"); - // cc.director.loadScene("GuideScene"); - }; - //备用,用来测试跳转 指定关卡 - NewClass.prototype.clickBtn = function (event, data) { - cc.fx.GameConfig.GM_INFO.custom = parseInt(data); - cc.director.loadScene("GameScene"); - }; - //打开排行榜 - NewClass.prototype.openRank = function () { - cc.director.loadScene("RankScene"); - }; - NewClass.prototype.update = function (dt) { - }; - __decorate([ - property(cc.Node) - ], NewClass.prototype, "node1", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "node2", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "node3", void 0); - __decorate([ - property(false) - ], NewClass.prototype, "localTest", void 0); - __decorate([ - property("") - ], NewClass.prototype, "clientTestVersion", void 0); - __decorate([ - property(cc.Label) - ], NewClass.prototype, "testVersion", void 0); - NewClass = __decorate([ - ccclass - ], NewClass); - return NewClass; -}(cc.Component)); -exports.default = NewClass; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwZWl6aGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUF3QyxFQUFFLENBQUMsVUFBVSxFQUFwRCxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxnQkFBZ0Isc0JBQWlCLENBQUM7QUFHNUQ7SUFBc0MsNEJBQVk7SUFBbEQ7UUFBQSxxRUE0RUM7UUF4RUcsV0FBSyxHQUFZLElBQUksQ0FBQztRQUd0QixXQUFLLEdBQVksSUFBSSxDQUFDO1FBR3RCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsZUFBUyxHQUFZLEtBQUssQ0FBQztRQUczQix1QkFBaUIsR0FBVyxPQUFPLENBQUM7UUFHcEMsaUJBQVcsR0FBYSxJQUFJLENBQUM7O1FBd0NqQywyQkFBMkI7UUFFM0IsV0FBVztRQUNYLGlDQUFpQztRQUNqQyxzQ0FBc0M7UUFDdEMsaUNBQWlDO1FBQ2pDLHNDQUFzQztRQUN0QyxnQ0FBZ0M7UUFFaEMsdUJBQXVCO1FBRXZCLGVBQWU7UUFDZiwrQkFBK0I7UUFDL0IsK0JBQStCO1FBQy9CLG9CQUFvQjtRQUNwQixvREFBb0Q7UUFDcEQsaUNBQWlDO0lBQ2pDLENBQUM7SUF2REcsd0JBQUssR0FBTDtRQUVJLHNDQUFzQztRQUN0QyxvREFBb0Q7UUFFcEQsc0NBQXNDO1FBRXRDLDhDQUE4QztRQUM5QyxtQkFBbUI7UUFFbkIsS0FBSztJQUNULENBQUM7SUFFRCxNQUFNO0lBQ04sZ0NBQWEsR0FBYixVQUFjLEdBQUc7UUFFYixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7SUFDZCw0QkFBUyxHQUFUO1FBQ0ksRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsdUNBQXVDO0lBQzNDLENBQUM7SUFDRCxnQkFBZ0I7SUFDaEIsMkJBQVEsR0FBUixVQUFTLEtBQUssRUFBQyxJQUFJO1FBQ2YsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE9BQU87SUFDUCwyQkFBUSxHQUFSO1FBQ0ksRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUdTLHlCQUFNLEdBQWhCLFVBQWlCLEVBQVU7SUFDM0IsQ0FBQztJQXJERDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MkNBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsyQ0FDSTtJQUd0QjtRQURDLFFBQVEsQ0FBQyxLQUFLLENBQUM7K0NBQ1c7SUFHM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDO3VEQUN1QjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO2lEQUNVO0lBbkJaLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0E0RTVCO0lBQUQsZUFBQztDQTVFRCxBQTRFQyxDQTVFcUMsRUFBRSxDQUFDLFNBQVMsR0E0RWpEO2tCQTVFb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5LCByZXF1aXJlQ29tcG9uZW50fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbm9kZTE6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbm9kZTI6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbm9kZTM6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShmYWxzZSlcclxuICAgIGxvY2FsVGVzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBwcm9wZXJ0eShcIlwiKVxyXG4gICAgY2xpZW50VGVzdFZlcnNpb246IHN0cmluZyA9IFwiMS4wLjBcIjtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICB0ZXN0VmVyc2lvbjogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuXHJcbiAgICAgICAgLy8gY2MuZnguQXVkaW9NYW5hZ2VyLkluc3RhbmNlLmluaXQoKTtcclxuICAgICAgICAvLyB0aGlzLnRlc3RWZXJzaW9uLnN0cmluZyA9IHRoaXMuY2xpZW50VGVzdFZlcnNpb247XHJcblxyXG4gICAgICAgIC8vIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuXHJcbiAgICAgICAgLy8gY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIsICgpPT57XHJcbiAgICAgICAgLy8gICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgICBcclxuICAgICAgICAvLyB9KVxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yik5pat5p2l5rqQXHJcbiAgICBjb250YWluc1RyYWluKHN0cikge1xyXG4gICAgXHJcbiAgICAgICAgcmV0dXJuIC9mcm9tPXRyYWluL2kudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5byA5aeL5ri45oiP77yM6Lez6L2s6Iez5byV5a+86aG16Z2iXHJcbiAgICBzdGFydEdhbWUoKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgLy8gY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR3VpZGVTY2VuZVwiKTtcclxuICAgIH1cclxuICAgIC8v5aSH55So77yM55So5p2l5rWL6K+V6Lez6L2sIOaMh+WumuWFs+WNoVxyXG4gICAgY2xpY2tCdG4oZXZlbnQsZGF0YSl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmN1c3RvbSA9IHBhcnNlSW50KGRhdGEpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgIH0gICBcclxuICAgIC8v5omT5byA5o6S6KGM5qacXHJcbiAgICBvcGVuUmFuaygpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIlJhbmtTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIHByb3RlY3RlZCB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgfVxyXG4gICAgXHJcbi8vICAgICAz5pyIMTfml6UgLSAz5pyIMjHml6Ug5bel5L2c5a6M5oiQ5YaF5a65XHJcblxyXG4vLyAx77ya5ri45oiP5qGG5p625pCt5bu6XHJcbi8vIDLvvJrliLbkvZwxOOS4quWfuuehgOaWueWdl+mihOWItuS9kyAo5pa55Z2X5Y+v57yW6L6R6aKc6Imy5LiO6YGT5YW35ZKM54q25oCBKVxyXG4vLyAz77ya5a6M5oiQ5Zyw5Zu+55qE5pCt5bu677yM5Y+v6YWN572uOCo45Lul5YaF77yM5Lu75oSP57uE5ZCI77yM5YyF5ous5Y+v57y65Y+j5ZKM6Zqc56KN54mp6YWN572uXHJcbi8vIDTvvJrlrozmiJDlnLDlm77lopnpnaLlu7rnq4vvvIzmoLnmja4g4oaRM+S4iumdouaehOW7uueahOWcsOWbvuiHquWKqOeUn+aIkOWimeS9k+OAglxyXG4vLyA177ya5YGa5a6M5pa55Z2X55qE5Z+656GA56e75Yqo77yM6Lef6ZqP5omL5oyH77yM6YGH5Yiw5pa55Z2X5oiW6ICF5aKZ5aOB5oiW6ICF6Zqc56KN54mp6Zi756KN56e75Yqo44CCXHJcbi8vIDbvvJrmlrnlnZfnmoToh6rliqjokL3ngrnlgZrlrowxMeS4quWfuuehgOaWueWdl+eahO+8iOacquWBmuWujOi/mOW3rjEx5Liq77yJXHJcblxyXG4vLyAz5pyIMjTml6UgLSAz5pyIMjjml6Ug6aKE6K6h5a6M5oiQ55uu5qCHXHJcblxyXG4vLyAx77ya5a6M5oiQ5YWo6YOo5pa55Z2X55qE6JC954K544CCXHJcbi8vIDLvvJrlrozmiJDpl6jnmoTmkK3lu7rvvIzpl6jlj6/pgInpopzoibLvvIzlj6/pgInlvIDlhbPmiJbogIXmmJ/mmJ/nrYnnibnmrornirbmgIFcclxuLy8gM++8muWujOaIkOaWueWdl+mAmui/h+mXqOeahOa4uOaIj+mAu+i+ke+8jOS9v+a4uOaIj+WPr+S7peacgOWfuuehgOi/kOihjOeOqei1t+adpVxyXG4vLyA077ya5Ye6NeWFs+eJiOacrO+8jOmFjeWQiOWwj+eZveWkh+ahiOWuoeaguOOAglxyXG4vLyA177ya5qC55o2u5pa55Z2X77yM5Zyw5Zu+77yM5Lul5Y+K6YGT5YW377yM5Yi25L2c5Zyw5Zu+57yW6L6R5ZmoICjmlrnlnZflkozlnLDlm77liLbkvZznmoTml7blgJnpg73lt7Lnu4/ogIPomZHliLDnvJbovpHlmajnmoTpnIDmsYLkuoYpIFxyXG4vLyBcdOS8mOWFiOWItuS9nO+8jOWQjue7reW8gOWPkeaLk+WxleeOqeazleWKn+iDveaXtu+8jOWwj+eZveWPr+WQjOatpei/m+ihjOWItuS9nOWFs+WNoeOAglxyXG59XHJcbiJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Barrier.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '90c37YHUUVPsY0mlNmom67u', 'Barrier'); -// Script/Barrier.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var Map_1 = require("./Map"); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var Block = /** @class */ (function (_super) { - __extends(Block, _super); - function Block() { - var _this = _super !== null && _super.apply(this, arguments) || this; - // 新增缓存变量 - _this.selfBoxColliders = []; - _this.allBoxColliders = []; - // @property({ - // tooltip: '碰撞形状,None就是无敌,不参与碰撞', - // type: cc.Enum(BlockType), - // // default: BlockType.Nomal, - // displayName: '碰撞形状' - // }) - // LIFE-CYCLE CALLBACKS: - // @property(cc.SpriteAtlas) - // UI: cc.SpriteAtlas = null; - _this.initialTouchOffset = null; - _this.offsetTolerance = 100; // 偏移容忍度; - _this.touchPoint = null; //触摸点 - _this.isTouch = false; //是否触摸 - _this.posX = 0; //地图块的X坐标 - _this.posY = 0; //地图块的Y坐标 - _this.moveLeft = true; //是否可以左移; - _this.moveRight = true; //是否可以右移; - _this.moveUp = true; //是否可以上移; - _this.moveDown = true; //是否可以下移; - _this.moveCorner = 0; //是否碰撞角落 - _this.moveY = 0; //是否可以上下移动; - _this.moveX = 0; //是否可以左右移动; - _this.touchPointX = 0; //触摸点X坐标; - _this.touchPointY = 0; //触摸点Y坐标; - _this.blockId = 0; //方块ID; - _this.level = 0; //叠加方块层数; - _this.pz = false; - return _this; - } - Block.prototype.onLoad = function () { - // this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this); - // this.node.on(cc.Node.EventType.TOUCH_MOVE, this.touchMove, this); - // this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEnd, this); - // this.node.on(cc.Node.EventType.TOUCH_END, this.touchEnd, this); - this.pz = false; - this.stacking = cc.v2(0, 0); - // this.selfBoxColliders = this.node.getComponentsInChildren(cc.BoxCollider) - // .filter(collider => collider.tag < 4); - }; - Block.prototype.start = function () { - }; - Block.prototype.jsonDeepClone = function (obj) { - return JSON.parse(JSON.stringify(obj)); - }; - Block.prototype.init = function (block_Info, posX, posY, node) { - this.block_Info = this.jsonDeepClone(block_Info); - var mapInfo = Map_1.default._instance.mapInfo; - for (var i = 0; i < mapInfo.length; i++) { - var blockRect = mapInfo[i].getBoundingBox(); - // 使用 cc.Intersection.pointInRect 方法判断点是否在矩形范围内 - var point = cc.v2(this.node.position.x - 5, this.node.position.y + 10); - if (blockRect.contains(point)) { - this.posX = mapInfo[i].getComponent("MapBlock").posX; - this.posY = mapInfo[i].getComponent("MapBlock").posY; - this.level = 50 + this.posX - this.posY * 3; - this.node.zIndex = this.level; - this.node.x = mapInfo[i].x + 65; - this.node.y = mapInfo[i].y - 60; - i = 10000; - break; - } - } - }; - Block = __decorate([ - ccclass - ], Block); - return Block; -}(cc.Component)); -exports.default = Block; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCYXJyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDZCQUFnQztBQUUxQixJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQXlGQztRQXZGRyxTQUFTO1FBQ0Qsc0JBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUN4QyxxQkFBZSxHQUFxQixFQUFFLENBQUM7UUFDL0MsY0FBYztRQUNkLHNDQUFzQztRQUN0QyxnQ0FBZ0M7UUFDaEMsbUNBQW1DO1FBQ25DLDBCQUEwQjtRQUMxQixLQUFLO1FBS0wsd0JBQXdCO1FBQ3hCLDRCQUE0QjtRQUM1Qiw2QkFBNkI7UUFDckIsd0JBQWtCLEdBQVksSUFBSSxDQUFDO1FBQ25DLHFCQUFlLEdBQUcsR0FBRyxDQUFDLENBQUMsVUFBVTtRQUd6QyxnQkFBVSxHQUFZLElBQUksQ0FBQyxDQUFLLEtBQUs7UUFDckMsYUFBTyxHQUFZLEtBQUssQ0FBQyxDQUFPLE1BQU07UUFDdEMsVUFBSSxHQUFXLENBQUMsQ0FBQyxDQUFlLFNBQVM7UUFDekMsVUFBSSxHQUFXLENBQUMsQ0FBQyxDQUFlLFNBQVM7UUFDekMsY0FBUSxHQUFZLElBQUksQ0FBQyxDQUFNLFNBQVM7UUFDeEMsZUFBUyxHQUFZLElBQUksQ0FBQyxDQUFLLFNBQVM7UUFDeEMsWUFBTSxHQUFZLElBQUksQ0FBQyxDQUFRLFNBQVM7UUFDeEMsY0FBUSxHQUFZLElBQUksQ0FBQyxDQUFNLFNBQVM7UUFDeEMsZ0JBQVUsR0FBVyxDQUFDLENBQUMsQ0FBUSxRQUFRO1FBQ3ZDLFdBQUssR0FBVSxDQUFDLENBQUMsQ0FBVSxXQUFXO1FBQ3RDLFdBQUssR0FBVSxDQUFDLENBQUMsQ0FBVSxXQUFXO1FBQ3RDLGlCQUFXLEdBQVcsQ0FBQyxDQUFDLENBQVEsU0FBUztRQUN6QyxpQkFBVyxHQUFXLENBQUMsQ0FBQyxDQUFRLFNBQVM7UUFDekMsYUFBTyxHQUFXLENBQUMsQ0FBQyxDQUFZLE9BQU87UUFFdkMsV0FBSyxHQUFXLENBQUMsQ0FBQyxDQUFZLFNBQVM7UUFDdkMsUUFBRSxHQUFZLEtBQUssQ0FBQzs7SUFtRHhCLENBQUM7SUF6Q0csc0JBQU0sR0FBTjtRQUNJLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUsdUVBQXVFO1FBQ3ZFLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLDRFQUE0RTtRQUM1RSx5Q0FBeUM7SUFDN0MsQ0FBQztJQUdELHFCQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsNkJBQWEsR0FBYixVQUFpQixHQUFNO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELG9CQUFJLEdBQUosVUFBSyxVQUFVLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sR0FBRyxhQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUM1QyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztZQUMvQixJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUMsK0NBQStDO1lBQy9DLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUE7WUFDbEUsSUFBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFDO2dCQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLENBQUMsR0FBRSxLQUFLLENBQUM7Z0JBQ1QsTUFBTTthQUNUO1NBQ0o7SUFFTCxDQUFDO0lBdkZnQixLQUFLO1FBRHpCLE9BQU87T0FDYSxLQUFLLENBeUZ6QjtJQUFELFlBQUM7Q0F6RkQsQUF5RkMsQ0F6RmtDLEVBQUUsQ0FBQyxTQUFTLEdBeUY5QztrQkF6Rm9CLEtBQUsiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29sbGlzaW9uRGV0ZWN0aW9uIGZyb20gXCIuL0NvbGxpc2lvbkRldGVjdGlvblwiO1xyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJsb2NrIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICAvLyDmlrDlop7nvJPlrZjlj5jph49cclxuICAgIHByaXZhdGUgc2VsZkJveENvbGxpZGVyczogY2MuQm94Q29sbGlkZXJbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBhbGxCb3hDb2xsaWRlcnM6IGNjLkJveENvbGxpZGVyW10gPSBbXTtcclxuICAgIC8vIEBwcm9wZXJ0eSh7XHJcbiAgICAvLyAgICAgdG9vbHRpcDogJ+eisOaSnuW9oueKtu+8jE5vbmXlsLHmmK/ml6DmlYzvvIzkuI3lj4LkuI7norDmkp4nLFxyXG4gICAgLy8gICAgIHR5cGU6IGNjLkVudW0oQmxvY2tUeXBlKSxcclxuICAgIC8vICAgICAvLyBkZWZhdWx0OiBCbG9ja1R5cGUuTm9tYWwsXHJcbiAgICAvLyAgICAgZGlzcGxheU5hbWU6ICfnorDmkp7lvaLnirYnXHJcbiAgICAvLyB9KVxyXG5cclxuXHJcblxyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG4gICAgLy8gQHByb3BlcnR5KGNjLlNwcml0ZUF0bGFzKVxyXG4gICAgLy8gVUk6IGNjLlNwcml0ZUF0bGFzID0gbnVsbDtcclxuICAgIHByaXZhdGUgaW5pdGlhbFRvdWNoT2Zmc2V0OiBjYy5WZWMyID0gbnVsbDtcclxuICAgIHByaXZhdGUgb2Zmc2V0VG9sZXJhbmNlID0gMTAwOyAvLyDlgY/np7vlrrnlv43luqY7IFxyXG5cclxuICAgIGFsbEJsb2Nrczphbnk7ICAgICAgIC8v5omA5pyJ55qE5pa55Z2XLOeUqOS6juiuoeeul3Bvc1gscG9zWea2iOmZpFxyXG4gICAgdG91Y2hQb2ludDogY2MuVmVjMiA9IG51bGw7ICAgICAvL+inpuaRuOeCuVxyXG4gICAgaXNUb3VjaDogYm9vbGVhbiA9IGZhbHNlOyAgICAgICAvL+aYr+WQpuinpuaRuFxyXG4gICAgcG9zWDogbnVtYmVyID0gMDsgICAgICAgICAgICAgICAvL+WcsOWbvuWdl+eahFjlnZDmoIdcclxuICAgIHBvc1k6IG51bWJlciA9IDA7ICAgICAgICAgICAgICAgLy/lnLDlm77lnZfnmoRZ5Z2Q5qCHXHJcbiAgICBtb3ZlTGVmdDogYm9vbGVhbiA9IHRydWU7ICAgICAgLy/mmK/lkKblj6/ku6Xlt6bnp7s7XHJcbiAgICBtb3ZlUmlnaHQ6IGJvb2xlYW4gPSB0cnVlOyAgICAgLy/mmK/lkKblj6/ku6Xlj7Pnp7s7XHJcbiAgICBtb3ZlVXA6IGJvb2xlYW4gPSB0cnVlOyAgICAgICAgLy/mmK/lkKblj6/ku6XkuIrnp7s7XHJcbiAgICBtb3ZlRG93bjogYm9vbGVhbiA9IHRydWU7ICAgICAgLy/mmK/lkKblj6/ku6XkuIvnp7s7XHJcbiAgICBtb3ZlQ29ybmVyOiBudW1iZXIgPSAwOyAgICAgICAgLy/mmK/lkKbnorDmkp7op5LokL1cclxuICAgIG1vdmVZOm51bWJlciA9IDA7ICAgICAgICAgIC8v5piv5ZCm5Y+v5Lul5LiK5LiL56e75YqoO1xyXG4gICAgbW92ZVg6bnVtYmVyID0gMDsgICAgICAgICAgLy/mmK/lkKblj6/ku6Xlt6blj7Pnp7vliqg7XHJcbiAgICB0b3VjaFBvaW50WDogbnVtYmVyID0gMDsgICAgICAgIC8v6Kem5pG454K5WOWdkOaghztcclxuICAgIHRvdWNoUG9pbnRZOiBudW1iZXIgPSAwOyAgICAgICAgLy/op6bmkbjngrlZ5Z2Q5qCHO1xyXG4gICAgYmxvY2tJZDogbnVtYmVyID0gMDsgICAgICAgICAgICAvL+aWueWdl0lEO1xyXG4gICAgc3RhY2tpbmc6IGNjLlZlYzI7ICAgICAgICAvL+WPoOWKoOaWueWdl1xyXG4gICAgbGV2ZWw6IG51bWJlciA9IDA7ICAgICAgICAgICAgLy/lj6DliqDmlrnlnZflsYLmlbA7XHJcbiAgICBwejogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgY29sbGlkZXI6IGFueTtcclxuICAgIGJsb2NrX0luZm86YW55O1xyXG4gICAgX3RvdWNoTGlzdGVuZXI6IGFueTtcclxuICAgIHJlbGF0aXZlX1Bvc2l0aW9uOmNjLlZlYzI7ICAvL+eCueWHu+WSjOaWueWdl+ebuOWvueS9jee9rlxyXG4gICAgcHJpdmF0ZSBfZXZlbnRNYW5hZ2VyOiBhbnk7XHJcbiAgICBoaXQ6IGNjLk5vZGU7XHJcblxyXG5cclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9TVEFSVCwgdGhpcy50b3VjaFN0YXJ0LCB0aGlzKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfTU9WRSwgdGhpcy50b3VjaE1vdmUsIHRoaXMpOyAgXHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0NBTkNFTCwgdGhpcy50b3VjaEVuZCwgdGhpcyk7ICBcclxuICAgICAgICAvLyB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfRU5ELCB0aGlzLnRvdWNoRW5kLCB0aGlzKTsgIFxyXG4gICAgICAgIHRoaXMucHogPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0YWNraW5nID0gY2MudjIoMCwwKTtcclxuICAgICAgICAvLyB0aGlzLnNlbGZCb3hDb2xsaWRlcnMgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50c0luQ2hpbGRyZW4oY2MuQm94Q29sbGlkZXIpXHJcbiAgICAgICAgLy8gLmZpbHRlcihjb2xsaWRlciA9PiBjb2xsaWRlci50YWcgPCA0KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBqc29uRGVlcENsb25lPFQ+KG9iajogVCk6IFQge1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQoYmxvY2tfSW5mbyxwb3NYLHBvc1ksbm9kZSl7XHJcbiAgICAgICAgdGhpcy5ibG9ja19JbmZvID0gdGhpcy5qc29uRGVlcENsb25lKGJsb2NrX0luZm8pO1xyXG4gICAgICAgIGxldCBtYXBJbmZvID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEluZm87XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8bWFwSW5mby5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGxldCBibG9ja1JlY3QgPSBtYXBJbmZvW2ldLmdldEJvdW5kaW5nQm94KCk7XHJcbiAgICAgICAgICAgIC8vIOS9v+eUqCBjYy5JbnRlcnNlY3Rpb24ucG9pbnRJblJlY3Qg5pa55rOV5Yik5pat54K55piv5ZCm5Zyo55+p5b2i6IyD5Zu05YaFXHJcbiAgICAgICAgICAgIGxldCBwb2ludCA9IGNjLnYyKHRoaXMubm9kZS5wb3NpdGlvbi54LTUsIHRoaXMubm9kZS5wb3NpdGlvbi55KzEwKVxyXG4gICAgICAgICAgICBpZihibG9ja1JlY3QuY29udGFpbnMocG9pbnQpKXtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zWCA9IG1hcEluZm9baV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWDtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zWSA9IG1hcEluZm9baV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGV2ZWwgPSA1MCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnpJbmRleCA9IHRoaXMubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUueCA9IG1hcEluZm9baV0ueCArIDY1O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgPSBtYXBJbmZvW2ldLnkgLSA2MDtcclxuICAgICAgICAgICAgICAgIGk9IDEwMDAwO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuXHJcbiJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/btnControl.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '6ee6czJ4eVNb4Feiqps5SIa', 'btnControl'); -// Script/btnControl.ts - -"use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var btnControl = /** @class */ (function (_super) { - __extends(btnControl, _super); - function btnControl() { - return _super !== null && _super.apply(this, arguments) || this; - } - btnControl.prototype.onLoad = function () { - this._touch = true; - }; - btnControl.prototype.start = function () { - }; - btnControl.prototype.setTouch = function (type) { - this._touch = type; - }; - btnControl.prototype.update = function (dt) { - }; - btnControl = __decorate([ - ccclass - ], btnControl); - return btnControl; -}(cc.Component)); -exports.default = btnControl; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxidG5Db250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRzVFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSTFDO0lBQXdDLDhCQUFZO0lBQXBEOztJQWtCQSxDQUFDO0lBYkcsMkJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwwQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELDZCQUFRLEdBQVIsVUFBUyxJQUFJO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELDJCQUFNLEdBQU4sVUFBUSxFQUFFO0lBQ1YsQ0FBQztJQWpCZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQWtCOUI7SUFBRCxpQkFBQztDQWxCRCxBQWtCQyxDQWxCdUMsRUFBRSxDQUFDLFNBQVMsR0FrQm5EO2tCQWxCb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBidG5Db250cm9sIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIF90b3VjaDogYm9vbGVhbjtcclxuXHJcblxyXG4gICAgb25Mb2FkICgpIHsgXHJcbiAgICAgICAgdGhpcy5fdG91Y2ggPSB0cnVlO1xyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VG91Y2godHlwZSl7XHJcbiAgICAgICAgdGhpcy5fdG91Y2ggPSB0eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICAgIH1cclxufVxyXG4iXX0= //------QC-SOURCE-SPLIT------ (function() { @@ -8283,6 +6912,8 @@ var MapConroler = /** @class */ (function (_super) { this.homeCanTouch = true; this.againCanTouch = true; this.new_mode = 0; + this.count_Time = 0; + this.add_Time = 0; this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString(); this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString(); this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString(); @@ -8324,8 +6955,6 @@ var MapConroler = /** @class */ (function (_super) { this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time"); this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level"); this.timeNumber = cc.fx.GameConfig.LEVEL_INFO[0].time; - this.count_Time = 0; - this.add_Time = 0; NumberToImage_1.default.getTimeMargin(this.timeNumber, 50, "time_", this.timeLabel); // var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber); // this.timeLabel.string = timeTemp.toString(); @@ -8350,6 +6979,8 @@ var MapConroler = /** @class */ (function (_super) { this.mapBlockArray = []; this.freezeArray = []; this.loackArray = []; + this.count_Time = 0; + this.add_Time = 0; var startX = this.mapWidth % 2 == 0 ? -(this.mapWidth - 1) * 60 : -(this.mapWidth - 1) * 60; var startY = this.mapHeight % 2 == 0 ? -(this.mapHeight - 1) * 60 : -(this.mapHeight - 1) * 60; // startX =(this.mapWidth-1)*60 + 60; @@ -9334,11 +7965,7 @@ var MapConroler = /** @class */ (function (_super) { this.stopTimeCutDown(); // console.log("成功消除一个"); cc.fx.GameTool.changeCoin(40); - var timeData = { - count_Time: this.count_Time, - add_Time: this.add_Time - }; - cc.fx.GameTool.addLevel(timeData); + cc.fx.GameTool.addLevel(this.count_Time, this.add_Time); this.check_NewMode(); setTimeout(function () { _this.node.parent.parent.getChildByName("Win").active = true; @@ -9362,7 +7989,7 @@ var MapConroler = /** @class */ (function (_super) { cc.fx.AudioManager._instance.playEffect("anniu_Big", null); if (cc.fx.GameConfig.GM_INFO.level > 156) { cc.fx.GameConfig.GM_INFO.level = 156; - MapConroler_1._instance = null; + // MapConroler._instance = null; if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; this.openNewMode(2); @@ -9391,7 +8018,7 @@ var MapConroler = /** @class */ (function (_super) { } else { // console.log("下一关"); - MapConroler_1._instance = null; + // MapConroler._instance = null; if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; this.openNewMode(2); @@ -9422,7 +8049,7 @@ var MapConroler = /** @class */ (function (_super) { if (!this.againCanTouch) return; this.againCanTouch = false; - MapConroler_1._instance = null; + // MapConroler._instance = null; cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.parent.parent.parent.getChildByName("zhuanchang").active = true; this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); @@ -9495,7 +8122,7 @@ var MapConroler = /** @class */ (function (_super) { return; } // MiniGameSdk.API.showToast("体力值减少"); - MapConroler_1._instance = null; + // MapConroler._instance = null; cc.fx.GameConfig.LEVEL_INFO_init(false, 0); if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; @@ -10110,7 +8737,1057 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkNBQXdDO0FBRXhDLGlEQUE0QztBQUM1QyxpREFBZ0Q7QUFFMUMsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFLMUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUFtK0RDO1FBOTlERyxpQkFBVyxHQUFzQixFQUFFLENBQUM7UUFHcEMsZ0JBQVUsR0FBc0IsRUFBRSxDQUFDO1FBR25DLG9CQUFjLEdBQWMsSUFBSSxDQUFDO1FBR2pDLGlCQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUl6QyxpQkFBVyxHQUFzQixFQUFFLENBQUM7UUFLcEMsb0JBQWMsR0FBYyxJQUFJLENBQUM7UUFHakMsYUFBTyxHQUFjLElBQUksQ0FBQztRQUUxQixnQkFBVSxHQUFjLElBQUksQ0FBQztRQUU3QixjQUFRLEdBQWMsSUFBSSxDQUFDO1FBRzNCLFVBQUksR0FBWSxJQUFJLENBQUM7UUFHckIsY0FBUSxHQUFhLElBQUksQ0FBQztRQUUxQixpQkFBVyxHQUFhLElBQUksQ0FBQztRQUU3QixnQkFBVSxHQUFhLElBQUksQ0FBQztRQUc1QixlQUFTLEdBQVksSUFBSSxDQUFDO1FBRzFCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBSTNCLGFBQU8sR0FBWSxJQUFJLENBQUM7UUFFeEIsZUFBUyxHQUFZLElBQUksQ0FBQztRQUMxQixnQkFBVSxHQUFZLElBQUksQ0FBQztRQUUzQixjQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGNBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsZUFBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixhQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLGNBQVEsR0FBVyxDQUFDLENBQUM7UUFVckIsa0JBQVksR0FBVyxJQUFJLENBQUMsQ0FBQSxRQUFRO1FBQ3BDLG1CQUFhLEdBQVksSUFBSSxDQUFDLENBQUEsV0FBVztRQUN6QyxjQUFRLEdBQVksS0FBSyxDQUFDLENBQUEsUUFBUTtRQUNsQyxhQUFPLEdBQVksS0FBSyxDQUFDLENBQUEsUUFBUTtRQUNqQyxlQUFTLEdBQVksS0FBSyxDQUFDLENBQUEsUUFBUTtRQUNuQyxnQkFBVSxHQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVk7UUFDcEMsZ0JBQVUsR0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXO1FBQ25DLGNBQVEsR0FBVyxDQUFDLENBQUMsQ0FBRyxNQUFNO1FBRTlCLFdBQUssR0FBVyxLQUFLLENBQUMsQ0FBQSxNQUFNO1FBQzVCLFlBQU0sR0FBVyxLQUFLLENBQUMsQ0FBQSxNQUFNOztJQWk1RGpDLENBQUM7b0JBbitEb0IsV0FBVztJQTZGNUIsNEJBQTRCO0lBRTVCLDRCQUFNLEdBQU47UUFBQSxpQkFrQ0M7UUFoQ0csRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDcEMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDbEQsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsbUJBQW1CLENBQUMsVUFBQyxLQUFLO1lBQzVHLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUNqQyxlQUFlO2dCQUNmLEtBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7YUFDOUU7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSTtRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUk7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSTtRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUVsQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV6RSx5Q0FBeUM7UUFDekMsYUFBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUVELDJCQUFLLEdBQUw7UUFDSSxVQUFVLENBQUM7WUFDRixFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsVUFBQyxHQUFHLEVBQUUsS0FBSztnQkFDbEQsSUFBSSxHQUFHLEVBQUU7b0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDekMsT0FBTztpQkFDVjtZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ1QsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQVcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQ3JELElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQVcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQ3JELElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQVcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQ3JELGdFQUFnRTtRQUVoRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFbkIsQ0FBQztJQUVELGlDQUFXLEdBQVg7UUFDSSxJQUFHLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxFQUFDO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLGNBQWM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDL0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLEtBQUksSUFBSSxDQUFDLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDcEMsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFDO29CQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7aUJBQzFFO2FBQ0o7U0FDSjtJQUNMLENBQUM7SUFFRCw2QkFBTyxHQUFQO1FBQ0ksZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxTQUFTLEdBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsVUFBVSxHQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3RELElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLHVCQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDdEUsZ0VBQWdFO1FBQ2hFLCtDQUErQztRQUMvQyx1QkFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBQyxJQUFJLENBQUMsVUFBVSxFQUFDLEtBQUssQ0FBQyxDQUFBO1FBRXpHLDBCQUEwQjtRQUUxQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDN0MsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUV2RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFHckIsSUFBSSxNQUFNLEdBQUksSUFBSSxDQUFDLFFBQVEsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQztRQUM3RSxJQUFJLE1BQU0sR0FBSSxJQUFJLENBQUMsU0FBUyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDO1FBQ2hGLHFDQUFxQztRQUNyQyx1Q0FBdUM7UUFFdkMsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUM7WUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFM0IsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUM7Z0JBQ25DLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNoRCxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNwRCxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLDJFQUEyRTtnQkFDM0UsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDNUQsSUFBRyxRQUFRLElBQUksSUFBSSxFQUFDO29CQUNoQixJQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLEtBQUssQ0FBQyxFQUFDO3dCQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDbEM7aUJBQ0o7Z0JBQ0QsSUFBRyxHQUFHLElBQUcsSUFBSSxFQUFDO29CQUNWLElBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUMsQ0FBQzsyQkFDOUQsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUM7d0JBQ2pDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO3dCQUNwQixLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDakMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7d0JBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUM3Qjs7d0JBQ0ksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2pDO3FCQUNHO29CQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBQyxDQUFDOzJCQUMvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBQzt3QkFDakMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7d0JBQ3BCLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNqQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt3QkFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQzdCOzt3QkFDSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDakM7Z0JBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDckM7U0FDSjtRQUVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFckIsQ0FBQztJQUVELE1BQU07SUFDVixlQUFlO0lBRWYsTUFBTTtJQUNOLGVBQWU7SUFLZiwrQkFBUyxHQUFUO1FBQUEsaUJBMkZDO1FBMUZHLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhO1FBQzVCLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYztRQUN4QyxJQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMsQ0FBQyxXQUFXO1FBQ3JDLElBQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVc7UUFFcEMsSUFBTSxZQUFZLEdBQUc7WUFDakIsSUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO29DQUMzQixDQUFDO2dCQUNOLElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEMsb0JBQW9CO2dCQUNwQixJQUFNLFdBQVcsR0FBRyxLQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEMsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDO2dCQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyRSxJQUFJLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO29CQUN2QixLQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztvQkFDbkIsS0FBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3hCLElBQUksU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUU7d0JBQ3JCLElBQUksSUFBSSxHQUFHOzRCQUNQLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRSxHQUFHLENBQUM7NEJBQ3BCLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSzs0QkFDdEIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxRQUFROzRCQUN6QixJQUFJLEVBQUUsRUFBRTs0QkFDUixRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7NEJBQzVCLFFBQVEsRUFBRSxTQUFTLENBQUMsS0FBSzt5QkFDNUIsQ0FBQzt3QkFDRixvQkFBb0I7d0JBQ3BCLElBQU0sYUFBYSxHQUFHLEtBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNuRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUM1QyxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUM7d0JBQzNCLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBRTdELEtBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUMxQixLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDakUsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBRTVELEtBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO3FCQUN0Qjt5QkFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO3dCQUM1QixJQUFHLFNBQVMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFDOzRCQUMxQixLQUFLLEVBQUUsQ0FBQzs7eUJBRVg7d0JBQ0QsS0FBSyxFQUFFLENBQUM7d0JBQ1IsSUFBSSxNQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUM3QixvQkFBb0I7d0JBQ3BCLElBQU0sYUFBYSxHQUFHLEtBQUksQ0FBQyxXQUFXLENBQUMsTUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNuRCxJQUFJLFNBQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUM1QyxTQUFPLENBQUMsTUFBTSxHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUM7d0JBQzNCLFNBQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBRTdELEtBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQU8sQ0FBQyxDQUFDO3dCQUMxQixLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFPLEVBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3ZFLFVBQVUsQ0FBQzs0QkFDUCxTQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ3JFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDUixLQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztxQkFDdEI7eUJBQU07d0JBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7cUJBQy9DO2lCQUNKO3FCQUNHO29CQUNBLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUNqRDtnQkFDRCxLQUFLLEVBQUUsQ0FBQzs7WUF4RFosS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixJQUFJLEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTt3QkFBN0QsQ0FBQzthQXlEVDtZQUNELElBQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQyxJQUFNLFNBQVMsR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLHVCQUF1QjtZQUN2QixJQUFJLFNBQVMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2hCLGdCQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2FBQ3BFO2lCQUFNO2dCQUNILGdCQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2FBQ3BFO1lBRUQsb0JBQW9CO1lBQ3BCLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNCLHNDQUFzQztnQkFDdEMsS0FBSSxDQUFDLFlBQVksQ0FBQztvQkFDZCxZQUFZLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ1Q7aUJBQU07YUFFTjtRQUNMLENBQUMsQ0FBQztRQUVGLFdBQVc7UUFDWCxZQUFZLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0QseUJBQXlCO0lBQ3pCLCtCQUFTLEdBQVQsVUFBVSxTQUEyRDtRQUNqRSxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QiwwQkFBMEI7WUFDMUIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFDOUIsT0FBTyxDQUFDLENBQUM7YUFDWjtZQUNELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDYjtZQUVELDJCQUEyQjtZQUMzQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUMxQjtZQUNELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLE9BQU8sQ0FBQyxDQUFDO2FBQ1o7WUFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2I7WUFFRCw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNiO1lBQ0QsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDbEMsT0FBTyxDQUFDLENBQUM7YUFDWjtZQUVELGlCQUFpQjtZQUNqQixPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRCxNQUFNO0lBRU4sOEJBQVEsR0FBUjtRQUFBLGlCQXNDQztRQXJDRyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhO1FBQzVCLElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWM7UUFDdkMsSUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLENBQUMsV0FBVztRQUNyQyxJQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXO1FBRXBDLElBQU0sV0FBVyxHQUFHO1lBQ2hCLElBQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxJQUFJLEtBQUssR0FBRyxLQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdEUsSUFBSSxLQUFLLEdBQUcsS0FBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakMsSUFBSSxHQUFHLEdBQUcsS0FBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3hILElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtvQkFDYixLQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDL0I7Z0JBQ0QsS0FBSyxFQUFFLENBQUM7YUFDWDtZQUNELElBQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQyxJQUFNLFNBQVMsR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLHVCQUF1QjtZQUN2QixJQUFJLFNBQVMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2hCLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7YUFDbEU7aUJBQU07Z0JBQ0gsZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQzthQUNsRTtZQUVELG9CQUFvQjtZQUNwQixJQUFJLEtBQUssR0FBRyxLQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDOUIsS0FBSSxDQUFDLFlBQVksQ0FBQztvQkFDZCxXQUFXLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ1Q7aUJBQU07Z0JBQ0gsbUJBQW1CO2dCQUNuQixLQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzthQUM1QjtRQUNMLENBQUMsQ0FBQztRQUVGLFdBQVc7UUFDWCxXQUFXLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsZUFBZTtJQUVYLHFDQUFlLEdBQWYsVUFBZ0IsSUFBSSxFQUFDLE1BQU07UUFDdkIsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUcsSUFBSSxJQUFJLE1BQU07WUFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ2pDLElBQUcsSUFBSSxJQUFJLE1BQU07WUFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBRWpDLElBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFDO1lBQ3hCLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLEVBQUU7Z0JBQzFELElBQUcsSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxPQUFPLEVBQUM7aUJBRXpHOztvQkFDSSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzFCO1NBQ0o7UUFDRCxJQUFHLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDO1lBQ2IsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sRUFBQztnQkFDekQsSUFBRyxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxJQUFJLE1BQU0sRUFBQztpQkFFeEc7O29CQUNJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDekI7U0FDSjtRQUNELElBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFDO1lBQ3pCLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLEVBQUM7Z0JBQ3pELElBQUcsSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUM7aUJBRXRHOztvQkFDSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0o7UUFDRCxJQUFHLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDO1lBQ2IsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sRUFBQztnQkFDekQsSUFBRyxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxJQUFJLE1BQU0sRUFBQztpQkFFeEc7O29CQUNJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDekI7U0FDSjtRQUNELElBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUM7WUFFZCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsSUFBRyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBQztZQUNmLElBQUcsSUFBSSxJQUFJLE1BQU07Z0JBQ2IsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7O2dCQUVkLE9BQU8sSUFBSSxDQUFDO1NBQ25CO2FBQ0ksSUFBRyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBQztZQUNwQixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRUQsdUNBQWlCLEdBQWpCO1FBQ0ksU0FBUztRQUNULEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztZQUNyQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUM7Z0JBQ3BCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN0SCxJQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUM7b0JBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUMsS0FBSyxFQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3RHO2FBQ0o7U0FFSjtJQUVMLENBQUM7SUFFRCxnQ0FBVSxHQUFWLFVBQVcsU0FBUyxFQUFDLElBQUk7UUFDckIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELFFBQU8sU0FBUyxFQUFDO1lBQ2IsS0FBSyxPQUFPO2dCQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNuQixJQUFJLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMxQixrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM1SSw0R0FBNEc7Z0JBQzVHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFDbEIsSUFBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQztvQkFDNUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ3hCLElBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUM7b0JBQ2pFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUUvQixNQUFNO1lBQ1YsS0FBSyxNQUFNO2dCQUNQLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNuQixJQUFJLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLGtEQUFrRDtnQkFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzVJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUM5Qyw0R0FBNEc7Z0JBQzVHLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQixJQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDO29CQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDeEIsSUFBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQztvQkFDakUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLE1BQU07WUFDVixLQUFLLElBQUk7Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ25CLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLGtEQUFrRDtnQkFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBQyxTQUFTLENBQUMsQ0FBQztnQkFDNUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLDRHQUE0RztnQkFDNUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7Z0JBQ2xCLElBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUM7b0JBQzVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN4QixJQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDO29CQUNqRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNWLEtBQUssTUFBTTtnQkFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEMsa0RBQWtEO2dCQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxpREFBaUQ7Z0JBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzVJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUM5Qyw0R0FBNEc7Z0JBQzVHLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQixJQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDO29CQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDeEIsSUFBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQztvQkFDakUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLE1BQU07WUFDVixLQUFLLFNBQVMsQ0FBRTtZQUFDLEtBQUssU0FBUztnQkFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ25CLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0Msa0RBQWtEO2dCQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqSSxpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFDbEIsaUdBQWlHO2dCQUNqRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7Z0JBRWxCLE1BQU07WUFDVixLQUFLLFFBQVEsQ0FBRTtZQUFDLEtBQUssUUFBUTtnQkFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ25CLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0Msa0RBQWtEO2dCQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqSSxpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFDbEIsaUdBQWlHO2dCQUNqRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7Z0JBRWxCLE1BQU07WUFDVixLQUFLLFdBQVcsQ0FBRTtZQUFDLEtBQUssV0FBVztnQkFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ25CLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0Msa0RBQWtEO2dCQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqSSxpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFDbEIsaUdBQWlHO2dCQUNqRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7Z0JBRWxCLE1BQU07WUFDVixLQUFLLFVBQVUsQ0FBRTtZQUFDLEtBQUssVUFBVTtnQkFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ25CLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0Msa0RBQWtEO2dCQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqSSxpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFDbEIsaUdBQWlHO2dCQUNqRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7Z0JBRWxCLE1BQU07U0FFYjtRQUdELGdCQUFnQjtRQUNoQixvREFBb0Q7UUFDcEQsSUFBSTtJQUNSLENBQUM7SUFFRCxpQ0FBVyxHQUFYLFVBQVksSUFBSTtRQUNaLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3QyxJQUFHLFFBQVEsRUFBQztZQUNSLEtBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO2dCQUNwQyxJQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBQztvQkFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDcEM7YUFDSjtTQUNKO0lBQ0wsQ0FBQztJQUVELGdDQUFVLEdBQVYsVUFBVyxTQUFTLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJO1FBQy9CLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixJQUFJLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLFFBQU8sU0FBUyxFQUFDO1lBQ2IsS0FBSyxTQUFTLENBQUU7WUFBQyxLQUFLLFNBQVM7Z0JBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFFdEMsTUFBTTtZQUNWLEtBQUssUUFBUSxDQUFFO1lBQUMsS0FBSyxRQUFRO2dCQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO2dCQUNyQyxNQUFNO1lBQ1YsS0FBSyxXQUFXLENBQUU7WUFBQyxLQUFLLFdBQVc7Z0JBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO2dCQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQztnQkFDekMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25DLE1BQU07WUFDVixLQUFLLFVBQVUsQ0FBRTtZQUFDLEtBQUssVUFBVTtnQkFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztnQkFDckMsTUFBTTtTQUNiO1FBRUQsNkRBQTZEO1FBQzdELHdDQUF3QztRQUN4QyxJQUFJO1FBQ0osUUFBUTtRQUNSLHdDQUF3QztRQUV4QyxJQUFHLFNBQVMsSUFBSSxJQUFJLElBQUksU0FBUyxJQUFJLFFBQVEsSUFBSSxTQUFTLElBQUksUUFBUSxFQUNyRTtZQUNHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUMsQ0FBQyxDQUFDO1NBQ3JDO2FBQ0ksSUFBRyxTQUFTLElBQUksU0FBUyxJQUFJLFNBQVMsSUFBSSxTQUFTLElBQUksU0FBUyxJQUFJLFdBQVcsSUFBSSxTQUFTLElBQUksV0FBVyxJQUFJLFNBQVMsSUFBSSxVQUFVLEVBQUM7WUFDeEksSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBQyxDQUFDLENBQUM7U0FDaEM7YUFDQSxJQUFJLFNBQVMsSUFBSSxNQUFNLElBQUksU0FBUyxJQUFJLFVBQVUsRUFBQztZQUNwRCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFDLENBQUMsQ0FBQztTQUNwQzs7WUFDSSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFDLENBQUMsQ0FBQztRQUV0QyxrREFBa0Q7UUFDbEQsdUVBQXVFO1FBQ3ZFLDZFQUE2RTtRQUM3RSxzQ0FBc0M7UUFDdEMsc0JBQXNCO1FBQ3RCLGdGQUFnRjtJQUNwRixDQUFDO0lBRUQsVUFBVTtJQUNWLDRCQUFNLEdBQU4sVUFBTyxLQUFLLEVBQUMsR0FBRztRQUNaLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO1lBQzNCLElBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQztnQkFDMUMsT0FBTyxLQUFLLENBQUM7YUFDaEI7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxRQUFRO0lBQ1IsaUNBQVcsR0FBWCxVQUFZLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSztRQUM1QixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztZQUNoQyxJQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQztnQkFDNUQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUMvQyxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFDLEVBQUUsQ0FBQztnQkFDOUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM5RCxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN0RixPQUFPLElBQUksQ0FBQzthQUNmO1NBQ0o7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsTUFBTTtJQUNOLG9DQUFjLEdBQWQsVUFBZSxLQUFLLEVBQUMsSUFBSTtRQUNyQixLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztZQUMxQyxJQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUM7Z0JBQy9HLElBQUcsSUFBSSxFQUFDO29CQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7b0JBQ2hFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQ3BGO3FCQUNHO29CQUNBLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQy9ELElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQzlFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN6RzthQUNKO1NBRUo7SUFDTCxDQUFDO0lBSUQsU0FBUztJQUNULG9DQUFjLEdBQWQsVUFBZSxFQUFFO1FBQ2IsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO1lBQ25DLElBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBQztnQkFDbEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3pCO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSztJQUNMLGlDQUFXLEdBQVgsVUFBWSxFQUFFO1FBQ1YsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO1lBQ25DLElBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBQztnQkFDbEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3pCO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsa0NBQVksR0FBWixVQUFhLEtBQUs7UUFDZCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBRTVDLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQztRQUMzQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFDLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRXpDLElBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLEVBQUM7WUFDdkIsSUFBSSxHQUFHLEtBQUssR0FBQyxDQUFDLENBQUM7WUFDZixJQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQztnQkFBRSxJQUFJLEdBQUcsSUFBSSxHQUFDLENBQUMsQ0FBQztTQUN2QzthQUNJLElBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLEVBQUM7WUFDNUIsSUFBSSxHQUFHLEtBQUssR0FBQyxDQUFDLENBQUM7WUFDZixJQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQztnQkFBRSxJQUFJLEdBQUcsSUFBSSxHQUFDLENBQUMsQ0FBQztTQUN2QzthQUVJLElBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLEVBQUM7WUFDNUIsSUFBSSxHQUFHLEtBQUssR0FBQyxDQUFDLENBQUM7WUFDZixJQUFJLEdBQUcsSUFBSSxHQUFDLENBQUMsQ0FBQztTQUNqQjthQUNJLElBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLEVBQUM7WUFDNUIsSUFBSSxHQUFHLEtBQUssR0FBQyxDQUFDLENBQUM7WUFDZixJQUFJLEdBQUcsSUFBSSxHQUFDLENBQUMsQ0FBQztTQUNqQjthQUNJLElBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLEVBQUM7WUFDNUIsSUFBSSxHQUFHLEtBQUssR0FBQyxDQUFDLENBQUM7WUFDZixJQUFJLEdBQUcsSUFBSSxHQUFDLENBQUMsQ0FBQztTQUNqQjthQUNJLElBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLEVBQUM7WUFDNUIsSUFBSSxHQUFHLEtBQUssR0FBQyxDQUFDLENBQUM7WUFDZixJQUFJLEdBQUcsSUFBSSxHQUFDLENBQUMsQ0FBQztTQUNqQjtRQUVELE9BQU8sRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFlBQVk7SUFDWiwrQkFBUyxHQUFULFVBQVUsSUFBSSxFQUFDLE1BQU07UUFDakIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQzFCLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDMUIsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztRQUMxQixJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBRTFCLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RixXQUFXO1FBRVgsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25CLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxNQUFNLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBRSxFQUFDO1lBQzVCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMzRTtRQUVELHNDQUFzQztRQUN0QyxtQ0FBbUM7UUFFbkMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDWixJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDWCxXQUFXO1FBQ1gsd0JBQXdCO1FBQ3hCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQztRQUV6RCxjQUFjO1FBQ2QsSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzNDLHNDQUFzQztZQUN0Qyw4QkFBOEI7WUFDOUIsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNSLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNuQixLQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUM7Z0JBQzFDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNGLEtBQUksSUFBSSxHQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUMsRUFBRSxFQUFDO29CQUNyQyxJQUFHLFNBQVMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUM7d0JBQ3pELCtFQUErRTt3QkFDL0UsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDNUI7aUJBQ0o7YUFDSjtZQUNELGlDQUFpQztZQUNqQyxJQUFHLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFDO2dCQUNyQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBQyxTQUFTLENBQUMsQ0FBQztnQkFDbkgsSUFBRyxNQUFNLElBQUksSUFBSTtvQkFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqRSw4QkFBOEI7Z0JBQzlCLElBQUcsTUFBTSxFQUFDO29CQUVOLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO29CQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzdCLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2FBQ0o7U0FDSjtRQUNELElBQUksT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRTtZQUMzQyxzQ0FBc0M7WUFDdEMsOEJBQThCO1lBQzlCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDUixJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDcEIsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO2dCQUMzQyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3RixLQUFJLElBQUksR0FBQyxHQUFHLENBQUMsRUFBRSxHQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxHQUFDLEVBQUUsRUFBQztvQkFDckMsSUFBRyxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxFQUFDO3dCQUN6RCwrRUFBK0U7d0JBQy9FLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7cUJBQzlCO2lCQUNKO2FBQ0o7WUFFRCxJQUFHLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFDO2dCQUN0QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBQyxTQUFTLENBQUMsQ0FBQztnQkFFcEgsSUFBRyxNQUFNLElBQUksSUFBSTtvQkFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsRSw4QkFBOEI7Z0JBQzlCLElBQUcsTUFBTSxFQUFDO29CQUVOLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO29CQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzdCLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2FBQ0o7U0FHSjtRQUNELElBQUksT0FBTyxDQUFDLENBQUMsSUFBSyxJQUFJLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRTtZQUM1QyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1Isc0NBQXNDO1lBQ3RDLDhCQUE4QjtZQUM5QixJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDbkIsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO2dCQUN6QyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDekQsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvRixLQUFJLElBQUksR0FBQyxHQUFHLENBQUMsRUFBRSxHQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxHQUFDLEVBQUUsRUFBQztvQkFDckMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDakQsSUFBRyxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQzt3QkFDckcsK0VBQStFO3dCQUMvRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3FCQUM5QjtpQkFDSjthQUNKO1lBRUQsSUFBRyxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBQztnQkFDckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ25ILElBQUcsTUFBTSxJQUFJLElBQUk7b0JBQUUsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDakUsOEJBQThCO2dCQUM5QixJQUFHLE1BQU0sRUFBQztvQkFFTixJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM3QixFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUM3QixPQUFPLEVBQUUsQ0FBQztpQkFDYjthQUNKO1NBR0o7UUFDRCxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUssSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDNUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNSLHNDQUFzQztZQUN0Qyw4QkFBOEI7WUFDOUIsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLEtBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDNUMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3pELElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekYsS0FBSSxJQUFJLEdBQUMsR0FBRyxDQUFDLEVBQUUsR0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBQyxFQUFFLEVBQUM7b0JBQ3JDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQ2pELElBQUcsU0FBUyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUM7d0JBQ3JHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQ3pCO2lCQUNKO2FBQ0o7WUFFRCxJQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFDO2dCQUNuQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBQyxTQUFTLENBQUMsQ0FBQztnQkFDakgsSUFBRyxNQUFNLElBQUksSUFBSTtvQkFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvRCxrQ0FBa0M7Z0JBQ2xDLElBQUcsTUFBTSxFQUFDO29CQUVOLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO29CQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzdCLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2FBQ0o7U0FFSjtRQUNELElBQUcsRUFBRSxJQUFJLENBQUM7WUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEIsdUNBQXVDO1FBQ3ZDLHFDQUFxQztRQUNyQyxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxpQ0FBVyxHQUFYO1FBQ0ksSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUM7WUFDekIsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO2dCQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDN0U7U0FDSjtRQUVELElBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUcsQ0FBQyxFQUFDO1lBQzFCLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ2pGO1NBQ0o7SUFDTCxDQUFDO0lBRUQsV0FBVztJQUNYLDhCQUFRLEdBQVIsVUFBUyxFQUFFLEVBQUMsU0FBUyxFQUFDLElBQUk7UUFDdEIsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFDL0IsSUFBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUM7Z0JBQzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbEU7WUFDRCxJQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUM7Z0JBQ2pHLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ1gsTUFBTTthQUNUO1lBQ0QsOEdBQThHO1lBQzlHLElBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUM7Z0JBRTNFLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ1gsTUFBTTthQUNUO1lBQ0QsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUM7Z0JBQ3BDLElBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFDO29CQUM5QyxFQUFFLEdBQUcsS0FBSyxDQUFDO29CQUNYLE1BQU07aUJBQ1Q7YUFDSjtTQUNKO1FBQ0QsSUFBRyxFQUFFLElBQUksSUFBSSxJQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUNuRCxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsU0FBUyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFDL0IsSUFBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBQztvQkFDekcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztpQkFDcEQ7YUFDSjtTQUNKO1FBQ0Qsc0NBQXNDO1FBQ3RDLG9DQUFvQztRQUNwQyxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsb0NBQWMsR0FBZCxVQUFlLFNBQVMsRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLE1BQU07UUFDckMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2QsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1osSUFBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUNqQixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDOUIsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNkLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2QsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDaEUsRUFBRSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0MsSUFBRyxDQUFDLEVBQUUsRUFBQztvQkFDSCx5QkFBeUI7b0JBQ3pCLENBQUMsR0FBRyxPQUFPLENBQUM7b0JBQ1osT0FBTyxFQUFFLENBQUM7aUJBQ2I7YUFDSjtTQUNKO1FBQ0Qsc0NBQXNDO1FBQ3RDLGtDQUFrQztRQUNsQyxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsd0NBQWtCLEdBQWxCLFVBQW1CLEVBQUUsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUM7UUFDL0IsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRWQsSUFBRyxTQUFTLElBQUksTUFBTSxFQUFDO1lBQ25CLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBRyxNQUFNO21CQUMzSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRTtnQkFDbkUsdUJBQXVCO2dCQUN2QixFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUNYLE9BQU8sRUFBRSxDQUFDO2FBQ2I7WUFDRCxJQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUM7Z0JBQ3pDLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7YUFDYjtZQUNELElBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDO2dCQUNaLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBRyxNQUFNO3VCQUMzSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRTtvQkFDbkUsdUJBQXVCO29CQUN2QixFQUFFLEdBQUcsS0FBSyxDQUFDO29CQUNYLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2dCQUNELElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBQztvQkFDekMsRUFBRSxHQUFHLEtBQUssQ0FBQztvQkFDWCxPQUFPLEVBQUUsQ0FBQztpQkFDYjthQUNKO1NBQ0o7YUFDSSxJQUFHLFNBQVMsSUFBSSxPQUFPLEVBQUM7WUFDekIsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFHLE1BQU07bUJBQzNJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO2dCQUNuRSx1QkFBdUI7Z0JBQ3ZCLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7YUFDYjtZQUNELElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBQztnQkFDekMsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQzthQUNiO1lBQ0QsSUFBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUM7Z0JBQ3RDLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBRyxNQUFNO3VCQUMzSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRTtvQkFDbkUsdUJBQXVCO29CQUN2QixFQUFFLEdBQUcsS0FBSyxDQUFDO29CQUNYLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2dCQUNELElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBQztvQkFDekMsRUFBRSxHQUFHLEtBQUssQ0FBQztvQkFDWCxPQUFPLEVBQUUsQ0FBQztpQkFDYjthQUNKO1NBQ0o7UUFDRCxJQUFHLFNBQVMsSUFBSSxJQUFJLEVBQUM7WUFDakIsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFHLE1BQU07bUJBQzNJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO2dCQUNuRSx1QkFBdUI7Z0JBQ3ZCLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7YUFDYjtZQUNELElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBQztnQkFDekMsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQzthQUNiO1lBQ0QsSUFBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUM7Z0JBQ3pDLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBRyxNQUFNO3VCQUMzSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRTtvQkFDbkUsdUJBQXVCO29CQUN2QixFQUFFLEdBQUcsS0FBSyxDQUFDO29CQUNYLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2dCQUNELElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBQztvQkFDekMsRUFBRSxHQUFHLEtBQUssQ0FBQztvQkFDWCxPQUFPLEVBQUUsQ0FBQztpQkFDYjthQUNKO1NBQ0o7UUFDRCxJQUFHLFNBQVMsSUFBSSxNQUFNLEVBQUM7WUFDbkIsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFHLE1BQU07bUJBQzNJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO2dCQUNuRSx1QkFBdUI7Z0JBQ3ZCLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7YUFDYjtZQUNELElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBQztnQkFDekMsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQzthQUNiO1lBQ0QsSUFBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUM7Z0JBQ1osSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFHLE1BQU07dUJBQzNJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO29CQUNuRSx1QkFBdUI7b0JBQ3ZCLEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQ1gsT0FBTyxFQUFFLENBQUM7aUJBQ2I7Z0JBQ0QsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFDO29CQUN6QyxFQUFFLEdBQUcsS0FBSyxDQUFDO29CQUNYLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2FBQ0o7U0FDSjtRQUNELG9DQUFvQztRQUNwQyxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxvQ0FBYyxHQUFkLFVBQWUsU0FBUyxFQUFDLElBQUksRUFBQyxJQUFJO1FBQzlCLElBQUksRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUM7WUFDakMsSUFBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFDO2dCQUNwQyxJQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBQztvQkFDbkUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztpQkFDaEI7YUFDSjtZQUNELElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBQztnQkFDZixJQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBQztvQkFDbkUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztpQkFDaEI7YUFDSjtZQUNELElBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBQztnQkFDcEMsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUM7b0JBQ25FLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQ2hCO2FBQ0o7WUFDRCxJQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUM7Z0JBQ2QsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUM7b0JBQ25FLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQ2hCO2FBQ0o7U0FDSjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELCtCQUFTLEdBQVQsVUFBVSxTQUFTO1FBQ2YsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2YsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsZ0NBQVUsR0FBVixVQUFXLFNBQVMsRUFBQyxHQUFHO1FBQ3BCLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNmLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO1NBRXBDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsK0JBQVMsR0FBVCxVQUFVLFNBQVM7UUFDZixJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDZixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztTQUVwQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELDZCQUFPLEdBQVAsVUFBUSxTQUFTLEVBQUMsR0FBRztRQUNqQixJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDZixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztTQUVwQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUdELG9CQUFvQjtJQUNwQix1Q0FBaUIsR0FBakIsVUFBa0IsSUFBSTtRQUNsQixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBQSxLQUFLO1lBQzdDLElBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBQztnQkFDM0IsSUFBRyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO29CQUNwQyxPQUFPLEtBQUssQ0FBQTthQUNuQjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUN0QixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDbkMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzVFO1NBQ0o7UUFFRCxJQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUM7WUFDNUUsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQUEsS0FBSztnQkFDM0MsSUFBRyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFDO29CQUMzQixJQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7d0JBQ3BDLE9BQU8sS0FBSyxDQUFBO2lCQUNuQjtZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQ25CLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO29CQUNqQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDckU7U0FFUjtRQUVELEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUUsRUFBQztZQUNqQyxJQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFDO2dCQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0I7U0FDSjtJQUVMLENBQUM7SUFFRCxXQUFXO0lBQ1gsK0JBQVMsR0FBVDtRQUFBLGlCQThCQztRQTdCRyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFZixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBRW5DLElBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBQztZQUNyRCxpQkFBaUI7WUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFFcEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLHlCQUF5QjtZQUN6QixFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsSUFBSSxRQUFRLEdBQUc7Z0JBQ1gsVUFBVSxFQUFDLElBQUksQ0FBQyxVQUFVO2dCQUMxQixRQUFRLEVBQUMsSUFBSSxDQUFDLFFBQVE7YUFDekIsQ0FBQTtZQUNELEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVsQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsVUFBVSxDQUFDO2dCQUNQLEtBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNoRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDUix1QkFBdUI7U0FDMUI7YUFDRztZQUNBLElBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDeEI7U0FDSjtJQUNMLENBQUM7SUFFRCxtQ0FBYSxHQUFiO1FBQ0ksS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUM7WUFDbEQsSUFBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQztnQkFDekUsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7YUFDckI7U0FDSjtJQUNMLENBQUM7SUFFRCw4QkFBUSxHQUFSO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsSUFBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBQztZQUNwQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNyQyxhQUFXLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUU3QixJQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFDO2dCQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQzdELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLE9BQU87YUFDVjtZQUNELDBDQUEwQztZQUMxQyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsS0FBSyxDQUFDLENBQUM7WUFDakgseUhBQXlIO1lBQ3pILDJDQUEyQztZQUMzQywwQkFBMEI7WUFDMUIsc0ZBQXNGO1lBQ3RGLFFBQVE7WUFDUixNQUFNO1lBRU4sRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFVBQUMsR0FBRyxFQUFFLEtBQUs7Z0JBQzdDLElBQUksR0FBRyxFQUFFO29CQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3RDLE9BQU87aUJBQ1Y7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUNILFVBQVUsQ0FBQztnQkFDUCxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2QyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDWjthQUNHO1lBRUEsc0JBQXNCO1lBQ3RCLGFBQVcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBRTdCLElBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUM7Z0JBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDN0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsT0FBTzthQUNWO1lBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pILHlIQUF5SDtZQUN6SCwyQ0FBMkM7WUFDM0MsMEJBQTBCO1lBQzFCLHNGQUFzRjtZQUN0RixRQUFRO1lBQ1IsTUFBTTtZQUNOLFVBQVUsQ0FBQztnQkFDSCxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVULDRDQUE0QztTQUUvQztJQUNMLENBQUM7SUFFRCxnQ0FBVSxHQUFWO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsSUFBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBQztZQUMvQix5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsT0FBTztTQUNWO1FBQ0QsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUUvQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUUzQixhQUFXLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM3QixFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDakgseUhBQXlIO1FBQ3pILDJDQUEyQztRQUMzQywwQkFBMEI7UUFDMUIsc0ZBQXNGO1FBQ3RGLFFBQVE7UUFDUixNQUFNO1FBQ04sVUFBVSxDQUFDO1lBQ0gsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztRQUNqRCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDVCw0Q0FBNEM7SUFDaEQsQ0FBQztJQUVELGlDQUFXLEdBQVg7UUFDSSxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7UUFDZixJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLElBQUksR0FBRyxJQUFJLENBQUM7YUFDaEQsSUFBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzFELG1FQUFtRTtRQUNuRSxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBQztZQUM5Qyx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDeEMsT0FBTztTQUNWO2FBQ0c7WUFDQSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQsK0JBQVMsR0FBVCxVQUFVLElBQUk7UUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWxDLElBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ2xDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUM5RCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBSUQsNkJBQU8sR0FBUDtRQUNJLGlCQUFpQjtRQUNqQixFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFHLENBQUMsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPO1FBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDckYsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNyRixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3RGLElBQUksSUFBSSxHQUFHO1lBQ1AsSUFBSSxFQUFDLElBQUksQ0FBQyxVQUFVO1lBQ3BCLFFBQVEsRUFBQyxJQUFJLENBQUMsUUFBUTtZQUN0QixNQUFNLEVBQUMsTUFBTTtTQUNoQixDQUFBO1FBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFDO1lBQ3RCLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQyxVQUFDLElBQUk7WUFDckMsQ0FBQyxDQUFDLENBQUE7U0FDTDtRQUNELDRDQUE0QztJQUNoRCxDQUFDO0lBRUQsZ0NBQVUsR0FBVjtRQUNJLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELElBQUcsYUFBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLEVBQUM7WUFDNUIsT0FBTztTQUNWO1FBQ0Qsc0NBQXNDO1FBQ3RDLGFBQVcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzdCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBQztZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDN0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixPQUFPO1NBQ1Y7UUFDRCxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDakgsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFVBQUMsR0FBRyxFQUFFLEtBQUs7WUFDN0MsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDdEMsT0FBTzthQUNWO1FBRUwsQ0FBQyxDQUFDLENBQUM7UUFFSCxVQUFVLENBQUM7WUFDUCxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsUUFBUTtJQUNSLCtCQUFTLEdBQVQsVUFBVSxJQUFJO1FBQWQsaUJBNkJDO1FBNUJHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFHLElBQUksQ0FBQyxRQUFRLElBQUcsSUFBSSxJQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFDO1lBQzNDLE9BQU87U0FDVjtRQUVELElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUcsSUFBSSxJQUFJLE1BQU0sRUFBQztZQUNkLElBQUksR0FBRyxJQUFJLENBQUM7U0FDZjtRQUNELFVBQVUsQ0FBQztZQUNILEtBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUM3RCxLQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3BGLEtBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDckYsSUFBSSxNQUFNLEdBQUcsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVHLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFFLEtBQUssQ0FBQztZQUM3SCxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQztnQkFBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7aUJBQ2hGLElBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDO2dCQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDdEYsSUFBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUM7Z0JBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzNGLElBQUcsSUFBSSxFQUFDO2dCQUNKLElBQUcsSUFBSSxJQUFJLE1BQU0sRUFBQztvQkFDZCxLQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO29CQUNyRixLQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2lCQUN2RjthQUNKO1FBQ1QsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRVQsdUJBQXVCO0lBQzNCLENBQUM7SUFFRCxTQUFTO0lBQ1QsaUNBQVcsR0FBWCxVQUFZLElBQUk7UUFBaEIsaUJBb0JDO1FBbkJHLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWTtRQUN4QyxJQUFNLGFBQWEsR0FBRztZQUNsQixJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsRUFBRSxLQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hFLE9BQU8sS0FBSyxHQUFHLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxLQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNwQixLQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUNoQzthQUNKO1lBQ0Qsa0JBQWtCO1lBQ2xCLElBQUksS0FBSyxHQUFHLEtBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUM1QixLQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN2QztpQkFBTTthQUNOO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsV0FBVztRQUNYLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUdELDhCQUFRLEdBQVIsVUFBUyxLQUFLLEVBQUMsSUFBSTtRQUNmLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUUsRUFBQztZQUNyQyxJQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFDO2dCQUM1RSxJQUFHLElBQUksRUFBQztvQkFDSixJQUFHLElBQUksSUFBSSxDQUFDLEVBQUM7d0JBQ1QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsRUFBQzs0QkFDM0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO3lCQUM1RTtxQkFDSjs7d0JBQ0ssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUNsRjs7b0JBQ0ksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ2pGO1NBQ0o7SUFDTCxDQUFDO0lBRUQsNEJBQU0sR0FBTjtRQUNJLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUUsRUFBQztZQUNyQyxJQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUM7Z0JBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUMxRTtTQUNKO0lBQ0wsQ0FBQztJQUVGLE9BQU87SUFDUCxzQ0FBZ0IsR0FBaEI7UUFDSyxJQUFJLENBQUMsZ0JBQWdCLEdBQUc7WUFDcEIsSUFBRyxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPO1lBQ3RCLElBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLEVBQUM7Z0JBQ3BCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDN0QsdUJBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDdEUsK0NBQStDO2dCQUMvQyxJQUFHLENBQUMsSUFBSSxDQUFDLEtBQUs7b0JBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN6QztpQkFDRztnQkFDQSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7Z0JBQ3JCLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdELHVCQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQ3RFLCtDQUErQzthQUNsRDtRQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsUUFBUTtJQUNSLHFDQUFlLEdBQWY7UUFDSSxJQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBQztZQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7SUFDUixpQ0FBVyxHQUFYO1FBQ0ksSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUk7ZUFDNUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxFQUFDO1lBQ3BELE9BQU87U0FDVjtRQUNBLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckYsSUFBRyxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sRUFBQztZQUMzQyxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRCxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFDO2dCQUN6QyxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFDO29CQUNwQyx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQ3pDLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNwRCxPQUFPO2lCQUNWO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JGO2lCQUNHO2dCQUNBLElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBQztvQkFDN0QsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBRTlCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO29CQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUUzRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQztvQkFDM0MsSUFBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUM7d0JBQ3hDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO29CQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUN4RSxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3ZELFFBQVEsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztvQkFDOUQsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7b0JBQy9CLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2pELEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBQyxVQUFDLElBQUk7b0JBQzNFLENBQUMsQ0FBQyxDQUFBO29CQUNGLElBQUksSUFBSSxHQUFHO3dCQUNQLEVBQUUsRUFBQyxNQUFNO3dCQUNULEdBQUcsRUFBQyxDQUFDLENBQUM7cUJBQ1QsQ0FBQTtvQkFDRCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNyRDs7b0JBQ0kseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ2pEO1NBQ0o7SUFHTCxDQUFDO0lBRUQsUUFBUTtJQUNSLDZCQUFPLEdBQVA7UUFDSSxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUM7WUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQy9CLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEYsU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzVFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLDJCQUEyQjtTQUM5QjtJQUNMLENBQUM7SUFFRCxzQ0FBZ0IsR0FBaEIsVUFBaUIsSUFBSTtRQUFyQixpQkFxREM7UUFwREcsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLG9DQUFvQztRQUNwQyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkYsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRixJQUFHLElBQUksSUFBSSxjQUFjO1lBQUUsU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUUsSUFBRyxJQUFJLElBQUksY0FBYztZQUFFLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQy9FLElBQUcsSUFBSSxJQUFJLGFBQWE7WUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRixJQUFHLElBQUksSUFBSSxjQUFjLEVBQUM7WUFDdEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7WUFDM0MsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZELFFBQVEsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUM5RCxRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMvQixFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzNFLFVBQVUsQ0FBQztnQkFDUCxLQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4RSx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDNUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBR1g7YUFDSSxJQUFHLElBQUksSUFBSSxhQUFhLEVBQUM7WUFDMUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUM7WUFDMUMsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZELFFBQVEsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUM1RCxRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMvQixFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzNFLFVBQVUsQ0FBQztnQkFDUCx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3RDLEtBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0UsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBRVg7YUFDSSxJQUFHLElBQUksSUFBSSxjQUFjLEVBQUM7WUFDM0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7WUFDM0MsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZELFFBQVEsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUM5RCxRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMvQixFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzNFLFVBQVUsQ0FBQztnQkFDUCxLQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMzRSx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBRVg7SUFJTCxDQUFDO0lBRUQsUUFBUTtJQUNSLCtCQUFTLEdBQVQ7UUFDSSxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSTtlQUM1RSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBRyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLEVBQUM7WUFDcEQsT0FBTztTQUNWO1FBQ0QsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2RixJQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFDO1lBQzNDLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JELElBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUM7Z0JBQ3pDLElBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUM7b0JBQ3BDLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDekMsU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3BELE9BQU87aUJBQ1Y7Z0JBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUNyRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDckY7aUJBQ0c7Z0JBQ0EsSUFBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUM7b0JBQ1osSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBRTlCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUNuQixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQztvQkFDM0MsSUFBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUM7d0JBQ3hDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO29CQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUMzRSxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3ZELE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUNoQyxRQUFRLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7b0JBQzlELFFBQVEsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO29CQUMvQixFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUNqRCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUMsVUFBQyxJQUFJO29CQUMzRSxDQUFDLENBQUMsQ0FBQTtvQkFDRixJQUFJLElBQUksR0FBRzt3QkFDUCxFQUFFLEVBQUMsTUFBTTt3QkFDVCxHQUFHLEVBQUMsQ0FBQyxDQUFDO3FCQUNULENBQUE7b0JBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBQyxJQUFJLENBQUMsQ0FBQztpQkFDckQ7O29CQUNJLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNqRDtTQUVKO0lBRUwsQ0FBQztJQUVELDhCQUFRLEdBQVI7UUFDSSxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFDO1lBQ3BDLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6QyxPQUFPO1NBQ1Y7UUFDRCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELCtCQUFTLEdBQVQ7UUFDSSxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFDO1lBQ3BDLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6QyxPQUFPO1NBQ1Y7UUFDRCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELCtCQUFTLEdBQVQ7UUFDSSxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFDO1lBQ3BDLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6QyxPQUFPO1NBQ1Y7UUFDRCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELGVBQWU7SUFDZiw4QkFBUSxHQUFSO1FBQUEsaUJBbUlDO1FBbElHLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJO2VBQzVFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFHLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBQztZQUNwRCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BGLElBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEVBQUM7WUFDMUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsSUFBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBQztnQkFDeEMsSUFBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksRUFBQztvQkFDcEMseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUN6QyxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbkQsT0FBTztpQkFDVjtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakYsZ0RBQWdEO2FBQ25EO2lCQUNHO2dCQUNBLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUM3QixVQUFVLENBQUM7b0JBQ1AsS0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO29CQUM5QixRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkQsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUVULEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO2dCQUMxQyxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsQ0FBQztvQkFDdkMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3pFLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdkQsUUFBUSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO2dCQUM1RCxRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztnQkFDL0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBQyxRQUFRLENBQUMsQ0FBQztnQkFDakQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFDLFVBQUMsSUFBSTtnQkFDMUUsQ0FBQyxDQUFDLENBQUE7Z0JBQ0YsSUFBSSxJQUFJLEdBQUc7b0JBQ0gsRUFBRSxFQUFDLE1BQU07b0JBQ1QsR0FBRyxFQUFDLENBQUMsQ0FBQztpQkFDVCxDQUFBO2dCQUNMLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xELElBQUksWUFBVSxHQUFHLEVBQUUsQ0FBQztnQkFDcEIscUNBQXFDO2dCQUNyQyxLQUFJLElBQUksQ0FBQyxHQUFFLENBQUMsRUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUM7b0JBQ3BDLGlFQUFpRTtvQkFDakUsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFDO3dCQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3hDO3lCQUNJLElBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQzt3QkFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN6Qzt5QkFDSSxJQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUM7d0JBQ3BELElBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksRUFBQzs0QkFDcEQsWUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3pFOzs0QkFDSSxZQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDeEM7eUJBQ0c7d0JBQ0EsWUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ25DO2lCQUNKO2dCQUNELElBQUcsWUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUM7b0JBQ3JCLFlBQVUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsWUFBVSxDQUFDLENBQUM7b0JBQ3JELFlBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2hELElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztvQkFDYixJQUFHLFlBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxZQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUM7d0JBQzlGLElBQUksR0FBRyxHQUFHLENBQUM7cUJBQ2Q7b0JBQ0QsSUFBRyxJQUFJLEdBQUcsQ0FBQyxFQUFDO3dCQUNSLFVBQVUsQ0FBQzs0QkFDUCxZQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO3dCQUNwRCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBQ1QsT0FBTztxQkFDVjt5QkFDRzt3QkFDQSxZQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO3dCQUNoRCxPQUFPO3FCQUNWO2lCQUNKO3FCQUNJLElBQUcsWUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUM7b0JBQzNCLFlBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2hELElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztvQkFDYixJQUFHLFlBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxZQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUM7d0JBQzlGLElBQUksR0FBRyxHQUFHLENBQUM7cUJBQ2Q7b0JBQ0QsVUFBVSxDQUFDO3dCQUNQLElBQUcsS0FBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEtBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBQzs0QkFDM0QsK0JBQStCO3lCQUNsQzs2QkFDRzs0QkFDQSxJQUFHLEtBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBQztnQ0FDM0IsbUNBQW1DO2dDQUNuQyxLQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQ0FDckQsT0FBTzs2QkFDVjtpQ0FDSSxJQUFHLEtBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFHLENBQUMsRUFBQztnQ0FDaEMsbUNBQW1DO2dDQUNuQyxLQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQ0FDdEQsT0FBTzs2QkFDVjt5QkFDSjtvQkFDTCxDQUFDLEVBQUUsR0FBRyxHQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNoQjtxQkFDRztvQkFDQSxJQUFJLE9BQUssR0FBRyxDQUFDLENBQUM7b0JBQ2QsSUFBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBRyxDQUFDLEVBQUM7d0JBQzFCLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQzs0QkFDdkMsa0NBQWtDOzRCQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQzs0QkFDckQsT0FBSyxJQUFJLENBQUMsQ0FBQzs0QkFDWCxJQUFHLE9BQUssSUFBSSxDQUFDLEVBQUM7Z0NBQ1YsTUFBTTs2QkFDVDt5QkFDSjtxQkFDSjtvQkFFRCxVQUFVLENBQUM7d0JBQ0gsSUFBRyxPQUFLLElBQUksQ0FBQyxFQUFDOzRCQUNkLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxLQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQ0FDeEMsa0NBQWtDO2dDQUNsQyx5REFBeUQ7Z0NBQ3pELE9BQUssSUFBSSxDQUFDLENBQUM7Z0NBQ1gsSUFBRyxPQUFLLElBQUksQ0FBQyxFQUFDO29DQUNWLE1BQU07aUNBQ1Q7NkJBQ0o7eUJBQ0o7b0JBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2lCQUNYO2FBQ0o7U0FDSjtJQUNMLENBQUM7SUFFRCxRQUFRO0lBQ1IsOEJBQVEsR0FBUjtRQUNJLElBQUcsSUFBSSxDQUFDLEtBQUssRUFBQztZQUNWLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO2FBQ0c7WUFDQSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNyQjtJQUNMLENBQUM7SUFJRCxZQUFZO0lBQ1osZ0NBQVUsR0FBVjtRQUNJLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLEVBQUM7WUFDbEIsS0FBSyxHQUFHLEdBQUcsQ0FBQztTQUNmO2FBQ0ksSUFBRyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsRUFBQztZQUN2QixLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxFQUFFLENBQUMsR0FBQyxJQUFJLENBQUM7U0FDMUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUVwRCxJQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxFQUFDO1lBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUN2QjtRQUVELHVCQUF1QjtRQUN2QixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2pELHlCQUF5QjtRQUN6QixnQ0FBZ0M7UUFDaEMsdUJBQXVCO0lBQzNCLENBQUM7SUFFRCxVQUFVO0lBQ1Ysb0NBQWMsR0FBZCxVQUFlLEtBQUssRUFBQyxFQUFFO1FBQ25CLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsYUFBVyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRSxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUIsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztRQUM1QyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFFZCxJQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBQztZQUNsQixJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDL0IsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLEdBQUcsTUFBTSxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO1lBQ3JDLElBQUcsRUFBRSxJQUFJLENBQUMsRUFBQztnQkFDUCxJQUFJLEdBQUcsTUFBTSxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO2dCQUNyQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNmO1lBQ0QsSUFBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBQztnQkFDcEIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDZjtpQkFDSSxJQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFDO2dCQUMzQixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFDLENBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3ZDO2lCQUNJLElBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUM7Z0JBQzFCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUMsQ0FBQyxHQUFHLEdBQUMsSUFBSSxDQUFDLENBQUM7YUFDeEM7WUFDRCxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM5QjthQUNJLElBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFDO1lBQ3ZCLElBQUksR0FBRyxPQUFPLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7WUFDdEMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7WUFDakMsSUFBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBQztnQkFDcEIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUM7YUFDL0I7aUJBQ0ksSUFBRyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksRUFBQztnQkFDM0IsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUM7YUFDakM7aUJBQ0ksSUFBRyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksRUFBQztnQkFDMUIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUM7YUFDbEM7WUFDRCxJQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUM7Z0JBQ1AsSUFBSSxHQUFHLFFBQVEsR0FBRyxNQUFNLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztnQkFDdkMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ1osSUFBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBQztvQkFDcEIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUM7aUJBQy9CO3FCQUNJLElBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUM7b0JBQzNCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDO2lCQUNqQztxQkFDSSxJQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFDO29CQUMxQixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQztpQkFDbEM7YUFDSjtZQUVELFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzlCO1FBRUQsSUFBSSxZQUFZLEdBQUksUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFbEQsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlHLFlBQVksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzNCLFVBQVUsQ0FBQztZQUNQLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO2lCQUNqQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDO2lCQUNuQixJQUFJLENBQUM7Z0JBQ0YsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQztpQkFDRCxLQUFLLEVBQUUsQ0FBQztRQUNiLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxvQ0FBYyxHQUFkO1FBQ0ksU0FBUztRQUNULEtBQUksSUFBSSxDQUFDLEdBQUUsQ0FBQyxFQUFHLENBQUMsR0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztZQUNyQyxJQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsRUFBQztnQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzVCO1NBQ0o7SUFDTCxDQUFDO0lBSUQsNEJBQU0sR0FBTixVQUFRLEVBQUU7SUFFVixDQUFDOztJQTc5REQ7UUFEQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDO29EQUNWO0lBR3BDO1FBREMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBQyxRQUFRLEVBQUMsQ0FBQzttREFDYjtJQUduQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO3VEQUNhO0lBR2pDO1FBREMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBQyxNQUFNLEVBQUMsQ0FBQztvREFDVjtJQUl6QztRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUM7b0RBQ1Y7SUFLcEM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzt1REFDYTtJQUdqQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO2dEQUNNO0lBRTFCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7bURBQ1M7SUFFN0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztpREFDTztJQUczQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzZDQUNHO0lBR3JCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7aURBQ087SUFFMUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztvREFDVTtJQUU3QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO21EQUNTO0lBRzVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7a0RBQ1E7SUFHMUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzttREFDUztJQUczQjtRQURLLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNLO0lBSTNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0RBQ007SUFyRFAsV0FBVztRQUQvQixPQUFPO09BQ2EsV0FBVyxDQW0rRC9CO0lBQUQsa0JBQUM7Q0FuK0RELEFBbStEQyxDQW4rRHdDLEVBQUUsQ0FBQyxTQUFTLEdBbStEcEQ7a0JBbitEb0IsV0FBVyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmltcG9ydCBHYW1lTWFuYWdlciBmcm9tIFwiLi9HYW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBMUUNvbGxpZGUgfSBmcm9tIFwiLi9scV9jb2xsaWRlX3N5c3RlbS9scV9jb2xsaWRlXCI7XHJcbmltcG9ydCBOdW1iZXJUb0ltYWdlIGZyb20gXCIuL051bWJlclRvSW1hZ2VcIjtcclxuaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVTZGtcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNYXBDb25yb2xlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgX2luc3RhbmNlOiBhbnk7XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLmlrnlnZfmlbDnu4RcIn0pXHJcbiAgICBCbG9ja19BcnJheSA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOlwi5pa55Z2X6YGT5YW35pWw57uEXCJ9KVxyXG4gICAgQmxvY2tfUHJvcCA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgTWFwQmxvY2tQcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOlwi5pa55Z2X6aKc6ImyXCJ9KVxyXG4gICAgQmxvY2tfQ29sb3IgOiBBcnJheTxjYy5TcHJpdGVBdGxhcz4gPSBbXTtcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuWimeWjgeaVsOe7hFwifSlcclxuICAgIFdhbGxfUHJlZmFiIDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICBcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgd2FsbFR1cm5QcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkJ1dHRvbilcclxuICAgIHRpbWVCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQnV0dG9uKVxyXG4gICAgZGVzdHJveUJ0bjogY2MuQnV0dG9uID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5CdXR0b24pXHJcbiAgICBtYWdpY0J0bjogY2MuQnV0dG9uID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGljZUxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBoYW1tZXJMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbWFnaWNMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbWFnaWNNYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGhhbW1lck1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgICAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZyZWV6ZU1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIFxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luUG9wOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICB0aW1lTGFiZWw6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgbGV2ZWxMYWJlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgbmV3X21vZGU6IG51bWJlciA9IDA7XHJcbiAgICBtYXBXaWR0aDogbnVtYmVyID0gMDtcclxuICAgIG1hcEhlaWdodDogbnVtYmVyID0gMDtcclxuICAgIHdhbGxOdW06IG51bWJlciA9IDA7XHJcbiAgICBibG9ja051bTogbnVtYmVyID0gMDtcclxuICAgIG1hcEJsb2Nrc1dhbGw6IGFueTsgICAgICAvL+WcsOWbvueahOaJgOacieW6leWdl1xyXG4gICAgbWFwSW5mbzogYW55OyAgICAgICAvL+WcsOWbvumZpOS6huW6leWdl+eahOWFtuS7luS/oeaBr1xyXG4gICAgYmxvY2tzOiBhbnk7ICAgICAgICAvL+aWueWdl+aVsOe7hFxyXG4gICAgd2FsbEluZm86IGFueTsgICAgICAvL+WimeWjgeaVsOe7hFxyXG4gICAgd2FsbEFycmF5OmFueTsgICAgICAvL1xyXG4gICAgb3BlbldhbGw6IGFueTsgICAgICAvL+W8gOWFs+WimeaVsOe7hFxyXG4gICAgZnJlZXplV2FsbDogYW55OyAgICAvL+WGu+e7k+WimeaVsOe7hFxyXG4gICAgcmlzZUZhbGxCbGNvazphbnk7ICAvL+WNh+mZjeWcsOWdl+aVsOe7hFxyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55Oy8v5YCS6K6h5pe255SoXHJcbiAgICBob21lQ2FuVG91Y2g6Ym9vbGVhbiA9IHRydWU7Ly/mjInpkq7lj6/nlKjnirbmgIFcclxuICAgIGFnYWluQ2FuVG91Y2g6Ym9vbGVhbiA9ICB0cnVlOy8v6YeN546p5oyJ6ZKu5Y+v5Lul55So54q25oCBXHJcbiAgICBnYW1lT3ZlcjogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP57uT5p2f54q25oCBXHJcbiAgICBnYW1lV2luOiBib29sZWFuID0gZmFsc2U7Ly/muLjmiI/og5zliKnnirbmgIFcclxuICAgIGdhbWVTdGFydDogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP5byA5aeL54q25oCBXHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXIgPSAwOyAvL+a4uOaIj+aXtumXtCDnlKjkuo7lgJLorqHml7ZcclxuICAgIGNvdW50X1RpbWU6IG51bWJlciA9IDA7IC8v55So5LqO57uf6K6h5oC75ri45oiP5pe26ZW/XHJcbiAgICBhZGRfVGltZTogbnVtYmVyID0gMDsgICAvL+Wkjea0u+aXtumXtFxyXG4gICAgbWFwQmxvY2tBcnJheTogYW55OyAgLy/lnLDlm77nmoTmiYDmnInmoLzlrZDnirbmgIHlrZjlgqhcclxuICAgIHBhdXNlOmJvb2xlYW4gPSBmYWxzZTsvL+aaguWBnOeKtuaAgVxyXG4gICAgaGFtbWVyOmJvb2xlYW4gPSBmYWxzZTsvL+mUpOWtkOeKtuaAgVxyXG4gICAgZnJlZXplQXJyYXk6IGFueTsgLy/lhrvnu5NcclxuICAgIGxvYWNrQXJyYXk6IGFueTsgLy/kuIrplIFcclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gbGVmdERvb3JzOiBbXTsgLy/lt6bpl6hcclxuICAgIHJpZ2h0RG9vcnM6IGFueTsgLy/lj7Ppl6hcclxuICAgIHRvcERvb3JzOiBhbnk7IC8v5LiK6ZeoXHJcbiAgICBib3R0b21Eb29yczogYW55OyAvL+S4i+mXqFxyXG4gICAgbGVmdERvb3JzOiBhbnk7XHJcblxyXG5cclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZVN0YXRlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1hc2sub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiQWRoZXNpdmVcIikuekluZGV4ID0gNTAwO1xyXG4gICAgICAgIGNjLmdhbWUuc2V0RnJhbWVSYXRlKDYzKTsgXHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4yXCIsbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcImRvd25cIixmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJkb3duXCIpIHtcclxuICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYmxvY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5sZWZ0RG9vcnMgPSBbXTsgLy/lt6bpl6hcclxuICAgICAgICB0aGlzLnJpZ2h0RG9vcnMgPSBbXTsgLy/lj7Ppl6hcclxuICAgICAgICB0aGlzLnRvcERvb3JzID0gW107IC8v5LiK6ZeoXHJcbiAgICAgICAgdGhpcy5ib3R0b21Eb29ycyA9IFtdOyAvL+S4i+mXqFxyXG4gICAgICAgIHRoaXMuZ2FtZVdpbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2FtZU92ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdhbWVTdGFydCA9IGZhbHNlOyBcclxuICAgICAgICB0aGlzLmhvbWVDYW5Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hZ2FpbkNhblRvdWNoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5ld19tb2RlID0gMDtcclxuIFxyXG4gICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgXHJcbiAgICAgICAgLy8gY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIsIGFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L29IEhvbWVTY2VuZSDlpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6L+b5YWlR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQXJyYXkgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQXJyYXk7XHJcbiAgICAgICAgdGhpcy5XYWxsX1ByZWZhYiA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5XYWxsX1ByZWZhYjtcclxuICAgICAgICB0aGlzLkJsb2NrX0NvbG9yID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLkJsb2NrX0NvbG9yO1xyXG4gICAgICAgIC8vIHRoaXMucGFydGljbGVFZmZlY3RzID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLnBhcnRpY2xlRWZmZWN0cztcclxuICAgICAgIFxyXG4gICAgICAgIHRoaXMuaW5pdE1hcCgpO1xyXG4gICBcclxuICAgIH1cclxuXHJcbiAgICBzdGFydFVwZGF0ZSgpe1xyXG4gICAgICAgIGlmKHRoaXMuZ2FtZVN0YXJ0ID09IGZhbHNlKXtcclxuICAgICAgICAgICAgdGhpcy5nYW1lU3RhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL+WPkemAgeaVsOaVsOS6i+S7tuKAlOKAlOi/m+WFpeWFs+WNoVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWHhuWkh+i/m+WFpeS4i+S4gOWFsyzlj5HpgIHkuIvkuIDlhbPov5vlhaVcIik7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcImVudGVyX3N0YWdlXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0wOyBpPHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNil7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3NbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJib29tXCIpLmdldENvbXBvbmVudChcIkJvb21cIikuc3RhcnRCb29tKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdE1hcCgpe1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIikuekluZGV4ID0gMTA7XHJcbiAgICAgICAgdGhpcy50aW1lTGFiZWwgPSAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIik7XHJcbiAgICAgICAgdGhpcy5sZXZlbExhYmVsID0gIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJsZXZlbFwiKTtcclxuICAgICAgICB0aGlzLnRpbWVOdW1iZXIgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0udGltZTtcclxuICAgICAgICB0aGlzLmNvdW50X1RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuYWRkX1RpbWUgPSAwO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIsNTAsXCJ0aW1lX1wiLHRoaXMudGltZUxhYmVsKVxyXG4gICAgICAgIC8vIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyKTtcclxuICAgICAgICAvLyB0aGlzLnRpbWVMYWJlbC5zdHJpbmcgPSB0aW1lVGVtcC50b1N0cmluZygpO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwrMSksNTAsMjAsXCJsZXZlbF9cIix0aGlzLmxldmVsTGFiZWwsZmFsc2UpXHJcbiAgICAgICAgXHJcbiAgICAgICAgLy90aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXBXaWR0aCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5tYXBbMF07XHJcbiAgICAgICAgdGhpcy5tYXBIZWlnaHQgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ubWFwWzFdO1xyXG4gICAgICAgIGxldCBnYXAgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0uZ2FwO1xyXG4gICAgICAgIGxldCByaXNlZmFsbCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5yaXNlZmFsbDtcclxuXHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53YWxsTnVtID0gMDtcclxuICAgICAgICB0aGlzLnNldE1hcEluZm8oKTtcclxuICAgICAgICB0aGlzLmJsb2NrcyA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwSW5mbyA9IFtdO1xyXG4gICAgICAgIHRoaXMud2FsbEluZm8gPSBbXTtcclxuICAgICAgICB0aGlzLm9wZW5XYWxsID0gW107XHJcbiAgICAgICAgdGhpcy53YWxsQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZVdhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2sgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEJsb2NrQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sb2Fja0FycmF5ID0gW107XHJcblxyXG4gICAgICBcclxuICAgICAgICBsZXQgc3RhcnRYID0gIHRoaXMubWFwV2lkdGglMj09MD8tKHRoaXMubWFwV2lkdGgtMSkqNjA6LSh0aGlzLm1hcFdpZHRoLTEpKjYwO1xyXG4gICAgICAgIGxldCBzdGFydFkgPSAgdGhpcy5tYXBIZWlnaHQlMj09MD8tKHRoaXMubWFwSGVpZ2h0LTEpKjYwOi0odGhpcy5tYXBIZWlnaHQtMSkqNjA7XHJcbiAgICAgICAgLy8gc3RhcnRYID0odGhpcy5tYXBXaWR0aC0xKSo2MCArIDYwO1xyXG4gICAgICAgIC8vIHN0YXJ0WSA9LSh0aGlzLm1hcEhlaWdodC0xKSo2MCAtIDYwO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLm1hcFdpZHRoOyBpKyspe1xyXG4gICAgICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGxbaV0gPSBbXTtcclxuXHJcbiAgICAgICAgICAgIGZvcihsZXQgaiA9IDA7IGogPCB0aGlzLm1hcEhlaWdodDsgaisrKXtcclxuICAgICAgICAgICAgICAgIGxldCBibG9jayA9IGNjLmluc3RhbnRpYXRlKHRoaXMuTWFwQmxvY2tQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2sucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibWFwQmxvY2tcIik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5pbml0KGksaik7ICAgIFxyXG4gICAgICAgICAgICAgICAgLy8gYmxvY2suZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBpICsgXCI6XCIgKyBqO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suc2V0UG9zaXRpb24oY2MudjIoc3RhcnRYICsgaSAqIDEyMCwgc3RhcnRZICsgaiAqIDEyMCkpXHJcbiAgICAgICAgICAgICAgICBpZihyaXNlZmFsbCAhPSBudWxsKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm1hcFJpc2VGYWxsKGNjLnYyKGksaikscmlzZWZhbGwsYmxvY2spKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKGdhcCE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLm1hcEdhcChjYy52MihpLGopLGdhcCkgfHwgaSA9PSAwIHx8IGkgPT0gdGhpcy5tYXBXaWR0aC0xXHJcbiAgICAgICAgICAgICAgICAgICAgfHwgaiA9PSAwIHx8IGogPT0gdGhpcy5tYXBIZWlnaHQgLSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sub3BhY2l0eSA9IDI1NDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMubWFwSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoIGkgPT0gMCB8fCBpID09IHRoaXMubWFwV2lkdGgtMVxyXG4gICAgICAgICAgICAgICAgICAgIHx8IGogPT0gMCB8fCBqID09IHRoaXMubWFwSGVpZ2h0IC0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm9wYWNpdHkgPSAyNTQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUNvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVBbGxDaGlsZHJlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMubWFwSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGxbaV0ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMud2FsbEluaXQoKTtcclxuICAgICAgICB0aGlzLmJsb2NrSW5pdCgpO1xyXG4gICAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu65pa55Z2XXHJcbi8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG4vL+WIm+W7uuaWueWdl1xyXG4vLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuXHJcblxyXG5cclxuYmxvY2tJbml0KCkge1xyXG4gICAgbGV0IGJsb2NrQXJyYXkgPSBjYy5meC5HYW1lQ29uZmlnLkJMT0NLX0lORk9bMF07XHJcbiAgICBibG9ja0FycmF5ID0gdGhpcy5zb3J0QmxvY2soYmxvY2tBcnJheSk7IFxyXG5cclxuICAgIGxldCBpbmRleCA9IDA7IC8vIOW9k+WJjeimgeWIm+W7uueahOaWueWdl+e0ouW8lVxyXG4gICAgbGV0IEJMT0NLU19QRVJfRlJBTUUgPSAxOyAvLyDliJ3lp4vmr4/luKfliJvlu7rnmoTmlrnlnZfmlbDph49cclxuICAgIGNvbnN0IE1BWF9QRVJfRlJBTUUgPSAxMDsgLy8g5q+P5bin5pyA5aSn5Yib5bu65pWw6YePXHJcbiAgICBjb25zdCBNSU5fUEVSX0ZSQU1FID0gMTsgLy8g5q+P5bin5pyA5bCP5Yib5bu65pWw6YePXHJcblxyXG4gICAgY29uc3QgY3JlYXRlQmxvY2tzID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQkxPQ0tTX1BFUl9GUkFNRSAmJiBpbmRleCA8IGJsb2NrQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGJsb2NrSW5mbyA9IGJsb2NrQXJyYXlbaW5kZXhdO1xyXG4gICAgICAgICAgICAvLyDnvJPlrZggQmxvY2tfQXJyYXkg6K6/6ZeuXHJcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtibG9ja0luZm8uYmxvY2tdOyBcclxuICAgICAgICAgICAgbGV0IGJsb2NrID0gY2MuaW5zdGFudGlhdGUoYmxvY2tQcmVmYWIpO1xyXG4gICAgICAgICAgICBibG9jay5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgIGJsb2NrLnNldFBvc2l0aW9uKGNjLnYyKGJsb2NrSW5mby5wb3NpdGlvbi54LCBibG9ja0luZm8ucG9zaXRpb24ueSkpO1xyXG4gICAgICAgICAgICBpZiAoYmxvY2tJbmZvLmJsb2NrICE9IDIzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIGlmIChibG9ja0luZm8udHlwZSA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBibG9ja0luZm8uaWQgKyAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jazogYmxvY2tJbmZvLmJsb2NrLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmxvY2tJbmZvLnN0YWNraW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAxMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGJsb2NrSW5mby5wb3NpdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tpbmc6IGJsb2NrSW5mby5jb2xvclxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g57yT5a2YIEJsb2NrX0FycmF5IOiuv+mXrlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrVXBQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2luZm8uYmxvY2tdOyBcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYmxvY2tVcCA9IGNjLmluc3RhbnRpYXRlKGJsb2NrVXBQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrVXAucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuc2V0UG9zaXRpb24oY2MudjIoaW5mby5wb3NpdGlvbi54LCBpbmZvLnBvc2l0aW9uLnkpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MucHVzaChibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGJsb2NrSW5mbywgbnVsbCwgbnVsbCwgYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGluZm8sIG51bGwsIG51bGwsIGJsb2NrKTtcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChibG9ja0luZm8udHlwZSA9PSA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYmxvY2tJbmZvLmFkaGVzaXZlVGltZSA8IDIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaW5mbyA9IGJsb2NrQXJyYXlbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOe8k+WtmCBCbG9ja19BcnJheSDorr/pl65cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja1VwUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtpbmZvLmJsb2NrXTsgXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJsb2NrVXAgPSBjYy5pbnN0YW50aWF0ZShibG9ja1VwUHJlZmFiKTtcclxuICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnNldFBvc2l0aW9uKGNjLnYyKGluZm8ucG9zaXRpb24ueCwgaW5mby5wb3NpdGlvbi55KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnB1c2goYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChibG9ja0luZm8sIG51bGwsIG51bGwsIGJsb2NrVXAsZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoaW5mbywgbnVsbCwgbnVsbCwgYmxvY2ssdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoYmxvY2tJbmZvKTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJhcnJpZXJcIikuaW5pdChibG9ja0luZm8pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICBjb25zdCBmcmFtZVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgIC8vIOWmguaenOW9k+WJjeW4p+aJp+ihjOaXtumXtOi/h+mVv++8jOWHj+Wwkeavj+W4p+WIm+W7uuaVsOmHj1xyXG4gICAgICAgIGlmIChmcmFtZVRpbWUgPiAxNikgeyBcclxuICAgICAgICAgICAgQkxPQ0tTX1BFUl9GUkFNRSA9IE1hdGgubWF4KEJMT0NLU19QRVJfRlJBTUUgLSAxLCBNSU5fUEVSX0ZSQU1FKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBCTE9DS1NfUEVSX0ZSQU1FID0gTWF0aC5taW4oQkxPQ0tTX1BFUl9GUkFNRSArIDEsIE1BWF9QRVJfRlJBTUUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5aaC5p6c6L+Y5pyJ5pa55Z2X5pyq5Yib5bu677yM5LiL5LiA5bin57un57ut5Yib5bu6XHJcbiAgICAgICAgaWYgKGluZGV4IDwgYmxvY2tBcnJheS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgLy8g5L2/55SoIHNjaGVkdWxlT25jZSDlnKjkuIvkuIDluKfmiafooYwgY3JlYXRlQmxvY2tzXHJcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNyZWF0ZUJsb2NrcygpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIOW8gOWni+WIhuW4p+WIm+W7uuaWueWdl1xyXG4gICAgY3JlYXRlQmxvY2tzKCk7XHJcbn1cclxuLy/nu5nliJvlu7rmlrnlnZfmjpLluo/vvIznlKjmnaXpmY3kvY5kcmF3Y2FsbCDlkIjmiblcclxuc29ydEJsb2NrKGFsbEJsb2NrczogeyBjb2xvcjogbnVtYmVyOyBibG9jazogbnVtYmVyOyB0eXBlOiBudW1iZXIgfVtdKSB7XHJcbiAgICByZXR1cm4gYWxsQmxvY2tzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAvLyDlhYjlpITnkIYgdHlwZSDkuLogMSDnmoTmg4XlhrXvvIzlsIblhbbmlL7liLDmnIDlkI5cclxuICAgICAgICBpZiAoYS50eXBlID09PSAxICYmIGIudHlwZSAhPT0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEudHlwZSAhPT0gMSAmJiBiLnR5cGUgPT09IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5a+5IHR5cGUg5LiN5Li6IDAg55qE5YWD57Sg5oyJIHR5cGUg5o6S5bqPXHJcbiAgICAgICAgaWYgKGEudHlwZSAhPT0gMCAmJiBiLnR5cGUgIT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGEudHlwZSAtIGIudHlwZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEudHlwZSAhPT0gMCAmJiBiLnR5cGUgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhLnR5cGUgPT09IDAgJiYgYi50eXBlICE9PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOWGjeWkhOeQhiBibG9jayDkuLogMjMg55qE5oOF5Ya177yM5bCG5YW25pS+5Yiw5pyA5YmN6Z2iXHJcbiAgICAgICAgaWYgKGEuYmxvY2sgPT09IDIzICYmIGIuYmxvY2sgIT09IDIzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEuYmxvY2sgIT09IDIzICYmIGIuYmxvY2sgPT09IDIzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5YW25L2Z5oyJIGNvbG9yIOWNh+W6j+aOkuWIl1xyXG4gICAgICAgIHJldHVybiBhLmNvbG9yIC0gYi5jb2xvcjtcclxuICAgIH0pO1xyXG59XHJcblxyXG5cclxuLy/liJvlu7rlopnlo4FcclxuXHJcbndhbGxJbml0KCkge1xyXG4gICAgbGV0IGluZGV4ID0gMDsgLy8g5b2T5YmN6KaB5Yib5bu655qE5aKZ5aOB57Si5byVXHJcbiAgICBsZXQgV0FMTFNfUEVSX0ZSQU1FID0gMTsgLy8g5Yid5aeL5q+P5bin5Yib5bu655qE5aKZ5aOB5pWw6YePXHJcbiAgICBjb25zdCBNQVhfUEVSX0ZSQU1FID0gMTA7IC8vIOavj+W4p+acgOWkp+WIm+W7uuaVsOmHj1xyXG4gICAgY29uc3QgTUlOX1BFUl9GUkFNRSA9IDE7IC8vIOavj+W4p+acgOWwj+WIm+W7uuaVsOmHj1xyXG5cclxuICAgIGNvbnN0IGNyZWF0ZVdhbGxzID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgV0FMTFNfUEVSX0ZSQU1FICYmIGluZGV4IDwgdGhpcy53YWxsSW5mby5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLndhbGxJbmZvW2luZGV4XTtcclxuICAgICAgICAgICAgbGV0IGRpciA9IHRoaXMuZ2V0V2xsRGlyYWN0aW9uKFwid2FsbFwiLCBjYy52MihibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKSk7XHJcbiAgICAgICAgICAgIGlmIChkaXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVXYWxsKGRpciwgYmxvY2spO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICBjb25zdCBmcmFtZVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgIC8vIOWmguaenOW9k+WJjeW4p+aJp+ihjOaXtumXtOi/h+mVv++8jOWHj+Wwkeavj+W4p+WIm+W7uuaVsOmHj1xyXG4gICAgICAgIGlmIChmcmFtZVRpbWUgPiAxNikgeyBcclxuICAgICAgICAgICAgV0FMTFNfUEVSX0ZSQU1FID0gTWF0aC5tYXgoV0FMTFNfUEVSX0ZSQU1FIC0gMSwgTUlOX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgV0FMTFNfUEVSX0ZSQU1FID0gTWF0aC5taW4oV0FMTFNfUEVSX0ZSQU1FICsgMSwgTUFYX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlpoLmnpzov5jmnInlopnlo4HmnKrliJvlu7rvvIzkuIvkuIDluKfnu6fnu63liJvlu7pcclxuICAgICAgICBpZiAoaW5kZXggPCB0aGlzLndhbGxJbmZvLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjcmVhdGVXYWxscygpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyDmiYDmnInlopnlo4HliJvlu7rlrozmiJDlkI7vvIzliJvlu7rmi5Dop5LoioLngrlcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVDb3JuZXJOb2RlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLy8g5byA5aeL5YiG5bin5Yib5bu65aKZ5aOBXHJcbiAgICBjcmVhdGVXYWxscygpO1xyXG59XHJcblxyXG4vLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuICAgIGdldFdsbERpcmFjdGlvbih0eXBlLHBvaW50QSl7XHJcbiAgICAgICAgbGV0IGRpciA9IFtdO1xyXG4gICAgICAgIGxldCBwb2ludEIgPSBjYy52Mihwb2ludEEueCArIDEscG9pbnRBLnkpO1xyXG4gICAgICAgIGxldCBwb2ludEMgPSBjYy52Mihwb2ludEEueCAtIDEscG9pbnRBLnkpO1xyXG4gICAgICAgIGxldCBwb2ludEQgPSBjYy52Mihwb2ludEEueCxwb2ludEEueSArIDEpO1xyXG4gICAgICAgIGxldCBwb2ludEUgPSBjYy52Mihwb2ludEEueCxwb2ludEEueSAtIDEpO1xyXG4gICAgICAgIGxldCBvcGFjaXR5ID0gMDtcclxuICAgICAgICBpZih0eXBlID09IFwid2FsbFwiKSBvcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgIGlmKHR5cGUgPT0gXCJ0dXJuXCIpIG9wYWNpdHkgPSAyNTA7XHJcbiAgICAgIFxyXG4gICAgICAgIGlmKHBvaW50Qi54IDwgdGhpcy5tYXBXaWR0aCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEIueF1bcG9pbnRCLnldLm9wYWNpdHkgPT0gb3BhY2l0eSApe1xyXG4gICAgICAgICAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRCLnhdW3BvaW50Qi55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJyaWdodFwiKXtcclxuICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcInJpZ2h0XCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHBvaW50Qy54ID49IDApe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRDLnhdW3BvaW50Qy55XS5vcGFjaXR5ID09IG9wYWNpdHkpe1xyXG4gICAgICAgICAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRDLnhdW3BvaW50Qy55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJsZWZ0XCIpe1xyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJsZWZ0XCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHBvaW50RC55IDwgdGhpcy5tYXBIZWlnaHQpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRELnhdW3BvaW50RC55XS5vcGFjaXR5ID09IG9wYWNpdHkpe1xyXG4gICAgICAgICAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRELnhdW3BvaW50RC55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJ1cFwiKXtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwidXBcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocG9pbnRFLnkgPj0gMCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEUueF1bcG9pbnRFLnldLm9wYWNpdHkgPT0gb3BhY2l0eSl7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEUueF1bcG9pbnRFLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcImRvd25cIil7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwiZG93blwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihkaXIubGVuZ3RoID4gMil7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoZGlyLmxlbmd0aCA9PSAxKXtcclxuICAgICAgICAgICAgaWYodHlwZSA9PSBcIndhbGxcIilcclxuICAgICAgICAgICAgICAgIHJldHVybiBkaXJbMF07XHJcbiAgICAgICAgICAgIGVsc2UgXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkaXIubGVuZ3RoID09IDIpe1xyXG4gICAgICAgICAgICByZXR1cm4gZGlyWzBdICsgZGlyWzFdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVDb3JuZXJOb2RlcygpIHtcclxuICAgICAgICAvLyDlrprkuYnmi5Dop5LkvY3nva5cclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLndhbGxJbmZvLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy53YWxsSW5mb1tpXTtcclxuICAgICAgICAgICAgaWYoYmxvY2sub3BhY2l0eSAhPSAyNTApe1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpciA9IHRoaXMuZ2V0V2xsRGlyYWN0aW9uKFwidHVyblwiLGNjLnYyKGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSkpO1xyXG4gICAgICAgICAgICAgICAgaWYoZGlyICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlVHVybihkaXIsYmxvY2ssYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVdhbGwoZGlyZWN0aW9uLG5vZGUpe1xyXG4gICAgICAgIGxldCB3YWxsID0gbnVsbDtcclxuICAgICAgICBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnNldERpcmFjdGlvbihkaXJlY3Rpb24pO1xyXG4gICAgICAgIHN3aXRjaChkaXJlY3Rpb24pe1xyXG4gICAgICAgICAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzRdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdERvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBicmVhazsgXHJcbiAgICAgICAgICAgIGNhc2UgXCJsZWZ0XCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlszXSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0RG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMykgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls1XSk7XHJcbiAgICAgICBcclxuICAgICAgICAgICAgICAgICAgIHRoaXMudG9wRG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKSBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMF0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5ib3R0b21Eb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cHJpZ2h0XCIgOiBjYXNlIFwicmlnaHR1cFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbN10pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBsZWZ0XCIgOiBjYXNlIFwibGVmdHVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls2XSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3ducmlnaHRcIiA6IGNhc2UgXCJyaWdodGRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzJdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25sZWZ0XCIgOiBjYXNlIFwibGVmdGRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzFdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIFxyXG4gICAgICAgIC8vIGlmKHdhbGxUdXJuKXtcclxuICAgICAgICAvLyAgICAgd2FsbFR1cm4uZ2V0Q29tcG9uZW50KFwid2FsbFR1bnJcIikuaW5pdCh3YWxsKTtcclxuICAgICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RG9vckluZm8od2FsbCl7XHJcbiAgICAgICAgbGV0IGRvb3JJbmZvID0gY2MuZnguR2FtZUNvbmZpZy5XQUxMX0lORk9bMF07XHJcblxyXG4gICAgICAgIGlmKGRvb3JJbmZvKXtcclxuICAgICAgICAgICAgZm9yKGxldCBqID0gMDsgaiA8IGRvb3JJbmZvLmxlbmd0aDsgaisrKXtcclxuICAgICAgICAgICAgICAgIGlmKGRvb3JJbmZvW2pdLm51bSA9PSB0aGlzLndhbGxOdW0pe1xyXG4gICAgICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KGRvb3JJbmZvW2pdLG51bGwsbnVsbCxudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheS5wdXNoKHdhbGwucGFyZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlVHVybihkaXJlY3Rpb24sbm9kZSxwb3NYLHBvc1kpe1xyXG4gICAgICAgIGxldCB3YWxsID0gbnVsbDtcclxuICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy53YWxsVHVyblByZWZhYik7XHJcbiAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgc3dpdGNoKGRpcmVjdGlvbil7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cHJpZ2h0XCIgOiBjYXNlIFwicmlnaHR1cFwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IDA7XHJcbiAgICAgXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwbGVmdFwiIDogY2FzZSBcImxlZnR1cFwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDkwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtOTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54IC09IDEuMztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bnJpZ2h0XCIgOiBjYXNlIFwicmlnaHRkb3duXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gMjcwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtMjcwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueCArPSAyLjU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDE7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25sZWZ0XCIgOiBjYXNlIFwibGVmdGRvd25cIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSAxODA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC0xODA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54ICs9IDQuNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gMy4yO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpZihkaXJlY3Rpb24gPT0gXCJyaWdodGRvd25cIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3ducmlnaHRcIikge1xyXG4gICAgICAgIC8vICAgICB3YWxsLnpJbmRleCA9IDUwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZSBcclxuICAgICAgICAvLyAgICAgd2FsbC56SW5kZXggPSA1MCArIHBvc1ggLSBwb3NZKjM7XHJcblxyXG4gICAgICAgIGlmKGRpcmVjdGlvbiA9PSBcInVwXCIgfHwgZGlyZWN0aW9uID09IFwibGVmdHVwXCIgfHwgZGlyZWN0aW9uID09IFwidXBsZWZ0XCJcclxuICAgICAgICApe1xyXG4gICAgICAgICAgICB3YWxsLnpJbmRleCA9IDEwMCArIHBvc1ggLSBwb3NZKjM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoZGlyZWN0aW9uID09IFwicmlnaHR1cFwiIHx8IGRpcmVjdGlvbiA9PSBcInVwcmlnaHRcIiB8fCBkaXJlY3Rpb24gPT0gXCJyaWdodGRvd25cIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3ducmlnaHRcIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3dubGVmdFwiKXtcclxuICAgICAgICAgICAgd2FsbC56SW5kZXggPSAzMCArIHBvc1ggLSBwb3NZKjM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKCBkaXJlY3Rpb24gPT0gXCJsZWZ0XCIgfHwgZGlyZWN0aW9uID09IFwibGVmdGRvd25cIil7XHJcbiAgICAgICAgICAgIHdhbGwuekluZGV4ID0gNzAgKyBwb3NYIC0gcG9zWSozOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB3YWxsLnpJbmRleCA9IDcwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICBcclxuICAgICAgICAvLyB3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmFuZ2xlID0gLXdhbGwuYW5nbGU7XHJcbiAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gZGlyZWN0aW9uO1xyXG4gICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHdhbGwuekluZGV4KyBcIlwiO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHBvc1gscG9zWSx3YWxsLnpJbmRleCk7XHJcbiAgICAgICAgLy8gdGhpcy53YWxsTnVtICs9ICAxO1xyXG4gICAgICAgIC8vIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0gKyBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Zyw5Zu+5bqV5Z2X57y65Y+j5Yik5patXHJcbiAgICBtYXBHYXAocG9pbnQsZ2FwKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxnYXAubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZihwb2ludC54ID09IGdhcFtpXS54ICYmIHBvaW50LnkgPT0gZ2FwW2ldLnkpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvL+WNh+mZjeWcsOWdl+WIpOaWrVxyXG4gICAgbWFwUmlzZUZhbGwocG9pbnQscmlzZWZhbGwsYmxvY2spe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHJpc2VmYWxsLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYocG9pbnQueCA9PSByaXNlZmFsbFtpXS5wb3MueCAmJiBwb2ludC55ID09IHJpc2VmYWxsW2ldLnBvcy55KXtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENoaWxkQnlOYW1lKFwiY29sb3JcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSByaXNlZmFsbFtpXS5jb2xvcitcIlwiO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuYWRkQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcikuc2l6ZSA9IGNjLnNpemUoMTEwLDExMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvL+WNh+mZjeWcsOWdl1xyXG4gICAgY2hhbmdlUmlzZUZhbGwoY29sb3IsZG93bil7XHJcbiAgICAgICAgY29sb3IgPSBjb2xvci50b1N0cmluZygpO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMucmlzZUZhbGxCbGNvay5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKGNvbG9yID09IHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmdldENoaWxkQnlOYW1lKFwiY29sb3JcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpe1xyXG4gICAgICAgICAgICAgICAgaWYoZG93bil7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLnJlbW92ZUNvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmFkZENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcikuc2l6ZSA9IGNjLnNpemUoMTEwLDExMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy/mn6Xor6Llj6DliqDlv6tpZFxyXG4gICAgZm91bmREb3duQmxvY2soaWQpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tJZCA9PSBpZCl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ibG9ja3NbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liKDpmaTlnZdcclxuICAgIHJlbW92ZUJsb2NrKGlkKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrSWQgPT0gaWQpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tzW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1pbkFuZE1heChibG9jayl7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihibG9jay53aWR0aCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IE1hdGguZmxvb3IoYmxvY2suaGVpZ2h0IC8gMTIwKTtcclxuXHJcbiAgICAgICAgbGV0IG1pblggPSB3aWR0aDtcclxuICAgICAgICBsZXQgbWF4WCA9IHRoaXMubWFwV2lkdGgtMjtcclxuICAgICAgICBsZXQgbWluWSA9IDE7XHJcbiAgICAgICAgbGV0IG1heFkgPSB0aGlzLm1hcEhlaWdodC0yIC0gaGVpZ2h0ICsgMTtcclxuXHJcbiAgICAgICAgaWYoYmxvY2submFtZSA9PSBcImJsb2NrMTBcIil7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aC0xO1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcFdpZHRoID4gMykgbWF4WCA9IG1heFgtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2sxMVwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTI7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwV2lkdGggPiAzKSBtYXhYID0gbWF4WC0yO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2sxNFwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYLTE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoYmxvY2submFtZSA9PSBcImJsb2NrMTZcIil7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aC0xO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGJsb2NrLm5hbWUgPT0gXCJibG9jazE4XCIpe1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGgtMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFgtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2syMVwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYLTE7XHJcbiAgICAgICAgfVxyXG4gICAgIFxyXG4gICAgICAgIHJldHVybiB7bWluWDptaW5YLG1heFg6bWF4WCxtaW5ZOm1pblksbWF4WTptYXhZfTtcclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+iQveeCueaYr+WQpuWPr+S7pea2iOmZpFxyXG4gICAgY2hlY2tQYXNzKG5vZGUsYmxvY2tzKSB7XHJcbiAgICAgICAgbGV0IG1pbkFuZE1heCA9IHRoaXMuZ2V0TWluQW5kTWF4KG5vZGUpO1xyXG4gICAgICAgIGxldCBtaW5YID0gbWluQW5kTWF4Lm1pblg7XHJcbiAgICAgICAgbGV0IG1heFggPSBtaW5BbmRNYXgubWF4WDtcclxuICAgICAgICBsZXQgbWluWSA9IG1pbkFuZE1heC5taW5ZO1xyXG4gICAgICAgIGxldCBtYXhZID0gbWluQW5kTWF4Lm1heFk7XHJcblxyXG4gICAgICAgIGxldCBub2RlUG9zID0gY2MudjIobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1kpO1xyXG5cclxuICAgICAgICAvLyDojrflj5blnLDlm77ovrnnlYzkv6Hmga9cclxuXHJcbiAgICAgICAgbGV0IGFsbEJsb2NrcyA9IFtdO1xyXG4gICAgICAgIGZvcihsZXQgaT0wO2k8YmxvY2tzLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBhbGxCbG9ja3MucHVzaChjYy52Mihub2RlUG9zLnggKyBibG9ja3NbaV0ueCwgbm9kZVBvcy55ICsgYmxvY2tzW2ldLnkpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGUxID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlsIblsI/lnZfmlL7lhaXmlbDnu4TnmoTml7bpl7RcIixkYXRlMSk7XHJcbiAgIFxyXG4gICAgICAgIGxldCBqZyA9IC0xO1xyXG4gICAgICAgIGxldCBweiA9IDA7XHJcbiAgICAgICAgLy8g6I635Y+W5omA5pyJ5aKZ5aOB6IqC54K5XHJcbiAgICAgICAgLy8gbGV0IHdhbGwgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgbGV0IGRpcmVjdGlvbiA9IHRoaXMuY2hlY2tEaXJhY3Rpb24oYWxsQmxvY2tzLG1heFgsbWF4WSk7XHJcblxyXG4gICAgICAgIC8vIOWIpOaWreaWueWdl+aYr+WQpuWcqOWcsOWbvui+uee8mFxyXG4gICAgICAgIGlmIChub2RlUG9zLnggPD0gbWluWCB8fCBkaXJlY3Rpb25bMF0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlMiA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOW3pui+uee8mFwiLGRhdGUyKTtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgbGV0IGxlZnRXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy5sZWZ0RG9vcnMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxMZWZ0ID0gdGhpcy5sZWZ0RG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsTGVmdC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsd2FsbExlZnQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS55ID09IHdhbGxQb3MueSAmJiBhbGxCbG9ja3NbaV0ueCA+IHdhbGxQb3MueCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRXYWxscy5wdXNoKHdhbGxMZWZ0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlvpfliLDlt6bovrnlopnlo4HmlbDnu4RcIixkYXRlNik7XHJcbiAgICAgICAgICAgIGlmKGxlZnRXYWxscy5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcImxlZnRcIixub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsbGVmdFdhbGxzLG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlt6bovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0KXtcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChub2RlUG9zLnggPj0gbWF4WCB8fCBkaXJlY3Rpb25bMV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlMyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOWPs+i+uee8mFwiLGRhdGUzKTtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgbGV0IHJpZ2h0V2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRoaXMucmlnaHREb29ycy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFJpZ2h0ID0gdGhpcy5yaWdodERvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbFJpZ2h0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCx3YWxsUmlnaHQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS55ID09IHdhbGxQb3MueSAmJiBhbGxCbG9ja3NbaV0ueCA8IHdhbGxQb3MueCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0V2FsbHMucHVzaCh3YWxsUmlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYocmlnaHRXYWxscy5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcInJpZ2h0XCIsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSxhbGxCbG9ja3MpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCxyaWdodFdhbGxzLG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlj7PovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0KXtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxfVHJlYXRtZW50KG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gMztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBhcnRpY2xlKG5vZGUsamcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICBcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueSAgPD0gbWluWSB8fCBkaXJlY3Rpb25bMl0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlNCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mFwiLGRhdGU0KTtcclxuICAgICAgICAgICAgbGV0IGRvd25XYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy50b3BEb29ycy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbEJvdHRvbSA9IHRoaXMudG9wRG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsQm90dG9tLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCx3YWxsQm90dG9tLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbHVvY2hhID0gTWF0aC5hYnMoYWxsQmxvY2tzW2ldLnkgLSB3YWxsUG9zLnkpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnggPT0gd2FsbFBvcy54ICYmIGFsbEJsb2Nrc1tpXS55ID4gd2FsbFBvcy55ICYmIGx1b2NoYSA8PSBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnNodSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvd25XYWxscy5wdXNoKHdhbGxCb3R0b20pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYoZG93bldhbGxzLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwiZG93blwiLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCxkb3duV2FsbHMsbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQpe1xyXG4gICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgIFxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueSAgPj0gbWF4WSB8fCBkaXJlY3Rpb25bM10gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlNSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4iui+uee8mFwiLGRhdGU1KTtcclxuICAgICAgICAgICAgbGV0IHVwV2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRoaXMuYm90dG9tRG9vcnMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxUb3AgPSB0aGlzLmJvdHRvbURvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbFRvcC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsd2FsbFRvcC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGx1b2NoYSA9IE1hdGguYWJzKGFsbEJsb2Nrc1tpXS55IC0gd2FsbFBvcy55KVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS54ID09IHdhbGxQb3MueCAmJiBhbGxCbG9ja3NbaV0ueSA8IHdhbGxQb3MueSAmJiBsdW9jaGEgPD0gbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zaHUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cFdhbGxzLnB1c2god2FsbFRvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZih1cFdhbGxzLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwidXBcIixub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsdXBXYWxscyxub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yY57uT5p6cOlwiLHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQpe1xyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihweiA9PSAwIClqZyA9IC0xO1xyXG4gICAgICAgIC8vIGNvbnN0IGRhdGUxMCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5omA5pyJ5qOA5rWL57uT5p2f6ICX5pe2XCIsZGF0ZTEwLGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlU3RhdGUoKXtcclxuICAgICAgICBpZih0aGlzLm9wZW5XYWxsLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5vcGVuV2FsbC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNoYW5nZUxvY2soKTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKHRoaXMuZnJlZXplV2FsbC5sZW5ndGghPSAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5mcmVlemVXYWxsLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbFtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jaGFuZ2VGcmVlemUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+aYr+WQpuWPr+S7pemAmui/h+mXqFxyXG4gICAgcGFzc1dhbGwoamcsd2FsbEFycmF5LG5vZGUpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wO2k8d2FsbEFycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBpZih3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlsJ3or5XpgJrov4flvIDlhbPpl6g6XCIsd2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikub3Blbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyICYmIHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLm9wZW4gPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2cod2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3IpXHJcbiAgICAgICAgICAgIGlmKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yICE9IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3Ipe1xyXG5cclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNSl7XHJcbiAgICAgICAgICAgICAgICBpZih3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsICE9IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoamcgPT0gdHJ1ZSAgJiYgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDUpe1xyXG4gICAgICAgICAgICBmb3IobGV0IGo9MDtqPHdhbGxBcnJheS5sZW5ndGg7aisrKXtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMSAmJiB3YWxsQXJyYXlbal0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS53YWxsX0luZm8ubGVuZ3RoICE9IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBsYXlTdGFyRG9vcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGU4ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmo4DmtYvpopzoibLmmK/lkKbog73lpJ/pgJrov4fpl6hcIixkYXRlOCk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL5pa55Z2X5ZKM6Zeo5Lit6Ze05pyJ5rKh5pyJ5aS55p2C5YW25LuW5Z2XXHJcbiAgICBkZXRlY3RpbmdCbG9jayhkaXJlY3Rpb24scG9zWCxwb3NZLGJsb2Nrcyl7XHJcbiAgICAgICAgbGV0IGpnID0gdHJ1ZTtcclxuICAgICAgICBsZXQgaWQgPSBcIlwiO1xyXG4gICAgICAgIGlmKGJsb2Nrcy5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8YmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MgPSBibG9ja3NbaV07XHJcbiAgICAgICAgICAgICAgICBsZXQgeCA9IHBvcy54O1xyXG4gICAgICAgICAgICAgICAgbGV0IHkgPSBwb3MueTsgXHJcbiAgICAgICAgICAgICAgICBpZCA9IHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZDtcclxuICAgICAgICAgICAgICAgIGpnID0gdGhpcy5jaGVja0FsbERpcmVjdGlvbnMoaWQsZGlyZWN0aW9uLHgseSk7XHJcbiAgICAgICAgICAgICAgICBpZighamcpe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55ZCR5qOA5rWL5rKh6L+HXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTcgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaWueWQkeajgOa1i+mAmui/h1wiLGRhdGU3LGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvniankvZPlkITmlrnlkJHmmK/lkKbmnInliKvnmoTnianlnZfvvIzpmLLmraLnorDliLDlopnlo4HkuobkvYbmmK/mmK/lh7nlh7jlvaLnirbvvIzlopnkuI7lnZfkuYvpl7TmnInpmLvmjKHnianlnZdcclxuICAgIGNoZWNrQWxsRGlyZWN0aW9ucyhpZCxkaXJlY3Rpb24seCx5KXtcclxuICAgICAgICBsZXQgamcgPSB0cnVlO1xyXG4gXHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwibGVmdFwiKXtcclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3gtMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeC0xXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3puS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeC0xXVt5XS5vcGFjaXR5ID09IDI0OSl7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCh4IC0gMikgPj0gMCl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeC0yXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlt6bkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeCsxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4KzFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3grMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4KzFdW3ldLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoKHggKyAyKSA8PSB0aGlzLm1hcEJsb2Nrc1dhbGwubGVuZ3RoLTEpe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3grMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5vcGFjaXR5ID09IDI0OSl7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwidXBcIil7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSsxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMV0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZigoeSArIDIpIDw9IHRoaXMubWFwQmxvY2tzV2FsbFt4XS5sZW5ndGgtMSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSsyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihkaXJlY3Rpb24gPT0gXCJkb3duXCIpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beS0xXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTFdLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoKHkgLSAyKSA+PSAwKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5qOA5rWL54mp5L2T5ZCE5pa55ZCR5piv5ZCm5pyJ5Yir55qE54mp5Z2XXCIsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0RpcmFjdGlvbihhbGxCbG9ja3MsbWF4WCxtYXhZKXtcclxuICAgICAgICBsZXQgamcgPSBbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS54ID4gMCAmJiBqZ1swXSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLngtMV1bYWxsQmxvY2tzW2ldLnldLm9wYWNpdHkgPT0gMjUwKXtcclxuICAgICAgICAgICAgICAgICAgICBqZ1swXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCBqZ1sxXSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLngrMV1bYWxsQmxvY2tzW2ldLnldLm9wYWNpdHkgPT0gMjUwKXtcclxuICAgICAgICAgICAgICAgICAgICBqZ1sxXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS55ID4gMCAmJiBqZ1syXSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLnhdW2FsbEJsb2Nrc1tpXS55LTFdLm9wYWNpdHkgPT0gMjUwKXtcclxuICAgICAgICAgICAgICAgICAgICBqZ1syXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGpnWzNdID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueF1bYWxsQmxvY2tzW2ldLnkrMV0ub3BhY2l0eSA9PSAyNTApe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzNdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrTGVmdChhbGxCbG9ja3Mpe1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1JpZ2h0KGFsbEJsb2NrcyxtYXgpe1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tEb3duKGFsbEJsb2Nrcyl7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8YWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuIFxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tVcChhbGxCbG9ja3MsbWF4KXtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG4gICAgXHJcblxyXG4gICAgLy/nibnmrorlpITnkIbvvIzmlrnlnZfluKbpgZPlhbfmiJbogIXpnIDopoHmtojpmaTlhrDlnZdcclxuICAgIHNwZWNpYWxfVHJlYXRtZW50KG5vZGUpe1xyXG4gICAgICAgIGxldCBmcmVlemVCbG9jayA9IHRoaXMubm9kZS5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSl7XHJcbiAgICAgICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZihmcmVlemVCbG9jay5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8ZnJlZXplQmxvY2subGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgZnJlZXplQmxvY2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuZ2V0Q29tcG9uZW50KFwiRnJlZXplXCIpLnJlZHVjZSgxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDIgfHwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpe1xyXG4gICAgICAgICAgICBsZXQgbG9ja0Jsb2NrID0gdGhpcy5ub2RlLmNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2hpbGQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmKGxvY2tCbG9jay5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8bG9ja0Jsb2NrLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBsb2NrQmxvY2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJsb2NrXCIpLmdldENvbXBvbmVudChcIkxvY2tcIikucmVkdWNlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvcihsZXQgaT0wO2k8dGhpcy5ibG9ja3MubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldID09IG5vZGUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3Muc3BsaWNlKGksMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLy/liKTmlq3muLjmiI/miJDlip/kuIvkuIDlhbNcclxuICAgIG5leHRMZXZlbCgpe1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9wZW5JY2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5ibG9ja051bSA9IHRoaXMuYmxvY2tzLmxlbmd0aDtcclxuIFxyXG4gICAgICAgIGlmKHRoaXMuYmxvY2tOdW0gPT0gMCAmJiAhdGhpcy5nYW1lV2luICYmICF0aGlzLmdhbWVPdmVyKXtcclxuICAgICAgICAgICAgLy8gYWxlcnQoXCLmuLjmiI/miJDlip9cIik7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FtZVdpbiA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaIkOWKn+a2iOmZpOS4gOS4qlwiKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuY2hhbmdlQ29pbig0MCk7XHJcbiAgICAgICAgICAgIGxldCB0aW1lRGF0YSA9IHtcclxuICAgICAgICAgICAgICAgIGNvdW50X1RpbWU6dGhpcy5jb3VudF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgYWRkX1RpbWU6dGhpcy5hZGRfVGltZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmFkZExldmVsKHRpbWVEYXRhKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tfTmV3TW9kZSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH0sIDY2MCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5ri45oiP5oiQ5YqfXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBpZih0aGlzLmdhbWVPdmVyID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mYWlsTGV2ZWwobnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tfTmV3TW9kZSgpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCsxKSA9PSBjYy5meC5HYW1lQ29uZmlnLk5FV19MRVZFTFtpXS5sZXZlbCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld19tb2RlID0gMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB3aW5MZXZlbCgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA+IDE1Nil7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IDE1NjtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgIFxyXG4gICAgICAgICAgICBpZih0aGlzLm5ld19tb2RlID09IDMpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5OZXdNb2RlKDIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcInVwXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICB9IFxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S4gOWFs1wiKTtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmKHRoaXMubmV3X21vZGUgPT0gMyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ1cFwiLGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLDApO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICBcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFnYWluTGV2ZWwoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIixudWxsKTtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPCAxKXtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOS4jei2s1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgaWYoIXRoaXMuYWdhaW5DYW5Ub3VjaCkgcmV0dXJuO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuYWdhaW5DYW5Ub3VjaCA9IGZhbHNlO1xyXG4gICAgICAgIFxyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcInVwXCIsZmFsc2UpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLDApO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV2aWV3TGV2ZWwoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIixudWxsKTtcclxuICAgICAgICBsZXQgY29pbiA9IDkwMDtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDEpIGNvaW4gPSAxOTAwO1xyXG4gICAgICAgIGVsc2UgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAyKSBjb2luID0gMjUwMDtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiHqui6q+mHkeW4gTpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbixcIua2iOiAl+mHkeW4gTpcIixjb2luKTtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IE1hdGguYWJzKGNvaW4pKXtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazleWKoOaXtumXtFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLnJ1blJld2l2ZSgtY29pbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJ1blJld2l2ZShkYXRhKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWkjea0u+Wbnuiwg+WHveaVsOWGhVwiLGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmNoYW5nZUNvaW4oZGF0YSk7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIue7p+e7rea4uOaIj1wiKTtcclxuICAgXHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA8IDIpXHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgKz0gMTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gMjE7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSArPSAyMDtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgIFxyXG4gICAgaG9tZUJ0bigpe1xyXG4gICAgICAgIC8vIGFsZXJ0KFwi5ri45oiP5aSx6LSlXCIpO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKCF0aGlzLmhvbWVDYW5Ub3VjaCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuaG9tZUNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkxvY2tcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiSGVhbHRoXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIHRpbWU6dGhpcy5jb3VudF9UaW1lLCAgICAgICAgIFxyXG4gICAgICAgICAgICBhZGRfVGltZTp0aGlzLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICByZXN1bHQ6XCJmYWlsXCJcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsZGF0YSk7XHJcbiAgICAgICAgaWYodGhpcy5nYW1lU3RhcnQgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsKGRhdGEpPT57XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuSG9tZSgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGwpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLkvZPlipvlgLzlh4/lsJFcIik7XHJcbiAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICBpZih0aGlzLm5ld19tb2RlID09IDMpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgxKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIsIGFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liKTmlq3muLjmiI/lpLHotKVcclxuICAgIGZhaWxMZXZlbCh0eXBlKXtcclxuICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgIGlmKHRoaXMuZ2FtZU92ZXI9PSB0cnVlIHx8dGhpcy5nYW1lV2luID09IHRydWUpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5nYW1lT3ZlciA9IHRydWU7XHJcbiAgICAgICAgaWYodHlwZSA9PSBcImJvb21cIil7XHJcbiAgICAgICAgICAgIHRpbWUgPSAyMDAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGxldCBidXlCdG4gPSB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmdldENoaWxkQnlOYW1lKFwiYnV5QnRuXCIpO1xyXG4gICAgICAgICAgICAgICAgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjFcIikuYWN0aXZlID0gYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjJcIikuYWN0aXZlID0gYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjNcIikuYWN0aXZlID1mYWxzZTsgXHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDApYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjFcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAxKSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMlwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDIpIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4zXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0eXBlID09IFwiYm9vbVwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICB9LCB0aW1lKTtcclxuICAgIFxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5ri45oiP5aSx6LSlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5omT5byA5paw5qih5byP5by556qXXHJcbiAgICBvcGVuTmV3TW9kZSh0eXBlKXtcclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgIGNvbnN0IEJMT0NLU19QRVJfRlJBTUUgPSA1OyAvLyDmr4/luKfplIDmr4HnmoTmlrnlnZfmlbDph49cclxuICAgICAgICBjb25zdCBkZXN0cm95QmxvY2tzID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBlbmRJbmRleCA9IE1hdGgubWluKGluZGV4ICsgQkxPQ0tTX1BFUl9GUkFNRSwgdGhpcy5ibG9ja3MubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yICg7IGluZGV4IDwgZW5kSW5kZXg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpbmRleF0pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpbmRleF0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWmguaenOi/mOacieaWueWdl+acqumUgOavge+8jOS4i+S4gOW4p+e7p+e7rVxyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmJsb2Nrcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKGRlc3Ryb3lCbG9ja3MsIDApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvLyDlvIDlp4vliIbluKfplIDmr4HmlrnlnZdcclxuICAgICAgICBkZXN0cm95QmxvY2tzKCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJOZXdNb2RlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJOZXdNb2RlXCIpLmdldENvbXBvbmVudChcIk5ld01vZGVcIikuc2V0TW9kZSh0eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIGRvd25Eb29yKGNvbG9yLHR5cGUpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMud2FsbEFycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBpZih0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jb2xvciA9PSBjb2xvcil7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0eXBlID09IDUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiggdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmRvd25Eb29yKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSAgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cERvb3IoKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLndhbGxBcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLm9wYWNpdHkgPT0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS51cERvb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgIC8v5byA5aeL5YCS6K6h5pe2XHJcbiAgIHN0YXJ0VGltZUN1dERvd24oKXtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBpZih0aGlzLnBhdXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmKHRoaXMudGltZU51bWJlciA8PSAwKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLDUwLFwidGltZV9cIix0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICBpZighdGhpcy5wYXVzZSl0aGlzLmZhaWxMZXZlbChcInRpbWVcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMudGltZU51bWJlciAtPSAxO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudF9UaW1lICs9IDE7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLDUwLFwidGltZV9cIix0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2ssIDEpO1xyXG4gICAgfVxyXG4gICAgLy8g5YGc5q2i5YCS6K6h5pe2XHJcbiAgICBzdG9wVGltZUN1dERvd24oKXtcclxuICAgICAgICBpZih0aGlzLnNjaGVkdWxlQ2FsbGJhY2spe1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjml7bpl7TpgZPlhbdcclxuICAgIHVzZVRpbWVQcm9wKCl7XHJcbiAgICAgICAgaWYodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLmhhbW1lciA9PSB0cnVlIFxyXG4gICAgICAgIHx8IHRoaXMubWFnaWNNYXNrLmFjdGl2ZT09IHRydWUgfHwgdGhpcy50aW1lTnVtYmVyIDw9IDEpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgaWYoZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50IDwgMSl7XHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwiZnJlZXplXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBpZighdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgJiYgIXRoaXMucGF1c2Upe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVNYXNrLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPCAwKSAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pY2VMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8uZnJlZXplQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMjAwMSxjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOlwiMjAwMVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudW06LTFcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YGT5YW35L2/55So5Lit77yM6K+356iN5ZCO5YaN6K+VXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/op6PlvIDml7bpl7Tlhrvnu5NcclxuICAgIG9wZW5JY2UoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSl7XHJcbiAgICAgICAgICAgIHRoaXMuZnJlZXplTWFzay5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGhhbmRsZUJ1eVN1Y2Nlc3MoZGF0YSl7XHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlm57osIPlh73mlbDlhoU6XCIsdGhpcy5wYXVzZSk7XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgIGxldCBoYW1tZXJCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwibWFnaWNCdG5cIik7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImZyZWV6ZUFtb3VudFwiKSBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBlbHNlIGlmKGRhdGEgPT0gXCJoYW1tZXJBbW91bnRcIikgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7IFxyXG4gICAgICAgIGVsc2UgaWYoZGF0YSA9PSBcIm1hZ2ljQW1vdW50XCIpIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImZyZWV6ZUFtb3VudFwiKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8uZnJlZXplQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmljZUxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDlhrvnu5Pml7bpl7TpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkYXRhID09IFwibWFnaWNBbW91bnRcIil7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8ubWFnaWNBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikuY2xvc2VQcm9wQnV5KCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOmUpOWtkOmBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoZGF0YSA9PSBcImhhbW1lckFtb3VudFwiKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8uaGFtbWVyQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbW1lckxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDprZTms5Xmo5LpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjplKTlrZDpgZPlhbdcclxuICAgIHVzZUhhbW1lcigpe1xyXG4gICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IHRydWUgfHwgdGhpcy5oYW1tZXIgPT0gdHJ1ZSBcclxuICAgICAgICB8fCB0aGlzLm1hZ2ljTWFzay5hY3RpdmU9PSB0cnVlIHx8IHRoaXMudGltZU51bWJlciA8PSAxKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcImRlc3Ryb3lCdG5cIik7XHJcbiAgICAgICAgaWYoaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IDwgMSl7XHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJoYW1tZXJcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGlmKCF0aGlzLmhhbW1lcil7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbW1lck1hc2suYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW1tZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IDwgMCkgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6ZSk5a2Q6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby5oYW1tZXJBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgyMDAyLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6XCIyMDAyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bTotMVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLpgZPlhbfkvb/nlKjkuK3vvIzor7fnqI3lkI7lho3or5VcIik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuIFxyXG4gICAgYnV5TWFnaWMoKXtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMyx0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLFwibWFnaWNBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1eUhhbW1lcigpe1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAyLCB0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLFwiaGFtbWVyQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICBidXlGcmVlemUoKXtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMSx0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLFwiZnJlZXplQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOmtlOazleajkumaj+acuua2iOmZpOS4pOS4quaWueWdl1xyXG4gICAgdXNlTWFnaWMoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMuaGFtbWVyID09IHRydWUgXHJcbiAgICAgICAgfHwgdGhpcy5tYWdpY01hc2suYWN0aXZlPT0gdHJ1ZSB8fCB0aGlzLnRpbWVOdW1iZXIgPD0gMSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1hZ2ljQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcIm1hZ2ljQnRuXCIpO1xyXG4gICAgICAgIGlmKG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA8IDEpe1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKXtcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwibWFnaWNcIik7XHJcbiAgICAgICAgICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6a2U5rOV5qOS5pWw6YeP5LiN6LazLOiHquWKqOi0reS5sOmtlOazleajklwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSwgMTAwMCk7XHJcbiBcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IDwgMCkgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgcHJvcEluZm8ubWFnaWNBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDIwMDMsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDpcIjIwMDNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtOi0xXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IG5vbWFsQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMubWFnaWNCdG4ubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9MDsgaTx0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlnZfnsbvlnotcIix0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDMpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tfSW5mby5ub2RlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja19JbmZvLm5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihub21hbEFycmF5Lmxlbmd0aCA+IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkgPSBjYy5meC5HYW1lVG9vbC5zaHVmZmxlQXJyYXkobm9tYWxBcnJheSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYobm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEgfHwgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aW1lID4gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVsxXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVsxXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYobm9tYWxBcnJheS5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYobm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEgfHwgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5mcmVlemVBcnJheS5sZW5ndGggPT0gMCAmJiB0aGlzLmxvYWNrQXJyYXkubGVuZ3RoID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj6rliankuIvkuIDkuKrlnZfpgZPlhbfkvb/nlKjlrozmr5VcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubG9hY2tBcnJheS5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmtojpmaTkuIDkuKrmma7pgJrlnZflkI7vvIzmtojpmaTkuIDkuKrluKbplIHlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5mcmVlemVBcnJheS5sZW5ndGghPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua2iOmZpOS4gOS4quaZrumAmuWdl+WQju+8jOa2iOmZpOS4gOS4quWGu+e7k+Wdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZUFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMjAwK3RpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgY291bnQgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubG9hY2tBcnJheS5sZW5ndGghPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5sb2Fja0FycmF5Lmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ5pmu6YCa5b+r77yM6a2U5rOV5raI6Zmk5LiA5Liq5bim6ZSB5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5W2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpOyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCAhPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuZnJlZXplQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ5pmu6YCa5b+r77yM6a2U5rOV5raI6Zmk5LiA5Liq5Ya757uT5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZnJlZXplQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/mjInkuIvmmoLlgZzmjInpkq5cclxuICAgIHVzZVBhdXNlKCl7XHJcbiAgICAgICAgaWYodGhpcy5wYXVzZSl7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy/moLnmja7lhbPljaHorr7nva7lnLDlm77lpKflsI9cclxuICAgIHNldE1hcEluZm8oKXtcclxuICAgICAgICBsZXQgd2lkdGggPSAwO1xyXG4gICAgICAgIGlmKHRoaXMubWFwV2lkdGggPCAxMCl7XHJcbiAgICAgICAgICAgIHdpZHRoID0gMC4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMubWFwV2lkdGggPCAxNyl7XHJcbiAgICAgICAgICAgIHdpZHRoID0gMC4xNSAtICh0aGlzLm1hcFdpZHRoLTExKSowLjAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5ub2RlLnNjYWxlID0gMS42ICsgKDYgLSB0aGlzLm1hcFdpZHRoKSAqIHdpZHRoO1xyXG5cclxuICAgICAgICBpZih0aGlzLm1hcFdpZHRoID09IDggJiYgdGhpcy5tYXBIZWlnaHQgPiAxMyl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zY2FsZSA9IHRoaXMubm9kZS5zY2FsZTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAwLjU7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5ub2RlLnNjYWxlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu66Zeo55qE57KS5a2Q54m55pWIXHJcbiAgICBjcmVhdGVQYXJ0aWNsZShibG9jayxqZyl7XHJcbiAgICAgICAgbGV0IHBhcnRpY2xlID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbOV0pO1xyXG4gICAgICAgIHBhcnRpY2xlLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICBwYXJ0aWNsZS56SW5kZXggPSAxMDAwO1xyXG4gICAgICAgIGxldCB3aWR0aCA9IE1hdGguZmxvb3IoYmxvY2sud2lkdGggLyAxMjApO1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSBNYXRoLmZsb29yKGJsb2NrLmhlaWdodCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcIlwiO1xyXG5cclxuICAgICAgICBpZihqZyA9PSAwIHx8IGpnID09IDEpe1xyXG4gICAgICAgICAgICBsZXQgeSA9IGJsb2NrLnkgKyBibG9jay5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoLzI7XHJcbiAgICAgICAgICAgIG5hbWUgPSBcInRvcF9cIiArIHdpZHRoICsgXCJfXCIgKyBoZWlnaHQ7XHJcbiAgICAgICAgICAgIGlmKGpnID09IDEpe1xyXG4gICAgICAgICAgICAgICAgbmFtZSA9IFwiYm90X1wiICsgd2lkdGggKyBcIl9cIiArIGhlaWdodDtcclxuICAgICAgICAgICAgICAgIHkgPSBibG9jay55O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGJsb2NrLmFuY2hvclggPT0gMC41KXtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjMzKXtcclxuICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCooMC41LTAuMzMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjY2KXtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgqKDAuNS0wLjY2KTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcGFydGljbGUuc2V0UG9zaXRpb24oeCwgeSk7IFxyXG4gICAgICAgIH0gXHJcbiAgICAgICAgZWxzZSBpZihqZyA9PSAyIHx8IGpnID09IDMpe1xyXG4gICAgICAgICAgICBuYW1lID0gXCJsZWZ0X1wiICsgaGVpZ2h0ICsgXCJfXCIgKyB3aWR0aDtcclxuICAgICAgICAgICAgbGV0IHggPSBibG9jay54IC0gYmxvY2sud2lkdGg7XHJcbiAgICAgICAgICAgIGxldCB5ID0gYmxvY2sueSArIGJsb2NrLmhlaWdodC8yO1xyXG4gICAgICAgICAgICBpZihibG9jay5hbmNob3JYID09IDAuNSl7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoLzI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuMzMpe1xyXG4gICAgICAgICAgICAgICB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoKjAuMzM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuNjYpe1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCowLjY2OyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihqZyA9PSAzKXtcclxuICAgICAgICAgICAgICAgIG5hbWUgPSBcInJpZ2h0X1wiICsgaGVpZ2h0ICsgXCJfXCIgKyB3aWR0aDtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54O1xyXG4gICAgICAgICAgICAgICAgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgvMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjMzKXtcclxuICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgqMC42NjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjY2KXtcclxuICAgICAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoKjAuMzM7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwYXJ0aWNsZS5zZXRQb3NpdGlvbih4LCB5KTsgXHJcbiAgICAgICAgfSBcclxuXHJcbiAgICAgICAgbGV0IHBhcnRpY2xlTm9kZSA9ICBwYXJ0aWNsZS5nZXRDaGlsZEJ5TmFtZShuYW1lKTtcclxuICAgICAgICBsZXQgY29sb3IgPSBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvciAtIDE7XHJcblxyXG4gICAgICAgIHBhcnRpY2xlTm9kZS5nZXRDb21wb25lbnQoY2MuUGFydGljbGVTeXN0ZW0pLnNwcml0ZUZyYW1lID0gcGFydGljbGUuZ2V0Q29tcG9uZW50KFwiUmVkdWNlXCIpLkJsb2NrX0NvbG9yW2NvbG9yXTtcclxuICAgICAgICBwYXJ0aWNsZU5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2MudHdlZW4ocGFydGljbGUpXHJcbiAgICAgICAgICAgIC50bygyLCB7b3BhY2l0eTogMH0pXHJcbiAgICAgICAgICAgIC5jYWxsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmRlc3Ryb3koKTsgXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZU9uZUJsb2NrKCkge1xyXG4gICAgICAgIC8vIOenu+mZpOaJgOacieaWueWdl1xyXG4gICAgICAgIGZvcihsZXQgaSA9MCA7IGk8dGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZih0aGlzLmJsb2Nrc1tpXS5vcGFjaXR5ID09IDApe1xyXG4gICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzW2ldLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5zcGxpY2UoaSwxKTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgXHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QzttREFDUztJQUczQjtRQURLLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNLO0lBSTNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0RBQ007SUFyRFAsV0FBVztRQUQvQixPQUFPO09BQ2EsV0FBVyxDQWkrRC9CO0lBQUQsa0JBQUM7Q0FqK0RELEFBaStEQyxDQWorRHdDLEVBQUUsQ0FBQyxTQUFTLEdBaStEcEQ7a0JBaitEb0IsV0FBVyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmltcG9ydCBHYW1lTWFuYWdlciBmcm9tIFwiLi9HYW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBMUUNvbGxpZGUgfSBmcm9tIFwiLi9scV9jb2xsaWRlX3N5c3RlbS9scV9jb2xsaWRlXCI7XHJcbmltcG9ydCBOdW1iZXJUb0ltYWdlIGZyb20gXCIuL051bWJlclRvSW1hZ2VcIjtcclxuaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVTZGtcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNYXBDb25yb2xlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgX2luc3RhbmNlOiBhbnk7XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLmlrnlnZfmlbDnu4RcIn0pXHJcbiAgICBCbG9ja19BcnJheSA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOlwi5pa55Z2X6YGT5YW35pWw57uEXCJ9KVxyXG4gICAgQmxvY2tfUHJvcCA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgTWFwQmxvY2tQcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOlwi5pa55Z2X6aKc6ImyXCJ9KVxyXG4gICAgQmxvY2tfQ29sb3IgOiBBcnJheTxjYy5TcHJpdGVBdGxhcz4gPSBbXTtcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuWimeWjgeaVsOe7hFwifSlcclxuICAgIFdhbGxfUHJlZmFiIDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICBcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgd2FsbFR1cm5QcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkJ1dHRvbilcclxuICAgIHRpbWVCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQnV0dG9uKVxyXG4gICAgZGVzdHJveUJ0bjogY2MuQnV0dG9uID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5CdXR0b24pXHJcbiAgICBtYWdpY0J0bjogY2MuQnV0dG9uID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGljZUxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBoYW1tZXJMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbWFnaWNMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbWFnaWNNYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGhhbW1lck1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgICAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZyZWV6ZU1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIFxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luUG9wOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICB0aW1lTGFiZWw6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgbGV2ZWxMYWJlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgbmV3X21vZGU6IG51bWJlciA9IDA7XHJcbiAgICBtYXBXaWR0aDogbnVtYmVyID0gMDtcclxuICAgIG1hcEhlaWdodDogbnVtYmVyID0gMDtcclxuICAgIHdhbGxOdW06IG51bWJlciA9IDA7XHJcbiAgICBibG9ja051bTogbnVtYmVyID0gMDtcclxuICAgIG1hcEJsb2Nrc1dhbGw6IGFueTsgICAgICAvL+WcsOWbvueahOaJgOacieW6leWdl1xyXG4gICAgbWFwSW5mbzogYW55OyAgICAgICAvL+WcsOWbvumZpOS6huW6leWdl+eahOWFtuS7luS/oeaBr1xyXG4gICAgYmxvY2tzOiBhbnk7ICAgICAgICAvL+aWueWdl+aVsOe7hFxyXG4gICAgd2FsbEluZm86IGFueTsgICAgICAvL+WimeWjgeaVsOe7hFxyXG4gICAgd2FsbEFycmF5OmFueTsgICAgICAvL1xyXG4gICAgb3BlbldhbGw6IGFueTsgICAgICAvL+W8gOWFs+WimeaVsOe7hFxyXG4gICAgZnJlZXplV2FsbDogYW55OyAgICAvL+WGu+e7k+WimeaVsOe7hFxyXG4gICAgcmlzZUZhbGxCbGNvazphbnk7ICAvL+WNh+mZjeWcsOWdl+aVsOe7hFxyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55Oy8v5YCS6K6h5pe255SoXHJcbiAgICBob21lQ2FuVG91Y2g6Ym9vbGVhbiA9IHRydWU7Ly/mjInpkq7lj6/nlKjnirbmgIFcclxuICAgIGFnYWluQ2FuVG91Y2g6Ym9vbGVhbiA9ICB0cnVlOy8v6YeN546p5oyJ6ZKu5Y+v5Lul55So54q25oCBXHJcbiAgICBnYW1lT3ZlcjogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP57uT5p2f54q25oCBXHJcbiAgICBnYW1lV2luOiBib29sZWFuID0gZmFsc2U7Ly/muLjmiI/og5zliKnnirbmgIFcclxuICAgIGdhbWVTdGFydDogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP5byA5aeL54q25oCBXHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXIgPSAwOyAvL+a4uOaIj+aXtumXtCDnlKjkuo7lgJLorqHml7ZcclxuICAgIGNvdW50X1RpbWU6IG51bWJlciA9IDA7IC8v55So5LqO57uf6K6h5oC75ri45oiP5pe26ZW/XHJcbiAgICBhZGRfVGltZTogbnVtYmVyID0gMDsgICAvL+Wkjea0u+aXtumXtFxyXG4gICAgbWFwQmxvY2tBcnJheTogYW55OyAgLy/lnLDlm77nmoTmiYDmnInmoLzlrZDnirbmgIHlrZjlgqhcclxuICAgIHBhdXNlOmJvb2xlYW4gPSBmYWxzZTsvL+aaguWBnOeKtuaAgVxyXG4gICAgaGFtbWVyOmJvb2xlYW4gPSBmYWxzZTsvL+mUpOWtkOeKtuaAgVxyXG4gICAgZnJlZXplQXJyYXk6IGFueTsgLy/lhrvnu5NcclxuICAgIGxvYWNrQXJyYXk6IGFueTsgLy/kuIrplIFcclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gbGVmdERvb3JzOiBbXTsgLy/lt6bpl6hcclxuICAgIHJpZ2h0RG9vcnM6IGFueTsgLy/lj7Ppl6hcclxuICAgIHRvcERvb3JzOiBhbnk7IC8v5LiK6ZeoXHJcbiAgICBib3R0b21Eb29yczogYW55OyAvL+S4i+mXqFxyXG4gICAgbGVmdERvb3JzOiBhbnk7XHJcblxyXG5cclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZVN0YXRlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1hc2sub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiQWRoZXNpdmVcIikuekluZGV4ID0gNTAwO1xyXG4gICAgICAgIGNjLmdhbWUuc2V0RnJhbWVSYXRlKDYzKTsgXHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4yXCIsbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcImRvd25cIixmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJkb3duXCIpIHtcclxuICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYmxvY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5sZWZ0RG9vcnMgPSBbXTsgLy/lt6bpl6hcclxuICAgICAgICB0aGlzLnJpZ2h0RG9vcnMgPSBbXTsgLy/lj7Ppl6hcclxuICAgICAgICB0aGlzLnRvcERvb3JzID0gW107IC8v5LiK6ZeoXHJcbiAgICAgICAgdGhpcy5ib3R0b21Eb29ycyA9IFtdOyAvL+S4i+mXqFxyXG4gICAgICAgIHRoaXMuZ2FtZVdpbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2FtZU92ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdhbWVTdGFydCA9IGZhbHNlOyBcclxuICAgICAgICB0aGlzLmhvbWVDYW5Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hZ2FpbkNhblRvdWNoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5ld19tb2RlID0gMDtcclxuICAgICAgICB0aGlzLmNvdW50X1RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuYWRkX1RpbWUgPSAwO1xyXG4gXHJcbiAgICAgICAgdGhpcy5pY2VMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5oYW1tZXJMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5tYWdpY0xhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudC50b1N0cmluZygpO1xyXG4gICBcclxuICAgICAgICAvLyBjYy5nYW1lLmFkZFBlcnNpc3RSb290Tm9kZSh0aGlzLm5vZGUpO1xyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IHRoaXM7XHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gSG9tZVNjZW5lIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLov5vlhaVHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5CbG9ja19BcnJheTtcclxuICAgICAgICB0aGlzLldhbGxfUHJlZmFiID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLldhbGxfUHJlZmFiO1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQ29sb3IgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQ29sb3I7XHJcbiAgICAgICAgLy8gdGhpcy5wYXJ0aWNsZUVmZmVjdHMgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UucGFydGljbGVFZmZlY3RzO1xyXG4gICAgICAgXHJcbiAgICAgICAgdGhpcy5pbml0TWFwKCk7XHJcbiAgIFxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0VXBkYXRlKCl7XHJcbiAgICAgICAgaWYodGhpcy5nYW1lU3RhcnQgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICB0aGlzLmdhbWVTdGFydCA9IHRydWU7XHJcbiAgICAgICAgICAgIC8v5Y+R6YCB5pWw5pWw5LqL5Lu24oCU4oCU6L+b5YWl5YWz5Y2hXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5YeG5aSH6L+b5YWl5LiL5LiA5YWzLOWPkemAgeS4i+S4gOWFs+i/m+WFpVwiKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZW50ZXJfc3RhZ2VcIik7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPTA7IGk8dGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA2KXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpXS5nZXRDaGlsZEJ5TmFtZShcImJvb21cIikuZ2V0Q29tcG9uZW50KFwiQm9vbVwiKS5zdGFydEJvb20oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0TWFwKCl7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKS56SW5kZXggPSAxMDtcclxuICAgICAgICB0aGlzLnRpbWVMYWJlbCA9ICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwidGltZVwiKTtcclxuICAgICAgICB0aGlzLmxldmVsTGFiZWwgPSAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcImxldmVsXCIpO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS50aW1lO1xyXG5cclxuICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLDUwLFwidGltZV9cIix0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAvLyB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2RlcygoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKzEpLDUwLDIwLFwibGV2ZWxfXCIsdGhpcy5sZXZlbExhYmVsLGZhbHNlKVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcblxyXG4gICAgICAgIHRoaXMubWFwV2lkdGggPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ubWFwWzBdO1xyXG4gICAgICAgIHRoaXMubWFwSGVpZ2h0ID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLm1hcFsxXTtcclxuICAgICAgICBsZXQgZ2FwID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLmdhcDtcclxuICAgICAgICBsZXQgcmlzZWZhbGwgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ucmlzZWZhbGw7XHJcblxyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmhhbW1lciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMud2FsbE51bSA9IDA7XHJcbiAgICAgICAgdGhpcy5zZXRNYXBJbmZvKCk7XHJcbiAgICAgICAgdGhpcy5ibG9ja3MgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEluZm8gPSBbXTtcclxuICAgICAgICB0aGlzLndhbGxJbmZvID0gW107XHJcbiAgICAgICAgdGhpcy5vcGVuV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMud2FsbEFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5mcmVlemVXYWxsID0gW107XHJcbiAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rID0gW107XHJcbiAgICAgICAgdGhpcy5tYXBCbG9ja0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5mcmVlemVBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMubG9hY2tBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY291bnRfVGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSA9IDA7XHJcbiAgICAgIFxyXG4gICAgICAgIGxldCBzdGFydFggPSAgdGhpcy5tYXBXaWR0aCUyPT0wPy0odGhpcy5tYXBXaWR0aC0xKSo2MDotKHRoaXMubWFwV2lkdGgtMSkqNjA7XHJcbiAgICAgICAgbGV0IHN0YXJ0WSA9ICB0aGlzLm1hcEhlaWdodCUyPT0wPy0odGhpcy5tYXBIZWlnaHQtMSkqNjA6LSh0aGlzLm1hcEhlaWdodC0xKSo2MDtcclxuICAgICAgICAvLyBzdGFydFggPSh0aGlzLm1hcFdpZHRoLTEpKjYwICsgNjA7XHJcbiAgICAgICAgLy8gc3RhcnRZID0tKHRoaXMubWFwSGVpZ2h0LTEpKjYwIC0gNjA7XHJcbiAgICAgICAgXHJcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRoaXMubWFwV2lkdGg7IGkrKyl7XHJcbiAgICAgICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbFtpXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgZm9yKGxldCBqID0gMDsgaiA8IHRoaXMubWFwSGVpZ2h0OyBqKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrID0gY2MuaW5zdGFudGlhdGUodGhpcy5NYXBCbG9ja1ByZWZhYik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJtYXBCbG9ja1wiKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmluaXQoaSxqKTsgICAgXHJcbiAgICAgICAgICAgICAgICAvLyBibG9jay5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IGkgKyBcIjpcIiArIGo7XHJcbiAgICAgICAgICAgICAgICBibG9jay5zZXRQb3NpdGlvbihjYy52MihzdGFydFggKyBpICogMTIwLCBzdGFydFkgKyBqICogMTIwKSlcclxuICAgICAgICAgICAgICAgIGlmKHJpc2VmYWxsICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwUmlzZUZhbGwoY2MudjIoaSxqKSxyaXNlZmFsbCxibG9jaykpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2sucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoZ2FwIT0gbnVsbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoIXRoaXMubWFwR2FwKGNjLnYyKGksaiksZ2FwKSB8fCBpID09IDAgfHwgaSA9PSB0aGlzLm1hcFdpZHRoLTFcclxuICAgICAgICAgICAgICAgICAgICB8fCBqID09IDAgfHwgaiA9PSB0aGlzLm1hcEhlaWdodCAtIDEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5vcGFjaXR5ID0gMjU0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53YWxsSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5tYXBJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBpZiggaSA9PSAwIHx8IGkgPT0gdGhpcy5tYXBXaWR0aC0xXHJcbiAgICAgICAgICAgICAgICAgICAgfHwgaiA9PSAwIHx8IGogPT0gdGhpcy5tYXBIZWlnaHQgLSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sub3BhY2l0eSA9IDI1NDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5tYXBJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbFtpXS5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy53YWxsSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuYmxvY2tJbml0KCk7XHJcbiAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rmlrnlnZdcclxuLy8gLi4uIOW3suacieS7o+eggSAuLi5cclxuXHJcbi8v5Yib5bu65pa55Z2XXHJcbi8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG5cclxuXHJcblxyXG5ibG9ja0luaXQoKSB7XHJcbiAgICBsZXQgYmxvY2tBcnJheSA9IGNjLmZ4LkdhbWVDb25maWcuQkxPQ0tfSU5GT1swXTtcclxuICAgIGJsb2NrQXJyYXkgPSB0aGlzLnNvcnRCbG9jayhibG9ja0FycmF5KTsgXHJcblxyXG4gICAgbGV0IGluZGV4ID0gMDsgLy8g5b2T5YmN6KaB5Yib5bu655qE5pa55Z2X57Si5byVXHJcbiAgICBsZXQgQkxPQ0tTX1BFUl9GUkFNRSA9IDE7IC8vIOWIneWni+avj+W4p+WIm+W7uueahOaWueWdl+aVsOmHj1xyXG4gICAgY29uc3QgTUFYX1BFUl9GUkFNRSA9IDEwOyAvLyDmr4/luKfmnIDlpKfliJvlu7rmlbDph49cclxuICAgIGNvbnN0IE1JTl9QRVJfRlJBTUUgPSAxOyAvLyDmr4/luKfmnIDlsI/liJvlu7rmlbDph49cclxuXHJcbiAgICBjb25zdCBjcmVhdGVCbG9ja3MgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBCTE9DS1NfUEVSX0ZSQU1FICYmIGluZGV4IDwgYmxvY2tBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgYmxvY2tJbmZvID0gYmxvY2tBcnJheVtpbmRleF07XHJcbiAgICAgICAgICAgIC8vIOe8k+WtmCBCbG9ja19BcnJheSDorr/pl65cclxuICAgICAgICAgICAgY29uc3QgYmxvY2tQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2Jsb2NrSW5mby5ibG9ja107IFxyXG4gICAgICAgICAgICBsZXQgYmxvY2sgPSBjYy5pbnN0YW50aWF0ZShibG9ja1ByZWZhYik7XHJcbiAgICAgICAgICAgIGJsb2NrLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgYmxvY2suc2V0UG9zaXRpb24oY2MudjIoYmxvY2tJbmZvLnBvc2l0aW9uLngsIGJsb2NrSW5mby5wb3NpdGlvbi55KSk7XHJcbiAgICAgICAgICAgIGlmIChibG9ja0luZm8uYmxvY2sgIT0gMjMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgaWYgKGJsb2NrSW5mby50eXBlID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGJsb2NrSW5mby5pZCArIDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrOiBibG9ja0luZm8uYmxvY2ssXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBibG9ja0luZm8uc3RhY2tpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IDEwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYmxvY2tJbmZvLnBvc2l0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFja2luZzogYmxvY2tJbmZvLmNvbG9yXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAvLyDnvJPlrZggQmxvY2tfQXJyYXkg6K6/6ZeuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tVcFByZWZhYiA9IHRoaXMuQmxvY2tfQXJyYXlbaW5mby5ibG9ja107IFxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBibG9ja1VwID0gY2MuaW5zdGFudGlhdGUoYmxvY2tVcFByZWZhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5zZXRQb3NpdGlvbihjYy52MihpbmZvLnBvc2l0aW9uLngsIGluZm8ucG9zaXRpb24ueSkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5wdXNoKGJsb2NrVXApO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoYmxvY2tJbmZvLCBudWxsLCBudWxsLCBibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICBibG9ja1VwLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoaW5mbywgbnVsbCwgbnVsbCwgYmxvY2spO1xyXG4gICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGJsb2NrSW5mby50eXBlID09IDkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZihibG9ja0luZm8uYWRoZXNpdmVUaW1lIDwgMil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpbmZvID0gYmxvY2tBcnJheVtpbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g57yT5a2YIEJsb2NrX0FycmF5IOiuv+mXrlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrVXBQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2luZm8uYmxvY2tdOyBcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYmxvY2tVcCA9IGNjLmluc3RhbnRpYXRlKGJsb2NrVXBQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrVXAucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuc2V0UG9zaXRpb24oY2MudjIoaW5mby5wb3NpdGlvbi54LCBpbmZvLnBvc2l0aW9uLnkpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MucHVzaChibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGJsb2NrSW5mbywgbnVsbCwgbnVsbCwgYmxvY2tVcCxmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChpbmZvLCBudWxsLCBudWxsLCBibG9jayx0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9LCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChibG9ja0luZm8pO1xyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmFycmllclwiKS5pbml0KGJsb2NrSW5mbyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZW5kVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIGNvbnN0IGZyYW1lVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7XHJcbiAgICAgICAgLy8g5aaC5p6c5b2T5YmN5bin5omn6KGM5pe26Ze06L+H6ZW/77yM5YeP5bCR5q+P5bin5Yib5bu65pWw6YePXHJcbiAgICAgICAgaWYgKGZyYW1lVGltZSA+IDE2KSB7IFxyXG4gICAgICAgICAgICBCTE9DS1NfUEVSX0ZSQU1FID0gTWF0aC5tYXgoQkxPQ0tTX1BFUl9GUkFNRSAtIDEsIE1JTl9QRVJfRlJBTUUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIEJMT0NLU19QRVJfRlJBTUUgPSBNYXRoLm1pbihCTE9DS1NfUEVSX0ZSQU1FICsgMSwgTUFYX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlpoLmnpzov5jmnInmlrnlnZfmnKrliJvlu7rvvIzkuIvkuIDluKfnu6fnu63liJvlu7pcclxuICAgICAgICBpZiAoaW5kZXggPCBibG9ja0FycmF5Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAvLyDkvb/nlKggc2NoZWR1bGVPbmNlIOWcqOS4i+S4gOW4p+aJp+ihjCBjcmVhdGVCbG9ja3NcclxuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY3JlYXRlQmxvY2tzKCk7XHJcbiAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLy8g5byA5aeL5YiG5bin5Yib5bu65pa55Z2XXHJcbiAgICBjcmVhdGVCbG9ja3MoKTtcclxufVxyXG4vL+e7meWIm+W7uuaWueWdl+aOkuW6j++8jOeUqOadpemZjeS9jmRyYXdjYWxsIOWQiOaJuVxyXG5zb3J0QmxvY2soYWxsQmxvY2tzOiB7IGNvbG9yOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IHR5cGU6IG51bWJlciB9W10pIHtcclxuICAgIHJldHVybiBhbGxCbG9ja3Muc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgIC8vIOWFiOWkhOeQhiB0eXBlIOS4uiAxIOeahOaDheWGte+8jOWwhuWFtuaUvuWIsOacgOWQjlxyXG4gICAgICAgIGlmIChhLnR5cGUgPT09IDEgJiYgYi50eXBlICE9PSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYS50eXBlICE9PSAxICYmIGIudHlwZSA9PT0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlr7kgdHlwZSDkuI3kuLogMCDnmoTlhYPntKDmjIkgdHlwZSDmjpLluo9cclxuICAgICAgICBpZiAoYS50eXBlICE9PSAwICYmIGIudHlwZSAhPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gYS50eXBlIC0gYi50eXBlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYS50eXBlICE9PSAwICYmIGIudHlwZSA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEudHlwZSA9PT0gMCAmJiBiLnR5cGUgIT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5YaN5aSE55CGIGJsb2NrIOS4uiAyMyDnmoTmg4XlhrXvvIzlsIblhbbmlL7liLDmnIDliY3pnaJcclxuICAgICAgICBpZiAoYS5ibG9jayA9PT0gMjMgJiYgYi5ibG9jayAhPT0gMjMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYS5ibG9jayAhPT0gMjMgJiYgYi5ibG9jayA9PT0gMjMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlhbbkvZnmjIkgY29sb3Ig5Y2H5bqP5o6S5YiXXHJcbiAgICAgICAgcmV0dXJuIGEuY29sb3IgLSBiLmNvbG9yO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcblxyXG4vL+WIm+W7uuWimeWjgVxyXG5cclxud2FsbEluaXQoKSB7XHJcbiAgICBsZXQgaW5kZXggPSAwOyAvLyDlvZPliY3opoHliJvlu7rnmoTlopnlo4HntKLlvJVcclxuICAgIGxldCBXQUxMU19QRVJfRlJBTUUgPSAxOyAvLyDliJ3lp4vmr4/luKfliJvlu7rnmoTlopnlo4HmlbDph49cclxuICAgIGNvbnN0IE1BWF9QRVJfRlJBTUUgPSAxMDsgLy8g5q+P5bin5pyA5aSn5Yib5bu65pWw6YePXHJcbiAgICBjb25zdCBNSU5fUEVSX0ZSQU1FID0gMTsgLy8g5q+P5bin5pyA5bCP5Yib5bu65pWw6YePXHJcblxyXG4gICAgY29uc3QgY3JlYXRlV2FsbHMgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBXQUxMU19QRVJfRlJBTUUgJiYgaW5kZXggPCB0aGlzLndhbGxJbmZvLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBibG9jayA9IHRoaXMud2FsbEluZm9baW5kZXhdO1xyXG4gICAgICAgICAgICBsZXQgZGlyID0gdGhpcy5nZXRXbGxEaXJhY3Rpb24oXCJ3YWxsXCIsIGNjLnYyKGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1kpKTtcclxuICAgICAgICAgICAgaWYgKGRpciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVdhbGwoZGlyLCBibG9jayk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZW5kVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIGNvbnN0IGZyYW1lVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7XHJcbiAgICAgICAgLy8g5aaC5p6c5b2T5YmN5bin5omn6KGM5pe26Ze06L+H6ZW/77yM5YeP5bCR5q+P5bin5Yib5bu65pWw6YePXHJcbiAgICAgICAgaWYgKGZyYW1lVGltZSA+IDE2KSB7IFxyXG4gICAgICAgICAgICBXQUxMU19QRVJfRlJBTUUgPSBNYXRoLm1heChXQUxMU19QRVJfRlJBTUUgLSAxLCBNSU5fUEVSX0ZSQU1FKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBXQUxMU19QRVJfRlJBTUUgPSBNYXRoLm1pbihXQUxMU19QRVJfRlJBTUUgKyAxLCBNQVhfUEVSX0ZSQU1FKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOWmguaenOi/mOacieWimeWjgeacquWIm+W7uu+8jOS4i+S4gOW4p+e7p+e7reWIm+W7ulxyXG4gICAgICAgIGlmIChpbmRleCA8IHRoaXMud2FsbEluZm8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNyZWF0ZVdhbGxzKCk7XHJcbiAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIOaJgOacieWimeWjgeWIm+W7uuWujOaIkOWQju+8jOWIm+W7uuaLkOinkuiKgueCuVxyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUNvcm5lck5vZGVzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvLyDlvIDlp4vliIbluKfliJvlu7rlopnlo4FcclxuICAgIGNyZWF0ZVdhbGxzKCk7XHJcbn1cclxuXHJcbi8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG4gICAgZ2V0V2xsRGlyYWN0aW9uKHR5cGUscG9pbnRBKXtcclxuICAgICAgICBsZXQgZGlyID0gW107XHJcbiAgICAgICAgbGV0IHBvaW50QiA9IGNjLnYyKHBvaW50QS54ICsgMSxwb2ludEEueSk7XHJcbiAgICAgICAgbGV0IHBvaW50QyA9IGNjLnYyKHBvaW50QS54IC0gMSxwb2ludEEueSk7XHJcbiAgICAgICAgbGV0IHBvaW50RCA9IGNjLnYyKHBvaW50QS54LHBvaW50QS55ICsgMSk7XHJcbiAgICAgICAgbGV0IHBvaW50RSA9IGNjLnYyKHBvaW50QS54LHBvaW50QS55IC0gMSk7XHJcbiAgICAgICAgbGV0IG9wYWNpdHkgPSAwO1xyXG4gICAgICAgIGlmKHR5cGUgPT0gXCJ3YWxsXCIpIG9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIikgb3BhY2l0eSA9IDI1MDtcclxuICAgICAgXHJcbiAgICAgICAgaWYocG9pbnRCLnggPCB0aGlzLm1hcFdpZHRoKXtcclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50Qi54XVtwb2ludEIueV0ub3BhY2l0eSA9PSBvcGFjaXR5ICl7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEIueF1bcG9pbnRCLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcInJpZ2h0XCIpe1xyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwicmlnaHRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocG9pbnRDLnggPj0gMCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEMueF1bcG9pbnRDLnldLm9wYWNpdHkgPT0gb3BhY2l0eSl7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEMueF1bcG9pbnRDLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcImxlZnRcIil7XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcImxlZnRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocG9pbnRELnkgPCB0aGlzLm1hcEhlaWdodCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEQueF1bcG9pbnRELnldLm9wYWNpdHkgPT0gb3BhY2l0eSl7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEQueF1bcG9pbnRELnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcInVwXCIpe1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJ1cFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihwb2ludEUueSA+PSAwKXtcclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50RS54XVtwb2ludEUueV0ub3BhY2l0eSA9PSBvcGFjaXR5KXtcclxuICAgICAgICAgICAgICAgIGlmKHR5cGUgPT0gXCJ0dXJuXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50RS54XVtwb2ludEUueV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuZGlyZWN0aW9uID09IFwiZG93blwiKXtcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJkb3duXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGRpci5sZW5ndGggPiAyKXtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihkaXIubGVuZ3RoID09IDEpe1xyXG4gICAgICAgICAgICBpZih0eXBlID09IFwid2FsbFwiKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpclswXTtcclxuICAgICAgICAgICAgZWxzZSBcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGRpci5sZW5ndGggPT0gMil7XHJcbiAgICAgICAgICAgIHJldHVybiBkaXJbMF0gKyBkaXJbMV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUNvcm5lck5vZGVzKCkge1xyXG4gICAgICAgIC8vIOWumuS5ieaLkOinkuS9jee9rlxyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMud2FsbEluZm8ubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLndhbGxJbmZvW2ldO1xyXG4gICAgICAgICAgICBpZihibG9jay5vcGFjaXR5ICE9IDI1MCl7XHJcbiAgICAgICAgICAgICAgICBsZXQgZGlyID0gdGhpcy5nZXRXbGxEaXJhY3Rpb24oXCJ0dXJuXCIsY2MudjIoYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKSk7XHJcbiAgICAgICAgICAgICAgICBpZihkaXIgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVUdXJuKGRpcixibG9jayxibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlV2FsbChkaXJlY3Rpb24sbm9kZSl7XHJcbiAgICAgICAgbGV0IHdhbGwgPSBudWxsO1xyXG4gICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuc2V0RGlyYWN0aW9uKGRpcmVjdGlvbik7XHJcbiAgICAgICAgc3dpdGNoKGRpcmVjdGlvbil7XHJcbiAgICAgICAgICAgIGNhc2UgXCJyaWdodFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbNF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWZ0RG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMykgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGJyZWFrOyBcclxuICAgICAgICAgICAgY2FzZSBcImxlZnRcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzNdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmlnaHREb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKSBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzVdKTtcclxuICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgdGhpcy50b3BEb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3duXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlswXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJvdHRvbURvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMykgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwcmlnaHRcIiA6IGNhc2UgXCJyaWdodHVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls3XSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cGxlZnRcIiA6IGNhc2UgXCJsZWZ0dXBcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzZdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25yaWdodFwiIDogY2FzZSBcInJpZ2h0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMl0pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bmxlZnRcIiA6IGNhc2UgXCJsZWZ0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMV0pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgXHJcbiAgICAgICAgLy8gaWYod2FsbFR1cm4pe1xyXG4gICAgICAgIC8vICAgICB3YWxsVHVybi5nZXRDb21wb25lbnQoXCJ3YWxsVHVuclwiKS5pbml0KHdhbGwpO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXREb29ySW5mbyh3YWxsKXtcclxuICAgICAgICBsZXQgZG9vckluZm8gPSBjYy5meC5HYW1lQ29uZmlnLldBTExfSU5GT1swXTtcclxuXHJcbiAgICAgICAgaWYoZG9vckluZm8pe1xyXG4gICAgICAgICAgICBmb3IobGV0IGogPSAwOyBqIDwgZG9vckluZm8ubGVuZ3RoOyBqKyspe1xyXG4gICAgICAgICAgICAgICAgaWYoZG9vckluZm9bal0ubnVtID09IHRoaXMud2FsbE51bSl7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FsbC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQoZG9vckluZm9bal0sbnVsbCxudWxsLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5LnB1c2god2FsbC5wYXJlbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVUdXJuKGRpcmVjdGlvbixub2RlLHBvc1gscG9zWSl7XHJcbiAgICAgICAgbGV0IHdhbGwgPSBudWxsO1xyXG4gICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLndhbGxUdXJuUHJlZmFiKTtcclxuICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICBzd2l0Y2goZGlyZWN0aW9uKXtcclxuICAgICAgICAgICAgY2FzZSBcInVwcmlnaHRcIiA6IGNhc2UgXCJyaWdodHVwXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gMDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFuZ2xlID0gMDtcclxuICAgICBcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBsZWZ0XCIgOiBjYXNlIFwibGVmdHVwXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gOTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC05MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnggLT0gMS4zO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3ducmlnaHRcIiA6IGNhc2UgXCJyaWdodGRvd25cIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSAyNzA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC0yNzA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54ICs9IDIuNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gMTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bmxlZnRcIiA6IGNhc2UgXCJsZWZ0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDE4MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFuZ2xlID0gLTE4MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnggKz0gNC41O1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueSArPSAzLjI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGlmKGRpcmVjdGlvbiA9PSBcInJpZ2h0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25yaWdodFwiKSB7XHJcbiAgICAgICAgLy8gICAgIHdhbGwuekluZGV4ID0gNTAgKyBwb3NYIC0gcG9zWSozO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyBlbHNlIFxyXG4gICAgICAgIC8vICAgICB3YWxsLnpJbmRleCA9IDUwICsgcG9zWCAtIHBvc1kqMztcclxuXHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwidXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJsZWZ0dXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJ1cGxlZnRcIlxyXG4gICAgICAgICl7XHJcbiAgICAgICAgICAgIHdhbGwuekluZGV4ID0gMTAwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkaXJlY3Rpb24gPT0gXCJyaWdodHVwXCIgfHwgZGlyZWN0aW9uID09IFwidXByaWdodFwiIHx8IGRpcmVjdGlvbiA9PSBcInJpZ2h0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25yaWdodFwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25sZWZ0XCIpe1xyXG4gICAgICAgICAgICB3YWxsLnpJbmRleCA9IDMwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoIGRpcmVjdGlvbiA9PSBcImxlZnRcIiB8fCBkaXJlY3Rpb24gPT0gXCJsZWZ0ZG93blwiKXtcclxuICAgICAgICAgICAgd2FsbC56SW5kZXggPSA3MCArIHBvc1ggLSBwb3NZKjM7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHdhbGwuekluZGV4ID0gNzAgKyBwb3NYIC0gcG9zWSozO1xyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuYW5nbGUgPSAtd2FsbC5hbmdsZTtcclxuICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkaXJlY3Rpb247XHJcbiAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gd2FsbC56SW5kZXgrIFwiXCI7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2cocG9zWCxwb3NZLHdhbGwuekluZGV4KTtcclxuICAgICAgICAvLyB0aGlzLndhbGxOdW0gKz0gIDE7XHJcbiAgICAgICAgLy8gd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bSArIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLy/lnLDlm77lupXlnZfnvLrlj6PliKTmlq1cclxuICAgIG1hcEdhcChwb2ludCxnYXApe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGdhcC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHBvaW50LnggPT0gZ2FwW2ldLnggJiYgcG9pbnQueSA9PSBnYXBbaV0ueSl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Y2H6ZmN5Zyw5Z2X5Yik5patXHJcbiAgICBtYXBSaXNlRmFsbChwb2ludCxyaXNlZmFsbCxibG9jayl7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8cmlzZWZhbGwubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZihwb2ludC54ID09IHJpc2VmYWxsW2ldLnBvcy54ICYmIHBvaW50LnkgPT0gcmlzZWZhbGxbaV0ucG9zLnkpe1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoXCJyaXNlZmFsbFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuZ2V0Q2hpbGRCeU5hbWUoXCJjb2xvclwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHJpc2VmYWxsW2ldLmNvbG9yK1wiXCI7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5hZGRDb21wb25lbnQoY2MuQm94Q29sbGlkZXIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuZ2V0Q29tcG9uZW50KGNjLkJveENvbGxpZGVyKS5zaXplID0gY2Muc2l6ZSgxMTAsMTEwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8v5Y2H6ZmN5Zyw5Z2XXHJcbiAgICBjaGFuZ2VSaXNlRmFsbChjb2xvcixkb3duKXtcclxuICAgICAgICBjb2xvciA9IGNvbG9yLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5yaXNlRmFsbEJsY29rLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYoY29sb3IgPT0gdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJjb2xvclwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyl7XHJcbiAgICAgICAgICAgICAgICBpZihkb3duKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJyaXNlZmFsbFwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykucmVtb3ZlQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuYWRkQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuZ2V0Q29tcG9uZW50KGNjLkJveENvbGxpZGVyKS5zaXplID0gY2Muc2l6ZSgxMTAsMTEwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICAvL+afpeivouWPoOWKoOW/q2lkXHJcbiAgICBmb3VuZERvd25CbG9jayhpZCl7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja0lkID09IGlkKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJsb2Nrc1tpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvL+WIoOmZpOWdl1xyXG4gICAgcmVtb3ZlQmxvY2soaWQpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tJZCA9PSBpZCl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ibG9ja3NbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TWluQW5kTWF4KGJsb2NrKXtcclxuICAgICAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKGJsb2NrLndpZHRoIC8gMTIwKTtcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gTWF0aC5mbG9vcihibG9jay5oZWlnaHQgLyAxMjApO1xyXG5cclxuICAgICAgICBsZXQgbWluWCA9IHdpZHRoO1xyXG4gICAgICAgIGxldCBtYXhYID0gdGhpcy5tYXBXaWR0aC0yO1xyXG4gICAgICAgIGxldCBtaW5ZID0gMTtcclxuICAgICAgICBsZXQgbWF4WSA9IHRoaXMubWFwSGVpZ2h0LTIgLSBoZWlnaHQgKyAxO1xyXG5cclxuICAgICAgICBpZihibG9jay5uYW1lID09IFwiYmxvY2sxMFwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTE7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwV2lkdGggPiAzKSBtYXhYID0gbWF4WC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGJsb2NrLm5hbWUgPT0gXCJibG9jazExXCIpe1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGgtMjtcclxuICAgICAgICAgICAgaWYodGhpcy5tYXBXaWR0aCA+IDMpIG1heFggPSBtYXhYLTI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIGlmKGJsb2NrLm5hbWUgPT0gXCJibG9jazE0XCIpe1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGgtMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFgtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2sxNlwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYLTE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoYmxvY2submFtZSA9PSBcImJsb2NrMThcIil7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aC0xO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGJsb2NrLm5hbWUgPT0gXCJibG9jazIxXCIpe1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGgtMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFgtMTtcclxuICAgICAgICB9XHJcbiAgICAgXHJcbiAgICAgICAgcmV0dXJuIHttaW5YOm1pblgsbWF4WDptYXhYLG1pblk6bWluWSxtYXhZOm1heFl9O1xyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL6JC954K55piv5ZCm5Y+v5Lul5raI6ZmkXHJcbiAgICBjaGVja1Bhc3Mobm9kZSxibG9ja3MpIHtcclxuICAgICAgICBsZXQgbWluQW5kTWF4ID0gdGhpcy5nZXRNaW5BbmRNYXgobm9kZSk7XHJcbiAgICAgICAgbGV0IG1pblggPSBtaW5BbmRNYXgubWluWDtcclxuICAgICAgICBsZXQgbWF4WCA9IG1pbkFuZE1heC5tYXhYO1xyXG4gICAgICAgIGxldCBtaW5ZID0gbWluQW5kTWF4Lm1pblk7XHJcbiAgICAgICAgbGV0IG1heFkgPSBtaW5BbmRNYXgubWF4WTtcclxuXHJcbiAgICAgICAgbGV0IG5vZGVQb3MgPSBjYy52Mihub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSk7XHJcblxyXG4gICAgICAgIC8vIOiOt+WPluWcsOWbvui+ueeVjOS/oeaBr1xyXG5cclxuICAgICAgICBsZXQgYWxsQmxvY2tzID0gW107XHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTxibG9ja3MubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGFsbEJsb2Nrcy5wdXNoKGNjLnYyKG5vZGVQb3MueCArIGJsb2Nrc1tpXS54LCBub2RlUG9zLnkgKyBibG9ja3NbaV0ueSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTEgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWwhuWwj+Wdl+aUvuWFpeaVsOe7hOeahOaXtumXtFwiLGRhdGUxKTtcclxuICAgXHJcbiAgICAgICAgbGV0IGpnID0gLTE7XHJcbiAgICAgICAgbGV0IHB6ID0gMDtcclxuICAgICAgICAvLyDojrflj5bmiYDmnInlopnlo4HoioLngrlcclxuICAgICAgICAvLyBsZXQgd2FsbCA9IHRoaXMubm9kZTtcclxuICAgICAgICBsZXQgZGlyZWN0aW9uID0gdGhpcy5jaGVja0RpcmFjdGlvbihhbGxCbG9ja3MsbWF4WCxtYXhZKTtcclxuXHJcbiAgICAgICAgLy8g5Yik5pat5pa55Z2X5piv5ZCm5Zyo5Zyw5Zu+6L6557yYXHJcbiAgICAgICAgaWYgKG5vZGVQb3MueCA8PSBtaW5YIHx8IGRpcmVjdGlvblswXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGUyID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5bem6L6557yYXCIsZGF0ZTIpO1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICBsZXQgbGVmdFdhbGxzID0gW107XHJcbiAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLmxlZnREb29ycy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbExlZnQgPSB0aGlzLmxlZnREb29yc1tpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFBvcyA9IGNjLnYyKHdhbGxMZWZ0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCx3YWxsTGVmdC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnkgPT0gd2FsbFBvcy55ICYmIGFsbEJsb2Nrc1tpXS54ID4gd2FsbFBvcy54KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJpZDpcIix3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdFdhbGxzLnB1c2god2FsbExlZnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW+l+WIsOW3pui+ueWimeWjgeaVsOe7hFwiLGRhdGU2KTtcclxuICAgICAgICAgICAgaWYobGVmdFdhbGxzLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwibGVmdFwiLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCxsZWZ0V2FsbHMsbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOW3pui+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQpe1xyXG4gICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueCA+PSBtYXhYIHx8IGRpcmVjdGlvblsxXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGUzID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5Y+z6L6557yYXCIsZGF0ZTMpO1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICBsZXQgcmlnaHRXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy5yaWdodERvb3JzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUmlnaHQgPSB0aGlzLnJpZ2h0RG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsUmlnaHQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NYLHdhbGxSaWdodC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnkgPT0gd2FsbFBvcy55ICYmIGFsbEJsb2Nrc1tpXS54IDwgd2FsbFBvcy54KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJpZDpcIix3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRXYWxscy5wdXNoKHdhbGxSaWdodCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZihyaWdodFdhbGxzLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwicmlnaHRcIixub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0ID09IHRydWUpIHJlc3VsdCA9IHRoaXMucGFzc1dhbGwocmVzdWx0LHJpZ2h0V2FsbHMsbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOWPs+i+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQpe1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gIFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobm9kZVBvcy55ICA8PSBtaW5ZIHx8IGRpcmVjdGlvblsyXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHB6ICs9IDE7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGU0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiL6L6557yYXCIsZGF0ZTQpO1xyXG4gICAgICAgICAgICBsZXQgZG93bldhbGxzID0gW107XHJcbiAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLnRvcERvb3JzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsQm90dG9tID0gdGhpcy50b3BEb29yc1tpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFBvcyA9IGNjLnYyKHdhbGxCb3R0b20uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NYLHdhbGxCb3R0b20uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBsdW9jaGEgPSBNYXRoLmFicyhhbGxCbG9ja3NbaV0ueSAtIHdhbGxQb3MueSlcclxuICAgICAgICAgICAgICAgICAgICBpZihhbGxCbG9ja3NbaV0ueCA9PSB3YWxsUG9zLnggJiYgYWxsQmxvY2tzW2ldLnkgPiB3YWxsUG9zLnkgJiYgbHVvY2hhIDw9IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2h1KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJpZDpcIix3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG93bldhbGxzLnB1c2god2FsbEJvdHRvbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZihkb3duV2FsbHMubGVuZ3RoICE9IDApe1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGV0ZWN0aW5nQmxvY2soXCJkb3duXCIsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSxhbGxCbG9ja3MpO1xyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0ID09IHRydWUpIHJlc3VsdCA9IHRoaXMucGFzc1dhbGwocmVzdWx0LGRvd25XYWxscyxub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiL6L6557yY57uT5p6cOlwiLGpnKTtcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCl7XHJcbiAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobm9kZVBvcy55ICA+PSBtYXhZIHx8IGRpcmVjdGlvblszXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHB6ICs9IDE7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGU1ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yYXCIsZGF0ZTUpO1xyXG4gICAgICAgICAgICBsZXQgdXBXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy5ib3R0b21Eb29ycy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFRvcCA9IHRoaXMuYm90dG9tRG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsVG9wLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCx3YWxsVG9wLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbHVvY2hhID0gTWF0aC5hYnMoYWxsQmxvY2tzW2ldLnkgLSB3YWxsUG9zLnkpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnggPT0gd2FsbFBvcy54ICYmIGFsbEJsb2Nrc1tpXS55IDwgd2FsbFBvcy55ICYmIGx1b2NoYSA8PSBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnNodSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwV2FsbHMucHVzaCh3YWxsVG9wKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmKHVwV2FsbHMubGVuZ3RoICE9IDApe1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGV0ZWN0aW5nQmxvY2soXCJ1cFwiLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCx1cFdhbGxzLG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDkuIrovrnnvJjnu5Pmnpw6XCIscmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCl7XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHB6ID09IDAgKWpnID0gLTE7XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTEwID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmiYDmnInmo4DmtYvnu5PmnZ/ogJfml7ZcIixkYXRlMTAsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VTdGF0ZSgpe1xyXG4gICAgICAgIGlmKHRoaXMub3BlbldhbGwubGVuZ3RoICE9IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLm9wZW5XYWxsLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGxbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuY2hhbmdlTG9jaygpOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYodGhpcy5mcmVlemVXYWxsLmxlbmd0aCE9IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmZyZWV6ZVdhbGwubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNoYW5nZUZyZWV6ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL5piv5ZCm5Y+v5Lul6YCa6L+H6ZeoXHJcbiAgICBwYXNzV2FsbChqZyx3YWxsQXJyYXksbm9kZSl7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTx3YWxsQXJyYXkubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGlmKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMil7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWwneivlemAmui/h+W8gOWFs+mXqDpcIix3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5vcGVuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZih3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIgJiYgd2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikub3BlbiA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyh3YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuY29sb3Isbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvcilcclxuICAgICAgICAgICAgaWYod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuY29sb3IgIT0gbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvcil7XHJcblxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA1KXtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgIT0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihqZyA9PSB0cnVlICAmJiBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNSl7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaj0wO2o8d2FsbEFycmF5Lmxlbmd0aDtqKyspe1xyXG4gICAgICAgICAgICAgICAgaWYod2FsbEFycmF5W2pdLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAxICYmIHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLndhbGxfSW5mby5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FsbEFycmF5W2pdLmdldENvbXBvbmVudChcIldhbGxcIikucGxheVN0YXJEb29yKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTggPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuajgOa1i+minOiJsuaYr+WQpuiDveWkn+mAmui/h+mXqFwiLGRhdGU4KTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvmlrnlnZflkozpl6jkuK3pl7TmnInmsqHmnInlpLnmnYLlhbbku5blnZdcclxuICAgIGRldGVjdGluZ0Jsb2NrKGRpcmVjdGlvbixwb3NYLHBvc1ksYmxvY2tzKXtcclxuICAgICAgICBsZXQgamcgPSB0cnVlO1xyXG4gICAgICAgIGxldCBpZCA9IFwiXCI7XHJcbiAgICAgICAgaWYoYmxvY2tzLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTxibG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvcyA9IGJsb2Nrc1tpXTtcclxuICAgICAgICAgICAgICAgIGxldCB4ID0gcG9zLng7XHJcbiAgICAgICAgICAgICAgICBsZXQgeSA9IHBvcy55OyBcclxuICAgICAgICAgICAgICAgIGlkID0gdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkO1xyXG4gICAgICAgICAgICAgICAgamcgPSB0aGlzLmNoZWNrQWxsRGlyZWN0aW9ucyhpZCxkaXJlY3Rpb24seCx5KTtcclxuICAgICAgICAgICAgICAgIGlmKCFqZyl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlkJHmo4DmtYvmsqHov4dcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaSA9IDEwMDAwMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zdCBkYXRlNyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55ZCR5qOA5rWL6YCa6L+HXCIsZGF0ZTcsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+eJqeS9k+WQhOaWueWQkeaYr+WQpuacieWIq+eahOeJqeWdl++8jOmYsuatoueisOWIsOWimeWjgeS6huS9huaYr+aYr+WHueWHuOW9oueKtu+8jOWimeS4juWdl+S5i+mXtOaciemYu+aMoeeJqeWdl1xyXG4gICAgY2hlY2tBbGxEaXJlY3Rpb25zKGlkLGRpcmVjdGlvbix4LHkpe1xyXG4gICAgICAgIGxldCBqZyA9IHRydWU7XHJcbiBcclxuICAgICAgICBpZihkaXJlY3Rpb24gPT0gXCJsZWZ0XCIpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeC0xXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3gtMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bem5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4LTFdW3ldLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoKHggLSAyKSA+PSAwKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3gtMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3gtMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3puS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3gtMl1beV0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoZGlyZWN0aW9uID09IFwicmlnaHRcIil7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4KzFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3grMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCsxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj7PkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3grMV1beV0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZigoeCArIDIpIDw9IHRoaXMubWFwQmxvY2tzV2FsbC5sZW5ndGgtMSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4KzJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4KzJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj7PkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4KzJdW3ldLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihkaXJlY3Rpb24gPT0gXCJ1cFwiKXtcclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSsxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSsxXS5vcGFjaXR5ID09IDI0OSl7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCh5ICsgMikgPD0gdGhpcy5tYXBCbG9ja3NXYWxsW3hdLmxlbmd0aC0xKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMl0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGRpcmVjdGlvbiA9PSBcImRvd25cIil7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beS0xXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIvkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMV0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZigoeSAtIDIpID49IDApe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beS0yXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beS0yXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beS0yXS5vcGFjaXR5ID09IDI0OSl7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmo4DmtYvniankvZPlkITmlrnlkJHmmK/lkKbmnInliKvnmoTnianlnZdcIixqZyk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrRGlyYWN0aW9uKGFsbEJsb2NrcyxtYXhYLG1heFkpe1xyXG4gICAgICAgIGxldCBqZyA9IFtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV07XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8YWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnggPiAwICYmIGpnWzBdID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueC0xXVthbGxCbG9ja3NbaV0ueV0ub3BhY2l0eSA9PSAyNTApe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzBdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoIGpnWzFdID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueCsxXVthbGxCbG9ja3NbaV0ueV0ub3BhY2l0eSA9PSAyNTApe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzFdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnkgPiAwICYmIGpnWzJdID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueF1bYWxsQmxvY2tzW2ldLnktMV0ub3BhY2l0eSA9PSAyNTApe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzJdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoamdbM10gPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW2FsbEJsb2Nrc1tpXS54XVthbGxCbG9ja3NbaV0ueSsxXS5vcGFjaXR5ID09IDI1MCl7XHJcbiAgICAgICAgICAgICAgICAgICAgamdbM10gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tMZWZ0KGFsbEJsb2Nrcyl7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrUmlnaHQoYWxsQmxvY2tzLG1heCl7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8YWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0Rvd24oYWxsQmxvY2tzKXtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1VwKGFsbEJsb2NrcyxtYXgpe1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcbiAgICBcclxuXHJcbiAgICAvL+eJueauiuWkhOeQhu+8jOaWueWdl+W4pumBk+WFt+aIluiAhemcgOimgea2iOmZpOWGsOWdl1xyXG4gICAgc3BlY2lhbF9UcmVhdG1lbnQobm9kZSl7XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJsb2NrID0gdGhpcy5ub2RlLmNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgIGlmKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpKXtcclxuICAgICAgICAgICAgICAgIGlmKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNClcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmKGZyZWV6ZUJsb2NrLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTxmcmVlemVCbG9jay5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBmcmVlemVCbG9ja1tpXS5nZXRDaGlsZEJ5TmFtZShcImZyZWV6ZVwiKS5nZXRDb21wb25lbnQoXCJGcmVlemVcIikucmVkdWNlKDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZihub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMiB8fCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNCl7XHJcbiAgICAgICAgICAgIGxldCBsb2NrQmxvY2sgPSB0aGlzLm5vZGUuY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgICAgIGlmKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYobG9ja0Jsb2NrLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IGk9MDsgaTxsb2NrQmxvY2subGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGxvY2tCbG9ja1tpXS5nZXRDaGlsZEJ5TmFtZShcImxvY2tcIikuZ2V0Q29tcG9uZW50KFwiTG9ja1wiKS5yZWR1Y2UoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTx0aGlzLmJsb2Nrcy5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0gPT0gbm9kZSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5zcGxpY2UoaSwxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICAvL+WIpOaWrea4uOaIj+aIkOWKn+S4i+S4gOWFs1xyXG4gICAgbmV4dExldmVsKCl7XHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub3BlbkljZSgpO1xyXG5cclxuICAgICAgICB0aGlzLmJsb2NrTnVtID0gdGhpcy5ibG9ja3MubGVuZ3RoO1xyXG4gXHJcbiAgICAgICAgaWYodGhpcy5ibG9ja051bSA9PSAwICYmICF0aGlzLmdhbWVXaW4gJiYgIXRoaXMuZ2FtZU92ZXIpe1xyXG4gICAgICAgICAgICAvLyBhbGVydChcIua4uOaIj+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgdGhpcy5nYW1lV2luID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5oiQ5Yqf5raI6Zmk5LiA5LiqXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5jaGFuZ2VDb2luKDQwKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuYWRkTGV2ZWwodGhpcy5jb3VudF9UaW1lLHRoaXMuYWRkX1RpbWUpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jaGVja19OZXdNb2RlKCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSwgNjYwKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmuLjmiI/miJDlip9cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZ2FtZU92ZXIgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZhaWxMZXZlbChudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjaGVja19OZXdNb2RlKCl7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8Y2MuZnguR2FtZUNvbmZpZy5ORVdfTEVWRUwubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZigoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKzEpID09IGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMW2ldLmxldmVsKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubmV3X21vZGUgPSAzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHdpbkxldmVsKCl7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsbnVsbCk7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID4gMTU2KXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMTU2O1xyXG4gICAgICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgXHJcbiAgICAgICAgICAgIGlmKHRoaXMubmV3X21vZGUgPT0gMyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlKTtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcInVwXCIpIHtcclxuICAgICAgICAgICAgLy8gICAgICAgICAvLyDliqjnlLvmkq3mlL7nu5PmnZ/lkI7miafooYznmoTpgLvovpFcclxuICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgICAgICAvLyB9KTtcclxuXHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5LiA5YWzXCIpO1xyXG4gICAgICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYodGhpcy5uZXdfbW9kZSA9PSAzKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgyKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLDApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcInVwXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsMCk7XHJcbiAgICAgICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZGVzdHJveSgpO1xyXG4gICAgICBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWdhaW5MZXZlbCgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA8IDEpe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85LiN6LazXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBcclxuICAgICAgICBpZighdGhpcy5hZ2FpbkNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5hZ2FpbkNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAvLyDliqjnlLvmkq3mlL7nu5PmnZ/lkI7miafooYznmoTpgLvovpFcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyB9KTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsMCk7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICByZXZpZXdMZXZlbCgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGxldCBjb2luID0gOTAwO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMSkgY29pbiA9IDE5MDA7XHJcbiAgICAgICAgZWxzZSBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDIpIGNvaW4gPSAyNTAwO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6Ieq6Lqr6YeR5biBOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLFwi5raI6ICX6YeR5biBOlwiLGNvaW4pO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgTWF0aC5hYnMoY29pbikpe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV5Yqg5pe26Ze0XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMucnVuUmV3aXZlKC1jb2luKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcnVuUmV3aXZlKGRhdGEpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5aSN5rS75Zue6LCD5Ye95pWw5YaFXCIsZGF0YSk7XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuY2hhbmdlQ29pbihkYXRhKTtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi57un57ut5ri45oiPXCIpO1xyXG4gICBcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3IDwgMilcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyArPSAxO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuZ2FtZU92ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRpbWVOdW1iZXIgPSAyMTtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lICs9IDIwO1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgXHJcbiAgICBob21lQnRuKCl7XHJcbiAgICAgICAgLy8gYWxlcnQoXCLmuLjmiI/lpLHotKVcIik7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsbnVsbCk7XHJcbiAgICAgICAgaWYoIXRoaXMuaG9tZUNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5ob21lQ2FuVG91Y2ggPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkJvb21cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiTG9ja1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJIZWFsdGhcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgdGltZTp0aGlzLmNvdW50X1RpbWUsICAgICAgICAgXHJcbiAgICAgICAgICAgIGFkZF9UaW1lOnRoaXMuYWRkX1RpbWUsXHJcbiAgICAgICAgICAgIHJlc3VsdDpcImZhaWxcIlxyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJmaW5pc2hfc3RhZ2VcIixkYXRhKTtcclxuICAgICAgICBpZih0aGlzLmdhbWVTdGFydCA9PSB0cnVlKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aCgtMSwoZGF0YSk9PntcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsbnVsbCk7XHJcbiAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbCl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOWHj+WwkVwiKTtcclxuICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLDApO1xyXG4gICAgICAgIGlmKHRoaXMubmV3X21vZGUgPT0gMyl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm9wZW5OZXdNb2RlKDEpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ1cFwiLGZhbHNlKTtcclxuICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L29IFByZWZhYiDlpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICB9LCAxMjAwKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+WIpOaWrea4uOaIj+Wksei0pVxyXG4gICAgZmFpbExldmVsKHR5cGUpe1xyXG4gICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgaWYodGhpcy5nYW1lT3Zlcj09IHRydWUgfHx0aGlzLmdhbWVXaW4gPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB0aW1lID0gMDtcclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gdHJ1ZTtcclxuICAgICAgICBpZih0eXBlID09IFwiYm9vbVwiKXtcclxuICAgICAgICAgICAgdGltZSA9IDIwMDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGJ1eUJ0biA9IHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIlRpbWVcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidXlCdG5cIik7XHJcbiAgICAgICAgICAgICAgICBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMVwiKS5hY3RpdmUgPSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMlwiKS5hY3RpdmUgPSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luM1wiKS5hY3RpdmUgPWZhbHNlOyBcclxuICAgICAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMClidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDEpIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4yXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMikgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjNcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGlmKHR5cGUpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHR5cGUgPT0gXCJib29tXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIHRpbWUpO1xyXG4gICAgXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmuLjmiI/lpLHotKVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLy/miZPlvIDmlrDmqKHlvI/lvLnnqpdcclxuICAgIG9wZW5OZXdNb2RlKHR5cGUpe1xyXG4gICAgICAgIGxldCBpbmRleCA9IDA7XHJcbiAgICAgICAgY29uc3QgQkxPQ0tTX1BFUl9GUkFNRSA9IDU7IC8vIOavj+W4p+mUgOavgeeahOaWueWdl+aVsOmHj1xyXG4gICAgICAgIGNvbnN0IGRlc3Ryb3lCbG9ja3MgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZEluZGV4ID0gTWF0aC5taW4oaW5kZXggKyBCTE9DS1NfUEVSX0ZSQU1FLCB0aGlzLmJsb2Nrcy5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKDsgaW5kZXggPCBlbmRJbmRleDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2luZGV4XSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzW2luZGV4XS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5aaC5p6c6L+Y5pyJ5pa55Z2X5pyq6ZSA5q+B77yM5LiL5LiA5bin57un57utXHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IHRoaXMuYmxvY2tzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoZGVzdHJveUJsb2NrcywgMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8vIOW8gOWni+WIhuW4p+mUgOavgeaWueWdl1xyXG4gICAgICAgIGRlc3Ryb3lCbG9ja3MoKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIk5ld01vZGVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIk5ld01vZGVcIikuZ2V0Q29tcG9uZW50KFwiTmV3TW9kZVwiKS5zZXRNb2RlKHR5cGUpO1xyXG4gICAgfVxyXG5cclxuICAgIFxyXG4gICAgZG93bkRvb3IoY29sb3IsdHlwZSl7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy53YWxsQXJyYXkubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yID09IGNvbG9yKXtcclxuICAgICAgICAgICAgICAgIGlmKHR5cGUpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHR5cGUgPT0gNSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlICB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5kb3duRG9vcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5kb3duRG9vcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwRG9vcigpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMud2FsbEFycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBpZih0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikub3BhY2l0eSA9PSAwKXtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnVwRG9vcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgLy/lvIDlp4vlgJLorqHml7ZcclxuICAgc3RhcnRUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVDYWxsYmFjayA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucGF1c2UpIHJldHVybjtcclxuICAgICAgICAgICAgaWYodGhpcy50aW1lTnVtYmVyIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIE51bWJlclRvSW1hZ2UuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIsNTAsXCJ0aW1lX1wiLHRoaXMudGltZUxhYmVsKVxyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIGlmKCF0aGlzLnBhdXNlKXRoaXMuZmFpbExldmVsKFwidGltZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aW1lTnVtYmVyIC09IDE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50X1RpbWUgKz0gMTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIE51bWJlclRvSW1hZ2UuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIsNTAsXCJ0aW1lX1wiLHRoaXMudGltZUxhYmVsKVxyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjaywgMSk7XHJcbiAgICB9XHJcbiAgICAvLyDlgZzmraLlgJLorqHml7ZcclxuICAgIHN0b3BUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIGlmKHRoaXMuc2NoZWR1bGVDYWxsYmFjayl7XHJcbiAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOaXtumXtOmBk+WFt1xyXG4gICAgdXNlVGltZVByb3AoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMuaGFtbWVyID09IHRydWUgXHJcbiAgICAgICAgfHwgdGhpcy5tYWdpY01hc2suYWN0aXZlPT0gdHJ1ZSB8fCB0aGlzLnRpbWVOdW1iZXIgPD0gMSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgIGxldCBmcmVlemVCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICBpZihmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPCAxKXtcclxuICAgICAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJmcmVlemVcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGlmKCF0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSAmJiAhdGhpcy5wYXVzZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZU1hc2suYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA8IDApICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmljZUxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby5mcmVlemVBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgyMDAxLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6XCIyMDAxXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bTotMVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLpgZPlhbfkvb/nlKjkuK3vvIzor7fnqI3lkI7lho3or5VcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+ino+W8gOaXtumXtOWGu+e7k1xyXG4gICAgb3BlbkljZSgpe1xyXG4gICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlKXtcclxuICAgICAgICAgICAgdGhpcy5mcmVlemVNYXNrLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgICAgIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgaGFuZGxlQnV5U3VjY2VzcyhkYXRhKXtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWbnuiwg+WHveaVsOWGhTpcIix0aGlzLnBhdXNlKTtcclxuICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgbGV0IGhhbW1lckJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJkZXN0cm95QnRuXCIpO1xyXG4gICAgICAgIGxldCBtYWdpY0J0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY0J0blwiKTtcclxuICAgICAgICBpZihkYXRhID09IFwiZnJlZXplQW1vdW50XCIpIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIGVsc2UgaWYoZGF0YSA9PSBcImhhbW1lckFtb3VudFwiKSBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTsgXHJcbiAgICAgICAgZWxzZSBpZihkYXRhID09IFwibWFnaWNBbW91bnRcIikgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBpZihkYXRhID09IFwiZnJlZXplQW1vdW50XCIpe1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ICs9IDM7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBwcm9wSW5mby5mcmVlemVBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLmNsb3NlUHJvcEJ1eSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOWGu+e7k+aXtumXtOmBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGRhdGEgPT0gXCJtYWdpY0Ftb3VudFwiKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ICs9IDM7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBwcm9wSW5mby5tYWdpY0Ftb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6LSt5Lmw6ZSk5a2Q6YGT5YW35oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWdpY0xhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9LCAyMDApO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkYXRhID09IFwiaGFtbWVyQW1vdW50XCIpe1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ICs9IDM7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBwcm9wSW5mby5oYW1tZXJBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLmNsb3NlUHJvcEJ1eSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOmtlOazleajkumBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIFxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOmUpOWtkOmBk+WFt1xyXG4gICAgdXNlSGFtbWVyKCl7XHJcbiAgICAgICAgaWYodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLmhhbW1lciA9PSB0cnVlIFxyXG4gICAgICAgIHx8IHRoaXMubWFnaWNNYXNrLmFjdGl2ZT09IHRydWUgfHwgdGhpcy50aW1lTnVtYmVyIDw9IDEpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBoYW1tZXJCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBpZihoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPCAxKXtcclxuICAgICAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5vcGVuUHJvcEJ1eShcImhhbW1lclwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgaWYoIXRoaXMuaGFtbWVyKXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTWFzay5hY3RpdmUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbW1lciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPCAwKSAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW1tZXJMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLplKTlrZDpgZPlhbfkv6Hmga86XCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLmhhbW1lckFtb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDIwMDIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDpcIjIwMDJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtOi0xXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlc291cmNlX2Nvc3RcIixkYXRhKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumBk+WFt+S9v+eUqOS4re+8jOivt+eojeWQjuWGjeivlVwiKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gXHJcbiAgICBidXlNYWdpYygpe1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAzLHRoaXMuaGFuZGxlQnV5U3VjY2Vzcy5iaW5kKHRoaXMsXCJtYWdpY0Ftb3VudFwiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYnV5SGFtbWVyKCl7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKXtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5idXlQcm9wKDIwMDIsIHRoaXMuaGFuZGxlQnV5U3VjY2Vzcy5iaW5kKHRoaXMsXCJoYW1tZXJBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1eUZyZWV6ZSgpe1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAxLHRoaXMuaGFuZGxlQnV5U3VjY2Vzcy5iaW5kKHRoaXMsXCJmcmVlemVBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5L2/55So6a2U5rOV5qOS6ZqP5py65raI6Zmk5Lik5Liq5pa55Z2XXHJcbiAgICB1c2VNYWdpYygpe1xyXG4gICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IHRydWUgfHwgdGhpcy5oYW1tZXIgPT0gdHJ1ZSBcclxuICAgICAgICB8fCB0aGlzLm1hZ2ljTWFzay5hY3RpdmU9PSB0cnVlIHx8IHRoaXMudGltZU51bWJlciA8PSAxKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwibWFnaWNCdG5cIik7XHJcbiAgICAgICAgaWYobWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IDwgMSl7XHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJtYWdpY1wiKTtcclxuICAgICAgICAgICAgICAgIC8vIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLprZTms5Xmo5LmlbDph4/kuI3otrMs6Ieq5Yqo6LSt5Lmw6a2U5rOV5qOSXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWdpY01hc2suYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9LCAxMDAwKTtcclxuIFxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPCAwKSAgICBcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWdpY0xhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICBwcm9wSW5mby5tYWdpY0Ftb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMjAwMyxjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOlwiMjAwM1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudW06LTFcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgbm9tYWxBcnJheSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5tYWdpY0J0bi5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0wOyBpPHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaWueWdl+exu+Wei1wiLHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMyl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hY2tBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZUFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMTApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja19JbmZvLm5vZGUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrX0luZm8ubm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBub21hbEFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKG5vbWFsQXJyYXkubGVuZ3RoID4gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheSA9IGNjLmZ4LkdhbWVUb29sLnNodWZmbGVBcnJheShub21hbEFycmF5KTtcclxuICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aW1lID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBpZihub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMSB8fCBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gOSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRpbWUgPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzFdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCB0aW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzFdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihub21hbEFycmF5Lmxlbmd0aCA9PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aW1lID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBpZihub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMSB8fCBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gOSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZyZWV6ZUFycmF5Lmxlbmd0aCA9PSAwICYmIHRoaXMubG9hY2tBcnJheS5sZW5ndGggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWPquWJqeS4i+S4gOS4quWdl+mBk+WFt+S9v+eUqOWujOavlVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5sb2Fja0FycmF5Lmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua2iOmZpOS4gOS4quaZrumAmuWdl+WQju+8jOa2iOmZpOS4gOS4quW4pumUgeWdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmZyZWV6ZUFycmF5Lmxlbmd0aCE9IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5raI6Zmk5LiA5Liq5pmu6YCa5Z2X5ZCO77yM5raI6Zmk5LiA5Liq5Ya757uT5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCAyMDArdGltZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb3VudCA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5sb2Fja0FycmF5Lmxlbmd0aCE9IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmxvYWNrQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmsqHmnInmma7pgJrlv6vvvIzprZTms5XmtojpmaTkuIDkuKrluKbplIHlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ICE9IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5mcmVlemVBcnJheS5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmsqHmnInmma7pgJrlv6vvvIzprZTms5XmtojpmaTkuIDkuKrlhrvnu5PlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5mcmVlemVBcnJheVtpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+aMieS4i+aaguWBnOaMiemSrlxyXG4gICAgdXNlUGF1c2UoKXtcclxuICAgICAgICBpZih0aGlzLnBhdXNlKXtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICAvL+agueaNruWFs+WNoeiuvue9ruWcsOWbvuWkp+Wwj1xyXG4gICAgc2V0TWFwSW5mbygpe1xyXG4gICAgICAgIGxldCB3aWR0aCA9IDA7XHJcbiAgICAgICAgaWYodGhpcy5tYXBXaWR0aCA8IDEwKXtcclxuICAgICAgICAgICAgd2lkdGggPSAwLjI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5tYXBXaWR0aCA8IDE3KXtcclxuICAgICAgICAgICAgd2lkdGggPSAwLjE1IC0gKHRoaXMubWFwV2lkdGgtMTEpKjAuMDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm5vZGUuc2NhbGUgPSAxLjYgKyAoNiAtIHRoaXMubWFwV2lkdGgpICogd2lkdGg7XHJcblxyXG4gICAgICAgIGlmKHRoaXMubWFwV2lkdGggPT0gOCAmJiB0aGlzLm1hcEhlaWdodCA+IDEzKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnNjYWxlID0gMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnNjYWxlID0gdGhpcy5ub2RlLnNjYWxlO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5zY2FsZSA9IDAuNTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLm5vZGUuc2NhbGUpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rpl6jnmoTnspLlrZDnibnmlYhcclxuICAgIGNyZWF0ZVBhcnRpY2xlKGJsb2NrLGpnKXtcclxuICAgICAgICBsZXQgcGFydGljbGUgPSBjYy5pbnN0YW50aWF0ZShNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfUHJvcFs5XSk7XHJcbiAgICAgICAgcGFydGljbGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgIHBhcnRpY2xlLnpJbmRleCA9IDEwMDA7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihibG9jay53aWR0aCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IE1hdGguZmxvb3IoYmxvY2suaGVpZ2h0IC8gMTIwKTtcclxuICAgICAgICBsZXQgbmFtZSA9IFwiXCI7XHJcblxyXG4gICAgICAgIGlmKGpnID09IDAgfHwgamcgPT0gMSl7XHJcbiAgICAgICAgICAgIGxldCB5ID0gYmxvY2sueSArIGJsb2NrLmhlaWdodDtcclxuICAgICAgICAgICAgbGV0IHggPSBibG9jay54IC0gYmxvY2sud2lkdGgvMjtcclxuICAgICAgICAgICAgbmFtZSA9IFwidG9wX1wiICsgd2lkdGggKyBcIl9cIiArIGhlaWdodDtcclxuICAgICAgICAgICAgaWYoamcgPT0gMSl7XHJcbiAgICAgICAgICAgICAgICBuYW1lID0gXCJib3RfXCIgKyB3aWR0aCArIFwiX1wiICsgaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgeSA9IGJsb2NrLnk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjUpe1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLng7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuMzMpe1xyXG4gICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoKigwLjUtMC4zMyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuNjYpe1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCooMC41LTAuNjYpOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwYXJ0aWNsZS5zZXRQb3NpdGlvbih4LCB5KTsgXHJcbiAgICAgICAgfSBcclxuICAgICAgICBlbHNlIGlmKGpnID09IDIgfHwgamcgPT0gMyl7XHJcbiAgICAgICAgICAgIG5hbWUgPSBcImxlZnRfXCIgKyBoZWlnaHQgKyBcIl9cIiArIHdpZHRoO1xyXG4gICAgICAgICAgICBsZXQgeCA9IGJsb2NrLnggLSBibG9jay53aWR0aDtcclxuICAgICAgICAgICAgbGV0IHkgPSBibG9jay55ICsgYmxvY2suaGVpZ2h0LzI7XHJcbiAgICAgICAgICAgIGlmKGJsb2NrLmFuY2hvclggPT0gMC41KXtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54IC0gYmxvY2sud2lkdGgvMjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKGJsb2NrLmFuY2hvclggPT0gMC4zMyl7XHJcbiAgICAgICAgICAgICAgIHggPSBibG9jay54IC0gYmxvY2sud2lkdGgqMC4zMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKGJsb2NrLmFuY2hvclggPT0gMC42Nil7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoKjAuNjY7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGpnID09IDMpe1xyXG4gICAgICAgICAgICAgICAgbmFtZSA9IFwicmlnaHRfXCIgKyBoZWlnaHQgKyBcIl9cIiArIHdpZHRoO1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLng7XHJcbiAgICAgICAgICAgICAgICBpZihibG9jay5hbmNob3JYID09IDAuNSl7XHJcbiAgICAgICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aC8yO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuMzMpe1xyXG4gICAgICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCowLjY2O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuNjYpe1xyXG4gICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgqMC4zMzsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHBhcnRpY2xlLnNldFBvc2l0aW9uKHgsIHkpOyBcclxuICAgICAgICB9IFxyXG5cclxuICAgICAgICBsZXQgcGFydGljbGVOb2RlID0gIHBhcnRpY2xlLmdldENoaWxkQnlOYW1lKG5hbWUpO1xyXG4gICAgICAgIGxldCBjb2xvciA9IGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmNvbG9yIC0gMTtcclxuXHJcbiAgICAgICAgcGFydGljbGVOb2RlLmdldENvbXBvbmVudChjYy5QYXJ0aWNsZVN5c3RlbSkuc3ByaXRlRnJhbWUgPSBwYXJ0aWNsZS5nZXRDb21wb25lbnQoXCJSZWR1Y2VcIikuQmxvY2tfQ29sb3JbY29sb3JdO1xyXG4gICAgICAgIHBhcnRpY2xlTm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy50d2VlbihwYXJ0aWNsZSlcclxuICAgICAgICAgICAgLnRvKDIsIHtvcGFjaXR5OiAwfSlcclxuICAgICAgICAgICAgLmNhbGwoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcGFydGljbGUuZGVzdHJveSgpOyBcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlT25lQmxvY2soKSB7XHJcbiAgICAgICAgLy8g56e76Zmk5omA5pyJ5pa55Z2XXHJcbiAgICAgICAgZm9yKGxldCBpID0wIDsgaTx0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldLm9wYWNpdHkgPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3NbaV0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnNwbGljZShpLDEpO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBcclxuXHJcbiAgICB1cGRhdGUgKGR0KSB7XHJcblxyXG4gICAgfVxyXG59XHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/peizhi.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '7d800jRKkRGfqSS3fhSet26', 'peizhi'); +// Script/peizhi.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.node1 = null; + _this.node2 = null; + _this.node3 = null; + _this.localTest = false; + _this.clientTestVersion = "1.0.0"; + _this.testVersion = null; + return _this; + // 3月17日 - 3月21日 工作完成内容 + // 1:游戏框架搭建 + // 2:制作18个基础方块预制体 (方块可编辑颜色与道具和状态) + // 3:完成地图的搭建,可配置8*8以内,任意组合,包括可缺口和障碍物配置 + // 4:完成地图墙面建立,根据 ↑3上面构建的地图自动生成墙体。 + // 5:做完方块的基础移动,跟随手指,遇到方块或者墙壁或者障碍物阻碍移动。 + // 6:方块的自动落点做完11个基础方块的(未做完还差11个) + // 3月24日 - 3月28日 预计完成目标 + // 1:完成全部方块的落点。 + // 2:完成门的搭建,门可选颜色,可选开关或者星星等特殊状态 + // 3:完成方块通过门的游戏逻辑,使游戏可以最基础运行玩起来 + // 4:出5关版本,配合小白备案审核。 + // 5:根据方块,地图,以及道具,制作地图编辑器 (方块和地图制作的时候都已经考虑到编辑器的需求了) + // 优先制作,后续开发拓展玩法功能时,小白可同步进行制作关卡。 + } + NewClass.prototype.start = function () { + // cc.fx.AudioManager.Instance.init(); + // this.testVersion.string = this.clientTestVersion; + // cc.director.loadScene("GameScene"); + // cc.director.preloadScene("GameScene", ()=>{ + // // debugger; + // }) + }; + //判断来源 + NewClass.prototype.containsTrain = function (str) { + return /from=train/i.test(str); + }; + //开始游戏,跳转至引导页面 + NewClass.prototype.startGame = function () { + cc.director.loadScene("GameScene"); + // cc.director.loadScene("GuideScene"); + }; + //备用,用来测试跳转 指定关卡 + NewClass.prototype.clickBtn = function (event, data) { + cc.fx.GameConfig.GM_INFO.custom = parseInt(data); + cc.director.loadScene("GameScene"); + }; + //打开排行榜 + NewClass.prototype.openRank = function () { + cc.director.loadScene("RankScene"); + }; + NewClass.prototype.update = function (dt) { + }; + __decorate([ + property(cc.Node) + ], NewClass.prototype, "node1", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "node2", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "node3", void 0); + __decorate([ + property(false) + ], NewClass.prototype, "localTest", void 0); + __decorate([ + property("") + ], NewClass.prototype, "clientTestVersion", void 0); + __decorate([ + property(cc.Label) + ], NewClass.prototype, "testVersion", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwZWl6aGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUF3QyxFQUFFLENBQUMsVUFBVSxFQUFwRCxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxnQkFBZ0Isc0JBQWlCLENBQUM7QUFHNUQ7SUFBc0MsNEJBQVk7SUFBbEQ7UUFBQSxxRUE0RUM7UUF4RUcsV0FBSyxHQUFZLElBQUksQ0FBQztRQUd0QixXQUFLLEdBQVksSUFBSSxDQUFDO1FBR3RCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsZUFBUyxHQUFZLEtBQUssQ0FBQztRQUczQix1QkFBaUIsR0FBVyxPQUFPLENBQUM7UUFHcEMsaUJBQVcsR0FBYSxJQUFJLENBQUM7O1FBd0NqQywyQkFBMkI7UUFFM0IsV0FBVztRQUNYLGlDQUFpQztRQUNqQyxzQ0FBc0M7UUFDdEMsaUNBQWlDO1FBQ2pDLHNDQUFzQztRQUN0QyxnQ0FBZ0M7UUFFaEMsdUJBQXVCO1FBRXZCLGVBQWU7UUFDZiwrQkFBK0I7UUFDL0IsK0JBQStCO1FBQy9CLG9CQUFvQjtRQUNwQixvREFBb0Q7UUFDcEQsaUNBQWlDO0lBQ2pDLENBQUM7SUF2REcsd0JBQUssR0FBTDtRQUVJLHNDQUFzQztRQUN0QyxvREFBb0Q7UUFFcEQsc0NBQXNDO1FBRXRDLDhDQUE4QztRQUM5QyxtQkFBbUI7UUFFbkIsS0FBSztJQUNULENBQUM7SUFFRCxNQUFNO0lBQ04sZ0NBQWEsR0FBYixVQUFjLEdBQUc7UUFFYixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7SUFDZCw0QkFBUyxHQUFUO1FBQ0ksRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsdUNBQXVDO0lBQzNDLENBQUM7SUFDRCxnQkFBZ0I7SUFDaEIsMkJBQVEsR0FBUixVQUFTLEtBQUssRUFBQyxJQUFJO1FBQ2YsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE9BQU87SUFDUCwyQkFBUSxHQUFSO1FBQ0ksRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUdTLHlCQUFNLEdBQWhCLFVBQWlCLEVBQVU7SUFDM0IsQ0FBQztJQXJERDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MkNBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsyQ0FDSTtJQUd0QjtRQURDLFFBQVEsQ0FBQyxLQUFLLENBQUM7K0NBQ1c7SUFHM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDO3VEQUN1QjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO2lEQUNVO0lBbkJaLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0E0RTVCO0lBQUQsZUFBQztDQTVFRCxBQTRFQyxDQTVFcUMsRUFBRSxDQUFDLFNBQVMsR0E0RWpEO2tCQTVFb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5LCByZXF1aXJlQ29tcG9uZW50fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbm9kZTE6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbm9kZTI6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbm9kZTM6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShmYWxzZSlcclxuICAgIGxvY2FsVGVzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBwcm9wZXJ0eShcIlwiKVxyXG4gICAgY2xpZW50VGVzdFZlcnNpb246IHN0cmluZyA9IFwiMS4wLjBcIjtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICB0ZXN0VmVyc2lvbjogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuXHJcbiAgICAgICAgLy8gY2MuZnguQXVkaW9NYW5hZ2VyLkluc3RhbmNlLmluaXQoKTtcclxuICAgICAgICAvLyB0aGlzLnRlc3RWZXJzaW9uLnN0cmluZyA9IHRoaXMuY2xpZW50VGVzdFZlcnNpb247XHJcblxyXG4gICAgICAgIC8vIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuXHJcbiAgICAgICAgLy8gY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIsICgpPT57XHJcbiAgICAgICAgLy8gICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgICBcclxuICAgICAgICAvLyB9KVxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yik5pat5p2l5rqQXHJcbiAgICBjb250YWluc1RyYWluKHN0cikge1xyXG4gICAgXHJcbiAgICAgICAgcmV0dXJuIC9mcm9tPXRyYWluL2kudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5byA5aeL5ri45oiP77yM6Lez6L2s6Iez5byV5a+86aG16Z2iXHJcbiAgICBzdGFydEdhbWUoKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgLy8gY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR3VpZGVTY2VuZVwiKTtcclxuICAgIH1cclxuICAgIC8v5aSH55So77yM55So5p2l5rWL6K+V6Lez6L2sIOaMh+WumuWFs+WNoVxyXG4gICAgY2xpY2tCdG4oZXZlbnQsZGF0YSl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmN1c3RvbSA9IHBhcnNlSW50KGRhdGEpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgIH0gICBcclxuICAgIC8v5omT5byA5o6S6KGM5qacXHJcbiAgICBvcGVuUmFuaygpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIlJhbmtTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIHByb3RlY3RlZCB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgfVxyXG4gICAgXHJcbi8vICAgICAz5pyIMTfml6UgLSAz5pyIMjHml6Ug5bel5L2c5a6M5oiQ5YaF5a65XHJcblxyXG4vLyAx77ya5ri45oiP5qGG5p625pCt5bu6XHJcbi8vIDLvvJrliLbkvZwxOOS4quWfuuehgOaWueWdl+mihOWItuS9kyAo5pa55Z2X5Y+v57yW6L6R6aKc6Imy5LiO6YGT5YW35ZKM54q25oCBKVxyXG4vLyAz77ya5a6M5oiQ5Zyw5Zu+55qE5pCt5bu677yM5Y+v6YWN572uOCo45Lul5YaF77yM5Lu75oSP57uE5ZCI77yM5YyF5ous5Y+v57y65Y+j5ZKM6Zqc56KN54mp6YWN572uXHJcbi8vIDTvvJrlrozmiJDlnLDlm77lopnpnaLlu7rnq4vvvIzmoLnmja4g4oaRM+S4iumdouaehOW7uueahOWcsOWbvuiHquWKqOeUn+aIkOWimeS9k+OAglxyXG4vLyA177ya5YGa5a6M5pa55Z2X55qE5Z+656GA56e75Yqo77yM6Lef6ZqP5omL5oyH77yM6YGH5Yiw5pa55Z2X5oiW6ICF5aKZ5aOB5oiW6ICF6Zqc56KN54mp6Zi756KN56e75Yqo44CCXHJcbi8vIDbvvJrmlrnlnZfnmoToh6rliqjokL3ngrnlgZrlrowxMeS4quWfuuehgOaWueWdl+eahO+8iOacquWBmuWujOi/mOW3rjEx5Liq77yJXHJcblxyXG4vLyAz5pyIMjTml6UgLSAz5pyIMjjml6Ug6aKE6K6h5a6M5oiQ55uu5qCHXHJcblxyXG4vLyAx77ya5a6M5oiQ5YWo6YOo5pa55Z2X55qE6JC954K544CCXHJcbi8vIDLvvJrlrozmiJDpl6jnmoTmkK3lu7rvvIzpl6jlj6/pgInpopzoibLvvIzlj6/pgInlvIDlhbPmiJbogIXmmJ/mmJ/nrYnnibnmrornirbmgIFcclxuLy8gM++8muWujOaIkOaWueWdl+mAmui/h+mXqOeahOa4uOaIj+mAu+i+ke+8jOS9v+a4uOaIj+WPr+S7peacgOWfuuehgOi/kOihjOeOqei1t+adpVxyXG4vLyA077ya5Ye6NeWFs+eJiOacrO+8jOmFjeWQiOWwj+eZveWkh+ahiOWuoeaguOOAglxyXG4vLyA177ya5qC55o2u5pa55Z2X77yM5Zyw5Zu+77yM5Lul5Y+K6YGT5YW377yM5Yi25L2c5Zyw5Zu+57yW6L6R5ZmoICjmlrnlnZflkozlnLDlm77liLbkvZznmoTml7blgJnpg73lt7Lnu4/ogIPomZHliLDnvJbovpHlmajnmoTpnIDmsYLkuoYpIFxyXG4vLyBcdOS8mOWFiOWItuS9nO+8jOWQjue7reW8gOWPkeaLk+WxleeOqeazleWKn+iDveaXtu+8jOWwj+eZveWPr+WQjOatpei/m+ihjOWItuS9nOWFs+WNoeOAglxyXG59XHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Reduce.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'ca599IU5hFEYYrzoN59YOpT', 'Reduce'); +// Script/Reduce.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.Block_Color = []; + _this.level = null; + return _this; + // update (dt) {} + } + // LIFE-CYCLE CALLBACKS: + NewClass.prototype.onLoad = function () { + }; + NewClass.prototype.start = function () { + }; + __decorate([ + property({ type: [cc.SpriteFrame], tooltip: "方块颜色图片" }) + ], NewClass.prototype, "Block_Color", void 0); + __decorate([ + property(cc.Label) + ], NewClass.prototype, "level", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxSZWR1Y2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUUsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBc0MsNEJBQVk7SUFBbEQ7UUFBQSxxRUF1QkM7UUFwQkcsaUJBQVcsR0FBMkIsRUFBRSxDQUFDO1FBSXpDLFdBQUssR0FBYSxJQUFJLENBQUM7O1FBZXZCLGlCQUFpQjtJQUNyQixDQUFDO0lBZEcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47SUFFQSxDQUFDO0lBQ0Qsd0JBQUssR0FBTDtJQUVBLENBQUM7SUFiRDtRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUMsUUFBUSxFQUFDLENBQUM7aURBQ1o7SUFJekM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzsyQ0FDSTtJQVBOLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0F1QjVCO0lBQUQsZUFBQztDQXZCRCxBQXVCQyxDQXZCcUMsRUFBRSxDQUFDLFNBQVMsR0F1QmpEO2tCQXZCb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlNwcml0ZUZyYW1lXSwgdG9vbHRpcDpcIuaWueWdl+minOiJsuWbvueJh1wifSlcclxuICAgIEJsb2NrX0NvbG9yIDogQXJyYXk8Y2MuU3ByaXRlRnJhbWU+ID0gW107XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGxldmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuXHJcbiAgICB9XHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG4gICAgXHJcblxyXG5cclxuXHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/GameOver.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '805c6nf399HWZeuWnNB9CTH', 'GameOver'); +// Script/GameOver.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.count = null; + _this.time = null; + _this.selfNode = null; + _this.one = null; + _this.two = null; + _this.three = null; + _this.four = null; + _this.five = null; + return _this; + } + // onLoad () {} + NewClass.prototype.start = function () { + this.count.string = cc.fx.GameConfig.GM_INFO.score + ""; + var yes = 0; + var successList = cc.fx.GameConfig.GM_INFO.successList; + if (successList.length > 0) { + var success = 0; + for (var i = 0; i < successList.length; i++) { + if (successList[i] == true) + success += 1; + } + yes = success / successList.length; + } + yes = Math.floor(yes * 1000) / 10; + this.time.string = yes + "%"; + this.init(); + }; + //初始化数据 + NewClass.prototype.init = function () { + this.listData = []; + this.selfData = null; + this.one.active = false; + this.two.active = false; + this.three.active = false; + this.four.active = false; + this.five.active = false; + var urlNow = window.location.href; + if (this.containsTrain(urlNow)) { + this.node.getChildByName("again").active = false; + this.node.getChildByName("back").active = false; + this.node.getChildByName("finishi").active = true; + this.setLocalStorage(); + } + else { + this.setLocalStorage(); + this.node.getChildByName("again").active = true; + this.node.getChildByName("back").active = true; + this.node.getChildByName("finishi").active = false; + } + this.getRank(); + }; + NewClass.prototype.setLocalStorage = function () { + var timeData = cc.fx.GameConfig.TIME_INFO.totalTime; + var today = new Date().toLocaleDateString(); + var name = "success_" + today + "_" + cc.fx.GameConfig.GM_INFO.scode + "_" + cc.fx.GameConfig.GM_INFO.gameId; + localStorage.setItem(name, JSON.stringify({ success: true })); + }; + //打开排行榜 + NewClass.prototype.openRank = function () { + cc.director.loadScene("RankScene"); + }; + //重新开始玩 + NewClass.prototype.again = function () { + cc.fx.GameConfig.GM_INFO.round = 0; + cc.fx.GameConfig.GM_INFO.level = 0; + cc.fx.GameConfig.GM_INFO.stepTimeList = 0; + cc.fx.GameConfig.GM_INFO.successList = []; + cc.fx.GameConfig.GM_INFO.fen = 0; + cc.fx.GameConfig.GM_INFO.score = 0; + cc.fx.GameConfig.GM_INFO.min_Steps = 0; + cc.fx.GameConfig.GM_INFO.min_Time = 0; + cc.fx.GameConfig.TIME_INFO.totalTime = 120; + cc.director.loadScene("GameScene"); + }; + //判断来源 + NewClass.prototype.containsTrain = function (str) { + return /from=train/i.test(str); + }; + //获取排行榜 + NewClass.prototype.getRank = function () { + var _this = this; + //获取排行榜数据 所需数据量 + var dataFile = { + length: 5 + }; + cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); }); + }; + //打开排行榜 + NewClass.prototype.jumpFinishi = function () { + var url = "https://train.sparkus.cn/poster/game/" + cc.fx.GameConfig.GM_INFO.scode + "?suc=1"; + window.location.href = url; + }; + //设置排行信息 + NewClass.prototype.getRankData = function (data) { + if (data) { + cc.fx.GameTool.getRankData(data, this, 4); + cc.fx.GameTool.setPic(this.selfNode.getChildByName("pic").getChildByName("icon"), this.selfData.pic); + var length = this.listData.length - 1; + if (length > 4) + length = 4; + for (var i = 0; i <= length; i++) { + this.setRank(i, this.listData[i]); + } + } + }; + //根据内容填充排行榜 + NewClass.prototype.setRank = function (num, data) { + var _this = this; + if (!data) { + return; + } + var hitNode = null; + if (num == 0) { + hitNode = this.one; + } + else if (num == 1) { + hitNode = this.two; + } + else if (num == 2) { + hitNode = this.three; + } + else if (num == 3) { + hitNode = this.four; + } + else if (num == 4) { + hitNode = this.five; + } + var trun = num + 1; + for (var i = 0; i < trun; i++) { + if (this.listData[i] && this.listData[i].nickName == cc.fx.GameConfig.GM_INFO.nickName) { + trun = i + 1; + break; + } + else if (!this.listData[i] == null) { + trun = i * 2; + break; + } + this.node.color = cc.color(this.listData[0], this.listData[1], this.listData[2]); + cc.tween(this.node) + .to(0.5, { scale: 2 }) + .by(1, { opacity: 0 }) + .delay(0.5) + .call(function () { + _this.node.scale = 1; + _this.node.opacity = 255; + _this.node.color = cc.color(255, 255, 255); + }) + .start(); + } + hitNode.getChildByName("num").getComponent(cc.Label).string = num + ""; + cc.tween(hitNode.getChildByName("num").getComponent(cc.Label)) + .to(0.5, { string: trun + "" }) + .start(); + var record = cc.fx.GameConfi.GM_INFO.score; + if (data.score >= record) { + this.selfData = data; + this.selfNode.active = true; + } + if (hitNode) { + hitNode.active = true; + if (data.nickName.length >= 4) + data.nickName = cc.fx.GameTool.subName(data.nickName, 4); + hitNode.getChildByName("name").getComponent(cc.Label).string = data.nickName; + hitNode.getChildByName("total").getComponent(cc.Label).string = data.score; + cc.fx.GameTool.setPic(hitNode.getChildByName("pic").getChildByName("icon"), data.pic); + } + }; + __decorate([ + property(cc.Label) + ], NewClass.prototype, "count", void 0); + __decorate([ + property(cc.Label) + ], NewClass.prototype, "time", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "selfNode", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "one", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "two", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "three", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "four", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "five", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lT3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDTSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXFMQztRQW5MRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBRXZCLFVBQUksR0FBYSxJQUFJLENBQUM7UUFFdEIsY0FBUSxHQUFZLElBQUksQ0FBQztRQUV6QixTQUFHLEdBQVksSUFBSSxDQUFDO1FBRXBCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFFcEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUV0QixVQUFJLEdBQVksSUFBSSxDQUFDO1FBRXJCLFVBQUksR0FBWSxJQUFJLENBQUM7O0lBcUt6QixDQUFDO0lBbEtHLGVBQWU7SUFDZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDeEQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1osSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN2RCxJQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1lBQ3RCLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztZQUNoQixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDbkMsSUFBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSTtvQkFBRSxPQUFPLElBQUksQ0FBQyxDQUFDO2FBQzNDO1lBQ0QsR0FBRyxH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QUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFoQkosUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXFMNUI7SUFBRCxlQUFDO0NBckxELEFBcUxDLENBckxxQyxFQUFFLENBQUMsU0FBUyxHQXFMakQ7a0JBckxvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgY291bnQ6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIHRpbWU6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2VsZk5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBvbmU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0d286IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0aHJlZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZvdXI6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmaXZlOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIGxpc3REYXRhOiBhbnk7XHJcbiAgICBzZWxmRGF0YTogYW55O1xyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgdGhpcy5jb3VudC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NvcmUgKyBcIlwiO1xyXG4gICAgICAgIHZhciB5ZXMgPSAwO1xyXG4gICAgICAgIHZhciBzdWNjZXNzTGlzdCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zdWNjZXNzTGlzdDtcclxuICAgICAgICBpZihzdWNjZXNzTGlzdC5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSAwO1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTxzdWNjZXNzTGlzdC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBpZihzdWNjZXNzTGlzdFtpXSA9PSB0cnVlKSBzdWNjZXNzICs9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgeWVzID0gc3VjY2Vzcy9zdWNjZXNzTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHllcyA9IE1hdGguZmxvb3IoeWVzICogMTAwMCkvMTA7XHJcbiAgICAgICAgdGhpcy50aW1lLnN0cmluZyA9ICAgeWVzICsgXCIlXCI7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgICBcclxuICAgIH0gICBcclxuICAgIC8v5Yid5aeL5YyW5pWw5o2uXHJcbiAgICBpbml0KCl7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZkRhdGEgPSBudWxsO1xyXG4gICAgICAgIHRoaXMub25lLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudHdvLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGhyZWUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5mb3VyLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZml2ZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB2YXIgdXJsTm93ID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XHJcbiAgICAgICAgaWYodGhpcy5jb250YWluc1RyYWluKHVybE5vdykpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJhZ2FpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYmFja1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiZmluaXNoaVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNldExvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLnNldExvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJhZ2FpblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJiYWNrXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImZpbmlzaGlcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmdldFJhbmsoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRMb2NhbFN0b3JhZ2UoKXtcclxuICAgICAgICBsZXQgdGltZURhdGEgPSBjYy5meC5HYW1lQ29uZmlnLlRJTUVfSU5GTy50b3RhbFRpbWU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xyXG4gICAgICAgIHZhciBuYW1lID0gYHN1Y2Nlc3NfJHt0b2RheX1fJHtjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NvZGV9XyR7Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVJZH1gXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0obmFtZSwgSlNPTi5zdHJpbmdpZnkoe3N1Y2Nlc3M6dHJ1ZX0pKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+aJk+W8gOaOkuihjOamnFxyXG4gICAgb3BlblJhbmsoKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJSYW5rU2NlbmVcIik7XHJcbiAgICB9XHJcbiAgICAvL+mHjeaWsOW8gOWni+eOqVxyXG4gICAgYWdhaW4oKXtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucm91bmQgPSAwO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnN0ZXBUaW1lTGlzdCA9IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnN1Y2Nlc3NMaXN0ID0gW107XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZlbiA9IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnNjb3JlID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1N0ZXBzID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1RpbWUgPSAwO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuVElNRV9JTkZPLnRvdGFsVGltZSA9IDEyMDtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICB9XHJcbiAgICAvL+WIpOaWreadpea6kFxyXG4gICAgY29udGFpbnNUcmFpbihzdHIpIHtcclxuICAgICAgICByZXR1cm4gL2Zyb209dHJhaW4vaS50ZXN0KHN0cik7XHJcbiAgICB9XHJcbiAgICAvL+iOt+WPluaOkuihjOamnFxyXG4gICAgZ2V0UmFuaygpe1xyXG4gICAgICAgIC8v6I635Y+W5o6S6KGM5qac5pWw5o2uICDmiYDpnIDmlbDmja7ph49cclxuICAgICAgICBsZXQgZGF0YUZpbGUgPSB7XHJcbiAgICAgICAgICAgIGxlbmd0aDo1XHJcbiAgICAgICAgfVxyXG4gICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRSYW5rKGRhdGFGaWxlLGRhdGEgPT50aGlzLmdldFJhbmtEYXRhKGRhdGEpKTtcclxuICAgIH1cclxuICAgIC8v5omT5byA5o6S6KGM5qacXHJcbiAgICBqdW1wRmluaXNoaSgpe1xyXG4gICAgICAgIGxldCB1cmwgPSBcImh0dHBzOi8vdHJhaW4uc3Bhcmt1cy5jbi9wb3N0ZXIvZ2FtZS9cIiArIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zY29kZSArIFwiP3N1Yz0xXCI7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICB9XHJcbiAgICAvL+iuvue9ruaOkuihjOS/oeaBr1xyXG4gICAgZ2V0UmFua0RhdGEoZGF0YSl7XHJcbiAgICAgICAgaWYoZGF0YSl7XHJcbiAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRSYW5rRGF0YShkYXRhLHRoaXMsNCk7XHJcbiAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRQaWModGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksdGhpcy5zZWxmRGF0YS5waWMpO1xyXG4gICAgICAgICAgICB2YXIgbGVuZ3RoID0gdGhpcy5saXN0RGF0YS5sZW5ndGgtMTsgaWYobGVuZ3RoID4gNCkgbGVuZ3RoID0gNDtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7aTw9bGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFJhbmsoaSx0aGlzLmxpc3REYXRhW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8v5qC55o2u5YaF5a655aGr5YWF5o6S6KGM5qacXHJcbiAgICBzZXRSYW5rKG51bSxkYXRhKXtcclxuICAgICAgICBpZighZGF0YSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBoaXROb2RlID0gbnVsbDtcclxuICAgICAgICBpZihudW0gPT0gMCl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gMSl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLnR3bztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gMil7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLnRocmVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSAzKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMuZm91cjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gNCl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLmZpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdHJ1biA9IG51bSArIDE7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8IHRydW47IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubGlzdERhdGFbaV0gJiYgdGhpcy5saXN0RGF0YVtpXS5uaWNrTmFtZSA9PSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubmlja05hbWUpe1xyXG4gICAgICAgICAgICAgICAgdHJ1biA9IGkgKyAxO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZighdGhpcy5saXN0RGF0YVtpXSA9PSBudWxsICl7XHJcbiAgICAgICAgICAgICAgICB0cnVuID0gaSAqIDI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuY29sb3IgPSBjYy5jb2xvcih0aGlzLmxpc3REYXRhWzBdLHRoaXMubGlzdERhdGFbMV0sdGhpcy5saXN0RGF0YVsyXSk7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZSlcclxuICAgICAgICAgICAgLnRvKDAuNSx7c2NhbGU6Mn0pXHJcbiAgICAgICAgICAgIC5ieSgxLHtvcGFjaXR5OjB9KVxyXG4gICAgICAgICAgICAuZGVsYXkoMC41KVxyXG4gICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5jb2xvciA9IGNjLmNvbG9yKDI1NSwyNTUsMjU1KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gbnVtICsgXCJcIjtcclxuICAgICAgICBjYy50d2VlbihoaXROb2RlLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkpXHJcbiAgICAgICAgLnRvKDAuNSx7c3RyaW5nOnRydW4rXCJcIn0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIGxldCByZWNvcmQgPSBjYy5meC5HYW1lQ29uZmkuR01fSU5GTy5zY29yZTtcclxuICAgICAgICBpZihkYXRhLnNjb3JlID49IHJlY29yZCl7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZkRhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZihoaXROb2RlKXtcclxuICAgICAgICAgICAgaGl0Tm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZihkYXRhLm5pY2tOYW1lLmxlbmd0aCA+PSA0KVxyXG4gICAgICAgICAgICAgICAgZGF0YS5uaWNrTmFtZSA9IGNjLmZ4LkdhbWVUb29sLnN1Yk5hbWUoZGF0YS5uaWNrTmFtZSw0KTtcclxuICAgICAgICAgICAgaGl0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLnNjb3JlO1xyXG4gICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0UGljKGhpdE5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLGRhdGEucGljKTtcclxuICAgICAgICB9XHJcbiAgICB9ICAgXHJcbn1cclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/btnControl.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '6ee6czJ4eVNb4Feiqps5SIa', 'btnControl'); +// Script/btnControl.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var btnControl = /** @class */ (function (_super) { + __extends(btnControl, _super); + function btnControl() { + return _super !== null && _super.apply(this, arguments) || this; + } + btnControl.prototype.onLoad = function () { + this._touch = true; + }; + btnControl.prototype.start = function () { + }; + btnControl.prototype.setTouch = function (type) { + this._touch = type; + }; + btnControl.prototype.update = function (dt) { + }; + btnControl = __decorate([ + ccclass + ], btnControl); + return btnControl; +}(cc.Component)); +exports.default = btnControl; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxidG5Db250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRzVFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSTFDO0lBQXdDLDhCQUFZO0lBQXBEOztJQWtCQSxDQUFDO0lBYkcsMkJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwwQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELDZCQUFRLEdBQVIsVUFBUyxJQUFJO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELDJCQUFNLEdBQU4sVUFBUSxFQUFFO0lBQ1YsQ0FBQztJQWpCZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQWtCOUI7SUFBRCxpQkFBQztDQWxCRCxBQWtCQyxDQWxCdUMsRUFBRSxDQUFDLFNBQVMsR0FrQm5EO2tCQWxCb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBidG5Db250cm9sIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIF90b3VjaDogYm9vbGVhbjtcclxuXHJcblxyXG4gICAgb25Mb2FkICgpIHsgXHJcbiAgICAgICAgdGhpcy5fdG91Y2ggPSB0cnVlO1xyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VG91Y2godHlwZSl7XHJcbiAgICAgICAgdGhpcy5fdG91Y2ggPSB0eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICAgIH1cclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/position.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'e0e34n/+FRF5JdkULm6vdT0', 'position'); +// Script/position.ts + +var _PROP_INFO = [{ "pos1": { "x": -60, "y": 60, "z": 0 }, "pos2": { "x": -16.442, "y": 30, "z": 0 }, "pos3": { "x": -34.362, "y": 13.246, "z": 0 }, "pos4": { "x": -17, "y": 12, "z": 0 } }, { "pos1": { "x": -126, "y": 63, "z": 0 }, "pos2": { "x": -25.792, "y": 34.675, "z": 0 }, "pos3": { "x": -94.792, "y": 21.675, "z": 0 }, "pos4": { "x": -20, "y": 13, "z": 0 } }, { "pos1": { "x": -60, "y": 125, "z": 0 }, "pos2": { "x": -12.792, "y": 92.675, "z": 0 }, "pos3": { "x": -27.792, "y": 23.675, "z": 0 }, "pos4": { "x": -14, "y": 24, "z": 0 } }, { "pos1": { "x": -185, "y": 63, "z": 0 }, "pos2": { "x": -34.792, "y": 37.675, "z": 0 }, "pos3": { "x": -154.792, "y": 23.675, "z": 0 }, "pos4": { "x": -22, "y": 16, "z": 0 } }, { "pos1": { "x": -57, "y": 178, "z": 0 }, "pos2": { "x": -17.792, "y": 166.675, "z": 0 }, "pos3": { "x": -31.792, "y": 33.675, "z": 0 }, "pos4": { "x": -14, "y": 37, "z": 0 } }, { "pos1": { "x": -123, "y": 127, "z": 0 }, "pos2": { "x": -25.792, "y": 99.675, "z": 0 }, "pos3": { "x": -97.792, "y": 27.675, "z": 0 }, "pos4": { "x": -27, "y": 19, "z": 0 } }, { "pos1": { "x": -62, "y": 181, "z": 0 }, "pos2": { "x": -24.792, "y": 275.675, "z": 0 }, "pos3": { "x": -31.792, "y": 35.675, "z": 0 }, "pos4": { "x": -7, "y": 39, "z": 0 } }, { "pos1": { "x": -181, "y": 180, "z": 0 }, "pos2": { "x": -31.792, "y": 163.675, "z": 0 }, "pos3": { "x": -33.792, "y": 34.675, "z": 0 }, "pos4": { "x": -18, "y": 25, "z": 0 } }, { "pos1": { "x": -182, "y": 182, "z": 0 }, "pos2": { "x": -25.792, "y": 38.675, "z": 0 }, "pos3": { "x": -153.792, "y": 34.675, "z": 0 }, "pos4": { "x": -23, "y": 14, "z": 0 } }, { "pos1": { "x": -186, "y": 61, "z": 0 }, "pos2": { "x": -37.792, "y": 37.675, "z": 0 }, "pos3": { "x": -36.792, "y": 26.675, "z": 0 }, "pos4": { "x": -24, "y": 17, "z": 0 } }, { "pos1": { "x": -62, "y": 177, "z": 0 }, "pos2": { "x": 93.208, "y": 276.675, "z": 0 }, "pos3": { "x": -33.792, "y": 34.675, "z": 0 }, "pos4": { "x": 3, "y": 31, "z": 0 } }, { "pos1": { "x": 58, "y": 179, "z": 0 }, "pos2": { "x": 205.225, "y": 154.034, "z": 0 }, "pos3": { "x": -29.642, "y": 25.691, "z": 0 }, "pos4": { "x": 7.218, "y": 29.765, "z": 0 } }, { "pos1": { "x": -57, "y": 182, "z": 0 }, "pos2": { "x": -25.792, "y": 37.675, "z": 0 }, "pos3": { "x": -35.792, "y": 33.675, "z": 0 }, "pos4": { "x": -14, "y": 12, "z": 0 } }, { "pos1": { "x": -180, "y": 62, "z": 0 }, "pos2": { "x": -35.792, "y": 36.675, "z": 0 }, "pos3": { "x": -271.792, "y": 24.675, "z": 0 }, "pos4": { "x": -17, "y": 20, "z": 0 } }, { "pos1": { "x": -62, "y": 178, "z": 0 }, "pos2": { "x": 87.208, "y": 164.675, "z": 0 }, "pos3": { "x": -31.792, "y": 35.675, "z": 0 }, "pos4": { "x": -6, "y": 24, "z": 0 } }, { "pos1": { "x": -176, "y": 60, "z": 0 }, "pos2": { "x": -33.792, "y": 38.675, "z": 0 }, "pos3": { "x": -154.792, "y": 29.675, "z": 0 }, "pos4": { "x": -29, "y": 16, "z": 0 } }, { "pos1": { "x": -60, "y": 181, "z": 0 }, "pos2": { "x": 95.208, "y": 155.675, "z": 0 }, "pos3": { "x": -30.792, "y": 36.675, "z": 0 }, "pos4": { "x": -12, "y": 32, "z": 0 } }, { "pos1": { "x": -63, "y": 178, "z": 0 }, "pos2": { "x": -21.792, "y": 156.675, "z": 0 }, "pos3": { "x": -31.792, "y": 37.675, "z": 0 }, "pos4": { "x": -12, "y": 32, "z": 0 } }, { "pos1": { "x": -60, "y": 183, "z": 0 }, "pos2": { "x": 88.208, "y": 162.675, "z": 0 }, "pos3": { "x": -29.792, "y": 41.675, "z": 0 }, "pos4": { "x": -12, "y": 18, "z": 0 } }, { "pos1": { "x": -64, "y": 58, "z": 0 }, "pos2": { "x": -26.792, "y": 32.675, "z": 0 }, "pos3": { "x": -34.792, "y": 23.675, "z": 0 }, "pos4": { "x": -12, "y": 18, "z": 0 } }, { "pos1": { "x": -184, "y": 62, "z": 0 }, "pos2": { "x": -25.792, "y": 34.675, "z": 0 }, "pos3": { "x": -155.792, "y": 25.675, "z": 0 }, "pos4": { "x": -18, "y": 26, "z": 0 } }, { "pos1": { "x": -57, "y": 190, "z": 0 }, "pos2": { "x": 95.208, "y": 158.675, "z": 0 }, "pos3": { "x": -33.792, "y": 29.675, "z": 0 }, "pos4": { "x": -18, "y": 26, "z": 0 } }, { "pos1": { "x": -71, "y": 184, "z": 0 }, "pos2": { "x": -25.792, "y": 156.675, "z": 0 }, "pos3": { "x": -35.792, "y": 27.675, "z": 0 }, "pos4": { "x": -25, "y": 40, "z": 0 } }]; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwb3NpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLE9BQU8sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9QUk9QX0lORk8gPSBbe1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogNjAsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0xNi40NDIsXCJ5XCI6IDMwLFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzQuMzYyLFwieVwiOiAxMy4yNDYsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNyxcInlcIjogMTIsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTEyNixcInlcIjogNjMsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0yNS43OTIsXCJ5XCI6IDM0LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTk0Ljc5MixcInlcIjogMjEuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjAsXCJ5XCI6IDEzLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogMTI1LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMTIuNzkyLFwieVwiOiA5Mi42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0yNy43OTIsXCJ5XCI6IDIzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE0LFwieVwiOiAyNCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTg1LFwieVwiOiA2MyxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTM0Ljc5MixcInlcIjogMzcuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTU0Ljc5MixcInlcIjogMjMuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjIsXCJ5XCI6IDE2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC01NyxcInlcIjogMTc4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMTcuNzkyLFwieVwiOiAxNjYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAzMy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNCxcInlcIjogMzcsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTEyMyxcInlcIjogMTI3LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiA5OS42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC05Ny43OTIsXCJ5XCI6IDI3LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTI3LFwieVwiOiAxOSxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjIsXCJ5XCI6IDE4MSxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI0Ljc5MixcInlcIjogMjc1LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMzUuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtNyxcInlcIjogMzksXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4MSxcInlcIjogMTgwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAxNjMuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzMuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xOCxcInlcIjogMjUsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4MixcInlcIjogMTgyLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzOC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0xNTMuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yMyxcInlcIjogMTQsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4NixcInlcIjogNjEsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0zNy43OTIsXCJ5XCI6IDM3LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM2Ljc5MixcInlcIjogMjYuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjQsXCJ5XCI6IDE3LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MixcInlcIjogMTc3LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA5My4yMDgsXCJ5XCI6IDI3Ni42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMy43OTIsXCJ5XCI6IDM0LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogMyxcInlcIjogMzEsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogNTgsXCJ5XCI6IDE3OSxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogMjA1LjIyNSxcInlcIjogMTU0LjAzNCxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTI5LjY0MixcInlcIjogMjUuNjkxLFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiA3LjIxOCxcInlcIjogMjkuNzY1LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC01NyxcInlcIjogMTgyLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzNy42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zNS43OTIsXCJ5XCI6IDMzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE0LFwieVwiOiAxMixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTgwLFwieVwiOiA2MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTM1Ljc5MixcInlcIjogMzYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMjcxLjc5MixcInlcIjogMjQuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTcsXCJ5XCI6IDIwLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MixcInlcIjogMTc4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA4Ny4yMDgsXCJ5XCI6IDE2NC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMS43OTIsXCJ5XCI6IDM1LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTYsXCJ5XCI6IDI0LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xNzYsXCJ5XCI6IDYwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMzMuNzkyLFwieVwiOiAzOC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0xNTQuNzkyLFwieVwiOiAyOS42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yOSxcInlcIjogMTYsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTYwLFwieVwiOiAxODEsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDk1LjIwOCxcInlcIjogMTU1LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMwLjc5MixcInlcIjogMzYuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDMyLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MyxcInlcIjogMTc4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjEuNzkyLFwieVwiOiAxNTYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAzNy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xMixcInlcIjogMzIsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTYwLFwieVwiOiAxODMsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDg4LjIwOCxcInlcIjogMTYyLjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTI5Ljc5MixcInlcIjogNDEuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDE4LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02NCxcInlcIjogNTgsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0yNi43OTIsXCJ5XCI6IDMyLjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM0Ljc5MixcInlcIjogMjMuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDE4LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODQsXCJ5XCI6IDYyLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0xNTUuNzkyLFwieVwiOiAyNS42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xOCxcInlcIjogMjYsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTU3LFwieVwiOiAxOTAsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDk1LjIwOCxcInlcIjogMTU4LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMzLjc5MixcInlcIjogMjkuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTgsXCJ5XCI6IDI2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC03MSxcInlcIjogMTg0LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAxNTYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzUuNzkyLFwieVwiOiAyNy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yNSxcInlcIjogNDAsXCJ6XCI6IDB9fV07Il19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Window.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '3bad2uyOw5MzLq3b5g9aHn2', 'Window'); +// Script/Window.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + return _super !== null && _super.apply(this, arguments) || this; + } + // LIFE-CYCLE CALLBACKS: + NewClass.prototype.onLoad = function () { + this.can_Touch = false; + }; + NewClass.prototype.start = function () { + }; + NewClass.prototype.init = function (data) { + var _this = this; + this.can_Touch = false; + this.node.getChildByName("win").active = false; + this.node.getChildByName("lose").active = false; + this.node.getChildByName("finishi").active = false; + this.node.getChildByName(data.result).active = true; + if (data.result == "lose") { + this.setErrLabel(data.code); + } + var target = this.node.getChildByName(data.result); + target.getChildByName("btn").active = false; + target.opacity = 0; + target.scale = 2; + target.getChildByName("tip").opacity = 0; + if (data.result == "win") { + var lianXi = false; + if (cc.fx.GameConfig.GM_INFO.level == 2) + lianXi = true; + target.getChildByName("yes").active = !lianXi; + target.getChildByName("start").active = lianXi; + } + cc.tween(target) + .delay(0.1) + .to(0.25, { opacity: 255, scale: 1 }) + .delay(0.3) + .call(function () { + if (target.name == "lose") { + cc.tween(target.getChildByName("tip")) + .to(0.5, { opacity: 255 }) + .delay(0.5) + .call(function () { + _this.can_Touch = true; + target.getChildByName("btn").active = true; + }) + .start(); + } + else { + _this.can_Touch = true; + target.getChildByName("btn").active = true; + } + }) + .start(); + }; + NewClass.prototype.setErrLabel = function (code) { + var tip = this.node.getChildByName("lose").getChildByName("tip").getComponent(cc.Label); + tip.string = cc.fx.GameConfig.TIP_ERR[code]; + }; + NewClass.prototype.click_Next = function () { + var _this = this; + if (!this.can_Touch) { + return; + } + this.can_Touch = false; + cc.tween(this.node) + .to(0.3, { opacity: 0 }) + .call(function () { + _this.node.active = false; + cc.director.loadScene("GameScene"); + }) + .start(); + }; + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxXaW5kb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUUsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBc0MsNEJBQVk7SUFBbEQ7O0lBMkVBLENBQUM7SUF4RUcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsd0JBQUssR0FBTDtJQUVBLENBQUM7SUFFRCx1QkFBSSxHQUFKLFVBQUssSUFBSTtRQUFULGlCQXdDQztRQXZDRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwRCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FB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Q0FBQztJQUNiLENBQUM7SUF4RWdCLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0EyRTVCO0lBQUQsZUFBQztDQTNFRCxBQTJFQyxDQTNFcUMsRUFBRSxDQUFDLFNBQVMsR0EyRWpEO2tCQTNFb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgY2FuX1RvdWNoOiBib29sZWFuO1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgdGhpcy5jYW5fVG91Y2ggPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoZGF0YSl7XHJcbiAgICAgICAgdGhpcy5jYW5fVG91Y2ggPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ3aW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibG9zZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJmaW5pc2hpXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShkYXRhLnJlc3VsdCkuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBpZihkYXRhLnJlc3VsdCA9PSBcImxvc2VcIil7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RXJyTGFiZWwoZGF0YS5jb2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHRhcmdldCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShkYXRhLnJlc3VsdCk7XHJcbiAgICAgICAgdGFyZ2V0LmdldENoaWxkQnlOYW1lKFwiYnRuXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRhcmdldC5vcGFjaXR5ID0gMDsgdGFyZ2V0LnNjYWxlID0gMjt0YXJnZXQuZ2V0Q2hpbGRCeU5hbWUoXCJ0aXBcIikub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgaWYoZGF0YS5yZXN1bHQgPT0gXCJ3aW5cIil7XHJcbiAgICAgICAgICAgIHZhciBsaWFuWGkgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID09IDIpIGxpYW5YaSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRhcmdldC5nZXRDaGlsZEJ5TmFtZShcInllc1wiKS5hY3RpdmUgPSAhbGlhblhpO1xyXG4gICAgICAgICAgICB0YXJnZXQuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydFwiKS5hY3RpdmUgPSBsaWFuWGk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLnR3ZWVuKHRhcmdldClcclxuICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgIC50bygwLjI1LHtvcGFjaXR5OjI1NSxzY2FsZToxfSlcclxuICAgICAgICAuZGVsYXkoMC4zKVxyXG4gICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgIGlmKHRhcmdldC5uYW1lID09IFwibG9zZVwiKXtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRhcmdldC5nZXRDaGlsZEJ5TmFtZShcInRpcFwiKSlcclxuICAgICAgICAgICAgICAgIC50bygwLjUse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAgICAgICAgIC5kZWxheSgwLjUpXHJcbiAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbl9Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmdldENoaWxkQnlOYW1lKFwiYnRuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FuX1RvdWNoID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRhcmdldC5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RXJyTGFiZWwoY29kZSl7XHJcbiAgICAgICAgdmFyIHRpcCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aXBcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICB0aXAuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5USVBfRVJSW2NvZGVdO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrX05leHQoKXtcclxuICAgICAgICBpZighdGhpcy5jYW5fVG91Y2gpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2FuX1RvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlKVxyXG4gICAgICAgIC50bygwLjMse29wYWNpdHk6MH0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Wall.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '87a44m5f/pPAKIrsyArSr/V', 'Wall'); +// Script/Wall.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.WallColor = exports.WallType = exports.WallSpecial = void 0; +var Map_1 = require("./Map"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var WallSpecial; +(function (WallSpecial) { + /*普通门*/ + WallSpecial[WallSpecial["\u666E\u901A\u95E8"] = 0] = "\u666E\u901A\u95E8"; + /*星星门*/ + WallSpecial[WallSpecial["\u661F\u661F\u95E8"] = 1] = "\u661F\u661F\u95E8"; + /*开关门*/ + WallSpecial[WallSpecial["\u5F00\u5173\u95E8"] = 2] = "\u5F00\u5173\u95E8"; + /*冻结门 */ + WallSpecial[WallSpecial["\u51BB\u7ED3\u95E8"] = 3] = "\u51BB\u7ED3\u95E8"; +})(WallSpecial = exports.WallSpecial || (exports.WallSpecial = {})); +var WallType; +(function (WallType) { + /*普通地块 */ + WallType[WallType["\u95E8\u6A2A\u5411\u4E0B"] = 0] = "\u95E8\u6A2A\u5411\u4E0B"; + /*起点地块 */ + WallType[WallType["\u95E8\u6A2A\u5411\u4E0A"] = 1] = "\u95E8\u6A2A\u5411\u4E0A"; + /*湿地 */ + WallType[WallType["\u95E8\u7AD6\u5411\u53F3"] = 2] = "\u95E8\u7AD6\u5411\u53F3"; + /*山峰 */ + WallType[WallType["\u95E8\u7AD6\u5411\u5DE6"] = 3] = "\u95E8\u7AD6\u5411\u5DE6"; + /*终点地块 */ + WallType[WallType["\u5899\u6A2A\u5411\u4E0B"] = 4] = "\u5899\u6A2A\u5411\u4E0B"; + /*息壤 */ + WallType[WallType["\u5899\u6A2A\u5411\u4E0A"] = 5] = "\u5899\u6A2A\u5411\u4E0A"; + /*加固 */ + WallType[WallType["\u5899\u7AD6\u5411\u53F3"] = 6] = "\u5899\u7AD6\u5411\u53F3"; + /*加固 */ + WallType[WallType["\u5899\u7AD6\u5411\u5DE6"] = 7] = "\u5899\u7AD6\u5411\u5DE6"; +})(WallType = exports.WallType || (exports.WallType = {})); +var WallColor; +(function (WallColor) { + /*普通地块 */ + WallColor[WallColor["\u7D2B\u8272"] = 0] = "\u7D2B\u8272"; + /*湿地 */ + WallColor[WallColor["\u9EC4\u8272"] = 1] = "\u9EC4\u8272"; + /*山峰 */ + WallColor[WallColor["\u7EFF\u8272"] = 2] = "\u7EFF\u8272"; + /*终点地块 */ + WallColor[WallColor["\u84DD\u8272"] = 3] = "\u84DD\u8272"; + /*息壤 */ + WallColor[WallColor["\u7C89\u8272"] = 4] = "\u7C89\u8272"; + /*加固 */ + WallColor[WallColor["\u6A58\u9EC4\u8272"] = 5] = "\u6A58\u9EC4\u8272"; + /*加固 */ + WallColor[WallColor["\u9752\u8272"] = 6] = "\u9752\u8272"; + /*加固 */ + WallColor[WallColor["\u767D\u8272"] = 7] = "\u767D\u8272"; + /*普通地块 */ + WallColor[WallColor["\u7EA2\u8272"] = 8] = "\u7EA2\u8272"; + /*普通地块 */ + WallColor[WallColor["\u7070\u8272"] = 9] = "\u7070\u8272"; +})(WallColor = exports.WallColor || (exports.WallColor = {})); +var Wall = /** @class */ (function (_super) { + __extends(Wall, _super); + function Wall() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.number = null; + _this.type = WallType.墙横向下; + _this.special = WallSpecial.普通门; + _this.color = WallColor.紫色; + _this.wall_SpriteFrames = null; + _this.down_SpriteFrames = null; + return _this; + // update (dt) {} + } + // LIFE-CYCLE CALLBACKS: + // onLoad () {} + Wall.prototype.start = function () { + // console.log(this.type); + }; + Wall.prototype.jsonDeepClone = function (obj) { + return JSON.parse(JSON.stringify(obj)); + }; + Wall.prototype.init = function (wall_Info, posX, posY, direction) { + this.wall_Info = this.jsonDeepClone(wall_Info); + // this.open = true; + if (wall_Info == null) { + this.posX = posX; + this.posY = posY; + if (direction) + this.direction = direction; + // console.log("门方向赋值",direction); + if (direction == "up") { + this.node.parent.zIndex = 100 + this.posX - this.posY * 3; + } + else if (direction == "down" || direction == "right" || + direction == "rightdown" || direction == "downright" + || direction == "rightup" || direction == "upright") { + this.node.parent.zIndex = 30 + this.posX - this.posY * 3; + } + else if (direction == "left" || direction == "leftdown" || direction == "downleft") { + this.node.parent.zIndex = 70 + this.posX - this.posY * 3; + } + else + this.node.parent.zIndex = 70 + this.posX - this.posY * 3; + Map_1.default._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id = "Wall"; + //console.log(this.posX,this.posY,MapConroler._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id); + // console.log(this.posX,this.posY,this.node.zIndex); + //this.node.getChildByName("num").getComponent(cc.Label).string = direction; + //this.node.getChildByName("num").getComponent(cc.Label).string = ":" + this.node.parent.zIndex; + } + if (wall_Info != null) { + this.color = wall_Info.color; + this.special = wall_Info.special; + this.initType(); + if (wall_Info.length > 0) { + this.initColor(wall_Info.length); + } + else + this.node.removeComponent("cc.Sprite"); + if (this.posX != null) { + Map_1.default._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id = "Wall"; + //console.log(this.posX,this.posY,MapConroler._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id); + } + } + // setTimeout(() => { + // this.node.getChildByName("num").getComponent(cc.Label).string = ":" + this.node.parent.zIndex; + // }, 1000); + }; + //创建门的颜色 + Wall.prototype.initColor = function (length) { + var direction = this.node.parent.name; + var double = 0; + if (direction == "left" || direction == "right") { + double = 3; + } + // debugger; + if (this.wall_SpriteFrames) { + var name = this.color + "color" + (length + double); + var spriteFrame = this.wall_SpriteFrames._spriteFrames[name]; + this.node.getComponent(cc.Sprite).spriteFrame = spriteFrame; + } + if (this.down_SpriteFrames) { + var name2 = this.color + "down" + (length + double); + var downFrame = this.down_SpriteFrames._spriteFrames[name2]; + this.node.parent.getChildByName("down").getComponent(cc.Sprite).spriteFrame = downFrame; + } + }; + //创建特殊类型门 + Wall.prototype.initType = function () { + switch (this.special) { + case WallSpecial.星星门: + var star = cc.instantiate(Map_1.default._instance.Block_Prop[this.special]); + star.parent = this.node.parent; + // console.log("门的方向",this.direction,"长度",this.wall_Info.length); + // star.scaleX = star.scaleY = 0.5; + if (this.wall_Info.length > 0) { + if (this.direction == "right" || this.direction == "left") { + star.children[this.wall_Info.length + 2].active = true; + } + else if (this.direction == "up" || this.direction == "down") { + star.children[this.wall_Info.length - 1].active = true; + } + } + star.setPosition(this.node.width / 2 + this.node.x, this.node.height / 2 + this.node.y); + break; + case WallSpecial.开关门: + var name = "open" + this.wall_Info.length; + this.openNode = this.node.parent.getChildByName("open").getChildByName(name); + this.openNode.active = true; + if (this.wall_Info.lock == false) { + this.open = true; + this.openNode.children[0].scaleX *= 0.01; + this.openNode.children[1].scaleX *= 0.01; + } + else { + this.open = false; + } + break; + case WallSpecial.冻结门: + var freeze = "freeze" + this.wall_Info.length; + this.freezeNode = this.node.parent.getChildByName("freeze").getChildByName(freeze); + this.freezeNode.active = true; + if (this.wall_Info.freeze) { + this.freezeNode.getChildByName("num").getComponent(cc.Label).string = this.wall_Info.freeze + ""; + } + break; + } + }; + //播放星星门通过 + Wall.prototype.playStarDoor = function () { + if (this.node.parent.getChildByName("star")) { + var star = this.node.parent.getChildByName("star"); + for (var i = 0; i < star.children.length; i++) { + if (star.children[i].active == true) { + var starChild = star.children[i]; + for (var j = 0; j < starChild.children.length; j++) { + starChild.children[j].active = true; + starChild.children[j].getComponent(sp.Skeleton).setAnimation(1, "taopao1", false); + } + } + } + } + }; + //改变开关门状态 + Wall.prototype.changeLock = function () { + this.open = !this.open; + console.log("开关门状态改变", this.open); + if (!this.openNode.active) { + this.openNode.active = true; + } + var fill = this.openNode.children[0].scaleX == 1 ? 0.01 : 1; + if (this.openNode.children[0].scaleX < 0) + fill = -fill; + // console.log("目标",fill); + cc.tween(this.openNode.children[0]) + .to(0.3, { scaleX: this.openNode.children[0].scaleX < 0 ? -fill : fill }) + .call(function () { + // console.log("左边完成"); + }) + .start(); + cc.tween(this.openNode.children[1]) + .to(0.3, { scaleX: this.openNode.children[1].scaleX < 0 ? -fill : fill }) + .call(function () { + // console.log("右边完成"); + }) + .start(); + }; + Wall.prototype.changeFreeze = function () { + var numStr = this.freezeNode.getChildByName("num").getComponent(cc.Label); + var num = parseInt(numStr.string); + num -= 1; + this.freezeNode.getChildByName("num").getComponent(cc.Label).string = num + ""; + if (num == 0) { + this.freezeNode.parent.active = false; + } + }; + Wall.prototype.downDoor = function () { + if (this.openNode) { + if (this.openNode.children[0].scaleX == 1) + return; + } + if (this.freezeNode) { + if (this.freezeNode.active == true) + return; + } + this.node.opacity = 0; + if (this.special == WallSpecial.星星门) { + this.node.parent.getChildByName("star").y -= 10; + } + this.node.parent.getChildByName("down").active = true; + }; + Wall.prototype.upDoor = function () { + if (this.special == WallSpecial.星星门) { + this.node.parent.getChildByName("star").y += 10; + } + this.node.parent.getChildByName("down").active = false; + this.node.opacity = 250; + }; + __decorate([ + property(cc.Label) + ], Wall.prototype, "number", void 0); + __decorate([ + property({ + tooltip: '墙或者门的方向', + type: cc.Enum(WallType), + }) + ], Wall.prototype, "type", void 0); + __decorate([ + property({ + tooltip: '墙或者门的方向', + type: cc.Enum(WallSpecial), + }) + ], Wall.prototype, "special", void 0); + __decorate([ + property({ + tooltip: '门的颜色', + type: cc.Enum(WallColor), + }) + ], Wall.prototype, "color", void 0); + __decorate([ + property(cc.SpriteAtlas) + ], Wall.prototype, "wall_SpriteFrames", void 0); + __decorate([ + property(cc.SpriteAtlas) + ], Wall.prototype, "down_SpriteFrames", void 0); + Wall = __decorate([ + ccclass + ], Wall); + return Wall; +}(cc.Component)); +exports.default = Wall; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxXYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRiw2QkFBZ0M7QUFFMUIsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUMsSUFBWSxXQVNYO0FBVEQsV0FBWSxXQUFXO0lBQ25CLE9BQU87SUFDUCx5RUFBUyxDQUFBO0lBQ1QsT0FBTztJQUNQLHlFQUFTLENBQUE7SUFDVCxPQUFPO0lBQ1AseUVBQVMsQ0FBQTtJQUNULFFBQVE7SUFDUix5RUFBUyxDQUFBO0FBQ2IsQ0FBQyxFQVRXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBU3RCO0FBRUQsSUFBWSxRQWtCWDtBQWxCRCxXQUFZLFFBQVE7SUFFaEIsU0FBUztJQUNULCtFQUFVLENBQUE7SUFDVixTQUFTO0lBQ1QsK0VBQVUsQ0FBQTtJQUNWLE9BQU87SUFDUCwrRUFBVSxDQUFBO0lBQ1YsT0FBTztJQUNQLCtFQUFVLENBQUE7SUFDVixTQUFTO0lBQ1QsK0VBQVUsQ0FBQTtJQUNWLE9BQU87SUFDUCwrRUFBVSxDQUFBO0lBQ1YsT0FBTztJQUNQLCtFQUFVLENBQUE7SUFDVixPQUFPO0lBQ1AsK0VBQVUsQ0FBQTtBQUNkLENBQUMsRUFsQlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFrQm5CO0FBRUQsSUFBWSxTQXFCWDtBQXJCRCxXQUFZLFNBQVM7SUFDakIsU0FBUztJQUNULHlEQUFRLENBQUE7SUFDUixPQUFPO0lBQ1AseURBQVEsQ0FBQTtJQUNSLE9BQU87SUFDUCx5REFBUSxDQUFBO0lBQ1IsU0FBUztJQUNULHlEQUFRLENBQUE7SUFDUixPQUFPO0lBQ1AseURB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LFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUM3QixDQUFDO3lDQUNxQztJQU12QztRQUpDLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRSxNQUFNO1lBQ2YsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQzNCLENBQUM7dUNBQzhCO0lBR2hDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7bURBQ2dCO0lBR3pDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7bURBQ2dCO0lBM0J4QixJQUFJO1FBRHhCLE9BQU87T0FDYSxJQUFJLENBcVB4QjtJQUFELFdBQUM7Q0FyUEQsQUFxUEMsQ0FyUGlDLEVBQUUsQ0FBQyxTQUFTLEdBcVA3QztrQkFyUG9CLElBQUkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbmV4cG9ydCBlbnVtIFdhbGxTcGVjaWFse1xyXG4gICAgLyrmma7pgJrpl6gqL1xyXG4gICAgXCLmma7pgJrpl6hcIiA9IDAsICBcclxuICAgIC8q5pif5pif6ZeoKi9cclxuICAgIFwi5pif5pif6ZeoXCIgPSAxLCAgXHJcbiAgICAvKuW8gOWFs+mXqCovXHJcbiAgICBcIuW8gOWFs+mXqFwiID0gMiwgIFxyXG4gICAgLyrlhrvnu5Ppl6ggKi9cclxuICAgIFwi5Ya757uT6ZeoXCIgPSAzLCAgXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFdhbGxUeXBle1xyXG4gICAgXHJcbiAgICAvKuaZrumAmuWcsOWdlyAqL1xyXG4gICAgXCLpl6jmqKrlkJHkuItcIiA9IDAsICBcclxuICAgIC8q6LW354K55Zyw5Z2XICovXHJcbiAgICBcIumXqOaoquWQkeS4ilwiID0gMSwgIFxyXG4gICAgLyrmub/lnLAgKi9cclxuICAgIFwi6Zeo56uW5ZCR5Y+zXCIgPSAyLCAgXHJcbiAgICAvKuWxseWzsCAqL1xyXG4gICAgXCLpl6jnq5blkJHlt6ZcIiA9IDMsICBcclxuICAgIC8q57uI54K55Zyw5Z2XICovXHJcbiAgICBcIuWimeaoquWQkeS4i1wiID0gNCwgIFxyXG4gICAgLyrmga/lo6QgKi9cclxuICAgIFwi5aKZ5qiq5ZCR5LiKXCIgPSA1LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLlopnnq5blkJHlj7NcIiA9IDYsICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIuWimeerluWQkeW3plwiID0gNywgIFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBXYWxsQ29sb3J7XHJcbiAgICAvKuaZrumAmuWcsOWdlyAqL1xyXG4gICAgXCLntKvoibJcIiA9IDAsICBcclxuICAgIC8q5rm/5ZywICovXHJcbiAgICBcIum7hOiJslwiID0gMSwgIFxyXG4gICAgLyrlsbHls7AgKi9cclxuICAgIFwi57u/6ImyXCIgPSAyLCAgXHJcbiAgICAvKue7iOeCueWcsOWdlyAqL1xyXG4gICAgXCLok53oibJcIiA9IDMsICBcclxuICAgIC8q5oGv5aOkICovXHJcbiAgICBcIueyieiJslwiID0gNCwgIFxyXG4gICAgLyrliqDlm7ogKi9cclxuICAgIFwi5qmY6buE6ImyXCIgPSA1LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLpnZLoibJcIiA9IDYsICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIueZveiJslwiID0gNywgIFxyXG4gICAgLyrmma7pgJrlnLDlnZcgKi9cclxuICAgIFwi57qi6ImyXCIgPSA4LCBcclxuICAgIC8q5pmu6YCa5Zyw5Z2XICovXHJcbiAgICBcIueBsOiJslwiID0gOSwgXHJcbn1cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdhbGwgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIG51bWJlcjogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7XHJcbiAgICAgICAgdG9vbHRpcDogJ+WimeaIluiAhemXqOeahOaWueWQkScsXHJcbiAgICAgICAgdHlwZTogY2MuRW51bShXYWxsVHlwZSksXHJcbiAgICB9KVxyXG4gICAgdHlwZTogV2FsbFR5cGUgPSBXYWxsVHlwZS7lopnmqKrlkJHkuIs7XHJcblxyXG4gICAgQHByb3BlcnR5KHtcclxuICAgICAgICB0b29sdGlwOiAn5aKZ5oiW6ICF6Zeo55qE5pa55ZCRJyxcclxuICAgICAgICB0eXBlOiBjYy5FbnVtKFdhbGxTcGVjaWFsKSxcclxuICAgIH0pXHJcbiAgICBzcGVjaWFsOiBXYWxsU3BlY2lhbCA9IFdhbGxTcGVjaWFsLuaZrumAmumXqDtcclxuXHJcbiAgICBAcHJvcGVydHkoe1xyXG4gICAgICAgIHRvb2x0aXA6ICfpl6jnmoTpopzoibInLFxyXG4gICAgICAgIHR5cGU6IGNjLkVudW0oV2FsbENvbG9yKSxcclxuICAgIH0pXHJcbiAgICBjb2xvcjogV2FsbENvbG9yID0gV2FsbENvbG9yLue0q+iJsjtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuU3ByaXRlQXRsYXMpXHJcbiAgICB3YWxsX1Nwcml0ZUZyYW1lczogY2MuU3ByaXRlQXRsYXMgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVBdGxhcylcclxuICAgIGRvd25fU3ByaXRlRnJhbWVzOiBjYy5TcHJpdGVBdGxhcyA9IG51bGw7XHJcblxyXG5cclxuICAgIHBvc1g6IG51bWJlcjtcclxuICAgIHBvc1k6IG51bWJlcjtcclxuICAgIGRpcmVjdGlvbjogYW55O1xyXG4gICAgd2FsbF9JbmZvOiBhbnk7XHJcbiAgICBvcGVuTm9kZTogY2MuTm9kZTtcclxuICAgIGZyZWV6ZU5vZGU6IGNjLk5vZGU7XHJcbiAgICBvcGVuOmJvb2xlYW47XHJcbiAgICBcclxuXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICAvLyBvbkxvYWQgKCkge31cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy50eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBqc29uRGVlcENsb25lPFQ+KG9iajogVCk6IFQge1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQod2FsbF9JbmZvLCBwb3NYOiBudW1iZXIsIHBvc1k6IG51bWJlciwgZGlyZWN0aW9uOiBhbnkpe1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMud2FsbF9JbmZvID0gdGhpcy5qc29uRGVlcENsb25lKHdhbGxfSW5mbyk7XHJcbiAgICAgICAgLy8gdGhpcy5vcGVuID0gdHJ1ZTtcclxuICAgICAgICBpZih3YWxsX0luZm8gPT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMucG9zWCA9IHBvc1g7XHJcbiAgICAgICAgICAgIHRoaXMucG9zWSA9IHBvc1k7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZihkaXJlY3Rpb24pdGhpcy5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6Zeo5pa55ZCR6LWL5YC8XCIsZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgaWYoZGlyZWN0aW9uID09IFwidXBcIiApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC56SW5kZXggPSAxMDAgKyB0aGlzLnBvc1ggLSB0aGlzLnBvc1kqMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKCBkaXJlY3Rpb24gPT0gXCJkb3duXCIgfHwgZGlyZWN0aW9uID09IFwicmlnaHRcIiB8fCBcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9PSBcInJpZ2h0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25yaWdodFwiXHJcbiAgICAgICAgICAgIHx8IGRpcmVjdGlvbiA9PSBcInJpZ2h0dXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJ1cHJpZ2h0XCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC56SW5kZXggPSAzMCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKCBkaXJlY3Rpb24gPT0gXCJsZWZ0XCJ8fCBkaXJlY3Rpb24gPT0gXCJsZWZ0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25sZWZ0XCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC56SW5kZXggPSA3MCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHRoaXMubm9kZS5wYXJlbnQuekluZGV4ID0gNzAgKyB0aGlzLnBvc1ggLSB0aGlzLnBvc1kqMztcclxuXHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5tYXBCbG9ja3NXYWxsW3RoaXMucG9zWF1bdGhpcy5wb3NZXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCA9IFwiV2FsbFwiO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMucG9zWCx0aGlzLnBvc1ksTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbdGhpcy5wb3NYXVt0aGlzLnBvc1ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5wb3NYLHRoaXMucG9zWSx0aGlzLm5vZGUuekluZGV4KTtcclxuICAgICAgICAgICAgLy90aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkaXJlY3Rpb247XHJcbiAgICAgICAgICAgLy90aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBcIjpcIiArIHRoaXMubm9kZS5wYXJlbnQuekluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih3YWxsX0luZm8gIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSB3YWxsX0luZm8uY29sb3I7XHJcbiAgICAgICAgICAgIHRoaXMuc3BlY2lhbCA9IHdhbGxfSW5mby5zcGVjaWFsO1xyXG4gICAgICAgICAgICB0aGlzLmluaXRUeXBlKCk7XHJcbiAgICAgICAgICAgIGlmKHdhbGxfSW5mby5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdENvbG9yKHdhbGxfSW5mby5sZW5ndGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5ub2RlLnJlbW92ZUNvbXBvbmVudChcImNjLlNwcml0ZVwiKTtcclxuICAgICAgICAgICAgaWYodGhpcy5wb3NYICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbdGhpcy5wb3NYXVt0aGlzLnBvc1ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkID0gXCJXYWxsXCI7XHJcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMucG9zWCx0aGlzLnBvc1ksTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbdGhpcy5wb3NYXVt0aGlzLnBvc1ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI6XCIgKyB0aGlzLm5vZGUucGFyZW50LnpJbmRleDtcclxuICAgICAgICAvLyB9LCAxMDAwKTtcclxuIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu66Zeo55qE6aKc6ImyXHJcbiAgICBpbml0Q29sb3IobGVuZ3RoOiBudW1iZXIpe1xyXG4gICAgICAgIGxldCBkaXJlY3Rpb24gPSB0aGlzLm5vZGUucGFyZW50Lm5hbWU7XHJcbiAgICAgICAgbGV0IGRvdWJsZSA9IDA7XHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwibGVmdFwiICB8fCBkaXJlY3Rpb24gPT0gXCJyaWdodFwiKXtcclxuICAgICAgICAgICAgZG91YmxlID0gMztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgIGlmKHRoaXMud2FsbF9TcHJpdGVGcmFtZXMpe1xyXG4gICAgICAgICAgICBsZXQgbmFtZSA9IHRoaXMuY29sb3IrXCJjb2xvclwiICsgKGxlbmd0aCtkb3VibGUpO1xyXG4gICAgICAgICAgICB2YXIgc3ByaXRlRnJhbWUgPSB0aGlzLndhbGxfU3ByaXRlRnJhbWVzLl9zcHJpdGVGcmFtZXNbbmFtZV07XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHNwcml0ZUZyYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLmRvd25fU3ByaXRlRnJhbWVzKXtcclxuICAgICAgICAgICAgbGV0IG5hbWUyID0gdGhpcy5jb2xvciArIFwiZG93blwiICsgKGxlbmd0aCtkb3VibGUpO1xyXG4gICAgICAgICAgICB2YXIgZG93bkZyYW1lID0gdGhpcy5kb3duX1Nwcml0ZUZyYW1lcy5fc3ByaXRlRnJhbWVzW25hbWUyXTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcImRvd25cIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBkb3duRnJhbWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu654m55q6K57G75Z6L6ZeoXHJcbiAgICBpbml0VHlwZSgpe1xyXG4gICAgICAgIHN3aXRjaCh0aGlzLnNwZWNpYWwpe1xyXG4gICAgICAgICAgICBjYXNlIFdhbGxTcGVjaWFsLuaYn+aYn+mXqDpcclxuICAgICAgICAgICAgICAgIGxldCBzdGFyID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbdGhpcy5zcGVjaWFsXSk7XHJcbiAgICAgICAgICAgICAgICBzdGFyLnBhcmVudCA9IHRoaXMubm9kZS5wYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIumXqOeahOaWueWQkVwiLHRoaXMuZGlyZWN0aW9uLFwi6ZW/5bqmXCIsdGhpcy53YWxsX0luZm8ubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgIC8vIHN0YXIuc2NhbGVYID0gc3Rhci5zY2FsZVkgPSAwLjU7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLndhbGxfSW5mby5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmRpcmVjdGlvbiA9PSBcInJpZ2h0XCIgfHwgdGhpcy5kaXJlY3Rpb24gPT0gXCJsZWZ0XCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFyLmNoaWxkcmVuW3RoaXMud2FsbF9JbmZvLmxlbmd0aCArIDJdLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5kaXJlY3Rpb24gPT0gXCJ1cFwiIHx8IHRoaXMuZGlyZWN0aW9uID09IFwiZG93blwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Rhci5jaGlsZHJlblt0aGlzLndhbGxfSW5mby5sZW5ndGggLSAxXS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHN0YXIuc2V0UG9zaXRpb24odGhpcy5ub2RlLndpZHRoLzIrdGhpcy5ub2RlLngsdGhpcy5ub2RlLmhlaWdodC8yK3RoaXMubm9kZS55KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFdhbGxTcGVjaWFsLuW8gOWFs+mXqDpcclxuICAgICAgICAgICAgICAgIGxldCBuYW1lID0gXCJvcGVuXCIgKyB0aGlzLndhbGxfSW5mby5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5Ob2RlID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIm9wZW5cIikuZ2V0Q2hpbGRCeU5hbWUobmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5Ob2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLndhbGxfSW5mby5sb2NrID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYICo9IDAuMDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuTm9kZS5jaGlsZHJlblsxXS5zY2FsZVggKj0gMC4wMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBXYWxsU3BlY2lhbC7lhrvnu5Ppl6g6XHJcbiAgICAgICAgICAgICAgICBsZXQgZnJlZXplID0gXCJmcmVlemVcIiArIHRoaXMud2FsbF9JbmZvLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplTm9kZSA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuZ2V0Q2hpbGRCeU5hbWUoZnJlZXplKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplTm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy53YWxsX0luZm8uZnJlZXplKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZU5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxfSW5mby5mcmVlemUrXCJcIjtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9IFxyXG4gICAgfVxyXG5cclxuICAgIC8v5pKt5pS+5pif5pif6Zeo6YCa6L+HXHJcbiAgICBwbGF5U3RhckRvb3IoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwic3RhclwiKSl7XHJcbiAgICAgICAgICAgIGxldCBzdGFyID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInN0YXJcIik7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHN0YXIuY2hpbGRyZW4ubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYoc3Rhci5jaGlsZHJlbltpXS5hY3RpdmUgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHN0YXJDaGlsZCA9IHN0YXIuY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBqPTA7IGo8c3RhckNoaWxkLmNoaWxkcmVuLmxlbmd0aDsgaisrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhckNoaWxkLmNoaWxkcmVuW2pdLmFjdGl2ZSA9IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhckNoaWxkLmNoaWxkcmVuW2pdLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ0YW9wYW8xXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy/mlLnlj5jlvIDlhbPpl6jnirbmgIFcclxuICAgIGNoYW5nZUxvY2soKXtcclxuICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5byA5YWz6Zeo54q25oCB5pS55Y+YXCIsdGhpcy5vcGVuKTtcclxuICAgICAgICBpZighdGhpcy5vcGVuTm9kZS5hY3RpdmUpe1xyXG4gICAgICAgICAgICB0aGlzLm9wZW5Ob2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gIFxyXG5cclxuICAgICAgICBsZXQgZmlsbCA9IHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYPT0xID8gMC4wMToxO1xyXG4gICAgICAgIGlmKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYIDwgMCkgZmlsbCA9IC1maWxsO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi55uu5qCHXCIsZmlsbCk7XHJcblxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0pXHJcbiAgICAgICAgLnRvKDAuMywge3NjYWxlWDogdGhpcy5vcGVuTm9kZS5jaGlsZHJlblswXS5zY2FsZVggPCAwPy1maWxsOmZpbGx9KVxyXG4gICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bem6L655a6M5oiQXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMV0pXHJcbiAgICAgICAgLnRvKDAuMywge3NjYWxlWDogdGhpcy5vcGVuTm9kZS5jaGlsZHJlblsxXS5zY2FsZVggPCAwPy1maWxsOmZpbGx9KVxyXG4gICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z6L655a6M5oiQXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlRnJlZXplKCl7XHJcbiAgICAgICAgbGV0IG51bVN0ciA9IHRoaXMuZnJlZXplTm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgIGxldCBudW0gPSBwYXJzZUludChudW1TdHIuc3RyaW5nKTtcclxuICAgICAgICBudW0gLT0gMTtcclxuICAgICAgICB0aGlzLmZyZWV6ZU5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBudW0rXCJcIjtcclxuICAgICAgICBpZihudW0gPT0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMuZnJlZXplTm9kZS5wYXJlbnQuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRvd25Eb29yKCl7XHJcbiAgICAgICAgaWYodGhpcy5vcGVuTm9kZSl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYID09IDEpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMuZnJlZXplTm9kZSl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZnJlZXplTm9kZS5hY3RpdmUgPT0gdHJ1ZSlcclxuICAgICAgICAgICAgICAgIHJldHVybjsgXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm5vZGUub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgaWYodGhpcy5zcGVjaWFsID09IFdhbGxTcGVjaWFsLuaYn+aYn+mXqCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyXCIpLnkgLT0gMTA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJkb3duXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdXBEb29yKCl7XHJcbiAgICAgICAgaWYodGhpcy5zcGVjaWFsID09IFdhbGxTcGVjaWFsLuaYn+aYn+mXqCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyXCIpLnkgKz0gMTA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJkb3duXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 //------QC-SOURCE-SPLIT------ (function() { @@ -10203,316 +9880,6 @@ cc._RF.pop(); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxMb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR2xGLGtEQUE2QztBQUV2QyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUsxQztJQUFrQyx3QkFBWTtJQUE5QztRQUFBLHFFQStCQztRQTdCRyxVQUFJLEdBQVcsQ0FBQyxDQUFDOztRQTRCakIsaUJBQWlCO0lBQ3JCLENBQUM7SUEzQkcsNEJBQTRCO0lBRTVCLHFCQUFNLEdBQU47SUFFQSxDQUFDO0lBRUQsb0JBQUssR0FBTDtJQUNBLENBQUM7SUFFRCxtQkFBSSxHQUFKLFVBQUssSUFBSTtRQUNMLElBQUcsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDL0MsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBHLENBQUM7SUFFRCxxQkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDZix1QkFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEcsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ2hDO0lBQ0wsQ0FBQztJQTVCZ0IsSUFBSTtRQUR4QixPQUFPO09BQ2EsSUFBSSxDQStCeEI7SUFBRCxXQUFDO0NBL0JELEFBK0JDLENBL0JpQyxFQUFFLENBQUMsU0FBUyxHQStCN0M7a0JBL0JvQixJQUFJIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuLi9NYXBcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4uL051bWJlclRvSW1hZ2VcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2NrIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLy8gbWFwSW5mbzogbnVtYmVyW11bXSA9IFtdO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcblxyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCh0aW1lKXtcclxuICAgICAgICBpZih0aW1lKSB0aGlzLnRpbWUgPSB0aW1lO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyh0aGlzLnRpbWUsMjAsOCxcImxvY2tfXCIsdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKSxmYWxzZSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJlZHVjZSgpe1xyXG4gICAgICAgIHRoaXMudGltZSAtPSAxO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKHRoaXMudGltZSwyMCw4LFwibG9ja19cIix0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLGZhbHNlKTtcclxuICAgICAgICBpZih0aGlzLnRpbWUgPD0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Pause.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'aca4aut33NCvIC0yg3JmY0h', 'Pause'); -// Script/Pause.ts - -"use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var Pause = /** @class */ (function (_super) { - __extends(Pause, _super); - function Pause() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.time = 0; - _this.music = null; - _this.effect = null; - _this.vibrate = null; - _this.open = null; - _this.close = null; - // mapInfo: number[][] = []; - _this.musicState = true; - _this.effectState = true; - _this.vibrateState = true; - return _this; - // update (dt) {} - } - Pause.prototype.onLoad = function () { - if (cc.fx.GameConfig.GM_INFO.musicOpen) { - this.music.getComponent(cc.Sprite).spriteFrame = this.open; - this.music.x = 278; - } - else { - this.music.getComponent(cc.Sprite).spriteFrame = this.close; - this.music.x = 161; - } - if (cc.fx.GameConfig.GM_INFO.effectOpen) { - this.effect.getComponent(cc.Sprite).spriteFrame = this.open; - this.effect.x = 278; - } - else { - this.effect.getComponent(cc.Sprite).spriteFrame = this.close; - this.effect.x = 161; - } - if (cc.fx.GameConfig.GM_INFO.vibrateOpen) { - this.vibrate.getComponent(cc.Sprite).spriteFrame = this.open; - this.vibrate.x = 278; - } - else { - this.vibrate.getComponent(cc.Sprite).spriteFrame = this.close; - this.vibrate.x = 161; - } - this.musicState = cc.fx.GameConfig.GM_INFO.musicOpen; - this.effectState = cc.fx.GameConfig.GM_INFO.effectOpen; - this.vibrateState = cc.fx.GameConfig.GM_INFO.vibrateOpen; - }; - Pause.prototype.start = function () { - }; - Pause.prototype.init = function (time) { - }; - Pause.prototype.clickMusic = function () { - var _this = this; - if (this.musicState) { - this.musicState = false; - cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState; - this.setMusicConfig(); - this.music.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(161, this.music.y)), cc.fadeOut(0.05)), cc.callFunc(function () { - _this.music.getComponent(cc.Sprite).spriteFrame = _this.close; - }), cc.fadeIn(0.1))); - cc.fx.AudioManager._instance.stopMusic(); - } - else { - this.musicState = true; - cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState; - this.setMusicConfig(); - this.music.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(278, this.music.y)), cc.fadeOut(0.05)), cc.callFunc(function () { - _this.music.getComponent(cc.Sprite).spriteFrame = _this.open; - }), cc.fadeIn(0.1))); - cc.fx.AudioManager._instance.playMusicGame(); - } - }; - Pause.prototype.setMusicConfig = function () { - var audioInfo = { - "musicOpen": cc.fx.GameConfig.GM_INFO.musicOpen, - "effectOpen": cc.fx.GameConfig.GM_INFO.effectOpen, - "vibrateOpen": cc.fx.GameConfig.GM_INFO.vibrateOpen, - }; - cc.fx.StorageMessage.setStorage("music", audioInfo); - }; - Pause.prototype.clickEffect = function () { - var _this = this; - if (this.effectState) { - this.effectState = false; - cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState; - this.setMusicConfig(); - this.effect.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(161, this.effect.y)), cc.fadeOut(0.05)), cc.callFunc(function () { - _this.effect.getComponent(cc.Sprite).spriteFrame = _this.close; - }), cc.fadeIn(0.1))); - } - else { - this.effectState = true; - cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState; - this.setMusicConfig(); - this.effect.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(278, this.effect.y)), cc.fadeOut(0.05)), cc.callFunc(function () { - _this.effect.getComponent(cc.Sprite).spriteFrame = _this.open; - }), cc.fadeIn(0.1))); - } - }; - Pause.prototype.clickVibrate = function () { - var _this = this; - if (this.vibrateState) { - this.vibrateState = false; - cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState; - this.setMusicConfig(); - this.vibrate.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(161, this.vibrate.y)), cc.fadeOut(0.05)), cc.callFunc(function () { - _this.vibrate.getComponent(cc.Sprite).spriteFrame = _this.close; - }), cc.fadeIn(0.1))); - } - else { - this.vibrateState = true; - cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState; - this.setMusicConfig(); - this.vibrate.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(278, this.vibrate.y)), cc.fadeOut(0.05)), cc.callFunc(function () { - _this.vibrate.getComponent(cc.Sprite).spriteFrame = _this.open; - }), cc.fadeIn(0.1))); - } - }; - __decorate([ - property(cc.Node) - ], Pause.prototype, "music", void 0); - __decorate([ - property(cc.Node) - ], Pause.prototype, "effect", void 0); - __decorate([ - property(cc.Node) - ], Pause.prototype, "vibrate", void 0); - __decorate([ - property(cc.SpriteFrame) - ], Pause.prototype, "open", void 0); - __decorate([ - property(cc.SpriteFrame) - ], Pause.prototype, "close", void 0); - Pause = __decorate([ - ccclass - ], Pause); - return Pause; -}(cc.Component)); -exports.default = Pause; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxQYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUc1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUkxQztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQW1JQztRQWpJRyxVQUFJLEdBQVcsQ0FBQyxDQUFDO1FBR2pCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixhQUFPLEdBQVksSUFBSSxDQUFDO1FBR3hCLFVBQUksR0FBbUIsSUFBSSxDQUFDO1FBRzVCLFdBQUssR0FBbUIsSUFBSSxDQUFDO1FBRTdCLDRCQUE0QjtRQUU1QixnQkFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixpQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixrQkFBWSxHQUFZLElBQUksQ0FBQzs7UUEyRzdCLGlCQUFpQjtJQUNyQixDQUFDO0lBMUdHLHNCQUFNLEdBQU47UUFDSSxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzNELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN0QjthQUNHO1lBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzVELElBQUksQ0FB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Q0FBQztZQUN6RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFDbEgsS0FBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ3RCO0lBQ0wsQ0FBQztJQTNIRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO3dDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ0s7SUFHdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDTTtJQUd4QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO3VDQUNHO0lBRzVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7d0NBQ0k7SUFqQlosS0FBSztRQUR6QixPQUFPO09BQ2EsS0FBSyxDQW1JekI7SUFBRCxZQUFDO0NBbklELEFBbUlDLENBbklrQyxFQUFFLENBQUMsU0FBUyxHQW1JOUM7a0JBbklvQixLQUFLIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhdXNlIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDA7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBtdXNpYzogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBlZmZlY3Q6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgdmlicmF0ZTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZUZyYW1lKVxyXG4gICAgb3BlbjogY2MuU3ByaXRlRnJhbWUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVGcmFtZSlcclxuICAgIGNsb3NlOiBjYy5TcHJpdGVGcmFtZSA9IG51bGw7XHJcbiAgICBcclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuXHJcbiAgICBtdXNpY1N0YXRlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGVmZmVjdFN0YXRlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHZpYnJhdGVTdGF0ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuKXtcclxuICAgICAgICAgICAgdGhpcy5tdXNpYy5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMub3BlbjtcclxuICAgICAgICAgICAgdGhpcy5tdXNpYy54ID0gMjc4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5jbG9zZTtcclxuICAgICAgICAgICAgdGhpcy5tdXNpYy54ID0gMTYxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3Blbil7XHJcbiAgICAgICAgICAgIHRoaXMuZWZmZWN0LmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5vcGVuO1xyXG4gICAgICAgICAgICB0aGlzLmVmZmVjdC54ID0gMjc4OyBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3QuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmNsb3NlO1xyXG4gICAgICAgICAgICB0aGlzLmVmZmVjdC54ID0gMTYxOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuKXtcclxuICAgICAgICAgICAgdGhpcy52aWJyYXRlLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5vcGVuO1xyXG4gICAgICAgICAgICB0aGlzLnZpYnJhdGUueCA9IDI3ODsgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMudmlicmF0ZS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMuY2xvc2U7IFxyXG4gICAgICAgICAgICB0aGlzLnZpYnJhdGUueCA9IDE2MTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tdXNpY1N0YXRlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3BlbjtcclxuICAgICAgICB0aGlzLmVmZmVjdFN0YXRlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmVmZmVjdE9wZW47XHJcbiAgICAgICAgdGhpcy52aWJyYXRlU3RhdGUgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW47XHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KHRpbWUpe1xyXG5cclxuICAgIH1cclxuICAgIFxyXG4gICAgY2xpY2tNdXNpYygpe1xyXG4gICAgICAgIGlmKHRoaXMubXVzaWNTdGF0ZSl7XHJcbiAgICAgICAgICAgIHRoaXMubXVzaWNTdGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuID0gdGhpcy5tdXNpY1N0YXRlO1xyXG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XHJcbiAgICAgICAgICAgIHRoaXMubXVzaWMucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigxNjEsdGhpcy5tdXNpYy55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5jbG9zZTtcclxuICAgICAgICAgICAgfSksY2MuZmFkZUluKDAuMSkpKVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLm11c2ljU3RhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuID0gdGhpcy5tdXNpY1N0YXRlO1xyXG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XHJcbiAgICAgICAgICAgIHRoaXMubXVzaWMucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigyNzgsdGhpcy5tdXNpYy55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5vcGVuO1xyXG4gICAgICAgICAgICB9KSxjYy5mYWRlSW4oMC4xKSkpXHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheU11c2ljR2FtZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRNdXNpY0NvbmZpZygpe1xyXG4gICAgICAgIGxldCBhdWRpb0luZm8gPSB7XHJcbiAgICAgICAgICAgIFwibXVzaWNPcGVuXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4sICAgICAgICAgICAgIC8v6Z+z5LmQXHJcbiAgICAgICAgICAgIFwiZWZmZWN0T3BlblwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiwgICAgICAgICAgICAvL+mfs+aViFxyXG4gICAgICAgICAgICBcInZpYnJhdGVPcGVuXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy52aWJyYXRlT3BlbiwgICAgICAgICAgIC8v6ZyH5YqoXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJtdXNpY1wiLGF1ZGlvSW5mbyk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tFZmZlY3QoKXtcclxuICAgICAgICBpZih0aGlzLmVmZmVjdFN0YXRlKXtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3RTdGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IHRoaXMuZWZmZWN0U3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3QucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigxNjEsdGhpcy5lZmZlY3QueSkpLCBjYy5mYWRlT3V0KDAuMDUpKSxjYy5jYWxsRnVuYygoKT0+e1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lZmZlY3QuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmNsb3NlO1xyXG4gICAgICAgICAgICB9KSxjYy5mYWRlSW4oMC4xKSkpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuZWZmZWN0U3RhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IHRoaXMuZWZmZWN0U3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3QucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigyNzgsdGhpcy5lZmZlY3QueSkpLCBjYy5mYWRlT3V0KDAuMDUpKSxjYy5jYWxsRnVuYygoKT0+e1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lZmZlY3QuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLm9wZW47XHJcbiAgICAgICAgICAgIH0pLGNjLmZhZGVJbigwLjEpKSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tWaWJyYXRlKCl7XHJcbiAgICAgICAgaWYodGhpcy52aWJyYXRlU3RhdGUpe1xyXG4gICAgICAgICAgICB0aGlzLnZpYnJhdGVTdGF0ZSA9IGZhbHNlOyBcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuID0gdGhpcy52aWJyYXRlU3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy52aWJyYXRlLnJ1bkFjdGlvbihjYy5zZXF1ZW5jZShjYy5zcGF3bihjYy5tb3ZlVG8oMC4wNSwgY2MudjIoMTYxLHRoaXMudmlicmF0ZS55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpYnJhdGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmNsb3NlO1xyXG4gICAgICAgICAgICB9KSxjYy5mYWRlSW4oMC4xKSkpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMudmlicmF0ZVN0YXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuID0gdGhpcy52aWJyYXRlU3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy52aWJyYXRlLnJ1bkFjdGlvbihjYy5zZXF1ZW5jZShjYy5zcGF3bihjYy5tb3ZlVG8oMC4wNSwgY2MudjIoMjc4LHRoaXMudmlicmF0ZS55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpYnJhdGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLm9wZW47XHJcbiAgICAgICAgICAgIH0pLGNjLmZhZGVJbigwLjEpKSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/prop/Freeze.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'ad8cbbzCohCR5uifssdRTf+', 'Freeze'); -// Script/prop/Freeze.ts - -"use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var NumberToImage_1 = require("../NumberToImage"); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var Freeze = /** @class */ (function (_super) { - __extends(Freeze, _super); - function Freeze() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.time = 60; - _this.freeze = null; - return _this; - // update (dt) {} - } - // mapInfo: number[][] = []; - Freeze.prototype.onLoad = function () { - }; - Freeze.prototype.start = function () { - }; - Freeze.prototype.init = function (time, type) { - if (time) - this.time = time; - this.node.getChildByName("time").active = true; - NumberToImage_1.default.numberToImageNodes(this.time, 40, 25, "ice_", this.node.getChildByName("time"), false); - // this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString(); - }; - Freeze.prototype.reduce = function (number) { - var _this = this; - this.time -= number; - if (this.time <= 0) - this.time = 0; - NumberToImage_1.default.numberToImageNodes(this.time, 40, 25, "ice_", this.node.getChildByName("time"), false); - // this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString(); - if (this.time <= 0) { - this.node.getChildByName("bingkuai").active = true; - var skeleton = this.node.getChildByName("bingkuai").getComponent(sp.Skeleton); - skeleton.setAnimation(1, "bingkuai", false); - this.node.getChildByName("icon").active = true; - this.node.getChildByName("time").active = false; - cc.tween(this.node.getChildByName("icon")) - .to(0.5, { opacity: 0 }) - .start(); - // this.node.getChildByName("icon").getComponent(cc.Sprite).setMaterial(0,this.freeze); - // this.node.children.forEach(element => { - // element.destroy(); - // }); - setTimeout(function () { - _this.node.parent.getComponent("Block").resetFreeze(); - _this.node.destroy(); - _this.node.removeFromParent(); - }, 600); - } - }; - __decorate([ - property(cc.Material) - ], Freeze.prototype, "freeze", void 0); - Freeze = __decorate([ - ccclass - ], Freeze); - return Freeze; -}(cc.Component)); -exports.default = Freeze; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxGcmVlemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHbEYsa0RBQTZDO0FBRXZDLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSzFDO0lBQW9DLDBCQUFZO0lBQWhEO1FBQUEscUVBc0RDO1FBcERHLFVBQUksR0FBVyxFQUFFLENBQUM7UUFHbEIsWUFBTSxHQUFnQixJQUFJLENBQUM7O1FBZ0QzQixpQkFBaUI7SUFDckIsQ0FBQztJQS9DRyw0QkFBNEI7SUFFNUIsdUJBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCxzQkFBSyxHQUFMO0lBRUEsQ0FBQztJQUVELHFCQUFJLEdBQUosVUFBSyxJQUFJLEVBQUMsSUFBSTtRQUNWLElBQUcsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDL0MsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hHLHlGQUF5RjtJQUU3RixDQUFDO0lBRUQsdUJBQU0sR0FBTixVQUFPLE1BQU07UUFBYixpQkF5QkM7UUF4QkcsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUM7UUFDcEIsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtRQUNoQyx1QkFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEcseUZBQXlGO1FBQ3pGLElBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25ELElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEYsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNoRCxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN6QyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUN2QixLQUFLLEVBQUUsQ0FBQztZQUVULHVGQUF1RjtZQUN2RiwwQ0FBMEM7WUFDMUMseUJBQXlCO1lBQ3pCLE1BQU07WUFDTixVQUFVLENBQUM7Z0JBQ1AsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyRCxLQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixLQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDakMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7SUFDTCxDQUFDO0lBN0NEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7MENBQ0s7SUFMVixNQUFNO1FBRDFCLE9BQU87T0FDYSxNQUFNLENBc0QxQjtJQUFELGFBQUM7Q0F0REQsQUFzREMsQ0F0RG1DLEVBQUUsQ0FBQyxTQUFTLEdBc0QvQztrQkF0RG9CLE1BQU0iLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZyZWV6ZSBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgX2luc3RhbmNlOiBhbnk7XHJcbiAgICB0aW1lOiBudW1iZXIgPSA2MDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTWF0ZXJpYWwpXHJcbiAgICBmcmVlemU6IGNjLk1hdGVyaWFsID0gbnVsbDtcclxuXHJcbiAgICAvLyBtYXBJbmZvOiBudW1iZXJbXVtdID0gW107XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuXHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCh0aW1lLHR5cGUpe1xyXG4gICAgICAgIGlmKHRpbWUpIHRoaXMudGltZSA9IHRpbWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKHRoaXMudGltZSw0MCwyNSxcImljZV9cIix0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLGZhbHNlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy50aW1lLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJlZHVjZShudW1iZXIpe1xyXG4gICAgICAgIHRoaXMudGltZSAtPSBudW1iZXI7XHJcbiAgICAgICAgaWYodGhpcy50aW1lIDw9IDApIHRoaXMudGltZSA9IDBcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyh0aGlzLnRpbWUsNDAsMjUsXCJpY2VfXCIsdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKSxmYWxzZSk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMudGltZS50b1N0cmluZygpO1xyXG4gICAgICAgIGlmKHRoaXMudGltZSA8PSAwKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYmluZ2t1YWlcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgY29uc3Qgc2tlbGV0b24gPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJiaW5na3VhaVwiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xyXG4gICAgICAgICAgICBza2VsZXRvbi5zZXRBbmltYXRpb24oMSxcImJpbmdrdWFpXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikpXHJcbiAgICAgICAgICAgIC50bygwLjUsIHsgb3BhY2l0eTogMCB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc2V0TWF0ZXJpYWwoMCx0aGlzLmZyZWV6ZSk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5jaGlsZHJlbi5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgZWxlbWVudC5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzZXRGcmVlemUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucmVtb3ZlRnJvbVBhcmVudCgpO1xyXG4gICAgICAgICAgICB9LCA2MDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= //------QC-SOURCE-SPLIT------ (function() { @@ -11691,725 +11058,6 @@ cc._RF.pop(); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lU2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsSUFBaUIsV0FBVyxDQXlxQzNCO0FBenFDRCxXQUFpQixXQUFXO0lBWXhCLFNBQWdCLFFBQVE7UUFDcEIsWUFBWTtRQUNaLE9BQU8sTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUM7SUFDekQsQ0FBQztJQUhlLG9CQUFRLFdBR3ZCLENBQUE7SUFFRCxTQUFnQixXQUFXO1FBQ3ZCLFlBQVk7UUFDWixPQUFPLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDO0lBQ3pELENBQUM7SUFIZSx1QkFBVyxjQUcxQixDQUFBO0lBR0QsU0FBUyxhQUFhO1FBQ2xCLElBQUksR0FBUSxDQUFDO1FBQ2IsSUFBSSxRQUFRLEVBQUUsRUFBRTtZQUNaLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7YUFBTSxJQUFJLFdBQVcsRUFBRSxFQUFFO1lBQ3RCLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7UUFFRCxJQUFJLElBQUksR0FBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzFDLElBQUksR0FBRyxFQUFFO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztTQUNsQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNIO1FBUUksd0JBQVksS0FBYTtZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtB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ZWMsY0FBVSxHQUFXLElBQUksQ0FBQztRQUMxQix1QkFBbUIsR0FBVyxJQUFJLENBQUM7UUFDbkMsK0JBQTJCLEdBQVksS0FBSyxDQUFDO1FBQzdDLGFBQVMsR0FBUSxJQUFJLENBQUM7UUFDdEIsT0FBRyxHQUFRLElBQUksQ0FBQztRQXllbkMsVUFBQztLQTllRCxBQThlQyxJQUFBO0lBOWVZLGVBQUcsTUE4ZWYsQ0FBQTtBQUVMLENBQUMsRUF6cUNnQixXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQXlxQzNCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIOWwj+a4uOaIj+W5s+WPsFNES+W3peWFt+Wwgeijhe+8jOebruWJjeWPquaUr+aMgeW+ruS/oeWSjOaKlumfs+W5s+WPsFxyXG4gKi9cclxuZXhwb3J0IG5hbWVzcGFjZSBNaW5pR2FtZVNkayB7XHJcblxyXG4gICAgaW50ZXJmYWNlIElTaXplIHtcclxuICAgICAgICB3aWR0aDogbnVtYmVyO1xyXG4gICAgICAgIGhlaWdodDogbnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBpbnRlcmZhY2UgSVBvc2l0aW9uIHtcclxuICAgICAgICB0b3A6IG51bWJlcjtcclxuICAgICAgICBsZWZ0OiBudW1iZXI7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzV2VjaGF0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHJldHVybiB3aW5kb3cud3ggIT09IG51bGwgJiYgd2luZG93Lnd4ICE9PSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzQnl0ZWRhbmNlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHJldHVybiB3aW5kb3cudHQgIT09IG51bGwgJiYgd2luZG93LnR0ICE9PSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFN5c1dpblNpemUoKTogSVNpemUge1xyXG4gICAgICAgIGxldCBzeXM6IGFueTtcclxuICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHN5cyA9IHd4LmdldFN5c3RlbUluZm9TeW5jKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgc3lzID0gdHQuZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzaXplOiBJU2l6ZSA9IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9O1xyXG4gICAgICAgIGlmIChzeXMpIHtcclxuICAgICAgICAgICAgc2l6ZS53aWR0aCA9IHN5cy53aW5kb3dXaWR0aDtcclxuICAgICAgICAgICAgc2l6ZS5oZWlnaHQgPSBzeXMud2luZG93SGVpZ2h0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmj5LlsY/lub/lkYrjgILlvq7kv6Hmipbpn7Ppg73mlK/mjIHvvIFcclxuICAgICAqL1xyXG4gICAgY2xhc3MgQURJbnRlcnN0aXRpYWwge1xyXG4gICAgICAgIHByaXZhdGUgX2FkVWlkOiBzdHJpbmc7XHJcbiAgICAgICAgcHJpdmF0ZSBfaW50ZXJzdGl0aWFsOiBhbnk7XHJcblxyXG4gICAgICAgIGdldCBhZHVpZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3RydWN0b3IoYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICB0aGlzLl9hZFVpZCA9IGFkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2hvdygpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSAmJiAhd3guY3JlYXRlSW50ZXJzdGl0aWFsQWQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybignd2VjaGF0IHVuc3VwcG9ydCBpbnRlcnN0aXRpYWwgQUQhJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpICYmICF0dC5jcmVhdGVJbnRlcnN0aXRpYWxBZCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdieXRlZGFuY2UgdW5zdXBwb3J0IGludGVyc3RpdGlhbCBBRCEnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5faW50ZXJzdGl0aWFsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwubG9hZCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gd3guY3JlYXRlSW50ZXJzdGl0aWFsQWQoeyBhZFVuaXRJZDogdGhpcy5fYWRVaWQgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gdHQuY3JlYXRlSW50ZXJzdGl0aWFsQWQoeyBhZFVuaXRJZDogdGhpcy5fYWRVaWQgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsPy5vbkxvYWQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2FkIGludGVyc3RpdGlhbCBhZCBzdWNjZXNzJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsLnNob3coKS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2NhdGNoIGludGVyc3RpdGlhbCBhZCBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsPy5vbkVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdpbnRlcnN0aXRpYWwgYWQgb24gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRlc3RvcnkoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8uZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGFzcyBBREJhbm5lciB7XHJcbiAgICAgICAgcHJpdmF0ZSBfYWRVaWQ6IHN0cmluZztcclxuICAgICAgICBwcml2YXRlIF9iYW5uZXI6IGFueTtcclxuXHJcbiAgICAgICAgZ2V0IGFkdWlkKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWRVaWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmipbpn7Plkozlvq7kv6Hpg73mlK/mjIFcclxuICAgICAgICAgKiDmqKrluYXlub/lkYrjgILpooTkvLDlrr3luqbpu5jorqTkuLozMDDvvIzpooTkvLDpq5jluqbkuLoxNDDjgILlpoLmnpzkvaDkuI3noa7lrprlsLHmjInpu5jorqTlgLzmnaXjgIJcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGKVUlE77yM5ZCO56uv6YWN572uXHJcbiAgICAgICAgICogQHBhcmFtIGlzVG9wIOaYr+WQpuWcqOWxj+W5lemhtumDqOWxleekuuOAguWGhemDqOS8muiHquWKqOWxheS4reiuoeeul+S9jee9ruOAglxyXG4gICAgICAgICAqIEBwYXJhbSBiYW5uZXJXaWR0aCDmqKrluYXlub/lkYrnmoTpooTkvLDlrr3luqbjgILpu5jorqQzMDBcclxuICAgICAgICAgKiBAcGFyYW0gYXV0b1Nob3cg5bm/5ZGK5Yqg6L295a6M5oiQ5ZCO5piv5ZCm56uL5Yi75pi+56S677yM6buY6K6k5Li65LiN5pi+56S6XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY29uc3RydWN0b3IoYWRVaWQ6IHN0cmluZywgcGFyYW06IGJvb2xlYW4gfCBJUG9zaXRpb24sIGJhbm5lcldpZHRoOiBudW1iZXIgPSAzMDAsIGF1dG9TaG93OiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGUoYXV0b1Nob3csIGJhbm5lcldpZHRoLCBwYXJhbSk7IC8vIOm7mOiupDMwMOavlOi+g+WQiOmAglxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHJpdmF0ZSBjcmVhdGUoYXV0b1Nob3c6IGJvb2xlYW4sIGJhbm5lcldpZHRoOiBudW1iZXIsIHBhcmFtOiBib29sZWFuIHwgSVBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNXZWNoYXQoKSAmJiAhaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XHJcblxyXG4gICAgICAgICAgICBsZXQgd2luU2l6ZSA9IGdldFN5c1dpblNpemUoKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBoZWlnaHQgPSBiYW5uZXJXaWR0aCAqIDAuNDtcclxuICAgICAgICAgICAgbGV0IHRvcCA9IDAsIGxlZnQgPSAwO1xyXG5cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgICAgIGxlZnQgPSAod2luU2l6ZS53aWR0aCAtIGJhbm5lcldpZHRoKSAvIDJcclxuICAgICAgICAgICAgICAgIHRvcCA9IHBhcmFtID8gNSA6ICh3aW5TaXplLmhlaWdodCAtIGhlaWdodCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0ID0gcGFyYW0ubGVmdDtcclxuICAgICAgICAgICAgICAgIHRvcCA9IHBhcmFtLnRvcDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgICAgIGFkVW5pdElkOiB0aGlzLl9hZFVpZCxcclxuICAgICAgICAgICAgICAgIGFkSW50ZXJ2YWxzOiAzMCwvLyDoh6rliqjliLfmlrDpopHnjofkuI3og73lsI/kuo4zMOenklxyXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgbGVmdDogbGVmdCwgdG9wOiB0b3AsIHdpZHRoOiBiYW5uZXJXaWR0aCB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSB3eC5jcmVhdGVCYW5uZXJBZChwYXJhbXMpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Jhbm5lciA9IHR0LmNyZWF0ZUJhbm5lckFkKHBhcmFtcyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/Lm9uRXJyb3IoKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnYWQgYmFubmVyIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5vbkxvYWQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgYXV0b1Nob3cgJiYgdGhpcy5fYmFubmVyLnNob3coKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzaG93KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LnNob3coKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGhpZGUoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uaGlkZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVzdHJveSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsYXNzIEFEQ3VzdG9tIHtcclxuICAgICAgICBwcml2YXRlIF9hZFVpZDogc3RyaW5nO1xyXG4gICAgICAgIHByaXZhdGUgX2FkQ3VzdG9tOiBhbnk7XHJcblxyXG4gICAgICAgIGdldCBhZHVpZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkVWlkO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlLHkuo7ljp/nlJ/mqKHmnb/lub/lkYrlnKjlvq7kv6HmnI3liqHlkI7nq6/lj6/ku6XlrprliLblrr3luqblpKflsI/vvIzkuKrmlbDvvIznvKnmlL7mr5TkvovnrYnvvIzmiYDku6XkvY3nva7osIPmlbTopoHmoLnmja7orr7nva7nmoTlrr3luqbmnaXlrprjgILmipbpn7PkuI3mlK/mjIHvvIFcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGKVUlE77yM5ZCO56uv6YWN572uXHJcbiAgICAgICAgICogQHBhcmFtIHRvcCDku47lt6bkuIrop5LlvIDlp4vvvIzot53nprvlsY/luZXpobbpg6jnmoTot53nprvjgILms6jmhI/vvJrov5nkuKrmlbDmja7kuLrorr7lpIflsY/luZXlrr3luqZ3aWR0aOOAguWmguaenOmcgOimgeiOt+WPluWxj+W5leeahOWDj+e0oO+8jOmcgOimgeS5mOS7peiuvuWkh+WDj+e0oOavlFBpeGVsLVJhdGlv77yM5L6L5aaCaVBob25lIDEzIFByb+eahFBpeGVsLVJhdGlv5Li6M++8jOWDj+e0oOS4uldpZHRoKjPjgIJcclxuICAgICAgICAgKiBAcGFyYW0gbGVmdCDku47lt6bkuIrop5LlvIDlp4vvvIzot53nprvlsY/luZXmnIDlt6bovrnnmoTot53nprvjgILms6jmhI/vvJrov5nkuKrmlbDmja7kuLrorr7lpIflsY/luZXlrr3luqZ3aWR0aOOAguWmguaenOmcgOimgeiOt+WPluWxj+W5leeahOWDj+e0oO+8jOmcgOimgeS5mOS7peiuvuWkh+WDj+e0oOavlFBpeGVsLVJhdGlv77yM5L6L5aaCaVBob25lIDEzIFByb+eahFBpeGVsLVJhdGlv5Li6M++8jOWDj+e0oOS4uldpZHRoKjPjgIJcclxuICAgICAgICAgKiBAcGFyYW0gc2NhbGUg5Y6f55Sf5qih5p2/5bm/5ZGK55qE5bC65a+477yM6buY6K6k5Li6Me+8jOWNszEwMCXjgILmraTlgLzlnKjlvq7kv6HmnI3liqHlkI7nq6/lub/lkYrkuK3ojrflvpfvvIzpu5jorqTkuLoxMDAl77yM55uu5YmN5pyJMTAwJe+8jDkwJe+8jDgwJeS4ieenje+8jOS4gOiIrOaDheWGteS4jeeUqOS/ruaUueOAguiLpeacieS/ruaUue+8jOiusOW+l+S8oOWFpeWAvO+8jOS+i+WmgjkwJeWwseS8oOWFpTAuOeOAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcsIHRvcDogbnVtYmVyID0gMCwgbGVmdDogbnVtYmVyID0gMCwgc2NhbGU6IG51bWJlciA9IDEuMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZFVpZCA9IGFkVWlkO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUN1c3RvbUFkKHRvcCwgbGVmdCwgc2NhbGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHJpdmF0ZSBjcmVhdGVDdXN0b21BZCh0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyLCBzY2FsZTogbnVtYmVyKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNXZWNoYXQoKSkgeyAvLyBvbmx5IHdlY2hhdCBzdXBwb3J0IGN1c3RvbSBhZFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ09ubHkgd2VjaGF0IHN1cHBvcnQgQ3VzdG9tIEFkJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAvLyDljp/nlJ/mqKHmnb815Liq5bqU55So5a695bqm5Li6Mzc177yM6Iul6K6+572u5LqG57yp5pS+5q+U5L6L77yM5YiZ5a695bqm5Lmf6ZyA6KaB6K6+572uXHJcbiAgICAgICAgICAgIC8vIGxldCB3aWR0aCA9IDM3NSAqIHRoaXMuX3NjYWxlO1xyXG4gICAgICAgICAgICAvLyBsZXQgbmV3TGVmdCA9IChzeXMud2luZG93V2lkdGggLSB3aWR0aCkgLyAyO1xyXG4gICAgICAgICAgICAvLyBsZXQgbmV3VG9wID0gc3lzLndpbmRvd0hlaWdodCAvIDI7IC8vIDEyMOaYr+mihOS8sOmrmOW6plxyXG5cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbSA9IHd4LmNyZWF0ZUN1c3RvbUFkKHtcclxuICAgICAgICAgICAgICAgIGFkVW5pdElkOiB0aGlzLl9hZFVpZCxcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgbGVmdDogbGVmdCwgdG9wOiB0b3AsIGZpeGVkOiB0cnVlIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbT8ub25FcnJvcigoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdhZCBjdXN0b20gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNob3coKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FkQ3VzdG9tPy5zaG93KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaWRlKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbT8uaGlkZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVzdHJveSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20/LmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6KeG6aKR5bm/5ZGK55So5oi354K55Ye76KGM5Li657uT5p6cXHJcbiAgICAgKi9cclxuICAgIGV4cG9ydCBlbnVtIEVBZFZpZGVvUmVzdWx0IHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlKjmiLfnnIvlrozkuoblub/lkYrvvIzmuLjmiI/lj6/lj5HmlL7lpZblirHjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBBQ0NFUFQsXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOeUqOaIt+S4remAlOWFs+mXreS6huW5v+WRiu+8jOWNs+acqueci+WujOeKtuaAgeOAguS4jeWPr+WPkeaUvuWlluWKseOAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIFJFSkVDVCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5bm/5ZGK57uE5Lu25YaF6YOo5Y+R55Sf5LqG6ZSZ6K+v44CC5LiN5Y+v5Y+R5pS+5aWW5Yqx44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgRVJST1IsXHJcbiAgICB9XHJcblxyXG4gICAgY2xhc3MgQURWaWRlbyB7XHJcbiAgICAgICAgcHJpdmF0ZSBfYWRVaWQ6IHN0cmluZztcclxuICAgICAgICBwcml2YXRlIF9hZFZpZGVvOiBhbnkgPSBudWxsO1xyXG5cclxuICAgICAgICBnZXQgYWR1aWQoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOeUseS6juW+ruS/oeWSjOaKlumfs+inhumikeW5v+WRiuacuuWItuS4jeWQjO+8jOW+ruS/oeWPr+S7peeci+eahOinhumikeW5v+WRiuS4quaVsOWPquaciTDlkowx5Liq77yM5oqW6Z+z5bmz5Y+w5YiZ5Y+v5Lul55yLMH5tYXhWaWRlb0NvdW50XHJcbiAgICAgICAgICogQHBhcmFtIG9uUmVzdWx0IOS4pOS4quWPguaVsO+8muesrOS4gOS4qnJlc+aYr0VBZFZpZGVvUmVzdWx05a6a5LmJ77yM56ys5LqMY291bnTmmK/nlKjmiLfnnIvkuoblpJrlsJHkuKrop4bpopHlub/lkYrjgIJcclxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IG9uUmVzdWx055qE5oul5pyJ6ICFXHJcbiAgICAgICAgICogQHBhcmFtIG1heFZpZGVvQ291bnQg5Y+v5Lul6L+e57ut55yL5pyA5aSn6KeG6aKR5Liq5pWw77yM5Y+v5pyA5aSn5YyW5ZWG5Lia5pWI546H44CC6buY6K6k5Li6M+S4quOAglxyXG4gICAgICAgICAqIEByZXR1cm5zIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHNob3cob25SZXN1bHQ6IChyZXM6IEVBZFZpZGVvUmVzdWx0LCBjb3VudDogbnVtYmVyKSA9PiB2b2lkLCB0YXJnZXQ/OiBhbnksIG1heFZpZGVvQ291bnQ6IG51bWJlciA9IDMpOiB2b2lkIHtcclxuICAgICAgICAgICAgbGV0IGNhbGxiYWNrID0gKHN0YXRlOiBFQWRWaWRlb1Jlc3VsdCwgY291bnQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBzdGF0ZSwgY291bnQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkgJiYgIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LkFDQ0VQVCwgMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IG9uQWRWaWRlb0Nsb3NlZCA9IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ub2ZmQ2xvc2Uob25BZFZpZGVvQ2xvc2VkKTtcclxuICAgICAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuaXNFbmRlZCB8fCByZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5BQ0NFUFQsIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LlJFSkVDVCwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlc0NvbnZlcnRlZCA9IHJlcyBhcyB7IGlzRW5kZWQ6IGJvb2xlYW4sIGNvdW50OiBudW1iZXIgfTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzQ29udmVydGVkICYmIHJlc0NvbnZlcnRlZC5jb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuQUNDRVBULCByZXNDb252ZXJ0ZWQuY291bnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LlJFSkVDVCwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vZmZDbG9zZShvbkFkVmlkZW9DbG9zZWQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8gPSB3eC5jcmVhdGVSZXdhcmRlZFZpZGVvQWQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGFkVW5pdElkOiB0aGlzLl9hZFVpZFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbyA9IHR0LmNyZWF0ZVJld2FyZGVkVmlkZW9BZCh7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRVbml0SWQ6IHRoaXMuX2FkVWlkLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpdG9uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpdG9uUmV3YXJkTXNnOiBbJ+WkmjHmrKHlpZblirEnLCAn5YaN5aSa5LiA5qyh5aWW5YqxJywgJ+WGjeWkmuS4gOasoeWlluWKsSddLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpdG9uUmV3YXJkVGltZXM6IG1heFZpZGVvQ291bnQsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8gPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ub25Mb2FkKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBZCBsb2FkIHN1Y2Nlc3MnKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vbkVycm9yKChlcnI6IHsgZXJyTXNnOiBzdHJpbmcsIGVyckNvZGU6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQWQgdmlkZW8gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LkVSUk9SLCAwKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vbkNsb3NlKG9uQWRWaWRlb0Nsb3NlZCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5zaG93KCkuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ubG9hZCgpLnRoZW4oKCkgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5zaG93KCkpLmNhdGNoKChlcnI6IHsgZXJyTXNnOiBzdHJpbmcsIGVyckNvZGU6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDYXRjaCB2aWRlbyBhZCBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5FUlJPUiwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVzdG9yeSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8uZGVzdG9yeSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgZW51bSBFQWRCYW5uZXJMb2NhdGlvbiB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5bGP5bmV6aG26YOoXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgVE9QLFxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlsY/luZXlupXpg6hcclxuICAgICAgICAgKi9cclxuICAgICAgICBCT1RUT00sXHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIEFkdmVydE1hbmFnZXIge1xyXG5cclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IEFkdmVydE1hbmFnZXI7XHJcblxyXG4gICAgICAgIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogQWR2ZXJ0TWFuYWdlciB7XHJcbiAgICAgICAgICAgIGlmICghQWR2ZXJ0TWFuYWdlci5faW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgICAgIEFkdmVydE1hbmFnZXIuX2luc3RhbmNlID0gbmV3IEFkdmVydE1hbmFnZXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gQWR2ZXJ0TWFuYWdlci5faW5zdGFuY2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwcml2YXRlIF92aWRlbzogQURWaWRlbztcclxuICAgICAgICBwcml2YXRlIF9pbnRlcnN0aXRpYWw6IEFESW50ZXJzdGl0aWFsO1xyXG4gICAgICAgIHByaXZhdGUgX2Jhbm5lcjogQURCYW5uZXI7XHJcbiAgICAgICAgcHJpdmF0ZSBfY3VzdG9tczogUmVjb3JkPHN0cmluZywgQURDdXN0b20+ID0ge307XHJcblxyXG4gICAgICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6aKE5Yqg6L295qiq5bmF5bm/5ZGK77yM5LiN5Lya5pi+56S644CC5Y+q5pyJ5L2g5Zyo6LCD55Soc2hvd0Jhbm5lcuaXtuaJjeS8muaYvuekuuOAglxyXG4gICAgICAgICAqIOWPr+mHjeWkjeiwg+eUqO+8jOS9huaYr+S8mumUgOavgeS4iuS4gOasoeeahOWunuS+i+OAguS4gOiIrOaDheWGte+8jOWFqOWxgOacieS4gOS4quWwseihjOS6hu+8jOWkquWkmuWNoOeUqOWGheWtmO+8jOiAjOS4lOayoeW/heimgeOAglxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYpVSURcclxuICAgICAgICAgKiBAcGFyYW0gbG9jYXRpb24g5L2N572u5pyJ5Lik56eN5oOF5Ya177yaMeOAgeWPr+S7peS8oOWFpeaemuS4vuWAvO+8jOm7mOiupOS4iuaWuTsgMuOAgeWPr+S7peiHquWumuS5ieS9jee9ruS8oOWFpUlQb3NpdGlvbu+8jOazqOaEj0lQb3NpdGlvbuS4reeahHRvcOWSjGxlZnTot5/lubPlj7DnmoR0b3AsbGVmdOaYr+S4gOiHtO+8iOayoeacieS5mOS7peiuvuWkh+WDj+e0oOavlHJhdGlv77yJ77yM6ZyA6KaB5byA5Y+R6ICF6Ieq5bex6LCD6K+V5L2N572uXHJcbiAgICAgICAgICogQHBhcmFtIHNjYWxlIOm7mOiupOS4uui3n+Wxj+W5leS4gOagt+eahOWuveW6pu+8jOWPr+S7pemAmui/h+iuvue9rue8qeaUvuavlOS+i+adpeiwg+aVtOWkp+Wwj+OAguW9k+eEtu+8jOW5s+WPsOacieinhOWumuacgOWkp+aIluacgOWwj+WuveW6pu+8jOWHveaVsOWGhemDqOS8muiHquWKqOiuoeeul+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBsb2FkQmFubmVyKGFkVWlkOiBzdHJpbmcsIGxvY2F0aW9uOiBFQWRCYW5uZXJMb2NhdGlvbiB8IElQb3NpdGlvbiA9IEVBZEJhbm5lckxvY2F0aW9uLlRPUCwgc2NhbGU6IG51bWJlciA9IDEuMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgbGV0IHNpemU6IElTaXplID0gZ2V0U3lzV2luU2l6ZSgpO1xyXG4gICAgICAgICAgICAvLyDlvZMgc3R5bGUud2lkdGgg5bCP5LqOIDMwMCDml7bvvIzkvJrlj5bkvZwgMzAw44CCIOW9kyBzdHlsZS53aWR0aCDlpKfkuo7lsY/luZXlrr3luqbml7bvvIzkvJrlj5bkvZzlsY/luZXlrr3luqbjgIJcclxuICAgICAgICAgICAgbGV0IHdpZHRoID0gc2l6ZS53aWR0aCAqIHNjYWxlO1xyXG4gICAgICAgICAgICB3aWR0aCA9IHdpZHRoIDwgMzAwID8gMzAwIDogd2lkdGg7IC8vIOacgOWwj+WAvOefq+ato1xyXG4gICAgICAgICAgICB3aWR0aCA9IHdpZHRoID4gc2l6ZS53aWR0aCA/IHNpemUud2lkdGggOiB3aWR0aDsgLy/mnIDlpKflgLznn6vmraNcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gdHlwZW9mIGxvY2F0aW9uID09PSAnbnVtYmVyJyA/IG5ldyBBREJhbm5lcihhZFVpZCwgbG9jYXRpb24gPT09IEVBZEJhbm5lckxvY2F0aW9uLlRPUCwgd2lkdGgsIGZhbHNlKSA6IG5ldyBBREJhbm5lcihhZFVpZCwgbG9jYXRpb24sIHdpZHRoLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmmL7npLrmqKrluYXlub/lkYpcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgc2hvd0Jhbm5lcigpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2Jhbm5lcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyLnNob3coKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignTWluaUdhbWVTREs6IGJhbm5lciBpcyBudWxsLCB5b3UgbXVzdCBjYWxsIGxvYWRCYW5uZXIoLi4uKSBmaXJzdCEnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6ZqQ6JeP5qiq5bmF5bm/5ZGKXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGhpZGVCYW5uZXIoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uaGlkZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5by55Ye65o+S5bGP5bm/5ZGKXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiuWNleWFg2lkXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHNob3dJbnRlcnN0aXRpYWwoYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5faW50ZXJzdGl0aWFsICYmIHRoaXMuX2ludGVyc3RpdGlhbC5hZHVpZCA9PT0gYWRVaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbC5zaG93KCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWw/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IG5ldyBBREludGVyc3RpdGlhbChhZFVpZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwuc2hvdygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDliqDovb3ljp/nlJ/mqKHmnb/lub/lkYrvvIzkuI3kvJrmmL7npLrjgILlj6rmnInkvaDlnKjosIPnlKhzaG93Q3VzdG9t5pe25omN5Lya5pi+56S644CCXHJcbiAgICAgICAgICog55Sx5LqO5Y6f55Sf5qih5p2/5bm/5ZGK5Zyo5b6u5L+h5pyN5Yqh5ZCO56uv5Y+v5Lul5a6a5Yi25a695bqm5aSn5bCP77yM5Liq5pWw77yM57yp5pS+5q+U5L6L562J77yM5omA5Lul5L2N572u6LCD5pW06KaB5qC55o2u6K6+572u55qE5a695bqm5p2l5a6a44CC5oqW6Z+z5LiN5pSv5oyB5pys5Ye95pWw77yM5Lya6LCD55So5peg5pWI77yBXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiklEXHJcbiAgICAgICAgICogQHBhcmFtIGxvY2F0aW9uIOS9jee9ruacieS4pOenjeaDheWGte+8mjHjgIHlj6/ku6XkvKDlhaXmnprkuL7lgLzvvIzpu5jorqTkuIrmlrk7IDLjgIHlj6/ku6Xoh6rlrprkuYnkvY3nva7kvKDlhaVJUG9zaXRpb27vvIzms6jmhI9JUG9zaXRpb27kuK3nmoR0b3DlkoxsZWZ06Lef5bmz5Y+w55qEdG9wLGxlZnTmmK/kuIDoh7TvvIjmsqHmnInkuZjku6Xorr7lpIflg4/ntKDmr5RyYXRpb++8ie+8jOmcgOimgeW8gOWPkeiAheiHquW3seiwg+ivleS9jee9rlxyXG4gICAgICAgICAqIEBwYXJhbSBzY2FsZSDnvKnmlL7mr5TkvovvvIzpu5jorqTmmK8x77yM5Y2z5LiN57yp5pS+44CC6L+Z5Liq57yp5pS+5bm25LiN5piv6Ieq5bex5aGr77yM6ICM5piv5qC55o2u5b6u5L+hTVDlkI7lj7DkvaDphY3nva7nmoTljp/nlJ/mqKHmnb/lub/lkYrnmoTnvKnmlL7mr5TkvovloavvvIznm67liY3mnIkxMDAl77yMOTAl77yMODAl5LiJ56eN77yM5LiA6Iis5oOF5Ya15LiN55So5L+u5pS544CC6Iul5pyJ5ZCO5Y+w5L+u5pS577yM6K6w5b6X5Lyg5YWl5YC877yM5L6L5aaCOTAl5bCx5Lyg5YWlMC4544CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGxvYWRDdXN0b20oYWRVaWQ6IHN0cmluZywgbG9jYXRpb246IElQb3NpdGlvbiA9IHsgdG9wOiAwLCBsZWZ0OiAwIH0sIHNjYWxlOiBudW1iZXIgPSAxKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2N1c3RvbT8uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLl9jdXN0b20gPSBuZXcgQURDdXN0b20oYWRVaWQsIGxvY2F0aW9uLnRvcCwgbG9jYXRpb24ubGVmdCwgc2NhbGUpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fY3VzdG9tc1thZFVpZF0pIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGAke2FkVWlkfSBoYXMgYmVlbiBsb2FkZWQuYCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbYWRVaWRdID0gbmV3IEFEQ3VzdG9tKGFkVWlkLCBsb2NhdGlvbi50b3AsIGxvY2F0aW9uLmxlZnQsIHNjYWxlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuuiHquWumuS5ieW5v+WRiuOAglxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYrnmoTllK/kuIDmoIfor4bnrKbjgILkvb/nlKjmraTmoIfor4bnrKbmnaXmn6Xmib7lkozmmL7npLrnibnlrprnmoToh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiDmraTmlrnms5XlsJ3or5XmoLnmja7mj5DkvpvnmoRhZFVpZOaYvuekuuS4gOS4quiHquWumuS5ieW5v+WRiuOAguWmguaenOe7meWumueahGFkVWlk5a+55bqU55qE6Ieq5a6a5LmJ5bm/5ZGK5bey5Yqg6L2977yMXHJcbiAgICAgICAgICog5YiZ6LCD55So6K+l5bm/5ZGK55qE5pi+56S65pa55rOV44CC5aaC5p6c5bm/5ZGK5pyq5Yqg6L2977yM5YiZ5Zyo5o6n5Yi25Y+w6L6T5Ye66K2m5ZGK5L+h5oGv44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHNob3dDdXN0b20oYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fY3VzdG9tc1thZFVpZF0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbYWRVaWRdLnNob3coKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgWW91IGhhdmUgbm90IGxvYWQgJHthZFVpZH0gb2YgQ3VzdG9tIEFELCBjYW4gbm90IHNob3chYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmakOiXj+aMh+WumueahOiHquWumuS5ieW5v+WRiuWNleWFg1xyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIOatpOaWueazleeUqOS6jumakOiXj+mAmui/h+W5v+WRiuWNleWFg+agh+ivhuespu+8iGFkVWlk77yJ5oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK44CC5aaC5p6c5oyH5a6a55qE5bm/5ZGK5Y2V5YWD5bey5Yqg6L295bm25pi+56S677yMXHJcbiAgICAgICAgICog5YiZ5bCG5YW26ZqQ6JeP77yb5aaC5p6c5bm/5ZGK5Y2V5YWD5pyq5Yqg6L2977yM5YiZ5Zyo5o6n5Yi25Y+w6L6T5Ye66K2m5ZGK5L+h5oGv44CCXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiuWNleWFg+agh+ivhuespu+8jOeUqOS6juWUr+S4gOagh+ivhuS4gOS4quiHquWumuS5ieW5v+WRiuWNleWFg+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBoaWRlQ3VzdG9tKGFkVWlkOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2N1c3RvbXNbYWRVaWRdKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jdXN0b21zW2FkVWlkXS5oaWRlKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFlvdSBoYXZlIG5vdCBsb2FkICR7YWRVaWR9IG9mIEN1c3RvbSBBRCwgY2FuIG5vdCBoaWRlIWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlLHkuo7lvq7kv6Hlkozmipbpn7Pop4bpopHlub/lkYrmnLrliLbkuI3lkIzvvIzlvq7kv6Hlj6/ku6XnnIvnmoTop4bpopHlub/lkYrkuKrmlbDlj6rmnIkw5ZKMMeS4qu+8jOaKlumfs+W5s+WPsOWImeWPr+S7peecizB+bWF4VmlkZW9Db3VudFxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYpJROOAguWmguaenOS4juS4iuS4gOasoVVJROS4jeWQjO+8jOWImeWGhemDqOS8mumHjeaWsOWIm+W7uuWunuS+i+OAguW8gOWPkeiAheWujOWFqOS4jeeUqOWFs+W/g+i/meS4que7huiKguOAglxyXG4gICAgICAgICAqIEBwYXJhbSBvblZpZGVvUmVzdWx0IOS4pOS4quWPguaVsO+8muesrOS4gOS4qnJlc+aYr0VBZFZpZGVvUmVzdWx05a6a5LmJ77yM56ys5LqMY291bnTmmK/nlKjmiLfnnIvkuoblpJrlsJHkuKrop4bpopHlub/lkYrjgIIgXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldCBvblZpZGVvUmVzdWx055qE5oul5pyJ6ICFXHJcbiAgICAgICAgICogQHBhcmFtIG1heFZpZGVvQ291bnQg5pyA5aSn6KeG6aKR5Liq5pWw44CC6buY6K6k5pivM++8jOS7heWvueaKlumfs+W5s+WPsOeUn+aViOOAguW+ruS/oeW5s+WPsOeci+WujOinhumikWNvdW5055qE57uT5p6c5rC46L+c5pivMeaIljBcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgc2hvd1ZpZGVvKGFkVWlkOiBzdHJpbmcsIG9uVmlkZW9SZXN1bHQ6IChyZXM6IEVBZFZpZGVvUmVzdWx0LCBjb3VudDogbnVtYmVyKSA9PiB2b2lkLCB0YXJnZXQ/OiBhbnksIG1heFZpZGVvQ291bnQ6IG51bWJlciA9IDMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX3ZpZGVvICYmIHRoaXMuX3ZpZGVvLmFkdWlkID09PSBhZFVpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8uc2hvdyhvblZpZGVvUmVzdWx0LCB0YXJnZXQsIG1heFZpZGVvQ291bnQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZGVvID0gbmV3IEFEVmlkZW8oYWRVaWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8uc2hvdyhvblZpZGVvUmVzdWx0LCB0YXJnZXQsIG1heFZpZGVvQ291bnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDplIDmr4HlhoXpg6jmiYDmnInlrp7kvovvvIzmuIXnqbrlhoXlrZhcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgZGVzdHJveUFsbCgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lciA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWw/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3ZpZGVvPy5kZXN0b3J5KCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZpZGVvID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9jdXN0b21zKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCB2YWwgaW4gdGhpcy5fY3VzdG9tcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbdmFsXT8uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3VzdG9tcyA9IHt9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBlbnVtIEVHYW1lQ2x1Ykljb24ge1xyXG4gICAgICAgIC8qKiDnu7/oibLlm77moIcgKi9cclxuICAgICAgICBHUkVFTiA9ICdncmVlbicsXHJcblxyXG4gICAgICAgIC8qKiDnuqLoibLlm77moIcgKi9cclxuICAgICAgICBXSElURSA9ICd3aGl0ZScsXHJcblxyXG4gICAgICAgIC8qKiDmnInpu5HoibLlnIbop5Log4zmma/nmoTnmb3oibLlm77moIcgKi9cclxuICAgICAgICBEQVJLID0gJ2RhcmsnLFxyXG5cclxuICAgICAgICAvKiog5pyJ55m96Imy5ZyG6KeS6IOM5pmv55qE57u/6Imy5Zu+5qCHICovXHJcbiAgICAgICAgTElHSFQgPSAnbGlnaHQnXHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIEdhbWVDbHViIHtcclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IEdhbWVDbHViO1xyXG5cclxuICAgICAgICBzdGF0aWMgZ2V0IGluc3RhbmNlKCk6IEdhbWVDbHViIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW5zdGFuY2UgPSBuZXcgR2FtZUNsdWIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwcml2YXRlIF9jbHViOiBhbnk7XHJcblxyXG4gICAgICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5Yib5bu65ri45oiP5ZyI5oyJ6ZKuXHJcbiAgICAgICAgICogQHBhcmFtIGljb24gXHJcbiAgICAgICAgICogQHBhcmFtIHBvc2l0aW9uIFxyXG4gICAgICAgICAqIEBwYXJhbSBzaXplIFxyXG4gICAgICAgICAqIEBwYXJhbSBvcGVuTGluayBcclxuICAgICAgICAgKi9cclxuICAgICAgICBjcmVhdGUoaWNvbjogRUdhbWVDbHViSWNvbiA9IEVHYW1lQ2x1Ykljb24uR1JFRU4sIHBvc2l0aW9uOiBJUG9zaXRpb24gPSB7IHRvcDogMCwgbGVmdDogMCB9LCBzaXplOiBJU2l6ZSA9IHsgd2lkdGg6IDQwLCBoZWlnaHQ6IDQwIH0sIG9wZW5MaW5rPzogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jbHViID0gd3guY3JlYXRlR2FtZUNsdWJCdXR0b24oe1xyXG4gICAgICAgICAgICAgICAgICAgIGljb246IGljb24sXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogcG9zaXRpb24ubGVmdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBwb3NpdGlvbi50b3AsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBzaXplLndpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHNpemUuaGVpZ2h0XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBvcGVubGluazogb3BlbkxpbmtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzaG93KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jbHViPy5zaG93KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaWRlKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jbHViPy5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZXN0b3J5KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jbHViPy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaMr+WKqOexu+Wei1xyXG4gICAgICovXHJcbiAgICBleHBvcnQgZW51bSBFVmlyYnJhdGVUeXBlIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnn63mjK/liqhcclxuICAgICAgICAgKi9cclxuICAgICAgICBTSE9SVCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6ZW/5oyv5YqoXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgTE9OR1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICog5oqW6Z+z5L6n6L655qCP5LiT5bGe5o6l5Y+jXHJcbiAgICAgKi9cclxuICAgIGV4cG9ydCBjbGFzcyBCeXRlZGFuY2VTaWRlYmFyIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmnKzmuLjmiI/lnKjmipbpn7Pnjq/looPkuIvlkK/liqjnm5HmjqfvvIzpnIDopoHmlL7lnKjlhajlsYDnjq/looPkuK3vvIzkv53or4Hog73nrKzkuIDml7bpl7TlkK/liqjjgILlm6DkuLrlj6/og73nm5HlkKzmipbpn7PlpLHotKXvvIjmipbpn7PlsI/muLjmiI/lrpjmlrnnmoTor7TmmI7vvInvvIFcclxuICAgICAgICAgKiBAcGFyYW0gb25SZXN1bHQg5YyF5ZCr5LiA5LiqYm9vbGVhbuWPguaVsOeahOWHveaVsFxyXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQg5LiK6L+w5Ye95pWw55qE5oul5pyJ6ICF77yM5aaC5p6c5piv57G755qE5oiQ5ZGY5Ye95pWw77yM6ZyA6KaB5Lyg5YWldGhpc+OAguaZrumAmuaIluWMv+WQjeWHveaVsOW/veeVpeWNs+WPr+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBsaXN0ZW5Gcm9tU2lkZWJhcihvblJlc3VsdDogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHZvaWQsIHRhcmdldD86IGFueSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgdHQub25TaG93KChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ29uU2hvdyBsYXVuY2ggcmVzOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLnNjZW5lID09PSAnMDIxMDM2Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2xhdW5jaCBmcm9tIHNpZGViYXInKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ05PVCBsYXVuY2ggZnJvbSBkb3V5aW4gc2lkZWJhciEnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIGxldCBvcHRpb25zID0gdHQuZ2V0TGF1bmNoT3B0aW9uc1N5bmMoKTtcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5zY2VuZSA9PT0gJzAyMTAzNicpIHtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOajgOa1i+aKlumfs+S+p+i+ueagj+aYr+WQpuWtmOWcqFxyXG4gICAgICAgICAqIEBwYXJhbSBvblJlc3VsdCDljIXlkKvkuIDkuKpib29sZWFu5Y+C5pWw55qE5Ye95pWwXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldCDkuIrov7Dlh73mlbDnmoTmi6XmnInogIXvvIzlpoLmnpzmmK/nsbvnmoTmiJDlkZjlh73mlbDvvIzpnIDopoHkvKDlhaV0aGlz44CC5pmu6YCa5oiW5Yy/5ZCN5Ye95pWw5b+955Wl5Y2z5Y+v44CCXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIGNoZWNrU2lkZUJhcihvblJlc3VsdDogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHZvaWQsIHRhcmdldD86IGFueSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgdHQuY2hlY2tTY2VuZSh7XHJcbiAgICAgICAgICAgICAgICBzY2VuZTogXCJzaWRlYmFyXCIsXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNoZWNrIHNjZW5lIHN1Y2Nlc3M6IFwiLCByZXMuaXNFeGlzdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCA8Ym9vbGVhbj5yZXMuaXNFeGlzdCk7XHJcblxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhaWw6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hlY2sgc2NlbmUgZmFpbDpcIiwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDot7PovazliLDmipbpn7PkvqfovrnmoI9cclxuICAgICAgICAgKiBAcGFyYW0gb25SZXN1bHQg5YyF5ZCr5LiA5LiqYm9vbGVhbuWPguaVsOeahOWHveaVsFxyXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQg5LiK6L+w5Ye95pWw55qE5oul5pyJ6ICF77yM5aaC5p6c5piv57G755qE5oiQ5ZGY5Ye95pWw77yM6ZyA6KaB5Lyg5YWldGhpc+OAguaZrumAmuaIluWMv+WQjeWHveaVsOW/veeVpeWNs+WPr+OAglxyXG4gICAgICAgICAqIEByZXR1cm5zIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBuYXZpZ2F0ZVRvU2lkZWJhcihvblJlc3VsdDogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHZvaWQsIHRhcmdldD86IGFueSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibm90IGRvdXlpbiBwbGF0Zm9ybSFcIik7XHJcbiAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0dC5uYXZpZ2F0ZVRvU2NlbmUoe1xyXG4gICAgICAgICAgICAgICAgc2NlbmU6IFwic2lkZWJhclwiLFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibmF2aWdhdGUgc3VjY2Vzc1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhaWw6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibmF2aWdhdGUgZmFpbGVkIHJlYXNvbjpcIiwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOW5s+WPsOW4uOeUqEFQSeWQiOmbhlxyXG4gICAgICovXHJcbiAgICBleHBvcnQgY2xhc3MgQVBJIHtcclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfbG9naW5Db2RlOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF9sb2dpbkFub255bW91c0NvZGU6IHN0cmluZyA9IG51bGw7XHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgX2hhc0luaXRXZWNoYXRDbG91ZEZ1bmN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgX3VzZXJJbmZvOiBhbnkgPSBudWxsO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF90YTogYW55ID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5YiG5LqrYXBw57uZ5pyL5Y+L77yM5b6u5L+h5bCP5ri45oiP5YiG5Lqr5piv5rKh5pyJb25TdWNjZXNz5Zue6LCD55qE44CCXHJcbiAgICAgICAgICogQHBhcmFtIHRpdGxlIOagh+mimFxyXG4gICAgICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDnu4boioLmj4/ov7Dkv6Hmga8gXHJcbiAgICAgICAgICogQHBhcmFtIGltYWdlVXJsIOWbvueJh+WcsOWdgFxyXG4gICAgICAgICAqIEBwYXJhbSBxdWVyeSDmn6Xor6Lkv6Hmga9cclxuICAgICAgICAgKiBAcGFyYW0gb25TdWNjZXNzIOaKlumfs+S8muWbnuiwg++8jOW+ruS/oeS4jeS8muWbnuiwg1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzaGFyZUFwcFRvRnJpZW5kcyh0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nID0gJycsIGltYWdlVXJsPzogc3RyaW5nLCBxdWVyeT86IHN0cmluZywgb25TdWNjZXNzPzogKCkgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB3eC5zaGFyZUFwcE1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlVXJsOiBpbWFnZVVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHF1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHNoYXJlIGZhaWxkOiAke2Vycn1gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdHQuc2hhcmVBcHBNZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VVcmw6IGltYWdlVXJsID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzaGFyZSBzdWNjZXNzOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2Vzcz8uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzaGFyZSBmYWlsOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuuaPkOekuuS/oeaBr1xyXG4gICAgICAgICAqIEBwYXJhbSB0aXRsZSDmoIfpophcclxuICAgICAgICAgKiBAcGFyYW0gZHVyYXRpb24g5pe26ZW/77yI5Y2V5L2N77ya56eS77yJXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIHNob3dUb2FzdCh0aXRsZTogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gMikge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ25vbmUnLFxyXG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbiAqIDUwMFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDorr7lpIfpnIfliqjmlYjmnpzvvIzpu5jorqTkuLrnn63pnIfliqjjgILms6jmhI/vvJrlj6/og73kuIDkupvmnLrlnovkuI3kvJrnlJ/mlYjvvIzlhbfkvZPnnIvlubPlj7DmlrnnmoTor7TmmI5cclxuICAgICAgICAgKiBAcGFyYW0gdHlwZSBNaW5pR2FtZVNkay5BUEkuRVZpcmJyYXRlVHlwZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyB2aWJyYXRlKHR5cGU6IEVWaXJicmF0ZVR5cGUgPSBFVmlyYnJhdGVUeXBlLlNIT1JUKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVWaXJicmF0ZVR5cGUuU0hPUlQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3eC52aWJyYXRlU2hvcnQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3M6JywgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGVTaG9ydCBmYWlsZWQnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVZpcmJyYXRlVHlwZS5MT05HOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgd3gudmlicmF0ZUxvbmcoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3MnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgdmlicmF0ZUxvbmcgZmFpbGVkYCwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVZpcmJyYXRlVHlwZS5TSE9SVDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR0LnZpYnJhdGVTaG9ydCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGUgc3VjY2VzczonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygndmlicmF0ZVNob3J0IGZhaWxlZCcsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFVmlyYnJhdGVUeXBlLkxPTkc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52aWJyYXRlTG9uZyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGUgc3VjY2VzcycsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGB2aWJyYXRlTG9uZyBmYWlsZWRgLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDph43lkK/lsI/muLjmiI9cclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgcmVib290KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5yZXN0YXJ0TWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3RhcnQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWw6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3RhcnQgZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHR0LnJlc3RhcnRNaW5pUHJvZ3JhbVN5bmMoKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJlc3RhcnRNaW5pUHJvZ3JhbVN5bmNgLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmAgOWHuuWwj+a4uOaIj1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBleGl0KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5leGl0TWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2V4aXQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZXhpdCBmYWlsZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR0LmV4aXRNaW5pUHJvZ3JhbSh7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImV4aXQgc3VjY2VzczpcIiwgcmVzPy5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJleGl0IGZhaWw6XCIsIHJlcz8uZXJyTXNnKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuui9rOWPkeaMiemSruOAgumAmuW4uOWcqOWImui/m+WFpea4uOaIj+eahOaXtuWAmeiwg+eUqOOAglxyXG4gICAgICAgICAqIOS4u+imgeaYr+aJk+W8gOW5s+WPsOKAnC4uLuKAnei/meS4quaMiemSrumHjOmdoueahOWIhuS6q+iPnOWNle+8jOS4gOiIrOm7mOiupOaYr+WFs+mXreeahO+8jOmcgOimgeiwg+eUqOi/meS4quWHveaVsOaJk+W8gOOAguWPr+S7peiuqeeUqOaIt+WIhuS6q+S9oOeahOa4uOaIj+WFpeWPo+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzaG93U2hhcmVNZW51KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5zaG93U2hhcmVNZW51KHtcclxuICAgICAgICAgICAgICAgICAgICB3aXRoU2hhcmVUaWNrZXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbWVudXM6IFsnc2hhcmVBcHBNZXNzYWdlJywgJ3NoYXJlVGltZWxpbmUnXSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4geyB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7IH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5b6u5L+h5bCP5ri45oiP77ya6Lez6L2s5Yiw5Y+m5aSW5LiA5qy+5bCP5ri45oiPXHJcbiAgICAgICAgICog5oqW6Z+z5bCP5ri45oiP77ya6Lez6L2s5Yiw5oyH5a6a55qE6KeG6aKR55WM6Z2iXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldElkIOW+ruS/oeWwj+a4uOaIj2FwcGlk5oiW6ICF6KeG6aKR55WM6Z2iXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIG5hdmlnYXRlVG8odGFyZ2V0SWQ6IHN0cmluZywgb25TdWNjZXNzPzogKCkgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3gubmF2aWdhdGVUb01pbmlQcm9ncmFtKHtcclxuICAgICAgICAgICAgICAgICAgICBhcHBJZDogdGFyZ2V0SWQsXHJcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFEYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbzogJ2JhcidcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGVudlZlcnNpb246ICdkZXZlbG9wJyxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2Vzcz8uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0dC5uYXZpZ2F0ZVRvVmlkZW9WaWV3KHtcclxuICAgICAgICAgICAgICAgICAgICB2aWRlb0lkOiB0YXJnZXRJZCxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25TdWNjZXNzPy4oKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWw6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImJ5dGVkYW5jZSBuYXZpZ2F0ZVRvVmlkZW9WaWV3IGZhaWxcIiwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlsI/muLjmiI/lubPlj7DnmbvlvZXlip/og73jgILlvq7kv6Hov5Tlm55jb2Rl77yM5oqW6Z+z6L+U5ZueY29kZeWSjGFub255bW91c0NvZGXjgILnlKjkuo7nmbvlvZXnmoTlh63or4HvvIzpnIDopoHmiorov5nkuKpjb2Rl5Lyg5Zue5L2g55qE5pyN5Yqh5Zmo56iL5bqP5Lit5Y676LCD55SoY29kZTJTZXNzaW9uXHJcbiAgICAgICAgICogQHBhcmFtIGNhbGxiYWNrIChjb2RlLCBhbm9ueW1vdXNDb2RlKSDnrKzkuIDkuKrlj4LmlbDkuLpjb2Rl77yM5b6u5L+h5ZKM5oqW6Z+z6YO95pSv5oyB77yb56ys5LqM5Liq5Y+C5pWw5Li65Yy/5ZCN6K6+5aSHSUTvvIzku4Xmipbpn7PmlK/mjIHvvIzlpLHotKXpg73ov5Tlm55udWxsXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIGxvZ2luKGNhbGxiYWNrOiAoY29kZTogc3RyaW5nLCBhbm9ueW1vdXNDb2RlOiBzdHJpbmcpID0+IHZvaWQpIHtcclxuICAgICAgICAgICAgbGV0IGxvZ2luUGxhdGZvcm0gPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHd4LmxvZ2luKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKHJlczogeyBjb2RlOiBhbnk7IGVyck1zZzogYW55OyB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmNvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQ29kZSA9IHJlcy5jb2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2dpbiBlcnJvcjonLCByZXMuZXJyTXNnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkNvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkFub255bW91c0NvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2xvZ2luIGZhaWwnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB0dC5sb2dpbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgbG9naW4gJHtyZXMuY29kZX0gJHtyZXMuYW5vbnltb3VzQ29kZX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Db2RlID0gcmVzLmNvZGU/LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkFub255bW91c0NvZGUgPSByZXMuYW5vbnltb3VzQ29kZT8udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2dpbiBlcnJvcjonLCByZXMuZXJyTXNnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgbG9naW4gZmFpbGAsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Db2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdub3QgbWluaSBnYW1lIHBsYXRmb3JtLCBsb2dpbiBjb2RlcyBhcmUgYWxsIG51bGwnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICBpZiAoIUFQSS5fbG9naW5Db2RlKSB7XHJcbiAgICAgICAgICAgICAgICBsb2dpblBsYXRmb3JtKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHd4LmNoZWNrU2Vzc2lvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBpcyB2YWxpZCwgdXNlIGN1cnJlbnQgY29kZTpgLCBBUEkuX2xvZ2luQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBleHBpcmVkYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpblBsYXRmb3JtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHR0LmNoZWNrU2Vzc2lvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBpcyB2YWxpZCwgdXNlciBjdXJyZW50IGNvZGU6ICR7QVBJLl9sb2dpbkNvZGV9LCAke0FQSS5fbG9naW5Bbm9ueW1vdXNDb2RlfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHNlc3Npb24gZXhwaXJlZGApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naW5QbGF0Zm9ybSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ25vdCBtaW5pIGdhbWUgcGxhdGZvcm0sIGxvZ2luIG51bGwnKTtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKG51bGwsIG51bGwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWwj+a4uOaIj+W5s+WPsOeZu+W9leWKn+iDveOAguW+ruS/oei/lOWbnmNvZGXvvIzmipbpn7Pov5Tlm55jb2Rl5ZKMYW5vbnltb3VzQ29kZeOAgueUqOS6jueZu+W9leeahOWHreivge+8jOmcgOimgeaKiui/meS4qmNvZGXkvKDlm57kvaDnmoTmnI3liqHlmajnqIvluo/kuK3ljrvosIPnlKhjb2RlMlNlc3Npb25cclxuICAgICAgICAgKiBAcGFyYW0gY2FsbGJhY2sgKGNvZGUsIGFub255bW91c0NvZGUpIOesrOS4gOS4quWPguaVsOS4umNvZGXvvIzlvq7kv6Hlkozmipbpn7Ppg73mlK/mjIHvvJvnrKzkuozkuKrlj4LmlbDkuLrljL/lkI3orr7lpIdJRO+8jOS7heaKlumfs+aUr+aMge+8jOWksei0pemDvei/lOWbnm51bGxcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgZ2V0VXNlckluZm8oY2FsbGJhY2s6ICh1c2VySW5mbzogYW55KSA9PiB2b2lkKSB7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0dC5nZXRVc2VySW5mbyh7XHJcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBBUEkuX3VzZXJJbmZvID0gcmVzO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEFQSS5fdXNlckluZm8pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhaWw6IChlcnI6IGFueSkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDosIPnlKjlvq7kv6HkupHlh73mlbDjgILnlLHkuo7lj4LmlbDpnIDopoHoh6rlrprkuYnvvIzmiYDku6XkuLphbnnvvIzpnIDopoHoh6rooYzop6Pph4rjgILlh73mlbDlj6rlrozmiJDpgJrpgZPlkozlpITnkIbkuIDlnLrnmoTkvZznlKhcclxuICAgICAgICAgKiBAcGFyYW0gY2FsbGJhY2sg6L+U5Zue5LqR5Ye95pWw6LCD55So57uT5p6c44CC6ZyA6KaB5qOA5p+l6L+U5Zue5Y+C5pWw5piv5ZCm5Li656m677yM5aSx6LSl55qE5pe25YCZ5Li656m6XHJcbiAgICAgICAgICogQHBhcmFtIG5hbWUg5LqR5Ye95pWw55qE5ZCN5a2XXHJcbiAgICAgICAgICogQHBhcmFtIGRhdGEg5LqR5Ye95pWw55qE5YaF5a65XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIGNhbGxXZWNoYXRDbG91ZEZ1bmN0aW9uKGNhbGxiYWNrOiAocmVzOiBhbnkpID0+IHZvaWQsIG5hbWU6IHN0cmluZywgZGF0YToge30pIHtcclxuICAgICAgICAgICAgaWYgKCFpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnTm90IHdlY2hhdCBwbGF0Zm9ybSwgbm90IHN1cHBvcnQgY2FsbFdlY2hhdENsb3VkRnVuY3Rpb24nKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5sb2dpbigoY29kZTogc3RyaW5nLCBhbm9ueW1vdXNDb2RlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghQVBJLl9oYXNJbml0V2VjaGF0Q2xvdWRGdW5jdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHd4LmNsb3VkLmluaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICBBUEkuX2hhc0luaXRXZWNoYXRDbG91ZEZ1bmN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKHJlczogYW55KSA9PiBjYWxsYmFjaz8uKHJlcyksXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3ZWNoYXQgY2xvdWQgZnVuY3Rpb24gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlrZjlgqjnlKjmiLfkv6Hmga/vvIzmlbDmja7ph4/kuI3og73lpKfjgILlj6/ku6XogIPomZHnlKjkuo7liIbmlbDmjpLooYzmppzjgILnlKjmiLfkuYvpl7Tlj6/lhbHkuqvmjpLooYzmlbDmja7jgIJcclxuICAgICAgICAgKiBAcGFyYW0ga2V5IFxyXG4gICAgICAgICAqIEBwYXJhbSB2YWx1ZSBcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgc2V0VXNlckNsb3VkU3RvcmFnZShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guc2V0VXNlckNsb3VkU3RvcmFnZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgS1ZEYXRhTGlzdDogW3sga2V5OiBrZXksIHZhbHVlOiB2YWx1ZSB9XSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiBjb25zb2xlLmxvZyhgc2V0IGNsb3VkIHN0b3JhZ2Ugc3VjY2Vzczoke2tleX0sIHZhbHVlOiR7dmFsdWV9YCksXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PiBjb25zb2xlLmxvZygnc2V0IGNsb3VkIHN0b3JhZ2UgZXJyb3I6JywgZXJyKVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0dC5zZXRVc2VyQ2xvdWRTdG9yYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICBLVkRhdGFMaXN0OiBbeyBrZXk6IGtleSwgdmFsdWU6IHZhbHVlLCB9XSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiBjb25zb2xlLmxvZyhgc2V0IGNsb3VkIHN0b3JhZ2Ugc3VjY2Vzczoke2tleX0sIHZhbHVlOiR7dmFsdWV9YCksXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PiBjb25zb2xlLmxvZygnc2V0IGNsb3VkIHN0b3JhZ2UgZXJyb3I6JywgZXJyKVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvKlxyXG4gICAgICAgICog5pWw5pWw5bmz5Y+w5Yid5aeL5YyW5Lul5Y+K55m75b2VXHJcbiAgICAgICAgKi9cclxuXHJcbiAgICAgICAgc3RhdGljIHNodXNodV9Jbml0KCl7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlvIDlp4vmjqXlhaXmlbDmlbDlubPlj7BcIik7XHJcbiAgICAgICAgICAgICAgICAvL2dldFdlY2hhdEdhbWVWZXJzaW9uXHJcbiAgICAgICAgICAgICAgICBsZXQgYXBwSWQgPSBcIjEyMTU5MTM3OGZjMTQyMzg5M2RlYjEyMDQxNDEzZWIzXCI7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGVzdCA9IGNjLmZ4LkdhbWVUb29sLmdldFdlY2hhdEdhbWVWZXJzaW9uKCk7XHJcbiAgICAgICAgICAgICAgICBpZih0ZXN0ID09IFwi5q2j5byP54mIXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgIGFwcElkID0gXCI4N2QxODk1OGNlYTE0NWYyOWQzMjY1NDcwZWNkMzQ4NlwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIGNvbmZpZyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBhcHBJZDogXCI3M2UxZWM2NTRmMTViNDdhMWE3MzU0ZmJhYmVjMDVhZFwiLCAvLyDpobnnm64gQVBQIElEXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwSWQ6YXBwSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyVXJsOiBcImh0dHBzOi8vZGF0YS5uaWthNGZ1bi5jb21cIiwgLy8g5LiK5oql5Zyw5Z2AXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b1RyYWNrOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcFNob3c6IHRydWUsIC8vIOiHquWKqOmHh+mbhiB0YV9tZ19zaG93XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcEhpZGU6IHRydWUgLy8g6Ieq5Yqo6YeH6ZuGIHRhX21nX2hpZGVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy8g5Yib5bu6IFRBIOWunuS+i1xyXG4gICAgICAgICAgICAgICAgQVBJLl90YSA9IG5ldyBUaGlua2luZ0FuYWx5dGljc0FQSShjb25maWcpO1xyXG4gICAgICAgICAgICAgICAgLy92YXIgZGV2aWNlSWQgPSBBUEkuX3RhLmdldERldmljZUlkKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgQVBJLl90YS5sb2dpbihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFwic3VjY2Vzc1wiO1xyXG4gICAgICAgICAgICAgICAgQVBJLnNodXNodV9UcmFjayhcImxvZ2luXCIscmVzdWx0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDliJ3lp4vljJZcclxuICAgICAgICAgICAgICAgIEFQSS5fdGEgLmluaXQoKTsgXHJcblxyXG4gICAgICAgICAgICAgICAgQVBJLnNodXNodV9TZXRTdXBlclByb3BlcnRpZXMoKTtcclxuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCLmlbDmlbDlubPlj7DliJ3lp4vljJbmiJDlip8hXCIpO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5UQS5jbGVhclN1cGVyUHJvcGVydGllcygpO1xyXG4gICAgICAgICAgICAgICAgLy/orr7nva7nlKjmiLflsZ7mgKdcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuVEEudXNlclNldCh7IHVzZXJuYW1lOiBcIuWkp+aguOahg1wiIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdGF0aWMgc2h1c2h1X3VzZXJTZXQodGltZSl7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLorr7nva7nlKjmiLfms6jlhozlsZ7mgKdcIik7XHJcbiAgICAgICAgICAgICAgICBBUEkuX3RhLnVzZXJTZXQoeyByZWdpc3Rlcl90aW1lOnRpbWV9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLypcclxuICAgICAgICAqIOaVsOaVsOW5s+WPsOiuvue9ruWKqOaAgeWFrOWFseWxnuaAp1xyXG4gICAgICAgICovXHJcblxyXG4gICAgICAgIHN0YXRpYyBzaHVzaHVfU2V0U3VwZXJQcm9wZXJ0aWVzKCl7XHJcbiAgICAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsICYmIEFQSS5fdGEpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZlcnNpb25EYXRhID0gXCIxLjNcIjtcclxuICAgICAgICAgICAgICAgIC8vIEFQSS5fdGEudXNlclNldE9uY2UoeyByZWdpc3Rlcl90aW1lOnRpbWV9KTtcclxuICAgICAgICAgICAgICAgIHZhciBzdXBlclByb3BlcnRpZXMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudF9sZXZlbCA6IChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwrMSksIC8v5b2T5YmN5YWz5Y2h562J57qnICBudW1iZXJcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2hlYWx0aDogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwLCAgICAgICAgLy/lvZPliY3kvZPlipvlgLxcclxuICAgICAgICAgICAgICAgICAgICB0bXBfY29pbiA6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLC8v5b2T5YmN6YeR5biBXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjogdmVyc2lvbkRhdGFcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBBUEkuX3RhLnNldFN1cGVyUHJvcGVydGllcyhzdXBlclByb3BlcnRpZXMpOy8v6K6+572u5YWs5YWx5LqL5Lu25bGe5oCnXHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3RhdGljIGdldFdlY2hhdEdhbWVWZXJzaW9uKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHd4IT09ICd1bmRlZmluZWQnICYmIHd4IT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFjY291bnRJbmZvID0gd3guZ2V0QWNjb3VudEluZm9TeW5jKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjb3VudEluZm8ubWluaVByb2dyYW0udmVyc2lvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLypcclxuICAgICAgICAqIOaVsOaVsOW5s+WPsOWFt+S9k+Wfi+eCuVxyXG4gICAgICAgICovXHJcblxyXG4gICAgICAgIHN0YXRpYyBzaHVzaHVfVHJhY2sobmFtZSwgZGF0YSwgY2FsbGJhY2s/OiAoc3VjY2VzczogYm9vbGVhbiwgZXJyb3I/OiBhbnkpID0+IHZvaWQpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQVBJLl90YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOWBh+iuviB0cmFjayDmlrnms5Xov5Tlm57kuIDkuKogUHJvbWlzZVxyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5fdGEudHJhY2soXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsIC8vIOS6i+S7tuWQjeensFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhIC8vIOS6i+S7tuWxnuaApyBcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufSJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/lq_collide_system/lq_collide.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'd2addiRqXVKQ4YEp6sK5d6R', 'lq_collide'); -// Script/lq_collide_system/lq_collide.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.LQCollide = void 0; -var ccclass = cc._decorator.ccclass; -var property = cc._decorator.property; -var requireComponent = cc._decorator.requireComponent; -var menu = cc._decorator.menu; -var Component = cc.Component; -var Enum = cc.Enum; -var Size = cc.Size; -var Vec2 = cc.Vec2; -var Graphics = cc.Graphics; -var Node = cc.Node; -var macro = cc.macro; -var Color = cc.Color; -var lq_const_1 = require("../lq_base/data/lq_const"); -var lq_collide_config_1 = require("./lq_collide_config"); -var lq_collide_system_1 = require("./lq_collide_system"); -var lq_data_1 = require("../lq_base/data/lq_data"); -var lq_collide_base_1 = require("./lq_collide_base"); -var lq_game_util_1 = require("../lq_base/util/lq_game_util"); -var Map_1 = require("../Map"); -var LQCollide = /** @class */ (function (_super) { - __extends(LQCollide, _super); - function LQCollide() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._draw_collide = true; - _this.can_move = true; - _this._collide_shape = lq_const_1.LQCollideShape.Rect; - _this._collide_group_index = -1; - _this.collide_group_id = 0; - _this.collide_scle = 1; - _this._radius = 50; - _this._size = new Size(100, 100); - _this._polygon_points = [new Vec2(-45, -45), new Vec2(45, -45), new Vec2(60, 40), new Vec2(0, 70), new Vec2(-60, 40)]; - //collide碰撞位置偏移 - _this._offset = new Vec2(0, 0); - _this.data_string = ''; - //每个collide的id唯一 - _this.collide_id = 0; - //状态 - _this.collide_status = lq_const_1.LQCollideStatus.Idle; - //是否可碰撞 - _this.is_enable = true; - //是否开启碰撞前后的函数 - _this.is_open_func = true; - //碰撞类别 - _this.collide_category = 0; - //碰撞筛选 - _this.collide_mask = 0; - _this.collide_map = {}; - return _this; - } - LQCollide_1 = LQCollide; - Object.defineProperty(LQCollide.prototype, "draw_collide", { - get: function () { - return this._draw_collide; - }, - set: function (value) { - this._draw_collide = value; - this.draw_shape(); - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LQCollide.prototype, "collide_shape", { - get: function () { - return this._collide_shape; - }, - set: function (value) { - this._collide_shape = value; - this.draw_shape(); - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LQCollide.prototype, "collide_group_index", { - get: function () { - if (this._collide_group_index === -1) { - this._collide_group_index = lq_collide_system_1.LQCollideSystem.get_info_by_id(this.collide_group_id).index; - } - return this._collide_group_index; - }, - set: function (value) { - if (this._collide_group_index === value) { - return; - } - this._collide_group_index = value; - this.collide_group_id = lq_collide_system_1.LQCollideSystem.get_group_by_index(value).id; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LQCollide.prototype, "radius", { - get: function () { - return this._radius; - }, - set: function (value) { - this._radius = value; - this.draw_shape(); - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LQCollide.prototype, "size", { - // 物体速度 - // public velocity: Vec2 = new Vec2(0, 0); - get: function () { - return this._size; - }, - set: function (value) { - this._size = value; - if (this.world_rect) { - this.world_rect.width = value.width; - this.world_rect.height = value.height; - this.world_rect.half_width = value.width * 0.5; - this.world_rect.half_height = value.height * 0.5; - } - this.draw_shape(); - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LQCollide.prototype, "offset", { - get: function () { - return this._offset; - }, - set: function (value) { - this._offset = value; - this.draw_shape(); - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LQCollide.prototype, "polygon_points", { - get: function () { - return this._polygon_points; - }, - set: function (value) { - this._polygon_points = value; - this.draw_shape(); - }, - enumerable: false, - configurable: true - }); - //检测绘制组件是否添加 - LQCollide.prototype.checkDebugDrawValid = function () { - if (!this._debugDrawer || !this._debugDrawer.isValid) { - var node = this.node.getChildByName('Collide'); - if (!node) { - node = new Node('Collide'); - node.zIndex = macro.MAX_ZINDEX; - this.node.addChild(node); - // @ts-ignore - node._objFlags = 1096; - this._debugDrawer = node.addComponent(Graphics); - this._debugDrawer.lineWidth = 3; - this._debugDrawer.strokeColor = new Color(255, 0, 0); - this._debugDrawer.fillColor = new Color(255, 0, 0); - } - else { - this._debugDrawer = node.getComponent(Graphics); - } - } - }; - //绘制形状 - LQCollide.prototype.draw_shape = function () { - if (!this._draw_collide) { - if (this._debugDrawer) { - this._debugDrawer.clear(); - } - return; - } - this.checkDebugDrawValid(); - this._debugDrawer.clear(); - var o1 = { key: 'scaleX', value: this.node.scale }; - var o2 = { key: 'scaleY', value: this.node.scale }; - lq_game_util_1.LQGameUtil.recursion_node_property(this.node, o1); - lq_game_util_1.LQGameUtil.recursion_node_property(this.node, o2); - if (o1.value === 0 || o2.value === 0) { - return; - } - this._debugDrawer.node.scaleX = 1 / o1.value; - this._debugDrawer.node.scaleY = 1 / o2.value; - switch (this._collide_shape) { - case lq_const_1.LQCollideShape.Circle: - this._debugDrawer.circle(+this._offset.x, +this._offset.y, this._radius); - this._debugDrawer.stroke(); - break; - case lq_const_1.LQCollideShape.Rect: - this._debugDrawer.moveTo(-this._size.width * 0.5 + this._offset.x, -this._size.height * 0.5 + this._offset.y); - this._debugDrawer.lineTo(-this._size.width * 0.5 + this._offset.x, +this._size.height * 0.5 + this._offset.y); - this._debugDrawer.lineTo(this._size.width * 0.5 + this._offset.x, +this._size.height * 0.5 + this._offset.y); - this._debugDrawer.lineTo(this._size.width * 0.5 + this._offset.x, -this._size.height * 0.5 + this._offset.y); - this._debugDrawer.lineTo(-this._size.width * 0.5 + this._offset.x, -this._size.height * 0.5 + this._offset.y); - this._debugDrawer.stroke(); - break; - case lq_const_1.LQCollideShape.Polygon: - this._debugDrawer.moveTo(this._polygon_points[0].x + this._offset.x, this._polygon_points[0].y + this._offset.y); - for (var i = 1; i < this._polygon_points.length; i++) { - this._debugDrawer.lineTo(this._polygon_points[i].x + this._offset.x, this._polygon_points[i].y + this._offset.y); - } - this._debugDrawer.lineTo(this._polygon_points[0].x + this._offset.x, this._polygon_points[0].y + this._offset.y); - this._debugDrawer.stroke(); - break; - } - }; - //仅用于矩形 - LQCollide.prototype.update_size = function (width, height) { - this._size.width = width; - this.world_rect.width = width; - this.world_rect.half_width = width * 0.5; - this._size.height = height; - this.world_rect.height = height; - this.world_rect.half_height = height * 0.5; - this.draw_shape(); - }; - LQCollide.prototype.init_lq_collide = function () { - this.world_rect = new lq_data_1.LQRect(0, 0, this._size.width, this._size.height); - this.draw_shape(); - var info = lq_collide_system_1.LQCollideSystem.get_info_by_id(this.collide_group_id); - this.collide_mask = info.mask; - this.collide_category = info.category; - this.collide_id = LQCollide_1.id_maker++; - this.updateCollisionArea(); - }; - LQCollide.prototype.updateCollisionArea = function () { - if (this._size.width == 0 || this._size.height == 0 || Map_1.default._instance == undefined) { - return; - } - if (Map_1.default._instance.node.scale) { - var scaleX_1 = Map_1.default._instance.node.scale; - var scaleY_1 = Map_1.default._instance.node.scale; - if (scaleX_1 === 0 || scaleX_1 == undefined || scaleX_1 == null || scaleX_1 == 1) { - return; - } - switch (this._collide_shape) { - case lq_const_1.LQCollideShape.Circle: - // 圆形碰撞区域半径更新 - this._radius = this._radius * Math.max(scaleX_1, scaleY_1); - break; - case lq_const_1.LQCollideShape.Rect: - // 矩形碰撞区域尺寸更新 - // console.log(this.data_string); - if (this._size.width !== 10 && this.data_string != "-1") { - // if(this._size.width == 105 || this._size.height == 105){} - this._size.width = this._size.width * scaleX_1; - // console.log("放大倍数",scaleX); - } - if (this._size.height !== 10 && this.data_string != "-1") { - // if(this._size.width == 105 || this._size.height == 105){} - this._size.height = this._size.height * scaleY_1; - // console.log("放大倍数",scaleY); - } - // this._size.width = this._size.width * scaleX; - // this._size.height = this._size.height * scaleY; - if (this.world_rect) { - this.world_rect.width = this._size.width; - this.world_rect.height = this._size.height; - this.world_rect.half_width = this._size.width * 0.5; - this.world_rect.half_height = this._size.height * 0.5; - } - break; - case lq_const_1.LQCollideShape.Polygon: - // 多边形碰撞点坐标更新 - this._polygon_points = this._polygon_points.map(function (point) { - return new Vec2(point.x * scaleX_1, point.y * scaleY_1); - }); - break; - } - this.draw_shape(); - } - }; - LQCollide.prototype.enable_lq_collide = function () { - if (this.collide_status === lq_const_1.LQCollideStatus.Live) { - console.warn(this.node.name + '重复添加'); - return; - } - this.is_enable = true; - this.collide_status = lq_const_1.LQCollideStatus.Live; - lq_collide_system_1.LQCollideSystem.add_collide(this); - }; - LQCollide.prototype.disable_lq_collide = function () { - if (this.collide_status !== lq_const_1.LQCollideStatus.Live) { - return; - } - this.is_enable = false; - this.collide_status = lq_const_1.LQCollideStatus.Idle; - lq_collide_system_1.LQCollideSystem.remove_collide(this); - }; - LQCollide.prototype.update_lq_collide = function () { - }; - // @ts-ignore - // public on_collide(collide: LQCollide): void { - // if(collide.node.parent.uuid == this.node.parent.uuid){ - // return; - // } - // if (LQCollideConfig.switch_print_log) { - // if(this.node.parent.getComponent("Block")){ - // let block = this.node.parent.getComponent("Block"); - // if(block.isTouch){ - // block.checkCollision = true; - // // console.log("碰撞",this.node.name); - // if(this.node.name == "top" ){ - // console.log("碰到上边缘"); - // block.moveUp = false; - // if(block.touchPointY > (this.node.parent.y+this.node.height)){ - // block.moveY = 1; - // } - // } - // if(this.node.name === "down"){ - // block.moveDown = false; - // console.log("碰到下边缘"); - // if(block.touchPointY < (this.node.parent.y )){ - // block.moveY = -1; - // } - // } - // if(this.node.name === "left" ){ - // block.moveLeft = false; - // console.log("碰到左边缘"); - // if(block.touchPointX < (this.node.parent.x - this.node.parent.width)){ - // block.moveX = -1; - // } - // } - // if(this.node.name === "right"){ - // block.moveRight = false; - // console.log("碰到右边缘"); - // if(block.touchPointX > (this.node.parent.x)){ - // block.moveX = 1; - // } - // } - // } - // } - // } - // } - //@ts-ignore - LQCollide.prototype.on_enter = function (collide) { - if (this.disableCollider(collide)) { - return; - } - // if (LQCollideConfig.switch_print_log) { - // console.log(this.node.name + ' on_enter'); - // } - }; - //@ts-ignore - LQCollide.prototype.on_exit = function (collide) { - if (this.disableCollider(collide)) { - return; - } - if (lq_collide_config_1.LQCollideConfig.switch_print_log) { - if (this.node.parent.getComponent("Block")) { - var block = this.node.parent.getComponent("Block"); - // if(!block.isTouch){ - // return; - // } - block.checkCollision = false; - if (this.node.name == "top") { - block.moveUp = true; - } - if (this.node.name === "down") { - block.moveDown = true; - } - if (this.node.name === "left") { - block.moveLeft = true; - } - if (this.node.name === "right") { - block.moveRight = true; - } - } - } - }; - LQCollide.prototype.on_collide = function (collide) { - if (this.disableCollider(collide)) { - return; - } - if (lq_collide_config_1.LQCollideConfig.switch_print_log) { - if (this.node.parent.getComponent("Block")) { - var block = this.node.parent.getComponent("Block"); - var jg = false; - if (block.isTouch) { - block.checkCollision = true; - // console.log("碰撞",this.node.name); - if (this.node.name == "top") { - // console.log(collide.node.parent.name); - block.moveUp = false; - if (block.touchPointY > (this.node.parent.y + this.node.parent.height)) { - block.moveY = 1; - } - // console.log("碰到上边缘"); - } - if (this.node.name === "down") { - block.moveDown = false; - if (block.touchPointY < (this.node.parent.y)) { - block.moveY = -1; - } - // console.log("碰到下边缘"); - } - if (this.node.name === "left") { - block.moveLeft = false; - if (block.touchPointX < (this.node.parent.x - this.node.parent.width)) { - block.moveX = -1; - } - } - if (this.node.name === "right") { - block.moveRight = false; - if (block.touchPointX > (this.node.parent.x)) { - block.moveX = 1; - } - } - } - } - } - }; - LQCollide.prototype.disableCollider = function (collide) { - var jg = false; - if (collide.node && this.node) { - if (collide.node.parent && this.node.parent) { - if (collide.node.parent.uuid == this.node.parent.uuid) { - jg = true; - } - if (this.node.parent.getComponent("Block")) { - var block = this.node.parent.getComponent("Block"); - if (block.type == 1 || block.type == 10 || block.type == 9) { - if (collide.node.parent == block.block_Info.node) { - jg = true; - } - } - } - } - } - return jg; - }; - var LQCollide_1; - LQCollide.id_maker = 1; - __decorate([ - property({ displayName: '绘制形状' }) - ], LQCollide.prototype, "draw_collide", null); - __decorate([ - property - ], LQCollide.prototype, "_draw_collide", void 0); - __decorate([ - property({ tooltip: '能否移动' }) - ], LQCollide.prototype, "can_move", void 0); - __decorate([ - property({ - tooltip: '碰撞形状,None就是无敌,不参与碰撞', - type: Enum(lq_const_1.LQCollideShape), - displayName: '碰撞形状' - }) - ], LQCollide.prototype, "collide_shape", null); - __decorate([ - property() - ], LQCollide.prototype, "_collide_shape", void 0); - __decorate([ - property({ - type: Enum(lq_collide_config_1.LQCollideInfoList), tooltip: '碰撞类别', - displayName: '碰撞类别' - }) - ], LQCollide.prototype, "collide_group_index", null); - __decorate([ - property({ serializable: false }) - ], LQCollide.prototype, "_collide_group_index", void 0); - __decorate([ - property({ visible: false }) - ], LQCollide.prototype, "collide_group_id", void 0); - __decorate([ - property({ visible: false }) - ], LQCollide.prototype, "collide_scle", void 0); - __decorate([ - property({ - tooltip: 'collide半径', - visible: function () { - // @ts-ignore - return this._collide_shape === lq_const_1.LQCollideShape.Circle; - }, - displayName: '半径' - }) - ], LQCollide.prototype, "radius", null); - __decorate([ - property() - ], LQCollide.prototype, "_radius", void 0); - __decorate([ - property({ - tooltip: 'collide长宽', - visible: function () { - // @ts-ignore - return this._collide_shape === lq_const_1.LQCollideShape.Rect; - }, - displayName: '长宽' - }) - ], LQCollide.prototype, "size", null); - __decorate([ - property() - ], LQCollide.prototype, "_size", void 0); - __decorate([ - property({ displayName: '位置偏移' }) - ], LQCollide.prototype, "offset", null); - __decorate([ - property({ - type: Vec2, - visible: function () { - // @ts-ignore - return this._collide_shape === lq_const_1.LQCollideShape.Polygon; - }, - displayName: '多边形碰撞点' - }) - ], LQCollide.prototype, "polygon_points", null); - __decorate([ - property() - ], LQCollide.prototype, "_polygon_points", void 0); - __decorate([ - property() - ], LQCollide.prototype, "_offset", void 0); - __decorate([ - property({ displayName: '自定义字符串' }) - ], LQCollide.prototype, "data_string", void 0); - LQCollide = LQCollide_1 = __decorate([ - ccclass, - requireComponent(lq_collide_base_1.LQCollideBase), - menu("lq/collide") - ], LQCollide); - return LQCollide; -}(Component)); -exports.LQCollide = LQCollide; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9jb2xsaWRlX3N5c3RlbVxcbHFfY29sbGlkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBTyxPQUFPLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7QUFDdkMsSUFBTyxRQUFRLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7QUFDekMsSUFBTyxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO0FBQ3pELElBQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0FBQ2pDLElBQU8sU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUM7QUFDaEMsSUFBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUN0QixJQUFPLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBQ3RCLElBQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDdEIsSUFBTyxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztBQUM5QixJQUFPLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBQ3RCLElBQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7QUFDeEIsSUFBTyxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztBQUN4QixxREFBeUU7QUFDekUseURBQXVFO0FBQ3ZFLHlEQUFvRDtBQUNwRCxtREFBK0M7QUFDL0MscURBQWdEO0FBQ2hELDZEQUF3RDtBQUN4RCw4QkFBaUM7QUFLakM7SUFBK0IsNkJBQVM7SUFBeEM7UUFBQSxxRUFpZUM7UUFwZGEsbUJBQWEsR0FBWSxJQUFJLENBQUM7UUFHOUIsY0FBUSxHQUFZLElBQUksQ0FBQztRQWtCNUIsb0JBQWMsR0FBbUIseUJBQWMsQ0FBQyxJQUFJLENBQUM7UUFzQnBELDBC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QUFRLENBQUM7WUFDTixPQUFPLEVBQUUsV0FBVztZQUNwQixPQUFPO2dCQUNILGFBQWE7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLHlCQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3ZELENBQUM7WUFDRCxXQUFXLEVBQUUsSUFBSTtTQUNwQixDQUFDO3lDQUdEO0lBY0Q7UUFEQyxRQUFRLEVBQUU7NENBQ2dDO0lBRzNDO1FBREMsUUFBUSxDQUFDLEVBQUMsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDOzJDQUcvQjtJQWVEO1FBUkMsUUFBUSxDQUFDO1lBQ04sSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPO2dCQUNILGFBQWE7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLHlCQUFjLENBQUMsT0FBTyxDQUFDO1lBQzFELENBQUM7WUFDRCxXQUFXLEVBQUUsUUFBUTtTQUN4QixDQUFDO21EQUdEO0lBUUQ7UUFEQyxRQUFRLEVBQUU7c0RBQ29IO0lBRy9IO1FBREMsUUFBUSxFQUFFOzhDQUMyQjtJQUd0QztRQURDLFFBQVEsQ0FBQyxFQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUMsQ0FBQztrREFDRjtJQW5KdkIsU0FBUztRQUhyQixPQUFPO1FBQ1AsZ0JBQWdCLENBQUMsK0JBQWEsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDO09BQ04sU0FBUyxDQWllckI7SUFBRCxnQkFBQztDQWplRCxBQWllQyxDQWplOEIsU0FBUyxHQWlldkM7QUFqZVksOEJBQVMiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2NjbGFzcyA9IGNjLl9kZWNvcmF0b3IuY2NjbGFzcztcclxuaW1wb3J0IHByb3BlcnR5ID0gY2MuX2RlY29yYXRvci5wcm9wZXJ0eTtcclxuaW1wb3J0IHJlcXVpcmVDb21wb25lbnQgPSBjYy5fZGVjb3JhdG9yLnJlcXVpcmVDb21wb25lbnQ7XHJcbmltcG9ydCBtZW51ID0gY2MuX2RlY29yYXRvci5tZW51O1xyXG5pbXBvcnQgQ29tcG9uZW50ID0gY2MuQ29tcG9uZW50O1xyXG5pbXBvcnQgRW51bSA9IGNjLkVudW07XHJcbmltcG9ydCBTaXplID0gY2MuU2l6ZTtcclxuaW1wb3J0IFZlYzIgPSBjYy5WZWMyO1xyXG5pbXBvcnQgR3JhcGhpY3MgPSBjYy5HcmFwaGljcztcclxuaW1wb3J0IE5vZGUgPSBjYy5Ob2RlO1xyXG5pbXBvcnQgbWFjcm8gPSBjYy5tYWNybztcclxuaW1wb3J0IENvbG9yID0gY2MuQ29sb3I7XHJcbmltcG9ydCB7TFFDb2xsaWRlU2hhcGUsIExRQ29sbGlkZVN0YXR1c30gZnJvbSBcIi4uL2xxX2Jhc2UvZGF0YS9scV9jb25zdFwiO1xyXG5pbXBvcnQge0xRQ29sbGlkZUNvbmZpZywgTFFDb2xsaWRlSW5mb0xpc3R9IGZyb20gXCIuL2xxX2NvbGxpZGVfY29uZmlnXCI7XHJcbmltcG9ydCB7TFFDb2xsaWRlU3lzdGVtfSBmcm9tIFwiLi9scV9jb2xsaWRlX3N5c3RlbVwiO1xyXG5pbXBvcnQge0xRUmVjdH0gZnJvbSBcIi4uL2xxX2Jhc2UvZGF0YS9scV9kYXRhXCI7XHJcbmltcG9ydCB7TFFDb2xsaWRlQmFzZX0gZnJvbSBcIi4vbHFfY29sbGlkZV9iYXNlXCI7XHJcbmltcG9ydCB7TFFHYW1lVXRpbH0gZnJvbSBcIi4uL2xxX2Jhc2UvdXRpbC9scV9nYW1lX3V0aWxcIjtcclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuLi9NYXBcIjtcclxuXHJcbkBjY2NsYXNzXHJcbkByZXF1aXJlQ29tcG9uZW50KExRQ29sbGlkZUJhc2UpXHJcbkBtZW51KFwibHEvY29sbGlkZVwiKVxyXG5leHBvcnQgY2xhc3MgTFFDb2xsaWRlIGV4dGVuZHMgQ29tcG9uZW50IHtcclxuICAgIHZlbG9jaXR5OiBhbnk7XHJcbiAgICBAcHJvcGVydHkoe2Rpc3BsYXlOYW1lOiAn57uY5Yi25b2i54q2J30pXHJcbiAgICBnZXQgZHJhd19jb2xsaWRlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kcmF3X2NvbGxpZGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGRyYXdfY29sbGlkZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2RyYXdfY29sbGlkZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZHJhd19zaGFwZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJvdGVjdGVkIF9kcmF3X2NvbGxpZGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dG9vbHRpcDogJ+iDveWQpuenu+WKqCd9KVxyXG4gICAgcHJvdGVjdGVkIGNhbl9tb3ZlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KHtcclxuICAgICAgICB0b29sdGlwOiAn56Kw5pKe5b2i54q277yMTm9uZeWwseaYr+aXoOaVjO+8jOS4jeWPguS4jueisOaSnicsXHJcbiAgICAgICAgdHlwZTogRW51bShMUUNvbGxpZGVTaGFwZSksXHJcbiAgICAgICAgZGlzcGxheU5hbWU6ICfnorDmkp7lvaLnirYnXHJcbiAgICB9KVxyXG4gICAgZ2V0IGNvbGxpZGVfc2hhcGUoKTogTFFDb2xsaWRlU2hhcGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xsaWRlX3NoYXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjb2xsaWRlX3NoYXBlKHZhbHVlOiBMUUNvbGxpZGVTaGFwZSkge1xyXG4gICAgICAgIHRoaXMuX2NvbGxpZGVfc2hhcGUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBAcHJvcGVydHkoKVxyXG4gICAgcHVibGljIF9jb2xsaWRlX3NoYXBlOiBMUUNvbGxpZGVTaGFwZSA9IExRQ29sbGlkZVNoYXBlLlJlY3Q7XHJcblxyXG4gICAgQHByb3BlcnR5KHtcclxuICAgICAgICB0eXBlOiBFbnVtKExRQ29sbGlkZUluZm9MaXN0KSwgdG9vbHRpcDogJ+eisOaSnuexu+WIqycsXHJcbiAgICAgICAgZGlzcGxheU5hbWU6ICfnorDmkp7nsbvliKsnXHJcbiAgICB9KVxyXG4gICAgZ2V0IGNvbGxpZGVfZ3JvdXBfaW5kZXgoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2NvbGxpZGVfZ3JvdXBfaW5kZXggPT09IC0xKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NvbGxpZGVfZ3JvdXBfaW5kZXggPSBMUUNvbGxpZGVTeXN0ZW0uZ2V0X2luZm9fYnlfaWQodGhpcy5jb2xsaWRlX2dyb3VwX2lkKS5pbmRleDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxpZGVfZ3JvdXBfaW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGNvbGxpZGVfZ3JvdXBfaW5kZXgodmFsdWUpIHtcclxuICAgICAgICBpZiAodGhpcy5fY29sbGlkZV9ncm91cF9pbmRleCA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jb2xsaWRlX2dyb3VwX2luZGV4ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlX2dyb3VwX2lkID0gTFFDb2xsaWRlU3lzdGVtLmdldF9ncm91cF9ieV9pbmRleCh2YWx1ZSkuaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQHByb3BlcnR5KHtzZXJpYWxpemFibGU6IGZhbHNlfSlcclxuICAgIHByaXZhdGUgX2NvbGxpZGVfZ3JvdXBfaW5kZXggPSAtMTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3Zpc2libGU6IGZhbHNlfSlcclxuICAgIHByb3RlY3RlZCBjb2xsaWRlX2dyb3VwX2lkOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dmlzaWJsZTogZmFsc2V9KVxyXG4gICAgcHJvdGVjdGVkIGNvbGxpZGVfc2NsZTogbnVtYmVyID0gMTtcclxuXHJcbiAgICBAcHJvcGVydHkoe1xyXG4gICAgICAgIHRvb2x0aXA6ICdjb2xsaWRl5Y2K5b6EJyxcclxuICAgICAgICB2aXNpYmxlKCkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb2xsaWRlX3NoYXBlID09PSBMUUNvbGxpZGVTaGFwZS5DaXJjbGU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXNwbGF5TmFtZTogJ+WNiuW+hCdcclxuICAgIH0pXHJcbiAgICBnZXQgcmFkaXVzKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JhZGl1cztcclxuICAgIH1cclxuXHJcbiAgICBzZXQgcmFkaXVzKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9yYWRpdXMgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBAcHJvcGVydHkoKVxyXG4gICAgcHJvdGVjdGVkIF9yYWRpdXM6IG51bWJlciA9IDUwO1xyXG5cclxuICAgIC8vIOeJqeS9k+mAn+W6plxyXG4gICAgLy8gcHVibGljIHZlbG9jaXR5OiBWZWMyID0gbmV3IFZlYzIoMCwgMCk7XHJcblxyXG4gICAgQHByb3BlcnR5KHtcclxuICAgICAgICB0b29sdGlwOiAnY29sbGlkZemVv+WuvScsXHJcbiAgICAgICAgdmlzaWJsZSgpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29sbGlkZV9zaGFwZSA9PT0gTFFDb2xsaWRlU2hhcGUuUmVjdDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRpc3BsYXlOYW1lOiAn6ZW/5a69J1xyXG4gICAgfSlcclxuICAgIGdldCBzaXplKCk6IFNpemUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBzaXplKHZhbHVlOiBTaXplKSB7XHJcbiAgICAgICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xyXG4gICAgICAgIGlmICh0aGlzLndvcmxkX3JlY3QpIHtcclxuICAgICAgICAgICAgdGhpcy53b3JsZF9yZWN0LndpZHRoID0gdmFsdWUud2lkdGg7XHJcbiAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC5oZWlnaHQgPSB2YWx1ZS5oZWlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC5oYWxmX3dpZHRoID0gdmFsdWUud2lkdGggKiAwLjU7XHJcbiAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC5oYWxmX2hlaWdodCA9IHZhbHVlLmhlaWdodCAqIDAuNTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kcmF3X3NoYXBlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQHByb3BlcnR5KClcclxuICAgIHByb3RlY3RlZCBfc2l6ZTogU2l6ZSA9IG5ldyBTaXplKDEwMCwgMTAwKTtcclxuXHJcbiAgICBAcHJvcGVydHkoe2Rpc3BsYXlOYW1lOiAn5L2N572u5YGP56e7J30pXHJcbiAgICBnZXQgb2Zmc2V0KCk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9vZmZzZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IG9mZnNldCh2YWx1ZTogVmVjMikge1xyXG4gICAgICAgIHRoaXMuX29mZnNldCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZHJhd19zaGFwZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBwcm9wZXJ0eSh7XHJcbiAgICAgICAgdHlwZTogVmVjMixcclxuICAgICAgICB2aXNpYmxlKCkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb2xsaWRlX3NoYXBlID09PSBMUUNvbGxpZGVTaGFwZS5Qb2x5Z29uO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGlzcGxheU5hbWU6ICflpJrovrnlvaLnorDmkp7ngrknXHJcbiAgICB9KVxyXG4gICAgZ2V0IHBvbHlnb25fcG9pbnRzKCk6IFZlYzJbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BvbHlnb25fcG9pbnRzO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBwb2x5Z29uX3BvaW50cyh2YWx1ZTogVmVjMltdKSB7XHJcbiAgICAgICAgdGhpcy5fcG9seWdvbl9wb2ludHMgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBAcHJvcGVydHkoKVxyXG4gICAgcHVibGljIF9wb2x5Z29uX3BvaW50czogVmVjMltdID0gW25ldyBWZWMyKC00NSwgLTQ1KSwgbmV3IFZlYzIoNDUsIC00NSksIG5ldyBWZWMyKDYwLCA0MCksIG5ldyBWZWMyKDAsIDcwKSwgbmV3IFZlYzIoLTYwLCA0MCldO1xyXG4gICAgLy9jb2xsaWRl56Kw5pKe5L2N572u5YGP56e7XHJcbiAgICBAcHJvcGVydHkoKVxyXG4gICAgcHVibGljIF9vZmZzZXQ6IFZlYzIgPSBuZXcgVmVjMigwLCAwKTtcclxuXHJcbiAgICBAcHJvcGVydHkoe2Rpc3BsYXlOYW1lOiAn6Ieq5a6a5LmJ5a2X56ym5LiyJ30pXHJcbiAgICBwdWJsaWMgZGF0YV9zdHJpbmc6IHN0cmluZyA9ICcnO1xyXG4gICAgLy/mr4/kuKpjb2xsaWRl55qEaWTllK/kuIBcclxuICAgIHB1YmxpYyBjb2xsaWRlX2lkOiBudW1iZXIgPSAwO1xyXG4gICAgLy/nirbmgIFcclxuICAgIHB1YmxpYyBjb2xsaWRlX3N0YXR1czogTFFDb2xsaWRlU3RhdHVzID0gTFFDb2xsaWRlU3RhdHVzLklkbGU7XHJcbiAgICAvL+aYr+WQpuWPr+eisOaSnlxyXG4gICAgcHVibGljIGlzX2VuYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICAvL+aYr+WQpuW8gOWQr+eisOaSnuWJjeWQjueahOWHveaVsFxyXG4gICAgcHVibGljIGlzX29wZW5fZnVuYzogYm9vbGVhbiA9IHRydWU7XHJcbiAgICAvL+eisOaSnuexu+WIq1xyXG4gICAgcHVibGljIGNvbGxpZGVfY2F0ZWdvcnkgPSAwO1xyXG4gICAgLy/norDmkp7nrZvpgIlcclxuICAgIHB1YmxpYyBjb2xsaWRlX21hc2sgPSAwO1xyXG4gICAgLy/nvJPlrZjlpJrovrnlvaLnorDmkp7mlbDmja5cclxuICAgIHB1YmxpYyBjYWNoZV9wb2x5Z29uX3BvaW50czogbnVtYmVyW107XHJcbiAgICAvL+e7mOWItmNvbGxpZGXlvaLnirbnu4Tku7ZcclxuICAgIHByaXZhdGUgX2RlYnVnRHJhd2VyITogR3JhcGhpY3M7XHJcbiAgICBwdWJsaWMgd29ybGRfcmVjdCE6IExRUmVjdDtcclxuICAgIHB1YmxpYyBjb2xsaWRlX21hcDogeyBba2V5OiBudW1iZXJdOiB7IGNvbGxpZGU6IExRQ29sbGlkZSwgc3RhdHVzOiAxIHwgMiB9IH0gPSB7fTtcclxuICAgIHB1YmxpYyBmb2xsb3dfdGFyZ2V0X2NhdGVnb3J5OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBpZF9tYWtlcjogbnVtYmVyID0gMTtcclxuXHJcbiAgICAvL+ajgOa1i+e7mOWItue7hOS7tuaYr+WQpua3u+WKoFxyXG4gICAgcHJpdmF0ZSBjaGVja0RlYnVnRHJhd1ZhbGlkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fZGVidWdEcmF3ZXIgfHwgIXRoaXMuX2RlYnVnRHJhd2VyLmlzVmFsaWQpIHtcclxuICAgICAgICAgICAgbGV0IG5vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ0NvbGxpZGUnKTtcclxuICAgICAgICAgICAgaWYgKCFub2RlKSB7XHJcbiAgICAgICAgICAgICAgICBub2RlID0gbmV3IE5vZGUoJ0NvbGxpZGUnKTtcclxuICAgICAgICAgICAgICAgIG5vZGUuekluZGV4ID0gbWFjcm8uTUFYX1pJTkRFWDtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5hZGRDaGlsZChub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIG5vZGUuX29iakZsYWdzID0gMTA5NjtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyID0gbm9kZS5hZGRDb21wb25lbnQoR3JhcGhpY3MpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWdEcmF3ZXIubGluZVdpZHRoID0gMztcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLnN0cm9rZUNvbG9yID0gbmV3IENvbG9yKDI1NSwgMCwgMCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5maWxsQ29sb3IgPSBuZXcgQ29sb3IoMjU1LCAwLCAwKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyID0gbm9kZS5nZXRDb21wb25lbnQoR3JhcGhpY3MpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v57uY5Yi25b2i54q2XHJcbiAgICBwcm90ZWN0ZWQgZHJhd19zaGFwZSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2RyYXdfY29sbGlkZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fZGVidWdEcmF3ZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmNsZWFyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNoZWNrRGVidWdEcmF3VmFsaWQoKTtcclxuICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5jbGVhcigpO1xyXG5cclxuICAgICAgICBsZXQgbzEgPSB7a2V5OiAnc2NhbGVYJywgdmFsdWU6IHRoaXMubm9kZS5zY2FsZX07XHJcbiAgICAgICAgbGV0IG8yID0ge2tleTogJ3NjYWxlWScsIHZhbHVlOiB0aGlzLm5vZGUuc2NhbGV9O1xyXG4gICAgICAgIExRR2FtZVV0aWwucmVjdXJzaW9uX25vZGVfcHJvcGVydHkodGhpcy5ub2RlLCBvMSk7XHJcbiAgICAgICAgTFFHYW1lVXRpbC5yZWN1cnNpb25fbm9kZV9wcm9wZXJ0eSh0aGlzLm5vZGUsIG8yKTtcclxuICAgICAgICBpZiAobzEudmFsdWUgPT09IDAgfHwgbzIudmFsdWUgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5ub2RlLnNjYWxlWCA9IDEgLyBvMS52YWx1ZTtcclxuICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5ub2RlLnNjYWxlWSA9IDEgLyBvMi52YWx1ZTtcclxuICAgICAgICBzd2l0Y2ggKHRoaXMuX2NvbGxpZGVfc2hhcGUpIHtcclxuICAgICAgICAgICAgY2FzZSBMUUNvbGxpZGVTaGFwZS5DaXJjbGU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5jaXJjbGUoK3RoaXMuX29mZnNldC54LCArdGhpcy5fb2Zmc2V0LnksIHRoaXMuX3JhZGl1cyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5zdHJva2UoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIExRQ29sbGlkZVNoYXBlLlJlY3Q6XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5tb3ZlVG8oLXRoaXMuX3NpemUud2lkdGggKiAwLjUgKyB0aGlzLl9vZmZzZXQueCwgLXRoaXMuX3NpemUuaGVpZ2h0ICogMC41ICsgdGhpcy5fb2Zmc2V0LnkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWdEcmF3ZXIubGluZVRvKC10aGlzLl9zaXplLndpZHRoICogMC41ICsgdGhpcy5fb2Zmc2V0LngsICt0aGlzLl9zaXplLmhlaWdodCAqIDAuNSArIHRoaXMuX29mZnNldC55KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmxpbmVUbyh0aGlzLl9zaXplLndpZHRoICogMC41ICsgdGhpcy5fb2Zmc2V0LngsICt0aGlzLl9zaXplLmhlaWdodCAqIDAuNSArIHRoaXMuX29mZnNldC55KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmxpbmVUbyh0aGlzLl9zaXplLndpZHRoICogMC41ICsgdGhpcy5fb2Zmc2V0LngsIC10aGlzLl9zaXplLmhlaWdodCAqIDAuNSArIHRoaXMuX29mZnNldC55KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmxpbmVUbygtdGhpcy5fc2l6ZS53aWR0aCAqIDAuNSArIHRoaXMuX29mZnNldC54LCAtdGhpcy5fc2l6ZS5oZWlnaHQgKiAwLjUgKyB0aGlzLl9vZmZzZXQueSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5zdHJva2UoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIExRQ29sbGlkZVNoYXBlLlBvbHlnb246XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5tb3ZlVG8odGhpcy5fcG9seWdvbl9wb2ludHNbMF0ueCArIHRoaXMuX29mZnNldC54LCB0aGlzLl9wb2x5Z29uX3BvaW50c1swXS55ICsgdGhpcy5fb2Zmc2V0LnkpO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCB0aGlzLl9wb2x5Z29uX3BvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmxpbmVUbyh0aGlzLl9wb2x5Z29uX3BvaW50c1tpXS54ICsgdGhpcy5fb2Zmc2V0LngsIHRoaXMuX3BvbHlnb25fcG9pbnRzW2ldLnkgKyB0aGlzLl9vZmZzZXQueSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5saW5lVG8odGhpcy5fcG9seWdvbl9wb2ludHNbMF0ueCArIHRoaXMuX29mZnNldC54LCB0aGlzLl9wb2x5Z29uX3BvaW50c1swXS55ICsgdGhpcy5fb2Zmc2V0LnkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWdEcmF3ZXIuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/ku4XnlKjkuo7nn6nlvaJcclxuICAgIHB1YmxpYyB1cGRhdGVfc2l6ZSh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3NpemUud2lkdGggPSB3aWR0aDtcclxuICAgICAgICB0aGlzLndvcmxkX3JlY3Qud2lkdGggPSB3aWR0aDtcclxuICAgICAgICB0aGlzLndvcmxkX3JlY3QuaGFsZl93aWR0aCA9IHdpZHRoICogMC41O1xyXG4gICAgICAgIHRoaXMuX3NpemUuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICAgIHRoaXMud29ybGRfcmVjdC5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICAgICAgdGhpcy53b3JsZF9yZWN0LmhhbGZfaGVpZ2h0ID0gaGVpZ2h0ICogMC41O1xyXG5cclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW5pdF9scV9jb2xsaWRlKCkge1xyXG5cclxuICAgICAgICB0aGlzLndvcmxkX3JlY3QgPSBuZXcgTFFSZWN0KDAsIDAsIHRoaXMuX3NpemUud2lkdGgsIHRoaXMuX3NpemUuaGVpZ2h0KTtcclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgICAgICBjb25zdCBpbmZvID0gTFFDb2xsaWRlU3lzdGVtLmdldF9pbmZvX2J5X2lkKHRoaXMuY29sbGlkZV9ncm91cF9pZCk7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlX21hc2sgPSBpbmZvLm1hc2s7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlX2NhdGVnb3J5ID0gaW5mby5jYXRlZ29yeTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVfaWQgPSBMUUNvbGxpZGUuaWRfbWFrZXIrKztcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVDb2xsaXNpb25BcmVhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVDb2xsaXNpb25BcmVhKCkge1xyXG4gICAgICAgIGlmKHRoaXMuX3NpemUud2lkdGg9PTAgfHwgdGhpcy5fc2l6ZS5oZWlnaHQ9PTAgfHwgTWFwQ29ucm9sZXIuX2luc3RhbmNlID09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUuc2NhbGUpe1xyXG4gICAgICAgICAgICBsZXQgc2NhbGVYID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUuc2NhbGU7XHJcbiAgICAgICAgICAgIGxldCBzY2FsZVkgPSBNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5zY2FsZTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzY2FsZVggPT09IDAgfHwgc2NhbGVYID09IHVuZGVmaW5lZCB8fCBzY2FsZVggPT0gbnVsbCB8fCBzY2FsZVggPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5fY29sbGlkZV9zaGFwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBMUUNvbGxpZGVTaGFwZS5DaXJjbGU6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5ZyG5b2i56Kw5pKe5Yy65Z+f5Y2K5b6E5pu05pawXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmFkaXVzID0gdGhpcy5fcmFkaXVzICogTWF0aC5tYXgoc2NhbGVYLCBzY2FsZVkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBMUUNvbGxpZGVTaGFwZS5SZWN0OlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOefqeW9oueisOaSnuWMuuWfn+WwuuWvuOabtOaWsFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuZGF0YV9zdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9zaXplLndpZHRoICE9PSAxMCAmJiB0aGlzLmRhdGFfc3RyaW5nIT1cIi0xXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYodGhpcy5fc2l6ZS53aWR0aCA9PSAxMDUgfHwgdGhpcy5fc2l6ZS5oZWlnaHQgPT0gMTA1KXt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaXplLndpZHRoID0gdGhpcy5fc2l6ZS53aWR0aCAqIHNjYWxlWDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGNvbnNvbGUubG9nKFwi5pS+5aSn5YCN5pWwXCIsc2NhbGVYKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3NpemUuaGVpZ2h0IT09IDEwICYmIHRoaXMuZGF0YV9zdHJpbmchPVwiLTFcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZih0aGlzLl9zaXplLndpZHRoID09IDEwNSB8fCB0aGlzLl9zaXplLmhlaWdodCA9PSAxMDUpe31cclxuICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NpemUuaGVpZ2h0ID0gdGhpcy5fc2l6ZS5oZWlnaHQgKiBzY2FsZVk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pS+5aSn5YCN5pWwXCIsc2NhbGVZKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5fc2l6ZS53aWR0aCA9IHRoaXMuX3NpemUud2lkdGggKiBzY2FsZVg7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5fc2l6ZS5oZWlnaHQgPSB0aGlzLl9zaXplLmhlaWdodCAqIHNjYWxlWTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy53b3JsZF9yZWN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC53aWR0aCA9IHRoaXMuX3NpemUud2lkdGg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC5oZWlnaHQgPSB0aGlzLl9zaXplLmhlaWdodDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JsZF9yZWN0LmhhbGZfd2lkdGggPSB0aGlzLl9zaXplLndpZHRoICogMC41O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndvcmxkX3JlY3QuaGFsZl9oZWlnaHQgPSB0aGlzLl9zaXplLmhlaWdodCAqIDAuNTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIExRQ29sbGlkZVNoYXBlLlBvbHlnb246XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5aSa6L655b2i56Kw5pKe54K55Z2Q5qCH5pu05pawXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcG9seWdvbl9wb2ludHMgPSB0aGlzLl9wb2x5Z29uX3BvaW50cy5tYXAocG9pbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFZlYzIocG9pbnQueCAqIHNjYWxlWCwgcG9pbnQueSAqIHNjYWxlWSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuZHJhd19zaGFwZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGVuYWJsZV9scV9jb2xsaWRlKCkge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb2xsaWRlX3N0YXR1cyA9PT0gTFFDb2xsaWRlU3RhdHVzLkxpdmUpIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKHRoaXMubm9kZS5uYW1lICsgJ+mHjeWkjea3u+WKoCcpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXNfZW5hYmxlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVfc3RhdHVzID0gTFFDb2xsaWRlU3RhdHVzLkxpdmU7XHJcbiAgICAgICAgTFFDb2xsaWRlU3lzdGVtLmFkZF9jb2xsaWRlKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkaXNhYmxlX2xxX2NvbGxpZGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29sbGlkZV9zdGF0dXMgIT09IExRQ29sbGlkZVN0YXR1cy5MaXZlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc19lbmFibGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVfc3RhdHVzID0gTFFDb2xsaWRlU3RhdHVzLklkbGU7XHJcbiAgICAgICAgTFFDb2xsaWRlU3lzdGVtLnJlbW92ZV9jb2xsaWRlKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVfbHFfY29sbGlkZSgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgLy8gcHVibGljIG9uX2NvbGxpZGUoY29sbGlkZTogTFFDb2xsaWRlKTogdm9pZCB7XHJcbiAgICAvLyAgICAgaWYoY29sbGlkZS5ub2RlLnBhcmVudC51dWlkID09IHRoaXMubm9kZS5wYXJlbnQudXVpZCl7XHJcbiAgICAvLyAgICAgICAgIHJldHVybjtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgaWYgKExRQ29sbGlkZUNvbmZpZy5zd2l0Y2hfcHJpbnRfbG9nKSB7XHJcbiAgICAvLyAgICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikpe1xyXG4gICAgLy8gICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKTtcclxuICAgIC8vICAgICAgICAgICAgIGlmKGJsb2NrLmlzVG91Y2gpe1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIGJsb2NrLmNoZWNrQ29sbGlzaW9uID0gdHJ1ZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOaSnlwiLHRoaXMubm9kZS5uYW1lKTtcclxuICAgIC8vICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PSBcInRvcFwiICl7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yYXCIpO1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlVXAgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgaWYoYmxvY2sudG91Y2hQb2ludFkgPiAodGhpcy5ub2RlLnBhcmVudC55K3RoaXMubm9kZS5oZWlnaHQpKXtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVZID0gMTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICAgICAgICAgIH1cclxuICAgIC8vICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PT0gXCJkb3duXCIpe1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlRG93biA9IGZhbHNlO1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mFwiKTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgaWYoYmxvY2sudG91Y2hQb2ludFkgPCAodGhpcy5ub2RlLnBhcmVudC55ICkpe1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVkgPSAtMTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICAgICAgICAgIH1cclxuICAgIC8vICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PT0gXCJsZWZ0XCIgKXtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZUxlZnQgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLnorDliLDlt6bovrnnvJhcIik7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnRvdWNoUG9pbnRYIDwgKHRoaXMubm9kZS5wYXJlbnQueCAtIHRoaXMubm9kZS5wYXJlbnQud2lkdGgpKXtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVYID0gLTE7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgIC8vICAgICAgICAgICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgaWYodGhpcy5ub2RlLm5hbWUgPT09IFwicmlnaHRcIil7XHJcblxyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlUmlnaHQgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLnorDliLDlj7PovrnnvJhcIik7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnRvdWNoUG9pbnRYID4gKHRoaXMubm9kZS5wYXJlbnQueCkpe1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVggPSAxO1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgIFxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vIH1cclxuXHJcbiAgICAvL0B0cy1pZ25vcmVcclxuICAgIHB1YmxpYyBvbl9lbnRlcihjb2xsaWRlOiBMUUNvbGxpZGUpIHtcclxuICAgICAgICBpZih0aGlzLmRpc2FibGVDb2xsaWRlcihjb2xsaWRlKSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gaWYgKExRQ29sbGlkZUNvbmZpZy5zd2l0Y2hfcHJpbnRfbG9nKSB7XHJcbiAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKHRoaXMubm9kZS5uYW1lICsgJyBvbl9lbnRlcicpO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICAvL0B0cy1pZ25vcmVcclxuICAgIHB1YmxpYyBvbl9leGl0KGNvbGxpZGU6IExRQ29sbGlkZSkge1xyXG4gICAgICAgIGlmKHRoaXMuZGlzYWJsZUNvbGxpZGVyKGNvbGxpZGUpKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoTFFDb2xsaWRlQ29uZmlnLnN3aXRjaF9wcmludF9sb2cpIHtcclxuICAgICAgICAgICAgaWYodGhpcy5ub2RlLnBhcmVudC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSl7XHJcbiAgICAgICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkJsb2NrXCIpO1xyXG4gICAgICAgICAgICAgICAgLy8gaWYoIWJsb2NrLmlzVG91Y2gpe1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICAgIGJsb2NrLmNoZWNrQ29sbGlzaW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5ub2RlLm5hbWUgPT0gXCJ0b3BcIiApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlVXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PT0gXCJkb3duXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlRG93biA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS5uYW1lID09PSBcImxlZnRcIiApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlTGVmdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS5uYW1lID09PSBcInJpZ2h0XCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlUmlnaHQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25fY29sbGlkZShjb2xsaWRlOiBMUUNvbGxpZGUpOiB2b2lkIHtcclxuICAgICAgICBpZih0aGlzLmRpc2FibGVDb2xsaWRlcihjb2xsaWRlKSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKExRQ29sbGlkZUNvbmZpZy5zd2l0Y2hfcHJpbnRfbG9nKSB7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikpe1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKTtcclxuICAgICAgICAgICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYoYmxvY2suaXNUb3VjaCl7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2suY2hlY2tDb2xsaXNpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5pKeXCIsdGhpcy5ub2RlLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS5uYW1lID09IFwidG9wXCIgKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coY29sbGlkZS5ub2RlLnBhcmVudC5uYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVVwID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnRvdWNoUG9pbnRZID4gKHRoaXMubm9kZS5wYXJlbnQueSt0aGlzLm5vZGUucGFyZW50LmhlaWdodCkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVkgPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yYXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PT0gXCJkb3duXCIpe1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZURvd24gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoYmxvY2sudG91Y2hQb2ludFkgPCAodGhpcy5ub2RlLnBhcmVudC55ICkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVkgPSAtMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mFwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5ub2RlLm5hbWUgPT09IFwibGVmdFwiICl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVMZWZ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnRvdWNoUG9pbnRYIDwgKHRoaXMubm9kZS5wYXJlbnQueCAtIHRoaXMubm9kZS5wYXJlbnQud2lkdGgpKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVYID0gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5ub2RlLm5hbWUgPT09IFwicmlnaHRcIil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVSaWdodCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihibG9jay50b3VjaFBvaW50WCA+ICh0aGlzLm5vZGUucGFyZW50LngpKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVYID0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGlzYWJsZUNvbGxpZGVyKGNvbGxpZGU6IExRQ29sbGlkZSl7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgaWYoY29sbGlkZS5ub2RlICYmIHRoaXMubm9kZSl7XHJcbiAgICAgICAgICAgIGlmKGNvbGxpZGUubm9kZS5wYXJlbnQgJiYgdGhpcy5ub2RlLnBhcmVudCl7XHJcbiAgICAgICAgICAgICAgICBpZihjb2xsaWRlLm5vZGUucGFyZW50LnV1aWQgPT0gdGhpcy5ub2RlLnBhcmVudC51dWlkKXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkJsb2NrXCIpKXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkJsb2NrXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnR5cGUgPT0gMSB8fCBibG9jay50eXBlID09IDEwIHx8IGJsb2NrLnR5cGUgPT0gOSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvbGxpZGUubm9kZS5wYXJlbnQgPT0gYmxvY2suYmxvY2tfSW5mby5ub2RlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpnID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxufSJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/prop/Adhesive.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '5fc5bz1aV5PKIBJQh99jpm2', 'Adhesive'); -// Script/prop/Adhesive.ts - -"use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var Adhesive = /** @class */ (function (_super) { - __extends(Adhesive, _super); - function Adhesive() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.time = 60; - _this.pos = { x: 0, y: 0 }; - return _this; - } - Adhesive.prototype.onLoad = function () { - this.pos.x = this.pos.y = 0; - this.target = null; - }; - Adhesive.prototype.start = function () { - }; - Adhesive.prototype.init = function (node) { - this.pos.x = node.x - this.node.x; - this.pos.y = node.y - this.node.y; - this.target = node; - }; - Adhesive.prototype.remove = function () { - var _this = this; - this.target = null; - for (var j = 0; j < this.node.children.length; j++) { - if (this.node.children[j].active == true) { - this.node.children[j].getComponent(sp.Skeleton).setAnimation(0, "animation", false); - } - } - setTimeout(function () { - _this.node.active = false; - }, 2000); - }; - Adhesive.prototype.update = function (dt) { - if (this.target != null) { - this.node.x = this.target.x - this.pos.x; - this.node.y = this.target.y - this.pos.y; - } - }; - Adhesive = __decorate([ - ccclass - ], Adhesive); - return Adhesive; -}(cc.Component)); -exports.default = Adhesive; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxBZGhlc2l2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUk1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUsxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXVDQztRQXJDRyxVQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFNBQUcsR0FBUSxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDOztJQW9DNUIsQ0FBQztJQWpDRyx5QkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx3QkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELHVCQUFJLEdBQUosVUFBSyxJQUFJO1FBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx5QkFBTSxHQUFOO1FBQUEsaUJBVUM7UUFURyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixLQUFJLElBQUksQ0FBQyxHQUFFLENBQUMsRUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO1lBQzNDLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksRUFBQztnQkFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLFdBQVcsRUFBQyxLQUFLLENBQUMsQ0FBQzthQUNyRjtTQUNKO1FBQ0QsVUFBVSxDQUFDO1lBQ1AsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQzdCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNiLENBQUM7SUFHRCx5QkFBTSxHQUFOLFVBQVEsRUFBRTtRQUNOLElBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUM7SUFDTCxDQUFDO0lBdENnQixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBdUM1QjtJQUFELGVBQUM7Q0F2Q0QsQUF1Q0MsQ0F2Q3FDLEVBQUUsQ0FBQyxTQUFTLEdBdUNqRDtrQkF2Q29CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFkaGVzaXZlIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDYwO1xyXG4gICAgcG9zOiBhbnkgPSB7eDogMCwgeTogMH07XHJcbiAgICB0YXJnZXQ6IGFueTtcclxuXHJcbiAgICBvbkxvYWQgKCkgeyBcclxuICAgICAgICB0aGlzLnBvcy54ID0gdGhpcy5wb3MueSA9IDA7XHJcbiAgICAgICAgdGhpcy50YXJnZXQgPSBudWxsO1xyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChub2RlKXtcclxuICAgICAgICB0aGlzLnBvcy54ID0gbm9kZS54IC0gdGhpcy5ub2RlLng7XHJcbiAgICAgICAgdGhpcy5wb3MueSA9IG5vZGUueSAtIHRoaXMubm9kZS55O1xyXG4gICAgICAgIHRoaXMudGFyZ2V0ID0gbm9kZTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmUoKXtcclxuICAgICAgICB0aGlzLnRhcmdldCA9IG51bGw7XHJcbiAgICAgICAgZm9yKGxldCBqID0wOyBqPHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGg7IGorKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5jaGlsZHJlbltqXS5hY3RpdmUgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuY2hpbGRyZW5bal0uZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMCxcImFuaW1hdGlvblwiLGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH0sIDIwMDApO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICB1cGRhdGUgKGR0KSB7XHJcbiAgICAgICAgaWYodGhpcy50YXJnZXQgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS54ID0gdGhpcy50YXJnZXQueCAtIHRoaXMucG9zLng7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS55ID0gdGhpcy50YXJnZXQueSAtIHRoaXMucG9zLnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'c9ad1iUTB1PyqJ3cmtMGJ31', 'use_v2.1-2.2.1_cc.Toggle_event_1'); -// migration/use_v2.1-2.2.1_cc.Toggle_event_1.js - -"use strict"; - -/* - * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version. - * You do not need to manually add this script in any other project. - * If you don't use cc.Toggle in your project, you can delete this script directly. - * If your project is hosted in VCS such as git, submit this script together. - * - * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程, - * 你无需在任何其它项目中手动添加此脚本。 - * 如果你的项目中没用到 Toggle,可直接删除该脚本。 - * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 - */ -if (cc.Toggle) { - // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code - // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 - cc.Toggle._triggerEventInScript_isChecked = true; -} - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnRfMS5qcyJdLCJuYW1lcyI6WyJjYyIsIlRvZ2dsZSIsIl90cmlnZ2VyRXZlbnRJblNjcmlwdF9pc0NoZWNrZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLEVBQUUsQ0FBQ0MsTUFBUCxFQUFlO0FBQ1g7QUFDQTtBQUNBRCxFQUFBQSxFQUFFLENBQUNDLE1BQUgsQ0FBVUMsK0JBQVYsR0FBNEMsSUFBNUM7QUFDSCIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogVGhpcyBzY3JpcHQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgQ29jb3MgQ3JlYXRvciBhbmQgaXMgb25seSB1c2VkIGZvciBwcm9qZWN0cyBjb21wYXRpYmxlIHdpdGggdGhlIHYyLjEuMCDvvZ4gMi4yLjEgdmVyc2lvbi5cclxuICogWW91IGRvIG5vdCBuZWVkIHRvIG1hbnVhbGx5IGFkZCB0aGlzIHNjcmlwdCBpbiBhbnkgb3RoZXIgcHJvamVjdC5cclxuICogSWYgeW91IGRvbid0IHVzZSBjYy5Ub2dnbGUgaW4geW91ciBwcm9qZWN0LCB5b3UgY2FuIGRlbGV0ZSB0aGlzIHNjcmlwdCBkaXJlY3RseS5cclxuICogSWYgeW91ciBwcm9qZWN0IGlzIGhvc3RlZCBpbiBWQ1Mgc3VjaCBhcyBnaXQsIHN1Ym1pdCB0aGlzIHNjcmlwdCB0b2dldGhlci5cclxuICpcclxuICog5q2k6ISa5pys55SxIENvY29zIENyZWF0b3Ig6Ieq5Yqo55Sf5oiQ77yM5LuF55So5LqO5YW85a65IHYyLjEuMCB+IDIuMi4xIOeJiOacrOeahOW3peeoi++8jFxyXG4gKiDkvaDml6DpnIDlnKjku7vkvZXlhbblroPpobnnm67kuK3miYvliqjmt7vliqDmraTohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5Lit5rKh55So5YiwIFRvZ2dsZe+8jOWPr+ebtOaOpeWIoOmZpOivpeiEmuacrOOAglxyXG4gKiDlpoLmnpzkvaDnmoTpobnnm67mnInmiZjnrqHkuo4gZ2l0IOetieeJiOacrOW6k++8jOivt+WwhuatpOiEmuacrOS4gOW5tuS4iuS8oOOAglxyXG4gKi9cclxuXHJcbmlmIChjYy5Ub2dnbGUpIHtcclxuICAgIC8vIFdoZXRoZXIgdG8gdHJpZ2dlciAndG9nZ2xlJyBhbmQgJ2NoZWNrRXZlbnRzJyBldmVudHMgd2hlbiBtb2RpZnlpbmcgJ3RvZ2dsZS5pc0NoZWNrZWQnIGluIHRoZSBjb2RlXHJcbiAgICAvLyDlnKjku6PnoIHkuK3kv67mlLkgJ3RvZ2dsZS5pc0NoZWNrZWQnIOaXtuaYr+WQpuinpuWPkSAndG9nZ2xlJyDkuI4gJ2NoZWNrRXZlbnRzJyDkuovku7ZcclxuICAgIGNjLlRvZ2dsZS5fdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkID0gdHJ1ZTtcclxufVxyXG4iXX0= //------QC-SOURCE-SPLIT------ (function() { @@ -13158,7 +11806,7 @@ cc._RF.pop(); (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/prop/Star.js'; + var __filename = 'preview-scripts/assets/Script/Barrier.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -13166,8 +11814,136 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'd773dbWW6tAz6F+Z0L3IXUx', 'Star'); -// Script/prop/Star.ts +cc._RF.push(module, '90c37YHUUVPsY0mlNmom67u', 'Barrier'); +// Script/Barrier.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var Map_1 = require("./Map"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var Block = /** @class */ (function (_super) { + __extends(Block, _super); + function Block() { + var _this = _super !== null && _super.apply(this, arguments) || this; + // 新增缓存变量 + _this.selfBoxColliders = []; + _this.allBoxColliders = []; + // @property({ + // tooltip: '碰撞形状,None就是无敌,不参与碰撞', + // type: cc.Enum(BlockType), + // // default: BlockType.Nomal, + // displayName: '碰撞形状' + // }) + // LIFE-CYCLE CALLBACKS: + // @property(cc.SpriteAtlas) + // UI: cc.SpriteAtlas = null; + _this.initialTouchOffset = null; + _this.offsetTolerance = 100; // 偏移容忍度; + _this.touchPoint = null; //触摸点 + _this.isTouch = false; //是否触摸 + _this.posX = 0; //地图块的X坐标 + _this.posY = 0; //地图块的Y坐标 + _this.moveLeft = true; //是否可以左移; + _this.moveRight = true; //是否可以右移; + _this.moveUp = true; //是否可以上移; + _this.moveDown = true; //是否可以下移; + _this.moveCorner = 0; //是否碰撞角落 + _this.moveY = 0; //是否可以上下移动; + _this.moveX = 0; //是否可以左右移动; + _this.touchPointX = 0; //触摸点X坐标; + _this.touchPointY = 0; //触摸点Y坐标; + _this.blockId = 0; //方块ID; + _this.level = 0; //叠加方块层数; + _this.pz = false; + return _this; + } + Block.prototype.onLoad = function () { + // this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this); + // this.node.on(cc.Node.EventType.TOUCH_MOVE, this.touchMove, this); + // this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEnd, this); + // this.node.on(cc.Node.EventType.TOUCH_END, this.touchEnd, this); + this.pz = false; + this.stacking = cc.v2(0, 0); + // this.selfBoxColliders = this.node.getComponentsInChildren(cc.BoxCollider) + // .filter(collider => collider.tag < 4); + }; + Block.prototype.start = function () { + }; + Block.prototype.jsonDeepClone = function (obj) { + return JSON.parse(JSON.stringify(obj)); + }; + Block.prototype.init = function (block_Info, posX, posY, node) { + this.block_Info = this.jsonDeepClone(block_Info); + var mapInfo = Map_1.default._instance.mapInfo; + for (var i = 0; i < mapInfo.length; i++) { + var blockRect = mapInfo[i].getBoundingBox(); + // 使用 cc.Intersection.pointInRect 方法判断点是否在矩形范围内 + var point = cc.v2(this.node.position.x - 5, this.node.position.y + 10); + if (blockRect.contains(point)) { + this.posX = mapInfo[i].getComponent("MapBlock").posX; + this.posY = mapInfo[i].getComponent("MapBlock").posY; + this.level = 50 + this.posX - this.posY * 3; + this.node.zIndex = this.level; + this.node.x = mapInfo[i].x + 65; + this.node.y = mapInfo[i].y - 60; + i = 10000; + break; + } + } + }; + Block = __decorate([ + ccclass + ], Block); + return Block; +}(cc.Component)); +exports.default = Block; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCYXJyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDZCQUFnQztBQUUxQixJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQXlGQztRQXZGRyxTQUFTO1FBQ0Qsc0JBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUN4QyxxQkFBZSxHQUFxQixFQUFFLENBQUM7UUFDL0MsY0FBYztRQUNkLHNDQUFzQztRQUN0QyxnQ0FBZ0M7UUFDaEMsbUNBQW1DO1FBQ25DLDBCQUEwQjtRQUMxQixLQUFLO1FBS0wsd0JBQXdCO1FBQ3hCLDRCQUE0QjtRQUM1Qiw2QkFBNkI7UUFDckIsd0JBQWtCLEdBQVksSUFBSSxDQUFDO1FBQ25DLHFCQUFlLEdBQUcsR0FBRyxDQUFDLENBQUMsVUFBVTtRQUd6QyxnQkFBVSxHQUFZLElBQUksQ0FBQyxDQUFLLEtBQUs7UUFDckMsYUFBTyxHQUFZLEtBQUssQ0FBQyxDQUFPLE1BQU07UUFDdEMsVUFBSSxHQUFXLENBQUMsQ0FBQyxDQUFlLFNBQVM7UUFDekMsVUFBSSxHQUFXLENBQUMsQ0FBQyxDQUFlLFNBQVM7UUFDekMsY0FBUSxHQUFZLElBQUksQ0FBQyxDQUFNLFNBQVM7UUFDeEMsZUFBUyxHQUFZLElBQUksQ0FBQyxDQUFLLFNBQVM7UUFDeEMsWUFBTSxHQUFZLElBQUksQ0FBQyxDQUFRLFNBQVM7UUFDeEMsY0FBUSxHQUFZLElBQUksQ0FBQyxDQUFNLFNBQVM7UUFDeEMsZ0JBQVUsR0FBVyxDQUFDLENBQUMsQ0FBUSxRQUFRO1FBQ3ZDLFdBQUssR0FBVSxDQUFDLENBQUMsQ0FBVSxXQUFXO1FBQ3RDLFdBQUssR0FBVSxDQUFDLENBQUMsQ0FBVSxXQUFXO1FBQ3RDLGlCQUFXLEdBQVcsQ0FBQyxDQUFDLENBQVEsU0FBUztRQUN6QyxpQkFBVyxHQUFXLENBQUMsQ0FBQyxDQUFRLFNBQVM7UUFDekMsYUFBTyxHQUFXLENBQUMsQ0FBQyxDQUFZLE9BQU87UUFFdkMsV0FBSyxHQUFXLENBQUMsQ0FBQyxDQUFZLFNBQVM7UUFDdkMsUUFBRSxHQUFZLEtBQUssQ0FBQzs7SUFtRHhCLENBQUM7SUF6Q0csc0JBQU0sR0FBTjtRQUNJLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUsdUVBQXVFO1FBQ3ZFLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLDRFQUE0RTtRQUM1RSx5Q0FBeUM7SUFDN0MsQ0FBQztJQUdELHFCQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsNkJBQWEsR0FBYixVQUFpQixHQUFNO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELG9CQUFJLEdBQUosVUFBSyxVQUFVLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sR0FBRyxhQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUM1QyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztZQUMvQixJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUMsK0NBQStDO1lBQy9DLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUE7WUFDbEUsSUFBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFDO2dCQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLENBQUMsR0FBRSxLQUFLLENBQUM7Z0JBQ1QsTUFBTTthQUNUO1NBQ0o7SUFFTCxDQUFDO0lBdkZnQixLQUFLO1FBRHpCLE9BQU87T0FDYSxLQUFLLENBeUZ6QjtJQUFELFlBQUM7Q0F6RkQsQUF5RkMsQ0F6RmtDLEVBQUUsQ0FBQyxTQUFTLEdBeUY5QztrQkF6Rm9CLEtBQUsiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29sbGlzaW9uRGV0ZWN0aW9uIGZyb20gXCIuL0NvbGxpc2lvbkRldGVjdGlvblwiO1xyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJsb2NrIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICAvLyDmlrDlop7nvJPlrZjlj5jph49cclxuICAgIHByaXZhdGUgc2VsZkJveENvbGxpZGVyczogY2MuQm94Q29sbGlkZXJbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBhbGxCb3hDb2xsaWRlcnM6IGNjLkJveENvbGxpZGVyW10gPSBbXTtcclxuICAgIC8vIEBwcm9wZXJ0eSh7XHJcbiAgICAvLyAgICAgdG9vbHRpcDogJ+eisOaSnuW9oueKtu+8jE5vbmXlsLHmmK/ml6DmlYzvvIzkuI3lj4LkuI7norDmkp4nLFxyXG4gICAgLy8gICAgIHR5cGU6IGNjLkVudW0oQmxvY2tUeXBlKSxcclxuICAgIC8vICAgICAvLyBkZWZhdWx0OiBCbG9ja1R5cGUuTm9tYWwsXHJcbiAgICAvLyAgICAgZGlzcGxheU5hbWU6ICfnorDmkp7lvaLnirYnXHJcbiAgICAvLyB9KVxyXG5cclxuXHJcblxyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG4gICAgLy8gQHByb3BlcnR5KGNjLlNwcml0ZUF0bGFzKVxyXG4gICAgLy8gVUk6IGNjLlNwcml0ZUF0bGFzID0gbnVsbDtcclxuICAgIHByaXZhdGUgaW5pdGlhbFRvdWNoT2Zmc2V0OiBjYy5WZWMyID0gbnVsbDtcclxuICAgIHByaXZhdGUgb2Zmc2V0VG9sZXJhbmNlID0gMTAwOyAvLyDlgY/np7vlrrnlv43luqY7IFxyXG5cclxuICAgIGFsbEJsb2Nrczphbnk7ICAgICAgIC8v5omA5pyJ55qE5pa55Z2XLOeUqOS6juiuoeeul3Bvc1gscG9zWea2iOmZpFxyXG4gICAgdG91Y2hQb2ludDogY2MuVmVjMiA9IG51bGw7ICAgICAvL+inpuaRuOeCuVxyXG4gICAgaXNUb3VjaDogYm9vbGVhbiA9IGZhbHNlOyAgICAgICAvL+aYr+WQpuinpuaRuFxyXG4gICAgcG9zWDogbnVtYmVyID0gMDsgICAgICAgICAgICAgICAvL+WcsOWbvuWdl+eahFjlnZDmoIdcclxuICAgIHBvc1k6IG51bWJlciA9IDA7ICAgICAgICAgICAgICAgLy/lnLDlm77lnZfnmoRZ5Z2Q5qCHXHJcbiAgICBtb3ZlTGVmdDogYm9vbGVhbiA9IHRydWU7ICAgICAgLy/mmK/lkKblj6/ku6Xlt6bnp7s7XHJcbiAgICBtb3ZlUmlnaHQ6IGJvb2xlYW4gPSB0cnVlOyAgICAgLy/mmK/lkKblj6/ku6Xlj7Pnp7s7XHJcbiAgICBtb3ZlVXA6IGJvb2xlYW4gPSB0cnVlOyAgICAgICAgLy/mmK/lkKblj6/ku6XkuIrnp7s7XHJcbiAgICBtb3ZlRG93bjogYm9vbGVhbiA9IHRydWU7ICAgICAgLy/mmK/lkKblj6/ku6XkuIvnp7s7XHJcbiAgICBtb3ZlQ29ybmVyOiBudW1iZXIgPSAwOyAgICAgICAgLy/mmK/lkKbnorDmkp7op5LokL1cclxuICAgIG1vdmVZOm51bWJlciA9IDA7ICAgICAgICAgIC8v5piv5ZCm5Y+v5Lul5LiK5LiL56e75YqoO1xyXG4gICAgbW92ZVg6bnVtYmVyID0gMDsgICAgICAgICAgLy/mmK/lkKblj6/ku6Xlt6blj7Pnp7vliqg7XHJcbiAgICB0b3VjaFBvaW50WDogbnVtYmVyID0gMDsgICAgICAgIC8v6Kem5pG454K5WOWdkOaghztcclxuICAgIHRvdWNoUG9pbnRZOiBudW1iZXIgPSAwOyAgICAgICAgLy/op6bmkbjngrlZ5Z2Q5qCHO1xyXG4gICAgYmxvY2tJZDogbnVtYmVyID0gMDsgICAgICAgICAgICAvL+aWueWdl0lEO1xyXG4gICAgc3RhY2tpbmc6IGNjLlZlYzI7ICAgICAgICAvL+WPoOWKoOaWueWdl1xyXG4gICAgbGV2ZWw6IG51bWJlciA9IDA7ICAgICAgICAgICAgLy/lj6DliqDmlrnlnZflsYLmlbA7XHJcbiAgICBwejogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgY29sbGlkZXI6IGFueTtcclxuICAgIGJsb2NrX0luZm86YW55O1xyXG4gICAgX3RvdWNoTGlzdGVuZXI6IGFueTtcclxuICAgIHJlbGF0aXZlX1Bvc2l0aW9uOmNjLlZlYzI7ICAvL+eCueWHu+WSjOaWueWdl+ebuOWvueS9jee9rlxyXG4gICAgcHJpdmF0ZSBfZXZlbnRNYW5hZ2VyOiBhbnk7XHJcbiAgICBoaXQ6IGNjLk5vZGU7XHJcblxyXG5cclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9TVEFSVCwgdGhpcy50b3VjaFN0YXJ0LCB0aGlzKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfTU9WRSwgdGhpcy50b3VjaE1vdmUsIHRoaXMpOyAgXHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0NBTkNFTCwgdGhpcy50b3VjaEVuZCwgdGhpcyk7ICBcclxuICAgICAgICAvLyB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfRU5ELCB0aGlzLnRvdWNoRW5kLCB0aGlzKTsgIFxyXG4gICAgICAgIHRoaXMucHogPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0YWNraW5nID0gY2MudjIoMCwwKTtcclxuICAgICAgICAvLyB0aGlzLnNlbGZCb3hDb2xsaWRlcnMgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50c0luQ2hpbGRyZW4oY2MuQm94Q29sbGlkZXIpXHJcbiAgICAgICAgLy8gLmZpbHRlcihjb2xsaWRlciA9PiBjb2xsaWRlci50YWcgPCA0KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBqc29uRGVlcENsb25lPFQ+KG9iajogVCk6IFQge1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQoYmxvY2tfSW5mbyxwb3NYLHBvc1ksbm9kZSl7XHJcbiAgICAgICAgdGhpcy5ibG9ja19JbmZvID0gdGhpcy5qc29uRGVlcENsb25lKGJsb2NrX0luZm8pO1xyXG4gICAgICAgIGxldCBtYXBJbmZvID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEluZm87XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8bWFwSW5mby5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGxldCBibG9ja1JlY3QgPSBtYXBJbmZvW2ldLmdldEJvdW5kaW5nQm94KCk7XHJcbiAgICAgICAgICAgIC8vIOS9v+eUqCBjYy5JbnRlcnNlY3Rpb24ucG9pbnRJblJlY3Qg5pa55rOV5Yik5pat54K55piv5ZCm5Zyo55+p5b2i6IyD5Zu05YaFXHJcbiAgICAgICAgICAgIGxldCBwb2ludCA9IGNjLnYyKHRoaXMubm9kZS5wb3NpdGlvbi54LTUsIHRoaXMubm9kZS5wb3NpdGlvbi55KzEwKVxyXG4gICAgICAgICAgICBpZihibG9ja1JlY3QuY29udGFpbnMocG9pbnQpKXtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zWCA9IG1hcEluZm9baV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWDtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zWSA9IG1hcEluZm9baV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGV2ZWwgPSA1MCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnpJbmRleCA9IHRoaXMubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUueCA9IG1hcEluZm9baV0ueCArIDY1O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgPSBtYXBJbmZvW2ldLnkgLSA2MDtcclxuICAgICAgICAgICAgICAgIGk9IDEwMDAwO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuXHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/prop/Boom.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '3c749iEEwlAMKPyjGEkwU2l', 'Boom'); +// Script/prop/Boom.ts "use strict"; // Learn TypeScript: @@ -13197,47 +11973,60 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, }; Object.defineProperty(exports, "__esModule", { value: true }); var Map_1 = require("../Map"); +var NumberToImage_1 = require("../NumberToImage"); var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var Star = /** @class */ (function (_super) { - __extends(Star, _super); - function Star() { +var Boom = /** @class */ (function (_super) { + __extends(Boom, _super); + function Boom() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.time = 60; - // mapInfo: number[][] = []; - _this.star_SpriteFrame = null; return _this; // update (dt) {} } - Star.prototype.onLoad = function () { + // mapInfo: number[][] = []; + Boom.prototype.onLoad = function () { }; - Star.prototype.start = function () { + Boom.prototype.start = function () { }; - Star.prototype.init = function (time) { + Boom.prototype.init = function (time) { if (time) this.time = time; this.node.getChildByName("time").active = true; - this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString(); + NumberToImage_1.default.numberToImageNodes(this.time, 20, 8, "lock_", this.node.getChildByName("time"), false); + // this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString(); + }; + Boom.prototype.startBoom = function () { this.schedule(this.updateTime, 1); }; - Star.prototype.updateTime = function () { + Boom.prototype.stopBoom = function () { + this.unschedule(this.updateTime); + this.node.parent.getComponent("Block").resetFreeze(); + this.node.destroy(); + }; + Boom.prototype.updateTime = function () { + var _this = this; this.time--; - this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString(); + NumberToImage_1.default.numberToImageNodes(this.time, 20, 8, "lock_", this.node.getChildByName("time"), false); if (this.time <= 0) { this.unschedule(this.updateTime); - this.node.destroy(); - Map_1.default._instance.failLevel(); + this.node.getChildByName("zhandan").active = true; + var skeleton = this.node.getChildByName("zhandan").getComponent(sp.Skeleton); + skeleton.setAnimation(1, "eff", false); + // 监听动画完成事件 + skeleton.setCompleteListener(function () { + // 动画播放完成后销毁节点 + _this.node.destroy(); + }); + Map_1.default._instance.failLevel("boom"); // this.node.destroy(); } }; - __decorate([ - property(cc.SpriteAtlas) - ], Star.prototype, "star_SpriteFrame", void 0); - Star = __decorate([ + Boom = __decorate([ ccclass - ], Star); - return Star; + ], Boom); + return Boom; }(cc.Component)); -exports.default = Star; +exports.default = Boom; cc._RF.pop(); } @@ -13250,13 +12039,13 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxTdGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxGLDhCQUFpQztBQUUzQixJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUsxQztJQUFrQyx3QkFBWTtJQUE5QztRQUFBLHFFQW1DQztRQWpDRyxVQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLDRCQUE0QjtRQUU1QixzQkFBZ0IsR0FBbUIsSUFBSSxDQUFDOztRQTRCeEMsaUJBQWlCO0lBQ3JCLENBQUM7SUEzQkcscUJBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCxvQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELG1CQUFJLEdBQUosVUFBSyxJQUFJO1FBQ0wsSUFBRyxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBR0QseUJBQVUsR0FBVjtRQUNJLElBQUksQ0FBQyxJQUFJLEVBQUcsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEYsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsYUFBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQyx1QkFBdUI7U0FDMUI7SUFDTCxDQUFDO0lBMUJEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7a0RBQ2U7SUFOdkIsSUFBSTtRQUR4QixPQUFPO09BQ2EsSUFBSSxDQW1DeEI7SUFBRCxXQUFDO0NBbkNELEFBbUNDLENBbkNpQyxFQUFFLENBQUMsU0FBUyxHQW1DN0M7a0JBbkNvQixJQUFJIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuLi9NYXBcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdGFyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDYwO1xyXG5cclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVBdGxhcylcclxuICAgIHN0YXJfU3ByaXRlRnJhbWU6IGNjLlNwcml0ZUF0bGFzID0gbnVsbDtcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgIH0gXHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQodGltZSl7XHJcbiAgICAgICAgaWYodGltZSkgdGhpcy50aW1lID0gdGltZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMudGltZS50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy51cGRhdGVUaW1lLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIHVwZGF0ZVRpbWUoKXtcclxuICAgICAgICB0aGlzLnRpbWUgLS07XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMudGltZS50b1N0cmluZygpO1xyXG4gICAgICAgIGlmKHRoaXMudGltZSA8PSAwKXtcclxuICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMudXBkYXRlVGltZSk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5mYWlsTGV2ZWwoKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxCb29tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxGLDhCQUFpQztBQUNqQyxrREFBNkM7QUFFdkMsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFLMUM7SUFBa0Msd0JBQVk7SUFBOUM7UUFBQSxxRUFtREM7UUFqREcsVUFBSSxHQUFXLEVBQUUsQ0FBQzs7UUFnRGxCLGlCQUFpQjtJQUNyQixDQUFDO0lBL0NHLDRCQUE0QjtJQUU1QixxQkFBTSxHQUFOO0lBRUEsQ0FBQztJQUVELG9CQUFLLEdBQUw7SUFDQSxDQUFDO0lBRUQsbUJBQUksR0FBSixVQUFLLElBQUk7UUFDTCxJQUFHLElBQUk7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzdDLHVCQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUNsRyx5RkFBeUY7SUFFN0YsQ0FBQztJQUVELHdCQUFTLEdBQVQ7UUFDSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELHVCQUFRLEdBQVI7UUFDSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBR0QseUJBQVUsR0FBVjtRQUFBLGlCQWdCQztRQWZHLElBQUksQ0FBQyxJQUFJLEVBQUcsQ0FBQztRQUNiLHVCQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUNoRyxJQUFHLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFDO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNsRCxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9FLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxXQUFXO1lBQ1gsUUFBUSxDQUFDLG1CQUFtQixDQUFDO2dCQUN6QixjQUFjO2dCQUNkLEtBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7WUFDSCxhQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4Qyx1QkFBdUI7U0FDMUI7SUFDTCxDQUFDO0lBaERnQixJQUFJO1FBRHhCLE9BQU87T0FDYSxJQUFJLENBbUR4QjtJQUFELFdBQUM7Q0FuREQsQUFtREMsQ0FuRGlDLEVBQUUsQ0FBQyxTQUFTLEdBbUQ3QztrQkFuRG9CLElBQUkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJvb20gZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG4gICAgdGltZTogbnVtYmVyID0gNjA7XHJcblxyXG4gICAgLy8gbWFwSW5mbzogbnVtYmVyW11bXSA9IFtdO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcblxyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCh0aW1lKXtcclxuICAgICAgICBpZih0aW1lKSB0aGlzLnRpbWUgPSB0aW1lO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKHRoaXMudGltZSwyMCw4LFwibG9ja19cIix0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLGZhbHNlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy50aW1lLnRvU3RyaW5nKCk7XHJcbiAgIFxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0Qm9vbSgpe1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy51cGRhdGVUaW1lLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBzdG9wQm9vbSgpe1xyXG4gICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnVwZGF0ZVRpbWUpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzZXRGcmVlemUoKTtcclxuICAgICAgICB0aGlzLm5vZGUuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIFxyXG4gICAgdXBkYXRlVGltZSgpe1xyXG4gICAgICAgIHRoaXMudGltZSAtLTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyh0aGlzLnRpbWUsMjAsOCxcImxvY2tfXCIsdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKSxmYWxzZSk7XHJcbiAgICAgICAgaWYodGhpcy50aW1lIDw9IDApe1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy51cGRhdGVUaW1lKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemhhbmRhblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zdCBza2VsZXRvbiA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpoYW5kYW5cIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKTtcclxuICAgICAgICAgICAgc2tlbGV0b24uc2V0QW5pbWF0aW9uKDEsXCJlZmZcIixmYWxzZSk7XHJcbiAgICAgICAgICAgIC8vIOebkeWQrOWKqOeUu+WujOaIkOS6i+S7tlxyXG4gICAgICAgICAgICBza2VsZXRvbi5zZXRDb21wbGV0ZUxpc3RlbmVyKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvuWujOaIkOWQjumUgOavgeiKgueCuVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5mYWlsTGV2ZWwoXCJib29tXCIpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUuZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== //------QC-SOURCE-SPLIT------ (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/lq_base/util/lq_pool_util.js'; + var __filename = 'preview-scripts/assets/Script/prop/Freeze.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -13264,416 +12053,1070 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '984882e2dpD17LvCQnTDykE', 'lq_pool_util'); -// Script/lq_base/util/lq_pool_util.ts +cc._RF.push(module, 'ad8cbbzCohCR5uifssdRTf+', 'Freeze'); +// Script/prop/Freeze.ts "use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; Object.defineProperty(exports, "__esModule", { value: true }); -exports.LQPoolUtil = void 0; -var Animation = cc.Animation; -var ParticleSystem = cc.ParticleSystem; -var instantiate = cc.instantiate; -var LQPoolUtil = /** @class */ (function () { - function LQPoolUtil() { +var NumberToImage_1 = require("../NumberToImage"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var Freeze = /** @class */ (function (_super) { + __extends(Freeze, _super); + function Freeze() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.time = 60; + _this.freeze = null; + return _this; + // update (dt) {} } - LQPoolUtil.reset_ani = function (node) { - var ani = node.getComponent(Animation); - if (ani) { - var clip = ani.currentClip ? ani.currentClip : ani.defaultClip; - if (!clip) { - return; - } - if (ani.playOnLoad && clip && clip.wrapMode === cc.WrapMode.Normal) { - ani.play(clip.name); - } - } - else { - var ani_1 = node.getComponent(sp.Skeleton); - if (ani_1 && !ani_1.loop) { - ani_1.setAnimation(0, ani_1.animation, false); - } - } - for (var i = 0; i < node.childrenCount; i++) { - var child = node.children[i]; - this.reset_ani(child); - } + // mapInfo: number[][] = []; + Freeze.prototype.onLoad = function () { }; - LQPoolUtil.recursion_stop_particle = function (node, obj) { - var p = node.getComponent(ParticleSystem); - if (p) { - p.stopSystem(); - obj.has = true; - p.node.opacity = 0; - } - for (var i = 0; i < node.childrenCount; i++) { - var child = node.children[i]; - this.recursion_stop_particle(child, obj); - } + Freeze.prototype.start = function () { }; - LQPoolUtil.recursion_reset_particle = function (node) { - if (!node.isValid) { - return; - } - var p = node.getComponent(ParticleSystem); - if (p) { - p.resetSystem(); - p.node.opacity = 255; - } - for (var i = 0; i < node.childrenCount; i++) { - var child = node.children[i]; - this.recursion_reset_particle(child); - } + Freeze.prototype.init = function (time, type) { + if (time) + this.time = time; + this.node.getChildByName("time").active = true; + NumberToImage_1.default.numberToImageNodes(this.time, 40, 25, "ice_", this.node.getChildByName("time"), false); + // this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString(); }; - LQPoolUtil.get_node_from_pool = function (node_parent, prefab) { - var arr = this.any_pool[prefab.uuid]; - if (!arr) { - this.any_pool[prefab.uuid] = []; - arr = []; - } - var node = arr.pop(); - if (!node || !node.isValid) { - node = instantiate(prefab); - //@ts-ignore - node.recovery_uuid = prefab.uuid; - //@ts-ignore - node.is_from_pool = false; - node_parent.addChild(node); - } - else { - node.active = true; - //@ts-ignore - node.is_from_pool = true; - this.reset_ani(node); - } - return node; - }; - LQPoolUtil.check_pool_push = function (arr, node) { - for (var i = 0; i < arr.length; i++) { - if (arr[i] === node) { - //@ts-ignore - console.warn("\u6C60\u5B50\u4E0D\u80FD\u91CD\u590D\u6DFB\u52A0\u8282\u70B9", node.name, node.recovery_uuid); - return; - } - } - node.active = false; - arr.push(node); - }; - LQPoolUtil.push_node_to_pool = function (node) { + Freeze.prototype.reduce = function (number) { var _this = this; - //@ts-ignore - if (!node.recovery_uuid || !this.any_pool[node.recovery_uuid]) { - if (node.isValid) { - node.destroy(); + this.time -= number; + if (this.time <= 0) + this.time = 0; + NumberToImage_1.default.numberToImageNodes(this.time, 40, 25, "ice_", this.node.getChildByName("time"), false); + // this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString(); + if (this.time <= 0) { + this.node.getChildByName("bingkuai").active = true; + var skeleton = this.node.getChildByName("bingkuai").getComponent(sp.Skeleton); + skeleton.setAnimation(1, "bingkuai", false); + this.node.getChildByName("icon").active = true; + this.node.getChildByName("time").active = false; + cc.tween(this.node.getChildByName("icon")) + .to(0.5, { opacity: 0 }) + .start(); + // this.node.getChildByName("icon").getComponent(cc.Sprite).setMaterial(0,this.freeze); + // this.node.children.forEach(element => { + // element.destroy(); + // }); + setTimeout(function () { + _this.node.parent.getComponent("Block").resetFreeze(); + _this.node.destroy(); + _this.node.removeFromParent(); + }, 600); + } + }; + __decorate([ + property(cc.Material) + ], Freeze.prototype, "freeze", void 0); + Freeze = __decorate([ + ccclass + ], Freeze); + return Freeze; +}(cc.Component)); +exports.default = Freeze; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxGcmVlemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHbEYsa0RBQTZDO0FBRXZDLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSzFDO0lBQW9DLDBCQUFZO0lBQWhEO1FBQUEscUVBc0RDO1FBcERHLFVBQUksR0FBVyxFQUFFLENBQUM7UUFHbEIsWUFBTSxHQUFnQixJQUFJLENBQUM7O1FBZ0QzQixpQkFBaUI7SUFDckIsQ0FBQztJQS9DRyw0QkFBNEI7SUFFNUIsdUJBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCxzQkFBSyxHQUFMO0lBRUEsQ0FBQztJQUVELHFCQUFJLEdBQUosVUFBSyxJQUFJLEVBQUMsSUFBSTtRQUNWLElBQUcsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDL0MsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hHLHlGQUF5RjtJQUU3RixDQUFDO0lBRUQsdUJBQU0sR0FBTixVQUFPLE1BQU07UUFBYixpQkF5QkM7UUF4QkcsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUM7UUFDcEIsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtRQUNoQyx1QkFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEcseUZBQXlGO1FBQ3pGLElBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25ELElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEYsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNoRCxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN6QyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUN2QixLQUFLLEVBQUUsQ0FBQztZQUVULHVGQUF1RjtZQUN2RiwwQ0FBMEM7WUFDMUMseUJBQXlCO1lBQ3pCLE1BQU07WUFDTixVQUFVLENBQUM7Z0JBQ1AsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyRCxLQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixLQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDakMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7SUFDTCxDQUFDO0lBN0NEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7MENBQ0s7SUFMVixNQUFNO1FBRDFCLE9BQU87T0FDYSxNQUFNLENBc0QxQjtJQUFELGFBQUM7Q0F0REQsQUFzREMsQ0F0RG1DLEVBQUUsQ0FBQyxTQUFTLEdBc0QvQztrQkF0RG9CLE1BQU0iLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZyZWV6ZSBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgX2luc3RhbmNlOiBhbnk7XHJcbiAgICB0aW1lOiBudW1iZXIgPSA2MDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTWF0ZXJpYWwpXHJcbiAgICBmcmVlemU6IGNjLk1hdGVyaWFsID0gbnVsbDtcclxuXHJcbiAgICAvLyBtYXBJbmZvOiBudW1iZXJbXVtdID0gW107XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuXHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCh0aW1lLHR5cGUpe1xyXG4gICAgICAgIGlmKHRpbWUpIHRoaXMudGltZSA9IHRpbWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKHRoaXMudGltZSw0MCwyNSxcImljZV9cIix0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLGZhbHNlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy50aW1lLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJlZHVjZShudW1iZXIpe1xyXG4gICAgICAgIHRoaXMudGltZSAtPSBudW1iZXI7XHJcbiAgICAgICAgaWYodGhpcy50aW1lIDw9IDApIHRoaXMudGltZSA9IDBcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyh0aGlzLnRpbWUsNDAsMjUsXCJpY2VfXCIsdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKSxmYWxzZSk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMudGltZS50b1N0cmluZygpO1xyXG4gICAgICAgIGlmKHRoaXMudGltZSA8PSAwKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYmluZ2t1YWlcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgY29uc3Qgc2tlbGV0b24gPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJiaW5na3VhaVwiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xyXG4gICAgICAgICAgICBza2VsZXRvbi5zZXRBbmltYXRpb24oMSxcImJpbmdrdWFpXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikpXHJcbiAgICAgICAgICAgIC50bygwLjUsIHsgb3BhY2l0eTogMCB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc2V0TWF0ZXJpYWwoMCx0aGlzLmZyZWV6ZSk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5jaGlsZHJlbi5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgZWxlbWVudC5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzZXRGcmVlemUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucmVtb3ZlRnJvbVBhcmVudCgpO1xyXG4gICAgICAgICAgICB9LCA2MDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/prop/Adhesive.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '5fc5bz1aV5PKIBJQh99jpm2', 'Adhesive'); +// Script/prop/Adhesive.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var Adhesive = /** @class */ (function (_super) { + __extends(Adhesive, _super); + function Adhesive() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.time = 60; + _this.pos = { x: 0, y: 0 }; + return _this; + } + Adhesive.prototype.onLoad = function () { + this.pos.x = this.pos.y = 0; + this.target = null; + }; + Adhesive.prototype.start = function () { + }; + Adhesive.prototype.init = function (node) { + this.pos.x = node.x - this.node.x; + this.pos.y = node.y - this.node.y; + this.target = node; + }; + Adhesive.prototype.remove = function () { + var _this = this; + this.target = null; + for (var j = 0; j < this.node.children.length; j++) { + if (this.node.children[j].active == true) { + this.node.children[j].getComponent(sp.Skeleton).setAnimation(0, "animation", false); + } + } + setTimeout(function () { + _this.node.active = false; + }, 2000); + }; + Adhesive.prototype.update = function (dt) { + if (this.target != null) { + this.node.x = this.target.x - this.pos.x; + this.node.y = this.target.y - this.pos.y; + } + }; + Adhesive = __decorate([ + ccclass + ], Adhesive); + return Adhesive; +}(cc.Component)); +exports.default = Adhesive; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxBZGhlc2l2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUk1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUsxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXVDQztRQXJDRyxVQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFNBQUcsR0FBUSxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDOztJQW9DNUIsQ0FBQztJQWpDRyx5QkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx3QkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELHVCQUFJLEdBQUosVUFBSyxJQUFJO1FBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx5QkFBTSxHQUFOO1FBQUEsaUJBVUM7UUFURyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixLQUFJLElBQUksQ0FBQyxHQUFFLENBQUMsRUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO1lBQzNDLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksRUFBQztnQkFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLFdBQVcsRUFBQyxLQUFLLENBQUMsQ0FBQzthQUNyRjtTQUNKO1FBQ0QsVUFBVSxDQUFDO1lBQ1AsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQzdCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNiLENBQUM7SUFHRCx5QkFBTSxHQUFOLFVBQVEsRUFBRTtRQUNOLElBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUM7SUFDTCxDQUFDO0lBdENnQixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBdUM1QjtJQUFELGVBQUM7Q0F2Q0QsQUF1Q0MsQ0F2Q3FDLEVBQUUsQ0FBQyxTQUFTLEdBdUNqRDtrQkF2Q29CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFkaGVzaXZlIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDYwO1xyXG4gICAgcG9zOiBhbnkgPSB7eDogMCwgeTogMH07XHJcbiAgICB0YXJnZXQ6IGFueTtcclxuXHJcbiAgICBvbkxvYWQgKCkgeyBcclxuICAgICAgICB0aGlzLnBvcy54ID0gdGhpcy5wb3MueSA9IDA7XHJcbiAgICAgICAgdGhpcy50YXJnZXQgPSBudWxsO1xyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChub2RlKXtcclxuICAgICAgICB0aGlzLnBvcy54ID0gbm9kZS54IC0gdGhpcy5ub2RlLng7XHJcbiAgICAgICAgdGhpcy5wb3MueSA9IG5vZGUueSAtIHRoaXMubm9kZS55O1xyXG4gICAgICAgIHRoaXMudGFyZ2V0ID0gbm9kZTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmUoKXtcclxuICAgICAgICB0aGlzLnRhcmdldCA9IG51bGw7XHJcbiAgICAgICAgZm9yKGxldCBqID0wOyBqPHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGg7IGorKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5jaGlsZHJlbltqXS5hY3RpdmUgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuY2hpbGRyZW5bal0uZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMCxcImFuaW1hdGlvblwiLGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH0sIDIwMDApO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICB1cGRhdGUgKGR0KSB7XHJcbiAgICAgICAgaWYodGhpcy50YXJnZXQgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS54ID0gdGhpcy50YXJnZXQueCAtIHRoaXMucG9zLng7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS55ID0gdGhpcy50YXJnZXQueSAtIHRoaXMucG9zLnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/lq_collide_system/lq_collide_config.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '4bd21i88J9KfoWB6fqk7oW1', 'lq_collide_config'); +// Script/lq_collide_system/lq_collide_config.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LQCollideConfig = exports.LQCollideInfoList = void 0; +var LQCollideInfoList; +(function (LQCollideInfoList) { + LQCollideInfoList[LQCollideInfoList["default"] = 0] = "default"; + LQCollideInfoList[LQCollideInfoList["role"] = 1] = "role"; + LQCollideInfoList[LQCollideInfoList["role_bullet"] = 2] = "role_bullet"; + LQCollideInfoList[LQCollideInfoList["enemy"] = 3] = "enemy"; + LQCollideInfoList[LQCollideInfoList["enemy_bullet"] = 4] = "enemy_bullet"; + LQCollideInfoList[LQCollideInfoList["prop"] = 5] = "prop"; +})(LQCollideInfoList = exports.LQCollideInfoList || (exports.LQCollideInfoList = {})); +var LQCollideConfig = /** @class */ (function () { + function LQCollideConfig() { + } + LQCollideConfig.switch_auto_run = true; + LQCollideConfig.switch_print_log = true; + LQCollideConfig.switch_quad_tree = false; + LQCollideConfig.max_node_len = 10; + LQCollideConfig.per_frame = 60; + LQCollideConfig.max_node_level = 4; + LQCollideConfig.active_area_x = 0; + LQCollideConfig.active_area_y = 0; + LQCollideConfig.active_area_width = 1000; + LQCollideConfig.active_area_height = 1000; + LQCollideConfig.collide_group_map = { + "default": { id: 1, category: 1, index: 0, mask: 1 }, + "role": { id: 2, category: 2, index: 1, mask: 56 }, + "role_bullet": { id: 3, category: 4, index: 2, mask: 8 }, + "enemy": { id: 4, category: 8, index: 3, mask: 6 }, + "enemy_bullet": { id: 5, category: 16, index: 4, mask: 2 }, + "prop": { id: 6, category: 32, index: 5, mask: 2 }, + }; + return LQCollideConfig; +}()); +exports.LQCollideConfig = LQCollideConfig; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9jb2xsaWRlX3N5c3RlbVxcbHFfY29sbGlkZV9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBWSxpQkFFWDtBQUZELFdBQVksaUJBQWlCO0lBQ3pCLCtEQUFPLENBQUE7SUFBRSx5REFBSSxDQUFBO0lBQUUsdUVBQVcsQ0FBQTtJQUFFLDJEQUFLLENBQUE7SUFBRSx5RUFBWSxDQUFBO0lBQUUseURBQUksQ0FBQTtBQUN6RCxDQUFDLEVBRlcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFFNUI7QUFFRDtJQUFBO0lBbUJBLENBQUM7SUFsQmlCLCtCQUFlLEdBQVksSUFBSSxDQUFDO0lBQ2hDLGdDQUFnQixHQUFZLElBQUksQ0FBQztJQUNqQyxnQ0FBZ0IsR0FBWSxLQUFLLENBQUM7SUFDbEMsNEJBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIseUJBQVMsR0FBVyxFQUFFLENBQUM7SUFDdkIsOEJBQWMsR0FBVyxDQUFDLENBQUM7SUFDM0IsNkJBQWEsR0FBVyxDQUFDLENBQUM7SUFDMUIsNkJBQWEsR0FBVyxDQUFDLENBQUM7SUFDMUIsaUNBQWlCLEdBQVcsSUFBSSxDQUFDO0lBQ2pDLGtDQUFrQixHQUFXLElBQUksQ0FBQztJQUNsQyxpQ0FBaUIsR0FBRztRQUM5QixTQUFTLEVBQUUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFDO1FBQ2xELE1BQU0sRUFBRSxFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUM7UUFDaEQsYUFBYSxFQUFFLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBQztRQUN0RCxPQUFPLEVBQUUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFDO1FBQ2hELGNBQWMsRUFBRSxFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUM7UUFDeEQsTUFBTSxFQUFFLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBQztLQUNuRCxDQUFBO0lBQ0wsc0JBQUM7Q0FuQkQsQUFtQkMsSUFBQTtBQW5CWSwwQ0FBZSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIExRQ29sbGlkZUluZm9MaXN0IHtcclxuICAgIGRlZmF1bHQsIHJvbGUsIHJvbGVfYnVsbGV0LCBlbmVteSwgZW5lbXlfYnVsbGV0LCBwcm9wXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMUUNvbGxpZGVDb25maWcge1xyXG4gICAgcHVibGljIHN0YXRpYyBzd2l0Y2hfYXV0b19ydW46IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgcHVibGljIHN0YXRpYyBzd2l0Y2hfcHJpbnRfbG9nOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHB1YmxpYyBzdGF0aWMgc3dpdGNoX3F1YWRfdHJlZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHN0YXRpYyBtYXhfbm9kZV9sZW46IG51bWJlciA9IDEwO1xyXG4gICAgcHVibGljIHN0YXRpYyBwZXJfZnJhbWU6IG51bWJlciA9IDYwO1xyXG4gICAgcHVibGljIHN0YXRpYyBtYXhfbm9kZV9sZXZlbDogbnVtYmVyID0gNDtcclxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aXZlX2FyZWFfeDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aXZlX2FyZWFfeTogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aXZlX2FyZWFfd2lkdGg6IG51bWJlciA9IDEwMDA7XHJcbiAgICBwdWJsaWMgc3RhdGljIGFjdGl2ZV9hcmVhX2hlaWdodDogbnVtYmVyID0gMTAwMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgY29sbGlkZV9ncm91cF9tYXAgPSB7XHJcbiAgICAgICAgXCJkZWZhdWx0XCI6IHtpZDogMSwgY2F0ZWdvcnk6IDEsIGluZGV4OiAwLCBtYXNrOiAxfSxcclxuICAgICAgICBcInJvbGVcIjoge2lkOiAyLCBjYXRlZ29yeTogMiwgaW5kZXg6IDEsIG1hc2s6IDU2fSxcclxuICAgICAgICBcInJvbGVfYnVsbGV0XCI6IHtpZDogMywgY2F0ZWdvcnk6IDQsIGluZGV4OiAyLCBtYXNrOiA4fSxcclxuICAgICAgICBcImVuZW15XCI6IHtpZDogNCwgY2F0ZWdvcnk6IDgsIGluZGV4OiAzLCBtYXNrOiA2fSxcclxuICAgICAgICBcImVuZW15X2J1bGxldFwiOiB7aWQ6IDUsIGNhdGVnb3J5OiAxNiwgaW5kZXg6IDQsIG1hc2s6IDJ9LFxyXG4gICAgICAgIFwicHJvcFwiOiB7aWQ6IDYsIGNhdGVnb3J5OiAzMiwgaW5kZXg6IDUsIG1hc2s6IDJ9LFxyXG4gICAgfVxyXG59Il19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '7a231Rz0d9LBYYgY3bDYlLB', 'use_v2.1-2.2.1_cc.Toggle_event'); +// migration/use_v2.1-2.2.1_cc.Toggle_event.js + +"use strict"; + +/* + * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version. + * You do not need to manually add this script in any other project. + * If you don't use cc.Toggle in your project, you can delete this script directly. + * If your project is hosted in VCS such as git, submit this script together. + * + * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程, + * 你无需在任何其它项目中手动添加此脚本。 + * 如果你的项目中没用到 Toggle,可直接删除该脚本。 + * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 + */ +if (cc.Toggle) { + // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code + // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 + cc.Toggle._triggerEventInScript_isChecked = true; +} + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnQuanMiXSwibmFtZXMiOlsiY2MiLCJUb2dnbGUiLCJfdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxFQUFFLENBQUNDLE1BQVAsRUFBZTtBQUNYO0FBQ0E7QUFDQUQsRUFBQUEsRUFBRSxDQUFDQyxNQUFILENBQVVDLCtCQUFWLEdBQTRDLElBQTVDO0FBQ0giLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFRoaXMgc2NyaXB0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IENvY29zIENyZWF0b3IgYW5kIGlzIG9ubHkgdXNlZCBmb3IgcHJvamVjdHMgY29tcGF0aWJsZSB3aXRoIHRoZSB2Mi4xLjAg772eIDIuMi4xIHZlcnNpb24uXHJcbiAqIFlvdSBkbyBub3QgbmVlZCB0byBtYW51YWxseSBhZGQgdGhpcyBzY3JpcHQgaW4gYW55IG90aGVyIHByb2plY3QuXHJcbiAqIElmIHlvdSBkb24ndCB1c2UgY2MuVG9nZ2xlIGluIHlvdXIgcHJvamVjdCwgeW91IGNhbiBkZWxldGUgdGhpcyBzY3JpcHQgZGlyZWN0bHkuXHJcbiAqIElmIHlvdXIgcHJvamVjdCBpcyBob3N0ZWQgaW4gVkNTIHN1Y2ggYXMgZ2l0LCBzdWJtaXQgdGhpcyBzY3JpcHQgdG9nZXRoZXIuXHJcbiAqXHJcbiAqIOatpOiEmuacrOeUsSBDb2NvcyBDcmVhdG9yIOiHquWKqOeUn+aIkO+8jOS7heeUqOS6juWFvOWuuSB2Mi4xLjAgfiAyLjIuMSDniYjmnKznmoTlt6XnqIvvvIxcclxuICog5L2g5peg6ZyA5Zyo5Lu75L2V5YW25a6D6aG555uu5Lit5omL5Yqo5re75Yqg5q2k6ISa5pys44CCXHJcbiAqIOWmguaenOS9oOeahOmhueebruS4reayoeeUqOWIsCBUb2dnbGXvvIzlj6/nm7TmjqXliKDpmaTor6XohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5pyJ5omY566h5LqOIGdpdCDnrYnniYjmnKzlupPvvIzor7flsIbmraTohJrmnKzkuIDlubbkuIrkvKDjgIJcclxuICovXHJcblxyXG5pZiAoY2MuVG9nZ2xlKSB7XHJcbiAgICAvLyBXaGV0aGVyIHRvIHRyaWdnZXIgJ3RvZ2dsZScgYW5kICdjaGVja0V2ZW50cycgZXZlbnRzIHdoZW4gbW9kaWZ5aW5nICd0b2dnbGUuaXNDaGVja2VkJyBpbiB0aGUgY29kZVxyXG4gICAgLy8g5Zyo5Luj56CB5Lit5L+u5pS5ICd0b2dnbGUuaXNDaGVja2VkJyDml7bmmK/lkKbop6blj5EgJ3RvZ2dsZScg5LiOICdjaGVja0V2ZW50cycg5LqL5Lu2XHJcbiAgICBjYy5Ub2dnbGUuX3RyaWdnZXJFdmVudEluU2NyaXB0X2lzQ2hlY2tlZCA9IHRydWU7XHJcbn1cclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/lq_collide_system/lq_collide.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'd2addiRqXVKQ4YEp6sK5d6R', 'lq_collide'); +// Script/lq_collide_system/lq_collide.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LQCollide = void 0; +var ccclass = cc._decorator.ccclass; +var property = cc._decorator.property; +var requireComponent = cc._decorator.requireComponent; +var menu = cc._decorator.menu; +var Component = cc.Component; +var Enum = cc.Enum; +var Size = cc.Size; +var Vec2 = cc.Vec2; +var Graphics = cc.Graphics; +var Node = cc.Node; +var macro = cc.macro; +var Color = cc.Color; +var lq_const_1 = require("../lq_base/data/lq_const"); +var lq_collide_config_1 = require("./lq_collide_config"); +var lq_collide_system_1 = require("./lq_collide_system"); +var lq_data_1 = require("../lq_base/data/lq_data"); +var lq_collide_base_1 = require("./lq_collide_base"); +var lq_game_util_1 = require("../lq_base/util/lq_game_util"); +var Map_1 = require("../Map"); +var LQCollide = /** @class */ (function (_super) { + __extends(LQCollide, _super); + function LQCollide() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._draw_collide = true; + _this.can_move = true; + _this._collide_shape = lq_const_1.LQCollideShape.Rect; + _this._collide_group_index = -1; + _this.collide_group_id = 0; + _this.collide_scle = 1; + _this._radius = 50; + _this._size = new Size(100, 100); + _this._polygon_points = [new Vec2(-45, -45), new Vec2(45, -45), new Vec2(60, 40), new Vec2(0, 70), new Vec2(-60, 40)]; + //collide碰撞位置偏移 + _this._offset = new Vec2(0, 0); + _this.data_string = ''; + //每个collide的id唯一 + _this.collide_id = 0; + //状态 + _this.collide_status = lq_const_1.LQCollideStatus.Idle; + //是否可碰撞 + _this.is_enable = true; + //是否开启碰撞前后的函数 + _this.is_open_func = true; + //碰撞类别 + _this.collide_category = 0; + //碰撞筛选 + _this.collide_mask = 0; + _this.collide_map = {}; + return _this; + } + LQCollide_1 = LQCollide; + Object.defineProperty(LQCollide.prototype, "draw_collide", { + get: function () { + return this._draw_collide; + }, + set: function (value) { + this._draw_collide = value; + this.draw_shape(); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LQCollide.prototype, "collide_shape", { + get: function () { + return this._collide_shape; + }, + set: function (value) { + this._collide_shape = value; + this.draw_shape(); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LQCollide.prototype, "collide_group_index", { + get: function () { + if (this._collide_group_index === -1) { + this._collide_group_index = lq_collide_system_1.LQCollideSystem.get_info_by_id(this.collide_group_id).index; + } + return this._collide_group_index; + }, + set: function (value) { + if (this._collide_group_index === value) { + return; + } + this._collide_group_index = value; + this.collide_group_id = lq_collide_system_1.LQCollideSystem.get_group_by_index(value).id; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LQCollide.prototype, "radius", { + get: function () { + return this._radius; + }, + set: function (value) { + this._radius = value; + this.draw_shape(); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LQCollide.prototype, "size", { + // 物体速度 + // public velocity: Vec2 = new Vec2(0, 0); + get: function () { + return this._size; + }, + set: function (value) { + this._size = value; + if (this.world_rect) { + this.world_rect.width = value.width; + this.world_rect.height = value.height; + this.world_rect.half_width = value.width * 0.5; + this.world_rect.half_height = value.height * 0.5; + } + this.draw_shape(); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LQCollide.prototype, "offset", { + get: function () { + return this._offset; + }, + set: function (value) { + this._offset = value; + this.draw_shape(); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LQCollide.prototype, "polygon_points", { + get: function () { + return this._polygon_points; + }, + set: function (value) { + this._polygon_points = value; + this.draw_shape(); + }, + enumerable: false, + configurable: true + }); + //检测绘制组件是否添加 + LQCollide.prototype.checkDebugDrawValid = function () { + if (!this._debugDrawer || !this._debugDrawer.isValid) { + var node = this.node.getChildByName('Collide'); + if (!node) { + node = new Node('Collide'); + node.zIndex = macro.MAX_ZINDEX; + this.node.addChild(node); + // @ts-ignore + node._objFlags = 1096; + this._debugDrawer = node.addComponent(Graphics); + this._debugDrawer.lineWidth = 3; + this._debugDrawer.strokeColor = new Color(255, 0, 0); + this._debugDrawer.fillColor = new Color(255, 0, 0); + } + else { + this._debugDrawer = node.getComponent(Graphics); + } + } + }; + //绘制形状 + LQCollide.prototype.draw_shape = function () { + if (!this._draw_collide) { + if (this._debugDrawer) { + this._debugDrawer.clear(); } return; } - var obj = { has: false }; - this.recursion_stop_particle(node, obj); - if (obj.has) { - var old_opacity_1 = node.opacity; - node.opacity = 0; - setTimeout(function () { - _this.recursion_reset_particle(node); - node.opacity = old_opacity_1; - //@ts-ignore - _this.check_pool_push(_this.any_pool[node.recovery_uuid], node); - }, 500); + this.checkDebugDrawValid(); + this._debugDrawer.clear(); + var o1 = { key: 'scaleX', value: this.node.scale }; + var o2 = { key: 'scaleY', value: this.node.scale }; + lq_game_util_1.LQGameUtil.recursion_node_property(this.node, o1); + lq_game_util_1.LQGameUtil.recursion_node_property(this.node, o2); + if (o1.value === 0 || o2.value === 0) { + return; + } + this._debugDrawer.node.scaleX = 1 / o1.value; + this._debugDrawer.node.scaleY = 1 / o2.value; + switch (this._collide_shape) { + case lq_const_1.LQCollideShape.Circle: + this._debugDrawer.circle(+this._offset.x, +this._offset.y, this._radius); + this._debugDrawer.stroke(); + break; + case lq_const_1.LQCollideShape.Rect: + this._debugDrawer.moveTo(-this._size.width * 0.5 + this._offset.x, -this._size.height * 0.5 + this._offset.y); + this._debugDrawer.lineTo(-this._size.width * 0.5 + this._offset.x, +this._size.height * 0.5 + this._offset.y); + this._debugDrawer.lineTo(this._size.width * 0.5 + this._offset.x, +this._size.height * 0.5 + this._offset.y); + this._debugDrawer.lineTo(this._size.width * 0.5 + this._offset.x, -this._size.height * 0.5 + this._offset.y); + this._debugDrawer.lineTo(-this._size.width * 0.5 + this._offset.x, -this._size.height * 0.5 + this._offset.y); + this._debugDrawer.stroke(); + break; + case lq_const_1.LQCollideShape.Polygon: + this._debugDrawer.moveTo(this._polygon_points[0].x + this._offset.x, this._polygon_points[0].y + this._offset.y); + for (var i = 1; i < this._polygon_points.length; i++) { + this._debugDrawer.lineTo(this._polygon_points[i].x + this._offset.x, this._polygon_points[i].y + this._offset.y); + } + this._debugDrawer.lineTo(this._polygon_points[0].x + this._offset.x, this._polygon_points[0].y + this._offset.y); + this._debugDrawer.stroke(); + break; + } + }; + //仅用于矩形 + LQCollide.prototype.update_size = function (width, height) { + this._size.width = width; + this.world_rect.width = width; + this.world_rect.half_width = width * 0.5; + this._size.height = height; + this.world_rect.height = height; + this.world_rect.half_height = height * 0.5; + this.draw_shape(); + }; + LQCollide.prototype.init_lq_collide = function () { + this.world_rect = new lq_data_1.LQRect(0, 0, this._size.width, this._size.height); + this.draw_shape(); + var info = lq_collide_system_1.LQCollideSystem.get_info_by_id(this.collide_group_id); + this.collide_mask = info.mask; + this.collide_category = info.category; + this.collide_id = LQCollide_1.id_maker++; + this.updateCollisionArea(); + }; + LQCollide.prototype.updateCollisionArea = function () { + if (this._size.width == 0 || this._size.height == 0 || Map_1.default._instance == undefined) { + return; + } + if (Map_1.default._instance.node.scale) { + var scaleX_1 = Map_1.default._instance.node.scale; + var scaleY_1 = Map_1.default._instance.node.scale; + if (scaleX_1 === 0 || scaleX_1 == undefined || scaleX_1 == null || scaleX_1 == 1) { + return; + } + switch (this._collide_shape) { + case lq_const_1.LQCollideShape.Circle: + // 圆形碰撞区域半径更新 + this._radius = this._radius * Math.max(scaleX_1, scaleY_1); + break; + case lq_const_1.LQCollideShape.Rect: + // 矩形碰撞区域尺寸更新 + // console.log(this.data_string); + if (this._size.width !== 10 && this.data_string != "-1") { + // if(this._size.width == 105 || this._size.height == 105){} + this._size.width = this._size.width * scaleX_1; + // console.log("放大倍数",scaleX); + } + if (this._size.height !== 10 && this.data_string != "-1") { + // if(this._size.width == 105 || this._size.height == 105){} + this._size.height = this._size.height * scaleY_1; + // console.log("放大倍数",scaleY); + } + // this._size.width = this._size.width * scaleX; + // this._size.height = this._size.height * scaleY; + if (this.world_rect) { + this.world_rect.width = this._size.width; + this.world_rect.height = this._size.height; + this.world_rect.half_width = this._size.width * 0.5; + this.world_rect.half_height = this._size.height * 0.5; + } + break; + case lq_const_1.LQCollideShape.Polygon: + // 多边形碰撞点坐标更新 + this._polygon_points = this._polygon_points.map(function (point) { + return new Vec2(point.x * scaleX_1, point.y * scaleY_1); + }); + break; + } + this.draw_shape(); + } + }; + LQCollide.prototype.enable_lq_collide = function () { + if (this.collide_status === lq_const_1.LQCollideStatus.Live) { + console.warn(this.node.name + '重复添加'); + return; + } + this.is_enable = true; + this.collide_status = lq_const_1.LQCollideStatus.Live; + lq_collide_system_1.LQCollideSystem.add_collide(this); + }; + LQCollide.prototype.disable_lq_collide = function () { + if (this.collide_status !== lq_const_1.LQCollideStatus.Live) { + return; + } + this.is_enable = false; + this.collide_status = lq_const_1.LQCollideStatus.Idle; + lq_collide_system_1.LQCollideSystem.remove_collide(this); + }; + LQCollide.prototype.update_lq_collide = function () { + }; + // @ts-ignore + // public on_collide(collide: LQCollide): void { + // if(collide.node.parent.uuid == this.node.parent.uuid){ + // return; + // } + // if (LQCollideConfig.switch_print_log) { + // if(this.node.parent.getComponent("Block")){ + // let block = this.node.parent.getComponent("Block"); + // if(block.isTouch){ + // block.checkCollision = true; + // // console.log("碰撞",this.node.name); + // if(this.node.name == "top" ){ + // console.log("碰到上边缘"); + // block.moveUp = false; + // if(block.touchPointY > (this.node.parent.y+this.node.height)){ + // block.moveY = 1; + // } + // } + // if(this.node.name === "down"){ + // block.moveDown = false; + // console.log("碰到下边缘"); + // if(block.touchPointY < (this.node.parent.y )){ + // block.moveY = -1; + // } + // } + // if(this.node.name === "left" ){ + // block.moveLeft = false; + // console.log("碰到左边缘"); + // if(block.touchPointX < (this.node.parent.x - this.node.parent.width)){ + // block.moveX = -1; + // } + // } + // if(this.node.name === "right"){ + // block.moveRight = false; + // console.log("碰到右边缘"); + // if(block.touchPointX > (this.node.parent.x)){ + // block.moveX = 1; + // } + // } + // } + // } + // } + // } + //@ts-ignore + LQCollide.prototype.on_enter = function (collide) { + if (this.disableCollider(collide)) { + return; + } + // if (LQCollideConfig.switch_print_log) { + // console.log(this.node.name + ' on_enter'); + // } + }; + //@ts-ignore + LQCollide.prototype.on_exit = function (collide) { + if (this.disableCollider(collide)) { + return; + } + if (lq_collide_config_1.LQCollideConfig.switch_print_log) { + if (this.node.parent.getComponent("Block")) { + var block = this.node.parent.getComponent("Block"); + // if(!block.isTouch){ + // return; + // } + block.checkCollision = false; + if (this.node.name == "top") { + block.moveUp = true; + } + if (this.node.name === "down") { + block.moveDown = true; + } + if (this.node.name === "left") { + block.moveLeft = true; + } + if (this.node.name === "right") { + block.moveRight = true; + } + } + } + }; + LQCollide.prototype.on_collide = function (collide) { + if (this.disableCollider(collide)) { + return; + } + if (lq_collide_config_1.LQCollideConfig.switch_print_log) { + if (this.node.parent.getComponent("Block")) { + var block = this.node.parent.getComponent("Block"); + var jg = false; + if (block.isTouch) { + block.checkCollision = true; + // console.log("碰撞",this.node.name); + if (this.node.name == "top") { + // console.log(collide.node.parent.name); + block.moveUp = false; + if (block.touchPointY > (this.node.parent.y + this.node.parent.height)) { + block.moveY = 1; + } + // console.log("碰到上边缘"); + } + if (this.node.name === "down") { + block.moveDown = false; + if (block.touchPointY < (this.node.parent.y)) { + block.moveY = -1; + } + // console.log("碰到下边缘"); + } + if (this.node.name === "left") { + block.moveLeft = false; + if (block.touchPointX < (this.node.parent.x - this.node.parent.width)) { + block.moveX = -1; + } + } + if (this.node.name === "right") { + block.moveRight = false; + if (block.touchPointX > (this.node.parent.x)) { + block.moveX = 1; + } + } + } + } + } + }; + LQCollide.prototype.disableCollider = function (collide) { + var jg = false; + if (collide.node && this.node) { + if (collide.node.parent && this.node.parent) { + if (collide.node.parent.uuid == this.node.parent.uuid) { + jg = true; + } + if (this.node.parent.getComponent("Block")) { + var block = this.node.parent.getComponent("Block"); + if (block.type == 1 || block.type == 10 || block.type == 9) { + if (collide.node.parent == block.block_Info.node) { + jg = true; + } + } + } + } + } + return jg; + }; + var LQCollide_1; + LQCollide.id_maker = 1; + __decorate([ + property({ displayName: '绘制形状' }) + ], LQCollide.prototype, "draw_collide", null); + __decorate([ + property + ], LQCollide.prototype, "_draw_collide", void 0); + __decorate([ + property({ tooltip: '能否移动' }) + ], LQCollide.prototype, "can_move", void 0); + __decorate([ + property({ + tooltip: '碰撞形状,None就是无敌,不参与碰撞', + type: Enum(lq_const_1.LQCollideShape), + displayName: '碰撞形状' + }) + ], LQCollide.prototype, "collide_shape", null); + __decorate([ + property() + ], LQCollide.prototype, "_collide_shape", void 0); + __decorate([ + property({ + type: Enum(lq_collide_config_1.LQCollideInfoList), tooltip: '碰撞类别', + displayName: '碰撞类别' + }) + ], LQCollide.prototype, "collide_group_index", null); + __decorate([ + property({ serializable: false }) + ], LQCollide.prototype, "_collide_group_index", void 0); + __decorate([ + property({ visible: false }) + ], LQCollide.prototype, "collide_group_id", void 0); + __decorate([ + property({ visible: false }) + ], LQCollide.prototype, "collide_scle", void 0); + __decorate([ + property({ + tooltip: 'collide半径', + visible: function () { + // @ts-ignore + return this._collide_shape === lq_const_1.LQCollideShape.Circle; + }, + displayName: '半径' + }) + ], LQCollide.prototype, "radius", null); + __decorate([ + property() + ], LQCollide.prototype, "_radius", void 0); + __decorate([ + property({ + tooltip: 'collide长宽', + visible: function () { + // @ts-ignore + return this._collide_shape === lq_const_1.LQCollideShape.Rect; + }, + displayName: '长宽' + }) + ], LQCollide.prototype, "size", null); + __decorate([ + property() + ], LQCollide.prototype, "_size", void 0); + __decorate([ + property({ displayName: '位置偏移' }) + ], LQCollide.prototype, "offset", null); + __decorate([ + property({ + type: Vec2, + visible: function () { + // @ts-ignore + return this._collide_shape === lq_const_1.LQCollideShape.Polygon; + }, + displayName: '多边形碰撞点' + }) + ], LQCollide.prototype, "polygon_points", null); + __decorate([ + property() + ], LQCollide.prototype, "_polygon_points", void 0); + __decorate([ + property() + ], LQCollide.prototype, "_offset", void 0); + __decorate([ + property({ displayName: '自定义字符串' }) + ], LQCollide.prototype, "data_string", void 0); + LQCollide = LQCollide_1 = __decorate([ + ccclass, + requireComponent(lq_collide_base_1.LQCollideBase), + menu("lq/collide") + ], LQCollide); + return LQCollide; +}(Component)); +exports.LQCollide = LQCollide; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9jb2xsaWRlX3N5c3RlbVxcbHFfY29sbGlkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBTyxPQUFPLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7QUFDdkMsSUFBTyxRQUFRLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7QUFDekMsSUFBTyxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO0FBQ3pELElBQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0FBQ2pDLElBQU8sU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUM7QUFDaEMsSUFBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUN0QixJQUFPLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBQ3RCLElBQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDdEIsSUFBTyxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztBQUM5QixJQUFPLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBQ3RCLElBQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7QUFDeEIsSUFBTyxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztBQUN4QixxREFBeUU7QUFDekUseURBQXVFO0FBQ3ZFLHlEQUFvRDtBQUNwRCxtREFBK0M7QUFDL0MscURBQWdEO0FBQ2hELDZEQUF3RDtBQUN4RCw4QkFBaUM7QUFLakM7SUFBK0IsNkJBQVM7SUFBeEM7UUFBQSxxRUFpZUM7UUFwZGEsbUJBQWEsR0FBWSxJQUFJLENBQUM7UUFHOUIsY0FBUSxHQUFZLElBQUksQ0FBQztRQWtCNUIsb0JBQWMsR0FBbUIseUJBQWMsQ0FBQyxJQUFJLENBQUM7UUFzQnBELDBC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QUFRLENBQUM7WUFDTixPQUFPLEVBQUUsV0FBVztZQUNwQixPQUFPO2dCQUNILGFBQWE7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLHlCQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3ZELENBQUM7WUFDRCxXQUFXLEVBQUUsSUFBSTtTQUNwQixDQUFDO3lDQUdEO0lBY0Q7UUFEQyxRQUFRLEVBQUU7NENBQ2dDO0lBRzNDO1FBREMsUUFBUSxDQUFDLEVBQUMsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDOzJDQUcvQjtJQWVEO1FBUkMsUUFBUSxDQUFDO1lBQ04sSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPO2dCQUNILGFBQWE7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLHlCQUFjLENBQUMsT0FBTyxDQUFDO1lBQzFELENBQUM7WUFDRCxXQUFXLEVBQUUsUUFBUTtTQUN4QixDQUFDO21EQUdEO0lBUUQ7UUFEQyxRQUFRLEVBQUU7c0RBQ29IO0lBRy9IO1FBREMsUUFBUSxFQUFFOzhDQUMyQjtJQUd0QztRQURDLFFBQVEsQ0FBQyxFQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUMsQ0FBQztrREFDRjtJQW5KdkIsU0FBUztRQUhyQixPQUFPO1FBQ1AsZ0JBQWdCLENBQUMsK0JBQWEsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDO09BQ04sU0FBUyxDQWllckI7SUFBRCxnQkFBQztDQWplRCxBQWllQyxDQWplOEIsU0FBUyxHQWlldkM7QUFqZVksOEJBQVMiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2NjbGFzcyA9IGNjLl9kZWNvcmF0b3IuY2NjbGFzcztcclxuaW1wb3J0IHByb3BlcnR5ID0gY2MuX2RlY29yYXRvci5wcm9wZXJ0eTtcclxuaW1wb3J0IHJlcXVpcmVDb21wb25lbnQgPSBjYy5fZGVjb3JhdG9yLnJlcXVpcmVDb21wb25lbnQ7XHJcbmltcG9ydCBtZW51ID0gY2MuX2RlY29yYXRvci5tZW51O1xyXG5pbXBvcnQgQ29tcG9uZW50ID0gY2MuQ29tcG9uZW50O1xyXG5pbXBvcnQgRW51bSA9IGNjLkVudW07XHJcbmltcG9ydCBTaXplID0gY2MuU2l6ZTtcclxuaW1wb3J0IFZlYzIgPSBjYy5WZWMyO1xyXG5pbXBvcnQgR3JhcGhpY3MgPSBjYy5HcmFwaGljcztcclxuaW1wb3J0IE5vZGUgPSBjYy5Ob2RlO1xyXG5pbXBvcnQgbWFjcm8gPSBjYy5tYWNybztcclxuaW1wb3J0IENvbG9yID0gY2MuQ29sb3I7XHJcbmltcG9ydCB7TFFDb2xsaWRlU2hhcGUsIExRQ29sbGlkZVN0YXR1c30gZnJvbSBcIi4uL2xxX2Jhc2UvZGF0YS9scV9jb25zdFwiO1xyXG5pbXBvcnQge0xRQ29sbGlkZUNvbmZpZywgTFFDb2xsaWRlSW5mb0xpc3R9IGZyb20gXCIuL2xxX2NvbGxpZGVfY29uZmlnXCI7XHJcbmltcG9ydCB7TFFDb2xsaWRlU3lzdGVtfSBmcm9tIFwiLi9scV9jb2xsaWRlX3N5c3RlbVwiO1xyXG5pbXBvcnQge0xRUmVjdH0gZnJvbSBcIi4uL2xxX2Jhc2UvZGF0YS9scV9kYXRhXCI7XHJcbmltcG9ydCB7TFFDb2xsaWRlQmFzZX0gZnJvbSBcIi4vbHFfY29sbGlkZV9iYXNlXCI7XHJcbmltcG9ydCB7TFFHYW1lVXRpbH0gZnJvbSBcIi4uL2xxX2Jhc2UvdXRpbC9scV9nYW1lX3V0aWxcIjtcclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuLi9NYXBcIjtcclxuXHJcbkBjY2NsYXNzXHJcbkByZXF1aXJlQ29tcG9uZW50KExRQ29sbGlkZUJhc2UpXHJcbkBtZW51KFwibHEvY29sbGlkZVwiKVxyXG5leHBvcnQgY2xhc3MgTFFDb2xsaWRlIGV4dGVuZHMgQ29tcG9uZW50IHtcclxuICAgIHZlbG9jaXR5OiBhbnk7XHJcbiAgICBAcHJvcGVydHkoe2Rpc3BsYXlOYW1lOiAn57uY5Yi25b2i54q2J30pXHJcbiAgICBnZXQgZHJhd19jb2xsaWRlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kcmF3X2NvbGxpZGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGRyYXdfY29sbGlkZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2RyYXdfY29sbGlkZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZHJhd19zaGFwZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJvdGVjdGVkIF9kcmF3X2NvbGxpZGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dG9vbHRpcDogJ+iDveWQpuenu+WKqCd9KVxyXG4gICAgcHJvdGVjdGVkIGNhbl9tb3ZlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KHtcclxuICAgICAgICB0b29sdGlwOiAn56Kw5pKe5b2i54q277yMTm9uZeWwseaYr+aXoOaVjO+8jOS4jeWPguS4jueisOaSnicsXHJcbiAgICAgICAgdHlwZTogRW51bShMUUNvbGxpZGVTaGFwZSksXHJcbiAgICAgICAgZGlzcGxheU5hbWU6ICfnorDmkp7lvaLnirYnXHJcbiAgICB9KVxyXG4gICAgZ2V0IGNvbGxpZGVfc2hhcGUoKTogTFFDb2xsaWRlU2hhcGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xsaWRlX3NoYXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjb2xsaWRlX3NoYXBlKHZhbHVlOiBMUUNvbGxpZGVTaGFwZSkge1xyXG4gICAgICAgIHRoaXMuX2NvbGxpZGVfc2hhcGUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBAcHJvcGVydHkoKVxyXG4gICAgcHVibGljIF9jb2xsaWRlX3NoYXBlOiBMUUNvbGxpZGVTaGFwZSA9IExRQ29sbGlkZVNoYXBlLlJlY3Q7XHJcblxyXG4gICAgQHByb3BlcnR5KHtcclxuICAgICAgICB0eXBlOiBFbnVtKExRQ29sbGlkZUluZm9MaXN0KSwgdG9vbHRpcDogJ+eisOaSnuexu+WIqycsXHJcbiAgICAgICAgZGlzcGxheU5hbWU6ICfnorDmkp7nsbvliKsnXHJcbiAgICB9KVxyXG4gICAgZ2V0IGNvbGxpZGVfZ3JvdXBfaW5kZXgoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2NvbGxpZGVfZ3JvdXBfaW5kZXggPT09IC0xKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NvbGxpZGVfZ3JvdXBfaW5kZXggPSBMUUNvbGxpZGVTeXN0ZW0uZ2V0X2luZm9fYnlfaWQodGhpcy5jb2xsaWRlX2dyb3VwX2lkKS5pbmRleDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxpZGVfZ3JvdXBfaW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGNvbGxpZGVfZ3JvdXBfaW5kZXgodmFsdWUpIHtcclxuICAgICAgICBpZiAodGhpcy5fY29sbGlkZV9ncm91cF9pbmRleCA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jb2xsaWRlX2dyb3VwX2luZGV4ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlX2dyb3VwX2lkID0gTFFDb2xsaWRlU3lzdGVtLmdldF9ncm91cF9ieV9pbmRleCh2YWx1ZSkuaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQHByb3BlcnR5KHtzZXJpYWxpemFibGU6IGZhbHNlfSlcclxuICAgIHByaXZhdGUgX2NvbGxpZGVfZ3JvdXBfaW5kZXggPSAtMTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3Zpc2libGU6IGZhbHNlfSlcclxuICAgIHByb3RlY3RlZCBjb2xsaWRlX2dyb3VwX2lkOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dmlzaWJsZTogZmFsc2V9KVxyXG4gICAgcHJvdGVjdGVkIGNvbGxpZGVfc2NsZTogbnVtYmVyID0gMTtcclxuXHJcbiAgICBAcHJvcGVydHkoe1xyXG4gICAgICAgIHRvb2x0aXA6ICdjb2xsaWRl5Y2K5b6EJyxcclxuICAgICAgICB2aXNpYmxlKCkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb2xsaWRlX3NoYXBlID09PSBMUUNvbGxpZGVTaGFwZS5DaXJjbGU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXNwbGF5TmFtZTogJ+WNiuW+hCdcclxuICAgIH0pXHJcbiAgICBnZXQgcmFkaXVzKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JhZGl1cztcclxuICAgIH1cclxuXHJcbiAgICBzZXQgcmFkaXVzKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9yYWRpdXMgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBAcHJvcGVydHkoKVxyXG4gICAgcHJvdGVjdGVkIF9yYWRpdXM6IG51bWJlciA9IDUwO1xyXG5cclxuICAgIC8vIOeJqeS9k+mAn+W6plxyXG4gICAgLy8gcHVibGljIHZlbG9jaXR5OiBWZWMyID0gbmV3IFZlYzIoMCwgMCk7XHJcblxyXG4gICAgQHByb3BlcnR5KHtcclxuICAgICAgICB0b29sdGlwOiAnY29sbGlkZemVv+WuvScsXHJcbiAgICAgICAgdmlzaWJsZSgpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29sbGlkZV9zaGFwZSA9PT0gTFFDb2xsaWRlU2hhcGUuUmVjdDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRpc3BsYXlOYW1lOiAn6ZW/5a69J1xyXG4gICAgfSlcclxuICAgIGdldCBzaXplKCk6IFNpemUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBzaXplKHZhbHVlOiBTaXplKSB7XHJcbiAgICAgICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xyXG4gICAgICAgIGlmICh0aGlzLndvcmxkX3JlY3QpIHtcclxuICAgICAgICAgICAgdGhpcy53b3JsZF9yZWN0LndpZHRoID0gdmFsdWUud2lkdGg7XHJcbiAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC5oZWlnaHQgPSB2YWx1ZS5oZWlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC5oYWxmX3dpZHRoID0gdmFsdWUud2lkdGggKiAwLjU7XHJcbiAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC5oYWxmX2hlaWdodCA9IHZhbHVlLmhlaWdodCAqIDAuNTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kcmF3X3NoYXBlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQHByb3BlcnR5KClcclxuICAgIHByb3RlY3RlZCBfc2l6ZTogU2l6ZSA9IG5ldyBTaXplKDEwMCwgMTAwKTtcclxuXHJcbiAgICBAcHJvcGVydHkoe2Rpc3BsYXlOYW1lOiAn5L2N572u5YGP56e7J30pXHJcbiAgICBnZXQgb2Zmc2V0KCk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9vZmZzZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IG9mZnNldCh2YWx1ZTogVmVjMikge1xyXG4gICAgICAgIHRoaXMuX29mZnNldCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZHJhd19zaGFwZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBwcm9wZXJ0eSh7XHJcbiAgICAgICAgdHlwZTogVmVjMixcclxuICAgICAgICB2aXNpYmxlKCkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb2xsaWRlX3NoYXBlID09PSBMUUNvbGxpZGVTaGFwZS5Qb2x5Z29uO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGlzcGxheU5hbWU6ICflpJrovrnlvaLnorDmkp7ngrknXHJcbiAgICB9KVxyXG4gICAgZ2V0IHBvbHlnb25fcG9pbnRzKCk6IFZlYzJbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BvbHlnb25fcG9pbnRzO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBwb2x5Z29uX3BvaW50cyh2YWx1ZTogVmVjMltdKSB7XHJcbiAgICAgICAgdGhpcy5fcG9seWdvbl9wb2ludHMgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBAcHJvcGVydHkoKVxyXG4gICAgcHVibGljIF9wb2x5Z29uX3BvaW50czogVmVjMltdID0gW25ldyBWZWMyKC00NSwgLTQ1KSwgbmV3IFZlYzIoNDUsIC00NSksIG5ldyBWZWMyKDYwLCA0MCksIG5ldyBWZWMyKDAsIDcwKSwgbmV3IFZlYzIoLTYwLCA0MCldO1xyXG4gICAgLy9jb2xsaWRl56Kw5pKe5L2N572u5YGP56e7XHJcbiAgICBAcHJvcGVydHkoKVxyXG4gICAgcHVibGljIF9vZmZzZXQ6IFZlYzIgPSBuZXcgVmVjMigwLCAwKTtcclxuXHJcbiAgICBAcHJvcGVydHkoe2Rpc3BsYXlOYW1lOiAn6Ieq5a6a5LmJ5a2X56ym5LiyJ30pXHJcbiAgICBwdWJsaWMgZGF0YV9zdHJpbmc6IHN0cmluZyA9ICcnO1xyXG4gICAgLy/mr4/kuKpjb2xsaWRl55qEaWTllK/kuIBcclxuICAgIHB1YmxpYyBjb2xsaWRlX2lkOiBudW1iZXIgPSAwO1xyXG4gICAgLy/nirbmgIFcclxuICAgIHB1YmxpYyBjb2xsaWRlX3N0YXR1czogTFFDb2xsaWRlU3RhdHVzID0gTFFDb2xsaWRlU3RhdHVzLklkbGU7XHJcbiAgICAvL+aYr+WQpuWPr+eisOaSnlxyXG4gICAgcHVibGljIGlzX2VuYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICAvL+aYr+WQpuW8gOWQr+eisOaSnuWJjeWQjueahOWHveaVsFxyXG4gICAgcHVibGljIGlzX29wZW5fZnVuYzogYm9vbGVhbiA9IHRydWU7XHJcbiAgICAvL+eisOaSnuexu+WIq1xyXG4gICAgcHVibGljIGNvbGxpZGVfY2F0ZWdvcnkgPSAwO1xyXG4gICAgLy/norDmkp7nrZvpgIlcclxuICAgIHB1YmxpYyBjb2xsaWRlX21hc2sgPSAwO1xyXG4gICAgLy/nvJPlrZjlpJrovrnlvaLnorDmkp7mlbDmja5cclxuICAgIHB1YmxpYyBjYWNoZV9wb2x5Z29uX3BvaW50czogbnVtYmVyW107XHJcbiAgICAvL+e7mOWItmNvbGxpZGXlvaLnirbnu4Tku7ZcclxuICAgIHByaXZhdGUgX2RlYnVnRHJhd2VyITogR3JhcGhpY3M7XHJcbiAgICBwdWJsaWMgd29ybGRfcmVjdCE6IExRUmVjdDtcclxuICAgIHB1YmxpYyBjb2xsaWRlX21hcDogeyBba2V5OiBudW1iZXJdOiB7IGNvbGxpZGU6IExRQ29sbGlkZSwgc3RhdHVzOiAxIHwgMiB9IH0gPSB7fTtcclxuICAgIHB1YmxpYyBmb2xsb3dfdGFyZ2V0X2NhdGVnb3J5OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBpZF9tYWtlcjogbnVtYmVyID0gMTtcclxuXHJcbiAgICAvL+ajgOa1i+e7mOWItue7hOS7tuaYr+WQpua3u+WKoFxyXG4gICAgcHJpdmF0ZSBjaGVja0RlYnVnRHJhd1ZhbGlkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fZGVidWdEcmF3ZXIgfHwgIXRoaXMuX2RlYnVnRHJhd2VyLmlzVmFsaWQpIHtcclxuICAgICAgICAgICAgbGV0IG5vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ0NvbGxpZGUnKTtcclxuICAgICAgICAgICAgaWYgKCFub2RlKSB7XHJcbiAgICAgICAgICAgICAgICBub2RlID0gbmV3IE5vZGUoJ0NvbGxpZGUnKTtcclxuICAgICAgICAgICAgICAgIG5vZGUuekluZGV4ID0gbWFjcm8uTUFYX1pJTkRFWDtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5hZGRDaGlsZChub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIG5vZGUuX29iakZsYWdzID0gMTA5NjtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyID0gbm9kZS5hZGRDb21wb25lbnQoR3JhcGhpY3MpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWdEcmF3ZXIubGluZVdpZHRoID0gMztcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLnN0cm9rZUNvbG9yID0gbmV3IENvbG9yKDI1NSwgMCwgMCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5maWxsQ29sb3IgPSBuZXcgQ29sb3IoMjU1LCAwLCAwKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyID0gbm9kZS5nZXRDb21wb25lbnQoR3JhcGhpY3MpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v57uY5Yi25b2i54q2XHJcbiAgICBwcm90ZWN0ZWQgZHJhd19zaGFwZSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2RyYXdfY29sbGlkZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fZGVidWdEcmF3ZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmNsZWFyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNoZWNrRGVidWdEcmF3VmFsaWQoKTtcclxuICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5jbGVhcigpO1xyXG5cclxuICAgICAgICBsZXQgbzEgPSB7a2V5OiAnc2NhbGVYJywgdmFsdWU6IHRoaXMubm9kZS5zY2FsZX07XHJcbiAgICAgICAgbGV0IG8yID0ge2tleTogJ3NjYWxlWScsIHZhbHVlOiB0aGlzLm5vZGUuc2NhbGV9O1xyXG4gICAgICAgIExRR2FtZVV0aWwucmVjdXJzaW9uX25vZGVfcHJvcGVydHkodGhpcy5ub2RlLCBvMSk7XHJcbiAgICAgICAgTFFHYW1lVXRpbC5yZWN1cnNpb25fbm9kZV9wcm9wZXJ0eSh0aGlzLm5vZGUsIG8yKTtcclxuICAgICAgICBpZiAobzEudmFsdWUgPT09IDAgfHwgbzIudmFsdWUgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5ub2RlLnNjYWxlWCA9IDEgLyBvMS52YWx1ZTtcclxuICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5ub2RlLnNjYWxlWSA9IDEgLyBvMi52YWx1ZTtcclxuICAgICAgICBzd2l0Y2ggKHRoaXMuX2NvbGxpZGVfc2hhcGUpIHtcclxuICAgICAgICAgICAgY2FzZSBMUUNvbGxpZGVTaGFwZS5DaXJjbGU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5jaXJjbGUoK3RoaXMuX29mZnNldC54LCArdGhpcy5fb2Zmc2V0LnksIHRoaXMuX3JhZGl1cyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5zdHJva2UoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIExRQ29sbGlkZVNoYXBlLlJlY3Q6XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5tb3ZlVG8oLXRoaXMuX3NpemUud2lkdGggKiAwLjUgKyB0aGlzLl9vZmZzZXQueCwgLXRoaXMuX3NpemUuaGVpZ2h0ICogMC41ICsgdGhpcy5fb2Zmc2V0LnkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWdEcmF3ZXIubGluZVRvKC10aGlzLl9zaXplLndpZHRoICogMC41ICsgdGhpcy5fb2Zmc2V0LngsICt0aGlzLl9zaXplLmhlaWdodCAqIDAuNSArIHRoaXMuX29mZnNldC55KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmxpbmVUbyh0aGlzLl9zaXplLndpZHRoICogMC41ICsgdGhpcy5fb2Zmc2V0LngsICt0aGlzLl9zaXplLmhlaWdodCAqIDAuNSArIHRoaXMuX29mZnNldC55KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmxpbmVUbyh0aGlzLl9zaXplLndpZHRoICogMC41ICsgdGhpcy5fb2Zmc2V0LngsIC10aGlzLl9zaXplLmhlaWdodCAqIDAuNSArIHRoaXMuX29mZnNldC55KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmxpbmVUbygtdGhpcy5fc2l6ZS53aWR0aCAqIDAuNSArIHRoaXMuX29mZnNldC54LCAtdGhpcy5fc2l6ZS5oZWlnaHQgKiAwLjUgKyB0aGlzLl9vZmZzZXQueSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5zdHJva2UoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIExRQ29sbGlkZVNoYXBlLlBvbHlnb246XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5tb3ZlVG8odGhpcy5fcG9seWdvbl9wb2ludHNbMF0ueCArIHRoaXMuX29mZnNldC54LCB0aGlzLl9wb2x5Z29uX3BvaW50c1swXS55ICsgdGhpcy5fb2Zmc2V0LnkpO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCB0aGlzLl9wb2x5Z29uX3BvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmxpbmVUbyh0aGlzLl9wb2x5Z29uX3BvaW50c1tpXS54ICsgdGhpcy5fb2Zmc2V0LngsIHRoaXMuX3BvbHlnb25fcG9pbnRzW2ldLnkgKyB0aGlzLl9vZmZzZXQueSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5saW5lVG8odGhpcy5fcG9seWdvbl9wb2ludHNbMF0ueCArIHRoaXMuX29mZnNldC54LCB0aGlzLl9wb2x5Z29uX3BvaW50c1swXS55ICsgdGhpcy5fb2Zmc2V0LnkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWdEcmF3ZXIuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/ku4XnlKjkuo7nn6nlvaJcclxuICAgIHB1YmxpYyB1cGRhdGVfc2l6ZSh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3NpemUud2lkdGggPSB3aWR0aDtcclxuICAgICAgICB0aGlzLndvcmxkX3JlY3Qud2lkdGggPSB3aWR0aDtcclxuICAgICAgICB0aGlzLndvcmxkX3JlY3QuaGFsZl93aWR0aCA9IHdpZHRoICogMC41O1xyXG4gICAgICAgIHRoaXMuX3NpemUuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICAgIHRoaXMud29ybGRfcmVjdC5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICAgICAgdGhpcy53b3JsZF9yZWN0LmhhbGZfaGVpZ2h0ID0gaGVpZ2h0ICogMC41O1xyXG5cclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW5pdF9scV9jb2xsaWRlKCkge1xyXG5cclxuICAgICAgICB0aGlzLndvcmxkX3JlY3QgPSBuZXcgTFFSZWN0KDAsIDAsIHRoaXMuX3NpemUud2lkdGgsIHRoaXMuX3NpemUuaGVpZ2h0KTtcclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgICAgICBjb25zdCBpbmZvID0gTFFDb2xsaWRlU3lzdGVtLmdldF9pbmZvX2J5X2lkKHRoaXMuY29sbGlkZV9ncm91cF9pZCk7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlX21hc2sgPSBpbmZvLm1hc2s7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlX2NhdGVnb3J5ID0gaW5mby5jYXRlZ29yeTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVfaWQgPSBMUUNvbGxpZGUuaWRfbWFrZXIrKztcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVDb2xsaXNpb25BcmVhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVDb2xsaXNpb25BcmVhKCkge1xyXG4gICAgICAgIGlmKHRoaXMuX3NpemUud2lkdGg9PTAgfHwgdGhpcy5fc2l6ZS5oZWlnaHQ9PTAgfHwgTWFwQ29ucm9sZXIuX2luc3RhbmNlID09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUuc2NhbGUpe1xyXG4gICAgICAgICAgICBsZXQgc2NhbGVYID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUuc2NhbGU7XHJcbiAgICAgICAgICAgIGxldCBzY2FsZVkgPSBNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5zY2FsZTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzY2FsZVggPT09IDAgfHwgc2NhbGVYID09IHVuZGVmaW5lZCB8fCBzY2FsZVggPT0gbnVsbCB8fCBzY2FsZVggPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5fY29sbGlkZV9zaGFwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBMUUNvbGxpZGVTaGFwZS5DaXJjbGU6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5ZyG5b2i56Kw5pKe5Yy65Z+f5Y2K5b6E5pu05pawXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmFkaXVzID0gdGhpcy5fcmFkaXVzICogTWF0aC5tYXgoc2NhbGVYLCBzY2FsZVkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBMUUNvbGxpZGVTaGFwZS5SZWN0OlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOefqeW9oueisOaSnuWMuuWfn+WwuuWvuOabtOaWsFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuZGF0YV9zdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9zaXplLndpZHRoICE9PSAxMCAmJiB0aGlzLmRhdGFfc3RyaW5nIT1cIi0xXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYodGhpcy5fc2l6ZS53aWR0aCA9PSAxMDUgfHwgdGhpcy5fc2l6ZS5oZWlnaHQgPT0gMTA1KXt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaXplLndpZHRoID0gdGhpcy5fc2l6ZS53aWR0aCAqIHNjYWxlWDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGNvbnNvbGUubG9nKFwi5pS+5aSn5YCN5pWwXCIsc2NhbGVYKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3NpemUuaGVpZ2h0IT09IDEwICYmIHRoaXMuZGF0YV9zdHJpbmchPVwiLTFcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZih0aGlzLl9zaXplLndpZHRoID09IDEwNSB8fCB0aGlzLl9zaXplLmhlaWdodCA9PSAxMDUpe31cclxuICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NpemUuaGVpZ2h0ID0gdGhpcy5fc2l6ZS5oZWlnaHQgKiBzY2FsZVk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pS+5aSn5YCN5pWwXCIsc2NhbGVZKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5fc2l6ZS53aWR0aCA9IHRoaXMuX3NpemUud2lkdGggKiBzY2FsZVg7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5fc2l6ZS5oZWlnaHQgPSB0aGlzLl9zaXplLmhlaWdodCAqIHNjYWxlWTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy53b3JsZF9yZWN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC53aWR0aCA9IHRoaXMuX3NpemUud2lkdGg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC5oZWlnaHQgPSB0aGlzLl9zaXplLmhlaWdodDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JsZF9yZWN0LmhhbGZfd2lkdGggPSB0aGlzLl9zaXplLndpZHRoICogMC41O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndvcmxkX3JlY3QuaGFsZl9oZWlnaHQgPSB0aGlzLl9zaXplLmhlaWdodCAqIDAuNTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIExRQ29sbGlkZVNoYXBlLlBvbHlnb246XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5aSa6L655b2i56Kw5pKe54K55Z2Q5qCH5pu05pawXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcG9seWdvbl9wb2ludHMgPSB0aGlzLl9wb2x5Z29uX3BvaW50cy5tYXAocG9pbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFZlYzIocG9pbnQueCAqIHNjYWxlWCwgcG9pbnQueSAqIHNjYWxlWSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuZHJhd19zaGFwZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGVuYWJsZV9scV9jb2xsaWRlKCkge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb2xsaWRlX3N0YXR1cyA9PT0gTFFDb2xsaWRlU3RhdHVzLkxpdmUpIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKHRoaXMubm9kZS5uYW1lICsgJ+mHjeWkjea3u+WKoCcpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXNfZW5hYmxlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVfc3RhdHVzID0gTFFDb2xsaWRlU3RhdHVzLkxpdmU7XHJcbiAgICAgICAgTFFDb2xsaWRlU3lzdGVtLmFkZF9jb2xsaWRlKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkaXNhYmxlX2xxX2NvbGxpZGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29sbGlkZV9zdGF0dXMgIT09IExRQ29sbGlkZVN0YXR1cy5MaXZlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc19lbmFibGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVfc3RhdHVzID0gTFFDb2xsaWRlU3RhdHVzLklkbGU7XHJcbiAgICAgICAgTFFDb2xsaWRlU3lzdGVtLnJlbW92ZV9jb2xsaWRlKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVfbHFfY29sbGlkZSgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgLy8gcHVibGljIG9uX2NvbGxpZGUoY29sbGlkZTogTFFDb2xsaWRlKTogdm9pZCB7XHJcbiAgICAvLyAgICAgaWYoY29sbGlkZS5ub2RlLnBhcmVudC51dWlkID09IHRoaXMubm9kZS5wYXJlbnQudXVpZCl7XHJcbiAgICAvLyAgICAgICAgIHJldHVybjtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgaWYgKExRQ29sbGlkZUNvbmZpZy5zd2l0Y2hfcHJpbnRfbG9nKSB7XHJcbiAgICAvLyAgICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikpe1xyXG4gICAgLy8gICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKTtcclxuICAgIC8vICAgICAgICAgICAgIGlmKGJsb2NrLmlzVG91Y2gpe1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIGJsb2NrLmNoZWNrQ29sbGlzaW9uID0gdHJ1ZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOaSnlwiLHRoaXMubm9kZS5uYW1lKTtcclxuICAgIC8vICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PSBcInRvcFwiICl7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yYXCIpO1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlVXAgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgaWYoYmxvY2sudG91Y2hQb2ludFkgPiAodGhpcy5ub2RlLnBhcmVudC55K3RoaXMubm9kZS5oZWlnaHQpKXtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVZID0gMTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICAgICAgICAgIH1cclxuICAgIC8vICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PT0gXCJkb3duXCIpe1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlRG93biA9IGZhbHNlO1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mFwiKTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgaWYoYmxvY2sudG91Y2hQb2ludFkgPCAodGhpcy5ub2RlLnBhcmVudC55ICkpe1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVkgPSAtMTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICAgICAgICAgIH1cclxuICAgIC8vICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PT0gXCJsZWZ0XCIgKXtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZUxlZnQgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLnorDliLDlt6bovrnnvJhcIik7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnRvdWNoUG9pbnRYIDwgKHRoaXMubm9kZS5wYXJlbnQueCAtIHRoaXMubm9kZS5wYXJlbnQud2lkdGgpKXtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVYID0gLTE7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgIC8vICAgICAgICAgICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgaWYodGhpcy5ub2RlLm5hbWUgPT09IFwicmlnaHRcIil7XHJcblxyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlUmlnaHQgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLnorDliLDlj7PovrnnvJhcIik7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnRvdWNoUG9pbnRYID4gKHRoaXMubm9kZS5wYXJlbnQueCkpe1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVggPSAxO1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgIFxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vIH1cclxuXHJcbiAgICAvL0B0cy1pZ25vcmVcclxuICAgIHB1YmxpYyBvbl9lbnRlcihjb2xsaWRlOiBMUUNvbGxpZGUpIHtcclxuICAgICAgICBpZih0aGlzLmRpc2FibGVDb2xsaWRlcihjb2xsaWRlKSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gaWYgKExRQ29sbGlkZUNvbmZpZy5zd2l0Y2hfcHJpbnRfbG9nKSB7XHJcbiAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKHRoaXMubm9kZS5uYW1lICsgJyBvbl9lbnRlcicpO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICAvL0B0cy1pZ25vcmVcclxuICAgIHB1YmxpYyBvbl9leGl0KGNvbGxpZGU6IExRQ29sbGlkZSkge1xyXG4gICAgICAgIGlmKHRoaXMuZGlzYWJsZUNvbGxpZGVyKGNvbGxpZGUpKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoTFFDb2xsaWRlQ29uZmlnLnN3aXRjaF9wcmludF9sb2cpIHtcclxuICAgICAgICAgICAgaWYodGhpcy5ub2RlLnBhcmVudC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSl7XHJcbiAgICAgICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkJsb2NrXCIpO1xyXG4gICAgICAgICAgICAgICAgLy8gaWYoIWJsb2NrLmlzVG91Y2gpe1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICAgIGJsb2NrLmNoZWNrQ29sbGlzaW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5ub2RlLm5hbWUgPT0gXCJ0b3BcIiApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlVXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PT0gXCJkb3duXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlRG93biA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS5uYW1lID09PSBcImxlZnRcIiApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlTGVmdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS5uYW1lID09PSBcInJpZ2h0XCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlUmlnaHQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25fY29sbGlkZShjb2xsaWRlOiBMUUNvbGxpZGUpOiB2b2lkIHtcclxuICAgICAgICBpZih0aGlzLmRpc2FibGVDb2xsaWRlcihjb2xsaWRlKSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKExRQ29sbGlkZUNvbmZpZy5zd2l0Y2hfcHJpbnRfbG9nKSB7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikpe1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKTtcclxuICAgICAgICAgICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYoYmxvY2suaXNUb3VjaCl7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2suY2hlY2tDb2xsaXNpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5pKeXCIsdGhpcy5ub2RlLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS5uYW1lID09IFwidG9wXCIgKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coY29sbGlkZS5ub2RlLnBhcmVudC5uYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVVwID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnRvdWNoUG9pbnRZID4gKHRoaXMubm9kZS5wYXJlbnQueSt0aGlzLm5vZGUucGFyZW50LmhlaWdodCkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVkgPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yYXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PT0gXCJkb3duXCIpe1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZURvd24gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoYmxvY2sudG91Y2hQb2ludFkgPCAodGhpcy5ub2RlLnBhcmVudC55ICkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVkgPSAtMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mFwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5ub2RlLm5hbWUgPT09IFwibGVmdFwiICl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVMZWZ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnRvdWNoUG9pbnRYIDwgKHRoaXMubm9kZS5wYXJlbnQueCAtIHRoaXMubm9kZS5wYXJlbnQud2lkdGgpKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVYID0gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5ub2RlLm5hbWUgPT09IFwicmlnaHRcIil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVSaWdodCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihibG9jay50b3VjaFBvaW50WCA+ICh0aGlzLm5vZGUucGFyZW50LngpKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVYID0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGlzYWJsZUNvbGxpZGVyKGNvbGxpZGU6IExRQ29sbGlkZSl7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgaWYoY29sbGlkZS5ub2RlICYmIHRoaXMubm9kZSl7XHJcbiAgICAgICAgICAgIGlmKGNvbGxpZGUubm9kZS5wYXJlbnQgJiYgdGhpcy5ub2RlLnBhcmVudCl7XHJcbiAgICAgICAgICAgICAgICBpZihjb2xsaWRlLm5vZGUucGFyZW50LnV1aWQgPT0gdGhpcy5ub2RlLnBhcmVudC51dWlkKXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkJsb2NrXCIpKXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkJsb2NrXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnR5cGUgPT0gMSB8fCBibG9jay50eXBlID09IDEwIHx8IGJsb2NrLnR5cGUgPT0gOSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvbGxpZGUubm9kZS5wYXJlbnQgPT0gYmxvY2suYmxvY2tfSW5mby5ub2RlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpnID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxufSJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/lq_base/util/lq_base_util.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'cd21fuTZY5LOoiXtN66R7wx', 'lq_base_util'); +// Script/lq_base/util/lq_base_util.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LQBaseUtil = void 0; +var lq_platform_util_1 = require("./lq_platform_util"); +var lq_const_1 = require("../data/lq_const"); +var view = cc.view; +var LQBaseUtil = /** @class */ (function () { + function LQBaseUtil() { + } + // public static readonly unit_arr = ['K', 'M', 'B', 'T']; + LQBaseUtil.has_value = function (arr, v) { + var has = false; + for (var i = 0; i < arr.length; i++) { + if (arr[i] === v) { + has = true; + break; + } + } + return has; + }; + LQBaseUtil.get_value_by_duration = function (percent, timeline) { + if (timeline.length === 0) { + return 1; + } + var end_index = -1; + for (var i = 1; i < timeline.length; i++) { + if (timeline[i].x > percent) { + end_index = i; + break; + } + } + if (end_index === -1) { + return timeline[timeline.length - 1].y; + } + var start_index = end_index - 1; + return timeline[start_index].y + (timeline[end_index].y - timeline[start_index].y) * ((percent - timeline[start_index].x) / (timeline[end_index].x - timeline[start_index].x)); + }; + LQBaseUtil.number_to_counting = function (num) { + if (num < 1000) { + return num + ''; + } + else if (num < 1000000) { + return Math.floor(num / 1000) + 'K'; + } + else if (num < 1000000000) { + return Math.floor(num / 1000000) + 'M'; + } + else if (num < 1000000000000) { + return Math.floor(num / 1000000000) + 'B'; + } + else if (num < 1000000000000000) { + return Math.floor(num / 1000000000000) + 'T'; + } + return Math.floor(num / 1000000000000) + 'T'; + }; + LQBaseUtil.number_to_time = function (time) { + var t = Math.floor(time / (60 * 60)); + time = time - t * 60 * 60; + var hour = t.toString(); + var min = Math.floor(time / 60).toString(); + var sec = (time % 60).toString(); + if (hour.length === 1) { + hour = '0' + hour; + } + if (min.length === 1) { + min = '0' + min; + } + if (sec.length === 1) { + sec = '0' + sec; + } + return [hour, min, sec]; + }; + LQBaseUtil.set_normal_angle = function (angle) { + while (angle > 360) { + angle -= 360; + } + while (angle < 0) { + angle += 360; + } + return angle; + }; + LQBaseUtil.compare_version = function (v1, v2) { + var v1_arr = v1.split('.'); + var v2_arr = v2.split('.'); + var len = Math.max(v1_arr.length, v2_arr.length); + while (v1_arr.length < len) { + v1_arr.push('0'); + } + while (v2_arr.length < len) { + v2_arr.push('0'); + } + for (var i = 0; i < len; i++) { + var num1 = parseInt(v1_arr[i]); + var num2 = parseInt(v2_arr[i]); + if (num1 > num2) { + return 1; + } + else if (num1 < num2) { + return -1; + } + } + return 0; + }; + LQBaseUtil.is_today = function (date) { + var d1 = new Date(); + var d2; + if (date && date !== '') { + d2 = new Date(date); } else { - //@ts-ignore - this.check_pool_push(this.any_pool[node.recovery_uuid], node); + d2 = new Date(); + d2.setDate(d2.getDate() - 1); } + return d1.getFullYear() === d2.getFullYear() && d1.getMonth() === d2.getMonth() && d1.getDate() === d2.getDate(); }; - LQPoolUtil.any_pool = {}; - return LQPoolUtil; -}()); -exports.LQPoolUtil = LQPoolUtil; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9wb29sX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztBQUNoQyxJQUFPLGNBQWMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO0FBQzFDLElBQU8sV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7QUFFcEM7SUFBQTtJQWdIQSxDQUFDO0lBN0drQixvQkFBUyxHQUF4QixVQUF5QixJQUFVO1FBQy9CLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsSUFBSSxHQUFHLEVBQUU7WUFDTCxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQy9ELElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1AsT0FBTzthQUNWO1lBQ0QsSUFBSSxHQUFHLENBQUMsVUFBVSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNoRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN2QjtTQUNKO2FBQU07WUFDSCxJQUFJLEtBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxJQUFJLEtBQUcsSUFBSSxDQUFDLEtBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xCLEtBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLEtBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDN0M7U0FDSjtRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMs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QyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7YUFBTTtZQUNILFlBQVk7WUFDWixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2pFO0lBQ0wsQ0FBQztJQTlHYyxtQkFBUSxHQUE4QixFQUFFLENBQUM7SUErRzVELGlCQUFDO0NBaEhELEFBZ0hDLElBQUE7QUFoSFksZ0NBQVUiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTm9kZSA9IGNjLk5vZGU7XHJcbmltcG9ydCBBbmltYXRpb24gPSBjYy5BbmltYXRpb247XHJcbmltcG9ydCBQYXJ0aWNsZVN5c3RlbSA9IGNjLlBhcnRpY2xlU3lzdGVtO1xyXG5pbXBvcnQgaW5zdGFudGlhdGUgPSBjYy5pbnN0YW50aWF0ZTtcclxuXHJcbmV4cG9ydCBjbGFzcyBMUVBvb2xVdGlsIHtcclxuICAgIHByaXZhdGUgc3RhdGljIGFueV9wb29sOiB7IFtrZXk6IHN0cmluZ106IE5vZGVbXSB9ID0ge307XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVzZXRfYW5pKG5vZGU6IE5vZGUpIHtcclxuICAgICAgICBsZXQgYW5pID0gbm9kZS5nZXRDb21wb25lbnQoQW5pbWF0aW9uKTtcclxuICAgICAgICBpZiAoYW5pKSB7XHJcbiAgICAgICAgICAgIGxldCBjbGlwID0gYW5pLmN1cnJlbnRDbGlwID8gYW5pLmN1cnJlbnRDbGlwIDogYW5pLmRlZmF1bHRDbGlwO1xyXG4gICAgICAgICAgICBpZiAoIWNsaXApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYW5pLnBsYXlPbkxvYWQgJiYgY2xpcCAmJiBjbGlwLndyYXBNb2RlID09PSBjYy5XcmFwTW9kZS5Ob3JtYWwpIHtcclxuICAgICAgICAgICAgICAgIGFuaS5wbGF5KGNsaXAubmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgYW5pID0gbm9kZS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xyXG4gICAgICAgICAgICBpZiAoYW5pICYmICFhbmkubG9vcCkge1xyXG4gICAgICAgICAgICAgICAgYW5pLnNldEFuaW1hdGlvbigwLCBhbmkuYW5pbWF0aW9uLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLmNoaWxkcmVuQ291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZCA9IG5vZGUuY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRfYW5pKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyByZWN1cnNpb25fc3RvcF9wYXJ0aWNsZShub2RlOiBOb2RlLCBvYmo6IHsgaGFzOiBib29sZWFuIH0pIHtcclxuICAgICAgICBjb25zdCBwID0gbm9kZS5nZXRDb21wb25lbnQoUGFydGljbGVTeXN0ZW0pO1xyXG4gICAgICAgIGlmIChwKSB7XHJcbiAgICAgICAgICAgIHAuc3RvcFN5c3RlbSgpO1xyXG4gICAgICAgICAgICBvYmouaGFzID0gdHJ1ZTtcclxuICAgICAgICAgICAgcC5ub2RlLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW5Db3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5jaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgdGhpcy5yZWN1cnNpb25fc3RvcF9wYXJ0aWNsZShjaGlsZCwgb2JqKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyByZWN1cnNpb25fcmVzZXRfcGFydGljbGUobm9kZTogTm9kZSkge1xyXG4gICAgICAgIGlmICghbm9kZS5pc1ZhbGlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcCA9IG5vZGUuZ2V0Q29tcG9uZW50KFBhcnRpY2xlU3lzdGVtKTtcclxuICAgICAgICBpZiAocCkge1xyXG4gICAgICAgICAgICBwLnJlc2V0U3lzdGVtKCk7XHJcbiAgICAgICAgICAgIHAubm9kZS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW5Db3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5jaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgdGhpcy5yZWN1cnNpb25fcmVzZXRfcGFydGljbGUoY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF9ub2RlX2Zyb21fcG9vbChub2RlX3BhcmVudDogTm9kZSwgcHJlZmFiOiBOb2RlKSB7XHJcbiAgICAgICAgbGV0IGFyciA9IHRoaXMuYW55X3Bvb2xbcHJlZmFiLnV1aWRdO1xyXG4gICAgICAgIGlmICghYXJyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYW55X3Bvb2xbcHJlZmFiLnV1aWRdID0gW107XHJcbiAgICAgICAgICAgIGFyciA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbm9kZSA9IGFyci5wb3AoKTtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIW5vZGUuaXNWYWxpZCkge1xyXG4gICAgICAgICAgICBub2RlID0gaW5zdGFudGlhdGUocHJlZmFiKTtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIG5vZGUucmVjb3ZlcnlfdXVpZCA9IHByZWZhYi51dWlkO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgbm9kZS5pc19mcm9tX3Bvb2wgPSBmYWxzZTtcclxuICAgICAgICAgICAgbm9kZV9wYXJlbnQuYWRkQ2hpbGQobm9kZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgbm9kZS5pc19mcm9tX3Bvb2wgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0X2FuaShub2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgY2hlY2tfcG9vbF9wdXNoKGFycjogTm9kZVtdLCBub2RlOiBOb2RlKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGFycltpXSA9PT0gbm9kZSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYOaxoOWtkOS4jeiDvemHjeWkjea3u+WKoOiKgueCuWAsIG5vZGUubmFtZSwgbm9kZS5yZWNvdmVyeV91dWlkKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGFyci5wdXNoKG5vZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgcHVzaF9ub2RlX3RvX3Bvb2wobm9kZTogTm9kZSkge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIGlmICghbm9kZS5yZWNvdmVyeV91dWlkIHx8ICF0aGlzLmFueV9wb29sW25vZGUucmVjb3ZlcnlfdXVpZF0pIHtcclxuICAgICAgICAgICAgaWYgKG5vZGUuaXNWYWxpZCkge1xyXG4gICAgICAgICAgICAgICAgbm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBvYmo6IHsgaGFzOiBib29sZWFuIH0gPSB7aGFzOiBmYWxzZX07XHJcbiAgICAgICAgdGhpcy5yZWN1cnNpb25fc3RvcF9wYXJ0aWNsZShub2RlLCBvYmopO1xyXG4gICAgICAgIGlmIChvYmouaGFzKSB7XHJcbiAgICAgICAgICAgIGxldCBvbGRfb3BhY2l0eSA9IG5vZGUub3BhY2l0eTtcclxuICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY3Vyc2lvbl9yZXNldF9wYXJ0aWNsZShub2RlKTtcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IG9sZF9vcGFjaXR5O1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrX3Bvb2xfcHVzaCh0aGlzLmFueV9wb29sW25vZGUucmVjb3ZlcnlfdXVpZF0sIG5vZGUpO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrX3Bvb2xfcHVzaCh0aGlzLmFueV9wb29sW25vZGUucmVjb3ZlcnlfdXVpZF0sIG5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/lq_base/data/lq_data.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'a54702UNV9NA7pYgQd6eA5/', 'lq_data'); -// Script/lq_base/data/lq_data.ts - -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.LQPlatformData = exports.LQShareData = exports.LQNativeComponent = exports.LQRect = void 0; -var Vec2 = cc.Vec2; -var Rect = cc.Rect; -var LQRect = /** @class */ (function () { - function LQRect(x, y, width, height) { - this.x = x; - this.y = y; - this.width = width; - this.height = height; - this.half_width = width * 0.5; - this.half_height = height * 0.5; - } - LQRect.prototype.top_left = function () { - return new Vec2(this.x - this.half_width, this.y + this.half_height); + LQBaseUtil.is_safe_area = function () { + var cb = function (width, height) { + return (width === 2280 && height === 1080) || (width === 1792 && height === 828) || (width === 2436 && height === 1125) || (width === 2688 && height === 1242); + }; + switch (lq_platform_util_1.LQPlatformUtil.get_platform()) { + case lq_const_1.LQPlatformType.baidu: + var sys_info_swan = swan.getSystemInfoSync(); + return cb(sys_info_swan.pixelRatio * sys_info_swan.screenWidth, sys_info_swan.pixelRatio * sys_info_swan.screenHeight); + case lq_const_1.LQPlatformType.qq: + var sys_info_qq = qq.getSystemInfoSync(); + return cb(sys_info_qq.pixelRatio * sys_info_qq.screenWidth, sys_info_qq.pixelRatio * sys_info_qq.screenHeight); + case lq_const_1.LQPlatformType.tt: + var sys_info_tt = tt.getSystemInfoSync(); + return cb(sys_info_tt.pixelRatio * sys_info_tt.screenWidth, sys_info_tt.pixelRatio * sys_info_tt.screenHeight); + case lq_const_1.LQPlatformType.oppo: + case lq_const_1.LQPlatformType.vivo: + var sys_info_vivo = qg.getSystemInfoSync(); + return cb(sys_info_vivo.pixelRatio * sys_info_vivo.screenWidth, sys_info_vivo.pixelRatio * sys_info_vivo.screenHeight); + case lq_const_1.LQPlatformType.wx: + var sys_info_wx = wx.getSystemInfoSync(); + return cb(sys_info_wx.pixelRatio * sys_info_wx.screenWidth, sys_info_wx.pixelRatio * sys_info_wx.screenHeight); + case lq_const_1.LQPlatformType.android: + break; + case lq_const_1.LQPlatformType.ios: + var size = view.getFrameSize(); + return cb(size.width, size.height); + } + return false; }; - LQRect.prototype.top_right = function () { - return new Vec2(this.x + this.half_width, this.y + this.half_height); - }; - LQRect.prototype.bottom_left = function () { - return new Vec2(this.x - this.half_width, this.y - this.half_height); - }; - LQRect.prototype.bottom_right = function () { - return new Vec2(this.x + this.half_width, this.y - this.half_height); - }; - LQRect.prototype.pos = function () { - return new Vec2(this.x, this.y); - }; - LQRect.prototype.sub = function (pos) { - return new Vec2(pos.x - this.x, pos.y - this.y); - }; - LQRect.prototype.add = function (pos) { - return new Vec2(pos.x + this.x, pos.y + this.y); - }; - LQRect.prototype.to_cocos_rect = function () { - return new Rect(this.x - this.half_width, this.y - this.half_height, this.width, this.height); - }; - return LQRect; -}()); -exports.LQRect = LQRect; -var LQNativeComponent = /** @class */ (function () { - function LQNativeComponent() { - this.node_btn_arr = []; - } - return LQNativeComponent; -}()); -exports.LQNativeComponent = LQNativeComponent; -var LQShareData = /** @class */ (function () { - function LQShareData(obj) { - if (obj.title) { - this.title = obj.title; + LQBaseUtil.deep_clone = function (obj) { + if (typeof obj !== 'object') { + return obj; } - if (obj.remote_url) { - this.remote_url = obj.remote_url; - } - if (obj.url_id) { - this.url_id = obj.url_id; - } - if (obj.query) { - this.query = obj.query; - } - if (obj.content) { - this.content = obj.content; - } - if (obj.extra) { - this.extra = obj.extra; - } - if (obj.type) { - this.type = obj.type; - } - } - return LQShareData; -}()); -exports.LQShareData = LQShareData; -var LQPlatformData = /** @class */ (function () { - function LQPlatformData() { - } - return LQPlatformData; -}()); -exports.LQPlatformData = LQPlatformData; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFxkYXRhXFxscV9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLElBQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDdEIsSUFBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUt0QjtJQVFJLGdCQUFZLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLE1BQWM7UUFDM0QsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDcEMsQ0FBQztJQUVNLHlCQUFRLEdBQWY7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sMEJBQVMsR0FBaEI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sNEJBQVcsR0FBbEI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sNkJBQVksR0FBbkI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sb0JBQUcsR0FBVjtRQUNJLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLG9CQUFHLEdBQVYsVUFBVyxHQUFTO1FBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxvQkFBRyxHQUFWLFVBQVcsR0FBUztRQUNoQixPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sOEJBQWEsR0FBcEI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUNMLGFBQUM7QUFBRCxDQWhEQSxBQWdEQyxJQUFBO0FBaERZLHdCQUFNO0FBa0RuQjtJQUFBO1FBQ1csaUJBQVksR0FBVyxFQUFFLENBQUM7SUFNckMsQ0FBQztJQUFELHdCQUFDO0FBQUQsQ0FQQSxBQU9DLElBQUE7QUFQWSw4Q0FBaUI7QUFTOUI7SUFTSSxxQkFBWSxHQUE0SDtRQUNwSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7WUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7U0FDMUI7UUFDRCxJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUNMLGtCQUFDO0FBQUQsQ0FoQ0EsQUFnQ0MsSUFBQTtBQWhDWSxrQ0FBVztBQWtDeEI7SUFBQTtJQWlCQSxDQUFDO0lBQUQscUJBQUM7QUFBRCxDQWpCQSxBQWlCQyxJQUFBO0FBakJZLHdDQUFjIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJUG9zLCBJUmVjdH0gZnJvbSBcIi4vbHFfaW50ZXJmYWNlXCI7XHJcbmltcG9ydCBWZWMyID0gY2MuVmVjMjtcclxuaW1wb3J0IFJlY3QgPSBjYy5SZWN0O1xyXG5pbXBvcnQgU3ByaXRlID0gY2MuU3ByaXRlO1xyXG5pbXBvcnQgTGFiZWwgPSBjYy5MYWJlbDtcclxuaW1wb3J0IE5vZGUgPSBjYy5Ob2RlO1xyXG5cclxuZXhwb3J0IGNsYXNzIExRUmVjdCBpbXBsZW1lbnRzIElSZWN0IHtcclxuICAgIHB1YmxpYyB4OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgeTogbnVtYmVyO1xyXG4gICAgcHVibGljIHdpZHRoOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaGVpZ2h0OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaGFsZl93aWR0aDogbnVtYmVyO1xyXG4gICAgcHVibGljIGhhbGZfaGVpZ2h0OiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy54ID0geDtcclxuICAgICAgICB0aGlzLnkgPSB5O1xyXG4gICAgICAgIHRoaXMud2lkdGggPSB3aWR0aDtcclxuICAgICAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcclxuICAgICAgICB0aGlzLmhhbGZfd2lkdGggPSB3aWR0aCAqIDAuNTtcclxuICAgICAgICB0aGlzLmhhbGZfaGVpZ2h0ID0gaGVpZ2h0ICogMC41O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b3BfbGVmdCgpOiBWZWMyIHtcclxuICAgICAgICByZXR1cm4gbmV3IFZlYzIodGhpcy54IC0gdGhpcy5oYWxmX3dpZHRoLCB0aGlzLnkgKyB0aGlzLmhhbGZfaGVpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdG9wX3JpZ2h0KCk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmVjMih0aGlzLnggKyB0aGlzLmhhbGZfd2lkdGgsIHRoaXMueSArIHRoaXMuaGFsZl9oZWlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBib3R0b21fbGVmdCgpOiBWZWMyIHtcclxuICAgICAgICByZXR1cm4gbmV3IFZlYzIodGhpcy54IC0gdGhpcy5oYWxmX3dpZHRoLCB0aGlzLnkgLSB0aGlzLmhhbGZfaGVpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYm90dG9tX3JpZ2h0KCk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmVjMih0aGlzLnggKyB0aGlzLmhhbGZfd2lkdGgsIHRoaXMueSAtIHRoaXMuaGFsZl9oZWlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwb3MoKTogY2MuVmVjMiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBWZWMyKHRoaXMueCwgdGhpcy55KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3ViKHBvczogSVBvcyk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmVjMihwb3MueCAtIHRoaXMueCwgcG9zLnkgLSB0aGlzLnkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGQocG9zOiBJUG9zKTogVmVjMiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBWZWMyKHBvcy54ICsgdGhpcy54LCBwb3MueSArIHRoaXMueSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRvX2NvY29zX3JlY3QoKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSZWN0KHRoaXMueCAtIHRoaXMuaGFsZl93aWR0aCwgdGhpcy55IC0gdGhpcy5oYWxmX2hlaWdodCwgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTFFOYXRpdmVDb21wb25lbnQge1xyXG4gICAgcHVibGljIG5vZGVfYnRuX2FycjogTm9kZVtdID0gW107XHJcbiAgICBwdWJsaWMgc3ByaXRlX2xvZ28hOiBTcHJpdGU7XHJcbiAgICBwdWJsaWMgc3ByaXRlX2ltZyE6IFNwcml0ZTtcclxuICAgIHB1YmxpYyBzcHJpdGVfYWRfdGlwITogU3ByaXRlO1xyXG4gICAgcHVibGljIGxhYmVsX3RpdGxlITogTGFiZWw7XHJcbiAgICBwdWJsaWMgbGFiZWxfZGVzYyE6IExhYmVsO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTFFTaGFyZURhdGEge1xyXG4gICAgcHVibGljIHRpdGxlITogc3RyaW5nO1xyXG4gICAgcHVibGljIHJlbW90ZV91cmwhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdXJsX2lkITogc3RyaW5nO1xyXG4gICAgcHVibGljIHF1ZXJ5ITogc3RyaW5nO1xyXG4gICAgcHVibGljIGNvbnRlbnQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZXh0cmEhOiBhbnk7XHJcbiAgICBwdWJsaWMgdHlwZSE6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvYmo/OiB7IHRpdGxlPzogc3RyaW5nLCByZW1vdGVfdXJsPzogc3RyaW5nLCB1cmxfaWQ/OiBzdHJpbmcsIHF1ZXJ5Pzogc3RyaW5nLCBjb250ZW50Pzogc3RyaW5nLCBleHRyYT86IGFueSwgdHlwZT86IHN0cmluZyB9KSB7XHJcbiAgICAgICAgaWYgKG9iai50aXRsZSkge1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gb2JqLnRpdGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob2JqLnJlbW90ZV91cmwpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdGVfdXJsID0gb2JqLnJlbW90ZV91cmw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYmoudXJsX2lkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsX2lkID0gb2JqLnVybF9pZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9iai5xdWVyeSkge1xyXG4gICAgICAgICAgICB0aGlzLnF1ZXJ5ID0gb2JqLnF1ZXJ5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob2JqLmNvbnRlbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gb2JqLmNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYmouZXh0cmEpIHtcclxuICAgICAgICAgICAgdGhpcy5leHRyYSA9IG9iai5leHRyYTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IG9iai50eXBlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExRUGxhdGZvcm1EYXRhIHtcclxuICAgIHB1YmxpYyBhcHBfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcHJpbnRfbG9nITogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBzaG93X3NoYXJlX21lbnUhOiBib29sZWFuO1xyXG4gICAgcHVibGljIGtlZXBfc2NyZWVuX29uITogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBiYW5uZXJfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYmFubmVyX3dpZHRoITogbnVtYmVyO1xyXG4gICAgcHVibGljIGludGVyc3RpdGlhbF9pZCE6IHN0cmluZztcclxuICAgIHB1YmxpYyBuYXRpdmVfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdmlkZW9faWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgaXNfdmlkZW9fZnJlZSE6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgaXNfY2FjaGVfdmlkZW8hOiBib29sZWFuO1xyXG4gICAgcHVibGljIGFkX3R5cGUhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWRfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWRfa2V5ITogc3RyaW5nO1xyXG4gICAgcHVibGljIHN3aXRjaF9hZCE6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgc2hhcmVfZGF0YV9hcnIhOiBMUVNoYXJlRGF0YVtdO1xyXG59Il19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/lq_base/data/lq_interface.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '41e45V6/vBNz5ftgHCoFmei', 'lq_interface'); -// Script/lq_base/data/lq_interface.ts - -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFxkYXRhXFxscV9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWZWMyID0gY2MuVmVjMjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVBvcyB7XHJcbiAgICB4OiBudW1iZXI7XHJcbiAgICB5OiBudW1iZXI7XHJcblxyXG4gICAgc3ViKHBvczogSVBvcyk6IFZlYzI7XHJcblxyXG4gICAgYWRkKHBvczogSVBvcyk6IFZlYzI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJlY3Qge1xyXG4gICAgeDogbnVtYmVyO1xyXG4gICAgeTogbnVtYmVyO1xyXG4gICAgd2lkdGg6IG51bWJlcjtcclxuICAgIGhlaWdodDogbnVtYmVyO1xyXG4gICAgaGFsZl93aWR0aDogbnVtYmVyO1xyXG4gICAgaGFsZl9oZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICBzdWIocG9zOiBJUG9zKTogVmVjMjtcclxuXHJcbiAgICBhZGQocG9zOiBJUG9zKTogVmVjMjtcclxufSJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/lq_base/util/lq_platform_util.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '35875T0lsRL3rzhNkUdX4/G', 'lq_platform_util'); -// Script/lq_base/util/lq_platform_util.ts - -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.LQPlatformUtil = void 0; -var lq_const_1 = require("../data/lq_const"); -var LQPlatformUtil = /** @class */ (function () { - function LQPlatformUtil() { - } - LQPlatformUtil.init = function () { - if (typeof qq !== 'undefined') { - this.platform_type = lq_const_1.LQPlatformType.qq; - } - else if (typeof swan !== 'undefined') { - this.platform_type = lq_const_1.LQPlatformType.baidu; - } - else if (typeof tt !== 'undefined') { - this.platform_type = lq_const_1.LQPlatformType.tt; - var info = tt.getSystemInfoSync(); - switch (info.appName) { - case 'Toutiao': - this.byte_dance_type = lq_const_1.LQByteDanceType.tt; - break; - case 'news_article_lite': - this.byte_dance_type = lq_const_1.LQByteDanceType.tt_lite; - break; - case 'Douyin': - this.byte_dance_type = lq_const_1.LQByteDanceType.douyin; - break; - case 'douyin_lite': - this.byte_dance_type = lq_const_1.LQByteDanceType.douyin_lite; - break; - case 'PPX': - this.byte_dance_type = lq_const_1.LQByteDanceType.ppx; - break; - case 'devtools': - this.byte_dance_type = lq_const_1.LQByteDanceType.devtools; - break; - } - } - else if (typeof qg !== 'undefined') { - if (!!qg.getBattle) { - this.platform_type = lq_const_1.LQPlatformType.oppo; + var new_obj = (obj instanceof Array ? [] : {}); + for (var key in obj) { + if (typeof obj[key] === 'object') { + new_obj[key] = this.deep_clone(obj[key]); } else { - this.platform_type = lq_const_1.LQPlatformType.vivo; + new_obj[key] = obj[key]; } } - else if (typeof wx !== 'undefined') { - this.platform_type = lq_const_1.LQPlatformType.wx; - } - else if (typeof jsb !== 'undefined') { - if (cc.sys.os === cc.sys.OS_ANDROID) { - this.platform_type = lq_const_1.LQPlatformType.android; - } - else if (cc.sys.os === cc.sys.OS_IOS) { - this.platform_type = lq_const_1.LQPlatformType.ios; - } - else { - this.platform_type = lq_const_1.LQPlatformType.unknown; - } - } - else if (cc.sys.isBrowser) { - this.platform_type = lq_const_1.LQPlatformType.browser; - } + return new_obj; }; - LQPlatformUtil.get_platform = function () { - return this.platform_type; - }; - LQPlatformUtil.get_byte_dance = function () { - return this.byte_dance_type; - }; - LQPlatformUtil.is_wx = function () { - return this.platform_type === lq_const_1.LQPlatformType.wx; - }; - LQPlatformUtil.is_tt = function () { - return this.platform_type === lq_const_1.LQPlatformType.tt; - }; - LQPlatformUtil.is_oppo = function () { - return this.platform_type === lq_const_1.LQPlatformType.oppo; - }; - LQPlatformUtil.is_vivo = function () { - return this.platform_type === lq_const_1.LQPlatformType.vivo; - }; - LQPlatformUtil.is_ov = function () { - return this.platform_type === lq_const_1.LQPlatformType.oppo || this.platform_type === lq_const_1.LQPlatformType.vivo; - }; - LQPlatformUtil.is_browser = function () { - return this.platform_type === lq_const_1.LQPlatformType.browser; - }; - LQPlatformUtil.is_android = function () { - return this.platform_type === lq_const_1.LQPlatformType.android; - }; - LQPlatformUtil.is_ios = function () { - return this.platform_type === lq_const_1.LQPlatformType.ios; - }; - LQPlatformUtil.is_native = function () { - return this.platform_type === lq_const_1.LQPlatformType.android || this.platform_type === lq_const_1.LQPlatformType.ios; - }; - LQPlatformUtil.is_qq = function () { - return this.platform_type === lq_const_1.LQPlatformType.qq; - }; - LQPlatformUtil.is_baidu = function () { - return this.platform_type === lq_const_1.LQPlatformType.baidu; - }; - LQPlatformUtil.is_kwaigame = function () { - return this.platform_type === lq_const_1.LQPlatformType.kwaigame; - }; - return LQPlatformUtil; + return LQBaseUtil; }()); -exports.LQPlatformUtil = LQPlatformUtil; -LQPlatformUtil.init(); -if (LQPlatformUtil.is_tt()) { - // console.log('---------当前平台:' + LQPlatformUtil.get_byte_dance()); -} -else { - // console.log('---------当前平台:' + LQPlatformUtil.get_platform()); -} +exports.LQBaseUtil = LQBaseUtil; cc._RF.pop(); } @@ -13686,7 +13129,7 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9wbGF0Zm9ybV91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUFpRTtBQUVqRTtJQUFBO0lBNEdBLENBQUM7SUF4R2lCLG1CQUFJLEdBQWxCO1FBQ0ksSUFBSSxPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyx5QkFBYyxDQUFDLEVBQUUsQ0FBQztTQUMxQzthQUFNLElBQUksT0FBTyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcseUJBQWMsQ0FBQyxLQUFLLENBQUM7U0FDN0M7YUFBTSxJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRTtZQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLHlCQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDbEIsS0FBSyxTQUFTO29CQUNWLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxFQUFFLENBQUM7b0JBQzFDLE1BQU07Z0JBQ1YsS0FBSyxtQkFBbUI7b0JBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxPQUFPLENBQUM7b0JBQy9DLE1BQU07Z0JBQ1YsS0FBSyxRQUFRO29CQUNULElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxNQUFNLENBQUM7b0JBQzlDLE1BQU07Z0JBQ1YsS0FBSyxhQUFhO29CQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxXQUFXLENBQUM7b0JBQ25ELE1BQU07Z0JBQ1YsS0FBSyxLQUFLO29CQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxHQUFHLENBQUM7b0JBQzNDLE1BQU07Z0JBQ1YsS0FBSyxV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dUJBQVEsR0FBdEI7UUFDSSxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUsseUJBQWMsQ0FBQyxLQUFLLENBQUM7SUFDdkQsQ0FBQztJQUVhLDBCQUFXLEdBQXpCO1FBQ0ksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLHlCQUFjLENBQUMsUUFBUSxDQUFDO0lBQzFELENBQUM7SUFDTCxxQkFBQztBQUFELENBNUdBLEFBNEdDLElBQUE7QUE1R1ksd0NBQWM7QUE4RzNCLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0QixJQUFJLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUN4QixtRUFBbUU7Q0FDdEU7S0FBTTtJQUNILGlFQUFpRTtDQUNwRSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TFFCeXRlRGFuY2VUeXBlLCBMUVBsYXRmb3JtVHlwZX0gZnJvbSBcIi4uL2RhdGEvbHFfY29uc3RcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBMUVBsYXRmb3JtVXRpbCB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBwbGF0Zm9ybV90eXBlOiBMUVBsYXRmb3JtVHlwZTtcclxuICAgIHByaXZhdGUgc3RhdGljIGJ5dGVfZGFuY2VfdHlwZTogTFFCeXRlRGFuY2VUeXBlO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW5pdCgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHFxICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5xcTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzd2FuICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5iYWlkdTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0dCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUudHQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZm8gPSB0dC5nZXRTeXN0ZW1JbmZvU3luYygpO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGluZm8uYXBwTmFtZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnVG91dGlhbyc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUudHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICduZXdzX2FydGljbGVfbGl0ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUudHRfbGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ0RvdXlpbic6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUuZG91eWluO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZG91eWluX2xpdGUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnl0ZV9kYW5jZV90eXBlID0gTFFCeXRlRGFuY2VUeXBlLmRvdXlpbl9saXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnUFBYJzpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ5dGVfZGFuY2VfdHlwZSA9IExRQnl0ZURhbmNlVHlwZS5wcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdkZXZ0b29scyc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUuZGV2dG9vbHM7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBxZyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgaWYgKCEhcWcuZ2V0QmF0dGxlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5vcHBvO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUudml2bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS53eDtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBqc2IgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGlmIChjYy5zeXMub3MgPT09IGNjLnN5cy5PU19BTkRST0lEKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5hbmRyb2lkO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNjLnN5cy5vcyA9PT0gY2Muc3lzLk9TX0lPUykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUuaW9zO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUudW5rbm93bjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoY2Muc3lzLmlzQnJvd3Nlcikge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5icm93c2VyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF9wbGF0Zm9ybSgpOiBMUVBsYXRmb3JtVHlwZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF9ieXRlX2RhbmNlKCk6IExRQnl0ZURhbmNlVHlwZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYnl0ZV9kYW5jZV90eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfd3goKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUud3g7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBpc190dCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS50dDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX29wcG8oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUub3BwbztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX3Zpdm8oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUudml2bztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX292KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtX3R5cGUgPT09IExRUGxhdGZvcm1UeXBlLm9wcG8gfHwgdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS52aXZvO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfYnJvd3NlcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5icm93c2VyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfYW5kcm9pZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5hbmRyb2lkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfaW9zKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtX3R5cGUgPT09IExRUGxhdGZvcm1UeXBlLmlvcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX25hdGl2ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5hbmRyb2lkIHx8IHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUuaW9zO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfcXEoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUucXE7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBpc19iYWlkdSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5iYWlkdTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX2t3YWlnYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtX3R5cGUgPT09IExRUGxhdGZvcm1UeXBlLmt3YWlnYW1lO1xyXG4gICAgfVxyXG59XHJcblxyXG5MUVBsYXRmb3JtVXRpbC5pbml0KCk7XHJcbmlmIChMUVBsYXRmb3JtVXRpbC5pc190dCgpKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnLS0tLS0tLS0t5b2T5YmN5bmz5Y+wOicgKyBMUVBsYXRmb3JtVXRpbC5nZXRfYnl0ZV9kYW5jZSgpKTtcclxufSBlbHNlIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCctLS0tLS0tLS3lvZPliY3lubPlj7A6JyArIExRUGxhdGZvcm1VdGlsLmdldF9wbGF0Zm9ybSgpKTtcclxufVxyXG4iXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9iYXNlX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdURBQWtEO0FBQ2xELDZDQUFnRDtBQUNoRCxJQUFPLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBR3RCO0lBQUE7SUE0SkEsQ0FBQztJQTNKRywwREFBMEQ7SUFFNUMsb0JBQVMsR0FBdkIsVUFBMkIsR0FBUSxFQUFFLENBQUk7UUFDckMsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDZCxHQUFHLEdBQUcsSUFBSSxDQUFDO2dCQUNYLE1BQU07YUFDVDtTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRWEsZ0NBQXFCLEdBQW5DLFVBQW9DLE9BQWUsRUFBRSxRQUFnQjtRQUNqRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxDQUFDO1NBQ1o7UUFDRCxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUFFO2dCQUN6QixTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLE1BQU07YUFDVDtTQUNKO1FBQ0QsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDbEIsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENB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R0FBeEIsVUFBeUIsR0FBUTtRQUM3QixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUN6QixPQUFPLEdBQUcsQ0FBQztTQUNkO1FBQ0QsSUFBSSxPQUFPLEdBQUcsQ0FBQyxHQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBUSxDQUFDO1FBQ3RELEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ2pCLElBQUksT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFO2dCQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM1QztpQkFBTTtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzNCO1NBQ0o7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBQ0wsaUJBQUM7QUFBRCxDQTVKQSxBQTRKQyxJQUFBO0FBNUpZLGdDQUFVIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMUVBsYXRmb3JtVXRpbH0gZnJvbSBcIi4vbHFfcGxhdGZvcm1fdXRpbFwiO1xyXG5pbXBvcnQge0xRUGxhdGZvcm1UeXBlfSBmcm9tIFwiLi4vZGF0YS9scV9jb25zdFwiO1xyXG5pbXBvcnQgdmlldyA9IGNjLnZpZXc7XHJcbmltcG9ydCBWZWMyID0gY2MuVmVjMjtcclxuXHJcbmV4cG9ydCBjbGFzcyBMUUJhc2VVdGlsIHtcclxuICAgIC8vIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdW5pdF9hcnIgPSBbJ0snLCAnTScsICdCJywgJ1QnXTtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGhhc192YWx1ZTxUPihhcnI6IFRbXSwgdjogVCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBoYXMgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoYXJyW2ldID09PSB2KSB7XHJcbiAgICAgICAgICAgICAgICBoYXMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGhhcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF92YWx1ZV9ieV9kdXJhdGlvbihwZXJjZW50OiBudW1iZXIsIHRpbWVsaW5lOiBWZWMyW10pOiBudW1iZXIge1xyXG4gICAgICAgIGlmICh0aW1lbGluZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBlbmRfaW5kZXggPSAtMTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHRpbWVsaW5lLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aW1lbGluZVtpXS54ID4gcGVyY2VudCkge1xyXG4gICAgICAgICAgICAgICAgZW5kX2luZGV4ID0gaTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbmRfaW5kZXggPT09IC0xKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aW1lbGluZVt0aW1lbGluZS5sZW5ndGggLSAxXS55O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzdGFydF9pbmRleCA9IGVuZF9pbmRleCAtIDE7XHJcbiAgICAgICAgcmV0dXJuIHRpbWVsaW5lW3N0YXJ0X2luZGV4XS55ICsgKHRpbWVsaW5lW2VuZF9pbmRleF0ueSAtIHRpbWVsaW5lW3N0YXJ0X2luZGV4XS55KSAqICgocGVyY2VudCAtIHRpbWVsaW5lW3N0YXJ0X2luZGV4XS54KSAvICh0aW1lbGluZVtlbmRfaW5kZXhdLnggLSB0aW1lbGluZVtzdGFydF9pbmRleF0ueCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgbnVtYmVyX3RvX2NvdW50aW5nKG51bTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAobnVtIDwgMTAwMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVtICsgJyc7XHJcbiAgICAgICAgfSBlbHNlIGlmIChudW0gPCAxMDAwMDAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bSAvIDEwMDApICsgJ0snO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobnVtIDwgMTAwMDAwMDAwMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW0gLyAxMDAwMDAwKSArICdNJztcclxuICAgICAgICB9IGVsc2UgaWYgKG51bSA8IDEwMDAwMDAwMDAwMDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IobnVtIC8gMTAwMDAwMDAwMCkgKyAnQic7XHJcbiAgICAgICAgfSBlbHNlIGlmIChudW0gPCAxMDAwMDAwMDAwMDAwMDAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bSAvIDEwMDAwMDAwMDAwMDApICsgJ1QnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW0gLyAxMDAwMDAwMDAwMDAwKSArICdUJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIG51bWJlcl90b190aW1lKHRpbWU6IG51bWJlcik6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSB7XHJcbiAgICAgICAgY29uc3QgdCA9IE1hdGguZmxvb3IodGltZSAvICg2MCAqIDYwKSk7XHJcbiAgICAgICAgdGltZSA9IHRpbWUgLSB0ICogNjAgKiA2MDtcclxuICAgICAgICBsZXQgaG91ciA9IHQudG9TdHJpbmcoKTtcclxuICAgICAgICBsZXQgbWluID0gTWF0aC5mbG9vcih0aW1lIC8gNjApLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgbGV0IHNlYyA9ICh0aW1lICUgNjApLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgIGlmIChob3VyLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBob3VyID0gJzAnICsgaG91cjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG1pbi5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgICAgbWluID0gJzAnICsgbWluO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2VjLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBzZWMgPSAnMCcgKyBzZWM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBbaG91ciwgbWluLCBzZWNdO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgc2V0X25vcm1hbF9hbmdsZShhbmdsZTogbnVtYmVyKSB7XHJcbiAgICAgICAgd2hpbGUgKGFuZ2xlID4gMzYwKSB7XHJcbiAgICAgICAgICAgIGFuZ2xlIC09IDM2MDtcclxuICAgICAgICB9XHJcbiAgICAgICAgd2hpbGUgKGFuZ2xlIDwgMCkge1xyXG4gICAgICAgICAgICBhbmdsZSArPSAzNjA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhbmdsZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGNvbXBhcmVfdmVyc2lvbih2MTogc3RyaW5nLCB2Mjogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgdjFfYXJyID0gdjEuc3BsaXQoJy4nKTtcclxuICAgICAgICBsZXQgdjJfYXJyID0gdjIuc3BsaXQoJy4nKTtcclxuICAgICAgICBjb25zdCBsZW4gPSBNYXRoLm1heCh2MV9hcnIubGVuZ3RoLCB2Ml9hcnIubGVuZ3RoKTtcclxuXHJcbiAgICAgICAgd2hpbGUgKHYxX2Fyci5sZW5ndGggPCBsZW4pIHtcclxuICAgICAgICAgICAgdjFfYXJyLnB1c2goJzAnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgd2hpbGUgKHYyX2Fyci5sZW5ndGggPCBsZW4pIHtcclxuICAgICAgICAgICAgdjJfYXJyLnB1c2goJzAnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBudW0xID0gcGFyc2VJbnQodjFfYXJyW2ldKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtMiA9IHBhcnNlSW50KHYyX2FycltpXSk7XHJcblxyXG4gICAgICAgICAgICBpZiAobnVtMSA+IG51bTIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG51bTEgPCBudW0yKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBpc190b2RheShkYXRlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBkMSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgbGV0IGQyO1xyXG4gICAgICAgIGlmIChkYXRlICYmIGRhdGUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIGQyID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZDIgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgICBkMi5zZXREYXRlKGQyLmdldERhdGUoKSAtIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZDEuZ2V0RnVsbFllYXIoKSA9PT0gZDIuZ2V0RnVsbFllYXIoKSAmJiBkMS5nZXRNb250aCgpID09PSBkMi5nZXRNb250aCgpICYmIGQxLmdldERhdGUoKSA9PT0gZDIuZ2V0RGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfc2FmZV9hcmVhKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGNiID0gKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAod2lkdGggPT09IDIyODAgJiYgaGVpZ2h0ID09PSAxMDgwKSB8fCAod2lkdGggPT09IDE3OTIgJiYgaGVpZ2h0ID09PSA4MjgpIHx8ICh3aWR0aCA9PT0gMjQzNiAmJiBoZWlnaHQgPT09IDExMjUpIHx8ICh3aWR0aCA9PT0gMjY4OCAmJiBoZWlnaHQgPT09IDEyNDIpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgc3dpdGNoIChMUVBsYXRmb3JtVXRpbC5nZXRfcGxhdGZvcm0oKSkge1xyXG4gICAgICAgICAgICBjYXNlIExRUGxhdGZvcm1UeXBlLmJhaWR1OlxyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3lzX2luZm9fc3dhbiA9IHN3YW4uZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYihzeXNfaW5mb19zd2FuLnBpeGVsUmF0aW8gKiBzeXNfaW5mb19zd2FuLnNjcmVlbldpZHRoLCBzeXNfaW5mb19zd2FuLnBpeGVsUmF0aW8gKiBzeXNfaW5mb19zd2FuLnNjcmVlbkhlaWdodCk7XHJcbiAgICAgICAgICAgIGNhc2UgTFFQbGF0Zm9ybVR5cGUucXE6XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzeXNfaW5mb19xcSA9IHFxLmdldFN5c3RlbUluZm9TeW5jKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2Ioc3lzX2luZm9fcXEucGl4ZWxSYXRpbyAqIHN5c19pbmZvX3FxLnNjcmVlbldpZHRoLCBzeXNfaW5mb19xcS5waXhlbFJhdGlvICogc3lzX2luZm9fcXEuc2NyZWVuSGVpZ2h0KTtcclxuICAgICAgICAgICAgY2FzZSBMUVBsYXRmb3JtVHlwZS50dDpcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN5c19pbmZvX3R0ID0gdHQuZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYihzeXNfaW5mb190dC5waXhlbFJhdGlvICogc3lzX2luZm9fdHQuc2NyZWVuV2lkdGgsIHN5c19pbmZvX3R0LnBpeGVsUmF0aW8gKiBzeXNfaW5mb190dC5zY3JlZW5IZWlnaHQpO1xyXG4gICAgICAgICAgICBjYXNlIExRUGxhdGZvcm1UeXBlLm9wcG86XHJcbiAgICAgICAgICAgIGNhc2UgTFFQbGF0Zm9ybVR5cGUudml2bzpcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN5c19pbmZvX3Zpdm8gPSBxZy5nZXRTeXN0ZW1JbmZvU3luYygpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNiKHN5c19pbmZvX3Zpdm8ucGl4ZWxSYXRpbyAqIHN5c19pbmZvX3Zpdm8uc2NyZWVuV2lkdGgsIHN5c19pbmZvX3Zpdm8ucGl4ZWxSYXRpbyAqIHN5c19pbmZvX3Zpdm8uc2NyZWVuSGVpZ2h0KTtcclxuICAgICAgICAgICAgY2FzZSBMUVBsYXRmb3JtVHlwZS53eDpcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN5c19pbmZvX3d4ID0gd3guZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYihzeXNfaW5mb193eC5waXhlbFJhdGlvICogc3lzX2luZm9fd3guc2NyZWVuV2lkdGgsIHN5c19pbmZvX3d4LnBpeGVsUmF0aW8gKiBzeXNfaW5mb193eC5zY3JlZW5IZWlnaHQpO1xyXG4gICAgICAgICAgICBjYXNlIExRUGxhdGZvcm1UeXBlLmFuZHJvaWQ6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBMUVBsYXRmb3JtVHlwZS5pb3M6XHJcbiAgICAgICAgICAgICAgICBsZXQgc2l6ZSA9IHZpZXcuZ2V0RnJhbWVTaXplKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2Ioc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBkZWVwX2Nsb25lKG9iajogYW55KSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvYmo7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBuZXdfb2JqID0gKG9iaiBpbnN0YW5jZW9mIEFycmF5ID8gW10gOiB7fSkgYXMgYW55O1xyXG4gICAgICAgIGZvciAobGV0IGtleSBpbiBvYmopIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgICAgIG5ld19vYmpba2V5XSA9IHRoaXMuZGVlcF9jbG9uZShvYmpba2V5XSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBuZXdfb2JqW2tleV0gPSBvYmpba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3X29iajtcclxuICAgIH1cclxufSJdfQ== //------QC-SOURCE-SPLIT------ (function() { @@ -14932,6 +14375,174 @@ cc._RF.pop(); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMkVBQXdFO0FBQ3hFLDZCQUFnQztBQUUxQixJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUN6QyxJQUFZLFNBdUJaO0FBdkJBLFdBQVksU0FBUztJQUNsQixTQUFTO0lBQ1QscUVBQVMsQ0FBQTtJQUNULFNBQVM7SUFDVCxpRkFBVSxDQUFBO0lBQ1YsT0FBTztJQUNQLHFFQUFTLENBQUE7SUFDVCxPQUFPO0lBQ1AscUVBQVMsQ0FBQTtJQUNULFNBQVM7SUFDVCxxRUFBUyxDQUFBO0lBQ1QsT0FBTztJQUNQLHFFQUFTLENBQUE7SUFDVCxPQUFPO0lBQ1AscUVBQVMsQ0FBQTtJQUNULE9BQU87SUFDUCxxRUFBUyxDQUFBO0lBQ1QsT0FBTztJQUNQLHFFQUFTLENBQUE7SUFDVCxPQUFPO0lBQ1AscUVBQVMsQ0FBQTtJQUNULE9BQU87SUFDUCxrRkFBVyxDQUFBO0FBQ2YsQ0FBQyxFQXZCWSxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQXVCckI7QUFFRCxJQUFZLFVBc0JYO0FBdEJELFdBQVksVUFBVTtJQUVsQixTQUFTO0lBQ1QsMkRBQVEsQ0FBQTtJQUNSLE9BQU87SUFDUCwyREFBUSxDQUFBO0lBQ1IsT0FBTztJQUNQLDJEQUFRLENBQUE7SUFDUixTQUFTO0lBQ1QsMkRBQVEsQ0FBQTtJQUNSLE9BQU87SUFDUCwyREFBUSxDQUFBO0lBQ1IsT0FBTztJQUNQLHVFQUFTLENBQUE7SUFDVCxPQUFPO0lBQ1AsMkRBQVEsQ0FBQTtJQUNSLE9BQU87SUFDUCwyREFBUSxDQUFBO0lBQ1IsT0FBTztJQUNQLDJEQUFRLENBQUE7SUFDUixPQUFPO0lBQ1AsMkRBQVEsQ0FBQTtBQUNaLENBQUMsRUF0QlcsVUFBVSxHQUFWLGtCQUFV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b0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzNCLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1lBRXJFLFNBQVM7WUFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzNCLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1lBRXJFLFNBQVM7WUFDVCxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRSxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFD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QUFDO2dCQUNGLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU07WUFDVixLQUFLLENBQUM7Z0JBQ0YsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLE1BQU07WUFDVixLQUFLLENBQUM7Z0JBQ0YsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3QixNQUFNO1lBQ1YsS0FBSyxDQUFDO2dCQUNGLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEMsTUFBTTtZQUNWLEtBQUssQ0FBQztnQkFDRixJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkMsTUFBTTtZQUNWLEtBQUssQ0FBQztnQkFDRixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTTtZQUNWLEtBQUssQ0FBQztnQkFDRixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLENBQUM7Z0JBQ0YsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLENBQUM7Z0JBQ0YsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTTtZQUNWLEtBQUssQ0FBQztnQkFDRixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTTtZQUNWLEtBQUssRUFBRTtnQkFDSCxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxNQUFNO1lBQ1YsS0FBSyxFQUFFO2dCQUNILElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLEVBQUU7Z0JBQ0gsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxNQUFNO1lBQ1YsS0FBSyxFQUFFO2dCQUNILElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLEVBQUU7Z0JBQ0gsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxNQUFNO1lBQ1YsS0FBSyxFQUFFO2dCQUNILElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLEVBQUU7Z0JBQ0gsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTTtZQUNWLEtBQUssRUFBRTtnQkFDSCxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLEVBQUU7Z0JBQ0gsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztn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QUssU0FBUztnQkFDVixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQztZQUN6QixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLEtBQUssU0FBUztnQkFDVixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQztZQUN6QixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLEtBQUssU0FBUztnQkFDVixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQztZQUN6QixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLEtBQUssU0FBUztnQkFDVixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQztZQUN6QixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFD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LElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO2dDQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7NkJBQ3ZCOzRCQUNELElBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUM7Z0NBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzZCQUNsQjt5QkFDSjs2QkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRTs0QkFDN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO2dDQUMzRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7NkJBQ3ZCOzRCQUNELElBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUM7Z0NBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzZCQUNsQjt5QkFDSjt3QkFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRTs0QkFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO2dDQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7NkJBQ3ZCOzRCQUNELElBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUM7Z0NBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzZCQUNsQjt5QkFDSjs2QkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRTs0QkFDN0IsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO2dDQUN4RSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7NkJBQ3ZCOzRCQUNELElBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUM7Z0NBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzZCQUNsQjt5QkFDSjtxQkFDSjt5QkFBTTt3QkFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRTs0QkFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO2dDQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7NkJBQ3ZCOzRCQUNELElBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUM7Z0NBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzZCQUNsQjt5QkFDSjs2QkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRTs0QkFDN0IsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO2dDQUN4RSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7NkJBQ3ZCOzRCQUNELElBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUM7Z0NBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzZCQUNsQjt5QkFDSjt3QkFFRCxJQUFJLElBQUksQ0FBQyxJ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d0JBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzt3QkFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO3FCQUMxRDtpQkFDSjthQUNSO1NBQ0o7SUFFTCxDQUFDO0lBcHBDRDtRQUpDLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQzNCLENBQUM7dUNBQzhCO0lBTWhDO1FBSkMsUUFBUSxDQUFDO1lBQ04sT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDNUIsQ0FBQzt3Q0FDZ0M7SUFNbEM7UUFKQyxRQUFRLENBQUM7WUFDTixPQUFPLEVBQUUsTUFBTTtZQUNmLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTztTQUNuQixDQUFDO3VDQUNlO0lBTWpCO1FBSkMsUUFBUSxDQUFDO1lBQ04sT0FBTyxFQUFFLE1BQU07WUFDZixJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU87U0FDbkIsQ0FBQztzQ0FDYztJQUdoQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO2tEQUNjO0lBeEN0QixLQUFLO1FBRHpCLE9BQU87T0FDYSxLQUFLLENBd3FDekI7SUFBRCxZQUFDO0NBeHFDRCxBQXdxQ0MsQ0F4cUNrQyxFQUFFLENBQUMsU0FBUyxHQXdxQzlDO2tCQXhxQ29CLEtBQUsiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29sbGlzaW9uRGV0ZWN0aW9uIGZyb20gXCIuL0NvbGxpc2lvbkRldGVjdGlvblwiO1xyXG5pbXBvcnQgeyBMUUNvbGxpZGVTeXN0ZW0gfSBmcm9tIFwiLi9scV9jb2xsaWRlX3N5c3RlbS9scV9jb2xsaWRlX3N5c3RlbVwiO1xyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuIGV4cG9ydCBlbnVtIEJsb2NrVHlwZXtcclxuICAgIC8q5pmu6YCa5Zyw5Z2XICovXHJcbiAgICBcIuaZrumAmuWdl1wiID0gMCwgIFxyXG4gICAgLyrotbfngrnlnLDlnZcgKi9cclxuICAgIFwi5Y+g5Yqg5Z2X5LiLXCIgPSAxLCAgXHJcbiAgICAvKua5v+WcsCAqL1xyXG4gICAgXCLpkqXljJnlnZdcIiA9IDIsICBcclxuICAgIC8q5bGx5bOwICovXHJcbiAgICBcIuS4iumUgeWdl1wiID0gMywgIFxyXG4gICAgLyrnu4jngrnlnLDlnZcgKi9cclxuICAgIFwi5Ya757uT5Z2XXCIgPSA0LCAgXHJcbiAgICAvKuaBr+WjpCAqL1xyXG4gICAgXCLmmJ/mmJ/lnZdcIiA9IDUsICAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLngrjlvLnlnZdcIiA9IDYsICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIuawtOW5s+Wdl1wiID0gNywgIFxyXG4gICAgLyrliqDlm7ogKi9cclxuICAgIFwi5Z6C55u05Z2XXCIgPSA4LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLnspjlkIjlnZdcIiA9IDksICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIuWPoOWKoOWdl+S4ilwiID0gMTAsICBcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQmxvY2tDb2xvcntcclxuXHJcbiAgICAvKui1t+eCueWcsOWdlyAqL1xyXG4gICAgXCLntKvoibJcIiA9IDAsICBcclxuICAgIC8q5rm/5ZywICovXHJcbiAgICBcIum7hOiJslwiID0gMSwgIFxyXG4gICAgLyrlsbHls7AgKi9cclxuICAgIFwi57u/6ImyXCIgPSAyLCAgXHJcbiAgICAvKue7iOeCueWcsOWdlyAqL1xyXG4gICAgXCLok53oibJcIiA9IDMsICBcclxuICAgIC8q5oGv5aOkICovXHJcbiAgICBcIueyieiJslwiID0gNCwgIFxyXG4gICAgLyrliqDlm7ogKi9cclxuICAgIFwi5qmY6buE6ImyXCIgPSA1LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLpnZLoibJcIiA9IDYsICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIueZveiJslwiID0gNywgIFxyXG4gICAgLyrliqDlm7ogKi9cclxuICAgIFwi57qi6ImyXCIgPSA4LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLngbDoibJcIiA9IDksXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFBhdGhUeXBle1xyXG4gICAgZXJyID0gXCJlcnJcIixcclxuICAgIHVwID0gXCJ1cFwiLCAgXHJcbiAgICBkb3duID0gXCJkb3duXCIsICBcclxuICAgIGxlZnQgPSBcImxlZnRcIixcclxuICAgIHJpZ2h0ID0gXCJyaWdodFwiLFxyXG4gICAgdXBfbGVmdCA9IFwidXBfbGVmdFwiLFxyXG4gICAgdXBfcmlnaHQgPSBcInVwX3JpZ2h0XCIsXHJcbiAgICBkb3duX2xlZnQgPSBcImRvd25fbGVmdFwiLFxyXG4gICAgZG93bl9yaWdodCA9IFwiZG93bl9yaWdodFwiLFxyXG4gICAgbGVmdF91cCA9IFwibGVmdF91cFwiLFxyXG4gICAgbGVmdF9kb3duID0gXCJsZWZ0X2Rvd25cIixcclxuICAgIHJpZ2h0X3VwID0gXCJyaWdodF91cFwiLFxyXG4gICAgcmlnaHRfZG93biA9IFwicmlnaHRfZG93blwiLFxyXG59XHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJsb2NrIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICAvLyDmlrDlop7nvJPlrZjlj5jph49cclxuICAgIHByaXZhdGUgbW92ZUludGVydmFsID0gMDsgLy8g57qmIDYwIEZQUyBcclxuICAgIHByaXZhdGUgbGFzdE1vdmVUaW1lID0gMDsgIC8vIOS4iuS4i+S4pOS4quWAvOadpeiwg+iKgui3n+aJi++8jOS4gOS4quaYr+aXtumXtOi9tO+8jOS4gOS4quaYr+i3neemu+i9tFxyXG4gICAgcHJpdmF0ZSBtYXhTcGVlZCA9IDMwMDsgICAgLy8gIOacgOWkp+enu+WKqOi3neemu1xyXG5cclxuICAgIC8vIHByaXZhdGUgb3RoZXJDb2xsaWRlcjogY2MuQ29sbGlkZXIgPSBudWxsO1xyXG4gICAgLy8gQHByb3BlcnR5KHtcclxuICAgIC8vICAgICB0b29sdGlwOiAn56Kw5pKe5b2i54q277yMTm9uZeWwseaYr+aXoOaVjO+8jOS4jeWPguS4jueisOaSnicsXHJcbiAgICAvLyAgICAgdHlwZTogY2MuRW51bShCbG9ja1R5cGUpLFxyXG4gICAgLy8gICAgIC8vIGRlZmF1bHQ6IEJsb2NrVHlwZS5Ob21hbCxcclxuICAgIC8vICAgICBkaXNwbGF5TmFtZTogJ+eisOaSnuW9oueKtidcclxuICAgIC8vIH0pXHJcbiAgICBcclxuICAgIEBwcm9wZXJ0eSh7XHJcbiAgICAgICAgdG9vbHRpcDogJ+eisOaSnuW9oueKtu+8jE5vbmXlsLHmmK/ml6DmlYzvvIzkuI3lj4LkuI7norDmkp4nLFxyXG4gICAgICAgIHR5cGU6IGNjLkVudW0oQmxvY2tUeXBlKSxcclxuICAgIH0pXHJcbiAgICB0eXBlOiBCbG9ja1R5cGUgPSBCbG9ja1R5cGUu5pmu6YCa5Z2XO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7XHJcbiAgICAgICAgdG9vbHRpcDogJ+eisOaSnuW9oueKtu+8jE5vbmXlsLHmmK/ml6DmlYzvvIzkuI3lj4LkuI7norDmkp4nLFxyXG4gICAgICAgIHR5cGU6IGNjLkVudW0oQmxvY2tDb2xvciksXHJcbiAgICB9KVxyXG4gICAgY29sb3I6IEJsb2NrQ29sb3IgPSBCbG9ja0NvbG9yLue0q+iJsjtcclxuXHJcbiAgICBAcHJvcGVydHkoe1xyXG4gICAgICAgIHRvb2x0aXA6ICfmqKrlkJHplb/luqYnLFxyXG4gICAgICAgIHR5cGU6IGNjLkludGVnZXIsXHJcbiAgICB9KVxyXG4gICAgaGVuZzogTnVtYmVyID0gMTtcclxuXHJcbiAgICBAcHJvcGVydHkoe1xyXG4gICAgICAgIHRvb2x0aXA6ICfnq5blkJHplb/luqYnLFxyXG4gICAgICAgIHR5cGU6IGNjLkludGVnZXIsXHJcbiAgICB9KVxyXG4gICAgc2h1OiBOdW1iZXIgPSAxO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVBdGxhcylcclxuICAgIGljZV9TcHJpdGVGcmFtZTogY2MuU3ByaXRlQXRsYXMgPSBudWxsO1xyXG5cclxuXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuICAgIC8vIEBwcm9wZXJ0eShjYy5TcHJpdGVBdGxhcylcclxuICAgIC8vIFVJOiBjYy5TcHJpdGVBdGxhcyA9IG51bGw7XHJcbiAgICBwcml2YXRlIGluaXRpYWxUb3VjaE9mZnNldDogY2MuVmVjMiA9IG51bGw7XHJcbiAgICBwcml2YXRlIG9mZnNldFRvbGVyYW5jZSA9IDEwMDsgLy8g5YGP56e75a655b+N5bqmOyBcclxuXHJcbiAgICBhbGxCbG9ja3M6YW55OyAgICAgICAvL+aJgOacieeahOaWueWdlyznlKjkuo7orqHnrpdwb3NYLHBvc1nmtojpmaRcclxuICAgIHRvdWNoUG9pbnQ6IGNjLlZlYzIgPSBudWxsOyAgICAgLy/op6bmkbjngrlcclxuICAgIGlzVG91Y2g6IGJvb2xlYW4gPSBmYWxzZTsgICAgICAgLy/mmK/lkKbop6bmkbhcclxuICAgIHBvc1g6IG51bWJlciA9IDA7ICAgICAgICAgICAgICAgLy/lnLDlm77lnZfnmoRY5Z2Q5qCHXHJcbiAgICBwb3NZOiBudW1iZXIgPSAwOyAgICAgICAgICAgICAgIC8v5Zyw5Zu+5Z2X55qEWeWdkOagh1xyXG4gICAgbW92ZUxlZnQ6IGJvb2xlYW4gPSB0cnVlOyAgICAgIC8v5piv5ZCm5Y+v5Lul5bem56e7O1xyXG4gICAgbW92ZVJpZ2h0OiBib29sZWFuID0gdHJ1ZTsgICAgIC8v5piv5ZCm5Y+v5Lul5Y+z56e7O1xyXG4gICAgbW92ZVVwOiBib29sZWFuID0gdHJ1ZTsgICAgICAgIC8v5piv5ZCm5Y+v5Lul5LiK56e7O1xyXG4gICAgbW92ZURvd246IGJvb2xlYW4gPSB0cnVlOyAgICAgIC8v5piv5ZCm5Y+v5Lul5LiL56e7O1xyXG4gICAgbW92ZUNvcm5lcjogbnVtYmVyID0gMDsgICAgICAgIC8v5piv5ZCm56Kw5pKe6KeS6JC9XHJcbiAgICBtb3ZlWTpudW1iZXIgPSAwOyAgICAgICAgICAvL+aYr+WQpuWPr+S7peS4iuS4i+enu+WKqDtcclxuICAgIG1vdmVYOm51bWJlciA9IDA7ICAgICAgICAgIC8v5piv5ZCm5Y+v5Lul5bem5Y+z56e75YqoO1xyXG4gICAgdG91Y2hQb2ludFg6IG51bWJlciA9IDA7ICAgICAgICAvL+inpuaRuOeCuVjlnZDmoIc7XHJcbiAgICB0b3VjaFBvaW50WTogbnVtYmVyID0gMDsgICAgICAgIC8v6Kem5pG454K5WeWdkOaghztcclxuICAgIGJsb2NrSWQ6IG51bWJlciA9IDA7ICAgICAgICAgICAgLy/mlrnlnZdJRDtcclxuICAgIHN0YWNraW5nOiBjYy5WZWMyOyAgICAgICAgICAgICAgLy/lj6DliqDmlrnlnZdcclxuICAgIGFkaGVzaXZlOiBjYy5WZWMyOyAgICAgICAgICAgICAgLy/nspjlkIjmlrnlnZdcclxuICAgIGxldmVsOiBudW1iZXIgPSAwOyAgICAgICAgICAgIC8v5Y+g5Yqg5pa55Z2X5bGC5pWwO1xyXG4gICAgcHo6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIG92ZXI6IGJvb2xlYW4gPSBmYWxzZTsgICAgICAvL+aWueWdl+aYr+WQpuWkseaViOW3sua2iOWksVxyXG4gICAgY29sbGlkZXI6IGFueTtcclxuICAgIGJsb2NrX0luZm86YW55O1xyXG4gICAgX3RvdWNoTGlzdGVuZXI6IGFueTtcclxuICAgIHJlbGF0aXZlX1Bvc2l0aW9uOmNjLlZlYzI7ICAvL+eCueWHu+WSjOaWueWdl+ebuOWvueS9jee9rlxyXG4gICAgcHJpdmF0ZSBfZXZlbnRNYW5hZ2VyOiBhbnk7XHJcbiAgICBoaXQ6IGNjLk5vZGU7XHJcbiAgICBvdGhlckNvbGxpZGVyOiBhbnk7XHJcbiAgICBtb3ZlU3RhY2s6IGJvb2xlYW47XHJcbiAgICB0b3VjaERlbHRhOiBjYy5WZWMyID0gY2MudjIoMCwgMCk7IFxyXG4gICAgYWRoZXNpdmVOb2RlOiBhbnk7XHJcbiAgICBjaGVja0NvbGxpc2lvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICB0aGlzLnB6ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGFja2luZyA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgdGhpcy5hZGhlc2l2ZSA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgdGhpcy5hZGhlc2l2ZU5vZGUgPSBbXTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVyID0gdGhpcy5ub2RlLmdldENvbXBvbmVudChjYy5Qb2x5Z29uQ29sbGlkZXIpO1xyXG4gICAgICAgIHRoaXMub3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb2xsaXNpb24gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBqc29uRGVlcENsb25lPFQ+KG9iajogVCk6IFQge1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gICAgfVxyXG4gICAgLy9jcmVhdGVBZCDkuLrmmK/lkKbliJvlu7rnspjlkIjlv6vlm77niYdcclxuICAgIGluaXQoYmxvY2tfSW5mbyxwb3NYLHBvc1ksbm9kZSxjcmVhdGVBZCl7XHJcbiAgICAgICAgdGhpcy5ibG9ja19JbmZvID0gdGhpcy5qc29uRGVlcENsb25lKGJsb2NrX0luZm8pO1xyXG4gICAgICAgIGlmKG5vZGUpIHRoaXMuYmxvY2tfSW5mby5ub2RlID0gbm9kZTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBibG9ja19JbmZvLnR5cGU7XHJcbiAgICAgICAgdGhpcy5jb2xvciA9IGJsb2NrX0luZm8uY29sb3I7XHJcbiAgICAgICAgdGhpcy5ibG9ja0lkID0gYmxvY2tfSW5mby5pZDtcclxuICAgICAgICAvLyBpZihwb3NYJiZwb3NZKXtcclxuICAgICAgICAvLyAgICAgdGhpcy5wb3NYID0gcG9zWDtcclxuICAgICAgICAvLyAgICAgdGhpcy5wb3NZID0gcG9zWTtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55Z2X5bGC57qnXCIsdGhpcy5ub2RlLnpJbmRleCk7XHJcbiAgICAgICAgdGhpcy5pbml0Q29sb3IoKTtcclxuICAgICAgICB0aGlzLmluaXRUeXBlKCk7XHJcbiAgICAgICAgdGhpcy5pbml0QmxvY2tzKCk7XHJcblxyXG4gICAgICAgIGlmKHRoaXMudHlwZSAhPSBCbG9ja1R5cGUu5Y+g5Yqg5Z2X5LiKKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX1NUQVJULCB0aGlzLnRvdWNoU3RhcnQsIHRoaXMpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfTU9WRSwgdGhpcy50b3VjaE1vdmUsIHRoaXMpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfQ0FOQ0VMLCB0aGlzLnRvdWNoRW5kLCB0aGlzKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0VORCwgdGhpcy50b3VjaEVuZCwgdGhpcyk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZVsnX3RvdWNoTGlzdGVuZXInXS5zZXRTd2FsbG93VG91Y2hlcyhmYWxzZSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy50eXBlID09IEJsb2NrVHlwZS7nspjlkIjlnZcpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy8g6K6h566X5L2N572u5YGP56e7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9zT2Zmc2V0ID0gY2MudjIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS54IC0gdGhpcy5ibG9ja19JbmZvLm5vZGUueCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgLSB0aGlzLmJsb2NrX0luZm8ubm9kZS55XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICBpZihjcmVhdGVBZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS56SW5kZXggPj0gdGhpcy5ibG9ja19JbmZvLm5vZGUuekluZGV4KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVBZGhlc2l2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY3JlYXRlQWRoZXNpdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0TmFtZXMgPSBbJ3RvcCcsICdkb3duJywgJ2xlZnQnLCAncmlnaHQnXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZS5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgY2MuTm9kZSAmJiB0YXJnZXROYW1lcy5pbmNsdWRlcyhjaGlsZC5uYW1lKSAmJiBjaGlsZC5nZXRDb21wb25lbnQoXCJscV9jb2xsaWRlXCIpLmRhdGFfc3RyaW5nICE9IFwiLTFcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xvbmVkQ2hpbGQgPSBjYy5pbnN0YW50aWF0ZShjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9uZWRDaGlsZC5nZXRDb21wb25lbnQoXCJscV9jb2xsaWRlXCIpLmRhdGFfc3RyaW5nID0gXCItMVwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvbmVkQ2hpbGQucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g6I635Y+W5a2Q6IqC54K555u45a+55LqO54i26IqC54K555qE5L2N572uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWxhdGl2ZVBvcyA9IGNoaWxkLmdldFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyDosIPmlbTlrZDoioLngrnkvY3nva7ku6Xkv53or4Hnm7jlr7nkvY3nva7kuI3lj5hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb25lZENoaWxkLnNldFBvc2l0aW9uKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlUG9zLnggLSBwb3NPZmZzZXQueCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVBvcy55IC0gcG9zT2Zmc2V0LnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRoZXNpdmUgPSBwb3NPZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIDEwMCk7XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIGxldCBtYXBJbmZvID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEluZm87XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPG1hcEluZm8ubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrUmVjdCA9IG1hcEluZm9baV0uZ2V0Qm91bmRpbmdCb3goKTtcclxuICAgICAgICAgICAgICAgIC8vIOS9v+eUqCBjYy5JbnRlcnNlY3Rpb24ucG9pbnRJblJlY3Qg5pa55rOV5Yik5pat54K55piv5ZCm5Zyo55+p5b2i6IyD5Zu05YaFXHJcbiAgICAgICAgICAgICAgICBsZXQgcG9pbnQgPSBjYy52Mih0aGlzLm5vZGUucG9zaXRpb24ueC01LCB0aGlzLm5vZGUucG9zaXRpb24ueSsxMClcclxuICAgICAgICAgICAgICAgIGlmKGJsb2NrUmVjdC5jb250YWlucyhwb2ludCkpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9zWCA9IG1hcEluZm9baV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc1kgPSBtYXBJbmZvW2ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1k7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRNYXBCbG9jaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGV2ZWwgPSA1MCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS56SW5kZXggPSB0aGlzLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS54ID0gbWFwSW5mb1tpXS54ICsgNjU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgPSBtYXBJbmZvW2ldLnkgLSA2MDtcclxuICAgICAgICAgICAgICAgICAgICBpPSAxMDAwMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpdCA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXQuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXQucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0gXCJ4el9cIit0aGlzLmJsb2NrX0luZm8uYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXQuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmljZV9TcHJpdGVGcmFtZS5fc3ByaXRlRnJhbWVzW25hbWVdO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGl0LnNldEFuY2hvclBvaW50KHRoaXMubm9kZS5hbmNob3JYLHRoaXMubm9kZS5hbmNob3JZKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpdC5zZXRQb3NpdGlvbigxMywtMTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuaGl0LmFuY2hvclggPT0gMC41KSB0aGlzLmhpdC5zZXRQb3NpdGlvbigwLC0xMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmhpdC5hbmNob3JYID09IDAuMzMpIHRoaXMuaGl0LnNldFBvc2l0aW9uKC0xMywtMTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5oaXQuYW5jaG9yWCA9PSAwLjY2KSB0aGlzLmhpdC5zZXRQb3NpdGlvbigyLC05KTtcclxuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmhpdC5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpdC5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICAvL+WIneWni+WMluaWueWdl+exu+Wei1xyXG4gICAgaW5pdFR5cGUoKXtcclxuICAgICAgICBsZXQgcG9zQ29uZmlnID0gY2MuZnguR2FtZUNvbmZpZy5QUk9QX0lORk9bdGhpcy5ibG9ja19JbmZvLmJsb2NrXTtcclxuICAgICAgICBcclxuICAgICAgICBzd2l0Y2godGhpcy50eXBlKXtcclxuICAgICAgICAgICAgY2FzZSBCbG9ja1R5cGUu54K45by55Z2XOlxyXG4gICAgICAgICAgICAgICAgbGV0IGJvb20gPSBjYy5pbnN0YW50aWF0ZShNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfUHJvcFt0aGlzLnR5cGVdKTtcclxuICAgICAgICAgICAgICAgIGJvb20ucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgYm9vbS5zZXRQb3NpdGlvbihwb3NDb25maWcucG9zMS54LHBvc0NvbmZpZy5wb3MxLnkpO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5ibG9ja19JbmZvPy5ib29tVGltZSkgXHJcbiAgICAgICAgICAgICAgICAgICAgYm9vbS5nZXRDb21wb25lbnQoXCJCb29tXCIpLmluaXQodGhpcy5ibG9ja19JbmZvLmJvb21UaW1lKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrOyBcclxuICAgICAgICAgICAgY2FzZSBCbG9ja1R5cGUu5pif5pif5Z2XOlxyXG4gICAgICAgICAgICAgICAgbGV0IHN0YXIgPSBjYy5pbnN0YW50aWF0ZShNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfUHJvcFt0aGlzLnR5cGVdKTtcclxuICAgICAgICAgICAgICAgIHN0YXIuYW5jaG9yWCA9IHRoaXMubm9kZS5hbmNob3JYO1xyXG4gICAgICAgICAgICAgICAgc3Rhci5hbmNob3JZID0gdGhpcy5ub2RlLmFuY2hvclk7XHJcbiAgICAgICAgICAgICAgICBzdGFyLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gc3Rhci5nZXRDb21wb25lbnQoXCJTdGFyXCIpLnN0YXJfU3ByaXRlRnJhbWUuZ2V0U3ByaXRlRnJhbWUoXCJzdGFyX1wiK3RoaXMuYmxvY2tfSW5mby5ibG9jayk7XHJcbiAgICAgICAgICAgICAgICBzdGFyLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHN0YXIuc2V0UG9zaXRpb24ocG9zQ29uZmlnLnBvczQueCAtIDEwLHBvc0NvbmZpZy5wb3M0LnkpO1xyXG4gICAgICAgICAgICBjYXNlIEJsb2NrVHlwZS7pkqXljJnlnZc6XHJcbiAgICAgICAgICAgICAgICBsZXQga2V5ID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbdGhpcy50eXBlXSk7XHJcbiAgICAgICAgICAgICAgICBrZXkucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAga2V5LnNldFBvc2l0aW9uKHBvc0NvbmZpZy5wb3MxLngscG9zQ29uZmlnLnBvczEueSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBCbG9ja1R5cGUu5LiK6ZSB5Z2XOlxyXG4gICAgICAgICAgICAgICAgbGV0IGxvY2sgPSBjYy5pbnN0YW50aWF0ZShNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfUHJvcFt0aGlzLnR5cGVdKTtcclxuICAgICAgICAgICAgICAgIGxvY2sucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgbG9jay5zZXRQb3NpdGlvbihwb3NDb25maWcucG9zMS54LHBvc0NvbmZpZy5wb3MxLnkpO1xyXG4gICAgICAgICAgICAgICAgbG9jay5nZXRDb21wb25lbnQoXCJMb2NrXCIpLmluaXQodGhpcy5ibG9ja19JbmZvLmxvY2tUaW1lKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIEJsb2NrVHlwZS7lhrvnu5PlnZc6XHJcbiAgICAgICAgICAgICAgICBsZXQgZnJlZXplID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbdGhpcy50eXBlXSk7XHJcbiAgICAgICAgICAgICAgICBmcmVlemUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgbGV0ICBuYW1lID0gXCJpY2VfXCIrdGhpcy5ibG9ja19JbmZvLmJsb2NrO1xyXG4gICAgICAgICAgICAgICAgbGV0IHNwcml0ZUZyYW1lID0gdGhpcy5pY2VfU3ByaXRlRnJhbWUuX3Nwcml0ZUZyYW1lc1tuYW1lXTtcclxuICAgICAgICAgICAgICAgIGZyZWV6ZS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBzcHJpdGVGcmFtZTtcclxuICAgICAgICAgICAgICAgIGxldCBmcmVlemVYID0gcG9zQ29uZmlnLnBvczYueC0odGhpcy5ub2RlLndpZHRoKih0aGlzLm5vZGUuYW5jaG9yWC0wLjUpKTsgbGV0IGZyZWV6ZVkgPSBwb3NDb25maWcucG9zNi55ICsgdGhpcy5ub2RlLmhlaWdodC8yO1xyXG4gICAgICAgICAgICAgICAgZnJlZXplLnNldFBvc2l0aW9uKGZyZWV6ZVgsZnJlZXplWSk7XHJcbiAgICAgICAgICAgICAgICBmcmVlemUuZ2V0Q29tcG9uZW50KFwiRnJlZXplXCIpLmluaXQodGhpcy5ibG9ja19JbmZvLmZyZWV6ZVRpbWUpO1xyXG4gICAgICAgICAgICAgICAgZnJlZXplLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5zZXRQb3NpdGlvbihwb3NDb25maWcucG9zNS54LTEwLWZyZWV6ZVgscG9zQ29uZmlnLnBvczUueS0yLWZyZWV6ZVkpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgQmxvY2tUeXBlLuawtOW5s+WdlzpcclxuICAgICAgICAgICAgICAgIGxldCBob3Jpem9udGFsID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbdGhpcy50eXBlXSk7XHJcbiAgICAgICAgICAgICAgICBob3Jpem9udGFsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIGxldCBoZW5nID0gXCJoZW5nXCIgKyB0aGlzLmhlbmc7XHJcbiAgICAgICAgICAgICAgICBob3Jpem9udGFsLmdldENoaWxkQnlOYW1lKGhlbmcpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBob3Jpem9udGFsLnNldFBvc2l0aW9uKHBvc0NvbmZpZy5wb3MyLngtMyxwb3NDb25maWcucG9zMi55KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIEJsb2NrVHlwZS7lnoLnm7TlnZc6XHJcbiAgICAgICAgICAgICAgICBsZXQgdmVydGljYWwgPSBjYy5pbnN0YW50aWF0ZShNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfUHJvcFt0aGlzLnR5cGVdKTtcclxuICAgICAgICAgICAgICAgIHZlcnRpY2FsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIGxldCBzaHUgPSBcInNodVwiICsgdGhpcy5zaHU7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC5nZXRDaGlsZEJ5TmFtZShzaHUpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC5zZXRQb3NpdGlvbihwb3NDb25maWcucG9zMy54LHBvc0NvbmZpZy5wb3MzLnkpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgQmxvY2tUeXBlLuWPoOWKoOWdl+S4ijpcclxuICAgICAgICAgICAgICAgIHRoaXMubW92ZVN0YWNrID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUub2ZmKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX1NUQVJUKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5vZmYoY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfTU9WRSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUub2ZmKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0NBTkNFTCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUub2ZmKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0VORCk7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnNlbGZCb3hDb2xsaWRlcnMgPSBbXTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS56SW5kZXggPSAyMDE7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zID0gdGhpcy5nZXRTdGFja2luZ1BvcygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnNldFBvc2l0aW9uKHRoaXMubm9kZS54ICsgcG9zLngsdGhpcy5ub2RlLnkgKyBwb3MueSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNraW5nID0gY2MudjIodGhpcy5ub2RlLnggLSB0aGlzLmJsb2NrX0luZm8ubm9kZS54LHRoaXMubm9kZS55IC0gdGhpcy5ibG9ja19JbmZvLm5vZGUueSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja19JbmZvLm5vZGUgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuc2NhbGVYICo9IDAuNztcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5zY2FsZVkgKj0gMC43O1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5ub2RlLmNoaWxkcmVuLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcImxlZnRcIiB8fCB0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcInJpZ2h0XCIgfHwgdGhpcy5ub2RlLmNoaWxkcmVuW2ldLm5hbWUgPT0gXCJ0b3BcIiB8fCB0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcImRvd25cIilcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLmNoaWxkcmVuW2ldLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yid5aeL5YyW5pa55Z2X6aKc6ImyXHJcbiAgICBpbml0Q29sb3IoKXsgICAgICAgICAgIFxyXG4gICAgIFxyXG4gICAgICAgIGxldCBuYW1lID0gdGhpcy5jb2xvcitcImNvbG9yXCIrdGhpcy5ibG9ja19JbmZvLmJsb2NrO1xyXG5cclxuICAgICAgICBsZXQgbnVtYmVyID0gTWF0aC5mbG9vcigodGhpcy5jb2xvci0xKS8yKTtcclxuXHJcbiAgICAgICAgbGV0IGJsb2NrU3ByaXRlRnJhbWUgPSBNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfQ29sb3JbbnVtYmVyXS5fc3ByaXRlRnJhbWVzO1xyXG4gICAgICAgIHZhciBzcHJpdGVGcmFtZSA9IGJsb2NrU3ByaXRlRnJhbWVbbmFtZV07XHJcbiAgICAgIFxyXG4gICAgICAgIC8vIGlmKHRoaXMudHlwZSA9PSBCbG9ja1R5cGUu5Ya757uT5Z2XKXtcclxuICAgICAgICAvLyAgICAgbmFtZSA9IFwiaWNlX1wiK3RoaXMuYmxvY2tfSW5mby5ibG9jaztcclxuICAgICAgICAvLyAgICAgc3ByaXRlRnJhbWUgPSB0aGlzLmljZV9TcHJpdGVGcmFtZS5fc3ByaXRlRnJhbWVzW25hbWVdO1xyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHNwcml0ZUZyYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu657KY5ZCI5b+r6L+e5o6l5aSEXHJcbiAgICBjcmVhdGVBZGhlc2l2ZSgpe1xyXG4gICAgICAgIGxldCBib3ggPSBbXTtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmFsbEJsb2Nrcy5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgYm94LnB1c2goY2MudjIodGhpcy5hbGxCbG9ja3NbaV0ueCt0aGlzLnBvc1gsdGhpcy5hbGxCbG9ja3NbaV0ueSt0aGlzLnBvc1kpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG90aGVyQm94ID0gW107XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYWxsQmxvY2tzLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBvdGhlckJveC5wdXNoKGNjLnYyKHRoaXMuYmxvY2tfSW5mby5ub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmFsbEJsb2Nrc1tpXS54K3RoaXMuYmxvY2tfSW5mby5ub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYWxsQmxvY2tzW2ldLnkrdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSkpOyBcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvcihsZXQgaz0wOyBrPGJveC5sZW5ndGg7IGsrKyl7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaj0wOyBqPG90aGVyQm94Lmxlbmd0aDsgaisrKXtcclxuICAgICAgICAgICAgICAgIGlmKChib3hba10ueCA9PSBvdGhlckJveFtqXS54KzEgfHwgYm94W2tdLnggPT0gb3RoZXJCb3hbal0ueC0xKSAmJiAoYm94W2tdLnkgPT0gb3RoZXJCb3hbal0ueSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIC8v5ZyoWOi9tCDnm7jpgrtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbGVmdCA9IGJveFtrXS54ID09IG90aGVyQm94W2pdLngrMSA/IFwibGVmdFwiIDogXCJyaWdodFwiO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkQWRoZXNpdmUobGVmdCxib3hba10pO1xyXG4gICAgICAgICAgICAgICAgICAgIG90aGVyQm94LnNwbGljZShqLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICBqLS07IC8vIOiwg+aVtOe0ouW8lVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKGogPCAwKSBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKChib3hba10ueSA9PSBvdGhlckJveFtqXS55KzEgfHwgYm94W2tdLnkgPT0gb3RoZXJCb3hbal0ueS0xKSAmJiAoYm94W2tdLnggPT0gb3RoZXJCb3hbal0ueCkpe1xyXG4gICAgICAgICAgICAgICAgICAgIC8v5ZyoWei9tCDnm7jpgrtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZG93biA9IGJveFtrXS55ID09IG90aGVyQm94W2pdLnkrMSA/IFwiZG93blwiIDogXCJ1cFwiO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkQWRoZXNpdmUoZG93bixib3hba10pO1xyXG4gICAgICAgICAgICAgICAgICAgIG90aGVyQm94LnNwbGljZShqLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICBqLS07IC8vIOiwg+aVtOe0ouW8lVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKGogPCAwKSBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gbGV0IGFkaGVzaXZlID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbdGhpcy50eXBlXSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/lhbfkvZPmt7vliqDnspjlkIjlv6vplIHpk77mlrnms5VcclxuICAgIGFkZEFkaGVzaXZlKGRpcmFjdGlvbixib3gpe1xyXG4gICAgICAgIGxldCBwb3MgPSBjYy52Mihib3gueCAtIHRoaXMucG9zWCxib3gueSAtIHRoaXMucG9zWSk7XHJcbiAgICAgICAgbGV0IGFkaGVzaXZlID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbMTBdKTtcclxuICAgICAgICBhZGhlc2l2ZS5wYXJlbnQgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQWRoZXNpdmVcIik7XHJcbiAgICAgICAgLy8gYWRoZXNpdmUucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYWRoZXNpdmVcIik7XHJcbiAgICAgICAgYWRoZXNpdmUuc2V0UG9zaXRpb24oIDEyMCpwb3MueCAtIDY1ICsgdGhpcy5ub2RlLngsIDEyMCpwb3MueSArIDYwICsgdGhpcy5ub2RlLnkpO1xyXG4gICAgICAgIGlmKGRpcmFjdGlvbiA9PSBcImxlZnRcIiB8fCBkaXJhY3Rpb24gPT0gXCJyaWdodFwiKXtcclxuICAgICAgICAgICAgYWRoZXNpdmUuZ2V0Q2hpbGRCeU5hbWUoXCJoZW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGFkaGVzaXZlLmdldENoaWxkQnlOYW1lKFwiaGVuZ1wiKS54ID0gLTYwO1xyXG4gICAgICAgICAgICBpZihkaXJhY3Rpb24gPT0gXCJyaWdodFwiKSBhZGhlc2l2ZS5nZXRDaGlsZEJ5TmFtZShcImhlbmdcIikueCA9IDYwO1xyXG4gICAgICAgICAgICBhZGhlc2l2ZS5nZXRDaGlsZEJ5TmFtZShcImhlbmdcIikueCArPSA5O1xyXG4gICAgICAgICAgICBhZGhlc2l2ZS5nZXRDaGlsZEJ5TmFtZShcImhlbmdcIikueSArPSA3O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBhZGhlc2l2ZS5nZXRDaGlsZEJ5TmFtZShcInNodVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBhZGhlc2l2ZS5nZXRDaGlsZEJ5TmFtZShcInNodVwiKS55ID0gLTYwO1xyXG4gICAgICAgICAgICBpZihkaXJhY3Rpb24gPT0gXCJ1cFwiKSBhZGhlc2l2ZS5nZXRDaGlsZEJ5TmFtZShcInNodVwiKS55ID0gNjA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFkaGVzaXZlLmdldENvbXBvbmVudChcIkFkaGVzaXZlXCIpLmluaXQodGhpcy5ub2RlKTtcclxuICAgICAgICB0aGlzLmFkaGVzaXZlTm9kZS5wdXNoKGFkaGVzaXZlKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVBZGhlc2l2ZSgpe1xyXG4gICAgICAgIGlmKHRoaXMuYWRoZXNpdmVOb2RlLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmFkaGVzaXZlTm9kZS5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgYWRoZXNpdmUgPSB0aGlzLmFkaGVzaXZlTm9kZVtpXTtcclxuICAgICAgICAgICAgICAgIGFkaGVzaXZlLmdldENvbXBvbmVudChcIkFkaGVzaXZlXCIpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5pa55Z2X6JC954K5XHJcbiAgICBibG9ja0ZhbGwocG9pbnQpe1xyXG4gICAgICAgIGlmKHRoaXMub3ZlciA9PSB0cnVlKSByZXR1cm47XHJcbiAgICAgICAgLy8gLy8g5YGH6K6+IE1hcENvbnJvbGVyIOaciee9keagvOS/oeaBr++8jOi/memHjOeugOWNleekuuS+i1xyXG4gICAgICAgIGNvbnN0IG1hcFdpZHRoID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcFdpZHRoO1xyXG4gICAgICAgIGNvbnN0IG1hcEhlaWdodCA9IE1hcENvbnJvbGVyLl9pbnN0YW5jZS5tYXBIZWlnaHQ7XHJcbiAgICAgICAgY29uc3QgY2VsbFNpemUgPSAxMjA7IC8vIOavj+S4quagvOWtkOeahOWkp+Wwj++8jOagueaNruWunumZheaDheWGteiwg+aVtFxyXG5cclxuICAgICAgICAvLyDorqHnrpfngrnmiYDlnKjnmoTnvZHmoLzlnZDmoIdcclxuICAgICAgICBjb25zdCBncmlkWCA9IE1hdGguZmxvb3IoKHBvaW50LnggKyAobWFwV2lkdGggKiBjZWxsU2l6ZSAvIDIpKSAvIGNlbGxTaXplKTtcclxuICAgICAgICBjb25zdCBncmlkWSA9IE1hdGguZmxvb3IoKHBvaW50LnkgKyAobWFwSGVpZ2h0ICogY2VsbFNpemUgLyAyKSkgLyBjZWxsU2l6ZSk7XHJcblxyXG4gICAgICAgIC8vIOajgOafpee9keagvOWdkOagh+aYr+WQpui2iueVjFxyXG4gICAgICAgIGlmIChncmlkWCA+PSAwICYmIGdyaWRYIDwgbWFwV2lkdGggJiYgZ3JpZFkgPj0gMCAmJiBncmlkWSA8IG1hcEhlaWdodCkge1xyXG4gICAgICAgICAgICBjb25zdCBtYXBCbG9jayA9IE1hcENvbnJvbGVyLl9pbnN0YW5jZS5tYXBCbG9ja3NXYWxsW2dyaWRYXVtncmlkWV07XHJcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrUmVjdCA9IG1hcEJsb2NrLmdldEJvdW5kaW5nQm94KCk7XHJcblxyXG4gICAgICAgICAgICAvLyDkvb/nlKggY2MuSW50ZXJzZWN0aW9uLnBvaW50SW5SZWN0IOaWueazleWIpOaWreeCueaYr+WQpuWcqOefqeW9ouiMg+WbtOWGhVxyXG4gICAgICAgICAgICBpZiAoYmxvY2tSZWN0LmNvbnRhaW5zKHBvaW50KSkge1xyXG4gICAgICAgICAgICAgICAgLy/lr7vmib7okL3ngrlcclxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlTWFwQmxvY2soKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zWCA9IG1hcEJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1g7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc1kgPSBtYXBCbG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRNYXBCbG9jaygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZXZlbCA9IDUwICsgdGhpcy5wb3NYIC0gdGhpcy5wb3NZICogMztcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS56SW5kZXggPSB0aGlzLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlnZflsYLnuqdcIix0aGlzLm5vZGUuekluZGV4KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS54ID0gbWFwQmxvY2sueCArIDY1O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgPSBtYXBCbG9jay55IC0gNjA7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50eXBlID09IDkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ibG9ja19JbmZvLm5vZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUueCA9IHRoaXMubm9kZS54IC0gdGhpcy5hZGhlc2l2ZS54O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZS55ID0gdGhpcy5ub2RlLnkgLSB0aGlzLmFkaGVzaXZlLnk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLnR5cGUgPT0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikubW92ZVN0YWNrID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUueCA9IHRoaXMubm9kZS54ICsgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc3RhY2tpbmcueDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZS55ID0gdGhpcy5ub2RlLnkgKyB0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zdGFja2luZy55O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICBsZXQgamcgPSBNYXBDb25yb2xlci5faW5zdGFuY2UuY2hlY2tQYXNzKHRoaXMubm9kZSx0aGlzLmFsbEJsb2Nrcyk7XHJcblxyXG4gICAgICAgIGlmKGpnID49IDApe1xyXG4gICAgICAgICAgICB0aGlzLm92ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuY2hhbmdlU3RhdGUoKTtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmVCb3hDb2xsaWRlcigpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZU1hcEJsb2NrKCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQWN0aW9uKGpnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnVwRG9vcih0aGlzLmNvbG9yKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRWaWJyYXRlKFwibWVkaXVtXCIsMSlcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVCb3hDb2xsaWRlcigpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5jaGlsZHJlbltpXS5uYW1lID09IFwibGVmdFwiIHx8IHRoaXMubm9kZS5jaGlsZHJlbltpXS5uYW1lID09IFwicmlnaHRcIiB8fCB0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcInRvcFwiIHx8IHRoaXMubm9kZS5jaGlsZHJlbltpXS5uYW1lID09IFwiZG93blwiKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmNoaWxkcmVuW2ldLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQWN0aW9uKGRpcmFjdGlvbil7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9mZihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9TVEFSVCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9mZihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9NT1ZFKTtcclxuICAgICAgICB0aGlzLm5vZGUub2ZmKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0NBTkNFTCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9mZihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9FTkQpO1xyXG4gICAgICAgIHRoaXMubm9kZS5hZGRDb21wb25lbnQoY2MuTWFzayk7XHJcbiAgICAgICAgbGV0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGxldCBwb3MgPSB0aGlzLm5vZGUuZ2V0UG9zaXRpb24oKTtcclxuICAgICAgICBpZih0aGlzLnR5cGUgPT0gQmxvY2tUeXBlLuWPoOWKoOWdl+S4iyl7XHJcbiAgICAgICAgICAgIGxldCBzY2FsZVggPSB0aGlzLm5vZGUuc2NhbGVYO1xyXG4gICAgICAgICAgICBsZXQgc2NhbGVZID0gdGhpcy5ub2RlLnNjYWxlWTtcclxuICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzdG9yZU5vbWFsKHRoaXMucG9zWCx0aGlzLnBvc1ksdHJ1ZSk7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuYmxvY2tfSW5mby5ub2RlKVxyXG4gICAgICAgICAgICAudG8oMC4zLHtwb3NpdGlvbjpwb3Msc2NhbGVYOnNjYWxlWD4wPzE6LTEsc2NhbGVZOnNjYWxlWT4wPzE6LTF9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLnR5cGUgPT0gQmxvY2tUeXBlLueymOWQiOWdlyl7XHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQWRoZXNpdmUoKTtcclxuICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVtb3ZlQWRoZXNpdmUoKTtcclxuICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzdG9yZU5vbWFsKHRoaXMuYmxvY2tfSW5mby5ub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsXHJcbiAgICAgICAgICAgIHRoaXMuYmxvY2tfSW5mby5ub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodGhpcy50eXBlID09IEJsb2NrVHlwZS7ngrjlvLnlnZcpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJib29tXCIpLmdldENvbXBvbmVudChcIkJvb21cIikuc3RvcEJvb20oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgIFxyXG4gICAgICAgIGxldCB0aW1lID0gMC4zMztcclxuICAgICAgICAvLyB0aGlzLm5vZGUuekluZGV4ID0gMDtcclxuICAgICAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKHRoaXMubm9kZS53aWR0aCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IE1hdGguZmxvb3IodGhpcy5ub2RlLmhlaWdodCAvIDEyMCk7XHJcblxyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwieGlhb2NodVwiLG51bGwpO1xyXG4gICAgICAgIH0sIDMwMCApO1xyXG4gICAgICAgIHRoaXMuc2V0VmlicmF0ZShcImxpZ2h0XCIsMylcclxuXHJcbiAgICAgICAgaWYoZGlyYWN0aW9uID09IDApe1xyXG4gICAgICAgICAgICB0aW1lID0gMC4zMypoZWlnaHQ7XHJcbiAgICAgICAgICAgIC8vIHRpbWUgPSAwLjk5O1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLm5vZGUuY2hpbGRyZW4ubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUuY2hpbGRyZW5baV0pXHJcbiAgICAgICAgICAgICAgICAudG8odGltZSx7eTp0aGlzLm5vZGUuY2hpbGRyZW5baV0ueSArIHRoaXMubm9kZS5jaGlsZHJlblswXS5oZWlnaHR9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkaXJhY3Rpb24gPT0gMSl7XHJcbiAgICAgICAgICAgIHRpbWUgPSAwLjMzKmhlaWdodDtcclxuICAgICAgICAgICAgLy8gdGltZSA9IDAuOTlcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5ub2RlLmNoaWxkcmVuLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmNoaWxkcmVuW2ldKSBcclxuICAgICAgICAgICAgICAudG8odGltZSx7eTp0aGlzLm5vZGUuY2hpbGRyZW5baV0ueSAtIHRoaXMubm9kZS5jaGlsZHJlblswXS5oZWlnaHR9KVxyXG4gICAgICAgICAgICAgIC5zdGFydCgpOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gICBcclxuICAgICAgICBlbHNlIGlmKGRpcmFjdGlvbiA9PSAyKXtcclxuICAgICAgICAgICAgdGltZSA9IDAuMzMqd2lkdGg7XHJcbiAgICAgICAgICAgIC8vIHRpbWUgPSAwLjk5XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5jaGlsZHJlbltpXSkgXHJcbiAgICAgICAgICAgICAgICAudG8odGltZSx7eDp0aGlzLm5vZGUuY2hpbGRyZW5baV0ueCAtIHRoaXMubm9kZS5jaGlsZHJlblswXS53aWR0aH0pXHJcbiAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGRpcmFjdGlvbiA9PSAzKXtcclxuICAgICAgICAgICAgdGltZSA9IDAuMzMqd2lkdGhcclxuICAgICAgICAgICAgLy8gdGltZSA9IDAuOTlcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5ub2RlLmNoaWxkcmVuLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmNoaWxkcmVuW2ldKSBcclxuICAgICAgICAgICAgICAgIC50byh0aW1lLHt4OnRoaXMubm9kZS5jaGlsZHJlbltpXS54ICsgdGhpcy5ub2RlLmNoaWxkcmVuWzBdLndpZHRofSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgbGV0IHRlbXBDb2xvciA9IHRoaXMuY29sb3I7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnVwRG9vcih0ZW1wQ29sb3IpOyBcclxuICAgICAgICAgICAgfSwgMjUwKTtcclxuXHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5uZXh0TGV2ZWwoKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucmVtb3ZlRnJvbVBhcmVudCgpO1xyXG5cclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucmVtb3ZlRnJvbVBhcmVudCgpO1xyXG4gICAgICAgIH0sIHRpbWUqMTAwMCk7XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIHRvdWNoU3RhcnQoZXZlbnQpe1xyXG4gICAgICAgIGlmKHRoaXMub3ZlciB8fCBNYXBDb25yb2xlci5faW5zdGFuY2UuZ2FtZU92ZXIpIHJldHVybjtcclxuICAgICAgICAvLyDov5Tlm57kuJbnlYzlnZDmoIdcclxuICAgICAgICBsZXQgdG91Y2hMb2MgPSBldmVudC5nZXRMb2NhdGlvbigpO1xyXG4gICAgICAgIC8vIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9hcGkvemgvY2xhc3Nlcy9JbnRlcnNlY3Rpb24uaHRtbCDmo4DmtYvovoXliqnnsbtcclxuICAgICAgICAvLyBsZXQgcG9zID0gdGhpcy5jb2xsaWRlci53b3JsZC5wb2ludHNcclxuXHJcbiAgICAgICAgaWYoIXRoaXMuY29sbGlkZXIud29ybGQpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIOWIpOaWreinpuaRuOeCueaYr+WQpuWcqOWkmui+ueW9ouWGhVxyXG4gICAgICAgIGlmIChjYy5JbnRlcnNlY3Rpb24ucG9pbnRJblBvbHlnb24odG91Y2hMb2MsIHRoaXMuY29sbGlkZXIud29ybGQucG9pbnRzKSkge1xyXG4gICAgICAgICAgICBpZihNYXBDb25yb2xlci5faW5zdGFuY2UuaGFtbWVyKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzVG91Y2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5oYW1tZXJNYXNrLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBpZih0aGlzLnR5cGUgIT0gQmxvY2tUeXBlLuS4iumUgeWdlyAmJiB0aGlzLnR5cGUgIT0gQmxvY2tUeXBlLuWGu+e7k+Wdlyl7XHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2Uuc3RhcnRVcGRhdGUoKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImhpdFwiLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnpJbmRleCA9IDIwMDtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMudHlwZSA9PSA5KXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmJsb2NrX0luZm8ubm9kZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tfSW5mby5ub2RlLnpJbmRleCA9IDIwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaGl0LmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5kb3duRG9vcih0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvcix0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKHRoaXMudHlwZSA9PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5tb3ZlU3RhY2sgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCB0b3VjaFBvaW50ID0gZXZlbnQuZ2V0TG9jYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIGxldCBsb2NhbCA9IHRoaXMubm9kZS5wYXJlbnQuY29udmVydFRvTm9kZVNwYWNlQVIodG91Y2hQb2ludCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvdWNoUG9pbnRYID0gbG9jYWwueDtcclxuICAgICAgICAgICAgICAgIHRoaXMudG91Y2hQb2ludFkgPSBsb2NhbC55O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb3ZlTGVmdCA9IHRoaXMubW92ZVJpZ2h0ID0gdGhpcy5tb3ZlVXAgPSB0aGlzLm1vdmVEb3duID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNUb3VjaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vdmVDb3JuZXIgPSAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZV9Qb3NpdGlvbiA9IGNjLnYyKHRoaXMubm9kZS54LWxvY2FsLngsdGhpcy5ub2RlLnktbG9jYWwueSk7XHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuY2hhbmdlUmlzZUZhbGwodGhpcy5jb2xvcix0cnVlKTtcclxuICAgICAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5kb3duRG9vcih0aGlzLmNvbG9yLHRoaXMudHlwZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZpYnJhdGUoXCJsaWdodFwiLDEpXHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLmhpdCkgdGhpcy5oaXQuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzVG91Y2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc1RvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHRvdWNoRW5kKGV2ZW50KXtcclxuICAgICAgICBpZihNYXBDb25yb2xlci5faW5zdGFuY2UuZ2FtZU92ZXIpIHJldHVybjtcclxuICAgICAgICBpZih0aGlzLmlzVG91Y2gpe1xyXG4gICAgICAgICAgICB0aGlzLnRvdWNoRGVsdGEgPSBjYy52MigwLCAwKTtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0NvbGxpc2lvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuY2hhbmdlUmlzZUZhbGwodGhpcy5jb2xvcixmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImRvd25cIixudWxsKTtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnJlbW92ZU9uZUJsb2NrKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNUb3VjaCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuekluZGV4ID0gdGhpcy5sZXZlbDtcclxuICAgICAgICAgICAgdGhpcy5oaXQuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmKHRoaXMudHlwZSA9PSA5KXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tfSW5mby5ub2RlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5oaXQuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaXNUb3VjaCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRvdWNoUG9pbnQgPSBldmVudC5nZXRMb2NhdGlvbigpO1xyXG4gICAgICAgICAgICBsZXQgbG9jYWwgPSBjYy52Mih0aGlzLm5vZGUueCAtIDUwLHRoaXMubm9kZS55ICsgNTAgKTtcclxuICAgICAgICAgICAgaWYodGhpcy50eXBlICE9IDEwKXtcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja0ZhbGwobG9jYWwpO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy50eXBlID09IDkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tfSW5mby5ub2RlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2FsVGVtcCA9IGNjLnYyKHRoaXMuYmxvY2tfSW5mby5ub2RlLngtNTAsdGhpcy5ibG9ja19JbmZvLm5vZGUueSs1MCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tfSW5mby5ub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrRmFsbChsb2NhbFRlbXApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm1vdmVMZWZ0ID0gdGhpcy5tb3ZlUmlnaHQgPSB0aGlzLm1vdmVVcCA9IHRoaXMubW92ZURvd24gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgXHJcbiAgICB9XHJcblxyXG4gICAgdG91Y2hNb3ZlKGV2ZW50OiBjYy5FdmVudC5FdmVudFRvdWNoKSB7XHJcbiAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlLmdhbWVPdmVyKSByZXR1cm47XHJcbiAgICAgICAgLy8gY29uc3QgY3VycmVudFRpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIC8vIC8vIOWmguaenOi3neemu+S4iuasoeenu+WKqOaXtumXtOWwj+S6jumXtOmalOaXtumXtO+8jOebtOaOpei/lOWbnlxyXG4gICAgICAgIC8vIGlmIChjdXJyZW50VGltZSAtIHRoaXMubGFzdE1vdmVUaW1lIDwgdGhpcy5tb3ZlSW50ZXJ2YWwpIHtcclxuICAgICAgICAvLyAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyB0aGlzLmxhc3RNb3ZlVGltZSA9IGN1cnJlbnRUaW1lO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1RvdWNoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhID0gZXZlbnQuZ2V0RGVsdGEoKTtcclxuICAgICAgICAgICAgY29uc3QgdG91Y2hQb2ludCA9IGV2ZW50LmdldExvY2F0aW9uKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvY2FsID0gdGhpcy5ub2RlLnBhcmVudC5jb252ZXJ0VG9Ob2RlU3BhY2VBUih0b3VjaFBvaW50KTtcclxuICAgICAgICAgICAgdGhpcy50b3VjaFBvaW50WCA9IGxvY2FsLng7XHJcbiAgICAgICAgICAgIHRoaXMudG91Y2hQb2ludFkgPSBsb2NhbC55O1xyXG4gICAgICAgICAgICBkZWx0YS54ID0gdGhpcy50b3VjaFBvaW50WCAtIHRoaXMubm9kZS54ICsgdGhpcy5yZWxhdGl2ZV9Qb3NpdGlvbi54O1xyXG4gICAgICAgICAgICBkZWx0YS55ID0gdGhpcy50b3VjaFBvaW50WSAtIHRoaXMubm9kZS55ICsgIHRoaXMucmVsYXRpdmVfUG9zaXRpb24ueTtcclxuXHJcbiAgICAgICAgICAgIC8vIOmZkOWItuenu+WKqOmAn+W6plxyXG4gICAgICAgICAgICB0aGlzLnRvdWNoUG9pbnRYID0gbG9jYWwueDtcclxuICAgICAgICAgICAgdGhpcy50b3VjaFBvaW50WSA9IGxvY2FsLnk7XHJcbiAgICAgICAgICAgIGRlbHRhLnggPSB0aGlzLnRvdWNoUG9pbnRYIC0gdGhpcy5ub2RlLnggKyB0aGlzLnJlbGF0aXZlX1Bvc2l0aW9uLng7XHJcbiAgICAgICAgICAgIGRlbHRhLnkgPSB0aGlzLnRvdWNoUG9pbnRZIC0gdGhpcy5ub2RlLnkgKyAgdGhpcy5yZWxhdGl2ZV9Qb3NpdGlvbi55O1xyXG5cclxuICAgICAgICAgICAgLy8g6ZmQ5Yi256e75Yqo6YCf5bqmXHJcbiAgICAgICAgICAgIGRlbHRhLnggPSBNYXRoLm1heCgtdGhpcy5tYXhTcGVlZCwgTWF0aC5taW4odGhpcy5tYXhTcGVlZCwgZGVsdGEueCkpO1xyXG4gICAgICAgICAgICBkZWx0YS55ID0gTWF0aC5tYXgoLXRoaXMubWF4U3BlZWQsIE1hdGgubWluKHRoaXMubWF4U3BlZWQsIGRlbHRhLnkpKTtcclxuXHJcbiAgICAgICAgICAgIC8vIOiusOW9leinpuaRuOenu+WKqOeahOWinumHj1xyXG4gICAgICAgICAgICB0aGlzLnRvdWNoRGVsdGEgPSBkZWx0YTsgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v6LaF5Ye66ZmQ5Yi25Yik5patXHJcbiAgICBleGNlZWRzKHN0ZXB4LHN0ZXB5KXtcclxuICAgICBcclxuICAgIH1cclxuXHJcbiAgICBlbGltaW5hdGUoKXtcclxuICAgICAgICAvL+mUpOWtkOeKtuaAgea2iOWksVxyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLmhhbW1lciA9IGZhbHNlO1xyXG4gICAgICAgIC8v5aaC5p6c5pa55Z2X5piv5pyJ54m55q6K54q25oCB77yM5YiZ54m55q6K5aSE55CGXHJcbiAgICAgICAgaWYodGhpcy50eXBlID09IEJsb2NrVHlwZS7lhrvnu5PlnZcpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuZ2V0Q29tcG9uZW50KFwiRnJlZXplXCIpLnJlZHVjZSgyKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMudHlwZSA9PSBCbG9ja1R5cGUu5LiK6ZSB5Z2XKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibG9ja1wiKS5nZXRDb21wb25lbnQoXCJMb2NrXCIpLnJlZHVjZSgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL+WmguaenOaWueWdl+WPr+S7pea2iOmZpFxyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5zcGVjaWFsX1RyZWF0bWVudCh0aGlzLm5vZGUpO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICB0aGlzLnJlbW92ZU1hcEJsb2NrKCk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgcG9zID0gdGhpcy5ub2RlLmdldFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIGlmKHNlbGYudHlwZSA9PSBCbG9ja1R5cGUu5Y+g5Yqg5Z2X5LiLKXtcclxuICAgICAgICAgICAgICAgIGxldCBzY2FsZVggPSBzZWxmLm5vZGUuc2NhbGVYO1xyXG4gICAgICAgICAgICAgICAgbGV0IHNjYWxlWSA9IHNlbGYubm9kZS5zY2FsZVk7XHJcbiAgICAgICAgICAgICAgICBzZWxmLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5yZXN0b3JlTm9tYWwodGhpcy5wb3NYLHRoaXMucG9zWSx0cnVlKTtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHNlbGYuYmxvY2tfSW5mby5ub2RlKVxyXG4gICAgICAgICAgICAgICAgLnRvKDAuMSx7cG9zaXRpb246cG9zLHNjYWxlWDpzY2FsZVg+MD8xOi0xLHNjYWxlWTpzY2FsZVk+MD8xOi0xfSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYoc2VsZi50eXBlID09IEJsb2NrVHlwZS7nspjlkIjlnZcpe1xyXG4gICAgICAgICAgICAgICAgc2VsZi5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzdG9yZU5vbWFsKHNlbGYuYmxvY2tfSW5mby5ub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsXHJcbiAgICAgICAgICAgICAgICBzZWxmLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHNlbGYudHlwZSA9PSBCbG9ja1R5cGUu54K45by55Z2XKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImJvb21cIikuZ2V0Q29tcG9uZW50KFwiQm9vbVwiKS5zdG9wQm9vbSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UubmV4dExldmVsKCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICB9LCAyMDApO1xyXG4gICAgfVxyXG4gICAgIFxyXG4gICAgc2V0VmlicmF0ZSh0eXBlLCBjb3VudCl7XHJcbiAgICAgICAgLy8gcmV0dXJuO1xyXG4gICAgICAgIGlmKCFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW4pe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGNvdW50ID09IDEpe1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHsgLy8g5Yik5pat5piv5ZCm5Zyo5b6u5L+h546v5aKDXHJcbiAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHd4LnZpYnJhdGVTaG9ydCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdGltZSA9IDE1MDtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTw0OyBpKyspe1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHsgLy8g5Yik5pat5piv5ZCm5Zyo5b6u5L+h546v5aKDXHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgd3gudmlicmF0ZVNob3J0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIHRpbWUqaSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgc2V0TW92ZUNvcm5lcihkaXJhY3Rpb24pe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjbXVwZGF0ZSgpIHtcclxuICAgICAgICBsZXQgY206YW55ID0gY2MuZGlyZWN0b3IuZ2V0Q29sbGlzaW9uTWFuYWdlcigpOyAgICAgICAgXHJcbiAgICAgICAgY20udXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzdG9yZU5vbWFsKHBvc1gscG9zWSx0eXBlKXtcclxuICAgICAgICB0aGlzLnR5cGUgPSAwO1xyXG4gICAgICAgIHRoaXMuYmxvY2tfSW5mby5ub2RlID0gbnVsbDtcclxuICAgICAgICB0aGlzLm1vdmVTdGFjayA9IGZhbHNlOyBcclxuICAgICAgICB0aGlzLnBvc1ggPSBwb3NYO1xyXG4gICAgICAgIHRoaXMucG9zWSA9IHBvc1k7XHJcbiAgICAgICAgdGhpcy5zZXRNYXBCbG9jaygpO1xyXG4gICAgICAgIHRoaXMubGV2ZWwgPSA1MCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozO1xyXG4gICAgICAgIHRoaXMubm9kZS56SW5kZXggPSB0aGlzLmxldmVsO1xyXG4gICAgICAgIGxldCBqID0gMTAwMDtcclxuICAgICAgICBmb3IobGV0IGkgPTA7IGk8IHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5jaGlsZHJlbltpXS5uYW1lID09IFwiTmV3IE5vZGVcIil7XHJcbiAgICAgICAgICAgICAgICBqID0gaTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihpID4gail7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuY2hpbGRyZW5baV0uYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodHlwZSl7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcImxlZnRcIiB8fCB0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcInJpZ2h0XCIgfHwgdGhpcy5ub2RlLmNoaWxkcmVuW2ldLm5hbWUgPT0gXCJ0b3BcIiB8fCB0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcImRvd25cIilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUuY2hpbGRyZW5baV0uYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfU1RBUlQsIHRoaXMudG91Y2hTdGFydCwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX01PVkUsIHRoaXMudG91Y2hNb3ZlLCB0aGlzKTtcclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfQ0FOQ0VMLCB0aGlzLnRvdWNoRW5kLCB0aGlzKTtcclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfRU5ELCB0aGlzLnRvdWNoRW5kLCB0aGlzKTtcclxuICAgICAgICB0aGlzLm5vZGVbJ190b3VjaExpc3RlbmVyJ10uc2V0U3dhbGxvd1RvdWNoZXMoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuaGl0ID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICB0aGlzLmhpdC5hZGRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICB0aGlzLmhpdC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcInh6X1wiK3RoaXMuYmxvY2tfSW5mby5ibG9jaztcclxuICAgICAgICB0aGlzLmhpdC5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMuaWNlX1Nwcml0ZUZyYW1lLl9zcHJpdGVGcmFtZXNbbmFtZV07XHJcbiAgICAgICAgdGhpcy5oaXQuc2V0QW5jaG9yUG9pbnQodGhpcy5ub2RlLmFuY2hvclgsdGhpcy5ub2RlLmFuY2hvclkpO1xyXG4gICAgICAgIHRoaXMuaGl0LnNldFBvc2l0aW9uKDEzLC0xMSk7XHJcbiAgICAgICAgaWYodGhpcy5oaXQuYW5jaG9yWCA9PSAwLjUpIHRoaXMuaGl0LnNldFBvc2l0aW9uKDAsLTExKTtcclxuICAgICAgICBlbHNlIGlmKHRoaXMuaGl0LmFuY2hvclggPT0gMC4zMykgdGhpcy5oaXQuc2V0UG9zaXRpb24oLTEzLC0xMSk7XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLmhpdC5hbmNob3JYID09IDAuNjYpIHRoaXMuaGl0LnNldFBvc2l0aW9uKDIsLTkpO1xyXG4gICAgICAgIHRoaXMuaGl0LmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Ya757uT54q25oCB5oGi5aSN5Li65bi46KeE54q25oCBXHJcbiAgICByZXNldEZyZWV6ZSgpe1xyXG4gICAgICAgIHRoaXMudHlwZSA9IDA7XHJcbiAgICAgICAgdGhpcy5ibG9ja19JbmZvLnR5cGUgPSAwO1xyXG4gICAgICAgIGxldCBuYW1lID0gdGhpcy5jb2xvcitcImNvbG9yXCIrdGhpcy5ibG9ja19JbmZvLmJsb2NrO1xyXG4gICAgICAgIGxldCBudW1iZXIgPSBNYXRoLmZsb29yKCh0aGlzLmNvbG9yLTEpLzIpO1xyXG4gICAgICAgIGxldCBibG9ja1Nwcml0ZUZyYW1lID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX0NvbG9yW251bWJlcl0uX3Nwcml0ZUZyYW1lcztcclxuICAgICAgICB2YXIgc3ByaXRlRnJhbWUgPSBibG9ja1Nwcml0ZUZyYW1lW25hbWVdO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBzcHJpdGVGcmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0QmxvY2tzKCl7XHJcbiAgICAgICAgdGhpcy5hbGxCbG9ja3MgPSBbXTtcclxuICAgICAgICBzd2l0Y2godGhpcy5ibG9ja19JbmZvLmJsb2NrKXtcclxuICAgICAgICAgICAgY2FzZSAwOlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvcyA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3NdO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgICAgIGxldCBwb3MxID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MyID0gY2MudjIoLTEsMCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3MxLHBvczJdO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M0ID0gY2MudjIoMCwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczMscG9zNF07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAzOlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczUgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczYgPSBjYy52MigtMSwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M3ID0gY2MudjIoLTIsMCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3M1LHBvczYscG9zN107XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSA0OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczggPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczkgPSBjYy52MigwLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczEwID0gY2MudjIoMCwyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczgscG9zOSxwb3MxMF07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSA1OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczExID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MxMiA9IGNjLnYyKC0xLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczEzID0gY2MudjIoLTEsMSk7ICAgIFxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczE0ID0gY2MudjIoMCwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczExLHBvczEyLHBvczEzLHBvczE0XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDY6XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMTUgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczE2ID0gY2MudjIoMCwxKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MxNyA9IGNjLnYyKDAsMik7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMTggPSBjYy52MigtMSwyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczE1LHBvczE2LHBvczE3LHBvczE4XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDc6XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMTkgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczIwID0gY2MudjIoMCwxKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MyMSA9IGNjLnYyKC0xLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczIyID0gY2MudjIoLTIsMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3MxOSxwb3MyMCxwb3MyMSxwb3MyMl07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSA4OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczIzID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MyNCA9IGNjLnYyKC0xLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczI1ID0gY2MudjIoLTEsMSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMjYgPSBjYy52MigtMSwyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczIzLHBvczI0LHBvczI1LHBvczI2XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDk6XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMjcgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczI4ID0gY2MudjIoLTEsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMjkgPSBjYy52MigtMiwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzMCA9IGNjLnYyKDAsMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3MyNyxwb3MyOCxwb3MyOSxwb3MzMF07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAxMDpcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzMSA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMzIgPSBjYy52MigxLDIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczMzID0gY2MudjIoMCwxKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzNCA9IGNjLnYyKDAsMik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3MzMSxwb3MzMixwb3MzMyxwb3MzNF07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAxMTpcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzNSA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMzYgPSBjYy52MigyLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczM3ID0gY2MudjIoMSwxKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzOCA9IGNjLnYyKDAsMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3MzNSxwb3MzNixwb3MzNyxwb3MzOF07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAxMjpcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzOSA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNDAgPSBjYy52MigwLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczQxID0gY2MudjIoMCwyKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M0MiA9IGNjLnYyKC0xLDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxCbG9ja3MgPSBbcG9zMzkscG9zNDAscG9zNDEscG9zNDJdO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgMTM6XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNDMgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczQ0ID0gY2MudjIoLTEsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNDUgPSBjYy52MigtMiwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M0NiA9IGNjLnYyKC0yLDEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxCbG9ja3MgPSBbcG9zNDMscG9zNDQscG9zNDUscG9zNDZdO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgMTQ6XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNDcgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczQ4ID0gY2MudjIoMCwxKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M0OSA9IGNjLnYyKC0xLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczUwID0gY2MudjIoMSwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczQ3LHBvczQ4LHBvczQ5LHBvczUwXTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDE1OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczUxID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M1MiA9IGNjLnYyKC0xLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczUzID0gY2MudjIoLTIsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNTQgPSBjYy52MigtMSwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczUxLHBvczUyLHBvczUzLHBvczU0XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDE2OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczU1ID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M1NiA9IGNjLnYyKDEsMSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNTcgPSBjYy52MigwLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczU4ID0gY2MudjIoMCwyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczU1LHBvczU2LHBvczU3LHBvczU4XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDE3OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczU5ID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M2MCA9IGNjLnYyKDAsMSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNjEgPSBjYy52MigwLDIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczYyID0gY2MudjIoLTEsMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3M1OSxwb3M2MCxwb3M2MSxwb3M2Ml07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAxODpcclxuICAgICAgICAgICAgICAgIGxldCBwb3M2MyA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNjQgPSBjYy52MigwLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczY1ID0gY2MudjIoMCwyKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M2NiA9IGNjLnYyKDEsMSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNjcgPSBjYy52MigtMSwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczYzLHBvczY0LHBvczY1LHBvczY2LHBvczY3XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDE5OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczY4ID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M2OSA9IGNjLnYyKDAsMSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNzAgPSBjYy52MigtMSwwKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczY4LHBvczY5LHBvczcwXTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDIwOlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczcxID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M3MiA9IGNjLnYyKC0xLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczczID0gY2MudjIoLTEsMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3M3MSxwb3M3Mixwb3M3M107XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAyMTpcclxuICAgICAgICAgICAgICAgIGxldCBwb3M3NCA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNzUgPSBjYy52MigwLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczc2ID0gY2MudjIoMSwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3Bvczc0LHBvczc1LHBvczc2XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDIyOlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczc3ID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M3OCA9IGNjLnYyKDAsMSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNzkgPSBjYy52MigtMSwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3Bvczc3LHBvczc4LHBvczc5XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TWFwQmxvY2soKXtcclxuICAgICAgICBpZih0aGlzLmFsbEJsb2Nrcy5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5hbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvcyA9IHRoaXMuYWxsQmxvY2tzW2ldO1xyXG4gICAgICAgICAgICAgICAgbGV0IHggPSB0aGlzLnBvc1ggKyBwb3MueDtcclxuICAgICAgICAgICAgICAgIGxldCB5ID0gdGhpcy5wb3NZICsgcG9zLnk7IFxyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbeF1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgPSB0aGlzLm5vZGUudXVpZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVNYXBCbG9jaygpe1xyXG4gICAgICAgIGlmKHRoaXMucG9zWCA9PSAwICYmIHRoaXMucG9zWSA9PSAwKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLmFsbEJsb2Nrcyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuYWxsQmxvY2tzLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5hbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuYWxsQmxvY2tzW2ldKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBvcyA9IHRoaXMuYWxsQmxvY2tzW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeCA9IHRoaXMucG9zWCArIHBvcy54O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeSA9IHRoaXMucG9zWSArIHBvcy55OyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbeF1beV0pe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbeF1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbeF1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgLy/lj6DliqDlnZfvvIzkvY3nva7lt67lvILvvIzmoKHlh4bkvY3nva5cclxuICAgIGdldFN0YWNraW5nUG9zKCl7XHJcbiAgICAgICAgc3dpdGNoKHRoaXMubm9kZS5uYW1lKXtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrMFwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC0yMSwyMik7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazFcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtMzYsMjMpO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2syXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTE4LDQwKTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrM1wiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC01OSwyNSk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazRcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtMTksNTcpO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2s1XCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTM2LDM4KTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrNlwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC0xOSw5Nyk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazdcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtMTksNjEpO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2s4XCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTU1LDI0KTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrOVwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC0yMCwyNCk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazEwXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTE3LDk2KTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrMTFcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtMTcsNTgpO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2sxMlwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC0yMCwyNCk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazEzXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTkyLDI1KTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrMTRcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtMTgsNjApO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2sxNVwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC01OCwyNCk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazE2XCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTIwLDYwKTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrMTdcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtMTcsNjApO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2sxOFwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC0xNyw2MCk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazE5XCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTIwLDI0KTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrMjBcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtNTQsMjUpO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2syMVwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC0xNyw2MCk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazIyXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTE3LDYwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdDogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNUb3VjaCAmJiB0aGlzLnRvdWNoRGVsdGEubWFnKCkgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAvL3RoaXMubW92ZUxlZnQgPSB0aGlzLm1vdmVSaWdodCA9IHRoaXMubW92ZVVwID0gdGhpcy5tb3ZlRG93biA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkZWx0YSA9IHRoaXMudG91Y2hEZWx0YTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1ggPSB0aGlzLm5vZGUueCArIGRlbHRhLng7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdZID0gdGhpcy5ub2RlLnkgKyBkZWx0YS55O1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLnNxcnQoTWF0aC5wb3cobmV3WCAtIHRoaXMubm9kZS54LCAyKSArIE1hdGgucG93KG5ld1kgLSB0aGlzLm5vZGUueSwgMikpO1xyXG4gICAgICAgICAgICAgICAgbGV0IG1hZyA9IE1hdGgucm91bmQoZGVsdGEubWFnKCkpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubW92ZVkgPT09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvdWNoUG9pbnRZIDw9IHRoaXMubm9kZS55ICsgdGhpcy5ub2RlLmhlaWdodC8yKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlWSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmKHRoaXMubW92ZVkgPT09IC0xKXtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50b3VjaFBvaW50WSA+PSB0aGlzLm5vZGUueSArIHRoaXMubm9kZS5oZWlnaHQvMil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVYID09PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50b3VjaFBvaW50WCA8PSB0aGlzLm5vZGUueCAtIHRoaXMubm9kZS53aWR0aC8yKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlWCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZih0aGlzLm1vdmVYID09PSAtMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudG91Y2hQb2ludFggPj0gdGhpcy5ub2RlLnggLSB0aGlzLm5vZGUud2lkdGgvMil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVggPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPiAxMDApIHtcclxuICAgICAgICAgICAgICAgICAgICBtYWcgPSAxMDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzcGVlZFNjYWxlID0gMC41OyBcclxuICAgICAgICAgICAgICAgICAgICBkZWx0YS54ICo9IHNwZWVkU2NhbGU7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVsdGEueSAqPSBzcGVlZFNjYWxlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobWFnID4gNSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYWcgPSBNYXRoLmZsb29yKG1hZyAvIDUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyBtYWcgPSAyO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RlcHggPSBkZWx0YS54IC8gbWFnO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RlcHkgPSBkZWx0YS55IC8gbWFnO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYWc7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVDb3JuZXIgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlbXBYID0gdGhpcy5ub2RlLnggKyBzdGVweDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZW1wWSA9IHRoaXMubm9kZS55ICsgc3RlcHk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5jaGVja0NvbGxpc2lvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnR5cGUgIT09IDggJiYgdGhpcy50eXBlICE9PSAxMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUueCA9IE1hdGgucm91bmQodGVtcFgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnR5cGUgIT09IDcgJiYgdGhpcy50eXBlICE9PSAxMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUueSA9ICBNYXRoLnJvdW5kKHRlbXBZKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1hNYWluID0gTWF0aC5hYnMoc3RlcHgpID4gTWF0aC5hYnMoc3RlcHkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNYTWFpbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm9kZS54ID4gdGVtcFgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tb3ZlTGVmdCAmJiB0aGlzLm1vdmVYID09PSAwICYmIHRoaXMudHlwZSAhPT0gOCAmJiB0aGlzLnR5cGUgIT09IDEwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS54ID0gdGVtcFg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubW92ZVggIT09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVYID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubm9kZS54IDw9IHRlbXBYKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubW92ZVJpZ2h0ICYmIHRoaXMubW92ZVggPT09IDAgJiYgdGhpcy50eXBlICE9PSA4ICYmIHRoaXMudHlwZSAhPT0gMTApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnggPSB0ZW1wWDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlWCAhPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVggPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ub2RlLnkgPiB0ZW1wWSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vdmVEb3duICYmIHRoaXMubW92ZVkgPT09IDAgJiYgdGhpcy50eXBlICE9PSA3ICYmIHRoaXMudHlwZSAhPT0gMTApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgPSB0ZW1wWTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlWSAhPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlLnkgPD0gdGVtcFkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tb3ZlVXAgJiYgdGhpcy5tb3ZlWSA9PT0gMCAmJiB0aGlzLnR5cGUgIT09IDcgJiYgdGhpcy50eXBlICE9PSAxMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUueSA9IHRlbXBZO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVZICE9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlWSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm9kZS55ID4gdGVtcFkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tb3ZlRG93biAmJiB0aGlzLm1vdmVZID09PSAwICYmIHRoaXMudHlwZSAhPT0gNyAmJiB0aGlzLnR5cGUgIT09IDEwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS55ID0gdGVtcFk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubW92ZVkgIT09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVZID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubm9kZS55IDw9IHRlbXBZKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubW92ZVVwICYmIHRoaXMubW92ZVkgPT09IDAgJiYgdGhpcy50eXBlICE9PSA3ICYmIHRoaXMudHlwZSAhPT0gMTApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgPSB0ZW1wWTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlWSAhPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ub2RlLnggPiB0ZW1wWCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vdmVMZWZ0ICYmIHRoaXMubW92ZVggPT09IDAgJiYgdGhpcy50eXBlICE9PSA4ICYmIHRoaXMudHlwZSAhPT0gMTApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnggPSB0ZW1wWDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlWCAhPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVggPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlLnggPD0gdGVtcFgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tb3ZlUmlnaHQgJiYgdGhpcy5tb3ZlWCA9PT0gMCAmJiB0aGlzLnR5cGUgIT09IDggJiYgdGhpcy50eXBlICE9PSAxMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUueCA9IHRlbXBYO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVYICE9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlWCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgTFFDb2xsaWRlU3lzdGVtLnVwZGF0ZV9sb2dpYyhkdCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyDnp7vliqjlrozmiJDlkI7ph43nva7op6bmkbjlop7ph49cclxuICAgICAgICAgICAgICAgIHRoaXMudG91Y2hEZWx0YSA9IGNjLnYyKDAsIDApOyBcclxuICAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLnR5cGUgPT0gQmxvY2tUeXBlLuWPoOWKoOWdl+S4iiAmJiB0aGlzLm1vdmVTdGFjayA9PSB0cnVlKXtcclxuICAgICAgICAgICAgaWYodGhpcy5zdGFja2luZy54ICE9IDAgfHwgdGhpcy5zdGFja2luZy55IT0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUueCA9IHRoaXMuYmxvY2tfSW5mby5ub2RlLnggKyB0aGlzLnN0YWNraW5nLng7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUueSA9IHRoaXMuYmxvY2tfSW5mby5ub2RlLnkgKyB0aGlzLnN0YWNraW5nLnk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodGhpcy5ibG9ja19JbmZvKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ibG9ja19JbmZvLm5vZGUgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy50eXBlID09IEJsb2NrVHlwZS7nspjlkIjlnZcpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmFkaGVzaXZlLnggIT0wICYmIHRoaXMuYWRoZXNpdmUueSE9MCAmJiB0aGlzLmJsb2NrX0luZm8ubm9kZSE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUueCA9IHRoaXMubm9kZS54IC0gdGhpcy5hZGhlc2l2ZS54O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUueSA9IHRoaXMubm9kZS55IC0gdGhpcy5hZGhlc2l2ZS55O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuaXNUb3VjaCA9PSAgdHJ1ZSAmJiB0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pc1RvdWNoID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIExRQ29sbGlkZVN5c3RlbS51cGRhdGVfbG9naWMoZHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUueCA9IHRoaXMubm9kZS54IC0gdGhpcy5hZGhlc2l2ZS54O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUueSA9IHRoaXMubm9kZS55IC0gdGhpcy5hZGhlc2l2ZS55O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gXHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/lq_base/data/lq_const.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '98309gPXUxEF6zBe9e75Knb', 'lq_const'); +// Script/lq_base/data/lq_const.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LQConst = exports.LQOperateType = exports.LQLevelStatus = exports.LQAdErrStr = exports.LQCallAd = exports.LQCallBase = exports.LQAnalysisTag = exports.LQByteDanceType = exports.LQPlatformType = exports.LQHttpDataType = exports.LQHttpRequestType = exports.LQEasing = exports.LQCollideStatus = exports.LQFollowTargetMode = exports.LQCollideShape = exports.LQBulletEmitterStatus = exports.LQRecordStatus = void 0; +var Vec2 = cc.Vec2; +var LQRecordStatus; +(function (LQRecordStatus) { + LQRecordStatus[LQRecordStatus["Idle"] = 0] = "Idle"; + LQRecordStatus[LQRecordStatus["Start"] = 1] = "Start"; + LQRecordStatus[LQRecordStatus["Pause"] = 2] = "Pause"; +})(LQRecordStatus = exports.LQRecordStatus || (exports.LQRecordStatus = {})); +var LQBulletEmitterStatus; +(function (LQBulletEmitterStatus) { + LQBulletEmitterStatus[LQBulletEmitterStatus["Idle"] = 0] = "Idle"; + LQBulletEmitterStatus[LQBulletEmitterStatus["Start"] = 1] = "Start"; + LQBulletEmitterStatus[LQBulletEmitterStatus["End"] = 2] = "End"; +})(LQBulletEmitterStatus = exports.LQBulletEmitterStatus || (exports.LQBulletEmitterStatus = {})); +var LQCollideShape; +(function (LQCollideShape) { + LQCollideShape[LQCollideShape["Rect"] = 1] = "Rect"; + LQCollideShape[LQCollideShape["Circle"] = 2] = "Circle"; + LQCollideShape[LQCollideShape["Polygon"] = 3] = "Polygon"; +})(LQCollideShape = exports.LQCollideShape || (exports.LQCollideShape = {})); +var LQFollowTargetMode; +(function (LQFollowTargetMode) { + LQFollowTargetMode[LQFollowTargetMode["Always"] = 0] = "Always"; + LQFollowTargetMode[LQFollowTargetMode["Once"] = 1] = "Once"; + LQFollowTargetMode[LQFollowTargetMode["Pass"] = 2] = "Pass"; +})(LQFollowTargetMode = exports.LQFollowTargetMode || (exports.LQFollowTargetMode = {})); +var LQCollideStatus; +(function (LQCollideStatus) { + LQCollideStatus[LQCollideStatus["Idle"] = 0] = "Idle"; + LQCollideStatus[LQCollideStatus["Live"] = 1] = "Live"; +})(LQCollideStatus = exports.LQCollideStatus || (exports.LQCollideStatus = {})); +var LQEasing; +(function (LQEasing) { + LQEasing["BackIn"] = "backIn"; + LQEasing["BackOut"] = "backOut"; + LQEasing["quadIn"] = "quadIn"; + LQEasing["quadOut"] = "quadOut"; + LQEasing["quadInOut"] = "quadInOut"; + LQEasing["cubicIn"] = "cubicIn"; + LQEasing["expoOut"] = "expoOut"; +})(LQEasing = exports.LQEasing || (exports.LQEasing = {})); +var LQHttpRequestType; +(function (LQHttpRequestType) { + LQHttpRequestType["Get"] = "get"; + LQHttpRequestType["Post"] = "post"; +})(LQHttpRequestType = exports.LQHttpRequestType || (exports.LQHttpRequestType = {})); +var LQHttpDataType; +(function (LQHttpDataType) { + LQHttpDataType[LQHttpDataType["Text"] = 0] = "Text"; + LQHttpDataType[LQHttpDataType["Binary"] = 1] = "Binary"; +})(LQHttpDataType = exports.LQHttpDataType || (exports.LQHttpDataType = {})); +var LQPlatformType; +(function (LQPlatformType) { + LQPlatformType["unknown"] = "\u672A\u77E5\u5E73\u53F0"; + LQPlatformType["all"] = "\u5168\u5E73\u53F0"; + LQPlatformType["wx"] = "\u5FAE\u4FE1"; + LQPlatformType["tt"] = "\u5B57\u8282\u8DF3\u52A8"; + LQPlatformType["oppo"] = "oppo"; + LQPlatformType["vivo"] = "vivo"; + LQPlatformType["qq"] = "qq"; + LQPlatformType["baidu"] = "\u767E\u5EA6"; + LQPlatformType["kwaigame"] = "\u5FEB\u624B"; + LQPlatformType["android"] = "\u5B89\u5353"; + LQPlatformType["ios"] = "\u82F9\u679C"; + LQPlatformType["browser"] = "\u6D4F\u89C8\u5668"; +})(LQPlatformType = exports.LQPlatformType || (exports.LQPlatformType = {})); +var LQByteDanceType; +(function (LQByteDanceType) { + LQByteDanceType["tt"] = "\u5934\u6761"; + LQByteDanceType["tt_lite"] = "\u5934\u6761\u6781\u901F\u7248"; + LQByteDanceType["douyin"] = "\u6296\u97F3"; + LQByteDanceType["douyin_lite"] = "\u6296\u97F3\u6781\u901F\u7248"; + LQByteDanceType["ppx"] = "\u76AE\u76AE\u867E"; + LQByteDanceType["devtools"] = "\u5B57\u8282\u5F00\u53D1\u5DE5\u5177"; +})(LQByteDanceType = exports.LQByteDanceType || (exports.LQByteDanceType = {})); +var LQAnalysisTag; +(function (LQAnalysisTag) { + LQAnalysisTag["VideoComplete"] = "video_complete"; + LQAnalysisTag["VideoBegin"] = "video_begin"; + LQAnalysisTag["VideoInterrupt"] = "video_interrupt"; + LQAnalysisTag["InterstitialShow"] = "interstitial_show"; + LQAnalysisTag["BannerShow"] = "banner_show"; + LQAnalysisTag["ExportShow"] = "export_show"; + LQAnalysisTag["NativeShow"] = "native_show"; + LQAnalysisTag["NativeClick"] = "native_show"; +})(LQAnalysisTag = exports.LQAnalysisTag || (exports.LQAnalysisTag = {})); +var LQCallBase; +(function (LQCallBase) { + LQCallBase[LQCallBase["InitSdk"] = 0] = "InitSdk"; + LQCallBase[LQCallBase["KeepScreenOn"] = 1] = "KeepScreenOn"; + LQCallBase[LQCallBase["Vibrate"] = 2] = "Vibrate"; + LQCallBase[LQCallBase["GetVersionCode"] = 3] = "GetVersionCode"; + LQCallBase[LQCallBase["GetVersionName"] = 4] = "GetVersionName"; + LQCallBase[LQCallBase["OpenUrl"] = 5] = "OpenUrl"; + LQCallBase[LQCallBase["DeleteDir"] = 6] = "DeleteDir"; + LQCallBase[LQCallBase["DeleteFile"] = 7] = "DeleteFile"; +})(LQCallBase = exports.LQCallBase || (exports.LQCallBase = {})); +var LQCallAd; +(function (LQCallAd) { + LQCallAd[LQCallAd["ShowBanner"] = 0] = "ShowBanner"; + LQCallAd[LQCallAd["HideBanner"] = 1] = "HideBanner"; + LQCallAd[LQCallAd["ShowVideo"] = 2] = "ShowVideo"; + LQCallAd[LQCallAd["ShowInterstitial"] = 3] = "ShowInterstitial"; + LQCallAd[LQCallAd["ShowNative"] = 4] = "ShowNative"; + LQCallAd[LQCallAd["CacheAd"] = 5] = "CacheAd"; +})(LQCallAd = exports.LQCallAd || (exports.LQCallAd = {})); +var LQAdErrStr; +(function (LQAdErrStr) { + LQAdErrStr["Unsupported"] = "\u4E0D\u652F\u6301"; + LQAdErrStr["NoParameters"] = "\u6CA1\u6709\u914D\u7F6E\u53C2\u6570"; + LQAdErrStr["NoAD"] = "\u6682\u65E0\u5E7F\u544A"; + LQAdErrStr["VersionOld"] = "\u7248\u672C\u8FC7\u4F4E"; + LQAdErrStr["VideoInterrupt"] = "\u4E2D\u65AD\u64AD\u653E"; + LQAdErrStr["InstanceErr"] = "\u5B9E\u4F8B\u4E3A\u7A7A"; + LQAdErrStr["AlreadyExist"] = "\u5DF2\u7ECF\u5B58\u5728"; + LQAdErrStr["IntervalTooShort"] = "\u95F4\u9694\u592A\u77ED"; +})(LQAdErrStr = exports.LQAdErrStr || (exports.LQAdErrStr = {})); +var LQLevelStatus; +(function (LQLevelStatus) { + LQLevelStatus[LQLevelStatus["Begin"] = 0] = "Begin"; + LQLevelStatus[LQLevelStatus["Failed"] = 1] = "Failed"; + LQLevelStatus[LQLevelStatus["Complete"] = 2] = "Complete"; +})(LQLevelStatus = exports.LQLevelStatus || (exports.LQLevelStatus = {})); +var LQOperateType; +(function (LQOperateType) { + LQOperateType[LQOperateType["ClickNode"] = 0] = "ClickNode"; + LQOperateType[LQOperateType["ClickScreen"] = 1] = "ClickScreen"; + LQOperateType[LQOperateType["Move"] = 2] = "Move"; + LQOperateType[LQOperateType["Null"] = 3] = "Null"; +})(LQOperateType = exports.LQOperateType || (exports.LQOperateType = {})); +var LQConst = /** @class */ (function () { + function LQConst() { + } + LQConst.VEC_ZERO = Vec2.ZERO; + return LQConst; +}()); +exports.LQConst = LQConst; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFxkYXRhXFxscV9jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFPLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBRXRCLElBQVksY0FFWDtBQUZELFdBQVksY0FBYztJQUN0QixtREFBSSxDQUFBO0lBQUUscURBQUssQ0FBQTtJQUFFLHFEQUFLLENBQUE7QUFDdEIsQ0FBQyxFQUZXLGNBQWMsR0FBZCxzQkFBYyxLQUFkLHNCQUFjLFFBRXpCO0FBRUQsSUFBWSxxQkFFWDtBQUZELFdBQVkscUJBQXFCO0lBQzdCLGlFQUFJLENBQUE7SUFBRSxtRUFBSyxDQUFBO0lBQUUsK0RBQUcsQ0FBQTtBQUNwQixDQUFDLEVBRlcscUJBQXFCLEdBQXJCLDZCQUFxQixLQUFyQiw2QkFBcUIsUUFFaEM7QUFFRCxJQUFZLGNBRVg7QUFGRCxXQUFZLGNBQWM7SUFDdEIsbURBQVEsQ0FBQTtJQUFFLHVEQUFNLENBQUE7SUFBRSx5REFBTyxDQUFBO0FBQzdCLENBQUMsRUFGVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQUV6QjtBQUVELElBQVksa0JBRVg7QUFGRCxXQUFZLGtCQUFrQjtJQUMxQiwrREFBTSxDQUFBO0lBQUUsMkRBQUksQ0FBQTtJQUFFLDJEQUFJLENBQUE7QUFDdEIsQ0FBQyxFQUZXLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBRTdCO0FBRUQsSUFBWSxlQUVYO0FBRkQsV0FBWSxlQUFlO0lBQ3ZCLHFEQUFJLENBQUE7SUFBRSxxREFBSSxDQUFBO0FBQ2QsQ0FBQyxFQUZXLGVBQWUsR0FBZix1QkFBZSxLQUFmLHVCQUFlLFFBRTFCO0FBRUQsSUFBWSxRQUdYO0FBSEQsV0FBWSxRQUFRO0lBQ2hCLDZCQUFpQixDQUFBO0lBQUUsK0JBQW1CLENBQUE7SUFBRSw2QkFBaUIsQ0FBQTtJQUN6RCwrQkFBbUIsQ0FBQTtJQUFFLG1D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O0lBQUUsaURBQUksQ0FBQTtBQUN0QyxDQUFDLEVBRlcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFFeEI7QUFFRDtJQUFBO0lBRUEsQ0FBQztJQURpQixnQkFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDdkMsY0FBQztDQUZELEFBRUMsSUFBQTtBQUZZLDBCQUFPIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFZlYzIgPSBjYy5WZWMyO1xyXG5cclxuZXhwb3J0IGVudW0gTFFSZWNvcmRTdGF0dXMge1xyXG4gICAgSWRsZSwgU3RhcnQsIFBhdXNlXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIExRQnVsbGV0RW1pdHRlclN0YXR1cyB7XHJcbiAgICBJZGxlLCBTdGFydCwgRW5kXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIExRQ29sbGlkZVNoYXBlIHtcclxuICAgIFJlY3QgPSAxLCBDaXJjbGUsIFBvbHlnb25cclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFGb2xsb3dUYXJnZXRNb2RlIHtcclxuICAgIEFsd2F5cywgT25jZSwgUGFzc1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUNvbGxpZGVTdGF0dXMge1xyXG4gICAgSWRsZSwgTGl2ZVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUVhc2luZyB7XHJcbiAgICBCYWNrSW4gPSAnYmFja0luJywgQmFja091dCA9ICdiYWNrT3V0JywgcXVhZEluID0gJ3F1YWRJbicsXHJcbiAgICBxdWFkT3V0ID0gJ3F1YWRPdXQnLCBxdWFkSW5PdXQgPSAncXVhZEluT3V0JywgY3ViaWNJbiA9ICdjdWJpY0luJywgZXhwb091dCA9ICdleHBvT3V0J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUh0dHBSZXF1ZXN0VHlwZSB7XHJcbiAgICBHZXQgPSAnZ2V0JywgUG9zdCA9ICdwb3N0J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUh0dHBEYXRhVHlwZSB7XHJcbiAgICBUZXh0LCBCaW5hcnlcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFQbGF0Zm9ybVR5cGUge1xyXG4gICAgdW5rbm93biA9ICfmnKrnn6XlubPlj7AnLCBhbGwgPSAn5YWo5bmz5Y+wJywgd3ggPSAn5b6u5L+hJywgdHQgPSAn5a2X6IqC6Lez5YqoJywgb3BwbyA9ICdvcHBvJywgdml2byA9ICd2aXZvJywgcXEgPSAncXEnLCBiYWlkdSA9ICfnmb7luqYnLCBrd2FpZ2FtZSA9ICflv6vmiYsnLCBhbmRyb2lkID0gJ+WuieWNkycsIGlvcyA9ICfoi7nmnpwnLCBicm93c2VyID0gJ+a1j+iniOWZqCdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFCeXRlRGFuY2VUeXBlIHtcclxuICAgIHR0ID0gJ+WktOadoScsIHR0X2xpdGUgPSAn5aS05p2h5p6B6YCf54mIJywgZG91eWluID0gJ+aKlumfsycsIGRvdXlpbl9saXRlID0gJ+aKlumfs+aegemAn+eJiCcsIHBweCA9ICfnmq7nmq7omb4nLCBkZXZ0b29scyA9ICflrZfoioLlvIDlj5Hlt6XlhbcnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIExRQW5hbHlzaXNUYWcge1xyXG4gICAgVmlkZW9Db21wbGV0ZSA9ICd2aWRlb19jb21wbGV0ZScsIFZpZGVvQmVnaW4gPSAndmlkZW9fYmVnaW4nLCBWaWRlb0ludGVycnVwdCA9ICd2aWRlb19pbnRlcnJ1cHQnLCBJbnRlcnN0aXRpYWxTaG93ID0gJ2ludGVyc3RpdGlhbF9zaG93JywgQmFubmVyU2hvdyA9ICdiYW5uZXJfc2hvdycsIEV4cG9ydFNob3cgPSAnZXhwb3J0X3Nob3cnLCBOYXRpdmVTaG93ID0gJ25hdGl2ZV9zaG93JywgTmF0aXZlQ2xpY2sgPSAnbmF0aXZlX3Nob3cnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIExRQ2FsbEJhc2Uge1xyXG4gICAgSW5pdFNkaywgS2VlcFNjcmVlbk9uLCBWaWJyYXRlLCBHZXRWZXJzaW9uQ29kZSwgR2V0VmVyc2lvbk5hbWUsIE9wZW5VcmwsIERlbGV0ZURpciwgRGVsZXRlRmlsZVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUNhbGxBZCB7XHJcbiAgICBTaG93QmFubmVyLCBIaWRlQmFubmVyLCBTaG93VmlkZW8sIFNob3dJbnRlcnN0aXRpYWwsIFNob3dOYXRpdmUsIENhY2hlQWRcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFBZEVyclN0ciB7XHJcbiAgICBVbnN1cHBvcnRlZCA9ICfkuI3mlK/mjIEnLCBOb1BhcmFtZXRlcnMgPSAn5rKh5pyJ6YWN572u5Y+C5pWwJywgTm9BRCA9ICfmmoLml6Dlub/lkYonLCBWZXJzaW9uT2xkID0gJ+eJiOacrOi/h+S9jicsIFZpZGVvSW50ZXJydXB0ID0gJ+S4reaWreaSreaUvicsIEluc3RhbmNlRXJyID0gJ+WunuS+i+S4uuepuicsIEFscmVhZHlFeGlzdCA9ICflt7Lnu4/lrZjlnKgnLCBJbnRlcnZhbFRvb1Nob3J0ID0gJ+mXtOmalOWkquefrSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFMZXZlbFN0YXR1cyB7XHJcbiAgICBCZWdpbiwgRmFpbGVkLCBDb21wbGV0ZVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUU9wZXJhdGVUeXBlIHtcclxuICAgIENsaWNrTm9kZSwgQ2xpY2tTY3JlZW4sIE1vdmUsIE51bGxcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExRQ29uc3Qge1xyXG4gICAgcHVibGljIHN0YXRpYyBWRUNfWkVSTyA9IFZlYzIuWkVSTztcclxufVxyXG5cclxuIl19 //------QC-SOURCE-SPLIT------ (function() { @@ -15014,7 +14625,7 @@ cc._RF.pop(); (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/lq_base/util/lq_base_util.js'; + var __filename = 'preview-scripts/assets/Script/lq_base/data/lq_data.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -15022,171 +14633,90 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'cd21fuTZY5LOoiXtN66R7wx', 'lq_base_util'); -// Script/lq_base/util/lq_base_util.ts +cc._RF.push(module, 'a54702UNV9NA7pYgQd6eA5/', 'lq_data'); +// Script/lq_base/data/lq_data.ts "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.LQBaseUtil = void 0; -var lq_platform_util_1 = require("./lq_platform_util"); -var lq_const_1 = require("../data/lq_const"); -var view = cc.view; -var LQBaseUtil = /** @class */ (function () { - function LQBaseUtil() { +exports.LQPlatformData = exports.LQShareData = exports.LQNativeComponent = exports.LQRect = void 0; +var Vec2 = cc.Vec2; +var Rect = cc.Rect; +var LQRect = /** @class */ (function () { + function LQRect(x, y, width, height) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + this.half_width = width * 0.5; + this.half_height = height * 0.5; } - // public static readonly unit_arr = ['K', 'M', 'B', 'T']; - LQBaseUtil.has_value = function (arr, v) { - var has = false; - for (var i = 0; i < arr.length; i++) { - if (arr[i] === v) { - has = true; - break; - } - } - return has; + LQRect.prototype.top_left = function () { + return new Vec2(this.x - this.half_width, this.y + this.half_height); }; - LQBaseUtil.get_value_by_duration = function (percent, timeline) { - if (timeline.length === 0) { - return 1; - } - var end_index = -1; - for (var i = 1; i < timeline.length; i++) { - if (timeline[i].x > percent) { - end_index = i; - break; - } - } - if (end_index === -1) { - return timeline[timeline.length - 1].y; - } - var start_index = end_index - 1; - return timeline[start_index].y + (timeline[end_index].y - timeline[start_index].y) * ((percent - timeline[start_index].x) / (timeline[end_index].x - timeline[start_index].x)); + LQRect.prototype.top_right = function () { + return new Vec2(this.x + this.half_width, this.y + this.half_height); }; - LQBaseUtil.number_to_counting = function (num) { - if (num < 1000) { - return num + ''; - } - else if (num < 1000000) { - return Math.floor(num / 1000) + 'K'; - } - else if (num < 1000000000) { - return Math.floor(num / 1000000) + 'M'; - } - else if (num < 1000000000000) { - return Math.floor(num / 1000000000) + 'B'; - } - else if (num < 1000000000000000) { - return Math.floor(num / 1000000000000) + 'T'; - } - return Math.floor(num / 1000000000000) + 'T'; + LQRect.prototype.bottom_left = function () { + return new Vec2(this.x - this.half_width, this.y - this.half_height); }; - LQBaseUtil.number_to_time = function (time) { - var t = Math.floor(time / (60 * 60)); - time = time - t * 60 * 60; - var hour = t.toString(); - var min = Math.floor(time / 60).toString(); - var sec = (time % 60).toString(); - if (hour.length === 1) { - hour = '0' + hour; - } - if (min.length === 1) { - min = '0' + min; - } - if (sec.length === 1) { - sec = '0' + sec; - } - return [hour, min, sec]; + LQRect.prototype.bottom_right = function () { + return new Vec2(this.x + this.half_width, this.y - this.half_height); }; - LQBaseUtil.set_normal_angle = function (angle) { - while (angle > 360) { - angle -= 360; - } - while (angle < 0) { - angle += 360; - } - return angle; + LQRect.prototype.pos = function () { + return new Vec2(this.x, this.y); }; - LQBaseUtil.compare_version = function (v1, v2) { - var v1_arr = v1.split('.'); - var v2_arr = v2.split('.'); - var len = Math.max(v1_arr.length, v2_arr.length); - while (v1_arr.length < len) { - v1_arr.push('0'); - } - while (v2_arr.length < len) { - v2_arr.push('0'); - } - for (var i = 0; i < len; i++) { - var num1 = parseInt(v1_arr[i]); - var num2 = parseInt(v2_arr[i]); - if (num1 > num2) { - return 1; - } - else if (num1 < num2) { - return -1; - } - } - return 0; + LQRect.prototype.sub = function (pos) { + return new Vec2(pos.x - this.x, pos.y - this.y); }; - LQBaseUtil.is_today = function (date) { - var d1 = new Date(); - var d2; - if (date && date !== '') { - d2 = new Date(date); - } - else { - d2 = new Date(); - d2.setDate(d2.getDate() - 1); - } - return d1.getFullYear() === d2.getFullYear() && d1.getMonth() === d2.getMonth() && d1.getDate() === d2.getDate(); + LQRect.prototype.add = function (pos) { + return new Vec2(pos.x + this.x, pos.y + this.y); }; - LQBaseUtil.is_safe_area = function () { - var cb = function (width, height) { - return (width === 2280 && height === 1080) || (width === 1792 && height === 828) || (width === 2436 && height === 1125) || (width === 2688 && height === 1242); - }; - switch (lq_platform_util_1.LQPlatformUtil.get_platform()) { - case lq_const_1.LQPlatformType.baidu: - var sys_info_swan = swan.getSystemInfoSync(); - return cb(sys_info_swan.pixelRatio * sys_info_swan.screenWidth, sys_info_swan.pixelRatio * sys_info_swan.screenHeight); - case lq_const_1.LQPlatformType.qq: - var sys_info_qq = qq.getSystemInfoSync(); - return cb(sys_info_qq.pixelRatio * sys_info_qq.screenWidth, sys_info_qq.pixelRatio * sys_info_qq.screenHeight); - case lq_const_1.LQPlatformType.tt: - var sys_info_tt = tt.getSystemInfoSync(); - return cb(sys_info_tt.pixelRatio * sys_info_tt.screenWidth, sys_info_tt.pixelRatio * sys_info_tt.screenHeight); - case lq_const_1.LQPlatformType.oppo: - case lq_const_1.LQPlatformType.vivo: - var sys_info_vivo = qg.getSystemInfoSync(); - return cb(sys_info_vivo.pixelRatio * sys_info_vivo.screenWidth, sys_info_vivo.pixelRatio * sys_info_vivo.screenHeight); - case lq_const_1.LQPlatformType.wx: - var sys_info_wx = wx.getSystemInfoSync(); - return cb(sys_info_wx.pixelRatio * sys_info_wx.screenWidth, sys_info_wx.pixelRatio * sys_info_wx.screenHeight); - case lq_const_1.LQPlatformType.android: - break; - case lq_const_1.LQPlatformType.ios: - var size = view.getFrameSize(); - return cb(size.width, size.height); - } - return false; + LQRect.prototype.to_cocos_rect = function () { + return new Rect(this.x - this.half_width, this.y - this.half_height, this.width, this.height); }; - LQBaseUtil.deep_clone = function (obj) { - if (typeof obj !== 'object') { - return obj; - } - var new_obj = (obj instanceof Array ? [] : {}); - for (var key in obj) { - if (typeof obj[key] === 'object') { - new_obj[key] = this.deep_clone(obj[key]); - } - else { - new_obj[key] = obj[key]; - } - } - return new_obj; - }; - return LQBaseUtil; + return LQRect; }()); -exports.LQBaseUtil = LQBaseUtil; +exports.LQRect = LQRect; +var LQNativeComponent = /** @class */ (function () { + function LQNativeComponent() { + this.node_btn_arr = []; + } + return LQNativeComponent; +}()); +exports.LQNativeComponent = LQNativeComponent; +var LQShareData = /** @class */ (function () { + function LQShareData(obj) { + if (obj.title) { + this.title = obj.title; + } + if (obj.remote_url) { + this.remote_url = obj.remote_url; + } + if (obj.url_id) { + this.url_id = obj.url_id; + } + if (obj.query) { + this.query = obj.query; + } + if (obj.content) { + this.content = obj.content; + } + if (obj.extra) { + this.extra = obj.extra; + } + if (obj.type) { + this.type = obj.type; + } + } + return LQShareData; +}()); +exports.LQShareData = LQShareData; +var LQPlatformData = /** @class */ (function () { + function LQPlatformData() { + } + return LQPlatformData; +}()); +exports.LQPlatformData = LQPlatformData; cc._RF.pop(); } @@ -15199,7 +14729,302 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9iYXNlX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdURBQWtEO0FBQ2xELDZDQUFnRDtBQUNoRCxJQUFPLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBR3RCO0lBQUE7SUE0SkEsQ0FBQztJQTNKRywwREFBMEQ7SUFFNUMsb0JBQVMsR0FBdkIsVUFBMkIsR0FBUSxFQUFFLENBQUk7UUFDckMsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDZCxHQUFHLEdBQUcsSUFBSSxDQUFDO2dCQUNYLE1BQU07YUFDVDtTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRWEsZ0NBQXFCLEdBQW5DLFVBQW9DLE9BQWUsRUFBRSxRQUFnQjtRQUNqRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxDQUFDO1NBQ1o7UUFDRCxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUFFO2dCQUN6QixTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLE1BQU07YUFDVDtTQUNKO1FBQ0QsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDbEIsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENB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R0FBeEIsVUFBeUIsR0FBUTtRQUM3QixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUN6QixPQUFPLEdBQUcsQ0FBQztTQUNkO1FBQ0QsSUFBSSxPQUFPLEdBQUcsQ0FBQyxHQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBUSxDQUFDO1FBQ3RELEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ2pCLElBQUksT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFO2dCQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM1QztpQkFBTTtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzNCO1NBQ0o7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBQ0wsaUJBQUM7QUFBRCxDQTVKQSxBQTRKQyxJQUFBO0FBNUpZLGdDQUFVIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMUVBsYXRmb3JtVXRpbH0gZnJvbSBcIi4vbHFfcGxhdGZvcm1fdXRpbFwiO1xyXG5pbXBvcnQge0xRUGxhdGZvcm1UeXBlfSBmcm9tIFwiLi4vZGF0YS9scV9jb25zdFwiO1xyXG5pbXBvcnQgdmlldyA9IGNjLnZpZXc7XHJcbmltcG9ydCBWZWMyID0gY2MuVmVjMjtcclxuXHJcbmV4cG9ydCBjbGFzcyBMUUJhc2VVdGlsIHtcclxuICAgIC8vIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdW5pdF9hcnIgPSBbJ0snLCAnTScsICdCJywgJ1QnXTtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGhhc192YWx1ZTxUPihhcnI6IFRbXSwgdjogVCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBoYXMgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoYXJyW2ldID09PSB2KSB7XHJcbiAgICAgICAgICAgICAgICBoYXMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGhhcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF92YWx1ZV9ieV9kdXJhdGlvbihwZXJjZW50OiBudW1iZXIsIHRpbWVsaW5lOiBWZWMyW10pOiBudW1iZXIge1xyXG4gICAgICAgIGlmICh0aW1lbGluZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBlbmRfaW5kZXggPSAtMTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHRpbWVsaW5lLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aW1lbGluZVtpXS54ID4gcGVyY2VudCkge1xyXG4gICAgICAgICAgICAgICAgZW5kX2luZGV4ID0gaTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbmRfaW5kZXggPT09IC0xKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aW1lbGluZVt0aW1lbGluZS5sZW5ndGggLSAxXS55O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzdGFydF9pbmRleCA9IGVuZF9pbmRleCAtIDE7XHJcbiAgICAgICAgcmV0dXJuIHRpbWVsaW5lW3N0YXJ0X2luZGV4XS55ICsgKHRpbWVsaW5lW2VuZF9pbmRleF0ueSAtIHRpbWVsaW5lW3N0YXJ0X2luZGV4XS55KSAqICgocGVyY2VudCAtIHRpbWVsaW5lW3N0YXJ0X2luZGV4XS54KSAvICh0aW1lbGluZVtlbmRfaW5kZXhdLnggLSB0aW1lbGluZVtzdGFydF9pbmRleF0ueCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgbnVtYmVyX3RvX2NvdW50aW5nKG51bTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAobnVtIDwgMTAwMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVtICsgJyc7XHJcbiAgICAgICAgfSBlbHNlIGlmIChudW0gPCAxMDAwMDAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bSAvIDEwMDApICsgJ0snO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobnVtIDwgMTAwMDAwMDAwMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW0gLyAxMDAwMDAwKSArICdNJztcclxuICAgICAgICB9IGVsc2UgaWYgKG51bSA8IDEwMDAwMDAwMDAwMDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IobnVtIC8gMTAwMDAwMDAwMCkgKyAnQic7XHJcbiAgICAgICAgfSBlbHNlIGlmIChudW0gPCAxMDAwMDAwMDAwMDAwMDAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bSAvIDEwMDAwMDAwMDAwMDApICsgJ1QnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW0gLyAxMDAwMDAwMDAwMDAwKSArICdUJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIG51bWJlcl90b190aW1lKHRpbWU6IG51bWJlcik6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSB7XHJcbiAgICAgICAgY29uc3QgdCA9IE1hdGguZmxvb3IodGltZSAvICg2MCAqIDYwKSk7XHJcbiAgICAgICAgdGltZSA9IHRpbWUgLSB0ICogNjAgKiA2MDtcclxuICAgICAgICBsZXQgaG91ciA9IHQudG9TdHJpbmcoKTtcclxuICAgICAgICBsZXQgbWluID0gTWF0aC5mbG9vcih0aW1lIC8gNjApLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgbGV0IHNlYyA9ICh0aW1lICUgNjApLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgIGlmIChob3VyLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBob3VyID0gJzAnICsgaG91cjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG1pbi5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgICAgbWluID0gJzAnICsgbWluO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2VjLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBzZWMgPSAnMCcgKyBzZWM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBbaG91ciwgbWluLCBzZWNdO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgc2V0X25vcm1hbF9hbmdsZShhbmdsZTogbnVtYmVyKSB7XHJcbiAgICAgICAgd2hpbGUgKGFuZ2xlID4gMzYwKSB7XHJcbiAgICAgICAgICAgIGFuZ2xlIC09IDM2MDtcclxuICAgICAgICB9XHJcbiAgICAgICAgd2hpbGUgKGFuZ2xlIDwgMCkge1xyXG4gICAgICAgICAgICBhbmdsZSArPSAzNjA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhbmdsZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGNvbXBhcmVfdmVyc2lvbih2MTogc3RyaW5nLCB2Mjogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgdjFfYXJyID0gdjEuc3BsaXQoJy4nKTtcclxuICAgICAgICBsZXQgdjJfYXJyID0gdjIuc3BsaXQoJy4nKTtcclxuICAgICAgICBjb25zdCBsZW4gPSBNYXRoLm1heCh2MV9hcnIubGVuZ3RoLCB2Ml9hcnIubGVuZ3RoKTtcclxuXHJcbiAgICAgICAgd2hpbGUgKHYxX2Fyci5sZW5ndGggPCBsZW4pIHtcclxuICAgICAgICAgICAgdjFfYXJyLnB1c2goJzAnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgd2hpbGUgKHYyX2Fyci5sZW5ndGggPCBsZW4pIHtcclxuICAgICAgICAgICAgdjJfYXJyLnB1c2goJzAnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBudW0xID0gcGFyc2VJbnQodjFfYXJyW2ldKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtMiA9IHBhcnNlSW50KHYyX2FycltpXSk7XHJcblxyXG4gICAgICAgICAgICBpZiAobnVtMSA+IG51bTIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG51bTEgPCBudW0yKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBpc190b2RheShkYXRlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBkMSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgbGV0IGQyO1xyXG4gICAgICAgIGlmIChkYXRlICYmIGRhdGUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIGQyID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZDIgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgICBkMi5zZXREYXRlKGQyLmdldERhdGUoKSAtIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZDEuZ2V0RnVsbFllYXIoKSA9PT0gZDIuZ2V0RnVsbFllYXIoKSAmJiBkMS5nZXRNb250aCgpID09PSBkMi5nZXRNb250aCgpICYmIGQxLmdldERhdGUoKSA9PT0gZDIuZ2V0RGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfc2FmZV9hcmVhKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGNiID0gKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAod2lkdGggPT09IDIyODAgJiYgaGVpZ2h0ID09PSAxMDgwKSB8fCAod2lkdGggPT09IDE3OTIgJiYgaGVpZ2h0ID09PSA4MjgpIHx8ICh3aWR0aCA9PT0gMjQzNiAmJiBoZWlnaHQgPT09IDExMjUpIHx8ICh3aWR0aCA9PT0gMjY4OCAmJiBoZWlnaHQgPT09IDEyNDIpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgc3dpdGNoIChMUVBsYXRmb3JtVXRpbC5nZXRfcGxhdGZvcm0oKSkge1xyXG4gICAgICAgICAgICBjYXNlIExRUGxhdGZvcm1UeXBlLmJhaWR1OlxyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3lzX2luZm9fc3dhbiA9IHN3YW4uZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYihzeXNfaW5mb19zd2FuLnBpeGVsUmF0aW8gKiBzeXNfaW5mb19zd2FuLnNjcmVlbldpZHRoLCBzeXNfaW5mb19zd2FuLnBpeGVsUmF0aW8gKiBzeXNfaW5mb19zd2FuLnNjcmVlbkhlaWdodCk7XHJcbiAgICAgICAgICAgIGNhc2UgTFFQbGF0Zm9ybVR5cGUucXE6XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzeXNfaW5mb19xcSA9IHFxLmdldFN5c3RlbUluZm9TeW5jKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2Ioc3lzX2luZm9fcXEucGl4ZWxSYXRpbyAqIHN5c19pbmZvX3FxLnNjcmVlbldpZHRoLCBzeXNfaW5mb19xcS5waXhlbFJhdGlvICogc3lzX2luZm9fcXEuc2NyZWVuSGVpZ2h0KTtcclxuICAgICAgICAgICAgY2FzZSBMUVBsYXRmb3JtVHlwZS50dDpcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN5c19pbmZvX3R0ID0gdHQuZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYihzeXNfaW5mb190dC5waXhlbFJhdGlvICogc3lzX2luZm9fdHQuc2NyZWVuV2lkdGgsIHN5c19pbmZvX3R0LnBpeGVsUmF0aW8gKiBzeXNfaW5mb190dC5zY3JlZW5IZWlnaHQpO1xyXG4gICAgICAgICAgICBjYXNlIExRUGxhdGZvcm1UeXBlLm9wcG86XHJcbiAgICAgICAgICAgIGNhc2UgTFFQbGF0Zm9ybVR5cGUudml2bzpcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN5c19pbmZvX3Zpdm8gPSBxZy5nZXRTeXN0ZW1JbmZvU3luYygpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNiKHN5c19pbmZvX3Zpdm8ucGl4ZWxSYXRpbyAqIHN5c19pbmZvX3Zpdm8uc2NyZWVuV2lkdGgsIHN5c19pbmZvX3Zpdm8ucGl4ZWxSYXRpbyAqIHN5c19pbmZvX3Zpdm8uc2NyZWVuSGVpZ2h0KTtcclxuICAgICAgICAgICAgY2FzZSBMUVBsYXRmb3JtVHlwZS53eDpcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN5c19pbmZvX3d4ID0gd3guZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYihzeXNfaW5mb193eC5waXhlbFJhdGlvICogc3lzX2luZm9fd3guc2NyZWVuV2lkdGgsIHN5c19pbmZvX3d4LnBpeGVsUmF0aW8gKiBzeXNfaW5mb193eC5zY3JlZW5IZWlnaHQpO1xyXG4gICAgICAgICAgICBjYXNlIExRUGxhdGZvcm1UeXBlLmFuZHJvaWQ6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBMUVBsYXRmb3JtVHlwZS5pb3M6XHJcbiAgICAgICAgICAgICAgICBsZXQgc2l6ZSA9IHZpZXcuZ2V0RnJhbWVTaXplKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2Ioc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBkZWVwX2Nsb25lKG9iajogYW55KSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvYmo7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBuZXdfb2JqID0gKG9iaiBpbnN0YW5jZW9mIEFycmF5ID8gW10gOiB7fSkgYXMgYW55O1xyXG4gICAgICAgIGZvciAobGV0IGtleSBpbiBvYmopIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgICAgIG5ld19vYmpba2V5XSA9IHRoaXMuZGVlcF9jbG9uZShvYmpba2V5XSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBuZXdfb2JqW2tleV0gPSBvYmpba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3X29iajtcclxuICAgIH1cclxufSJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFxkYXRhXFxscV9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLElBQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDdEIsSUFBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUt0QjtJQVFJLGdCQUFZLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLE1BQWM7UUFDM0QsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDcEMsQ0FBQztJQUVNLHlCQUFRLEdBQWY7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sMEJBQVMsR0FBaEI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sNEJBQVcsR0FBbEI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sNkJBQVksR0FBbkI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sb0JBQUcsR0FBVjtRQUNJLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLG9CQUFHLEdBQVYsVUFBVyxHQUFTO1FBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxvQkFBRyxHQUFWLFVBQVcsR0FBUztRQUNoQixPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sOEJBQWEsR0FBcEI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUNMLGFBQUM7QUFBRCxDQWhEQSxBQWdEQyxJQUFBO0FBaERZLHdCQUFNO0FBa0RuQjtJQUFBO1FBQ1csaUJBQVksR0FBVyxFQUFFLENBQUM7SUFNckMsQ0FBQztJQUFELHdCQUFDO0FBQUQsQ0FQQSxBQU9DLElBQUE7QUFQWSw4Q0FBaUI7QUFTOUI7SUFTSSxxQkFBWSxHQUE0SDtRQUNwSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7WUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7U0FDMUI7UUFDRCxJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUNMLGtCQUFDO0FBQUQsQ0FoQ0EsQUFnQ0MsSUFBQTtBQWhDWSxrQ0FBVztBQWtDeEI7SUFBQTtJQWlCQSxDQUFDO0lBQUQscUJBQUM7QUFBRCxDQWpCQSxBQWlCQyxJQUFBO0FBakJZLHdDQUFjIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJUG9zLCBJUmVjdH0gZnJvbSBcIi4vbHFfaW50ZXJmYWNlXCI7XHJcbmltcG9ydCBWZWMyID0gY2MuVmVjMjtcclxuaW1wb3J0IFJlY3QgPSBjYy5SZWN0O1xyXG5pbXBvcnQgU3ByaXRlID0gY2MuU3ByaXRlO1xyXG5pbXBvcnQgTGFiZWwgPSBjYy5MYWJlbDtcclxuaW1wb3J0IE5vZGUgPSBjYy5Ob2RlO1xyXG5cclxuZXhwb3J0IGNsYXNzIExRUmVjdCBpbXBsZW1lbnRzIElSZWN0IHtcclxuICAgIHB1YmxpYyB4OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgeTogbnVtYmVyO1xyXG4gICAgcHVibGljIHdpZHRoOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaGVpZ2h0OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaGFsZl93aWR0aDogbnVtYmVyO1xyXG4gICAgcHVibGljIGhhbGZfaGVpZ2h0OiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy54ID0geDtcclxuICAgICAgICB0aGlzLnkgPSB5O1xyXG4gICAgICAgIHRoaXMud2lkdGggPSB3aWR0aDtcclxuICAgICAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcclxuICAgICAgICB0aGlzLmhhbGZfd2lkdGggPSB3aWR0aCAqIDAuNTtcclxuICAgICAgICB0aGlzLmhhbGZfaGVpZ2h0ID0gaGVpZ2h0ICogMC41O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b3BfbGVmdCgpOiBWZWMyIHtcclxuICAgICAgICByZXR1cm4gbmV3IFZlYzIodGhpcy54IC0gdGhpcy5oYWxmX3dpZHRoLCB0aGlzLnkgKyB0aGlzLmhhbGZfaGVpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdG9wX3JpZ2h0KCk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmVjMih0aGlzLnggKyB0aGlzLmhhbGZfd2lkdGgsIHRoaXMueSArIHRoaXMuaGFsZl9oZWlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBib3R0b21fbGVmdCgpOiBWZWMyIHtcclxuICAgICAgICByZXR1cm4gbmV3IFZlYzIodGhpcy54IC0gdGhpcy5oYWxmX3dpZHRoLCB0aGlzLnkgLSB0aGlzLmhhbGZfaGVpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYm90dG9tX3JpZ2h0KCk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmVjMih0aGlzLnggKyB0aGlzLmhhbGZfd2lkdGgsIHRoaXMueSAtIHRoaXMuaGFsZl9oZWlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwb3MoKTogY2MuVmVjMiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBWZWMyKHRoaXMueCwgdGhpcy55KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3ViKHBvczogSVBvcyk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmVjMihwb3MueCAtIHRoaXMueCwgcG9zLnkgLSB0aGlzLnkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGQocG9zOiBJUG9zKTogVmVjMiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBWZWMyKHBvcy54ICsgdGhpcy54LCBwb3MueSArIHRoaXMueSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRvX2NvY29zX3JlY3QoKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSZWN0KHRoaXMueCAtIHRoaXMuaGFsZl93aWR0aCwgdGhpcy55IC0gdGhpcy5oYWxmX2hlaWdodCwgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTFFOYXRpdmVDb21wb25lbnQge1xyXG4gICAgcHVibGljIG5vZGVfYnRuX2FycjogTm9kZVtdID0gW107XHJcbiAgICBwdWJsaWMgc3ByaXRlX2xvZ28hOiBTcHJpdGU7XHJcbiAgICBwdWJsaWMgc3ByaXRlX2ltZyE6IFNwcml0ZTtcclxuICAgIHB1YmxpYyBzcHJpdGVfYWRfdGlwITogU3ByaXRlO1xyXG4gICAgcHVibGljIGxhYmVsX3RpdGxlITogTGFiZWw7XHJcbiAgICBwdWJsaWMgbGFiZWxfZGVzYyE6IExhYmVsO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTFFTaGFyZURhdGEge1xyXG4gICAgcHVibGljIHRpdGxlITogc3RyaW5nO1xyXG4gICAgcHVibGljIHJlbW90ZV91cmwhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdXJsX2lkITogc3RyaW5nO1xyXG4gICAgcHVibGljIHF1ZXJ5ITogc3RyaW5nO1xyXG4gICAgcHVibGljIGNvbnRlbnQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZXh0cmEhOiBhbnk7XHJcbiAgICBwdWJsaWMgdHlwZSE6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvYmo/OiB7IHRpdGxlPzogc3RyaW5nLCByZW1vdGVfdXJsPzogc3RyaW5nLCB1cmxfaWQ/OiBzdHJpbmcsIHF1ZXJ5Pzogc3RyaW5nLCBjb250ZW50Pzogc3RyaW5nLCBleHRyYT86IGFueSwgdHlwZT86IHN0cmluZyB9KSB7XHJcbiAgICAgICAgaWYgKG9iai50aXRsZSkge1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gb2JqLnRpdGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob2JqLnJlbW90ZV91cmwpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdGVfdXJsID0gb2JqLnJlbW90ZV91cmw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYmoudXJsX2lkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsX2lkID0gb2JqLnVybF9pZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9iai5xdWVyeSkge1xyXG4gICAgICAgICAgICB0aGlzLnF1ZXJ5ID0gb2JqLnF1ZXJ5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob2JqLmNvbnRlbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gb2JqLmNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYmouZXh0cmEpIHtcclxuICAgICAgICAgICAgdGhpcy5leHRyYSA9IG9iai5leHRyYTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IG9iai50eXBlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExRUGxhdGZvcm1EYXRhIHtcclxuICAgIHB1YmxpYyBhcHBfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcHJpbnRfbG9nITogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBzaG93X3NoYXJlX21lbnUhOiBib29sZWFuO1xyXG4gICAgcHVibGljIGtlZXBfc2NyZWVuX29uITogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBiYW5uZXJfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYmFubmVyX3dpZHRoITogbnVtYmVyO1xyXG4gICAgcHVibGljIGludGVyc3RpdGlhbF9pZCE6IHN0cmluZztcclxuICAgIHB1YmxpYyBuYXRpdmVfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdmlkZW9faWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgaXNfdmlkZW9fZnJlZSE6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgaXNfY2FjaGVfdmlkZW8hOiBib29sZWFuO1xyXG4gICAgcHVibGljIGFkX3R5cGUhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWRfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWRfa2V5ITogc3RyaW5nO1xyXG4gICAgcHVibGljIHN3aXRjaF9hZCE6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgc2hhcmVfZGF0YV9hcnIhOiBMUVNoYXJlRGF0YVtdO1xyXG59Il19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/lq_base/util/lq_platform_util.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '35875T0lsRL3rzhNkUdX4/G', 'lq_platform_util'); +// Script/lq_base/util/lq_platform_util.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LQPlatformUtil = void 0; +var lq_const_1 = require("../data/lq_const"); +var LQPlatformUtil = /** @class */ (function () { + function LQPlatformUtil() { + } + LQPlatformUtil.init = function () { + if (typeof qq !== 'undefined') { + this.platform_type = lq_const_1.LQPlatformType.qq; + } + else if (typeof swan !== 'undefined') { + this.platform_type = lq_const_1.LQPlatformType.baidu; + } + else if (typeof tt !== 'undefined') { + this.platform_type = lq_const_1.LQPlatformType.tt; + var info = tt.getSystemInfoSync(); + switch (info.appName) { + case 'Toutiao': + this.byte_dance_type = lq_const_1.LQByteDanceType.tt; + break; + case 'news_article_lite': + this.byte_dance_type = lq_const_1.LQByteDanceType.tt_lite; + break; + case 'Douyin': + this.byte_dance_type = lq_const_1.LQByteDanceType.douyin; + break; + case 'douyin_lite': + this.byte_dance_type = lq_const_1.LQByteDanceType.douyin_lite; + break; + case 'PPX': + this.byte_dance_type = lq_const_1.LQByteDanceType.ppx; + break; + case 'devtools': + this.byte_dance_type = lq_const_1.LQByteDanceType.devtools; + break; + } + } + else if (typeof qg !== 'undefined') { + if (!!qg.getBattle) { + this.platform_type = lq_const_1.LQPlatformType.oppo; + } + else { + this.platform_type = lq_const_1.LQPlatformType.vivo; + } + } + else if (typeof wx !== 'undefined') { + this.platform_type = lq_const_1.LQPlatformType.wx; + } + else if (typeof jsb !== 'undefined') { + if (cc.sys.os === cc.sys.OS_ANDROID) { + this.platform_type = lq_const_1.LQPlatformType.android; + } + else if (cc.sys.os === cc.sys.OS_IOS) { + this.platform_type = lq_const_1.LQPlatformType.ios; + } + else { + this.platform_type = lq_const_1.LQPlatformType.unknown; + } + } + else if (cc.sys.isBrowser) { + this.platform_type = lq_const_1.LQPlatformType.browser; + } + }; + LQPlatformUtil.get_platform = function () { + return this.platform_type; + }; + LQPlatformUtil.get_byte_dance = function () { + return this.byte_dance_type; + }; + LQPlatformUtil.is_wx = function () { + return this.platform_type === lq_const_1.LQPlatformType.wx; + }; + LQPlatformUtil.is_tt = function () { + return this.platform_type === lq_const_1.LQPlatformType.tt; + }; + LQPlatformUtil.is_oppo = function () { + return this.platform_type === lq_const_1.LQPlatformType.oppo; + }; + LQPlatformUtil.is_vivo = function () { + return this.platform_type === lq_const_1.LQPlatformType.vivo; + }; + LQPlatformUtil.is_ov = function () { + return this.platform_type === lq_const_1.LQPlatformType.oppo || this.platform_type === lq_const_1.LQPlatformType.vivo; + }; + LQPlatformUtil.is_browser = function () { + return this.platform_type === lq_const_1.LQPlatformType.browser; + }; + LQPlatformUtil.is_android = function () { + return this.platform_type === lq_const_1.LQPlatformType.android; + }; + LQPlatformUtil.is_ios = function () { + return this.platform_type === lq_const_1.LQPlatformType.ios; + }; + LQPlatformUtil.is_native = function () { + return this.platform_type === lq_const_1.LQPlatformType.android || this.platform_type === lq_const_1.LQPlatformType.ios; + }; + LQPlatformUtil.is_qq = function () { + return this.platform_type === lq_const_1.LQPlatformType.qq; + }; + LQPlatformUtil.is_baidu = function () { + return this.platform_type === lq_const_1.LQPlatformType.baidu; + }; + LQPlatformUtil.is_kwaigame = function () { + return this.platform_type === lq_const_1.LQPlatformType.kwaigame; + }; + return LQPlatformUtil; +}()); +exports.LQPlatformUtil = LQPlatformUtil; +LQPlatformUtil.init(); +if (LQPlatformUtil.is_tt()) { + // console.log('---------当前平台:' + LQPlatformUtil.get_byte_dance()); +} +else { + // console.log('---------当前平台:' + LQPlatformUtil.get_platform()); +} + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9wbGF0Zm9ybV91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUFpRTtBQUVqRTtJQUFBO0lBNEdBLENBQUM7SUF4R2lCLG1CQUFJLEdBQWxCO1FBQ0ksSUFBSSxPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyx5QkFBYyxDQUFDLEVBQUUsQ0FBQztTQUMxQzthQUFNLElBQUksT0FBTyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcseUJBQWMsQ0FBQyxLQUFLLENBQUM7U0FDN0M7YUFBTSxJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRTtZQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLHlCQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDbEIsS0FBSyxTQUFTO29CQUNWLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxFQUFFLENBQUM7b0JBQzFDLE1BQU07Z0JBQ1YsS0FBSyxtQkFBbUI7b0JBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxPQUFPLENBQUM7b0JBQy9DLE1BQU07Z0JBQ1YsS0FBSyxRQUFRO29CQUNULElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxNQUFNLENBQUM7b0JBQzlDLE1BQU07Z0JBQ1YsS0FBSyxhQUFhO29CQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxXQUFXLENBQUM7b0JBQ25ELE1BQU07Z0JBQ1YsS0FBSyxLQUFLO29CQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxHQUFHLENBQUM7b0JBQzNDLE1BQU07Z0JBQ1YsS0FBSyxV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dUJBQVEsR0FBdEI7UUFDSSxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUsseUJBQWMsQ0FBQyxLQUFLLENBQUM7SUFDdkQsQ0FBQztJQUVhLDBCQUFXLEdBQXpCO1FBQ0ksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLHlCQUFjLENBQUMsUUFBUSxDQUFDO0lBQzFELENBQUM7SUFDTCxxQkFBQztBQUFELENBNUdBLEFBNEdDLElBQUE7QUE1R1ksd0NBQWM7QUE4RzNCLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0QixJQUFJLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUN4QixtRUFBbUU7Q0FDdEU7S0FBTTtJQUNILGlFQUFpRTtDQUNwRSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TFFCeXRlRGFuY2VUeXBlLCBMUVBsYXRmb3JtVHlwZX0gZnJvbSBcIi4uL2RhdGEvbHFfY29uc3RcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBMUVBsYXRmb3JtVXRpbCB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBwbGF0Zm9ybV90eXBlOiBMUVBsYXRmb3JtVHlwZTtcclxuICAgIHByaXZhdGUgc3RhdGljIGJ5dGVfZGFuY2VfdHlwZTogTFFCeXRlRGFuY2VUeXBlO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW5pdCgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHFxICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5xcTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzd2FuICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5iYWlkdTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0dCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUudHQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZm8gPSB0dC5nZXRTeXN0ZW1JbmZvU3luYygpO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGluZm8uYXBwTmFtZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnVG91dGlhbyc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUudHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICduZXdzX2FydGljbGVfbGl0ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUudHRfbGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ0RvdXlpbic6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUuZG91eWluO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZG91eWluX2xpdGUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnl0ZV9kYW5jZV90eXBlID0gTFFCeXRlRGFuY2VUeXBlLmRvdXlpbl9saXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnUFBYJzpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ5dGVfZGFuY2VfdHlwZSA9IExRQnl0ZURhbmNlVHlwZS5wcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdkZXZ0b29scyc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUuZGV2dG9vbHM7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBxZyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgaWYgKCEhcWcuZ2V0QmF0dGxlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5vcHBvO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUudml2bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS53eDtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBqc2IgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGlmIChjYy5zeXMub3MgPT09IGNjLnN5cy5PU19BTkRST0lEKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5hbmRyb2lkO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNjLnN5cy5vcyA9PT0gY2Muc3lzLk9TX0lPUykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUuaW9zO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUudW5rbm93bjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoY2Muc3lzLmlzQnJvd3Nlcikge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5icm93c2VyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF9wbGF0Zm9ybSgpOiBMUVBsYXRmb3JtVHlwZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF9ieXRlX2RhbmNlKCk6IExRQnl0ZURhbmNlVHlwZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYnl0ZV9kYW5jZV90eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfd3goKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUud3g7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBpc190dCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS50dDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX29wcG8oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUub3BwbztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX3Zpdm8oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUudml2bztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX292KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtX3R5cGUgPT09IExRUGxhdGZvcm1UeXBlLm9wcG8gfHwgdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS52aXZvO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfYnJvd3NlcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5icm93c2VyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfYW5kcm9pZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5hbmRyb2lkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfaW9zKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtX3R5cGUgPT09IExRUGxhdGZvcm1UeXBlLmlvcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX25hdGl2ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5hbmRyb2lkIHx8IHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUuaW9zO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfcXEoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUucXE7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBpc19iYWlkdSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5iYWlkdTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX2t3YWlnYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtX3R5cGUgPT09IExRUGxhdGZvcm1UeXBlLmt3YWlnYW1lO1xyXG4gICAgfVxyXG59XHJcblxyXG5MUVBsYXRmb3JtVXRpbC5pbml0KCk7XHJcbmlmIChMUVBsYXRmb3JtVXRpbC5pc190dCgpKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnLS0tLS0tLS0t5b2T5YmN5bmz5Y+wOicgKyBMUVBsYXRmb3JtVXRpbC5nZXRfYnl0ZV9kYW5jZSgpKTtcclxufSBlbHNlIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCctLS0tLS0tLS3lvZPliY3lubPlj7A6JyArIExRUGxhdGZvcm1VdGlsLmdldF9wbGF0Zm9ybSgpKTtcclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/lq_base/util/lq_pool_util.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '984882e2dpD17LvCQnTDykE', 'lq_pool_util'); +// Script/lq_base/util/lq_pool_util.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LQPoolUtil = void 0; +var Animation = cc.Animation; +var ParticleSystem = cc.ParticleSystem; +var instantiate = cc.instantiate; +var LQPoolUtil = /** @class */ (function () { + function LQPoolUtil() { + } + LQPoolUtil.reset_ani = function (node) { + var ani = node.getComponent(Animation); + if (ani) { + var clip = ani.currentClip ? ani.currentClip : ani.defaultClip; + if (!clip) { + return; + } + if (ani.playOnLoad && clip && clip.wrapMode === cc.WrapMode.Normal) { + ani.play(clip.name); + } + } + else { + var ani_1 = node.getComponent(sp.Skeleton); + if (ani_1 && !ani_1.loop) { + ani_1.setAnimation(0, ani_1.animation, false); + } + } + for (var i = 0; i < node.childrenCount; i++) { + var child = node.children[i]; + this.reset_ani(child); + } + }; + LQPoolUtil.recursion_stop_particle = function (node, obj) { + var p = node.getComponent(ParticleSystem); + if (p) { + p.stopSystem(); + obj.has = true; + p.node.opacity = 0; + } + for (var i = 0; i < node.childrenCount; i++) { + var child = node.children[i]; + this.recursion_stop_particle(child, obj); + } + }; + LQPoolUtil.recursion_reset_particle = function (node) { + if (!node.isValid) { + return; + } + var p = node.getComponent(ParticleSystem); + if (p) { + p.resetSystem(); + p.node.opacity = 255; + } + for (var i = 0; i < node.childrenCount; i++) { + var child = node.children[i]; + this.recursion_reset_particle(child); + } + }; + LQPoolUtil.get_node_from_pool = function (node_parent, prefab) { + var arr = this.any_pool[prefab.uuid]; + if (!arr) { + this.any_pool[prefab.uuid] = []; + arr = []; + } + var node = arr.pop(); + if (!node || !node.isValid) { + node = instantiate(prefab); + //@ts-ignore + node.recovery_uuid = prefab.uuid; + //@ts-ignore + node.is_from_pool = false; + node_parent.addChild(node); + } + else { + node.active = true; + //@ts-ignore + node.is_from_pool = true; + this.reset_ani(node); + } + return node; + }; + LQPoolUtil.check_pool_push = function (arr, node) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] === node) { + //@ts-ignore + console.warn("\u6C60\u5B50\u4E0D\u80FD\u91CD\u590D\u6DFB\u52A0\u8282\u70B9", node.name, node.recovery_uuid); + return; + } + } + node.active = false; + arr.push(node); + }; + LQPoolUtil.push_node_to_pool = function (node) { + var _this = this; + //@ts-ignore + if (!node.recovery_uuid || !this.any_pool[node.recovery_uuid]) { + if (node.isValid) { + node.destroy(); + } + return; + } + var obj = { has: false }; + this.recursion_stop_particle(node, obj); + if (obj.has) { + var old_opacity_1 = node.opacity; + node.opacity = 0; + setTimeout(function () { + _this.recursion_reset_particle(node); + node.opacity = old_opacity_1; + //@ts-ignore + _this.check_pool_push(_this.any_pool[node.recovery_uuid], node); + }, 500); + } + else { + //@ts-ignore + this.check_pool_push(this.any_pool[node.recovery_uuid], node); + } + }; + LQPoolUtil.any_pool = {}; + return LQPoolUtil; +}()); +exports.LQPoolUtil = LQPoolUtil; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9wb29sX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztBQUNoQyxJQUFPLGNBQWMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO0FBQzFDLElBQU8sV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7QUFFcEM7SUFBQTtJQWdIQSxDQUFDO0lBN0drQixvQkFBUyxHQUF4QixVQUF5QixJQUFVO1FBQy9CLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsSUFBSSxHQUFHLEVBQUU7WUFDTCxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQy9ELElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1AsT0FBTzthQUNWO1lBQ0QsSUFBSSxHQUFHLENBQUMsVUFBVSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNoRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN2QjtTQUNKO2FBQU07WUFDSCxJQUFJLEtBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxJQUFJLEtBQUcsSUFBSSxDQUFDLEtBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xCLEtBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLEtBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDN0M7U0FDSjtRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pDLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7SUFFYSxrQ0FBdUIsR0FBckMsVUFBc0MsSUFBVSxFQUFFLEdBQXFCO1FBQ25FLElBQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLEVBQUU7WUFDSCxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDZixHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztZQUNmLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztTQUN0QjtRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pDLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM1QztJQUNMLENBQUM7SUFFYSxtQ0FBd0IsR0FBdEMsVUFBdUMsSUFBVTtRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLE9BQU87U0FDVjtRQUNELElBQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLEVBQUU7WUFDSCxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1NBQ3hCO1FBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDO0lBRWEsNkJBQWtCLEdBQWhDLFVBQWlDLFdBQWlCLEVBQUUsTUFBWTtRQUM1RCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2hDLEdBQUcsR0FBRyxFQUFFLENBQUM7U0FDWjtRQUNELElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN4QixJQUFJLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLFlBQVk7WUFDWixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDakMsWUFBWTtZQUNaLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUI7YUFBTTtZQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLFlBQVk7WUFDWixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVjLDBCQUFlLEdBQTlCLFVBQStCLEdBQVcsRUFBRSxJQUFVO1FBQ2xELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDakIsWUFBWTtnQkFDWixPQUFPLENBQUMsSUFBSSxDQUFDLDhEQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzFELE9BQU87YUFDVjtTQUNKO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRWEsNEJBQWlCLEdBQS9CLFVBQWdDLElBQVU7UUFBMUMsaUJBdUJDO1FBdEJHLFlBQVk7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDbEI7WUFDRCxPQUFPO1NBQ1Y7UUFDRCxJQUFNLEdBQUcsR0FBcUIsRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4QyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDVCxJQUFJLGFBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLFVBQVUsQ0FBQztnQkFDUCxLQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBVyxDQUFDO2dCQUMzQixZQUFZO2dCQUNaLEtBQUksQ0FBQyxlQUFlLENBQUMsS0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7YUFBTTtZQUNILFlBQVk7WUFDWixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2pFO0lBQ0wsQ0FBQztJQTlHYyxtQkFBUSxHQUE4QixFQUFFLENBQUM7SUErRzVELGlCQUFDO0NBaEhELEFBZ0hDLElBQUE7QUFoSFksZ0NBQVUiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTm9kZSA9IGNjLk5vZGU7XHJcbmltcG9ydCBBbmltYXRpb24gPSBjYy5BbmltYXRpb247XHJcbmltcG9ydCBQYXJ0aWNsZVN5c3RlbSA9IGNjLlBhcnRpY2xlU3lzdGVtO1xyXG5pbXBvcnQgaW5zdGFudGlhdGUgPSBjYy5pbnN0YW50aWF0ZTtcclxuXHJcbmV4cG9ydCBjbGFzcyBMUVBvb2xVdGlsIHtcclxuICAgIHByaXZhdGUgc3RhdGljIGFueV9wb29sOiB7IFtrZXk6IHN0cmluZ106IE5vZGVbXSB9ID0ge307XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVzZXRfYW5pKG5vZGU6IE5vZGUpIHtcclxuICAgICAgICBsZXQgYW5pID0gbm9kZS5nZXRDb21wb25lbnQoQW5pbWF0aW9uKTtcclxuICAgICAgICBpZiAoYW5pKSB7XHJcbiAgICAgICAgICAgIGxldCBjbGlwID0gYW5pLmN1cnJlbnRDbGlwID8gYW5pLmN1cnJlbnRDbGlwIDogYW5pLmRlZmF1bHRDbGlwO1xyXG4gICAgICAgICAgICBpZiAoIWNsaXApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYW5pLnBsYXlPbkxvYWQgJiYgY2xpcCAmJiBjbGlwLndyYXBNb2RlID09PSBjYy5XcmFwTW9kZS5Ob3JtYWwpIHtcclxuICAgICAgICAgICAgICAgIGFuaS5wbGF5KGNsaXAubmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgYW5pID0gbm9kZS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xyXG4gICAgICAgICAgICBpZiAoYW5pICYmICFhbmkubG9vcCkge1xyXG4gICAgICAgICAgICAgICAgYW5pLnNldEFuaW1hdGlvbigwLCBhbmkuYW5pbWF0aW9uLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLmNoaWxkcmVuQ291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZCA9IG5vZGUuY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRfYW5pKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyByZWN1cnNpb25fc3RvcF9wYXJ0aWNsZShub2RlOiBOb2RlLCBvYmo6IHsgaGFzOiBib29sZWFuIH0pIHtcclxuICAgICAgICBjb25zdCBwID0gbm9kZS5nZXRDb21wb25lbnQoUGFydGljbGVTeXN0ZW0pO1xyXG4gICAgICAgIGlmIChwKSB7XHJcbiAgICAgICAgICAgIHAuc3RvcFN5c3RlbSgpO1xyXG4gICAgICAgICAgICBvYmouaGFzID0gdHJ1ZTtcclxuICAgICAgICAgICAgcC5ub2RlLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW5Db3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5jaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgdGhpcy5yZWN1cnNpb25fc3RvcF9wYXJ0aWNsZShjaGlsZCwgb2JqKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyByZWN1cnNpb25fcmVzZXRfcGFydGljbGUobm9kZTogTm9kZSkge1xyXG4gICAgICAgIGlmICghbm9kZS5pc1ZhbGlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcCA9IG5vZGUuZ2V0Q29tcG9uZW50KFBhcnRpY2xlU3lzdGVtKTtcclxuICAgICAgICBpZiAocCkge1xyXG4gICAgICAgICAgICBwLnJlc2V0U3lzdGVtKCk7XHJcbiAgICAgICAgICAgIHAubm9kZS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW5Db3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5jaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgdGhpcy5yZWN1cnNpb25fcmVzZXRfcGFydGljbGUoY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF9ub2RlX2Zyb21fcG9vbChub2RlX3BhcmVudDogTm9kZSwgcHJlZmFiOiBOb2RlKSB7XHJcbiAgICAgICAgbGV0IGFyciA9IHRoaXMuYW55X3Bvb2xbcHJlZmFiLnV1aWRdO1xyXG4gICAgICAgIGlmICghYXJyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYW55X3Bvb2xbcHJlZmFiLnV1aWRdID0gW107XHJcbiAgICAgICAgICAgIGFyciA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbm9kZSA9IGFyci5wb3AoKTtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIW5vZGUuaXNWYWxpZCkge1xyXG4gICAgICAgICAgICBub2RlID0gaW5zdGFudGlhdGUocHJlZmFiKTtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIG5vZGUucmVjb3ZlcnlfdXVpZCA9IHByZWZhYi51dWlkO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgbm9kZS5pc19mcm9tX3Bvb2wgPSBmYWxzZTtcclxuICAgICAgICAgICAgbm9kZV9wYXJlbnQuYWRkQ2hpbGQobm9kZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgbm9kZS5pc19mcm9tX3Bvb2wgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0X2FuaShub2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgY2hlY2tfcG9vbF9wdXNoKGFycjogTm9kZVtdLCBub2RlOiBOb2RlKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGFycltpXSA9PT0gbm9kZSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYOaxoOWtkOS4jeiDvemHjeWkjea3u+WKoOiKgueCuWAsIG5vZGUubmFtZSwgbm9kZS5yZWNvdmVyeV91dWlkKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGFyci5wdXNoKG5vZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgcHVzaF9ub2RlX3RvX3Bvb2wobm9kZTogTm9kZSkge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIGlmICghbm9kZS5yZWNvdmVyeV91dWlkIHx8ICF0aGlzLmFueV9wb29sW25vZGUucmVjb3ZlcnlfdXVpZF0pIHtcclxuICAgICAgICAgICAgaWYgKG5vZGUuaXNWYWxpZCkge1xyXG4gICAgICAgICAgICAgICAgbm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBvYmo6IHsgaGFzOiBib29sZWFuIH0gPSB7aGFzOiBmYWxzZX07XHJcbiAgICAgICAgdGhpcy5yZWN1cnNpb25fc3RvcF9wYXJ0aWNsZShub2RlLCBvYmopO1xyXG4gICAgICAgIGlmIChvYmouaGFzKSB7XHJcbiAgICAgICAgICAgIGxldCBvbGRfb3BhY2l0eSA9IG5vZGUub3BhY2l0eTtcclxuICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY3Vyc2lvbl9yZXNldF9wYXJ0aWNsZShub2RlKTtcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IG9sZF9vcGFjaXR5O1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrX3Bvb2xfcHVzaCh0aGlzLmFueV9wb29sW25vZGUucmVjb3ZlcnlfdXVpZF0sIG5vZGUpO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrX3Bvb2xfcHVzaCh0aGlzLmFueV9wb29sW25vZGUucmVjb3ZlcnlfdXVpZF0sIG5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ== //------QC-SOURCE-SPLIT------ (function() { @@ -17679,6 +17504,393 @@ cc._RF.pop(); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFJhbmtMaXN0XFxJdGVtUmVuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXdDLDhCQUFZO0lBQXBEO1FBQUEscUVBc0VDO1FBckVHLFFBQVE7UUFDRCxVQUFJLEdBQU8sSUFBSSxDQUFDO1FBQ3ZCLGNBQWM7UUFDUCxlQUFTLEdBQVUsQ0FBQyxDQUFDOztJQWtFaEMsQ0FBQztJQWhFRyxhQUFhO0lBQ04sZ0NBQVcsR0FBbEI7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNyRixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxxRkFBcUY7UUFDckYsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDeEUsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUN0RDthQUNJLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDdEQ7YUFDSSxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ3REO2FBQUk7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTSwyQkFBTSxHQUFiO1FBQUEsaUJBZ0NDO1FBL0JHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUUsS0FBSyxDQUFDO1FBQ3BFLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUN4QixLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1QsSUFBSSxDQUFDLFVBQUEsUUFBUTtZQUNWLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUM7YUFFRCxJQUFJLENBQUMsVUFBQSxLQUFLO1lBQ1AsK0RBQStEO1lBQy9ELElBQUcsS0FBSyxJQUFJLE1BQU0sRUFBQztnQkFDZixxQ0FBcUM7Z0JBQ3JDLEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ3hFO1FBQ0wsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLFVBQUEsS0FBSztZQUNSLGtEQUFrRDtRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsRUFBQyxVQUFDLEdBQUcsRUFBRSxPQUFvQjtZQUNuRSxJQUFHLE9BQU8sRUFBQztnQkFDUCxLQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFFLElBQUksQ0FBQztnQkFDbkUsSUFBSSxNQUFNLEdBQUcsS0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNGLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqRCw0Q0FBNEM7YUFDL0M7aUJBQ0c7Z0JBQ0EsNkJBQTZCO2dCQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBQyxPQUFPLENBQUMsQ0FBQTthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQW5FZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQXNFOUI7SUFBRCxpQkFBQztDQXRFRCxBQXNFQyxDQXRFdUMsRUFBRSxDQUFDLFNBQVMsR0FzRW5EO2tCQXRFb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgTGlzdCwgeyBMaXN0VHlwZSB9IGZyb20gXCIuL0xpc3RcIjtcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJdGVtUmVuZGVyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIC8qKuaVsOaNriAqL1xyXG4gICAgcHVibGljIGRhdGE6YW55ID0gbnVsbDtcclxuICAgIC8qKue0ouW8lSAw6KGo56S656ys5LiA6aG5Ki9cclxuICAgIHB1YmxpYyBpdGVtSW5kZXg6bnVtYmVyID0gMDsgICAgXHJcblxyXG4gICAgLyoq5pWw5o2u5pS55Y+Y5pe26LCD55SoICovXHJcbiAgICBwdWJsaWMgZGF0YUNoYW5nZWQoKXtcclxuICAgICAgICB0aGlzLmRhdGEubmFtZSA9IGNjLmZ4LkdhbWVUb29sLnN1Yk5hbWUodGhpcy5kYXRhLm5hbWUsNik7XHJcblxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLmRhdGEucmFuayArIFwiXCI7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibmFtZUxhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGF0YS5uYW1lICsgXCJcIjtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0b3RhbExhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGF0YS50b3RhbDtcclxuICAgICAgICBsZXQgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lU2hlbk5vbmcodGhpcy5kYXRhLnRpbWUpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcCArIFwiXCI7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBpZih0aGlzLmRhdGEucmFuayA9PSAxKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMuZGF0YS5yYW5rID09IDIpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5kYXRhLnJhbmsgPT0gMyl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0UGljKCk7XHJcbiAgICB9ICAgXHJcbiAgICBcclxuICAgIHB1YmxpYyBzZXRQaWMoKXtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5hY3RpdmU9IGZhbHNlO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICBsZXQgdXJsID0gdGhpcy5kYXRhLnBpYztcclxuICAgICAgICBmZXRjaCh1cmwpXHJcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJyk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEucmFuaywnWC1JbmZvOicsIGVyck5vKTsgLy8g6L6T5Ye6WC1FcnJOb+eahOWAvFxyXG4gICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEucmFuayxcIuayoeWktOWDj1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5hY3RpdmU9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3ByaXRlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgc3ByaXRlLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5kYXRhLnJhbmssXCLorr7nva7lpLTlg4/miJDlip9cIixlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiuvue9ruWktOWDj+Wksei0pVwiLHVybCk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIsdGV4dHVyZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/tiledmap-optimize-resource/Script/TmoAssembler.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '18d1c5ObBtCeaysyO5bMIgb', 'TmoAssembler'); +// Script/TmoAssembler.js + +"use strict"; + +exports.__esModule = true; +exports.TmoAssembler = void 0; + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var gfx = cc.gfx; // 颜色去除 + 物件图集合批 + +var vfmtPosUvIndex = new gfx.VertexFormat([{ + name: gfx.ATTR_POSITION, + type: gfx.ATTR_TYPE_FLOAT32, + num: 2 +}, { + name: gfx.ATTR_UV0, + type: gfx.ATTR_TYPE_FLOAT32, + num: 2 +}, { + name: "a_texture_idx", + type: gfx.ATTR_TYPE_FLOAT32, + num: 1 +}]); // 仅物件图集合批 + +var vfmtPosUvColorIndex = new gfx.VertexFormat([{ + name: gfx.ATTR_POSITION, + type: gfx.ATTR_TYPE_FLOAT32, + num: 2 +}, { + name: gfx.ATTR_UV0, + type: gfx.ATTR_TYPE_FLOAT32, + num: 2 +}, { + name: "a_texture_idx", + type: gfx.ATTR_TYPE_FLOAT32, + num: 1 +}, { + name: gfx.ATTR_COLOR, + type: gfx.ATTR_TYPE_UINT8, + num: 4, + normalize: true +}]); + +var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { + _inheritsLoose(TmoAssembler, _cc$Assembler); + + function TmoAssembler() { + return _cc$Assembler.apply(this, arguments) || this; + } + + var _proto = TmoAssembler.prototype; + + _proto.init = function init(comp) { + _cc$Assembler.prototype.init.call(this, comp); + + this._noColor = comp.isNoColor(); + this.updateColor = this._noColor ? undefined : this.updateColorFunc; + this.uvOffset = 2; + this.colorOffset = 5; + this.textureIndexOffset = 4; + this.floatsPerVert = this._noColor ? 5 : 6; + this.indicesCount = 6; + this.verticesCount = 4; + this._renderData = new cc.RenderData(); + + this._renderData.init(this); + + this.initLocal(); + this.initData(); + }; + + _proto.initLocal = function initLocal() { + this._local = []; + this._local.length = 4; + }; + + _proto.initData = function initData() { + var data = this._renderData; + data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt()); // 填充顶点索引信息 + + var indices = data.iDatas[0]; + var count = indices.length / 6; + + for (var i = 0, idx = 0; i < count; i++) { + var vertextID = i * 4; + indices[idx++] = vertextID; + indices[idx++] = vertextID + 1; + indices[idx++] = vertextID + 2; + indices[idx++] = vertextID + 1; + indices[idx++] = vertextID + 3; + indices[idx++] = vertextID + 2; + } + }; + + _proto.getBuffer = function getBuffer() { + return cc.renderer._handle.getBuffer("mesh", this.getVfmt()); + }; + + _proto.getVfmt = function getVfmt() { + return this._noColor ? vfmtPosUvIndex : vfmtPosUvColorIndex; + }; + + _proto.updateRenderData = function updateRenderData(sprite) { + this.packToDynamicAtlas(sprite, sprite._spriteFrame); + + if (sprite._vertsDirty) { + this.updateUVs(sprite); + this.updateVerts(sprite); + this.updateTextureIdx(sprite); + sprite._vertsDirty = false; + } + } + /** + * 填充textureIndex数据 + * @param {cc.Sprite} sprite + */ + ; + + _proto.updateTextureIdx = function updateTextureIdx(sprite) { + var textureIdx = sprite._textureIdx; + var verts = this._renderData.vDatas[0]; + var verticesCount = this.verticesCount; + var floatsPerVert = this.floatsPerVert; + var textureIndexOffset = this.textureIndexOffset; + + for (var i = 0; i < verticesCount; i++) { + var index = i * floatsPerVert + textureIndexOffset; + verts[index] = textureIdx; + } + }; + + _proto.updateUVs = function updateUVs(sprite) { + var uv = sprite._spriteFrame.uv; + var uvOffset = this.uvOffset; + var floatsPerVert = this.floatsPerVert; + var verts = this._renderData.vDatas[0]; + + for (var i = 0; i < 4; i++) { + var srcOffset = i * 2; + var dstOffset = floatsPerVert * i + uvOffset; + verts[dstOffset] = uv[srcOffset]; + verts[dstOffset + 1] = uv[srcOffset + 1]; + } + }; + + _proto.updateVerts = function updateVerts(sprite) { + var node = sprite.node, + cw = node.width, + ch = node.height, + appx = node.anchorX * cw, + appy = node.anchorY * ch, + l, + b, + r, + t; + + if (sprite.trim) { + l = -appx; + b = -appy; + r = cw - appx; + t = ch - appy; + } else { + var frame = sprite.spriteFrame, + ow = frame._originalSize.width, + oh = frame._originalSize.height, + rw = frame._rect.width, + rh = frame._rect.height, + offset = frame._offset, + scaleX = cw / ow, + scaleY = ch / oh; + var trimLeft = offset.x + (ow - rw) / 2; + var trimRight = offset.x - (ow - rw) / 2; + var trimBottom = offset.y + (oh - rh) / 2; + var trimTop = offset.y - (oh - rh) / 2; + l = trimLeft * scaleX - appx; + b = trimBottom * scaleY - appy; + r = cw + trimRight * scaleX - appx; + t = ch + trimTop * scaleY - appy; + } + + var local = this._local; + local[0] = l; + local[1] = b; + local[2] = r; + local[3] = t; + this.updateWorldVerts(sprite); + }; + + _proto.updateColorFunc = function updateColorFunc(comp, color) { + var uintVerts = this._renderData.uintVDatas[0]; + if (!uintVerts) return; + color = color != null ? color : comp.node.color._val; + var floatsPerVert = this.floatsPerVert; + var colorOffset = this.colorOffset; + + for (var i = colorOffset, l = uintVerts.length; i < l; i += floatsPerVert) { + uintVerts[i] = color; + } + }; + + _proto.updateWorldVerts = function updateWorldVerts(comp) { + if (CC_NATIVERENDERER) { + // 原生平台兼容代码 复制于jsb-engine.js中的cc.Assembler2D.prototype.updateWorldVerts + var local = this._local; + var verts = this._renderData.vDatas[0]; + var vl = local[0], + vr = local[2], + vb = local[1], + vt = local[3]; + var floatsPerVert = this.floatsPerVert; + var vertexOffset = 0; // left bottom + + verts[vertexOffset] = vl; + verts[vertexOffset + 1] = vb; + vertexOffset += floatsPerVert; // right bottom + + verts[vertexOffset] = vr; + verts[vertexOffset + 1] = vb; + vertexOffset += floatsPerVert; // left top + + verts[vertexOffset] = vl; + verts[vertexOffset + 1] = vt; + vertexOffset += floatsPerVert; // right top + + verts[vertexOffset] = vr; + verts[vertexOffset + 1] = vt; + } else { + var _local = this._local; + var _verts = this._renderData.vDatas[0]; + var matrix = comp.node._worldMatrix; + var matrixm = matrix.m, + a = matrixm[0], + b = matrixm[1], + c = matrixm[4], + d = matrixm[5], + tx = matrixm[12], + ty = matrixm[13]; + var _vl = _local[0], + _vr = _local[2], + _vb = _local[1], + _vt = _local[3]; + var _floatsPerVert = this.floatsPerVert; + var _vertexOffset = 0; + var justTranslate = a === 1 && b === 0 && c === 0 && d === 1; + + if (justTranslate) { + // left bottom + _verts[_vertexOffset] = _vl + tx; + _verts[_vertexOffset + 1] = _vb + ty; + _vertexOffset += _floatsPerVert; // right bottom + + _verts[_vertexOffset] = _vr + tx; + _verts[_vertexOffset + 1] = _vb + ty; + _vertexOffset += _floatsPerVert; // left top + + _verts[_vertexOffset] = _vl + tx; + _verts[_vertexOffset + 1] = _vt + ty; + _vertexOffset += _floatsPerVert; // right top + + _verts[_vertexOffset] = _vr + tx; + _verts[_vertexOffset + 1] = _vt + ty; + } else { + var al = a * _vl, + ar = a * _vr, + bl = b * _vl, + br = b * _vr, + cb = c * _vb, + ct = c * _vt, + db = d * _vb, + dt = d * _vt; // left bottom + + _verts[_vertexOffset] = al + cb + tx; + _verts[_vertexOffset + 1] = bl + db + ty; + _vertexOffset += _floatsPerVert; // right bottom + + _verts[_vertexOffset] = ar + cb + tx; + _verts[_vertexOffset + 1] = br + db + ty; + _vertexOffset += _floatsPerVert; // left top + + _verts[_vertexOffset] = al + ct + tx; + _verts[_vertexOffset + 1] = bl + dt + ty; + _vertexOffset += _floatsPerVert; // right top + + _verts[_vertexOffset] = ar + ct + tx; + _verts[_vertexOffset + 1] = br + dt + ty; + } + } + }; + + _proto.fillBuffers = function fillBuffers(comp, renderer) { + if (renderer.worldMatDirty) { + this.updateWorldVerts(comp); + } + + var renderData = this._renderData; + var vData = renderData.vDatas[0]; + var iData = renderData.iDatas[0]; + var buffer = this.getBuffer(renderer); + var offsetInfo = buffer.request(this.verticesCount, this.indicesCount); // buffer data may be realloc, need get reference after request. + // fill vertices + + var vertexOffset = offsetInfo.byteOffset >> 2, + vbuf = buffer._vData; + + if (vData.length + vertexOffset > vbuf.length) { + vbuf.set(vData.subarray(0, vbuf.length - vertexOffset), vertexOffset); + } else { + vbuf.set(vData, vertexOffset); + } // fill indices + + + var ibuf = buffer._iData, + indiceOffset = offsetInfo.indiceOffset, + vertexId = offsetInfo.vertexOffset; + + for (var i = 0, l = iData.length; i < l; i++) { + ibuf[indiceOffset++] = vertexId + iData[i]; + } + }; + + _proto.packToDynamicAtlas = function packToDynamicAtlas(comp, frame) { + if (CC_TEST) return; + + if (!frame._original && cc.dynamicAtlasManager && frame._texture.packable) { + var packedFrame = cc.dynamicAtlasManager.insertSpriteFrame(frame); + + if (packedFrame) { + frame._setDynamicAtlasFrame(packedFrame); + } + } + + var material = comp._materials[0]; + if (!material) return; + + if (material.getProperty('texture') !== frame._texture) { + // texture was packed to dynamic atlas, should update uvs + comp._vertsDirty = true; + + comp._updateMaterial(); + } + }; + + _createClass(TmoAssembler, [{ + key: "verticesFloats", + get: function get() { + return this.verticesCount * this.floatsPerVert; + } + }]); + + return TmoAssembler; +}(cc.Assembler); + +exports.TmoAssembler = TmoAssembler; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vQXNzZW1ibGVyLmpzIl0sIm5hbWVzIjpbImdmeCIsImNjIiwidmZtdFBvc1V2SW5kZXgiLCJWZXJ0ZXhGb3JtYXQiLCJuYW1lIiwiQVRUUl9QT1NJVElPTiIsInR5cGUiLCJBVFRSX1RZUEVfRkxPQVQzMiIsIm51bSIsIkFUVFJfVVYwIiwidmZtdFBvc1V2Q29sb3JJbmRleCIsIkFUVFJfQ09MT1IiLCJBVFRSX1RZUEVfVUlOVDgiLCJub3JtYWxpemUiLCJUbW9Bc3NlbWJsZXIiLCJpbml0IiwiY29tcCIsIl9ub0NvbG9yIiwiaXNOb0NvbG9yIiwidXBkYXRlQ29sb3IiLCJ1bmRlZmluZWQiLCJ1cGRhdGVDb2xvckZ1bmMiLCJ1dk9mZnNldCIsImNvbG9yT2Zmc2V0IiwidGV4dHVyZUluZGV4T2Zmc2V0IiwiZmxvYXRzUGVyVmVydCIsImluZGljZXNDb3VudCIsInZlcnRpY2VzQ291bnQiLCJfcmVuZGVyRGF0YSIsIlJlbmRlckRhdGEiLCJpbml0TG9jYWwiLCJpbml0RGF0YSIsIl9sb2NhbCIsImxlbmd0aCIsImRhdGEiLCJjcmVhdGVGbGV4RGF0YSIsImdldFZmbXQiLCJpbmRpY2VzIiwiaURhdGFzIiwiY291bnQiLCJpIiwiaWR4IiwidmVydGV4dElEIiwiZ2V0QnVmZmVyIiwicmVuZGVyZXIiLCJfaGFuZGxlIiwidXBkYXRlUmVuZGVyRGF0YSIsInNwcml0ZSIsInBhY2tUb0R5bmFtaWNBdGxhcyIsIl9zcHJpdGVGcmFtZSIsIl92ZXJ0c0RpcnR5IiwidXBkYXRlVVZzIiwidXBkYXRlVmVydHMiLCJ1cGRhdGVUZXh0dXJlSWR4IiwidGV4dHVyZUlkeCIsIl90ZXh0dXJlSWR4IiwidmVydHMiLCJ2RGF0YXMiLCJpbmRleCIsInV2Iiwic3JjT2Zmc2V0IiwiZHN0T2Zmc2V0Iiwibm9kZSIsImN3Iiwid2lkdGgiLCJjaCIsImhlaWdodCIsImFwcHgiLCJhbmNob3JYIiwiYXBweSIsImFuY2hvclkiLCJsIiwiYiIsInIiLCJ0IiwidHJpbSIsImZyYW1lIiwic3ByaXRlRnJhbWUiLCJvdyIsIl9vcmlnaW5hbFNpemUiLCJvaCIsInJ3IiwiX3JlY3QiLCJyaCIsIm9mZnNldCIsIl9vZmZzZXQiLCJzY2FsZVgiLCJzY2FsZVkiLCJ0cmltTGVmdCIsIngiLCJ0cmltUmlnaHQiLCJ0cmltQm90dG9tIiwieSIsInRyaW1Ub3AiLCJsb2NhbCIsInVwZGF0ZVdvcmxkVmVydHMiLCJjb2xvciIsInVpbnRWZXJ0cyIsInVpbnRWRGF0YXMiLCJfdmFsIiwiQ0NfTkFUSVZFUkVOREVSRVIiLCJ2bCIsInZyIiwidmIiLCJ2dCIsInZlcnRleE9mZnNldCIsIm1hdHJpeCIsIl93b3JsZE1hdHJpeCIsIm1hdHJpeG0iLCJtIiwiYSIsImMiLCJkIiwidHgiLCJ0eSIsImp1c3RUcmFuc2xhdGUiLCJhbCIsImFyIiwiYmwiLCJiciIsImNiIiwiY3QiLCJkYiIsImR0IiwiZmlsbEJ1ZmZlcnMiLCJ3b3JsZE1hdERpcnR5IiwicmVuZGVyRGF0YSIsInZEYXRhIiwiaURhdGEiLCJidWZmZXIiLCJvZmZzZXRJbmZvIiwicmVxdWVzdCIsImJ5dGVPZmZzZXQiLCJ2YnVmIiwiX3ZEYXRhIiwic2V0Iiwic3ViYXJyYXkiLCJpYnVmIiwiX2lEYXRhIiwiaW5kaWNlT2Zmc2V0IiwidmVydGV4SWQiLCJDQ19URVNUIiwiX29yaWdpbmFsIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsIl90ZXh0dXJlIiwicGFja2FibGUiLCJwYWNrZWRGcmFtZSIsImluc2VydFNwcml0ZUZyYW1lIiwiX3NldER5bmFtaWNBdGxhc0ZyYW1lIiwibWF0ZXJpYWwiLCJfbWF0ZXJpYWxzIiwiZ2V0UHJvcGVydHkiLCJfdXBkYXRlTWF0ZXJpYWwiLCJBc3NlbWJsZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFJQSxHQUFHLEdBQUdDLEVBQUUsQ0FBQ0QsR0FBYixFQUNBOztBQUNBLElB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RSxFQUEyRTtBQUN2RSxVQUFJQyxXQUFXLEdBQUdqSixFQUFFLENBQUM4SSxtQkFBSCxDQUF1QkksaUJBQXZCLENBQXlDdkUsS0FBekMsQ0FBbEI7O0FBQ0EsVUFBSXNFLFdBQUosRUFBaUI7QUFDYnRFLFFBQUFBLEtBQUssQ0FBQ3dFLHFCQUFOLENBQTRCRixXQUE1QjtBQUNIO0FBQ0o7O0FBQ0QsUUFBSUcsUUFBUSxHQUFHckksSUFBSSxDQUFDc0ksVUFBTCxDQUFnQixDQUFoQixDQUFmO0FBQ0EsUUFBSSxDQUFDRCxRQUFMLEVBQWU7O0FBRWYsUUFBSUEsUUFBUSxDQUFDRSxXQUFULENBQXFCLFNBQXJCLE1BQW9DM0UsS0FBSyxDQUFDb0UsUUFBOUMsRUFBd0Q7QUFDcEQ7QUFDQWhJLE1BQUFBLElBQUksQ0FBQ2tDLFdBQUwsR0FBbUIsSUFBbkI7O0FBQ0FsQyxNQUFBQSxJQUFJLENBQUN3SSxlQUFMO0FBQ0g7QUFDSjs7OztTQXBKRCxlQUFxQjtBQUNqQixhQUFPLEtBQUs3SCxhQUFMLEdBQXFCLEtBQUtGLGFBQWpDO0FBQ0g7Ozs7RUFwSTZCeEIsRUFBRSxDQUFDd0oiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImxldCBnZnggPSBjYy5nZng7XHJcbi8vIOminOiJsuWOu+mZpCArIOeJqeS7tuWbvumbhuWQiOaJuVxyXG52YXIgdmZtdFBvc1V2SW5kZXggPSBuZXcgZ2Z4LlZlcnRleEZvcm1hdChbXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX1BPU0lUSU9OLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMiB9LFxyXG4gICAgeyBuYW1lOiBnZnguQVRUUl9VVjAsIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAyIH0sXHJcbiAgICB7IG5hbWU6IFwiYV90ZXh0dXJlX2lkeFwiLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMSB9LFxyXG5dKTtcclxuXHJcbi8vIOS7heeJqeS7tuWbvumbhuWQiOaJuVxyXG52YXIgdmZtdFBvc1V2Q29sb3JJbmRleCA9IG5ldyBnZnguVmVydGV4Rm9ybWF0KFtcclxuICAgIHsgbmFtZTogZ2Z4LkFUVFJfUE9TSVRJT04sIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAyIH0sXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX1VWMCwgdHlwZTogZ2Z4LkFUVFJfVFlQRV9GTE9BVDMyLCBudW06IDIgfSxcclxuICAgIHsgbmFtZTogXCJhX3RleHR1cmVfaWR4XCIsIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAxIH0sXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX0NPTE9SLCB0eXBlOiBnZnguQVRUUl9UWVBFX1VJTlQ4LCBudW06IDQsIG5vcm1hbGl6ZTogdHJ1ZSB9LFxyXG5dKTtcclxuXHJcbmV4cG9ydCBjbGFzcyBUbW9Bc3NlbWJsZXIgZXh0ZW5kcyBjYy5Bc3NlbWJsZXIge1xyXG4gICAgaW5pdChjb21wKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdChjb21wKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbm9Db2xvciA9IGNvbXAuaXNOb0NvbG9yKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb2xvciA9IHRoaXMuX25vQ29sb3IgPyB1bmRlZmluZWQgOiB0aGlzLnVwZGF0ZUNvbG9yRnVuYztcclxuXHJcbiAgICAgICAgdGhpcy51dk9mZnNldCA9IDI7XHJcbiAgICAgICAgdGhpcy5jb2xvck9mZnNldCA9IDU7XHJcbiAgICAgICAgdGhpcy50ZXh0dXJlSW5kZXhPZmZzZXQgPSA0O1xyXG4gICAgICAgIHRoaXMuZmxvYXRzUGVyVmVydCA9IHRoaXMuX25vQ29sb3IgPyA1IDogNjtcclxuXHJcbiAgICAgICAgdGhpcy5pbmRpY2VzQ291bnQgPSA2O1xyXG4gICAgICAgIHRoaXMudmVydGljZXNDb3VudCA9IDQ7XHJcblxyXG4gICAgICAgIHRoaXMuX3JlbmRlckRhdGEgPSBuZXcgY2MuUmVuZGVyRGF0YSgpO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlckRhdGEuaW5pdCh0aGlzKTtcclxuXHJcbiAgICAgICAgdGhpcy5pbml0TG9jYWwoKTtcclxuICAgICAgICB0aGlzLmluaXREYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdExvY2FsKCkge1xyXG4gICAgICAgIHRoaXMuX2xvY2FsID0gW107XHJcbiAgICAgICAgdGhpcy5fbG9jYWwubGVuZ3RoID0gNDtcclxuICAgIH1cclxuXHJcbiAgICBpbml0RGF0YSgpIHtcclxuICAgICAgICBsZXQgZGF0YSA9IHRoaXMuX3JlbmRlckRhdGE7XHJcbiAgICAgICAgZGF0YS5jcmVhdGVGbGV4RGF0YSgwLCB0aGlzLnZlcnRpY2VzQ291bnQsIHRoaXMuaW5kaWNlc0NvdW50LCB0aGlzLmdldFZmbXQoKSk7XHJcblxyXG4gICAgICAgIC8vIOWhq+WFhemhtueCuee0ouW8leS/oeaBr1xyXG4gICAgICAgIGxldCBpbmRpY2VzID0gZGF0YS5pRGF0YXNbMF07XHJcbiAgICAgICAgbGV0IGNvdW50ID0gaW5kaWNlcy5sZW5ndGggLyA2O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBpZHggPSAwOyBpIDwgY291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgdmVydGV4dElEID0gaSAqIDQ7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEO1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRCArIDE7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEICsgMjtcclxuICAgICAgICAgICAgaW5kaWNlc1tpZHgrK10gPSB2ZXJ0ZXh0SUQgKyAxO1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRCArIDM7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEICsgMjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QnVmZmVyKCkge1xyXG4gICAgICAgIHJldHVybiBjYy5yZW5kZXJlci5faGFuZGxlLmdldEJ1ZmZlcihcIm1lc2hcIiwgdGhpcy5nZXRWZm10KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFZmbXQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vQ29sb3IgPyB2Zm10UG9zVXZJbmRleCA6IHZmbXRQb3NVdkNvbG9ySW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUmVuZGVyRGF0YShzcHJpdGUpIHtcclxuICAgICAgICB0aGlzLnBhY2tUb0R5bmFtaWNBdGxhcyhzcHJpdGUsIHNwcml0ZS5fc3ByaXRlRnJhbWUpO1xyXG5cclxuICAgICAgICBpZiAoc3ByaXRlLl92ZXJ0c0RpcnR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVVZzKHNwcml0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmVydHMoc3ByaXRlKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0dXJlSWR4KHNwcml0ZSk7XHJcbiAgICAgICAgICAgIHNwcml0ZS5fdmVydHNEaXJ0eSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWhq+WFhXRleHR1cmVJbmRleOaVsOaNrlxyXG4gICAgICogQHBhcmFtIHtjYy5TcHJpdGV9IHNwcml0ZSBcclxuICAgICAqL1xyXG4gICAgdXBkYXRlVGV4dHVyZUlkeChzcHJpdGUpIHtcclxuICAgICAgICBsZXQgdGV4dHVyZUlkeCA9IHNwcml0ZS5fdGV4dHVyZUlkeDtcclxuICAgICAgICBsZXQgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuXHJcbiAgICAgICAgbGV0IHZlcnRpY2VzQ291bnQgPSB0aGlzLnZlcnRpY2VzQ291bnQ7XHJcbiAgICAgICAgbGV0IGZsb2F0c1BlclZlcnQgPSB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgbGV0IHRleHR1cmVJbmRleE9mZnNldCA9IHRoaXMudGV4dHVyZUluZGV4T2Zmc2V0O1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZlcnRpY2VzQ291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSBpICogZmxvYXRzUGVyVmVydCArIHRleHR1cmVJbmRleE9mZnNldDtcclxuICAgICAgICAgICAgdmVydHNbaW5kZXhdID0gdGV4dHVyZUlkeDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVVZzKHNwcml0ZSkge1xyXG4gICAgICAgIGxldCB1diA9IHNwcml0ZS5fc3ByaXRlRnJhbWUudXY7XHJcbiAgICAgICAgbGV0IHV2T2Zmc2V0ID0gdGhpcy51dk9mZnNldDtcclxuICAgICAgICBsZXQgZmxvYXRzUGVyVmVydCA9IHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgICAgICBsZXQgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgc3JjT2Zmc2V0ID0gaSAqIDI7XHJcbiAgICAgICAgICAgIGxldCBkc3RPZmZzZXQgPSBmbG9hdHNQZXJWZXJ0ICogaSArIHV2T2Zmc2V0O1xyXG4gICAgICAgICAgICB2ZXJ0c1tkc3RPZmZzZXRdID0gdXZbc3JjT2Zmc2V0XTtcclxuICAgICAgICAgICAgdmVydHNbZHN0T2Zmc2V0ICsgMV0gPSB1dltzcmNPZmZzZXQgKyAxXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVmVydHMoc3ByaXRlKSB7XHJcbiAgICAgICAgbGV0IG5vZGUgPSBzcHJpdGUubm9kZSxcclxuICAgICAgICAgICAgY3cgPSBub2RlLndpZHRoLCBjaCA9IG5vZGUuaGVpZ2h0LFxyXG4gICAgICAgICAgICBhcHB4ID0gbm9kZS5hbmNob3JYICogY3csIGFwcHkgPSBub2RlLmFuY2hvclkgKiBjaCxcclxuICAgICAgICAgICAgbCwgYiwgciwgdDtcclxuICAgICAgICBpZiAoc3ByaXRlLnRyaW0pIHtcclxuICAgICAgICAgICAgbCA9IC1hcHB4O1xyXG4gICAgICAgICAgICBiID0gLWFwcHk7XHJcbiAgICAgICAgICAgIHIgPSBjdyAtIGFwcHg7XHJcbiAgICAgICAgICAgIHQgPSBjaCAtIGFwcHk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgZnJhbWUgPSBzcHJpdGUuc3ByaXRlRnJhbWUsXHJcbiAgICAgICAgICAgICAgICBvdyA9IGZyYW1lLl9vcmlnaW5hbFNpemUud2lkdGgsIG9oID0gZnJhbWUuX29yaWdpbmFsU2l6ZS5oZWlnaHQsXHJcbiAgICAgICAgICAgICAgICBydyA9IGZyYW1lLl9yZWN0LndpZHRoLCByaCA9IGZyYW1lLl9yZWN0LmhlaWdodCxcclxuICAgICAgICAgICAgICAgIG9mZnNldCA9IGZyYW1lLl9vZmZzZXQsXHJcbiAgICAgICAgICAgICAgICBzY2FsZVggPSBjdyAvIG93LCBzY2FsZVkgPSBjaCAvIG9oO1xyXG4gICAgICAgICAgICBsZXQgdHJpbUxlZnQgPSBvZmZzZXQueCArIChvdyAtIHJ3KSAvIDI7XHJcbiAgICAgICAgICAgIGxldCB0cmltUmlnaHQgPSBvZmZzZXQueCAtIChvdyAtIHJ3KSAvIDI7XHJcbiAgICAgICAgICAgIGxldCB0cmltQm90dG9tID0gb2Zmc2V0LnkgKyAob2ggLSByaCkgLyAyO1xyXG4gICAgICAgICAgICBsZXQgdHJpbVRvcCA9IG9mZnNldC55IC0gKG9oIC0gcmgpIC8gMjtcclxuICAgICAgICAgICAgbCA9IHRyaW1MZWZ0ICogc2NhbGVYIC0gYXBweDtcclxuICAgICAgICAgICAgYiA9IHRyaW1Cb3R0b20gKiBzY2FsZVkgLSBhcHB5O1xyXG4gICAgICAgICAgICByID0gY3cgKyB0cmltUmlnaHQgKiBzY2FsZVggLSBhcHB4O1xyXG4gICAgICAgICAgICB0ID0gY2ggKyB0cmltVG9wICogc2NhbGVZIC0gYXBweTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBsb2NhbCA9IHRoaXMuX2xvY2FsO1xyXG4gICAgICAgIGxvY2FsWzBdID0gbDtcclxuICAgICAgICBsb2NhbFsxXSA9IGI7XHJcbiAgICAgICAgbG9jYWxbMl0gPSByO1xyXG4gICAgICAgIGxvY2FsWzNdID0gdDtcclxuICAgICAgICB0aGlzLnVwZGF0ZVdvcmxkVmVydHMoc3ByaXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmVydGljZXNGbG9hdHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmVydGljZXNDb3VudCAqIHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVDb2xvckZ1bmMoY29tcCwgY29sb3IpIHtcclxuICAgICAgICBsZXQgdWludFZlcnRzID0gdGhpcy5fcmVuZGVyRGF0YS51aW50VkRhdGFzWzBdO1xyXG4gICAgICAgIGlmICghdWludFZlcnRzKSByZXR1cm47XHJcbiAgICAgICAgY29sb3IgPSBjb2xvciAhPSBudWxsID8gY29sb3IgOiBjb21wLm5vZGUuY29sb3IuX3ZhbDtcclxuICAgICAgICBsZXQgZmxvYXRzUGVyVmVydCA9IHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgICAgICBsZXQgY29sb3JPZmZzZXQgPSB0aGlzLmNvbG9yT2Zmc2V0O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBjb2xvck9mZnNldCwgbCA9IHVpbnRWZXJ0cy5sZW5ndGg7IGkgPCBsOyBpICs9IGZsb2F0c1BlclZlcnQpIHtcclxuICAgICAgICAgICAgdWludFZlcnRzW2ldID0gY29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVdvcmxkVmVydHMoY29tcCkge1xyXG4gICAgICAgIGlmIChDQ19OQVRJVkVSRU5ERVJFUikge1xyXG4gICAgICAgICAgICAvLyDljp/nlJ/lubPlj7Dlhbzlrrnku6PnoIEg5aSN5Yi25LqOanNiLWVuZ2luZS5qc+S4reeahGNjLkFzc2VtYmxlcjJELnByb3RvdHlwZS51cGRhdGVXb3JsZFZlcnRzXHJcbiAgICAgICAgICAgIHZhciBsb2NhbCA9IHRoaXMuX2xvY2FsO1xyXG4gICAgICAgICAgICB2YXIgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuICAgICAgICAgICAgdmFyIHZsID0gbG9jYWxbMF0sXHJcbiAgICAgICAgICAgICAgICB2ciA9IGxvY2FsWzJdLFxyXG4gICAgICAgICAgICAgICAgdmIgPSBsb2NhbFsxXSxcclxuICAgICAgICAgICAgICAgIHZ0ID0gbG9jYWxbM107XHJcbiAgICAgICAgICAgIHZhciBmbG9hdHNQZXJWZXJ0ID0gdGhpcy5mbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICB2YXIgdmVydGV4T2Zmc2V0ID0gMDsgLy8gbGVmdCBib3R0b21cclxuXHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bDtcclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YjtcclxuICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7IC8vIHJpZ2h0IGJvdHRvbVxyXG5cclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZyO1xyXG4gICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZiO1xyXG4gICAgICAgICAgICB2ZXJ0ZXhPZmZzZXQgKz0gZmxvYXRzUGVyVmVydDsgLy8gbGVmdCB0b3BcclxuXHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bDtcclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2dDtcclxuICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7IC8vIHJpZ2h0IHRvcFxyXG5cclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZyO1xyXG4gICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZ0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBsb2NhbCA9IHRoaXMuX2xvY2FsO1xyXG4gICAgICAgICAgICBsZXQgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuXHJcbiAgICAgICAgICAgIGxldCBtYXRyaXggPSBjb21wLm5vZGUuX3dvcmxkTWF0cml4O1xyXG4gICAgICAgICAgICBsZXQgbWF0cml4bSA9IG1hdHJpeC5tLFxyXG4gICAgICAgICAgICAgICAgYSA9IG1hdHJpeG1bMF0sIGIgPSBtYXRyaXhtWzFdLCBjID0gbWF0cml4bVs0XSwgZCA9IG1hdHJpeG1bNV0sXHJcbiAgICAgICAgICAgICAgICB0eCA9IG1hdHJpeG1bMTJdLCB0eSA9IG1hdHJpeG1bMTNdO1xyXG5cclxuICAgICAgICAgICAgbGV0IHZsID0gbG9jYWxbMF0sIHZyID0gbG9jYWxbMl0sXHJcbiAgICAgICAgICAgICAgICB2YiA9IGxvY2FsWzFdLCB2dCA9IGxvY2FsWzNdO1xyXG5cclxuICAgICAgICAgICAgbGV0IGZsb2F0c1BlclZlcnQgPSB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgIGxldCB2ZXJ0ZXhPZmZzZXQgPSAwO1xyXG4gICAgICAgICAgICBsZXQganVzdFRyYW5zbGF0ZSA9IGEgPT09IDEgJiYgYiA9PT0gMCAmJiBjID09PSAwICYmIGQgPT09IDE7XHJcblxyXG4gICAgICAgICAgICBpZiAoanVzdFRyYW5zbGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gbGVmdCBib3R0b21cclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bCArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyByaWdodCBib3R0b21cclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2ciArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBsZWZ0IHRvcFxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZsICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZ0ICsgdHk7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0ZXhPZmZzZXQgKz0gZmxvYXRzUGVyVmVydDtcclxuICAgICAgICAgICAgICAgIC8vIHJpZ2h0IHRvcFxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZyICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZ0ICsgdHk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgYWwgPSBhICogdmwsIGFyID0gYSAqIHZyLFxyXG4gICAgICAgICAgICAgICAgICAgIGJsID0gYiAqIHZsLCBiciA9IGIgKiB2cixcclxuICAgICAgICAgICAgICAgICAgICBjYiA9IGMgKiB2YiwgY3QgPSBjICogdnQsXHJcbiAgICAgICAgICAgICAgICAgICAgZGIgPSBkICogdmIsIGR0ID0gZCAqIHZ0O1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIGxlZnQgYm90dG9tXHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gYWwgKyBjYiArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSBibCArIGRiICsgdHk7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0ZXhPZmZzZXQgKz0gZmxvYXRzUGVyVmVydDtcclxuICAgICAgICAgICAgICAgIC8vIHJpZ2h0IGJvdHRvbVxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IGFyICsgY2IgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gYnIgKyBkYiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBsZWZ0IHRvcFxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IGFsICsgY3QgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gYmwgKyBkdCArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyByaWdodCB0b3BcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSBhciArIGN0ICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IGJyICsgZHQgKyB0eTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmaWxsQnVmZmVycyhjb21wLCByZW5kZXJlcikge1xyXG4gICAgICAgIGlmIChyZW5kZXJlci53b3JsZE1hdERpcnR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlV29ybGRWZXJ0cyhjb21wKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCByZW5kZXJEYXRhID0gdGhpcy5fcmVuZGVyRGF0YTtcclxuICAgICAgICBsZXQgdkRhdGEgPSByZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuICAgICAgICBsZXQgaURhdGEgPSByZW5kZXJEYXRhLmlEYXRhc1swXTtcclxuXHJcbiAgICAgICAgbGV0IGJ1ZmZlciA9IHRoaXMuZ2V0QnVmZmVyKHJlbmRlcmVyKTtcclxuICAgICAgICBsZXQgb2Zmc2V0SW5mbyA9IGJ1ZmZlci5yZXF1ZXN0KHRoaXMudmVydGljZXNDb3VudCwgdGhpcy5pbmRpY2VzQ291bnQpO1xyXG5cclxuICAgICAgICAvLyBidWZmZXIgZGF0YSBtYXkgYmUgcmVhbGxvYywgbmVlZCBnZXQgcmVmZXJlbmNlIGFmdGVyIHJlcXVlc3QuXHJcblxyXG4gICAgICAgIC8vIGZpbGwgdmVydGljZXNcclxuICAgICAgICBsZXQgdmVydGV4T2Zmc2V0ID0gb2Zmc2V0SW5mby5ieXRlT2Zmc2V0ID4+IDIsXHJcbiAgICAgICAgICAgIHZidWYgPSBidWZmZXIuX3ZEYXRhO1xyXG5cclxuICAgICAgICBpZiAodkRhdGEubGVuZ3RoICsgdmVydGV4T2Zmc2V0ID4gdmJ1Zi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdmJ1Zi5zZXQodkRhdGEuc3ViYXJyYXkoMCwgdmJ1Zi5sZW5ndGggLSB2ZXJ0ZXhPZmZzZXQpLCB2ZXJ0ZXhPZmZzZXQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZidWYuc2V0KHZEYXRhLCB2ZXJ0ZXhPZmZzZXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gZmlsbCBpbmRpY2VzXHJcbiAgICAgICAgbGV0IGlidWYgPSBidWZmZXIuX2lEYXRhLFxyXG4gICAgICAgICAgICBpbmRpY2VPZmZzZXQgPSBvZmZzZXRJbmZvLmluZGljZU9mZnNldCxcclxuICAgICAgICAgICAgdmVydGV4SWQgPSBvZmZzZXRJbmZvLnZlcnRleE9mZnNldDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbCA9IGlEYXRhLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBpYnVmW2luZGljZU9mZnNldCsrXSA9IHZlcnRleElkICsgaURhdGFbaV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHBhY2tUb0R5bmFtaWNBdGxhcyhjb21wLCBmcmFtZSkge1xyXG4gICAgICAgIGlmIChDQ19URVNUKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICghZnJhbWUuX29yaWdpbmFsICYmIGNjLmR5bmFtaWNBdGxhc01hbmFnZXIgJiYgZnJhbWUuX3RleHR1cmUucGFja2FibGUpIHtcclxuICAgICAgICAgICAgbGV0IHBhY2tlZEZyYW1lID0gY2MuZHluYW1pY0F0bGFzTWFuYWdlci5pbnNlcnRTcHJpdGVGcmFtZShmcmFtZSk7XHJcbiAgICAgICAgICAgIGlmIChwYWNrZWRGcmFtZSkge1xyXG4gICAgICAgICAgICAgICAgZnJhbWUuX3NldER5bmFtaWNBdGxhc0ZyYW1lKHBhY2tlZEZyYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbWF0ZXJpYWwgPSBjb21wLl9tYXRlcmlhbHNbMF07XHJcbiAgICAgICAgaWYgKCFtYXRlcmlhbCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAobWF0ZXJpYWwuZ2V0UHJvcGVydHkoJ3RleHR1cmUnKSAhPT0gZnJhbWUuX3RleHR1cmUpIHtcclxuICAgICAgICAgICAgLy8gdGV4dHVyZSB3YXMgcGFja2VkIHRvIGR5bmFtaWMgYXRsYXMsIHNob3VsZCB1cGRhdGUgdXZzXHJcbiAgICAgICAgICAgIGNvbXAuX3ZlcnRzRGlydHkgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb21wLl91cGRhdGVNYXRlcmlhbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ== //------QC-SOURCE-SPLIT------ (function() { @@ -17766,211 +17978,6 @@ cc._RF.pop(); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vU3ByaXRlLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJTcHJpdGUiLCJzZXRUZXh0dXJlSWR4IiwiaWR4IiwiX3RleHR1cmVJZHgiLCJzZXRWZXJ0c0RpcnR5IiwiX2dldERlZmF1bHRNYXRlcmlhbCIsIl9nZXRUaWxlZE1hcCIsImdldE9iamVjdE1hdGVyaWFsIiwiX3VwZGF0ZU1hdGVyaWFsIiwibWF0ZXJpYWwiLCJnZXRNYXRlcmlhbCIsImdldERlZmluZSIsInVuZGVmaW5lZCIsImRlZmluZSIsInVwZGF0ZUhhc2giLCJub0NvbG9yIiwiaXNOb0NvbG9yIiwiQmxlbmRGdW5jIiwicHJvdG90eXBlIiwiY2FsbCIsIl9yZXNldEFzc2VtYmxlciIsImFzc2VtYmxlciIsIl9hc3NlbWJsZXIiLCJUbW9Bc3NlbWJsZXIiLCJpbml0IiwiX3VwZGF0ZUNvbG9yIiwibm9kZSIsIl90aWxlZE1hcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7ZUFFZUEsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDcEIsYUFBU0QsRUFBRSxDQUFDRSxNQURROztBQUdwQjtBQUNKO0FBQ0E7QUFDSUMsRUFBQUEsYUFOb0IseUJBTU5DLEdBTk0sRUFNRDtBQUNmLFNBQUtDLFdBQUwsR0FBbUJELEdBQW5CO0FBQ0EsU0FBS0UsYUFBTDtBQUNILEdBVG1CO0FBV3BCQyxFQUFBQSxtQkFYb0IsaUNBV0U7QUFDbEI7QUFDQSxXQUFPLEtBQUtDLFlBQUwsR0FBb0JDLGlCQUFwQixFQUFQO0FBQ0gsR0FkbUI7QUFnQnBCQyxFQUFBQSxlQWhCb0IsNkJBZ0JGO0FBQ2Q7QUFDQSxRQUFJQyxRQUFRLEdBQUcsS0FBS0MsV0FBTCxDQUFpQixDQUFqQixDQUFmOztBQUNBLFFBQUlELFFBQUosRUFBYztBQUNWLFVBQUlBLFFBQVEsQ0FBQ0UsU0FBVCxDQUFtQixhQUFuQixNQUFzQ0MsU0FBMUMsRUFBcUQ7QUFDakRILFFBQUFBLFFBQVEsQ0FBQ0ksTUFBVCxDQUFnQixhQUFoQixFQUErQixJQUEvQjtBQUNILE9BSFMsQ0FJVjs7O0FBQ0FKLE1BQUFBLFFBQVEsQ0FBQ0ssVUFBVCxDQUFvQixNQUFwQixFQUxVLENBT1Y7O0FBQ0EsVUFBSUMsT0FBTyxHQUFHLEtBQUtDLFNBQUwsRUFBZDtBQUNBUCxNQUFBQSxRQUFRLENBQUNJLE1BQVQsQ0FBZ0IsWUFBaEIsRUFBOEIsQ0FBQ0UsT0FBL0I7QUFDSDs7QUFFRGpCLElBQUFBLEVBQUUsQ0FBQ21CLFNBQUgsQ0FBYUMsU0FBYixDQUF1QlYsZUFBdkIsQ0FBdUNXLElBQXZDLENBQTRDLElBQTVDO0FBQ0gsR0FoQ21CO0FBa0NwQkMsRUFBQUEsZUFsQ29CLDZCQWtDRjtBQUNkO0FBQ0EsUUFBSUMsU0FBUyxHQUFHLEtBQUtDLFVBQUwsR0FBa0IsSUFBSUMsMEJBQUosRUFBbEM7QUFDQUYsSUFBQUEsU0FBUyxDQUFDRyxJQUFWLENBQWUsSUFBZjs7QUFFQSxTQUFLQyxZQUFMOztBQUNBLFNBQUtyQixhQUFMO0FBQ0gsR0F6Q21CO0FBMkNwQkUsRUFBQUEsWUEzQ29CLDBCQTJDTDtBQUNYLFdBQU8sS0FBS29CLElBQUwsQ0FBVUMsU0FBakI7QUFDSCxHQTdDbUI7QUErQ3BCWCxFQUFBQSxTQS9Db0IsdUJBK0NSO0FBQ1IsV0FBTyxLQUFLVixZQUFMLEdBQW9CVSxTQUFwQixFQUFQO0FBQ0g7QUFqRG1CLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRtb0Fzc2VtYmxlciB9IGZyb20gXCIuL1Rtb0Fzc2VtYmxlclwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuU3ByaXRlLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6K6+572uVGV4dHVyZUluZGV4XHJcbiAgICAgKi9cclxuICAgIHNldFRleHR1cmVJZHgoaWR4KSB7XHJcbiAgICAgICAgdGhpcy5fdGV4dHVyZUlkeCA9IGlkeFxyXG4gICAgICAgIHRoaXMuc2V0VmVydHNEaXJ0eSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfZ2V0RGVmYXVsdE1hdGVyaWFsKCkge1xyXG4gICAgICAgIC8vIOS7jlRpbGVkTWFw5Y+W5b6X6buY6K6k55qE5p2Q6LSoXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFRpbGVkTWFwKCkuZ2V0T2JqZWN0TWF0ZXJpYWwoKTtcclxuICAgIH0sXHJcblxyXG4gICAgX3VwZGF0ZU1hdGVyaWFsKCkge1xyXG4gICAgICAgIC8vIG1ha2Ugc3VyZSBtYXRlcmlhbCBpcyBiZWxvbmcgdG8gc2VsZi5cclxuICAgICAgICBsZXQgbWF0ZXJpYWwgPSB0aGlzLmdldE1hdGVyaWFsKDApO1xyXG4gICAgICAgIGlmIChtYXRlcmlhbCkge1xyXG4gICAgICAgICAgICBpZiAobWF0ZXJpYWwuZ2V0RGVmaW5lKCdVU0VfVEVYVFVSRScpICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmRlZmluZSgnVVNFX1RFWFRVUkUnLCB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDmiYvliqjorr7nva7lk4jluIzlgLzvvIzpgb/lhY3ml6Dms5XlkIjmiblcclxuICAgICAgICAgICAgbWF0ZXJpYWwudXBkYXRlSGFzaCg5OTk5OTkpO1xyXG5cclxuICAgICAgICAgICAgLy8g5aKe5YqgV0lUSF9DT0xPUuWuj+WumuS5iVxyXG4gICAgICAgICAgICBsZXQgbm9Db2xvciA9IHRoaXMuaXNOb0NvbG9yKCk7XHJcbiAgICAgICAgICAgIG1hdGVyaWFsLmRlZmluZSgnV0lUSF9DT0xPUicsICFub0NvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNjLkJsZW5kRnVuYy5wcm90b3R5cGUuX3VwZGF0ZU1hdGVyaWFsLmNhbGwodGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIF9yZXNldEFzc2VtYmxlcigpIHtcclxuICAgICAgICAvLyDkv67mlLnpu5jorqRBc3NlbWJsZXJcclxuICAgICAgICBsZXQgYXNzZW1ibGVyID0gdGhpcy5fYXNzZW1ibGVyID0gbmV3IFRtb0Fzc2VtYmxlcigpO1xyXG4gICAgICAgIGFzc2VtYmxlci5pbml0KHRoaXMpO1xyXG5cclxuICAgICAgICB0aGlzLl91cGRhdGVDb2xvcigpO1xyXG4gICAgICAgIHRoaXMuc2V0VmVydHNEaXJ0eSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfZ2V0VGlsZWRNYXAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZS5fdGlsZWRNYXA7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzTm9Db2xvcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0VGlsZWRNYXAoKS5pc05vQ29sb3IoKTtcclxuICAgIH1cclxufSk7XHJcbiJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/tiledmap-optimize-resource/Script/TmoTiledLayer.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'd60cfrGbXBLBbplLoT7TBn7', 'TmoTiledLayer'); -// Script/TmoTiledLayer.js - -"use strict"; - -exports.__esModule = true; -exports["default"] = void 0; - -// Learn cc.Class: -// - https://docs.cocos.com/creator/manual/en/scripting/class.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var _mat4_temp = cc.mat4(); - -var _vec2_temp = cc.v2(); - -var _vec2_temp2 = cc.v2(); - -var _default = cc.Class({ - "extends": cc.TiledLayer, - // 此处修改 增加firstTmxLayer参数 - _init: function _init(layerInfo, mapInfo, tilesets, textures, texGrids, tiledMap, firstTmxLayer) { - // 修改结束 - this._cullingDirty = true; - this._layerInfo = layerInfo; - this._mapInfo = mapInfo; // 此处修改 保存firstTmxLayer参数 - - this._firstTmxLayer = firstTmxLayer; - this._tiledMap = tiledMap; // 修改结束 - - var size = layerInfo._layerSize; // layerInfo - - this._layerName = layerInfo.name; - this._tiles = layerInfo._tiles; - this._properties = layerInfo.properties; - this._layerSize = size; - this._minGID = layerInfo._minGID; - this._maxGID = layerInfo._maxGID; - this._opacity = layerInfo._opacity; - this._renderOrder = mapInfo.renderOrder; - this._staggerAxis = mapInfo.getStaggerAxis(); - this._staggerIndex = mapInfo.getStaggerIndex(); - this._hexSideLength = mapInfo.getHexSideLength(); - this._animations = mapInfo.getTileAnimations(); // tilesets - - this._tilesets = tilesets; // textures - - this._textures = textures; // grid texture - - this._texGrids = texGrids; // mapInfo - - this._layerOrientation = mapInfo.orientation; - this._mapTileSize = mapInfo.getTileSize(); - var maptw = this._mapTileSize.width; - var mapth = this._mapTileSize.height; - var layerW = this._layerSize.width; - var layerH = this._layerSize.height; - - if (this._layerOrientation === cc.TiledMap.Orientation.HEX) { - // handle hex map - var TiledMap = cc.TiledMap; - var StaggerAxis = TiledMap.StaggerAxis; - var StaggerIndex = TiledMap.StaggerIndex; - var width = 0, - height = 0; - this._odd_even = this._staggerIndex === StaggerIndex.STAGGERINDEX_ODD ? 1 : -1; - - if (this._staggerAxis === StaggerAxis.STAGGERAXIS_X) { - this._diffX1 = (maptw - this._hexSideLength) / 2; - this._diffY1 = 0; - height = mapth * (layerH + 0.5); - width = (maptw + this._hexSideLength) * Math.floor(layerW / 2) + maptw * (layerW % 2); - } else { - this._diffX1 = 0; - this._diffY1 = (mapth - this._hexSideLength) / 2; - width = maptw * (layerW + 0.5); - height = (mapth + this._hexSideLength) * Math.floor(layerH / 2) + mapth * (layerH % 2); - } - - this.node.setContentSize(width, height); - } else if (this._layerOrientation === cc.TiledMap.Orientation.ISO) { - var wh = layerW + layerH; - this.node.setContentSize(maptw * 0.5 * wh, mapth * 0.5 * wh); - } else { - this.node.setContentSize(layerW * maptw, layerH * mapth); - } // offset (after layer orientation is set); - - - this._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y); - this._useAutomaticVertexZ = false; - this._vertexZvalue = 0; - - this._syncAnchorPoint(); - - this._prepareToRender(); - }, - _updateCulling: function _updateCulling() { - if (CC_EDITOR) { - this.enableCulling(false); - } else if (this._enableCulling) { - // 此处修改 若不为首个layer 直接复用firstLayer的结果 - // this._firstTmxLayer不为空时 表示当前layer不是首个layer - var firstTmxLayer = this._firstTmxLayer; - - if (!!firstTmxLayer) { - this._cullingRect = firstTmxLayer._cullingRect; - this._cullingDirty = firstTmxLayer._cacheCullingDirty; - return; - } // 修改结束 - - - this.node._updateWorldMatrix(); - - cc.Mat4.invert(_mat4_temp, this.node._worldMatrix); - var rect = cc.visibleRect; - var camera = cc.Camera.findCamera(this.node); - - if (camera) { - _vec2_temp.x = 0; - _vec2_temp.y = 0; - _vec2_temp2.x = _vec2_temp.x + rect.width; - _vec2_temp2.y = _vec2_temp.y + rect.height; - camera.getScreenToWorldPoint(_vec2_temp, _vec2_temp); - camera.getScreenToWorldPoint(_vec2_temp2, _vec2_temp2); - cc.Vec2.transformMat4(_vec2_temp, _vec2_temp, _mat4_temp); - cc.Vec2.transformMat4(_vec2_temp2, _vec2_temp2, _mat4_temp); - - this._updateViewPort(_vec2_temp.x, _vec2_temp.y, _vec2_temp2.x - _vec2_temp.x, _vec2_temp2.y - _vec2_temp.y); // 此处修改 若为首个layer 缓存_cullingDirty。 - // _cullingDirty会在填充渲染数据后被改为false 所以需要缓存这里的结果 - - - if (!firstTmxLayer) { - this._cacheCullingDirty = this._cullingDirty; - } // 修改结束 - - } - } - }, - _traverseAllGrid: function _traverseAllGrid() { - var tiles = this._tiles; - var texGrids = this._texGrids; - var tilesetIndexArr = this._tilesetIndexArr; - var tilesetIndexToArrIndex = this._tilesetIndexToArrIndex = {}; - var TiledMap = cc.TiledMap; - var TileFlag = TiledMap.TileFlag; - var FLIPPED_MASK = TileFlag.FLIPPED_MASK; - - var singleTexture = this._tiledMap.isSingleTexture(); - - tilesetIndexArr.length = 0; - - for (var i = 0; i < tiles.length; i++) { - var gid = tiles[i]; - if (gid === 0) continue; - gid = (gid & FLIPPED_MASK) >>> 0; - var grid = texGrids[gid]; - - if (!grid) { - cc.error("CCTiledLayer:_traverseAllGrid grid is null, gid is:", gid); - continue; - } - - var tilesetIdx = grid.texId; - if (tilesetIndexToArrIndex[tilesetIdx] !== undefined) continue; - tilesetIndexToArrIndex[tilesetIdx] = tilesetIndexArr.length; - tilesetIndexArr.push(tilesetIdx); // 此处修改 当只有一个图集时 可以直接停止遍历 - - if (singleTexture) { - break; - } // 修改结束 - - } - } -}); - -exports["default"] = _default; -module.exports = exports["default"]; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vVGlsZWRMYXllci5qcyJdLCJuYW1lcyI6WyJfbWF0NF90ZW1wIiwiY2MiLCJtYXQ0IiwiX3ZlYzJfdGVtcCIsInYyIiwiX3ZlYzJfdGVtcDIiLCJDbGFzcyIsIlRpbGVkTGF5ZXIiLCJfaW5pdCIsImxheWVySW5mbyIsIm1hcEluZm8iLCJ0aWxlc2V0cyIsInRleHR1cmVzIiwidGV4R3JpZHMiLCJ0aWxlZE1hcCIsImZpcnN0VG14TGF5ZXIiLCJfY3VsbGluZ0RpcnR5IiwiX2xheWVySW5mbyIsIl9tYXBJbmZvIiwiX2ZpcnN0VG14TGF5ZXIiLCJfdGlsZWRNYXAiLCJzaXplIiwiX2xheWVyU2l6ZSIsIl9sYXllck5hbWUiLCJuYW1lIiwiX3RpbGVzIiwiX3Byb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwiX21pbkdJRCIsIl9tYXhHSUQiLCJfb3BhY2l0eSIsIl9yZW5kZXJPcmRlciIsInJlbmRlck9yZGVyIiwiX3N0YWdnZXJBeGlzIiwiZ2V0U3RhZ2dlckF4aXMiLCJfc3RhZ2dlckluZGV4IiwiZ2V0U3RhZ2dlckluZGV4IiwiX2hleFNpZGVMZW5ndGgiLCJnZXRIZXhTaWRlTGVuZ3RoIiwiX2FuaW1hdGlvbnMiLCJnZXRUaWxlQW5pbWF0aW9ucyIsIl90aWxlc2V0cyIsIl90ZXh0dXJlcyIsIl90ZXhHcmlkcyIsIl9sYXllck9yaWVudGF0aW9uIiwib3JpZW50YXRpb24iLCJfbWFwVGlsZVNpemUiLCJnZXRUaWxlU2l6ZSIsIm1hcHR3Iiwid2lkdGgiLCJtYXB0aCIsImhlaWdodCIsImxheWVyVyIsImxheWVySCIsIlRpbGVkTWFwIiwiT3JpZW50YXRpb24iLCJIRVgiLCJTdGFnZ2VyQXhpcyIsIlN0YWdnZXJJbmRleCIsIl9vZGRfZXZlbiIsIlNUQUdHRVJJTkRFWF9PREQiLCJTVEFHR0VSQVhJU19YIiwiX2RpZmZYMSIsIl9kaWZmWTEiLCJNYXRoIiwiZmxvb3IiLCJub2RlIiwic2V0Q29udGVudFNpemUiLCJJU08iLCJ3aCIsIl9vZmZzZXQiLCJvZmZzZXQiLCJ4IiwieSIsIl91c2VBdXRvbWF0aWNWZXJ0ZXhaIiwiX3ZlcnRleFp2YWx1ZSIsIl9zeW5jQW5jaG9yUG9pbnQiLCJfcHJlcGFyZVRvUmVuZGVyIiwiX3VwZGF0ZUN1bGxpbmciLCJDQ19FRElUT1IiLCJlbmFibGVDdWxsaW5nIiwiX2VuYWJsZUN1bGxpbmciLCJfY3VsbGluZ1JlY3QiLCJfY2FjaGVDdWxsaW5nRGlydHkiLCJfdXBkYXRlV29ybGRNYXRyaXgiLCJNYXQ0IiwiaW52ZXJ0IiwiX3dvcmxkTWF0cml4IiwicmVjdCIsInZpc2libGVSZWN0IiwiY2FtZXJhIiwiQ2FtZXJhIiwiZmluZENhbWVyYSIsImdldFNjcmVlblRvV29ybGRQb2ludCIsIlZlYzIiLCJ0cmFuc2Zvcm1NYXQ0IiwiX3VwZGF0ZVZpZXdQb3J0IiwiX3RyYXZlcnNlQWxsR3JpZCIsInRpbGVzIiwidGlsZXNldEluZGV4QXJyIiwiX3RpbGVzZXRJbmRleEFyciIsInRpbGVzZXRJbmRleFRvQXJySW5kZXgiLCJfdGlsZXNldEluZGV4VG9BcnJJbmRleCIsIlRpbGVGbGFnIiwiRkxJUFBFRF9NQVNLIiwic2luZ2xlVGV4dHVyZSIsImlzU2luZ2xlVGV4dHVyZSIsImxlbmd0aCIsImkiLCJnaWQiLCJncmlkIiwiZXJyb3IiLCJ0aWxlc2V0SWR4IiwidGV4SWQiLCJ1bmRlZmluZWQiLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLFVBQVUsR0FBR0MsRUFBRSxDQUFDQyxJQUFILEVBQWpCOztBQUNBLElBQUlDLFVBQVUsR0FBR0YsRUFBRSxDQUFDRyxFQUFILEVBQWpCOztBQUNBLElBQUlDLFdBQVcsR0FBR0osRUFBRSxDQUFDRyxFQUFILEVBQWxCOztlQUVlSCxFQUFFLENBQUNLLEtBQUgsQ0FBUztBQUNwQixhQUFTTCxFQUFFLENBQUNNLFVBRFE7QUFHcEI7QUFDQUMsRUFBQUEsS0FKb0IsaUJBSWRDLFNBSmMsRUFJSEMsT0FKRyxFQUlNQyxRQUpOLEVBSWdCQyxRQUpoQixFQUkwQkMsUUFKMUIsRUFJb0NDLFFBSnBDLEVBSThDQyxhQUo5QyxFQUk2RDtBQUM3RTtBQUNBLFNBQUtDLGFBQUwsR0FBcUIsSUFBckI7QUFDQSxTQUFLQyxVQUFMLEdBQWtCUixTQUFsQjtBQUNBLFNBQUtTLFFBQUwsR0FBZ0JSLE9BQWhCLENBSjZFLENBSzdFOztBQUNBLFNBQUtTLGNBQUwsR0FBc0JKLGFBQXRCO0FBQ0EsU0FBS0ssU0FBTCxHQUFpQk4sUUFBakIsQ0FQNkUsQ0FRN0U7O0FBRUEsUUFBSU8sSUFBSSxHQUFHWixTQUFTLENBQUNhLFVBQXJCLENBVjZFLENBWTdFOztBQUNBLFNBQUtDLFVBQUwsR0FBa0JkLFNBQVMsQ0FBQ2UsSUFBNUI7QUFDQSxTQUFLQyxNQUFMLEdBQWNoQixTQUFTLENBQUNnQixNQUF4QjtBQUNBLFNBQUtDLFdBQUwsR0FBbUJqQixTQUFTLENBQUNrQixVQUE3QjtBQUNBLFNBQUtMLFVBQUwsR0FBa0JELElBQWxCO0FBQ0EsU0FBS08sT0FBTCxHQUFlbkIsU0FBUyxDQUFDbUIsT0FBekI7QUFDQSxTQUFLQyxPQUFMLEdBQWVwQixTQUFTLENBQUNvQixPQUF6QjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0JyQixTQUFTLENBQUNxQixRQUExQjtBQUNBLFNBQUtDLFlBQUwsR0FBb0JyQixPQUFPLENBQUNzQixXQUE1QjtBQUNBLFNBQUtDLFlBQUwsR0FBb0J2QixPQUFPLENBQUN3QixjQUFSLEVBQXBCO0FBQ0EsU0FBS0MsYUFBTCxHQUFxQnpCLE9BQU8sQ0FBQzBCLGVBQVIsRUFBckI7QUFDQSxTQUFLQyxjQUFMLEdBQXNCM0IsT0FBTyxDQUFDNEIsZ0JBQVIsRUFBdEI7QUFDQSxTQUFLQyxXQUFMLEdBQW1CN0IsT0FBTyxDQUFDOEIsaUJBQVIsRUFBbkIsQ0F4QjZFLENBMEI3RTs7QUFDQSxTQUFLQyxTQUFMLEdBQWlCOUIsUUFBakIsQ0EzQjZFLENBNEI3RTs7QUFDQSxTQUFLK0IsU0FBTCxHQUFpQjlCLFFBQWpCLENBN0I2RSxDQThCN0U7O0FBQ0EsU0FBSytCLFNBQUwsR0FBaUI5QixRQUFqQixDQS9CNkUsQ0FpQzdFOztBQUNBLFNBQUsrQixpQkFBTCxHQUF5QmxDLE9BQU8sQ0FBQ21DLFdBQWpDO0FBQ0EsU0FBS0MsWUFBTCxHQUFvQnBDLE9BQU8sQ0FBQ3FDLFdBQVIsRUFBcEI7QUFFQSxRQUFJQyxLQUFLLEdBQUcsS0FBS0YsWUFBTCxDQUFrQkcsS0FBOUI7QUFDQSxRQUFJQyxLQUFLLEdBQUcsS0FBS0osWUFBTCxDQUFrQkssTUFBOUI7QUFDQSxRQUFJQyxNQUFNLEdBQUcsS0FBSzlCLFVBQUwsQ0FBZ0IyQixLQUE3QjtBQUNBLFFBQUlJLE1BQU0sR0FBRyxLQUFLL0IsVUFBTCxDQUFnQjZCLE1BQTdCOztBQUVBLFFBQUksS0FBS1AsaUJBQUwsS0FBMkIzQyxFQUFFLENBQUNxRCxRQUFILENBQVlDLFdBQVosQ0FBd0JDLEdBQXZELEVBQTREO0FBQ3hEO0FBQ0EsVUFBTUYsUUFBUSxHQUFHckQsRUFBRSxDQUFDcUQsUUFBcEI7QUFDQSxVQUFNRyxXQUFXLEdBQUdILFFBQVEsQ0FBQ0csV0FBN0I7QUFDQSxVQUFNQyxZQUFZLEdBQUdKLFFBQVEsQ0FBQ0ksWUFBOUI7QUFDQSxVQUFJVCxLQUFLLEdBQUcsQ0FBWjtBQUFBLFVBQWVFLE1BQU0sR0FBRyxDQUF4QjtBQUVBLFdBQUtRLFNBQUwsR0FBa0IsS0FBS3hCLGFBQUwsS0FBdUJ1QixZQUFZLENBQUNFLGdCQUFyQyxHQUF5RCxDQUF6RCxHQUE2RCxDQUFDLENBQS9FOztBQUNBLFVBQUksS0FBSzNCLFlBQUwsS0FBc0J3QixXQUFXLENBQUNJLGFBQXRDLEVBQXFEO0FBQ2pELGFBQUtDLE9BQUwsR0FBZSxDQUFDZCxLQUFLLEdBQUcsS0FBS1gsY0FBZCxJQUFnQyxDQUEvQztBQUNBLGFBQUswQixPQUFMLEdBQWUsQ0FBZjtBQUNBWixRQUFBQSxNQUFNLEdBQUdELEtBQUssSUFBSUcsTUFBTSxHQUFHLEdBQWIsQ0FBZDtBQUNBSixRQUFBQSxLQUFLLEdBQUcsQ0FBQ0QsS0FBSyxHQUFHLEtBQUtYLGNBQWQsSUFBZ0MyQixJQUFJLENBQUNDLEtBQUwsQ0FBV2IsTUFBTSxHQUFHLENBQXBCLENBQWhDLEdBQXlESixLQUFLLElBQUlJLE1BQU0sR0FBRyxDQUFiLENBQXRFO0FBQ0gsT0FMRCxNQUtPO0FBQ0gsYUFBS1UsT0FBTCxHQUFlLENBQWY7QUFDQSxhQUFLQyxPQUFMLEdBQWUsQ0FBQ2IsS0FBSyxHQUFHLEtBQUtiLGNBQWQsSUFBZ0MsQ0FBL0M7QUFDQVksUUFBQUEsS0FBSyxHQUFHRCxLQUFLLElBQUlJLE1BQU0sR0FBRyxHQUFiLENBQWI7QUFDQUQsUUFBQUEsTUFBTSxHQUFHLENBQUNELEtBQUssR0FBRyxLQUFLYixjQUFkLElBQWdDMkIsSUFBSSxDQUFDQyxLQUFMLENBQVdaLE1BQU0sR0FBRyxDQUFwQixDQUFoQyxHQUF5REgsS0FBSyxJQUFJRyxNQUFNLEdBQUcsQ0FBYixDQUF2RTtBQUNIOztBQUNELFdBQUthLElBQUwsQ0FBVUMsY0FBVixDQUF5QmxCLEtBQXpCLEVBQWdDRSxNQUFoQztBQUNILEtBcEJELE1Bb0JPLElBQUksS0FBS1AsaUJBQUwsS0FBMkIzQyxFQUFFLENBQUNxRCxRQUFILENBQVlDLFdBQVosQ0FBd0JhLEdBQXZELEVBQTREO0FBQy9ELFVBQUlDLEVBQUUsR0FBR2pCLE1BQU0sR0FBR0MsTUFBbEI7QUFDQSxXQUFLYSxJQUFMLENBQVVDLGNBQVYsQ0FBeUJuQixLQUFLLEdBQUcsR0FBUixHQUFjcUIsRUFBdkMsRUFBMkNuQixLQUFLLEdBQUcsR0FBUixHQUFjbUIsRUFBekQ7QUFDSCxLQUhNLE1BR0E7QUFDSCxXQUFLSCxJQUFMLENBQVVDLGNBQVYsQ0FBeUJmLE1BQU0sR0FBR0osS0FBbEMsRUFBeUNLLE1BQU0sR0FBR0gsS0FBbEQ7QUFDSCxLQW5FNEUsQ0FxRTdFOzs7QUFDQSxTQUFLb0IsT0FBTCxHQUFlckUsRUFBRSxDQUFDRyxFQUFILENBQU1LLFNBQVMsQ0FBQzhELE1BQVYsQ0FBaUJDLENBQXZCLEVBQTBCLENBQUMvRCxTQUFTLENBQUM4RCxNQUFWLENBQWlCRSxDQUE1QyxDQUFmO0FBQ0EsU0FBS0Msb0JBQUwsR0FBNEIsS0FBNUI7QUFDQSxTQUFLQyxhQUFMLEdBQXFCLENBQXJCOztBQUNBLFNBQUtDLGdCQUFMOztBQUNBLFNBQUtDLGdCQUFMO0FBQ0gsR0EvRW1CO0FBZ0ZwQkMsRUFBQUEsY0FoRm9CLDRCQWdGSDtBQUNiLFFBQUlDLFNBQUosRUFBZTtBQUNYLFdBQUtDLGFBQUwsQ0FBbUIsS0FBbkI7QUFDSCxLQUZELE1BRU8sSUFBSSxLQUFLQyxjQUFULEVBQXlCO0FBQzVCO0FBQ0E7QUFDQSxVQUFJbEUsYUFBYSxHQUFHLEtBQUtJLGNBQXpCOztBQUNBLFVBQUksQ0FBQyxDQUFDSixhQUFOLEVBQXFCO0FBQ2pCLGFBQUttRSxZQUFMLEdBQW9CbkUsYUFBYSxDQUFDbUUsWUFBbEM7QUFDQSxhQUFLbEUsYUFBTCxHQUFxQkQsYUFBYSxDQUFDb0Usa0JBQW5DO0FBQ0E7QUFDSCxPQVIyQixDQVM1Qjs7O0FBRUEsV0FBS2pCLElBQUwsQ0FBVWtCLGtCQUFWOztBQUNBbkYsTUFBQUEsRUFBRSxDQUFDb0YsSUFBSCxDQUFRQyxNQUFSLENBQWV0RixVQUFmLEVBQTJCLEtBQUtrRSxJQUFMLENBQVVxQixZQUFyQztBQUNBLFVBQUlDLElBQUksR0FBR3ZGLEVBQUUsQ0FBQ3dGLFdBQWQ7QUFDQSxVQUFJQyxNQUFNLEdBQUd6RixFQUFFLENBQUMwRixNQUFILENBQVVDLFVBQVYsQ0FBcUIsS0FBSzFCLElBQTFCLENBQWI7O0FBQ0EsVUFBSXdCLE1BQUosRUFBWTtBQUNSdkYsUUFBQUEsVUFBVSxDQUFDcUUsQ0FBWCxHQUFlLENBQWY7QUFDQXJFLFFBQUFBLFVBQVUsQ0FBQ3NFLENBQVgsR0FBZSxDQUFmO0FBQ0FwRSxRQUFBQSxXQUFXLENBQUNtRSxDQUFaLEdBQWdCckUsVUFBVSxDQUFDcUUsQ0FBWCxHQUFlZ0IsSUFBSSxDQUFDdkMsS0FBcEM7QUFDQTVDLFFBQUFBLFdBQVcsQ0FBQ29FLENBQVosR0FBZ0J0RSxVQUFVLENBQUNzRSxDQUFYLEdBQWVlLElBQUksQ0FBQ3JDLE1BQXBDO0FBQ0F1QyxRQUFBQSxNQUFNLENBQUNHLHFCQUFQLENBQTZCMUYsVUFBN0IsRUFBeUNBLFVBQXpDO0FBQ0F1RixRQUFBQSxNQUFNLENBQUNHLHFCQUFQLENBQTZCeEYsV0FBN0IsRUFBMENBLFdBQTFDO0FBQ0FKLFFBQUFBLEVBQUUsQ0FBQzZGLElBQUgsQ0FBUUMsYUFBUixDQUFzQjVGLFVBQXRCLEVBQWtDQSxVQUFsQyxFQUE4Q0gsVUFBOUM7QUFDQUMsUUFBQUEsRUFBRSxDQUFDNkYsSUFBSCxDQUFRQyxhQUFSLENBQXNCMUYsV0FBdEIsRUFBbUNBLFdBQW5DLEVBQWdETCxVQUFoRDs7QUFFQSxhQUFLZ0csZUFBTCxDQUFxQjdGLFVBQVUsQ0FBQ3FFLENBQWhDLEVBQW1DckUsVUFBVSxDQUFDc0UsQ0FBOUMsRUFBaURwRSxXQUFXLENBQUNtRSxDQUFaLEdBQWdCckUsVUFBVSxDQUFDcUUsQ0FBNUUsRUFBK0VuRSxXQUFXLENBQUNvRSxDQUFaLEdBQWdCdEUsVUFBVSxDQUFDc0UsQ0FBMUcsRUFWUSxDQVdSO0FBQ0E7OztBQUNBLFlBQUksQ0FBQzFELGFBQUwsRUFBb0I7QUFDaEIsZUFBS29FLGtCQUFMLEdBQTBCLEtBQUtuRSxhQUEvQjtBQUNILFNBZk8sQ0FnQlI7O0FBQ0g7QUFDSjtBQUNKLEdBckhtQjtBQXNIcEJpRixFQUFBQSxnQkF0SG9CLDhCQXNIQTtBQUNoQixRQUFJQyxLQUFLLEdBQUcsS0FBS3pFLE1BQWpCO0FBQ0EsUUFBSVosUUFBUSxHQUFHLEtBQUs4QixTQUFwQjtBQUNBLFFBQUl3RCxlQUFlLEdBQUcsS0FBS0MsZ0JBQTNCO0FBQ0EsUUFBSUMsc0JBQXNCLEdBQUcsS0FBS0MsdUJBQUwsR0FBK0IsRUFBNUQ7QUFFQSxRQUFNaEQsUUFBUSxHQUFHckQsRUFBRSxDQUFDcUQsUUFBcEI7QUFDQSxRQUFNaUQsUUFBUSxHQUFHakQsUUFBUSxDQUFDaUQsUUFBMUI7QUFDQSxRQUFNQyxZQUFZLEdBQUdELFFBQVEsQ0FBQ0MsWUFBOUI7O0FBRUEsUUFBSUMsYUFBYSxHQUFHLEtBQUtyRixTQUFMLENBQWVzRixlQUFmLEVBQXBCOztBQUVBUCxJQUFBQSxlQUFlLENBQUNRLE1BQWhCLEdBQXlCLENBQXpCOztBQUNBLFNBQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR1YsS0FBSyxDQUFDUyxNQUExQixFQUFrQ0MsQ0FBQyxFQUFuQyxFQUF1QztBQUNuQyxVQUFJQyxHQUFHLEdBQUdYLEtBQUssQ0FBQ1UsQ0FBRCxDQUFmO0FBQ0EsVUFBSUMsR0FBRyxLQUFLLENBQVosRUFBZTtBQUNmQSxNQUFBQSxHQUFHLEdBQUksQ0FBQ0EsR0FBRyxHQUFHTCxZQUFQLE1BQXlCLENBQWhDO0FBQ0EsVUFBSU0sSUFBSSxHQUFHakcsUUFBUSxDQUFDZ0csR0FBRCxDQUFuQjs7QUFDQSxVQUFJLENBQUNDLElBQUwsRUFBVztBQUNQN0csUUFBQUEsRUFBRSxDQUFDOEcsS0FBSCxDQUFTLHFEQUFULEVBQWdFRixHQUFoRTtBQUNBO0FBQ0g7O0FBQ0QsVUFBSUcsVUFBVSxHQUFHRixJQUFJLENBQUNHLEtBQXRCO0FBQ0EsVUFBSVosc0JBQXNCLENBQUNXLFVBQUQsQ0FBdEIsS0FBdUNFLFNBQTNDLEVBQXNEO0FBQ3REYixNQUFBQSxzQkFBc0IsQ0FBQ1csVUFBRCxDQUF0QixHQUFxQ2IsZUFBZSxDQUFDUSxNQUFyRDtBQUNBUixNQUFBQSxlQUFlLENBQUNnQixJQUFoQixDQUFxQkgsVUFBckIsRUFabUMsQ0FjbkM7O0FBQ0EsVUFBSVAsYUFBSixFQUFtQjtBQUNmO0FBQ0gsT0FqQmtDLENBa0JuQzs7QUFDSDtBQUNKO0FBdkptQixDQUFUIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBjYy5DbGFzczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvY2xhc3MuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmxldCBfbWF0NF90ZW1wID0gY2MubWF0NCgpO1xyXG5sZXQgX3ZlYzJfdGVtcCA9IGNjLnYyKCk7XHJcbmxldCBfdmVjMl90ZW1wMiA9IGNjLnYyKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5UaWxlZExheWVyLFxyXG5cclxuICAgIC8vIOatpOWkhOS/ruaUuSDlop7liqBmaXJzdFRteExheWVy5Y+C5pWwXHJcbiAgICBfaW5pdChsYXllckluZm8sIG1hcEluZm8sIHRpbGVzZXRzLCB0ZXh0dXJlcywgdGV4R3JpZHMsIHRpbGVkTWFwLCBmaXJzdFRteExheWVyKSB7XHJcbiAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgdGhpcy5fY3VsbGluZ0RpcnR5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9sYXllckluZm8gPSBsYXllckluZm87XHJcbiAgICAgICAgdGhpcy5fbWFwSW5mbyA9IG1hcEluZm87XHJcbiAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOS/neWtmGZpcnN0VG14TGF5ZXLlj4LmlbBcclxuICAgICAgICB0aGlzLl9maXJzdFRteExheWVyID0gZmlyc3RUbXhMYXllcjtcclxuICAgICAgICB0aGlzLl90aWxlZE1hcCA9IHRpbGVkTWFwO1xyXG4gICAgICAgIC8vIOS/ruaUuee7k+adn1xyXG5cclxuICAgICAgICBsZXQgc2l6ZSA9IGxheWVySW5mby5fbGF5ZXJTaXplO1xyXG5cclxuICAgICAgICAvLyBsYXllckluZm9cclxuICAgICAgICB0aGlzLl9sYXllck5hbWUgPSBsYXllckluZm8ubmFtZTtcclxuICAgICAgICB0aGlzLl90aWxlcyA9IGxheWVySW5mby5fdGlsZXM7XHJcbiAgICAgICAgdGhpcy5fcHJvcGVydGllcyA9IGxheWVySW5mby5wcm9wZXJ0aWVzO1xyXG4gICAgICAgIHRoaXMuX2xheWVyU2l6ZSA9IHNpemU7XHJcbiAgICAgICAgdGhpcy5fbWluR0lEID0gbGF5ZXJJbmZvLl9taW5HSUQ7XHJcbiAgICAgICAgdGhpcy5fbWF4R0lEID0gbGF5ZXJJbmZvLl9tYXhHSUQ7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IGxheWVySW5mby5fb3BhY2l0eTtcclxuICAgICAgICB0aGlzLl9yZW5kZXJPcmRlciA9IG1hcEluZm8ucmVuZGVyT3JkZXI7XHJcbiAgICAgICAgdGhpcy5fc3RhZ2dlckF4aXMgPSBtYXBJbmZvLmdldFN0YWdnZXJBeGlzKCk7XHJcbiAgICAgICAgdGhpcy5fc3RhZ2dlckluZGV4ID0gbWFwSW5mby5nZXRTdGFnZ2VySW5kZXgoKTtcclxuICAgICAgICB0aGlzLl9oZXhTaWRlTGVuZ3RoID0gbWFwSW5mby5nZXRIZXhTaWRlTGVuZ3RoKCk7XHJcbiAgICAgICAgdGhpcy5fYW5pbWF0aW9ucyA9IG1hcEluZm8uZ2V0VGlsZUFuaW1hdGlvbnMoKTtcclxuXHJcbiAgICAgICAgLy8gdGlsZXNldHNcclxuICAgICAgICB0aGlzLl90aWxlc2V0cyA9IHRpbGVzZXRzO1xyXG4gICAgICAgIC8vIHRleHR1cmVzXHJcbiAgICAgICAgdGhpcy5fdGV4dHVyZXMgPSB0ZXh0dXJlcztcclxuICAgICAgICAvLyBncmlkIHRleHR1cmVcclxuICAgICAgICB0aGlzLl90ZXhHcmlkcyA9IHRleEdyaWRzO1xyXG5cclxuICAgICAgICAvLyBtYXBJbmZvXHJcbiAgICAgICAgdGhpcy5fbGF5ZXJPcmllbnRhdGlvbiA9IG1hcEluZm8ub3JpZW50YXRpb247XHJcbiAgICAgICAgdGhpcy5fbWFwVGlsZVNpemUgPSBtYXBJbmZvLmdldFRpbGVTaXplKCk7XHJcblxyXG4gICAgICAgIGxldCBtYXB0dyA9IHRoaXMuX21hcFRpbGVTaXplLndpZHRoO1xyXG4gICAgICAgIGxldCBtYXB0aCA9IHRoaXMuX21hcFRpbGVTaXplLmhlaWdodDtcclxuICAgICAgICBsZXQgbGF5ZXJXID0gdGhpcy5fbGF5ZXJTaXplLndpZHRoO1xyXG4gICAgICAgIGxldCBsYXllckggPSB0aGlzLl9sYXllclNpemUuaGVpZ2h0O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fbGF5ZXJPcmllbnRhdGlvbiA9PT0gY2MuVGlsZWRNYXAuT3JpZW50YXRpb24uSEVYKSB7XHJcbiAgICAgICAgICAgIC8vIGhhbmRsZSBoZXggbWFwXHJcbiAgICAgICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgICAgIGNvbnN0IFN0YWdnZXJBeGlzID0gVGlsZWRNYXAuU3RhZ2dlckF4aXM7XHJcbiAgICAgICAgICAgIGNvbnN0IFN0YWdnZXJJbmRleCA9IFRpbGVkTWFwLlN0YWdnZXJJbmRleDtcclxuICAgICAgICAgICAgbGV0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX29kZF9ldmVuID0gKHRoaXMuX3N0YWdnZXJJbmRleCA9PT0gU3RhZ2dlckluZGV4LlNUQUdHRVJJTkRFWF9PREQpID8gMSA6IC0xO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fc3RhZ2dlckF4aXMgPT09IFN0YWdnZXJBeGlzLlNUQUdHRVJBWElTX1gpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZYMSA9IChtYXB0dyAtIHRoaXMuX2hleFNpZGVMZW5ndGgpIC8gMjtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZZMSA9IDA7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSBtYXB0aCAqIChsYXllckggKyAwLjUpO1xyXG4gICAgICAgICAgICAgICAgd2lkdGggPSAobWFwdHcgKyB0aGlzLl9oZXhTaWRlTGVuZ3RoKSAqIE1hdGguZmxvb3IobGF5ZXJXIC8gMikgKyBtYXB0dyAqIChsYXllclcgJSAyKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZYMSA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kaWZmWTEgPSAobWFwdGggLSB0aGlzLl9oZXhTaWRlTGVuZ3RoKSAvIDI7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG1hcHR3ICogKGxheWVyVyArIDAuNSk7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSAobWFwdGggKyB0aGlzLl9oZXhTaWRlTGVuZ3RoKSAqIE1hdGguZmxvb3IobGF5ZXJIIC8gMikgKyBtYXB0aCAqIChsYXllckggJSAyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuc2V0Q29udGVudFNpemUod2lkdGgsIGhlaWdodCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9sYXllck9yaWVudGF0aW9uID09PSBjYy5UaWxlZE1hcC5PcmllbnRhdGlvbi5JU08pIHtcclxuICAgICAgICAgICAgbGV0IHdoID0gbGF5ZXJXICsgbGF5ZXJIO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuc2V0Q29udGVudFNpemUobWFwdHcgKiAwLjUgKiB3aCwgbWFwdGggKiAwLjUgKiB3aCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnNldENvbnRlbnRTaXplKGxheWVyVyAqIG1hcHR3LCBsYXllckggKiBtYXB0aCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBvZmZzZXQgKGFmdGVyIGxheWVyIG9yaWVudGF0aW9uIGlzIHNldCk7XHJcbiAgICAgICAgdGhpcy5fb2Zmc2V0ID0gY2MudjIobGF5ZXJJbmZvLm9mZnNldC54LCAtbGF5ZXJJbmZvLm9mZnNldC55KTtcclxuICAgICAgICB0aGlzLl91c2VBdXRvbWF0aWNWZXJ0ZXhaID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fdmVydGV4WnZhbHVlID0gMDtcclxuICAgICAgICB0aGlzLl9zeW5jQW5jaG9yUG9pbnQoKTtcclxuICAgICAgICB0aGlzLl9wcmVwYXJlVG9SZW5kZXIoKTtcclxuICAgIH0sXHJcbiAgICBfdXBkYXRlQ3VsbGluZygpIHtcclxuICAgICAgICBpZiAoQ0NfRURJVE9SKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlQ3VsbGluZyhmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9lbmFibGVDdWxsaW5nKSB7XHJcbiAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDoi6XkuI3kuLrpppbkuKpsYXllciDnm7TmjqXlpI3nlKhmaXJzdExheWVy55qE57uT5p6cXHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2ZpcnN0VG14TGF5ZXLkuI3kuLrnqbrml7Yg6KGo56S65b2T5YmNbGF5ZXLkuI3mmK/pppbkuKpsYXllclxyXG4gICAgICAgICAgICBsZXQgZmlyc3RUbXhMYXllciA9IHRoaXMuX2ZpcnN0VG14TGF5ZXI7XHJcbiAgICAgICAgICAgIGlmICghIWZpcnN0VG14TGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1bGxpbmdSZWN0ID0gZmlyc3RUbXhMYXllci5fY3VsbGluZ1JlY3Q7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jdWxsaW5nRGlydHkgPSBmaXJzdFRteExheWVyLl9jYWNoZUN1bGxpbmdEaXJ0eTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDkv67mlLnnu5PmnZ9cclxuXHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5fdXBkYXRlV29ybGRNYXRyaXgoKTtcclxuICAgICAgICAgICAgY2MuTWF0NC5pbnZlcnQoX21hdDRfdGVtcCwgdGhpcy5ub2RlLl93b3JsZE1hdHJpeCk7XHJcbiAgICAgICAgICAgIGxldCByZWN0ID0gY2MudmlzaWJsZVJlY3Q7XHJcbiAgICAgICAgICAgIGxldCBjYW1lcmEgPSBjYy5DYW1lcmEuZmluZENhbWVyYSh0aGlzLm5vZGUpO1xyXG4gICAgICAgICAgICBpZiAoY2FtZXJhKSB7XHJcbiAgICAgICAgICAgICAgICBfdmVjMl90ZW1wLnggPSAwO1xyXG4gICAgICAgICAgICAgICAgX3ZlYzJfdGVtcC55ID0gMDtcclxuICAgICAgICAgICAgICAgIF92ZWMyX3RlbXAyLnggPSBfdmVjMl90ZW1wLnggKyByZWN0LndpZHRoO1xyXG4gICAgICAgICAgICAgICAgX3ZlYzJfdGVtcDIueSA9IF92ZWMyX3RlbXAueSArIHJlY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgY2FtZXJhLmdldFNjcmVlblRvV29ybGRQb2ludChfdmVjMl90ZW1wLCBfdmVjMl90ZW1wKTtcclxuICAgICAgICAgICAgICAgIGNhbWVyYS5nZXRTY3JlZW5Ub1dvcmxkUG9pbnQoX3ZlYzJfdGVtcDIsIF92ZWMyX3RlbXAyKTtcclxuICAgICAgICAgICAgICAgIGNjLlZlYzIudHJhbnNmb3JtTWF0NChfdmVjMl90ZW1wLCBfdmVjMl90ZW1wLCBfbWF0NF90ZW1wKTtcclxuICAgICAgICAgICAgICAgIGNjLlZlYzIudHJhbnNmb3JtTWF0NChfdmVjMl90ZW1wMiwgX3ZlYzJfdGVtcDIsIF9tYXQ0X3RlbXApO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZpZXdQb3J0KF92ZWMyX3RlbXAueCwgX3ZlYzJfdGVtcC55LCBfdmVjMl90ZW1wMi54IC0gX3ZlYzJfdGVtcC54LCBfdmVjMl90ZW1wMi55IC0gX3ZlYzJfdGVtcC55KTtcclxuICAgICAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDoi6XkuLrpppbkuKpsYXllciDnvJPlrZhfY3VsbGluZ0RpcnR544CCXHJcbiAgICAgICAgICAgICAgICAvLyBfY3VsbGluZ0RpcnR55Lya5Zyo5aGr5YWF5riy5p+T5pWw5o2u5ZCO6KKr5pS55Li6ZmFsc2Ug5omA5Lul6ZyA6KaB57yT5a2Y6L+Z6YeM55qE57uT5p6cXHJcbiAgICAgICAgICAgICAgICBpZiAoIWZpcnN0VG14TGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZUN1bGxpbmdEaXJ0eSA9IHRoaXMuX2N1bGxpbmdEaXJ0eTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIOS/ruaUuee7k+adn1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIF90cmF2ZXJzZUFsbEdyaWQgKCkge1xyXG4gICAgICAgIGxldCB0aWxlcyA9IHRoaXMuX3RpbGVzO1xyXG4gICAgICAgIGxldCB0ZXhHcmlkcyA9IHRoaXMuX3RleEdyaWRzO1xyXG4gICAgICAgIGxldCB0aWxlc2V0SW5kZXhBcnIgPSB0aGlzLl90aWxlc2V0SW5kZXhBcnI7XHJcbiAgICAgICAgbGV0IHRpbGVzZXRJbmRleFRvQXJySW5kZXggPSB0aGlzLl90aWxlc2V0SW5kZXhUb0FyckluZGV4ID0ge307XHJcblxyXG4gICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgY29uc3QgVGlsZUZsYWcgPSBUaWxlZE1hcC5UaWxlRmxhZztcclxuICAgICAgICBjb25zdCBGTElQUEVEX01BU0sgPSBUaWxlRmxhZy5GTElQUEVEX01BU0s7XHJcblxyXG4gICAgICAgIGxldCBzaW5nbGVUZXh0dXJlID0gdGhpcy5fdGlsZWRNYXAuaXNTaW5nbGVUZXh0dXJlKCk7XHJcblxyXG4gICAgICAgIHRpbGVzZXRJbmRleEFyci5sZW5ndGggPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGdpZCA9IHRpbGVzW2ldO1xyXG4gICAgICAgICAgICBpZiAoZ2lkID09PSAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgZ2lkID0gKChnaWQgJiBGTElQUEVEX01BU0spID4+PiAwKTtcclxuICAgICAgICAgICAgbGV0IGdyaWQgPSB0ZXhHcmlkc1tnaWRdO1xyXG4gICAgICAgICAgICBpZiAoIWdyaWQpIHtcclxuICAgICAgICAgICAgICAgIGNjLmVycm9yKFwiQ0NUaWxlZExheWVyOl90cmF2ZXJzZUFsbEdyaWQgZ3JpZCBpcyBudWxsLCBnaWQgaXM6XCIsIGdpZCk7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgdGlsZXNldElkeCA9IGdyaWQudGV4SWQ7XHJcbiAgICAgICAgICAgIGlmICh0aWxlc2V0SW5kZXhUb0FyckluZGV4W3RpbGVzZXRJZHhdICE9PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB0aWxlc2V0SW5kZXhUb0FyckluZGV4W3RpbGVzZXRJZHhdID0gdGlsZXNldEluZGV4QXJyLmxlbmd0aDtcclxuICAgICAgICAgICAgdGlsZXNldEluZGV4QXJyLnB1c2godGlsZXNldElkeCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyDmraTlpITkv67mlLkg5b2T5Y+q5pyJ5LiA5Liq5Zu+6ZuG5pe2IOWPr+S7peebtOaOpeWBnOatoumBjeWOhlxyXG4gICAgICAgICAgICBpZiAoc2luZ2xlVGV4dHVyZSkge1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufSk7XHJcbiJdfQ== //------QC-SOURCE-SPLIT------ (function() { diff --git a/temp/quick-scripts/dst/__quick_compile__.js b/temp/quick-scripts/dst/__quick_compile__.js index d20f41d..e75278f 100644 --- a/temp/quick-scripts/dst/__quick_compile__.js +++ b/temp/quick-scripts/dst/__quick_compile__.js @@ -1,6 +1,6 @@ (function () { -var scripts = [{"deps":{"./assets/Script/Sdk/DouyinEntranceView":1,"./assets/Script/module/Crypto/HttpUtil":2,"./assets/Script/lq_base/util/lq_game_util":3,"./tiledmap-optimize-resource/Script/TmoAssembler":4,"./assets/Script/CollisionDetection":5,"./assets/Script/lq_collide_system/lq_collide_base":6,"./assets/Script/prop/Boom":7,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event":8,"./assets/animation/NewScript":9,"./assets/effect/融化":10,"./assets/Script/lq_base/data/lq_const":11,"./assets/Script/module/Notification/Notification":12,"./assets/Script/module/GameStart/GameAppStart":13,"./assets/Script/module/Music/AudioManager":14,"./assets/Script/module/Share/share":15,"./assets/Script/module/Storage/Storage":16,"./assets/Script/DynamicAtlasManager":17,"./assets/Script/module/RankList/List":18,"./assets/Script/ControlManager":19,"./assets/Script/module/Tool/GameTool":20,"./assets/Script/module/Config/GameConfig":21,"./assets/Script/GameOver":22,"./assets/Script/GameScene":23,"./assets/Script/Load":24,"./assets/Script/GameManager":25,"./assets/Script/JiaZai":26,"./assets/Script/MapBlock":27,"./assets/Script/Reduce":28,"./assets/Script/NumberToImage":29,"./assets/Script/NewMode":30,"./assets/Script/SceneManager":31,"./assets/Script/RankManager":32,"./assets/Script/Window":33,"./assets/Script/Wall":34,"./assets/Script/Sdk/MiniGameManager":35,"./assets/Script/position":36,"./assets/Script/lq_collide_system/lq_collide_config":37,"./assets/Script/peizhi":38,"./assets/Script/Barrier":39,"./assets/Script/btnControl":40,"./assets/Script/Map":41,"./assets/Script/prop/Lock":42,"./assets/Script/Pause":43,"./assets/Script/prop/Freeze":44,"./assets/Script/Sdk/MiniGameSdk":45,"./assets/Script/lq_collide_system/lq_collide":46,"./assets/Script/prop/Adhesive":47,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1":48,"./assets/Script/lq_collide_system/lq_collide_system":49,"./assets/Script/prop/Key":50,"./assets/Script/prop/Star":51,"./assets/Script/lq_base/util/lq_pool_util":52,"./assets/Script/lq_base/data/lq_data":53,"./assets/Script/lq_base/data/lq_interface":54,"./assets/Script/lq_base/util/lq_platform_util":55,"./assets/Script/Block":56,"./assets/Script/lq_base/util/lq_math_util":57,"./assets/Script/lq_base/util/lq_base_util":58,"./assets/Script/module/Crypto/crypto-js.min":59,"./assets/Script/module/RankList/ItemRender":60,"./tiledmap-optimize-resource/Script/TmoSprite":61,"./tiledmap-optimize-resource/Script/TmoTiledLayer":62,"./tiledmap-optimize-resource/Script/TmoTiledMap":63,"./tiledmap-optimize-resource/Script/TmoObjectGroup":64},"path":"preview-scripts/__qc_index__.js"},{"deps":{"./MiniGameSdk":45},"path":"preview-scripts/assets/Script/Sdk/DouyinEntranceView.js"},{"deps":{"./crypto-js.min.js":59},"path":"preview-scripts/assets/Script/module/Crypto/HttpUtil.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_game_util.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoAssembler.js"},{"deps":{},"path":"preview-scripts/assets/Script/CollisionDetection.js"},{"deps":{"./lq_collide":46,"../lq_base/data/lq_const":11},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_base.js"},{"deps":{"../Map":41,"../NumberToImage":29},"path":"preview-scripts/assets/Script/prop/Boom.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js"},{"deps":{},"path":"preview-scripts/assets/animation/NewScript.js"},{"deps":{},"path":"preview-scripts/assets/effect/融化.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_const.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Notification/Notification.js"},{"deps":{"../Storage/Storage":16,"../Config/GameConfig":21,"../Crypto/HttpUtil":2,"../Music/AudioManager":14,"../Notification/Notification":12,"../Tool/GameTool":20},"path":"preview-scripts/assets/Script/module/GameStart/GameAppStart.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Music/AudioManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Share/share.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Storage/Storage.js"},{"deps":{},"path":"preview-scripts/assets/Script/DynamicAtlasManager.js"},{"deps":{"./ItemRender":60},"path":"preview-scripts/assets/Script/module/RankList/List.js"},{"deps":{},"path":"preview-scripts/assets/Script/ControlManager.js"},{"deps":{"../../Sdk/MiniGameSdk":45},"path":"preview-scripts/assets/Script/module/Tool/GameTool.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Config/GameConfig.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameOver.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameScene.js"},{"deps":{},"path":"preview-scripts/assets/Script/Load.js"},{"deps":{"./Sdk/MiniGameSdk":45},"path":"preview-scripts/assets/Script/GameManager.js"},{"deps":{"./GameManager":25,"./NumberToImage":29,"./Sdk/MiniGameSdk":45,"./lq_collide_system/lq_collide_system":49},"path":"preview-scripts/assets/Script/JiaZai.js"},{"deps":{},"path":"preview-scripts/assets/Script/MapBlock.js"},{"deps":{},"path":"preview-scripts/assets/Script/Reduce.js"},{"deps":{},"path":"preview-scripts/assets/Script/NumberToImage.js"},{"deps":{},"path":"preview-scripts/assets/Script/NewMode.js"},{"deps":{"./Map":41,"./Sdk/MiniGameSdk":45},"path":"preview-scripts/assets/Script/SceneManager.js"},{"deps":{"./module/RankList/List":18},"path":"preview-scripts/assets/Script/RankManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/Window.js"},{"deps":{"./Map":41},"path":"preview-scripts/assets/Script/Wall.js"},{"deps":{"./MiniGameSdk":45},"path":"preview-scripts/assets/Script/Sdk/MiniGameManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/position.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_config.js"},{"deps":{},"path":"preview-scripts/assets/Script/peizhi.js"},{"deps":{"./Map":41},"path":"preview-scripts/assets/Script/Barrier.js"},{"deps":{},"path":"preview-scripts/assets/Script/btnControl.js"},{"deps":{"./GameManager":25,"./NumberToImage":29,"./Sdk/MiniGameSdk":45},"path":"preview-scripts/assets/Script/Map.js"},{"deps":{"../NumberToImage":29},"path":"preview-scripts/assets/Script/prop/Lock.js"},{"deps":{},"path":"preview-scripts/assets/Script/Pause.js"},{"deps":{"../NumberToImage":29},"path":"preview-scripts/assets/Script/prop/Freeze.js"},{"deps":{},"path":"preview-scripts/assets/Script/Sdk/MiniGameSdk.js"},{"deps":{"../lq_base/data/lq_const":11,"./lq_collide_config":37,"./lq_collide_system":49,"../lq_base/data/lq_data":53,"./lq_collide_base":6,"../lq_base/util/lq_game_util":3,"../Map":41},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide.js"},{"deps":{},"path":"preview-scripts/assets/Script/prop/Adhesive.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js"},{"deps":{"../lq_base/data/lq_const":11,"../lq_base/util/lq_math_util":57,"./lq_collide_config":37,"../lq_base/data/lq_data":53},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_system.js"},{"deps":{"../Map":41},"path":"preview-scripts/assets/Script/prop/Key.js"},{"deps":{"../Map":41},"path":"preview-scripts/assets/Script/prop/Star.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_pool_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_data.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_interface.js"},{"deps":{"../data/lq_const":11},"path":"preview-scripts/assets/Script/lq_base/util/lq_platform_util.js"},{"deps":{"./lq_collide_system/lq_collide_system":49,"./Map":41},"path":"preview-scripts/assets/Script/Block.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_math_util.js"},{"deps":{"./lq_platform_util":55,"../data/lq_const":11},"path":"preview-scripts/assets/Script/lq_base/util/lq_base_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Crypto/crypto-js.min.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/RankList/ItemRender.js"},{"deps":{"./TmoAssembler":4},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoSprite.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledLayer.js"},{"deps":{"./TmoTiledLayer":62,"./TmoObjectGroup":64},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledMap.js"},{"deps":{"./TmoSprite":61},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoObjectGroup.js"}]; +var scripts = [{"deps":{"./assets/Script/CollisionDetection":5,"./assets/Script/ControlManager":22,"./assets/Script/DynamicAtlasManager":17,"./assets/Script/GameManager":25,"./assets/Script/GameOver":36,"./assets/Script/GameScene":27,"./assets/Script/JiaZai":23,"./assets/Script/Load":21,"./assets/Script/Map":33,"./assets/Script/MapBlock":30,"./assets/Script/NewMode":28,"./assets/Script/NumberToImage":24,"./assets/Script/Pause":26,"./assets/Script/RankManager":32,"./assets/Script/Reduce":35,"./assets/Script/SceneManager":29,"./assets/Script/Wall":40,"./assets/Script/Window":39,"./assets/Script/btnControl":37,"./assets/Script/peizhi":34,"./assets/Script/position":38,"./assets/Script/Barrier":45,"./assets/Script/Sdk/MiniGameManager":1,"./assets/Script/Sdk/MiniGameSdk":42,"./assets/Script/Sdk/DouyinEntranceView":31,"./assets/Script/lq_collide_system/lq_collide_base":7,"./assets/Script/lq_collide_system/lq_collide_config":49,"./assets/Script/lq_collide_system/lq_collide_system":43,"./assets/Script/lq_collide_system/lq_collide":51,"./assets/Script/prop/Boom":46,"./assets/Script/prop/Freeze":47,"./assets/Script/prop/Key":44,"./assets/Script/prop/Lock":41,"./assets/Script/prop/Star":6,"./assets/Script/prop/Adhesive":48,"./assets/animation/NewScript":9,"./assets/effect/融化":11,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1":8,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event":50,"./assets/Script/Block":53,"./assets/Script/lq_base/data/lq_interface":10,"./assets/Script/lq_base/data/lq_const":54,"./assets/Script/lq_base/util/lq_game_util":2,"./assets/Script/lq_base/util/lq_math_util":55,"./assets/Script/lq_base/util/lq_platform_util":57,"./assets/Script/lq_base/util/lq_pool_util":58,"./assets/Script/lq_base/util/lq_base_util":52,"./assets/Script/lq_base/data/lq_data":56,"./assets/Script/module/Crypto/crypto-js.min":59,"./assets/Script/module/Crypto/HttpUtil":3,"./assets/Script/module/GameStart/GameAppStart":14,"./assets/Script/module/Music/AudioManager":18,"./assets/Script/module/Notification/Notification":12,"./assets/Script/module/RankList/List":15,"./assets/Script/module/RankList/ItemRender":60,"./assets/Script/module/Share/share":20,"./assets/Script/module/Storage/Storage":13,"./assets/Script/module/Tool/GameTool":19,"./assets/Script/module/Config/GameConfig":16,"./tiledmap-optimize-resource/Script/TmoSprite":62,"./tiledmap-optimize-resource/Script/TmoTiledLayer":4,"./tiledmap-optimize-resource/Script/TmoTiledMap":63,"./tiledmap-optimize-resource/Script/TmoAssembler":61,"./tiledmap-optimize-resource/Script/TmoObjectGroup":64},"path":"preview-scripts/__qc_index__.js"},{"deps":{"./MiniGameSdk":42},"path":"preview-scripts/assets/Script/Sdk/MiniGameManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_game_util.js"},{"deps":{"./crypto-js.min.js":59},"path":"preview-scripts/assets/Script/module/Crypto/HttpUtil.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledLayer.js"},{"deps":{},"path":"preview-scripts/assets/Script/CollisionDetection.js"},{"deps":{"../Map":33},"path":"preview-scripts/assets/Script/prop/Star.js"},{"deps":{"./lq_collide":51,"../lq_base/data/lq_const":54},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_base.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js"},{"deps":{},"path":"preview-scripts/assets/animation/NewScript.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_interface.js"},{"deps":{},"path":"preview-scripts/assets/effect/融化.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Notification/Notification.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Storage/Storage.js"},{"deps":{"../Storage/Storage":13,"../Config/GameConfig":16,"../Crypto/HttpUtil":3,"../Music/AudioManager":18,"../Notification/Notification":12,"../Tool/GameTool":19},"path":"preview-scripts/assets/Script/module/GameStart/GameAppStart.js"},{"deps":{"./ItemRender":60},"path":"preview-scripts/assets/Script/module/RankList/List.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Config/GameConfig.js"},{"deps":{},"path":"preview-scripts/assets/Script/DynamicAtlasManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Music/AudioManager.js"},{"deps":{"../../Sdk/MiniGameSdk":42},"path":"preview-scripts/assets/Script/module/Tool/GameTool.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Share/share.js"},{"deps":{},"path":"preview-scripts/assets/Script/Load.js"},{"deps":{},"path":"preview-scripts/assets/Script/ControlManager.js"},{"deps":{"./GameManager":25,"./NumberToImage":24,"./Sdk/MiniGameSdk":42,"./lq_collide_system/lq_collide_system":43},"path":"preview-scripts/assets/Script/JiaZai.js"},{"deps":{},"path":"preview-scripts/assets/Script/NumberToImage.js"},{"deps":{"./Sdk/MiniGameSdk":42},"path":"preview-scripts/assets/Script/GameManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/Pause.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameScene.js"},{"deps":{},"path":"preview-scripts/assets/Script/NewMode.js"},{"deps":{"./Map":33,"./Sdk/MiniGameSdk":42},"path":"preview-scripts/assets/Script/SceneManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/MapBlock.js"},{"deps":{"./MiniGameSdk":42},"path":"preview-scripts/assets/Script/Sdk/DouyinEntranceView.js"},{"deps":{"./module/RankList/List":15},"path":"preview-scripts/assets/Script/RankManager.js"},{"deps":{"./GameManager":25,"./NumberToImage":24,"./Sdk/MiniGameSdk":42},"path":"preview-scripts/assets/Script/Map.js"},{"deps":{},"path":"preview-scripts/assets/Script/peizhi.js"},{"deps":{},"path":"preview-scripts/assets/Script/Reduce.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameOver.js"},{"deps":{},"path":"preview-scripts/assets/Script/btnControl.js"},{"deps":{},"path":"preview-scripts/assets/Script/position.js"},{"deps":{},"path":"preview-scripts/assets/Script/Window.js"},{"deps":{"./Map":33},"path":"preview-scripts/assets/Script/Wall.js"},{"deps":{"../NumberToImage":24},"path":"preview-scripts/assets/Script/prop/Lock.js"},{"deps":{},"path":"preview-scripts/assets/Script/Sdk/MiniGameSdk.js"},{"deps":{"../lq_base/data/lq_const":54,"../lq_base/util/lq_math_util":55,"./lq_collide_config":49,"../lq_base/data/lq_data":56},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_system.js"},{"deps":{"../Map":33},"path":"preview-scripts/assets/Script/prop/Key.js"},{"deps":{"./Map":33},"path":"preview-scripts/assets/Script/Barrier.js"},{"deps":{"../Map":33,"../NumberToImage":24},"path":"preview-scripts/assets/Script/prop/Boom.js"},{"deps":{"../NumberToImage":24},"path":"preview-scripts/assets/Script/prop/Freeze.js"},{"deps":{},"path":"preview-scripts/assets/Script/prop/Adhesive.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_config.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js"},{"deps":{"../lq_base/data/lq_const":54,"./lq_collide_config":49,"./lq_collide_system":43,"../lq_base/data/lq_data":56,"./lq_collide_base":7,"../lq_base/util/lq_game_util":2,"../Map":33},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide.js"},{"deps":{"./lq_platform_util":57,"../data/lq_const":54},"path":"preview-scripts/assets/Script/lq_base/util/lq_base_util.js"},{"deps":{"./lq_collide_system/lq_collide_system":43,"./Map":33},"path":"preview-scripts/assets/Script/Block.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_const.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_math_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_data.js"},{"deps":{"../data/lq_const":54},"path":"preview-scripts/assets/Script/lq_base/util/lq_platform_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_pool_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Crypto/crypto-js.min.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/RankList/ItemRender.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoAssembler.js"},{"deps":{"./TmoAssembler":61},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoSprite.js"},{"deps":{"./TmoTiledLayer":4,"./TmoObjectGroup":64},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledMap.js"},{"deps":{"./TmoSprite":62},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoObjectGroup.js"}]; var entries = ["preview-scripts/__qc_index__.js"]; var bundleScript = 'preview-scripts/__qc_bundle__.js'; diff --git a/temp/quick-scripts/dst/assets/Script/GameManager.js b/temp/quick-scripts/dst/assets/Script/GameManager.js index 9d1b5c1..4bcc1bf 100644 --- a/temp/quick-scripts/dst/assets/Script/GameManager.js +++ b/temp/quick-scripts/dst/assets/Script/GameManager.js @@ -384,13 +384,16 @@ var GameManager = /** @class */ (function (_super) { cc.fx.StorageMessage.setStorage("prop", propInfoNew); } else { - cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; - cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; - cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; + // cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; + // cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; + // cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; + cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; + cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; + cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; } - cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; - cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; - cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; + // cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; + // cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; + // cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; cc.fx.GameTool.setUserProp(0, 0, function (data) { }); } @@ -686,4 +689,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdsRixpREFBZ0Q7QUFFMUMsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUF1cEJDO1FBcHBCRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFJdkIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyxpQkFBVyxHQUEyQixFQUFFLENBQUM7UUFHekMseURBQXlEO1FBQ3pELG1EQUFtRDtRQUVuRCxXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7O0lBNm5CM0IsQ0FBQztvQkF2cEJvQixXQUFXO0lBK0I1Qix3QkFBd0I7SUFFeEIsNEJBQU0sR0FBTjtRQUFBLGlCQTRFQztRQTFFRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxD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QUFDLEtBQUssQ0FBQzs4Q0FDSTtJQUd2QjtRQURDLFFBQVE7NkNBQ2M7SUFJdkI7UUFEQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDO29EQUNWO0lBR3BDO1FBREMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBQyxNQUFNLEVBQUMsQ0FBQztvREFDVjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUM7b0RBQ1Y7SUFoQnhCLFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0F1cEIvQjtJQUFELGtCQUFDO0NBdnBCRCxBQXVwQkMsQ0F2cEJ3QyxFQUFFLENBQUMsU0FBUyxHQXVwQnBEO2tCQXZwQm9CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgeyBNaW5pR2FtZU1hbmFnZXIgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIHN0YXRpYyBfaW5zdGFuY2UgOiBHYW1lTWFuYWdlciA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuaWueWdl+aVsOe7hFwifSlcclxuICAgIEJsb2NrX0FycmF5IDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLlopnlo4HmlbDnu4RcIn0pXHJcbiAgICBXYWxsX1ByZWZhYiA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5TcHJpdGVBdGxhc10sIHRvb2x0aXA6XCLmlrnlnZfpopzoibJcIn0pXHJcbiAgICBCbG9ja19Db2xvciA6IEFycmF5PGNjLlNwcml0ZUF0bGFzPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDQgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQ1IDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBzY2hlZHVsZUNhbGxiYWNrOiBhbnk7XHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXI7XHJcblxyXG4gICAgXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICB3aW5kb3cuaW5pdE1ncigpO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IDM7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5pbml0KHRydWUpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lU3RhdGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlYWRNdXNpY0NvbmZpZygpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6Z+z5LmQ5byA5YWzXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbik7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5TXVzaWNHYW1lKCk7XHJcblxyXG4gICAgICAgIHRoaXMubG9hZDEgPSB0aGlzLmxvYWQyID0gdGhpcy5sb2FkMyA9IHRoaXMubG9hZDQgPSB0aGlzLmxvYWQ1ID1mYWxzZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEoKTtcclxuICAgICAgICB9LCAyMDApO1xyXG4gXHJcblxyXG4gICAgICAgIGlmIChHYW1lTWFuYWdlci5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgICAgICAgICBjYy5nYW1lLmFkZFBlcnNpc3RSb290Tm9kZSh0aGlzLm5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdwcmVmYWIvYmxvY2snO1xyXG4gICAgICAgIGNvbnN0IHBhdGgyID0gJ3ByZWZhYi93YWxsJztcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoLCBjYy5QcmVmYWIsIChlcnIsIGFzc2V0czogY2MuUHJlZmFiW10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5zZXRTb3J0KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDEgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoMiwgY2MuUHJlZmFiLCAoZXJyLCBhc3NldHM6IGNjLlByZWZhYltdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5XYWxsX1ByZWZhYiA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5sb2FkMiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0V2FsbFByZWZhYlNvcnQoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gZGVidWdnZXI7XHJcblxyXG4gICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIC8vICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVycikgPT4ge1xyXG4gICAgICAgIC8vICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+mihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8vICAgICAgICAgfVxyXG4gICAgICAgIC8vICAgICB9KTtcclxuICAgICAgICAvLyB9LCAxMDAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDmo4DmtYvlvq7kv6HlsI/muLjmiI/liIfliLDlkI7lj7BcclxuICAgICAgICBpZiAoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpIHtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4Lm9uSGlkZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGlkZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgLy8g5qOA5rWL5b6u5L+h5bCP5ri45oiP5Zue5Yiw5YmN5Y+wXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5vblNob3coKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblNob3coKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkhpZGUgKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIGNjLmdhbWUucGF1c2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNob3cgKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnJlc3VtZU11c2ljKCk7XHJcbiAgICAgICAgY2MuZ2FtZS5yZXN1bWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkUGFydGljbGVFZmZlY3RzKCkge1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuXHJcbiAgICBzZXRXYWxsUHJlZmFiU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsnZG93bicsICdkb3duTGVmdCcsICdkb3duUmlnaHQnLCAnbGVmdCcsJ3JpZ2h0JywndXAnLCd1cExlZnQnLCd1cFJpZ2h0J107XHJcbiAgICAgICAgdGhpcy5XYWxsX1ByZWZhYi5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgc2V0UGFydGljbGVTb3J0KCkge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gWyd0b3AnLCAnYm90JywgJ3JpZycsICdsZWYnXTtcclxuICAgICAgICB0aGlzLnBhcnRpY2xlRWZmZWN0cy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U29ydCgpe1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQXJyYXkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyDku47lkI3np7DkuK3mj5Dlj5bmlbDlrZfpg6jliIZcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQSA9IHBhcnNlSW50KGEubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bWJlckIgPSBwYXJzZUludChiLm5hbWUubWF0Y2goL1xcZCsvKT8uWzBdIHx8ICcwJywgMTApO1xyXG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyQSAtIG51bWJlckI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzdGFydEdhbWUoKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIui/m+WFpeWcuuaZr+S5i+WJjV9fX19fX19fX19fX19cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKSlcclxuICAgICAgICAgICAgLnRvKDAuNSwge29wYWNpdHk6IDEwMH0pXHJcbiAgICAgICAgICAgIC5jYWxsKCgpID0+IHtcclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIOmihOWKoOi9veaIkOWKn+WQjuWKoOi9veWcuuaZr1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikpXHJcbiAgICAgICAgICAgIC50bygwLjUse29wYWNpdHk6IDI1NX0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICAvLyBjYy5sb2FkZXIucmVsZWFzZUFsbCgpO1xyXG4gICAgICAgIC8vIOmihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmvXHJcblxyXG4gICBcclxuICAgIH1cclxuXHJcblxyXG4gICAgcmVhZFVzZXJEYXRhKHJldHJ5Q291bnQgPSAwKXtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHsgXHJcbiAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImxldmVsXCIpO1xyXG4gICAgICAgICAgICAgICAgLy/ml6fnmoTor7vlj5bmlbDmja7orr7nva7mlbDmja7mlrnms5Us5Lul5by66IGU572R5Li65Li7XHJcbiAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8gPT0gdW5kZWZpbmVkIHx8IGxldmVsSW5mbyA9PSBcIlwiIHx8IGxldmVsSW5mbyA9PSBudWxsKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9sZFJlYWREYXRhKHJldHJ5Q291bnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy/mlrDnmoTor7vlj5bmlbDmja7orr7nva7mlrnms5XvvIzku6XmnKzlnLDkuLrkuLtcclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXdSZWFkRGF0YSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLljbPlsIbor7vlj5bkvZPlipvlgLxcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvlgLzlrozmiJDov5vlhaXmuLjmiI9cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgIH1cclxuICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQ1ID0gdHJ1ZTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0SGVhbHRoKG51bGwpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgLy8g5a2Y5YKo55So5oi35pWw5o2uXHJcbiAgICB9XHJcblxyXG4gICAgcmVhZE11c2ljQ29uZmlnKCl7XHJcbiAgICAgICAgbGV0IGF1ZGlvSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJtdXNpY1wiKTtcclxuICAgICAgICBpZihhdWRpb0luZm8gPT0gdW5kZWZpbmVkIHx8IGF1ZGlvSW5mbyA9PSBcIlwiIHx8IGF1ZGlvSW5mbyA9PSBudWxsKXtcclxuICAgICAgICAgICAgYXVkaW9JbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgXCJtdXNpY09wZW5cIjogdHJ1ZSwgICAgICAgICAgICAgLy/pn7PkuZBcclxuICAgICAgICAgICAgICAgIFwiZWZmZWN0T3BlblwiOiB0cnVlLCAgICAgICAgICAgIC8v6Z+z5pWIXHJcbiAgICAgICAgICAgICAgICBcInZpYnJhdGVPcGVuXCI6IHRydWUsICAgICAgICAgICAvL+mch+WKqFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJtdXNpY1wiLGF1ZGlvSW5mbyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4gPSBhdWRpb0luZm8ubXVzaWNPcGVuO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IGF1ZGlvSW5mby5lZmZlY3RPcGVuO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW4gPSBhdWRpb0luZm8udmlicmF0ZU9wZW47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvL+aWsOeUqOaIt++8jOacieacrOWcsOe8k+WtmOivu+WPlumFjee9rlxyXG4gICAgbmV3UmVhZERhdGEoKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuivu+WPluaWsOS/oeaBr1wiKTtcclxuICAgICAgICBsZXQgb3BlbmlkID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcIm9wZW5pZFwiKTtcclxuICAgICAgICBpZihvcGVuaWQgPT0gbnVsbCB8fCBvcGVuaWQgPT0gXCJcIiB8fCBvcGVuaWQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnIlvcGVuaWRcIik7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckRhdGEnLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygn6K+75Y+W55So5oi35pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmNvZGUgPT0gNDA0ICYmIHJlcy5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOeUqOaIt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihyZXMucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5kYXRhKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VybmFtZSA9IHJlcy5yZXN1bHQuZGF0YS51c2VybmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VyYXZhdGFyID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJhdmF0YXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpc3Rlcl90aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X3VzZXJTZXQocmVnaXN0ZXJfdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwib3BlbmlkXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKUnLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKG9wZW5pZClcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSBvcGVuaWQ7XHJcbiAgICAgICAgfVxyXG4gICBcclxuXHJcblxyXG4gICAgICAgIC8v562J57qn5L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckxldmVsKChkYXRhKSA9PntcclxuICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJsZXZlbFwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOWFs+WNoeaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ562J57qn5L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYobGV2ZWxJbmZvLmxldmVsKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pyJ562J57qn5L+h5oGv77yM5LuO5YWz5Y2h5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAvL+a4uOaIj+WJjeerr+WtmOWCqCDmlrDkuo7mnI3liqHlmajnq68s5Lul5ri45oiP5YmN56uv5L+h5oGv5Li65Li777yM5pS+5pyN5Yqh5Zmo5a2Y5YKoXHJcbiAgICAgICAgICAgICAgICBsZXQgdGVtcCA9IGRhdGEucmVzdWx0LnRpbWVzdGFtcCAtIGxldmVsSW5mby50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuetiee6p+aXtumXtOW3rjpcIix0ZW1wKTtcclxuICAgICAgICAgICAgICAgIGlmKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBsZXZlbEluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8ubGV2ZWwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7pea4uOaIj+WJjeerr+etiee6p+S4uuWHhlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi562J57qn5Li6OlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v5pyN5Yqh5Zmo56uv5a2Y5YKo5pe26Ze05paw5LqO5ri45oiP56uv77yM5Lul5pyN5Yqh5Zmo56uv5Li65Li7LOW+gOWJjeerr+WtmOWCqFxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peacjeWKoeWZqOetiee6p+S4uuWHhlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGRhdGEucmVzdWx0LmRhdGE7IFxyXG4gICAgICAgICAgICAgICAgICAgIGxldmVsSW5mby5sZXZlbCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbDtcclxuICAgICAgICAgICAgICAgICAgICBsZXZlbEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiMTExMTExMeWtmOWCqOWFs+WNoeaVsOaNrjpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v6YeR5biB5L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckNvaW4oKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgY29pbkluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwiY29pblwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmHkeW4geaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGlmKGNvaW5JbmZvLmNvaW4pXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInph5HluIHkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnInph5HluIHkv6Hmga/vvIzku47ph5HluIHmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgIC8v5ri45oiP5YmN56uv5a2Y5YKoIOaWsOS6juacjeWKoeWZqOerryzku6XmuLjmiI/liY3nq6/kv6Hmga/kuLrkuLvvvIzmlL7mnI3liqHlmajlrZjlgqhcclxuICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLph5HluIHml7bpl7Tlt646XCIsdGVtcCk7XHJcbiAgICAgICAgICAgICAgICBpZigoZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peWJjeerr+mHkeW5o+S4uuWHhjpcIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY29pbkluZm8uY29pbilcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gZGF0YS5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29pbkluZm8uY29pbiA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2luSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMTExMTExMTExMTFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaUueWPmOWQjumHkeW4gTpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL+acjeWKoeWZqOerr+WtmOWCqOaXtumXtOaWsOS6jua4uOaIj+err++8jOS7peacjeWKoeWZqOerr+S4uuS4uyzlvoDliY3nq6/lrZjlgqhcclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLku6XmnI3liqHlmajph5HluaPkuLrlh4Y6XCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBkYXRhLnJlc3VsdC5kYXRhOyBcclxuICAgICAgICAgICAgICAgICAgICBjb2luSW5mby5jb2luID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW47XHJcbiAgICAgICAgICAgICAgICAgICAgY29pbkluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMjIyMlwiKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v6YGT5YW35L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlclByb3AoKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmBk+WFt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YGT5YW35L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgaWYocHJvcEluZm8uZnJlZXplQW1vdW50ID09IHVuZGVmaW5lZCB8fCBwcm9wSW5mby5oYW1tZXJBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLm1hZ2ljQW1vdW50ID09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMumBk+WFt+aVsOaNruW8guW4uFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91biA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mb05ldyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIxMTExMTEx5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHByb3BJbmZvLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBwcm9wSW5mby5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBwcm9wSW5mby5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDAsMCwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pys5Zyw5pe26Ze05oizXCIscHJvcEluZm8udGltZXN0YW1wLFwi5pyN5Yqh5Zmo5pe26Ze05oizXCIsZGF0YS5yZXN1bHQudGltZXN0YW1wKTtcclxuICAgICAgICAgICAgICAgIGlmKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBwcm9wSW5mby50aW1lc3RhbXApIDwgMTAwMDApe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Lul5YmN56uv6YGT5YW35Li65Li7OlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBpZihwcm9wSW5mby5mcmVlemVBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLmhhbW1lckFtb3VudCA9PSB1bmRlZmluZWQgfHwgcHJvcEluZm8ubWFnaWNBbW91bnQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIxMTExMTHpgZPlhbfmlbDmja7lvILluLhcIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IGRhdGEucmVzdWx0LmRhdGEubWFnaWNfd2FuZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvTmV3ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIzMzMzMzPkuIrkvKDpgZPlhbfkv6Hmga86XCIscHJvcEluZm9OZXcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLpgZPlhbfmlbDmja7mraPluLhcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBwcm9wSW5mby5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBwcm9wSW5mby5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IHByb3BJbmZvLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLDAsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmhhbW1lcjtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvTmV3ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIyMjIyMjIyMuS4iuS8oOmBk+WFt+S/oeaBrzpcIixwcm9wSW5mb05ldyxkYXRhLnJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvL+aXp+eUqOaIt++8jOaXoOacrOWcsOe8k+WtmOivu+WPlumFjee9rlxyXG4gICAgb2xkUmVhZERhdGEocmV0cnlDb3VudDpudW1iZXIpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6K+75Y+W5pen5L+h5oGvXCIpO1xyXG4gICAgICAgIGNvbnN0IE1BWF9SRVRSSUVTID0gMTU7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAvLyDor7vlj5bnlKjmiLfmlbDmja5cclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgIG5hbWU6ICd1c2VyRGF0YScsXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3VjY2VzczogcmVzID0+IHsgICBcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ+ivu+WPlueUqOaIt+aVsOaNruaIkOWKnycsIHJlcy5yZXN1bHQpXHJcbiAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuY29kZSA9PSA0MDQgJiYgcmVzLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw55So5oi35pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5vcGVuaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZpcnN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0ge1wibGV2ZWxcIjowLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICBsZXQgY29pbkluZm8gPSB7XCJjb2luXCI6MCxcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjMzMzMzMzMzMzMzXCIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcCxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VySW5mbygoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg55So5oi35L+h5oGv5oiQ5YqfXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3VzZXJEYXRhJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOWQju+8jOivu+WPlueUqOaIt+S/oeaBr++8jOS4uuS4iuaKpeazqOWGjOaXtumXtFwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfdXNlclNldCh0aW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuacjeWKoeWZqOS5n+ayoeaciemHkeW4geS/oeaBr1wiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyTGV2ZWwoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwwLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOmBk+WFt+S/oeaBr+aIkOWKn1wiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi572R57uc5byC5bi477yM5q2j5Zyo5Yqq5Yqb5Yqg6L29XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbGRSZWFkRGF0YSgwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHJlcy5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5kYXRhKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkID0gcmVzLnJlc3VsdC5vcGVuaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gcmVzLnJlc3VsdC5kYXRhLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gcmVzLnJlc3VsdC5kYXRhLmNvaW5BbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VybmFtZSA9IHJlcy5yZXN1bHQuZGF0YS51c2VybmFtZTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcmF2YXRhciA9IHJlcy5yZXN1bHQuZGF0YS51c2VyYXZhdGFyO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJvcGVuaWRcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpc3Rlcl90aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV91c2VyU2V0KHJlZ2lzdGVyX3RpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckNvaW4oKGRhdGEpID0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw6YeR5biB5pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvaW5JbmZvID0ge1wiY29pblwiOjAsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeaciemHkeW4geS/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiK5LygXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pyJ6YeR5biB5L+h5oGv77yM5LuO6YeR5biB5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IGRhdGEucmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29pbkluZm8gPSB7XCJjb2luXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlrZjlgqjph5HluIHkv6Hmga86XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCI0NDQ0NDQ0NDQ0XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9LCA1MDApO1xyXG5cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJMZXZlbCgoZGF0YSkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOWFs+WNoeaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInnrYnnuqfkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsZXZlbEluZm8gPSB7XCJsZXZlbFwiOjAsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIjMzMzMzM+WtmOWCqOWFs+WNoeaVsOaNrjpcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckxldmVsKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmi7/liLDnmoTmlbDmja5cIixkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuacieetiee6p+S/oeaBr++8jOS7juWFs+WNoeaOpeWPo+aLv+WIsOaVsOaNrlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBkYXRhLnJlc3VsdC5kYXRhOyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IHtcImxldmVsXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCI0NDQ0NDTlrZjlgqjlhbPljaHkv6Hmga86XCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJQcm9wKChkYXRhKSA9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmBk+WFt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YGT5YW35L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwwLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmnInpgZPlhbfkv6Hmga/vvIzku47pgZPlhbfmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZSB8fCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuaGFtbWVyIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOmBk+WFt+S/oeaBrzpcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9LFxyXG4gICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+ivu+WPlueUqOaIt+aVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgaWYgKHJldHJ5Q291bnQgPCBNQVhfUkVUUklFUykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYOivu+WPlueUqOaIt+aVsOaNruWksei0pe+8jOesrCAke3JldHJ5Q291bnQgKyAxfSDmrKHph43or5XvvIzplJnor6/kv6Hmga86YCwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyDlu7bov58gMiDnp5LlkI7ph43or5VcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEocmV0cnlDb3VudCArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMDApO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKXvvIzovr7liLDmnIDlpKfph43or5XmrKHmlbDvvIzpgIDlh7rmuLjmiI8nLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOmAgOWHuua4uOaIj1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmdhbWUuZW5kKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHNldFVzZXJEYXRhKCl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HYW1lVG9vbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKBcIixkYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0VGltZUN1dERvd24oKXtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBpZih0aGlzLnRpbWVOdW1iZXIgPD0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVOdW1iZXIgLT0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjaywgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcFRpbWVDdXREb3duKCl7XHJcbiAgICAgICAgaWYodGhpcy5zY2hlZHVsZUNhbGxiYWNrKXtcclxuICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICAgICAgICBpZih0aGlzLmxvYWQxICYmIHRoaXMubG9hZDIgJiYgdGhpcy5sb2FkMyAgJiYgdGhpcy5sb2FkNCAmJiB0aGlzLmxvYWQ1ICYmIHRoaXMudGltZU51bWJlciA8PSAwKXtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMSA9IHRoaXMubG9hZDIgPSBmYWxzZTtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV9Jbml0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdsRixpREFBZ0Q7QUFFMUMsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUEwcEJDO1FBdnBCRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFJdkIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyxpQkFBVyxHQUEyQixFQUFFLENBQUM7UUFHekMseURBQXlEO1FBQ3pELG1EQUFtRDtRQUVuRCxXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7O0lBZ29CM0IsQ0FBQztvQkExcEJvQixXQUFXO0lBK0I1Qix3QkFBd0I7SUFFeEIsNEJBQU0sR0FBTjtRQUFBLGlCQTRFQztRQTFFRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxD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QU8sRUFBQyxNQUFNLEVBQUMsQ0FBQztvREFDVjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUM7b0RBQ1Y7SUFoQnhCLFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0EwcEIvQjtJQUFELGtCQUFDO0NBMXBCRCxBQTBwQkMsQ0ExcEJ3QyxFQUFFLENBQUMsU0FBUyxHQTBwQnBEO2tCQTFwQm9CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgeyBNaW5pR2FtZU1hbmFnZXIgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIHN0YXRpYyBfaW5zdGFuY2UgOiBHYW1lTWFuYWdlciA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuaWueWdl+aVsOe7hFwifSlcclxuICAgIEJsb2NrX0FycmF5IDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLlopnlo4HmlbDnu4RcIn0pXHJcbiAgICBXYWxsX1ByZWZhYiA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5TcHJpdGVBdGxhc10sIHRvb2x0aXA6XCLmlrnlnZfpopzoibJcIn0pXHJcbiAgICBCbG9ja19Db2xvciA6IEFycmF5PGNjLlNwcml0ZUF0bGFzPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDQgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQ1IDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBzY2hlZHVsZUNhbGxiYWNrOiBhbnk7XHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXI7XHJcblxyXG4gICAgXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICB3aW5kb3cuaW5pdE1ncigpO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IDM7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5pbml0KHRydWUpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lU3RhdGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlYWRNdXNpY0NvbmZpZygpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6Z+z5LmQ5byA5YWzXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbik7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5TXVzaWNHYW1lKCk7XHJcblxyXG4gICAgICAgIHRoaXMubG9hZDEgPSB0aGlzLmxvYWQyID0gdGhpcy5sb2FkMyA9IHRoaXMubG9hZDQgPSB0aGlzLmxvYWQ1ID1mYWxzZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEoKTtcclxuICAgICAgICB9LCAyMDApO1xyXG4gXHJcblxyXG4gICAgICAgIGlmIChHYW1lTWFuYWdlci5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgICAgICAgICBjYy5nYW1lLmFkZFBlcnNpc3RSb290Tm9kZSh0aGlzLm5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdwcmVmYWIvYmxvY2snO1xyXG4gICAgICAgIGNvbnN0IHBhdGgyID0gJ3ByZWZhYi93YWxsJztcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoLCBjYy5QcmVmYWIsIChlcnIsIGFzc2V0czogY2MuUHJlZmFiW10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5zZXRTb3J0KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDEgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoMiwgY2MuUHJlZmFiLCAoZXJyLCBhc3NldHM6IGNjLlByZWZhYltdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5XYWxsX1ByZWZhYiA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5sb2FkMiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0V2FsbFByZWZhYlNvcnQoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gZGVidWdnZXI7XHJcblxyXG4gICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIC8vICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVycikgPT4ge1xyXG4gICAgICAgIC8vICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+mihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8vICAgICAgICAgfVxyXG4gICAgICAgIC8vICAgICB9KTtcclxuICAgICAgICAvLyB9LCAxMDAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDmo4DmtYvlvq7kv6HlsI/muLjmiI/liIfliLDlkI7lj7BcclxuICAgICAgICBpZiAoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpIHtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4Lm9uSGlkZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGlkZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgLy8g5qOA5rWL5b6u5L+h5bCP5ri45oiP5Zue5Yiw5YmN5Y+wXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5vblNob3coKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblNob3coKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkhpZGUgKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIGNjLmdhbWUucGF1c2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNob3cgKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnJlc3VtZU11c2ljKCk7XHJcbiAgICAgICAgY2MuZ2FtZS5yZXN1bWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkUGFydGljbGVFZmZlY3RzKCkge1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuXHJcbiAgICBzZXRXYWxsUHJlZmFiU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsnZG93bicsICdkb3duTGVmdCcsICdkb3duUmlnaHQnLCAnbGVmdCcsJ3JpZ2h0JywndXAnLCd1cExlZnQnLCd1cFJpZ2h0J107XHJcbiAgICAgICAgdGhpcy5XYWxsX1ByZWZhYi5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgc2V0UGFydGljbGVTb3J0KCkge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gWyd0b3AnLCAnYm90JywgJ3JpZycsICdsZWYnXTtcclxuICAgICAgICB0aGlzLnBhcnRpY2xlRWZmZWN0cy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U29ydCgpe1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQXJyYXkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyDku47lkI3np7DkuK3mj5Dlj5bmlbDlrZfpg6jliIZcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQSA9IHBhcnNlSW50KGEubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bWJlckIgPSBwYXJzZUludChiLm5hbWUubWF0Y2goL1xcZCsvKT8uWzBdIHx8ICcwJywgMTApO1xyXG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyQSAtIG51bWJlckI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzdGFydEdhbWUoKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIui/m+WFpeWcuuaZr+S5i+WJjV9fX19fX19fX19fX19cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKSlcclxuICAgICAgICAgICAgLnRvKDAuNSwge29wYWNpdHk6IDEwMH0pXHJcbiAgICAgICAgICAgIC5jYWxsKCgpID0+IHtcclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIOmihOWKoOi9veaIkOWKn+WQjuWKoOi9veWcuuaZr1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikpXHJcbiAgICAgICAgICAgIC50bygwLjUse29wYWNpdHk6IDI1NX0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICAvLyBjYy5sb2FkZXIucmVsZWFzZUFsbCgpO1xyXG4gICAgICAgIC8vIOmihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmvXHJcblxyXG4gICBcclxuICAgIH1cclxuXHJcblxyXG4gICAgcmVhZFVzZXJEYXRhKHJldHJ5Q291bnQgPSAwKXtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHsgXHJcbiAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImxldmVsXCIpO1xyXG4gICAgICAgICAgICAgICAgLy/ml6fnmoTor7vlj5bmlbDmja7orr7nva7mlbDmja7mlrnms5Us5Lul5by66IGU572R5Li65Li7XHJcbiAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8gPT0gdW5kZWZpbmVkIHx8IGxldmVsSW5mbyA9PSBcIlwiIHx8IGxldmVsSW5mbyA9PSBudWxsKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9sZFJlYWREYXRhKHJldHJ5Q291bnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy/mlrDnmoTor7vlj5bmlbDmja7orr7nva7mlrnms5XvvIzku6XmnKzlnLDkuLrkuLtcclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXdSZWFkRGF0YSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLljbPlsIbor7vlj5bkvZPlipvlgLxcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvlgLzlrozmiJDov5vlhaXmuLjmiI9cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgIH1cclxuICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQ1ID0gdHJ1ZTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0SGVhbHRoKG51bGwpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgLy8g5a2Y5YKo55So5oi35pWw5o2uXHJcbiAgICB9XHJcblxyXG4gICAgcmVhZE11c2ljQ29uZmlnKCl7XHJcbiAgICAgICAgbGV0IGF1ZGlvSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJtdXNpY1wiKTtcclxuICAgICAgICBpZihhdWRpb0luZm8gPT0gdW5kZWZpbmVkIHx8IGF1ZGlvSW5mbyA9PSBcIlwiIHx8IGF1ZGlvSW5mbyA9PSBudWxsKXtcclxuICAgICAgICAgICAgYXVkaW9JbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgXCJtdXNpY09wZW5cIjogdHJ1ZSwgICAgICAgICAgICAgLy/pn7PkuZBcclxuICAgICAgICAgICAgICAgIFwiZWZmZWN0T3BlblwiOiB0cnVlLCAgICAgICAgICAgIC8v6Z+z5pWIXHJcbiAgICAgICAgICAgICAgICBcInZpYnJhdGVPcGVuXCI6IHRydWUsICAgICAgICAgICAvL+mch+WKqFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJtdXNpY1wiLGF1ZGlvSW5mbyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4gPSBhdWRpb0luZm8ubXVzaWNPcGVuO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IGF1ZGlvSW5mby5lZmZlY3RPcGVuO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW4gPSBhdWRpb0luZm8udmlicmF0ZU9wZW47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvL+aWsOeUqOaIt++8jOacieacrOWcsOe8k+WtmOivu+WPlumFjee9rlxyXG4gICAgbmV3UmVhZERhdGEoKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuivu+WPluaWsOS/oeaBr1wiKTtcclxuICAgICAgICBsZXQgb3BlbmlkID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcIm9wZW5pZFwiKTtcclxuICAgICAgICBpZihvcGVuaWQgPT0gbnVsbCB8fCBvcGVuaWQgPT0gXCJcIiB8fCBvcGVuaWQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnIlvcGVuaWRcIik7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckRhdGEnLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygn6K+75Y+W55So5oi35pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmNvZGUgPT0gNDA0ICYmIHJlcy5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOeUqOaIt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihyZXMucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5kYXRhKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VybmFtZSA9IHJlcy5yZXN1bHQuZGF0YS51c2VybmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VyYXZhdGFyID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJhdmF0YXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpc3Rlcl90aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X3VzZXJTZXQocmVnaXN0ZXJfdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwib3BlbmlkXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKUnLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKG9wZW5pZClcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSBvcGVuaWQ7XHJcbiAgICAgICAgfVxyXG4gICBcclxuXHJcblxyXG4gICAgICAgIC8v562J57qn5L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckxldmVsKChkYXRhKSA9PntcclxuICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJsZXZlbFwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOWFs+WNoeaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ562J57qn5L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYobGV2ZWxJbmZvLmxldmVsKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pyJ562J57qn5L+h5oGv77yM5LuO5YWz5Y2h5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAvL+a4uOaIj+WJjeerr+WtmOWCqCDmlrDkuo7mnI3liqHlmajnq68s5Lul5ri45oiP5YmN56uv5L+h5oGv5Li65Li777yM5pS+5pyN5Yqh5Zmo5a2Y5YKoXHJcbiAgICAgICAgICAgICAgICBsZXQgdGVtcCA9IGRhdGEucmVzdWx0LnRpbWVzdGFtcCAtIGxldmVsSW5mby50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuetiee6p+aXtumXtOW3rjpcIix0ZW1wKTtcclxuICAgICAgICAgICAgICAgIGlmKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBsZXZlbEluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8ubGV2ZWwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7pea4uOaIj+WJjeerr+etiee6p+S4uuWHhlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi562J57qn5Li6OlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v5pyN5Yqh5Zmo56uv5a2Y5YKo5pe26Ze05paw5LqO5ri45oiP56uv77yM5Lul5pyN5Yqh5Zmo56uv5Li65Li7LOW+gOWJjeerr+WtmOWCqFxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peacjeWKoeWZqOetiee6p+S4uuWHhlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGRhdGEucmVzdWx0LmRhdGE7IFxyXG4gICAgICAgICAgICAgICAgICAgIGxldmVsSW5mby5sZXZlbCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbDtcclxuICAgICAgICAgICAgICAgICAgICBsZXZlbEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiMTExMTExMeWtmOWCqOWFs+WNoeaVsOaNrjpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v6YeR5biB5L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckNvaW4oKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgY29pbkluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwiY29pblwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmHkeW4geaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGlmKGNvaW5JbmZvLmNvaW4pXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInph5HluIHkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnInph5HluIHkv6Hmga/vvIzku47ph5HluIHmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgIC8v5ri45oiP5YmN56uv5a2Y5YKoIOaWsOS6juacjeWKoeWZqOerryzku6XmuLjmiI/liY3nq6/kv6Hmga/kuLrkuLvvvIzmlL7mnI3liqHlmajlrZjlgqhcclxuICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLph5HluIHml7bpl7Tlt646XCIsdGVtcCk7XHJcbiAgICAgICAgICAgICAgICBpZigoZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peWJjeerr+mHkeW5o+S4uuWHhjpcIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY29pbkluZm8uY29pbilcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gZGF0YS5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29pbkluZm8uY29pbiA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2luSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMTExMTExMTExMTFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaUueWPmOWQjumHkeW4gTpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL+acjeWKoeWZqOerr+WtmOWCqOaXtumXtOaWsOS6jua4uOaIj+err++8jOS7peacjeWKoeWZqOerr+S4uuS4uyzlvoDliY3nq6/lrZjlgqhcclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLku6XmnI3liqHlmajph5HluaPkuLrlh4Y6XCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBkYXRhLnJlc3VsdC5kYXRhOyBcclxuICAgICAgICAgICAgICAgICAgICBjb2luSW5mby5jb2luID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW47XHJcbiAgICAgICAgICAgICAgICAgICAgY29pbkluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMjIyMlwiKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v6YGT5YW35L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlclByb3AoKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmBk+WFt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YGT5YW35L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgaWYocHJvcEluZm8uZnJlZXplQW1vdW50ID09IHVuZGVmaW5lZCB8fCBwcm9wSW5mby5oYW1tZXJBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLm1hZ2ljQW1vdW50ID09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMumBk+WFt+aVsOaNruW8guW4uFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91biA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mb05ldyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIxMTExMTEx5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBwcm9wSW5mby5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHByb3BJbmZvLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBwcm9wSW5mby5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBwcm9wSW5mby5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gcHJvcEluZm8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcHJvcEluZm8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLDAsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuacrOWcsOaXtumXtOaIs1wiLHByb3BJbmZvLnRpbWVzdGFtcCxcIuacjeWKoeWZqOaXtumXtOaIs1wiLGRhdGEucmVzdWx0LnRpbWVzdGFtcCk7XHJcbiAgICAgICAgICAgICAgICBpZigoZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gcHJvcEluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peWJjeerr+mBk+WFt+S4uuS4uzpcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYocHJvcEluZm8uZnJlZXplQW1vdW50ID09IHVuZGVmaW5lZCB8fCBwcm9wSW5mby5oYW1tZXJBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLm1hZ2ljQW1vdW50ID09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMTExMTEx6YGT5YW35pWw5o2u5byC5bi4XCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuaGFtbWVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mb05ldyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMzMzMzMz5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6YGT5YW35pWw5o2u5q2j5bi4XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gcHJvcEluZm8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gcHJvcEluZm8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBwcm9wSW5mby5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwwLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mb05ldyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMjLkuIrkvKDpgZPlhbfkv6Hmga86XCIscHJvcEluZm9OZXcsZGF0YS5yZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm9OZXcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLy/ml6fnlKjmiLfvvIzml6DmnKzlnLDnvJPlrZjor7vlj5bphY3nva5cclxuICAgIG9sZFJlYWREYXRhKHJldHJ5Q291bnQ6bnVtYmVyKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuivu+WPluaXp+S/oeaBr1wiKTtcclxuICAgICAgICBjb25zdCBNQVhfUkVUUklFUyA9IDE1O1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgLy8g6K+75Y+W55So5oi35pWw5o2uXHJcbiAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICBuYW1lOiAndXNlckRhdGEnLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7ICAgXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCfor7vlj5bnlKjmiLfmlbDmja7miJDlip8nLCByZXMucmVzdWx0KVxyXG4gICAgICAgICAgICBpZihyZXMucmVzdWx0LmNvZGUgPT0gNDA0ICYmIHJlcy5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOeUqOaIt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQub3BlbmlkKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkID0gcmVzLnJlc3VsdC5vcGVuaWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IHtcImxldmVsXCI6MCxcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgbGV0IGNvaW5JbmZvID0ge1wiY29pblwiOjAsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIzMzMzMzMzMzMzM1wiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOjAsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOjAsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXAsXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckluZm8oKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOeUqOaIt+S/oeaBr+aIkOWKn1wiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICd1c2VyRGF0YScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDlkI7vvIzor7vlj5bnlKjmiLfkv6Hmga/vvIzkuLrkuIrmiqXms6jlhozml7bpl7RcIilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZSA9IHJlcy5yZXN1bHQuZGF0YS5yZWdpc3Rlcl90aW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X3VzZXJTZXQodGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmnI3liqHlmajkuZ/msqHmnInph5HluIHkv6Hmga9cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyQ29pbihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckxldmVsKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDAsMCwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDpgZPlhbfkv6Hmga/miJDlip9cIixkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIue9kee7nOW8guW4uO+8jOato+WcqOWKquWKm+WKoOi9vVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub2xkUmVhZERhdGEoMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAxMDAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihyZXMucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuZGF0YSl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IHJlcy5yZXN1bHQub3BlbmlkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IHJlcy5yZXN1bHQuZGF0YS5sZXZlbDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IHJlcy5yZXN1bHQuZGF0YS5jb2luQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSByZXMucmVzdWx0LmRhdGEuZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSByZXMucmVzdWx0LmRhdGEuaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcm5hbWUgPSByZXMucmVzdWx0LmRhdGEudXNlcm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJhdmF0YXIgPSByZXMucmVzdWx0LmRhdGEudXNlcmF2YXRhcjtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwib3BlbmlkXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVnaXN0ZXJfdGltZSA9IHJlcy5yZXN1bHQuZGF0YS5yZWdpc3Rlcl90aW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfdXNlclNldChyZWdpc3Rlcl90aW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJDb2luKChkYXRhKSA9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmHkeW4geaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2luSW5mbyA9IHtcImNvaW5cIjowLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInph5HluIHkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyQ29pbigoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS8oFwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaciemHkeW4geS/oeaBr++8jOS7jumHkeW4geaOpeWPo+aLv+WIsOaVsOaNrlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBkYXRhLnJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvaW5JbmZvID0ge1wiY29pblwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5a2Y5YKo6YeR5biB5L+h5oGvOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiNDQ0NDQ0NDQ0NFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyTGV2ZWwoKGRhdGEpID0+e1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gNDA0ICYmIGRhdGEucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDlhbPljaHmlbDmja5cIil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ562J57qn5L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0ge1wibGV2ZWxcIjowLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCIzMzMzMzPlrZjlgqjlhbPljaHmlbDmja46XCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5ou/5Yiw55qE5pWw5o2uXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmnInnrYnnuqfkv6Hmga/vvIzku47lhbPljaHmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gZGF0YS5yZXN1bHQuZGF0YTsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsZXZlbEluZm8gPSB7XCJsZXZlbFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCxcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiNDQ0NDQ05a2Y5YKo5YWz5Y2h5L+h5oGvOlwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyUHJvcCgoZGF0YSkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gNDA0ICYmIGRhdGEucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDpgZPlhbfmlbDmja5cIil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeaciemBk+WFt+S/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOjAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOjAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOmBk+WFt+S/oeaBrzpcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDAsMCwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pyJ6YGT5YW35L+h5oGv77yM5LuO6YGT5YW35o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5mcmVlemUgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmhhbW1lciB8fCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDpgZPlhbfkv6Hmga86XCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSxcclxuICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKUnLCBlcnIpXHJcbiAgICAgICAgICAgIGlmIChyZXRyeUNvdW50IDwgTUFYX1JFVFJJRVMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGDor7vlj5bnlKjmiLfmlbDmja7lpLHotKXvvIznrKwgJHtyZXRyeUNvdW50ICsgMX0g5qyh6YeN6K+V77yM6ZSZ6K+v5L+h5oGvOmAsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5bu26L+fIDIg56eS5ZCO6YeN6K+VXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVhZFVzZXJEYXRhKHJldHJ5Q291bnQgKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9LCAyMDAwKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign6K+75Y+W55So5oi35pWw5o2u5aSx6LSl77yM6L6+5Yiw5pyA5aSn6YeN6K+V5qyh5pWw77yM6YCA5Ye65ri45oiPJywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyDpgIDlh7rmuLjmiI9cclxuICAgICAgICAgICAgICAgICAgICBjYy5nYW1lLmVuZCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBzZXRVc2VyRGF0YSgpe1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR2FtZVRvb2woKGRhdGEpPT57XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5LygXCIsZGF0YSk7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBzdGFydFRpbWVDdXREb3duKCl7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZUNhbGxiYWNrID0gZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgaWYodGhpcy50aW1lTnVtYmVyIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aW1lTnVtYmVyIC09IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2ssIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0b3BUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIGlmKHRoaXMuc2NoZWR1bGVDYWxsYmFjayl7XHJcbiAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUgKGR0KSB7XHJcbiAgICAgICAgaWYodGhpcy5sb2FkMSAmJiB0aGlzLmxvYWQyICYmIHRoaXMubG9hZDMgICYmIHRoaXMubG9hZDQgJiYgdGhpcy5sb2FkNSAmJiB0aGlzLnRpbWVOdW1iZXIgPD0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDEgPSB0aGlzLmxvYWQyID0gZmFsc2U7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfSW5pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0R2FtZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0= \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/Map.js b/temp/quick-scripts/dst/assets/Script/Map.js index eac56fe..ea34bbf 100644 --- a/temp/quick-scripts/dst/assets/Script/Map.js +++ b/temp/quick-scripts/dst/assets/Script/Map.js @@ -113,6 +113,8 @@ var MapConroler = /** @class */ (function (_super) { this.homeCanTouch = true; this.againCanTouch = true; this.new_mode = 0; + this.count_Time = 0; + this.add_Time = 0; this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString(); this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString(); this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString(); @@ -154,8 +156,6 @@ var MapConroler = /** @class */ (function (_super) { this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time"); this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level"); this.timeNumber = cc.fx.GameConfig.LEVEL_INFO[0].time; - this.count_Time = 0; - this.add_Time = 0; NumberToImage_1.default.getTimeMargin(this.timeNumber, 50, "time_", this.timeLabel); // var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber); // this.timeLabel.string = timeTemp.toString(); @@ -180,6 +180,8 @@ var MapConroler = /** @class */ (function (_super) { this.mapBlockArray = []; this.freezeArray = []; this.loackArray = []; + this.count_Time = 0; + this.add_Time = 0; var startX = this.mapWidth % 2 == 0 ? -(this.mapWidth - 1) * 60 : -(this.mapWidth - 1) * 60; var startY = this.mapHeight % 2 == 0 ? -(this.mapHeight - 1) * 60 : -(this.mapHeight - 1) * 60; // startX =(this.mapWidth-1)*60 + 60; @@ -1164,11 +1166,7 @@ var MapConroler = /** @class */ (function (_super) { this.stopTimeCutDown(); // console.log("成功消除一个"); cc.fx.GameTool.changeCoin(40); - var timeData = { - count_Time: this.count_Time, - add_Time: this.add_Time - }; - cc.fx.GameTool.addLevel(timeData); + cc.fx.GameTool.addLevel(this.count_Time, this.add_Time); this.check_NewMode(); setTimeout(function () { _this.node.parent.parent.getChildByName("Win").active = true; @@ -1192,7 +1190,7 @@ var MapConroler = /** @class */ (function (_super) { cc.fx.AudioManager._instance.playEffect("anniu_Big", null); if (cc.fx.GameConfig.GM_INFO.level > 156) { cc.fx.GameConfig.GM_INFO.level = 156; - MapConroler_1._instance = null; + // MapConroler._instance = null; if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; this.openNewMode(2); @@ -1221,7 +1219,7 @@ var MapConroler = /** @class */ (function (_super) { } else { // console.log("下一关"); - MapConroler_1._instance = null; + // MapConroler._instance = null; if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; this.openNewMode(2); @@ -1252,7 +1250,7 @@ var MapConroler = /** @class */ (function (_super) { if (!this.againCanTouch) return; this.againCanTouch = false; - MapConroler_1._instance = null; + // MapConroler._instance = null; cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.parent.parent.parent.getChildByName("zhuanchang").active = true; this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); @@ -1325,7 +1323,7 @@ var MapConroler = /** @class */ (function (_super) { return; } // MiniGameSdk.API.showToast("体力值减少"); - MapConroler_1._instance = null; + // MapConroler._instance = null; cc.fx.GameConfig.LEVEL_INFO_init(false, 0); if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; @@ -1940,4 +1938,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RzVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7a0RBQ1E7SUFHMUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzttREFDUztJQUczQjtRQURLLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNLO0lBSTNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0RBQ007SUFyRFAsV0FBVztRQUQvQixPQUFPO09BQ2EsV0FBVyxDQW0rRC9CO0lBQUQsa0JBQUM7Q0FuK0RELEFBbStEQyxDQW4rRHdDLEVBQUUsQ0FBQyxTQUFTLEdBbStEcEQ7a0JBbitEb0IsV0FBVyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmltcG9ydCBHYW1lTWFuYWdlciBmcm9tIFwiLi9HYW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBMUUNvbGxpZGUgfSBmcm9tIFwiLi9scV9jb2xsaWRlX3N5c3RlbS9scV9jb2xsaWRlXCI7XHJcbmltcG9ydCBOdW1iZXJUb0ltYWdlIGZyb20gXCIuL051bWJlclRvSW1hZ2VcIjtcclxuaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVTZGtcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNYXBDb25yb2xlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgX2luc3RhbmNlOiBhbnk7XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLmlrnlnZfmlbDnu4RcIn0pXHJcbiAgICBCbG9ja19BcnJheSA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOlwi5pa55Z2X6YGT5YW35pWw57uEXCJ9KVxyXG4gICAgQmxvY2tfUHJvcCA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgTWFwQmxvY2tQcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOlwi5pa55Z2X6aKc6ImyXCJ9KVxyXG4gICAgQmxvY2tfQ29sb3IgOiBBcnJheTxjYy5TcHJpdGVBdGxhcz4gPSBbXTtcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuWimeWjgeaVsOe7hFwifSlcclxuICAgIFdhbGxfUHJlZmFiIDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICBcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgd2FsbFR1cm5QcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkJ1dHRvbilcclxuICAgIHRpbWVCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQnV0dG9uKVxyXG4gICAgZGVzdHJveUJ0bjogY2MuQnV0dG9uID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5CdXR0b24pXHJcbiAgICBtYWdpY0J0bjogY2MuQnV0dG9uID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGljZUxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBoYW1tZXJMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbWFnaWNMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbWFnaWNNYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGhhbW1lck1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgICAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZyZWV6ZU1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIFxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luUG9wOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICB0aW1lTGFiZWw6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgbGV2ZWxMYWJlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgbmV3X21vZGU6IG51bWJlciA9IDA7XHJcbiAgICBtYXBXaWR0aDogbnVtYmVyID0gMDtcclxuICAgIG1hcEhlaWdodDogbnVtYmVyID0gMDtcclxuICAgIHdhbGxOdW06IG51bWJlciA9IDA7XHJcbiAgICBibG9ja051bTogbnVtYmVyID0gMDtcclxuICAgIG1hcEJsb2Nrc1dhbGw6IGFueTsgICAgICAvL+WcsOWbvueahOaJgOacieW6leWdl1xyXG4gICAgbWFwSW5mbzogYW55OyAgICAgICAvL+WcsOWbvumZpOS6huW6leWdl+eahOWFtuS7luS/oeaBr1xyXG4gICAgYmxvY2tzOiBhbnk7ICAgICAgICAvL+aWueWdl+aVsOe7hFxyXG4gICAgd2FsbEluZm86IGFueTsgICAgICAvL+WimeWjgeaVsOe7hFxyXG4gICAgd2FsbEFycmF5OmFueTsgICAgICAvL1xyXG4gICAgb3BlbldhbGw6IGFueTsgICAgICAvL+W8gOWFs+WimeaVsOe7hFxyXG4gICAgZnJlZXplV2FsbDogYW55OyAgICAvL+WGu+e7k+WimeaVsOe7hFxyXG4gICAgcmlzZUZhbGxCbGNvazphbnk7ICAvL+WNh+mZjeWcsOWdl+aVsOe7hFxyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55Oy8v5YCS6K6h5pe255SoXHJcbiAgICBob21lQ2FuVG91Y2g6Ym9vbGVhbiA9IHRydWU7Ly/mjInpkq7lj6/nlKjnirbmgIFcclxuICAgIGFnYWluQ2FuVG91Y2g6Ym9vbGVhbiA9ICB0cnVlOy8v6YeN546p5oyJ6ZKu5Y+v5Lul55So54q25oCBXHJcbiAgICBnYW1lT3ZlcjogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP57uT5p2f54q25oCBXHJcbiAgICBnYW1lV2luOiBib29sZWFuID0gZmFsc2U7Ly/muLjmiI/og5zliKnnirbmgIFcclxuICAgIGdhbWVTdGFydDogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP5byA5aeL54q25oCBXHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXIgPSAwOyAvL+a4uOaIj+aXtumXtCDnlKjkuo7lgJLorqHml7ZcclxuICAgIGNvdW50X1RpbWU6IG51bWJlciA9IDA7IC8v55So5LqO57uf6K6h5oC75ri45oiP5pe26ZW/XHJcbiAgICBhZGRfVGltZTogbnVtYmVyID0gMDsgICAvL+Wkjea0u+aXtumXtFxyXG4gICAgbWFwQmxvY2tBcnJheTogYW55OyAgLy/lnLDlm77nmoTmiYDmnInmoLzlrZDnirbmgIHlrZjlgqhcclxuICAgIHBhdXNlOmJvb2xlYW4gPSBmYWxzZTsvL+aaguWBnOeKtuaAgVxyXG4gICAgaGFtbWVyOmJvb2xlYW4gPSBmYWxzZTsvL+mUpOWtkOeKtuaAgVxyXG4gICAgZnJlZXplQXJyYXk6IGFueTsgLy/lhrvnu5NcclxuICAgIGxvYWNrQXJyYXk6IGFueTsgLy/kuIrplIFcclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gbGVmdERvb3JzOiBbXTsgLy/lt6bpl6hcclxuICAgIHJpZ2h0RG9vcnM6IGFueTsgLy/lj7Ppl6hcclxuICAgIHRvcERvb3JzOiBhbnk7IC8v5LiK6ZeoXHJcbiAgICBib3R0b21Eb29yczogYW55OyAvL+S4i+mXqFxyXG4gICAgbGVmdERvb3JzOiBhbnk7XHJcblxyXG5cclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZVN0YXRlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1hc2sub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiQWRoZXNpdmVcIikuekluZGV4ID0gNTAwO1xyXG4gICAgICAgIGNjLmdhbWUuc2V0RnJhbWVSYXRlKDYzKTsgXHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4yXCIsbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcImRvd25cIixmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJkb3duXCIpIHtcclxuICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYmxvY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5sZWZ0RG9vcnMgPSBbXTsgLy/lt6bpl6hcclxuICAgICAgICB0aGlzLnJpZ2h0RG9vcnMgPSBbXTsgLy/lj7Ppl6hcclxuICAgICAgICB0aGlzLnRvcERvb3JzID0gW107IC8v5LiK6ZeoXHJcbiAgICAgICAgdGhpcy5ib3R0b21Eb29ycyA9IFtdOyAvL+S4i+mXqFxyXG4gICAgICAgIHRoaXMuZ2FtZVdpbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2FtZU92ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdhbWVTdGFydCA9IGZhbHNlOyBcclxuICAgICAgICB0aGlzLmhvbWVDYW5Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hZ2FpbkNhblRvdWNoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5ld19tb2RlID0gMDtcclxuIFxyXG4gICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgXHJcbiAgICAgICAgLy8gY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIsIGFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L29IEhvbWVTY2VuZSDlpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6L+b5YWlR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQXJyYXkgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQXJyYXk7XHJcbiAgICAgICAgdGhpcy5XYWxsX1ByZWZhYiA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5XYWxsX1ByZWZhYjtcclxuICAgICAgICB0aGlzLkJsb2NrX0NvbG9yID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLkJsb2NrX0NvbG9yO1xyXG4gICAgICAgIC8vIHRoaXMucGFydGljbGVFZmZlY3RzID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLnBhcnRpY2xlRWZmZWN0cztcclxuICAgICAgIFxyXG4gICAgICAgIHRoaXMuaW5pdE1hcCgpO1xyXG4gICBcclxuICAgIH1cclxuXHJcbiAgICBzdGFydFVwZGF0ZSgpe1xyXG4gICAgICAgIGlmKHRoaXMuZ2FtZVN0YXJ0ID09IGZhbHNlKXtcclxuICAgICAgICAgICAgdGhpcy5nYW1lU3RhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL+WPkemAgeaVsOaVsOS6i+S7tuKAlOKAlOi/m+WFpeWFs+WNoVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWHhuWkh+i/m+WFpeS4i+S4gOWFsyzlj5HpgIHkuIvkuIDlhbPov5vlhaVcIik7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcImVudGVyX3N0YWdlXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0wOyBpPHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNil7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3NbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJib29tXCIpLmdldENvbXBvbmVudChcIkJvb21cIikuc3RhcnRCb29tKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdE1hcCgpe1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIikuekluZGV4ID0gMTA7XHJcbiAgICAgICAgdGhpcy50aW1lTGFiZWwgPSAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIik7XHJcbiAgICAgICAgdGhpcy5sZXZlbExhYmVsID0gIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJsZXZlbFwiKTtcclxuICAgICAgICB0aGlzLnRpbWVOdW1iZXIgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0udGltZTtcclxuICAgICAgICB0aGlzLmNvdW50X1RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuYWRkX1RpbWUgPSAwO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIsNTAsXCJ0aW1lX1wiLHRoaXMudGltZUxhYmVsKVxyXG4gICAgICAgIC8vIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyKTtcclxuICAgICAgICAvLyB0aGlzLnRpbWVMYWJlbC5zdHJpbmcgPSB0aW1lVGVtcC50b1N0cmluZygpO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwrMSksNTAsMjAsXCJsZXZlbF9cIix0aGlzLmxldmVsTGFiZWwsZmFsc2UpXHJcbiAgICAgICAgXHJcbiAgICAgICAgLy90aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXBXaWR0aCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5tYXBbMF07XHJcbiAgICAgICAgdGhpcy5tYXBIZWlnaHQgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ubWFwWzFdO1xyXG4gICAgICAgIGxldCBnYXAgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0uZ2FwO1xyXG4gICAgICAgIGxldCByaXNlZmFsbCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5yaXNlZmFsbDtcclxuXHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53YWxsTnVtID0gMDtcclxuICAgICAgICB0aGlzLnNldE1hcEluZm8oKTtcclxuICAgICAgICB0aGlzLmJsb2NrcyA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwSW5mbyA9IFtdO1xyXG4gICAgICAgIHRoaXMud2FsbEluZm8gPSBbXTtcclxuICAgICAgICB0aGlzLm9wZW5XYWxsID0gW107XHJcbiAgICAgICAgdGhpcy53YWxsQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZVdhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2sgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEJsb2NrQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sb2Fja0FycmF5ID0gW107XHJcblxyXG4gICAgICBcclxuICAgICAgICBsZXQgc3RhcnRYID0gIHRoaXMubWFwV2lkdGglMj09MD8tKHRoaXMubWFwV2lkdGgtMSkqNjA6LSh0aGlzLm1hcFdpZHRoLTEpKjYwO1xyXG4gICAgICAgIGxldCBzdGFydFkgPSAgdGhpcy5tYXBIZWlnaHQlMj09MD8tKHRoaXMubWFwSGVpZ2h0LTEpKjYwOi0odGhpcy5tYXBIZWlnaHQtMSkqNjA7XHJcbiAgICAgICAgLy8gc3RhcnRYID0odGhpcy5tYXBXaWR0aC0xKSo2MCArIDYwO1xyXG4gICAgICAgIC8vIHN0YXJ0WSA9LSh0aGlzLm1hcEhlaWdodC0xKSo2MCAtIDYwO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLm1hcFdpZHRoOyBpKyspe1xyXG4gICAgICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGxbaV0gPSBbXTtcclxuXHJcbiAgICAgICAgICAgIGZvcihsZXQgaiA9IDA7IGogPCB0aGlzLm1hcEhlaWdodDsgaisrKXtcclxuICAgICAgICAgICAgICAgIGxldCBibG9jayA9IGNjLmluc3RhbnRpYXRlKHRoaXMuTWFwQmxvY2tQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2sucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibWFwQmxvY2tcIik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5pbml0KGksaik7ICAgIFxyXG4gICAgICAgICAgICAgICAgLy8gYmxvY2suZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBpICsgXCI6XCIgKyBqO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suc2V0UG9zaXRpb24oY2MudjIoc3RhcnRYICsgaSAqIDEyMCwgc3RhcnRZICsgaiAqIDEyMCkpXHJcbiAgICAgICAgICAgICAgICBpZihyaXNlZmFsbCAhPSBudWxsKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm1hcFJpc2VGYWxsKGNjLnYyKGksaikscmlzZWZhbGwsYmxvY2spKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKGdhcCE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLm1hcEdhcChjYy52MihpLGopLGdhcCkgfHwgaSA9PSAwIHx8IGkgPT0gdGhpcy5tYXBXaWR0aC0xXHJcbiAgICAgICAgICAgICAgICAgICAgfHwgaiA9PSAwIHx8IGogPT0gdGhpcy5tYXBIZWlnaHQgLSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sub3BhY2l0eSA9IDI1NDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMubWFwSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoIGkgPT0gMCB8fCBpID09IHRoaXMubWFwV2lkdGgtMVxyXG4gICAgICAgICAgICAgICAgICAgIHx8IGogPT0gMCB8fCBqID09IHRoaXMubWFwSGVpZ2h0IC0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm9wYWNpdHkgPSAyNTQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUNvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVBbGxDaGlsZHJlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMubWFwSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGxbaV0ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMud2FsbEluaXQoKTtcclxuICAgICAgICB0aGlzLmJsb2NrSW5pdCgpO1xyXG4gICAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu65pa55Z2XXHJcbi8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG4vL+WIm+W7uuaWueWdl1xyXG4vLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuXHJcblxyXG5cclxuYmxvY2tJbml0KCkge1xyXG4gICAgbGV0IGJsb2NrQXJyYXkgPSBjYy5meC5HYW1lQ29uZmlnLkJMT0NLX0lORk9bMF07XHJcbiAgICBibG9ja0FycmF5ID0gdGhpcy5zb3J0QmxvY2soYmxvY2tBcnJheSk7IFxyXG5cclxuICAgIGxldCBpbmRleCA9IDA7IC8vIOW9k+WJjeimgeWIm+W7uueahOaWueWdl+e0ouW8lVxyXG4gICAgbGV0IEJMT0NLU19QRVJfRlJBTUUgPSAxOyAvLyDliJ3lp4vmr4/luKfliJvlu7rnmoTmlrnlnZfmlbDph49cclxuICAgIGNvbnN0IE1BWF9QRVJfRlJBTUUgPSAxMDsgLy8g5q+P5bin5pyA5aSn5Yib5bu65pWw6YePXHJcbiAgICBjb25zdCBNSU5fUEVSX0ZSQU1FID0gMTsgLy8g5q+P5bin5pyA5bCP5Yib5bu65pWw6YePXHJcblxyXG4gICAgY29uc3QgY3JlYXRlQmxvY2tzID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQkxPQ0tTX1BFUl9GUkFNRSAmJiBpbmRleCA8IGJsb2NrQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGJsb2NrSW5mbyA9IGJsb2NrQXJyYXlbaW5kZXhdO1xyXG4gICAgICAgICAgICAvLyDnvJPlrZggQmxvY2tfQXJyYXkg6K6/6ZeuXHJcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtibG9ja0luZm8uYmxvY2tdOyBcclxuICAgICAgICAgICAgbGV0IGJsb2NrID0gY2MuaW5zdGFudGlhdGUoYmxvY2tQcmVmYWIpO1xyXG4gICAgICAgICAgICBibG9jay5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgIGJsb2NrLnNldFBvc2l0aW9uKGNjLnYyKGJsb2NrSW5mby5wb3NpdGlvbi54LCBibG9ja0luZm8ucG9zaXRpb24ueSkpO1xyXG4gICAgICAgICAgICBpZiAoYmxvY2tJbmZvLmJsb2NrICE9IDIzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIGlmIChibG9ja0luZm8udHlwZSA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBibG9ja0luZm8uaWQgKyAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jazogYmxvY2tJbmZvLmJsb2NrLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmxvY2tJbmZvLnN0YWNraW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAxMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGJsb2NrSW5mby5wb3NpdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tpbmc6IGJsb2NrSW5mby5jb2xvclxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g57yT5a2YIEJsb2NrX0FycmF5IOiuv+mXrlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrVXBQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2luZm8uYmxvY2tdOyBcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYmxvY2tVcCA9IGNjLmluc3RhbnRpYXRlKGJsb2NrVXBQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrVXAucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuc2V0UG9zaXRpb24oY2MudjIoaW5mby5wb3NpdGlvbi54LCBpbmZvLnBvc2l0aW9uLnkpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MucHVzaChibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGJsb2NrSW5mbywgbnVsbCwgbnVsbCwgYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGluZm8sIG51bGwsIG51bGwsIGJsb2NrKTtcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChibG9ja0luZm8udHlwZSA9PSA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYmxvY2tJbmZvLmFkaGVzaXZlVGltZSA8IDIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaW5mbyA9IGJsb2NrQXJyYXlbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOe8k+WtmCBCbG9ja19BcnJheSDorr/pl65cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja1VwUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtpbmZvLmJsb2NrXTsgXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJsb2NrVXAgPSBjYy5pbnN0YW50aWF0ZShibG9ja1VwUHJlZmFiKTtcclxuICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnNldFBvc2l0aW9uKGNjLnYyKGluZm8ucG9zaXRpb24ueCwgaW5mby5wb3NpdGlvbi55KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnB1c2goYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChibG9ja0luZm8sIG51bGwsIG51bGwsIGJsb2NrVXAsZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoaW5mbywgbnVsbCwgbnVsbCwgYmxvY2ssdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoYmxvY2tJbmZvKTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJhcnJpZXJcIikuaW5pdChibG9ja0luZm8pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICBjb25zdCBmcmFtZVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgIC8vIOWmguaenOW9k+WJjeW4p+aJp+ihjOaXtumXtOi/h+mVv++8jOWHj+Wwkeavj+W4p+WIm+W7uuaVsOmHj1xyXG4gICAgICAgIGlmIChmcmFtZVRpbWUgPiAxNikgeyBcclxuICAgICAgICAgICAgQkxPQ0tTX1BFUl9GUkFNRSA9IE1hdGgubWF4KEJMT0NLU19QRVJfRlJBTUUgLSAxLCBNSU5fUEVSX0ZSQU1FKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBCTE9DS1NfUEVSX0ZSQU1FID0gTWF0aC5taW4oQkxPQ0tTX1BFUl9GUkFNRSArIDEsIE1BWF9QRVJfRlJBTUUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5aaC5p6c6L+Y5pyJ5pa55Z2X5pyq5Yib5bu677yM5LiL5LiA5bin57un57ut5Yib5bu6XHJcbiAgICAgICAgaWYgKGluZGV4IDwgYmxvY2tBcnJheS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgLy8g5L2/55SoIHNjaGVkdWxlT25jZSDlnKjkuIvkuIDluKfmiafooYwgY3JlYXRlQmxvY2tzXHJcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNyZWF0ZUJsb2NrcygpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIOW8gOWni+WIhuW4p+WIm+W7uuaWueWdl1xyXG4gICAgY3JlYXRlQmxvY2tzKCk7XHJcbn1cclxuLy/nu5nliJvlu7rmlrnlnZfmjpLluo/vvIznlKjmnaXpmY3kvY5kcmF3Y2FsbCDlkIjmiblcclxuc29ydEJsb2NrKGFsbEJsb2NrczogeyBjb2xvcjogbnVtYmVyOyBibG9jazogbnVtYmVyOyB0eXBlOiBudW1iZXIgfVtdKSB7XHJcbiAgICByZXR1cm4gYWxsQmxvY2tzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAvLyDlhYjlpITnkIYgdHlwZSDkuLogMSDnmoTmg4XlhrXvvIzlsIblhbbmlL7liLDmnIDlkI5cclxuICAgICAgICBpZiAoYS50eXBlID09PSAxICYmIGIudHlwZSAhPT0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEudHlwZSAhPT0gMSAmJiBiLnR5cGUgPT09IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5a+5IHR5cGUg5LiN5Li6IDAg55qE5YWD57Sg5oyJIHR5cGUg5o6S5bqPXHJcbiAgICAgICAgaWYgKGEudHlwZSAhPT0gMCAmJiBiLnR5cGUgIT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGEudHlwZSAtIGIudHlwZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEudHlwZSAhPT0gMCAmJiBiLnR5cGUgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhLnR5cGUgPT09IDAgJiYgYi50eXBlICE9PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOWGjeWkhOeQhiBibG9jayDkuLogMjMg55qE5oOF5Ya177yM5bCG5YW25pS+5Yiw5pyA5YmN6Z2iXHJcbiAgICAgICAgaWYgKGEuYmxvY2sgPT09IDIzICYmIGIuYmxvY2sgIT09IDIzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEuYmxvY2sgIT09IDIzICYmIGIuYmxvY2sgPT09IDIzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5YW25L2Z5oyJIGNvbG9yIOWNh+W6j+aOkuWIl1xyXG4gICAgICAgIHJldHVybiBhLmNvbG9yIC0gYi5jb2xvcjtcclxuICAgIH0pO1xyXG59XHJcblxyXG5cclxuLy/liJvlu7rlopnlo4FcclxuXHJcbndhbGxJbml0KCkge1xyXG4gICAgbGV0IGluZGV4ID0gMDsgLy8g5b2T5YmN6KaB5Yib5bu655qE5aKZ5aOB57Si5byVXHJcbiAgICBsZXQgV0FMTFNfUEVSX0ZSQU1FID0gMTsgLy8g5Yid5aeL5q+P5bin5Yib5bu655qE5aKZ5aOB5pWw6YePXHJcbiAgICBjb25zdCBNQVhfUEVSX0ZSQU1FID0gMTA7IC8vIOavj+W4p+acgOWkp+WIm+W7uuaVsOmHj1xyXG4gICAgY29uc3QgTUlOX1BFUl9GUkFNRSA9IDE7IC8vIOavj+W4p+acgOWwj+WIm+W7uuaVsOmHj1xyXG5cclxuICAgIGNvbnN0IGNyZWF0ZVdhbGxzID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgV0FMTFNfUEVSX0ZSQU1FICYmIGluZGV4IDwgdGhpcy53YWxsSW5mby5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLndhbGxJbmZvW2luZGV4XTtcclxuICAgICAgICAgICAgbGV0IGRpciA9IHRoaXMuZ2V0V2xsRGlyYWN0aW9uKFwid2FsbFwiLCBjYy52MihibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKSk7XHJcbiAgICAgICAgICAgIGlmIChkaXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVXYWxsKGRpciwgYmxvY2spO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICBjb25zdCBmcmFtZVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgIC8vIOWmguaenOW9k+WJjeW4p+aJp+ihjOaXtumXtOi/h+mVv++8jOWHj+Wwkeavj+W4p+WIm+W7uuaVsOmHj1xyXG4gICAgICAgIGlmIChmcmFtZVRpbWUgPiAxNikgeyBcclxuICAgICAgICAgICAgV0FMTFNfUEVSX0ZSQU1FID0gTWF0aC5tYXgoV0FMTFNfUEVSX0ZSQU1FIC0gMSwgTUlOX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgV0FMTFNfUEVSX0ZSQU1FID0gTWF0aC5taW4oV0FMTFNfUEVSX0ZSQU1FICsgMSwgTUFYX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlpoLmnpzov5jmnInlopnlo4HmnKrliJvlu7rvvIzkuIvkuIDluKfnu6fnu63liJvlu7pcclxuICAgICAgICBpZiAoaW5kZXggPCB0aGlzLndhbGxJbmZvLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjcmVhdGVXYWxscygpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyDmiYDmnInlopnlo4HliJvlu7rlrozmiJDlkI7vvIzliJvlu7rmi5Dop5LoioLngrlcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVDb3JuZXJOb2RlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLy8g5byA5aeL5YiG5bin5Yib5bu65aKZ5aOBXHJcbiAgICBjcmVhdGVXYWxscygpO1xyXG59XHJcblxyXG4vLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuICAgIGdldFdsbERpcmFjdGlvbih0eXBlLHBvaW50QSl7XHJcbiAgICAgICAgbGV0IGRpciA9IFtdO1xyXG4gICAgICAgIGxldCBwb2ludEIgPSBjYy52Mihwb2ludEEueCArIDEscG9pbnRBLnkpO1xyXG4gICAgICAgIGxldCBwb2ludEMgPSBjYy52Mihwb2ludEEueCAtIDEscG9pbnRBLnkpO1xyXG4gICAgICAgIGxldCBwb2ludEQgPSBjYy52Mihwb2ludEEueCxwb2ludEEueSArIDEpO1xyXG4gICAgICAgIGxldCBwb2ludEUgPSBjYy52Mihwb2ludEEueCxwb2ludEEueSAtIDEpO1xyXG4gICAgICAgIGxldCBvcGFjaXR5ID0gMDtcclxuICAgICAgICBpZih0eXBlID09IFwid2FsbFwiKSBvcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgIGlmKHR5cGUgPT0gXCJ0dXJuXCIpIG9wYWNpdHkgPSAyNTA7XHJcbiAgICAgIFxyXG4gICAgICAgIGlmKHBvaW50Qi54IDwgdGhpcy5tYXBXaWR0aCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEIueF1bcG9pbnRCLnldLm9wYWNpdHkgPT0gb3BhY2l0eSApe1xyXG4gICAgICAgICAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRCLnhdW3BvaW50Qi55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJyaWdodFwiKXtcclxuICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcInJpZ2h0XCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHBvaW50Qy54ID49IDApe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRDLnhdW3BvaW50Qy55XS5vcGFjaXR5ID09IG9wYWNpdHkpe1xyXG4gICAgICAgICAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRDLnhdW3BvaW50Qy55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJsZWZ0XCIpe1xyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJsZWZ0XCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHBvaW50RC55IDwgdGhpcy5tYXBIZWlnaHQpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRELnhdW3BvaW50RC55XS5vcGFjaXR5ID09IG9wYWNpdHkpe1xyXG4gICAgICAgICAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRELnhdW3BvaW50RC55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJ1cFwiKXtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwidXBcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocG9pbnRFLnkgPj0gMCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEUueF1bcG9pbnRFLnldLm9wYWNpdHkgPT0gb3BhY2l0eSl7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEUueF1bcG9pbnRFLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcImRvd25cIil7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwiZG93blwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihkaXIubGVuZ3RoID4gMil7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoZGlyLmxlbmd0aCA9PSAxKXtcclxuICAgICAgICAgICAgaWYodHlwZSA9PSBcIndhbGxcIilcclxuICAgICAgICAgICAgICAgIHJldHVybiBkaXJbMF07XHJcbiAgICAgICAgICAgIGVsc2UgXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkaXIubGVuZ3RoID09IDIpe1xyXG4gICAgICAgICAgICByZXR1cm4gZGlyWzBdICsgZGlyWzFdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVDb3JuZXJOb2RlcygpIHtcclxuICAgICAgICAvLyDlrprkuYnmi5Dop5LkvY3nva5cclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLndhbGxJbmZvLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy53YWxsSW5mb1tpXTtcclxuICAgICAgICAgICAgaWYoYmxvY2sub3BhY2l0eSAhPSAyNTApe1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpciA9IHRoaXMuZ2V0V2xsRGlyYWN0aW9uKFwidHVyblwiLGNjLnYyKGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSkpO1xyXG4gICAgICAgICAgICAgICAgaWYoZGlyICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlVHVybihkaXIsYmxvY2ssYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVdhbGwoZGlyZWN0aW9uLG5vZGUpe1xyXG4gICAgICAgIGxldCB3YWxsID0gbnVsbDtcclxuICAgICAgICBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnNldERpcmFjdGlvbihkaXJlY3Rpb24pO1xyXG4gICAgICAgIHN3aXRjaChkaXJlY3Rpb24pe1xyXG4gICAgICAgICAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzRdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdERvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBicmVhazsgXHJcbiAgICAgICAgICAgIGNhc2UgXCJsZWZ0XCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlszXSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0RG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMykgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls1XSk7XHJcbiAgICAgICBcclxuICAgICAgICAgICAgICAgICAgIHRoaXMudG9wRG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKSBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMF0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5ib3R0b21Eb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cHJpZ2h0XCIgOiBjYXNlIFwicmlnaHR1cFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbN10pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBsZWZ0XCIgOiBjYXNlIFwibGVmdHVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls2XSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3ducmlnaHRcIiA6IGNhc2UgXCJyaWdodGRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzJdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25sZWZ0XCIgOiBjYXNlIFwibGVmdGRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzFdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIFxyXG4gICAgICAgIC8vIGlmKHdhbGxUdXJuKXtcclxuICAgICAgICAvLyAgICAgd2FsbFR1cm4uZ2V0Q29tcG9uZW50KFwid2FsbFR1bnJcIikuaW5pdCh3YWxsKTtcclxuICAgICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RG9vckluZm8od2FsbCl7XHJcbiAgICAgICAgbGV0IGRvb3JJbmZvID0gY2MuZnguR2FtZUNvbmZpZy5XQUxMX0lORk9bMF07XHJcblxyXG4gICAgICAgIGlmKGRvb3JJbmZvKXtcclxuICAgICAgICAgICAgZm9yKGxldCBqID0gMDsgaiA8IGRvb3JJbmZvLmxlbmd0aDsgaisrKXtcclxuICAgICAgICAgICAgICAgIGlmKGRvb3JJbmZvW2pdLm51bSA9PSB0aGlzLndhbGxOdW0pe1xyXG4gICAgICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KGRvb3JJbmZvW2pdLG51bGwsbnVsbCxudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheS5wdXNoKHdhbGwucGFyZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlVHVybihkaXJlY3Rpb24sbm9kZSxwb3NYLHBvc1kpe1xyXG4gICAgICAgIGxldCB3YWxsID0gbnVsbDtcclxuICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy53YWxsVHVyblByZWZhYik7XHJcbiAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgc3dpdGNoKGRpcmVjdGlvbil7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cHJpZ2h0XCIgOiBjYXNlIFwicmlnaHR1cFwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IDA7XHJcbiAgICAgXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwbGVmdFwiIDogY2FzZSBcImxlZnR1cFwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDkwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtOTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54IC09IDEuMztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bnJpZ2h0XCIgOiBjYXNlIFwicmlnaHRkb3duXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gMjcwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtMjcwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueCArPSAyLjU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDE7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25sZWZ0XCIgOiBjYXNlIFwibGVmdGRvd25cIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSAxODA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC0xODA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54ICs9IDQuNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gMy4yO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpZihkaXJlY3Rpb24gPT0gXCJyaWdodGRvd25cIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3ducmlnaHRcIikge1xyXG4gICAgICAgIC8vICAgICB3YWxsLnpJbmRleCA9IDUwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZSBcclxuICAgICAgICAvLyAgICAgd2FsbC56SW5kZXggPSA1MCArIHBvc1ggLSBwb3NZKjM7XHJcblxyXG4gICAgICAgIGlmKGRpcmVjdGlvbiA9PSBcInVwXCIgfHwgZGlyZWN0aW9uID09IFwibGVmdHVwXCIgfHwgZGlyZWN0aW9uID09IFwidXBsZWZ0XCJcclxuICAgICAgICApe1xyXG4gICAgICAgICAgICB3YWxsLnpJbmRleCA9IDEwMCArIHBvc1ggLSBwb3NZKjM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoZGlyZWN0aW9uID09IFwicmlnaHR1cFwiIHx8IGRpcmVjdGlvbiA9PSBcInVwcmlnaHRcIiB8fCBkaXJlY3Rpb24gPT0gXCJyaWdodGRvd25cIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3ducmlnaHRcIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3dubGVmdFwiKXtcclxuICAgICAgICAgICAgd2FsbC56SW5kZXggPSAzMCArIHBvc1ggLSBwb3NZKjM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKCBkaXJlY3Rpb24gPT0gXCJsZWZ0XCIgfHwgZGlyZWN0aW9uID09IFwibGVmdGRvd25cIil7XHJcbiAgICAgICAgICAgIHdhbGwuekluZGV4ID0gNzAgKyBwb3NYIC0gcG9zWSozOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB3YWxsLnpJbmRleCA9IDcwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICBcclxuICAgICAgICAvLyB3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmFuZ2xlID0gLXdhbGwuYW5nbGU7XHJcbiAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gZGlyZWN0aW9uO1xyXG4gICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHdhbGwuekluZGV4KyBcIlwiO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHBvc1gscG9zWSx3YWxsLnpJbmRleCk7XHJcbiAgICAgICAgLy8gdGhpcy53YWxsTnVtICs9ICAxO1xyXG4gICAgICAgIC8vIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0gKyBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Zyw5Zu+5bqV5Z2X57y65Y+j5Yik5patXHJcbiAgICBtYXBHYXAocG9pbnQsZ2FwKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxnYXAubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZihwb2ludC54ID09IGdhcFtpXS54ICYmIHBvaW50LnkgPT0gZ2FwW2ldLnkpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvL+WNh+mZjeWcsOWdl+WIpOaWrVxyXG4gICAgbWFwUmlzZUZhbGwocG9pbnQscmlzZWZhbGwsYmxvY2spe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHJpc2VmYWxsLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYocG9pbnQueCA9PSByaXNlZmFsbFtpXS5wb3MueCAmJiBwb2ludC55ID09IHJpc2VmYWxsW2ldLnBvcy55KXtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENoaWxkQnlOYW1lKFwiY29sb3JcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSByaXNlZmFsbFtpXS5jb2xvcitcIlwiO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuYWRkQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcikuc2l6ZSA9IGNjLnNpemUoMTEwLDExMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvL+WNh+mZjeWcsOWdl1xyXG4gICAgY2hhbmdlUmlzZUZhbGwoY29sb3IsZG93bil7XHJcbiAgICAgICAgY29sb3IgPSBjb2xvci50b1N0cmluZygpO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMucmlzZUZhbGxCbGNvay5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKGNvbG9yID09IHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmdldENoaWxkQnlOYW1lKFwiY29sb3JcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpe1xyXG4gICAgICAgICAgICAgICAgaWYoZG93bil7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLnJlbW92ZUNvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmFkZENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcikuc2l6ZSA9IGNjLnNpemUoMTEwLDExMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy/mn6Xor6Llj6DliqDlv6tpZFxyXG4gICAgZm91bmREb3duQmxvY2soaWQpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tJZCA9PSBpZCl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ibG9ja3NbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liKDpmaTlnZdcclxuICAgIHJlbW92ZUJsb2NrKGlkKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrSWQgPT0gaWQpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tzW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1pbkFuZE1heChibG9jayl7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihibG9jay53aWR0aCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IE1hdGguZmxvb3IoYmxvY2suaGVpZ2h0IC8gMTIwKTtcclxuXHJcbiAgICAgICAgbGV0IG1pblggPSB3aWR0aDtcclxuICAgICAgICBsZXQgbWF4WCA9IHRoaXMubWFwV2lkdGgtMjtcclxuICAgICAgICBsZXQgbWluWSA9IDE7XHJcbiAgICAgICAgbGV0IG1heFkgPSB0aGlzLm1hcEhlaWdodC0yIC0gaGVpZ2h0ICsgMTtcclxuXHJcbiAgICAgICAgaWYoYmxvY2submFtZSA9PSBcImJsb2NrMTBcIil7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aC0xO1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcFdpZHRoID4gMykgbWF4WCA9IG1heFgtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2sxMVwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTI7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwV2lkdGggPiAzKSBtYXhYID0gbWF4WC0yO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2sxNFwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYLTE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoYmxvY2submFtZSA9PSBcImJsb2NrMTZcIil7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aC0xO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGJsb2NrLm5hbWUgPT0gXCJibG9jazE4XCIpe1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGgtMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFgtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2syMVwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYLTE7XHJcbiAgICAgICAgfVxyXG4gICAgIFxyXG4gICAgICAgIHJldHVybiB7bWluWDptaW5YLG1heFg6bWF4WCxtaW5ZOm1pblksbWF4WTptYXhZfTtcclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+iQveeCueaYr+WQpuWPr+S7pea2iOmZpFxyXG4gICAgY2hlY2tQYXNzKG5vZGUsYmxvY2tzKSB7XHJcbiAgICAgICAgbGV0IG1pbkFuZE1heCA9IHRoaXMuZ2V0TWluQW5kTWF4KG5vZGUpO1xyXG4gICAgICAgIGxldCBtaW5YID0gbWluQW5kTWF4Lm1pblg7XHJcbiAgICAgICAgbGV0IG1heFggPSBtaW5BbmRNYXgubWF4WDtcclxuICAgICAgICBsZXQgbWluWSA9IG1pbkFuZE1heC5taW5ZO1xyXG4gICAgICAgIGxldCBtYXhZID0gbWluQW5kTWF4Lm1heFk7XHJcblxyXG4gICAgICAgIGxldCBub2RlUG9zID0gY2MudjIobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1kpO1xyXG5cclxuICAgICAgICAvLyDojrflj5blnLDlm77ovrnnlYzkv6Hmga9cclxuXHJcbiAgICAgICAgbGV0IGFsbEJsb2NrcyA9IFtdO1xyXG4gICAgICAgIGZvcihsZXQgaT0wO2k8YmxvY2tzLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBhbGxCbG9ja3MucHVzaChjYy52Mihub2RlUG9zLnggKyBibG9ja3NbaV0ueCwgbm9kZVBvcy55ICsgYmxvY2tzW2ldLnkpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGUxID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlsIblsI/lnZfmlL7lhaXmlbDnu4TnmoTml7bpl7RcIixkYXRlMSk7XHJcbiAgIFxyXG4gICAgICAgIGxldCBqZyA9IC0xO1xyXG4gICAgICAgIGxldCBweiA9IDA7XHJcbiAgICAgICAgLy8g6I635Y+W5omA5pyJ5aKZ5aOB6IqC54K5XHJcbiAgICAgICAgLy8gbGV0IHdhbGwgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgbGV0IGRpcmVjdGlvbiA9IHRoaXMuY2hlY2tEaXJhY3Rpb24oYWxsQmxvY2tzLG1heFgsbWF4WSk7XHJcblxyXG4gICAgICAgIC8vIOWIpOaWreaWueWdl+aYr+WQpuWcqOWcsOWbvui+uee8mFxyXG4gICAgICAgIGlmIChub2RlUG9zLnggPD0gbWluWCB8fCBkaXJlY3Rpb25bMF0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlMiA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOW3pui+uee8mFwiLGRhdGUyKTtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgbGV0IGxlZnRXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy5sZWZ0RG9vcnMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxMZWZ0ID0gdGhpcy5sZWZ0RG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsTGVmdC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsd2FsbExlZnQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS55ID09IHdhbGxQb3MueSAmJiBhbGxCbG9ja3NbaV0ueCA+IHdhbGxQb3MueCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRXYWxscy5wdXNoKHdhbGxMZWZ0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlvpfliLDlt6bovrnlopnlo4HmlbDnu4RcIixkYXRlNik7XHJcbiAgICAgICAgICAgIGlmKGxlZnRXYWxscy5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcImxlZnRcIixub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsbGVmdFdhbGxzLG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlt6bovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0KXtcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChub2RlUG9zLnggPj0gbWF4WCB8fCBkaXJlY3Rpb25bMV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlMyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOWPs+i+uee8mFwiLGRhdGUzKTtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgbGV0IHJpZ2h0V2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRoaXMucmlnaHREb29ycy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFJpZ2h0ID0gdGhpcy5yaWdodERvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbFJpZ2h0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCx3YWxsUmlnaHQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS55ID09IHdhbGxQb3MueSAmJiBhbGxCbG9ja3NbaV0ueCA8IHdhbGxQb3MueCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0V2FsbHMucHVzaCh3YWxsUmlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYocmlnaHRXYWxscy5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcInJpZ2h0XCIsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSxhbGxCbG9ja3MpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCxyaWdodFdhbGxzLG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlj7PovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0KXtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxfVHJlYXRtZW50KG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gMztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBhcnRpY2xlKG5vZGUsamcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICBcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueSAgPD0gbWluWSB8fCBkaXJlY3Rpb25bMl0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlNCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mFwiLGRhdGU0KTtcclxuICAgICAgICAgICAgbGV0IGRvd25XYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy50b3BEb29ycy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbEJvdHRvbSA9IHRoaXMudG9wRG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsQm90dG9tLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCx3YWxsQm90dG9tLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbHVvY2hhID0gTWF0aC5hYnMoYWxsQmxvY2tzW2ldLnkgLSB3YWxsUG9zLnkpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnggPT0gd2FsbFBvcy54ICYmIGFsbEJsb2Nrc1tpXS55ID4gd2FsbFBvcy55ICYmIGx1b2NoYSA8PSBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnNodSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvd25XYWxscy5wdXNoKHdhbGxCb3R0b20pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYoZG93bldhbGxzLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwiZG93blwiLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCxkb3duV2FsbHMsbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQpe1xyXG4gICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgIFxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueSAgPj0gbWF4WSB8fCBkaXJlY3Rpb25bM10gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlNSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4iui+uee8mFwiLGRhdGU1KTtcclxuICAgICAgICAgICAgbGV0IHVwV2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRoaXMuYm90dG9tRG9vcnMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxUb3AgPSB0aGlzLmJvdHRvbURvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbFRvcC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsd2FsbFRvcC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGx1b2NoYSA9IE1hdGguYWJzKGFsbEJsb2Nrc1tpXS55IC0gd2FsbFBvcy55KVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS54ID09IHdhbGxQb3MueCAmJiBhbGxCbG9ja3NbaV0ueSA8IHdhbGxQb3MueSAmJiBsdW9jaGEgPD0gbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zaHUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cFdhbGxzLnB1c2god2FsbFRvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZih1cFdhbGxzLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwidXBcIixub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsdXBXYWxscyxub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yY57uT5p6cOlwiLHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQpe1xyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihweiA9PSAwIClqZyA9IC0xO1xyXG4gICAgICAgIC8vIGNvbnN0IGRhdGUxMCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5omA5pyJ5qOA5rWL57uT5p2f6ICX5pe2XCIsZGF0ZTEwLGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlU3RhdGUoKXtcclxuICAgICAgICBpZih0aGlzLm9wZW5XYWxsLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5vcGVuV2FsbC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNoYW5nZUxvY2soKTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKHRoaXMuZnJlZXplV2FsbC5sZW5ndGghPSAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5mcmVlemVXYWxsLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbFtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jaGFuZ2VGcmVlemUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+aYr+WQpuWPr+S7pemAmui/h+mXqFxyXG4gICAgcGFzc1dhbGwoamcsd2FsbEFycmF5LG5vZGUpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wO2k8d2FsbEFycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBpZih3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlsJ3or5XpgJrov4flvIDlhbPpl6g6XCIsd2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikub3Blbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyICYmIHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLm9wZW4gPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2cod2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3IpXHJcbiAgICAgICAgICAgIGlmKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yICE9IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3Ipe1xyXG5cclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNSl7XHJcbiAgICAgICAgICAgICAgICBpZih3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsICE9IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoamcgPT0gdHJ1ZSAgJiYgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDUpe1xyXG4gICAgICAgICAgICBmb3IobGV0IGo9MDtqPHdhbGxBcnJheS5sZW5ndGg7aisrKXtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMSAmJiB3YWxsQXJyYXlbal0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS53YWxsX0luZm8ubGVuZ3RoICE9IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBsYXlTdGFyRG9vcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGU4ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmo4DmtYvpopzoibLmmK/lkKbog73lpJ/pgJrov4fpl6hcIixkYXRlOCk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL5pa55Z2X5ZKM6Zeo5Lit6Ze05pyJ5rKh5pyJ5aS55p2C5YW25LuW5Z2XXHJcbiAgICBkZXRlY3RpbmdCbG9jayhkaXJlY3Rpb24scG9zWCxwb3NZLGJsb2Nrcyl7XHJcbiAgICAgICAgbGV0IGpnID0gdHJ1ZTtcclxuICAgICAgICBsZXQgaWQgPSBcIlwiO1xyXG4gICAgICAgIGlmKGJsb2Nrcy5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8YmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MgPSBibG9ja3NbaV07XHJcbiAgICAgICAgICAgICAgICBsZXQgeCA9IHBvcy54O1xyXG4gICAgICAgICAgICAgICAgbGV0IHkgPSBwb3MueTsgXHJcbiAgICAgICAgICAgICAgICBpZCA9IHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZDtcclxuICAgICAgICAgICAgICAgIGpnID0gdGhpcy5jaGVja0FsbERpcmVjdGlvbnMoaWQsZGlyZWN0aW9uLHgseSk7XHJcbiAgICAgICAgICAgICAgICBpZighamcpe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55ZCR5qOA5rWL5rKh6L+HXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTcgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaWueWQkeajgOa1i+mAmui/h1wiLGRhdGU3LGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvniankvZPlkITmlrnlkJHmmK/lkKbmnInliKvnmoTnianlnZfvvIzpmLLmraLnorDliLDlopnlo4HkuobkvYbmmK/mmK/lh7nlh7jlvaLnirbvvIzlopnkuI7lnZfkuYvpl7TmnInpmLvmjKHnianlnZdcclxuICAgIGNoZWNrQWxsRGlyZWN0aW9ucyhpZCxkaXJlY3Rpb24seCx5KXtcclxuICAgICAgICBsZXQgamcgPSB0cnVlO1xyXG4gXHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwibGVmdFwiKXtcclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3gtMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeC0xXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3puS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeC0xXVt5XS5vcGFjaXR5ID09IDI0OSl7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCh4IC0gMikgPj0gMCl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeC0yXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlt6bkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeCsxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4KzFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3grMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4KzFdW3ldLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoKHggKyAyKSA8PSB0aGlzLm1hcEJsb2Nrc1dhbGwubGVuZ3RoLTEpe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3grMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5vcGFjaXR5ID09IDI0OSl7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwidXBcIil7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSsxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMV0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZigoeSArIDIpIDw9IHRoaXMubWFwQmxvY2tzV2FsbFt4XS5sZW5ndGgtMSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSsyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihkaXJlY3Rpb24gPT0gXCJkb3duXCIpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beS0xXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTFdLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoKHkgLSAyKSA+PSAwKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5qOA5rWL54mp5L2T5ZCE5pa55ZCR5piv5ZCm5pyJ5Yir55qE54mp5Z2XXCIsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0RpcmFjdGlvbihhbGxCbG9ja3MsbWF4WCxtYXhZKXtcclxuICAgICAgICBsZXQgamcgPSBbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS54ID4gMCAmJiBqZ1swXSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLngtMV1bYWxsQmxvY2tzW2ldLnldLm9wYWNpdHkgPT0gMjUwKXtcclxuICAgICAgICAgICAgICAgICAgICBqZ1swXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCBqZ1sxXSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLngrMV1bYWxsQmxvY2tzW2ldLnldLm9wYWNpdHkgPT0gMjUwKXtcclxuICAgICAgICAgICAgICAgICAgICBqZ1sxXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS55ID4gMCAmJiBqZ1syXSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLnhdW2FsbEJsb2Nrc1tpXS55LTFdLm9wYWNpdHkgPT0gMjUwKXtcclxuICAgICAgICAgICAgICAgICAgICBqZ1syXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGpnWzNdID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueF1bYWxsQmxvY2tzW2ldLnkrMV0ub3BhY2l0eSA9PSAyNTApe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzNdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrTGVmdChhbGxCbG9ja3Mpe1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1JpZ2h0KGFsbEJsb2NrcyxtYXgpe1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tEb3duKGFsbEJsb2Nrcyl7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8YWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuIFxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tVcChhbGxCbG9ja3MsbWF4KXtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG4gICAgXHJcblxyXG4gICAgLy/nibnmrorlpITnkIbvvIzmlrnlnZfluKbpgZPlhbfmiJbogIXpnIDopoHmtojpmaTlhrDlnZdcclxuICAgIHNwZWNpYWxfVHJlYXRtZW50KG5vZGUpe1xyXG4gICAgICAgIGxldCBmcmVlemVCbG9jayA9IHRoaXMubm9kZS5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSl7XHJcbiAgICAgICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZihmcmVlemVCbG9jay5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8ZnJlZXplQmxvY2subGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgZnJlZXplQmxvY2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuZ2V0Q29tcG9uZW50KFwiRnJlZXplXCIpLnJlZHVjZSgxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDIgfHwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpe1xyXG4gICAgICAgICAgICBsZXQgbG9ja0Jsb2NrID0gdGhpcy5ub2RlLmNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2hpbGQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmKGxvY2tCbG9jay5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8bG9ja0Jsb2NrLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBsb2NrQmxvY2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJsb2NrXCIpLmdldENvbXBvbmVudChcIkxvY2tcIikucmVkdWNlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvcihsZXQgaT0wO2k8dGhpcy5ibG9ja3MubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldID09IG5vZGUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3Muc3BsaWNlKGksMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLy/liKTmlq3muLjmiI/miJDlip/kuIvkuIDlhbNcclxuICAgIG5leHRMZXZlbCgpe1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9wZW5JY2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5ibG9ja051bSA9IHRoaXMuYmxvY2tzLmxlbmd0aDtcclxuIFxyXG4gICAgICAgIGlmKHRoaXMuYmxvY2tOdW0gPT0gMCAmJiAhdGhpcy5nYW1lV2luICYmICF0aGlzLmdhbWVPdmVyKXtcclxuICAgICAgICAgICAgLy8gYWxlcnQoXCLmuLjmiI/miJDlip9cIik7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FtZVdpbiA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaIkOWKn+a2iOmZpOS4gOS4qlwiKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuY2hhbmdlQ29pbig0MCk7XHJcbiAgICAgICAgICAgIGxldCB0aW1lRGF0YSA9IHtcclxuICAgICAgICAgICAgICAgIGNvdW50X1RpbWU6dGhpcy5jb3VudF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgYWRkX1RpbWU6dGhpcy5hZGRfVGltZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmFkZExldmVsKHRpbWVEYXRhKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tfTmV3TW9kZSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH0sIDY2MCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5ri45oiP5oiQ5YqfXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBpZih0aGlzLmdhbWVPdmVyID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mYWlsTGV2ZWwobnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tfTmV3TW9kZSgpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCsxKSA9PSBjYy5meC5HYW1lQ29uZmlnLk5FV19MRVZFTFtpXS5sZXZlbCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld19tb2RlID0gMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB3aW5MZXZlbCgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA+IDE1Nil7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IDE1NjtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgIFxyXG4gICAgICAgICAgICBpZih0aGlzLm5ld19tb2RlID09IDMpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5OZXdNb2RlKDIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcInVwXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICB9IFxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S4gOWFs1wiKTtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmKHRoaXMubmV3X21vZGUgPT0gMyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ1cFwiLGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLDApO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICBcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFnYWluTGV2ZWwoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIixudWxsKTtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPCAxKXtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOS4jei2s1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgaWYoIXRoaXMuYWdhaW5DYW5Ub3VjaCkgcmV0dXJuO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuYWdhaW5DYW5Ub3VjaCA9IGZhbHNlO1xyXG4gICAgICAgIFxyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcInVwXCIsZmFsc2UpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLDApO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV2aWV3TGV2ZWwoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIixudWxsKTtcclxuICAgICAgICBsZXQgY29pbiA9IDkwMDtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDEpIGNvaW4gPSAxOTAwO1xyXG4gICAgICAgIGVsc2UgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAyKSBjb2luID0gMjUwMDtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiHqui6q+mHkeW4gTpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbixcIua2iOiAl+mHkeW4gTpcIixjb2luKTtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IE1hdGguYWJzKGNvaW4pKXtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazleWKoOaXtumXtFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLnJ1blJld2l2ZSgtY29pbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJ1blJld2l2ZShkYXRhKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWkjea0u+Wbnuiwg+WHveaVsOWGhVwiLGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmNoYW5nZUNvaW4oZGF0YSk7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIue7p+e7rea4uOaIj1wiKTtcclxuICAgXHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA8IDIpXHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgKz0gMTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gMjE7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSArPSAyMDtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgIFxyXG4gICAgaG9tZUJ0bigpe1xyXG4gICAgICAgIC8vIGFsZXJ0KFwi5ri45oiP5aSx6LSlXCIpO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKCF0aGlzLmhvbWVDYW5Ub3VjaCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuaG9tZUNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkxvY2tcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiSGVhbHRoXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIHRpbWU6dGhpcy5jb3VudF9UaW1lLCAgICAgICAgIFxyXG4gICAgICAgICAgICBhZGRfVGltZTp0aGlzLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICByZXN1bHQ6XCJmYWlsXCJcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsZGF0YSk7XHJcbiAgICAgICAgaWYodGhpcy5nYW1lU3RhcnQgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsKGRhdGEpPT57XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuSG9tZSgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGwpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLkvZPlipvlgLzlh4/lsJFcIik7XHJcbiAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICBpZih0aGlzLm5ld19tb2RlID09IDMpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgxKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIsIGFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liKTmlq3muLjmiI/lpLHotKVcclxuICAgIGZhaWxMZXZlbCh0eXBlKXtcclxuICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgIGlmKHRoaXMuZ2FtZU92ZXI9PSB0cnVlIHx8dGhpcy5nYW1lV2luID09IHRydWUpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5nYW1lT3ZlciA9IHRydWU7XHJcbiAgICAgICAgaWYodHlwZSA9PSBcImJvb21cIil7XHJcbiAgICAgICAgICAgIHRpbWUgPSAyMDAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGxldCBidXlCdG4gPSB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmdldENoaWxkQnlOYW1lKFwiYnV5QnRuXCIpO1xyXG4gICAgICAgICAgICAgICAgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjFcIikuYWN0aXZlID0gYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjJcIikuYWN0aXZlID0gYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjNcIikuYWN0aXZlID1mYWxzZTsgXHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDApYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjFcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAxKSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMlwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDIpIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4zXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0eXBlID09IFwiYm9vbVwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICB9LCB0aW1lKTtcclxuICAgIFxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5ri45oiP5aSx6LSlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5omT5byA5paw5qih5byP5by556qXXHJcbiAgICBvcGVuTmV3TW9kZSh0eXBlKXtcclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgIGNvbnN0IEJMT0NLU19QRVJfRlJBTUUgPSA1OyAvLyDmr4/luKfplIDmr4HnmoTmlrnlnZfmlbDph49cclxuICAgICAgICBjb25zdCBkZXN0cm95QmxvY2tzID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBlbmRJbmRleCA9IE1hdGgubWluKGluZGV4ICsgQkxPQ0tTX1BFUl9GUkFNRSwgdGhpcy5ibG9ja3MubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yICg7IGluZGV4IDwgZW5kSW5kZXg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpbmRleF0pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpbmRleF0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWmguaenOi/mOacieaWueWdl+acqumUgOavge+8jOS4i+S4gOW4p+e7p+e7rVxyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmJsb2Nrcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKGRlc3Ryb3lCbG9ja3MsIDApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvLyDlvIDlp4vliIbluKfplIDmr4HmlrnlnZdcclxuICAgICAgICBkZXN0cm95QmxvY2tzKCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJOZXdNb2RlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJOZXdNb2RlXCIpLmdldENvbXBvbmVudChcIk5ld01vZGVcIikuc2V0TW9kZSh0eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIGRvd25Eb29yKGNvbG9yLHR5cGUpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMud2FsbEFycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBpZih0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jb2xvciA9PSBjb2xvcil7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0eXBlID09IDUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiggdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmRvd25Eb29yKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSAgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cERvb3IoKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLndhbGxBcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLm9wYWNpdHkgPT0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS51cERvb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgIC8v5byA5aeL5YCS6K6h5pe2XHJcbiAgIHN0YXJ0VGltZUN1dERvd24oKXtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBpZih0aGlzLnBhdXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmKHRoaXMudGltZU51bWJlciA8PSAwKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLDUwLFwidGltZV9cIix0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICBpZighdGhpcy5wYXVzZSl0aGlzLmZhaWxMZXZlbChcInRpbWVcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMudGltZU51bWJlciAtPSAxO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudF9UaW1lICs9IDE7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLDUwLFwidGltZV9cIix0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2ssIDEpO1xyXG4gICAgfVxyXG4gICAgLy8g5YGc5q2i5YCS6K6h5pe2XHJcbiAgICBzdG9wVGltZUN1dERvd24oKXtcclxuICAgICAgICBpZih0aGlzLnNjaGVkdWxlQ2FsbGJhY2spe1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjml7bpl7TpgZPlhbdcclxuICAgIHVzZVRpbWVQcm9wKCl7XHJcbiAgICAgICAgaWYodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLmhhbW1lciA9PSB0cnVlIFxyXG4gICAgICAgIHx8IHRoaXMubWFnaWNNYXNrLmFjdGl2ZT09IHRydWUgfHwgdGhpcy50aW1lTnVtYmVyIDw9IDEpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgaWYoZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50IDwgMSl7XHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwiZnJlZXplXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBpZighdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgJiYgIXRoaXMucGF1c2Upe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVNYXNrLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPCAwKSAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pY2VMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8uZnJlZXplQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMjAwMSxjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOlwiMjAwMVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudW06LTFcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YGT5YW35L2/55So5Lit77yM6K+356iN5ZCO5YaN6K+VXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/op6PlvIDml7bpl7Tlhrvnu5NcclxuICAgIG9wZW5JY2UoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSl7XHJcbiAgICAgICAgICAgIHRoaXMuZnJlZXplTWFzay5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGhhbmRsZUJ1eVN1Y2Nlc3MoZGF0YSl7XHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlm57osIPlh73mlbDlhoU6XCIsdGhpcy5wYXVzZSk7XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgIGxldCBoYW1tZXJCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwibWFnaWNCdG5cIik7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImZyZWV6ZUFtb3VudFwiKSBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBlbHNlIGlmKGRhdGEgPT0gXCJoYW1tZXJBbW91bnRcIikgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7IFxyXG4gICAgICAgIGVsc2UgaWYoZGF0YSA9PSBcIm1hZ2ljQW1vdW50XCIpIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImZyZWV6ZUFtb3VudFwiKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8uZnJlZXplQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmljZUxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDlhrvnu5Pml7bpl7TpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkYXRhID09IFwibWFnaWNBbW91bnRcIil7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8ubWFnaWNBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikuY2xvc2VQcm9wQnV5KCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOmUpOWtkOmBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoZGF0YSA9PSBcImhhbW1lckFtb3VudFwiKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8uaGFtbWVyQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbW1lckxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDprZTms5Xmo5LpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjplKTlrZDpgZPlhbdcclxuICAgIHVzZUhhbW1lcigpe1xyXG4gICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IHRydWUgfHwgdGhpcy5oYW1tZXIgPT0gdHJ1ZSBcclxuICAgICAgICB8fCB0aGlzLm1hZ2ljTWFzay5hY3RpdmU9PSB0cnVlIHx8IHRoaXMudGltZU51bWJlciA8PSAxKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcImRlc3Ryb3lCdG5cIik7XHJcbiAgICAgICAgaWYoaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IDwgMSl7XHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJoYW1tZXJcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGlmKCF0aGlzLmhhbW1lcil7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbW1lck1hc2suYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW1tZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IDwgMCkgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6ZSk5a2Q6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby5oYW1tZXJBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgyMDAyLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6XCIyMDAyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bTotMVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLpgZPlhbfkvb/nlKjkuK3vvIzor7fnqI3lkI7lho3or5VcIik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuIFxyXG4gICAgYnV5TWFnaWMoKXtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMyx0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLFwibWFnaWNBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1eUhhbW1lcigpe1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAyLCB0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLFwiaGFtbWVyQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICBidXlGcmVlemUoKXtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMSx0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLFwiZnJlZXplQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOmtlOazleajkumaj+acuua2iOmZpOS4pOS4quaWueWdl1xyXG4gICAgdXNlTWFnaWMoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMuaGFtbWVyID09IHRydWUgXHJcbiAgICAgICAgfHwgdGhpcy5tYWdpY01hc2suYWN0aXZlPT0gdHJ1ZSB8fCB0aGlzLnRpbWVOdW1iZXIgPD0gMSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1hZ2ljQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcIm1hZ2ljQnRuXCIpO1xyXG4gICAgICAgIGlmKG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA8IDEpe1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKXtcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwibWFnaWNcIik7XHJcbiAgICAgICAgICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6a2U5rOV5qOS5pWw6YeP5LiN6LazLOiHquWKqOi0reS5sOmtlOazleajklwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSwgMTAwMCk7XHJcbiBcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IDwgMCkgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgcHJvcEluZm8ubWFnaWNBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDIwMDMsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDpcIjIwMDNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtOi0xXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IG5vbWFsQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMubWFnaWNCdG4ubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9MDsgaTx0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlnZfnsbvlnotcIix0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDMpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tfSW5mby5ub2RlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja19JbmZvLm5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihub21hbEFycmF5Lmxlbmd0aCA+IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkgPSBjYy5meC5HYW1lVG9vbC5zaHVmZmxlQXJyYXkobm9tYWxBcnJheSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYobm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEgfHwgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aW1lID4gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVsxXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVsxXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYobm9tYWxBcnJheS5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYobm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEgfHwgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5mcmVlemVBcnJheS5sZW5ndGggPT0gMCAmJiB0aGlzLmxvYWNrQXJyYXkubGVuZ3RoID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj6rliankuIvkuIDkuKrlnZfpgZPlhbfkvb/nlKjlrozmr5VcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubG9hY2tBcnJheS5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmtojpmaTkuIDkuKrmma7pgJrlnZflkI7vvIzmtojpmaTkuIDkuKrluKbplIHlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5mcmVlemVBcnJheS5sZW5ndGghPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua2iOmZpOS4gOS4quaZrumAmuWdl+WQju+8jOa2iOmZpOS4gOS4quWGu+e7k+Wdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZUFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMjAwK3RpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgY291bnQgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubG9hY2tBcnJheS5sZW5ndGghPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5sb2Fja0FycmF5Lmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ5pmu6YCa5b+r77yM6a2U5rOV5raI6Zmk5LiA5Liq5bim6ZSB5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5W2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpOyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCAhPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuZnJlZXplQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ5pmu6YCa5b+r77yM6a2U5rOV5raI6Zmk5LiA5Liq5Ya757uT5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZnJlZXplQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/mjInkuIvmmoLlgZzmjInpkq5cclxuICAgIHVzZVBhdXNlKCl7XHJcbiAgICAgICAgaWYodGhpcy5wYXVzZSl7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy/moLnmja7lhbPljaHorr7nva7lnLDlm77lpKflsI9cclxuICAgIHNldE1hcEluZm8oKXtcclxuICAgICAgICBsZXQgd2lkdGggPSAwO1xyXG4gICAgICAgIGlmKHRoaXMubWFwV2lkdGggPCAxMCl7XHJcbiAgICAgICAgICAgIHdpZHRoID0gMC4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMubWFwV2lkdGggPCAxNyl7XHJcbiAgICAgICAgICAgIHdpZHRoID0gMC4xNSAtICh0aGlzLm1hcFdpZHRoLTExKSowLjAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5ub2RlLnNjYWxlID0gMS42ICsgKDYgLSB0aGlzLm1hcFdpZHRoKSAqIHdpZHRoO1xyXG5cclxuICAgICAgICBpZih0aGlzLm1hcFdpZHRoID09IDggJiYgdGhpcy5tYXBIZWlnaHQgPiAxMyl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zY2FsZSA9IHRoaXMubm9kZS5zY2FsZTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAwLjU7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5ub2RlLnNjYWxlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu66Zeo55qE57KS5a2Q54m55pWIXHJcbiAgICBjcmVhdGVQYXJ0aWNsZShibG9jayxqZyl7XHJcbiAgICAgICAgbGV0IHBhcnRpY2xlID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbOV0pO1xyXG4gICAgICAgIHBhcnRpY2xlLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICBwYXJ0aWNsZS56SW5kZXggPSAxMDAwO1xyXG4gICAgICAgIGxldCB3aWR0aCA9IE1hdGguZmxvb3IoYmxvY2sud2lkdGggLyAxMjApO1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSBNYXRoLmZsb29yKGJsb2NrLmhlaWdodCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcIlwiO1xyXG5cclxuICAgICAgICBpZihqZyA9PSAwIHx8IGpnID09IDEpe1xyXG4gICAgICAgICAgICBsZXQgeSA9IGJsb2NrLnkgKyBibG9jay5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoLzI7XHJcbiAgICAgICAgICAgIG5hbWUgPSBcInRvcF9cIiArIHdpZHRoICsgXCJfXCIgKyBoZWlnaHQ7XHJcbiAgICAgICAgICAgIGlmKGpnID09IDEpe1xyXG4gICAgICAgICAgICAgICAgbmFtZSA9IFwiYm90X1wiICsgd2lkdGggKyBcIl9cIiArIGhlaWdodDtcclxuICAgICAgICAgICAgICAgIHkgPSBibG9jay55O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGJsb2NrLmFuY2hvclggPT0gMC41KXtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjMzKXtcclxuICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCooMC41LTAuMzMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjY2KXtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgqKDAuNS0wLjY2KTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcGFydGljbGUuc2V0UG9zaXRpb24oeCwgeSk7IFxyXG4gICAgICAgIH0gXHJcbiAgICAgICAgZWxzZSBpZihqZyA9PSAyIHx8IGpnID09IDMpe1xyXG4gICAgICAgICAgICBuYW1lID0gXCJsZWZ0X1wiICsgaGVpZ2h0ICsgXCJfXCIgKyB3aWR0aDtcclxuICAgICAgICAgICAgbGV0IHggPSBibG9jay54IC0gYmxvY2sud2lkdGg7XHJcbiAgICAgICAgICAgIGxldCB5ID0gYmxvY2sueSArIGJsb2NrLmhlaWdodC8yO1xyXG4gICAgICAgICAgICBpZihibG9jay5hbmNob3JYID09IDAuNSl7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoLzI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuMzMpe1xyXG4gICAgICAgICAgICAgICB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoKjAuMzM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuNjYpe1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCowLjY2OyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihqZyA9PSAzKXtcclxuICAgICAgICAgICAgICAgIG5hbWUgPSBcInJpZ2h0X1wiICsgaGVpZ2h0ICsgXCJfXCIgKyB3aWR0aDtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54O1xyXG4gICAgICAgICAgICAgICAgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgvMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjMzKXtcclxuICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgqMC42NjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjY2KXtcclxuICAgICAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoKjAuMzM7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwYXJ0aWNsZS5zZXRQb3NpdGlvbih4LCB5KTsgXHJcbiAgICAgICAgfSBcclxuXHJcbiAgICAgICAgbGV0IHBhcnRpY2xlTm9kZSA9ICBwYXJ0aWNsZS5nZXRDaGlsZEJ5TmFtZShuYW1lKTtcclxuICAgICAgICBsZXQgY29sb3IgPSBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvciAtIDE7XHJcblxyXG4gICAgICAgIHBhcnRpY2xlTm9kZS5nZXRDb21wb25lbnQoY2MuUGFydGljbGVTeXN0ZW0pLnNwcml0ZUZyYW1lID0gcGFydGljbGUuZ2V0Q29tcG9uZW50KFwiUmVkdWNlXCIpLkJsb2NrX0NvbG9yW2NvbG9yXTtcclxuICAgICAgICBwYXJ0aWNsZU5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2MudHdlZW4ocGFydGljbGUpXHJcbiAgICAgICAgICAgIC50bygyLCB7b3BhY2l0eTogMH0pXHJcbiAgICAgICAgICAgIC5jYWxsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmRlc3Ryb3koKTsgXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZU9uZUJsb2NrKCkge1xyXG4gICAgICAgIC8vIOenu+mZpOaJgOacieaWueWdl1xyXG4gICAgICAgIGZvcihsZXQgaSA9MCA7IGk8dGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZih0aGlzLmJsb2Nrc1tpXS5vcGFjaXR5ID09IDApe1xyXG4gICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzW2ldLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5zcGxpY2UoaSwxKTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgXHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QzttREFDUztJQUczQjtRQURLLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNLO0lBSTNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0RBQ007SUFyRFAsV0FBVztRQUQvQixPQUFPO09BQ2EsV0FBVyxDQWkrRC9CO0lBQUQsa0JBQUM7Q0FqK0RELEFBaStEQyxDQWorRHdDLEVBQUUsQ0FBQyxTQUFTLEdBaStEcEQ7a0JBaitEb0IsV0FBVyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmltcG9ydCBHYW1lTWFuYWdlciBmcm9tIFwiLi9HYW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBMUUNvbGxpZGUgfSBmcm9tIFwiLi9scV9jb2xsaWRlX3N5c3RlbS9scV9jb2xsaWRlXCI7XHJcbmltcG9ydCBOdW1iZXJUb0ltYWdlIGZyb20gXCIuL051bWJlclRvSW1hZ2VcIjtcclxuaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVTZGtcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNYXBDb25yb2xlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgX2luc3RhbmNlOiBhbnk7XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLmlrnlnZfmlbDnu4RcIn0pXHJcbiAgICBCbG9ja19BcnJheSA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOlwi5pa55Z2X6YGT5YW35pWw57uEXCJ9KVxyXG4gICAgQmxvY2tfUHJvcCA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgTWFwQmxvY2tQcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOlwi5pa55Z2X6aKc6ImyXCJ9KVxyXG4gICAgQmxvY2tfQ29sb3IgOiBBcnJheTxjYy5TcHJpdGVBdGxhcz4gPSBbXTtcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuWimeWjgeaVsOe7hFwifSlcclxuICAgIFdhbGxfUHJlZmFiIDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICBcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgd2FsbFR1cm5QcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkJ1dHRvbilcclxuICAgIHRpbWVCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQnV0dG9uKVxyXG4gICAgZGVzdHJveUJ0bjogY2MuQnV0dG9uID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5CdXR0b24pXHJcbiAgICBtYWdpY0J0bjogY2MuQnV0dG9uID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGljZUxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBoYW1tZXJMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbWFnaWNMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbWFnaWNNYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGhhbW1lck1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgICAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZyZWV6ZU1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIFxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luUG9wOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICB0aW1lTGFiZWw6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgbGV2ZWxMYWJlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgbmV3X21vZGU6IG51bWJlciA9IDA7XHJcbiAgICBtYXBXaWR0aDogbnVtYmVyID0gMDtcclxuICAgIG1hcEhlaWdodDogbnVtYmVyID0gMDtcclxuICAgIHdhbGxOdW06IG51bWJlciA9IDA7XHJcbiAgICBibG9ja051bTogbnVtYmVyID0gMDtcclxuICAgIG1hcEJsb2Nrc1dhbGw6IGFueTsgICAgICAvL+WcsOWbvueahOaJgOacieW6leWdl1xyXG4gICAgbWFwSW5mbzogYW55OyAgICAgICAvL+WcsOWbvumZpOS6huW6leWdl+eahOWFtuS7luS/oeaBr1xyXG4gICAgYmxvY2tzOiBhbnk7ICAgICAgICAvL+aWueWdl+aVsOe7hFxyXG4gICAgd2FsbEluZm86IGFueTsgICAgICAvL+WimeWjgeaVsOe7hFxyXG4gICAgd2FsbEFycmF5OmFueTsgICAgICAvL1xyXG4gICAgb3BlbldhbGw6IGFueTsgICAgICAvL+W8gOWFs+WimeaVsOe7hFxyXG4gICAgZnJlZXplV2FsbDogYW55OyAgICAvL+WGu+e7k+WimeaVsOe7hFxyXG4gICAgcmlzZUZhbGxCbGNvazphbnk7ICAvL+WNh+mZjeWcsOWdl+aVsOe7hFxyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55Oy8v5YCS6K6h5pe255SoXHJcbiAgICBob21lQ2FuVG91Y2g6Ym9vbGVhbiA9IHRydWU7Ly/mjInpkq7lj6/nlKjnirbmgIFcclxuICAgIGFnYWluQ2FuVG91Y2g6Ym9vbGVhbiA9ICB0cnVlOy8v6YeN546p5oyJ6ZKu5Y+v5Lul55So54q25oCBXHJcbiAgICBnYW1lT3ZlcjogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP57uT5p2f54q25oCBXHJcbiAgICBnYW1lV2luOiBib29sZWFuID0gZmFsc2U7Ly/muLjmiI/og5zliKnnirbmgIFcclxuICAgIGdhbWVTdGFydDogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP5byA5aeL54q25oCBXHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXIgPSAwOyAvL+a4uOaIj+aXtumXtCDnlKjkuo7lgJLorqHml7ZcclxuICAgIGNvdW50X1RpbWU6IG51bWJlciA9IDA7IC8v55So5LqO57uf6K6h5oC75ri45oiP5pe26ZW/XHJcbiAgICBhZGRfVGltZTogbnVtYmVyID0gMDsgICAvL+Wkjea0u+aXtumXtFxyXG4gICAgbWFwQmxvY2tBcnJheTogYW55OyAgLy/lnLDlm77nmoTmiYDmnInmoLzlrZDnirbmgIHlrZjlgqhcclxuICAgIHBhdXNlOmJvb2xlYW4gPSBmYWxzZTsvL+aaguWBnOeKtuaAgVxyXG4gICAgaGFtbWVyOmJvb2xlYW4gPSBmYWxzZTsvL+mUpOWtkOeKtuaAgVxyXG4gICAgZnJlZXplQXJyYXk6IGFueTsgLy/lhrvnu5NcclxuICAgIGxvYWNrQXJyYXk6IGFueTsgLy/kuIrplIFcclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gbGVmdERvb3JzOiBbXTsgLy/lt6bpl6hcclxuICAgIHJpZ2h0RG9vcnM6IGFueTsgLy/lj7Ppl6hcclxuICAgIHRvcERvb3JzOiBhbnk7IC8v5LiK6ZeoXHJcbiAgICBib3R0b21Eb29yczogYW55OyAvL+S4i+mXqFxyXG4gICAgbGVmdERvb3JzOiBhbnk7XHJcblxyXG5cclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZVN0YXRlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1hc2sub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiQWRoZXNpdmVcIikuekluZGV4ID0gNTAwO1xyXG4gICAgICAgIGNjLmdhbWUuc2V0RnJhbWVSYXRlKDYzKTsgXHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4yXCIsbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcImRvd25cIixmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJkb3duXCIpIHtcclxuICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYmxvY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5sZWZ0RG9vcnMgPSBbXTsgLy/lt6bpl6hcclxuICAgICAgICB0aGlzLnJpZ2h0RG9vcnMgPSBbXTsgLy/lj7Ppl6hcclxuICAgICAgICB0aGlzLnRvcERvb3JzID0gW107IC8v5LiK6ZeoXHJcbiAgICAgICAgdGhpcy5ib3R0b21Eb29ycyA9IFtdOyAvL+S4i+mXqFxyXG4gICAgICAgIHRoaXMuZ2FtZVdpbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2FtZU92ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdhbWVTdGFydCA9IGZhbHNlOyBcclxuICAgICAgICB0aGlzLmhvbWVDYW5Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hZ2FpbkNhblRvdWNoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5ld19tb2RlID0gMDtcclxuICAgICAgICB0aGlzLmNvdW50X1RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuYWRkX1RpbWUgPSAwO1xyXG4gXHJcbiAgICAgICAgdGhpcy5pY2VMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5oYW1tZXJMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5tYWdpY0xhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudC50b1N0cmluZygpO1xyXG4gICBcclxuICAgICAgICAvLyBjYy5nYW1lLmFkZFBlcnNpc3RSb290Tm9kZSh0aGlzLm5vZGUpO1xyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IHRoaXM7XHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gSG9tZVNjZW5lIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLov5vlhaVHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5CbG9ja19BcnJheTtcclxuICAgICAgICB0aGlzLldhbGxfUHJlZmFiID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLldhbGxfUHJlZmFiO1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQ29sb3IgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQ29sb3I7XHJcbiAgICAgICAgLy8gdGhpcy5wYXJ0aWNsZUVmZmVjdHMgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UucGFydGljbGVFZmZlY3RzO1xyXG4gICAgICAgXHJcbiAgICAgICAgdGhpcy5pbml0TWFwKCk7XHJcbiAgIFxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0VXBkYXRlKCl7XHJcbiAgICAgICAgaWYodGhpcy5nYW1lU3RhcnQgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICB0aGlzLmdhbWVTdGFydCA9IHRydWU7XHJcbiAgICAgICAgICAgIC8v5Y+R6YCB5pWw5pWw5LqL5Lu24oCU4oCU6L+b5YWl5YWz5Y2hXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5YeG5aSH6L+b5YWl5LiL5LiA5YWzLOWPkemAgeS4i+S4gOWFs+i/m+WFpVwiKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZW50ZXJfc3RhZ2VcIik7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPTA7IGk8dGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA2KXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpXS5nZXRDaGlsZEJ5TmFtZShcImJvb21cIikuZ2V0Q29tcG9uZW50KFwiQm9vbVwiKS5zdGFydEJvb20oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0TWFwKCl7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKS56SW5kZXggPSAxMDtcclxuICAgICAgICB0aGlzLnRpbWVMYWJlbCA9ICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwidGltZVwiKTtcclxuICAgICAgICB0aGlzLmxldmVsTGFiZWwgPSAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcImxldmVsXCIpO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS50aW1lO1xyXG5cclxuICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLDUwLFwidGltZV9cIix0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAvLyB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2RlcygoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKzEpLDUwLDIwLFwibGV2ZWxfXCIsdGhpcy5sZXZlbExhYmVsLGZhbHNlKVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcblxyXG4gICAgICAgIHRoaXMubWFwV2lkdGggPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ubWFwWzBdO1xyXG4gICAgICAgIHRoaXMubWFwSGVpZ2h0ID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLm1hcFsxXTtcclxuICAgICAgICBsZXQgZ2FwID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLmdhcDtcclxuICAgICAgICBsZXQgcmlzZWZhbGwgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ucmlzZWZhbGw7XHJcblxyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmhhbW1lciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMud2FsbE51bSA9IDA7XHJcbiAgICAgICAgdGhpcy5zZXRNYXBJbmZvKCk7XHJcbiAgICAgICAgdGhpcy5ibG9ja3MgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEluZm8gPSBbXTtcclxuICAgICAgICB0aGlzLndhbGxJbmZvID0gW107XHJcbiAgICAgICAgdGhpcy5vcGVuV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMud2FsbEFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5mcmVlemVXYWxsID0gW107XHJcbiAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rID0gW107XHJcbiAgICAgICAgdGhpcy5tYXBCbG9ja0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5mcmVlemVBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMubG9hY2tBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY291bnRfVGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSA9IDA7XHJcbiAgICAgIFxyXG4gICAgICAgIGxldCBzdGFydFggPSAgdGhpcy5tYXBXaWR0aCUyPT0wPy0odGhpcy5tYXBXaWR0aC0xKSo2MDotKHRoaXMubWFwV2lkdGgtMSkqNjA7XHJcbiAgICAgICAgbGV0IHN0YXJ0WSA9ICB0aGlzLm1hcEhlaWdodCUyPT0wPy0odGhpcy5tYXBIZWlnaHQtMSkqNjA6LSh0aGlzLm1hcEhlaWdodC0xKSo2MDtcclxuICAgICAgICAvLyBzdGFydFggPSh0aGlzLm1hcFdpZHRoLTEpKjYwICsgNjA7XHJcbiAgICAgICAgLy8gc3RhcnRZID0tKHRoaXMubWFwSGVpZ2h0LTEpKjYwIC0gNjA7XHJcbiAgICAgICAgXHJcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRoaXMubWFwV2lkdGg7IGkrKyl7XHJcbiAgICAgICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbFtpXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgZm9yKGxldCBqID0gMDsgaiA8IHRoaXMubWFwSGVpZ2h0OyBqKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrID0gY2MuaW5zdGFudGlhdGUodGhpcy5NYXBCbG9ja1ByZWZhYik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJtYXBCbG9ja1wiKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmluaXQoaSxqKTsgICAgXHJcbiAgICAgICAgICAgICAgICAvLyBibG9jay5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IGkgKyBcIjpcIiArIGo7XHJcbiAgICAgICAgICAgICAgICBibG9jay5zZXRQb3NpdGlvbihjYy52MihzdGFydFggKyBpICogMTIwLCBzdGFydFkgKyBqICogMTIwKSlcclxuICAgICAgICAgICAgICAgIGlmKHJpc2VmYWxsICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwUmlzZUZhbGwoY2MudjIoaSxqKSxyaXNlZmFsbCxibG9jaykpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2sucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoZ2FwIT0gbnVsbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoIXRoaXMubWFwR2FwKGNjLnYyKGksaiksZ2FwKSB8fCBpID09IDAgfHwgaSA9PSB0aGlzLm1hcFdpZHRoLTFcclxuICAgICAgICAgICAgICAgICAgICB8fCBqID09IDAgfHwgaiA9PSB0aGlzLm1hcEhlaWdodCAtIDEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5vcGFjaXR5ID0gMjU0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53YWxsSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5tYXBJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBpZiggaSA9PSAwIHx8IGkgPT0gdGhpcy5tYXBXaWR0aC0xXHJcbiAgICAgICAgICAgICAgICAgICAgfHwgaiA9PSAwIHx8IGogPT0gdGhpcy5tYXBIZWlnaHQgLSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sub3BhY2l0eSA9IDI1NDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5tYXBJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbFtpXS5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy53YWxsSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuYmxvY2tJbml0KCk7XHJcbiAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rmlrnlnZdcclxuLy8gLi4uIOW3suacieS7o+eggSAuLi5cclxuXHJcbi8v5Yib5bu65pa55Z2XXHJcbi8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG5cclxuXHJcblxyXG5ibG9ja0luaXQoKSB7XHJcbiAgICBsZXQgYmxvY2tBcnJheSA9IGNjLmZ4LkdhbWVDb25maWcuQkxPQ0tfSU5GT1swXTtcclxuICAgIGJsb2NrQXJyYXkgPSB0aGlzLnNvcnRCbG9jayhibG9ja0FycmF5KTsgXHJcblxyXG4gICAgbGV0IGluZGV4ID0gMDsgLy8g5b2T5YmN6KaB5Yib5bu655qE5pa55Z2X57Si5byVXHJcbiAgICBsZXQgQkxPQ0tTX1BFUl9GUkFNRSA9IDE7IC8vIOWIneWni+avj+W4p+WIm+W7uueahOaWueWdl+aVsOmHj1xyXG4gICAgY29uc3QgTUFYX1BFUl9GUkFNRSA9IDEwOyAvLyDmr4/luKfmnIDlpKfliJvlu7rmlbDph49cclxuICAgIGNvbnN0IE1JTl9QRVJfRlJBTUUgPSAxOyAvLyDmr4/luKfmnIDlsI/liJvlu7rmlbDph49cclxuXHJcbiAgICBjb25zdCBjcmVhdGVCbG9ja3MgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBCTE9DS1NfUEVSX0ZSQU1FICYmIGluZGV4IDwgYmxvY2tBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgYmxvY2tJbmZvID0gYmxvY2tBcnJheVtpbmRleF07XHJcbiAgICAgICAgICAgIC8vIOe8k+WtmCBCbG9ja19BcnJheSDorr/pl65cclxuICAgICAgICAgICAgY29uc3QgYmxvY2tQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2Jsb2NrSW5mby5ibG9ja107IFxyXG4gICAgICAgICAgICBsZXQgYmxvY2sgPSBjYy5pbnN0YW50aWF0ZShibG9ja1ByZWZhYik7XHJcbiAgICAgICAgICAgIGJsb2NrLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgYmxvY2suc2V0UG9zaXRpb24oY2MudjIoYmxvY2tJbmZvLnBvc2l0aW9uLngsIGJsb2NrSW5mby5wb3NpdGlvbi55KSk7XHJcbiAgICAgICAgICAgIGlmIChibG9ja0luZm8uYmxvY2sgIT0gMjMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgaWYgKGJsb2NrSW5mby50eXBlID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGJsb2NrSW5mby5pZCArIDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrOiBibG9ja0luZm8uYmxvY2ssXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBibG9ja0luZm8uc3RhY2tpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IDEwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYmxvY2tJbmZvLnBvc2l0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFja2luZzogYmxvY2tJbmZvLmNvbG9yXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAvLyDnvJPlrZggQmxvY2tfQXJyYXkg6K6/6ZeuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tVcFByZWZhYiA9IHRoaXMuQmxvY2tfQXJyYXlbaW5mby5ibG9ja107IFxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBibG9ja1VwID0gY2MuaW5zdGFudGlhdGUoYmxvY2tVcFByZWZhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5zZXRQb3NpdGlvbihjYy52MihpbmZvLnBvc2l0aW9uLngsIGluZm8ucG9zaXRpb24ueSkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5wdXNoKGJsb2NrVXApO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoYmxvY2tJbmZvLCBudWxsLCBudWxsLCBibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICBibG9ja1VwLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoaW5mbywgbnVsbCwgbnVsbCwgYmxvY2spO1xyXG4gICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGJsb2NrSW5mby50eXBlID09IDkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZihibG9ja0luZm8uYWRoZXNpdmVUaW1lIDwgMil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpbmZvID0gYmxvY2tBcnJheVtpbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g57yT5a2YIEJsb2NrX0FycmF5IOiuv+mXrlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrVXBQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2luZm8uYmxvY2tdOyBcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYmxvY2tVcCA9IGNjLmluc3RhbnRpYXRlKGJsb2NrVXBQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrVXAucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuc2V0UG9zaXRpb24oY2MudjIoaW5mby5wb3NpdGlvbi54LCBpbmZvLnBvc2l0aW9uLnkpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MucHVzaChibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGJsb2NrSW5mbywgbnVsbCwgbnVsbCwgYmxvY2tVcCxmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChpbmZvLCBudWxsLCBudWxsLCBibG9jayx0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9LCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChibG9ja0luZm8pO1xyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmFycmllclwiKS5pbml0KGJsb2NrSW5mbyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZW5kVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIGNvbnN0IGZyYW1lVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7XHJcbiAgICAgICAgLy8g5aaC5p6c5b2T5YmN5bin5omn6KGM5pe26Ze06L+H6ZW/77yM5YeP5bCR5q+P5bin5Yib5bu65pWw6YePXHJcbiAgICAgICAgaWYgKGZyYW1lVGltZSA+IDE2KSB7IFxyXG4gICAgICAgICAgICBCTE9DS1NfUEVSX0ZSQU1FID0gTWF0aC5tYXgoQkxPQ0tTX1BFUl9GUkFNRSAtIDEsIE1JTl9QRVJfRlJBTUUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIEJMT0NLU19QRVJfRlJBTUUgPSBNYXRoLm1pbihCTE9DS1NfUEVSX0ZSQU1FICsgMSwgTUFYX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlpoLmnpzov5jmnInmlrnlnZfmnKrliJvlu7rvvIzkuIvkuIDluKfnu6fnu63liJvlu7pcclxuICAgICAgICBpZiAoaW5kZXggPCBibG9ja0FycmF5Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAvLyDkvb/nlKggc2NoZWR1bGVPbmNlIOWcqOS4i+S4gOW4p+aJp+ihjCBjcmVhdGVCbG9ja3NcclxuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY3JlYXRlQmxvY2tzKCk7XHJcbiAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLy8g5byA5aeL5YiG5bin5Yib5bu65pa55Z2XXHJcbiAgICBjcmVhdGVCbG9ja3MoKTtcclxufVxyXG4vL+e7meWIm+W7uuaWueWdl+aOkuW6j++8jOeUqOadpemZjeS9jmRyYXdjYWxsIOWQiOaJuVxyXG5zb3J0QmxvY2soYWxsQmxvY2tzOiB7IGNvbG9yOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IHR5cGU6IG51bWJlciB9W10pIHtcclxuICAgIHJldHVybiBhbGxCbG9ja3Muc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgIC8vIOWFiOWkhOeQhiB0eXBlIOS4uiAxIOeahOaDheWGte+8jOWwhuWFtuaUvuWIsOacgOWQjlxyXG4gICAgICAgIGlmIChhLnR5cGUgPT09IDEgJiYgYi50eXBlICE9PSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYS50eXBlICE9PSAxICYmIGIudHlwZSA9PT0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlr7kgdHlwZSDkuI3kuLogMCDnmoTlhYPntKDmjIkgdHlwZSDmjpLluo9cclxuICAgICAgICBpZiAoYS50eXBlICE9PSAwICYmIGIudHlwZSAhPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gYS50eXBlIC0gYi50eXBlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYS50eXBlICE9PSAwICYmIGIudHlwZSA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEudHlwZSA9PT0gMCAmJiBiLnR5cGUgIT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5YaN5aSE55CGIGJsb2NrIOS4uiAyMyDnmoTmg4XlhrXvvIzlsIblhbbmlL7liLDmnIDliY3pnaJcclxuICAgICAgICBpZiAoYS5ibG9jayA9PT0gMjMgJiYgYi5ibG9jayAhPT0gMjMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYS5ibG9jayAhPT0gMjMgJiYgYi5ibG9jayA9PT0gMjMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlhbbkvZnmjIkgY29sb3Ig5Y2H5bqP5o6S5YiXXHJcbiAgICAgICAgcmV0dXJuIGEuY29sb3IgLSBiLmNvbG9yO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcblxyXG4vL+WIm+W7uuWimeWjgVxyXG5cclxud2FsbEluaXQoKSB7XHJcbiAgICBsZXQgaW5kZXggPSAwOyAvLyDlvZPliY3opoHliJvlu7rnmoTlopnlo4HntKLlvJVcclxuICAgIGxldCBXQUxMU19QRVJfRlJBTUUgPSAxOyAvLyDliJ3lp4vmr4/luKfliJvlu7rnmoTlopnlo4HmlbDph49cclxuICAgIGNvbnN0IE1BWF9QRVJfRlJBTUUgPSAxMDsgLy8g5q+P5bin5pyA5aSn5Yib5bu65pWw6YePXHJcbiAgICBjb25zdCBNSU5fUEVSX0ZSQU1FID0gMTsgLy8g5q+P5bin5pyA5bCP5Yib5bu65pWw6YePXHJcblxyXG4gICAgY29uc3QgY3JlYXRlV2FsbHMgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBXQUxMU19QRVJfRlJBTUUgJiYgaW5kZXggPCB0aGlzLndhbGxJbmZvLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBibG9jayA9IHRoaXMud2FsbEluZm9baW5kZXhdO1xyXG4gICAgICAgICAgICBsZXQgZGlyID0gdGhpcy5nZXRXbGxEaXJhY3Rpb24oXCJ3YWxsXCIsIGNjLnYyKGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1kpKTtcclxuICAgICAgICAgICAgaWYgKGRpciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVdhbGwoZGlyLCBibG9jayk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZW5kVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIGNvbnN0IGZyYW1lVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7XHJcbiAgICAgICAgLy8g5aaC5p6c5b2T5YmN5bin5omn6KGM5pe26Ze06L+H6ZW/77yM5YeP5bCR5q+P5bin5Yib5bu65pWw6YePXHJcbiAgICAgICAgaWYgKGZyYW1lVGltZSA+IDE2KSB7IFxyXG4gICAgICAgICAgICBXQUxMU19QRVJfRlJBTUUgPSBNYXRoLm1heChXQUxMU19QRVJfRlJBTUUgLSAxLCBNSU5fUEVSX0ZSQU1FKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBXQUxMU19QRVJfRlJBTUUgPSBNYXRoLm1pbihXQUxMU19QRVJfRlJBTUUgKyAxLCBNQVhfUEVSX0ZSQU1FKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOWmguaenOi/mOacieWimeWjgeacquWIm+W7uu+8jOS4i+S4gOW4p+e7p+e7reWIm+W7ulxyXG4gICAgICAgIGlmIChpbmRleCA8IHRoaXMud2FsbEluZm8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNyZWF0ZVdhbGxzKCk7XHJcbiAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIOaJgOacieWimeWjgeWIm+W7uuWujOaIkOWQju+8jOWIm+W7uuaLkOinkuiKgueCuVxyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUNvcm5lck5vZGVzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvLyDlvIDlp4vliIbluKfliJvlu7rlopnlo4FcclxuICAgIGNyZWF0ZVdhbGxzKCk7XHJcbn1cclxuXHJcbi8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG4gICAgZ2V0V2xsRGlyYWN0aW9uKHR5cGUscG9pbnRBKXtcclxuICAgICAgICBsZXQgZGlyID0gW107XHJcbiAgICAgICAgbGV0IHBvaW50QiA9IGNjLnYyKHBvaW50QS54ICsgMSxwb2ludEEueSk7XHJcbiAgICAgICAgbGV0IHBvaW50QyA9IGNjLnYyKHBvaW50QS54IC0gMSxwb2ludEEueSk7XHJcbiAgICAgICAgbGV0IHBvaW50RCA9IGNjLnYyKHBvaW50QS54LHBvaW50QS55ICsgMSk7XHJcbiAgICAgICAgbGV0IHBvaW50RSA9IGNjLnYyKHBvaW50QS54LHBvaW50QS55IC0gMSk7XHJcbiAgICAgICAgbGV0IG9wYWNpdHkgPSAwO1xyXG4gICAgICAgIGlmKHR5cGUgPT0gXCJ3YWxsXCIpIG9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIikgb3BhY2l0eSA9IDI1MDtcclxuICAgICAgXHJcbiAgICAgICAgaWYocG9pbnRCLnggPCB0aGlzLm1hcFdpZHRoKXtcclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50Qi54XVtwb2ludEIueV0ub3BhY2l0eSA9PSBvcGFjaXR5ICl7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEIueF1bcG9pbnRCLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcInJpZ2h0XCIpe1xyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwicmlnaHRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocG9pbnRDLnggPj0gMCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEMueF1bcG9pbnRDLnldLm9wYWNpdHkgPT0gb3BhY2l0eSl7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEMueF1bcG9pbnRDLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcImxlZnRcIil7XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcImxlZnRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocG9pbnRELnkgPCB0aGlzLm1hcEhlaWdodCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEQueF1bcG9pbnRELnldLm9wYWNpdHkgPT0gb3BhY2l0eSl7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEQueF1bcG9pbnRELnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcInVwXCIpe1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJ1cFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihwb2ludEUueSA+PSAwKXtcclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50RS54XVtwb2ludEUueV0ub3BhY2l0eSA9PSBvcGFjaXR5KXtcclxuICAgICAgICAgICAgICAgIGlmKHR5cGUgPT0gXCJ0dXJuXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50RS54XVtwb2ludEUueV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuZGlyZWN0aW9uID09IFwiZG93blwiKXtcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJkb3duXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGRpci5sZW5ndGggPiAyKXtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihkaXIubGVuZ3RoID09IDEpe1xyXG4gICAgICAgICAgICBpZih0eXBlID09IFwid2FsbFwiKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpclswXTtcclxuICAgICAgICAgICAgZWxzZSBcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGRpci5sZW5ndGggPT0gMil7XHJcbiAgICAgICAgICAgIHJldHVybiBkaXJbMF0gKyBkaXJbMV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUNvcm5lck5vZGVzKCkge1xyXG4gICAgICAgIC8vIOWumuS5ieaLkOinkuS9jee9rlxyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMud2FsbEluZm8ubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLndhbGxJbmZvW2ldO1xyXG4gICAgICAgICAgICBpZihibG9jay5vcGFjaXR5ICE9IDI1MCl7XHJcbiAgICAgICAgICAgICAgICBsZXQgZGlyID0gdGhpcy5nZXRXbGxEaXJhY3Rpb24oXCJ0dXJuXCIsY2MudjIoYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKSk7XHJcbiAgICAgICAgICAgICAgICBpZihkaXIgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVUdXJuKGRpcixibG9jayxibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlV2FsbChkaXJlY3Rpb24sbm9kZSl7XHJcbiAgICAgICAgbGV0IHdhbGwgPSBudWxsO1xyXG4gICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuc2V0RGlyYWN0aW9uKGRpcmVjdGlvbik7XHJcbiAgICAgICAgc3dpdGNoKGRpcmVjdGlvbil7XHJcbiAgICAgICAgICAgIGNhc2UgXCJyaWdodFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbNF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWZ0RG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMykgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGJyZWFrOyBcclxuICAgICAgICAgICAgY2FzZSBcImxlZnRcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzNdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmlnaHREb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKSBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzVdKTtcclxuICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgdGhpcy50b3BEb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3duXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlswXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJvdHRvbURvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMykgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwcmlnaHRcIiA6IGNhc2UgXCJyaWdodHVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls3XSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cGxlZnRcIiA6IGNhc2UgXCJsZWZ0dXBcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzZdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25yaWdodFwiIDogY2FzZSBcInJpZ2h0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMl0pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bmxlZnRcIiA6IGNhc2UgXCJsZWZ0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMV0pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgXHJcbiAgICAgICAgLy8gaWYod2FsbFR1cm4pe1xyXG4gICAgICAgIC8vICAgICB3YWxsVHVybi5nZXRDb21wb25lbnQoXCJ3YWxsVHVuclwiKS5pbml0KHdhbGwpO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXREb29ySW5mbyh3YWxsKXtcclxuICAgICAgICBsZXQgZG9vckluZm8gPSBjYy5meC5HYW1lQ29uZmlnLldBTExfSU5GT1swXTtcclxuXHJcbiAgICAgICAgaWYoZG9vckluZm8pe1xyXG4gICAgICAgICAgICBmb3IobGV0IGogPSAwOyBqIDwgZG9vckluZm8ubGVuZ3RoOyBqKyspe1xyXG4gICAgICAgICAgICAgICAgaWYoZG9vckluZm9bal0ubnVtID09IHRoaXMud2FsbE51bSl7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FsbC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQoZG9vckluZm9bal0sbnVsbCxudWxsLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5LnB1c2god2FsbC5wYXJlbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVUdXJuKGRpcmVjdGlvbixub2RlLHBvc1gscG9zWSl7XHJcbiAgICAgICAgbGV0IHdhbGwgPSBudWxsO1xyXG4gICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLndhbGxUdXJuUHJlZmFiKTtcclxuICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICBzd2l0Y2goZGlyZWN0aW9uKXtcclxuICAgICAgICAgICAgY2FzZSBcInVwcmlnaHRcIiA6IGNhc2UgXCJyaWdodHVwXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gMDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFuZ2xlID0gMDtcclxuICAgICBcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBsZWZ0XCIgOiBjYXNlIFwibGVmdHVwXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gOTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC05MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnggLT0gMS4zO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3ducmlnaHRcIiA6IGNhc2UgXCJyaWdodGRvd25cIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSAyNzA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC0yNzA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54ICs9IDIuNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gMTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bmxlZnRcIiA6IGNhc2UgXCJsZWZ0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDE4MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFuZ2xlID0gLTE4MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnggKz0gNC41O1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueSArPSAzLjI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGlmKGRpcmVjdGlvbiA9PSBcInJpZ2h0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25yaWdodFwiKSB7XHJcbiAgICAgICAgLy8gICAgIHdhbGwuekluZGV4ID0gNTAgKyBwb3NYIC0gcG9zWSozO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyBlbHNlIFxyXG4gICAgICAgIC8vICAgICB3YWxsLnpJbmRleCA9IDUwICsgcG9zWCAtIHBvc1kqMztcclxuXHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwidXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJsZWZ0dXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJ1cGxlZnRcIlxyXG4gICAgICAgICl7XHJcbiAgICAgICAgICAgIHdhbGwuekluZGV4ID0gMTAwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkaXJlY3Rpb24gPT0gXCJyaWdodHVwXCIgfHwgZGlyZWN0aW9uID09IFwidXByaWdodFwiIHx8IGRpcmVjdGlvbiA9PSBcInJpZ2h0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25yaWdodFwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25sZWZ0XCIpe1xyXG4gICAgICAgICAgICB3YWxsLnpJbmRleCA9IDMwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoIGRpcmVjdGlvbiA9PSBcImxlZnRcIiB8fCBkaXJlY3Rpb24gPT0gXCJsZWZ0ZG93blwiKXtcclxuICAgICAgICAgICAgd2FsbC56SW5kZXggPSA3MCArIHBvc1ggLSBwb3NZKjM7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHdhbGwuekluZGV4ID0gNzAgKyBwb3NYIC0gcG9zWSozO1xyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuYW5nbGUgPSAtd2FsbC5hbmdsZTtcclxuICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkaXJlY3Rpb247XHJcbiAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gd2FsbC56SW5kZXgrIFwiXCI7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2cocG9zWCxwb3NZLHdhbGwuekluZGV4KTtcclxuICAgICAgICAvLyB0aGlzLndhbGxOdW0gKz0gIDE7XHJcbiAgICAgICAgLy8gd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bSArIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLy/lnLDlm77lupXlnZfnvLrlj6PliKTmlq1cclxuICAgIG1hcEdhcChwb2ludCxnYXApe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGdhcC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHBvaW50LnggPT0gZ2FwW2ldLnggJiYgcG9pbnQueSA9PSBnYXBbaV0ueSl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Y2H6ZmN5Zyw5Z2X5Yik5patXHJcbiAgICBtYXBSaXNlRmFsbChwb2ludCxyaXNlZmFsbCxibG9jayl7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8cmlzZWZhbGwubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZihwb2ludC54ID09IHJpc2VmYWxsW2ldLnBvcy54ICYmIHBvaW50LnkgPT0gcmlzZWZhbGxbaV0ucG9zLnkpe1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoXCJyaXNlZmFsbFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuZ2V0Q2hpbGRCeU5hbWUoXCJjb2xvclwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHJpc2VmYWxsW2ldLmNvbG9yK1wiXCI7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5hZGRDb21wb25lbnQoY2MuQm94Q29sbGlkZXIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuZ2V0Q29tcG9uZW50KGNjLkJveENvbGxpZGVyKS5zaXplID0gY2Muc2l6ZSgxMTAsMTEwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8v5Y2H6ZmN5Zyw5Z2XXHJcbiAgICBjaGFuZ2VSaXNlRmFsbChjb2xvcixkb3duKXtcclxuICAgICAgICBjb2xvciA9IGNvbG9yLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5yaXNlRmFsbEJsY29rLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYoY29sb3IgPT0gdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJjb2xvclwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyl7XHJcbiAgICAgICAgICAgICAgICBpZihkb3duKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJyaXNlZmFsbFwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykucmVtb3ZlQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuYWRkQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuZ2V0Q29tcG9uZW50KGNjLkJveENvbGxpZGVyKS5zaXplID0gY2Muc2l6ZSgxMTAsMTEwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICAvL+afpeivouWPoOWKoOW/q2lkXHJcbiAgICBmb3VuZERvd25CbG9jayhpZCl7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja0lkID09IGlkKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJsb2Nrc1tpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvL+WIoOmZpOWdl1xyXG4gICAgcmVtb3ZlQmxvY2soaWQpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tJZCA9PSBpZCl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ibG9ja3NbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TWluQW5kTWF4KGJsb2NrKXtcclxuICAgICAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKGJsb2NrLndpZHRoIC8gMTIwKTtcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gTWF0aC5mbG9vcihibG9jay5oZWlnaHQgLyAxMjApO1xyXG5cclxuICAgICAgICBsZXQgbWluWCA9IHdpZHRoO1xyXG4gICAgICAgIGxldCBtYXhYID0gdGhpcy5tYXBXaWR0aC0yO1xyXG4gICAgICAgIGxldCBtaW5ZID0gMTtcclxuICAgICAgICBsZXQgbWF4WSA9IHRoaXMubWFwSGVpZ2h0LTIgLSBoZWlnaHQgKyAxO1xyXG5cclxuICAgICAgICBpZihibG9jay5uYW1lID09IFwiYmxvY2sxMFwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTE7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwV2lkdGggPiAzKSBtYXhYID0gbWF4WC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGJsb2NrLm5hbWUgPT0gXCJibG9jazExXCIpe1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGgtMjtcclxuICAgICAgICAgICAgaWYodGhpcy5tYXBXaWR0aCA+IDMpIG1heFggPSBtYXhYLTI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIGlmKGJsb2NrLm5hbWUgPT0gXCJibG9jazE0XCIpe1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGgtMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFgtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2sxNlwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYLTE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoYmxvY2submFtZSA9PSBcImJsb2NrMThcIil7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aC0xO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGJsb2NrLm5hbWUgPT0gXCJibG9jazIxXCIpe1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGgtMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFgtMTtcclxuICAgICAgICB9XHJcbiAgICAgXHJcbiAgICAgICAgcmV0dXJuIHttaW5YOm1pblgsbWF4WDptYXhYLG1pblk6bWluWSxtYXhZOm1heFl9O1xyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL6JC954K55piv5ZCm5Y+v5Lul5raI6ZmkXHJcbiAgICBjaGVja1Bhc3Mobm9kZSxibG9ja3MpIHtcclxuICAgICAgICBsZXQgbWluQW5kTWF4ID0gdGhpcy5nZXRNaW5BbmRNYXgobm9kZSk7XHJcbiAgICAgICAgbGV0IG1pblggPSBtaW5BbmRNYXgubWluWDtcclxuICAgICAgICBsZXQgbWF4WCA9IG1pbkFuZE1heC5tYXhYO1xyXG4gICAgICAgIGxldCBtaW5ZID0gbWluQW5kTWF4Lm1pblk7XHJcbiAgICAgICAgbGV0IG1heFkgPSBtaW5BbmRNYXgubWF4WTtcclxuXHJcbiAgICAgICAgbGV0IG5vZGVQb3MgPSBjYy52Mihub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSk7XHJcblxyXG4gICAgICAgIC8vIOiOt+WPluWcsOWbvui+ueeVjOS/oeaBr1xyXG5cclxuICAgICAgICBsZXQgYWxsQmxvY2tzID0gW107XHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTxibG9ja3MubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGFsbEJsb2Nrcy5wdXNoKGNjLnYyKG5vZGVQb3MueCArIGJsb2Nrc1tpXS54LCBub2RlUG9zLnkgKyBibG9ja3NbaV0ueSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTEgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWwhuWwj+Wdl+aUvuWFpeaVsOe7hOeahOaXtumXtFwiLGRhdGUxKTtcclxuICAgXHJcbiAgICAgICAgbGV0IGpnID0gLTE7XHJcbiAgICAgICAgbGV0IHB6ID0gMDtcclxuICAgICAgICAvLyDojrflj5bmiYDmnInlopnlo4HoioLngrlcclxuICAgICAgICAvLyBsZXQgd2FsbCA9IHRoaXMubm9kZTtcclxuICAgICAgICBsZXQgZGlyZWN0aW9uID0gdGhpcy5jaGVja0RpcmFjdGlvbihhbGxCbG9ja3MsbWF4WCxtYXhZKTtcclxuXHJcbiAgICAgICAgLy8g5Yik5pat5pa55Z2X5piv5ZCm5Zyo5Zyw5Zu+6L6557yYXHJcbiAgICAgICAgaWYgKG5vZGVQb3MueCA8PSBtaW5YIHx8IGRpcmVjdGlvblswXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGUyID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5bem6L6557yYXCIsZGF0ZTIpO1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICBsZXQgbGVmdFdhbGxzID0gW107XHJcbiAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLmxlZnREb29ycy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbExlZnQgPSB0aGlzLmxlZnREb29yc1tpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFBvcyA9IGNjLnYyKHdhbGxMZWZ0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCx3YWxsTGVmdC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnkgPT0gd2FsbFBvcy55ICYmIGFsbEJsb2Nrc1tpXS54ID4gd2FsbFBvcy54KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJpZDpcIix3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdFdhbGxzLnB1c2god2FsbExlZnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW+l+WIsOW3pui+ueWimeWjgeaVsOe7hFwiLGRhdGU2KTtcclxuICAgICAgICAgICAgaWYobGVmdFdhbGxzLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwibGVmdFwiLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCxsZWZ0V2FsbHMsbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOW3pui+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQpe1xyXG4gICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueCA+PSBtYXhYIHx8IGRpcmVjdGlvblsxXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGUzID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5Y+z6L6557yYXCIsZGF0ZTMpO1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICBsZXQgcmlnaHRXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy5yaWdodERvb3JzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUmlnaHQgPSB0aGlzLnJpZ2h0RG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsUmlnaHQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NYLHdhbGxSaWdodC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnkgPT0gd2FsbFBvcy55ICYmIGFsbEJsb2Nrc1tpXS54IDwgd2FsbFBvcy54KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJpZDpcIix3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRXYWxscy5wdXNoKHdhbGxSaWdodCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZihyaWdodFdhbGxzLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwicmlnaHRcIixub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0ID09IHRydWUpIHJlc3VsdCA9IHRoaXMucGFzc1dhbGwocmVzdWx0LHJpZ2h0V2FsbHMsbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOWPs+i+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQpe1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gIFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobm9kZVBvcy55ICA8PSBtaW5ZIHx8IGRpcmVjdGlvblsyXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHB6ICs9IDE7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGU0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiL6L6557yYXCIsZGF0ZTQpO1xyXG4gICAgICAgICAgICBsZXQgZG93bldhbGxzID0gW107XHJcbiAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLnRvcERvb3JzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsQm90dG9tID0gdGhpcy50b3BEb29yc1tpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFBvcyA9IGNjLnYyKHdhbGxCb3R0b20uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NYLHdhbGxCb3R0b20uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBsdW9jaGEgPSBNYXRoLmFicyhhbGxCbG9ja3NbaV0ueSAtIHdhbGxQb3MueSlcclxuICAgICAgICAgICAgICAgICAgICBpZihhbGxCbG9ja3NbaV0ueCA9PSB3YWxsUG9zLnggJiYgYWxsQmxvY2tzW2ldLnkgPiB3YWxsUG9zLnkgJiYgbHVvY2hhIDw9IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2h1KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJpZDpcIix3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG93bldhbGxzLnB1c2god2FsbEJvdHRvbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZihkb3duV2FsbHMubGVuZ3RoICE9IDApe1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGV0ZWN0aW5nQmxvY2soXCJkb3duXCIsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSxhbGxCbG9ja3MpO1xyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0ID09IHRydWUpIHJlc3VsdCA9IHRoaXMucGFzc1dhbGwocmVzdWx0LGRvd25XYWxscyxub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiL6L6557yY57uT5p6cOlwiLGpnKTtcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCl7XHJcbiAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobm9kZVBvcy55ICA+PSBtYXhZIHx8IGRpcmVjdGlvblszXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHB6ICs9IDE7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGU1ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yYXCIsZGF0ZTUpO1xyXG4gICAgICAgICAgICBsZXQgdXBXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy5ib3R0b21Eb29ycy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFRvcCA9IHRoaXMuYm90dG9tRG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsVG9wLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCx3YWxsVG9wLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbHVvY2hhID0gTWF0aC5hYnMoYWxsQmxvY2tzW2ldLnkgLSB3YWxsUG9zLnkpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnggPT0gd2FsbFBvcy54ICYmIGFsbEJsb2Nrc1tpXS55IDwgd2FsbFBvcy55ICYmIGx1b2NoYSA8PSBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnNodSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwV2FsbHMucHVzaCh3YWxsVG9wKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmKHVwV2FsbHMubGVuZ3RoICE9IDApe1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGV0ZWN0aW5nQmxvY2soXCJ1cFwiLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCx1cFdhbGxzLG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDkuIrovrnnvJjnu5Pmnpw6XCIscmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCl7XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHB6ID09IDAgKWpnID0gLTE7XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTEwID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmiYDmnInmo4DmtYvnu5PmnZ/ogJfml7ZcIixkYXRlMTAsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VTdGF0ZSgpe1xyXG4gICAgICAgIGlmKHRoaXMub3BlbldhbGwubGVuZ3RoICE9IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLm9wZW5XYWxsLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGxbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuY2hhbmdlTG9jaygpOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYodGhpcy5mcmVlemVXYWxsLmxlbmd0aCE9IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmZyZWV6ZVdhbGwubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNoYW5nZUZyZWV6ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL5piv5ZCm5Y+v5Lul6YCa6L+H6ZeoXHJcbiAgICBwYXNzV2FsbChqZyx3YWxsQXJyYXksbm9kZSl7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTx3YWxsQXJyYXkubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGlmKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMil7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWwneivlemAmui/h+W8gOWFs+mXqDpcIix3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5vcGVuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZih3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIgJiYgd2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikub3BlbiA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyh3YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuY29sb3Isbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvcilcclxuICAgICAgICAgICAgaWYod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuY29sb3IgIT0gbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvcil7XHJcblxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA1KXtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgIT0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihqZyA9PSB0cnVlICAmJiBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNSl7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaj0wO2o8d2FsbEFycmF5Lmxlbmd0aDtqKyspe1xyXG4gICAgICAgICAgICAgICAgaWYod2FsbEFycmF5W2pdLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAxICYmIHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLndhbGxfSW5mby5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FsbEFycmF5W2pdLmdldENvbXBvbmVudChcIldhbGxcIikucGxheVN0YXJEb29yKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTggPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuajgOa1i+minOiJsuaYr+WQpuiDveWkn+mAmui/h+mXqFwiLGRhdGU4KTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvmlrnlnZflkozpl6jkuK3pl7TmnInmsqHmnInlpLnmnYLlhbbku5blnZdcclxuICAgIGRldGVjdGluZ0Jsb2NrKGRpcmVjdGlvbixwb3NYLHBvc1ksYmxvY2tzKXtcclxuICAgICAgICBsZXQgamcgPSB0cnVlO1xyXG4gICAgICAgIGxldCBpZCA9IFwiXCI7XHJcbiAgICAgICAgaWYoYmxvY2tzLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTxibG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvcyA9IGJsb2Nrc1tpXTtcclxuICAgICAgICAgICAgICAgIGxldCB4ID0gcG9zLng7XHJcbiAgICAgICAgICAgICAgICBsZXQgeSA9IHBvcy55OyBcclxuICAgICAgICAgICAgICAgIGlkID0gdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkO1xyXG4gICAgICAgICAgICAgICAgamcgPSB0aGlzLmNoZWNrQWxsRGlyZWN0aW9ucyhpZCxkaXJlY3Rpb24seCx5KTtcclxuICAgICAgICAgICAgICAgIGlmKCFqZyl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlkJHmo4DmtYvmsqHov4dcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaSA9IDEwMDAwMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zdCBkYXRlNyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55ZCR5qOA5rWL6YCa6L+HXCIsZGF0ZTcsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+eJqeS9k+WQhOaWueWQkeaYr+WQpuacieWIq+eahOeJqeWdl++8jOmYsuatoueisOWIsOWimeWjgeS6huS9huaYr+aYr+WHueWHuOW9oueKtu+8jOWimeS4juWdl+S5i+mXtOaciemYu+aMoeeJqeWdl1xyXG4gICAgY2hlY2tBbGxEaXJlY3Rpb25zKGlkLGRpcmVjdGlvbix4LHkpe1xyXG4gICAgICAgIGxldCBqZyA9IHRydWU7XHJcbiBcclxuICAgICAgICBpZihkaXJlY3Rpb24gPT0gXCJsZWZ0XCIpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeC0xXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3gtMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bem5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4LTFdW3ldLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoKHggLSAyKSA+PSAwKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3gtMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3gtMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3puS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3gtMl1beV0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoZGlyZWN0aW9uID09IFwicmlnaHRcIil7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4KzFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3grMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCsxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj7PkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3grMV1beV0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZigoeCArIDIpIDw9IHRoaXMubWFwQmxvY2tzV2FsbC5sZW5ndGgtMSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4KzJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4KzJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj7PkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4KzJdW3ldLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihkaXJlY3Rpb24gPT0gXCJ1cFwiKXtcclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSsxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSsxXS5vcGFjaXR5ID09IDI0OSl7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCh5ICsgMikgPD0gdGhpcy5tYXBCbG9ja3NXYWxsW3hdLmxlbmd0aC0xKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMl0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGRpcmVjdGlvbiA9PSBcImRvd25cIil7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beS0xXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIvkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMV0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZigoeSAtIDIpID49IDApe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beS0yXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beS0yXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beS0yXS5vcGFjaXR5ID09IDI0OSl7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmo4DmtYvniankvZPlkITmlrnlkJHmmK/lkKbmnInliKvnmoTnianlnZdcIixqZyk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrRGlyYWN0aW9uKGFsbEJsb2NrcyxtYXhYLG1heFkpe1xyXG4gICAgICAgIGxldCBqZyA9IFtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV07XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8YWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnggPiAwICYmIGpnWzBdID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueC0xXVthbGxCbG9ja3NbaV0ueV0ub3BhY2l0eSA9PSAyNTApe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzBdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoIGpnWzFdID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueCsxXVthbGxCbG9ja3NbaV0ueV0ub3BhY2l0eSA9PSAyNTApe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzFdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnkgPiAwICYmIGpnWzJdID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueF1bYWxsQmxvY2tzW2ldLnktMV0ub3BhY2l0eSA9PSAyNTApe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzJdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoamdbM10gPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW2FsbEJsb2Nrc1tpXS54XVthbGxCbG9ja3NbaV0ueSsxXS5vcGFjaXR5ID09IDI1MCl7XHJcbiAgICAgICAgICAgICAgICAgICAgamdbM10gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tMZWZ0KGFsbEJsb2Nrcyl7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrUmlnaHQoYWxsQmxvY2tzLG1heCl7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8YWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0Rvd24oYWxsQmxvY2tzKXtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1VwKGFsbEJsb2NrcyxtYXgpe1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcbiAgICBcclxuXHJcbiAgICAvL+eJueauiuWkhOeQhu+8jOaWueWdl+W4pumBk+WFt+aIluiAhemcgOimgea2iOmZpOWGsOWdl1xyXG4gICAgc3BlY2lhbF9UcmVhdG1lbnQobm9kZSl7XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJsb2NrID0gdGhpcy5ub2RlLmNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgIGlmKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpKXtcclxuICAgICAgICAgICAgICAgIGlmKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNClcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmKGZyZWV6ZUJsb2NrLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTxmcmVlemVCbG9jay5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBmcmVlemVCbG9ja1tpXS5nZXRDaGlsZEJ5TmFtZShcImZyZWV6ZVwiKS5nZXRDb21wb25lbnQoXCJGcmVlemVcIikucmVkdWNlKDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZihub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMiB8fCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNCl7XHJcbiAgICAgICAgICAgIGxldCBsb2NrQmxvY2sgPSB0aGlzLm5vZGUuY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgICAgIGlmKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYobG9ja0Jsb2NrLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IGk9MDsgaTxsb2NrQmxvY2subGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGxvY2tCbG9ja1tpXS5nZXRDaGlsZEJ5TmFtZShcImxvY2tcIikuZ2V0Q29tcG9uZW50KFwiTG9ja1wiKS5yZWR1Y2UoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTx0aGlzLmJsb2Nrcy5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0gPT0gbm9kZSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5zcGxpY2UoaSwxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICAvL+WIpOaWrea4uOaIj+aIkOWKn+S4i+S4gOWFs1xyXG4gICAgbmV4dExldmVsKCl7XHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub3BlbkljZSgpO1xyXG5cclxuICAgICAgICB0aGlzLmJsb2NrTnVtID0gdGhpcy5ibG9ja3MubGVuZ3RoO1xyXG4gXHJcbiAgICAgICAgaWYodGhpcy5ibG9ja051bSA9PSAwICYmICF0aGlzLmdhbWVXaW4gJiYgIXRoaXMuZ2FtZU92ZXIpe1xyXG4gICAgICAgICAgICAvLyBhbGVydChcIua4uOaIj+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgdGhpcy5nYW1lV2luID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5oiQ5Yqf5raI6Zmk5LiA5LiqXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5jaGFuZ2VDb2luKDQwKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuYWRkTGV2ZWwodGhpcy5jb3VudF9UaW1lLHRoaXMuYWRkX1RpbWUpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jaGVja19OZXdNb2RlKCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSwgNjYwKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmuLjmiI/miJDlip9cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZ2FtZU92ZXIgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZhaWxMZXZlbChudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjaGVja19OZXdNb2RlKCl7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8Y2MuZnguR2FtZUNvbmZpZy5ORVdfTEVWRUwubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZigoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKzEpID09IGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMW2ldLmxldmVsKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubmV3X21vZGUgPSAzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHdpbkxldmVsKCl7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsbnVsbCk7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID4gMTU2KXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMTU2O1xyXG4gICAgICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgXHJcbiAgICAgICAgICAgIGlmKHRoaXMubmV3X21vZGUgPT0gMyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlKTtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcInVwXCIpIHtcclxuICAgICAgICAgICAgLy8gICAgICAgICAvLyDliqjnlLvmkq3mlL7nu5PmnZ/lkI7miafooYznmoTpgLvovpFcclxuICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgICAgICAvLyB9KTtcclxuXHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5LiA5YWzXCIpO1xyXG4gICAgICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYodGhpcy5uZXdfbW9kZSA9PSAzKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgyKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLDApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcInVwXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsMCk7XHJcbiAgICAgICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZGVzdHJveSgpO1xyXG4gICAgICBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWdhaW5MZXZlbCgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA8IDEpe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85LiN6LazXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBcclxuICAgICAgICBpZighdGhpcy5hZ2FpbkNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5hZ2FpbkNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAvLyDliqjnlLvmkq3mlL7nu5PmnZ/lkI7miafooYznmoTpgLvovpFcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyB9KTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsMCk7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICByZXZpZXdMZXZlbCgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGxldCBjb2luID0gOTAwO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMSkgY29pbiA9IDE5MDA7XHJcbiAgICAgICAgZWxzZSBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDIpIGNvaW4gPSAyNTAwO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6Ieq6Lqr6YeR5biBOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLFwi5raI6ICX6YeR5biBOlwiLGNvaW4pO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgTWF0aC5hYnMoY29pbikpe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV5Yqg5pe26Ze0XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMucnVuUmV3aXZlKC1jb2luKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcnVuUmV3aXZlKGRhdGEpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5aSN5rS75Zue6LCD5Ye95pWw5YaFXCIsZGF0YSk7XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuY2hhbmdlQ29pbihkYXRhKTtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi57un57ut5ri45oiPXCIpO1xyXG4gICBcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3IDwgMilcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyArPSAxO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuZ2FtZU92ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRpbWVOdW1iZXIgPSAyMTtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lICs9IDIwO1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgXHJcbiAgICBob21lQnRuKCl7XHJcbiAgICAgICAgLy8gYWxlcnQoXCLmuLjmiI/lpLHotKVcIik7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsbnVsbCk7XHJcbiAgICAgICAgaWYoIXRoaXMuaG9tZUNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5ob21lQ2FuVG91Y2ggPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkJvb21cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiTG9ja1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJIZWFsdGhcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgdGltZTp0aGlzLmNvdW50X1RpbWUsICAgICAgICAgXHJcbiAgICAgICAgICAgIGFkZF9UaW1lOnRoaXMuYWRkX1RpbWUsXHJcbiAgICAgICAgICAgIHJlc3VsdDpcImZhaWxcIlxyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJmaW5pc2hfc3RhZ2VcIixkYXRhKTtcclxuICAgICAgICBpZih0aGlzLmdhbWVTdGFydCA9PSB0cnVlKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aCgtMSwoZGF0YSk9PntcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsbnVsbCk7XHJcbiAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbCl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOWHj+WwkVwiKTtcclxuICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLDApO1xyXG4gICAgICAgIGlmKHRoaXMubmV3X21vZGUgPT0gMyl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm9wZW5OZXdNb2RlKDEpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ1cFwiLGZhbHNlKTtcclxuICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L29IFByZWZhYiDlpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICB9LCAxMjAwKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+WIpOaWrea4uOaIj+Wksei0pVxyXG4gICAgZmFpbExldmVsKHR5cGUpe1xyXG4gICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgaWYodGhpcy5nYW1lT3Zlcj09IHRydWUgfHx0aGlzLmdhbWVXaW4gPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB0aW1lID0gMDtcclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gdHJ1ZTtcclxuICAgICAgICBpZih0eXBlID09IFwiYm9vbVwiKXtcclxuICAgICAgICAgICAgdGltZSA9IDIwMDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGJ1eUJ0biA9IHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIlRpbWVcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidXlCdG5cIik7XHJcbiAgICAgICAgICAgICAgICBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMVwiKS5hY3RpdmUgPSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMlwiKS5hY3RpdmUgPSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luM1wiKS5hY3RpdmUgPWZhbHNlOyBcclxuICAgICAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMClidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDEpIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4yXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMikgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjNcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGlmKHR5cGUpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHR5cGUgPT0gXCJib29tXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIHRpbWUpO1xyXG4gICAgXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmuLjmiI/lpLHotKVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLy/miZPlvIDmlrDmqKHlvI/lvLnnqpdcclxuICAgIG9wZW5OZXdNb2RlKHR5cGUpe1xyXG4gICAgICAgIGxldCBpbmRleCA9IDA7XHJcbiAgICAgICAgY29uc3QgQkxPQ0tTX1BFUl9GUkFNRSA9IDU7IC8vIOavj+W4p+mUgOavgeeahOaWueWdl+aVsOmHj1xyXG4gICAgICAgIGNvbnN0IGRlc3Ryb3lCbG9ja3MgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZEluZGV4ID0gTWF0aC5taW4oaW5kZXggKyBCTE9DS1NfUEVSX0ZSQU1FLCB0aGlzLmJsb2Nrcy5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKDsgaW5kZXggPCBlbmRJbmRleDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2luZGV4XSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzW2luZGV4XS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5aaC5p6c6L+Y5pyJ5pa55Z2X5pyq6ZSA5q+B77yM5LiL5LiA5bin57un57utXHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IHRoaXMuYmxvY2tzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoZGVzdHJveUJsb2NrcywgMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8vIOW8gOWni+WIhuW4p+mUgOavgeaWueWdl1xyXG4gICAgICAgIGRlc3Ryb3lCbG9ja3MoKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIk5ld01vZGVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIk5ld01vZGVcIikuZ2V0Q29tcG9uZW50KFwiTmV3TW9kZVwiKS5zZXRNb2RlKHR5cGUpO1xyXG4gICAgfVxyXG5cclxuICAgIFxyXG4gICAgZG93bkRvb3IoY29sb3IsdHlwZSl7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy53YWxsQXJyYXkubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yID09IGNvbG9yKXtcclxuICAgICAgICAgICAgICAgIGlmKHR5cGUpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHR5cGUgPT0gNSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlICB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5kb3duRG9vcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5kb3duRG9vcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwRG9vcigpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMud2FsbEFycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBpZih0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikub3BhY2l0eSA9PSAwKXtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnVwRG9vcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgLy/lvIDlp4vlgJLorqHml7ZcclxuICAgc3RhcnRUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVDYWxsYmFjayA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucGF1c2UpIHJldHVybjtcclxuICAgICAgICAgICAgaWYodGhpcy50aW1lTnVtYmVyIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIE51bWJlclRvSW1hZ2UuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIsNTAsXCJ0aW1lX1wiLHRoaXMudGltZUxhYmVsKVxyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIGlmKCF0aGlzLnBhdXNlKXRoaXMuZmFpbExldmVsKFwidGltZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aW1lTnVtYmVyIC09IDE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50X1RpbWUgKz0gMTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIE51bWJlclRvSW1hZ2UuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIsNTAsXCJ0aW1lX1wiLHRoaXMudGltZUxhYmVsKVxyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjaywgMSk7XHJcbiAgICB9XHJcbiAgICAvLyDlgZzmraLlgJLorqHml7ZcclxuICAgIHN0b3BUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIGlmKHRoaXMuc2NoZWR1bGVDYWxsYmFjayl7XHJcbiAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOaXtumXtOmBk+WFt1xyXG4gICAgdXNlVGltZVByb3AoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMuaGFtbWVyID09IHRydWUgXHJcbiAgICAgICAgfHwgdGhpcy5tYWdpY01hc2suYWN0aXZlPT0gdHJ1ZSB8fCB0aGlzLnRpbWVOdW1iZXIgPD0gMSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgIGxldCBmcmVlemVCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICBpZihmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPCAxKXtcclxuICAgICAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJmcmVlemVcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGlmKCF0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSAmJiAhdGhpcy5wYXVzZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZU1hc2suYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA8IDApICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmljZUxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby5mcmVlemVBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgyMDAxLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6XCIyMDAxXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bTotMVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLpgZPlhbfkvb/nlKjkuK3vvIzor7fnqI3lkI7lho3or5VcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+ino+W8gOaXtumXtOWGu+e7k1xyXG4gICAgb3BlbkljZSgpe1xyXG4gICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlKXtcclxuICAgICAgICAgICAgdGhpcy5mcmVlemVNYXNrLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgICAgIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgaGFuZGxlQnV5U3VjY2VzcyhkYXRhKXtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWbnuiwg+WHveaVsOWGhTpcIix0aGlzLnBhdXNlKTtcclxuICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgbGV0IGhhbW1lckJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJkZXN0cm95QnRuXCIpO1xyXG4gICAgICAgIGxldCBtYWdpY0J0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY0J0blwiKTtcclxuICAgICAgICBpZihkYXRhID09IFwiZnJlZXplQW1vdW50XCIpIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIGVsc2UgaWYoZGF0YSA9PSBcImhhbW1lckFtb3VudFwiKSBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTsgXHJcbiAgICAgICAgZWxzZSBpZihkYXRhID09IFwibWFnaWNBbW91bnRcIikgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBpZihkYXRhID09IFwiZnJlZXplQW1vdW50XCIpe1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ICs9IDM7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBwcm9wSW5mby5mcmVlemVBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLmNsb3NlUHJvcEJ1eSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOWGu+e7k+aXtumXtOmBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGRhdGEgPT0gXCJtYWdpY0Ftb3VudFwiKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ICs9IDM7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBwcm9wSW5mby5tYWdpY0Ftb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6LSt5Lmw6ZSk5a2Q6YGT5YW35oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWdpY0xhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9LCAyMDApO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkYXRhID09IFwiaGFtbWVyQW1vdW50XCIpe1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ICs9IDM7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBwcm9wSW5mby5oYW1tZXJBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLmNsb3NlUHJvcEJ1eSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOmtlOazleajkumBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIFxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOmUpOWtkOmBk+WFt1xyXG4gICAgdXNlSGFtbWVyKCl7XHJcbiAgICAgICAgaWYodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLmhhbW1lciA9PSB0cnVlIFxyXG4gICAgICAgIHx8IHRoaXMubWFnaWNNYXNrLmFjdGl2ZT09IHRydWUgfHwgdGhpcy50aW1lTnVtYmVyIDw9IDEpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBoYW1tZXJCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBpZihoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPCAxKXtcclxuICAgICAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5vcGVuUHJvcEJ1eShcImhhbW1lclwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgaWYoIXRoaXMuaGFtbWVyKXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTWFzay5hY3RpdmUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbW1lciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPCAwKSAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW1tZXJMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLplKTlrZDpgZPlhbfkv6Hmga86XCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLmhhbW1lckFtb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDIwMDIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDpcIjIwMDJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtOi0xXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlc291cmNlX2Nvc3RcIixkYXRhKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumBk+WFt+S9v+eUqOS4re+8jOivt+eojeWQjuWGjeivlVwiKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gXHJcbiAgICBidXlNYWdpYygpe1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAzLHRoaXMuaGFuZGxlQnV5U3VjY2Vzcy5iaW5kKHRoaXMsXCJtYWdpY0Ftb3VudFwiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYnV5SGFtbWVyKCl7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKXtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5idXlQcm9wKDIwMDIsIHRoaXMuaGFuZGxlQnV5U3VjY2Vzcy5iaW5kKHRoaXMsXCJoYW1tZXJBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1eUZyZWV6ZSgpe1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAxLHRoaXMuaGFuZGxlQnV5U3VjY2Vzcy5iaW5kKHRoaXMsXCJmcmVlemVBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5L2/55So6a2U5rOV5qOS6ZqP5py65raI6Zmk5Lik5Liq5pa55Z2XXHJcbiAgICB1c2VNYWdpYygpe1xyXG4gICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IHRydWUgfHwgdGhpcy5oYW1tZXIgPT0gdHJ1ZSBcclxuICAgICAgICB8fCB0aGlzLm1hZ2ljTWFzay5hY3RpdmU9PSB0cnVlIHx8IHRoaXMudGltZU51bWJlciA8PSAxKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwibWFnaWNCdG5cIik7XHJcbiAgICAgICAgaWYobWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IDwgMSl7XHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJtYWdpY1wiKTtcclxuICAgICAgICAgICAgICAgIC8vIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLprZTms5Xmo5LmlbDph4/kuI3otrMs6Ieq5Yqo6LSt5Lmw6a2U5rOV5qOSXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWdpY01hc2suYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9LCAxMDAwKTtcclxuIFxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPCAwKSAgICBcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWdpY0xhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICBwcm9wSW5mby5tYWdpY0Ftb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMjAwMyxjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOlwiMjAwM1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudW06LTFcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgbm9tYWxBcnJheSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5tYWdpY0J0bi5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0wOyBpPHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaWueWdl+exu+Wei1wiLHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMyl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hY2tBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZUFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMTApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja19JbmZvLm5vZGUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrX0luZm8ubm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBub21hbEFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKG5vbWFsQXJyYXkubGVuZ3RoID4gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheSA9IGNjLmZ4LkdhbWVUb29sLnNodWZmbGVBcnJheShub21hbEFycmF5KTtcclxuICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aW1lID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBpZihub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMSB8fCBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gOSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRpbWUgPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzFdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCB0aW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzFdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihub21hbEFycmF5Lmxlbmd0aCA9PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aW1lID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBpZihub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMSB8fCBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gOSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZyZWV6ZUFycmF5Lmxlbmd0aCA9PSAwICYmIHRoaXMubG9hY2tBcnJheS5sZW5ndGggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWPquWJqeS4i+S4gOS4quWdl+mBk+WFt+S9v+eUqOWujOavlVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5sb2Fja0FycmF5Lmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua2iOmZpOS4gOS4quaZrumAmuWdl+WQju+8jOa2iOmZpOS4gOS4quW4pumUgeWdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmZyZWV6ZUFycmF5Lmxlbmd0aCE9IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5raI6Zmk5LiA5Liq5pmu6YCa5Z2X5ZCO77yM5raI6Zmk5LiA5Liq5Ya757uT5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCAyMDArdGltZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb3VudCA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5sb2Fja0FycmF5Lmxlbmd0aCE9IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmxvYWNrQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmsqHmnInmma7pgJrlv6vvvIzprZTms5XmtojpmaTkuIDkuKrluKbplIHlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ICE9IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5mcmVlemVBcnJheS5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmsqHmnInmma7pgJrlv6vvvIzprZTms5XmtojpmaTkuIDkuKrlhrvnu5PlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5mcmVlemVBcnJheVtpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+aMieS4i+aaguWBnOaMiemSrlxyXG4gICAgdXNlUGF1c2UoKXtcclxuICAgICAgICBpZih0aGlzLnBhdXNlKXtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICAvL+agueaNruWFs+WNoeiuvue9ruWcsOWbvuWkp+Wwj1xyXG4gICAgc2V0TWFwSW5mbygpe1xyXG4gICAgICAgIGxldCB3aWR0aCA9IDA7XHJcbiAgICAgICAgaWYodGhpcy5tYXBXaWR0aCA8IDEwKXtcclxuICAgICAgICAgICAgd2lkdGggPSAwLjI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5tYXBXaWR0aCA8IDE3KXtcclxuICAgICAgICAgICAgd2lkdGggPSAwLjE1IC0gKHRoaXMubWFwV2lkdGgtMTEpKjAuMDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm5vZGUuc2NhbGUgPSAxLjYgKyAoNiAtIHRoaXMubWFwV2lkdGgpICogd2lkdGg7XHJcblxyXG4gICAgICAgIGlmKHRoaXMubWFwV2lkdGggPT0gOCAmJiB0aGlzLm1hcEhlaWdodCA+IDEzKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnNjYWxlID0gMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnNjYWxlID0gdGhpcy5ub2RlLnNjYWxlO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5zY2FsZSA9IDAuNTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLm5vZGUuc2NhbGUpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rpl6jnmoTnspLlrZDnibnmlYhcclxuICAgIGNyZWF0ZVBhcnRpY2xlKGJsb2NrLGpnKXtcclxuICAgICAgICBsZXQgcGFydGljbGUgPSBjYy5pbnN0YW50aWF0ZShNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfUHJvcFs5XSk7XHJcbiAgICAgICAgcGFydGljbGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgIHBhcnRpY2xlLnpJbmRleCA9IDEwMDA7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihibG9jay53aWR0aCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IE1hdGguZmxvb3IoYmxvY2suaGVpZ2h0IC8gMTIwKTtcclxuICAgICAgICBsZXQgbmFtZSA9IFwiXCI7XHJcblxyXG4gICAgICAgIGlmKGpnID09IDAgfHwgamcgPT0gMSl7XHJcbiAgICAgICAgICAgIGxldCB5ID0gYmxvY2sueSArIGJsb2NrLmhlaWdodDtcclxuICAgICAgICAgICAgbGV0IHggPSBibG9jay54IC0gYmxvY2sud2lkdGgvMjtcclxuICAgICAgICAgICAgbmFtZSA9IFwidG9wX1wiICsgd2lkdGggKyBcIl9cIiArIGhlaWdodDtcclxuICAgICAgICAgICAgaWYoamcgPT0gMSl7XHJcbiAgICAgICAgICAgICAgICBuYW1lID0gXCJib3RfXCIgKyB3aWR0aCArIFwiX1wiICsgaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgeSA9IGJsb2NrLnk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjUpe1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLng7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuMzMpe1xyXG4gICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoKigwLjUtMC4zMyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuNjYpe1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCooMC41LTAuNjYpOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwYXJ0aWNsZS5zZXRQb3NpdGlvbih4LCB5KTsgXHJcbiAgICAgICAgfSBcclxuICAgICAgICBlbHNlIGlmKGpnID09IDIgfHwgamcgPT0gMyl7XHJcbiAgICAgICAgICAgIG5hbWUgPSBcImxlZnRfXCIgKyBoZWlnaHQgKyBcIl9cIiArIHdpZHRoO1xyXG4gICAgICAgICAgICBsZXQgeCA9IGJsb2NrLnggLSBibG9jay53aWR0aDtcclxuICAgICAgICAgICAgbGV0IHkgPSBibG9jay55ICsgYmxvY2suaGVpZ2h0LzI7XHJcbiAgICAgICAgICAgIGlmKGJsb2NrLmFuY2hvclggPT0gMC41KXtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54IC0gYmxvY2sud2lkdGgvMjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKGJsb2NrLmFuY2hvclggPT0gMC4zMyl7XHJcbiAgICAgICAgICAgICAgIHggPSBibG9jay54IC0gYmxvY2sud2lkdGgqMC4zMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKGJsb2NrLmFuY2hvclggPT0gMC42Nil7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoKjAuNjY7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGpnID09IDMpe1xyXG4gICAgICAgICAgICAgICAgbmFtZSA9IFwicmlnaHRfXCIgKyBoZWlnaHQgKyBcIl9cIiArIHdpZHRoO1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLng7XHJcbiAgICAgICAgICAgICAgICBpZihibG9jay5hbmNob3JYID09IDAuNSl7XHJcbiAgICAgICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aC8yO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuMzMpe1xyXG4gICAgICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCowLjY2O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuNjYpe1xyXG4gICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgqMC4zMzsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHBhcnRpY2xlLnNldFBvc2l0aW9uKHgsIHkpOyBcclxuICAgICAgICB9IFxyXG5cclxuICAgICAgICBsZXQgcGFydGljbGVOb2RlID0gIHBhcnRpY2xlLmdldENoaWxkQnlOYW1lKG5hbWUpO1xyXG4gICAgICAgIGxldCBjb2xvciA9IGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmNvbG9yIC0gMTtcclxuXHJcbiAgICAgICAgcGFydGljbGVOb2RlLmdldENvbXBvbmVudChjYy5QYXJ0aWNsZVN5c3RlbSkuc3ByaXRlRnJhbWUgPSBwYXJ0aWNsZS5nZXRDb21wb25lbnQoXCJSZWR1Y2VcIikuQmxvY2tfQ29sb3JbY29sb3JdO1xyXG4gICAgICAgIHBhcnRpY2xlTm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy50d2VlbihwYXJ0aWNsZSlcclxuICAgICAgICAgICAgLnRvKDIsIHtvcGFjaXR5OiAwfSlcclxuICAgICAgICAgICAgLmNhbGwoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcGFydGljbGUuZGVzdHJveSgpOyBcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlT25lQmxvY2soKSB7XHJcbiAgICAgICAgLy8g56e76Zmk5omA5pyJ5pa55Z2XXHJcbiAgICAgICAgZm9yKGxldCBpID0wIDsgaTx0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldLm9wYWNpdHkgPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3NbaV0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnNwbGljZShpLDEpO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBcclxuXHJcbiAgICB1cGRhdGUgKGR0KSB7XHJcblxyXG4gICAgfVxyXG59XHJcbiJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/SceneManager.js b/temp/quick-scripts/dst/assets/Script/SceneManager.js index fb02c5e..3a49d77 100644 --- a/temp/quick-scripts/dst/assets/Script/SceneManager.js +++ b/temp/quick-scripts/dst/assets/Script/SceneManager.js @@ -156,12 +156,16 @@ var SceneManager = /** @class */ (function (_super) { MiniGameSdk_1.MiniGameSdk.API.showToast("体力值减少"); cc.fx.GameTool.setUserHealth(-1, function (data) { }); - var data = { - time: Map_1.default._instance.count_Time, - add_Time: Map_1.default._instance.add_Time, - result: "give_up" - }; - cc.fx.GameTool.shushu_Track("finish_stage", data); + if (Map_1.default._instance.count_Time) { + var count_Time = Map_1.default._instance.count_Time; + var add_Time = Map_1.default._instance.add_Time; + var data = { + time: count_Time, + add_Time: add_Time, + result: "give_up" + }; + cc.fx.GameTool.shushu_Track("finish_stage", data); + } } this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl").setTouch(false); cc.fx.AudioManager._instance.playEffect("zhuan1", null); @@ -305,4 +309,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTY2VuZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkJBQWdDO0FBQ2hDLGlEQUFnRDtBQUUxQyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUEwQyxnQ0FBWTtJQUF0RDtRQUFBLHFFQW1RQztRQWhRRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFHdkIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFJdEIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyx5REFBeUQ7UUFDekQsbURBQW1EO1FBRW5ELFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQU8sR0FBVyxFQUFFLENBQUM7O0lBaU96QixDQUFDO0lBN05HLHdCQUF3QjtJQUV4Qiw2QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLFVBQVUsQ0FBQztZQUNQLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUc7Z0JBQ3RDLElBQUksR0FBRyxFQUFFO29CQUNMLDZDQUE2Qztv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XG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjZW5lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHlcclxuICAgIHRleHQ6IHN0cmluZyA9ICdoZWxsbyc7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmcmVlemU6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgaGFtbWVyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hZ2ljX3dhbmQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgcGF1c2U6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOlwi5pa55Z2X5pWw57uEXCJ9KVxyXG4gICAgQmxvY2tfQXJyYXkgOiBBcnJheTxjYy5QcmVmYWI+ID0gW107XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuWimeWjgeaVsOe7hFwifSlcclxuICAgIFdhbGxfUHJlZmFiIDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgYnRuTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICBjYWxsQmFjazogYW55O1xyXG5cclxuICAgIFxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICBjYy5nYW1lLnNldEZyYW1lUmF0ZSg2Myk7IFxyXG4gICAgICAgIHRoaXMuY2hhbmdlQmcoKTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcign6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma/lpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNoYW5nZUJnKCl7XHJcbiAgICAgICAgbGV0IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDgpICsgMTtcclxuICAgICAgICBjb25zdCBwYXRoID0gJ2JnL2JnJyArIG51bWJlcjtcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChwYXRoLCBjYy5TcHJpdGVGcmFtZSwgKGVyciwgc3ByaXRlRnJhbWU6IGNjLlNwcml0ZUZyYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9veiDjOaZr+WbvuWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwiYmdcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBzcHJpdGVGcmFtZTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGxvYWRQYXJ0aWNsZUVmZmVjdHMoKSB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdQYXJ0aWNsZSc7XHJcbiAgICAgICAgY2MucmVzb3VyY2VzLmxvYWREaXIocGF0aCwgY2MuUGFydGljbGVBc3NldCwgKGVyciwgYXNzZXRzOiBjYy5QYXJ0aWNsZUFzc2V0W10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L2957KS5a2Q54m55pWI5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucGFydGljbGVFZmZlY3RzID0gYXNzZXRzO1xyXG4gICAgICAgICAgICB0aGlzLnNldFBhcnRpY2xlU29ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygn57KS5a2Q54m55pWI5Yqg6L295oiQ5Yqf77yM5YWx5Yqg6L295LqGJywgdGhpcy5wYXJ0aWNsZUVmZmVjdHMubGVuZ3RoLCAn5Liq57KS5a2Q54m55pWIJyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0V2FsbFByZWZhYlNvcnQoKSB7XHJcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBbJ2Rvd24nLCAnZG93bkxlZnQnLCAnZG93blJpZ2h0JywgJ2xlZnQnLCdyaWdodCcsJ3VwJywndXBMZWZ0JywndXBSaWdodCddO1xyXG4gICAgICAgIHRoaXMuV2FsbF9QcmVmYWIuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEEgPSBvcmRlci5pbmRleE9mKGEubmFtZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QiA9IG9yZGVyLmluZGV4T2YoYi5uYW1lKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QSA9PT0gLTEpIHJldHVybiAxO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhCID09PSAtMSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXhBIC0gaW5kZXhCO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIHNldFBhcnRpY2xlU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsndG9wJywgJ2JvdCcsICdyaWcnLCAnbGVmJ107XHJcbiAgICAgICAgdGhpcy5wYXJ0aWNsZUVmZmVjdHMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhhLm5hbWUuc3Vic3RyKDAsMyksYi5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEIgPSBvcmRlci5pbmRleE9mKGIubmFtZS5zdWJzdHIoMCwzKSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEEgPT09IC0xKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QiA9PT0gLTEpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRTb3J0KCl7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOS7juWQjeensOS4reaPkOWPluaVsOWtl+mDqOWIhlxyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gcGFyc2VJbnQoYS5uYW1lLm1hdGNoKC9cXGQrLyk/LlswXSB8fCAnMCcsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IHBhcnNlSW50KGIubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudW1iZXJBIC0gbnVtYmVyQjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf5YiH5o2i5YiwIEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgaWYodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICBpZihNYXBDb25yb2xlci5faW5zdGFuY2UuZ2FtZVN0YXJ0ID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOWHj+WwkVwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGltZTpNYXBDb25yb2xlci5faW5zdGFuY2UuY291bnRfVGltZSwgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBhZGRfVGltZTpNYXBDb25yb2xlci5faW5zdGFuY2UuYWRkX1RpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OlwiZ2l2ZV91cFwiXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJmaW5pc2hfc3RhZ2VcIixkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgZGVzdHJveU5vZGVzSW5GcmFtZXMobm9kZXM6IGNjLk5vZGVbXSwgY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcclxuICAgICAgICBjb25zdCBCQVRDSF9TSVpFID0gMTA7IC8vIOavj+W4p+mUgOavgeeahOiKgueCueaVsOmHj1xyXG4gICAgICAgIGxldCBpbmRleCA9IDA7XHJcblxyXG4gICAgICAgIGNvbnN0IGRlc3Ryb3lCYXRjaCA9ICgpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICAgICAgd2hpbGUgKGluZGV4IDwgbm9kZXMubGVuZ3RoICYmIGNvdW50IDwgQkFUQ0hfU0laRSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW2luZGV4XTtcclxuICAgICAgICAgICAgICAgIGlmIChub2RlKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgY291bnQrKztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgbm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZShkZXN0cm95QmF0Y2gsIDYpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGRlc3Ryb3lCYXRjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOaUuei/m+WQjueahOWIh+aNouWcuuaZr+aWueazlVxyXG4gICAgc3dpdGNoVG9FbXB0eVNjZW5lKCkge1xyXG4gICAgICAgIGNvbnN0IGFsbE5vZGVzID0gY2MuZGlyZWN0b3IuZ2V0U2NlbmUoKS5jaGlsZHJlbjtcclxuICAgICAgICB0aGlzLmRlc3Ryb3lOb2Rlc0luRnJhbWVzKGFsbE5vZGVzLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUGF1c2UoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9saXR0bGVcIixudWxsKTtcclxuICAgICAgICBpZih0aGlzLnBhdXNlLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUGF1c2UoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9saXR0bGVcIixudWxsKTtcclxuICAgICAgICB0aGlzLnBhdXNlLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuYWN0aXZlID0gZmFsc2U7IFxyXG4gICAgICAgIGlmKE1hcENvbnJvbGVyLl9pbnN0YW5jZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB9IFxyXG4gICAgfVxyXG5cclxuICAgIG9wZW5Qcm9wQnV5KG5hbWUpe1xyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5idG5OYW1lID0gbmFtZTtcclxuICAgICAgICBsZXQgcHJvcFdpbmRvdyA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpO1xyXG4gICAgICAgIHByb3BXaW5kb3cuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiZnJlZXplXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJoYW1tZXJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcIm1hZ2ljXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJidXlfQnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShuYW1lKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrQnRuKCl7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsbnVsbCk7XHJcbiAgICAgICAgbGV0IHByb3BXaW5kb3cgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKTtcclxuICAgICAgICBpZihwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiYnV5X0J0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCl7XHJcbiAgICAgICAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImJ1eV9CdG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgaWYodGhpcy5idG5OYW1lID09IFwiZnJlZXplXCIpXHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuYnV5RnJlZXplKCk7XHJcbiAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmJ0bk5hbWUgPT0gXCJoYW1tZXJcIilcclxuICAgICAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5idXlIYW1tZXIoKTtcclxuICAgICAgICAgICAgICBlbHNlIGlmKHRoaXMuYnRuTmFtZSA9PSBcIm1hZ2ljXCIpXHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuYnV5TWFnaWMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBjbG9zZVByb3BCdXkoKXtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICBsZXQgZnJlZXplQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSBNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY0J0blwiKTtcclxuICAgICAgICBpZih0aGlzLmJ0bk5hbWUgPT0gXCJmcmVlemVcIikgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLmJ0bk5hbWUgPT0gXCJoYW1tZXJcIikgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7IFxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5idG5OYW1lID09IFwibWFnaWNcIikgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTY2VuZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkJBQWdDO0FBQ2hDLGlEQUFnRDtBQUUxQyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUEwQyxnQ0FBWTtJQUF0RDtRQUFBLHFFQXVRQztRQXBRRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFHdkIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFJdEIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyx5REFBeUQ7UUFDekQsbURBQW1EO1FBRW5ELFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQU8sR0FBVyxFQUFFLENBQUM7O0lBcU96QixDQUFDO0lBak9HLHdCQUF3QjtJQUV4Qiw2QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLFVBQVUsQ0FBQztZQUNQLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUc7Z0JBQ3RDLElBQUksR0FBRyxFQUFFO29CQUNMLDZDQUE2Qztv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Q0F2UXlDLEVBQUUsQ0FBQyxTQUFTLEdBdVFyRDtrQkF2UW9CLFlBQVkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjZW5lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHlcclxuICAgIHRleHQ6IHN0cmluZyA9ICdoZWxsbyc7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmcmVlemU6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgaGFtbWVyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hZ2ljX3dhbmQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgcGF1c2U6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOlwi5pa55Z2X5pWw57uEXCJ9KVxyXG4gICAgQmxvY2tfQXJyYXkgOiBBcnJheTxjYy5QcmVmYWI+ID0gW107XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuWimeWjgeaVsOe7hFwifSlcclxuICAgIFdhbGxfUHJlZmFiIDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgYnRuTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICBjYWxsQmFjazogYW55O1xyXG5cclxuICAgIFxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICBjYy5nYW1lLnNldEZyYW1lUmF0ZSg2Myk7IFxyXG4gICAgICAgIHRoaXMuY2hhbmdlQmcoKTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcign6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma/lpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNoYW5nZUJnKCl7XHJcbiAgICAgICAgbGV0IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDgpICsgMTtcclxuICAgICAgICBjb25zdCBwYXRoID0gJ2JnL2JnJyArIG51bWJlcjtcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChwYXRoLCBjYy5TcHJpdGVGcmFtZSwgKGVyciwgc3ByaXRlRnJhbWU6IGNjLlNwcml0ZUZyYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9veiDjOaZr+WbvuWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwiYmdcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBzcHJpdGVGcmFtZTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGxvYWRQYXJ0aWNsZUVmZmVjdHMoKSB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdQYXJ0aWNsZSc7XHJcbiAgICAgICAgY2MucmVzb3VyY2VzLmxvYWREaXIocGF0aCwgY2MuUGFydGljbGVBc3NldCwgKGVyciwgYXNzZXRzOiBjYy5QYXJ0aWNsZUFzc2V0W10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L2957KS5a2Q54m55pWI5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucGFydGljbGVFZmZlY3RzID0gYXNzZXRzO1xyXG4gICAgICAgICAgICB0aGlzLnNldFBhcnRpY2xlU29ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygn57KS5a2Q54m55pWI5Yqg6L295oiQ5Yqf77yM5YWx5Yqg6L295LqGJywgdGhpcy5wYXJ0aWNsZUVmZmVjdHMubGVuZ3RoLCAn5Liq57KS5a2Q54m55pWIJyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0V2FsbFByZWZhYlNvcnQoKSB7XHJcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBbJ2Rvd24nLCAnZG93bkxlZnQnLCAnZG93blJpZ2h0JywgJ2xlZnQnLCdyaWdodCcsJ3VwJywndXBMZWZ0JywndXBSaWdodCddO1xyXG4gICAgICAgIHRoaXMuV2FsbF9QcmVmYWIuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEEgPSBvcmRlci5pbmRleE9mKGEubmFtZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QiA9IG9yZGVyLmluZGV4T2YoYi5uYW1lKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QSA9PT0gLTEpIHJldHVybiAxO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhCID09PSAtMSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXhBIC0gaW5kZXhCO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIHNldFBhcnRpY2xlU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsndG9wJywgJ2JvdCcsICdyaWcnLCAnbGVmJ107XHJcbiAgICAgICAgdGhpcy5wYXJ0aWNsZUVmZmVjdHMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhhLm5hbWUuc3Vic3RyKDAsMyksYi5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEIgPSBvcmRlci5pbmRleE9mKGIubmFtZS5zdWJzdHIoMCwzKSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEEgPT09IC0xKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QiA9PT0gLTEpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRTb3J0KCl7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOS7juWQjeensOS4reaPkOWPluaVsOWtl+mDqOWIhlxyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gcGFyc2VJbnQoYS5uYW1lLm1hdGNoKC9cXGQrLyk/LlswXSB8fCAnMCcsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IHBhcnNlSW50KGIubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudW1iZXJBIC0gbnVtYmVyQjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf5YiH5o2i5YiwIEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgaWYodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICBpZihNYXBDb25yb2xlci5faW5zdGFuY2UuZ2FtZVN0YXJ0ID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOWHj+WwkVwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlLmNvdW50X1RpbWUpe1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb3VudF9UaW1lID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLmNvdW50X1RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFkZF9UaW1lID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLmFkZF9UaW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lOmNvdW50X1RpbWUsICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZF9UaW1lOmFkZF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ6XCJnaXZlX3VwXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcInVwXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGRlc3Ryb3lOb2Rlc0luRnJhbWVzKG5vZGVzOiBjYy5Ob2RlW10sIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XHJcbiAgICAgICAgY29uc3QgQkFUQ0hfU0laRSA9IDEwOyAvLyDmr4/luKfplIDmr4HnmoToioLngrnmlbDph49cclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG5cclxuICAgICAgICBjb25zdCBkZXN0cm95QmF0Y2ggPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgICAgICAgIHdoaWxlIChpbmRleCA8IG5vZGVzLmxlbmd0aCAmJiBjb3VudCA8IEJBVENIX1NJWkUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tpbmRleF07XHJcbiAgICAgICAgICAgICAgICBpZiAobm9kZSkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IG5vZGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoZGVzdHJveUJhdGNoLCA2KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBkZXN0cm95QmF0Y2goKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDmlLnov5vlkI7nmoTliIfmjaLlnLrmma/mlrnms5VcclxuICAgIHN3aXRjaFRvRW1wdHlTY2VuZSgpIHtcclxuICAgICAgICBjb25zdCBhbGxOb2RlcyA9IGNjLmRpcmVjdG9yLmdldFNjZW5lKCkuY2hpbGRyZW47XHJcbiAgICAgICAgdGhpcy5kZXN0cm95Tm9kZXNJbkZyYW1lcyhhbGxOb2RlcywgKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblBhdXNlKCl7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfbGl0dGxlXCIsbnVsbCk7XHJcbiAgICAgICAgaWYodGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCl7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBjbG9zZVBhdXNlKCl7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfbGl0dGxlXCIsbnVsbCk7XHJcbiAgICAgICAgdGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IGZhbHNlOyBcclxuICAgICAgICBpZihNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IGZhbHNlKXtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgfSBcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUHJvcEJ1eShuYW1lKXtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYnRuTmFtZSA9IG5hbWU7XHJcbiAgICAgICAgbGV0IHByb3BXaW5kb3cgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKTtcclxuICAgICAgICBwcm9wV2luZG93LmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImZyZWV6ZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiaGFtbWVyXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiYnV5X0J0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUobmFtZSkuYWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjbGlja0J0bigpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGxldCBwcm9wV2luZG93ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIik7XHJcbiAgICAgICAgaWYocHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImJ1eV9CdG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJidXlfQnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMuYnRuTmFtZSA9PSBcImZyZWV6ZVwiKVxyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLmJ1eUZyZWV6ZSgpO1xyXG4gICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5idG5OYW1lID09IFwiaGFtbWVyXCIpXHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuYnV5SGFtbWVyKCk7XHJcbiAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmJ0bk5hbWUgPT0gXCJtYWdpY1wiKVxyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLmJ1eU1hZ2ljKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgY2xvc2VQcm9wQnV5KCl7XHJcbiAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IE1hcENvbnJvbGVyLl9pbnN0YW5jZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgbGV0IGhhbW1lckJ0biA9IE1hcENvbnJvbGVyLl9pbnN0YW5jZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcImRlc3Ryb3lCdG5cIik7XHJcbiAgICAgICAgbGV0IG1hZ2ljQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwibWFnaWNCdG5cIik7XHJcbiAgICAgICAgaWYodGhpcy5idG5OYW1lID09IFwiZnJlZXplXCIpIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIGVsc2UgaWYodGhpcy5idG5OYW1lID09IFwiaGFtbWVyXCIpIGhhbW1lckJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpOyBcclxuICAgICAgICBlbHNlIGlmKHRoaXMuYnRuTmFtZSA9PSBcIm1hZ2ljXCIpIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcblxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuXHJcbiAgICB9XHJcbn1cclxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/Tool/GameTool.js b/temp/quick-scripts/dst/assets/Script/module/Tool/GameTool.js index ad9099e..0e2fc66 100644 --- a/temp/quick-scripts/dst/assets/Script/module/Tool/GameTool.js +++ b/temp/quick-scripts/dst/assets/Script/module/Tool/GameTool.js @@ -340,7 +340,7 @@ var GameTool = { return array; }, //增加关卡数 - addLevel: function (time) { + addLevel: function (time1, time2) { cc.fx.GameConfig.GM_INFO.level += 1; if (cc.fx.GameConfig.GM_INFO.level > 156) { cc.fx.GameConfig.GM_INFO.level = 156; @@ -352,13 +352,15 @@ var GameTool = { }; // console.log("55555存储关卡数据:",levelInfo); cc.fx.StorageMessage.setStorage("level", levelInfo); - var data = { - time: time.count_Time, - add_Time: time.add_Time, - result: "success" - }; - cc.fx.GameTool.shushu_Track("finish_stage", data); - MiniGameSdk_1.MiniGameSdk.API.shushu_SetSuperProperties(); + if (time1 && time2) { + var data = { + time: time1, + add_Time: time2, + result: "success" + }; + cc.fx.GameTool.shushu_Track("finish_stage", data); + MiniGameSdk_1.MiniGameSdk.API.shushu_SetSuperProperties(); + } cc.fx.GameTool.setUserLevel(function (data) { // console.log("存储结果:",data); // console.log("上传",data); @@ -869,4 +871,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFRvb2xcXEdhbWVUb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFvRDtBQUVwRCwrQkFBK0I7QUFDL0IsSUFBSSxRQUFRLEdBQUc7SUFDWCxVQUFVLEVBQUUsQ0FBQztJQUNiLFFBQVEsRUFBRSxDQUFDO0lBQ1gsVUFBVSxFQUFFLENBQUM7SUFFYixVQUFVO0lBQ1YsY0FBYztRQUNWLElBQUksSUFBSSxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3JELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUcsSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUM7WUFDOUMsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDbEMsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUM7Z0JBQzNCLElBQUksR0FBRyxHQUFHLDhFQUE4RSxHQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQzthQUM5QjtTQUNKO2FBQ0c7WUFDQSxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzRDtJQUNMLENBQUM7SUFFRCxhQUFhLFlBQUMsR0FBRztRQUNiLE9BQU8sYUFBYSxD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QUM7WUFDakIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sS0FBSyxDQUFDO1lBQ2pCO2dCQUNJLE9BQU8sTUFBTSxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQztDQUVKLENBQUM7QUFDTyw0QkFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4uLy4uL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuLy/mnIDlpKflt6XlhbfnsbsgIOWQhOenjeWFrOWFseaWueazle+8jOS7peWPiuWkhOeQhuS4iuS8oO+8jOiOt+WPluWQjuerr+aOpeWPo+aVsOaNrlxyXG52YXIgR2FtZVRvb2wgPSB7XHJcbiAgICBfc3RhcnRUaW1lOiAwLFxyXG4gICAgX2VuZFRpbWU6IDAsXHJcbiAgICBfdG90YWxUaW1lOiAwLFxyXG4gICAgXHJcbiAgICAvL+iOt+WPlnVzZXJJZFxyXG4gICAgQXV0aGVudGljYXRpb24oKXtcclxuICAgICAgICBsZXQgbmFtZSA9IFwidXNlcl9cIiArIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQ7XHJcbiAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKG5hbWUpKTtcclxuICAgICAgICBpZihkYXRhID09IFwidW5kaWZlbmRcIiB8fCBkYXRhPT1udWxsIHx8IGRhdGEgPT0gXCJcIil7XHJcbiAgICAgICAgICAgIHZhciB1cmxOb3cgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuICAgICAgICAgICAgaWYoIXRoaXMuY29udGFpbnNUcmFpbih1cmxOb3cpKXtcclxuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBcImh0dHBzOi8vYXBpLnNwYXJrdXMuY24vYXBpL3VzZXIvYXV0aC9sb2dpbj9kb21haW49aHVpMzI1NzlXZFlQc2dZcSZjYWxsYmFjaz1cIitsb2NhdGlvbi5ocmVmO1xyXG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShuYW1lLGRhdGEpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID0gcGFyc2VJbnQoZGF0YS51c2VySWQpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgY29udGFpbnNUcmFpbihzdHIpIHtcclxuICAgICAgICByZXR1cm4gL2Zyb209dHJhaW4vaS50ZXN0KHN0cik7XHJcbiAgICB9LFxyXG5cclxuICAgIC8v5Z+L54K55LiK5LygXHJcbiAgICBzZXRHYW1lRGF0YSgpe1xyXG4gICAgICAgIC8vR0FNRV9EQVRBIOWIneWni+WMliDmr4/mrKHmuIXpm7ZcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdBTUVfREFUQSA9IFtdO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR0FNRV9EQVRBLnB1c2goY2MuZnguR2FtZUNvbmZpZy5DTElDS19EQVRBKTtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX2luaXQoKTtcclxuICAgICAgICBsZXQgZGF0YSA9IGNjLmZ4LkdhbWVDb25maWcuR0FNRV9EQVRBO1xyXG4gICAgICAgIGxldCBtYXRjaElkID0gdGhpcy5nZXRNYXRjaElkKCk7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcImdhbWVJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJzY29kZVwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NvZGUsXHJcbiAgICAgICAgICAgIFwibWF0Y2hJZFwiOm1hdGNoSWQsXHJcbiAgICAgICAgICAgIFwiZGF0YVwiOiBkYXRhXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvKDmlbDmja46XCIscG9zdERhdGEpO1xyXG4gICAgICAgIC8vIGNjLmZ4Lkh0dHBVdGlsLnVwbG9hZFVzZXJMb2dEYXRhKHBvc3REYXRhLGZ1bmN0aW9uKCl7fSlcclxuICAgIH0sXHJcbiAgICAvL+S4iuS8oOaOkuihjOamnCAgdHlwZeS4ujFcclxuICAgIHNldFJhbmsoZGF0YSl7XHJcbiAgICAgICAgLy9HQU1FX0RBVEEg5Yid5aeL5YyWIOavj+asoea4hembtlxyXG4gICAgICAgIGxldCBwb3N0RGF0YSA9IHtcclxuICAgICAgICAgICAgXCJnYW1lSWRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZUlkLFxyXG4gICAgICAgICAgICBcInVzZXJJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VySWQsXHJcbiAgICAgICAgICAgIFwidHlwZVwiOjEsXHJcbiAgICAgICAgICAgIFwic2NvcmVcIjogZGF0YS5zY29yZSxcclxuICAgICAgICAgICAgXCJhY2N1cmFjeVwiOiBkYXRhLmRhdGUsXHJcbiAgICAgICAgICAgIFwic3VjY2Vzc1wiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc3VjY2Vzc1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMSxmdW5jdGlvbigpe30scG9zdERhdGEpO1xyXG4gICAgfSxcclxuICAgIC8v6I635Y+W5o6S6KGM5qacIHR5cGXkuLoyXHJcbiAgICBnZXRSYW5rKGRhdGEsY2FsbGJhY2spe1xyXG4gICAgICAgIGxldCByYW5rTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcImdhbWVJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJwYWdlXCI6MSxcclxuICAgICAgICAgICAgXCJwYWdlU2l6ZVwiOnJhbmtMZW5ndGhcclxuICAgICAgICB9OyBcclxuICAgICAgICAvL+Wbnuiwg+i/m2dldFJhbmtEYXRhXHJcbiAgICAgICAgLy8gY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMixkYXRhID0+e2NhbGxiYWNrKGRhdGEpfSxwb3N0RGF0YSk7XHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5ZtYXRjaElkICDnlKjkuo7kuIrkvKDmr4/mrKHngrnlh7vmlbDmja7ph4zpnaLorrDlvZVpZOaWueS+v+afpeivolxyXG4gICAgZ2V0TWF0Y2hJZCAoKXtcclxuICAgICAgICBsZXQgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoSWRcIik7XHJcbiAgICAgICAgbGV0IHRlbXBJZCA9IG1hdGNoSWQ7XHJcbiAgICAgICAgaWYobWF0Y2hJZCA9PSBcInVuZGlmZW5kXCIgfHwgbWF0Y2hJZD09bnVsbCl7XHJcbiAgICAgICAgICAgIG1hdGNoSWQgPSAgdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29udGFpbnNOYW5hbmEobWF0Y2hJZCkgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICBtYXRjaElkID0gIHRoaXMuc2V0TWF0Y2hJZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBsZXQgY2hhciA9IHBhcnNlSW50KHRlbXBJZC5zdWJzdHJpbmcoMTAsdGVtcElkLmxlbmd0aCkpO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYXIgKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICBtYXRjaElkICA9IHRlbXBJZC5zbGljZSgwLCAxMCkgKyBjaGFyICsgXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmNvbnRhaW5zTmFuYW5hKG1hdGNoSWQpKSBtYXRjaElkID0gdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hdGNoSWQgPSBtYXRjaElkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoSWRcIixtYXRjaElkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYodGhpcy5jb250YWluc05hbmFuYShtYXRjaElkKSA9PSB0cnVlKXtcclxuICAgICAgICAgICAgbWF0Y2hJZCA9ICB0aGlzLnNldE1hdGNoSWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1hdGNoSWQ7XHJcbiAgICB9LFxyXG4gICAgLy/mo4DmtYttYXRjaElkIOWmguaenOaciee8k+WtmOS7peWJjeeahG5hbmFuYeaVsOaNrua4hemZpFxyXG4gICAgY29udGFpbnNOYW5hbmEoc3RyKSB7XHJcbiAgICAgICAgcmV0dXJuIC9uYS9pLnRlc3Qoc3RyKTtcclxuICAgIH0sXHJcbiAgICAvL+mHjeaWsOiuvue9rk1hdGNoSWRcclxuICAgIHNldE1hdGNoSWQgKCl7XHJcbiAgICAgICAgLy8g5a6a5LmJ5YyF5ZCr5Y+v55So5a2X56ym55qE5a2X56ym6ZuGXHJcbiAgICAgICAgY29uc3QgY2hhcmFjdGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSc7XHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq5pWw57uE5Lul5L+d5a2Y6ZqP5py65a2X56ymXHJcbiAgICAgICAgY29uc3QgdXVpZEFycmF5ID0gW107XHJcbiAgICAgICAgLy8g5b6q546vMTDmrKEg55Sf5oiQMTDkvY3nmoRVVUlEXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDnlJ/miJDpmo/mnLrntKLlvJXvvIzojIPlm7TmmK/lrZfnrKbpm4bnmoTplb/luqZcclxuICAgICAgICAgICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIC8vIOS7juWtl+espumbhuS4reiOt+WPlumaj+acuuWtl+esplxyXG4gICAgICAgICAgICBjb25zdCByYW5kb21DaGFyID0gY2hhcmFjdGVycy5jaGFyQXQocmFuZG9tSW5kZXgpO1xyXG4gICAgICAgICAgICAvLyDlsIblrZfnrKbmt7vliqDliLDmlbDnu4TkuK1cclxuICAgICAgICAgICAgdXVpZEFycmF5LnB1c2gocmFuZG9tQ2hhcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBkYXRhID0gIHV1aWRBcnJheS5qb2luKCcnKSArIDEgKyBcIlwiO1xyXG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoTnVtYmVyXCIsMSk7XHJcbiAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibWF0Y2hJZFwiLGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYXRjaElkID0gZGF0YTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgIH0sXHJcbiAgICAvL+aIquWPluWQjeWtl1xyXG4gICAgc3ViTmFtZShuYW1lLGxlbmd0aCl7XHJcbiAgICAgICAgaWYobmFtZS5sZW5ndGggPiBsZW5ndGgpe1xyXG4gICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoMCxsZW5ndGgpICsgXCIuLi5cIlxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmFtZTtcclxuICAgIH0sXHJcbiAgICAvL+iuvue9ruWktOWDj1xyXG4gICAgc2V0UGljKG5vZGUscGljKXtcclxuICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB1cmwgPSBwaWM7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGZldGNoKHVybClcclxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbihlcnJObyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcbiAgICAvL+esrOS4gOS4quWPguaVsOaKiuebruagh+W4pui/m+adpeWkhOeQhu+8jOesrOS6jOS4quWPguaVsOS4uuWQjeWtl+mVv+W6pu+8jOS4jeWQjOWcuuaZr+S4jeWQjOmcgOaxglxyXG4gICAgLy/lkI3lrZc055+t77yM5bCP5o6S6KGM77yM5ZCN5a2XNumVv++8jOWkp+aOkuihjFxyXG4gICAgZ2V0UmFua0RhdGEoZGF0YSx0YXJnZXQsbmFtZUxlbmd0aCl7XHJcbiAgICAgICAgdGFyZ2V0Lmxpc3REYXRhID0gZGF0YS5kYXRhLmxpc3Q7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZEYXRhID0gZGF0YS5kYXRhLmluZm87XHJcbiAgICAgICAgbGV0IHJhbmtEYXRhID0gW107XHJcbiAgICAgICAgbGV0IHNlbGYgPSBmYWxzZTtcclxuICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0UGljKHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksdGFyZ2V0LnNlbGZEYXRhLnBpYyk7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTw9dGFyZ2V0Lmxpc3REYXRhLmxlbmd0aC0xO2krKyl7XHJcbiAgICAgICAgICAgIHJhbmtEYXRhLnB1c2goe3Jhbms6KGkrMSksIG5hbWU6dGFyZ2V0Lmxpc3REYXRhW2ldLm5pY2tOYW1lLCB0b3RhbDp0YXJnZXQubGlzdERhdGFbaV0uc2NvcmUsdGltZTpudWxsLCBwaWM6dGFyZ2V0Lmxpc3REYXRhW2ldLnBpY30pO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID09IHRhcmdldC5saXN0RGF0YVtpXS51c2VySWQpe1xyXG4gICAgICAgICAgICAgICAgc2VsZiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0oaSsxKSArIFwiXCI7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGkgPT0gKHRhcmdldC5saXN0RGF0YS5sZW5ndGgtMSkgJiYgc2VsZiA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI5OStcIjsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZEYXRhLm5pY2tOYW1lID0gY2MuZnguR2FtZVRvb2wuc3ViTmFtZSh0YXJnZXQuc2VsZkRhdGEubmlja05hbWUsbmFtZUxlbmd0aCk7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwibmFtZUxhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRhcmdldC5zZWxmRGF0YS5uaWNrTmFtZTtcclxuICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0b3RhbExhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRhcmdldC5zZWxmRGF0YS5zY29yZTtcclxuICAgICAgICBsZXQgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lU2hlbk5vbmcodGFyZ2V0LnNlbGZEYXRhLnRvdGxlVGltZXMpO1xyXG4gICAgICAgIC8vIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcCArIFwiXCI7XHJcbiAgICAgICAgc3dpdGNoKHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpe1xyXG4gICAgICAgICAgICBjYXNlIFwiMVwiOlxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCIyXCI6XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcIjNcIjpcclxuICAgICAgICAgICAgICAgIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIOWkp+aOkuihjFxyXG4gICAgICAgIGlmKG5hbWVMZW5ndGggPT0gNil7XHJcbiAgICAgICAgICAgIHRhcmdldC5yYW5rTGlzdC5zZXREYXRhKHJhbmtEYXRhKTtcclxuICAgICAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgIGlmKHRhcmdldC5zZWxmRGF0YS50b3RhbFN1bkNvdW50ID09IDApIHRhcmdldC5zZWxmTm9kZS5vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIGdldFNlZWRSYW5kb206IGZ1bmN0aW9uIChtaW4sIG1heCkgey8v5YyF5ZCrbWluIOS4jeWMheWQq21heFxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6ZqP5py65pWwOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCk7XHJcbiAgICAgICAgbWF4ID0gbWF4IHx8IDE7XHJcbiAgICAgICAgbWluID0gbWluIHx8IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmN1cnJTZWVkID0gKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCAqIDkzMDEgKyA0OTI5NykgJSAyMzMyODA7XHJcbiAgICAgICAgbGV0IHJuZCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCAgLyAyMzMyODAuMDtcclxuICAgICAgICBsZXQgdG1wID0gbWluICsgcm5kICogKG1heCAtIG1pbik7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHRtcCk7XHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5blhbPljaHphY3nva7nmoTpgqPkuKrlhbPljaHmlbBcclxuICAgIGdldEN1c3RvbSh0eXBlKXtcclxuICAgICAgICBsZXQgY3VzdG9tID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShjYy5meC5zdG9yYWdlVHlwZS5zdG9yYWdlVHlwZUN1c3RvbSk7XHJcbiAgICAgICAgaWYoY3VzdG9tID09IFwidW5kaWZlbmRcIiB8fCBjdXN0b209PW51bGwgfHwgY3VzdG9tID09IFwiXCIpe1xyXG4gICAgICAgICAgICB0aGlzLnNldEN1c3RvbSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk9fU0VUKFwiY3VzdG9tXCIsY3VzdG9tWzBdKTtcclxuICAgICAgICAgICAgaWYoY3VzdG9tWzBdICE9IDAgfHwgdHlwZSA9PSAgdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICBjdXN0b20uc2hpZnQoKTtcclxuICAgICAgICAgICAgICAgIGlmKGN1c3RvbS5sZW5ndGggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRDdXN0b20oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShjYy5meC5zdG9yYWdlVHlwZS5zdG9yYWdlVHlwZUN1c3RvbSxjdXN0b20pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8v5pys5Zyw5rKh5pyJ5a2Y5YKo5Yiw6YWN572u77yM5oiW6ICF6YWN572u55So5a6M77yM6YeN5paw5Yib5bu66YWN572uXHJcbiAgICBzZXRDdXN0b20oKXtcclxuICAgICAgICBsZXQgYXJyYXlMZW5ndGggPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk8ubGVuZ3RoO1xyXG4gICAgICAgIGxldCBhcnJheUxpc3QgPSBbXTtcclxuICAgICAgICBmb3IobGV0IGk9MTsgaTxhcnJheUxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBhcnJheUxpc3QucHVzaChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXJyYXlMaXN0LnNvcnQoKCkgPT4gTWF0aC5yYW5kb20oKSAtIDAuNSk7XHJcbiAgICAgICAgYXJyYXlMaXN0LnVuc2hpZnQoMClcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk9fU0VUKFwiY3VzdG9tXCIsYXJyYXlMaXN0WzBdKTtcclxuICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKGNjLmZ4LnN0b3JhZ2VUeXBlLnN0b3JhZ2VUeXBlQ3VzdG9tLGFycmF5TGlzdCk7XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICBnZXRTZXRTY3JlZW5SZXNvbHV0aW9uRmxhZzogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGxldCBzaXplID0gY2Mud2luU2l6ZTtcclxuICAgICAgICBsZXQgd2lkdGggPSBzaXplLndpZHRoO1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSBzaXplLmhlaWdodDtcclxuICAgICAgICBpZiAoKGhlaWdodCAvIHdpZHRoKSA+ICgxNi4yIC8gOSkpIHJldHVybiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICAvL+WIpOaWreWFqOmdouWxj+mAgumFjVxyXG4gICAgc2V0Rml0OiBmdW5jdGlvbiAoY2FudmFzKSB7XHJcbiAgICAgICAgbGV0IGZsYWcgPSAgY2MuZnguR2FtZVRvb2wuZ2V0U2V0U2NyZWVuUmVzb2x1dGlvbkZsYWcoKTtcclxuICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgIFx0Ly8gY29uc29sZS5sb2coXCLkuI3mmK/lhajpnaLlsY9cIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICBcdC8vIGNvbnNvbGUubG9nKFwi5piv5YWo6Z2i5bGPXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmxhZztcclxuICAgIH0sXHJcbiAgICAvL+iOt+WPlua4uOaIj+S/oeaBr1xyXG4gICAgZ2V0R2FtZUluZm86IGZ1bmN0aW9uKG5vZGUpe1xyXG4gICAgICAgIHZhciBqZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH0sXHJcbiAgICAvL+iuvue9rua4uOaIj+S/oeaBr1xyXG4gICAgc2V0R2FtZUluZm86IGZ1bmN0aW9uKHBkKXtcclxuICAgXHJcbiAgICB9LFxyXG5cclxuICAgIC8v5omT5a2X5py65pWI5p6cXHJcbiAgICB0eXBpbmdBbmkobGFiZWwsdGV4dCxjYix0YXJnZXQpe1xyXG4gICAgICAgIHZhciBzZWxmID0gdGFyZ2V0O1xyXG4gICAgICAgIHZhciBodG1sID0gJyc7XHJcbiAgICAgICAgdmFyIGFyciA9IHRleHQuc3BsaXQoJycpO1xyXG4gICAgICAgIHZhciBsZW4gPSBhcnIubGVuZ3RoO1xyXG4gICAgICAgIHZhciBzdGVwID0gMDtcclxuICAgICAgICBzZWxmLmZ1bmMgPSAoKT0+e1xyXG4gICAgICAgICAgICBodG1sICs9IGFycltzdGVwXTtcclxuICAgICAgICAgICAgbGFiZWwuc3RyaW5nID0gaHRtbDtcclxuICAgICAgICAgICAgaWYgKCsrc3RlcCA9PSBsZW4pIHtcclxuICAgICAgICAgICAgICAgIHNlbGYudW5zY2hlZHVsZShzZWxmLmZ1bmMpO1xyXG4gICAgICAgICAgICAgICAgY2IgJiYgY2IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZWxmLnNjaGVkdWxlKHNlbGYuZnVuYywwLjEsIGNjLm1hY3JvLlJFUEVBVF9GT1JFVkVSLCAwKVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+i+k+WFpeenkizov5Tlm57pnIDopoHlsZXnpLrml7bpl7TmoLzlvI9cclxuICAgIGdldFRpbWVNYXJnaW46KHNlY29uZCkgPT4ge1xyXG4gICAgICAgIGxldCB0b3RhbCA9IDA7XHJcbiAgICAgICAgdG90YWwgPSBzZWNvbmQ7XHJcbiAgICAgICAgbGV0IGhvdXIgPSAwO1xyXG4gICAgICAgIGhvdXIgPSBwYXJzZUludCgodG90YWwgLyAzNjAwKSArIFwiXCIpOy8v6K6h566X5pW05pWw5bCP5pe25pWwXHJcbiAgICAgICAgbGV0IGFmdGVySG91ciA9IHRvdGFsIC0gaG91ciAqIDYwICogNjA7Ly/lj5blvpfnrpflh7rlsI/ml7bmlbDlkI7liankvZnnmoTnp5LmlbBcclxuICAgICAgICBsZXQgbWluID0gcGFyc2VJbnQoKGFmdGVySG91ciAvIDYwKStcIlwiKTsvL+iuoeeul+aVtOaVsOWIhlxyXG4gICAgICAgIGxldCBtID0gXCJcIiArIG1pbjsgIFxyXG4gICAgICAgIGlmKG1pbiA8IDEwKSBtID0gXCIwXCIrbWluO1xyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gaG91ciAqIDYwICogNjAgLSBtaW4gKiA2MDsvL+WPluW+l+eul+WHuuWIhuWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaWFvID0gYWZ0ZXJNaW4gKyBcIlwiO1xyXG4gICAgICAgIGlmKGFmdGVyTWluIDwgMTApIG1pYW8gPSBcIjBcIiArIGFmdGVyTWluO1xyXG4gICAgICAgIHJldHVybiBtICsgJzonICsgbWlhb1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+i+k+WFpeenkizov5Tlm57pnIDopoHlsZXnpLrml7bpl7TmoLzlvI9cclxuICAgIGdldFRpbWVTaGVuTm9uZzooc2Vjb25kKSA9PiB7XHJcbiAgICAgICAgc2Vjb25kID0gcGFyc2VJbnQoc2Vjb25kLzEwMDArXCJcIik7XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IHNlY29uZDtcclxuICAgICAgICBsZXQgbWluID0gMDtcclxuICAgICAgICBpZih0b3RhbCA+IDYwKXtcclxuICAgICAgICAgICAgbWluID0gcGFyc2VJbnQoKHRvdGFsIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBtID0gIG1pbiArIFwiJ1wiOyAgXHJcblxyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gbWluICogNjA7Ly/lj5blvpfnrpflh7rliIblkI7liankvZnnmoTnp5LmlbBcclxuICAgICAgICBsZXQgbWlhbyA9IGFmdGVyTWluICsgXCInJ1wiO1xyXG4gICAgICAgIHJldHVybiBtICsgbWlhb1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+aJk+S5seaVsOe7hFxyXG4gICAgc2h1ZmZsZUFycmF5OiBmdW5jdGlvbiAoYXJyYXkpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gYXJyYXkubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkge1xyXG4gICAgICAgICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGkgKyAxKSk7XHJcbiAgICAgICAgICAgIFthcnJheVtpXSwgYXJyYXlbal1dID0gW2FycmF5W2pdLCBhcnJheVtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcnJheTtcclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8v5aKe5Yqg5YWz5Y2h5pWwXHJcbiAgICBhZGRMZXZlbCh0aW1lKXtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgKz0gMTtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPiAxNTYpe1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAxNTY7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIGxldCBsZXZlbEluZm8gPSB7XHJcbiAgICAgICAgICAgIGxldmVsOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCxcclxuICAgICAgICAgICAgdGltZXN0YW1wOnRpbWVzdGFtcCxcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCI1NTU1NeWtmOWCqOWFs+WNoeaVsOaNrjpcIixsZXZlbEluZm8pO1xyXG4gICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIHRpbWU6dGltZS5jb3VudF9UaW1lLFxyXG4gICAgICAgICAgICBhZGRfVGltZTp0aW1lLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICByZXN1bHQ6XCJzdWNjZXNzXCJcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsZGF0YSk7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV9TZXRTdXBlclByb3BlcnRpZXMoKTtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyTGV2ZWwoKGRhdGEpPT57XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5a2Y5YKo57uT5p6cOlwiLGRhdGEpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS8oFwiLGRhdGEpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9LFxyXG5cclxuICAgIC8v5pS55Y+Y6YeR5biB5L+h5oGvXHJcbiAgICBjaGFuZ2VDb2luKGNvaW4pe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiY2hhbmdlQ29pblwiLGNvaW4pO1xyXG4gICAgICAgIGlmKGNvaW4gPT0gdW5kZWZpbmVkKSByZXR1cm47XHJcbiAgICAgICAgaWYoY29pbiA8IDAgJiYgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAtY29pbil7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6YeR5biB5LiN6LazXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sLWNvaW4pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luICs9IGNvaW47XHJcblxyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMCl7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlLnlj5jnmoTph5HluIE6XCIsY29pbik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLoh6rouqvph5HluIHkv6Hmga86XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgbGV0IGNvaW5JbmZvID0ge1xyXG4gICAgICAgICAgICBjb2luOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLFxyXG4gICAgICAgICAgICB0aW1lc3RhbXA6dGltZXN0YW1wLFxyXG4gICAgICAgIH1cclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X1NldFN1cGVyUHJvcGVydGllcygpO1xyXG4gICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5a2Y5YKo6YeR5biB5pWw5o2uOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLGNvaW5JbmZvKTtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyQ29pbigoZGF0YSk9PntcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvKBcIixkYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+iOt+WPlueUqOaIt+mHkeW4geaVsOmHj1xyXG4gICAgZ2V0VXNlckNvaW4oY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckNvaW4nLFxyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+ivu+WPlueUqOaIt+mHkeW4geaVsOaNruaIkOWKnycsIHJlcy5yZXN1bHQpXHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjaylcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpOyBcclxuXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpOyBcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v5pS55Y+Y55So5oi36YeR5biBXHJcbiAgICBzZXRVc2VyQ29pbihjYWxsYmFjayl7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDw9IDAgfHwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6YeR5biB5LiK5Lyg5aSx6LSlXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgLy8gTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLljbPlsIbkuIrkvKDnmoTph5HluIHmlbDph486XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJDb2luJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAnc2F2ZScsXHJcbiAgICAgICAgICAgICAgICBjb2luQW1vdW50OiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pblxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+S6keWHveaVsOi/lOWbnue7k+aenDonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOmHkeW4geaVsOaNruaIkOWKnycsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCflrZjlgqjph5HluIHmlbDmja7lpLHotKUnKVxyXG4gICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCflrZjlgqjnlKjmiLfmlbDmja7lpLHotKUnLCBlcnIpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvL+iOt+WPlueUqOaIt+WFs+WNoeaVsFxyXG4gICAgZ2V0VXNlckxldmVsKGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJMZXZlbCcsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjaylcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpOyBcclxuXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpOyBcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v6L+b5ri45oiP5aSE55CGIOS9k+WKm+WAvOaDheWGtVxyXG4gICAgZ2V0SGVhbHRoKGNhbGxiYWNrOiBGdW5jdGlvbil7XHJcbiAgICAgICAgbGV0IGhlYWx0aCA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJoZWFsdGhcIik7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPSA1O1xyXG4gICAgICAgIC8v5rKh5pyJ5a2Y5YKo6L+H5L2T5Yqb5YC8XHJcbiAgICAgICAgaWYoaGVhbHRoID09IG51bGwgfHwgaGVhbHRoID09IHVuZGVmaW5lZCB8fCBoZWFsdGggPT0gXCJcIil7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5a2Y5YKo6L+H5L2T5Yqb5YC877yM5Yid6L+bXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPSA1O1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VySGVhbHRoKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvmjqXlj6Pov5Tlm57nu5PmnpxcIixkYXRhKTtcclxuICAgICAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPSBkYXRhLnJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSA9IGRhdGEucmVzdWx0LnRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaGVhbHRoSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJoZWFsdGhcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6ZGF0YS5yZXN1bHQudGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfU2V0U3VwZXJQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImhlYWx0aFwiLGhlYWx0aEluZm8pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw5L2T5Yqb5pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoMCwoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pyJ5a2Y5YKo6L+H5L2T5Yqb5YC8OlwiLGhlYWx0aCk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9IGhlYWx0aC5oZWFsdGg7XHJcbiAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5L2T5Yqb5YC86K+75Y+W5a6M5q+VXCIpO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgaWYoaGVhbHRoLmhlYWx0aCA8IDApe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvlgLzlvILluLjvvIzlvZLpm7ZcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPSAwO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aCgwLCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKGhlYWx0aC5oZWFsdGggPCA1KXtcclxuICAgICAgICAgICAgICAgIC8vIDMw5YiG6ZKf55qE5q+r56eS5pWwXHJcbiAgICAgICAgICAgICAgICBjb25zdCB0aGlydHlNaW51dGVzID0gMzAgKiA2MCAqIDEwMDA7IFxyXG4gICAgICAgICAgICAgICAgY29uc3QgZWxhcHNlZFRpbWUgPSB0aW1lc3RhbXAgLSBoZWFsdGgudGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgLy8g6K6h566X5oGi5aSN55qE5L2T5Yqb5YC8XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZWNvdmVyZWRIZWFsdGggPSBNYXRoLm1pbig1IC0gaGVhbHRoLmhlYWx0aCwgTWF0aC5mbG9vcihlbGFwc2VkVGltZSAvIHRoaXJ0eU1pbnV0ZXMpKTsgXHJcbiAgICAgICAgICAgICAgICBpZiAocmVjb3ZlcmVkSGVhbHRoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWx0aC5oZWFsdGggKz0gcmVjb3ZlcmVkSGVhbHRoO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgocmVjb3ZlcmVkSGVhbHRoLCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBpZihjYWxsYmFjaykgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhg5L2T5Yqb5YC85oGi5aSNICR7cmVjb3ZlcmVkSGVhbHRofSDngrnvvIzlvZPliY3kvZPlipvlgLw6ICR7Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwfWApO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyDorqHnrpfot53nprvkuIvkuIDmrKHmgaLlpI3nmoTliankvZnml7bpl7RcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZW1haW5pbmdUaW1lID0gTWF0aC5jZWlsKCh0aGlydHlNaW51dGVzIC0gKGVsYXBzZWRUaW1lICUgdGhpcnR5TWludXRlcykpIC8gMTAwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYOS9k+WKm+WAvOacqua7oe+8jOW+heaBouWkje+8jOi3neemu+S4i+S4gOasoeaBouWkjei/mOWJqSAke3JlbWFpbmluZ1RpbWV9IOenkmApO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSA9IHJlbWFpbmluZ1RpbWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v6I635Y+W55So5oi35L2T5Yqb5YC8XHJcbiAgICBnZXRVc2VySGVhbHRoKGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWNs+Wwhui/m+WFpeS9k+WKm+iOt+WPluaOpeWPo1wiKTtcclxuICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd1c2VySGVhbHRoJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5L2T5Yqb6I635Y+W5oiQ5YqfXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKVxyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7IFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5L2T5Yqb6I635Y+W5aSx6LSlXCIsZXJyKTtcclxuICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+iuvue9rueUqOaIt+S9k+WKm+WAvCAg5pyJ5Y+v6IO95Yqg77yM5pyJ5Y+v6IO95a6a5pe25Zmo5YePXHJcbiAgICBzZXRVc2VySGVhbHRoKGhlYWx0aCxjYWxsYmFjayl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwICs9IGhlYWx0aDtcclxuICAgICAgICAvLyBpZihoZWFsdGggPCAwKSB7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vIGVsc2UgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOaBouWkjVwiKTtcclxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIGxldCBoZWFsdGhJbmZvID17fVxyXG4gXHJcbiAgICAgICAgLy/lpoLmnpzmtojogJfkuYvliY3kuI3mmK/mu6HkvZPlipvvvIzor7TmmI7lt7Lnu4/lnKjmgaLlpI3mnJ/vvIzlubbkuI3nlKjkv67mlLnml7bpl7RcclxuICAgICAgICBpZihoZWFsdGggPCAwICYmIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCAhPSA0KSB7XHJcbiAgICAgICAgICAgIGxldCBvbGRUaW1lID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImhlYWx0aFwiKS50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgIGhlYWx0aEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICBcImhlYWx0aFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCxcclxuICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6b2xkVGltZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGhlYWx0aEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICBcImhlYWx0aFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCxcclxuICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImhlYWx0aFwiLGhlYWx0aEluZm8pO1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfU2V0U3VwZXJQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ3VzZXJIZWFsdGgnLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3NhdmUnLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWx0aEFtb3VudDogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDp0aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ+WtmOWCqOWFs+WNoeaVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v6LSt5Lmw6KGM5Li6XHJcbiAgICBidXlSZXZpZXcoY29pbixjYWxsYmFjazogRnVuY3Rpb24pe1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWunumZheWNs+Wwhua2iOiAl+mHkeW4gTpcIixjb2luKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5jaGFuZ2VDb2luKGNvaW4pO1xyXG4gICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/mm7TmlLnnlKjmiLfpgZPlhbfmlbBcclxuICAgIGJ1eVByb3AocHJvcGlkLGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5jaGFuZ2VDb2luKC0xNTAwKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AocHJvcGlkLDMsKGRhdGEpPT57XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICBpZDogKHByb3BpZCArIFwiXCIpLFxyXG4gICAgICAgICAgICAgICAgbnVtOjNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9nZXRcIixkYXRhKTtcclxuICAgICAgICAgICAgbGV0IF9pZCA9IFwiXCI7XHJcbiAgICAgICAgICAgIGlmKHByb3BpZCA9PSAyMDAxKSBfaWQgPSBcImZyZWV6ZV9pbl9nYW1lXCI7XHJcbiAgICAgICAgICAgIGVsc2UgaWYocHJvcGlkID09IDIwMDIpIF9pZCA9IFwiaGFtbWVyX2luX2dhbWVcIjtcclxuICAgICAgICAgICAgZWxzZSBpZihwcm9waWQgPT0gMjAwMykgX2lkID0gXCJ3YW5kX2luX2dhbWVcIjtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGNvbnN0IGJ1eURhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtX2lkOl9pZCxcclxuICAgICAgICAgICAgICAgIGl0ZW1fbnVtOjEsXHJcbiAgICAgICAgICAgICAgICBpdGVtX3ByaWNlOjE1MDAsXHJcbiAgICAgICAgICAgICAgICBjb3N0X3R5cGU6XCJnb2xkXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIl9fX19fX19fX19fX+WNs+WwhuS4iuS8oFNob3BfYnV5XCIsYnV5RGF0YSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInNob3BfYnV5XCIsYnV5RGF0YSk7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLy/mlLnlj5jnlKjmiLflhbPljaFcclxuICAgIHNldFVzZXJMZXZlbChjYWxsYmFjayl7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIC8vIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA8PSAwIHx8IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICAvLyAgICAgY29uc29sZS5sb2coXCLnrYnnuqfph43nva7kuLowXCIpO1xyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMDtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWNs+WwhuS4iuS8oOeahOWFs+WNoeaVsDpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwpO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJMZXZlbCcsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3NhdmUnLFxyXG4gICAgICAgICAgICAgICAgbGV2ZWxBbW91bnQ6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+S6keWHveaVsOi/lOWbnue7k+aenDonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOWFs+WNoeaVsOaNruaIkOWKnycsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKTtcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgIFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOWFs+WNoeaVsOaNruWksei0pScpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WtmOWCqOWFs+WNoeaVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgICAgIC8v6I635Y+W55So5oi35YWz5Y2h5pWwXHJcbiAgICBnZXRVc2VyUHJvcChjYWxsYmFjazogRnVuY3Rpb24pIHtcclxuICAgICAgICBpZiAodHlwZW9mIHd4IT09ICd1bmRlZmluZWQnICYmIHd4IT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd1c2VyUHJvcCcsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn6K+75Y+W55So5oi36YGT5YW35pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuZGF0YSl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5mcmVlemU7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjaylcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpOyBcclxuXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/mlLnlj5jnlKjmiLfpgZPlhbdcclxuICAgIHNldFVzZXJQcm9wKHByb3BpZCxhbW91bnQsY2FsbGJhY2spe1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsZXQgbmV3UHJvcERhdGEgPSBudWxsO1xyXG4gICAgICAgICAgICBpZihwcm9waWQgPT0gMCl7XHJcbiAgICAgICAgICAgICAgICBuZXdQcm9wRGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBmcmVlemU6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICBoYW1tZXI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICBtYWdpY193YW5kOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHByb3BpZCA9PSAyMDAxKXtcclxuICAgICAgICAgICAgICAgIG5ld1Byb3BEYXRhID0gYW1vdW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYocHJvcGlkID09IDIwMDIpe1xyXG4gICAgICAgICAgICAgICAgbmV3UHJvcERhdGEgPSBhbW91bnQ7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYocHJvcGlkID09IDIwMDMpe1xyXG4gICAgICAgICAgICAgICAgbmV3UHJvcERhdGEgPSBhbW91bnQ7IFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJQcm9wJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAnc2F2ZScsXHJcbiAgICAgICAgICAgICAgICBwcm9wVHlwZTogcHJvcGlkLFxyXG4gICAgICAgICAgICAgICAgcHJvcERhdGE6IG5ld1Byb3BEYXRhXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5LqR5Ye95pWw6L+U5Zue57uT5p6cOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCflrZjlgqjpgZPlhbfmlbDmja7miJDlip8nKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOmBk+WFt+aVsOaNruWksei0pScpXHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WtmOWCqOmBk+WFt+aVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy8g5qOA5p+l5piv5ZCm5pyJ6Laz5aSf55qE56Gs5biBXHJcbiAgICBjb25zdW1lQ29pbnMocmVxdWlyZWRDb2luczogbnVtYmVyLCBwcm9wTmFtZTogc3RyaW5nLCBhbW91bnQ6IG51bWJlciwgY2FsbGJhY2spIHtcclxuICBcclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8vIOiuvue9rueUqOaIt+S/oeaBr1xyXG4gICAgc2V0VXNlckluZm8oY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGltZSA9IGNjLmZ4LkdhbWVUb29sLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgdXNlckluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g6L+Z6YeM5aGr5YaZ6KaB5a2Y5YKo55qE55So5oi35pWw5o2uXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWU6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VybmFtZSwgICAvL+eUqOaIt+WQjeensFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJhdmF0YXI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VyYXZhdGFyLCAgICAgLy/nlKjmiLflpLTlg49cclxuICAgICAgICAgICAgICAgICAgICByZWdpc3Rlcl90aW1lOiB0aW1lXHJcbiAgICAgICAgICAgICAgICB9XHJcbiBcclxuICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ3VzZXJEYXRhJyxcclxuICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdzYXZlJyxcclxuICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YTogdXNlckluZm9cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCflrZjlgqjnlKjmiLfmlbDmja7miJDlip8nKVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKFwiZmFpbFwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICB9IFxyXG4gICAgfSxcclxuXHJcbiAgICAgZm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgICAgIGNvbnN0IGhvdXJzID0gU3RyaW5nKGRhdGUuZ2V0SG91cnMoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgICBjb25zdCBtaW51dGVzID0gU3RyaW5nKGRhdGUuZ2V0TWludXRlcygpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBTdHJpbmcoZGF0ZS5nZXRTZWNvbmRzKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3QgbWlsbGlzZWNvbmRzID0gU3RyaW5nKGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCkpLnBhZFN0YXJ0KDMsICcwJyk7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX0gJHtob3Vyc306JHttaW51dGVzfToke3NlY29uZHN9LiR7bWlsbGlzZWNvbmRzfWA7XHJcbiAgICB9LFxyXG4gICAgXHJcbiAgICAvL+iOt+WPluaXtumXtOaIs1xyXG4gICAgZ2V0VGltZSgpe1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9ICAobmV3IERhdGUoKS5nZXRUaW1lKCkpXHJcbiAgICAgICAgcmV0dXJuIHRpbWVzdGFtcDtcclxuICAgIH0sXHJcbiAgICBwdXNoTGlzdGVyOmZ1bmN0aW9uICgpIHtcclxuICAgICAgICBcclxuICAgIH0sXHJcbiAgICByZW1vdmVBbGxMaXN0ZXI6ZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIFxyXG4gICAgfSxcclxuXHJcbiAgICBzaHVzaHVfVHJhY2s6IGZ1bmN0aW9uKG5hbWUsZGF0YSl7XHJcbiAgICAgICAgbGV0IGV2ZW50RGF0YSA9IHt9XHJcbiAgICAgICAgc3dpdGNoKG5hbWUpe1xyXG4gICAgICAgICAgICBjYXNlIFwicmVnaXN0ZXJcIjpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZW50ZXJfc3RhZ2VcIjpcclxuICAgICAgICAgICAgICAgIGV2ZW50RGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBzdGFnZV9pZDogKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCArIDEpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImZpbmlzaF9zdGFnZVwiOlxyXG4gICAgICAgICAgICAgICAgZXZlbnREYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YWdlX2lkOiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhZ2VfZHVyYXRpb246IGRhdGEudGltZSxcclxuICAgICAgICAgICAgICAgICAgICBhZGRlZF90aW1lOiBkYXRhLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdDogZGF0YS5yZXN1bHRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwicmVzb3VyY2VfZ2V0XCI6XHJcbiAgICAgICAgICAgICAgICBldmVudERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlX3JlYXNvbjpcIui0reS5sOmBk+WFt1wiLCAgIC8v6I635b6X5p2l5rqQXHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlX251bTpkYXRhLm51bSwgICAgICAgLy/ojrflvpfmlbDph49cclxuICAgICAgICAgICAgICAgICAgICByZXNvdXJjZV9pZDpkYXRhLmlkICAgICAgICAvL+mBk+WFt2lkXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInJlc291cmNlX2Nvc3RcIjpcclxuICAgICAgICAgICAgICAgIGV2ZW50RGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VfcmVhc29uOlwi5L2/55So6YGT5YW3XCIsICAgLy/ojrflvpfmnaXmupBcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VfbnVtOmRhdGEubnVtLCAgICAgICAvL+iOt+W+l+aVsOmHj1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlX2lkOmRhdGEuaWQgICAgICAgIC8v6YGT5YW3aWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrOyBcclxuICAgICAgICAgICAgY2FzZSBcInNob3BfYnV5XCI6XHJcbiAgICAgICAgICAgICAgICBldmVudERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbV9pZDogZGF0YS5pdGVtX2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1fbnVtOiBkYXRhLml0ZW1fbnVtLFxyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1fcHJpY2U6IGRhdGEuaXRlbV9wcmljZSxcclxuICAgICAgICAgICAgICAgICAgICBjb3N0X3R5cGU6IGRhdGEuY29zdF90eXBlLCAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmlbDmja46XCIsZXZlbnREYXRhKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X1RyYWNrKG5hbWUsZXZlbnREYXRhKTtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X1RyYWNrKG5hbWUsIGV2ZW50RGF0YSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldFdlY2hhdEdhbWVWZXJzaW9uOiBmdW5jdGlvbigpe1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIGNvbnN0IGFjY291bnRJbmZvID0gd3guZ2V0QWNjb3VudEluZm9TeW5jKCk7XHJcbiAgICAgICAgY29uc3QgbWluaVByb2dyYW0gPSBhY2NvdW50SW5mby5taW5pUHJvZ3JhbTtcclxuICAgICAgICBzd2l0Y2ggKG1pbmlQcm9ncmFtLmVudlZlcnNpb24pIHtcclxuICAgICAgICAgICAgY2FzZSAnZGV2ZWxvcCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+W8gOWPkeeJiCc7XHJcbiAgICAgICAgICAgIGNhc2UgJ3RyaWFsJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAn5L2T6aqM54mIJztcclxuICAgICAgICAgICAgY2FzZSAncmVsZWFzZSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+ato+W8j+eJiCc7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+acquefpeeJiOacrCc7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbn07XHJcbmV4cG9ydCB7IEdhbWVUb29sIH07Il19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFRvb2xcXEdhbWVUb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFvRDtBQUVwRCwrQkFBK0I7QUFDL0IsSUFBSSxRQUFRLEdBQUc7SUFDWCxVQUFVLEVBQUUsQ0FBQztJQUNiLFFBQVEsRUFBRSxDQUFDO0lBQ1gsVUFBVSxFQUFFLENBQUM7SUFFYixVQUFVO0lBQ1YsY0FBYztRQUNWLElBQUksSUFBSSxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3JELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUcsSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUM7WUFDOUMsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDbEMsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUM7Z0JBQzNCLElBQUksR0FBRyxHQUFHLDhFQUE4RSxHQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQzthQUM5QjtTQUNKO2FBQ0c7WUFDQSxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzRDtJQUNMLENBQUM7SUFFRCxhQUFhLFlBQUMsR0FBRztRQUNiLE9BQU8sYUFBYSxD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QUFLLE9BQU87Z0JBQ1IsT0FBTyxLQUFLLENBQUM7WUFDakIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sS0FBSyxDQUFDO1lBQ2pCO2dCQUNJLE9BQU8sTUFBTSxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQztDQUVKLENBQUM7QUFDTyw0QkFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4uLy4uL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuLy/mnIDlpKflt6XlhbfnsbsgIOWQhOenjeWFrOWFseaWueazle+8jOS7peWPiuWkhOeQhuS4iuS8oO+8jOiOt+WPluWQjuerr+aOpeWPo+aVsOaNrlxyXG52YXIgR2FtZVRvb2wgPSB7XHJcbiAgICBfc3RhcnRUaW1lOiAwLFxyXG4gICAgX2VuZFRpbWU6IDAsXHJcbiAgICBfdG90YWxUaW1lOiAwLFxyXG4gICAgXHJcbiAgICAvL+iOt+WPlnVzZXJJZFxyXG4gICAgQXV0aGVudGljYXRpb24oKXtcclxuICAgICAgICBsZXQgbmFtZSA9IFwidXNlcl9cIiArIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQ7XHJcbiAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKG5hbWUpKTtcclxuICAgICAgICBpZihkYXRhID09IFwidW5kaWZlbmRcIiB8fCBkYXRhPT1udWxsIHx8IGRhdGEgPT0gXCJcIil7XHJcbiAgICAgICAgICAgIHZhciB1cmxOb3cgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuICAgICAgICAgICAgaWYoIXRoaXMuY29udGFpbnNUcmFpbih1cmxOb3cpKXtcclxuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBcImh0dHBzOi8vYXBpLnNwYXJrdXMuY24vYXBpL3VzZXIvYXV0aC9sb2dpbj9kb21haW49aHVpMzI1NzlXZFlQc2dZcSZjYWxsYmFjaz1cIitsb2NhdGlvbi5ocmVmO1xyXG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShuYW1lLGRhdGEpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID0gcGFyc2VJbnQoZGF0YS51c2VySWQpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgY29udGFpbnNUcmFpbihzdHIpIHtcclxuICAgICAgICByZXR1cm4gL2Zyb209dHJhaW4vaS50ZXN0KHN0cik7XHJcbiAgICB9LFxyXG5cclxuICAgIC8v5Z+L54K55LiK5LygXHJcbiAgICBzZXRHYW1lRGF0YSgpe1xyXG4gICAgICAgIC8vR0FNRV9EQVRBIOWIneWni+WMliDmr4/mrKHmuIXpm7ZcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdBTUVfREFUQSA9IFtdO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR0FNRV9EQVRBLnB1c2goY2MuZnguR2FtZUNvbmZpZy5DTElDS19EQVRBKTtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX2luaXQoKTtcclxuICAgICAgICBsZXQgZGF0YSA9IGNjLmZ4LkdhbWVDb25maWcuR0FNRV9EQVRBO1xyXG4gICAgICAgIGxldCBtYXRjaElkID0gdGhpcy5nZXRNYXRjaElkKCk7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcImdhbWVJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJzY29kZVwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NvZGUsXHJcbiAgICAgICAgICAgIFwibWF0Y2hJZFwiOm1hdGNoSWQsXHJcbiAgICAgICAgICAgIFwiZGF0YVwiOiBkYXRhXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvKDmlbDmja46XCIscG9zdERhdGEpO1xyXG4gICAgICAgIC8vIGNjLmZ4Lkh0dHBVdGlsLnVwbG9hZFVzZXJMb2dEYXRhKHBvc3REYXRhLGZ1bmN0aW9uKCl7fSlcclxuICAgIH0sXHJcbiAgICAvL+S4iuS8oOaOkuihjOamnCAgdHlwZeS4ujFcclxuICAgIHNldFJhbmsoZGF0YSl7XHJcbiAgICAgICAgLy9HQU1FX0RBVEEg5Yid5aeL5YyWIOavj+asoea4hembtlxyXG4gICAgICAgIGxldCBwb3N0RGF0YSA9IHtcclxuICAgICAgICAgICAgXCJnYW1lSWRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZUlkLFxyXG4gICAgICAgICAgICBcInVzZXJJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VySWQsXHJcbiAgICAgICAgICAgIFwidHlwZVwiOjEsXHJcbiAgICAgICAgICAgIFwic2NvcmVcIjogZGF0YS5zY29yZSxcclxuICAgICAgICAgICAgXCJhY2N1cmFjeVwiOiBkYXRhLmRhdGUsXHJcbiAgICAgICAgICAgIFwic3VjY2Vzc1wiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc3VjY2Vzc1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMSxmdW5jdGlvbigpe30scG9zdERhdGEpO1xyXG4gICAgfSxcclxuICAgIC8v6I635Y+W5o6S6KGM5qacIHR5cGXkuLoyXHJcbiAgICBnZXRSYW5rKGRhdGEsY2FsbGJhY2spe1xyXG4gICAgICAgIGxldCByYW5rTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcImdhbWVJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJwYWdlXCI6MSxcclxuICAgICAgICAgICAgXCJwYWdlU2l6ZVwiOnJhbmtMZW5ndGhcclxuICAgICAgICB9OyBcclxuICAgICAgICAvL+Wbnuiwg+i/m2dldFJhbmtEYXRhXHJcbiAgICAgICAgLy8gY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMixkYXRhID0+e2NhbGxiYWNrKGRhdGEpfSxwb3N0RGF0YSk7XHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5ZtYXRjaElkICDnlKjkuo7kuIrkvKDmr4/mrKHngrnlh7vmlbDmja7ph4zpnaLorrDlvZVpZOaWueS+v+afpeivolxyXG4gICAgZ2V0TWF0Y2hJZCAoKXtcclxuICAgICAgICBsZXQgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoSWRcIik7XHJcbiAgICAgICAgbGV0IHRlbXBJZCA9IG1hdGNoSWQ7XHJcbiAgICAgICAgaWYobWF0Y2hJZCA9PSBcInVuZGlmZW5kXCIgfHwgbWF0Y2hJZD09bnVsbCl7XHJcbiAgICAgICAgICAgIG1hdGNoSWQgPSAgdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29udGFpbnNOYW5hbmEobWF0Y2hJZCkgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICBtYXRjaElkID0gIHRoaXMuc2V0TWF0Y2hJZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBsZXQgY2hhciA9IHBhcnNlSW50KHRlbXBJZC5zdWJzdHJpbmcoMTAsdGVtcElkLmxlbmd0aCkpO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYXIgKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICBtYXRjaElkICA9IHRlbXBJZC5zbGljZSgwLCAxMCkgKyBjaGFyICsgXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmNvbnRhaW5zTmFuYW5hKG1hdGNoSWQpKSBtYXRjaElkID0gdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hdGNoSWQgPSBtYXRjaElkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoSWRcIixtYXRjaElkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYodGhpcy5jb250YWluc05hbmFuYShtYXRjaElkKSA9PSB0cnVlKXtcclxuICAgICAgICAgICAgbWF0Y2hJZCA9ICB0aGlzLnNldE1hdGNoSWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1hdGNoSWQ7XHJcbiAgICB9LFxyXG4gICAgLy/mo4DmtYttYXRjaElkIOWmguaenOaciee8k+WtmOS7peWJjeeahG5hbmFuYeaVsOaNrua4hemZpFxyXG4gICAgY29udGFpbnNOYW5hbmEoc3RyKSB7XHJcbiAgICAgICAgcmV0dXJuIC9uYS9pLnRlc3Qoc3RyKTtcclxuICAgIH0sXHJcbiAgICAvL+mHjeaWsOiuvue9rk1hdGNoSWRcclxuICAgIHNldE1hdGNoSWQgKCl7XHJcbiAgICAgICAgLy8g5a6a5LmJ5YyF5ZCr5Y+v55So5a2X56ym55qE5a2X56ym6ZuGXHJcbiAgICAgICAgY29uc3QgY2hhcmFjdGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSc7XHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq5pWw57uE5Lul5L+d5a2Y6ZqP5py65a2X56ymXHJcbiAgICAgICAgY29uc3QgdXVpZEFycmF5ID0gW107XHJcbiAgICAgICAgLy8g5b6q546vMTDmrKEg55Sf5oiQMTDkvY3nmoRVVUlEXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDnlJ/miJDpmo/mnLrntKLlvJXvvIzojIPlm7TmmK/lrZfnrKbpm4bnmoTplb/luqZcclxuICAgICAgICAgICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIC8vIOS7juWtl+espumbhuS4reiOt+WPlumaj+acuuWtl+esplxyXG4gICAgICAgICAgICBjb25zdCByYW5kb21DaGFyID0gY2hhcmFjdGVycy5jaGFyQXQocmFuZG9tSW5kZXgpO1xyXG4gICAgICAgICAgICAvLyDlsIblrZfnrKbmt7vliqDliLDmlbDnu4TkuK1cclxuICAgICAgICAgICAgdXVpZEFycmF5LnB1c2gocmFuZG9tQ2hhcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBkYXRhID0gIHV1aWRBcnJheS5qb2luKCcnKSArIDEgKyBcIlwiO1xyXG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoTnVtYmVyXCIsMSk7XHJcbiAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibWF0Y2hJZFwiLGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYXRjaElkID0gZGF0YTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgIH0sXHJcbiAgICAvL+aIquWPluWQjeWtl1xyXG4gICAgc3ViTmFtZShuYW1lLGxlbmd0aCl7XHJcbiAgICAgICAgaWYobmFtZS5sZW5ndGggPiBsZW5ndGgpe1xyXG4gICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoMCxsZW5ndGgpICsgXCIuLi5cIlxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmFtZTtcclxuICAgIH0sXHJcbiAgICAvL+iuvue9ruWktOWDj1xyXG4gICAgc2V0UGljKG5vZGUscGljKXtcclxuICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB1cmwgPSBwaWM7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGZldGNoKHVybClcclxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbihlcnJObyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcbiAgICAvL+esrOS4gOS4quWPguaVsOaKiuebruagh+W4pui/m+adpeWkhOeQhu+8jOesrOS6jOS4quWPguaVsOS4uuWQjeWtl+mVv+W6pu+8jOS4jeWQjOWcuuaZr+S4jeWQjOmcgOaxglxyXG4gICAgLy/lkI3lrZc055+t77yM5bCP5o6S6KGM77yM5ZCN5a2XNumVv++8jOWkp+aOkuihjFxyXG4gICAgZ2V0UmFua0RhdGEoZGF0YSx0YXJnZXQsbmFtZUxlbmd0aCl7XHJcbiAgICAgICAgdGFyZ2V0Lmxpc3REYXRhID0gZGF0YS5kYXRhLmxpc3Q7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZEYXRhID0gZGF0YS5kYXRhLmluZm87XHJcbiAgICAgICAgbGV0IHJhbmtEYXRhID0gW107XHJcbiAgICAgICAgbGV0IHNlbGYgPSBmYWxzZTtcclxuICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0UGljKHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksdGFyZ2V0LnNlbGZEYXRhLnBpYyk7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTw9dGFyZ2V0Lmxpc3REYXRhLmxlbmd0aC0xO2krKyl7XHJcbiAgICAgICAgICAgIHJhbmtEYXRhLnB1c2goe3Jhbms6KGkrMSksIG5hbWU6dGFyZ2V0Lmxpc3REYXRhW2ldLm5pY2tOYW1lLCB0b3RhbDp0YXJnZXQubGlzdERhdGFbaV0uc2NvcmUsdGltZTpudWxsLCBwaWM6dGFyZ2V0Lmxpc3REYXRhW2ldLnBpY30pO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID09IHRhcmdldC5saXN0RGF0YVtpXS51c2VySWQpe1xyXG4gICAgICAgICAgICAgICAgc2VsZiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0oaSsxKSArIFwiXCI7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGkgPT0gKHRhcmdldC5saXN0RGF0YS5sZW5ndGgtMSkgJiYgc2VsZiA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI5OStcIjsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZEYXRhLm5pY2tOYW1lID0gY2MuZnguR2FtZVRvb2wuc3ViTmFtZSh0YXJnZXQuc2VsZkRhdGEubmlja05hbWUsbmFtZUxlbmd0aCk7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwibmFtZUxhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRhcmdldC5zZWxmRGF0YS5uaWNrTmFtZTtcclxuICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0b3RhbExhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRhcmdldC5zZWxmRGF0YS5zY29yZTtcclxuICAgICAgICBsZXQgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lU2hlbk5vbmcodGFyZ2V0LnNlbGZEYXRhLnRvdGxlVGltZXMpO1xyXG4gICAgICAgIC8vIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcCArIFwiXCI7XHJcbiAgICAgICAgc3dpdGNoKHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpe1xyXG4gICAgICAgICAgICBjYXNlIFwiMVwiOlxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCIyXCI6XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcIjNcIjpcclxuICAgICAgICAgICAgICAgIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIOWkp+aOkuihjFxyXG4gICAgICAgIGlmKG5hbWVMZW5ndGggPT0gNil7XHJcbiAgICAgICAgICAgIHRhcmdldC5yYW5rTGlzdC5zZXREYXRhKHJhbmtEYXRhKTtcclxuICAgICAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgIGlmKHRhcmdldC5zZWxmRGF0YS50b3RhbFN1bkNvdW50ID09IDApIHRhcmdldC5zZWxmTm9kZS5vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIGdldFNlZWRSYW5kb206IGZ1bmN0aW9uIChtaW4sIG1heCkgey8v5YyF5ZCrbWluIOS4jeWMheWQq21heFxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6ZqP5py65pWwOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCk7XHJcbiAgICAgICAgbWF4ID0gbWF4IHx8IDE7XHJcbiAgICAgICAgbWluID0gbWluIHx8IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmN1cnJTZWVkID0gKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCAqIDkzMDEgKyA0OTI5NykgJSAyMzMyODA7XHJcbiAgICAgICAgbGV0IHJuZCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCAgLyAyMzMyODAuMDtcclxuICAgICAgICBsZXQgdG1wID0gbWluICsgcm5kICogKG1heCAtIG1pbik7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHRtcCk7XHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5blhbPljaHphY3nva7nmoTpgqPkuKrlhbPljaHmlbBcclxuICAgIGdldEN1c3RvbSh0eXBlKXtcclxuICAgICAgICBsZXQgY3VzdG9tID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShjYy5meC5zdG9yYWdlVHlwZS5zdG9yYWdlVHlwZUN1c3RvbSk7XHJcbiAgICAgICAgaWYoY3VzdG9tID09IFwidW5kaWZlbmRcIiB8fCBjdXN0b209PW51bGwgfHwgY3VzdG9tID09IFwiXCIpe1xyXG4gICAgICAgICAgICB0aGlzLnNldEN1c3RvbSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk9fU0VUKFwiY3VzdG9tXCIsY3VzdG9tWzBdKTtcclxuICAgICAgICAgICAgaWYoY3VzdG9tWzBdICE9IDAgfHwgdHlwZSA9PSAgdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICBjdXN0b20uc2hpZnQoKTtcclxuICAgICAgICAgICAgICAgIGlmKGN1c3RvbS5sZW5ndGggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRDdXN0b20oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShjYy5meC5zdG9yYWdlVHlwZS5zdG9yYWdlVHlwZUN1c3RvbSxjdXN0b20pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8v5pys5Zyw5rKh5pyJ5a2Y5YKo5Yiw6YWN572u77yM5oiW6ICF6YWN572u55So5a6M77yM6YeN5paw5Yib5bu66YWN572uXHJcbiAgICBzZXRDdXN0b20oKXtcclxuICAgICAgICBsZXQgYXJyYXlMZW5ndGggPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk8ubGVuZ3RoO1xyXG4gICAgICAgIGxldCBhcnJheUxpc3QgPSBbXTtcclxuICAgICAgICBmb3IobGV0IGk9MTsgaTxhcnJheUxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBhcnJheUxpc3QucHVzaChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXJyYXlMaXN0LnNvcnQoKCkgPT4gTWF0aC5yYW5kb20oKSAtIDAuNSk7XHJcbiAgICAgICAgYXJyYXlMaXN0LnVuc2hpZnQoMClcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk9fU0VUKFwiY3VzdG9tXCIsYXJyYXlMaXN0WzBdKTtcclxuICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKGNjLmZ4LnN0b3JhZ2VUeXBlLnN0b3JhZ2VUeXBlQ3VzdG9tLGFycmF5TGlzdCk7XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICBnZXRTZXRTY3JlZW5SZXNvbHV0aW9uRmxhZzogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGxldCBzaXplID0gY2Mud2luU2l6ZTtcclxuICAgICAgICBsZXQgd2lkdGggPSBzaXplLndpZHRoO1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSBzaXplLmhlaWdodDtcclxuICAgICAgICBpZiAoKGhlaWdodCAvIHdpZHRoKSA+ICgxNi4yIC8gOSkpIHJldHVybiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICAvL+WIpOaWreWFqOmdouWxj+mAgumFjVxyXG4gICAgc2V0Rml0OiBmdW5jdGlvbiAoY2FudmFzKSB7XHJcbiAgICAgICAgbGV0IGZsYWcgPSAgY2MuZnguR2FtZVRvb2wuZ2V0U2V0U2NyZWVuUmVzb2x1dGlvbkZsYWcoKTtcclxuICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgIFx0Ly8gY29uc29sZS5sb2coXCLkuI3mmK/lhajpnaLlsY9cIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICBcdC8vIGNvbnNvbGUubG9nKFwi5piv5YWo6Z2i5bGPXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmxhZztcclxuICAgIH0sXHJcbiAgICAvL+iOt+WPlua4uOaIj+S/oeaBr1xyXG4gICAgZ2V0R2FtZUluZm86IGZ1bmN0aW9uKG5vZGUpe1xyXG4gICAgICAgIHZhciBqZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH0sXHJcbiAgICAvL+iuvue9rua4uOaIj+S/oeaBr1xyXG4gICAgc2V0R2FtZUluZm86IGZ1bmN0aW9uKHBkKXtcclxuICAgXHJcbiAgICB9LFxyXG5cclxuICAgIC8v5omT5a2X5py65pWI5p6cXHJcbiAgICB0eXBpbmdBbmkobGFiZWwsdGV4dCxjYix0YXJnZXQpe1xyXG4gICAgICAgIHZhciBzZWxmID0gdGFyZ2V0O1xyXG4gICAgICAgIHZhciBodG1sID0gJyc7XHJcbiAgICAgICAgdmFyIGFyciA9IHRleHQuc3BsaXQoJycpO1xyXG4gICAgICAgIHZhciBsZW4gPSBhcnIubGVuZ3RoO1xyXG4gICAgICAgIHZhciBzdGVwID0gMDtcclxuICAgICAgICBzZWxmLmZ1bmMgPSAoKT0+e1xyXG4gICAgICAgICAgICBodG1sICs9IGFycltzdGVwXTtcclxuICAgICAgICAgICAgbGFiZWwuc3RyaW5nID0gaHRtbDtcclxuICAgICAgICAgICAgaWYgKCsrc3RlcCA9PSBsZW4pIHtcclxuICAgICAgICAgICAgICAgIHNlbGYudW5zY2hlZHVsZShzZWxmLmZ1bmMpO1xyXG4gICAgICAgICAgICAgICAgY2IgJiYgY2IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZWxmLnNjaGVkdWxlKHNlbGYuZnVuYywwLjEsIGNjLm1hY3JvLlJFUEVBVF9GT1JFVkVSLCAwKVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+i+k+WFpeenkizov5Tlm57pnIDopoHlsZXnpLrml7bpl7TmoLzlvI9cclxuICAgIGdldFRpbWVNYXJnaW46KHNlY29uZCkgPT4ge1xyXG4gICAgICAgIGxldCB0b3RhbCA9IDA7XHJcbiAgICAgICAgdG90YWwgPSBzZWNvbmQ7XHJcbiAgICAgICAgbGV0IGhvdXIgPSAwO1xyXG4gICAgICAgIGhvdXIgPSBwYXJzZUludCgodG90YWwgLyAzNjAwKSArIFwiXCIpOy8v6K6h566X5pW05pWw5bCP5pe25pWwXHJcbiAgICAgICAgbGV0IGFmdGVySG91ciA9IHRvdGFsIC0gaG91ciAqIDYwICogNjA7Ly/lj5blvpfnrpflh7rlsI/ml7bmlbDlkI7liankvZnnmoTnp5LmlbBcclxuICAgICAgICBsZXQgbWluID0gcGFyc2VJbnQoKGFmdGVySG91ciAvIDYwKStcIlwiKTsvL+iuoeeul+aVtOaVsOWIhlxyXG4gICAgICAgIGxldCBtID0gXCJcIiArIG1pbjsgIFxyXG4gICAgICAgIGlmKG1pbiA8IDEwKSBtID0gXCIwXCIrbWluO1xyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gaG91ciAqIDYwICogNjAgLSBtaW4gKiA2MDsvL+WPluW+l+eul+WHuuWIhuWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaWFvID0gYWZ0ZXJNaW4gKyBcIlwiO1xyXG4gICAgICAgIGlmKGFmdGVyTWluIDwgMTApIG1pYW8gPSBcIjBcIiArIGFmdGVyTWluO1xyXG4gICAgICAgIHJldHVybiBtICsgJzonICsgbWlhb1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+i+k+WFpeenkizov5Tlm57pnIDopoHlsZXnpLrml7bpl7TmoLzlvI9cclxuICAgIGdldFRpbWVTaGVuTm9uZzooc2Vjb25kKSA9PiB7XHJcbiAgICAgICAgc2Vjb25kID0gcGFyc2VJbnQoc2Vjb25kLzEwMDArXCJcIik7XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IHNlY29uZDtcclxuICAgICAgICBsZXQgbWluID0gMDtcclxuICAgICAgICBpZih0b3RhbCA+IDYwKXtcclxuICAgICAgICAgICAgbWluID0gcGFyc2VJbnQoKHRvdGFsIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBtID0gIG1pbiArIFwiJ1wiOyAgXHJcblxyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gbWluICogNjA7Ly/lj5blvpfnrpflh7rliIblkI7liankvZnnmoTnp5LmlbBcclxuICAgICAgICBsZXQgbWlhbyA9IGFmdGVyTWluICsgXCInJ1wiO1xyXG4gICAgICAgIHJldHVybiBtICsgbWlhb1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+aJk+S5seaVsOe7hFxyXG4gICAgc2h1ZmZsZUFycmF5OiBmdW5jdGlvbiAoYXJyYXkpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gYXJyYXkubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkge1xyXG4gICAgICAgICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGkgKyAxKSk7XHJcbiAgICAgICAgICAgIFthcnJheVtpXSwgYXJyYXlbal1dID0gW2FycmF5W2pdLCBhcnJheVtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcnJheTtcclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8v5aKe5Yqg5YWz5Y2h5pWwXHJcbiAgICBhZGRMZXZlbCh0aW1lMSx0aW1lMil7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICs9IDE7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID4gMTU2KXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMTU2OyBcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICBsZXQgbGV2ZWxJbmZvID0ge1xyXG4gICAgICAgICAgICBsZXZlbDpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwsXHJcbiAgICAgICAgICAgIHRpbWVzdGFtcDp0aW1lc3RhbXAsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiNTU1NTXlrZjlgqjlhbPljaHmlbDmja46XCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixsZXZlbEluZm8pO1xyXG4gICAgICAgIGlmKHRpbWUxICYmIHRpbWUyKXtcclxuICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICB0aW1lOnRpbWUxLFxyXG4gICAgICAgICAgICAgICAgYWRkX1RpbWU6dGltZTIsXHJcbiAgICAgICAgICAgICAgICByZXN1bHQ6XCJzdWNjZXNzXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJmaW5pc2hfc3RhZ2VcIixkYXRhKTtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV9TZXRTdXBlclByb3BlcnRpZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlrZjlgqjnu5Pmnpw6XCIsZGF0YSk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiK5LygXCIsZGF0YSk7XHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcblxyXG4gICAgLy/mlLnlj5jph5HluIHkv6Hmga9cclxuICAgIGNoYW5nZUNvaW4oY29pbil7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJjaGFuZ2VDb2luXCIsY29pbik7XHJcbiAgICAgICAgaWYoY29pbiA9PSB1bmRlZmluZWQpIHJldHVybjtcclxuICAgICAgICBpZihjb2luIDwgMCAmJiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IC1jb2luKXtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLph5HluIHkuI3otrNcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiwtY29pbik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gKz0gY29pbjtcclxuXHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAwKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaUueWPmOeahOmHkeW4gTpcIixjb2luKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiHqui6q+mHkeW4geS/oeaBrzpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICBsZXQgY29pbkluZm8gPSB7XHJcbiAgICAgICAgICAgIGNvaW46Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sXHJcbiAgICAgICAgICAgIHRpbWVzdGFtcDp0aW1lc3RhbXAsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfU2V0U3VwZXJQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlrZjlgqjph5HluIHmlbDmja46XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sY29pbkluZm8pO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS8oFwiLGRhdGEpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9LFxyXG5cclxuICAgIC8v6I635Y+W55So5oi36YeR5biB5pWw6YePXHJcbiAgICBnZXRVc2VyQ29pbihjYWxsYmFjazogRnVuY3Rpb24pIHtcclxuICAgICAgICBpZiAodHlwZW9mIHd4IT09ICd1bmRlZmluZWQnICYmIHd4IT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd1c2VyQ29pbicsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn6K+75Y+W55So5oi36YeR5biB5pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKVxyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7IFxyXG5cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7IFxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/mlLnlj5jnlKjmiLfph5HluIFcclxuICAgIHNldFVzZXJDb2luKGNhbGxiYWNrKXtcclxuICAgICAgICBpZiAodHlwZW9mIHd4IT09ICd1bmRlZmluZWQnICYmIHd4IT09IG51bGwpIHtcclxuICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPD0gMCB8fCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLph5HluIHkuIrkvKDlpLHotKVcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuS4iuS8oOeahOmHkeW4geaVsOmHjzpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckNvaW4nLFxyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdzYXZlJyxcclxuICAgICAgICAgICAgICAgIGNvaW5BbW91bnQ6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5LqR5Ye95pWw6L+U5Zue57uT5p6cOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5a2Y5YKo6YeR5biB5pWw5o2u5oiQ5YqfJyxjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOmHkeW4geaVsOaNruWksei0pScpXHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WtmOWCqOeUqOaIt+aVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8v6I635Y+W55So5oi35YWz5Y2h5pWwXHJcbiAgICBnZXRVc2VyTGV2ZWwoY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckxldmVsJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKVxyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7IFxyXG5cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7IFxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/ov5vmuLjmiI/lpITnkIYg5L2T5Yqb5YC85oOF5Ya1XHJcbiAgICBnZXRIZWFsdGgoY2FsbGJhY2s6IEZ1bmN0aW9uKXtcclxuICAgICAgICBsZXQgaGVhbHRoID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImhlYWx0aFwiKTtcclxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9IDU7XHJcbiAgICAgICAgLy/msqHmnInlrZjlgqjov4fkvZPlipvlgLxcclxuICAgICAgICBpZihoZWFsdGggPT0gbnVsbCB8fCBoZWFsdGggPT0gdW5kZWZpbmVkIHx8IGhlYWx0aCA9PSBcIlwiKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHlrZjlgqjov4fkvZPlipvlgLzvvIzliJ3ov5tcIik7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9IDU7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJIZWFsdGgoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS9k+WKm+aOpeWPo+i/lOWbnue7k+aenFwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9IGRhdGEucmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lID0gZGF0YS5yZXN1bHQudGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBoZWFsdGhJbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImhlYWx0aFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjpkYXRhLnJlc3VsdC50aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV9TZXRTdXBlclByb3BlcnRpZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiaGVhbHRoXCIsaGVhbHRoSW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gNDA0ICYmIGRhdGEucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDkvZPlipvmlbDmja5cIil7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aCgwLCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjaykgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLmnInlrZjlgqjov4fkvZPlipvlgLw6XCIsaGVhbHRoKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwID0gaGVhbHRoLmhlYWx0aDtcclxuICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvlgLzor7vlj5blrozmr5VcIik7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBpZihoZWFsdGguaGVhbHRoIDwgMCl7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS9k+WKm+WAvOW8guW4uO+8jOW9kumbtlwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9IDA7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VySGVhbHRoKDAsKCk9PntcclxuICAgICAgICAgICAgICAgICAgICBpZihjYWxsYmFjaykgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYoaGVhbHRoLmhlYWx0aCA8IDUpe1xyXG4gICAgICAgICAgICAgICAgLy8gMzDliIbpkp/nmoTmr6vnp5LmlbBcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRoaXJ0eU1pbnV0ZXMgPSAzMCAqIDYwICogMTAwMDsgXHJcbiAgICAgICAgICAgICAgICBjb25zdCBlbGFwc2VkVGltZSA9IHRpbWVzdGFtcCAtIGhlYWx0aC50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAvLyDorqHnrpfmgaLlpI3nmoTkvZPlipvlgLxcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlY292ZXJlZEhlYWx0aCA9IE1hdGgubWluKDUgLSBoZWFsdGguaGVhbHRoLCBNYXRoLmZsb29yKGVsYXBzZWRUaW1lIC8gdGhpcnR5TWludXRlcykpOyBcclxuICAgICAgICAgICAgICAgIGlmIChyZWNvdmVyZWRIZWFsdGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhbHRoLmhlYWx0aCArPSByZWNvdmVyZWRIZWFsdGg7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aChyZWNvdmVyZWRIZWFsdGgsKCk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKSBjYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGDkvZPlipvlgLzmgaLlpI0gJHtyZWNvdmVyZWRIZWFsdGh9IOeCue+8jOW9k+WJjeS9k+WKm+WAvDogJHtjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHB9YCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOiuoeeul+i3neemu+S4i+S4gOasoeaBouWkjeeahOWJqeS9meaXtumXtFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbWFpbmluZ1RpbWUgPSBNYXRoLmNlaWwoKHRoaXJ0eU1pbnV0ZXMgLSAoZWxhcHNlZFRpbWUgJSB0aGlydHlNaW51dGVzKSkgLyAxMDAwKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhg5L2T5Yqb5YC85pyq5ruh77yM5b6F5oGi5aSN77yM6Led56a75LiL5LiA5qyh5oGi5aSN6L+Y5YmpICR7cmVtYWluaW5nVGltZX0g56eSYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lID0gcmVtYWluaW5nVGltZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/ojrflj5bnlKjmiLfkvZPlipvlgLxcclxuICAgIGdldFVzZXJIZWFsdGgoY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Y2z5bCG6L+b5YWl5L2T5Yqb6I635Y+W5o6l5Y+jXCIpO1xyXG4gICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJIZWFsdGgnLFxyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkvZPlipvojrflj5bmiJDlip9cIixyZXMpO1xyXG4gICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spXHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzKTsgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkvZPlipvojrflj5blpLHotKVcIixlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v6K6+572u55So5oi35L2T5Yqb5YC8ICDmnInlj6/og73liqDvvIzmnInlj6/og73lrprml7blmajlh49cclxuICAgIHNldFVzZXJIZWFsdGgoaGVhbHRoLGNhbGxiYWNrKXtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgKz0gaGVhbHRoO1xyXG4gICAgICAgIC8vIGlmKGhlYWx0aCA8IDApIHtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZSBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85oGi5aSNXCIpO1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgbGV0IGhlYWx0aEluZm8gPXt9XHJcbiBcclxuICAgICAgICAvL+WmguaenOa2iOiAl+S5i+WJjeS4jeaYr+a7oeS9k+WKm++8jOivtOaYjuW3sue7j+WcqOaBouWkjeacn++8jOW5tuS4jeeUqOS/ruaUueaXtumXtFxyXG4gICAgICAgIGlmKGhlYWx0aCA8IDAgJiYgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwICE9IDQpIHtcclxuICAgICAgICAgICAgbGV0IG9sZFRpbWUgPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwiaGVhbHRoXCIpLnRpbWVzdGFtcDtcclxuICAgICAgICAgICAgaGVhbHRoSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgIFwiaGVhbHRoXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwLFxyXG4gICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjpvbGRUaW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgaGVhbHRoSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgIFwiaGVhbHRoXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwLFxyXG4gICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiaGVhbHRoXCIsaGVhbHRoSW5mbyk7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV9TZXRTdXBlclByb3BlcnRpZXMoKTtcclxuICAgICAgICBpZiAodHlwZW9mIHd4IT09ICd1bmRlZmluZWQnICYmIHd4IT09IG51bGwpIHtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAndXNlckhlYWx0aCcsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnc2F2ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgaGVhbHRoQW1vdW50OiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAsXHJcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOnRpbWVzdGFtcFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcign5a2Y5YKo5YWz5Y2h5pWw5o2u5aSx6LSlJywgZXJyKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/otK3kubDooYzkuLpcclxuICAgIGJ1eVJldmlldyhjb2luLGNhbGxiYWNrOiBGdW5jdGlvbil7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5a6e6ZmF5Y2z5bCG5raI6ICX6YeR5biBOlwiLGNvaW4pO1xyXG4gICAgICAgICAgICAvLyB0aGlzLmNoYW5nZUNvaW4oY29pbik7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+abtOaUueeUqOaIt+mBk+WFt+aVsFxyXG4gICAgYnV5UHJvcChwcm9waWQsY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmNoYW5nZUNvaW4oLTE1MDApO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcChwcm9waWQsMywoZGF0YSk9PntcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgIGlkOiAocHJvcGlkICsgXCJcIiksXHJcbiAgICAgICAgICAgICAgICBudW06M1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlc291cmNlX2dldFwiLGRhdGEpO1xyXG4gICAgICAgICAgICBsZXQgX2lkID0gXCJcIjtcclxuICAgICAgICAgICAgaWYocHJvcGlkID09IDIwMDEpIF9pZCA9IFwiZnJlZXplX2luX2dhbWVcIjtcclxuICAgICAgICAgICAgZWxzZSBpZihwcm9waWQgPT0gMjAwMikgX2lkID0gXCJoYW1tZXJfaW5fZ2FtZVwiO1xyXG4gICAgICAgICAgICBlbHNlIGlmKHByb3BpZCA9PSAyMDAzKSBfaWQgPSBcIndhbmRfaW5fZ2FtZVwiO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgY29uc3QgYnV5RGF0YSA9IHtcclxuICAgICAgICAgICAgICAgIGl0ZW1faWQ6X2lkLFxyXG4gICAgICAgICAgICAgICAgaXRlbV9udW06MSxcclxuICAgICAgICAgICAgICAgIGl0ZW1fcHJpY2U6MTUwMCxcclxuICAgICAgICAgICAgICAgIGNvc3RfdHlwZTpcImdvbGRcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiX19fX19fX19fX19f5Y2z5bCG5LiK5LygU2hvcF9idXlcIixidXlEYXRhKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwic2hvcF9idXlcIixidXlEYXRhKTtcclxuICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvL+aUueWPmOeUqOaIt+WFs+WNoVxyXG4gICAgc2V0VXNlckxldmVsKGNhbGxiYWNrKXtcclxuICAgICAgICBpZiAodHlwZW9mIHd4IT09ICd1bmRlZmluZWQnICYmIHd4IT09IG51bGwpIHtcclxuICAgICAgICAgICAgLy8gaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsIDw9IDAgfHwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgIC8vICAgICBjb25zb2xlLmxvZyhcIuetiee6p+mHjee9ruS4ujBcIik7XHJcbiAgICAgICAgICAgIC8vICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAwO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y2z5bCG5LiK5Lyg55qE5YWz5Y2h5pWwOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCk7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckxldmVsJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAnc2F2ZScsXHJcbiAgICAgICAgICAgICAgICBsZXZlbEFtb3VudDogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5LqR5Ye95pWw6L+U5Zue57uT5p6cOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5a2Y5YKo5YWz5Y2h5pWw5o2u5oiQ5YqfJyxjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwpO1xyXG4gICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5a2Y5YKo5YWz5Y2h5pWw5o2u5aSx6LSlJylcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5a2Y5YKo5YWz5Y2h5pWw5o2u5aSx6LSlJywgZXJyKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAgICAgLy/ojrflj5bnlKjmiLflhbPljaHmlbBcclxuICAgIGdldFVzZXJQcm9wKGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJQcm9wJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCfor7vlj5bnlKjmiLfpgZPlhbfmlbDmja7miJDlip8nLCByZXMucmVzdWx0KVxyXG4gICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5kYXRhKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLmZyZWV6ZTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLmhhbW1lcjtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSByZXMucmVzdWx0LmRhdGEubWFnaWNfd2FuZDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKVxyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7IFxyXG5cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+aUueWPmOeUqOaIt+mBk+WFt1xyXG4gICAgc2V0VXNlclByb3AocHJvcGlkLGFtb3VudCxjYWxsYmFjayl7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGxldCBuZXdQcm9wRGF0YSA9IG51bGw7XHJcbiAgICAgICAgICAgIGlmKHByb3BpZCA9PSAwKXtcclxuICAgICAgICAgICAgICAgIG5ld1Byb3BEYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGZyZWV6ZTpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgIGhhbW1lcjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgIG1hZ2ljX3dhbmQ6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYocHJvcGlkID09IDIwMDEpe1xyXG4gICAgICAgICAgICAgICAgbmV3UHJvcERhdGEgPSBhbW91bnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihwcm9waWQgPT0gMjAwMil7XHJcbiAgICAgICAgICAgICAgICBuZXdQcm9wRGF0YSA9IGFtb3VudDsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihwcm9waWQgPT0gMjAwMyl7XHJcbiAgICAgICAgICAgICAgICBuZXdQcm9wRGF0YSA9IGFtb3VudDsgXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlclByb3AnLFxyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdzYXZlJyxcclxuICAgICAgICAgICAgICAgIHByb3BUeXBlOiBwcm9waWQsXHJcbiAgICAgICAgICAgICAgICBwcm9wRGF0YTogbmV3UHJvcERhdGFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCfkupHlh73mlbDov5Tlm57nu5Pmnpw6JywgcmVzKTtcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOmBk+WFt+aVsOaNruaIkOWKnycpXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5a2Y5YKo6YGT5YW35pWw5o2u5aSx6LSlJylcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5a2Y5YKo6YGT5YW35pWw5o2u5aSx6LSlJywgZXJyKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvLyDmo4Dmn6XmmK/lkKbmnInotrPlpJ/nmoTnoazluIFcclxuICAgIGNvbnN1bWVDb2lucyhyZXF1aXJlZENvaW5zOiBudW1iZXIsIHByb3BOYW1lOiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBjYWxsYmFjaykge1xyXG4gIFxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLy8g6K6+572u55So5oi35L+h5oGvXHJcbiAgICBzZXRVc2VySW5mbyhjYWxsYmFjazogRnVuY3Rpb24pIHtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0aW1lID0gY2MuZnguR2FtZVRvb2wuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpKTtcclxuICAgICAgICAgICAgICAgIGxldCB1c2VySW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyDov5nph4zloavlhpnopoHlrZjlgqjnmoTnlKjmiLfmlbDmja5cclxuICAgICAgICAgICAgICAgICAgICB1c2VybmFtZTogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJuYW1lLCAgIC8v55So5oi35ZCN56ewXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlcmF2YXRhcjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJhdmF0YXIsICAgICAvL+eUqOaIt+WktOWDj1xyXG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX3RpbWU6IHRpbWVcclxuICAgICAgICAgICAgICAgIH1cclxuIFxyXG4gICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAndXNlckRhdGEnLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3NhdmUnLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhOiB1c2VySW5mb1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOeUqOaIt+aVsOaNruaIkOWKnycpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soXCJmYWlsXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgIH0gXHJcbiAgICB9LFxyXG5cclxuICAgICBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgICAgY29uc3QgbW9udGggPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgICBjb25zdCBkYXkgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3QgaG91cnMgPSBTdHJpbmcoZGF0ZS5nZXRIb3VycygpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBTdHJpbmcoZGF0ZS5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kcyA9IFN0cmluZyhkYXRlLmdldFNlY29uZHMoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgICBjb25zdCBtaWxsaXNlY29uZHMgPSBTdHJpbmcoZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSkucGFkU3RhcnQoMywgJzAnKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fSAke2hvdXJzfToke21pbnV0ZXN9OiR7c2Vjb25kc30uJHttaWxsaXNlY29uZHN9YDtcclxuICAgIH0sXHJcbiAgICBcclxuICAgIC8v6I635Y+W5pe26Ze05oizXHJcbiAgICBnZXRUaW1lKCl7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gIChuZXcgRGF0ZSgpLmdldFRpbWUoKSlcclxuICAgICAgICByZXR1cm4gdGltZXN0YW1wO1xyXG4gICAgfSxcclxuICAgIHB1c2hMaXN0ZXI6ZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIFxyXG4gICAgfSxcclxuICAgIHJlbW92ZUFsbExpc3RlcjpmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgXHJcbiAgICB9LFxyXG5cclxuICAgIHNodXNodV9UcmFjazogZnVuY3Rpb24obmFtZSxkYXRhKXtcclxuICAgICAgICBsZXQgZXZlbnREYXRhID0ge31cclxuICAgICAgICBzd2l0Y2gobmFtZSl7XHJcbiAgICAgICAgICAgIGNhc2UgXCJyZWdpc3RlclwiOlxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJlbnRlcl9zdGFnZVwiOlxyXG4gICAgICAgICAgICAgICAgZXZlbnREYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YWdlX2lkOiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZmluaXNoX3N0YWdlXCI6XHJcbiAgICAgICAgICAgICAgICBldmVudERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhZ2VfaWQ6IChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgKyAxKSxcclxuICAgICAgICAgICAgICAgICAgICBzdGFnZV9kdXJhdGlvbjogZGF0YS50aW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGFkZGVkX3RpbWU6IGRhdGEuYWRkX1RpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBkYXRhLnJlc3VsdFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJyZXNvdXJjZV9nZXRcIjpcclxuICAgICAgICAgICAgICAgIGV2ZW50RGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VfcmVhc29uOlwi6LSt5Lmw6YGT5YW3XCIsICAgLy/ojrflvpfmnaXmupBcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VfbnVtOmRhdGEubnVtLCAgICAgICAvL+iOt+W+l+aVsOmHj1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlX2lkOmRhdGEuaWQgICAgICAgIC8v6YGT5YW3aWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwicmVzb3VyY2VfY29zdFwiOlxyXG4gICAgICAgICAgICAgICAgZXZlbnREYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZV9yZWFzb246XCLkvb/nlKjpgZPlhbdcIiwgICAvL+iOt+W+l+adpea6kFxyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZV9udW06ZGF0YS5udW0sICAgICAgIC8v6I635b6X5pWw6YePXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VfaWQ6ZGF0YS5pZCAgICAgICAgLy/pgZPlhbdpZFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7IFxyXG4gICAgICAgICAgICBjYXNlIFwic2hvcF9idXlcIjpcclxuICAgICAgICAgICAgICAgIGV2ZW50RGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtX2lkOiBkYXRhLml0ZW1faWQsXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbV9udW06IGRhdGEuaXRlbV9udW0sXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbV9wcmljZTogZGF0YS5pdGVtX3ByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvc3RfdHlwZTogZGF0YS5jb3N0X3R5cGUsICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaVsOaNrjpcIixldmVudERhdGEpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfVHJhY2sobmFtZSxldmVudERhdGEpO1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfVHJhY2sobmFtZSwgZXZlbnREYXRhKTtcclxuICAgIH0sXHJcblxyXG4gICAgZ2V0V2VjaGF0R2FtZVZlcnNpb246IGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgY29uc3QgYWNjb3VudEluZm8gPSB3eC5nZXRBY2NvdW50SW5mb1N5bmMoKTtcclxuICAgICAgICBjb25zdCBtaW5pUHJvZ3JhbSA9IGFjY291bnRJbmZvLm1pbmlQcm9ncmFtO1xyXG4gICAgICAgIHN3aXRjaCAobWluaVByb2dyYW0uZW52VmVyc2lvbikge1xyXG4gICAgICAgICAgICBjYXNlICdkZXZlbG9wJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAn5byA5Y+R54mIJztcclxuICAgICAgICAgICAgY2FzZSAndHJpYWwnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICfkvZPpqozniYgnO1xyXG4gICAgICAgICAgICBjYXNlICdyZWxlYXNlJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAn5q2j5byP54mIJztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiAn5pyq55+l54mI5pysJztcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxufTtcclxuZXhwb3J0IHsgR2FtZVRvb2wgfTsiXX0= \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/GameManager.js b/temp/quick-scripts/src/assets/Script/GameManager.js index fb71e2f..54fb6e6 100644 --- a/temp/quick-scripts/src/assets/Script/GameManager.js +++ b/temp/quick-scripts/src/assets/Script/GameManager.js @@ -373,13 +373,16 @@ var GameManager = /** @class */ (function (_super) { cc.fx.StorageMessage.setStorage("prop", propInfoNew); } else { - cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; - cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; - cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; + // cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; + // cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; + // cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; + cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; + cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; + cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; } - cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; - cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; - cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; + // cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; + // cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; + // cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; cc.fx.GameTool.setUserProp(0, 0, function (data) { }); } diff --git a/temp/quick-scripts/src/assets/Script/GameManager.js.map b/temp/quick-scripts/src/assets/Script/GameManager.js.map index c28c802..bb917b4 100644 --- a/temp/quick-scripts/src/assets/Script/GameManager.js.map +++ b/temp/quick-scripts/src/assets/Script/GameManager.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\GameManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport { MiniGameManager } from \"./Sdk/MiniGameManager\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class GameManager extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n static _instance : GameManager = null;\r\n\r\n @property({type: [cc.Prefab], tooltip:\"方块数组\"})\r\n Block_Array : Array = [];\r\n\r\n @property({type: [cc.Prefab], tooltip:\"墙壁数组\"})\r\n Wall_Prefab : Array = [];\r\n\r\n @property({type: [cc.SpriteAtlas], tooltip:\"方块颜色\"})\r\n Block_Color : Array = [];\r\n\r\n particleEffects: cc.ParticleAsset[];\r\n // @property({type: [cc.ParticleSystem], tooltip:\"粒子数组\"})\r\n // particleEffects : Array = [];\r\n\r\n load1 :boolean = false;\r\n load2 :boolean = false;\r\n load3 :boolean = false;\r\n load4 :boolean = false;\r\n load5 :boolean = false;\r\n scheduleCallback: any;\r\n timeNumber: number;\r\n\r\n \r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad () {\r\n\r\n window.initMgr();\r\n this.timeNumber = 3;\r\n this.startTimeCutDown();\r\n cc.fx.GameConfig.init(true);\r\n cc.fx.GameConfig.GM_INFO.gameState = false;\r\n this.readMusicConfig();\r\n console.log(\"音乐开关\",cc.fx.GameConfig.GM_INFO.musicOpen);\r\n cc.fx.AudioManager._instance.playMusicGame();\r\n\r\n this.load1 = this.load2 = this.load3 = this.load4 = this.load5 =false;\r\n setTimeout(() => {\r\n this.readUserData();\r\n }, 200);\r\n \r\n\r\n if (GameManager._instance == null) {\r\n GameManager._instance = this;\r\n cc.game.addPersistRootNode(this.node);\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n const path = 'prefab/block';\r\n const path2 = 'prefab/wall';\r\n cc.resources.loadDir(path, cc.Prefab, (err, assets: cc.Prefab[]) => {\r\n if (err) {\r\n \r\n console.error('动态加载 Prefab 失败:', err);\r\n cc.director.loadScene(\"LoadScene\");\r\n return;\r\n }\r\n // 将加载的 Prefab 赋值给 Block_Array\r\n this.Block_Array = assets;\r\n this.setSort();\r\n this.load1 = true;\r\n });\r\n\r\n cc.resources.loadDir(path2, cc.Prefab, (err, assets: cc.Prefab[]) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n cc.director.loadScene(\"LoadScene\");\r\n return;\r\n }\r\n // 将加载的 Prefab 赋值给 Block_Array\r\n this.Wall_Prefab = assets;\r\n this.load2 = true;\r\n this.setWallPrefabSort();\r\n });\r\n\r\n // debugger;\r\n\r\n // setTimeout(() => {\r\n // cc.director.preloadScene(\"HomeScene\", (err) => {\r\n // if (err) {\r\n // console.error('预加载 HomeScene 场景失败:', err);\r\n // return;\r\n // }\r\n // });\r\n // }, 1000);\r\n\r\n // 检测微信小游戏切到后台\r\n if (cc.sys.platform === cc.sys.WECHAT_GAME) {\r\n //@ts-ignore\r\n wx.onHide(() => {\r\n this.onHide();\r\n });\r\n // 检测微信小游戏回到前台\r\n //@ts-ignore\r\n wx.onShow(() => {\r\n this.onShow();\r\n });\r\n }\r\n\r\n }\r\n\r\n onHide () {\r\n cc.audioEngine.stopMusic();\r\n cc.game.pause();\r\n }\r\n\r\n onShow () {\r\n cc.audioEngine.resumeMusic();\r\n cc.game.resume();\r\n }\r\n\r\n loadParticleEffects() {\r\n }\r\n\r\n\r\n \r\n\r\n setWallPrefabSort() {\r\n const order = ['down', 'downLeft', 'downRight', 'left','right','up','upLeft','upRight'];\r\n this.Wall_Prefab.sort((a, b) => {\r\n const indexA = order.indexOf(a.name);\r\n const indexB = order.indexOf(b.name);\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n \r\n }\r\n\r\n setParticleSort() {\r\n const order = ['top', 'bot', 'rig', 'lef'];\r\n this.particleEffects.sort((a, b) => {\r\n const indexA = order.indexOf(a.name.substr(0,3));\r\n const indexB = order.indexOf(b.name.substr(0,3));\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n }\r\n\r\n setSort(){\r\n this.Block_Array.sort((a, b) => {\r\n // 从名称中提取数字部分\r\n const numberA = parseInt(a.name.match(/\\d+/)?.[0] || '0', 10);\r\n const numberB = parseInt(b.name.match(/\\d+/)?.[0] || '0', 10);\r\n return numberA - numberB;\r\n });\r\n }\r\n\r\n start () {\r\n\r\n }\r\n\r\n startGame(){\r\n console.log(\"进入场景之前_____________\",cc.fx.GameConfig.GM_INFO.first);\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n\r\n returnHome(){\r\n cc.tween(this.node.getChildByName(\"Game\"))\r\n .to(0.5, {opacity: 100})\r\n .call(() => {\r\n \r\n // 预加载成功后加载场景\r\n cc.director.loadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n console.error('加载 HomeScene 场景失败:', err);\r\n } else {\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n });\r\n })\r\n .start();\r\n\r\n cc.tween(this.node.getChildByName(\"mask\"))\r\n .to(0.5,{opacity: 255})\r\n .start();\r\n\r\n // cc.loader.releaseAll();\r\n // 预加载 HomeScene 场景\r\n\r\n \r\n }\r\n\r\n\r\n readUserData(retryCount = 0){\r\n //@ts-ignore\r\n if (typeof wx !== 'undefined' && wx !== null) { \r\n let levelInfo = cc.fx.StorageMessage.getStorage(\"level\");\r\n //旧的读取数据设置数据方法,以强联网为主\r\n if(levelInfo == undefined || levelInfo == \"\" || levelInfo == null){\r\n this.oldReadData(retryCount);\r\n }\r\n //新的读取数据设置方法,以本地为主\r\n else{\r\n this.newReadData();\r\n }\r\n console.log(\"即将读取体力值\");\r\n cc.fx.GameTool.getHealth((data)=>{\r\n console.log(\"体力值完成进入游戏\");\r\n this.load5 = true;\r\n });\r\n\r\n }\r\n else{\r\n this.load3 = true;\r\n this.load4 = true;\r\n this.load5 = true;\r\n cc.fx.GameTool.getHealth(null);\r\n }\r\n // 存储用户数据\r\n }\r\n\r\n readMusicConfig(){\r\n let audioInfo = cc.fx.StorageMessage.getStorage(\"music\");\r\n if(audioInfo == undefined || audioInfo == \"\" || audioInfo == null){\r\n audioInfo = {\r\n \"musicOpen\": true, //音乐\r\n \"effectOpen\": true, //音效\r\n \"vibrateOpen\": true, //震动\r\n }\r\n cc.fx.StorageMessage.setStorage(\"music\",audioInfo);\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO.musicOpen = audioInfo.musicOpen;\r\n cc.fx.GameConfig.GM_INFO.effectOpen = audioInfo.effectOpen;\r\n cc.fx.GameConfig.GM_INFO.vibrateOpen = audioInfo.vibrateOpen;\r\n }\r\n }\r\n \r\n //新用户,有本地缓存读取配置\r\n newReadData(){\r\n console.log(\"读取新信息\");\r\n let openid = cc.fx.StorageMessage.getStorage(\"openid\");\r\n if(openid == null || openid == \"\" || openid == undefined){\r\n console.log(\"没有openid\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n console.log('读取用户数据成功', res.result)\r\n if(res.result.code == 404 && res.result.message == \"未找到用户数据\"){\r\n }\r\n else if(res.result.code == 200){\r\n if(res.result.data){\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid;\r\n cc.fx.GameConfig.GM_INFO.username = res.result.data.username;\r\n cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar;\r\n const register_time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(register_time);\r\n cc.fx.StorageMessage.setStorage(\"openid\",cc.fx.GameConfig.GM_INFO.openid);\r\n }\r\n }\r\n },\r\n fail: err => {\r\n console.error('读取用户数据失败', err)\r\n }\r\n })\r\n }\r\n else{\r\n if(openid)\r\n cc.fx.GameConfig.GM_INFO.openid = openid;\r\n }\r\n \r\n\r\n\r\n //等级信息\r\n cc.fx.GameTool.getUserLevel((data) =>{\r\n const timestamp = Date.now();\r\n let levelInfo = cc.fx.StorageMessage.getStorage(\"level\");\r\n if(data.result.code == 404 && data.result.message == \"未找到关卡数据\"){\r\n // console.log(\"没有等级信息,从用户接口拿到数据\");\r\n if(levelInfo.level){\r\n cc.fx.GameConfig.GM_INFO.level = levelInfo.level;\r\n }\r\n this.load4 = true;\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n // console.log(\"有等级信息,从关卡接口拿到数据\",data.result.data);\r\n //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储\r\n let temp = data.result.timestamp - levelInfo.timestamp;\r\n console.log(\"等级时间差:\",temp);\r\n if((data.result.timestamp - levelInfo.timestamp) < 10000){\r\n if(levelInfo.level){\r\n console.log(\"以游戏前端等级为准\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = levelInfo.level;\r\n // console.log(\"等级为:\",cc.fx.GameConfig.GM_INFO.level);\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n });\r\n }\r\n\r\n }\r\n //服务器端存储时间新于游戏端,以服务器端为主,往前端存储\r\n else{\r\n console.log(\"以服务器等级为准\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = data.result.data; \r\n levelInfo.level = cc.fx.GameConfig.GM_INFO.level;\r\n levelInfo.timestamp = timestamp;\r\n // console.log(\"1111111存储关卡数据:\",cc.fx.GameConfig.GM_INFO.level);\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n }\r\n this.load4 = true;\r\n }\r\n });\r\n //金币信息\r\n cc.fx.GameTool.getUserCoin((data) =>{\r\n const timestamp = Date.now();\r\n let coinInfo = cc.fx.StorageMessage.getStorage(\"coin\");\r\n if(data.result.code == 404 && data.result.message == \"未找到金币数据\"){\r\n if(coinInfo.coin)\r\n cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin;\r\n console.log(\"没有金币信息,从用户接口拿到数据\",cc.fx.GameConfig.GM_INFO.coin);\r\n this.load3 = true;\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n // console.log(\"有金币信息,从金币接口拿到数据\",data.result.data);\r\n //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储\r\n let temp = data.result.timestamp - coinInfo.timestamp;\r\n console.log(\"金币时间差:\",temp);\r\n if((data.result.timestamp - coinInfo.timestamp) < 10000){\r\n console.log(\"以前端金幣为准:\",coinInfo);\r\n if(coinInfo.coin)\r\n cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin;\r\n else{\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin;\r\n coinInfo.timestamp = timestamp;\r\n console.log(\"11111111111\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n }\r\n console.log(\"改变后金币:\",cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n });\r\n }\r\n //服务器端存储时间新于游戏端,以服务器端为主,往前端存储\r\n else{\r\n console.log(\"以服务器金幣为准:\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data; \r\n coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin;\r\n coinInfo.timestamp = timestamp;\r\n console.log(\"2222222222\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n }\r\n this.load3 = true;\r\n } \r\n });\r\n //道具信息\r\n cc.fx.GameTool.getUserProp((data) =>{\r\n const timestamp = Date.now();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n if(data.result.code == 404 && data.result.message == \"未找到道具数据\"){\r\n console.log(\"没有道具信息,从用户接口拿到数据\",propInfo);\r\n if(propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined){\r\n console.log(\"2222222道具数据异常\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmoun = 0;\r\n let propInfoNew = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmoun,\r\n \"timestamp\":timestamp\r\n }\r\n console.log(\"1111111上传道具信息:\",propInfoNew);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfoNew);\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n }\r\n\r\n \r\n cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n // console.log(\"本地时间戳\",propInfo.timestamp,\"服务器时间戳\",data.result.timestamp);\r\n if((data.result.timestamp - propInfo.timestamp) < 10000){\r\n console.log(\"以前端道具为主:\",propInfo);\r\n if(propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined){\r\n console.log(\"111111道具数据异常\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n let propInfoNew = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\":timestamp\r\n }\r\n console.log(\"333333上传道具信息:\",propInfoNew);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfoNew);\r\n }\r\n else{\r\n console.log(\"道具数据正常\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n });\r\n }\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n let propInfoNew = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\":timestamp\r\n }\r\n console.log(\"22222222上传道具信息:\",propInfoNew,data.result);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfoNew);\r\n }\r\n } \r\n });\r\n }\r\n //旧用户,无本地缓存读取配置\r\n oldReadData(retryCount:number){\r\n console.log(\"读取旧信息\");\r\n const MAX_RETRIES = 15;\r\n const timestamp = Date.now();\r\n // 读取用户数据\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => { \r\n console.log('读取用户数据成功', res.result)\r\n if(res.result.code == 404 && res.result.message == \"未找到用户数据\"){\r\n if(res.result.openid){\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid\r\n }\r\n cc.fx.GameConfig.GM_INFO.first = true;\r\n this.load3 = true;\r\n this.load4 = true;\r\n let levelInfo = {\"level\":0,\"timestamp\":timestamp};\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n let coinInfo = {\"coin\":0,\"timestamp\":timestamp};\r\n console.log(\"33333333333\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n let propInfo = {\r\n \"freezeAmount\":0,\r\n \"hammerAmount\":0,\r\n \"magicAmount\":0,\r\n \"timestamp\":timestamp,\r\n }\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n\r\n\r\n cc.fx.GameTool.setUserInfo((data)=>{\r\n if(data.result.code == 200){\r\n console.log(\"上传用户信息成功\",data);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n }, \r\n success: res => {\r\n console.log(\"上传后,读取用户信息,为上报注册时间\")\r\n if(res.result.code == 200){\r\n const time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(time);\r\n }\r\n }\r\n })\r\n }\r\n });\r\n console.log(\"服务器也没有金币信息\",cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin(cc.fx.GameConfig.GM_INFO.coin,(data)=>{\r\n \r\n });\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n if(data.result.code == 200){\r\n console.log(\"上传道具信息成功\",data);\r\n }\r\n else{\r\n MiniGameSdk.API.showToast(\"网络异常,正在努力加载\");\r\n setTimeout(() => {\r\n this.oldReadData(0);\r\n }, 1000);\r\n }\r\n });\r\n }, 0);\r\n }\r\n else if(res.result.code == 200){\r\n if(res.result.data){\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid;\r\n cc.fx.GameConfig.GM_INFO.level = res.result.data.level;\r\n cc.fx.GameConfig.GM_INFO.coin = res.result.data.coinAmount;\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = res.result.data.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = res.result.data.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = res.result.data.magicAmount;\r\n cc.fx.GameConfig.GM_INFO.username = res.result.data.username;\r\n cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar;\r\n cc.fx.StorageMessage.setStorage(\"openid\",cc.fx.GameConfig.GM_INFO.openid);\r\n const register_time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(register_time);\r\n }\r\n setTimeout(() => {\r\n cc.fx.GameTool.getUserCoin((data) =>{\r\n if(data.result.code == 404 && data.result.message == \"未找到金币数据\"){\r\n \r\n let coinInfo = {\"coin\":0,\"timestamp\":timestamp};\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n console.log(\"没有金币信息,从用户接口拿到数据\",cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n // console.log(\"上传\",data);\r\n this.load3 = true;\r\n });\r\n }\r\n else if(data.result.code == 200){\r\n // console.log(\"有金币信息,从金币接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n let coinInfo = {\"coin\":cc.fx.GameConfig.GM_INFO.coin,\"timestamp\":timestamp};\r\n console.log(\"存储金币信息:\",cc.fx.GameConfig.GM_INFO.coin);\r\n console.log(\"4444444444\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n this.load3 = true;\r\n }\r\n })\r\n }, 500);\r\n\r\n cc.fx.GameTool.getUserLevel((data) =>{\r\n if(data.result.code == 404 && data.result.message == \"未找到关卡数据\"){\r\n console.log(\"没有等级信息,从用户接口拿到数据\");\r\n let levelInfo = {\"level\":0,\"timestamp\":timestamp};\r\n // console.log(\"333333存储关卡数据:\",levelInfo);\r\n cc.fx.GameConfig.GM_INFO.level = 0;\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n console.log(\"拿到的数据\",data);\r\n this.load4 = true;\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n console.log(\"有等级信息,从关卡接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = data.result.data; \r\n let levelInfo = {\"level\":cc.fx.GameConfig.GM_INFO.level,\"timestamp\":timestamp};\r\n // console.log(\"444444存储关卡信息:\",levelInfo);\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n this.load4 = true;\r\n }\r\n })\r\n setTimeout(() => {\r\n cc.fx.GameTool.getUserProp((data) =>{\r\n if(data.result.code == 404 && data.result.message == \"未找到道具数据\"){\r\n console.log(\"没有道具信息,从用户接口拿到数据\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n let propInfo = {\r\n \"freezeAmount\":0,\r\n \"hammerAmount\":0,\r\n \"magicAmount\":0,\r\n \"timestamp\":timestamp,\r\n }\r\n console.log(\"上传道具信息:\",propInfo);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n console.log(\"有道具信息,从道具接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze || 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer || 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand || 0;\r\n let propInfo = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\":timestamp,\r\n }\r\n console.log(\"上传道具信息:\",propInfo);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n\r\n }\r\n })\r\n }, 0);\r\n \r\n }\r\n\r\n },\r\n fail: err => {\r\n console.error('读取用户数据失败', err)\r\n if (retryCount < MAX_RETRIES) {\r\n console.error(`读取用户数据失败,第 ${retryCount + 1} 次重试,错误信息:`, err);\r\n // 延迟 2 秒后重试\r\n setTimeout(() => {\r\n this.readUserData(retryCount + 1);\r\n }, 2000);\r\n } else {\r\n console.error('读取用户数据失败,达到最大重试次数,退出游戏', err);\r\n // 退出游戏\r\n cc.game.end();\r\n }\r\n }\r\n })\r\n }\r\n\r\n setUserData(){\r\n cc.fx.GameConfig.GameTool((data)=>{\r\n console.log(\"上传\",data);\r\n })\r\n }\r\n\r\n startTimeCutDown(){\r\n this.scheduleCallback = function(){\r\n if(this.timeNumber <= 0){\r\n this.stopTimeCutDown();\r\n }\r\n else{\r\n this.timeNumber -= 1;\r\n }\r\n }.bind(this);\r\n this.schedule(this.scheduleCallback, 1);\r\n }\r\n\r\n stopTimeCutDown(){\r\n if(this.scheduleCallback){\r\n this.unschedule(this.scheduleCallback);\r\n }\r\n }\r\n\r\n update (dt) {\r\n if(this.load1 && this.load2 && this.load3 && this.load4 && this.load5 && this.timeNumber <= 0){\r\n this.load1 = this.load2 = false;\r\n MiniGameSdk.API.shushu_Init();\r\n this.startGame();\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\GameManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport { MiniGameManager } from \"./Sdk/MiniGameManager\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class GameManager extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n static _instance : GameManager = null;\r\n\r\n @property({type: [cc.Prefab], tooltip:\"方块数组\"})\r\n Block_Array : Array = [];\r\n\r\n @property({type: [cc.Prefab], tooltip:\"墙壁数组\"})\r\n Wall_Prefab : Array = [];\r\n\r\n @property({type: [cc.SpriteAtlas], tooltip:\"方块颜色\"})\r\n Block_Color : Array = [];\r\n\r\n particleEffects: cc.ParticleAsset[];\r\n // @property({type: [cc.ParticleSystem], tooltip:\"粒子数组\"})\r\n // particleEffects : Array = [];\r\n\r\n load1 :boolean = false;\r\n load2 :boolean = false;\r\n load3 :boolean = false;\r\n load4 :boolean = false;\r\n load5 :boolean = false;\r\n scheduleCallback: any;\r\n timeNumber: number;\r\n\r\n \r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad () {\r\n\r\n window.initMgr();\r\n this.timeNumber = 3;\r\n this.startTimeCutDown();\r\n cc.fx.GameConfig.init(true);\r\n cc.fx.GameConfig.GM_INFO.gameState = false;\r\n this.readMusicConfig();\r\n console.log(\"音乐开关\",cc.fx.GameConfig.GM_INFO.musicOpen);\r\n cc.fx.AudioManager._instance.playMusicGame();\r\n\r\n this.load1 = this.load2 = this.load3 = this.load4 = this.load5 =false;\r\n setTimeout(() => {\r\n this.readUserData();\r\n }, 200);\r\n \r\n\r\n if (GameManager._instance == null) {\r\n GameManager._instance = this;\r\n cc.game.addPersistRootNode(this.node);\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n const path = 'prefab/block';\r\n const path2 = 'prefab/wall';\r\n cc.resources.loadDir(path, cc.Prefab, (err, assets: cc.Prefab[]) => {\r\n if (err) {\r\n \r\n console.error('动态加载 Prefab 失败:', err);\r\n cc.director.loadScene(\"LoadScene\");\r\n return;\r\n }\r\n // 将加载的 Prefab 赋值给 Block_Array\r\n this.Block_Array = assets;\r\n this.setSort();\r\n this.load1 = true;\r\n });\r\n\r\n cc.resources.loadDir(path2, cc.Prefab, (err, assets: cc.Prefab[]) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n cc.director.loadScene(\"LoadScene\");\r\n return;\r\n }\r\n // 将加载的 Prefab 赋值给 Block_Array\r\n this.Wall_Prefab = assets;\r\n this.load2 = true;\r\n this.setWallPrefabSort();\r\n });\r\n\r\n // debugger;\r\n\r\n // setTimeout(() => {\r\n // cc.director.preloadScene(\"HomeScene\", (err) => {\r\n // if (err) {\r\n // console.error('预加载 HomeScene 场景失败:', err);\r\n // return;\r\n // }\r\n // });\r\n // }, 1000);\r\n\r\n // 检测微信小游戏切到后台\r\n if (cc.sys.platform === cc.sys.WECHAT_GAME) {\r\n //@ts-ignore\r\n wx.onHide(() => {\r\n this.onHide();\r\n });\r\n // 检测微信小游戏回到前台\r\n //@ts-ignore\r\n wx.onShow(() => {\r\n this.onShow();\r\n });\r\n }\r\n\r\n }\r\n\r\n onHide () {\r\n cc.audioEngine.stopMusic();\r\n cc.game.pause();\r\n }\r\n\r\n onShow () {\r\n cc.audioEngine.resumeMusic();\r\n cc.game.resume();\r\n }\r\n\r\n loadParticleEffects() {\r\n }\r\n\r\n\r\n \r\n\r\n setWallPrefabSort() {\r\n const order = ['down', 'downLeft', 'downRight', 'left','right','up','upLeft','upRight'];\r\n this.Wall_Prefab.sort((a, b) => {\r\n const indexA = order.indexOf(a.name);\r\n const indexB = order.indexOf(b.name);\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n \r\n }\r\n\r\n setParticleSort() {\r\n const order = ['top', 'bot', 'rig', 'lef'];\r\n this.particleEffects.sort((a, b) => {\r\n const indexA = order.indexOf(a.name.substr(0,3));\r\n const indexB = order.indexOf(b.name.substr(0,3));\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n }\r\n\r\n setSort(){\r\n this.Block_Array.sort((a, b) => {\r\n // 从名称中提取数字部分\r\n const numberA = parseInt(a.name.match(/\\d+/)?.[0] || '0', 10);\r\n const numberB = parseInt(b.name.match(/\\d+/)?.[0] || '0', 10);\r\n return numberA - numberB;\r\n });\r\n }\r\n\r\n start () {\r\n\r\n }\r\n\r\n startGame(){\r\n console.log(\"进入场景之前_____________\",cc.fx.GameConfig.GM_INFO.first);\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n\r\n returnHome(){\r\n cc.tween(this.node.getChildByName(\"Game\"))\r\n .to(0.5, {opacity: 100})\r\n .call(() => {\r\n \r\n // 预加载成功后加载场景\r\n cc.director.loadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n console.error('加载 HomeScene 场景失败:', err);\r\n } else {\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n });\r\n })\r\n .start();\r\n\r\n cc.tween(this.node.getChildByName(\"mask\"))\r\n .to(0.5,{opacity: 255})\r\n .start();\r\n\r\n // cc.loader.releaseAll();\r\n // 预加载 HomeScene 场景\r\n\r\n \r\n }\r\n\r\n\r\n readUserData(retryCount = 0){\r\n //@ts-ignore\r\n if (typeof wx !== 'undefined' && wx !== null) { \r\n let levelInfo = cc.fx.StorageMessage.getStorage(\"level\");\r\n //旧的读取数据设置数据方法,以强联网为主\r\n if(levelInfo == undefined || levelInfo == \"\" || levelInfo == null){\r\n this.oldReadData(retryCount);\r\n }\r\n //新的读取数据设置方法,以本地为主\r\n else{\r\n this.newReadData();\r\n }\r\n console.log(\"即将读取体力值\");\r\n cc.fx.GameTool.getHealth((data)=>{\r\n console.log(\"体力值完成进入游戏\");\r\n this.load5 = true;\r\n });\r\n\r\n }\r\n else{\r\n this.load3 = true;\r\n this.load4 = true;\r\n this.load5 = true;\r\n cc.fx.GameTool.getHealth(null);\r\n }\r\n // 存储用户数据\r\n }\r\n\r\n readMusicConfig(){\r\n let audioInfo = cc.fx.StorageMessage.getStorage(\"music\");\r\n if(audioInfo == undefined || audioInfo == \"\" || audioInfo == null){\r\n audioInfo = {\r\n \"musicOpen\": true, //音乐\r\n \"effectOpen\": true, //音效\r\n \"vibrateOpen\": true, //震动\r\n }\r\n cc.fx.StorageMessage.setStorage(\"music\",audioInfo);\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO.musicOpen = audioInfo.musicOpen;\r\n cc.fx.GameConfig.GM_INFO.effectOpen = audioInfo.effectOpen;\r\n cc.fx.GameConfig.GM_INFO.vibrateOpen = audioInfo.vibrateOpen;\r\n }\r\n }\r\n \r\n //新用户,有本地缓存读取配置\r\n newReadData(){\r\n console.log(\"读取新信息\");\r\n let openid = cc.fx.StorageMessage.getStorage(\"openid\");\r\n if(openid == null || openid == \"\" || openid == undefined){\r\n console.log(\"没有openid\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n console.log('读取用户数据成功', res.result)\r\n if(res.result.code == 404 && res.result.message == \"未找到用户数据\"){\r\n }\r\n else if(res.result.code == 200){\r\n if(res.result.data){\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid;\r\n cc.fx.GameConfig.GM_INFO.username = res.result.data.username;\r\n cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar;\r\n const register_time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(register_time);\r\n cc.fx.StorageMessage.setStorage(\"openid\",cc.fx.GameConfig.GM_INFO.openid);\r\n }\r\n }\r\n },\r\n fail: err => {\r\n console.error('读取用户数据失败', err)\r\n }\r\n })\r\n }\r\n else{\r\n if(openid)\r\n cc.fx.GameConfig.GM_INFO.openid = openid;\r\n }\r\n \r\n\r\n\r\n //等级信息\r\n cc.fx.GameTool.getUserLevel((data) =>{\r\n const timestamp = Date.now();\r\n let levelInfo = cc.fx.StorageMessage.getStorage(\"level\");\r\n if(data.result.code == 404 && data.result.message == \"未找到关卡数据\"){\r\n // console.log(\"没有等级信息,从用户接口拿到数据\");\r\n if(levelInfo.level){\r\n cc.fx.GameConfig.GM_INFO.level = levelInfo.level;\r\n }\r\n this.load4 = true;\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n // console.log(\"有等级信息,从关卡接口拿到数据\",data.result.data);\r\n //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储\r\n let temp = data.result.timestamp - levelInfo.timestamp;\r\n console.log(\"等级时间差:\",temp);\r\n if((data.result.timestamp - levelInfo.timestamp) < 10000){\r\n if(levelInfo.level){\r\n console.log(\"以游戏前端等级为准\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = levelInfo.level;\r\n // console.log(\"等级为:\",cc.fx.GameConfig.GM_INFO.level);\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n });\r\n }\r\n\r\n }\r\n //服务器端存储时间新于游戏端,以服务器端为主,往前端存储\r\n else{\r\n console.log(\"以服务器等级为准\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = data.result.data; \r\n levelInfo.level = cc.fx.GameConfig.GM_INFO.level;\r\n levelInfo.timestamp = timestamp;\r\n // console.log(\"1111111存储关卡数据:\",cc.fx.GameConfig.GM_INFO.level);\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n }\r\n this.load4 = true;\r\n }\r\n });\r\n //金币信息\r\n cc.fx.GameTool.getUserCoin((data) =>{\r\n const timestamp = Date.now();\r\n let coinInfo = cc.fx.StorageMessage.getStorage(\"coin\");\r\n if(data.result.code == 404 && data.result.message == \"未找到金币数据\"){\r\n if(coinInfo.coin)\r\n cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin;\r\n console.log(\"没有金币信息,从用户接口拿到数据\",cc.fx.GameConfig.GM_INFO.coin);\r\n this.load3 = true;\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n // console.log(\"有金币信息,从金币接口拿到数据\",data.result.data);\r\n //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储\r\n let temp = data.result.timestamp - coinInfo.timestamp;\r\n console.log(\"金币时间差:\",temp);\r\n if((data.result.timestamp - coinInfo.timestamp) < 10000){\r\n console.log(\"以前端金幣为准:\",coinInfo);\r\n if(coinInfo.coin)\r\n cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin;\r\n else{\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin;\r\n coinInfo.timestamp = timestamp;\r\n console.log(\"11111111111\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n }\r\n console.log(\"改变后金币:\",cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n });\r\n }\r\n //服务器端存储时间新于游戏端,以服务器端为主,往前端存储\r\n else{\r\n console.log(\"以服务器金幣为准:\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data; \r\n coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin;\r\n coinInfo.timestamp = timestamp;\r\n console.log(\"2222222222\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n }\r\n this.load3 = true;\r\n } \r\n });\r\n //道具信息\r\n cc.fx.GameTool.getUserProp((data) =>{\r\n const timestamp = Date.now();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n if(data.result.code == 404 && data.result.message == \"未找到道具数据\"){\r\n console.log(\"没有道具信息,从用户接口拿到数据\",propInfo);\r\n if(propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined){\r\n console.log(\"2222222道具数据异常\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmoun = 0;\r\n let propInfoNew = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmoun,\r\n \"timestamp\":timestamp\r\n }\r\n console.log(\"1111111上传道具信息:\",propInfoNew);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfoNew);\r\n }\r\n else{\r\n // cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n // cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n // cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n }\r\n\r\n \r\n // cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n // cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n // cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n // console.log(\"本地时间戳\",propInfo.timestamp,\"服务器时间戳\",data.result.timestamp);\r\n if((data.result.timestamp - propInfo.timestamp) < 10000){\r\n console.log(\"以前端道具为主:\",propInfo);\r\n if(propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined){\r\n console.log(\"111111道具数据异常\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n let propInfoNew = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\":timestamp\r\n }\r\n console.log(\"333333上传道具信息:\",propInfoNew);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfoNew);\r\n }\r\n else{\r\n console.log(\"道具数据正常\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n });\r\n }\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n let propInfoNew = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\":timestamp\r\n }\r\n console.log(\"22222222上传道具信息:\",propInfoNew,data.result);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfoNew);\r\n }\r\n } \r\n });\r\n }\r\n //旧用户,无本地缓存读取配置\r\n oldReadData(retryCount:number){\r\n console.log(\"读取旧信息\");\r\n const MAX_RETRIES = 15;\r\n const timestamp = Date.now();\r\n // 读取用户数据\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => { \r\n console.log('读取用户数据成功', res.result)\r\n if(res.result.code == 404 && res.result.message == \"未找到用户数据\"){\r\n if(res.result.openid){\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid\r\n }\r\n cc.fx.GameConfig.GM_INFO.first = true;\r\n this.load3 = true;\r\n this.load4 = true;\r\n let levelInfo = {\"level\":0,\"timestamp\":timestamp};\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n let coinInfo = {\"coin\":0,\"timestamp\":timestamp};\r\n console.log(\"33333333333\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n let propInfo = {\r\n \"freezeAmount\":0,\r\n \"hammerAmount\":0,\r\n \"magicAmount\":0,\r\n \"timestamp\":timestamp,\r\n }\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n\r\n\r\n cc.fx.GameTool.setUserInfo((data)=>{\r\n if(data.result.code == 200){\r\n console.log(\"上传用户信息成功\",data);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n }, \r\n success: res => {\r\n console.log(\"上传后,读取用户信息,为上报注册时间\")\r\n if(res.result.code == 200){\r\n const time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(time);\r\n }\r\n }\r\n })\r\n }\r\n });\r\n console.log(\"服务器也没有金币信息\",cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin(cc.fx.GameConfig.GM_INFO.coin,(data)=>{\r\n \r\n });\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n if(data.result.code == 200){\r\n console.log(\"上传道具信息成功\",data);\r\n }\r\n else{\r\n MiniGameSdk.API.showToast(\"网络异常,正在努力加载\");\r\n setTimeout(() => {\r\n this.oldReadData(0);\r\n }, 1000);\r\n }\r\n });\r\n }, 0);\r\n }\r\n else if(res.result.code == 200){\r\n if(res.result.data){\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid;\r\n cc.fx.GameConfig.GM_INFO.level = res.result.data.level;\r\n cc.fx.GameConfig.GM_INFO.coin = res.result.data.coinAmount;\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = res.result.data.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = res.result.data.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = res.result.data.magicAmount;\r\n cc.fx.GameConfig.GM_INFO.username = res.result.data.username;\r\n cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar;\r\n cc.fx.StorageMessage.setStorage(\"openid\",cc.fx.GameConfig.GM_INFO.openid);\r\n const register_time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(register_time);\r\n }\r\n setTimeout(() => {\r\n cc.fx.GameTool.getUserCoin((data) =>{\r\n if(data.result.code == 404 && data.result.message == \"未找到金币数据\"){\r\n \r\n let coinInfo = {\"coin\":0,\"timestamp\":timestamp};\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n console.log(\"没有金币信息,从用户接口拿到数据\",cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n // console.log(\"上传\",data);\r\n this.load3 = true;\r\n });\r\n }\r\n else if(data.result.code == 200){\r\n // console.log(\"有金币信息,从金币接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n let coinInfo = {\"coin\":cc.fx.GameConfig.GM_INFO.coin,\"timestamp\":timestamp};\r\n console.log(\"存储金币信息:\",cc.fx.GameConfig.GM_INFO.coin);\r\n console.log(\"4444444444\");\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n this.load3 = true;\r\n }\r\n })\r\n }, 500);\r\n\r\n cc.fx.GameTool.getUserLevel((data) =>{\r\n if(data.result.code == 404 && data.result.message == \"未找到关卡数据\"){\r\n console.log(\"没有等级信息,从用户接口拿到数据\");\r\n let levelInfo = {\"level\":0,\"timestamp\":timestamp};\r\n // console.log(\"333333存储关卡数据:\",levelInfo);\r\n cc.fx.GameConfig.GM_INFO.level = 0;\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n console.log(\"拿到的数据\",data);\r\n this.load4 = true;\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n console.log(\"有等级信息,从关卡接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = data.result.data; \r\n let levelInfo = {\"level\":cc.fx.GameConfig.GM_INFO.level,\"timestamp\":timestamp};\r\n // console.log(\"444444存储关卡信息:\",levelInfo);\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n this.load4 = true;\r\n }\r\n })\r\n setTimeout(() => {\r\n cc.fx.GameTool.getUserProp((data) =>{\r\n if(data.result.code == 404 && data.result.message == \"未找到道具数据\"){\r\n console.log(\"没有道具信息,从用户接口拿到数据\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n let propInfo = {\r\n \"freezeAmount\":0,\r\n \"hammerAmount\":0,\r\n \"magicAmount\":0,\r\n \"timestamp\":timestamp,\r\n }\r\n console.log(\"上传道具信息:\",propInfo);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n cc.fx.GameTool.setUserProp(0,0,(data)=>{\r\n });\r\n } \r\n else if(data.result.code == 200){\r\n console.log(\"有道具信息,从道具接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze || 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer || 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand || 0;\r\n let propInfo = {\r\n \"freezeAmount\":cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\":cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\":cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\":timestamp,\r\n }\r\n console.log(\"上传道具信息:\",propInfo);\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n\r\n }\r\n })\r\n }, 0);\r\n \r\n }\r\n\r\n },\r\n fail: err => {\r\n console.error('读取用户数据失败', err)\r\n if (retryCount < MAX_RETRIES) {\r\n console.error(`读取用户数据失败,第 ${retryCount + 1} 次重试,错误信息:`, err);\r\n // 延迟 2 秒后重试\r\n setTimeout(() => {\r\n this.readUserData(retryCount + 1);\r\n }, 2000);\r\n } else {\r\n console.error('读取用户数据失败,达到最大重试次数,退出游戏', err);\r\n // 退出游戏\r\n cc.game.end();\r\n }\r\n }\r\n })\r\n }\r\n\r\n setUserData(){\r\n cc.fx.GameConfig.GameTool((data)=>{\r\n console.log(\"上传\",data);\r\n })\r\n }\r\n\r\n startTimeCutDown(){\r\n this.scheduleCallback = function(){\r\n if(this.timeNumber <= 0){\r\n this.stopTimeCutDown();\r\n }\r\n else{\r\n this.timeNumber -= 1;\r\n }\r\n }.bind(this);\r\n this.schedule(this.scheduleCallback, 1);\r\n }\r\n\r\n stopTimeCutDown(){\r\n if(this.scheduleCallback){\r\n this.unschedule(this.scheduleCallback);\r\n }\r\n }\r\n\r\n update (dt) {\r\n if(this.load1 && this.load2 && this.load3 && this.load4 && this.load5 && this.timeNumber <= 0){\r\n this.load1 = this.load2 = false;\r\n MiniGameSdk.API.shushu_Init();\r\n this.startGame();\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Map.js b/temp/quick-scripts/src/assets/Script/Map.js index 0ff42c8..c2606f2 100644 --- a/temp/quick-scripts/src/assets/Script/Map.js +++ b/temp/quick-scripts/src/assets/Script/Map.js @@ -102,6 +102,8 @@ var MapConroler = /** @class */ (function (_super) { this.homeCanTouch = true; this.againCanTouch = true; this.new_mode = 0; + this.count_Time = 0; + this.add_Time = 0; this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString(); this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString(); this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString(); @@ -143,8 +145,6 @@ var MapConroler = /** @class */ (function (_super) { this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time"); this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level"); this.timeNumber = cc.fx.GameConfig.LEVEL_INFO[0].time; - this.count_Time = 0; - this.add_Time = 0; NumberToImage_1.default.getTimeMargin(this.timeNumber, 50, "time_", this.timeLabel); // var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber); // this.timeLabel.string = timeTemp.toString(); @@ -169,6 +169,8 @@ var MapConroler = /** @class */ (function (_super) { this.mapBlockArray = []; this.freezeArray = []; this.loackArray = []; + this.count_Time = 0; + this.add_Time = 0; var startX = this.mapWidth % 2 == 0 ? -(this.mapWidth - 1) * 60 : -(this.mapWidth - 1) * 60; var startY = this.mapHeight % 2 == 0 ? -(this.mapHeight - 1) * 60 : -(this.mapHeight - 1) * 60; // startX =(this.mapWidth-1)*60 + 60; @@ -1153,11 +1155,7 @@ var MapConroler = /** @class */ (function (_super) { this.stopTimeCutDown(); // console.log("成功消除一个"); cc.fx.GameTool.changeCoin(40); - var timeData = { - count_Time: this.count_Time, - add_Time: this.add_Time - }; - cc.fx.GameTool.addLevel(timeData); + cc.fx.GameTool.addLevel(this.count_Time, this.add_Time); this.check_NewMode(); setTimeout(function () { _this.node.parent.parent.getChildByName("Win").active = true; @@ -1181,7 +1179,7 @@ var MapConroler = /** @class */ (function (_super) { cc.fx.AudioManager._instance.playEffect("anniu_Big", null); if (cc.fx.GameConfig.GM_INFO.level > 156) { cc.fx.GameConfig.GM_INFO.level = 156; - MapConroler_1._instance = null; + // MapConroler._instance = null; if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; this.openNewMode(2); @@ -1210,7 +1208,7 @@ var MapConroler = /** @class */ (function (_super) { } else { // console.log("下一关"); - MapConroler_1._instance = null; + // MapConroler._instance = null; if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; this.openNewMode(2); @@ -1241,7 +1239,7 @@ var MapConroler = /** @class */ (function (_super) { if (!this.againCanTouch) return; this.againCanTouch = false; - MapConroler_1._instance = null; + // MapConroler._instance = null; cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.parent.parent.parent.getChildByName("zhuanchang").active = true; this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); @@ -1314,7 +1312,7 @@ var MapConroler = /** @class */ (function (_super) { return; } // MiniGameSdk.API.showToast("体力值减少"); - MapConroler_1._instance = null; + // MapConroler._instance = null; cc.fx.GameConfig.LEVEL_INFO_init(false, 0); if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; diff --git a/temp/quick-scripts/src/assets/Script/Map.js.map b/temp/quick-scripts/src/assets/Script/Map.js.map index 07b4659..33bb244 100644 --- a/temp/quick-scripts/src/assets/Script/Map.js.map +++ b/temp/quick-scripts/src/assets/Script/Map.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\Map.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport GameManager from \"./GameManager\";\r\nimport { LQCollide } from \"./lq_collide_system/lq_collide\";\r\nimport NumberToImage from \"./NumberToImage\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n\r\n\r\n@ccclass\r\nexport default class MapConroler extends cc.Component {\r\n static _instance: any;\r\n\r\n\r\n @property({type: [cc.Prefab], tooltip:\"方块数组\"})\r\n Block_Array : Array = [];\r\n\r\n @property({type: [cc.Prefab], tooltip:\"方块道具数组\"})\r\n Block_Prop : Array = [];\r\n\r\n @property(cc.Prefab)\r\n MapBlockPrefab: cc.Prefab = null;\r\n\r\n @property({type: [cc.SpriteAtlas], tooltip:\"方块颜色\"})\r\n Block_Color : Array = [];\r\n\r\n\r\n @property({type: [cc.Prefab], tooltip:\"墙壁数组\"})\r\n Wall_Prefab : Array = [];\r\n\r\n \r\n\r\n @property(cc.Prefab)\r\n wallTurnPrefab: cc.Prefab = null;\r\n\r\n @property(cc.Button)\r\n timeBtn: cc.Button = null;\r\n @property(cc.Button)\r\n destroyBtn: cc.Button = null;\r\n @property(cc.Button)\r\n magicBtn: cc.Button = null;\r\n\r\n @property(cc.Node)\r\n mask: cc.Node = null;\r\n\r\n @property(cc.Label)\r\n iceLabel: cc.Label = null;\r\n @property(cc.Label)\r\n hammerLabel: cc.Label = null;\r\n @property(cc.Label)\r\n magicLabel: cc.Label = null;\r\n\r\n @property(cc.Node)\r\n magicMask: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n hammerMask: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n freezeMask: cc.Node = null;\r\n\r\n \r\n @property(cc.Node)\r\n coinPop: cc.Node = null;\r\n\r\n timeLabel: cc.Node = null;\r\n levelLabel: cc.Node = null;\r\n\r\n new_mode: number = 0;\r\n mapWidth: number = 0;\r\n mapHeight: number = 0;\r\n wallNum: number = 0;\r\n blockNum: number = 0;\r\n mapBlocksWall: any; //地图的所有底块\r\n mapInfo: any; //地图除了底块的其他信息\r\n blocks: any; //方块数组\r\n wallInfo: any; //墙壁数组\r\n wallArray:any; //\r\n openWall: any; //开关墙数组\r\n freezeWall: any; //冻结墙数组\r\n riseFallBlcok:any; //升降地块数组\r\n scheduleCallback: any;//倒计时用\r\n homeCanTouch:boolean = true;//按钮可用状态\r\n againCanTouch:boolean = true;//重玩按钮可以用状态\r\n gameOver: boolean = false;//游戏结束状态\r\n gameWin: boolean = false;//游戏胜利状态\r\n gameStart: boolean = false;//游戏开始状态\r\n timeNumber: number = 0; //游戏时间 用于倒计时\r\n count_Time: number = 0; //用于统计总游戏时长\r\n add_Time: number = 0; //复活时间\r\n mapBlockArray: any; //地图的所有格子状态存储\r\n pause:boolean = false;//暂停状态\r\n hammer:boolean = false;//锤子状态\r\n freezeArray: any; //冻结\r\n loackArray: any; //上锁\r\n particleEffects: cc.ParticleAsset[];\r\n // leftDoors: []; //左门\r\n rightDoors: any; //右门\r\n topDoors: any; //上门\r\n bottomDoors: any; //下门\r\n leftDoors: any;\r\n\r\n\r\n // mapInfo: number[][] = [];\r\n\r\n onLoad () {\r\n\r\n cc.fx.GameConfig.GM_INFO.review = 0;\r\n cc.fx.GameConfig.GM_INFO.gameState = true;\r\n this.mask.opacity = 0;\r\n this.node.getChildByName(\"Adhesive\").zIndex = 500;\r\n cc.game.setFrameRate(63); \r\n cc.fx.AudioManager._instance.playEffect(\"zhuan2\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"down\",false);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n if (entry.animation.name === \"down\") {\r\n // 动画播放结束后执行的逻辑\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n });\r\n this.blocks = [];\r\n this.leftDoors = []; //左门\r\n this.rightDoors = []; //右门\r\n this.topDoors = []; //上门\r\n this.bottomDoors = []; //下门\r\n this.gameWin = false;\r\n this.gameOver = false;\r\n this.gameStart = false; \r\n this.homeCanTouch = true;\r\n this.againCanTouch = true;\r\n this.new_mode = 0;\r\n \r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n \r\n // cc.game.addPersistRootNode(this.node);\r\n MapConroler._instance = this;\r\n } \r\n\r\n start () {\r\n setTimeout(() => {\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 HomeScene 失败:', err);\r\n return;\r\n }\r\n });\r\n }, 1000);\r\n // console.log(\"进入GameScene\");\r\n this.Block_Array = GameManager._instance.Block_Array;\r\n this.Wall_Prefab = GameManager._instance.Wall_Prefab;\r\n this.Block_Color = GameManager._instance.Block_Color;\r\n // this.particleEffects = GameManager._instance.particleEffects;\r\n \r\n this.initMap();\r\n \r\n }\r\n\r\n startUpdate(){\r\n if(this.gameStart == false){\r\n this.gameStart = true;\r\n //发送数数事件——进入关卡\r\n console.log(\"准备进入下一关,发送下一关进入\");\r\n cc.fx.GameTool.shushu_Track(\"enter_stage\");\r\n this.startTimeCutDown();\r\n for(let i =0; i {\r\n const startTime = performance.now();\r\n for (let i = 0; i < BLOCKS_PER_FRAME && index < blockArray.length; i++) {\r\n let blockInfo = blockArray[index];\r\n // 缓存 Block_Array 访问\r\n const blockPrefab = this.Block_Array[blockInfo.block]; \r\n let block = cc.instantiate(blockPrefab);\r\n block.parent = this.node;\r\n block.setPosition(cc.v2(blockInfo.position.x, blockInfo.position.y));\r\n if (blockInfo.block != 23) {\r\n this.blockNum += 1;\r\n this.blocks.push(block);\r\n if (blockInfo.type == 1) {\r\n let info = {\r\n id: blockInfo.id + 1,\r\n block: blockInfo.block,\r\n color: blockInfo.stacking,\r\n type: 10,\r\n position: blockInfo.position,\r\n stacking: blockInfo.color\r\n };\r\n // 缓存 Block_Array 访问\r\n const blockUpPrefab = this.Block_Array[info.block]; \r\n let blockUp = cc.instantiate(blockUpPrefab);\r\n blockUp.parent = this.node;\r\n blockUp.setPosition(cc.v2(info.position.x, info.position.y));\r\n\r\n this.blocks.push(blockUp);\r\n block.getComponent(\"Block\").init(blockInfo, null, null, blockUp);\r\n blockUp.getComponent(\"Block\").init(info, null, null, block);\r\n \r\n this.blockNum += 1;\r\n } else if (blockInfo.type == 9) {\r\n if(blockInfo.adhesiveTime < 2){\r\n index++;\r\n continue;\r\n }\r\n index++;\r\n let info = blockArray[index];\r\n // 缓存 Block_Array 访问\r\n const blockUpPrefab = this.Block_Array[info.block]; \r\n let blockUp = cc.instantiate(blockUpPrefab);\r\n blockUp.parent = this.node;\r\n blockUp.setPosition(cc.v2(info.position.x, info.position.y));\r\n\r\n this.blocks.push(blockUp);\r\n block.getComponent(\"Block\").init(blockInfo, null, null, blockUp,false);\r\n setTimeout(() => {\r\n blockUp.getComponent(\"Block\").init(info, null, null, block,true);\r\n }, 100);\r\n this.blockNum += 1;\r\n } else {\r\n block.getComponent(\"Block\").init(blockInfo);\r\n } \r\n }\r\n else{\r\n block.getComponent(\"Barrier\").init(blockInfo);\r\n }\r\n index++;\r\n }\r\n const endTime = performance.now();\r\n const frameTime = endTime - startTime;\r\n // 如果当前帧执行时间过长,减少每帧创建数量\r\n if (frameTime > 16) { \r\n BLOCKS_PER_FRAME = Math.max(BLOCKS_PER_FRAME - 1, MIN_PER_FRAME);\r\n } else {\r\n BLOCKS_PER_FRAME = Math.min(BLOCKS_PER_FRAME + 1, MAX_PER_FRAME);\r\n }\r\n\r\n // 如果还有方块未创建,下一帧继续创建\r\n if (index < blockArray.length) {\r\n // 使用 scheduleOnce 在下一帧执行 createBlocks\r\n this.scheduleOnce(() => {\r\n createBlocks();\r\n }, 0);\r\n } else {\r\n\r\n }\r\n };\r\n\r\n // 开始分帧创建方块\r\n createBlocks();\r\n}\r\n//给创建方块排序,用来降低drawcall 合批\r\nsortBlock(allBlocks: { color: number; block: number; type: number }[]) {\r\n return allBlocks.sort((a, b) => {\r\n // 先处理 type 为 1 的情况,将其放到最后\r\n if (a.type === 1 && b.type !== 1) {\r\n return 1;\r\n }\r\n if (a.type !== 1 && b.type === 1) {\r\n return -1;\r\n }\r\n\r\n // 对 type 不为 0 的元素按 type 排序\r\n if (a.type !== 0 && b.type !== 0) {\r\n return a.type - b.type;\r\n }\r\n if (a.type !== 0 && b.type === 0) {\r\n return 1;\r\n }\r\n if (a.type === 0 && b.type !== 0) {\r\n return -1;\r\n }\r\n\r\n // 再处理 block 为 23 的情况,将其放到最前面\r\n if (a.block === 23 && b.block !== 23) {\r\n return -1;\r\n }\r\n if (a.block !== 23 && b.block === 23) {\r\n return 1;\r\n }\r\n\r\n // 其余按 color 升序排列\r\n return a.color - b.color;\r\n });\r\n}\r\n\r\n\r\n//创建墙壁\r\n\r\nwallInit() {\r\n let index = 0; // 当前要创建的墙壁索引\r\n let WALLS_PER_FRAME = 1; // 初始每帧创建的墙壁数量\r\n const MAX_PER_FRAME = 10; // 每帧最大创建数量\r\n const MIN_PER_FRAME = 1; // 每帧最小创建数量\r\n\r\n const createWalls = () => {\r\n const startTime = performance.now();\r\n for (let i = 0; i < WALLS_PER_FRAME && index < this.wallInfo.length; i++) {\r\n let block = this.wallInfo[index];\r\n let dir = this.getWllDiraction(\"wall\", cc.v2(block.getComponent(\"MapBlock\").posX, block.getComponent(\"MapBlock\").posY));\r\n if (dir != null) {\r\n this.createWall(dir, block);\r\n }\r\n index++;\r\n }\r\n const endTime = performance.now();\r\n const frameTime = endTime - startTime;\r\n // 如果当前帧执行时间过长,减少每帧创建数量\r\n if (frameTime > 16) { \r\n WALLS_PER_FRAME = Math.max(WALLS_PER_FRAME - 1, MIN_PER_FRAME);\r\n } else {\r\n WALLS_PER_FRAME = Math.min(WALLS_PER_FRAME + 1, MAX_PER_FRAME);\r\n }\r\n\r\n // 如果还有墙壁未创建,下一帧继续创建\r\n if (index < this.wallInfo.length) {\r\n this.scheduleOnce(() => {\r\n createWalls();\r\n }, 0);\r\n } else {\r\n // 所有墙壁创建完成后,创建拐角节点\r\n this.createCornerNodes();\r\n }\r\n };\r\n\r\n // 开始分帧创建墙壁\r\n createWalls();\r\n}\r\n\r\n// ... 已有代码 ...\r\n\r\n getWllDiraction(type,pointA){\r\n let dir = [];\r\n let pointB = cc.v2(pointA.x + 1,pointA.y);\r\n let pointC = cc.v2(pointA.x - 1,pointA.y);\r\n let pointD = cc.v2(pointA.x,pointA.y + 1);\r\n let pointE = cc.v2(pointA.x,pointA.y - 1);\r\n let opacity = 0;\r\n if(type == \"wall\") opacity = 255;\r\n if(type == \"turn\") opacity = 250;\r\n \r\n if(pointB.x < this.mapWidth){\r\n if(this.mapBlocksWall[pointB.x][pointB.y].opacity == opacity ){\r\n if(type == \"turn\" && this.mapBlocksWall[pointB.x][pointB.y].getComponent(\"MapBlock\").direction == \"right\"){\r\n \r\n }\r\n else dir.push(\"right\");\r\n }\r\n }\r\n if(pointC.x >= 0){\r\n if(this.mapBlocksWall[pointC.x][pointC.y].opacity == opacity){\r\n if(type == \"turn\" && this.mapBlocksWall[pointC.x][pointC.y].getComponent(\"MapBlock\").direction == \"left\"){\r\n \r\n }\r\n else dir.push(\"left\");\r\n }\r\n }\r\n if(pointD.y < this.mapHeight){\r\n if(this.mapBlocksWall[pointD.x][pointD.y].opacity == opacity){\r\n if(type == \"turn\" && this.mapBlocksWall[pointD.x][pointD.y].getComponent(\"MapBlock\").direction == \"up\"){\r\n \r\n }\r\n else dir.push(\"up\");\r\n }\r\n }\r\n if(pointE.y >= 0){\r\n if(this.mapBlocksWall[pointE.x][pointE.y].opacity == opacity){\r\n if(type == \"turn\" && this.mapBlocksWall[pointE.x][pointE.y].getComponent(\"MapBlock\").direction == \"down\"){\r\n \r\n }\r\n else dir.push(\"down\");\r\n }\r\n }\r\n if(dir.length > 2){\r\n\r\n return null;\r\n }\r\n if(dir.length == 1){\r\n if(type == \"wall\")\r\n return dir[0];\r\n else \r\n return null;\r\n }\r\n else if(dir.length == 2){\r\n return dir[0] + dir[1];\r\n }\r\n }\r\n\r\n createCornerNodes() {\r\n // 定义拐角位置\r\n for(let i=0; i 3) maxX = maxX-1;\r\n }\r\n else if(block.name == \"block11\"){\r\n minX = width-2;\r\n if(this.mapWidth > 3) maxX = maxX-2;\r\n }\r\n\r\n else if(block.name == \"block14\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n else if(block.name == \"block16\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n else if(block.name == \"block18\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n else if(block.name == \"block21\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n \r\n return {minX:minX,maxX:maxX,minY:minY,maxY:maxY};\r\n }\r\n\r\n //检测落点是否可以消除\r\n checkPass(node,blocks) {\r\n let minAndMax = this.getMinAndMax(node);\r\n let minX = minAndMax.minX;\r\n let maxX = minAndMax.maxX;\r\n let minY = minAndMax.minY;\r\n let maxY = minAndMax.maxY;\r\n\r\n let nodePos = cc.v2(node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY);\r\n\r\n // 获取地图边界信息\r\n\r\n let allBlocks = [];\r\n for(let i=0;i wallPos.x){\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n leftWalls.push(wallLeft);\r\n }\r\n }\r\n }\r\n // console.log(\"得到左边墙壁数组\",date6);\r\n if(leftWalls.length != 0){\r\n let result = this.detectingBlock(\"left\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n if(result == true) result = this.passWall(result,leftWalls,node);\r\n // console.log(\"碰到左边缘结果:\",jg);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 2;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n }\r\n if (nodePos.x >= maxX || direction[1] == true) {\r\n // const date3 = new Date().getTime();\r\n // console.log(\"碰到右边缘\",date3);\r\n pz += 1;\r\n let rightWalls = [];\r\n for(let i = 0; i < this.rightDoors.length; i++){\r\n let wallRight = this.rightDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallRight.getComponent(\"Wall\").posX,wallRight.getComponent(\"Wall\").posY);\r\n for(let i = 0; i < allBlocks.length; i++){\r\n if(allBlocks[i].y == wallPos.y && allBlocks[i].x < wallPos.x){\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n rightWalls.push(wallRight);\r\n }\r\n }\r\n }\r\n\r\n if(rightWalls.length != 0){\r\n let result = this.detectingBlock(\"right\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n \r\n if(result == true) result = this.passWall(result,rightWalls,node);\r\n // console.log(\"碰到右边缘结果:\",jg);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 3;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n\r\n \r\n }\r\n if (nodePos.y <= minY || direction[2] == true) {\r\n pz += 1;\r\n // const date4 = new Date().getTime();\r\n // console.log(\"碰到下边缘\",date4);\r\n let downWalls = [];\r\n for(let i = 0; i < this.topDoors.length; i++){\r\n let wallBottom = this.topDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallBottom.getComponent(\"Wall\").posX,wallBottom.getComponent(\"Wall\").posY);\r\n for(let i = 0; i < allBlocks.length; i++){\r\n let luocha = Math.abs(allBlocks[i].y - wallPos.y)\r\n if(allBlocks[i].x == wallPos.x && allBlocks[i].y > wallPos.y && luocha <= node.getComponent(\"Block\").shu){\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n downWalls.push(wallBottom);\r\n }\r\n }\r\n }\r\n\r\n if(downWalls.length != 0){\r\n let result = this.detectingBlock(\"down\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n if(result == true) result = this.passWall(result,downWalls,node);\r\n // console.log(\"碰到下边缘结果:\",jg);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 1;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n \r\n\r\n }\r\n if (nodePos.y >= maxY || direction[3] == true) {\r\n pz += 1;\r\n // const date5 = new Date().getTime();\r\n // console.log(\"碰到上边缘\",date5);\r\n let upWalls = [];\r\n for(let i = 0; i < this.bottomDoors.length; i++){\r\n let wallTop = this.bottomDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallTop.getComponent(\"Wall\").posX,wallTop.getComponent(\"Wall\").posY);\r\n for(let i = 0; i < allBlocks.length; i++){\r\n let luocha = Math.abs(allBlocks[i].y - wallPos.y)\r\n if(allBlocks[i].x == wallPos.x && allBlocks[i].y < wallPos.y && luocha <= node.getComponent(\"Block\").shu){\r\n upWalls.push(wallTop);\r\n }\r\n }\r\n }\r\n\r\n if(upWalls.length != 0){\r\n let result = this.detectingBlock(\"up\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n if(result == true) result = this.passWall(result,upWalls,node);\r\n // console.log(\"碰到上边缘结果:\",result);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 0;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n\r\n }\r\n if(pz == 0 )jg = -1;\r\n // const date10 = new Date().getTime();\r\n // console.log(\"所有检测结束耗时\",date10,jg);\r\n return jg;\r\n }\r\n\r\n changeState(){\r\n if(this.openWall.length != 0){\r\n for(let i=0; i 0){\r\n for(let i=0; i= 0){\r\n if(this.mapBlocksWall[x-2][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x-2][y].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x-2][y].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"左侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x-2][y].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n else if(direction == \"right\"){\r\n if(this.mapBlocksWall[x+1][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x+1][y].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x+1][y].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"右侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x+1][y].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n if((x + 2) <= this.mapBlocksWall.length-1){\r\n if(this.mapBlocksWall[x+2][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x+2][y].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x+2][y].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"右侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x+2][y].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n if(direction == \"up\"){\r\n if(this.mapBlocksWall[x][y+1].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y+1].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y+1].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"上侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y+1].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n if((y + 2) <= this.mapBlocksWall[x].length-1){\r\n if(this.mapBlocksWall[x][y+2].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y+2].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y+2].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"上侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y+2].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n if(direction == \"down\"){\r\n if(this.mapBlocksWall[x][y-1].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y-1].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y-1].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"下侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y-1].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n if((y - 2) >= 0){\r\n if(this.mapBlocksWall[x][y-2].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y-2].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y-2].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"下侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y-2].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n // console.log(\"检测物体各方向是否有别的物块\",jg);\r\n return jg;\r\n }\r\n\r\n checkDiraction(allBlocks,maxX,maxY){\r\n let jg = [false,false,false,false];\r\n for(let i=0; i 0 && jg[0] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x-1][allBlocks[i].y].opacity == 250){\r\n jg[0] = true;\r\n } \r\n }\r\n if( jg[1] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x+1][allBlocks[i].y].opacity == 250){\r\n jg[1] = true;\r\n } \r\n }\r\n if(allBlocks[i].y > 0 && jg[2] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y-1].opacity == 250){\r\n jg[2] = true;\r\n } \r\n }\r\n if(jg[3] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y+1].opacity == 250){\r\n jg[3] = true;\r\n } \r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n checkLeft(allBlocks){\r\n let jg = false;\r\n return jg;\r\n }\r\n\r\n checkRight(allBlocks,max){\r\n let jg = false;\r\n for(let i=0; i {\r\n if(child.getComponent(\"Block\")){\r\n if(child.getComponent(\"Block\").type == 4)\r\n return child\r\n }\r\n });\r\n if(freezeBlock.length > 0){\r\n for(let i=0; i {\r\n if(child.getComponent(\"Block\")){\r\n if(child.getComponent(\"Block\").type == 3)\r\n return child\r\n }\r\n });\r\n if(lockBlock.length > 0)\r\n for(let i=0; i {\r\n this.node.parent.parent.getChildByName(\"Win\").active = true;\r\n }, 660);\r\n // console.log(\"游戏成功\");\r\n }\r\n else{\r\n if(this.gameOver == true){\r\n this.failLevel(null);\r\n }\r\n }\r\n }\r\n\r\n check_NewMode(){\r\n for(let i=0; i 156){\r\n cc.fx.GameConfig.GM_INFO.level = 156;\r\n MapConroler._instance = null;\r\n \r\n if(this.new_mode == 3){\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(2);\r\n cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n return;\r\n }\r\n // cc.fx.GameConfig.LEVEL_INFO_init(true);\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n });\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n } \r\n else{\r\n \r\n // console.log(\"下一关\");\r\n MapConroler._instance = null;\r\n \r\n if(this.new_mode == 3){\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(2);\r\n cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n return;\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.LEVEL_INFO_init(true,0);\r\n }, 1200);\r\n \r\n // this.node.parent.parent.parent.destroy();\r\n \r\n }\r\n }\r\n\r\n againLevel(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n if(cc.fx.GameConfig.GM_INFO.hp < 1){\r\n MiniGameSdk.API.showToast(\"体力值不足\");\r\n return;\r\n } \r\n if(!this.againCanTouch) return;\r\n \r\n this.againCanTouch = false;\r\n \r\n MapConroler._instance = null;\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.LEVEL_INFO_init(true,0);\r\n }, 1200);\r\n // this.node.parent.parent.parent.destroy();\r\n }\r\n\r\n reviewLevel(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n let coin = 900;\r\n if(cc.fx.GameConfig.GM_INFO.review == 1) coin = 1900;\r\n else if(cc.fx.GameConfig.GM_INFO.review == 2) coin = 2500;\r\n // console.log(\"自身金币:\",cc.fx.GameConfig.GM_INFO.coin,\"消耗金币:\",coin);\r\n if(cc.fx.GameConfig.GM_INFO.coin < Math.abs(coin)){\r\n MiniGameSdk.API.showToast(\"金币不足,无法加时间\");\r\n return;\r\n }\r\n else{\r\n this.runRewive(-coin);\r\n }\r\n }\r\n\r\n runRewive(data){\r\n console.log(\"复活回调函数内\",data);\r\n cc.fx.GameTool.changeCoin(data);\r\n MiniGameSdk.API.showToast(\"继续游戏\");\r\n \r\n if(cc.fx.GameConfig.GM_INFO.review < 2)\r\n cc.fx.GameConfig.GM_INFO.review += 1;\r\n \r\n this.gameOver = false;\r\n this.timeNumber = 21;\r\n this.add_Time += 20;\r\n this.pause = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").active = false;\r\n this.startTimeCutDown();\r\n }\r\n\r\n\r\n \r\n homeBtn(){\r\n // alert(\"游戏失败\");\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n if(!this.homeCanTouch) return;\r\n this.homeCanTouch = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Lock\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Health\").active = true;\r\n let data = {\r\n time:this.count_Time, \r\n add_Time:this.add_Time,\r\n result:\"fail\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\",data);\r\n if(this.gameStart == true){\r\n cc.fx.GameTool.setUserHealth(-1,(data)=>{\r\n })\r\n }\r\n // this.node.parent.parent.parent.destroy();\r\n }\r\n\r\n returnHome(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n if(MapConroler._instance = null){\r\n return;\r\n }\r\n // MiniGameSdk.API.showToast(\"体力值减少\");\r\n MapConroler._instance = null;\r\n cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n if(this.new_mode == 3){\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(1);\r\n return;\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n \r\n });\r\n\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n }\r\n\r\n //判断游戏失败\r\n failLevel(type){\r\n this.stopTimeCutDown();\r\n if(this.gameOver== true ||this.gameWin == true){\r\n return;\r\n }\r\n\r\n let time = 0;\r\n this.gameOver = true;\r\n if(type == \"boom\"){\r\n time = 2000;\r\n }\r\n setTimeout(() => {\r\n this.node.parent.parent.getChildByName(\"Lose\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = false;\r\n let buyBtn = this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").getChildByName(\"buyBtn\");\r\n buyBtn.getChildByName(\"coin1\").active = buyBtn.getChildByName(\"coin2\").active = buyBtn.getChildByName(\"coin3\").active =false; \r\n if(cc.fx.GameConfig.GM_INFO.review == 0)buyBtn.getChildByName(\"coin1\").active = true;\r\n else if(cc.fx.GameConfig.GM_INFO.review == 1) buyBtn.getChildByName(\"coin2\").active = true;\r\n else if(cc.fx.GameConfig.GM_INFO.review == 2) buyBtn.getChildByName(\"coin3\").active = true;\r\n if(type){\r\n if(type == \"boom\"){\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = true;\r\n }\r\n }\r\n }, time);\r\n \r\n // console.log(\"游戏失败\");\r\n }\r\n\r\n //打开新模式弹窗\r\n openNewMode(type){\r\n let index = 0;\r\n const BLOCKS_PER_FRAME = 5; // 每帧销毁的方块数量\r\n const destroyBlocks = () => {\r\n const endIndex = Math.min(index + BLOCKS_PER_FRAME, this.blocks.length);\r\n for (; index < endIndex; index++) {\r\n if (this.blocks[index]) {\r\n this.blocks[index].destroy();\r\n }\r\n }\r\n // 如果还有方块未销毁,下一帧继续\r\n if (index < this.blocks.length) {\r\n this.scheduleOnce(destroyBlocks, 0);\r\n } else {\r\n }\r\n };\r\n // 开始分帧销毁方块\r\n destroyBlocks();\r\n this.node.parent.parent.getChildByName(\"NewMode\").active = true;\r\n this.node.parent.parent.getChildByName(\"NewMode\").getComponent(\"NewMode\").setMode(type);\r\n }\r\n\r\n \r\n downDoor(color,type){\r\n for(let i=0; i{\r\n })\r\n let data = {\r\n id:\"2001\",\r\n num:-1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\",data);\r\n }\r\n else MiniGameSdk.API.showToast(\"道具使用中,请稍后再试\");\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n //解开时间冻结\r\n openIce(){\r\n if(this.node.parent.getChildByName(\"Ice\").active){\r\n this.freezeMask.active = false;\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n this.node.parent.getChildByName(\"Ice\").active = false;\r\n this.node.parent.getChildByName(\"Top\").getChildByName(\"Ice\").active = false;\r\n this.pause = false;\r\n // this.startTimeCutDown();\r\n }\r\n }\r\n \r\n handleBuySuccess(data){\r\n this.pause = false;\r\n const timestamp = Date.now();\r\n // console.log(\"回调函数内:\",this.pause);\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n let hammerBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n let magicBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if(data == \"freezeAmount\") freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if(data == \"hammerAmount\") hammerBtn.getComponent(\"btnControl\").setTouch(true); \r\n else if(data == \"magicAmount\") magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n if(data == \"freezeAmount\"){\r\n cc.fx.GameConfig.GM_INFO.freezeAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.freezeAmount = cc.fx.GameConfig.GM_INFO.freezeAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n MiniGameSdk.API.showToast(\"购买冻结时间道具成功\");\r\n }, 200);\r\n\r\n \r\n }\r\n else if(data == \"magicAmount\"){\r\n cc.fx.GameConfig.GM_INFO.magicAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n MiniGameSdk.API.showToast(\"购买锤子道具成功\");\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n }, 200);\r\n \r\n }\r\n else if(data == \"hammerAmount\"){\r\n cc.fx.GameConfig.GM_INFO.hammerAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n MiniGameSdk.API.showToast(\"购买魔法棒道具成功\");\r\n }, 200);\r\n\r\n }\r\n \r\n \r\n\r\n }\r\n\r\n //使用锤子道具\r\n useHammer(){\r\n if(this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true \r\n || this.magicMask.active== true || this.timeNumber <= 1){\r\n return;\r\n }\r\n let hammerBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n if(hammerBtn.getComponent(\"btnControl\")._touch){\r\n hammerBtn.getComponent(\"btnControl\").setTouch(false);\r\n if(cc.fx.GameConfig.GM_INFO.hammerAmount < 1){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n hammerBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"hammer\");\r\n }\r\n else{\r\n if(!this.hammer){\r\n const timestamp = Date.now();\r\n this.hammerMask.active = true;\r\n\r\n this.hammer = true;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount -= 1;\r\n if(cc.fx.GameConfig.GM_INFO.hammerAmount < 0) \r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n console.log(\"锤子道具信息:\",propInfo);\r\n propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n cc.fx.GameTool.setUserProp(2002,cc.fx.GameConfig.GM_INFO.hammerAmount,(data)=>{\r\n })\r\n let data = {\r\n id:\"2002\",\r\n num:-1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\",data);\r\n }\r\n else MiniGameSdk.API.showToast(\"道具使用中,请稍后再试\");\r\n }\r\n\r\n }\r\n\r\n }\r\n \r\n buyMagic(){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2003,this.handleBuySuccess.bind(this,\"magicAmount\"));\r\n }\r\n\r\n buyHammer(){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2002, this.handleBuySuccess.bind(this,\"hammerAmount\"));\r\n }\r\n\r\n buyFreeze(){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2001,this.handleBuySuccess.bind(this,\"freezeAmount\"));\r\n }\r\n\r\n //使用魔法棒随机消除两个方块\r\n useMagic(){\r\n if(this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true \r\n || this.magicMask.active== true || this.timeNumber <= 1){\r\n return;\r\n }\r\n let magicBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if(magicBtn.getComponent(\"btnControl\")._touch){\r\n magicBtn.getComponent(\"btnControl\").setTouch(false);\r\n if(cc.fx.GameConfig.GM_INFO.magicAmount < 1){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"magic\");\r\n // MiniGameSdk.API.showToast(\"魔法棒数量不足,自动购买魔法棒\");\r\n }\r\n else{\r\n const timestamp = Date.now();\r\n this.magicMask.active = true;\r\n setTimeout(() => {\r\n this.magicMask.active = false;\r\n magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n }, 1000);\r\n \r\n cc.fx.GameConfig.GM_INFO.magicAmount -= 1;\r\n if(cc.fx.GameConfig.GM_INFO.magicAmount < 0) \r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n cc.fx.GameTool.setUserProp(2003,cc.fx.GameConfig.GM_INFO.magicAmount,(data)=>{\r\n })\r\n let data = {\r\n id:\"2003\",\r\n num:-1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\",data);\r\n let nomalArray = [];\r\n // this.magicBtn.node.active = false;\r\n for(let i =0; i 1){\r\n nomalArray = cc.fx.GameTool.shuffleArray(nomalArray);\r\n nomalArray[0].getComponent(\"Block\").eliminate();\r\n let time = 0;\r\n if(nomalArray[0].getComponent(\"Block\").type == 1 || nomalArray[0].getComponent(\"Block\").type == 9){\r\n time = 200;\r\n }\r\n if(time > 0){\r\n setTimeout(() => {\r\n nomalArray[1].getComponent(\"Block\").eliminate();\r\n }, time);\r\n return;\r\n }\r\n else{\r\n nomalArray[1].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n }\r\n else if(nomalArray.length == 1){\r\n nomalArray[0].getComponent(\"Block\").eliminate();\r\n let time = 0;\r\n if(nomalArray[0].getComponent(\"Block\").type == 1 || nomalArray[0].getComponent(\"Block\").type == 9){\r\n time = 200;\r\n }\r\n setTimeout(() => {\r\n if(this.freezeArray.length == 0 && this.loackArray.length == 0){\r\n // console.log(\"只剩下一个块道具使用完毕\");\r\n }\r\n else{\r\n if(this.loackArray.length != 0){\r\n // console.log(\"消除一个普通块后,消除一个带锁块\");\r\n this.loackArray[0].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n else if(this.freezeArray.length!= 0){\r\n // console.log(\"消除一个普通块后,消除一个冻结块\");\r\n this.freezeArray[0].getComponent(\"Block\").eliminate();\r\n return; \r\n }\r\n }\r\n }, 200+time);\r\n }\r\n else{\r\n let count = 2;\r\n if(this.loackArray.length!= 0){\r\n for(let i=0; i {\r\n if(count != 0){\r\n for(let i=0; i 13){\r\n this.node.scale = 1;\r\n }\r\n\r\n // this.node.scale = 1;\r\n cc.fx.GameConfig.GM_INFO.scale = this.node.scale;\r\n // this.node.scale = 0.5;\r\n // console.log(this.node.scale);\r\n // this.node.scale = 1;\r\n }\r\n\r\n //创建门的粒子特效\r\n createParticle(block,jg){\r\n let particle = cc.instantiate(MapConroler._instance.Block_Prop[9]);\r\n particle.parent = this.node;\r\n particle.zIndex = 1000;\r\n let width = Math.floor(block.width / 120);\r\n let height = Math.floor(block.height / 120);\r\n let name = \"\";\r\n\r\n if(jg == 0 || jg == 1){\r\n let y = block.y + block.height;\r\n let x = block.x - block.width/2;\r\n name = \"top_\" + width + \"_\" + height;\r\n if(jg == 1){\r\n name = \"bot_\" + width + \"_\" + height;\r\n y = block.y;\r\n }\r\n if(block.anchorX == 0.5){\r\n x = block.x;\r\n }\r\n else if(block.anchorX == 0.33){\r\n x = block.x + block.width*(0.5-0.33);\r\n }\r\n else if(block.anchorX == 0.66){\r\n x = block.x + block.width*(0.5-0.66); \r\n }\r\n particle.setPosition(x, y); \r\n } \r\n else if(jg == 2 || jg == 3){\r\n name = \"left_\" + height + \"_\" + width;\r\n let x = block.x - block.width;\r\n let y = block.y + block.height/2;\r\n if(block.anchorX == 0.5){\r\n x = block.x - block.width/2;\r\n }\r\n else if(block.anchorX == 0.33){\r\n x = block.x - block.width*0.33;\r\n }\r\n else if(block.anchorX == 0.66){\r\n x = block.x + block.width*0.66; \r\n }\r\n if(jg == 3){\r\n name = \"right_\" + height + \"_\" + width;\r\n x = block.x;\r\n if(block.anchorX == 0.5){\r\n x = block.x + block.width/2;\r\n }\r\n else if(block.anchorX == 0.33){\r\n x = block.x + block.width*0.66;\r\n }\r\n else if(block.anchorX == 0.66){\r\n x = block.x + block.width*0.33; \r\n }\r\n }\r\n\r\n particle.setPosition(x, y); \r\n } \r\n\r\n let particleNode = particle.getChildByName(name);\r\n let color = block.getComponent(\"Block\").color - 1;\r\n\r\n particleNode.getComponent(cc.ParticleSystem).spriteFrame = particle.getComponent(\"Reduce\").Block_Color[color];\r\n particleNode.active = true;\r\n setTimeout(() => {\r\n cc.tween(particle)\r\n .to(2, {opacity: 0})\r\n .call(() => {\r\n particle.destroy(); \r\n })\r\n .start();\r\n }, 1200);\r\n }\r\n\r\n removeOneBlock() {\r\n // 移除所有方块\r\n for(let i =0 ; i = [];\r\n\r\n @property({type: [cc.Prefab], tooltip:\"方块道具数组\"})\r\n Block_Prop : Array = [];\r\n\r\n @property(cc.Prefab)\r\n MapBlockPrefab: cc.Prefab = null;\r\n\r\n @property({type: [cc.SpriteAtlas], tooltip:\"方块颜色\"})\r\n Block_Color : Array = [];\r\n\r\n\r\n @property({type: [cc.Prefab], tooltip:\"墙壁数组\"})\r\n Wall_Prefab : Array = [];\r\n\r\n \r\n\r\n @property(cc.Prefab)\r\n wallTurnPrefab: cc.Prefab = null;\r\n\r\n @property(cc.Button)\r\n timeBtn: cc.Button = null;\r\n @property(cc.Button)\r\n destroyBtn: cc.Button = null;\r\n @property(cc.Button)\r\n magicBtn: cc.Button = null;\r\n\r\n @property(cc.Node)\r\n mask: cc.Node = null;\r\n\r\n @property(cc.Label)\r\n iceLabel: cc.Label = null;\r\n @property(cc.Label)\r\n hammerLabel: cc.Label = null;\r\n @property(cc.Label)\r\n magicLabel: cc.Label = null;\r\n\r\n @property(cc.Node)\r\n magicMask: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n hammerMask: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n freezeMask: cc.Node = null;\r\n\r\n \r\n @property(cc.Node)\r\n coinPop: cc.Node = null;\r\n\r\n timeLabel: cc.Node = null;\r\n levelLabel: cc.Node = null;\r\n\r\n new_mode: number = 0;\r\n mapWidth: number = 0;\r\n mapHeight: number = 0;\r\n wallNum: number = 0;\r\n blockNum: number = 0;\r\n mapBlocksWall: any; //地图的所有底块\r\n mapInfo: any; //地图除了底块的其他信息\r\n blocks: any; //方块数组\r\n wallInfo: any; //墙壁数组\r\n wallArray:any; //\r\n openWall: any; //开关墙数组\r\n freezeWall: any; //冻结墙数组\r\n riseFallBlcok:any; //升降地块数组\r\n scheduleCallback: any;//倒计时用\r\n homeCanTouch:boolean = true;//按钮可用状态\r\n againCanTouch:boolean = true;//重玩按钮可以用状态\r\n gameOver: boolean = false;//游戏结束状态\r\n gameWin: boolean = false;//游戏胜利状态\r\n gameStart: boolean = false;//游戏开始状态\r\n add_Time: number = 0; //复活时间\r\n mapBlockArray: any; //地图的所有格子状态存储\r\n pause:boolean = false;//暂停状态\r\n hammer:boolean = false;//锤子状态\r\n freezeArray: any; //冻结\r\n loackArray: any; //上锁\r\n particleEffects: cc.ParticleAsset[];\r\n // leftDoors: []; //左门\r\n rightDoors: any; //右门\r\n topDoors: any; //上门\r\n bottomDoors: any; //下门\r\n leftDoors: any;\r\n timeNumber : 0; //游戏时间 用于倒计时\r\n count_Time : 0; //用于统计总游戏时长\r\n\r\n\r\n // mapInfo: number[][] = [];\r\n\r\n onLoad () {\r\n\r\n cc.fx.GameConfig.GM_INFO.review = 0;\r\n cc.fx.GameConfig.GM_INFO.gameState = true;\r\n this.mask.opacity = 0;\r\n this.node.getChildByName(\"Adhesive\").zIndex = 500;\r\n cc.game.setFrameRate(63); \r\n cc.fx.AudioManager._instance.playEffect(\"zhuan2\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"down\",false);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n if (entry.animation.name === \"down\") {\r\n // 动画播放结束后执行的逻辑\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n });\r\n this.blocks = [];\r\n this.leftDoors = []; //左门\r\n this.rightDoors = []; //右门\r\n this.topDoors = []; //上门\r\n this.bottomDoors = []; //下门\r\n this.gameWin = false;\r\n this.gameOver = false;\r\n this.gameStart = false; \r\n this.homeCanTouch = true;\r\n this.againCanTouch = true;\r\n this.new_mode = 0;\r\n this.count_Time = 0;\r\n this.add_Time = 0;\r\n \r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n \r\n // cc.game.addPersistRootNode(this.node);\r\n MapConroler._instance = this;\r\n } \r\n\r\n start () {\r\n setTimeout(() => {\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 HomeScene 失败:', err);\r\n return;\r\n }\r\n });\r\n }, 1000);\r\n // console.log(\"进入GameScene\");\r\n this.Block_Array = GameManager._instance.Block_Array;\r\n this.Wall_Prefab = GameManager._instance.Wall_Prefab;\r\n this.Block_Color = GameManager._instance.Block_Color;\r\n // this.particleEffects = GameManager._instance.particleEffects;\r\n \r\n this.initMap();\r\n \r\n }\r\n\r\n startUpdate(){\r\n if(this.gameStart == false){\r\n this.gameStart = true;\r\n //发送数数事件——进入关卡\r\n console.log(\"准备进入下一关,发送下一关进入\");\r\n cc.fx.GameTool.shushu_Track(\"enter_stage\");\r\n this.startTimeCutDown();\r\n for(let i =0; i {\r\n const startTime = performance.now();\r\n for (let i = 0; i < BLOCKS_PER_FRAME && index < blockArray.length; i++) {\r\n let blockInfo = blockArray[index];\r\n // 缓存 Block_Array 访问\r\n const blockPrefab = this.Block_Array[blockInfo.block]; \r\n let block = cc.instantiate(blockPrefab);\r\n block.parent = this.node;\r\n block.setPosition(cc.v2(blockInfo.position.x, blockInfo.position.y));\r\n if (blockInfo.block != 23) {\r\n this.blockNum += 1;\r\n this.blocks.push(block);\r\n if (blockInfo.type == 1) {\r\n let info = {\r\n id: blockInfo.id + 1,\r\n block: blockInfo.block,\r\n color: blockInfo.stacking,\r\n type: 10,\r\n position: blockInfo.position,\r\n stacking: blockInfo.color\r\n };\r\n // 缓存 Block_Array 访问\r\n const blockUpPrefab = this.Block_Array[info.block]; \r\n let blockUp = cc.instantiate(blockUpPrefab);\r\n blockUp.parent = this.node;\r\n blockUp.setPosition(cc.v2(info.position.x, info.position.y));\r\n\r\n this.blocks.push(blockUp);\r\n block.getComponent(\"Block\").init(blockInfo, null, null, blockUp);\r\n blockUp.getComponent(\"Block\").init(info, null, null, block);\r\n \r\n this.blockNum += 1;\r\n } else if (blockInfo.type == 9) {\r\n if(blockInfo.adhesiveTime < 2){\r\n index++;\r\n continue;\r\n }\r\n index++;\r\n let info = blockArray[index];\r\n // 缓存 Block_Array 访问\r\n const blockUpPrefab = this.Block_Array[info.block]; \r\n let blockUp = cc.instantiate(blockUpPrefab);\r\n blockUp.parent = this.node;\r\n blockUp.setPosition(cc.v2(info.position.x, info.position.y));\r\n\r\n this.blocks.push(blockUp);\r\n block.getComponent(\"Block\").init(blockInfo, null, null, blockUp,false);\r\n setTimeout(() => {\r\n blockUp.getComponent(\"Block\").init(info, null, null, block,true);\r\n }, 100);\r\n this.blockNum += 1;\r\n } else {\r\n block.getComponent(\"Block\").init(blockInfo);\r\n } \r\n }\r\n else{\r\n block.getComponent(\"Barrier\").init(blockInfo);\r\n }\r\n index++;\r\n }\r\n const endTime = performance.now();\r\n const frameTime = endTime - startTime;\r\n // 如果当前帧执行时间过长,减少每帧创建数量\r\n if (frameTime > 16) { \r\n BLOCKS_PER_FRAME = Math.max(BLOCKS_PER_FRAME - 1, MIN_PER_FRAME);\r\n } else {\r\n BLOCKS_PER_FRAME = Math.min(BLOCKS_PER_FRAME + 1, MAX_PER_FRAME);\r\n }\r\n\r\n // 如果还有方块未创建,下一帧继续创建\r\n if (index < blockArray.length) {\r\n // 使用 scheduleOnce 在下一帧执行 createBlocks\r\n this.scheduleOnce(() => {\r\n createBlocks();\r\n }, 0);\r\n } else {\r\n\r\n }\r\n };\r\n\r\n // 开始分帧创建方块\r\n createBlocks();\r\n}\r\n//给创建方块排序,用来降低drawcall 合批\r\nsortBlock(allBlocks: { color: number; block: number; type: number }[]) {\r\n return allBlocks.sort((a, b) => {\r\n // 先处理 type 为 1 的情况,将其放到最后\r\n if (a.type === 1 && b.type !== 1) {\r\n return 1;\r\n }\r\n if (a.type !== 1 && b.type === 1) {\r\n return -1;\r\n }\r\n\r\n // 对 type 不为 0 的元素按 type 排序\r\n if (a.type !== 0 && b.type !== 0) {\r\n return a.type - b.type;\r\n }\r\n if (a.type !== 0 && b.type === 0) {\r\n return 1;\r\n }\r\n if (a.type === 0 && b.type !== 0) {\r\n return -1;\r\n }\r\n\r\n // 再处理 block 为 23 的情况,将其放到最前面\r\n if (a.block === 23 && b.block !== 23) {\r\n return -1;\r\n }\r\n if (a.block !== 23 && b.block === 23) {\r\n return 1;\r\n }\r\n\r\n // 其余按 color 升序排列\r\n return a.color - b.color;\r\n });\r\n}\r\n\r\n\r\n//创建墙壁\r\n\r\nwallInit() {\r\n let index = 0; // 当前要创建的墙壁索引\r\n let WALLS_PER_FRAME = 1; // 初始每帧创建的墙壁数量\r\n const MAX_PER_FRAME = 10; // 每帧最大创建数量\r\n const MIN_PER_FRAME = 1; // 每帧最小创建数量\r\n\r\n const createWalls = () => {\r\n const startTime = performance.now();\r\n for (let i = 0; i < WALLS_PER_FRAME && index < this.wallInfo.length; i++) {\r\n let block = this.wallInfo[index];\r\n let dir = this.getWllDiraction(\"wall\", cc.v2(block.getComponent(\"MapBlock\").posX, block.getComponent(\"MapBlock\").posY));\r\n if (dir != null) {\r\n this.createWall(dir, block);\r\n }\r\n index++;\r\n }\r\n const endTime = performance.now();\r\n const frameTime = endTime - startTime;\r\n // 如果当前帧执行时间过长,减少每帧创建数量\r\n if (frameTime > 16) { \r\n WALLS_PER_FRAME = Math.max(WALLS_PER_FRAME - 1, MIN_PER_FRAME);\r\n } else {\r\n WALLS_PER_FRAME = Math.min(WALLS_PER_FRAME + 1, MAX_PER_FRAME);\r\n }\r\n\r\n // 如果还有墙壁未创建,下一帧继续创建\r\n if (index < this.wallInfo.length) {\r\n this.scheduleOnce(() => {\r\n createWalls();\r\n }, 0);\r\n } else {\r\n // 所有墙壁创建完成后,创建拐角节点\r\n this.createCornerNodes();\r\n }\r\n };\r\n\r\n // 开始分帧创建墙壁\r\n createWalls();\r\n}\r\n\r\n// ... 已有代码 ...\r\n\r\n getWllDiraction(type,pointA){\r\n let dir = [];\r\n let pointB = cc.v2(pointA.x + 1,pointA.y);\r\n let pointC = cc.v2(pointA.x - 1,pointA.y);\r\n let pointD = cc.v2(pointA.x,pointA.y + 1);\r\n let pointE = cc.v2(pointA.x,pointA.y - 1);\r\n let opacity = 0;\r\n if(type == \"wall\") opacity = 255;\r\n if(type == \"turn\") opacity = 250;\r\n \r\n if(pointB.x < this.mapWidth){\r\n if(this.mapBlocksWall[pointB.x][pointB.y].opacity == opacity ){\r\n if(type == \"turn\" && this.mapBlocksWall[pointB.x][pointB.y].getComponent(\"MapBlock\").direction == \"right\"){\r\n \r\n }\r\n else dir.push(\"right\");\r\n }\r\n }\r\n if(pointC.x >= 0){\r\n if(this.mapBlocksWall[pointC.x][pointC.y].opacity == opacity){\r\n if(type == \"turn\" && this.mapBlocksWall[pointC.x][pointC.y].getComponent(\"MapBlock\").direction == \"left\"){\r\n \r\n }\r\n else dir.push(\"left\");\r\n }\r\n }\r\n if(pointD.y < this.mapHeight){\r\n if(this.mapBlocksWall[pointD.x][pointD.y].opacity == opacity){\r\n if(type == \"turn\" && this.mapBlocksWall[pointD.x][pointD.y].getComponent(\"MapBlock\").direction == \"up\"){\r\n \r\n }\r\n else dir.push(\"up\");\r\n }\r\n }\r\n if(pointE.y >= 0){\r\n if(this.mapBlocksWall[pointE.x][pointE.y].opacity == opacity){\r\n if(type == \"turn\" && this.mapBlocksWall[pointE.x][pointE.y].getComponent(\"MapBlock\").direction == \"down\"){\r\n \r\n }\r\n else dir.push(\"down\");\r\n }\r\n }\r\n if(dir.length > 2){\r\n\r\n return null;\r\n }\r\n if(dir.length == 1){\r\n if(type == \"wall\")\r\n return dir[0];\r\n else \r\n return null;\r\n }\r\n else if(dir.length == 2){\r\n return dir[0] + dir[1];\r\n }\r\n }\r\n\r\n createCornerNodes() {\r\n // 定义拐角位置\r\n for(let i=0; i 3) maxX = maxX-1;\r\n }\r\n else if(block.name == \"block11\"){\r\n minX = width-2;\r\n if(this.mapWidth > 3) maxX = maxX-2;\r\n }\r\n\r\n else if(block.name == \"block14\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n else if(block.name == \"block16\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n else if(block.name == \"block18\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n else if(block.name == \"block21\"){\r\n minX = width-1;\r\n maxX = maxX-1;\r\n }\r\n \r\n return {minX:minX,maxX:maxX,minY:minY,maxY:maxY};\r\n }\r\n\r\n //检测落点是否可以消除\r\n checkPass(node,blocks) {\r\n let minAndMax = this.getMinAndMax(node);\r\n let minX = minAndMax.minX;\r\n let maxX = minAndMax.maxX;\r\n let minY = minAndMax.minY;\r\n let maxY = minAndMax.maxY;\r\n\r\n let nodePos = cc.v2(node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY);\r\n\r\n // 获取地图边界信息\r\n\r\n let allBlocks = [];\r\n for(let i=0;i wallPos.x){\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n leftWalls.push(wallLeft);\r\n }\r\n }\r\n }\r\n // console.log(\"得到左边墙壁数组\",date6);\r\n if(leftWalls.length != 0){\r\n let result = this.detectingBlock(\"left\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n if(result == true) result = this.passWall(result,leftWalls,node);\r\n // console.log(\"碰到左边缘结果:\",jg);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 2;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n }\r\n if (nodePos.x >= maxX || direction[1] == true) {\r\n // const date3 = new Date().getTime();\r\n // console.log(\"碰到右边缘\",date3);\r\n pz += 1;\r\n let rightWalls = [];\r\n for(let i = 0; i < this.rightDoors.length; i++){\r\n let wallRight = this.rightDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallRight.getComponent(\"Wall\").posX,wallRight.getComponent(\"Wall\").posY);\r\n for(let i = 0; i < allBlocks.length; i++){\r\n if(allBlocks[i].y == wallPos.y && allBlocks[i].x < wallPos.x){\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n rightWalls.push(wallRight);\r\n }\r\n }\r\n }\r\n\r\n if(rightWalls.length != 0){\r\n let result = this.detectingBlock(\"right\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n \r\n if(result == true) result = this.passWall(result,rightWalls,node);\r\n // console.log(\"碰到右边缘结果:\",jg);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 3;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n\r\n \r\n }\r\n if (nodePos.y <= minY || direction[2] == true) {\r\n pz += 1;\r\n // const date4 = new Date().getTime();\r\n // console.log(\"碰到下边缘\",date4);\r\n let downWalls = [];\r\n for(let i = 0; i < this.topDoors.length; i++){\r\n let wallBottom = this.topDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallBottom.getComponent(\"Wall\").posX,wallBottom.getComponent(\"Wall\").posY);\r\n for(let i = 0; i < allBlocks.length; i++){\r\n let luocha = Math.abs(allBlocks[i].y - wallPos.y)\r\n if(allBlocks[i].x == wallPos.x && allBlocks[i].y > wallPos.y && luocha <= node.getComponent(\"Block\").shu){\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n downWalls.push(wallBottom);\r\n }\r\n }\r\n }\r\n\r\n if(downWalls.length != 0){\r\n let result = this.detectingBlock(\"down\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n if(result == true) result = this.passWall(result,downWalls,node);\r\n // console.log(\"碰到下边缘结果:\",jg);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 1;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n \r\n\r\n }\r\n if (nodePos.y >= maxY || direction[3] == true) {\r\n pz += 1;\r\n // const date5 = new Date().getTime();\r\n // console.log(\"碰到上边缘\",date5);\r\n let upWalls = [];\r\n for(let i = 0; i < this.bottomDoors.length; i++){\r\n let wallTop = this.bottomDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallTop.getComponent(\"Wall\").posX,wallTop.getComponent(\"Wall\").posY);\r\n for(let i = 0; i < allBlocks.length; i++){\r\n let luocha = Math.abs(allBlocks[i].y - wallPos.y)\r\n if(allBlocks[i].x == wallPos.x && allBlocks[i].y < wallPos.y && luocha <= node.getComponent(\"Block\").shu){\r\n upWalls.push(wallTop);\r\n }\r\n }\r\n }\r\n\r\n if(upWalls.length != 0){\r\n let result = this.detectingBlock(\"up\",node.getComponent(\"Block\").posX,node.getComponent(\"Block\").posY,allBlocks);\r\n if(result == true) result = this.passWall(result,upWalls,node);\r\n // console.log(\"碰到上边缘结果:\",result);\r\n if(result){\r\n \r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 0;\r\n this.createParticle(node,jg);\r\n return jg;\r\n }\r\n }\r\n\r\n }\r\n if(pz == 0 )jg = -1;\r\n // const date10 = new Date().getTime();\r\n // console.log(\"所有检测结束耗时\",date10,jg);\r\n return jg;\r\n }\r\n\r\n changeState(){\r\n if(this.openWall.length != 0){\r\n for(let i=0; i 0){\r\n for(let i=0; i= 0){\r\n if(this.mapBlocksWall[x-2][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x-2][y].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x-2][y].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"左侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x-2][y].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n else if(direction == \"right\"){\r\n if(this.mapBlocksWall[x+1][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x+1][y].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x+1][y].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"右侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x+1][y].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n if((x + 2) <= this.mapBlocksWall.length-1){\r\n if(this.mapBlocksWall[x+2][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x+2][y].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x+2][y].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"右侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x+2][y].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n if(direction == \"up\"){\r\n if(this.mapBlocksWall[x][y+1].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y+1].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y+1].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"上侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y+1].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n if((y + 2) <= this.mapBlocksWall[x].length-1){\r\n if(this.mapBlocksWall[x][y+2].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y+2].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y+2].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"上侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y+2].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n if(direction == \"down\"){\r\n if(this.mapBlocksWall[x][y-1].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y-1].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y-1].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"下侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y-1].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n if((y - 2) >= 0){\r\n if(this.mapBlocksWall[x][y-2].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y-2].getComponent(\"MapBlock\").block_Id!= \"Wall\"\r\n && this.mapBlocksWall[x][y-2].getComponent(\"MapBlock\").block_Id != id ){\r\n // console.log(\"下侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if(this.mapBlocksWall[x][y-2].opacity == 249){\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n // console.log(\"检测物体各方向是否有别的物块\",jg);\r\n return jg;\r\n }\r\n\r\n checkDiraction(allBlocks,maxX,maxY){\r\n let jg = [false,false,false,false];\r\n for(let i=0; i 0 && jg[0] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x-1][allBlocks[i].y].opacity == 250){\r\n jg[0] = true;\r\n } \r\n }\r\n if( jg[1] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x+1][allBlocks[i].y].opacity == 250){\r\n jg[1] = true;\r\n } \r\n }\r\n if(allBlocks[i].y > 0 && jg[2] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y-1].opacity == 250){\r\n jg[2] = true;\r\n } \r\n }\r\n if(jg[3] == false){\r\n if(this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y+1].opacity == 250){\r\n jg[3] = true;\r\n } \r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n checkLeft(allBlocks){\r\n let jg = false;\r\n return jg;\r\n }\r\n\r\n checkRight(allBlocks,max){\r\n let jg = false;\r\n for(let i=0; i {\r\n if(child.getComponent(\"Block\")){\r\n if(child.getComponent(\"Block\").type == 4)\r\n return child\r\n }\r\n });\r\n if(freezeBlock.length > 0){\r\n for(let i=0; i {\r\n if(child.getComponent(\"Block\")){\r\n if(child.getComponent(\"Block\").type == 3)\r\n return child\r\n }\r\n });\r\n if(lockBlock.length > 0)\r\n for(let i=0; i {\r\n this.node.parent.parent.getChildByName(\"Win\").active = true;\r\n }, 660);\r\n // console.log(\"游戏成功\");\r\n }\r\n else{\r\n if(this.gameOver == true){\r\n this.failLevel(null);\r\n }\r\n }\r\n }\r\n\r\n check_NewMode(){\r\n for(let i=0; i 156){\r\n cc.fx.GameConfig.GM_INFO.level = 156;\r\n MapConroler._instance = null;\r\n \r\n if(this.new_mode == 3){\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(2);\r\n cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n return;\r\n }\r\n // cc.fx.GameConfig.LEVEL_INFO_init(true);\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n });\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n } \r\n else{\r\n \r\n // console.log(\"下一关\");\r\n MapConroler._instance = null;\r\n \r\n if(this.new_mode == 3){\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(2);\r\n cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n return;\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.LEVEL_INFO_init(true,0);\r\n }, 1200);\r\n \r\n // this.node.parent.parent.parent.destroy();\r\n \r\n }\r\n }\r\n\r\n againLevel(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n if(cc.fx.GameConfig.GM_INFO.hp < 1){\r\n MiniGameSdk.API.showToast(\"体力值不足\");\r\n return;\r\n } \r\n if(!this.againCanTouch) return;\r\n \r\n this.againCanTouch = false;\r\n \r\n MapConroler._instance = null;\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.LEVEL_INFO_init(true,0);\r\n }, 1200);\r\n // this.node.parent.parent.parent.destroy();\r\n }\r\n\r\n reviewLevel(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n let coin = 900;\r\n if(cc.fx.GameConfig.GM_INFO.review == 1) coin = 1900;\r\n else if(cc.fx.GameConfig.GM_INFO.review == 2) coin = 2500;\r\n // console.log(\"自身金币:\",cc.fx.GameConfig.GM_INFO.coin,\"消耗金币:\",coin);\r\n if(cc.fx.GameConfig.GM_INFO.coin < Math.abs(coin)){\r\n MiniGameSdk.API.showToast(\"金币不足,无法加时间\");\r\n return;\r\n }\r\n else{\r\n this.runRewive(-coin);\r\n }\r\n }\r\n\r\n runRewive(data){\r\n console.log(\"复活回调函数内\",data);\r\n cc.fx.GameTool.changeCoin(data);\r\n MiniGameSdk.API.showToast(\"继续游戏\");\r\n \r\n if(cc.fx.GameConfig.GM_INFO.review < 2)\r\n cc.fx.GameConfig.GM_INFO.review += 1;\r\n \r\n this.gameOver = false;\r\n this.timeNumber = 21;\r\n this.add_Time += 20;\r\n this.pause = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").active = false;\r\n this.startTimeCutDown();\r\n }\r\n\r\n\r\n \r\n homeBtn(){\r\n // alert(\"游戏失败\");\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n if(!this.homeCanTouch) return;\r\n this.homeCanTouch = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Lock\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Health\").active = true;\r\n let data = {\r\n time:this.count_Time, \r\n add_Time:this.add_Time,\r\n result:\"fail\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\",data);\r\n if(this.gameStart == true){\r\n cc.fx.GameTool.setUserHealth(-1,(data)=>{\r\n })\r\n }\r\n // this.node.parent.parent.parent.destroy();\r\n }\r\n\r\n returnHome(){\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\",null);\r\n if(MapConroler._instance = null){\r\n return;\r\n }\r\n // MiniGameSdk.API.showToast(\"体力值减少\");\r\n MapConroler._instance = null;\r\n cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n if(this.new_mode == 3){\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(1);\r\n return;\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\",null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1,\"up\",false);\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n \r\n });\r\n\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n }\r\n\r\n //判断游戏失败\r\n failLevel(type){\r\n this.stopTimeCutDown();\r\n if(this.gameOver== true ||this.gameWin == true){\r\n return;\r\n }\r\n\r\n let time = 0;\r\n this.gameOver = true;\r\n if(type == \"boom\"){\r\n time = 2000;\r\n }\r\n setTimeout(() => {\r\n this.node.parent.parent.getChildByName(\"Lose\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = false;\r\n let buyBtn = this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").getChildByName(\"buyBtn\");\r\n buyBtn.getChildByName(\"coin1\").active = buyBtn.getChildByName(\"coin2\").active = buyBtn.getChildByName(\"coin3\").active =false; \r\n if(cc.fx.GameConfig.GM_INFO.review == 0)buyBtn.getChildByName(\"coin1\").active = true;\r\n else if(cc.fx.GameConfig.GM_INFO.review == 1) buyBtn.getChildByName(\"coin2\").active = true;\r\n else if(cc.fx.GameConfig.GM_INFO.review == 2) buyBtn.getChildByName(\"coin3\").active = true;\r\n if(type){\r\n if(type == \"boom\"){\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = true;\r\n }\r\n }\r\n }, time);\r\n \r\n // console.log(\"游戏失败\");\r\n }\r\n\r\n //打开新模式弹窗\r\n openNewMode(type){\r\n let index = 0;\r\n const BLOCKS_PER_FRAME = 5; // 每帧销毁的方块数量\r\n const destroyBlocks = () => {\r\n const endIndex = Math.min(index + BLOCKS_PER_FRAME, this.blocks.length);\r\n for (; index < endIndex; index++) {\r\n if (this.blocks[index]) {\r\n this.blocks[index].destroy();\r\n }\r\n }\r\n // 如果还有方块未销毁,下一帧继续\r\n if (index < this.blocks.length) {\r\n this.scheduleOnce(destroyBlocks, 0);\r\n } else {\r\n }\r\n };\r\n // 开始分帧销毁方块\r\n destroyBlocks();\r\n this.node.parent.parent.getChildByName(\"NewMode\").active = true;\r\n this.node.parent.parent.getChildByName(\"NewMode\").getComponent(\"NewMode\").setMode(type);\r\n }\r\n\r\n \r\n downDoor(color,type){\r\n for(let i=0; i{\r\n })\r\n let data = {\r\n id:\"2001\",\r\n num:-1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\",data);\r\n }\r\n else MiniGameSdk.API.showToast(\"道具使用中,请稍后再试\");\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n //解开时间冻结\r\n openIce(){\r\n if(this.node.parent.getChildByName(\"Ice\").active){\r\n this.freezeMask.active = false;\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n this.node.parent.getChildByName(\"Ice\").active = false;\r\n this.node.parent.getChildByName(\"Top\").getChildByName(\"Ice\").active = false;\r\n this.pause = false;\r\n // this.startTimeCutDown();\r\n }\r\n }\r\n \r\n handleBuySuccess(data){\r\n this.pause = false;\r\n const timestamp = Date.now();\r\n // console.log(\"回调函数内:\",this.pause);\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n let hammerBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n let magicBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if(data == \"freezeAmount\") freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if(data == \"hammerAmount\") hammerBtn.getComponent(\"btnControl\").setTouch(true); \r\n else if(data == \"magicAmount\") magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n if(data == \"freezeAmount\"){\r\n cc.fx.GameConfig.GM_INFO.freezeAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.freezeAmount = cc.fx.GameConfig.GM_INFO.freezeAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n MiniGameSdk.API.showToast(\"购买冻结时间道具成功\");\r\n }, 200);\r\n\r\n \r\n }\r\n else if(data == \"magicAmount\"){\r\n cc.fx.GameConfig.GM_INFO.magicAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n MiniGameSdk.API.showToast(\"购买锤子道具成功\");\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n }, 200);\r\n \r\n }\r\n else if(data == \"hammerAmount\"){\r\n cc.fx.GameConfig.GM_INFO.hammerAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n MiniGameSdk.API.showToast(\"购买魔法棒道具成功\");\r\n }, 200);\r\n\r\n }\r\n \r\n \r\n\r\n }\r\n\r\n //使用锤子道具\r\n useHammer(){\r\n if(this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true \r\n || this.magicMask.active== true || this.timeNumber <= 1){\r\n return;\r\n }\r\n let hammerBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n if(hammerBtn.getComponent(\"btnControl\")._touch){\r\n hammerBtn.getComponent(\"btnControl\").setTouch(false);\r\n if(cc.fx.GameConfig.GM_INFO.hammerAmount < 1){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n hammerBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"hammer\");\r\n }\r\n else{\r\n if(!this.hammer){\r\n const timestamp = Date.now();\r\n this.hammerMask.active = true;\r\n\r\n this.hammer = true;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount -= 1;\r\n if(cc.fx.GameConfig.GM_INFO.hammerAmount < 0) \r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n console.log(\"锤子道具信息:\",propInfo);\r\n propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n cc.fx.GameTool.setUserProp(2002,cc.fx.GameConfig.GM_INFO.hammerAmount,(data)=>{\r\n })\r\n let data = {\r\n id:\"2002\",\r\n num:-1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\",data);\r\n }\r\n else MiniGameSdk.API.showToast(\"道具使用中,请稍后再试\");\r\n }\r\n\r\n }\r\n\r\n }\r\n \r\n buyMagic(){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2003,this.handleBuySuccess.bind(this,\"magicAmount\"));\r\n }\r\n\r\n buyHammer(){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2002, this.handleBuySuccess.bind(this,\"hammerAmount\"));\r\n }\r\n\r\n buyFreeze(){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2001,this.handleBuySuccess.bind(this,\"freezeAmount\"));\r\n }\r\n\r\n //使用魔法棒随机消除两个方块\r\n useMagic(){\r\n if(this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true \r\n || this.magicMask.active== true || this.timeNumber <= 1){\r\n return;\r\n }\r\n let magicBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if(magicBtn.getComponent(\"btnControl\")._touch){\r\n magicBtn.getComponent(\"btnControl\").setTouch(false);\r\n if(cc.fx.GameConfig.GM_INFO.magicAmount < 1){\r\n if(cc.fx.GameConfig.GM_INFO.coin < 1500){\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"magic\");\r\n // MiniGameSdk.API.showToast(\"魔法棒数量不足,自动购买魔法棒\");\r\n }\r\n else{\r\n const timestamp = Date.now();\r\n this.magicMask.active = true;\r\n setTimeout(() => {\r\n this.magicMask.active = false;\r\n magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n }, 1000);\r\n \r\n cc.fx.GameConfig.GM_INFO.magicAmount -= 1;\r\n if(cc.fx.GameConfig.GM_INFO.magicAmount < 0) \r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\",propInfo);\r\n cc.fx.GameTool.setUserProp(2003,cc.fx.GameConfig.GM_INFO.magicAmount,(data)=>{\r\n })\r\n let data = {\r\n id:\"2003\",\r\n num:-1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\",data);\r\n let nomalArray = [];\r\n // this.magicBtn.node.active = false;\r\n for(let i =0; i 1){\r\n nomalArray = cc.fx.GameTool.shuffleArray(nomalArray);\r\n nomalArray[0].getComponent(\"Block\").eliminate();\r\n let time = 0;\r\n if(nomalArray[0].getComponent(\"Block\").type == 1 || nomalArray[0].getComponent(\"Block\").type == 9){\r\n time = 200;\r\n }\r\n if(time > 0){\r\n setTimeout(() => {\r\n nomalArray[1].getComponent(\"Block\").eliminate();\r\n }, time);\r\n return;\r\n }\r\n else{\r\n nomalArray[1].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n }\r\n else if(nomalArray.length == 1){\r\n nomalArray[0].getComponent(\"Block\").eliminate();\r\n let time = 0;\r\n if(nomalArray[0].getComponent(\"Block\").type == 1 || nomalArray[0].getComponent(\"Block\").type == 9){\r\n time = 200;\r\n }\r\n setTimeout(() => {\r\n if(this.freezeArray.length == 0 && this.loackArray.length == 0){\r\n // console.log(\"只剩下一个块道具使用完毕\");\r\n }\r\n else{\r\n if(this.loackArray.length != 0){\r\n // console.log(\"消除一个普通块后,消除一个带锁块\");\r\n this.loackArray[0].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n else if(this.freezeArray.length!= 0){\r\n // console.log(\"消除一个普通块后,消除一个冻结块\");\r\n this.freezeArray[0].getComponent(\"Block\").eliminate();\r\n return; \r\n }\r\n }\r\n }, 200+time);\r\n }\r\n else{\r\n let count = 2;\r\n if(this.loackArray.length!= 0){\r\n for(let i=0; i {\r\n if(count != 0){\r\n for(let i=0; i 13){\r\n this.node.scale = 1;\r\n }\r\n\r\n // this.node.scale = 1;\r\n cc.fx.GameConfig.GM_INFO.scale = this.node.scale;\r\n // this.node.scale = 0.5;\r\n // console.log(this.node.scale);\r\n // this.node.scale = 1;\r\n }\r\n\r\n //创建门的粒子特效\r\n createParticle(block,jg){\r\n let particle = cc.instantiate(MapConroler._instance.Block_Prop[9]);\r\n particle.parent = this.node;\r\n particle.zIndex = 1000;\r\n let width = Math.floor(block.width / 120);\r\n let height = Math.floor(block.height / 120);\r\n let name = \"\";\r\n\r\n if(jg == 0 || jg == 1){\r\n let y = block.y + block.height;\r\n let x = block.x - block.width/2;\r\n name = \"top_\" + width + \"_\" + height;\r\n if(jg == 1){\r\n name = \"bot_\" + width + \"_\" + height;\r\n y = block.y;\r\n }\r\n if(block.anchorX == 0.5){\r\n x = block.x;\r\n }\r\n else if(block.anchorX == 0.33){\r\n x = block.x + block.width*(0.5-0.33);\r\n }\r\n else if(block.anchorX == 0.66){\r\n x = block.x + block.width*(0.5-0.66); \r\n }\r\n particle.setPosition(x, y); \r\n } \r\n else if(jg == 2 || jg == 3){\r\n name = \"left_\" + height + \"_\" + width;\r\n let x = block.x - block.width;\r\n let y = block.y + block.height/2;\r\n if(block.anchorX == 0.5){\r\n x = block.x - block.width/2;\r\n }\r\n else if(block.anchorX == 0.33){\r\n x = block.x - block.width*0.33;\r\n }\r\n else if(block.anchorX == 0.66){\r\n x = block.x + block.width*0.66; \r\n }\r\n if(jg == 3){\r\n name = \"right_\" + height + \"_\" + width;\r\n x = block.x;\r\n if(block.anchorX == 0.5){\r\n x = block.x + block.width/2;\r\n }\r\n else if(block.anchorX == 0.33){\r\n x = block.x + block.width*0.66;\r\n }\r\n else if(block.anchorX == 0.66){\r\n x = block.x + block.width*0.33; \r\n }\r\n }\r\n\r\n particle.setPosition(x, y); \r\n } \r\n\r\n let particleNode = particle.getChildByName(name);\r\n let color = block.getComponent(\"Block\").color - 1;\r\n\r\n particleNode.getComponent(cc.ParticleSystem).spriteFrame = particle.getComponent(\"Reduce\").Block_Color[color];\r\n particleNode.active = true;\r\n setTimeout(() => {\r\n cc.tween(particle)\r\n .to(2, {opacity: 0})\r\n .call(() => {\r\n particle.destroy(); \r\n })\r\n .start();\r\n }, 1200);\r\n }\r\n\r\n removeOneBlock() {\r\n // 移除所有方块\r\n for(let i =0 ; i 156) { cc.fx.GameConfig.GM_INFO.level = 156; @@ -341,13 +341,15 @@ var GameTool = { }; // console.log("55555存储关卡数据:",levelInfo); cc.fx.StorageMessage.setStorage("level", levelInfo); - var data = { - time: time.count_Time, - add_Time: time.add_Time, - result: "success" - }; - cc.fx.GameTool.shushu_Track("finish_stage", data); - MiniGameSdk_1.MiniGameSdk.API.shushu_SetSuperProperties(); + if (time1 && time2) { + var data = { + time: time1, + add_Time: time2, + result: "success" + }; + cc.fx.GameTool.shushu_Track("finish_stage", data); + MiniGameSdk_1.MiniGameSdk.API.shushu_SetSuperProperties(); + } cc.fx.GameTool.setUserLevel(function (data) { // console.log("存储结果:",data); // console.log("上传",data); diff --git a/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js.map b/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js.map index 244a570..da0338c 100644 --- a/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js.map +++ b/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\module\\Tool\\GameTool.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import { MiniGameSdk } from \"../../Sdk/MiniGameSdk\";\r\n\r\n//最大工具类 各种公共方法,以及处理上传,获取后端接口数据\r\nvar GameTool = {\r\n _startTime: 0,\r\n _endTime: 0,\r\n _totalTime: 0,\r\n \r\n //获取userId\r\n Authentication(){\r\n let name = \"user_\" + cc.fx.GameConfig.GM_INFO.gameId;\r\n var data = JSON.parse(localStorage.getItem(name));\r\n if(data == \"undifend\" || data==null || data == \"\"){\r\n var urlNow = window.location.href;\r\n if(!this.containsTrain(urlNow)){\r\n let url = \"https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=\"+location.href;\r\n window.location.href = url;\r\n }\r\n }\r\n else{\r\n cc.fx.StorageMessage.setStorage(name,data);\r\n cc.fx.GameConfig.GM_INFO.userId = parseInt(data.userId);\r\n }\r\n },\r\n\r\n containsTrain(str) {\r\n return /from=train/i.test(str);\r\n },\r\n\r\n //埋点上传\r\n setGameData(){\r\n //GAME_DATA 初始化 每次清零\r\n cc.fx.GameConfig.GAME_DATA = [];\r\n cc.fx.GameConfig.GAME_DATA.push(cc.fx.GameConfig.CLICK_DATA);\r\n cc.fx.GameConfig.CLICK_init();\r\n let data = cc.fx.GameConfig.GAME_DATA;\r\n let matchId = this.getMatchId();\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"scode\": cc.fx.GameConfig.GM_INFO.scode,\r\n \"matchId\":matchId,\r\n \"data\": data\r\n };\r\n\r\n // console.log(\"上传数据:\",postData);\r\n // cc.fx.HttpUtil.uploadUserLogData(postData,function(){})\r\n },\r\n //上传排行榜 type为1\r\n setRank(data){\r\n //GAME_DATA 初始化 每次清零\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"type\":1,\r\n \"score\": data.score,\r\n \"accuracy\": data.date,\r\n \"success\": cc.fx.GameConfig.GM_INFO.success\r\n };\r\n // cc.fx.HttpUtil.rankData(1,function(){},postData);\r\n },\r\n //获取排行榜 type为2\r\n getRank(data,callback){\r\n let rankLength = data.length;\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"page\":1,\r\n \"pageSize\":rankLength\r\n }; \r\n //回调进getRankData\r\n // cc.fx.HttpUtil.rankData(2,data =>{callback(data)},postData);\r\n },\r\n //获取matchId 用于上传每次点击数据里面记录id方便查询\r\n getMatchId (){\r\n let matchId = cc.sys.localStorage.getItem(\"matchId\");\r\n let tempId = matchId;\r\n if(matchId == \"undifend\" || matchId==null){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n let char = parseInt(tempId.substring(10,tempId.length));\r\n if(cc.fx.GameConfig.GM_INFO.level == 1){\r\n char += 1;\r\n matchId = tempId.slice(0, 10) + char + \"\";\r\n if(this.containsNanana(matchId)) matchId = this.setMatchId();\r\n cc.fx.GameConfig.GM_INFO.matchId = matchId;\r\n cc.sys.localStorage.setItem(\"matchId\",matchId);\r\n }\r\n }\r\n }\r\n\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n return matchId;\r\n },\r\n //检测matchId 如果有缓存以前的nanana数据清除\r\n containsNanana(str) {\r\n return /na/i.test(str);\r\n },\r\n //重新设置MatchId\r\n setMatchId (){\r\n // 定义包含可用字符的字符集\r\n const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n // 创建一个数组以保存随机字符\r\n const uuidArray = [];\r\n // 循环10次 生成10位的UUID\r\n for (let i = 0; i < 10; i++) {\r\n // 生成随机索引,范围是字符集的长度\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n // 从字符集中获取随机字符\r\n const randomChar = characters.charAt(randomIndex);\r\n // 将字符添加到数组中\r\n uuidArray.push(randomChar);\r\n }\r\n let data = uuidArray.join('') + 1 + \"\";\r\n cc.sys.localStorage.setItem(\"matchNumber\",1);\r\n cc.sys.localStorage.setItem(\"matchId\",data);\r\n cc.fx.GameConfig.GM_INFO.matchId = data;\r\n return data;\r\n },\r\n //截取名字\r\n subName(name,length){\r\n if(name.length > length){\r\n name = name.substring(0,length) + \"...\"\r\n }\r\n return name;\r\n },\r\n //设置头像\r\n setPic(node,pic){\r\n node.active = false;\r\n let url = pic;\r\n setTimeout(() => {\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n node.active = true;\r\n }\r\n })\r\n .catch(error => {\r\n // console.error('Error fetching X-Info:', error);\r\n });\r\n }, 100);\r\n cc.assetManager.loadRemote(url, {ext:'.png'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n node.active = true;\r\n node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n // console.log(err,texture)\r\n }\r\n })\r\n },\r\n //第一个参数把目标带进来处理,第二个参数为名字长度,不同场景不同需求\r\n //名字4短,小排行,名字6长,大排行\r\n getRankData(data,target,nameLength){\r\n target.listData = data.data.list;\r\n target.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n cc.fx.GameTool.setPic(target.selfNode.getChildByName(\"pic\").getChildByName(\"icon\"),target.selfData.pic);\r\n for(let i=0;i<=target.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:target.listData[i].nickName, total:target.listData[i].score,time:null, pic:target.listData[i].pic});\r\n if(cc.fx.GameConfig.GM_INFO.userId == target.listData[i].userId){\r\n self = true;\r\n target.rankNumber = i;\r\n target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (target.listData.length-1) && self == false){\r\n target.rankNumber = i;\r\n target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n }\r\n target.selfData.nickName = cc.fx.GameTool.subName(target.selfData.nickName,nameLength);\r\n target.selfNode.getChildByName(\"nameLab\").getComponent(cc.Label).string = target.selfData.nickName;\r\n target.selfNode.getChildByName(\"totalLab\").getComponent(cc.Label).string = target.selfData.score;\r\n let timeTemp = cc.fx.GameTool.getTimeShenNong(target.selfData.totleTimes);\r\n // target.selfNode.getChildByName(\"timeLab\").getComponent(cc.Label).string = timeTemp + \"\";\r\n switch(target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string){\r\n case \"1\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"one\").active = true;\r\n break;\r\n case \"2\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"two\").active = true;\r\n break;\r\n case \"3\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"three\").active = true;\r\n break;\r\n }\r\n // 大排行\r\n if(nameLength == 6){\r\n target.rankList.setData(rankData);\r\n target.selfNode.opacity = 255;\r\n if(target.selfData.totalSunCount == 0) target.selfNode.opacity = 0;\r\n }\r\n },\r\n\r\n getSeedRandom: function (min, max) {//包含min 不包含max\r\n // console.log(\"随机数:\",cc.fx.GameConfig.GM_INFO.currSeed);\r\n max = max || 1;\r\n min = min || 0;\r\n cc.fx.GameConfig.GM_INFO.currSeed = (cc.fx.GameConfig.GM_INFO.currSeed * 9301 + 49297) % 233280;\r\n let rnd = cc.fx.GameConfig.GM_INFO.currSeed / 233280.0;\r\n let tmp = min + rnd * (max - min);\r\n return parseInt(tmp);\r\n },\r\n //获取关卡配置的那个关卡数\r\n getCustom(type){\r\n let custom = cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom);\r\n if(custom == \"undifend\" || custom==null || custom == \"\"){\r\n this.setCustom();\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO_SET(\"custom\",custom[0]);\r\n if(custom[0] != 0 || type == true){\r\n custom.shift();\r\n if(custom.length == 0){\r\n this.setCustom();\r\n }\r\n else cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,custom);\r\n }\r\n }\r\n },\r\n //本地没有存储到配置,或者配置用完,重新创建配置\r\n setCustom(){\r\n let arrayLength = cc.fx.GameConfig.LEVEL_INFO.length;\r\n let arrayList = [];\r\n for(let i=1; i Math.random() - 0.5);\r\n arrayList.unshift(0)\r\n cc.fx.GameConfig.GM_INFO_SET(\"custom\",arrayList[0]);\r\n cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,arrayList);\r\n },\r\n\r\n\r\n getSetScreenResolutionFlag: function () {\r\n let size = cc.winSize;\r\n let width = size.width;\r\n let height = size.height;\r\n if ((height / width) > (16.2 / 9)) return false;\r\n return true;\r\n },\r\n //判断全面屏适配\r\n setFit: function (canvas) {\r\n let flag = cc.fx.GameTool.getSetScreenResolutionFlag();\r\n if (flag) {\r\n \t// console.log(\"不是全面屏\");\r\n } else {\r\n \t// console.log(\"是全面屏\");\r\n }\r\n return flag;\r\n },\r\n //获取游戏信息\r\n getGameInfo: function(node){\r\n var jg = false;\r\n return jg;\r\n },\r\n //设置游戏信息\r\n setGameInfo: function(pd){\r\n \r\n },\r\n\r\n //打字机效果\r\n typingAni(label,text,cb,target){\r\n var self = target;\r\n var html = '';\r\n var arr = text.split('');\r\n var len = arr.length;\r\n var step = 0;\r\n self.func = ()=>{\r\n html += arr[step];\r\n label.string = html;\r\n if (++step == len) {\r\n self.unschedule(self.func);\r\n cb && cb();\r\n }\r\n }\r\n self.schedule(self.func,0.1, cc.macro.REPEAT_FOREVER, 0)\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeMargin:(second) => {\r\n let total = 0;\r\n total = second;\r\n let hour = 0;\r\n hour = parseInt((total / 3600) + \"\");//计算整数小时数\r\n let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数\r\n let min = parseInt((afterHour / 60)+\"\");//计算整数分\r\n let m = \"\" + min; \r\n if(min < 10) m = \"0\"+min;\r\n let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"\";\r\n if(afterMin < 10) miao = \"0\" + afterMin;\r\n return m + ':' + miao\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeShenNong:(second) => {\r\n second = parseInt(second/1000+\"\");\r\n let total = 0;\r\n total = second;\r\n let min = 0;\r\n if(total > 60){\r\n min = parseInt((total / 60)+\"\");//计算整数分\r\n }\r\n let m = min + \"'\"; \r\n\r\n let afterMin = total - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"''\";\r\n return m + miao\r\n },\r\n\r\n //打乱数组\r\n shuffleArray: function (array) {\r\n for (let i = array.length - 1; i > 0; i--) {\r\n const j = Math.floor(Math.random() * (i + 1));\r\n [array[i], array[j]] = [array[j], array[i]];\r\n }\r\n return array;\r\n },\r\n\r\n\r\n //增加关卡数\r\n addLevel(time){\r\n cc.fx.GameConfig.GM_INFO.level += 1;\r\n if(cc.fx.GameConfig.GM_INFO.level > 156){\r\n cc.fx.GameConfig.GM_INFO.level = 156; \r\n }\r\n const timestamp = Date.now();\r\n let levelInfo = {\r\n level:cc.fx.GameConfig.GM_INFO.level,\r\n timestamp:timestamp,\r\n }\r\n // console.log(\"55555存储关卡数据:\",levelInfo);\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n let data = {\r\n time:time.count_Time,\r\n add_Time:time.add_Time,\r\n result:\"success\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\",data);\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n // console.log(\"存储结果:\",data);\r\n // console.log(\"上传\",data);\r\n })\r\n },\r\n\r\n //改变金币信息\r\n changeCoin(coin){\r\n console.log(\"changeCoin\",coin);\r\n if(coin == undefined) return;\r\n if(coin < 0 && cc.fx.GameConfig.GM_INFO.coin < -coin){\r\n // console.log(\"金币不足\",cc.fx.GameConfig.GM_INFO.coin,-coin);\r\n return;\r\n }\r\n cc.fx.GameConfig.GM_INFO.coin += coin;\r\n\r\n if(cc.fx.GameConfig.GM_INFO.coin < 0){\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n }\r\n // console.log(\"改变的金币:\",coin);\r\n // console.log(\"自身金币信息:\",cc.fx.GameConfig.GM_INFO.coin);\r\n const timestamp = Date.now();\r\n let coinInfo = {\r\n coin:cc.fx.GameConfig.GM_INFO.coin,\r\n timestamp:timestamp,\r\n }\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n // console.log(\"存储金币数据:\",cc.fx.GameConfig.GM_INFO.coin,coinInfo);\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n // console.log(\"上传\",data);\r\n })\r\n },\r\n\r\n //获取用户金币数量\r\n getUserCoin(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userCoin',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n // console.log('读取用户金币数据成功', res.result)\r\n if(callback)\r\n callback(res); \r\n\r\n },\r\n fail: err => {\r\n callback(err); \r\n\r\n }\r\n })\r\n }\r\n },\r\n\r\n //改变用户金币\r\n setUserCoin(callback){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n if(cc.fx.GameConfig.GM_INFO.coin <= 0 || cc.fx.GameConfig.GM_INFO.coin == undefined){\r\n console.log(\"金币上传失败\",cc.fx.GameConfig.GM_INFO.coin);\r\n // MiniGameSdk.API.showToast(cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n }\r\n console.log(\"即将上传的金币数量:\",cc.fx.GameConfig.GM_INFO.coin);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userCoin',\r\n data: {\r\n action: 'save',\r\n coinAmount: cc.fx.GameConfig.GM_INFO.coin\r\n },\r\n success: res => {\r\n // console.log('云函数返回结果:', res);\r\n if(res.result.code == 200){\r\n // console.log('存储金币数据成功',cc.fx.GameConfig.GM_INFO.coin);\r\n }\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n // console.log('存储金币数据失败')\r\n if(callback){\r\n callback(err);\r\n }\r\n console.error('存储用户数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n\r\n //获取用户关卡数\r\n getUserLevel(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userLevel',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n if(callback)\r\n callback(res); \r\n\r\n },\r\n fail: err => {\r\n callback(err); \r\n\r\n }\r\n })\r\n }\r\n },\r\n\r\n //进游戏处理 体力值情况\r\n getHealth(callback: Function){\r\n let health = cc.fx.StorageMessage.getStorage(\"health\");\r\n const timestamp = Date.now();\r\n cc.fx.GameConfig.GM_INFO.hp = 5;\r\n //没有存储过体力值\r\n if(health == null || health == undefined || health == \"\"){\r\n console.log(\"没存储过体力值,初进\");\r\n cc.fx.GameConfig.GM_INFO.hp = 5;\r\n cc.fx.GameTool.getUserHealth((data)=>{\r\n console.log(\"体力接口返回结果\",data);\r\n if(data.result.code == 200){\r\n cc.fx.GameConfig.GM_INFO.hp = data.result.data;\r\n cc.fx.GameConfig.GM_INFO.min_Time = data.result.timestamp;\r\n let healthInfo = {\r\n \"health\":cc.fx.GameConfig.GM_INFO.hp,\r\n \"timestamp\":data.result.timestamp\r\n }\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n cc.fx.StorageMessage.setStorage(\"health\",healthInfo);\r\n }\r\n else if(data.result.code == 404 && data.result.message == \"未找到体力数据\"){\r\n cc.fx.GameTool.setUserHealth(0,()=>{\r\n });\r\n }\r\n if(callback) callback();\r\n })\r\n }\r\n else{\r\n console.log(\"有存储过体力值:\",health);\r\n cc.fx.GameConfig.GM_INFO.hp = health.health;\r\n if(callback){\r\n console.log(\"体力值读取完毕\");\r\n callback();\r\n } \r\n if(health.health < 0){\r\n console.log(\"体力值异常,归零\");\r\n cc.fx.GameConfig.GM_INFO.hp = 0;\r\n cc.fx.GameTool.setUserHealth(0,()=>{\r\n if(callback) callback();\r\n });\r\n }\r\n else if(health.health < 5){\r\n // 30分钟的毫秒数\r\n const thirtyMinutes = 30 * 60 * 1000; \r\n const elapsedTime = timestamp - health.timestamp;\r\n // 计算恢复的体力值\r\n const recoveredHealth = Math.min(5 - health.health, Math.floor(elapsedTime / thirtyMinutes)); \r\n if (recoveredHealth > 0) {\r\n health.health += recoveredHealth;\r\n cc.fx.GameTool.setUserHealth(recoveredHealth,()=>{\r\n if(callback) callback();\r\n });\r\n console.log(`体力值恢复 ${recoveredHealth} 点,当前体力值: ${cc.fx.GameConfig.GM_INFO.hp}`);\r\n } else {\r\n // 计算距离下一次恢复的剩余时间\r\n const remainingTime = Math.ceil((thirtyMinutes - (elapsedTime % thirtyMinutes)) / 1000);\r\n console.log(`体力值未满,待恢复,距离下一次恢复还剩 ${remainingTime} 秒`);\r\n cc.fx.GameConfig.GM_INFO.min_Time = remainingTime;\r\n }\r\n }\r\n }\r\n },\r\n\r\n //获取用户体力值\r\n getUserHealth(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n console.log(\"即将进入体力获取接口\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userHealth',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n // console.log(\"体力获取成功\",res);\r\n if(callback)\r\n callback(res); \r\n },\r\n fail: err => {\r\n // console.log(\"体力获取失败\",err);\r\n callback(err); \r\n }\r\n })\r\n }\r\n },\r\n\r\n //设置用户体力值 有可能加,有可能定时器减\r\n setUserHealth(health,callback){\r\n cc.fx.GameConfig.GM_INFO.hp += health;\r\n // if(health < 0) {\r\n // }\r\n // else MiniGameSdk.API.showToast(\"体力值恢复\");\r\n const timestamp = Date.now();\r\n let healthInfo ={}\r\n \r\n //如果消耗之前不是满体力,说明已经在恢复期,并不用修改时间\r\n if(health < 0 && cc.fx.GameConfig.GM_INFO.hp != 4) {\r\n let oldTime = cc.fx.StorageMessage.getStorage(\"health\").timestamp;\r\n healthInfo = {\r\n \"health\":cc.fx.GameConfig.GM_INFO.hp,\r\n \"timestamp\":oldTime\r\n }\r\n }\r\n else{\r\n healthInfo = {\r\n \"health\":cc.fx.GameConfig.GM_INFO.hp,\r\n \"timestamp\":timestamp\r\n }\r\n }\r\n cc.fx.StorageMessage.setStorage(\"health\",healthInfo);\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userHealth',\r\n data: {\r\n action: 'save',\r\n healthAmount: cc.fx.GameConfig.GM_INFO.hp,\r\n timestamp:timestamp\r\n },\r\n success: res => {\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n if(callback){\r\n callback(err);\r\n }\r\n // console.error('存储关卡数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n //购买行为\r\n buyReview(coin,callback: Function){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n // console.log(\"实际即将消耗金币:\",coin);\r\n // this.changeCoin(coin);\r\n callback();\r\n }\r\n },\r\n\r\n //更改用户道具数\r\n buyProp(propid,callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n cc.fx.GameTool.changeCoin(-1500);\r\n cc.fx.GameTool.setUserProp(propid,3,(data)=>{\r\n })\r\n const data = {\r\n id: (propid + \"\"),\r\n num:3\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_get\",data);\r\n let _id = \"\";\r\n if(propid == 2001) _id = \"freeze_in_game\";\r\n else if(propid == 2002) _id = \"hammer_in_game\";\r\n else if(propid == 2003) _id = \"wand_in_game\";\r\n \r\n const buyData = {\r\n item_id:_id,\r\n item_num:1,\r\n item_price:1500,\r\n cost_type:\"gold\"\r\n }\r\n console.log(\"____________即将上传Shop_buy\",buyData);\r\n cc.fx.GameTool.shushu_Track(\"shop_buy\",buyData);\r\n callback();\r\n }\r\n },\r\n\r\n\r\n //改变用户关卡\r\n setUserLevel(callback){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n // if(cc.fx.GameConfig.GM_INFO.level <= 0 || cc.fx.GameConfig.GM_INFO.level == undefined){\r\n // console.log(\"等级重置为0\");\r\n // cc.fx.GameConfig.GM_INFO.level = 0;\r\n // }\r\n // console.log(\"即将上传的关卡数:\",cc.fx.GameConfig.GM_INFO.level);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userLevel',\r\n data: {\r\n action: 'save',\r\n levelAmount: cc.fx.GameConfig.GM_INFO.level\r\n },\r\n success: res => {\r\n // console.log('云函数返回结果:', res);\r\n // console.log('存储关卡数据成功',cc.fx.GameConfig.GM_INFO.level);\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n // console.log('存储关卡数据失败')\r\n return;\r\n if(callback){\r\n callback(err);\r\n }\r\n console.error('存储关卡数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n //获取用户关卡数\r\n getUserProp(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userProp',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n // console.log('读取用户道具数据成功', res.result)\r\n if(res.result.data){\r\n // cc.fx.GameConfig.GM_INFO.freezeAmount = res.result.data.freeze;\r\n // cc.fx.GameConfig.GM_INFO.hammerAmount = res.result.data.hammer;\r\n // cc.fx.GameConfig.GM_INFO.magicAmount = res.result.data.magic_wand;\r\n }\r\n if(callback)\r\n callback(res); \r\n\r\n },\r\n fail: err => {\r\n callback(err); \r\n }\r\n })\r\n }\r\n },\r\n\r\n //改变用户道具\r\n setUserProp(propid,amount,callback){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n let newPropData = null;\r\n if(propid == 0){\r\n newPropData = {\r\n freeze:cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n hammer:cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n magic_wand:cc.fx.GameConfig.GM_INFO.magicAmount,\r\n }\r\n }\r\n else if(propid == 2001){\r\n newPropData = amount;\r\n }\r\n else if(propid == 2002){\r\n newPropData = amount; \r\n }\r\n else if(propid == 2003){\r\n newPropData = amount; \r\n }\r\n\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userProp',\r\n data: {\r\n action: 'save',\r\n propType: propid,\r\n propData: newPropData\r\n },\r\n success: res => {\r\n // console.log('云函数返回结果:', res);\r\n if(callback){\r\n callback(res);\r\n }\r\n // console.log('存储道具数据成功')\r\n },\r\n fail: err => {\r\n // console.log('存储道具数据失败')\r\n if(callback){\r\n callback(err);\r\n }\r\n console.error('存储道具数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n // 检查是否有足够的硬币\r\n consumeCoins(requiredCoins: number, propName: string, amount: number, callback) {\r\n \r\n\r\n },\r\n\r\n // 设置用户信息\r\n setUserInfo(callback: Function) {\r\n //@ts-ignore\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n const time = cc.fx.GameTool.formatDate(new Date());\r\n let userInfo = {\r\n // 这里填写要存储的用户数据\r\n username: cc.fx.GameConfig.GM_INFO.username, //用户名称\r\n useravatar: cc.fx.GameConfig.GM_INFO.useravatar, //用户头像\r\n register_time: time\r\n }\r\n \r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'save',\r\n userData: userInfo\r\n },\r\n success: res => {\r\n // console.log('存储用户数据成功')\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n if(callback){\r\n callback(\"fail\");\r\n }\r\n }\r\n })\r\n } \r\n },\r\n\r\n formatDate(date: Date): string {\r\n const year = date.getFullYear();\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const day = String(date.getDate()).padStart(2, '0');\r\n const hours = String(date.getHours()).padStart(2, '0');\r\n const minutes = String(date.getMinutes()).padStart(2, '0');\r\n const seconds = String(date.getSeconds()).padStart(2, '0');\r\n const milliseconds = String(date.getMilliseconds()).padStart(3, '0');\r\n\r\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`;\r\n },\r\n \r\n //获取时间戳\r\n getTime(){\r\n const timestamp = (new Date().getTime())\r\n return timestamp;\r\n },\r\n pushLister:function () {\r\n \r\n },\r\n removeAllLister:function () {\r\n \r\n },\r\n\r\n shushu_Track: function(name,data){\r\n let eventData = {}\r\n switch(name){\r\n case \"register\":\r\n break;\r\n case \"enter_stage\":\r\n eventData = {\r\n stage_id: (cc.fx.GameConfig.GM_INFO.level + 1)\r\n }\r\n break;\r\n case \"finish_stage\":\r\n eventData = {\r\n stage_id: (cc.fx.GameConfig.GM_INFO.level + 1),\r\n stage_duration: data.time,\r\n added_time: data.add_Time,\r\n result: data.result\r\n }\r\n break;\r\n case \"resource_get\":\r\n eventData = {\r\n change_reason:\"购买道具\", //获得来源\r\n change_num:data.num, //获得数量\r\n resource_id:data.id //道具id\r\n }\r\n break;\r\n case \"resource_cost\":\r\n eventData = {\r\n change_reason:\"使用道具\", //获得来源\r\n change_num:data.num, //获得数量\r\n resource_id:data.id //道具id\r\n }\r\n break; \r\n case \"shop_buy\":\r\n eventData = {\r\n item_id: data.item_id,\r\n item_num: data.item_num,\r\n item_price: data.item_price,\r\n cost_type: data.cost_type, \r\n }\r\n console.log(\"数据:\",eventData);\r\n break;\r\n }\r\n // MiniGameSdk.API.shushu_Track(name,eventData);\r\n MiniGameSdk.API.shushu_Track(name, eventData);\r\n },\r\n\r\n getWechatGameVersion: function(){\r\n //@ts-ignore\r\n const accountInfo = wx.getAccountInfoSync();\r\n const miniProgram = accountInfo.miniProgram;\r\n switch (miniProgram.envVersion) {\r\n case 'develop':\r\n return '开发版';\r\n case 'trial':\r\n return '体验版';\r\n case 'release':\r\n return '正式版';\r\n default:\r\n return '未知版本';\r\n }\r\n },\r\n\r\n};\r\nexport { GameTool };"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\module\\Tool\\GameTool.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import { MiniGameSdk } from \"../../Sdk/MiniGameSdk\";\r\n\r\n//最大工具类 各种公共方法,以及处理上传,获取后端接口数据\r\nvar GameTool = {\r\n _startTime: 0,\r\n _endTime: 0,\r\n _totalTime: 0,\r\n \r\n //获取userId\r\n Authentication(){\r\n let name = \"user_\" + cc.fx.GameConfig.GM_INFO.gameId;\r\n var data = JSON.parse(localStorage.getItem(name));\r\n if(data == \"undifend\" || data==null || data == \"\"){\r\n var urlNow = window.location.href;\r\n if(!this.containsTrain(urlNow)){\r\n let url = \"https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=\"+location.href;\r\n window.location.href = url;\r\n }\r\n }\r\n else{\r\n cc.fx.StorageMessage.setStorage(name,data);\r\n cc.fx.GameConfig.GM_INFO.userId = parseInt(data.userId);\r\n }\r\n },\r\n\r\n containsTrain(str) {\r\n return /from=train/i.test(str);\r\n },\r\n\r\n //埋点上传\r\n setGameData(){\r\n //GAME_DATA 初始化 每次清零\r\n cc.fx.GameConfig.GAME_DATA = [];\r\n cc.fx.GameConfig.GAME_DATA.push(cc.fx.GameConfig.CLICK_DATA);\r\n cc.fx.GameConfig.CLICK_init();\r\n let data = cc.fx.GameConfig.GAME_DATA;\r\n let matchId = this.getMatchId();\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"scode\": cc.fx.GameConfig.GM_INFO.scode,\r\n \"matchId\":matchId,\r\n \"data\": data\r\n };\r\n\r\n // console.log(\"上传数据:\",postData);\r\n // cc.fx.HttpUtil.uploadUserLogData(postData,function(){})\r\n },\r\n //上传排行榜 type为1\r\n setRank(data){\r\n //GAME_DATA 初始化 每次清零\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"type\":1,\r\n \"score\": data.score,\r\n \"accuracy\": data.date,\r\n \"success\": cc.fx.GameConfig.GM_INFO.success\r\n };\r\n // cc.fx.HttpUtil.rankData(1,function(){},postData);\r\n },\r\n //获取排行榜 type为2\r\n getRank(data,callback){\r\n let rankLength = data.length;\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"page\":1,\r\n \"pageSize\":rankLength\r\n }; \r\n //回调进getRankData\r\n // cc.fx.HttpUtil.rankData(2,data =>{callback(data)},postData);\r\n },\r\n //获取matchId 用于上传每次点击数据里面记录id方便查询\r\n getMatchId (){\r\n let matchId = cc.sys.localStorage.getItem(\"matchId\");\r\n let tempId = matchId;\r\n if(matchId == \"undifend\" || matchId==null){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n let char = parseInt(tempId.substring(10,tempId.length));\r\n if(cc.fx.GameConfig.GM_INFO.level == 1){\r\n char += 1;\r\n matchId = tempId.slice(0, 10) + char + \"\";\r\n if(this.containsNanana(matchId)) matchId = this.setMatchId();\r\n cc.fx.GameConfig.GM_INFO.matchId = matchId;\r\n cc.sys.localStorage.setItem(\"matchId\",matchId);\r\n }\r\n }\r\n }\r\n\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n return matchId;\r\n },\r\n //检测matchId 如果有缓存以前的nanana数据清除\r\n containsNanana(str) {\r\n return /na/i.test(str);\r\n },\r\n //重新设置MatchId\r\n setMatchId (){\r\n // 定义包含可用字符的字符集\r\n const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n // 创建一个数组以保存随机字符\r\n const uuidArray = [];\r\n // 循环10次 生成10位的UUID\r\n for (let i = 0; i < 10; i++) {\r\n // 生成随机索引,范围是字符集的长度\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n // 从字符集中获取随机字符\r\n const randomChar = characters.charAt(randomIndex);\r\n // 将字符添加到数组中\r\n uuidArray.push(randomChar);\r\n }\r\n let data = uuidArray.join('') + 1 + \"\";\r\n cc.sys.localStorage.setItem(\"matchNumber\",1);\r\n cc.sys.localStorage.setItem(\"matchId\",data);\r\n cc.fx.GameConfig.GM_INFO.matchId = data;\r\n return data;\r\n },\r\n //截取名字\r\n subName(name,length){\r\n if(name.length > length){\r\n name = name.substring(0,length) + \"...\"\r\n }\r\n return name;\r\n },\r\n //设置头像\r\n setPic(node,pic){\r\n node.active = false;\r\n let url = pic;\r\n setTimeout(() => {\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n node.active = true;\r\n }\r\n })\r\n .catch(error => {\r\n // console.error('Error fetching X-Info:', error);\r\n });\r\n }, 100);\r\n cc.assetManager.loadRemote(url, {ext:'.png'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n node.active = true;\r\n node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n // console.log(err,texture)\r\n }\r\n })\r\n },\r\n //第一个参数把目标带进来处理,第二个参数为名字长度,不同场景不同需求\r\n //名字4短,小排行,名字6长,大排行\r\n getRankData(data,target,nameLength){\r\n target.listData = data.data.list;\r\n target.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n cc.fx.GameTool.setPic(target.selfNode.getChildByName(\"pic\").getChildByName(\"icon\"),target.selfData.pic);\r\n for(let i=0;i<=target.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:target.listData[i].nickName, total:target.listData[i].score,time:null, pic:target.listData[i].pic});\r\n if(cc.fx.GameConfig.GM_INFO.userId == target.listData[i].userId){\r\n self = true;\r\n target.rankNumber = i;\r\n target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (target.listData.length-1) && self == false){\r\n target.rankNumber = i;\r\n target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n }\r\n target.selfData.nickName = cc.fx.GameTool.subName(target.selfData.nickName,nameLength);\r\n target.selfNode.getChildByName(\"nameLab\").getComponent(cc.Label).string = target.selfData.nickName;\r\n target.selfNode.getChildByName(\"totalLab\").getComponent(cc.Label).string = target.selfData.score;\r\n let timeTemp = cc.fx.GameTool.getTimeShenNong(target.selfData.totleTimes);\r\n // target.selfNode.getChildByName(\"timeLab\").getComponent(cc.Label).string = timeTemp + \"\";\r\n switch(target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string){\r\n case \"1\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"one\").active = true;\r\n break;\r\n case \"2\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"two\").active = true;\r\n break;\r\n case \"3\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"three\").active = true;\r\n break;\r\n }\r\n // 大排行\r\n if(nameLength == 6){\r\n target.rankList.setData(rankData);\r\n target.selfNode.opacity = 255;\r\n if(target.selfData.totalSunCount == 0) target.selfNode.opacity = 0;\r\n }\r\n },\r\n\r\n getSeedRandom: function (min, max) {//包含min 不包含max\r\n // console.log(\"随机数:\",cc.fx.GameConfig.GM_INFO.currSeed);\r\n max = max || 1;\r\n min = min || 0;\r\n cc.fx.GameConfig.GM_INFO.currSeed = (cc.fx.GameConfig.GM_INFO.currSeed * 9301 + 49297) % 233280;\r\n let rnd = cc.fx.GameConfig.GM_INFO.currSeed / 233280.0;\r\n let tmp = min + rnd * (max - min);\r\n return parseInt(tmp);\r\n },\r\n //获取关卡配置的那个关卡数\r\n getCustom(type){\r\n let custom = cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom);\r\n if(custom == \"undifend\" || custom==null || custom == \"\"){\r\n this.setCustom();\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO_SET(\"custom\",custom[0]);\r\n if(custom[0] != 0 || type == true){\r\n custom.shift();\r\n if(custom.length == 0){\r\n this.setCustom();\r\n }\r\n else cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,custom);\r\n }\r\n }\r\n },\r\n //本地没有存储到配置,或者配置用完,重新创建配置\r\n setCustom(){\r\n let arrayLength = cc.fx.GameConfig.LEVEL_INFO.length;\r\n let arrayList = [];\r\n for(let i=1; i Math.random() - 0.5);\r\n arrayList.unshift(0)\r\n cc.fx.GameConfig.GM_INFO_SET(\"custom\",arrayList[0]);\r\n cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,arrayList);\r\n },\r\n\r\n\r\n getSetScreenResolutionFlag: function () {\r\n let size = cc.winSize;\r\n let width = size.width;\r\n let height = size.height;\r\n if ((height / width) > (16.2 / 9)) return false;\r\n return true;\r\n },\r\n //判断全面屏适配\r\n setFit: function (canvas) {\r\n let flag = cc.fx.GameTool.getSetScreenResolutionFlag();\r\n if (flag) {\r\n \t// console.log(\"不是全面屏\");\r\n } else {\r\n \t// console.log(\"是全面屏\");\r\n }\r\n return flag;\r\n },\r\n //获取游戏信息\r\n getGameInfo: function(node){\r\n var jg = false;\r\n return jg;\r\n },\r\n //设置游戏信息\r\n setGameInfo: function(pd){\r\n \r\n },\r\n\r\n //打字机效果\r\n typingAni(label,text,cb,target){\r\n var self = target;\r\n var html = '';\r\n var arr = text.split('');\r\n var len = arr.length;\r\n var step = 0;\r\n self.func = ()=>{\r\n html += arr[step];\r\n label.string = html;\r\n if (++step == len) {\r\n self.unschedule(self.func);\r\n cb && cb();\r\n }\r\n }\r\n self.schedule(self.func,0.1, cc.macro.REPEAT_FOREVER, 0)\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeMargin:(second) => {\r\n let total = 0;\r\n total = second;\r\n let hour = 0;\r\n hour = parseInt((total / 3600) + \"\");//计算整数小时数\r\n let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数\r\n let min = parseInt((afterHour / 60)+\"\");//计算整数分\r\n let m = \"\" + min; \r\n if(min < 10) m = \"0\"+min;\r\n let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"\";\r\n if(afterMin < 10) miao = \"0\" + afterMin;\r\n return m + ':' + miao\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeShenNong:(second) => {\r\n second = parseInt(second/1000+\"\");\r\n let total = 0;\r\n total = second;\r\n let min = 0;\r\n if(total > 60){\r\n min = parseInt((total / 60)+\"\");//计算整数分\r\n }\r\n let m = min + \"'\"; \r\n\r\n let afterMin = total - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"''\";\r\n return m + miao\r\n },\r\n\r\n //打乱数组\r\n shuffleArray: function (array) {\r\n for (let i = array.length - 1; i > 0; i--) {\r\n const j = Math.floor(Math.random() * (i + 1));\r\n [array[i], array[j]] = [array[j], array[i]];\r\n }\r\n return array;\r\n },\r\n\r\n\r\n //增加关卡数\r\n addLevel(time1,time2){\r\n cc.fx.GameConfig.GM_INFO.level += 1;\r\n if(cc.fx.GameConfig.GM_INFO.level > 156){\r\n cc.fx.GameConfig.GM_INFO.level = 156; \r\n }\r\n const timestamp = Date.now();\r\n let levelInfo = {\r\n level:cc.fx.GameConfig.GM_INFO.level,\r\n timestamp:timestamp,\r\n }\r\n // console.log(\"55555存储关卡数据:\",levelInfo);\r\n cc.fx.StorageMessage.setStorage(\"level\",levelInfo);\r\n if(time1 && time2){\r\n let data = {\r\n time:time1,\r\n add_Time:time2,\r\n result:\"success\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\",data);\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n }\r\n \r\n cc.fx.GameTool.setUserLevel((data)=>{\r\n // console.log(\"存储结果:\",data);\r\n // console.log(\"上传\",data);\r\n })\r\n },\r\n\r\n //改变金币信息\r\n changeCoin(coin){\r\n console.log(\"changeCoin\",coin);\r\n if(coin == undefined) return;\r\n if(coin < 0 && cc.fx.GameConfig.GM_INFO.coin < -coin){\r\n // console.log(\"金币不足\",cc.fx.GameConfig.GM_INFO.coin,-coin);\r\n return;\r\n }\r\n cc.fx.GameConfig.GM_INFO.coin += coin;\r\n\r\n if(cc.fx.GameConfig.GM_INFO.coin < 0){\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n }\r\n // console.log(\"改变的金币:\",coin);\r\n // console.log(\"自身金币信息:\",cc.fx.GameConfig.GM_INFO.coin);\r\n const timestamp = Date.now();\r\n let coinInfo = {\r\n coin:cc.fx.GameConfig.GM_INFO.coin,\r\n timestamp:timestamp,\r\n }\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n cc.fx.StorageMessage.setStorage(\"coin\",coinInfo);\r\n // console.log(\"存储金币数据:\",cc.fx.GameConfig.GM_INFO.coin,coinInfo);\r\n cc.fx.GameTool.setUserCoin((data)=>{\r\n // console.log(\"上传\",data);\r\n })\r\n },\r\n\r\n //获取用户金币数量\r\n getUserCoin(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userCoin',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n // console.log('读取用户金币数据成功', res.result)\r\n if(callback)\r\n callback(res); \r\n\r\n },\r\n fail: err => {\r\n callback(err); \r\n\r\n }\r\n })\r\n }\r\n },\r\n\r\n //改变用户金币\r\n setUserCoin(callback){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n if(cc.fx.GameConfig.GM_INFO.coin <= 0 || cc.fx.GameConfig.GM_INFO.coin == undefined){\r\n console.log(\"金币上传失败\",cc.fx.GameConfig.GM_INFO.coin);\r\n // MiniGameSdk.API.showToast(cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n }\r\n console.log(\"即将上传的金币数量:\",cc.fx.GameConfig.GM_INFO.coin);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userCoin',\r\n data: {\r\n action: 'save',\r\n coinAmount: cc.fx.GameConfig.GM_INFO.coin\r\n },\r\n success: res => {\r\n // console.log('云函数返回结果:', res);\r\n if(res.result.code == 200){\r\n // console.log('存储金币数据成功',cc.fx.GameConfig.GM_INFO.coin);\r\n }\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n // console.log('存储金币数据失败')\r\n if(callback){\r\n callback(err);\r\n }\r\n console.error('存储用户数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n\r\n //获取用户关卡数\r\n getUserLevel(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userLevel',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n if(callback)\r\n callback(res); \r\n\r\n },\r\n fail: err => {\r\n callback(err); \r\n\r\n }\r\n })\r\n }\r\n },\r\n\r\n //进游戏处理 体力值情况\r\n getHealth(callback: Function){\r\n let health = cc.fx.StorageMessage.getStorage(\"health\");\r\n const timestamp = Date.now();\r\n cc.fx.GameConfig.GM_INFO.hp = 5;\r\n //没有存储过体力值\r\n if(health == null || health == undefined || health == \"\"){\r\n console.log(\"没存储过体力值,初进\");\r\n cc.fx.GameConfig.GM_INFO.hp = 5;\r\n cc.fx.GameTool.getUserHealth((data)=>{\r\n console.log(\"体力接口返回结果\",data);\r\n if(data.result.code == 200){\r\n cc.fx.GameConfig.GM_INFO.hp = data.result.data;\r\n cc.fx.GameConfig.GM_INFO.min_Time = data.result.timestamp;\r\n let healthInfo = {\r\n \"health\":cc.fx.GameConfig.GM_INFO.hp,\r\n \"timestamp\":data.result.timestamp\r\n }\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n cc.fx.StorageMessage.setStorage(\"health\",healthInfo);\r\n }\r\n else if(data.result.code == 404 && data.result.message == \"未找到体力数据\"){\r\n cc.fx.GameTool.setUserHealth(0,()=>{\r\n });\r\n }\r\n if(callback) callback();\r\n })\r\n }\r\n else{\r\n console.log(\"有存储过体力值:\",health);\r\n cc.fx.GameConfig.GM_INFO.hp = health.health;\r\n if(callback){\r\n console.log(\"体力值读取完毕\");\r\n callback();\r\n } \r\n if(health.health < 0){\r\n console.log(\"体力值异常,归零\");\r\n cc.fx.GameConfig.GM_INFO.hp = 0;\r\n cc.fx.GameTool.setUserHealth(0,()=>{\r\n if(callback) callback();\r\n });\r\n }\r\n else if(health.health < 5){\r\n // 30分钟的毫秒数\r\n const thirtyMinutes = 30 * 60 * 1000; \r\n const elapsedTime = timestamp - health.timestamp;\r\n // 计算恢复的体力值\r\n const recoveredHealth = Math.min(5 - health.health, Math.floor(elapsedTime / thirtyMinutes)); \r\n if (recoveredHealth > 0) {\r\n health.health += recoveredHealth;\r\n cc.fx.GameTool.setUserHealth(recoveredHealth,()=>{\r\n if(callback) callback();\r\n });\r\n console.log(`体力值恢复 ${recoveredHealth} 点,当前体力值: ${cc.fx.GameConfig.GM_INFO.hp}`);\r\n } else {\r\n // 计算距离下一次恢复的剩余时间\r\n const remainingTime = Math.ceil((thirtyMinutes - (elapsedTime % thirtyMinutes)) / 1000);\r\n console.log(`体力值未满,待恢复,距离下一次恢复还剩 ${remainingTime} 秒`);\r\n cc.fx.GameConfig.GM_INFO.min_Time = remainingTime;\r\n }\r\n }\r\n }\r\n },\r\n\r\n //获取用户体力值\r\n getUserHealth(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n console.log(\"即将进入体力获取接口\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userHealth',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n // console.log(\"体力获取成功\",res);\r\n if(callback)\r\n callback(res); \r\n },\r\n fail: err => {\r\n // console.log(\"体力获取失败\",err);\r\n callback(err); \r\n }\r\n })\r\n }\r\n },\r\n\r\n //设置用户体力值 有可能加,有可能定时器减\r\n setUserHealth(health,callback){\r\n cc.fx.GameConfig.GM_INFO.hp += health;\r\n // if(health < 0) {\r\n // }\r\n // else MiniGameSdk.API.showToast(\"体力值恢复\");\r\n const timestamp = Date.now();\r\n let healthInfo ={}\r\n \r\n //如果消耗之前不是满体力,说明已经在恢复期,并不用修改时间\r\n if(health < 0 && cc.fx.GameConfig.GM_INFO.hp != 4) {\r\n let oldTime = cc.fx.StorageMessage.getStorage(\"health\").timestamp;\r\n healthInfo = {\r\n \"health\":cc.fx.GameConfig.GM_INFO.hp,\r\n \"timestamp\":oldTime\r\n }\r\n }\r\n else{\r\n healthInfo = {\r\n \"health\":cc.fx.GameConfig.GM_INFO.hp,\r\n \"timestamp\":timestamp\r\n }\r\n }\r\n cc.fx.StorageMessage.setStorage(\"health\",healthInfo);\r\n MiniGameSdk.API.shushu_SetSuperProperties();\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userHealth',\r\n data: {\r\n action: 'save',\r\n healthAmount: cc.fx.GameConfig.GM_INFO.hp,\r\n timestamp:timestamp\r\n },\r\n success: res => {\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n if(callback){\r\n callback(err);\r\n }\r\n // console.error('存储关卡数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n //购买行为\r\n buyReview(coin,callback: Function){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n // console.log(\"实际即将消耗金币:\",coin);\r\n // this.changeCoin(coin);\r\n callback();\r\n }\r\n },\r\n\r\n //更改用户道具数\r\n buyProp(propid,callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n cc.fx.GameTool.changeCoin(-1500);\r\n cc.fx.GameTool.setUserProp(propid,3,(data)=>{\r\n })\r\n const data = {\r\n id: (propid + \"\"),\r\n num:3\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_get\",data);\r\n let _id = \"\";\r\n if(propid == 2001) _id = \"freeze_in_game\";\r\n else if(propid == 2002) _id = \"hammer_in_game\";\r\n else if(propid == 2003) _id = \"wand_in_game\";\r\n \r\n const buyData = {\r\n item_id:_id,\r\n item_num:1,\r\n item_price:1500,\r\n cost_type:\"gold\"\r\n }\r\n console.log(\"____________即将上传Shop_buy\",buyData);\r\n cc.fx.GameTool.shushu_Track(\"shop_buy\",buyData);\r\n callback();\r\n }\r\n },\r\n\r\n\r\n //改变用户关卡\r\n setUserLevel(callback){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n // if(cc.fx.GameConfig.GM_INFO.level <= 0 || cc.fx.GameConfig.GM_INFO.level == undefined){\r\n // console.log(\"等级重置为0\");\r\n // cc.fx.GameConfig.GM_INFO.level = 0;\r\n // }\r\n // console.log(\"即将上传的关卡数:\",cc.fx.GameConfig.GM_INFO.level);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userLevel',\r\n data: {\r\n action: 'save',\r\n levelAmount: cc.fx.GameConfig.GM_INFO.level\r\n },\r\n success: res => {\r\n // console.log('云函数返回结果:', res);\r\n // console.log('存储关卡数据成功',cc.fx.GameConfig.GM_INFO.level);\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n // console.log('存储关卡数据失败')\r\n return;\r\n if(callback){\r\n callback(err);\r\n }\r\n console.error('存储关卡数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n //获取用户关卡数\r\n getUserProp(callback: Function) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userProp',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n // console.log('读取用户道具数据成功', res.result)\r\n if(res.result.data){\r\n // cc.fx.GameConfig.GM_INFO.freezeAmount = res.result.data.freeze;\r\n // cc.fx.GameConfig.GM_INFO.hammerAmount = res.result.data.hammer;\r\n // cc.fx.GameConfig.GM_INFO.magicAmount = res.result.data.magic_wand;\r\n }\r\n if(callback)\r\n callback(res); \r\n\r\n },\r\n fail: err => {\r\n callback(err); \r\n }\r\n })\r\n }\r\n },\r\n\r\n //改变用户道具\r\n setUserProp(propid,amount,callback){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n let newPropData = null;\r\n if(propid == 0){\r\n newPropData = {\r\n freeze:cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n hammer:cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n magic_wand:cc.fx.GameConfig.GM_INFO.magicAmount,\r\n }\r\n }\r\n else if(propid == 2001){\r\n newPropData = amount;\r\n }\r\n else if(propid == 2002){\r\n newPropData = amount; \r\n }\r\n else if(propid == 2003){\r\n newPropData = amount; \r\n }\r\n\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userProp',\r\n data: {\r\n action: 'save',\r\n propType: propid,\r\n propData: newPropData\r\n },\r\n success: res => {\r\n // console.log('云函数返回结果:', res);\r\n if(callback){\r\n callback(res);\r\n }\r\n // console.log('存储道具数据成功')\r\n },\r\n fail: err => {\r\n // console.log('存储道具数据失败')\r\n if(callback){\r\n callback(err);\r\n }\r\n console.error('存储道具数据失败', err)\r\n }\r\n })\r\n }\r\n },\r\n\r\n // 检查是否有足够的硬币\r\n consumeCoins(requiredCoins: number, propName: string, amount: number, callback) {\r\n \r\n\r\n },\r\n\r\n // 设置用户信息\r\n setUserInfo(callback: Function) {\r\n //@ts-ignore\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n const time = cc.fx.GameTool.formatDate(new Date());\r\n let userInfo = {\r\n // 这里填写要存储的用户数据\r\n username: cc.fx.GameConfig.GM_INFO.username, //用户名称\r\n useravatar: cc.fx.GameConfig.GM_INFO.useravatar, //用户头像\r\n register_time: time\r\n }\r\n \r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'save',\r\n userData: userInfo\r\n },\r\n success: res => {\r\n // console.log('存储用户数据成功')\r\n if(callback){\r\n callback(res);\r\n }\r\n \r\n },\r\n fail: err => {\r\n if(callback){\r\n callback(\"fail\");\r\n }\r\n }\r\n })\r\n } \r\n },\r\n\r\n formatDate(date: Date): string {\r\n const year = date.getFullYear();\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const day = String(date.getDate()).padStart(2, '0');\r\n const hours = String(date.getHours()).padStart(2, '0');\r\n const minutes = String(date.getMinutes()).padStart(2, '0');\r\n const seconds = String(date.getSeconds()).padStart(2, '0');\r\n const milliseconds = String(date.getMilliseconds()).padStart(3, '0');\r\n\r\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`;\r\n },\r\n \r\n //获取时间戳\r\n getTime(){\r\n const timestamp = (new Date().getTime())\r\n return timestamp;\r\n },\r\n pushLister:function () {\r\n \r\n },\r\n removeAllLister:function () {\r\n \r\n },\r\n\r\n shushu_Track: function(name,data){\r\n let eventData = {}\r\n switch(name){\r\n case \"register\":\r\n break;\r\n case \"enter_stage\":\r\n eventData = {\r\n stage_id: (cc.fx.GameConfig.GM_INFO.level + 1)\r\n }\r\n break;\r\n case \"finish_stage\":\r\n eventData = {\r\n stage_id: (cc.fx.GameConfig.GM_INFO.level + 1),\r\n stage_duration: data.time,\r\n added_time: data.add_Time,\r\n result: data.result\r\n }\r\n break;\r\n case \"resource_get\":\r\n eventData = {\r\n change_reason:\"购买道具\", //获得来源\r\n change_num:data.num, //获得数量\r\n resource_id:data.id //道具id\r\n }\r\n break;\r\n case \"resource_cost\":\r\n eventData = {\r\n change_reason:\"使用道具\", //获得来源\r\n change_num:data.num, //获得数量\r\n resource_id:data.id //道具id\r\n }\r\n break; \r\n case \"shop_buy\":\r\n eventData = {\r\n item_id: data.item_id,\r\n item_num: data.item_num,\r\n item_price: data.item_price,\r\n cost_type: data.cost_type, \r\n }\r\n console.log(\"数据:\",eventData);\r\n break;\r\n }\r\n // MiniGameSdk.API.shushu_Track(name,eventData);\r\n MiniGameSdk.API.shushu_Track(name, eventData);\r\n },\r\n\r\n getWechatGameVersion: function(){\r\n //@ts-ignore\r\n const accountInfo = wx.getAccountInfoSync();\r\n const miniProgram = accountInfo.miniProgram;\r\n switch (miniProgram.envVersion) {\r\n case 'develop':\r\n return '开发版';\r\n case 'trial':\r\n return '体验版';\r\n case 'release':\r\n return '正式版';\r\n default:\r\n return '未知版本';\r\n }\r\n },\r\n\r\n};\r\nexport { GameTool };"]} \ No newline at end of file diff --git a/temp/startup.json b/temp/startup.json index 8ec9322..ccc37c9 100644 --- a/temp/startup.json +++ b/temp/startup.json @@ -1 +1 @@ -{"pid":9816} +{"pid":28072} diff --git a/图片资源/UI/Buy.png b/图片资源/UI/Buy.png new file mode 100644 index 0000000..0b360ad Binary files /dev/null and b/图片资源/UI/Buy.png differ diff --git a/图片资源/UI/add.png b/图片资源/UI/add.png new file mode 100644 index 0000000..abe9f0e Binary files /dev/null and b/图片资源/UI/add.png differ diff --git a/图片资源/UI/boom.png b/图片资源/UI/boom.png new file mode 100644 index 0000000..ac8f296 Binary files /dev/null and b/图片资源/UI/boom.png differ diff --git a/图片资源/UI/btn_Buy.png b/图片资源/UI/btn_Buy.png new file mode 100644 index 0000000..5a1dbc1 Binary files /dev/null and b/图片资源/UI/btn_Buy.png differ diff --git a/图片资源/UI/btn_blue.png b/图片资源/UI/btn_blue.png new file mode 100644 index 0000000..c5c092e Binary files /dev/null and b/图片资源/UI/btn_blue.png differ diff --git a/图片资源/UI/btn_guanbi.png b/图片资源/UI/btn_guanbi.png new file mode 100644 index 0000000..ea83503 Binary files /dev/null and b/图片资源/UI/btn_guanbi.png differ diff --git a/图片资源/UI/btn_hdzjm1.png b/图片资源/UI/btn_hdzjm1.png new file mode 100644 index 0000000..fb80c05 Binary files /dev/null and b/图片资源/UI/btn_hdzjm1.png differ diff --git a/图片资源/UI/btn_jixu _sz1.png b/图片资源/UI/btn_jixu _sz1.png new file mode 100644 index 0000000..ed06d15 Binary files /dev/null and b/图片资源/UI/btn_jixu _sz1.png differ diff --git a/图片资源/UI/btn_jixu _sz2.png b/图片资源/UI/btn_jixu _sz2.png new file mode 100644 index 0000000..76f133e Binary files /dev/null and b/图片资源/UI/btn_jixu _sz2.png differ diff --git a/图片资源/UI/btn_jixu _sz3.png b/图片资源/UI/btn_jixu _sz3.png new file mode 100644 index 0000000..5015f2f Binary files /dev/null and b/图片资源/UI/btn_jixu _sz3.png differ diff --git a/图片资源/UI/btn_jixu _sz4.png b/图片资源/UI/btn_jixu _sz4.png new file mode 100644 index 0000000..a540f82 Binary files /dev/null and b/图片资源/UI/btn_jixu _sz4.png differ diff --git a/图片资源/UI/btn_tanchuang1.png b/图片资源/UI/btn_tanchuang1.png new file mode 100644 index 0000000..ff3ffff Binary files /dev/null and b/图片资源/UI/btn_tanchuang1.png differ diff --git a/图片资源/UI/btn_xyg1.png b/图片资源/UI/btn_xyg1.png new file mode 100644 index 0000000..a1402ff Binary files /dev/null and b/图片资源/UI/btn_xyg1.png differ diff --git a/图片资源/UI/btn_zi_fenxiang1.png b/图片资源/UI/btn_zi_fenxiang1.png new file mode 100644 index 0000000..895e1eb Binary files /dev/null and b/图片资源/UI/btn_zi_fenxiang1.png differ diff --git a/图片资源/UI/btn_zi_fenxiang2.png b/图片资源/UI/btn_zi_fenxiang2.png new file mode 100644 index 0000000..1018ed2 Binary files /dev/null and b/图片资源/UI/btn_zi_fenxiang2.png differ diff --git a/图片资源/UI/btn_zi_jixu.png b/图片资源/UI/btn_zi_jixu.png new file mode 100644 index 0000000..4ee6cd2 Binary files /dev/null and b/图片资源/UI/btn_zi_jixu.png differ diff --git a/图片资源/UI/btn_zi_lingqu.png b/图片资源/UI/btn_zi_lingqu.png new file mode 100644 index 0000000..b8aa38a Binary files /dev/null and b/图片资源/UI/btn_zi_lingqu.png differ diff --git a/图片资源/UI/btn_zi_shouquan.png b/图片资源/UI/btn_zi_shouquan.png new file mode 100644 index 0000000..ef88df6 Binary files /dev/null and b/图片资源/UI/btn_zi_shouquan.png differ diff --git a/图片资源/UI/btn_zi_xhongshi.png b/图片资源/UI/btn_zi_xhongshi.png new file mode 100644 index 0000000..994c123 Binary files /dev/null and b/图片资源/UI/btn_zi_xhongshi.png differ diff --git a/图片资源/UI/buy_Label.png b/图片资源/UI/buy_Label.png new file mode 100644 index 0000000..fe67c3d Binary files /dev/null and b/图片资源/UI/buy_Label.png differ diff --git a/图片资源/UI/chui.png b/图片资源/UI/chui.png new file mode 100644 index 0000000..6884551 Binary files /dev/null and b/图片资源/UI/chui.png differ diff --git a/图片资源/UI/close.png b/图片资源/UI/close.png new file mode 100644 index 0000000..8c0ad45 Binary files /dev/null and b/图片资源/UI/close.png differ diff --git a/图片资源/UI/close_PauseLabel.png b/图片资源/UI/close_PauseLabel.png new file mode 100644 index 0000000..dc7a065 Binary files /dev/null and b/图片资源/UI/close_PauseLabel.png differ diff --git a/图片资源/UI/coins.png b/图片资源/UI/coins.png new file mode 100644 index 0000000..bf6bf15 Binary files /dev/null and b/图片资源/UI/coins.png differ diff --git a/图片资源/UI/customBg.png b/图片资源/UI/customBg.png new file mode 100644 index 0000000..cf4a00a Binary files /dev/null and b/图片资源/UI/customBg.png differ diff --git a/图片资源/UI/dikuai.png b/图片资源/UI/dikuai.png new file mode 100644 index 0000000..f6d07a0 Binary files /dev/null and b/图片资源/UI/dikuai.png differ diff --git a/图片资源/UI/ding3.png b/图片资源/UI/ding3.png new file mode 100644 index 0000000..b4c588e Binary files /dev/null and b/图片资源/UI/ding3.png differ diff --git a/图片资源/UI/effct.png b/图片资源/UI/effct.png new file mode 100644 index 0000000..463f0d3 Binary files /dev/null and b/图片资源/UI/effct.png differ diff --git a/图片资源/UI/effct_icon.png b/图片资源/UI/effct_icon.png new file mode 100644 index 0000000..2217ffc Binary files /dev/null and b/图片资源/UI/effct_icon.png differ diff --git a/图片资源/UI/freeze_Label.png b/图片资源/UI/freeze_Label.png new file mode 100644 index 0000000..1d3b267 Binary files /dev/null and b/图片资源/UI/freeze_Label.png differ diff --git a/图片资源/UI/full.png b/图片资源/UI/full.png new file mode 100644 index 0000000..0f6ae58 Binary files /dev/null and b/图片资源/UI/full.png differ diff --git a/图片资源/UI/good1.png b/图片资源/UI/good1.png new file mode 100644 index 0000000..ec04083 Binary files /dev/null and b/图片资源/UI/good1.png differ diff --git a/图片资源/UI/guan.png b/图片资源/UI/guan.png new file mode 100644 index 0000000..7d819bb Binary files /dev/null and b/图片资源/UI/guan.png differ diff --git a/图片资源/UI/hammer_Label.png b/图片资源/UI/hammer_Label.png new file mode 100644 index 0000000..d1cfc5e Binary files /dev/null and b/图片资源/UI/hammer_Label.png differ diff --git a/图片资源/UI/hui.png b/图片资源/UI/hui.png new file mode 100644 index 0000000..7d63427 Binary files /dev/null and b/图片资源/UI/hui.png differ diff --git a/图片资源/UI/kai.png b/图片资源/UI/kai.png new file mode 100644 index 0000000..8cff5b5 Binary files /dev/null and b/图片资源/UI/kai.png differ diff --git a/图片资源/UI/key.png b/图片资源/UI/key.png new file mode 100644 index 0000000..27cd67d Binary files /dev/null and b/图片资源/UI/key.png differ diff --git a/图片资源/UI/kuang_gj1.png b/图片资源/UI/kuang_gj1.png new file mode 100644 index 0000000..56ec3cb Binary files /dev/null and b/图片资源/UI/kuang_gj1.png differ diff --git a/图片资源/UI/label_di.png b/图片资源/UI/label_di.png new file mode 100644 index 0000000..a5a975c Binary files /dev/null and b/图片资源/UI/label_di.png differ diff --git a/图片资源/UI/label_guan.png b/图片资源/UI/label_guan.png new file mode 100644 index 0000000..880abc2 Binary files /dev/null and b/图片资源/UI/label_guan.png differ diff --git a/图片资源/UI/label_guanbi.png b/图片资源/UI/label_guanbi.png new file mode 100644 index 0000000..40d24ea Binary files /dev/null and b/图片资源/UI/label_guanbi.png differ diff --git a/图片资源/UI/lock.png b/图片资源/UI/lock.png new file mode 100644 index 0000000..012ccc5 Binary files /dev/null and b/图片资源/UI/lock.png differ diff --git a/图片资源/UI/login_Label.png b/图片资源/UI/login_Label.png new file mode 100644 index 0000000..14e8390 Binary files /dev/null and b/图片资源/UI/login_Label.png differ diff --git a/图片资源/UI/magic_Label.png b/图片资源/UI/magic_Label.png new file mode 100644 index 0000000..7563f2c Binary files /dev/null and b/图片资源/UI/magic_Label.png differ diff --git a/图片资源/UI/miao.png b/图片资源/UI/miao.png new file mode 100644 index 0000000..467a4b6 Binary files /dev/null and b/图片资源/UI/miao.png differ diff --git a/图片资源/UI/mofa.png b/图片资源/UI/mofa.png new file mode 100644 index 0000000..5fd4d43 Binary files /dev/null and b/图片资源/UI/mofa.png differ diff --git a/图片资源/UI/music.png b/图片资源/UI/music.png new file mode 100644 index 0000000..6663d53 Binary files /dev/null and b/图片资源/UI/music.png differ diff --git a/图片资源/UI/music_icon.png b/图片资源/UI/music_icon.png new file mode 100644 index 0000000..0dfabb6 Binary files /dev/null and b/图片资源/UI/music_icon.png differ diff --git a/图片资源/UI/nz1.png b/图片资源/UI/nz1.png new file mode 100644 index 0000000..243831b Binary files /dev/null and b/图片资源/UI/nz1.png differ diff --git a/图片资源/UI/nz2.png b/图片资源/UI/nz2.png new file mode 100644 index 0000000..965a76c Binary files /dev/null and b/图片资源/UI/nz2.png differ diff --git a/图片资源/UI/pause.png b/图片资源/UI/pause.png new file mode 100644 index 0000000..2adb2c7 Binary files /dev/null and b/图片资源/UI/pause.png differ diff --git a/图片资源/UI/pauseBtn.png b/图片资源/UI/pauseBtn.png new file mode 100644 index 0000000..9f409d3 Binary files /dev/null and b/图片资源/UI/pauseBtn.png differ diff --git a/图片资源/UI/pause_BtnBg.png b/图片资源/UI/pause_BtnBg.png new file mode 100644 index 0000000..4e309ca Binary files /dev/null and b/图片资源/UI/pause_BtnBg.png differ diff --git a/图片资源/UI/prop_freeze.png b/图片资源/UI/prop_freeze.png new file mode 100644 index 0000000..ffa17e8 Binary files /dev/null and b/图片资源/UI/prop_freeze.png differ diff --git a/图片资源/UI/prop_hammer.png b/图片资源/UI/prop_hammer.png new file mode 100644 index 0000000..6140543 Binary files /dev/null and b/图片资源/UI/prop_hammer.png differ diff --git a/图片资源/UI/prop_magic.png b/图片资源/UI/prop_magic.png new file mode 100644 index 0000000..885e354 Binary files /dev/null and b/图片资源/UI/prop_magic.png differ diff --git a/图片资源/UI/rankBtn.png b/图片资源/UI/rankBtn.png new file mode 100644 index 0000000..a1c017e Binary files /dev/null and b/图片资源/UI/rankBtn.png differ diff --git a/图片资源/UI/result_Home.png b/图片资源/UI/result_Home.png new file mode 100644 index 0000000..6dc7352 Binary files /dev/null and b/图片资源/UI/result_Home.png differ diff --git a/图片资源/UI/result_Label1.png b/图片资源/UI/result_Label1.png new file mode 100644 index 0000000..c0e2d33 Binary files /dev/null and b/图片资源/UI/result_Label1.png differ diff --git a/图片资源/UI/result_boom.png b/图片资源/UI/result_boom.png new file mode 100644 index 0000000..5ee6848 Binary files /dev/null and b/图片资源/UI/result_boom.png differ diff --git a/图片资源/UI/result_close.png b/图片资源/UI/result_close.png new file mode 100644 index 0000000..7327caf Binary files /dev/null and b/图片资源/UI/result_close.png differ diff --git a/图片资源/UI/result_coin.png b/图片资源/UI/result_coin.png new file mode 100644 index 0000000..64bd786 Binary files /dev/null and b/图片资源/UI/result_coin.png differ diff --git a/图片资源/UI/result_fangqi.png b/图片资源/UI/result_fangqi.png new file mode 100644 index 0000000..0428a7b Binary files /dev/null and b/图片资源/UI/result_fangqi.png differ diff --git a/图片资源/UI/result_hp.png b/图片资源/UI/result_hp.png new file mode 100644 index 0000000..c5df7c2 Binary files /dev/null and b/图片资源/UI/result_hp.png differ diff --git a/图片资源/UI/result_men.png b/图片资源/UI/result_men.png new file mode 100644 index 0000000..0220c36 Binary files /dev/null and b/图片资源/UI/result_men.png differ diff --git a/图片资源/UI/result_remove.png b/图片资源/UI/result_remove.png new file mode 100644 index 0000000..12f5e97 Binary files /dev/null and b/图片资源/UI/result_remove.png differ diff --git a/图片资源/UI/result_title1.png b/图片资源/UI/result_title1.png new file mode 100644 index 0000000..891efa2 Binary files /dev/null and b/图片资源/UI/result_title1.png differ diff --git a/图片资源/UI/result_title10.png b/图片资源/UI/result_title10.png new file mode 100644 index 0000000..0428a7b Binary files /dev/null and b/图片资源/UI/result_title10.png differ diff --git a/图片资源/UI/result_title2.png b/图片资源/UI/result_title2.png new file mode 100644 index 0000000..8a475ab Binary files /dev/null and b/图片资源/UI/result_title2.png differ diff --git a/图片资源/UI/result_title3.png b/图片资源/UI/result_title3.png new file mode 100644 index 0000000..d0b9038 Binary files /dev/null and b/图片资源/UI/result_title3.png differ diff --git a/图片资源/UI/result_title4.png b/图片资源/UI/result_title4.png new file mode 100644 index 0000000..cd077ad Binary files /dev/null and b/图片资源/UI/result_title4.png differ diff --git a/图片资源/UI/result_title5.png b/图片资源/UI/result_title5.png new file mode 100644 index 0000000..c91085b Binary files /dev/null and b/图片资源/UI/result_title5.png differ diff --git a/图片资源/UI/result_title6.png b/图片资源/UI/result_title6.png new file mode 100644 index 0000000..69930b8 Binary files /dev/null and b/图片资源/UI/result_title6.png differ diff --git a/图片资源/UI/result_title7.png b/图片资源/UI/result_title7.png new file mode 100644 index 0000000..70f5fe3 Binary files /dev/null and b/图片资源/UI/result_title7.png differ diff --git a/图片资源/UI/result_title9.png b/图片资源/UI/result_title9.png new file mode 100644 index 0000000..f7273c6 Binary files /dev/null and b/图片资源/UI/result_title9.png differ diff --git a/图片资源/UI/rewardBtn.png b/图片资源/UI/rewardBtn.png new file mode 100644 index 0000000..6c57078 Binary files /dev/null and b/图片资源/UI/rewardBtn.png differ diff --git a/图片资源/UI/setting.png b/图片资源/UI/setting.png new file mode 100644 index 0000000..8618a61 Binary files /dev/null and b/图片资源/UI/setting.png differ diff --git a/图片资源/UI/shezhi.png b/图片资源/UI/shezhi.png new file mode 100644 index 0000000..dfa1988 Binary files /dev/null and b/图片资源/UI/shezhi.png differ diff --git a/图片资源/UI/startBtnBg.png b/图片资源/UI/startBtnBg.png new file mode 100644 index 0000000..b0c2d2e Binary files /dev/null and b/图片资源/UI/startBtnBg.png differ diff --git a/图片资源/UI/tanchuang3.png b/图片资源/UI/tanchuang3.png new file mode 100644 index 0000000..791cfb6 Binary files /dev/null and b/图片资源/UI/tanchuang3.png differ diff --git a/图片资源/UI/tanchuang_bt1.png b/图片资源/UI/tanchuang_bt1.png new file mode 100644 index 0000000..09806f4 Binary files /dev/null and b/图片资源/UI/tanchuang_bt1.png differ diff --git a/图片资源/UI/tb_fanhui.png b/图片资源/UI/tb_fanhui.png new file mode 100644 index 0000000..d9da64f Binary files /dev/null and b/图片资源/UI/tb_fanhui.png differ diff --git a/图片资源/UI/tc_bt_hyph.png b/图片资源/UI/tc_bt_hyph.png new file mode 100644 index 0000000..4a0621e Binary files /dev/null and b/图片资源/UI/tc_bt_hyph.png differ diff --git a/图片资源/UI/tc_bt_tili.png b/图片资源/UI/tc_bt_tili.png new file mode 100644 index 0000000..d6565b3 Binary files /dev/null and b/图片资源/UI/tc_bt_tili.png differ diff --git a/图片资源/UI/tc_tb.png b/图片资源/UI/tc_tb.png new file mode 100644 index 0000000..6b546ed Binary files /dev/null and b/图片资源/UI/tc_tb.png differ diff --git a/图片资源/UI/tilia_aixin.png b/图片资源/UI/tilia_aixin.png new file mode 100644 index 0000000..dd3d35b Binary files /dev/null and b/图片资源/UI/tilia_aixin.png differ diff --git a/图片资源/UI/time1.png b/图片资源/UI/time1.png new file mode 100644 index 0000000..0fcb177 Binary files /dev/null and b/图片资源/UI/time1.png differ diff --git a/图片资源/UI/time2.png b/图片资源/UI/time2.png new file mode 100644 index 0000000..aa45ebd Binary files /dev/null and b/图片资源/UI/time2.png differ diff --git a/图片资源/UI/time3.png b/图片资源/UI/time3.png new file mode 100644 index 0000000..8ae2e92 Binary files /dev/null and b/图片资源/UI/time3.png differ diff --git a/图片资源/UI/tu_aixin.png b/图片资源/UI/tu_aixin.png new file mode 100644 index 0000000..c09046d Binary files /dev/null and b/图片资源/UI/tu_aixin.png differ diff --git a/图片资源/UI/tx.png b/图片资源/UI/tx.png new file mode 100644 index 0000000..f79ebf5 Binary files /dev/null and b/图片资源/UI/tx.png differ diff --git a/图片资源/UI/ui_Custom.png b/图片资源/UI/ui_Custom.png new file mode 100644 index 0000000..6b8a22b Binary files /dev/null and b/图片资源/UI/ui_Custom.png differ diff --git a/图片资源/UI/ui_Hard.png b/图片资源/UI/ui_Hard.png new file mode 100644 index 0000000..4ada098 Binary files /dev/null and b/图片资源/UI/ui_Hard.png differ diff --git a/图片资源/UI/word_gx.png b/图片资源/UI/word_gx.png new file mode 100644 index 0000000..f55378d Binary files /dev/null and b/图片资源/UI/word_gx.png differ diff --git a/图片资源/UI/word_sjdl.png b/图片资源/UI/word_sjdl.png new file mode 100644 index 0000000..26b3e17 Binary files /dev/null and b/图片资源/UI/word_sjdl.png differ diff --git a/图片资源/UI/word_zdyzl.png b/图片资源/UI/word_zdyzl.png new file mode 100644 index 0000000..d0b9038 Binary files /dev/null and b/图片资源/UI/word_zdyzl.png differ diff --git a/图片资源/UI/xs_smz.png b/图片资源/UI/xs_smz.png new file mode 100644 index 0000000..92c89a4 Binary files /dev/null and b/图片资源/UI/xs_smz.png differ diff --git a/图片资源/UI/zd1.png b/图片资源/UI/zd1.png new file mode 100644 index 0000000..5ee6848 Binary files /dev/null and b/图片资源/UI/zd1.png differ diff --git a/图片资源/UI/zhendong.png b/图片资源/UI/zhendong.png new file mode 100644 index 0000000..6a854bc Binary files /dev/null and b/图片资源/UI/zhendong.png differ diff --git a/图片资源/UI/zhendong_icon.png b/图片资源/UI/zhendong_icon.png new file mode 100644 index 0000000..ab96a05 Binary files /dev/null and b/图片资源/UI/zhendong_icon.png differ diff --git a/图片资源/UI/zhong.png b/图片资源/UI/zhong.png new file mode 100644 index 0000000..f961b21 Binary files /dev/null and b/图片资源/UI/zhong.png differ diff --git a/图片资源/UI/开关.png b/图片资源/UI/开关.png new file mode 100644 index 0000000..7f52fc4 Binary files /dev/null and b/图片资源/UI/开关.png differ diff --git a/图片资源/font/btn关卡数字/big_0.png b/图片资源/font/btn关卡数字/big_0.png new file mode 100644 index 0000000..d96bfbc Binary files /dev/null and b/图片资源/font/btn关卡数字/big_0.png differ diff --git a/图片资源/font/btn关卡数字/big_1.png b/图片资源/font/btn关卡数字/big_1.png new file mode 100644 index 0000000..17d9c84 Binary files /dev/null and b/图片资源/font/btn关卡数字/big_1.png differ diff --git a/图片资源/font/btn关卡数字/big_2.png b/图片资源/font/btn关卡数字/big_2.png new file mode 100644 index 0000000..f4667b5 Binary files /dev/null and b/图片资源/font/btn关卡数字/big_2.png differ diff --git a/图片资源/font/btn关卡数字/big_3.png b/图片资源/font/btn关卡数字/big_3.png new file mode 100644 index 0000000..c2f7261 Binary files /dev/null and b/图片资源/font/btn关卡数字/big_3.png differ diff --git a/图片资源/font/btn关卡数字/big_4.png b/图片资源/font/btn关卡数字/big_4.png new file mode 100644 index 0000000..35a8414 Binary files /dev/null and b/图片资源/font/btn关卡数字/big_4.png differ diff --git a/图片资源/font/btn关卡数字/big_5.png b/图片资源/font/btn关卡数字/big_5.png new file mode 100644 index 0000000..d662dee Binary files /dev/null and b/图片资源/font/btn关卡数字/big_5.png differ diff --git a/图片资源/font/btn关卡数字/big_6.png b/图片资源/font/btn关卡数字/big_6.png new file mode 100644 index 0000000..3760d9f Binary files /dev/null and b/图片资源/font/btn关卡数字/big_6.png differ diff --git a/图片资源/font/btn关卡数字/big_7.png b/图片资源/font/btn关卡数字/big_7.png new file mode 100644 index 0000000..fbc896f Binary files /dev/null and b/图片资源/font/btn关卡数字/big_7.png differ diff --git a/图片资源/font/btn关卡数字/big_8.png b/图片资源/font/btn关卡数字/big_8.png new file mode 100644 index 0000000..cd6f63c Binary files /dev/null and b/图片资源/font/btn关卡数字/big_8.png differ diff --git a/图片资源/font/btn关卡数字/big_9.png b/图片资源/font/btn关卡数字/big_9.png new file mode 100644 index 0000000..66ff54d Binary files /dev/null and b/图片资源/font/btn关卡数字/big_9.png differ diff --git a/图片资源/font/btn道具数字/mul0.png b/图片资源/font/btn道具数字/mul0.png new file mode 100644 index 0000000..8b9de21 Binary files /dev/null and b/图片资源/font/btn道具数字/mul0.png differ diff --git a/图片资源/font/btn道具数字/mul1.png b/图片资源/font/btn道具数字/mul1.png new file mode 100644 index 0000000..c70bb26 Binary files /dev/null and b/图片资源/font/btn道具数字/mul1.png differ diff --git a/图片资源/font/btn道具数字/mul10.png b/图片资源/font/btn道具数字/mul10.png new file mode 100644 index 0000000..cdf4fd3 Binary files /dev/null and b/图片资源/font/btn道具数字/mul10.png differ diff --git a/图片资源/font/btn道具数字/mul2.png b/图片资源/font/btn道具数字/mul2.png new file mode 100644 index 0000000..276e52a Binary files /dev/null and b/图片资源/font/btn道具数字/mul2.png differ diff --git a/图片资源/font/btn道具数字/mul3.png b/图片资源/font/btn道具数字/mul3.png new file mode 100644 index 0000000..268c228 Binary files /dev/null and b/图片资源/font/btn道具数字/mul3.png differ diff --git a/图片资源/font/btn道具数字/mul4.png b/图片资源/font/btn道具数字/mul4.png new file mode 100644 index 0000000..4f68cdd Binary files /dev/null and b/图片资源/font/btn道具数字/mul4.png differ diff --git a/图片资源/font/btn道具数字/mul5.png b/图片资源/font/btn道具数字/mul5.png new file mode 100644 index 0000000..b3415ac Binary files /dev/null and b/图片资源/font/btn道具数字/mul5.png differ diff --git a/图片资源/font/btn道具数字/mul6.png b/图片资源/font/btn道具数字/mul6.png new file mode 100644 index 0000000..62dd54d Binary files /dev/null and b/图片资源/font/btn道具数字/mul6.png differ diff --git a/图片资源/font/btn道具数字/mul7.png b/图片资源/font/btn道具数字/mul7.png new file mode 100644 index 0000000..ee07922 Binary files /dev/null and b/图片资源/font/btn道具数字/mul7.png differ diff --git a/图片资源/font/btn道具数字/mul8.png b/图片资源/font/btn道具数字/mul8.png new file mode 100644 index 0000000..97a1189 Binary files /dev/null and b/图片资源/font/btn道具数字/mul8.png differ diff --git a/图片资源/font/btn道具数字/mul9.png b/图片资源/font/btn道具数字/mul9.png new file mode 100644 index 0000000..dbe238d Binary files /dev/null and b/图片资源/font/btn道具数字/mul9.png differ diff --git a/图片资源/font/体力数字/hp_,.png b/图片资源/font/体力数字/hp_,.png new file mode 100644 index 0000000..fddd677 Binary files /dev/null and b/图片资源/font/体力数字/hp_,.png differ diff --git a/图片资源/font/体力数字/hp_-.png b/图片资源/font/体力数字/hp_-.png new file mode 100644 index 0000000..524d229 Binary files /dev/null and b/图片资源/font/体力数字/hp_-.png differ diff --git a/图片资源/font/体力数字/hp_..png b/图片资源/font/体力数字/hp_..png new file mode 100644 index 0000000..5150dbe Binary files /dev/null and b/图片资源/font/体力数字/hp_..png differ diff --git a/图片资源/font/体力数字/hp_1.png b/图片资源/font/体力数字/hp_1.png new file mode 100644 index 0000000..662b870 Binary files /dev/null and b/图片资源/font/体力数字/hp_1.png differ diff --git a/图片资源/font/体力数字/hp_2.png b/图片资源/font/体力数字/hp_2.png new file mode 100644 index 0000000..53343c4 Binary files /dev/null and b/图片资源/font/体力数字/hp_2.png differ diff --git a/图片资源/font/体力数字/hp_3.png b/图片资源/font/体力数字/hp_3.png new file mode 100644 index 0000000..fe1d3f3 Binary files /dev/null and b/图片资源/font/体力数字/hp_3.png differ diff --git a/图片资源/font/体力数字/hp_4.png b/图片资源/font/体力数字/hp_4.png new file mode 100644 index 0000000..fb6bf01 Binary files /dev/null and b/图片资源/font/体力数字/hp_4.png differ diff --git a/图片资源/font/体力数字/hp_5.png b/图片资源/font/体力数字/hp_5.png new file mode 100644 index 0000000..7897bb8 Binary files /dev/null and b/图片资源/font/体力数字/hp_5.png differ diff --git a/图片资源/font/体力数字/hp_6.png b/图片资源/font/体力数字/hp_6.png new file mode 100644 index 0000000..b68d5f0 Binary files /dev/null and b/图片资源/font/体力数字/hp_6.png differ diff --git a/图片资源/font/体力数字/hp_7.png b/图片资源/font/体力数字/hp_7.png new file mode 100644 index 0000000..9e6ab06 Binary files /dev/null and b/图片资源/font/体力数字/hp_7.png differ diff --git a/图片资源/font/体力数字/hp_8.png b/图片资源/font/体力数字/hp_8.png new file mode 100644 index 0000000..a1a5636 Binary files /dev/null and b/图片资源/font/体力数字/hp_8.png differ diff --git a/图片资源/font/体力数字/hp_9.png b/图片资源/font/体力数字/hp_9.png new file mode 100644 index 0000000..99213ca Binary files /dev/null and b/图片资源/font/体力数字/hp_9.png differ diff --git a/图片资源/font/体力数字/hp_x.png b/图片资源/font/体力数字/hp_x.png new file mode 100644 index 0000000..eab5db8 Binary files /dev/null and b/图片资源/font/体力数字/hp_x.png differ diff --git a/图片资源/font/关卡内/level_0.png b/图片资源/font/关卡内/level_0.png new file mode 100644 index 0000000..39bde61 Binary files /dev/null and b/图片资源/font/关卡内/level_0.png differ diff --git a/图片资源/font/关卡内/level_1.png b/图片资源/font/关卡内/level_1.png new file mode 100644 index 0000000..2bdeed3 Binary files /dev/null and b/图片资源/font/关卡内/level_1.png differ diff --git a/图片资源/font/关卡内/level_2.png b/图片资源/font/关卡内/level_2.png new file mode 100644 index 0000000..f067189 Binary files /dev/null and b/图片资源/font/关卡内/level_2.png differ diff --git a/图片资源/font/关卡内/level_3.png b/图片资源/font/关卡内/level_3.png new file mode 100644 index 0000000..d428130 Binary files /dev/null and b/图片资源/font/关卡内/level_3.png differ diff --git a/图片资源/font/关卡内/level_4.png b/图片资源/font/关卡内/level_4.png new file mode 100644 index 0000000..5a98efe Binary files /dev/null and b/图片资源/font/关卡内/level_4.png differ diff --git a/图片资源/font/关卡内/level_5.png b/图片资源/font/关卡内/level_5.png new file mode 100644 index 0000000..327e534 Binary files /dev/null and b/图片资源/font/关卡内/level_5.png differ diff --git a/图片资源/font/关卡内/level_6.png b/图片资源/font/关卡内/level_6.png new file mode 100644 index 0000000..43e6f01 Binary files /dev/null and b/图片资源/font/关卡内/level_6.png differ diff --git a/图片资源/font/关卡内/level_7.png b/图片资源/font/关卡内/level_7.png new file mode 100644 index 0000000..ecfbbb3 Binary files /dev/null and b/图片资源/font/关卡内/level_7.png differ diff --git a/图片资源/font/关卡内/level_8.png b/图片资源/font/关卡内/level_8.png new file mode 100644 index 0000000..2963b9e Binary files /dev/null and b/图片资源/font/关卡内/level_8.png differ diff --git a/图片资源/font/关卡内/level_9.png b/图片资源/font/关卡内/level_9.png new file mode 100644 index 0000000..c29014a Binary files /dev/null and b/图片资源/font/关卡内/level_9.png differ diff --git a/图片资源/font/关卡内/time_0.png b/图片资源/font/关卡内/time_0.png new file mode 100644 index 0000000..463784d Binary files /dev/null and b/图片资源/font/关卡内/time_0.png differ diff --git a/图片资源/font/关卡内/time_1.png b/图片资源/font/关卡内/time_1.png new file mode 100644 index 0000000..eb034ac Binary files /dev/null and b/图片资源/font/关卡内/time_1.png differ diff --git a/图片资源/font/关卡内/time_10.png b/图片资源/font/关卡内/time_10.png new file mode 100644 index 0000000..c43c279 Binary files /dev/null and b/图片资源/font/关卡内/time_10.png differ diff --git a/图片资源/font/关卡内/time_2.png b/图片资源/font/关卡内/time_2.png new file mode 100644 index 0000000..56e444c Binary files /dev/null and b/图片资源/font/关卡内/time_2.png differ diff --git a/图片资源/font/关卡内/time_3.png b/图片资源/font/关卡内/time_3.png new file mode 100644 index 0000000..63b43cd Binary files /dev/null and b/图片资源/font/关卡内/time_3.png differ diff --git a/图片资源/font/关卡内/time_4.png b/图片资源/font/关卡内/time_4.png new file mode 100644 index 0000000..99da3d1 Binary files /dev/null and b/图片资源/font/关卡内/time_4.png differ diff --git a/图片资源/font/关卡内/time_5.png b/图片资源/font/关卡内/time_5.png new file mode 100644 index 0000000..354f15f Binary files /dev/null and b/图片资源/font/关卡内/time_5.png differ diff --git a/图片资源/font/关卡内/time_6.png b/图片资源/font/关卡内/time_6.png new file mode 100644 index 0000000..c9503b9 Binary files /dev/null and b/图片资源/font/关卡内/time_6.png differ diff --git a/图片资源/font/关卡内/time_7.png b/图片资源/font/关卡内/time_7.png new file mode 100644 index 0000000..55d10e4 Binary files /dev/null and b/图片资源/font/关卡内/time_7.png differ diff --git a/图片资源/font/关卡内/time_8.png b/图片资源/font/关卡内/time_8.png new file mode 100644 index 0000000..dcba08d Binary files /dev/null and b/图片资源/font/关卡内/time_8.png differ diff --git a/图片资源/font/关卡内/time_9.png b/图片资源/font/关卡内/time_9.png new file mode 100644 index 0000000..8ac9b99 Binary files /dev/null and b/图片资源/font/关卡内/time_9.png differ diff --git a/图片资源/font/关卡内/word_gx.png b/图片资源/font/关卡内/word_gx.png new file mode 100644 index 0000000..f55378d Binary files /dev/null and b/图片资源/font/关卡内/word_gx.png differ diff --git a/图片资源/font/冰块数字/ice_0.png b/图片资源/font/冰块数字/ice_0.png new file mode 100644 index 0000000..428ecf1 Binary files /dev/null and b/图片资源/font/冰块数字/ice_0.png differ diff --git a/图片资源/font/冰块数字/ice_1.png b/图片资源/font/冰块数字/ice_1.png new file mode 100644 index 0000000..cb8925e Binary files /dev/null and b/图片资源/font/冰块数字/ice_1.png differ diff --git a/图片资源/font/冰块数字/ice_2.png b/图片资源/font/冰块数字/ice_2.png new file mode 100644 index 0000000..13ec91e Binary files /dev/null and b/图片资源/font/冰块数字/ice_2.png differ diff --git a/图片资源/font/冰块数字/ice_3.png b/图片资源/font/冰块数字/ice_3.png new file mode 100644 index 0000000..1190e55 Binary files /dev/null and b/图片资源/font/冰块数字/ice_3.png differ diff --git a/图片资源/font/冰块数字/ice_4.png b/图片资源/font/冰块数字/ice_4.png new file mode 100644 index 0000000..b4170ca Binary files /dev/null and b/图片资源/font/冰块数字/ice_4.png differ diff --git a/图片资源/font/冰块数字/ice_5.png b/图片资源/font/冰块数字/ice_5.png new file mode 100644 index 0000000..9435b71 Binary files /dev/null and b/图片资源/font/冰块数字/ice_5.png differ diff --git a/图片资源/font/冰块数字/ice_6.png b/图片资源/font/冰块数字/ice_6.png new file mode 100644 index 0000000..967e641 Binary files /dev/null and b/图片资源/font/冰块数字/ice_6.png differ diff --git a/图片资源/font/冰块数字/ice_7.png b/图片资源/font/冰块数字/ice_7.png new file mode 100644 index 0000000..1496dbd Binary files /dev/null and b/图片资源/font/冰块数字/ice_7.png differ diff --git a/图片资源/font/冰块数字/ice_8.png b/图片资源/font/冰块数字/ice_8.png new file mode 100644 index 0000000..7d9e314 Binary files /dev/null and b/图片资源/font/冰块数字/ice_8.png differ diff --git a/图片资源/font/冰块数字/ice_9.png b/图片资源/font/冰块数字/ice_9.png new file mode 100644 index 0000000..4908d0c Binary files /dev/null and b/图片资源/font/冰块数字/ice_9.png differ diff --git a/图片资源/font/排行榜数字/rank_0.png b/图片资源/font/排行榜数字/rank_0.png new file mode 100644 index 0000000..00b14d4 Binary files /dev/null and b/图片资源/font/排行榜数字/rank_0.png differ diff --git a/图片资源/font/排行榜数字/rank_1.png b/图片资源/font/排行榜数字/rank_1.png new file mode 100644 index 0000000..8c0728a Binary files /dev/null and b/图片资源/font/排行榜数字/rank_1.png differ diff --git a/图片资源/font/排行榜数字/rank_2.png b/图片资源/font/排行榜数字/rank_2.png new file mode 100644 index 0000000..8182883 Binary files /dev/null and b/图片资源/font/排行榜数字/rank_2.png differ diff --git a/图片资源/font/排行榜数字/rank_3.png b/图片资源/font/排行榜数字/rank_3.png new file mode 100644 index 0000000..e45f63f Binary files /dev/null and b/图片资源/font/排行榜数字/rank_3.png differ diff --git a/图片资源/font/排行榜数字/rank_4.png b/图片资源/font/排行榜数字/rank_4.png new file mode 100644 index 0000000..1622505 Binary files /dev/null and b/图片资源/font/排行榜数字/rank_4.png differ diff --git a/图片资源/font/排行榜数字/rank_5.png b/图片资源/font/排行榜数字/rank_5.png new file mode 100644 index 0000000..fbe0599 Binary files /dev/null and b/图片资源/font/排行榜数字/rank_5.png differ diff --git a/图片资源/font/排行榜数字/rank_6.png b/图片资源/font/排行榜数字/rank_6.png new file mode 100644 index 0000000..86d86d5 Binary files /dev/null and b/图片资源/font/排行榜数字/rank_6.png differ diff --git a/图片资源/font/排行榜数字/rank_7.png b/图片资源/font/排行榜数字/rank_7.png new file mode 100644 index 0000000..4030562 Binary files /dev/null and b/图片资源/font/排行榜数字/rank_7.png differ diff --git a/图片资源/font/排行榜数字/rank_8.png b/图片资源/font/排行榜数字/rank_8.png new file mode 100644 index 0000000..cc4cfbd Binary files /dev/null and b/图片资源/font/排行榜数字/rank_8.png differ diff --git a/图片资源/font/排行榜数字/rank_9.png b/图片资源/font/排行榜数字/rank_9.png new file mode 100644 index 0000000..389f98e Binary files /dev/null and b/图片资源/font/排行榜数字/rank_9.png differ diff --git a/图片资源/font/结算数字/result,.png b/图片资源/font/结算数字/result,.png new file mode 100644 index 0000000..49442e2 Binary files /dev/null and b/图片资源/font/结算数字/result,.png differ diff --git a/图片资源/font/结算数字/result_..png b/图片资源/font/结算数字/result_..png new file mode 100644 index 0000000..1484326 Binary files /dev/null and b/图片资源/font/结算数字/result_..png differ diff --git a/图片资源/font/结算数字/result_0.png b/图片资源/font/结算数字/result_0.png new file mode 100644 index 0000000..c180a5a Binary files /dev/null and b/图片资源/font/结算数字/result_0.png differ diff --git a/图片资源/font/结算数字/result_1.png b/图片资源/font/结算数字/result_1.png new file mode 100644 index 0000000..a96db75 Binary files /dev/null and b/图片资源/font/结算数字/result_1.png differ diff --git a/图片资源/font/结算数字/result_2.png b/图片资源/font/结算数字/result_2.png new file mode 100644 index 0000000..ea37697 Binary files /dev/null and b/图片资源/font/结算数字/result_2.png differ diff --git a/图片资源/font/结算数字/result_3.png b/图片资源/font/结算数字/result_3.png new file mode 100644 index 0000000..b367297 Binary files /dev/null and b/图片资源/font/结算数字/result_3.png differ diff --git a/图片资源/font/结算数字/result_4.png b/图片资源/font/结算数字/result_4.png new file mode 100644 index 0000000..1d1a5b5 Binary files /dev/null and b/图片资源/font/结算数字/result_4.png differ diff --git a/图片资源/font/结算数字/result_5.png b/图片资源/font/结算数字/result_5.png new file mode 100644 index 0000000..9b6468d Binary files /dev/null and b/图片资源/font/结算数字/result_5.png differ diff --git a/图片资源/font/结算数字/result_6.png b/图片资源/font/结算数字/result_6.png new file mode 100644 index 0000000..a2fd710 Binary files /dev/null and b/图片资源/font/结算数字/result_6.png differ diff --git a/图片资源/font/结算数字/result_7.png b/图片资源/font/结算数字/result_7.png new file mode 100644 index 0000000..8ccb76d Binary files /dev/null and b/图片资源/font/结算数字/result_7.png differ diff --git a/图片资源/font/结算数字/result_8.png b/图片资源/font/结算数字/result_8.png new file mode 100644 index 0000000..ec7bd8b Binary files /dev/null and b/图片资源/font/结算数字/result_8.png differ diff --git a/图片资源/font/结算数字/result_9.png b/图片资源/font/结算数字/result_9.png new file mode 100644 index 0000000..d877903 Binary files /dev/null and b/图片资源/font/结算数字/result_9.png differ diff --git a/图片资源/font/结算数字/result_x.png b/图片资源/font/结算数字/result_x.png new file mode 100644 index 0000000..fc3a663 Binary files /dev/null and b/图片资源/font/结算数字/result_x.png differ diff --git a/图片资源/font/金币数字/coin_0.png b/图片资源/font/金币数字/coin_0.png new file mode 100644 index 0000000..ff53724 Binary files /dev/null and b/图片资源/font/金币数字/coin_0.png differ diff --git a/图片资源/font/金币数字/coin_1.png b/图片资源/font/金币数字/coin_1.png new file mode 100644 index 0000000..28c6589 Binary files /dev/null and b/图片资源/font/金币数字/coin_1.png differ diff --git a/图片资源/font/金币数字/coin_2.png b/图片资源/font/金币数字/coin_2.png new file mode 100644 index 0000000..de62e1b Binary files /dev/null and b/图片资源/font/金币数字/coin_2.png differ diff --git a/图片资源/font/金币数字/coin_3.png b/图片资源/font/金币数字/coin_3.png new file mode 100644 index 0000000..008e906 Binary files /dev/null and b/图片资源/font/金币数字/coin_3.png differ diff --git a/图片资源/font/金币数字/coin_4.png b/图片资源/font/金币数字/coin_4.png new file mode 100644 index 0000000..48a1f60 Binary files /dev/null and b/图片资源/font/金币数字/coin_4.png differ diff --git a/图片资源/font/金币数字/coin_5.png b/图片资源/font/金币数字/coin_5.png new file mode 100644 index 0000000..746134c Binary files /dev/null and b/图片资源/font/金币数字/coin_5.png differ diff --git a/图片资源/font/金币数字/coin_6.png b/图片资源/font/金币数字/coin_6.png new file mode 100644 index 0000000..debaf9f Binary files /dev/null and b/图片资源/font/金币数字/coin_6.png differ diff --git a/图片资源/font/金币数字/coin_7.png b/图片资源/font/金币数字/coin_7.png new file mode 100644 index 0000000..12ca731 Binary files /dev/null and b/图片资源/font/金币数字/coin_7.png differ diff --git a/图片资源/font/金币数字/coin_8.png b/图片资源/font/金币数字/coin_8.png new file mode 100644 index 0000000..1cdf4ab Binary files /dev/null and b/图片资源/font/金币数字/coin_8.png differ diff --git a/图片资源/font/金币数字/coin_9.png b/图片资源/font/金币数字/coin_9.png new file mode 100644 index 0000000..e9d0694 Binary files /dev/null and b/图片资源/font/金币数字/coin_9.png differ diff --git a/图片资源/font/金币数字/coins0.png b/图片资源/font/金币数字/coins0.png new file mode 100644 index 0000000..02512da Binary files /dev/null and b/图片资源/font/金币数字/coins0.png differ diff --git a/图片资源/font/金币数字/coins1.png b/图片资源/font/金币数字/coins1.png new file mode 100644 index 0000000..e362b92 Binary files /dev/null and b/图片资源/font/金币数字/coins1.png differ diff --git a/图片资源/font/金币数字/coins2.png b/图片资源/font/金币数字/coins2.png new file mode 100644 index 0000000..becd853 Binary files /dev/null and b/图片资源/font/金币数字/coins2.png differ diff --git a/图片资源/font/金币数字/coins3.png b/图片资源/font/金币数字/coins3.png new file mode 100644 index 0000000..1020510 Binary files /dev/null and b/图片资源/font/金币数字/coins3.png differ diff --git a/图片资源/font/金币数字/coins4.png b/图片资源/font/金币数字/coins4.png new file mode 100644 index 0000000..3977141 Binary files /dev/null and b/图片资源/font/金币数字/coins4.png differ diff --git a/图片资源/font/金币数字/coins5.png b/图片资源/font/金币数字/coins5.png new file mode 100644 index 0000000..c37ef77 Binary files /dev/null and b/图片资源/font/金币数字/coins5.png differ diff --git a/图片资源/font/金币数字/coins6.png b/图片资源/font/金币数字/coins6.png new file mode 100644 index 0000000..3dbe093 Binary files /dev/null and b/图片资源/font/金币数字/coins6.png differ diff --git a/图片资源/font/金币数字/coins7.png b/图片资源/font/金币数字/coins7.png new file mode 100644 index 0000000..27e4009 Binary files /dev/null and b/图片资源/font/金币数字/coins7.png differ diff --git a/图片资源/font/金币数字/coins8.png b/图片资源/font/金币数字/coins8.png new file mode 100644 index 0000000..fed56ef Binary files /dev/null and b/图片资源/font/金币数字/coins8.png differ diff --git a/图片资源/font/金币数字/coins9.png b/图片资源/font/金币数字/coins9.png new file mode 100644 index 0000000..cd278f4 Binary files /dev/null and b/图片资源/font/金币数字/coins9.png differ diff --git a/图片资源/font/金币数字/coins_+.png b/图片资源/font/金币数字/coins_+.png new file mode 100644 index 0000000..306857a Binary files /dev/null and b/图片资源/font/金币数字/coins_+.png differ diff --git a/图片资源/font/金币数字/coins_,.png b/图片资源/font/金币数字/coins_,.png new file mode 100644 index 0000000..6124c46 Binary files /dev/null and b/图片资源/font/金币数字/coins_,.png differ diff --git a/图片资源/font/金币数字/coins_..png b/图片资源/font/金币数字/coins_..png new file mode 100644 index 0000000..8cebe29 Binary files /dev/null and b/图片资源/font/金币数字/coins_..png differ diff --git a/图片资源/font/金币数字/coins_x.png b/图片资源/font/金币数字/coins_x.png new file mode 100644 index 0000000..fed48b5 Binary files /dev/null and b/图片资源/font/金币数字/coins_x.png differ diff --git a/图片资源/font/锁数字/lock_0.png b/图片资源/font/锁数字/lock_0.png new file mode 100644 index 0000000..34edc7e Binary files /dev/null and b/图片资源/font/锁数字/lock_0.png differ diff --git a/图片资源/font/锁数字/lock_1.png b/图片资源/font/锁数字/lock_1.png new file mode 100644 index 0000000..745a142 Binary files /dev/null and b/图片资源/font/锁数字/lock_1.png differ diff --git a/图片资源/font/锁数字/lock_2.png b/图片资源/font/锁数字/lock_2.png new file mode 100644 index 0000000..87954e0 Binary files /dev/null and b/图片资源/font/锁数字/lock_2.png differ diff --git a/图片资源/font/锁数字/lock_3.png b/图片资源/font/锁数字/lock_3.png new file mode 100644 index 0000000..4cbd1ed Binary files /dev/null and b/图片资源/font/锁数字/lock_3.png differ diff --git a/图片资源/font/锁数字/lock_4.png b/图片资源/font/锁数字/lock_4.png new file mode 100644 index 0000000..913a4d8 Binary files /dev/null and b/图片资源/font/锁数字/lock_4.png differ diff --git a/图片资源/font/锁数字/lock_5.png b/图片资源/font/锁数字/lock_5.png new file mode 100644 index 0000000..b785e68 Binary files /dev/null and b/图片资源/font/锁数字/lock_5.png differ diff --git a/图片资源/font/锁数字/lock_6.png b/图片资源/font/锁数字/lock_6.png new file mode 100644 index 0000000..2ad8402 Binary files /dev/null and b/图片资源/font/锁数字/lock_6.png differ diff --git a/图片资源/font/锁数字/lock_7.png b/图片资源/font/锁数字/lock_7.png new file mode 100644 index 0000000..db82070 Binary files /dev/null and b/图片资源/font/锁数字/lock_7.png differ diff --git a/图片资源/font/锁数字/lock_8.png b/图片资源/font/锁数字/lock_8.png new file mode 100644 index 0000000..96f5709 Binary files /dev/null and b/图片资源/font/锁数字/lock_8.png differ diff --git a/图片资源/font/锁数字/lock_9.png b/图片资源/font/锁数字/lock_9.png new file mode 100644 index 0000000..45d3183 Binary files /dev/null and b/图片资源/font/锁数字/lock_9.png differ diff --git a/图片资源/star-星星/five.png b/图片资源/star-星星/five.png new file mode 100644 index 0000000..df0ffe1 Binary files /dev/null and b/图片资源/star-星星/five.png differ diff --git a/图片资源/star-星星/four.png b/图片资源/star-星星/four.png new file mode 100644 index 0000000..0e66f63 Binary files /dev/null and b/图片资源/star-星星/four.png differ diff --git a/图片资源/star-星星/heng1.png b/图片资源/star-星星/heng1.png new file mode 100644 index 0000000..41595ab Binary files /dev/null and b/图片资源/star-星星/heng1.png differ diff --git a/图片资源/star-星星/heng2.png b/图片资源/star-星星/heng2.png new file mode 100644 index 0000000..f6f1378 Binary files /dev/null and b/图片资源/star-星星/heng2.png differ diff --git a/图片资源/star-星星/heng3.png b/图片资源/star-星星/heng3.png new file mode 100644 index 0000000..c0c78f6 Binary files /dev/null and b/图片资源/star-星星/heng3.png differ diff --git a/图片资源/star-星星/one.png b/图片资源/star-星星/one.png new file mode 100644 index 0000000..d9855c4 Binary files /dev/null and b/图片资源/star-星星/one.png differ diff --git a/图片资源/star-星星/shu1.png b/图片资源/star-星星/shu1.png new file mode 100644 index 0000000..a660d61 Binary files /dev/null and b/图片资源/star-星星/shu1.png differ diff --git a/图片资源/star-星星/shu2.png b/图片资源/star-星星/shu2.png new file mode 100644 index 0000000..68ad323 Binary files /dev/null and b/图片资源/star-星星/shu2.png differ diff --git a/图片资源/star-星星/shu3.png b/图片资源/star-星星/shu3.png new file mode 100644 index 0000000..b09fbb8 Binary files /dev/null and b/图片资源/star-星星/shu3.png differ diff --git a/图片资源/star-星星/six.png b/图片资源/star-星星/six.png new file mode 100644 index 0000000..a86d807 Binary files /dev/null and b/图片资源/star-星星/six.png differ diff --git a/图片资源/star-星星/star_0.png b/图片资源/star-星星/star_0.png new file mode 100644 index 0000000..fd47e8e Binary files /dev/null and b/图片资源/star-星星/star_0.png differ diff --git a/图片资源/star-星星/star_1.png b/图片资源/star-星星/star_1.png new file mode 100644 index 0000000..185a85a Binary files /dev/null and b/图片资源/star-星星/star_1.png differ diff --git a/图片资源/star-星星/star_10.png b/图片资源/star-星星/star_10.png new file mode 100644 index 0000000..2ea8185 Binary files /dev/null and b/图片资源/star-星星/star_10.png differ diff --git a/图片资源/star-星星/star_11.png b/图片资源/star-星星/star_11.png new file mode 100644 index 0000000..32cf5b2 Binary files /dev/null and b/图片资源/star-星星/star_11.png differ diff --git a/图片资源/star-星星/star_12.png b/图片资源/star-星星/star_12.png new file mode 100644 index 0000000..8aac4e6 Binary files /dev/null and b/图片资源/star-星星/star_12.png differ diff --git a/图片资源/star-星星/star_13.png b/图片资源/star-星星/star_13.png new file mode 100644 index 0000000..192a498 Binary files /dev/null and b/图片资源/star-星星/star_13.png differ diff --git a/图片资源/star-星星/star_14.png b/图片资源/star-星星/star_14.png new file mode 100644 index 0000000..bf0a192 Binary files /dev/null and b/图片资源/star-星星/star_14.png differ diff --git a/图片资源/star-星星/star_15.png b/图片资源/star-星星/star_15.png new file mode 100644 index 0000000..d3ab5b5 Binary files /dev/null and b/图片资源/star-星星/star_15.png differ diff --git a/图片资源/star-星星/star_16.png b/图片资源/star-星星/star_16.png new file mode 100644 index 0000000..9946a21 Binary files /dev/null and b/图片资源/star-星星/star_16.png differ diff --git a/图片资源/star-星星/star_17.png b/图片资源/star-星星/star_17.png new file mode 100644 index 0000000..1323bc8 Binary files /dev/null and b/图片资源/star-星星/star_17.png differ diff --git a/图片资源/star-星星/star_18.png b/图片资源/star-星星/star_18.png new file mode 100644 index 0000000..3f7e98e Binary files /dev/null and b/图片资源/star-星星/star_18.png differ diff --git a/图片资源/star-星星/star_19.png b/图片资源/star-星星/star_19.png new file mode 100644 index 0000000..adeac4e Binary files /dev/null and b/图片资源/star-星星/star_19.png differ diff --git a/图片资源/star-星星/star_2.png b/图片资源/star-星星/star_2.png new file mode 100644 index 0000000..f3ff0e7 Binary files /dev/null and b/图片资源/star-星星/star_2.png differ diff --git a/图片资源/star-星星/star_20.png b/图片资源/star-星星/star_20.png new file mode 100644 index 0000000..befffdf Binary files /dev/null and b/图片资源/star-星星/star_20.png differ diff --git a/图片资源/star-星星/star_21.png b/图片资源/star-星星/star_21.png new file mode 100644 index 0000000..80e1942 Binary files /dev/null and b/图片资源/star-星星/star_21.png differ diff --git a/图片资源/star-星星/star_22.png b/图片资源/star-星星/star_22.png new file mode 100644 index 0000000..b0fdd7f Binary files /dev/null and b/图片资源/star-星星/star_22.png differ diff --git a/图片资源/star-星星/star_23.png b/图片资源/star-星星/star_23.png new file mode 100644 index 0000000..b914145 Binary files /dev/null and b/图片资源/star-星星/star_23.png differ diff --git a/图片资源/star-星星/star_3.png b/图片资源/star-星星/star_3.png new file mode 100644 index 0000000..66a2d2f Binary files /dev/null and b/图片资源/star-星星/star_3.png differ diff --git a/图片资源/star-星星/star_4.png b/图片资源/star-星星/star_4.png new file mode 100644 index 0000000..cf6ada0 Binary files /dev/null and b/图片资源/star-星星/star_4.png differ diff --git a/图片资源/star-星星/star_5.png b/图片资源/star-星星/star_5.png new file mode 100644 index 0000000..7b9524f Binary files /dev/null and b/图片资源/star-星星/star_5.png differ diff --git a/图片资源/star-星星/star_6.png b/图片资源/star-星星/star_6.png new file mode 100644 index 0000000..265ea17 Binary files /dev/null and b/图片资源/star-星星/star_6.png differ diff --git a/图片资源/star-星星/star_7.png b/图片资源/star-星星/star_7.png new file mode 100644 index 0000000..0b18e04 Binary files /dev/null and b/图片资源/star-星星/star_7.png differ diff --git a/图片资源/star-星星/star_8.png b/图片资源/star-星星/star_8.png new file mode 100644 index 0000000..e851806 Binary files /dev/null and b/图片资源/star-星星/star_8.png differ diff --git a/图片资源/star-星星/star_9.png b/图片资源/star-星星/star_9.png new file mode 100644 index 0000000..e78259c Binary files /dev/null and b/图片资源/star-星星/star_9.png differ diff --git a/图片资源/star-星星/three.png b/图片资源/star-星星/three.png new file mode 100644 index 0000000..e56dc10 Binary files /dev/null and b/图片资源/star-星星/three.png differ diff --git a/图片资源/star-星星/two.png b/图片资源/star-星星/two.png new file mode 100644 index 0000000..38e283b Binary files /dev/null and b/图片资源/star-星星/two.png differ diff --git a/图片资源/冻结/ice_0.png b/图片资源/冻结/ice_0.png new file mode 100644 index 0000000..513995e Binary files /dev/null and b/图片资源/冻结/ice_0.png differ diff --git a/图片资源/冻结/ice_1.png b/图片资源/冻结/ice_1.png new file mode 100644 index 0000000..4ac9ebe Binary files /dev/null and b/图片资源/冻结/ice_1.png differ diff --git a/图片资源/冻结/ice_10.png b/图片资源/冻结/ice_10.png new file mode 100644 index 0000000..c318a4c Binary files /dev/null and b/图片资源/冻结/ice_10.png differ diff --git a/图片资源/冻结/ice_11.png b/图片资源/冻结/ice_11.png new file mode 100644 index 0000000..1618b36 Binary files /dev/null and b/图片资源/冻结/ice_11.png differ diff --git a/图片资源/冻结/ice_12.png b/图片资源/冻结/ice_12.png new file mode 100644 index 0000000..ed761df Binary files /dev/null and b/图片资源/冻结/ice_12.png differ diff --git a/图片资源/冻结/ice_13.png b/图片资源/冻结/ice_13.png new file mode 100644 index 0000000..7f138ff Binary files /dev/null and b/图片资源/冻结/ice_13.png differ diff --git a/图片资源/冻结/ice_14.png b/图片资源/冻结/ice_14.png new file mode 100644 index 0000000..1362f4f Binary files /dev/null and b/图片资源/冻结/ice_14.png differ diff --git a/图片资源/冻结/ice_15.png b/图片资源/冻结/ice_15.png new file mode 100644 index 0000000..82230e7 Binary files /dev/null and b/图片资源/冻结/ice_15.png differ diff --git a/图片资源/冻结/ice_16.png b/图片资源/冻结/ice_16.png new file mode 100644 index 0000000..6c141e8 Binary files /dev/null and b/图片资源/冻结/ice_16.png differ diff --git a/图片资源/冻结/ice_17.png b/图片资源/冻结/ice_17.png new file mode 100644 index 0000000..a0a181c Binary files /dev/null and b/图片资源/冻结/ice_17.png differ diff --git a/图片资源/冻结/ice_18.png b/图片资源/冻结/ice_18.png new file mode 100644 index 0000000..bec5ba8 Binary files /dev/null and b/图片资源/冻结/ice_18.png differ diff --git a/图片资源/冻结/ice_19.png b/图片资源/冻结/ice_19.png new file mode 100644 index 0000000..97ba270 Binary files /dev/null and b/图片资源/冻结/ice_19.png differ diff --git a/图片资源/冻结/ice_2.png b/图片资源/冻结/ice_2.png new file mode 100644 index 0000000..575d5e1 Binary files /dev/null and b/图片资源/冻结/ice_2.png differ diff --git a/图片资源/冻结/ice_20.png b/图片资源/冻结/ice_20.png new file mode 100644 index 0000000..0df5037 Binary files /dev/null and b/图片资源/冻结/ice_20.png differ diff --git a/图片资源/冻结/ice_21.png b/图片资源/冻结/ice_21.png new file mode 100644 index 0000000..52c35fc Binary files /dev/null and b/图片资源/冻结/ice_21.png differ diff --git a/图片资源/冻结/ice_22.png b/图片资源/冻结/ice_22.png new file mode 100644 index 0000000..f0ed04f Binary files /dev/null and b/图片资源/冻结/ice_22.png differ diff --git a/图片资源/冻结/ice_3.png b/图片资源/冻结/ice_3.png new file mode 100644 index 0000000..4369d13 Binary files /dev/null and b/图片资源/冻结/ice_3.png differ diff --git a/图片资源/冻结/ice_4.png b/图片资源/冻结/ice_4.png new file mode 100644 index 0000000..82a727a Binary files /dev/null and b/图片资源/冻结/ice_4.png differ diff --git a/图片资源/冻结/ice_5.png b/图片资源/冻结/ice_5.png new file mode 100644 index 0000000..671701c Binary files /dev/null and b/图片资源/冻结/ice_5.png differ diff --git a/图片资源/冻结/ice_6.png b/图片资源/冻结/ice_6.png new file mode 100644 index 0000000..db3ec8e Binary files /dev/null and b/图片资源/冻结/ice_6.png differ diff --git a/图片资源/冻结/ice_7.png b/图片资源/冻结/ice_7.png new file mode 100644 index 0000000..f02b624 Binary files /dev/null and b/图片资源/冻结/ice_7.png differ diff --git a/图片资源/冻结/ice_8.png b/图片资源/冻结/ice_8.png new file mode 100644 index 0000000..b85f603 Binary files /dev/null and b/图片资源/冻结/ice_8.png differ diff --git a/图片资源/冻结/ice_9.png b/图片资源/冻结/ice_9.png new file mode 100644 index 0000000..ea1bab4 Binary files /dev/null and b/图片资源/冻结/ice_9.png differ diff --git a/图片资源/冻结/xz_0.png b/图片资源/冻结/xz_0.png new file mode 100644 index 0000000..6a6e123 Binary files /dev/null and b/图片资源/冻结/xz_0.png differ diff --git a/图片资源/冻结/xz_1.png b/图片资源/冻结/xz_1.png new file mode 100644 index 0000000..1aa0019 Binary files /dev/null and b/图片资源/冻结/xz_1.png differ diff --git a/图片资源/冻结/xz_10.png b/图片资源/冻结/xz_10.png new file mode 100644 index 0000000..f6afdf3 Binary files /dev/null and b/图片资源/冻结/xz_10.png differ diff --git a/图片资源/冻结/xz_11.png b/图片资源/冻结/xz_11.png new file mode 100644 index 0000000..3a65647 Binary files /dev/null and b/图片资源/冻结/xz_11.png differ diff --git a/图片资源/冻结/xz_12.png b/图片资源/冻结/xz_12.png new file mode 100644 index 0000000..239f1e4 Binary files /dev/null and b/图片资源/冻结/xz_12.png differ diff --git a/图片资源/冻结/xz_13.png b/图片资源/冻结/xz_13.png new file mode 100644 index 0000000..97a26b7 Binary files /dev/null and b/图片资源/冻结/xz_13.png differ diff --git a/图片资源/冻结/xz_14.png b/图片资源/冻结/xz_14.png new file mode 100644 index 0000000..ae229e6 Binary files /dev/null and b/图片资源/冻结/xz_14.png differ diff --git a/图片资源/冻结/xz_15.png b/图片资源/冻结/xz_15.png new file mode 100644 index 0000000..388b6a0 Binary files /dev/null and b/图片资源/冻结/xz_15.png differ diff --git a/图片资源/冻结/xz_16.png b/图片资源/冻结/xz_16.png new file mode 100644 index 0000000..1966a03 Binary files /dev/null and b/图片资源/冻结/xz_16.png differ diff --git a/图片资源/冻结/xz_17.png b/图片资源/冻结/xz_17.png new file mode 100644 index 0000000..ecec9c5 Binary files /dev/null and b/图片资源/冻结/xz_17.png differ diff --git a/图片资源/冻结/xz_18.png b/图片资源/冻结/xz_18.png new file mode 100644 index 0000000..b5f57bd Binary files /dev/null and b/图片资源/冻结/xz_18.png differ diff --git a/图片资源/冻结/xz_19.png b/图片资源/冻结/xz_19.png new file mode 100644 index 0000000..1782fe4 Binary files /dev/null and b/图片资源/冻结/xz_19.png differ diff --git a/图片资源/冻结/xz_2.png b/图片资源/冻结/xz_2.png new file mode 100644 index 0000000..86d42af Binary files /dev/null and b/图片资源/冻结/xz_2.png differ diff --git a/图片资源/冻结/xz_20.png b/图片资源/冻结/xz_20.png new file mode 100644 index 0000000..2c0a57c Binary files /dev/null and b/图片资源/冻结/xz_20.png differ diff --git a/图片资源/冻结/xz_21.png b/图片资源/冻结/xz_21.png new file mode 100644 index 0000000..e0113d7 Binary files /dev/null and b/图片资源/冻结/xz_21.png differ diff --git a/图片资源/冻结/xz_22.png b/图片资源/冻结/xz_22.png new file mode 100644 index 0000000..86dc01a Binary files /dev/null and b/图片资源/冻结/xz_22.png differ diff --git a/图片资源/冻结/xz_3.png b/图片资源/冻结/xz_3.png new file mode 100644 index 0000000..3d81d15 Binary files /dev/null and b/图片资源/冻结/xz_3.png differ diff --git a/图片资源/冻结/xz_4.png b/图片资源/冻结/xz_4.png new file mode 100644 index 0000000..04bb35a Binary files /dev/null and b/图片资源/冻结/xz_4.png differ diff --git a/图片资源/冻结/xz_5.png b/图片资源/冻结/xz_5.png new file mode 100644 index 0000000..0045e08 Binary files /dev/null and b/图片资源/冻结/xz_5.png differ diff --git a/图片资源/冻结/xz_6.png b/图片资源/冻结/xz_6.png new file mode 100644 index 0000000..a66d3c7 Binary files /dev/null and b/图片资源/冻结/xz_6.png differ diff --git a/图片资源/冻结/xz_7.png b/图片资源/冻结/xz_7.png new file mode 100644 index 0000000..b4acdf3 Binary files /dev/null and b/图片资源/冻结/xz_7.png differ diff --git a/图片资源/冻结/xz_8.png b/图片资源/冻结/xz_8.png new file mode 100644 index 0000000..cb0dc48 Binary files /dev/null and b/图片资源/冻结/xz_8.png differ diff --git a/图片资源/冻结/xz_9.png b/图片资源/冻结/xz_9.png new file mode 100644 index 0000000..6e99cb4 Binary files /dev/null and b/图片资源/冻结/xz_9.png differ diff --git a/图片资源/排行榜资源/Rankings.png b/图片资源/排行榜资源/Rankings.png new file mode 100644 index 0000000..5aef5af Binary files /dev/null and b/图片资源/排行榜资源/Rankings.png differ diff --git a/图片资源/排行榜资源/paihang1_1_1.png b/图片资源/排行榜资源/paihang1_1_1.png new file mode 100644 index 0000000..c20147e Binary files /dev/null and b/图片资源/排行榜资源/paihang1_1_1.png differ diff --git a/图片资源/排行榜资源/paihang1_1_2.jpg b/图片资源/排行榜资源/paihang1_1_2.jpg new file mode 100644 index 0000000..5cdf768 Binary files /dev/null and b/图片资源/排行榜资源/paihang1_1_2.jpg differ diff --git a/图片资源/排行榜资源/paihang1_1_2.png b/图片资源/排行榜资源/paihang1_1_2.png new file mode 100644 index 0000000..a9efc34 Binary files /dev/null and b/图片资源/排行榜资源/paihang1_1_2.png differ diff --git a/图片资源/排行榜资源/paihang1_2_1.png b/图片资源/排行榜资源/paihang1_2_1.png new file mode 100644 index 0000000..d696d45 Binary files /dev/null and b/图片资源/排行榜资源/paihang1_2_1.png differ diff --git a/图片资源/排行榜资源/paihang1_2_2.jpg b/图片资源/排行榜资源/paihang1_2_2.jpg new file mode 100644 index 0000000..9abfc34 Binary files /dev/null and b/图片资源/排行榜资源/paihang1_2_2.jpg differ diff --git a/图片资源/排行榜资源/paihang1_2_2.png b/图片资源/排行榜资源/paihang1_2_2.png new file mode 100644 index 0000000..8917c9f Binary files /dev/null and b/图片资源/排行榜资源/paihang1_2_2.png differ diff --git a/图片资源/排行榜资源/paihang1_3_1.png b/图片资源/排行榜资源/paihang1_3_1.png new file mode 100644 index 0000000..3b316ab Binary files /dev/null and b/图片资源/排行榜资源/paihang1_3_1.png differ diff --git a/图片资源/排行榜资源/paihang1_3_2.jpg b/图片资源/排行榜资源/paihang1_3_2.jpg new file mode 100644 index 0000000..8addd38 Binary files /dev/null and b/图片资源/排行榜资源/paihang1_3_2.jpg differ diff --git a/图片资源/排行榜资源/paihang1_3_2.png b/图片资源/排行榜资源/paihang1_3_2.png new file mode 100644 index 0000000..4da5005 Binary files /dev/null and b/图片资源/排行榜资源/paihang1_3_2.png differ diff --git a/图片资源/排行榜资源/paihang1_4_1.png b/图片资源/排行榜资源/paihang1_4_1.png new file mode 100644 index 0000000..926a9b8 Binary files /dev/null and b/图片资源/排行榜资源/paihang1_4_1.png differ diff --git a/图片资源/排行榜资源/paihang1_4_2.jpg b/图片资源/排行榜资源/paihang1_4_2.jpg new file mode 100644 index 0000000..0df8a14 Binary files /dev/null and b/图片资源/排行榜资源/paihang1_4_2.jpg differ diff --git a/图片资源/排行榜资源/paihang1_4_2.png b/图片资源/排行榜资源/paihang1_4_2.png new file mode 100644 index 0000000..4cd5f23 Binary files /dev/null and b/图片资源/排行榜资源/paihang1_4_2.png differ diff --git a/图片资源/排行榜资源/tanchuang1.png b/图片资源/排行榜资源/tanchuang1.png new file mode 100644 index 0000000..e33d60b Binary files /dev/null and b/图片资源/排行榜资源/tanchuang1.png differ diff --git a/图片资源/排行榜资源/tanchuang2.png b/图片资源/排行榜资源/tanchuang2.png new file mode 100644 index 0000000..d7226d8 Binary files /dev/null and b/图片资源/排行榜资源/tanchuang2.png differ diff --git a/图片资源/排行榜资源/tanchuang3.png b/图片资源/排行榜资源/tanchuang3.png new file mode 100644 index 0000000..791cfb6 Binary files /dev/null and b/图片资源/排行榜资源/tanchuang3.png differ diff --git a/图片资源/排行榜资源/好友排行.png b/图片资源/排行榜资源/好友排行.png new file mode 100644 index 0000000..2b86dec Binary files /dev/null and b/图片资源/排行榜资源/好友排行.png differ diff --git a/图片资源/排行榜资源/好友排行说明.png b/图片资源/排行榜资源/好友排行说明.png new file mode 100644 index 0000000..9b03f3f Binary files /dev/null and b/图片资源/排行榜资源/好友排行说明.png differ diff --git a/图片资源/排行榜资源/弹窗.png b/图片资源/排行榜资源/弹窗.png new file mode 100644 index 0000000..8683ed3 Binary files /dev/null and b/图片资源/排行榜资源/弹窗.png differ diff --git a/图片资源/方块冰块合集/ice_11.png b/图片资源/方块冰块合集/ice_11.png new file mode 100644 index 0000000..513995e Binary files /dev/null and b/图片资源/方块冰块合集/ice_11.png differ diff --git a/图片资源/方块冰块合集/ice_12.png b/图片资源/方块冰块合集/ice_12.png new file mode 100644 index 0000000..4ac9ebe Binary files /dev/null and b/图片资源/方块冰块合集/ice_12.png differ diff --git a/图片资源/方块冰块合集/ice_13.png b/图片资源/方块冰块合集/ice_13.png new file mode 100644 index 0000000..4369d13 Binary files /dev/null and b/图片资源/方块冰块合集/ice_13.png differ diff --git a/图片资源/方块冰块合集/ice_21.png b/图片资源/方块冰块合集/ice_21.png new file mode 100644 index 0000000..575d5e1 Binary files /dev/null and b/图片资源/方块冰块合集/ice_21.png differ diff --git a/图片资源/方块冰块合集/ice_22.png b/图片资源/方块冰块合集/ice_22.png new file mode 100644 index 0000000..671701c Binary files /dev/null and b/图片资源/方块冰块合集/ice_22.png differ diff --git a/图片资源/方块冰块合集/ice_23.png b/图片资源/方块冰块合集/ice_23.png new file mode 100644 index 0000000..cf38864 Binary files /dev/null and b/图片资源/方块冰块合集/ice_23.png differ diff --git a/图片资源/方块冰块合集/ice_31.png b/图片资源/方块冰块合集/ice_31.png new file mode 100644 index 0000000..82a727a Binary files /dev/null and b/图片资源/方块冰块合集/ice_31.png differ diff --git a/图片资源/方块冰块合集/ice_L6.png b/图片资源/方块冰块合集/ice_L6.png new file mode 100644 index 0000000..ed761df Binary files /dev/null and b/图片资源/方块冰块合集/ice_L6.png differ diff --git a/图片资源/方块冰块合集/ice_T1.png b/图片资源/方块冰块合集/ice_T1.png new file mode 100644 index 0000000..82230e7 Binary files /dev/null and b/图片资源/方块冰块合集/ice_T1.png differ diff --git a/图片资源/方块冰块合集/ice_T2.png b/图片资源/方块冰块合集/ice_T2.png new file mode 100644 index 0000000..1362f4f Binary files /dev/null and b/图片资源/方块冰块合集/ice_T2.png differ diff --git a/图片资源/方块冰块合集/ice_T3.png b/图片资源/方块冰块合集/ice_T3.png new file mode 100644 index 0000000..6c141e8 Binary files /dev/null and b/图片资源/方块冰块合集/ice_T3.png differ diff --git a/图片资源/方块冰块合集/ice_T4.png b/图片资源/方块冰块合集/ice_T4.png new file mode 100644 index 0000000..a0a181c Binary files /dev/null and b/图片资源/方块冰块合集/ice_T4.png differ diff --git a/图片资源/方块冰块合集/ice_long_L2.png b/图片资源/方块冰块合集/ice_long_L2.png new file mode 100644 index 0000000..ea1bab4 Binary files /dev/null and b/图片资源/方块冰块合集/ice_long_L2.png differ diff --git a/图片资源/方块冰块合集/ice_long_L3.png b/图片资源/方块冰块合集/ice_long_L3.png new file mode 100644 index 0000000..c318a4c Binary files /dev/null and b/图片资源/方块冰块合集/ice_long_L3.png differ diff --git a/图片资源/方块冰块合集/ice_long_L4.png b/图片资源/方块冰块合集/ice_long_L4.png new file mode 100644 index 0000000..db3ec8e Binary files /dev/null and b/图片资源/方块冰块合集/ice_long_L4.png differ diff --git a/图片资源/方块冰块合集/ice_long_L5.png b/图片资源/方块冰块合集/ice_long_L5.png new file mode 100644 index 0000000..b85f603 Binary files /dev/null and b/图片资源/方块冰块合集/ice_long_L5.png differ diff --git a/图片资源/方块冰块合集/ice_long_L7-1.png b/图片资源/方块冰块合集/ice_long_L7-1.png new file mode 100644 index 0000000..1618b36 Binary files /dev/null and b/图片资源/方块冰块合集/ice_long_L7-1.png differ diff --git a/图片资源/方块冰块合集/ice_long_L7.png b/图片资源/方块冰块合集/ice_long_L7.png new file mode 100644 index 0000000..0d55f1e Binary files /dev/null and b/图片资源/方块冰块合集/ice_long_L7.png differ diff --git a/图片资源/方块冰块合集/ice_long_L8.png b/图片资源/方块冰块合集/ice_long_L8.png new file mode 100644 index 0000000..f02b624 Binary files /dev/null and b/图片资源/方块冰块合集/ice_long_L8.png differ diff --git a/图片资源/方块冰块合集/ice_shizi.png b/图片资源/方块冰块合集/ice_shizi.png new file mode 100644 index 0000000..bec5ba8 Binary files /dev/null and b/图片资源/方块冰块合集/ice_shizi.png differ diff --git a/图片资源/方块冰块合集/ice_short_L1.png b/图片资源/方块冰块合集/ice_short_L1.png new file mode 100644 index 0000000..0df5037 Binary files /dev/null and b/图片资源/方块冰块合集/ice_short_L1.png differ diff --git a/图片资源/方块冰块合集/ice_short_L2.png b/图片资源/方块冰块合集/ice_short_L2.png new file mode 100644 index 0000000..97ba270 Binary files /dev/null and b/图片资源/方块冰块合集/ice_short_L2.png differ diff --git a/图片资源/方块冰块合集/ice_short_L3.png b/图片资源/方块冰块合集/ice_short_L3.png new file mode 100644 index 0000000..52c35fc Binary files /dev/null and b/图片资源/方块冰块合集/ice_short_L3.png differ diff --git a/图片资源/方块冰块合集/ice_short_L4.png b/图片资源/方块冰块合集/ice_short_L4.png new file mode 100644 index 0000000..f0ed04f Binary files /dev/null and b/图片资源/方块冰块合集/ice_short_L4.png differ diff --git a/图片资源/方块冰块合集/xz_0.png b/图片资源/方块冰块合集/xz_0.png new file mode 100644 index 0000000..6a6e123 Binary files /dev/null and b/图片资源/方块冰块合集/xz_0.png differ diff --git a/图片资源/方块冰块合集/xz_1.png b/图片资源/方块冰块合集/xz_1.png new file mode 100644 index 0000000..1aa0019 Binary files /dev/null and b/图片资源/方块冰块合集/xz_1.png differ diff --git a/图片资源/方块冰块合集/xz_10.png b/图片资源/方块冰块合集/xz_10.png new file mode 100644 index 0000000..f6afdf3 Binary files /dev/null and b/图片资源/方块冰块合集/xz_10.png differ diff --git a/图片资源/方块冰块合集/xz_11.png b/图片资源/方块冰块合集/xz_11.png new file mode 100644 index 0000000..3a65647 Binary files /dev/null and b/图片资源/方块冰块合集/xz_11.png differ diff --git a/图片资源/方块冰块合集/xz_12.png b/图片资源/方块冰块合集/xz_12.png new file mode 100644 index 0000000..239f1e4 Binary files /dev/null and b/图片资源/方块冰块合集/xz_12.png differ diff --git a/图片资源/方块冰块合集/xz_13.png b/图片资源/方块冰块合集/xz_13.png new file mode 100644 index 0000000..97a26b7 Binary files /dev/null and b/图片资源/方块冰块合集/xz_13.png differ diff --git a/图片资源/方块冰块合集/xz_14.png b/图片资源/方块冰块合集/xz_14.png new file mode 100644 index 0000000..ae229e6 Binary files /dev/null and b/图片资源/方块冰块合集/xz_14.png differ diff --git a/图片资源/方块冰块合集/xz_15.png b/图片资源/方块冰块合集/xz_15.png new file mode 100644 index 0000000..388b6a0 Binary files /dev/null and b/图片资源/方块冰块合集/xz_15.png differ diff --git a/图片资源/方块冰块合集/xz_16.png b/图片资源/方块冰块合集/xz_16.png new file mode 100644 index 0000000..1966a03 Binary files /dev/null and b/图片资源/方块冰块合集/xz_16.png differ diff --git a/图片资源/方块冰块合集/xz_17.png b/图片资源/方块冰块合集/xz_17.png new file mode 100644 index 0000000..ecec9c5 Binary files /dev/null and b/图片资源/方块冰块合集/xz_17.png differ diff --git a/图片资源/方块冰块合集/xz_18.png b/图片资源/方块冰块合集/xz_18.png new file mode 100644 index 0000000..b5f57bd Binary files /dev/null and b/图片资源/方块冰块合集/xz_18.png differ diff --git a/图片资源/方块冰块合集/xz_19.png b/图片资源/方块冰块合集/xz_19.png new file mode 100644 index 0000000..1782fe4 Binary files /dev/null and b/图片资源/方块冰块合集/xz_19.png differ diff --git a/图片资源/方块冰块合集/xz_2.png b/图片资源/方块冰块合集/xz_2.png new file mode 100644 index 0000000..86d42af Binary files /dev/null and b/图片资源/方块冰块合集/xz_2.png differ diff --git a/图片资源/方块冰块合集/xz_20.png b/图片资源/方块冰块合集/xz_20.png new file mode 100644 index 0000000..2c0a57c Binary files /dev/null and b/图片资源/方块冰块合集/xz_20.png differ diff --git a/图片资源/方块冰块合集/xz_21.png b/图片资源/方块冰块合集/xz_21.png new file mode 100644 index 0000000..e0113d7 Binary files /dev/null and b/图片资源/方块冰块合集/xz_21.png differ diff --git a/图片资源/方块冰块合集/xz_22.png b/图片资源/方块冰块合集/xz_22.png new file mode 100644 index 0000000..86dc01a Binary files /dev/null and b/图片资源/方块冰块合集/xz_22.png differ diff --git a/图片资源/方块冰块合集/xz_3.png b/图片资源/方块冰块合集/xz_3.png new file mode 100644 index 0000000..3d81d15 Binary files /dev/null and b/图片资源/方块冰块合集/xz_3.png differ diff --git a/图片资源/方块冰块合集/xz_4.png b/图片资源/方块冰块合集/xz_4.png new file mode 100644 index 0000000..04bb35a Binary files /dev/null and b/图片资源/方块冰块合集/xz_4.png differ diff --git a/图片资源/方块冰块合集/xz_5.png b/图片资源/方块冰块合集/xz_5.png new file mode 100644 index 0000000..0045e08 Binary files /dev/null and b/图片资源/方块冰块合集/xz_5.png differ diff --git a/图片资源/方块冰块合集/xz_6.png b/图片资源/方块冰块合集/xz_6.png new file mode 100644 index 0000000..a66d3c7 Binary files /dev/null and b/图片资源/方块冰块合集/xz_6.png differ diff --git a/图片资源/方块冰块合集/xz_7.png b/图片资源/方块冰块合集/xz_7.png new file mode 100644 index 0000000..b4acdf3 Binary files /dev/null and b/图片资源/方块冰块合集/xz_7.png differ diff --git a/图片资源/方块冰块合集/xz_8.png b/图片资源/方块冰块合集/xz_8.png new file mode 100644 index 0000000..cb0dc48 Binary files /dev/null and b/图片资源/方块冰块合集/xz_8.png differ diff --git a/图片资源/方块冰块合集/xz_9.png b/图片资源/方块冰块合集/xz_9.png new file mode 100644 index 0000000..6e99cb4 Binary files /dev/null and b/图片资源/方块冰块合集/xz_9.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_0.png b/图片资源/方块选中合集/方块选中/xz_0.png new file mode 100644 index 0000000..6a6e123 Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_0.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_1.png b/图片资源/方块选中合集/方块选中/xz_1.png new file mode 100644 index 0000000..1aa0019 Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_1.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_14.15.png b/图片资源/方块选中合集/方块选中/xz_14.15.png new file mode 100644 index 0000000..ae229e6 Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_14.15.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_16.17.png b/图片资源/方块选中合集/方块选中/xz_16.17.png new file mode 100644 index 0000000..ecec9c5 Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_16.17.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_18.png b/图片资源/方块选中合集/方块选中/xz_18.png new file mode 100644 index 0000000..b5f57bd Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_18.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_19.20.21.22.png b/图片资源/方块选中合集/方块选中/xz_19.20.21.22.png new file mode 100644 index 0000000..2c0a57c Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_19.20.21.22.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_2.png b/图片资源/方块选中合集/方块选中/xz_2.png new file mode 100644 index 0000000..86d42af Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_2.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_23.png b/图片资源/方块选中合集/方块选中/xz_23.png new file mode 100644 index 0000000..eef90ea Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_23.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_3.png b/图片资源/方块选中合集/方块选中/xz_3.png new file mode 100644 index 0000000..3d81d15 Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_3.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_4.png b/图片资源/方块选中合集/方块选中/xz_4.png new file mode 100644 index 0000000..04bb35a Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_4.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_5.png b/图片资源/方块选中合集/方块选中/xz_5.png new file mode 100644 index 0000000..0045e08 Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_5.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_6.10.png b/图片资源/方块选中合集/方块选中/xz_6.10.png new file mode 100644 index 0000000..a66d3c7 Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_6.10.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_7.11.png b/图片资源/方块选中合集/方块选中/xz_7.11.png new file mode 100644 index 0000000..b4acdf3 Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_7.11.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_8.12.png b/图片资源/方块选中合集/方块选中/xz_8.12.png new file mode 100644 index 0000000..cb0dc48 Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_8.12.png differ diff --git a/图片资源/方块选中合集/方块选中/xz_9.13.png b/图片资源/方块选中合集/方块选中/xz_9.13.png new file mode 100644 index 0000000..6e99cb4 Binary files /dev/null and b/图片资源/方块选中合集/方块选中/xz_9.13.png differ diff --git a/图片资源/方块选中合集/方块选中/方块选中白边.png b/图片资源/方块选中合集/方块选中/方块选中白边.png new file mode 100644 index 0000000..504d73d Binary files /dev/null and b/图片资源/方块选中合集/方块选中/方块选中白边.png differ diff --git a/图片资源/方块选中合集/锁链/sl_0.png b/图片资源/方块选中合集/锁链/sl_0.png new file mode 100644 index 0000000..b1182be Binary files /dev/null and b/图片资源/方块选中合集/锁链/sl_0.png differ diff --git a/图片资源/方块选中合集/锁链/sl_1.3.png b/图片资源/方块选中合集/锁链/sl_1.3.png new file mode 100644 index 0000000..f4144ed Binary files /dev/null and b/图片资源/方块选中合集/锁链/sl_1.3.png differ diff --git a/图片资源/方块选中合集/锁链/sl_14.15.16.17.18.19.20.21.22.png b/图片资源/方块选中合集/锁链/sl_14.15.16.17.18.19.20.21.22.png new file mode 100644 index 0000000..c296f50 Binary files /dev/null and b/图片资源/方块选中合集/锁链/sl_14.15.16.17.18.19.20.21.22.png differ diff --git a/图片资源/方块选中合集/锁链/sl_2.png b/图片资源/方块选中合集/锁链/sl_2.png new file mode 100644 index 0000000..a95f8d7 Binary files /dev/null and b/图片资源/方块选中合集/锁链/sl_2.png differ diff --git a/图片资源/方块选中合集/锁链/sl_4.png b/图片资源/方块选中合集/锁链/sl_4.png new file mode 100644 index 0000000..bb5edf8 Binary files /dev/null and b/图片资源/方块选中合集/锁链/sl_4.png differ diff --git a/图片资源/方块选中合集/锁链/sl_5.23.png b/图片资源/方块选中合集/锁链/sl_5.23.png new file mode 100644 index 0000000..d9ef365 Binary files /dev/null and b/图片资源/方块选中合集/锁链/sl_5.23.png differ diff --git a/图片资源/方块选中合集/锁链/sl_6.10.png b/图片资源/方块选中合集/锁链/sl_6.10.png new file mode 100644 index 0000000..06fd5a2 Binary files /dev/null and b/图片资源/方块选中合集/锁链/sl_6.10.png differ diff --git a/图片资源/方块选中合集/锁链/sl_8.12.png b/图片资源/方块选中合集/锁链/sl_8.12.png new file mode 100644 index 0000000..513bd15 Binary files /dev/null and b/图片资源/方块选中合集/锁链/sl_8.12.png differ diff --git a/图片资源/方块选中合集/锁链/sl_9.13.png b/图片资源/方块选中合集/锁链/sl_9.13.png new file mode 100644 index 0000000..300c572 Binary files /dev/null and b/图片资源/方块选中合集/锁链/sl_9.13.png differ diff --git a/图片资源/方块选中合集/锁链/sl__7.11.png b/图片资源/方块选中合集/锁链/sl__7.11.png new file mode 100644 index 0000000..3c7177c Binary files /dev/null and b/图片资源/方块选中合集/锁链/sl__7.11.png differ diff --git a/图片资源/方块选中合集/锁链/方块选中白边,锁链.png b/图片资源/方块选中合集/锁链/方块选中白边,锁链.png new file mode 100644 index 0000000..1c2dcfb Binary files /dev/null and b/图片资源/方块选中合集/锁链/方块选中白边,锁链.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color0.png b/图片资源/方块颜色合集/颜色1/1color0.png new file mode 100644 index 0000000..5d77899 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color0.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color1.png b/图片资源/方块颜色合集/颜色1/1color1.png new file mode 100644 index 0000000..e2827a7 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color1.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color10.png b/图片资源/方块颜色合集/颜色1/1color10.png new file mode 100644 index 0000000..22a41c0 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color10.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color11.png b/图片资源/方块颜色合集/颜色1/1color11.png new file mode 100644 index 0000000..5c61ab2 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color11.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color12.png b/图片资源/方块颜色合集/颜色1/1color12.png new file mode 100644 index 0000000..f12cd6b Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color12.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color13.png b/图片资源/方块颜色合集/颜色1/1color13.png new file mode 100644 index 0000000..bc2fd3e Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color13.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color14.png b/图片资源/方块颜色合集/颜色1/1color14.png new file mode 100644 index 0000000..9dea473 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color14.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color15.png b/图片资源/方块颜色合集/颜色1/1color15.png new file mode 100644 index 0000000..ad1c34e Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color15.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color16.png b/图片资源/方块颜色合集/颜色1/1color16.png new file mode 100644 index 0000000..1243c87 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color16.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color17.png b/图片资源/方块颜色合集/颜色1/1color17.png new file mode 100644 index 0000000..b00b7c6 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color17.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color18.png b/图片资源/方块颜色合集/颜色1/1color18.png new file mode 100644 index 0000000..7ba664c Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color18.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color19.png b/图片资源/方块颜色合集/颜色1/1color19.png new file mode 100644 index 0000000..3874c81 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color19.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color2.png b/图片资源/方块颜色合集/颜色1/1color2.png new file mode 100644 index 0000000..c83048c Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color2.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color20.png b/图片资源/方块颜色合集/颜色1/1color20.png new file mode 100644 index 0000000..4637b38 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color20.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color21.png b/图片资源/方块颜色合集/颜色1/1color21.png new file mode 100644 index 0000000..b7e3e7b Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color21.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color22.png b/图片资源/方块颜色合集/颜色1/1color22.png new file mode 100644 index 0000000..2b5d7bb Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color22.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color3.png b/图片资源/方块颜色合集/颜色1/1color3.png new file mode 100644 index 0000000..3d399fc Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color3.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color4.png b/图片资源/方块颜色合集/颜色1/1color4.png new file mode 100644 index 0000000..fcfff4a Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color4.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color5.png b/图片资源/方块颜色合集/颜色1/1color5.png new file mode 100644 index 0000000..7268c73 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color5.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color6.png b/图片资源/方块颜色合集/颜色1/1color6.png new file mode 100644 index 0000000..d97fcd5 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color6.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color7.png b/图片资源/方块颜色合集/颜色1/1color7.png new file mode 100644 index 0000000..bb49049 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color7.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color8.png b/图片资源/方块颜色合集/颜色1/1color8.png new file mode 100644 index 0000000..af859ff Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color8.png differ diff --git a/图片资源/方块颜色合集/颜色1/1color9.png b/图片资源/方块颜色合集/颜色1/1color9.png new file mode 100644 index 0000000..d35789b Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/1color9.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color0.png b/图片资源/方块颜色合集/颜色1/2color0.png new file mode 100644 index 0000000..526e066 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color0.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color1.png b/图片资源/方块颜色合集/颜色1/2color1.png new file mode 100644 index 0000000..eb02091 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color1.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color10.png b/图片资源/方块颜色合集/颜色1/2color10.png new file mode 100644 index 0000000..3d1d137 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color10.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color11.png b/图片资源/方块颜色合集/颜色1/2color11.png new file mode 100644 index 0000000..5d6d831 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color11.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color12.png b/图片资源/方块颜色合集/颜色1/2color12.png new file mode 100644 index 0000000..c2cdb89 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color12.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color13.png b/图片资源/方块颜色合集/颜色1/2color13.png new file mode 100644 index 0000000..40619a3 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color13.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color14.png b/图片资源/方块颜色合集/颜色1/2color14.png new file mode 100644 index 0000000..0451e1d Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color14.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color15.png b/图片资源/方块颜色合集/颜色1/2color15.png new file mode 100644 index 0000000..0f34aa9 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color15.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color16.png b/图片资源/方块颜色合集/颜色1/2color16.png new file mode 100644 index 0000000..1dae837 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color16.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color17.png b/图片资源/方块颜色合集/颜色1/2color17.png new file mode 100644 index 0000000..0a264fe Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color17.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color18.png b/图片资源/方块颜色合集/颜色1/2color18.png new file mode 100644 index 0000000..e808156 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color18.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color19.png b/图片资源/方块颜色合集/颜色1/2color19.png new file mode 100644 index 0000000..a7a7e0b Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color19.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color2.png b/图片资源/方块颜色合集/颜色1/2color2.png new file mode 100644 index 0000000..1a06e49 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color2.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color20.png b/图片资源/方块颜色合集/颜色1/2color20.png new file mode 100644 index 0000000..37e1da7 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color20.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color21.png b/图片资源/方块颜色合集/颜色1/2color21.png new file mode 100644 index 0000000..d806e2d Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color21.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color22.png b/图片资源/方块颜色合集/颜色1/2color22.png new file mode 100644 index 0000000..9336ba9 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color22.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color3.png b/图片资源/方块颜色合集/颜色1/2color3.png new file mode 100644 index 0000000..88dedec Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color3.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color4.png b/图片资源/方块颜色合集/颜色1/2color4.png new file mode 100644 index 0000000..d669a37 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color4.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color5.png b/图片资源/方块颜色合集/颜色1/2color5.png new file mode 100644 index 0000000..d248830 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color5.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color6.png b/图片资源/方块颜色合集/颜色1/2color6.png new file mode 100644 index 0000000..a6b3772 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color6.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color7.png b/图片资源/方块颜色合集/颜色1/2color7.png new file mode 100644 index 0000000..18334b2 Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color7.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color8.png b/图片资源/方块颜色合集/颜色1/2color8.png new file mode 100644 index 0000000..b21a68e Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color8.png differ diff --git a/图片资源/方块颜色合集/颜色1/2color9.png b/图片资源/方块颜色合集/颜色1/2color9.png new file mode 100644 index 0000000..88bf65b Binary files /dev/null and b/图片资源/方块颜色合集/颜色1/2color9.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color0.png b/图片资源/方块颜色合集/颜色2/3color0.png new file mode 100644 index 0000000..8d82e99 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color0.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color1.png b/图片资源/方块颜色合集/颜色2/3color1.png new file mode 100644 index 0000000..f51e1d5 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color1.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color10.png b/图片资源/方块颜色合集/颜色2/3color10.png new file mode 100644 index 0000000..8b17e98 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color10.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color11.png b/图片资源/方块颜色合集/颜色2/3color11.png new file mode 100644 index 0000000..d6ad24a Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color11.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color12.png b/图片资源/方块颜色合集/颜色2/3color12.png new file mode 100644 index 0000000..1f2c161 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color12.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color13.png b/图片资源/方块颜色合集/颜色2/3color13.png new file mode 100644 index 0000000..b2c2043 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color13.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color14.png b/图片资源/方块颜色合集/颜色2/3color14.png new file mode 100644 index 0000000..af8d416 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color14.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color15.png b/图片资源/方块颜色合集/颜色2/3color15.png new file mode 100644 index 0000000..0c0868c Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color15.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color16.png b/图片资源/方块颜色合集/颜色2/3color16.png new file mode 100644 index 0000000..c2ba11e Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color16.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color17.png b/图片资源/方块颜色合集/颜色2/3color17.png new file mode 100644 index 0000000..4611ec0 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color17.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color18.png b/图片资源/方块颜色合集/颜色2/3color18.png new file mode 100644 index 0000000..a883590 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color18.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color19.png b/图片资源/方块颜色合集/颜色2/3color19.png new file mode 100644 index 0000000..c2c9302 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color19.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color2.png b/图片资源/方块颜色合集/颜色2/3color2.png new file mode 100644 index 0000000..c9a11bb Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color2.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color20.png b/图片资源/方块颜色合集/颜色2/3color20.png new file mode 100644 index 0000000..9e44f96 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color20.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color21.png b/图片资源/方块颜色合集/颜色2/3color21.png new file mode 100644 index 0000000..e67d950 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color21.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color22.png b/图片资源/方块颜色合集/颜色2/3color22.png new file mode 100644 index 0000000..782053a Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color22.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color3.png b/图片资源/方块颜色合集/颜色2/3color3.png new file mode 100644 index 0000000..7c933ea Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color3.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color4.png b/图片资源/方块颜色合集/颜色2/3color4.png new file mode 100644 index 0000000..4dcdcc4 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color4.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color5.png b/图片资源/方块颜色合集/颜色2/3color5.png new file mode 100644 index 0000000..efed9fc Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color5.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color6.png b/图片资源/方块颜色合集/颜色2/3color6.png new file mode 100644 index 0000000..76b7ffc Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color6.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color7.png b/图片资源/方块颜色合集/颜色2/3color7.png new file mode 100644 index 0000000..ac20d6e Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color7.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color8.png b/图片资源/方块颜色合集/颜色2/3color8.png new file mode 100644 index 0000000..fff780e Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color8.png differ diff --git a/图片资源/方块颜色合集/颜色2/3color9.png b/图片资源/方块颜色合集/颜色2/3color9.png new file mode 100644 index 0000000..218de9a Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/3color9.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color0.png b/图片资源/方块颜色合集/颜色2/4color0.png new file mode 100644 index 0000000..969c6cb Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color0.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color1.png b/图片资源/方块颜色合集/颜色2/4color1.png new file mode 100644 index 0000000..05d77bd Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color1.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color10.png b/图片资源/方块颜色合集/颜色2/4color10.png new file mode 100644 index 0000000..db6e65e Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color10.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color11.png b/图片资源/方块颜色合集/颜色2/4color11.png new file mode 100644 index 0000000..f14f934 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color11.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color12.png b/图片资源/方块颜色合集/颜色2/4color12.png new file mode 100644 index 0000000..d8aa191 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color12.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color13.png b/图片资源/方块颜色合集/颜色2/4color13.png new file mode 100644 index 0000000..4bdb422 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color13.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color14.png b/图片资源/方块颜色合集/颜色2/4color14.png new file mode 100644 index 0000000..e293d7d Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color14.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color15.png b/图片资源/方块颜色合集/颜色2/4color15.png new file mode 100644 index 0000000..95e7b83 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color15.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color16.png b/图片资源/方块颜色合集/颜色2/4color16.png new file mode 100644 index 0000000..70b013a Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color16.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color17.png b/图片资源/方块颜色合集/颜色2/4color17.png new file mode 100644 index 0000000..93308c5 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color17.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color18.png b/图片资源/方块颜色合集/颜色2/4color18.png new file mode 100644 index 0000000..db238a0 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color18.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color19.png b/图片资源/方块颜色合集/颜色2/4color19.png new file mode 100644 index 0000000..aad1644 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color19.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color2.png b/图片资源/方块颜色合集/颜色2/4color2.png new file mode 100644 index 0000000..d5edec4 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color2.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color20.png b/图片资源/方块颜色合集/颜色2/4color20.png new file mode 100644 index 0000000..9ceda40 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color20.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color21.png b/图片资源/方块颜色合集/颜色2/4color21.png new file mode 100644 index 0000000..b72b7e3 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color21.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color22.png b/图片资源/方块颜色合集/颜色2/4color22.png new file mode 100644 index 0000000..f9fd06f Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color22.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color3.png b/图片资源/方块颜色合集/颜色2/4color3.png new file mode 100644 index 0000000..1475d35 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color3.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color4.png b/图片资源/方块颜色合集/颜色2/4color4.png new file mode 100644 index 0000000..85a0098 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color4.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color5.png b/图片资源/方块颜色合集/颜色2/4color5.png new file mode 100644 index 0000000..b582239 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color5.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color6.png b/图片资源/方块颜色合集/颜色2/4color6.png new file mode 100644 index 0000000..580ec13 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color6.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color7.png b/图片资源/方块颜色合集/颜色2/4color7.png new file mode 100644 index 0000000..ff273d2 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color7.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color8.png b/图片资源/方块颜色合集/颜色2/4color8.png new file mode 100644 index 0000000..9e3c114 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color8.png differ diff --git a/图片资源/方块颜色合集/颜色2/4color9.png b/图片资源/方块颜色合集/颜色2/4color9.png new file mode 100644 index 0000000..2ae8e62 Binary files /dev/null and b/图片资源/方块颜色合集/颜色2/4color9.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color0.png b/图片资源/方块颜色合集/颜色3/5color0.png new file mode 100644 index 0000000..a7d48ca Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color0.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color1.png b/图片资源/方块颜色合集/颜色3/5color1.png new file mode 100644 index 0000000..ce16c2d Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color1.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color10.png b/图片资源/方块颜色合集/颜色3/5color10.png new file mode 100644 index 0000000..19dbbff Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color10.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color11.png b/图片资源/方块颜色合集/颜色3/5color11.png new file mode 100644 index 0000000..edb6fe6 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color11.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color12.png b/图片资源/方块颜色合集/颜色3/5color12.png new file mode 100644 index 0000000..1e0334e Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color12.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color13.png b/图片资源/方块颜色合集/颜色3/5color13.png new file mode 100644 index 0000000..8e2a956 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color13.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color14.png b/图片资源/方块颜色合集/颜色3/5color14.png new file mode 100644 index 0000000..1ce75f0 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color14.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color15.png b/图片资源/方块颜色合集/颜色3/5color15.png new file mode 100644 index 0000000..080eb3e Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color15.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color16.png b/图片资源/方块颜色合集/颜色3/5color16.png new file mode 100644 index 0000000..6e7a0ba Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color16.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color17.png b/图片资源/方块颜色合集/颜色3/5color17.png new file mode 100644 index 0000000..1c5ad2a Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color17.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color18.png b/图片资源/方块颜色合集/颜色3/5color18.png new file mode 100644 index 0000000..c854d32 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color18.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color19.png b/图片资源/方块颜色合集/颜色3/5color19.png new file mode 100644 index 0000000..8480de5 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color19.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color2.png b/图片资源/方块颜色合集/颜色3/5color2.png new file mode 100644 index 0000000..d328699 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color2.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color20.png b/图片资源/方块颜色合集/颜色3/5color20.png new file mode 100644 index 0000000..73e423c Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color20.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color21.png b/图片资源/方块颜色合集/颜色3/5color21.png new file mode 100644 index 0000000..7fd7fac Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color21.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color22.png b/图片资源/方块颜色合集/颜色3/5color22.png new file mode 100644 index 0000000..e7f8c39 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color22.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color3.png b/图片资源/方块颜色合集/颜色3/5color3.png new file mode 100644 index 0000000..5492f60 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color3.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color4.png b/图片资源/方块颜色合集/颜色3/5color4.png new file mode 100644 index 0000000..df0dc46 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color4.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color5.png b/图片资源/方块颜色合集/颜色3/5color5.png new file mode 100644 index 0000000..5ca370b Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color5.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color6.png b/图片资源/方块颜色合集/颜色3/5color6.png new file mode 100644 index 0000000..d10c198 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color6.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color7.png b/图片资源/方块颜色合集/颜色3/5color7.png new file mode 100644 index 0000000..8ee5cf0 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color7.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color8.png b/图片资源/方块颜色合集/颜色3/5color8.png new file mode 100644 index 0000000..d500a18 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color8.png differ diff --git a/图片资源/方块颜色合集/颜色3/5color9.png b/图片资源/方块颜色合集/颜色3/5color9.png new file mode 100644 index 0000000..07468b5 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/5color9.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color0.png b/图片资源/方块颜色合集/颜色3/6color0.png new file mode 100644 index 0000000..3d79990 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color0.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color1.png b/图片资源/方块颜色合集/颜色3/6color1.png new file mode 100644 index 0000000..5ac148b Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color1.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color10.png b/图片资源/方块颜色合集/颜色3/6color10.png new file mode 100644 index 0000000..dc26881 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color10.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color11.png b/图片资源/方块颜色合集/颜色3/6color11.png new file mode 100644 index 0000000..c9da57c Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color11.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color12.png b/图片资源/方块颜色合集/颜色3/6color12.png new file mode 100644 index 0000000..e5b2cb7 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color12.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color13.png b/图片资源/方块颜色合集/颜色3/6color13.png new file mode 100644 index 0000000..c788ede Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color13.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color14.png b/图片资源/方块颜色合集/颜色3/6color14.png new file mode 100644 index 0000000..44c4dbc Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color14.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color15.png b/图片资源/方块颜色合集/颜色3/6color15.png new file mode 100644 index 0000000..f3fa722 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color15.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color16.png b/图片资源/方块颜色合集/颜色3/6color16.png new file mode 100644 index 0000000..b7476e5 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color16.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color17.png b/图片资源/方块颜色合集/颜色3/6color17.png new file mode 100644 index 0000000..7bf7ff0 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color17.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color18.png b/图片资源/方块颜色合集/颜色3/6color18.png new file mode 100644 index 0000000..72b6655 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color18.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color19.png b/图片资源/方块颜色合集/颜色3/6color19.png new file mode 100644 index 0000000..cb3e873 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color19.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color2.png b/图片资源/方块颜色合集/颜色3/6color2.png new file mode 100644 index 0000000..2692a1c Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color2.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color20.png b/图片资源/方块颜色合集/颜色3/6color20.png new file mode 100644 index 0000000..b98d57c Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color20.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color21.png b/图片资源/方块颜色合集/颜色3/6color21.png new file mode 100644 index 0000000..1238ce3 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color21.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color22.png b/图片资源/方块颜色合集/颜色3/6color22.png new file mode 100644 index 0000000..0e2ec54 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color22.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color3.png b/图片资源/方块颜色合集/颜色3/6color3.png new file mode 100644 index 0000000..148819e Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color3.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color4.png b/图片资源/方块颜色合集/颜色3/6color4.png new file mode 100644 index 0000000..84b48aa Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color4.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color5.png b/图片资源/方块颜色合集/颜色3/6color5.png new file mode 100644 index 0000000..c1d1812 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color5.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color6.png b/图片资源/方块颜色合集/颜色3/6color6.png new file mode 100644 index 0000000..45218c9 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color6.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color7.png b/图片资源/方块颜色合集/颜色3/6color7.png new file mode 100644 index 0000000..742c143 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color7.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color8.png b/图片资源/方块颜色合集/颜色3/6color8.png new file mode 100644 index 0000000..7420e07 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color8.png differ diff --git a/图片资源/方块颜色合集/颜色3/6color9.png b/图片资源/方块颜色合集/颜色3/6color9.png new file mode 100644 index 0000000..0e7b4c5 Binary files /dev/null and b/图片资源/方块颜色合集/颜色3/6color9.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color0.png b/图片资源/方块颜色合集/颜色4/7color0.png new file mode 100644 index 0000000..38f3c2b Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color0.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color1.png b/图片资源/方块颜色合集/颜色4/7color1.png new file mode 100644 index 0000000..8a6d7d2 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color1.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color10.png b/图片资源/方块颜色合集/颜色4/7color10.png new file mode 100644 index 0000000..0624d94 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color10.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color11.png b/图片资源/方块颜色合集/颜色4/7color11.png new file mode 100644 index 0000000..2fadd8d Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color11.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color12.png b/图片资源/方块颜色合集/颜色4/7color12.png new file mode 100644 index 0000000..ad0fb1e Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color12.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color13.png b/图片资源/方块颜色合集/颜色4/7color13.png new file mode 100644 index 0000000..03a2e3a Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color13.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color14.png b/图片资源/方块颜色合集/颜色4/7color14.png new file mode 100644 index 0000000..a907b88 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color14.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color15.png b/图片资源/方块颜色合集/颜色4/7color15.png new file mode 100644 index 0000000..ab5237e Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color15.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color16.png b/图片资源/方块颜色合集/颜色4/7color16.png new file mode 100644 index 0000000..55bee66 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color16.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color17.png b/图片资源/方块颜色合集/颜色4/7color17.png new file mode 100644 index 0000000..acae687 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color17.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color18.png b/图片资源/方块颜色合集/颜色4/7color18.png new file mode 100644 index 0000000..11cae85 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color18.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color19.png b/图片资源/方块颜色合集/颜色4/7color19.png new file mode 100644 index 0000000..51c201d Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color19.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color2.png b/图片资源/方块颜色合集/颜色4/7color2.png new file mode 100644 index 0000000..96c58f4 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color2.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color20.png b/图片资源/方块颜色合集/颜色4/7color20.png new file mode 100644 index 0000000..7873213 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color20.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color21.png b/图片资源/方块颜色合集/颜色4/7color21.png new file mode 100644 index 0000000..ebfb8ea Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color21.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color22.png b/图片资源/方块颜色合集/颜色4/7color22.png new file mode 100644 index 0000000..509a3fa Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color22.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color3.png b/图片资源/方块颜色合集/颜色4/7color3.png new file mode 100644 index 0000000..e1812cf Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color3.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color4.png b/图片资源/方块颜色合集/颜色4/7color4.png new file mode 100644 index 0000000..e01ab28 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color4.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color5.png b/图片资源/方块颜色合集/颜色4/7color5.png new file mode 100644 index 0000000..ba5d86f Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color5.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color6.png b/图片资源/方块颜色合集/颜色4/7color6.png new file mode 100644 index 0000000..af45f14 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color6.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color7.png b/图片资源/方块颜色合集/颜色4/7color7.png new file mode 100644 index 0000000..428320b Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color7.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color8.png b/图片资源/方块颜色合集/颜色4/7color8.png new file mode 100644 index 0000000..ad480ff Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color8.png differ diff --git a/图片资源/方块颜色合集/颜色4/7color9.png b/图片资源/方块颜色合集/颜色4/7color9.png new file mode 100644 index 0000000..cfc365e Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/7color9.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color0.png b/图片资源/方块颜色合集/颜色4/8color0.png new file mode 100644 index 0000000..0b58aac Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color0.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color1.png b/图片资源/方块颜色合集/颜色4/8color1.png new file mode 100644 index 0000000..3b576d4 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color1.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color10.png b/图片资源/方块颜色合集/颜色4/8color10.png new file mode 100644 index 0000000..abd9ae3 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color10.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color11.png b/图片资源/方块颜色合集/颜色4/8color11.png new file mode 100644 index 0000000..8a02433 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color11.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color12.png b/图片资源/方块颜色合集/颜色4/8color12.png new file mode 100644 index 0000000..381535d Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color12.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color13.png b/图片资源/方块颜色合集/颜色4/8color13.png new file mode 100644 index 0000000..064144c Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color13.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color14.png b/图片资源/方块颜色合集/颜色4/8color14.png new file mode 100644 index 0000000..3174ec6 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color14.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color15.png b/图片资源/方块颜色合集/颜色4/8color15.png new file mode 100644 index 0000000..e72c279 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color15.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color16.png b/图片资源/方块颜色合集/颜色4/8color16.png new file mode 100644 index 0000000..472813b Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color16.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color17.png b/图片资源/方块颜色合集/颜色4/8color17.png new file mode 100644 index 0000000..a00f80e Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color17.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color18.png b/图片资源/方块颜色合集/颜色4/8color18.png new file mode 100644 index 0000000..976228d Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color18.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color19.png b/图片资源/方块颜色合集/颜色4/8color19.png new file mode 100644 index 0000000..206d4a1 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color19.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color2.png b/图片资源/方块颜色合集/颜色4/8color2.png new file mode 100644 index 0000000..ab89719 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color2.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color20.png b/图片资源/方块颜色合集/颜色4/8color20.png new file mode 100644 index 0000000..5d1fb02 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color20.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color21.png b/图片资源/方块颜色合集/颜色4/8color21.png new file mode 100644 index 0000000..1c7b5bc Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color21.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color22.png b/图片资源/方块颜色合集/颜色4/8color22.png new file mode 100644 index 0000000..4b62383 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color22.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color3.png b/图片资源/方块颜色合集/颜色4/8color3.png new file mode 100644 index 0000000..50f13d8 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color3.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color4.png b/图片资源/方块颜色合集/颜色4/8color4.png new file mode 100644 index 0000000..383cfb3 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color4.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color5.png b/图片资源/方块颜色合集/颜色4/8color5.png new file mode 100644 index 0000000..e4a9b9f Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color5.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color6.png b/图片资源/方块颜色合集/颜色4/8color6.png new file mode 100644 index 0000000..49edb2a Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color6.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color7.png b/图片资源/方块颜色合集/颜色4/8color7.png new file mode 100644 index 0000000..f120e85 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color7.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color8.png b/图片资源/方块颜色合集/颜色4/8color8.png new file mode 100644 index 0000000..1023b20 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color8.png differ diff --git a/图片资源/方块颜色合集/颜色4/8color9.png b/图片资源/方块颜色合集/颜色4/8color9.png new file mode 100644 index 0000000..ae5dbc2 Binary files /dev/null and b/图片资源/方块颜色合集/颜色4/8color9.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color0.png b/图片资源/方块颜色合集/颜色5/10color0.png new file mode 100644 index 0000000..d73475f Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color0.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color1.png b/图片资源/方块颜色合集/颜色5/10color1.png new file mode 100644 index 0000000..0885aeb Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color1.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color10.png b/图片资源/方块颜色合集/颜色5/10color10.png new file mode 100644 index 0000000..3cbb0b0 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color10.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color11.png b/图片资源/方块颜色合集/颜色5/10color11.png new file mode 100644 index 0000000..568c5bd Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color11.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color12.png b/图片资源/方块颜色合集/颜色5/10color12.png new file mode 100644 index 0000000..93b9ccc Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color12.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color13.png b/图片资源/方块颜色合集/颜色5/10color13.png new file mode 100644 index 0000000..2dbf25a Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color13.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color14.png b/图片资源/方块颜色合集/颜色5/10color14.png new file mode 100644 index 0000000..0ebc927 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color14.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color15.png b/图片资源/方块颜色合集/颜色5/10color15.png new file mode 100644 index 0000000..2149620 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color15.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color16.png b/图片资源/方块颜色合集/颜色5/10color16.png new file mode 100644 index 0000000..1f04cee Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color16.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color17.png b/图片资源/方块颜色合集/颜色5/10color17.png new file mode 100644 index 0000000..f90d712 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color17.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color18.png b/图片资源/方块颜色合集/颜色5/10color18.png new file mode 100644 index 0000000..938615d Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color18.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color19.png b/图片资源/方块颜色合集/颜色5/10color19.png new file mode 100644 index 0000000..14b2553 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color19.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color2.png b/图片资源/方块颜色合集/颜色5/10color2.png new file mode 100644 index 0000000..c10f357 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color2.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color20.png b/图片资源/方块颜色合集/颜色5/10color20.png new file mode 100644 index 0000000..5859fff Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color20.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color21.png b/图片资源/方块颜色合集/颜色5/10color21.png new file mode 100644 index 0000000..8ee3703 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color21.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color22.png b/图片资源/方块颜色合集/颜色5/10color22.png new file mode 100644 index 0000000..9f8a935 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color22.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color3.png b/图片资源/方块颜色合集/颜色5/10color3.png new file mode 100644 index 0000000..236cbc4 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color3.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color4.png b/图片资源/方块颜色合集/颜色5/10color4.png new file mode 100644 index 0000000..129863f Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color4.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color5.png b/图片资源/方块颜色合集/颜色5/10color5.png new file mode 100644 index 0000000..15c70ab Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color5.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color6.png b/图片资源/方块颜色合集/颜色5/10color6.png new file mode 100644 index 0000000..e990cf9 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color6.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color7.png b/图片资源/方块颜色合集/颜色5/10color7.png new file mode 100644 index 0000000..b697f13 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color7.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color8.png b/图片资源/方块颜色合集/颜色5/10color8.png new file mode 100644 index 0000000..22eec32 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color8.png differ diff --git a/图片资源/方块颜色合集/颜色5/10color9.png b/图片资源/方块颜色合集/颜色5/10color9.png new file mode 100644 index 0000000..fd997ff Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/10color9.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color0.png b/图片资源/方块颜色合集/颜色5/9color0.png new file mode 100644 index 0000000..ebae69e Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color0.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color1.png b/图片资源/方块颜色合集/颜色5/9color1.png new file mode 100644 index 0000000..8af1c85 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color1.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color10.png b/图片资源/方块颜色合集/颜色5/9color10.png new file mode 100644 index 0000000..06afaf2 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color10.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color11.png b/图片资源/方块颜色合集/颜色5/9color11.png new file mode 100644 index 0000000..250e62c Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color11.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color12.png b/图片资源/方块颜色合集/颜色5/9color12.png new file mode 100644 index 0000000..b5f4a47 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color12.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color13.png b/图片资源/方块颜色合集/颜色5/9color13.png new file mode 100644 index 0000000..5066d02 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color13.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color14.png b/图片资源/方块颜色合集/颜色5/9color14.png new file mode 100644 index 0000000..81ec63e Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color14.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color15.png b/图片资源/方块颜色合集/颜色5/9color15.png new file mode 100644 index 0000000..d0a7060 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color15.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color16.png b/图片资源/方块颜色合集/颜色5/9color16.png new file mode 100644 index 0000000..e04f3ab Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color16.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color17.png b/图片资源/方块颜色合集/颜色5/9color17.png new file mode 100644 index 0000000..f2d14cf Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color17.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color18.png b/图片资源/方块颜色合集/颜色5/9color18.png new file mode 100644 index 0000000..0c6ec1f Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color18.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color19.png b/图片资源/方块颜色合集/颜色5/9color19.png new file mode 100644 index 0000000..9c25fe9 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color19.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color2.png b/图片资源/方块颜色合集/颜色5/9color2.png new file mode 100644 index 0000000..9a0ee37 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color2.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color20.png b/图片资源/方块颜色合集/颜色5/9color20.png new file mode 100644 index 0000000..cf7325c Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color20.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color21.png b/图片资源/方块颜色合集/颜色5/9color21.png new file mode 100644 index 0000000..dae1d3b Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color21.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color22.png b/图片资源/方块颜色合集/颜色5/9color22.png new file mode 100644 index 0000000..81177d5 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color22.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color3.png b/图片资源/方块颜色合集/颜色5/9color3.png new file mode 100644 index 0000000..a716009 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color3.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color4.png b/图片资源/方块颜色合集/颜色5/9color4.png new file mode 100644 index 0000000..fad63ff Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color4.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color5.png b/图片资源/方块颜色合集/颜色5/9color5.png new file mode 100644 index 0000000..1cf57f0 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color5.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color6.png b/图片资源/方块颜色合集/颜色5/9color6.png new file mode 100644 index 0000000..418d6aa Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color6.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color7.png b/图片资源/方块颜色合集/颜色5/9color7.png new file mode 100644 index 0000000..fabb060 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color7.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color8.png b/图片资源/方块颜色合集/颜色5/9color8.png new file mode 100644 index 0000000..457a4e5 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color8.png differ diff --git a/图片资源/方块颜色合集/颜色5/9color9.png b/图片资源/方块颜色合集/颜色5/9color9.png new file mode 100644 index 0000000..5cd4ea0 Binary files /dev/null and b/图片资源/方块颜色合集/颜色5/9color9.png differ diff --git a/图片资源/门下降状态合集/10down1.png b/图片资源/门下降状态合集/10down1.png new file mode 100644 index 0000000..f059277 Binary files /dev/null and b/图片资源/门下降状态合集/10down1.png differ diff --git a/图片资源/门下降状态合集/10down2.png b/图片资源/门下降状态合集/10down2.png new file mode 100644 index 0000000..306f3d5 Binary files /dev/null and b/图片资源/门下降状态合集/10down2.png differ diff --git a/图片资源/门下降状态合集/10down3.png b/图片资源/门下降状态合集/10down3.png new file mode 100644 index 0000000..5f8e1a8 Binary files /dev/null and b/图片资源/门下降状态合集/10down3.png differ diff --git a/图片资源/门下降状态合集/10down4.png b/图片资源/门下降状态合集/10down4.png new file mode 100644 index 0000000..bcf5e9d Binary files /dev/null and b/图片资源/门下降状态合集/10down4.png differ diff --git a/图片资源/门下降状态合集/10down5.png b/图片资源/门下降状态合集/10down5.png new file mode 100644 index 0000000..8b3ce3c Binary files /dev/null and b/图片资源/门下降状态合集/10down5.png differ diff --git a/图片资源/门下降状态合集/10down6.png b/图片资源/门下降状态合集/10down6.png new file mode 100644 index 0000000..ee947fe Binary files /dev/null and b/图片资源/门下降状态合集/10down6.png differ diff --git a/图片资源/门下降状态合集/1down1.png b/图片资源/门下降状态合集/1down1.png new file mode 100644 index 0000000..7a6e5f5 Binary files /dev/null and b/图片资源/门下降状态合集/1down1.png differ diff --git a/图片资源/门下降状态合集/1down2.png b/图片资源/门下降状态合集/1down2.png new file mode 100644 index 0000000..0c408d7 Binary files /dev/null and b/图片资源/门下降状态合集/1down2.png differ diff --git a/图片资源/门下降状态合集/1down3.png b/图片资源/门下降状态合集/1down3.png new file mode 100644 index 0000000..a40ec64 Binary files /dev/null and b/图片资源/门下降状态合集/1down3.png differ diff --git a/图片资源/门下降状态合集/1down4.png b/图片资源/门下降状态合集/1down4.png new file mode 100644 index 0000000..ac4467a Binary files /dev/null and b/图片资源/门下降状态合集/1down4.png differ diff --git a/图片资源/门下降状态合集/1down5.png b/图片资源/门下降状态合集/1down5.png new file mode 100644 index 0000000..20fb6bd Binary files /dev/null and b/图片资源/门下降状态合集/1down5.png differ diff --git a/图片资源/门下降状态合集/1down6.png b/图片资源/门下降状态合集/1down6.png new file mode 100644 index 0000000..eb41cd6 Binary files /dev/null and b/图片资源/门下降状态合集/1down6.png differ diff --git a/图片资源/门下降状态合集/2down1.png b/图片资源/门下降状态合集/2down1.png new file mode 100644 index 0000000..2763d56 Binary files /dev/null and b/图片资源/门下降状态合集/2down1.png differ diff --git a/图片资源/门下降状态合集/2down2.png b/图片资源/门下降状态合集/2down2.png new file mode 100644 index 0000000..15627b7 Binary files /dev/null and b/图片资源/门下降状态合集/2down2.png differ diff --git a/图片资源/门下降状态合集/2down3.png b/图片资源/门下降状态合集/2down3.png new file mode 100644 index 0000000..ec4c191 Binary files /dev/null and b/图片资源/门下降状态合集/2down3.png differ diff --git a/图片资源/门下降状态合集/2down4.png b/图片资源/门下降状态合集/2down4.png new file mode 100644 index 0000000..b794efc Binary files /dev/null and b/图片资源/门下降状态合集/2down4.png differ diff --git a/图片资源/门下降状态合集/2down5.png b/图片资源/门下降状态合集/2down5.png new file mode 100644 index 0000000..86676d7 Binary files /dev/null and b/图片资源/门下降状态合集/2down5.png differ diff --git a/图片资源/门下降状态合集/2down6.png b/图片资源/门下降状态合集/2down6.png new file mode 100644 index 0000000..340d5a5 Binary files /dev/null and b/图片资源/门下降状态合集/2down6.png differ diff --git a/图片资源/门下降状态合集/3down1.png b/图片资源/门下降状态合集/3down1.png new file mode 100644 index 0000000..8ae3326 Binary files /dev/null and b/图片资源/门下降状态合集/3down1.png differ diff --git a/图片资源/门下降状态合集/3down2.png b/图片资源/门下降状态合集/3down2.png new file mode 100644 index 0000000..cd87bae Binary files /dev/null and b/图片资源/门下降状态合集/3down2.png differ diff --git a/图片资源/门下降状态合集/3down3.png b/图片资源/门下降状态合集/3down3.png new file mode 100644 index 0000000..27fff26 Binary files /dev/null and b/图片资源/门下降状态合集/3down3.png differ diff --git a/图片资源/门下降状态合集/3down4.png b/图片资源/门下降状态合集/3down4.png new file mode 100644 index 0000000..ad8a8f3 Binary files /dev/null and b/图片资源/门下降状态合集/3down4.png differ diff --git a/图片资源/门下降状态合集/3down5.png b/图片资源/门下降状态合集/3down5.png new file mode 100644 index 0000000..4655e3a Binary files /dev/null and b/图片资源/门下降状态合集/3down5.png differ diff --git a/图片资源/门下降状态合集/3down6.png b/图片资源/门下降状态合集/3down6.png new file mode 100644 index 0000000..f8d0045 Binary files /dev/null and b/图片资源/门下降状态合集/3down6.png differ diff --git a/图片资源/门下降状态合集/4down1.png b/图片资源/门下降状态合集/4down1.png new file mode 100644 index 0000000..2ce87ee Binary files /dev/null and b/图片资源/门下降状态合集/4down1.png differ diff --git a/图片资源/门下降状态合集/4down2.png b/图片资源/门下降状态合集/4down2.png new file mode 100644 index 0000000..e78dcbf Binary files /dev/null and b/图片资源/门下降状态合集/4down2.png differ diff --git a/图片资源/门下降状态合集/4down3.png b/图片资源/门下降状态合集/4down3.png new file mode 100644 index 0000000..0af3545 Binary files /dev/null and b/图片资源/门下降状态合集/4down3.png differ diff --git a/图片资源/门下降状态合集/4down4.png b/图片资源/门下降状态合集/4down4.png new file mode 100644 index 0000000..b720ee6 Binary files /dev/null and b/图片资源/门下降状态合集/4down4.png differ diff --git a/图片资源/门下降状态合集/4down5.png b/图片资源/门下降状态合集/4down5.png new file mode 100644 index 0000000..95a5657 Binary files /dev/null and b/图片资源/门下降状态合集/4down5.png differ diff --git a/图片资源/门下降状态合集/4down6.png b/图片资源/门下降状态合集/4down6.png new file mode 100644 index 0000000..c23a910 Binary files /dev/null and b/图片资源/门下降状态合集/4down6.png differ diff --git a/图片资源/门下降状态合集/5down1.png b/图片资源/门下降状态合集/5down1.png new file mode 100644 index 0000000..ee22e19 Binary files /dev/null and b/图片资源/门下降状态合集/5down1.png differ diff --git a/图片资源/门下降状态合集/5down2.png b/图片资源/门下降状态合集/5down2.png new file mode 100644 index 0000000..76ac4f4 Binary files /dev/null and b/图片资源/门下降状态合集/5down2.png differ diff --git a/图片资源/门下降状态合集/5down3.png b/图片资源/门下降状态合集/5down3.png new file mode 100644 index 0000000..09ca59e Binary files /dev/null and b/图片资源/门下降状态合集/5down3.png differ diff --git a/图片资源/门下降状态合集/5down4.png b/图片资源/门下降状态合集/5down4.png new file mode 100644 index 0000000..1cb18f6 Binary files /dev/null and b/图片资源/门下降状态合集/5down4.png differ diff --git a/图片资源/门下降状态合集/5down5.png b/图片资源/门下降状态合集/5down5.png new file mode 100644 index 0000000..e7a5e57 Binary files /dev/null and b/图片资源/门下降状态合集/5down5.png differ diff --git a/图片资源/门下降状态合集/5down6.png b/图片资源/门下降状态合集/5down6.png new file mode 100644 index 0000000..dbba06d Binary files /dev/null and b/图片资源/门下降状态合集/5down6.png differ diff --git a/图片资源/门下降状态合集/6down1.png b/图片资源/门下降状态合集/6down1.png new file mode 100644 index 0000000..51bda19 Binary files /dev/null and b/图片资源/门下降状态合集/6down1.png differ diff --git a/图片资源/门下降状态合集/6down2.png b/图片资源/门下降状态合集/6down2.png new file mode 100644 index 0000000..2ea3daa Binary files /dev/null and b/图片资源/门下降状态合集/6down2.png differ diff --git a/图片资源/门下降状态合集/6down3.png b/图片资源/门下降状态合集/6down3.png new file mode 100644 index 0000000..00a7d65 Binary files /dev/null and b/图片资源/门下降状态合集/6down3.png differ diff --git a/图片资源/门下降状态合集/6down4.png b/图片资源/门下降状态合集/6down4.png new file mode 100644 index 0000000..6a856c5 Binary files /dev/null and b/图片资源/门下降状态合集/6down4.png differ diff --git a/图片资源/门下降状态合集/6down5.png b/图片资源/门下降状态合集/6down5.png new file mode 100644 index 0000000..b761b83 Binary files /dev/null and b/图片资源/门下降状态合集/6down5.png differ diff --git a/图片资源/门下降状态合集/6down6.png b/图片资源/门下降状态合集/6down6.png new file mode 100644 index 0000000..c95c9e7 Binary files /dev/null and b/图片资源/门下降状态合集/6down6.png differ diff --git a/图片资源/门下降状态合集/7down1.png b/图片资源/门下降状态合集/7down1.png new file mode 100644 index 0000000..fe0030f Binary files /dev/null and b/图片资源/门下降状态合集/7down1.png differ diff --git a/图片资源/门下降状态合集/7down2.png b/图片资源/门下降状态合集/7down2.png new file mode 100644 index 0000000..862445f Binary files /dev/null and b/图片资源/门下降状态合集/7down2.png differ diff --git a/图片资源/门下降状态合集/7down3.png b/图片资源/门下降状态合集/7down3.png new file mode 100644 index 0000000..2d422fa Binary files /dev/null and b/图片资源/门下降状态合集/7down3.png differ diff --git a/图片资源/门下降状态合集/7down4.png b/图片资源/门下降状态合集/7down4.png new file mode 100644 index 0000000..b5cfb69 Binary files /dev/null and b/图片资源/门下降状态合集/7down4.png differ diff --git a/图片资源/门下降状态合集/7down5.png b/图片资源/门下降状态合集/7down5.png new file mode 100644 index 0000000..03fb1c6 Binary files /dev/null and b/图片资源/门下降状态合集/7down5.png differ diff --git a/图片资源/门下降状态合集/7down6.png b/图片资源/门下降状态合集/7down6.png new file mode 100644 index 0000000..31dd2a3 Binary files /dev/null and b/图片资源/门下降状态合集/7down6.png differ diff --git a/图片资源/门下降状态合集/8down1.png b/图片资源/门下降状态合集/8down1.png new file mode 100644 index 0000000..7561776 Binary files /dev/null and b/图片资源/门下降状态合集/8down1.png differ diff --git a/图片资源/门下降状态合集/8down2.png b/图片资源/门下降状态合集/8down2.png new file mode 100644 index 0000000..98f431b Binary files /dev/null and b/图片资源/门下降状态合集/8down2.png differ diff --git a/图片资源/门下降状态合集/8down3.png b/图片资源/门下降状态合集/8down3.png new file mode 100644 index 0000000..07248a4 Binary files /dev/null and b/图片资源/门下降状态合集/8down3.png differ diff --git a/图片资源/门下降状态合集/8down4.png b/图片资源/门下降状态合集/8down4.png new file mode 100644 index 0000000..91ea6a3 Binary files /dev/null and b/图片资源/门下降状态合集/8down4.png differ diff --git a/图片资源/门下降状态合集/8down5.png b/图片资源/门下降状态合集/8down5.png new file mode 100644 index 0000000..98dfe11 Binary files /dev/null and b/图片资源/门下降状态合集/8down5.png differ diff --git a/图片资源/门下降状态合集/8down6.png b/图片资源/门下降状态合集/8down6.png new file mode 100644 index 0000000..1e6d6e8 Binary files /dev/null and b/图片资源/门下降状态合集/8down6.png differ diff --git a/图片资源/门下降状态合集/9down1.png b/图片资源/门下降状态合集/9down1.png new file mode 100644 index 0000000..1307db9 Binary files /dev/null and b/图片资源/门下降状态合集/9down1.png differ diff --git a/图片资源/门下降状态合集/9down2.png b/图片资源/门下降状态合集/9down2.png new file mode 100644 index 0000000..31e7e98 Binary files /dev/null and b/图片资源/门下降状态合集/9down2.png differ diff --git a/图片资源/门下降状态合集/9down3.png b/图片资源/门下降状态合集/9down3.png new file mode 100644 index 0000000..38eb8fd Binary files /dev/null and b/图片资源/门下降状态合集/9down3.png differ diff --git a/图片资源/门下降状态合集/9down4.png b/图片资源/门下降状态合集/9down4.png new file mode 100644 index 0000000..61d41bd Binary files /dev/null and b/图片资源/门下降状态合集/9down4.png differ diff --git a/图片资源/门下降状态合集/9down5.png b/图片资源/门下降状态合集/9down5.png new file mode 100644 index 0000000..9a58fca Binary files /dev/null and b/图片资源/门下降状态合集/9down5.png differ diff --git a/图片资源/门下降状态合集/9down6.png b/图片资源/门下降状态合集/9down6.png new file mode 100644 index 0000000..7082ccc Binary files /dev/null and b/图片资源/门下降状态合集/9down6.png differ diff --git a/图片资源/门正常状态合集/10color1.png b/图片资源/门正常状态合集/10color1.png new file mode 100644 index 0000000..1c99e98 Binary files /dev/null and b/图片资源/门正常状态合集/10color1.png differ diff --git a/图片资源/门正常状态合集/10color2.png b/图片资源/门正常状态合集/10color2.png new file mode 100644 index 0000000..f8789fe Binary files /dev/null and b/图片资源/门正常状态合集/10color2.png differ diff --git a/图片资源/门正常状态合集/10color3.png b/图片资源/门正常状态合集/10color3.png new file mode 100644 index 0000000..25b0bae Binary files /dev/null and b/图片资源/门正常状态合集/10color3.png differ diff --git a/图片资源/门正常状态合集/10color4.png b/图片资源/门正常状态合集/10color4.png new file mode 100644 index 0000000..f5bb8fb Binary files /dev/null and b/图片资源/门正常状态合集/10color4.png differ diff --git a/图片资源/门正常状态合集/10color5.png b/图片资源/门正常状态合集/10color5.png new file mode 100644 index 0000000..883e424 Binary files /dev/null and b/图片资源/门正常状态合集/10color5.png differ diff --git a/图片资源/门正常状态合集/10color6.png b/图片资源/门正常状态合集/10color6.png new file mode 100644 index 0000000..fa2f5d6 Binary files /dev/null and b/图片资源/门正常状态合集/10color6.png differ diff --git a/图片资源/门正常状态合集/1color1.png b/图片资源/门正常状态合集/1color1.png new file mode 100644 index 0000000..4aeb4f5 Binary files /dev/null and b/图片资源/门正常状态合集/1color1.png differ diff --git a/图片资源/门正常状态合集/1color2.png b/图片资源/门正常状态合集/1color2.png new file mode 100644 index 0000000..5f2a7a7 Binary files /dev/null and b/图片资源/门正常状态合集/1color2.png differ diff --git a/图片资源/门正常状态合集/1color3.png b/图片资源/门正常状态合集/1color3.png new file mode 100644 index 0000000..6833b46 Binary files /dev/null and b/图片资源/门正常状态合集/1color3.png differ diff --git a/图片资源/门正常状态合集/1color4.png b/图片资源/门正常状态合集/1color4.png new file mode 100644 index 0000000..e89d99a Binary files /dev/null and b/图片资源/门正常状态合集/1color4.png differ diff --git a/图片资源/门正常状态合集/1color5.png b/图片资源/门正常状态合集/1color5.png new file mode 100644 index 0000000..8454f3c Binary files /dev/null and b/图片资源/门正常状态合集/1color5.png differ diff --git a/图片资源/门正常状态合集/1color6.png b/图片资源/门正常状态合集/1color6.png new file mode 100644 index 0000000..937ab53 Binary files /dev/null and b/图片资源/门正常状态合集/1color6.png differ diff --git a/图片资源/门正常状态合集/2color1.png b/图片资源/门正常状态合集/2color1.png new file mode 100644 index 0000000..3f13db4 Binary files /dev/null and b/图片资源/门正常状态合集/2color1.png differ diff --git a/图片资源/门正常状态合集/2color2.png b/图片资源/门正常状态合集/2color2.png new file mode 100644 index 0000000..aff7bf4 Binary files /dev/null and b/图片资源/门正常状态合集/2color2.png differ diff --git a/图片资源/门正常状态合集/2color3.png b/图片资源/门正常状态合集/2color3.png new file mode 100644 index 0000000..147a72c Binary files /dev/null and b/图片资源/门正常状态合集/2color3.png differ diff --git a/图片资源/门正常状态合集/2color4.png b/图片资源/门正常状态合集/2color4.png new file mode 100644 index 0000000..47ab582 Binary files /dev/null and b/图片资源/门正常状态合集/2color4.png differ diff --git a/图片资源/门正常状态合集/2color5.png b/图片资源/门正常状态合集/2color5.png new file mode 100644 index 0000000..86676d7 Binary files /dev/null and b/图片资源/门正常状态合集/2color5.png differ diff --git a/图片资源/门正常状态合集/2color6.png b/图片资源/门正常状态合集/2color6.png new file mode 100644 index 0000000..340d5a5 Binary files /dev/null and b/图片资源/门正常状态合集/2color6.png differ diff --git a/图片资源/门正常状态合集/3color1.png b/图片资源/门正常状态合集/3color1.png new file mode 100644 index 0000000..fe02c97 Binary files /dev/null and b/图片资源/门正常状态合集/3color1.png differ diff --git a/图片资源/门正常状态合集/3color2.png b/图片资源/门正常状态合集/3color2.png new file mode 100644 index 0000000..6eb6615 Binary files /dev/null and b/图片资源/门正常状态合集/3color2.png differ diff --git a/图片资源/门正常状态合集/3color3.png b/图片资源/门正常状态合集/3color3.png new file mode 100644 index 0000000..83a5551 Binary files /dev/null and b/图片资源/门正常状态合集/3color3.png differ diff --git a/图片资源/门正常状态合集/3color4.png b/图片资源/门正常状态合集/3color4.png new file mode 100644 index 0000000..f9286c9 Binary files /dev/null and b/图片资源/门正常状态合集/3color4.png differ diff --git a/图片资源/门正常状态合集/3color5.png b/图片资源/门正常状态合集/3color5.png new file mode 100644 index 0000000..e3ae136 Binary files /dev/null and b/图片资源/门正常状态合集/3color5.png differ diff --git a/图片资源/门正常状态合集/3color6.png b/图片资源/门正常状态合集/3color6.png new file mode 100644 index 0000000..9cb5eb0 Binary files /dev/null and b/图片资源/门正常状态合集/3color6.png differ diff --git a/图片资源/门正常状态合集/4color1.png b/图片资源/门正常状态合集/4color1.png new file mode 100644 index 0000000..29e7516 Binary files /dev/null and b/图片资源/门正常状态合集/4color1.png differ diff --git a/图片资源/门正常状态合集/4color2.png b/图片资源/门正常状态合集/4color2.png new file mode 100644 index 0000000..658dd14 Binary files /dev/null and b/图片资源/门正常状态合集/4color2.png differ diff --git a/图片资源/门正常状态合集/4color3.png b/图片资源/门正常状态合集/4color3.png new file mode 100644 index 0000000..2ed7306 Binary files /dev/null and b/图片资源/门正常状态合集/4color3.png differ diff --git a/图片资源/门正常状态合集/4color4.png b/图片资源/门正常状态合集/4color4.png new file mode 100644 index 0000000..d3e6941 Binary files /dev/null and b/图片资源/门正常状态合集/4color4.png differ diff --git a/图片资源/门正常状态合集/4color5.png b/图片资源/门正常状态合集/4color5.png new file mode 100644 index 0000000..90638f1 Binary files /dev/null and b/图片资源/门正常状态合集/4color5.png differ diff --git a/图片资源/门正常状态合集/4color6.png b/图片资源/门正常状态合集/4color6.png new file mode 100644 index 0000000..cc8c627 Binary files /dev/null and b/图片资源/门正常状态合集/4color6.png differ diff --git a/图片资源/门正常状态合集/5color1.png b/图片资源/门正常状态合集/5color1.png new file mode 100644 index 0000000..b18f188 Binary files /dev/null and b/图片资源/门正常状态合集/5color1.png differ diff --git a/图片资源/门正常状态合集/5color2.png b/图片资源/门正常状态合集/5color2.png new file mode 100644 index 0000000..f05d210 Binary files /dev/null and b/图片资源/门正常状态合集/5color2.png differ diff --git a/图片资源/门正常状态合集/5color3.png b/图片资源/门正常状态合集/5color3.png new file mode 100644 index 0000000..09ad652 Binary files /dev/null and b/图片资源/门正常状态合集/5color3.png differ diff --git a/图片资源/门正常状态合集/5color4.png b/图片资源/门正常状态合集/5color4.png new file mode 100644 index 0000000..a2bc662 Binary files /dev/null and b/图片资源/门正常状态合集/5color4.png differ diff --git a/图片资源/门正常状态合集/5color5.png b/图片资源/门正常状态合集/5color5.png new file mode 100644 index 0000000..4f93e80 Binary files /dev/null and b/图片资源/门正常状态合集/5color5.png differ diff --git a/图片资源/门正常状态合集/5color6.png b/图片资源/门正常状态合集/5color6.png new file mode 100644 index 0000000..d5e4ffe Binary files /dev/null and b/图片资源/门正常状态合集/5color6.png differ diff --git a/图片资源/门正常状态合集/6color1.png b/图片资源/门正常状态合集/6color1.png new file mode 100644 index 0000000..45830c7 Binary files /dev/null and b/图片资源/门正常状态合集/6color1.png differ diff --git a/图片资源/门正常状态合集/6color2.png b/图片资源/门正常状态合集/6color2.png new file mode 100644 index 0000000..cb22323 Binary files /dev/null and b/图片资源/门正常状态合集/6color2.png differ diff --git a/图片资源/门正常状态合集/6color3.png b/图片资源/门正常状态合集/6color3.png new file mode 100644 index 0000000..8113479 Binary files /dev/null and b/图片资源/门正常状态合集/6color3.png differ diff --git a/图片资源/门正常状态合集/6color4.png b/图片资源/门正常状态合集/6color4.png new file mode 100644 index 0000000..d4595ca Binary files /dev/null and b/图片资源/门正常状态合集/6color4.png differ diff --git a/图片资源/门正常状态合集/6color5.png b/图片资源/门正常状态合集/6color5.png new file mode 100644 index 0000000..0dd3bde Binary files /dev/null and b/图片资源/门正常状态合集/6color5.png differ diff --git a/图片资源/门正常状态合集/6color6.png b/图片资源/门正常状态合集/6color6.png new file mode 100644 index 0000000..2d30875 Binary files /dev/null and b/图片资源/门正常状态合集/6color6.png differ diff --git a/图片资源/门正常状态合集/7color1.png b/图片资源/门正常状态合集/7color1.png new file mode 100644 index 0000000..ded44a6 Binary files /dev/null and b/图片资源/门正常状态合集/7color1.png differ diff --git a/图片资源/门正常状态合集/7color2.png b/图片资源/门正常状态合集/7color2.png new file mode 100644 index 0000000..29ab06e Binary files /dev/null and b/图片资源/门正常状态合集/7color2.png differ diff --git a/图片资源/门正常状态合集/7color3.png b/图片资源/门正常状态合集/7color3.png new file mode 100644 index 0000000..006f842 Binary files /dev/null and b/图片资源/门正常状态合集/7color3.png differ diff --git a/图片资源/门正常状态合集/7color4.png b/图片资源/门正常状态合集/7color4.png new file mode 100644 index 0000000..e56498f Binary files /dev/null and b/图片资源/门正常状态合集/7color4.png differ diff --git a/图片资源/门正常状态合集/7color5.png b/图片资源/门正常状态合集/7color5.png new file mode 100644 index 0000000..8ad86a8 Binary files /dev/null and b/图片资源/门正常状态合集/7color5.png differ diff --git a/图片资源/门正常状态合集/7color6.png b/图片资源/门正常状态合集/7color6.png new file mode 100644 index 0000000..abc05fd Binary files /dev/null and b/图片资源/门正常状态合集/7color6.png differ diff --git a/图片资源/门正常状态合集/8color1.png b/图片资源/门正常状态合集/8color1.png new file mode 100644 index 0000000..90a7940 Binary files /dev/null and b/图片资源/门正常状态合集/8color1.png differ diff --git a/图片资源/门正常状态合集/8color2.png b/图片资源/门正常状态合集/8color2.png new file mode 100644 index 0000000..d88a444 Binary files /dev/null and b/图片资源/门正常状态合集/8color2.png differ diff --git a/图片资源/门正常状态合集/8color3.png b/图片资源/门正常状态合集/8color3.png new file mode 100644 index 0000000..c5866ec Binary files /dev/null and b/图片资源/门正常状态合集/8color3.png differ diff --git a/图片资源/门正常状态合集/8color4.png b/图片资源/门正常状态合集/8color4.png new file mode 100644 index 0000000..38d15a7 Binary files /dev/null and b/图片资源/门正常状态合集/8color4.png differ diff --git a/图片资源/门正常状态合集/8color5.png b/图片资源/门正常状态合集/8color5.png new file mode 100644 index 0000000..29c48d8 Binary files /dev/null and b/图片资源/门正常状态合集/8color5.png differ diff --git a/图片资源/门正常状态合集/8color6.png b/图片资源/门正常状态合集/8color6.png new file mode 100644 index 0000000..9f1d005 Binary files /dev/null and b/图片资源/门正常状态合集/8color6.png differ diff --git a/图片资源/门正常状态合集/9color1.png b/图片资源/门正常状态合集/9color1.png new file mode 100644 index 0000000..85887cb Binary files /dev/null and b/图片资源/门正常状态合集/9color1.png differ diff --git a/图片资源/门正常状态合集/9color2.png b/图片资源/门正常状态合集/9color2.png new file mode 100644 index 0000000..72c6934 Binary files /dev/null and b/图片资源/门正常状态合集/9color2.png differ diff --git a/图片资源/门正常状态合集/9color3.png b/图片资源/门正常状态合集/9color3.png new file mode 100644 index 0000000..fc7f85b Binary files /dev/null and b/图片资源/门正常状态合集/9color3.png differ diff --git a/图片资源/门正常状态合集/9color4.png b/图片资源/门正常状态合集/9color4.png new file mode 100644 index 0000000..111b0c0 Binary files /dev/null and b/图片资源/门正常状态合集/9color4.png differ diff --git a/图片资源/门正常状态合集/9color5.png b/图片资源/门正常状态合集/9color5.png new file mode 100644 index 0000000..6895cab Binary files /dev/null and b/图片资源/门正常状态合集/9color5.png differ diff --git a/图片资源/门正常状态合集/9color6.png b/图片资源/门正常状态合集/9color6.png new file mode 100644 index 0000000..95021ee Binary files /dev/null and b/图片资源/门正常状态合集/9color6.png differ diff --git a/图片资源/门正常状态合集/dikuai.png b/图片资源/门正常状态合集/dikuai.png new file mode 100644 index 0000000..09df1cf Binary files /dev/null and b/图片资源/门正常状态合集/dikuai.png differ diff --git a/图片资源/门正常状态合集/shu_zl1.png b/图片资源/门正常状态合集/shu_zl1.png new file mode 100644 index 0000000..ff2488b Binary files /dev/null and b/图片资源/门正常状态合集/shu_zl1.png differ diff --git a/图片资源/门正常状态合集/shu_zl1_1.png b/图片资源/门正常状态合集/shu_zl1_1.png new file mode 100644 index 0000000..4fe3e98 Binary files /dev/null and b/图片资源/门正常状态合集/shu_zl1_1.png differ diff --git a/图片资源/门正常状态合集/shu_zl1_2.png b/图片资源/门正常状态合集/shu_zl1_2.png new file mode 100644 index 0000000..7ca03de Binary files /dev/null and b/图片资源/门正常状态合集/shu_zl1_2.png differ diff --git a/图片资源/门正常状态合集/shu_zl1_3.png b/图片资源/门正常状态合集/shu_zl1_3.png new file mode 100644 index 0000000..7874b45 Binary files /dev/null and b/图片资源/门正常状态合集/shu_zl1_3.png differ diff --git a/图片资源/门正常状态合集/shu_zl2.png b/图片资源/门正常状态合集/shu_zl2.png new file mode 100644 index 0000000..ab49c9f Binary files /dev/null and b/图片资源/门正常状态合集/shu_zl2.png differ diff --git a/图片资源/门正常状态合集/shu_zl2_1.png b/图片资源/门正常状态合集/shu_zl2_1.png new file mode 100644 index 0000000..7118c1a Binary files /dev/null and b/图片资源/门正常状态合集/shu_zl2_1.png differ diff --git a/图片资源/门正常状态合集/shu_zl2_11.png b/图片资源/门正常状态合集/shu_zl2_11.png new file mode 100644 index 0000000..d9b3b90 Binary files /dev/null and b/图片资源/门正常状态合集/shu_zl2_11.png differ diff --git a/图片资源/门正常状态合集/shu_zl2_2.png b/图片资源/门正常状态合集/shu_zl2_2.png new file mode 100644 index 0000000..f4ef178 Binary files /dev/null and b/图片资源/门正常状态合集/shu_zl2_2.png differ diff --git a/图片资源/门正常状态合集/shu_zl2_22.png b/图片资源/门正常状态合集/shu_zl2_22.png new file mode 100644 index 0000000..4971796 Binary files /dev/null and b/图片资源/门正常状态合集/shu_zl2_22.png differ diff --git a/图片资源/门正常状态合集/shu_zl2_3.png b/图片资源/门正常状态合集/shu_zl2_3.png new file mode 100644 index 0000000..8080e2b Binary files /dev/null and b/图片资源/门正常状态合集/shu_zl2_3.png differ diff --git a/图片资源/门正常状态合集/shu_zl2_33.png b/图片资源/门正常状态合集/shu_zl2_33.png new file mode 100644 index 0000000..089c429 Binary files /dev/null and b/图片资源/门正常状态合集/shu_zl2_33.png differ diff --git a/图片资源/门正常状态合集/wall1.png b/图片资源/门正常状态合集/wall1.png new file mode 100644 index 0000000..3e4f00d Binary files /dev/null and b/图片资源/门正常状态合集/wall1.png differ diff --git a/图片资源/门正常状态合集/wall2.png b/图片资源/门正常状态合集/wall2.png new file mode 100644 index 0000000..2ee569e Binary files /dev/null and b/图片资源/门正常状态合集/wall2.png differ diff --git a/图片资源/门正常状态合集/wall3.png b/图片资源/门正常状态合集/wall3.png new file mode 100644 index 0000000..e8c69eb Binary files /dev/null and b/图片资源/门正常状态合集/wall3.png differ diff --git a/图片资源/门正常状态合集/wall4.png b/图片资源/门正常状态合集/wall4.png new file mode 100644 index 0000000..b6893f7 Binary files /dev/null and b/图片资源/门正常状态合集/wall4.png differ diff --git a/图片资源/门正常状态合集/wall5.png b/图片资源/门正常状态合集/wall5.png new file mode 100644 index 0000000..cf06277 Binary files /dev/null and b/图片资源/门正常状态合集/wall5.png differ diff --git a/图片资源/门正常状态合集/wall6.png b/图片资源/门正常状态合集/wall6.png new file mode 100644 index 0000000..de85ac2 Binary files /dev/null and b/图片资源/门正常状态合集/wall6.png differ diff --git a/图片资源/门正常状态合集/wall7.png b/图片资源/门正常状态合集/wall7.png new file mode 100644 index 0000000..9972954 Binary files /dev/null and b/图片资源/门正常状态合集/wall7.png differ diff --git a/assets/res/texture_Block/zhangai.png b/图片资源/门正常状态合集/zhangai.png similarity index 100% rename from assets/res/texture_Block/zhangai.png rename to 图片资源/门正常状态合集/zhangai.png