(function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/__qc_index__.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);}
require('./assets/OP15/scene/OP15');
require('./assets/OP15/script/defaultData');
require('./assets/OP15/script/state');
require('./assets/OP15/script/util');
require('./assets/OP15/script/xstate');

                    }
                    if (nodeEnv) {
                        __define(__module.exports, __require, __module);
                    }
                    else {
                        __quick_compile_project__.registerModuleFunc(__filename, function () {
                            __define(__module.exports, __require, __module);
                        });
                    }
                })();
//------QC-SOURCE-SPLIT------

                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/OP15/script/defaultData.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, 'c41b05RVddEPK86siw92bnl', 'defaultData');
// OP15/script/defaultData.js

"use strict";

exports.__esModule = true;
exports.defaultData = void 0;
var defaultData = {
  // "begin_audio": "http://staging-teach.cdn.ireadabc.com/b1e5378083adac9950839772c7b67f34.mp3",
  "begin_audio": "http://staging-teach.cdn.ireadabc.com/81e7a94e1420a4cbcaa583d4188ab145.mp3",
  "playing_audio": "http://teach.cdn.ireadabc.com/549347d1be620d9d91b7420d45b3cb7a.mp3",
  "end_audio": "http://staging-teach.cdn.ireadabc.com/81e7a94e1420a4cbcaa583d4188ab145.mp3",
  "bgItem": {
    "url": "http://teach.cdn.ireadabc.com/adcccbd26e2cfa259920e24df01d4b92.png",
    "rect": {
      "x": 374.6,
      "y": 0,
      "width": 293.8,
      "height": 390
    }
  },
  "hotZoneItemArr": [{
    "id": "1638090450402",
    "index": 0,
    "itemType": "rect",
    "fontScale": 0.81484375,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 0.81484375,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/c5c6cd890660a3c22fde393a3770458f.json",
      "name": "小汽车_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/cea107517406463474d907e306163226.json",
      "name": "小汽车_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/84bce64cd4259e604a458d08ddd75bec.png",
      "name": "小汽车_tex.png"
    },
    "dragDot": {
      "x": 521.5,
      "y": 195
    },
    "gIdx": "1",
    "rect": {
      "x": 46.9,
      "y": 95,
      "width": 200,
      "height": 200
    }
  }, {
    "id": "1638090465133",
    "index": 1,
    "pic_url": "http://teach.cdn.ireadabc.com/70d02ee3788e373f707a45530cd2f9c0.png",
    "itemType": "pic",
    "fontScale": 0.81484375,
    "imgScale": 0.23579201934703747,
    "imgSizeW": 1246,
    "imgSizeH": 1654,
    "mapScale": 0.81484375,
    "dragDot": {
      "x": 521.5,
      "y": 195
    },
    "gIdx": "2",
    "rect": {
      "x": 0,
      "y": 1,
      "width": 293.8,
      "height": 390
    }
  }, {
    "id": "1638090485031",
    "index": 2,
    "audio_url": "http://teach.cdn.ireadabc.com/e31c3b1914837a611d4d3bb1ceb00773.mp3",
    "itemType": "rect",
    "fontScale": 0.81484375,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 0.81484375,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/d2d7de9f8079f36e8354d16e4ca26476.json",
      "name": "房子_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/204ea18018a352a30fd233a46f9a0a1a.json",
      "name": "房子_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/cf8da0ab00a7d9f34bdf8f490c29dcbf.png",
      "name": "房子_tex.png"
    },
    "dragDot": {
      "x": 521.5,
      "y": 195
    },
    "gIdx": "0",
    "labelText": "14",
    "posX": 578,
    "posY": 160.99791334496155,
    "rect": {
      "x": 124.9,
      "y": 108,
      "width": 170,
      "height": 106
    }
  }, {
    "id": "1638090539787",
    "index": 3,
    "itemType": "rect",
    "fontScale": 0.81484375,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 0.81484375,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/ed2ac4931a9c00ff6c4298381722676e.json",
      "name": "牛_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/0e153093ee7265b6a843847543d6110b.json",
      "name": "牛_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/631661e13616eea6cde9f9e6610f5008.png",
      "name": "牛_tex.png"
    },
    "dragDot": {
      "x": 521.5,
      "y": 197.46116504854368
    },
    "gIdx": "1",
    "rect": {
      "x": 46.9,
      "y": 95,
      "width": 200,
      "height": 200
    }
  }, {
    "id": "1638090562867",
    "index": 4,
    "audio_url": "http://teach.cdn.ireadabc.com/bf1924c502ca1a4ac928a31e7c8aa70e.mp3",
    "itemType": "rect",
    "fontScale": 0.81484375,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 0.81484375,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/bd3c2cc93b1593433a58d8482972ff66.json",
      "name": "苹果_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/1f54df317a8c86271e29d6db3ffb55ce.json",
      "name": "苹果_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/734ac06a7ef018b457e7ac7692789ffa.png",
      "name": "苹果_tex.png"
    },
    "dragDot": {
      "x": 521.5,
      "y": 197.46116504854368
    },
    "gIdx": "0",
    "labelText": "6",
    "posX": 429,
    "posY": 146,
    "rect": {
      "x": -0.1,
      "y": 70,
      "width": 122,
      "height": 152
    }
  }, {
    "id": "1638090594247",
    "index": 5,
    "itemType": "rect",
    "fontScale": 0.81484375,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 0.81484375,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/1d4b251caf0c0b8245fb17cd8445672c.json",
      "name": "农夫_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/1fdd04cacb6d543cf05ce64e8124a6ff.json",
      "name": "农夫_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/8f582cb39eb349da08e06289b0ce6c16.png",
      "name": "农夫_tex.png"
    },
    "dragDot": {
      "x": 521.5,
      "y": 197.46116504854368
    },
    "gIdx": "1",
    "rect": {
      "x": 46.9,
      "y": 95,
      "width": 200,
      "height": 200
    }
  }, {
    "id": "1638090663056",
    "index": 6,
    "itemType": "rect",
    "fontScale": 0.81484375,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 0.81484375,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/4503721901880d0b6c3ad6d4261e958b.json",
      "name": "小女孩_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/fc4fd0b2f672dff7c7b2148830164090.json",
      "name": "小女孩_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/4be41c15972caf99eef956ba48759c91.png",
      "name": "小女孩_tex.png"
    },
    "dragDot": {
      "x": 521.5,
      "y": 197.46116504854368
    },
    "gIdx": "1",
    "rect": {
      "x": 46.9,
      "y": 95,
      "width": 200,
      "height": 200
    }
  }, {
    "id": "1638090685571",
    "index": 7,
    "itemType": "rect",
    "fontScale": 0.81484375,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 0.81484375,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/55951c794b414ab58cca023642819e37.json",
      "name": "母鸡_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/47b93323b1d1e1e6020704c537f46820.json",
      "name": "母鸡_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/dd66021ff860b02a559d59817c71e27f.png",
      "name": "母鸡_tex.png"
    },
    "dragDot": {
      "x": 521.5,
      "y": 197.46116504854368
    },
    "gIdx": "1",
    "rect": {
      "x": 46.9,
      "y": 95,
      "width": 200,
      "height": 200
    }
  }, {
    "id": "1638090695652",
    "index": 8,
    "audio_url": "http://teach.cdn.ireadabc.com/323feb19d153069702ffd21097f18f79.mp3",
    "itemType": "rect",
    "fontScale": 0.81484375,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 0.81484375,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/cd7c7a756c0f79d28f419576e3b85b0c.json",
      "name": "鸭子_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/7613f30893a5f64773a77723c1d67f0d.json",
      "name": "鸭子_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/59b2293ef4eea9d64ff9821bc5d69a6d.png",
      "name": "鸭子_tex.png"
    },
    "dragDot": {
      "x": 521.5,
      "y": 197.46116504854368
    },
    "gIdx": "0",
    "labelText": "11",
    "posX": 564.4993151491155,
    "posY": 247.99735690361797,
    "rect": {
      "x": 127.9,
      "y": 216,
      "width": 124,
      "height": 64
    }
  }, {
    "id": "1638090758159",
    "index": 9,
    "audio_url": "http://teach.cdn.ireadabc.com/b903b174f09107517b5d6f8934b73447.mp3",
    "itemType": "rect",
    "fontScale": 0.81484375,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 0.81484375,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/b9fa85c227daa6539f12cab5a5058052.json",
      "name": "鸡蛋_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/99aa8de7b69000ac6c5e0fb6a508b692.json",
      "name": "鸡蛋_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/09bd0a34a4508613fd7c167724e4a969.png",
      "name": "鸡蛋_tex.png"
    },
    "dragDot": {
      "x": 521.5,
      "y": 197.46116504854368
    },
    "gIdx": "0",
    "labelText": "7",
    "posX": 471.50036382703234,
    "posY": 291.99683256465954,
    "rect": {
      "x": 67.4,
      "y": 223,
      "width": 59,
      "height": 138
    }
  }, {
    "id": "1638090812155",
    "index": 10,
    "itemType": "rect",
    "fontScale": 0.81484375,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 0.81484375,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/357fef8204228afb43d0ce73746228e5.json",
      "name": "鱼_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/f694e5442095a317fc7d8b1390e630c7.json",
      "name": "鱼_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/f566cca10fd83f62a465b144ac73d483.png",
      "name": "鱼_tex.png"
    },
    "dragDot": {
      "x": 521.5,
      "y": 197.46116504854368
    },
    "gIdx": "1",
    "rect": {
      "x": 46.9,
      "y": 95,
      "width": 200,
      "height": 200
    }
  }, {
    "id": "1638090824244",
    "index": 11,
    "audio_url": "http://teach.cdn.ireadabc.com/2656b72aec7f6def07713fbc99309168.mp3",
    "itemType": "rect",
    "fontScale": 0.81484375,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 0.81484375,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/20cbf3d186a197baaed38204dd017f51.json",
      "name": "猫_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/d7de5a32de3ee1ad660dc509ba8adf1d.json",
      "name": "猫_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/af86e967aab8632cd0b26d60a62f0675.png",
      "name": "猫_tex.png"
    },
    "dragDot": {
      "x": 521.5,
      "y": 197.46116504854368
    },
    "gIdx": "0",
    "labelText": "10",
    "posX": 408.50114498507236,
    "posY": 288.99689676943,
    "rect": {
      "x": 1.4,
      "y": 222,
      "width": 65,
      "height": 134
    }
  }, {
    "id": "1638090897644",
    "index": 12,
    "audio_url": "http://teach.cdn.ireadabc.com/9bbf8ba2fa7f96ea5a95c27a384414a2.mp3",
    "itemType": "rect",
    "fontScale": 0.81484375,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 0.81484375,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/d8506ebddb29c8d08b4b93376b45f5c9.json",
      "name": "鸟_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/9fad47c99025b7b229df52afb797ec5c.json",
      "name": "鸟_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/e86b136b9706768c5ca0dba3dc0aab21.png",
      "name": "鸟_tex.png"
    },
    "dragDot": {
      "x": 521.5,
      "y": 197.46116504854368
    },
    "gIdx": "0",
    "labelText": "9",
    "posX": 573,
    "posY": 74,
    "rect": {
      "x": 127.9,
      "y": 41,
      "width": 154,
      "height": 66
    }
  }, {
    "id": "1638090948950",
    "index": 13,
    "itemType": "rect",
    "fontScale": 0.81484375,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 0.81484375,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/3d1d49e583d97cd5097d08102265b1c6.json",
      "name": "蚂蚁_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/9a3a5c871b288aebb1e6920f1e9709f8.json",
      "name": "蚂蚁_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/1fad62f313b6ff72a642cb4b15aeaf04.png",
      "name": "蚂蚁_tex.png"
    },
    "dragDot": {
      "x": 521.5,
      "y": 197.46116504854368
    },
    "gIdx": "1",
    "rect": {
      "x": 46.9,
      "y": 95,
      "width": 200,
      "height": 200
    }
  }],
  "guide_audio": "http://staging-teach.cdn.ireadabc.com/d6c1d3b84a4774a0fc183a14abbb6c09.mp3",
  "wrong_audio1": "http://staging-teach.cdn.ireadabc.com/b77ef2a6cdcb6504520484a9b197b2fd.mp3",
  "wrong_audio2": "http://staging-teach.cdn.ireadabc.com/8dacb2445816e1f068ea116752c21173.mp3",
  "begin_audio1": "http://staging-teach.cdn.ireadabc.com/e45ad0823ae2c8e04246d76c7f57030d.mp3",
  "begin_audio2": "http://staging-teach.cdn.ireadabc.com/05232ad51f8d9e1af6dd1273147bc58f.mp3",
  "right_audio": "http://staging-teach.cdn.ireadabc.com/330eff8d5e8cc429965da82652207ff2.mp3",
  "wrong_audio": "http://staging-teach.cdn.ireadabc.com/1664170e569d974279bcec626be176d9.mp3",
  "begin_sep_time": 15
};
exports.defaultData = defaultData;

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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC9kZWZhdWx0RGF0YS5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0RGF0YSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFPLElBQU1BLFdBQVcsR0FBRztBQUN2QjtBQUNBLGlCQUFlLDRFQUZRO0FBR3ZCLG1CQUFpQixvRUFITTtBQUl2QixlQUFhLDRFQUpVO0FBS3ZCLFlBQVU7QUFDTixXQUFPLG9FQUREO0FBRU4sWUFBUTtBQUNKLFdBQUssS0FERDtBQUVKLFdBQUssQ0FGRDtBQUdKLGVBQVMsS0FITDtBQUlKLGdCQUFVO0FBSk47QUFGRixHQUxhO0FBY3ZCLG9CQUFrQixDQUFDO0FBQ2YsVUFBTSxlQURTO0FBRWYsYUFBUyxDQUZNO0FBR2YsZ0JBQVksTUFIRztBQUlmLGlCQUFhLFVBSkU7QUFLZixnQkFBWSxDQUxHO0FBTWYsZ0JBQVksQ0FORztBQU9mLGdCQUFZLENBUEc7QUFRZixnQkFBWSxVQVJHO0FBU2YsbUJBQWU7QUFDWCxhQUFPLHFFQURJO0FBRVgsY0FBUTtBQUZHLEtBVEE7QUFhZixtQkFBZTtBQUNYLGFBQU8scUVBREk7QUFFWCxjQUFRO0FBRkcsS0FiQTtBQWlCZixrQkFBYztBQUNWLGFBQU8sb0VBREc7QUFFVixjQUFRO0FBRkUsS0FqQkM7QUFxQmYsZUFBVztBQUNQLFdBQUssS0FERTtBQUVQLFdBQUs7QUFGRSxLQXJCSTtBQXlCZixZQUFRLEdBekJPO0FBMEJmLFlBQVE7QUFDSixXQUFLLElBREQ7QUFFSixXQUFLLEVBRkQ7QUFHSixlQUFTLEdBSEw7QUFJSixnQkFBVTtBQUpOO0FBMUJPLEdBQUQsRUFnQ2Y7QUFDQyxVQUFNLGVBRFA7QUFFQyxhQUFTLENBRlY7QUFHQyxlQUFXLG9FQUhaO0FBSUMsZ0JBQVksS0FKYjtBQUtDLGlCQUFhLFVBTGQ7QUFNQyxnQkFBWSxtQkFOYjtBQU9DLGdCQUFZLElBUGI7QUFRQyxnQkFBWSxJQVJiO0FBU0MsZ0JBQVksVUFUYjtBQVVDLGVBQVc7QUFD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RkcsS0FUaEI7QUFhQyxtQkFBZTtBQUNYLGFBQU8scUVBREk7QUFFWCxjQUFRO0FBRkcsS0FiaEI7QUFpQkMsa0JBQWM7QUFDVixhQUFPLG9FQURHO0FBRVYsY0FBUTtBQUZFLEtBakJmO0FBcUJDLGVBQVc7QUFDUCxXQUFLLEtBREU7QUFFUCxXQUFLO0FBRkUsS0FyQlo7QUF5QkMsWUFBUSxHQXpCVDtBQTBCQyxZQUFRO0FBQ0osV0FBSyxJQUREO0FBRUosV0FBSyxFQUZEO0FBR0osZUFBUyxHQUhMO0FBSUosZ0JBQVU7QUFKTjtBQTFCVCxHQTdhZSxDQWRLO0FBNGR2QixpQkFBZSw0RUE1ZFE7QUE2ZHZCLGtCQUFnQiw0RUE3ZE87QUE4ZHZCLGtCQUFnQiw0RUE5ZE87QUErZHZCLGtCQUFnQiw0RUEvZE87QUFnZXZCLGtCQUFnQiw0RUFoZU87QUFpZXZCLGlCQUFlLDRFQWplUTtBQWtldkIsaUJBQWUsNEVBbGVRO0FBbWV2QixvQkFBa0I7QUFuZUssQ0FBcEIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBkZWZhdWx0RGF0YSA9IHtcbiAgICAvLyBcImJlZ2luX2F1ZGlvXCI6IFwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iMWU1Mzc4MDgzYWRhYzk5NTA4Mzk3NzJjN2I2N2YzNC5tcDNcIixcbiAgICBcImJlZ2luX2F1ZGlvXCI6IFwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS84MWU3YTk0ZTE0MjBhNGNiY2FhNTgzZDQxODhhYjE0NS5tcDNcIixcbiAgICBcInBsYXlpbmdfYXVkaW9cIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81NDkzNDdkMWJlNjIwZDlkOTFiNzQyMGQ0NWIzY2I3YS5tcDNcIixcbiAgICBcImVuZF9hdWRpb1wiOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vODFlN2E5NGUxNDIwYTRjYmNhYTU4M2Q0MTg4YWIxNDUubXAzXCIsXG4gICAgXCJiZ0l0ZW1cIjoge1xuICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2FkY2NjYmQyNmUyY2ZhMjU5OTIwZTI0ZGYwMWQ0YjkyLnBuZ1wiLFxuICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDM3NC42LFxuICAgICAgICAgICAgXCJ5XCI6IDAsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDI5My44LFxuICAgICAgICAgICAgXCJoZWlnaHRcIjogMzkwXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFwiaG90Wm9uZUl0ZW1BcnJcIjogW3tcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA0NTA0MDJcIixcbiAgICAgICAgXCJpbmRleFwiOiAwLFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9jNWM2Y2Q4OTA2NjBhM2MyMmZkZTM5M2EzNzcwNDU4Zi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/msb3ovaZfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vY2VhMTA3NTE3NDA2NDYzNDc0ZDkwN2UzMDYxNjMyMjYuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5bCP5rG96L2mX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vODRiY2U2NGNkNDI1OWU2MDRhNDU4ZDA4ZGRkNzViZWMucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/msb3ovaZfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk1XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA0NjUxMzNcIixcbiAgICAgICAgXCJpbmRleFwiOiAxLFxuICAgICAgICBcInBpY191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS83MGQwMmVlMzc4OGUzNzNmNzA3YTQ1NTMwY2QyZjljMC5wbmdcIixcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInBpY1wiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDAuMjM1NzkyMDE5MzQ3MDM3NDcsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMTI0NixcbiAgICAgICAgXCJpbWdTaXplSFwiOiAxNjU0LFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk1XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjJcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiAwLFxuICAgICAgICAgICAgXCJ5XCI6IDEsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDI5My44LFxuICAgICAgICAgICAgXCJoZWlnaHRcIjogMzkwXG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIFwiaWRcIjogXCIxNjM4MDkwNDg1MDMxXCIsXG4gICAgICAgIFwiaW5kZXhcIjogMixcbiAgICAgICAgXCJhdWRpb191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lMzFjM2IxOTE0ODM3YTYxMWQ0ZDNiYjFjZWIwMDc3My5tcDNcIixcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgXCJmb250U2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgXCJtYXBTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDJkN2RlOWY4MDc5ZjM2ZTgzNTRkMTZlNGNhMjY0NzYuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5oi/5a2QX3NrZS5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzIwNGVhMTgwMThhMzUyYTMwZmQyMzNhNDZmOWEwYTFhLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuaIv+WtkF90ZXguanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2NmOGRhMGFiMDBhN2Q5ZjM0YmRmOGY0OTBjMjlkY2JmLnBuZ1wiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5oi/5a2QX3RleC5wbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDUyMS41LFxuICAgICAgICAgICAgXCJ5XCI6IDE5NVxuICAgICAgICB9LFxuICAgICAgICBcImdJZHhcIjogXCIwXCIsXG4gICAgICAgIFwibGFiZWxUZXh0XCI6IFwiMTRcIixcbiAgICAgICAgXCJwb3NYXCI6IDU3OCxcbiAgICAgICAgXCJwb3NZXCI6IDE2MC45OTc5MTMzNDQ5NjE1NSxcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiAxMjQuOSxcbiAgICAgICAgICAgIFwieVwiOiAxMDgsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDE3MCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDEwNlxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBcImlkXCI6IFwiMTYzODA5MDUzOTc4N1wiLFxuICAgICAgICBcImluZGV4XCI6IDMsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2VkMmFjNDkzMWE5YzAwZmY2YzQyOTgzODE3MjI2NzZlLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueJm19za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8wZTE1MzA5M2VlNzI2NWI2YTg0Mzg0NzU0M2Q2MTEwYi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLniZtfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS82MzE2NjFlMTM2MTZlZWE2Y2RlOWY5ZTY2MTBmNTAwOC5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueJm190ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMVwiLFxuICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDQ2LjksXG4gICAgICAgICAgICBcInlcIjogOTUsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDIwMCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDIwMFxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBcImlkXCI6IFwiMTYzODA5MDU2Mjg2N1wiLFxuICAgICAgICBcImluZGV4XCI6IDQsXG4gICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYmYxOTI0YzUwMmNhMWE0YWM5MjhhMzFlN2M4YWE3MGUubXAzXCIsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2JkM2MyY2M5M2IxNTkzNDMzYTU4ZDg0ODI5NzJmZjY2Lmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiLueaenF9za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZjU0ZGYzMTdhOGM4NjI3MWUyOWQ2ZGIzZmZiNTVjZS5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLoi7nmnpxfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS83MzRhYzA2YTdlZjAxOGI0NTdlN2FjNzY5Mjc4OWZmYS5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiLueaenF90ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMFwiLFxuICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjZcIixcbiAgICAgICAgXCJwb3NYXCI6IDQyOSxcbiAgICAgICAgXCJwb3NZXCI6IDE0NixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiAtMC4xLFxuICAgICAgICAgICAgXCJ5XCI6IDcwLFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAxMjIsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAxNTJcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA1OTQyNDdcIixcbiAgICAgICAgXCJpbmRleFwiOiA1LFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZDRiMjUxY2FmMGMwYjgyNDVmYjE3Y2Q4NDQ1NjcyYy5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlhpzlpKtfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMWZkZDA0Y2FjYjZkNTQzY2YwNWNlNjRlODEyNGE2ZmYuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5Yac5aSrX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOGY1ODJjYjM5ZWIzNDlkYTA4ZTA2Mjg5YjBjZTZjMTYucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlhpzlpKtfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA2NjMwNTZcIixcbiAgICAgICAgXCJpbmRleFwiOiA2LFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS80NTAzNzIxOTAxODgwZDBiNmMzYWQ2ZDQyNjFlOTU4Yi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/lpbPlralfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZmM0ZmQwYjJmNjcyZGZmN2M3YjIxNDg4MzAxNjQwOTAuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5bCP5aWz5a2pX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNGJlNDFjMTU5NzJjYWY5OWVlZjk1NmJhNDg3NTljOTEucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/lpbPlralfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA2ODU1NzFcIixcbiAgICAgICAgXCJpbmRleFwiOiA3LFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81NTk1MWM3OTRiNDE0YWI1OGNjYTAyMzY0MjgxOWUzNy5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLmr43puKFfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNDdiOTMzMjNiMWQxZTFlNjAyMDcwNGM1MzdmNDY4MjAuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5q+N6bihX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZGQ2NjAyMWZmODYwYjAyYTU1OWQ1OTgxN2M3MWUyN2YucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLmr43puKFfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA2OTU2NTJcIixcbiAgICAgICAgXCJpbmRleFwiOiA4LFxuICAgICAgICBcImF1ZGlvX3VybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzMyM2ZlYjE5ZDE1MzA2OTcwMmZmZDIxMDk3ZjE4Zjc5Lm1wM1wiLFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9jZDdjN2E3NTZjMGY3OWQyOGY0MTk1NzZlM2I4NWIwYy5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLpuK3lrZBfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNzYxM2YzMDg5M2E1ZjY0NzczYTc3NzIzYzFkNjdmMGQuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bit5a2QX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNTliMjI5M2VmNGVlYTlkNjRmZjk4MjFiYzVkNjlhNmQucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLpuK3lrZBfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjBcIixcbiAgICAgICAgXCJsYWJlbFRleHRcIjogXCIxMVwiLFxuICAgICAgICBcInBvc1hcIjogNTY0LjQ5OTMxNTE0OTExNTUsXG4gICAgICAgIFwicG9zWVwiOiAyNDcuOTk3MzU2OTAzNjE3OTcsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogMTI3LjksXG4gICAgICAgICAgICBcInlcIjogMjE2LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAxMjQsXG4gICAgICAgICAgICBcImhlaWdodFwiOiA2NFxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBcImlkXCI6IFwiMTYzODA5MDc1ODE1OVwiLFxuICAgICAgICBcImluZGV4XCI6IDksXG4gICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYjkwM2IxNzRmMDkxMDc1MTdiNWQ2Zjg5MzRiNzM0NDcubXAzXCIsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2I5ZmE4NWMyMjdkYWE2NTM5ZjEyY2FiNWE1MDU4MDUyLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIum4oeibi19za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85OWFhOGRlN2I2OTAwMGFjNmM1ZTBmYjZhNTA4YjY5Mi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLpuKHom4tfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8wOWJkMGEzNGE0NTA4NjEzZmQ3YzE2NzcyNGU0YTk2OS5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIum4oeibi190ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMFwiLFxuICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjdcIixcbiAgICAgICAgXCJwb3NYXCI6IDQ3MS41MDAzNjM4MjcwMzIzNCxcbiAgICAgICAgXCJwb3NZXCI6IDI5MS45OTY4MzI1NjQ2NTk1NCxcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA2Ny40LFxuICAgICAgICAgICAgXCJ5XCI6IDIyMyxcbiAgICAgICAgICAgIFwid2lkdGhcIjogNTksXG4gICAgICAgICAgICBcImhlaWdodFwiOiAxMzhcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA4MTIxNTVcIixcbiAgICAgICAgXCJpbmRleFwiOiAxMCxcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgXCJmb250U2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgXCJtYXBTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMzU3ZmVmODIwNDIyOGFmYjQzZDBjZTczNzQ2MjI4ZTUuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bG8X3NrZS5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y2OTRlNTQ0MjA5NWEzMTdmYzdkOGIxMzkwZTYzMGM3Lmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIumxvF90ZXguanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y1NjZjY2ExMGZkODNmNjJhNDY1YjE0NGFjNzNkNDgzLnBuZ1wiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bG8X3RleC5wbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDUyMS41LFxuICAgICAgICAgICAgXCJ5XCI6IDE5Ny40NjExNjUwNDg1NDM2OFxuICAgICAgICB9LFxuICAgICAgICBcImdJZHhcIjogXCIxXCIsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNDYuOSxcbiAgICAgICAgICAgIFwieVwiOiA5NSxcbiAgICAgICAgICAgIFwid2lkdGhcIjogMjAwLFxuICAgICAgICAgICAgXCJoZWlnaHRcIjogMjAwXG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIFwiaWRcIjogXCIxNjM4MDkwODI0MjQ0XCIsXG4gICAgICAgIFwiaW5kZXhcIjogMTEsXG4gICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMjY1NmI3MmFlYzdmNmRlZjA3NzEzZmJjOTkzMDkxNjgubXAzXCIsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzIwY2JmM2QxODZhMTk3YmFhZWQzODIwNGRkMDE3ZjUxLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueMq19za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9kN2RlNWEzMmRlM2VlMWFkNjYwZGM1MDliYThhZGYxZC5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLnjKtfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9hZjg2ZTk2N2FhYjg2MzJjZDBiMjZkNjBhNjJmMDY3NS5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueMq190ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMFwiLFxuICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjEwXCIsXG4gICAgICAgIFwicG9zWFwiOiA0MDguNTAxMTQ0OTg1MDcyMzYsXG4gICAgICAgIFwicG9zWVwiOiAyODguOTk2ODk2NzY5NDMsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogMS40LFxuICAgICAgICAgICAgXCJ5XCI6IDIyMixcbiAgICAgICAgICAgIFwid2lkdGhcIjogNjUsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAxMzRcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA4OTc2NDRcIixcbiAgICAgICAgXCJpbmRleFwiOiAxMixcbiAgICAgICAgXCJhdWRpb191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85YmJmOGJhMmZhN2Y5NmVhNWE5NWMyN2EzODQ0MTRhMi5tcDNcIixcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgXCJmb250U2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgXCJtYXBTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDg1MDZlYmRkYjI5YzhkMDhiNGI5MzM3NmI0NWY1YzkuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bifX3NrZS5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzlmYWQ0N2M5OTAyNWI3YjIyOWRmNTJhZmI3OTdlYzVjLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIum4n190ZXguanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2U4NmIxMzZiOTcwNjc2OGM1Y2EwZGJhM2RjMGFhYjIxLnBuZ1wiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bifX3RleC5wbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDUyMS41LFxuICAgICAgICAgICAgXCJ5XCI6IDE5Ny40NjExNjUwNDg1NDM2OFxuICAgICAgICB9LFxuICAgICAgICBcImdJZHhcIjogXCIwXCIsXG4gICAgICAgIFwibGFiZWxUZXh0XCI6IFwiOVwiLFxuICAgICAgICBcInBvc1hcIjogNTczLFxuICAgICAgICBcInBvc1lcIjogNzQsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogMTI3LjksXG4gICAgICAgICAgICBcInlcIjogNDEsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDE1NCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDY2XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIFwiaWRcIjogXCIxNjM4MDkwOTQ4OTUwXCIsXG4gICAgICAgIFwiaW5kZXhcIjogMTMsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMWQ0OWU1ODNkOTdjZDUwOTdkMDgxMDIyNjViMWM2Lmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiaguiagV9za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85YTNhNWM4NzFiMjg4YWViYjFlNjkyMGYxZTk3MDlmOC5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLomoLomoFfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZmFkNjJmMzEzYjZmZjcyYTY0MmNiNGIxNWFlYWYwNC5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiaguiagV90ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMVwiLFxuICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDQ2LjksXG4gICAgICAgICAgICBcInlcIjogOTUsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDIwMCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDIwMFxuICAgICAgICB9XG4gICAgfV0sXG4gICAgXCJndWlkZV9hdWRpb1wiOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDZjMWQzYjg0YTQ3NzRhMGZjMTgzYTE0YWJiYjZjMDkubXAzXCIsXG4gICAgXCJ3cm9uZ19hdWRpbzFcIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2I3N2VmMmE2Y2RjYjY1MDQ1MjA0ODRhOWIxOTdiMmZkLm1wM1wiLFxuICAgIFwid3JvbmdfYXVkaW8yXCI6IFwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS84ZGFjYjI0NDU4MTZlMWYwNjhlYTExNjc1MmMyMTE3My5tcDNcIixcbiAgICBcImJlZ2luX2F1ZGlvMVwiOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vZTQ1YWQwODIzYWUyYzhlMDQyNDZkNzZjN2Y1NzAzMGQubXAzXCIsXG4gICAgXCJiZWdpbl9hdWRpbzJcIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzA1MjMyYWQ1MWY4ZDllMWFmNmRkMTI3MzE0N2JjNThmLm1wM1wiLFxuICAgIFwicmlnaHRfYXVkaW9cIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzMzMGVmZjhkNWU4Y2M0Mjk5NjVkYTgyNjUyMjA3ZmYyLm1wM1wiLFxuICAgIFwid3JvbmdfYXVkaW9cIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzE2NjQxNzBlNTY5ZDk3NDI3OWJjZWM2MjZiZTE3NmQ5Lm1wM1wiLFxuICAgIFwiYmVnaW5fc2VwX3RpbWVcIjogMTVcbn0iXX0=
//------QC-SOURCE-SPLIT------

                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/OP15/scene/OP15.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, 'ddbf4iIJnhHIImfp+SKRF1C', 'OP15');
// OP15/scene/OP15.js

"use strict";

var _util = require("../script/util");

var _defaultData = require("../script/defaultData");

var _xstate = require("../script/xstate");

function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } it = o[Symbol.iterator](); return it.next.bind(it); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }

var pure = _xstate.actions.pure,
    send = _xstate.actions.send,
    raise = _xstate.actions.raise,
    sendParent = _xstate.actions.sendParent;
cc.Class({
  "extends": cc.Component,
  properties: {
    /*ant: {
    	default: null,
    	type: cc.Node,
    },
    apple: {
    	default: null,
    	type: cc.Node,
    },
    bird: {
    	default: null,
    	type: cc.Node,
    },
    car: {
    	default: null,
    	type: cc.Node,
    },
    cat: {
    	default: null,
    	type: cc.Node,
    },
    cow: {
    	default: null,
    	type: cc.Node,
    },
    duck: {
    	default: null,
    	type: cc.Node,
    },
    egg: {
    	default: null,
    	type: cc.Node,
    },
    farmer: {
    	default: null,
    	type: cc.Node,
    },
    fish: {
    	default: null,
    	type: cc.Node,
    },
    girl: {
    	default: null,
    	type: cc.Node,
    },
    hen: {
    	default: null,
    	type: cc.Node,
    },
    house: {
    	default: null,
    	type: cc.Node,
    },*/
    rightAudio: {
      "default": null,
      type: cc.AudioClip
    },
    wrongAudio: {
      "default": null,
      type: cc.AudioClip
    },
    logoCat: {
      "default": null,
      type: cc.Node
    }
  },
  playAni: function playAni(idx, name, options) {
    var times = options && options.times || 1;
    var cb = options && options.callback || null; // const cat = cc.find(`Canvas/frame-border/ground/${node}`);

    var node = this._figurePointRectArray[idx].node;
    var dragonDisplay = node.getComponent(dragonBones.ArmatureDisplay);
    var state = dragonDisplay.playAnimation(name, times); // dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {
    // 	//TODO 这里写触发事件
    // 	//event.name为事件名称
    // 	console.log(event.name)
    // }, this);
    // animationDisplay.addEventListener(dragonBones.EventObject.COMPLETE, completeCallback);

    return state;
  },
  // 生命周期 onLoad
  onLoad: function onLoad() {
    this._timeoutIds = [];
    this._intervalIds = [];
    this.initSceneData();
    this.initSize();
    window.ccc = this;
  },
  _imageResList: null,
  _audioResList: null,
  _animaResList: null,
  _lastFingerPosition: null,
  _hintsNodeList: null,
  _figurePointRectArray: null,
  _allAnimationNodes: null,
  initSceneData: function initSceneData() {
    this._imageResList = [];
    this._audioResList = [];
    this._animaResList = [];
    this._allAnimationNodes = [];
    this._hintsNodeList = [];
    this._lastFingerPosition = {
      pos: null,
      dirty: false
    };
    this._figurePointRectArray = [];
  },
  _designSize: null,
  // 设计分辨率
  _frameSize: null,
  // 屏幕分辨率
  _mapScaleMin: null,
  // 场景中常用缩放(取大值)
  _mapScaleMax: null,
  // 场景中常用缩放(取小值)
  _cocosScale: null,
  // cocos 自缩放 (较少用到)
  initSize: function initSize() {
    // 注意cc.winSize只有在适配后(修改fitHeight/fitWidth后)才能获取到正确的值,因此使用cc.getFrameSize()来获取初始的屏幕大小
    var screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height;
    var design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height;
    var f = screen_size >= design_size;
    cc.Canvas.instance.fitHeight = f;
    cc.Canvas.instance.fitWidth = !f;
    var frameSize = cc.view.getFrameSize();
    this._frameSize = frameSize;
    this._designSize = cc.view.getDesignResolutionSize();
    var sx = cc.winSize.width / frameSize.width;
    var sy = cc.winSize.height / frameSize.height;
    this._cocosScale = Math.min(sx, sy);
    sx = frameSize.width / this._designSize.width;
    sy = frameSize.height / this._designSize.height;
    this._mapScaleMin = Math.min(sx, sy) * this._cocosScale;
    this._mapScaleMax = Math.max(sx, sy) * this._cocosScale;
  },
  createStateMachine: function createStateMachine() {
    var _this = this;

    var check = [{
      target: '#game.end',
      cond: function cond(ctx, evt) {
        console.log('[answer NEXT] check if end', ctx.questionIndex >= ctx.questionsCount - 1);
        return ctx.questionIndex >= ctx.questionsCount - 1;
      }
    }, {
      target: 'hint'
    } // reenter 'hint' state
    ];
    var QuestionState = {
      id: 'question',
      initial: 'hint',
      states: {
        hint: {
          invoke: {
            src: function src(ctx, event) {
              console.log("[hint] play question " + ctx.questionIndex + ": " + ctx.questionPlayTimes + " audio");
              ctx.questionPlayTimes += 1;
              return new Promise(function (resolve, reject) {
                (0, _util.playAudioByUrl)(ctx.questions[ctx.questionIndex].audio_url, function () {
                  console.log('hint finish');
                  resolve();
                });
              });
            },
            onDone: 'answer',
            onError: 'answer'
          }
        },
        answer: {
          after: {
            8000: [{
              target: 'wrong'
            } // reenter 'hint' state
            ]
          },
          invoke: {
            src: function src(context, event) {
              return function (callback, onReceive) {
                console.log('[answer] thinking and playing'); // check every second

                var id = setInterval(function () {
                  if (!_this._lastFingerPosition.dirty) {
                    return;
                  }

                  var region = context.questions[context.questionIndex];

                  var result = _this.checkInRegion(region.rect);

                  if (result === null) {
                    return;
                  }

                  console.log('[Genise JS] checkInRegion' + result);

                  if (result) {
                    callback('RIGHT');
                  } else {
                    callback('WRONG');
                  }
                }, 300);

                _this._intervalIds.push(id); // Perform cleanup


                return function () {
                  return clearInterval(id);
                };
              };
            }
          },
          on: {
            RIGHT: {
              target: 'right'
            },
            WRONG: {
              target: 'wrong'
            }
          }
        },
        right: {
          invoke: {
            src: function src(context, event) {
              _this._lastFingerPosition.pos = null;
              _this._lastFingerPosition.dirty = false;
              return new Promise(function (resolve, reject) {
                console.log('answer right'); // this.playAni(context.questionIndex, 'normal')

                var an = context.questions[context.questionIndex].node;
                console.log('in right ' + typeof an);
                an.active = true;
                var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);
                dragonDisplay.playAnimation('normal', 0);

                var ddLogoCat = _this.logoCat.getComponent(dragonBones.ArmatureDisplay);

                ddLogoCat.playAnimation('right', 1);
                ddLogoCat.once(dragonBones.EventObject.COMPLETE, function () {
                  this.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0);
                }, _this);
                (0, _util.playAudioByUrl)(_this.rightAudio, function () {
                  resolve();
                });
              });
            },
            onDone: {
              target: '#QuestionsArray.next',
              actions: raise('CHECK')
            },
            onError: {
              target: '#QuestionsArray.next',
              actions: raise('CHECK')
            }
          }
        },
        wrong: {
          invoke: {
            src: function src(context, event) {
              _this._lastFingerPosition.pos = null;
              _this._lastFingerPosition.dirty = false;
              return new Promise(function (resolve, reject) {
                console.log('answer wrong', context.questionIndex, context.questionPlayTimes, context.maxQuestionTryTimes);

                var ddLogoCat = _this.logoCat.getComponent(dragonBones.ArmatureDisplay);

                ddLogoCat.playAnimation('wrong', 1);
                ddLogoCat.once(dragonBones.EventObject.COMPLETE, function () {
                  this.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0);
                }, _this);
                var wrongEffect = _this.wrongAudio; // 第一和第二题的提示音

                if ([0, 1].includes(context.questionIndex)) {
                  wrongEffect = _this.data["wrong_audio" + context.questionPlayTimes];
                } else {
                  // 非第一和第二题,并且做第二遍的提示音
                  if (context.questionPlayTimes == 2) {
                    wrongEffect = _this.data["wrong_audio" + context.questionPlayTimes];
                  }
                }

                if (context.questionPlayTimes >= context.maxQuestionTryTimes) {
                  var an = context.questions[context.questionIndex].node;
                  an.active = true;
                  var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);
                  dragonDisplay.playAnimation('normal', 0);
                  console.log('show animation', an.active);
                }

                (0, _util.playAudioByUrl)(wrongEffect, function () {
                  if (context.questionPlayTimes >= context.maxQuestionTryTimes) {
                    // const an = context.questions[context.questionIndex].node;
                    // an.active = true;
                    // const dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);
                    // dragonDisplay.playAnimation('normal', 0);
                    // console.log('show animation', an.active);
                    reject();
                  } else {
                    resolve();
                  }
                });
              });
            },
            onDone: {
              target: 'hint' // actions: raise('CHECK')

            },
            onError: {
              target: '#QuestionsArray.next',
              actions: raise('CHECK')
            }
          }
        }
      }
    };
    var QuestionsArrayStatus = {
      id: 'QuestionsArray',
      initial: 'play',
      states: {
        play: _extends({}, QuestionState),
        next: {
          on: {
            CHECK: [{
              target: '#game.end',
              cond: function cond(ctx, evt) {
                ctx.questionIndex += 1;
                ctx.questionPlayTimes = 0;
                console.log('#game.end', ctx.questionIndex >= ctx.questionsCount);
                return ctx.questionIndex >= ctx.questionsCount;
              }
            }, {
              target: 'play'
            }]
          }
        }
      }
    };
    var state = {
      id: 'game',
      initial: 'begin',
      context: {
        questionIndex: 0,
        questionPlayTimes: 0,
        maxQuestionTryTimes: 2,
        questionsCount: this._figurePointRectArray.length,
        questions: this._figurePointRectArray
      },
      states: {
        begin: {
          invoke: {
            src: function src(ctx) {
              console.log('game begin 1');

              if (window.courseware && window.courseware.openOsmoFingerRead) {
                _this.isOpenedOsmoFingerRead = true;
                window.courseware.openOsmoFingerRead({
                  "page_id": 27,
                  "book_id": "opw1"
                });
              }

              var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay);

              var state = dragonDisplay.playAnimation('begin', 0);
              return new Promise(function (resolve, reject) {
                (0, _util.playAudioByUrl)(_this.data.begin_audio, function () {
                  console.log('game begin audio finish');
                  resolve();
                });
              });
            },
            onDone: 'guide',
            onError: 'guide'
          }
        },
        guide: {
          invoke: {
            src: function src(ctx) {
              return new Promise(function (resolve, reject) {
                (0, _util.playAudioByUrl)(_this.data.guide_audio, function () {
                  console.log('game guide audio finish');
                  reject();
                });
              });
            },
            onDone: 'playing',
            onError: 'playing'
          }
        },
        playing: _extends({
          entry: function entry(ctx) {
            console.log('entry play stage');

            var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay);

            var state = dragonDisplay.playAnimation('normal', 0);
            cc.assetManager.loadRemote(_this.data.playing_audio, function (err, audioClip) {
              cc.audioEngine.playMusic(audioClip, true, 0.8);
            });
            ctx.questions.forEach(function (block) {
              block.node.active = false;
            });
          },
          exit: function exit() {
            console.log('exit play stage');
            cc.audioEngine.stopMusic();
          },
          on: {
            NEXT: 'end'
          }
        }, QuestionsArrayStatus),
        end: {
          entry: function entry(ctx, event) {
            console.log('game end');

            var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay);

            var state = dragonDisplay.playAnimation('finish', 0);

            if (window.courseware && window.courseware.closeOsmoFingerRead) {
              _this.isOpenedOsmoFingerRead = false;
              window.courseware.closeOsmoFingerRead();
            }

            (0, _util.playAudioByUrl)(_this.data.end_audio, function () {
              console.log('game finish');
              (0, _util.onHomeworkFinish)();
            }); // return new Promise((resolve,reject) => {
            // 	setTimeout(() => {
            // 		console.log('hint finish');
            // 		resolve()
            // 	}, 2000)
            // })
          }
        }
      }
    };
    var after = {};

    var _loop = function _loop(i) {
      var t = _this._hintsNodeList[i].node;
      var k = _this._hintsNodeList[i].after;
      after[k] = {
        actions: function actions() {
          if (t.isSpine) {
            var skeleton = t.getComponent(sp.Skeleton);
            skeleton.pause();
            skeleton.loop = false;
            skeleton.animation = 'enlarge'; // skeleton.animation = skeleton.animationNames[0];
          } else {
            var dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);
            dragonDisplay.playAnimation('enlarge', 1);
            console.log(dragonDisplay._armatureKey, 'enlarge');
            dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, function (event) {// TODO 这里写触发事件
              // event.name为事件名称
              // event.armature.animation.play('normal', 0);
              // console.log(event.animationState.name, dragonDisplay._armatureKey, 'end')
            }, _this);
          } // const dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);
          // dragonDisplay.playAnimation('enlarge', 1);
          // console.log(dragonDisplay._armatureKey, 'enlarge')
          // dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {
          // 	//TODO 这里写触发事件
          // 	//event.name为事件名称
          // 	event.armature.animation.play('normal', 0);
          // 	console.log(event.animationState.name, dragonDisplay._armatureKey, 'end')
          // }, this);

        }
      };
    };

    for (var i = 0; i < this._hintsNodeList.length; i++) {
      _loop(i);
    }

    if (this.data.begin_sep_time) {
      var t = +this.data.begin_sep_time * 1000;
      after[t] = {
        actions: function actions() {
          console.log('game begin 2');

          for (var _i = 0; _i < _this._allAnimationNodes.length; _i++) {
            var _t = _this._allAnimationNodes[_i];

            if (_t.isSpine) {
              var skeleton = _t.getComponent(sp.Skeleton);

              skeleton.pause();
              skeleton.loop = true;
              skeleton.animation = 'normal'; // skeleton.animation = skeleton.animationNames[0];
            } else {
              var dragonDisplay = _t.getComponent(dragonBones.ArmatureDisplay);

              dragonDisplay.playAnimation('normal', 0);
            }
          }
        }
      };
    }

    state.states.begin.after = after;
    var gameMachine = (0, _xstate.createMachine)(state);
    window.gameMachine = gameMachine;
    this.gameMachineService = (0, _xstate.interpret)(gameMachine).onTransition(function (state) {// console.log(1, state.value, state.context);
    });
    this.gameMachineService.start();

    if (window.gameMachineService) {
      window.gameMachineService = gameMachineService;
    }
  },
  // 生命周期 start
  start: function start() {
    var _this2 = this;

    var getData = this.getData.bind(this);

    if (window && window.courseware) {
      getData = window.courseware.getData;
    }

    getData(function (data) {
      // console.log('data:', data);
      _this2.data = data || _this2.getDefaultData();
      _this2.data = JSON.parse(JSON.stringify(_this2.data));

      _this2.preloadItem();
    });
    window.air = window.air || {};

    if (window.air) {
      window.air.osmoFingerReadCallback = function (result) {
        if (!_this2.gameMachineService) {
          return;
        } // const st = this.gameMachineService.state.value.constructor.name == 'Object' 
        // && this.gameMachineService.state.value['playing']
        // && this.gameMachineService.state.value['playing'].constructor.name == 'Object'
        // && this.gameMachineService.state.value['playing']['play']
        // && this.gameMachineService.state.value['playing']['play'] == 'answer'
        // if (st) {
        // }


        var resultObj = JSON.parse(result);
        console.log('[Genise JS] ' + JSON.stringify(resultObj.finger_pos_in_page));
        var p = resultObj.finger_pos_in_page;

        if (p.x == -1 || p.y == -1) {
          _this2._lastFingerPosition.pos = null;
          _this2._lastFingerPosition.dirty = false;
          return;
        }

        _this2._lastFingerPosition = {
          pos: {
            x: p.x,
            y: p.y
          },
          dirty: true
        };

        _this2.debugPointer(p.x, p.y);
      };
    }

    this.isDebug = false;
  },
  checkInRegion: function checkInRegion(r) {
    if (!this._lastFingerPosition && !this._lastFingerPosition.pos) {
      return null;
    }

    var p = this._lastFingerPosition ? this._lastFingerPosition.pos || {
      x: 0,
      y: 0
    } : {
      x: 0,
      y: 0
    };
    var w = p.x > r.x && p.x < r.x + r.width;
    var h = p.y > r.y && p.y < r.y + r.height;
    return w && h;
  },
  getData: function getData(func) {
    if (window && window.courseware) {
      window.courseware.getData(func, 'scene');
      return;
    }

    var middleLayer = cc.find('middleLayer');

    if (middleLayer) {
      var middleLayerComponent = middleLayer.getComponent('middleLayer');
      middleLayerComponent.getData(func);
      return;
    }

    func(this.getDefaultData());
  },
  getDefaultData: function getDefaultData() {
    return {
      "begin_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3",
      "begin_sep_time": 1,
      "guide_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3",
      "playing_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3",
      "right_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3",
      "wrong_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3",
      "wrong_audio1": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3",
      "wrong_audio2": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3",
      "end_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3",
      "bgItem": {
        "url": "http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png",
        "rect": {
          "x": 549.55,
          "y": 0,
          "width": 449.9,
          "height": 582
        }
      },
      "hotZoneItemArr": [{
        "id": "1659333645573",
        "index": 0,
        "audio_url": "http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3",
        "itemType": "rect",
        "fontScale": 1.21015625,
        "imgScale": 1,
        "imgSizeW": 0,
        "imgSizeH": 0,
        "mapScale": 1.21015625,
        "dragDot": {
          "x": 774.5,
          "y": 289.55016883743366
        },
        "gIdx": "1",
        "labelText": "1",
        "posX": 887.5,
        "posY": 165.5,
        "skeJsonData": {
          "url": "http://staging-teach.cdn.ireadabc.com/d1f859d3fba84bd03565e543c986fb28.json",
          "name": "6_4_ske.json"
        },
        "texJsonData": {
          "url": "http://staging-teach.cdn.ireadabc.com/70f96e1cc7f013e27ed1952c503fb750.json",
          "name": "6_4_tex.json"
        },
        "texPngData": {
          "url": "http://staging-teach.cdn.ireadabc.com/b06f9b90018a6eb0175a01e355b9ced6.png",
          "name": "6_4_tex.png"
        },
        "animType": "dragonBone",
        "rect": {
          "x": 36.08,
          "y": 49.19,
          "width": 153.95,
          "height": 150.19
        }
      }, {
        "id": "1659334098930",
        "index": 1,
        "audio_url": "http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3",
        "itemType": "rect",
        "fontScale": 1.21015625,
        "imgScale": 1,
        "imgSizeW": 0,
        "imgSizeH": 0,
        "mapScale": 1.21015625,
        "dragDot": {
          "x": 774.5,
          "y": 289.55016883743366
        },
        "gIdx": "0",
        "labelText": "1",
        "posX": 1212.5,
        "posY": 643.5,
        "skeJsonData": {
          "url": "http://staging-teach.cdn.ireadabc.com/bdbadb06e0c1157e727cecd28f28d10e.json",
          "name": "spineboy-pro.json"
        },
        "texJsonData": {
          "url": "http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas",
          "name": "spineboy-pro.atlas"
        },
        "texPngData": {
          "url": "http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png",
          "name": "spineboy-pro.png"
        },
        "animType": "spine",
        "rect": {
          "x": 282.03,
          "y": 408.15,
          "width": 150.19,
          "height": 150.19
        }
      }]
    }; // return defaultData;
  },
  preloadItem: function preloadItem() {
    this.addPreloadImage();
    this.addPreloadAudio();
    this.addPreloadAnima();
    this.preload();
  },
  addPreloadImage: function addPreloadImage() {
    this._imageResList.push({
      url: this.data.bgItem.url
    });

    for (var _iterator = _createForOfIteratorHelperLoose(this.data.hotZoneItemArr), _step; !(_step = _iterator()).done;) {
      var q = _step.value;

      if (q.gIdx == '0') {
        this._imageResList.push({
          url: q.texPngData.url
        });
      }

      if (q.gIdx == '1') {
        this._imageResList.push({
          url: q.texPngData.url
        });
      }

      if (q.gIdx == '2') {
        this._imageResList.push({
          url: q.pic_url
        });
      }
    }
  },
  prepareAudioClip: function prepareAudioClip(url, key) {
    var _this3 = this;

    if (url) {
      cc.assetManager.loadRemote(url, function (err, audioClip) {
        if (audioClip) {
          _this3[key] = audioClip;
        }
      });
    }
  },
  addPreloadAudio: function addPreloadAudio() {
    this._audioResList.push({
      url: this.data.begin_audio
    }); // this.prepareAudioClip(this.data.begin_audio1, 'begin_audio1')
    // this._audioResList.push({ url: this.data.begin_audio2 });
    // this.prepareAudioClip(this.data.begin_audio2, 'begin_audio2')


    this._audioResList.push({
      url: this.data.guide_audio
    });

    this._audioResList.push({
      url: this.data.playing_audio
    });

    if (this.data.wrong_audio) {
      this._audioResList.push({
        url: this.data.wrong_audio
      });

      this.wrongAudio = this.data.wrong_audio;
    }

    if (this.data.right_audio) {
      this._audioResList.push({
        url: this.data.right_audio
      });

      this.rightAudio = this.data.right_audio;
    }

    this._audioResList.push({
      url: this.data.wrong_audio1
    });

    this._audioResList.push({
      url: this.data.wrong_audio2
    });

    this._audioResList.push({
      url: this.data.end_audio
    });

    for (var _iterator2 = _createForOfIteratorHelperLoose(this.data.hotZoneItemArr), _step2; !(_step2 = _iterator2()).done;) {
      var q = _step2.value;

      if (q.gIdx == '0') {
        this._audioResList.push({
          url: q.audio_url
        });
      }
    }
  },
  debugPointer: function debugPointer() {
    var boxDebugger = cc.find('Canvas/box-debugger');

    if (!this.isDebug) {
      boxDebugger.active = false;
      return;
    }

    if (!this.POINTER_NODE) {
      this.POINTER_NODE = new cc.Node();
      this.POINTER_NODE.parent = boxDebugger;
      this.POINTER_NODE.name = 'POINTER_NODE';
      this.POINTER_NODE.addComponent(cc.Graphics);
    }

    var grap = this.POINTER_NODE.getComponent(cc.Graphics);
    grap.clear();
    var ground = cc.find('Canvas/frame-border/ground');
    var baseW = ground.width,
        baseH = ground.height;
    var _this$_lastFingerPosi = this._lastFingerPosition.pos,
        px = _this$_lastFingerPosi.x,
        py = _this$_lastFingerPosi.y;
    var x = baseW * px - baseW / 2;
    var y = baseH - baseH * py - baseH / 2 - 16;
    var pn = new cc.Node();
    grap.fillColor = cc.color(255, 0, 0);
    grap.circle(x, y, 32);
    grap.fill();
    grap.stroke();
  },
  debugGraphics: function debugGraphics() {
    var boxDebugger = cc.find('Canvas/box-debugger');

    if (!this.isDebug) {
      boxDebugger.active = false;
      return;
    }

    boxDebugger.active = true;
    console.log('show debug graphics');
    var ground = cc.find('Canvas/frame-border/ground');
    var canvas = cc.find('Canvas');
    var baseW = ground.width,
        baseH = ground.height;
    var _this$data$bgItem$rec = this.data.bgItem.rect,
        bgW = _this$data$bgItem$rec.width,
        bgH = _this$data$bgItem$rec.height;
    var scaleX = bgW / baseW;
    var scaleY = bgH / baseH;
    var added = false;
    this.data.hotZoneItemArr.forEach(function (area) {
      if (added) {// return
      }

      if (area.gIdx != '0') {
        return;
      }

      added = true;
      var dn = new cc.Node();
      var lblNode = new cc.Node();
      lblNode.parent = dn;
      var lbl = lblNode.addComponent(cc.Label);
      lblNode.color = cc.color(0, 0, 0);
      lbl.string = area.skeJsonData.name.substring(0, area.skeJsonData.name.length - 9);
      dn.name = lbl.string;
      dn.parent = boxDebugger;
      dn.width = baseW;
      dn.height = baseH;
      var grap = dn.addComponent(cc.Graphics);
      var r = (0, _util.RandomInt)(1, 255);
      var g = (0, _util.RandomInt)(1, 255);
      var b = (0, _util.RandomInt)(1, 255);
      grap.fillColor = cc.color(r, g, b, 127);
      var _area$rect = area.rect,
          rx = _area$rect.x,
          ry = _area$rect.y,
          rw = _area$rect.width,
          rh = _area$rect.height;
      var w = rw / bgW * baseW;
      var h = rh / bgH * baseH;
      var x = rx / bgW * baseW - baseW / 2;
      var y = baseH - ry / bgH * baseH - h - baseH / 2; // w *= scaleX
      // h *= scaleY
      // x *= scaleX
      // y *= scaleY
      // const p = boxDebugger.convertToNodeSpaceAR(cc.v2(x,y));
      // x = p.x;
      // y = p.y;

      lblNode.x = x;
      lblNode.y = y + h; // dn.scaleX = scaleX;
      // dn.scaleY = scaleY;
      // dn.scale = area.mapScale; // minScale; // this._mapScaleMax * area.mapScale; // ;

      console.log('[debug]', area.skeJsonData.name, x, y, w, h);
      grap.fillRect(x, y, w, h);
      grap.stroke();
    });
  },
  addPreloadAnima: function addPreloadAnima() {},
  preload: function preload() {
    var _this4 = this;

    var preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList); // console.log(preloadArr);


    cc.assetManager.loadAny(preloadArr, null, function (f, t, item) {// console.log(f, t, item)
    }, function (err, data) {
      // console.log(err, data);
      var ground = cc.find("Canvas/frame-border/ground");
      var groundBg = cc.find("Canvas/frame-border/ground/bg");
      groundBg.active = false;
      var baseRect = _this4.data.bgItem.rect;
      (0, _util.getSpriteFrimeByUrl)(_this4.data.bgItem.url, function (sf) {
        var gs = groundBg.getComponent(cc.Sprite);
        gs.spriteFrame = sf;
        groundBg.active = true;
        var dbCount = 0;
        var finishDbCount = 0;

        for (var _iterator3 = _createForOfIteratorHelperLoose(_this4.data.hotZoneItemArr), _step3; !(_step3 = _iterator3()).done;) {
          var block = _step3.value;

          if (block.gIdx == '0' || block.gIdx == '1') {
            dbCount++;
          }
        }

        for (var _iterator4 = _createForOfIteratorHelperLoose(_this4.data.hotZoneItemArr), _step4; !(_step4 = _iterator4()).done;) {
          var _block = _step4.value;

          if (_block.gIdx == '2') {
            (function () {
              var s1 = (ground.width / _block.imgSizeW + ground.height / _block.imgSizeH) / 2;
              var node = new cc.Node();
              node.parent = ground;
              var spr = node.addComponent(cc.Sprite);
              (0, _util.getSpriteFrimeByUrl)(_block.pic_url, function (sf) {
                spr.spriteFrame = sf;
                node.scale = s1;
              });
            })();
          }

          if (_block.gIdx == '0' || _block.gIdx == '1') {
            (function () {
              var n = new cc.Node();
              n.scale = 0.25;
              n.parent = ground;
              n.active = false;

              if (_block.animType == 'spine') {
                var skeleton = n.addComponent(sp.Skeleton);
                n.isSpine = true;
                (0, _util.loadSpine)(skeleton, _block.texPngData.name, {
                  tex: _block.texPngData.url,
                  atlas: _block.texJsonData.url,
                  ske: _block.skeJsonData.url
                }).then(function (_ref) {
                  var width = _ref.width,
                      height = _ref.height;
                  n.width = width;
                  n.height = height;
                  n.active = true; // db.playAnimation('null', 0);
                  // skeleton.loop = true;
                  // skeleton.animation = skeleton.animationNames[0]

                  _this4._allAnimationNodes.push(n);

                  finishDbCount++;
                  console.log(finishDbCount, dbCount);

                  if (finishDbCount == dbCount) {
                    _this4.loadEnd();
                  }
                })["catch"](function () {
                  finishDbCount++;
                  console.log(finishDbCount, dbCount);

                  if (finishDbCount == dbCount) {
                    _this4.loadEnd();
                  }
                });
              } else {
                var db = n.addComponent(dragonBones.ArmatureDisplay);
                (0, _util.loadDragonBones)(db, {
                  tex: _block.texPngData.url,
                  atlas: _block.texJsonData.url,
                  ske: _block.skeJsonData.url
                }).then(function (_ref2) {
                  var width = _ref2.width,
                      height = _ref2.height;
                  n.width = width;
                  n.height = height;
                  n.active = true;
                  db.playAnimation('null', 0);

                  _this4._allAnimationNodes.push(n);

                  finishDbCount++;
                  console.log(finishDbCount, dbCount);

                  if (finishDbCount == dbCount) {
                    _this4.loadEnd();
                  }
                })["catch"](function () {
                  finishDbCount++;
                  console.log(finishDbCount, dbCount);

                  if (finishDbCount == dbCount) {
                    _this4.loadEnd();
                  }
                });
              }

              if (_block.gIdx == '0') {
                var rectInfo = {
                  node: n,
                  audio_url: _block.audio_url,
                  rect: {
                    x: _block.rect.x / baseRect.width,
                    y: _block.rect.y / baseRect.height,
                    width: _block.rect.width / baseRect.width,
                    height: _block.rect.height / baseRect.height
                  }
                };

                _this4._figurePointRectArray.push(rectInfo);

                if (_block.labelText) {
                  var k = +_block.labelText * 1000;

                  if (!isNaN(k)) {
                    _this4._hintsNodeList.push({
                      node: n,
                      after: k
                    });
                  }
                }
              }
            })();
          }
        }
      }); // console.log(this.data);

      console.log('resource perload finish'); // <<<<<<< HEAD
      // =======
      // 			if (window && window["air"]) {
      // 				// cc.find('Canvas').opacity = 0;
      // 				window.air.onCourseInScreen = (next) => {
      // 					// cc.find('Canvas').opacity = 255;
      // 					this.loadEnd();
      // 					next();
      // 				}
      // 				window.air.hideAirClassLoading();
      // 			} else {
      // 				this.loadEnd();
      // 			}
      // >>>>>>> 2d461e1910571bcfc6ad4dc93c2cedafc20923ea

      cc.debug.setDisplayStats(false);
    });
  },
  loadEnd: function loadEnd() {
    if (window && window["air"] && window["air"].hideAirClassLoading) {
      window["air"].hideAirClassLoading();
    }

    this.initData(); // this.initAudio();
    // this.initView();

    this.initBg(); // this.initListener();

    this.debugGraphics();
    this.createStateMachine();
  },
  _cantouch: null,
  initData: function initData() {
    // 所有全局变量 默认都是null 
    this._cantouch = true;
  },
  // audioBtn: null,
  // initAudio() {
  // 	const audioNode = cc.find('Canvas/res/audio');
  // 	const getAudioByResName = (resName) => {
  // 		return audioNode.getChildByName(resName).getComponent(cc.AudioSource);
  // 	}
  // 	this.audioBtn = getAudioByResName('btn');
  // },
  // initView() {
  // 	// this.initBg();
  // 	// this.initPic();
  // 	// this.initBtn();
  // 	this.initIcon();
  // },
  initBg: function initBg() {
    var bgNode = cc.find('Canvas/bg');
    bgNode.scale = this._mapScaleMax;
    console.log('this._mapScaleMax', this._mapScaleMax);
  },

  /*initBtn() {
  		this.curPage = 0;
  	const bottomPart = cc.find('Canvas/bottomPart');
  	bottomPart.zIndex = 5; // 提高层级
  		bottomPart.x = bottomPart.parent.width / 2;
  	bottomPart.y = -bottomPart.parent.height / 2;
  		const leftBtnNode = bottomPart.getChildByName('btn_left');
  	//节点中添加了button组件 则可以添加click事件监听
  	leftBtnNode.on('click', () => {
  		if (!this._cantouch) {
  			return;
  		}
  		if (this.curPage == 0) {
  			return;
  		}
  		this.curPage = 0
  		this.leftMove();
  			// 游戏结束时需要调用这个方法通知系统作业完成
  		onHomeworkFinish();
  			cc.audioEngine.play(this.audioBtn.clip, false, 0.8)
  	})
  		const rightBtnNode = bottomPart.getChildByName('btn_right');
  	//节点中添加了button组件 则可以添加click事件监听
  	rightBtnNode.on('click', () => {
  		if (!this._cantouch) {
  			return;
  		}
  		if (this.curPage == 1) {
  			return;
  		}
  			this.curPage = 1
  		this.rightMove();
  			cc.audioEngine.play(this.audioBtn.clip, false, 0.5)
  	})
  },*/
  // update (dt) {},
  _timeoutIds: null,
  _intervalIds: null,
  // 生命周期
  onDestroy: function onDestroy() {
    console.log('op15 onDestroy');

    this._timeoutIds.forEach(function (id) {
      clearTimeout(id);
    });

    this._intervalIds.forEach(function (id) {
      clearInterval(id);
    });

    this.gameMachineService.stopChild();
    this.gameMachineService.stop();

    if (window.courseware && window.courseware.closeOsmoFingerRead) {
      if (this.isOpenedOsmoFingerRead) {
        window.courseware.closeOsmoFingerRead();
      }
    }
  }
});

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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjZW5lL09QMTUuanMiXSwibmFtZXMiOlsicHVyZSIsImFjdGlvbnMiLCJzZW5kIiwicmFpc2UiLCJzZW5kUGFyZW50IiwiY2MiLCJDbGFzcyIsIkNvbXBvbmVudCIsInByb3BlcnRpZXMiLCJyaWdodEF1ZGlvIiwidHlwZSIsIkF1ZGlvQ2xpcCIsIndyb25nQXVkaW8iLCJsb2dvQ2F0IiwiTm9kZSIsInBsYXlBbmkiLCJpZHgiLCJuYW1lIiwib3B0aW9ucyIsInRpbWVzIiwiY2IiLCJjYWxsYmFjayIsIm5vZGUiLCJfZmlndXJlUG9pbnRSZWN0QXJyYXkiLCJkcmFnb25EaXNwbGF5IiwiZ2V0Q29tcG9uZW50IiwiZHJhZ29uQm9uZXMiLCJBcm1hdHVyZURpc3BsYXkiLCJzdGF0ZSIsInBsYXlBbmltYXRpb24iLCJvbkxvYWQiLCJfdGltZW91dElkcyIsIl9pbnRlcnZhbElkcyIsImluaXRTY2VuZURhdGEiLCJpbml0U2l6ZSIsIndpbmRvdyIsImNjYyIsIl9pbWFnZVJlc0xpc3QiLCJfYXVkaW9SZXNMaXN0IiwiX2FuaW1hUmVzTGlzdCIsIl9sYXN0RmluZ2VyUG9zaXRpb24iLCJfaGludHNOb2RlTGlzdCIsIl9hbGxBbmltYXRpb25Ob2RlcyIsInBvcyIsImRpcnR5IiwiX2Rlc2lnblNpemUiLCJfZnJhbWVTaXplIiwiX21hcFNjYWxlTWluIiwiX21hcFNjYWxlTWF4IiwiX2NvY29zU2NhbGUiLCJzY3JlZW5fc2l6ZSIsInZpZXciLCJnZXRGcmFtZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsImRlc2lnbl9zaXplIiwiQ2FudmFzIiwiaW5zdGFuY2UiLCJkZXNpZ25SZXNvbHV0aW9uIiwiZiIsImZpdEhlaWdodCIsImZpdFdpZHRoIiwiZnJhbWVTaXplIiwiZ2V0RGVzaWduUmVzb2x1dGlvblNpemUiLCJzeCIsIndpblNpemUiLCJzeSIsIk1hdGgiLCJtaW4iLCJtYXgiLCJjcmVhdGVTdGF0ZU1hY2hpbmUiLCJjaGVjayIsInRhcmdldCIsImNvbmQiLCJjdHgiLCJldnQiLCJjb25zb2xlIiwibG9nIiwicXVlc3Rpb25JbmRleCIsInF1ZXN0aW9uc0NvdW50IiwiUXVlc3Rpb25TdGF0ZSIsImlkIiwiaW5pdGlhbCIsInN0YXRlcyIsImhpbnQiLCJpbnZva2UiLCJzcmMiLCJldmVudCIsInF1ZXN0aW9uUGxheVRpbWVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJxdWVzdGlvbnMiLCJhdWRpb191cmwiLCJvbkRvbmUiLCJvbkVycm9yIiwiYW5zd2VyIiwiYWZ0ZXIiLCJjb250ZXh0Iiwib25SZWNlaXZlIiwic2V0SW50ZXJ2YWwiLCJyZWdpb24iLCJyZXN1bHQiLCJjaGVja0luUmVnaW9uIiwicmVjdCIsInB1c2giLCJjbGVhckludGVydmFsIiwib24iLCJSSUdIVCIsIldST05HIiwicmlnaHQiLCJhbiIsImFjdGl2ZSIsImRkTG9nb0NhdCIsIm9uY2UiLCJFdmVudE9iamVjdCIsIkNPTVBMRVRFIiwid3JvbmciLCJtYXhRdWVzdGlvblRyeVRpbWVzIiwid3JvbmdFZmZlY3QiLCJpbmNsdWRlcyIsImRhdGEiLCJRdWVzdGlvbnNBcnJheVN0YXR1cyIsInBsYXkiLCJuZXh0IiwiQ0hFQ0siLCJsZW5ndGgiLCJiZWdpbiIsImNvdXJzZXdhcmUiLCJvcGVuT3Ntb0ZpbmdlclJlYWQiLCJpc09wZW5lZE9zbW9GaW5nZXJSZWFkIiwiYmVnaW5fYXVkaW8iLCJndWlkZSIsImd1aWRlX2F1ZGlvIiwicGxheWluZyIsImVudHJ5IiwiYXNzZXRNYW5hZ2VyIiwibG9hZFJlbW90ZSIsInBsYXlpbmdfYXVkaW8iLCJlcnIiLCJhdWRpb0NsaXAiLCJhdWRpb0VuZ2luZSIsInBsYXlNdXNpYyIsImZvckVhY2giLCJibG9jayIsImV4aXQiLCJzdG9wTXVzaWMiLCJORVhUIiwiZW5kIiwiY2xvc2VPc21vRmluZ2VyUmVhZCIsImVuZF9hdWRpbyIsImkiLCJ0IiwiayIsImlzU3BpbmUiLCJza2VsZXRvbiIsInNwIiwiU2tlbGV0b24iLCJwYXVzZSIsImxvb3AiLCJhbmltYXRpb24iLCJfYXJtYXR1cmVLZXkiLCJhZGRFdmVudExpc3RlbmVyIiwiYmVnaW5fc2VwX3RpbWUiLCJnYW1lTWFjaGluZSIsImdhbWVNYWNoaW5lU2VydmljZSIsIm9uVHJhbnNpdGlvbiIsInN0YXJ0IiwiZ2V0RGF0YSIsImJpbmQiLCJnZXREZWZhdWx0RGF0YSIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsInByZWxvYWRJdGVtIiwiYWlyIiwib3Ntb0ZpbmdlclJlYWRDYWxsYmFjayIsInJlc3VsdE9iaiIsImZpbmdlcl9wb3NfaW5fcGFnZSIsInAiLCJ4IiwieSIsImRlYnVnUG9pbnRlciIsImlzRGVidWciLCJyIiwidyIsImgiLCJmdW5jIiwibWlkZGxlTGF5ZXIiLCJmaW5kIiwibWlkZGxlTGF5ZXJDb21wb25lbnQiLCJhZGRQcmVsb2FkSW1hZ2UiLCJhZGRQcmVsb2FkQXVkaW8iLCJhZGRQcmVsb2FkQW5pbWEiLCJwcmVsb2FkIiwidXJsIiwiYmdJdGVtIiwiaG90Wm9uZUl0ZW1BcnIiLCJxIiwiZ0lkeCIsInRleFBuZ0RhdGEiLCJwaWNfdXJsIiwicHJlcGFyZUF1ZGlvQ2xpcCIsImtleSIsIndyb25nX2F1ZGlvIiwicmlnaHRfYXVkaW8iLCJ3cm9uZ19hdWRpbzEiLCJ3cm9uZ19hdWRpbzIiLCJib3hEZWJ1Z2dlciIsIlBPSU5URVJfTk9ERSIsInBhcmVudCIsImFkZENvbXBvbmVudCIsIkdyYXBoaWNzIiwiZ3JhcCIsImNsZWFyIiwiZ3JvdW5kIiwiYmFzZVciLCJiYXNlSCIsInB4IiwicHkiLCJwbiIsImZpbGxDb2xvciIsImNvbG9yIiwiY2lyY2xlIiwiZmlsbCIsInN0cm9rZSIsImRlYnVnR3JhcGhpY3MiLCJjYW52YXMiLCJiZ1ciLCJiZ0giLCJzY2FsZVgiLCJzY2FsZVkiLCJhZGRlZCIsImFyZWEiLCJkbiIsImxibE5vZGUiLCJsYmwiLCJMYWJlbCIsInN0cmluZyIsInNrZUpzb25EYXRhIiwic3Vic3RyaW5nIiwiZyIsImIiLCJyeCIsInJ5IiwicnciLCJyaCIsImZpbGxSZWN0IiwicHJlbG9hZEFyciIsImNvbmNhdCIsImxvYWRBbnkiLCJpdGVtIiwiZ3JvdW5kQmciLCJiYXNlUmVjdCIsInNmIiwiZ3MiLCJTcHJpdGUiLCJzcHJpdGVGcmFtZSIsImRiQ291bnQiLCJmaW5pc2hEYkNvdW50IiwiczEiLCJpbWdTaXplVyIsImltZ1NpemVIIiwic3ByIiwic2NhbGUiLCJuIiwiYW5pbVR5cGUiLCJ0ZXgiLCJhdGxhcyIsInRleEpzb25EYXRhIiwic2tlIiwidGhlbiIsImxvYWRFbmQiLCJkYiIsInJlY3RJbmZvIiwibGFiZWxUZXh0IiwiaXNOYU4iLCJkZWJ1ZyIsInNldERpc3BsYXlTdGF0cyIsImhpZGVBaXJDbGFzc0xvYWRpbmciLCJpbml0RGF0YSIsImluaXRCZyIsIl9jYW50b3VjaCIsImJnTm9kZSIsIm9uRGVzdHJveSIsImNsZWFyVGltZW91dCIsInN0b3BDaGlsZCIsInN0b3AiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7SUFDUUEsT0FBb0NDLGdCQUFwQ0Q7SUFBT0UsT0FBNkJELGdCQUE3QkM7SUFBTUMsUUFBdUJGLGdCQUF2QkU7SUFBT0MsYUFBZ0JILGdCQUFoQkc7QUFHNUJDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBRVIsYUFBU0QsRUFBRSxDQUFDRSxTQUZKO0FBSVJDLEVBQUFBLFVBQVUsRUFBRTtBQUNYO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VDLElBQUFBLFVBQVUsRUFBRTtBQUNYLGlCQUFTLElBREU7QUFFWEMsTUFBQUEsSUFBSSxFQUFFTCxFQUFFLENBQUNNO0FBRkUsS0FyREQ7QUF5RFhDLElBQUFBLFVBQVUsRUFBRTtBQUNYLGlCQUFTLElBREU7QUFFWEYsTUFBQUEsSUFBSSxFQUFFTCxFQUFFLENBQUNNO0FBRkUsS0F6REQ7QUE2RFhFLElBQUFBLE9BQU8sRUFBRTtBQUNSLGlCQUFTLElBREQ7QUFFUkgsTUFBQUEsSUFBSSxFQUFFTCxFQUFFLENBQUNTO0FBRkQ7QUE3REUsR0FKSjtBQXdFUkMsRUFBQUEsT0F4RVEsbUJBd0VBQyxHQXhFQSxFQXdFS0MsSUF4RUwsRUF3RVdDLE9BeEVYLEVBd0VvQjtBQUMzQixRQUFNQyxLQUFLLEdBQUlELE9BQU8sSUFBSUEsT0FBTyxDQUFDQyxLQUFwQixJQUE4QixDQUE1QztBQUNBLFFBQU1DLEVBQUUsR0FBSUYsT0FBTyxJQUFJQSxPQUFPLENBQUNHLFFBQXBCLElBQWlDLElBQTVDLENBRjJCLENBRzNCOztBQUNBLFFBQU1DLElBQUksR0FBRyxLQUFLQyxxQkFBTCxDQUEyQlAsR0FBM0IsRUFBZ0NNLElBQTdDO0FBQ0EsUUFBSUUsYUFBYSxHQUFHRixJQUFJLENBQUNHLFlBQUwsQ0FBa0JDLFdBQVcsQ0FBQ0MsZUFBOUIsQ0FBcEI7QUFFQSxRQUFNQyxLQUFLLEdBQUdKLGFBQWEsQ0FBQ0ssYUFBZCxDQUE0QlosSUFBNUIsRUFBa0NFLEtBQWxDLENBQWQsQ0FQMkIsQ0FRM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLFdBQU9TLEtBQVA7QUFDQSxHQXZGTztBQXdGUjtBQUNBRSxFQUFBQSxNQXpGUSxvQkF5RkM7QUFDUixTQUFLQyxXQUFMLEdBQW1CLEVBQW5CO0FBQ0EsU0FBS0MsWUFBTCxHQUFvQixFQUFwQjtBQUNBLFNBQUtDLGFBQUw7QUFDQSxTQUFLQyxRQUFMO0FBQ0FDLElBQUFBLE1BQU0sQ0FBQ0MsR0FBUCxHQUFhLElBQWI7QUFDQSxHQS9GTztBQWlHUkMsRUFBQUEsYUFBYSxFQUFFLElBakdQO0FBa0dSQyxFQUFBQSxhQUFhLEVBQUUsSUFsR1A7QUFtR1JDLEVBQUFBLGFBQWEsRUFBRSxJQW5HUDtBQXFHUkMsRUFBQUEsbUJBQW1CLEVBQUUsSUFyR2I7QUF1R1JDLEVBQUFBLGNBQWMsRUFBRyxJQXZHVDtBQXdHUmxCLEVBQUFBLHFCQUFxQixFQUFFLElBeEdmO0FBMEdSbUIsRUFBQUEsa0JBQWtCLEVBQUUsSUExR1o7QUE0R1JULEVBQUFBLGFBNUdRLDJCQTRHUTtBQUNmLFNBQUtJLGFBQUwsR0FBcUIsRUFBckI7QUFDQSxTQUFLQyxhQUFMLEdBQXFCLEVBQXJCO0FBQ0EsU0FBS0MsYUFBTCxHQUFxQixFQUFyQjtBQUVBLFNBQUtHLGtCQUFMLEdBQTBCLEVBQTFCO0FBQ0EsU0FBS0QsY0FBTCxHQUFzQixFQUF0QjtBQUNBLFNBQUtELG1CQUFMLEdBQTBCO0FBQ3pCRyxNQUFBQSxHQUFHLEVBQUUsSUFEb0I7QUFFekJDLE1BQUFBLEtBQUssRUFBRTtBQUZrQixLQUExQjtBQUlBLFNBQUtyQixxQkFBTCxHQUE2QixFQUE3QjtBQUNBLEdBeEhPO0FBMEhSc0IsRUFBQUEsV0FBVyxFQUFFLElBMUhMO0FBMEhZO0FBQ3BCQyxFQUFBQSxVQUFVLEVBQUUsSUEzSEo7QUEySFc7QUFDbkJDLEVBQUFBLFlBQVksRUFBRSxJQTVITjtBQTRIYTtBQUNyQkMsRUFBQUEsWUFBWSxFQUFFLElBN0hOO0FBNkhhO0FBQ3JCQyxFQUFBQSxXQUFXLEVBQUUsSUE5SEw7QUE4SFk7QUFFcEJmLEVBQUFBLFFBaElRLHNCQWdJRztBQUNWO0FBQ0EsUUFBSWdCLFdBQVcsR0FBRzdDLEVBQUUsQ0FBQzhDLElBQUgsQ0FBUUMsWUFBUixHQUF1QkMsS0FBdkIsR0FBK0JoRCxFQUFFLENBQUM4QyxJQUFILENBQVFDLFlBQVIsR0FBdUJFLE1BQXhFO0FBQ0EsUUFBSUMsV0FBVyxHQUFHbEQsRUFBRSxDQUFDbUQsTUFBSCxDQUFVQyxRQUFWLENBQW1CQyxnQkFBbkIsQ0FBb0NMLEtBQXBDLEdBQTRDaEQsRUFBRSxDQUFDbUQsTUFBSCxDQUFVQyxRQUFWLENBQW1CQyxnQkFBbkIsQ0FBb0NKLE1BQWxHO0FBQ0EsUUFBSUssQ0FBQyxHQUFHVCxXQUFXLElBQUlLLFdBQXZCO0FBQ0FsRCxJQUFBQSxFQUFFLENBQUNtRCxNQUFILENBQVVDLFFBQVYsQ0FBbUJHLFNBQW5CLEdBQStCRCxDQUEvQjtBQUNBdEQsSUFBQUEsRUFBRSxDQUFDbUQsTUFBSCxDQUFVQyxRQUFWLENBQW1CSSxRQUFuQixHQUE4QixDQUFDRixDQUEvQjtBQUVBLFFBQU1HLFNBQVMsR0FBR3pELEVBQUUsQ0FBQzhDLElBQUgsQ0FBUUMsWUFBUixFQUFsQjtBQUNBLFNBQUtOLFVBQUwsR0FBa0JnQixTQUFsQjtBQUVBLFNBQUtqQixXQUFMLEdBQW1CeEMsRUFBRSxDQUFDOEMsSUFBSCxDQUFRWSx1QkFBUixFQUFuQjtBQUVBLFFBQUlDLEVBQUUsR0FBRzNELEVBQUUsQ0FBQzRELE9BQUgsQ0FBV1osS0FBWCxHQUFtQlMsU0FBUyxDQUFDVCxLQUF0QztBQUNBLFFBQUlhLEVBQUUsR0FBRzdELEVBQUUsQ0FBQzRELE9BQUgsQ0FBV1gsTUFBWCxHQUFvQlEsU0FBUyxDQUFDUixNQUF2QztBQUNBLFNBQUtMLFdBQUwsR0FBbUJrQixJQUFJLENBQUNDLEdBQUwsQ0FBU0osRUFBVCxFQUFhRSxFQUFiLENBQW5CO0FBRUFGLElBQUFBLEVBQUUsR0FBR0YsU0FBUyxDQUFDVCxLQUFWLEdBQWtCLEtBQUtSLFdBQUwsQ0FBaUJRLEtBQXhDO0FBQ0FhLElBQUFBLEVBQUUsR0FBR0osU0FBUyxDQUFDUixNQUFWLEdBQW1CLEtBQUtULFdBQUwsQ0FBaUJTLE1BQXpDO0FBQ0EsU0FBS1AsWUFBTCxHQUFvQm9CLElBQUksQ0FBQ0MsR0FBTCxDQUFTSixFQUFULEVBQWFFLEVBQWIsSUFBbUIsS0FBS2pCLFdBQTVDO0FBQ0EsU0FBS0QsWUFBTCxHQUFvQm1CLElBQUksQ0FBQ0UsR0FBTCxDQUFTTCxFQUFULEVBQWFFLEVBQWIsSUFBbUIsS0FBS2pCLFdBQTVDO0FBQ0EsR0FySk87QUFzSlJxQixFQUFBQSxrQkF0SlEsZ0NBc0pZO0FBQUE7O0FBQ25CLFFBQU1DLEtBQUssR0FBSSxDQUNWO0FBQUVDLE1BQUFBLE1BQU0sRUFBRSxXQUFWO0FBQXVCQyxNQUFBQSxJQUFJLEVBQUUsY0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQWM7QUFDMUNDLFFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLDRCQUFaLEVBQTBDSCxHQUFHLENBQUNJLGFBQUosSUFBcUJKLEdBQUcsQ0FBQ0ssY0FBSixHQUFxQixDQUFwRjtBQUNBLGVBQU9MLEdBQUcsQ0FBQ0ksYUFBSixJQUFxQkosR0FBRyxDQUFDSyxjQUFKLEdBQW9CLENBQWhEO0FBRUE7QUFKRCxLQURVLEVBTUo7QUFBRVAsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FOSSxDQU1lO0FBTmYsS0FBZjtBQVFBLFFBQU1RLGFBQWEsR0FBRztBQUNyQkMsTUFBQUEsRUFBRSxFQUFFLFVBRGlCO0FBRXJCQyxNQUFBQSxPQUFPLEVBQUUsTUFGWTtBQUdyQkMsTUFBQUEsTUFBTSxFQUFFO0FBQ1BDLFFBQUFBLElBQUksRUFBRTtBQUNMQyxVQUFBQSxNQUFNLEVBQUU7QUFDUEMsWUFBQUEsR0FBRyxFQUFFLGFBQUNaLEdBQUQsRUFBTWEsS0FBTixFQUFnQjtBQUNwQlgsY0FBQUEsT0FBTyxDQUFDQyxHQUFSLDJCQUFvQ0gsR0FBRyxDQUFDSSxhQUF4QyxVQUEwREosR0FBRyxDQUFDYyxpQkFBOUQ7QUFDQWQsY0FBQUEsR0FBRyxDQUFDYyxpQkFBSixJQUF5QixDQUF6QjtBQUNBLHFCQUFPLElBQUlDLE9BQUosQ0FBWSxVQUFDQyxPQUFELEVBQVNDLE1BQVQsRUFBb0I7QUFFdEMsMENBQWVqQixHQUFHLENBQUNrQixTQUFKLENBQWNsQixHQUFHLENBQUNJLGFBQWxCLEVBQWlDZSxTQUFoRCxFQUEyRCxZQUFNO0FBQ2hFakIsa0JBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLGFBQVo7QUFDQWEsa0JBQUFBLE9BQU87QUFDUCxpQkFIRDtBQUlBLGVBTk0sQ0FBUDtBQU9BLGFBWE07QUFZUEksWUFBQUEsTUFBTSxFQUFFLFFBWkQ7QUFhUEMsWUFBQUEsT0FBTyxFQUFFO0FBYkY7QUFESCxTQURDO0FBa0JQQyxRQUFBQSxNQUFNLEVBQUU7QUFDUEMsVUFBQUEsS0FBSyxFQUFFO0FBQ04sa0JBQU0sQ0FDQztBQUNMekIsY0FBQUEsTUFBTSxFQUFFO0FBREgsYUFERCxDQUlIO0FBSkc7QUFEQSxXQURBO0FBV1BhLFVBQUFBLE1BQU0sRUFBRTtBQUVQQyxZQUFBQSxHQUFHLEVBQUUsYUFBQ1ksT0FBRCxFQUFVWCxLQUFWO0FBQUEscUJBQW9CLFVBQUNsRSxRQUFELEVBQVc4RSxTQUFYLEVBQXlCO0FBRWpEdkIsZ0JBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLCtCQUFaLEVBRmlELENBR2pEOztBQUNBLG9CQUFNSSxFQUFFLEdBQUdtQixXQUFXLENBQUMsWUFBTTtBQUM1QixzQkFBSSxDQUFDLEtBQUksQ0FBQzVELG1CQUFMLENBQXlCSSxLQUE5QixFQUFxQztBQUNwQztBQUNBOztBQUNELHNCQUFNeUQsTUFBTSxHQUFHSCxPQUFPLENBQUNOLFNBQVIsQ0FBa0JNLE9BQU8sQ0FBQ3BCLGFBQTFCLENBQWY7O0FBQ0Esc0JBQU13QixNQUFNLEdBQUcsS0FBSSxDQUFDQyxhQUFMLENBQW1CRixNQUFNLENBQUNHLElBQTFCLENBQWY7O0FBQ0Esc0JBQUlGLE1BQU0sS0FBSyxJQUFmLEVBQXFCO0FBQ3BCO0FBQ0E7O0FBQ0QxQixrQkFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksOEJBQThCeUIsTUFBMUM7O0FBQ0Esc0JBQUlBLE1BQUosRUFBWTtBQUNYakYsb0JBQUFBLFFBQVEsQ0FBQyxPQUFELENBQVI7QUFDQSxtQkFGRCxNQUVPO0FBQ05BLG9CQUFBQSxRQUFRLENBQUMsT0FBRCxDQUFSO0FBQ0E7QUFDRCxpQkFmcUIsRUFlbkIsR0FmbUIsQ0FBdEI7O0FBZ0JBLGdCQUFBLEtBQUksQ0FBQ1csWUFBTCxDQUFrQnlFLElBQWxCLENBQXVCeEIsRUFBdkIsRUFwQmlELENBc0JqRDs7O0FBQ0EsdUJBQU87QUFBQSx5QkFBTXlCLGFBQWEsQ0FBQ3pCLEVBQUQsQ0FBbkI7QUFBQSxpQkFBUDtBQUNBLGVBeEJJO0FBQUE7QUFGRSxXQVhEO0FBd0NQMEIsVUFBQUEsRUFBRSxFQUFFO0FBQ0hDLFlBQUFBLEtBQUssRUFBRTtBQUNOcEMsY0FBQUEsTUFBTSxFQUFFO0FBREYsYUFESjtBQUlIcUMsWUFBQUEsS0FBSyxFQUFFO0FBQ05yQyxjQUFBQSxNQUFNLEVBQUU7QUFERjtBQUpKO0FBeENHLFNBbEJEO0FBb0VQc0MsUUFBQUEsS0FBSyxFQUFFO0FBQ056QixVQUFBQSxNQUFNLEVBQUU7QUFDUEMsWUFBQUEsR0FBRyxFQUFFLGFBQUNZLE9BQUQsRUFBVVgsS0FBVixFQUFvQjtBQUN4QixjQUFBLEtBQUksQ0FBQy9DLG1CQUFMLENBQXlCRyxHQUF6QixHQUErQixJQUEvQjtBQUNBLGNBQUEsS0FBSSxDQUFDSCxtQkFBTCxDQUF5QkksS0FBekIsR0FBaUMsS0FBakM7QUFDQSxxQkFBTyxJQUFJNkMsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFxQjtBQUN2Q2YsZ0JBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLGNBQVosRUFEdUMsQ0FFdkM7O0FBQ0Esb0JBQU1rQyxFQUFFLEdBQUdiLE9BQU8sQ0FBQ04sU0FBUixDQUFrQk0sT0FBTyxDQUFDcEIsYUFBMUIsRUFBeUN4RCxJQUFwRDtBQUNBc0QsZ0JBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLGNBQWUsT0FBT2tDLEVBQWxDO0FBQ0FBLGdCQUFBQSxFQUFFLENBQUNDLE1BQUgsR0FBWSxJQUFaO0FBQ0Esb0JBQU14RixhQUFhLEdBQUd1RixFQUFFLENBQUN0RixZQUFILENBQWdCQyxXQUFXLENBQUNDLGVBQTVCLENBQXRCO0FBQ0FILGdCQUFBQSxhQUFhLENBQUNLLGFBQWQsQ0FBNEIsUUFBNUIsRUFBc0MsQ0FBdEM7O0FBQ0Esb0JBQU1vRixTQUFTLEdBQUcsS0FBSSxDQUFDcEcsT0FBTCxDQUFhWSxZQUFiLENBQTBCQyxXQUFXLENBQUNDLGVBQXRDLENBQWxCOztBQUNBc0YsZ0JBQUFBLFNBQVMsQ0FBQ3BGLGFBQVYsQ0FBd0IsT0FBeEIsRUFBaUMsQ0FBakM7QUFDQW9GLGdCQUFBQSxTQUFTLENBQUNDLElBQVYsQ0FBZXhGLFdBQVcsQ0FBQ3lGLFdBQVosQ0FBd0JDLFFBQXZDLEVBQWlELFlBQVc7QUFDM0QsdUJBQUt2RyxPQUFMLENBQWFZLFlBQWIsQ0FBMEJDLFdBQVcsQ0FBQ0MsZUFBdEMsRUFBdURFLGFBQXZELENBQXFFLFFBQXJFLEVBQStFLENBQS9FO0FBQ0EsaUJBRkQsRUFFRyxLQUZIO0FBSUEsMENBQWUsS0FBSSxDQUFDcEIsVUFBcEIsRUFBZ0MsWUFBTTtBQUNyQ2lGLGtCQUFBQSxPQUFPO0FBQ1AsaUJBRkQ7QUFHQSxlQWpCTSxDQUFQO0FBa0JBLGFBdEJNO0FBdUJQSSxZQUFBQSxNQUFNLEVBQUU7QUFDUHRCLGNBQUFBLE1BQU0sRUFBRSxzQkFERDtBQUVQdkUsY0FBQUEsT0FBTyxFQUFFRSxLQUFLLENBQUMsT0FBRDtBQUZQLGFBdkJEO0FBMkJQNEYsWUFBQUEsT0FBTyxFQUFFO0FBQ1J2QixjQUFBQSxNQUFNLEVBQUUsc0JBREE7QUFFUnZFLGNBQUFBLE9BQU8sRUFBRUUsS0FBSyxDQUFDLE9BQUQ7QUFGTjtBQTNCRjtBQURGLFNBcEVBO0FBc0dQa0gsUUFBQUEsS0FBSyxFQUFDO0FBQ0xoQyxVQUFBQSxNQUFNLEVBQUU7QUFDUEMsWUFBQUEsR0FBRyxFQUFFLGFBQUNZLE9BQUQsRUFBVVgsS0FBVixFQUFvQjtBQUN4QixjQUFBLEtBQUksQ0FBQy9DLG1CQUFMLENBQXlCRyxHQUF6QixHQUErQixJQUEvQjtBQUNBLGNBQUEsS0FBSSxDQUFDSCxtQkFBTCxDQUF5QkksS0FBekIsR0FBaUMsS0FBakM7QUFDQSxxQkFBTyxJQUFJNkMsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFxQjtBQUN2Q2YsZ0JBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLGNBQVosRUFBNEJxQixPQUFPLENBQUNwQixhQUFwQyxFQUFtRG9CLE9BQU8sQ0FBQ1YsaUJBQTNELEVBQStFVSxPQUFPLENBQUNvQixtQkFBdkY7O0FBQ0Esb0JBQU1MLFNBQVMsR0FBRyxLQUFJLENBQUNwRyxPQUFMLENBQWFZLFlBQWIsQ0FBMEJDLFdBQVcsQ0FBQ0MsZUFBdEMsQ0FBbEI7O0FBQ0FzRixnQkFBQUEsU0FBUyxDQUFDcEYsYUFBVixDQUF3QixPQUF4QixFQUFpQyxDQUFqQztBQUNBb0YsZ0JBQUFBLFNBQVMsQ0FBQ0MsSUFBVixDQUFleEYsV0FBVyxDQUFDeUYsV0FBWixDQUF3QkMsUUFBdkMsRUFBaUQsWUFBVztBQUMzRCx1QkFBS3ZHLE9BQUwsQ0FBYVksWUFBYixDQUEwQkMsV0FBVyxDQUFDQyxlQUF0QyxFQUF1REUsYUFBdkQsQ0FBcUUsUUFBckUsRUFBK0UsQ0FBL0U7QUFDQSxpQkFGRCxFQUVHLEtBRkg7QUFHQSxvQkFBSTBGLFdBQVcsR0FBRyxLQUFJLENBQUMzRyxVQUF2QixDQVB1QyxDQVF2Qzs7QUFDQSxvQkFBSSxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU80RyxRQUFQLENBQWdCdEIsT0FBTyxDQUFDcEIsYUFBeEIsQ0FBSixFQUE0QztBQUMzQ3lDLGtCQUFBQSxXQUFXLEdBQUcsS0FBSSxDQUFDRSxJQUFMLGlCQUF3QnZCLE9BQU8sQ0FBQ1YsaUJBQWhDLENBQWQ7QUFDQSxpQkFGRCxNQUVPO0FBQ047QUFDQSxzQkFBSVUsT0FBTyxDQUFDVixpQkFBUixJQUE2QixDQUFqQyxFQUFvQztBQUNuQytCLG9CQUFBQSxXQUFXLEdBQUcsS0FBSSxDQUFDRSxJQUFMLGlCQUF3QnZCLE9BQU8sQ0FBQ1YsaUJBQWhDLENBQWQ7QUFDQTtBQUNEOztBQUdELG9CQUFJVSxPQUFPLENBQUNWLGlCQUFSLElBQTZCVSxPQUFPLENBQUNvQixtQkFBekMsRUFBOEQ7QUFDN0Qsc0JBQU1QLEVBQUUsR0FBR2IsT0FBTyxDQUFDTixTQUFSLENBQWtCTSxPQUFPLENBQUNwQixhQUExQixFQUF5Q3hELElBQXBEO0FBQ0F5RixrQkFBQUEsRUFBRSxDQUFDQyxNQUFILEdBQVksSUFBWjtBQUNBLHNCQUFNeEYsYUFBYSxHQUFHdUYsRUFBRSxDQUFDdEYsWUFBSCxDQUFnQkMsV0FBVyxDQUFDQyxlQUE1QixDQUF0QjtBQUNBSCxrQkFBQUEsYUFBYSxDQUFDSyxhQUFkLENBQTRCLFFBQTVCLEVBQXNDLENBQXRDO0FBQ0ErQyxrQkFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksZ0JBQVosRUFBOEJrQyxFQUFFLENBQUNDLE1BQWpDO0FBQ0E7O0FBRUQsMENBQWVPLFdBQWYsRUFBNEIsWUFBTTtBQUNqQyxzQkFBSXJCLE9BQU8sQ0FBQ1YsaUJBQVIsSUFBNkJVLE9BQU8sQ0FBQ29CLG1CQUF6QyxFQUE4RDtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EzQixvQkFBQUEsTUFBTTtBQUNOLG1CQVBELE1BT087QUFDTkQsb0JBQUFBLE9BQU87QUFDUDtBQUNELGlCQVhEO0FBWUEsZUF2Q00sQ0FBUDtBQXdDQSxhQTVDTTtBQTZDUEksWUFBQUEsTUFBTSxFQUFFO0FBQ1B0QixjQUFBQSxNQUFNLEVBQUUsTUFERCxDQUVQOztBQUZPLGFBN0NEO0FBaURQdUIsWUFBQUEsT0FBTyxFQUFFO0FBQ1J2QixjQUFBQSxNQUFNLEVBQUUsc0JBREE7QUFFUnZFLGNBQUFBLE9BQU8sRUFBRUUsS0FBSyxDQUFDLE9BQUQ7QUFGTjtBQWpERjtBQURIO0FBdEdDO0FBSGEsS0FBdEI7QUFtS0EsUUFBTXVILG9CQUFvQixHQUFHO0FBQzVCekMsTUFBQUEsRUFBRSxFQUFFLGdCQUR3QjtBQUU1QkMsTUFBQUEsT0FBTyxFQUFFLE1BRm1CO0FBRzVCQyxNQUFBQSxNQUFNLEVBQUU7QUFDUHdDLFFBQUFBLElBQUksZUFDQTNDLGFBREEsQ0FERztBQUlQNEMsUUFBQUEsSUFBSSxFQUFFO0FBQ0xqQixVQUFBQSxFQUFFLEVBQUU7QUFDSGtCLFlBQUFBLEtBQUssRUFBRSxDQUNOO0FBQ0NyRCxjQUFBQSxNQUFNLEVBQUUsV0FEVDtBQUVDQyxjQUFBQSxJQUFJLEVBQUUsY0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQWM7QUFDbkJELGdCQUFBQSxHQUFHLENBQUNJLGFBQUosSUFBcUIsQ0FBckI7QUFDQUosZ0JBQUFBLEdBQUcsQ0FBQ2MsaUJBQUosR0FBd0IsQ0FBeEI7QUFDQVosZ0JBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLFdBQVosRUFBMEJILEdBQUcsQ0FBQ0ksYUFBSixJQUFxQkosR0FBRyxDQUFDSyxjQUFuRDtBQUNBLHVCQUFPTCxHQUFHLENBQUNJLGFBQUosSUFBcUJKLEdBQUcsQ0FBQ0ssY0FBaEM7QUFDQTtBQVBGLGFBRE0sRUFVTjtBQUFDUCxjQUFBQSxNQUFNLEVBQUU7QUFBVCxhQVZNO0FBREo7QUFEQztBQUpDO0FBSG9CLEtBQTdCO0FBNEJBLFFBQU01QyxLQUFLLEdBQUc7QUFDYnFELE1BQUFBLEVBQUUsRUFBRSxNQURTO0FBRWJDLE1BQUFBLE9BQU8sRUFBRSxPQUZJO0FBR2JnQixNQUFBQSxPQUFPLEVBQUU7QUFDUnBCLFFBQUFBLGFBQWEsRUFBRSxDQURQO0FBRVJVLFFBQUFBLGlCQUFpQixFQUFFLENBRlg7QUFHUjhCLFFBQUFBLG1CQUFtQixFQUFFLENBSGI7QUFJUnZDLFFBQUFBLGNBQWMsRUFBRSxLQUFLeEQscUJBQUwsQ0FBMkJ1RyxNQUpuQztBQUtSbEMsUUFBQUEsU0FBUyxFQUFFLEtBQUtyRTtBQUxSLE9BSEk7QUFVYjRELE1BQUFBLE1BQU0sRUFBRTtBQUNQNEMsUUFBQUEsS0FBSyxFQUFFO0FBQ04xQyxVQUFBQSxNQUFNLEVBQUU7QUFDUEMsWUFBQUEsR0FBRyxFQUFFLGFBQUNaLEdBQUQsRUFBUztBQUNiRSxjQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxjQUFaOztBQUNBLGtCQUFHMUMsTUFBTSxDQUFDNkYsVUFBUCxJQUFxQjdGLE1BQU0sQ0FBQzZGLFVBQVAsQ0FBa0JDLGtCQUExQyxFQUE4RDtBQUM3RCxnQkFBQSxLQUFJLENBQUNDLHNCQUFMLEdBQThCLElBQTlCO0FBQ0EvRixnQkFBQUEsTUFBTSxDQUFDNkYsVUFBUCxDQUFrQkMsa0JBQWxCLENBQXFDO0FBQ3BDLDZCQUFXLEVBRHlCO0FBRXBDLDZCQUFXO0FBRnlCLGlCQUFyQztBQUlBOztBQUNELGtCQUFJekcsYUFBYSxHQUFHLEtBQUksQ0FBQ1gsT0FBTCxDQUFhWSxZQUFiLENBQTBCQyxXQUFXLENBQUNDLGVBQXRDLENBQXBCOztBQUNBLGtCQUFNQyxLQUFLLEdBQUdKLGFBQWEsQ0FBQ0ssYUFBZCxDQUE0QixPQUE1QixFQUFxQyxDQUFyQyxDQUFkO0FBQ0EscUJBQU8sSUFBSTRELE9BQUosQ0FBWSxVQUFDQyxPQUFELEVBQVNDLE1BQVQsRUFBb0I7QUFDdEMsMENBQWUsS0FBSSxDQUFDOEIsSUFBTCxDQUFVVSxXQUF6QixFQUFzQyxZQUFNO0FBQzNDdkQsa0JBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLHlCQUFaO0FBQ0FhLGtCQUFBQSxPQUFPO0FBQ1AsaUJBSEQ7QUFJQSxlQUxNLENBQVA7QUFNQSxhQWxCTTtBQW1CUEksWUFBQUEsTUFBTSxFQUFHLE9BbkJGO0FBb0JQQyxZQUFBQSxPQUFPLEVBQUU7QUFwQkY7QUFERixTQURBO0FBMEJQcUMsUUFBQUEsS0FBSyxFQUFDO0FBQ0wvQyxVQUFBQSxNQUFNLEVBQUU7QUFDUEMsWUFBQUEsR0FBRyxFQUFFLGFBQUNaLEdBQUQsRUFBUztBQUNiLHFCQUFPLElBQUllLE9BQUosQ0FBWSxVQUFDQyxPQUFELEVBQVNDLE1BQVQsRUFBb0I7QUFDdEMsMENBQWUsS0FBSSxDQUFDOEIsSUFBTCxDQUFVWSxXQUF6QixFQUFzQyxZQUFNO0FBQzNDekQsa0JBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLHlCQUFaO0FBQ0FjLGtCQUFBQSxNQUFNO0FBQ04saUJBSEQ7QUFJQSxlQUxNLENBQVA7QUFNQSxhQVJNO0FBU1BHLFlBQUFBLE1BQU0sRUFBRyxTQVRGO0FBVVBDLFlBQUFBLE9BQU8sRUFBRTtBQVZGO0FBREgsU0ExQkM7QUF5Q1B1QyxRQUFBQSxPQUFPO0FBQ05DLFVBQUFBLEtBQUssRUFBRSxlQUFDN0QsR0FBRCxFQUFTO0FBQ2ZFLFlBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLGtCQUFaOztBQUNBLGdCQUFJckQsYUFBYSxHQUFHLEtBQUksQ0FBQ1gsT0FBTCxDQUFhWSxZQUFiLENBQTBCQyxXQUFXLENBQUNDLGVBQXRDLENBQXBCOztBQUNBLGdCQUFNQyxLQUFLLEdBQUdKLGFBQWEsQ0FBQ0ssYUFBZCxDQUE0QixRQUE1QixFQUFzQyxDQUF0QyxDQUFkO0FBQ0F4QixZQUFBQSxFQUFFLENBQUNtSSxZQUFILENBQWdCQyxVQUFoQixDQUEyQixLQUFJLENBQUNoQixJQUFMLENBQVVpQixhQUFyQyxFQUFvRCxVQUFDQyxHQUFELEVBQU1DLFNBQU4sRUFBb0I7QUFDdkV2SSxjQUFBQSxFQUFFLENBQUN3SSxXQUFILENBQWVDLFNBQWYsQ0FBeUJGLFNBQXpCLEVBQW9DLElBQXBDLEVBQTBDLEdBQTFDO0FBQ0EsYUFGRDtBQUdBbEUsWUFBQUEsR0FBRyxDQUFDa0IsU0FBSixDQUFjbUQsT0FBZCxDQUFzQixVQUFDQyxLQUFELEVBQVc7QUFDaENBLGNBQUFBLEtBQUssQ0FBQzFILElBQU4sQ0FBVzBGLE1BQVgsR0FBb0IsS0FBcEI7QUFDQSxhQUZEO0FBR0EsV0FYSztBQVlOaUMsVUFBQUEsSUFBSSxFQUFFLGdCQUFNO0FBQ1hyRSxZQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxpQkFBWjtBQUNBeEUsWUFBQUEsRUFBRSxDQUFDd0ksV0FBSCxDQUFlSyxTQUFmO0FBQ0EsV0FmSztBQWdCTnZDLFVBQUFBLEVBQUUsRUFBRTtBQUNId0MsWUFBQUEsSUFBSSxFQUFFO0FBREg7QUFoQkUsV0FvQkh6QixvQkFwQkcsQ0F6Q0E7QUErRFAwQixRQUFBQSxHQUFHLEVBQUU7QUFDSGIsVUFBQUEsS0FBSyxFQUFFLGVBQUM3RCxHQUFELEVBQU1hLEtBQU4sRUFBZ0I7QUFDdEJYLFlBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLFVBQVo7O0FBQ0EsZ0JBQUlyRCxhQUFhLEdBQUcsS0FBSSxDQUFDWCxPQUFMLENBQWFZLFlBQWIsQ0FBMEJDLFdBQVcsQ0FBQ0MsZUFBdEMsQ0FBcEI7O0FBQ0EsZ0JBQU1DLEtBQUssR0FBR0osYUFBYSxDQUFDSyxhQUFkLENBQTRCLFFBQTVCLEVBQXNDLENBQXRDLENBQWQ7O0FBQ0EsZ0JBQUdNLE1BQU0sQ0FBQzZGLFVBQVAsSUFBcUI3RixNQUFNLENBQUM2RixVQUFQLENBQWtCcUIsbUJBQTFDLEVBQStEO0FBQzlELGNBQUEsS0FBSSxDQUFDbkIsc0JBQUwsR0FBOEIsS0FBOUI7QUFDQS9GLGNBQUFBLE1BQU0sQ0FBQzZGLFVBQVAsQ0FBa0JxQixtQkFBbEI7QUFDQTs7QUFDRCxzQ0FBZSxLQUFJLENBQUM1QixJQUFMLENBQVU2QixTQUF6QixFQUFvQyxZQUFNO0FBQ3pDMUUsY0FBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksYUFBWjtBQUNBO0FBQ0EsYUFIRCxFQVJzQixDQVl0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW5CRTtBQS9ERTtBQVZLLEtBQWQ7QUFpR0EsUUFBTW9CLEtBQUssR0FBRyxFQUFkOztBQXpTbUIsK0JBMFNYc0QsQ0ExU1c7QUEyU2xCLFVBQU1DLENBQUMsR0FBRyxLQUFJLENBQUMvRyxjQUFMLENBQW9COEcsQ0FBcEIsRUFBdUJqSSxJQUFqQztBQUNBLFVBQU1tSSxDQUFDLEdBQUcsS0FBSSxDQUFDaEgsY0FBTCxDQUFvQjhHLENBQXBCLEVBQXVCdEQsS0FBakM7QUFDQUEsTUFBQUEsS0FBSyxDQUFDd0QsQ0FBRCxDQUFMLEdBQVU7QUFDVHhKLFFBQUFBLE9BQU8sRUFBRSxtQkFBTTtBQUVkLGNBQUl1SixDQUFDLENBQUNFLE9BQU4sRUFBZTtBQUVkLGdCQUFNQyxRQUFRLEdBQUdILENBQUMsQ0FBQy9ILFlBQUYsQ0FBZW1JLEVBQUUsQ0FBQ0MsUUFBbEIsQ0FBakI7QUFDQUYsWUFBQUEsUUFBUSxDQUFDRyxLQUFUO0FBQ0FILFlBQUFBLFFBQVEsQ0FBQ0ksSUFBVCxHQUFnQixLQUFoQjtBQUNBSixZQUFBQSxRQUFRLENBQUNLLFNBQVQsR0FBcUIsU0FBckIsQ0FMYyxDQU1kO0FBRUEsV0FSRCxNQVFPO0FBRU4sZ0JBQU14SSxhQUFhLEdBQUdnSSxDQUFDLENBQUMvSCxZQUFGLENBQWVDLFdBQVcsQ0FBQ0MsZUFBM0IsQ0FBdEI7QUFDQUgsWUFBQUEsYUFBYSxDQUFDSyxhQUFkLENBQTRCLFNBQTVCLEVBQXVDLENBQXZDO0FBQ0ErQyxZQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWXJELGFBQWEsQ0FBQ3lJLFlBQTFCLEVBQXdDLFNBQXhDO0FBQ0F6SSxZQUFBQSxhQUFhLENBQUMwSSxnQkFBZCxDQUErQnhJLFdBQVcsQ0FBQ3lGLFdBQVosQ0FBd0JDLFFBQXZELEVBQWlFLFVBQUM3QixLQUFELEVBQVcsQ0FDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUxELEVBS0csS0FMSDtBQU1BLFdBckJhLENBeUJkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQTtBQW5DUSxPQUFWO0FBN1NrQjs7QUEwU25CLFNBQUksSUFBSWdFLENBQUMsR0FBRyxDQUFaLEVBQWVBLENBQUMsR0FBSSxLQUFLOUcsY0FBTCxDQUFvQnFGLE1BQXhDLEVBQWdEeUIsQ0FBQyxFQUFqRCxFQUFxRDtBQUFBLFlBQTdDQSxDQUE2QztBQXdDcEQ7O0FBQ0QsUUFBSSxLQUFLOUIsSUFBTCxDQUFVMEMsY0FBZCxFQUE4QjtBQUM3QixVQUFNWCxDQUFDLEdBQUcsQ0FBQyxLQUFLL0IsSUFBTCxDQUFVMEMsY0FBWCxHQUE0QixJQUF0QztBQUNBbEUsTUFBQUEsS0FBSyxDQUFDdUQsQ0FBRCxDQUFMLEdBQVc7QUFDVnZKLFFBQUFBLE9BQU8sRUFBRSxtQkFBTTtBQUNkMkUsVUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksY0FBWjs7QUFFQSxlQUFJLElBQUkwRSxFQUFDLEdBQUcsQ0FBWixFQUFlQSxFQUFDLEdBQUksS0FBSSxDQUFDN0csa0JBQUwsQ0FBd0JvRixNQUE1QyxFQUFvRHlCLEVBQUMsRUFBckQsRUFBeUQ7QUFDeEQsZ0JBQU1DLEVBQUMsR0FBRyxLQUFJLENBQUM5RyxrQkFBTCxDQUF3QjZHLEVBQXhCLENBQVY7O0FBQ0EsZ0JBQUlDLEVBQUMsQ0FBQ0UsT0FBTixFQUFlO0FBRWQsa0JBQU1DLFFBQVEsR0FBR0gsRUFBQyxDQUFDL0gsWUFBRixDQUFlbUksRUFBRSxDQUFDQyxRQUFsQixDQUFqQjs7QUFDQUYsY0FBQUEsUUFBUSxDQUFDRyxLQUFUO0FBQ0FILGNBQUFBLFFBQVEsQ0FBQ0ksSUFBVCxHQUFnQixJQUFoQjtBQUNBSixjQUFBQSxRQUFRLENBQUNLLFNBQVQsR0FBcUIsUUFBckIsQ0FMYyxDQU1kO0FBQ0EsYUFQRCxNQU9PO0FBRU4sa0JBQU14SSxhQUFhLEdBQUdnSSxFQUFDLENBQUMvSCxZQUFGLENBQWVDLFdBQVcsQ0FBQ0MsZUFBM0IsQ0FBdEI7O0FBQ0FILGNBQUFBLGFBQWEsQ0FBQ0ssYUFBZCxDQUE0QixRQUE1QixFQUFzQyxDQUF0QztBQUNBO0FBQ0Q7QUFDRDtBQW5CUyxPQUFYO0FBcUJBOztBQUVERCxJQUFBQSxLQUFLLENBQUN1RCxNQUFOLENBQWE0QyxLQUFiLENBQW1COUIsS0FBbkIsR0FBMkJBLEtBQTNCO0FBSUEsUUFBTW1FLFdBQVcsR0FBRywyQkFBY3hJLEtBQWQsQ0FBcEI7QUFDQU8sSUFBQUEsTUFBTSxDQUFDaUksV0FBUCxHQUFxQkEsV0FBckI7QUFDQSxTQUFLQyxrQkFBTCxHQUEwQix1QkFBVUQsV0FBVixFQUF1QkUsWUFBdkIsQ0FBb0MsVUFBQzFJLEtBQUQsRUFBVyxDQUN6RTtBQUNDLEtBRnlCLENBQTFCO0FBR0EsU0FBS3lJLGtCQUFMLENBQXdCRSxLQUF4Qjs7QUFDQSxRQUFJcEksTUFBTSxDQUFDa0ksa0JBQVgsRUFBK0I7QUFDOUJsSSxNQUFBQSxNQUFNLENBQUNrSSxrQkFBUCxHQUE0QkEsa0JBQTVCO0FBQ0E7QUFHRCxHQWpoQk87QUFtaEJSO0FBQ0FFLEVBQUFBLEtBcGhCUSxtQkFvaEJBO0FBQUE7O0FBQ1AsUUFBSUMsT0FBTyxHQUFHLEtBQUtBLE9BQUwsQ0FBYUMsSUFBYixDQUFrQixJQUFsQixDQUFkOztBQUNBLFFBQUl0SSxNQUFNLElBQUlBLE1BQU0sQ0FBQzZGLFVBQXJCLEVBQWlDO0FBQ2hDd0MsTUFBQUEsT0FBTyxHQUFHckksTUFBTSxDQUFDNkYsVUFBUCxDQUFrQndDLE9BQTVCO0FBQ0E7O0FBRURBLElBQUFBLE9BQU8sQ0FBQyxVQUFDL0MsSUFBRCxFQUFVO0FBQ2pCO0FBQ0EsTUFBQSxNQUFJLENBQUNBLElBQUwsR0FBWUEsSUFBSSxJQUFJLE1BQUksQ0FBQ2lELGNBQUwsRUFBcEI7QUFDQSxNQUFBLE1BQUksQ0FBQ2pELElBQUwsR0FBWWtELElBQUksQ0FBQ0MsS0FBTCxDQUFXRCxJQUFJLENBQUNFLFNBQUwsQ0FBZSxNQUFJLENBQUNwRCxJQUFwQixDQUFYLENBQVo7O0FBRUEsTUFBQSxNQUFJLENBQUNxRCxXQUFMO0FBQ0EsS0FOTSxDQUFQO0FBT0EzSSxJQUFBQSxNQUFNLENBQUM0SSxHQUFQLEdBQWE1SSxNQUFNLENBQUM0SSxHQUFQLElBQWMsRUFBM0I7O0FBQ0EsUUFBSTVJLE1BQU0sQ0FBQzRJLEdBQVgsRUFBZ0I7QUFDZjVJLE1BQUFBLE1BQU0sQ0FBQzRJLEdBQVAsQ0FBV0Msc0JBQVgsR0FBb0MsVUFBQzFFLE1BQUQsRUFBWTtBQUMvQyxZQUFJLENBQUMsTUFBSSxDQUFDK0Qsa0JBQVYsRUFBOEI7QUFDN0I7QUFDQSxTQUg4QyxDQUkvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsWUFBTVksU0FBUyxHQUFHTixJQUFJLENBQUNDLEtBQUwsQ0FBV3RFLE1BQVgsQ0FBbEI7QUFDQTFCLFFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLGlCQUFnQjhGLElBQUksQ0FBQ0UsU0FBTCxDQUFlSSxTQUFTLENBQUNDLGtCQUF6QixDQUE1QjtBQUNBLFlBQU1DLENBQUMsR0FBR0YsU0FBUyxDQUFDQyxrQkFBcEI7O0FBQ0EsWUFBSUMsQ0FBQyxDQUFDQyxDQUFGLElBQU8sQ0FBQyxDQUFSLElBQWFELENBQUMsQ0FBQ0UsQ0FBRixJQUFPLENBQUMsQ0FBekIsRUFBNEI7QUFDM0IsVUFBQSxNQUFJLENBQUM3SSxtQkFBTCxDQUF5QkcsR0FBekIsR0FBK0IsSUFBL0I7QUFDQSxVQUFBLE1BQUksQ0FBQ0gsbUJBQUwsQ0FBeUJJLEtBQXpCLEdBQWlDLEtBQWpDO0FBQ0E7QUFDQTs7QUFDRCxRQUFBLE1BQUksQ0FBQ0osbUJBQUwsR0FBMkI7QUFDMUJHLFVBQUFBLEdBQUcsRUFBQztBQUNIeUksWUFBQUEsQ0FBQyxFQUFFRCxDQUFDLENBQUNDLENBREY7QUFFSEMsWUFBQUEsQ0FBQyxFQUFFRixDQUFDLENBQUNFO0FBRkYsV0FEc0I7QUFLMUJ6SSxVQUFBQSxLQUFLLEVBQUU7QUFMbUIsU0FBM0I7O0FBT0EsUUFBQSxNQUFJLENBQUMwSSxZQUFMLENBQWtCSCxDQUFDLENBQUNDLENBQXBCLEVBQXVCRCxDQUFDLENBQUNFLENBQXpCO0FBQ0EsT0EzQkQ7QUE0QkE7O0FBQ0QsU0FBS0UsT0FBTCxHQUFlLEtBQWY7QUFFQSxHQWxrQk87QUFta0JSaEYsRUFBQUEsYUFua0JRLHlCQW1rQk1pRixDQW5rQk4sRUFta0JTO0FBQ2hCLFFBQUksQ0FBQyxLQUFLaEosbUJBQU4sSUFBNkIsQ0FBQyxLQUFLQSxtQkFBTCxDQUF5QkcsR0FBM0QsRUFBZ0U7QUFDL0QsYUFBTyxJQUFQO0FBQ0E7O0FBQ0QsUUFBTXdJLENBQUMsR0FBRyxLQUFLM0ksbUJBQUwsR0FBMkIsS0FBS0EsbUJBQUwsQ0FBeUJHLEdBQXpCLElBQWdDO0FBQUN5SSxNQUFBQSxDQUFDLEVBQUMsQ0FBSDtBQUFNQyxNQUFBQSxDQUFDLEVBQUM7QUFBUixLQUEzRCxHQUF3RTtBQUFDRCxNQUFBQSxDQUFDLEVBQUMsQ0FBSDtBQUFNQyxNQUFBQSxDQUFDLEVBQUM7QUFBUixLQUFsRjtBQUNBLFFBQU1JLENBQUMsR0FBR04sQ0FBQyxDQUFDQyxDQUFGLEdBQU1JLENBQUMsQ0FBQ0osQ0FBUixJQUFhRCxDQUFDLENBQUNDLENBQUYsR0FBT0ksQ0FBQyxDQUFDSixDQUFGLEdBQU1JLENBQUMsQ0FBQ25JLEtBQXRDO0FBQ0EsUUFBTXFJLENBQUMsR0FBR1AsQ0FBQyxDQUFDRSxDQUFGLEdBQU1HLENBQUMsQ0FBQ0gsQ0FBUixJQUFhRixDQUFDLENBQUNFLENBQUYsR0FBT0csQ0FBQyxDQUFDSCxDQUFGLEdBQU1HLENBQUMsQ0FBQ2xJLE1BQXRDO0FBQ0EsV0FBT21JLENBQUMsSUFBSUMsQ0FBWjtBQUVBLEdBNWtCTztBQThrQlJsQixFQUFBQSxPQTlrQlEsbUJBOGtCQW1CLElBOWtCQSxFQThrQk07QUFDYixRQUFJeEosTUFBTSxJQUFJQSxNQUFNLENBQUM2RixVQUFyQixFQUFpQztBQUNoQzdGLE1BQUFBLE1BQU0sQ0FBQzZGLFVBQVAsQ0FBa0J3QyxPQUFsQixDQUEwQm1CLElBQTFCLEVBQWdDLE9BQWhDO0FBQ0E7QUFDQTs7QUFFRCxRQUFNQyxXQUFXLEdBQUd2TCxFQUFFLENBQUN3TCxJQUFILENBQVEsYUFBUixDQUFwQjs7QUFDQSxRQUFJRCxXQUFKLEVBQWlCO0FBQ2hCLFVBQU1FLG9CQUFvQixHQUFHRixXQUFXLENBQUNuSyxZQUFaLENBQXlCLGFBQXpCLENBQTdCO0FBQ0FxSyxNQUFBQSxvQkFBb0IsQ0FBQ3RCLE9BQXJCLENBQTZCbUIsSUFBN0I7QUFDQTtBQUNBOztBQUVEQSxJQUFBQSxJQUFJLENBQUMsS0FBS2pCLGNBQUwsRUFBRCxDQUFKO0FBQ0EsR0E1bEJPO0FBOGxCUkEsRUFBQUEsY0E5bEJRLDRCQThsQlM7QUFDaEIsV0FBTztBQUFDLHFCQUFjLDRFQUFmO0FBQTRGLHdCQUFpQixDQUE3RztBQUErRyxxQkFBYyw0RUFBN0g7QUFBME0sdUJBQWdCLDRFQUExTjtBQUF1UyxxQkFBYyw0RUFBclQ7QUFBa1kscUJBQWMsNEVBQWhaO0FBQTZkLHNCQUFlLDRFQUE1ZTtBQUF5akIsc0JBQWUsNEVBQXhrQjtBQUFxcEIsbUJBQVksNEVBQWpxQjtBQUE4dUIsZ0JBQVM7QUFBQyxlQUFNLDRFQUFQO0FBQW9GLGdCQUFPO0FBQUMsZUFBSSxNQUFMO0FBQVksZUFBSSxDQUFoQjtBQUFrQixtQkFBUSxLQUExQjtBQUFnQyxvQkFBUztBQUF6QztBQUEzRixPQUF2dkI7QUFBaTRCLHdCQUFpQixDQUFDO0FBQUMsY0FBSyxlQUFOO0FBQXNCLGlCQUFRLENBQTlCO0FBQWdDLHFCQUFZLDRFQUE1QztBQUF5SCxvQkFBVyxNQUFwSTtBQUEySSxxQkFBWSxVQUF2SjtBQUFrSyxvQkFBVyxDQUE3SztBQUErSyxvQkFBVyxDQUExTDtBQUE0TCxvQkFBVyxDQUF2TTtBQUF5TSxvQkFBVyxVQUFwTjtBQUErTixtQkFBVTtBQUFDLGVBQUksS0FBTDtBQUFXLGVBQUk7QUFBZixTQUF6TztBQUE0USxnQkFBTyxHQUFuUjtBQUF1UixxQkFBWSxHQUFuUztBQUF1UyxnQkFBTyxLQUE5UztBQUFvVCxnQkFBTyxLQUEzVDtBQUFpVSx1QkFBYztBQUFDLGlCQUFNLDZFQUFQO0FBQXFGLGtCQUFPO0FBQTVGLFNBQS9VO0FBQTJiLHVCQUFjO0FBQUMsaUJBQU0sNkVBQVA7QUFBcUYsa0JBQU87QUFBNUYsU0FBemM7QUFBcWpCLHNCQUFhO0FBQUMsaUJBQU0sNEVBQVA7QUFBb0Ysa0JBQU87QUFBM0YsU0FBbGtCO0FBQTRxQixvQkFBVyxZQUF2ckI7QUFBb3NCLGdCQUFPO0FBQUMsZUFBSSxLQUFMO0FBQVcsZUFBSSxLQUFmO0FBQXFCLG1CQUFRLE1BQTdCO0FBQW9DLG9CQUFTO0FBQTdDO0FBQTNzQixPQUFELEVBQWt3QjtBQUFDLGNBQUssZUFBTjtBQUFzQixpQkFBUSxDQUE5QjtBQUFnQyxxQkFBWSw0RUFBNUM7QUFBeUgsb0JBQVcsTUFBcEk7QUFBMkkscUJBQVksVUFBdko7QUFBa0ssb0JBQVcsQ0FBN0s7QUFBK0ssb0JBQVcsQ0FBMUw7QUFBNEwsb0JBQVcsQ0FBdk07QUFBeU0sb0JBQVcsVUFBcE47QUFBK04sbUJBQVU7QUFBQyxlQUFJLEtBQUw7QUFBVyxlQUFJO0FBQWYsU0FBek87QUFBNFEsZ0JBQU8sR0FBblI7QUFBdVIscUJBQVksR0FBblM7QUFBdVMsZ0JBQU8sTUFBOVM7QUFBcVQsZ0JBQU8sS0FBNVQ7QUFBa1UsdUJBQWM7QUFBQyxpQkFBTSw2RUFBUDtBQUFxRixrQkFBTztBQUE1RixTQUFoVjtBQUFpYyx1QkFBYztBQUFDLGlCQUFNLDhFQUFQO0FBQXNGLGtCQUFPO0FBQTdGLFNBQS9jO0FBQWtrQixzQkFBYTtBQUFDLGlCQUFNLDRFQUFQO0FBQW9GLGtCQUFPO0FBQTNGLFNBQS9rQjtBQUE4ckIsb0JBQVcsT0FBenNCO0FBQWl0QixnQkFBTztBQUFDLGVBQUksTUFBTDtBQUFZLGVBQUksTUFBaEI7QUFBdUIsbUJBQVEsTUFBL0I7QUFBc0Msb0JBQVM7QUFBL0M7QUFBeHRCLE9BQWx3QjtBQUFsNUIsS0FBUCxDQURnQixDQUVoQjtBQUNBLEdBam1CTztBQW1tQlJJLEVBQUFBLFdBbm1CUSx5QkFtbUJNO0FBQ2IsU0FBS2lCLGVBQUw7QUFDQSxTQUFLQyxlQUFMO0FBQ0EsU0FBS0MsZUFBTDtBQUNBLFNBQUtDLE9BQUw7QUFDQSxHQXhtQk87QUEybUJSSCxFQUFBQSxlQTNtQlEsNkJBMm1CVTtBQUVqQixTQUFLMUosYUFBTCxDQUFtQm9FLElBQW5CLENBQXdCO0FBQUUwRixNQUFBQSxHQUFHLEVBQUUsS0FBSzFFLElBQUwsQ0FBVTJFLE1BQVYsQ0FBaUJEO0FBQXhCLEtBQXhCOztBQUVBLHlEQUFnQixLQUFLMUUsSUFBTCxDQUFVNEUsY0FBMUIsd0NBQTBDO0FBQUEsVUFBL0JDLENBQStCOztBQUN6QyxVQUFJQSxDQUFDLENBQUNDLElBQUYsSUFBUyxHQUFiLEVBQWtCO0FBQ2pCLGFBQUtsSyxhQUFMLENBQW1Cb0UsSUFBbkIsQ0FBd0I7QUFBRTBGLFVBQUFBLEdBQUcsRUFBRUcsQ0FBQyxDQUFDRSxVQUFGLENBQWFMO0FBQXBCLFNBQXhCO0FBQ0E7O0FBRUQsVUFBSUcsQ0FBQyxDQUFDQyxJQUFGLElBQVMsR0FBYixFQUFrQjtBQUNqQixhQUFLbEssYUFBTCxDQUFtQm9FLElBQW5CLENBQXdCO0FBQUUwRixVQUFBQSxHQUFHLEVBQUVHLENBQUMsQ0FBQ0UsVUFBRixDQUFhTDtBQUFwQixTQUF4QjtBQUNBOztBQUNELFVBQUlHLENBQUMsQ0FBQ0MsSUFBRixJQUFTLEdBQWIsRUFBa0I7QUFDakIsYUFBS2xLLGFBQUwsQ0FBbUJvRSxJQUFuQixDQUF3QjtBQUFFMEYsVUFBQUEsR0FBRyxFQUFFRyxDQUFDLENBQUNHO0FBQVQsU0FBeEI7QUFDQTtBQUNEO0FBQ0QsR0EzbkJPO0FBNG5CUkMsRUFBQUEsZ0JBNW5CUSw0QkE0bkJTUCxHQTVuQlQsRUE0bkJjUSxHQTVuQmQsRUE0bkJtQjtBQUFBOztBQUMxQixRQUFJUixHQUFKLEVBQVM7QUFDUjlMLE1BQUFBLEVBQUUsQ0FBQ21JLFlBQUgsQ0FBZ0JDLFVBQWhCLENBQTJCMEQsR0FBM0IsRUFBZ0MsVUFBQ3hELEdBQUQsRUFBTUMsU0FBTixFQUFvQjtBQUNuRCxZQUFJQSxTQUFKLEVBQWU7QUFDZCxVQUFBLE1BQUksQ0FBQytELEdBQUQsQ0FBSixHQUFZL0QsU0FBWjtBQUNBO0FBQ0QsT0FKRDtBQUtBO0FBQ0QsR0Fwb0JPO0FBcW9CUm9ELEVBQUFBLGVBcm9CUSw2QkFxb0JVO0FBRWpCLFNBQUsxSixhQUFMLENBQW1CbUUsSUFBbkIsQ0FBd0I7QUFBRTBGLE1BQUFBLEdBQUcsRUFBRSxLQUFLMUUsSUFBTCxDQUFVVTtBQUFqQixLQUF4QixFQUZpQixDQUdqQjtBQUNBO0FBQ0E7OztBQUNBLFNBQUs3RixhQUFMLENBQW1CbUUsSUFBbkIsQ0FBd0I7QUFBRTBGLE1BQUFBLEdBQUcsRUFBRSxLQUFLMUUsSUFBTCxDQUFVWTtBQUFqQixLQUF4Qjs7QUFDQSxTQUFLL0YsYUFBTCxDQUFtQm1FLElBQW5CLENBQXdCO0FBQUUwRixNQUFBQSxHQUFHLEVBQUUsS0FBSzFFLElBQUwsQ0FBVWlCO0FBQWpCLEtBQXhCOztBQUNBLFFBQUksS0FBS2pCLElBQUwsQ0FBVW1GLFdBQWQsRUFBMkI7QUFDMUIsV0FBS3RLLGFBQUwsQ0FBbUJtRSxJQUFuQixDQUF3QjtBQUFFMEYsUUFBQUEsR0FBRyxFQUFFLEtBQUsxRSxJQUFMLENBQVVtRjtBQUFqQixPQUF4Qjs7QUFDQSxXQUFLaE0sVUFBTCxHQUFrQixLQUFLNkcsSUFBTCxDQUFVbUYsV0FBNUI7QUFDQTs7QUFDRCxRQUFJLEtBQUtuRixJQUFMLENBQVVvRixXQUFkLEVBQTJCO0FBQzFCLFdBQUt2SyxhQUFMLENBQW1CbUUsSUFBbkIsQ0FBd0I7QUFBRTBGLFFBQUFBLEdBQUcsRUFBRSxLQUFLMUUsSUFBTCxDQUFVb0Y7QUFBakIsT0FBeEI7O0FBQ0EsV0FBS3BNLFVBQUwsR0FBa0IsS0FBS2dILElBQUwsQ0FBVW9GLFdBQTVCO0FBQ0E7O0FBQ0QsU0FBS3ZLLGFBQUwsQ0FBbUJtRSxJQUFuQixDQUF3QjtBQUFFMEYsTUFBQUEsR0FBRyxFQUFFLEtBQUsxRSxJQUFMLENBQVVxRjtBQUFqQixLQUF4Qjs7QUFDQSxTQUFLeEssYUFBTCxDQUFtQm1FLElBQW5CLENBQXdCO0FBQUUwRixNQUFBQSxHQUFHLEVBQUUsS0FBSzFFLElBQUwsQ0FBVXNGO0FBQWpCLEtBQXhCOztBQUNBLFNBQUt6SyxhQUFMLENBQW1CbUUsSUFBbkIsQ0FBd0I7QUFBRTBGLE1BQUFBLEdBQUcsRUFBRSxLQUFLMUUsSUFBTCxDQUFVNkI7QUFBakIsS0FBeEI7O0FBR0EsMERBQWdCLEtBQUs3QixJQUFMLENBQVU0RSxjQUExQiwyQ0FBMEM7QUFBQSxVQUEvQkMsQ0FBK0I7O0FBQ3pDLFVBQUlBLENBQUMsQ0FBQ0MsSUFBRixJQUFTLEdBQWIsRUFBa0I7QUFDakIsYUFBS2pLLGFBQUwsQ0FBbUJtRSxJQUFuQixDQUF3QjtBQUFFMEYsVUFBQUEsR0FBRyxFQUFFRyxDQUFDLENBQUN6RztBQUFULFNBQXhCO0FBQ0E7QUFDRDtBQUNELEdBL3BCTztBQWdxQlJ5RixFQUFBQSxZQWhxQlEsMEJBZ3FCTztBQUNkLFFBQU0wQixXQUFXLEdBQUczTSxFQUFFLENBQUN3TCxJQUFILENBQVEscUJBQVIsQ0FBcEI7O0FBQ0EsUUFBSSxDQUFDLEtBQUtOLE9BQVYsRUFBbUI7QUFDbEJ5QixNQUFBQSxXQUFXLENBQUNoRyxNQUFaLEdBQXFCLEtBQXJCO0FBQ0E7QUFDQTs7QUFDRCxRQUFJLENBQUMsS0FBS2lHLFlBQVYsRUFBd0I7QUFDdkIsV0FBS0EsWUFBTCxHQUFvQixJQUFJNU0sRUFBRSxDQUFDUyxJQUFQLEVBQXBCO0FBQ0EsV0FBS21NLFlBQUwsQ0FBa0JDLE1BQWxCLEdBQTJCRixXQUEzQjtBQUNBLFdBQUtDLFlBQUwsQ0FBa0JoTSxJQUFsQixHQUF5QixjQUF6QjtBQUNBLFdBQUtnTSxZQUFMLENBQWtCRSxZQUFsQixDQUErQjlNLEVBQUUsQ0FBQytNLFFBQWxDO0FBQ0E7O0FBQ0QsUUFBTUMsSUFBSSxHQUFHLEtBQUtKLFlBQUwsQ0FBa0J4TCxZQUFsQixDQUErQnBCLEVBQUUsQ0FBQytNLFFBQWxDLENBQWI7QUFDQUMsSUFBQUEsSUFBSSxDQUFDQyxLQUFMO0FBQ0EsUUFBTUMsTUFBTSxHQUFHbE4sRUFBRSxDQUFDd0wsSUFBSCxDQUFRLDRCQUFSLENBQWY7QUFkYyxRQWVBMkIsS0FmQSxHQWV3QkQsTUFmeEIsQ0FlUGxLLEtBZk87QUFBQSxRQWVlb0ssS0FmZixHQWV3QkYsTUFmeEIsQ0FlT2pLLE1BZlA7QUFBQSxnQ0FnQlMsS0FBS2QsbUJBQUwsQ0FBeUJHLEdBaEJsQztBQUFBLFFBZ0JKK0ssRUFoQkkseUJBZ0JQdEMsQ0FoQk87QUFBQSxRQWdCR3VDLEVBaEJILHlCQWdCQXRDLENBaEJBO0FBaUJkLFFBQUlELENBQUMsR0FBR29DLEtBQUssR0FBR0UsRUFBUixHQUFhRixLQUFLLEdBQUcsQ0FBN0I7QUFDQSxRQUFJbkMsQ0FBQyxHQUFHb0MsS0FBSyxHQUFJQSxLQUFLLEdBQUdFLEVBQWpCLEdBQXVCRixLQUFLLEdBQUcsQ0FBL0IsR0FBbUMsRUFBM0M7QUFDQSxRQUFNRyxFQUFFLEdBQUcsSUFBSXZOLEVBQUUsQ0FBQ1MsSUFBUCxFQUFYO0FBRUF1TSxJQUFBQSxJQUFJLENBQUNRLFNBQUwsR0FBZXhOLEVBQUUsQ0FBQ3lOLEtBQUgsQ0FBUyxHQUFULEVBQWMsQ0FBZCxFQUFpQixDQUFqQixDQUFmO0FBQ0FULElBQUFBLElBQUksQ0FBQ1UsTUFBTCxDQUFZM0MsQ0FBWixFQUFlQyxDQUFmLEVBQWtCLEVBQWxCO0FBQ0FnQyxJQUFBQSxJQUFJLENBQUNXLElBQUw7QUFDQVgsSUFBQUEsSUFBSSxDQUFDWSxNQUFMO0FBQ0EsR0F6ckJPO0FBMHJCUkMsRUFBQUEsYUExckJRLDJCQTByQlE7QUFDZixRQUFNbEIsV0FBVyxHQUFHM00sRUFBRSxDQUFDd0wsSUFBSCxDQUFRLHFCQUFSLENBQXBCOztBQUNBLFFBQUksQ0FBQyxLQUFLTixPQUFWLEVBQW1CO0FBQ2xCeUIsTUFBQUEsV0FBVyxDQUFDaEcsTUFBWixHQUFxQixLQUFyQjtBQUNBO0FBQ0E7O0FBQ0RnRyxJQUFBQSxXQUFXLENBQUNoRyxNQUFaLEdBQXFCLElBQXJCO0FBQ0FwQyxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxxQkFBWjtBQUNBLFFBQU0wSSxNQUFNLEdBQUdsTixFQUFFLENBQUN3TCxJQUFILENBQVEsNEJBQVIsQ0FBZjtBQUNBLFFBQU1zQyxNQUFNLEdBQUc5TixFQUFFLENBQUN3TCxJQUFILENBQVEsUUFBUixDQUFmO0FBVGUsUUFVRDJCLEtBVkMsR0FVdUJELE1BVnZCLENBVVJsSyxLQVZRO0FBQUEsUUFVY29LLEtBVmQsR0FVdUJGLE1BVnZCLENBVU1qSyxNQVZOO0FBQUEsZ0NBV21CLEtBQUttRSxJQUFMLENBQVUyRSxNQUFWLENBQWlCNUYsSUFYcEM7QUFBQSxRQVdENEgsR0FYQyx5QkFXUi9LLEtBWFE7QUFBQSxRQVdZZ0wsR0FYWix5QkFXSS9LLE1BWEo7QUFZZixRQUFNZ0wsTUFBTSxHQUFHRixHQUFHLEdBQUdaLEtBQXJCO0FBQ0EsUUFBTWUsTUFBTSxHQUFHRixHQUFHLEdBQUdaLEtBQXJCO0FBQ0EsUUFBSWUsS0FBSyxHQUFHLEtBQVo7QUFDQSxTQUFLL0csSUFBTCxDQUFVNEUsY0FBVixDQUF5QnRELE9BQXpCLENBQWlDLFVBQUEwRixJQUFJLEVBQUk7QUFFeEMsVUFBSUQsS0FBSixFQUFXLENBQ1Y7QUFDQTs7QUFDRCxVQUFJQyxJQUFJLENBQUNsQyxJQUFMLElBQWEsR0FBakIsRUFBc0I7QUFDckI7QUFDQTs7QUFDRGlDLE1BQUFBLEtBQUssR0FBRyxJQUFSO0FBQ0EsVUFBTUUsRUFBRSxHQUFHLElBQUlyTyxFQUFFLENBQUNTLElBQVAsRUFBWDtBQUNBLFVBQU02TixPQUFPLEdBQUcsSUFBSXRPLEVBQUUsQ0FBQ1MsSUFBUCxFQUFoQjtBQUNBNk4sTUFBQUEsT0FBTyxDQUFDekIsTUFBUixHQUFpQndCLEVBQWpCO0FBQ0EsVUFBTUUsR0FBRyxHQUFHRCxPQUFPLENBQUN4QixZQUFSLENBQXFCOU0sRUFBRSxDQUFDd08sS0FBeEIsQ0FBWjtBQUNBRixNQUFBQSxPQUFPLENBQUNiLEtBQVIsR0FBZ0J6TixFQUFFLENBQUN5TixLQUFILENBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYSxDQUFiLENBQWhCO0FBQ0FjLE1BQUFBLEdBQUcsQ0FBQ0UsTUFBSixHQUFhTCxJQUFJLENBQUNNLFdBQUwsQ0FBaUI5TixJQUFqQixDQUFzQitOLFNBQXRCLENBQWdDLENBQWhDLEVBQW1DUCxJQUFJLENBQUNNLFdBQUwsQ0FBaUI5TixJQUFqQixDQUFzQjZHLE1BQXRCLEdBQStCLENBQWxFLENBQWI7QUFDQTRHLE1BQUFBLEVBQUUsQ0FBQ3pOLElBQUgsR0FBVTJOLEdBQUcsQ0FBQ0UsTUFBZDtBQUNBSixNQUFBQSxFQUFFLENBQUN4QixNQUFILEdBQVlGLFdBQVo7QUFDQTBCLE1BQUFBLEVBQUUsQ0FBQ3JMLEtBQUgsR0FBV21LLEtBQVg7QUFDQWtCLE1BQUFBLEVBQUUsQ0FBQ3BMLE1BQUgsR0FBWW1LLEtBQVo7QUFFQSxVQUFNSixJQUFJLEdBQUdxQixFQUFFLENBQUN2QixZQUFILENBQWdCOU0sRUFBRSxDQUFDK00sUUFBbkIsQ0FBYjtBQUNBLFVBQU01QixDQUFDLEdBQUcscUJBQVUsQ0FBVixFQUFZLEdBQVosQ0FBVjtBQUNBLFVBQU15RCxDQUFDLEdBQUcscUJBQVUsQ0FBVixFQUFZLEdBQVosQ0FBVjtBQUNBLFVBQU1DLENBQUMsR0FBRyxxQkFBVSxDQUFWLEVBQVksR0FBWixDQUFWO0FBQ0E3QixNQUFBQSxJQUFJLENBQUNRLFNBQUwsR0FBZXhOLEVBQUUsQ0FBQ3lOLEtBQUgsQ0FBU3RDLENBQVQsRUFBWXlELENBQVosRUFBZUMsQ0FBZixFQUFrQixHQUFsQixDQUFmO0FBeEJ3Qyx1QkF5Qk9ULElBQUksQ0FBQ2pJLElBekJaO0FBQUEsVUF5QjlCMkksRUF6QjhCLGNBeUJqQy9ELENBekJpQztBQUFBLFVBeUJ2QmdFLEVBekJ1QixjQXlCMUIvRCxDQXpCMEI7QUFBQSxVQXlCWmdFLEVBekJZLGNBeUJuQmhNLEtBekJtQjtBQUFBLFVBeUJBaU0sRUF6QkEsY0F5QlJoTSxNQXpCUTtBQTBCeEMsVUFBSW1JLENBQUMsR0FBSTRELEVBQUUsR0FBR2pCLEdBQU4sR0FBYVosS0FBckI7QUFDQSxVQUFJOUIsQ0FBQyxHQUFJNEQsRUFBRSxHQUFHakIsR0FBTixHQUFhWixLQUFyQjtBQUNBLFVBQUlyQyxDQUFDLEdBQUkrRCxFQUFFLEdBQUdmLEdBQU4sR0FBYVosS0FBYixHQUFxQkEsS0FBSyxHQUFHLENBQXJDO0FBQ0EsVUFBSW5DLENBQUMsR0FBR29DLEtBQUssR0FBSzJCLEVBQUUsR0FBR2YsR0FBTixHQUFhWixLQUF0QixHQUErQi9CLENBQS9CLEdBQW1DK0IsS0FBSyxHQUFHLENBQW5ELENBN0J3QyxDQThCeEM7QUFDQTtBQUNBO0FBQ0E7QUFDUztBQUNUO0FBQ0E7O0FBQ0FrQixNQUFBQSxPQUFPLENBQUN2RCxDQUFSLEdBQVlBLENBQVo7QUFDQXVELE1BQUFBLE9BQU8sQ0FBQ3RELENBQVIsR0FBWUEsQ0FBQyxHQUFHSyxDQUFoQixDQXRDd0MsQ0F1Q3hDO0FBQ0E7QUFDQTs7QUFDQTlHLE1BQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLFNBQVosRUFBdUI0SixJQUFJLENBQUNNLFdBQUwsQ0FBaUI5TixJQUF4QyxFQUE4Q21LLENBQTlDLEVBQWlEQyxDQUFqRCxFQUFvREksQ0FBcEQsRUFBdURDLENBQXZEO0FBQ0EyQixNQUFBQSxJQUFJLENBQUNrQyxRQUFMLENBQWNuRSxDQUFkLEVBQWlCQyxDQUFqQixFQUFvQkksQ0FBcEIsRUFBdUJDLENBQXZCO0FBQ0EyQixNQUFBQSxJQUFJLENBQUNZLE1BQUw7QUFFQSxLQTlDRDtBQWdEQSxHQXp2Qk87QUEwdkJSaEMsRUFBQUEsZUExdkJRLDZCQTB2QlUsQ0FFakIsQ0E1dkJPO0FBOHZCUkMsRUFBQUEsT0E5dkJRLHFCQTh2QkU7QUFBQTs7QUFFVCxRQUFNc0QsVUFBVSxHQUFHLEtBQUtuTixhQUFMLENBQW1Cb04sTUFBbkIsQ0FBMEIsS0FBS25OLGFBQS9CLEVBQThDbU4sTUFBOUMsQ0FBcUQsS0FBS2xOLGFBQTFELENBQW5CLENBRlMsQ0FHVDs7O0FBQ0FsQyxJQUFBQSxFQUFFLENBQUNtSSxZQUFILENBQWdCa0gsT0FBaEIsQ0FBd0JGLFVBQXhCLEVBQW9DLElBQXBDLEVBQTBDLFVBQUM3TCxDQUFELEVBQUk2RixDQUFKLEVBQU9tRyxJQUFQLEVBQWdCLENBQ3pEO0FBQ0EsS0FGRCxFQUVHLFVBQUNoSCxHQUFELEVBQU1sQixJQUFOLEVBQWU7QUFDakI7QUFDQSxVQUFNOEYsTUFBTSxHQUFHbE4sRUFBRSxDQUFDd0wsSUFBSCw4QkFBZjtBQUNBLFVBQU0rRCxRQUFRLEdBQUd2UCxFQUFFLENBQUN3TCxJQUFILGlDQUFqQjtBQUNBK0QsTUFBQUEsUUFBUSxDQUFDNUksTUFBVCxHQUFrQixLQUFsQjtBQUNBLFVBQU02SSxRQUFRLEdBQUcsTUFBSSxDQUFDcEksSUFBTCxDQUFVMkUsTUFBVixDQUFpQjVGLElBQWxDO0FBQ0EscUNBQW9CLE1BQUksQ0FBQ2lCLElBQUwsQ0FBVTJFLE1BQVYsQ0FBaUJELEdBQXJDLEVBQTBDLFVBQUMyRCxFQUFELEVBQVE7QUFDakQsWUFBTUMsRUFBRSxHQUFHSCxRQUFRLENBQUNuTyxZQUFULENBQXNCcEIsRUFBRSxDQUFDMlAsTUFBekIsQ0FBWDtBQUNBRCxRQUFBQSxFQUFFLENBQUNFLFdBQUgsR0FBaUJILEVBQWpCO0FBQ0FGLFFBQUFBLFFBQVEsQ0FBQzVJLE1BQVQsR0FBa0IsSUFBbEI7QUFFQSxZQUFJa0osT0FBTyxHQUFHLENBQWQ7QUFDQSxZQUFJQyxhQUFhLEdBQUcsQ0FBcEI7O0FBQ0EsOERBQW1CLE1BQUksQ0FBQzFJLElBQUwsQ0FBVTRFLGNBQTdCLDJDQUE2QztBQUFBLGNBQW5DckQsS0FBbUM7O0FBQzVDLGNBQUlBLEtBQUssQ0FBQ3VELElBQU4sSUFBYyxHQUFkLElBQXFCdkQsS0FBSyxDQUFDdUQsSUFBTixJQUFjLEdBQXZDLEVBQTRDO0FBQzNDMkQsWUFBQUEsT0FBTztBQUNQO0FBQ0Q7O0FBQ0QsOERBQW1CLE1BQUksQ0FBQ3pJLElBQUwsQ0FBVTRFLGNBQTdCLDJDQUE2QztBQUFBLGNBQW5DckQsTUFBbUM7O0FBRzVDLGNBQUlBLE1BQUssQ0FBQ3VELElBQU4sSUFBYyxHQUFsQixFQUF1QjtBQUFBO0FBQ3RCLGtCQUFNNkQsRUFBRSxHQUFHLENBQUU3QyxNQUFNLENBQUNsSyxLQUFQLEdBQWdCMkYsTUFBSyxDQUFDcUgsUUFBdkIsR0FBb0M5QyxNQUFNLENBQUNqSyxNQUFQLEdBQWlCMEYsTUFBSyxDQUFDc0gsUUFBNUQsSUFBeUUsQ0FBcEY7QUFDQSxrQkFBTWhQLElBQUksR0FBRyxJQUFJakIsRUFBRSxDQUFDUyxJQUFQLEVBQWI7QUFDQVEsY0FBQUEsSUFBSSxDQUFDNEwsTUFBTCxHQUFjSyxNQUFkO0FBQ0Esa0JBQU1nRCxHQUFHLEdBQUdqUCxJQUFJLENBQUM2TCxZQUFMLENBQWtCOU0sRUFBRSxDQUFDMlAsTUFBckIsQ0FBWjtBQUNBLDZDQUFvQmhILE1BQUssQ0FBQ3lELE9BQTFCLEVBQW1DLFVBQUNxRCxFQUFELEVBQVE7QUFDM0NTLGdCQUFBQSxHQUFHLENBQUNOLFdBQUosR0FBa0JILEVBQWxCO0FBQ0F4TyxnQkFBQUEsSUFBSSxDQUFDa1AsS0FBTCxHQUFhSixFQUFiO0FBQ0MsZUFIRDtBQUxzQjtBQVV0Qjs7QUFDRCxjQUFJcEgsTUFBSyxDQUFDdUQsSUFBTixJQUFjLEdBQWQsSUFBcUJ2RCxNQUFLLENBQUN1RCxJQUFOLElBQWMsR0FBdkMsRUFBNEM7QUFBQTtBQUUzQyxrQkFBTWtFLENBQUMsR0FBRyxJQUFJcFEsRUFBRSxDQUFDUyxJQUFQLEVBQVY7QUFDQTJQLGNBQUFBLENBQUMsQ0FBQ0QsS0FBRixHQUFVLElBQVY7QUFDQUMsY0FBQUEsQ0FBQyxDQUFDdkQsTUFBRixHQUFXSyxNQUFYO0FBQ0FrRCxjQUFBQSxDQUFDLENBQUN6SixNQUFGLEdBQVcsS0FBWDs7QUFFQSxrQkFBSWdDLE1BQUssQ0FBQzBILFFBQU4sSUFBa0IsT0FBdEIsRUFBK0I7QUFFOUIsb0JBQU0vRyxRQUFRLEdBQUc4RyxDQUFDLENBQUN0RCxZQUFGLENBQWV2RCxFQUFFLENBQUNDLFFBQWxCLENBQWpCO0FBQ0E0RyxnQkFBQUEsQ0FBQyxDQUFDL0csT0FBRixHQUFZLElBQVo7QUFFQSxxQ0FBVUMsUUFBVixFQUFvQlgsTUFBSyxDQUFDd0QsVUFBTixDQUFpQnZMLElBQXJDLEVBQTJDO0FBQzFDMFAsa0JBQUFBLEdBQUcsRUFBRTNILE1BQUssQ0FBQ3dELFVBQU4sQ0FBaUJMLEdBRG9CO0FBRTFDeUUsa0JBQUFBLEtBQUssRUFBRTVILE1BQUssQ0FBQzZILFdBQU4sQ0FBa0IxRSxHQUZpQjtBQUcxQzJFLGtCQUFBQSxHQUFHLEVBQUU5SCxNQUFLLENBQUMrRixXQUFOLENBQWtCNUM7QUFIbUIsaUJBQTNDLEVBSUc0RSxJQUpILENBSVEsZ0JBQXFCO0FBQUEsc0JBQW5CMU4sS0FBbUIsUUFBbkJBLEtBQW1CO0FBQUEsc0JBQVpDLE1BQVksUUFBWkEsTUFBWTtBQUM1Qm1OLGtCQUFBQSxDQUFDLENBQUNwTixLQUFGLEdBQVVBLEtBQVY7QUFDQW9OLGtCQUFBQSxDQUFDLENBQUNuTixNQUFGLEdBQVdBLE1BQVg7QUFDQW1OLGtCQUFBQSxDQUFDLENBQUN6SixNQUFGLEdBQVcsSUFBWCxDQUg0QixDQUk1QjtBQUVBO0FBQ0E7O0FBRUEsa0JBQUEsTUFBSSxDQUFDdEUsa0JBQUwsQ0FBd0IrRCxJQUF4QixDQUE2QmdLLENBQTdCOztBQUNBTixrQkFBQUEsYUFBYTtBQUNidkwsa0JBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZc0wsYUFBWixFQUEyQkQsT0FBM0I7O0FBQ0Esc0JBQUlDLGFBQWEsSUFBSUQsT0FBckIsRUFBOEI7QUFDN0Isb0JBQUEsTUFBSSxDQUFDYyxPQUFMO0FBQ0E7QUFDRCxpQkFuQkQsV0FtQlMsWUFBTTtBQUNkYixrQkFBQUEsYUFBYTtBQUNidkwsa0JBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZc0wsYUFBWixFQUEyQkQsT0FBM0I7O0FBQ0Esc0JBQUlDLGFBQWEsSUFBSUQsT0FBckIsRUFBOEI7QUFDN0Isb0JBQUEsTUFBSSxDQUFDYyxPQUFMO0FBQ0E7QUFDRCxpQkF6QkQ7QUEyQkEsZUFoQ0QsTUFnQ087QUFFTixvQkFBTUMsRUFBRSxHQUFHUixDQUFDLENBQUN0RCxZQUFGLENBQWV6TCxXQUFXLENBQUNDLGVBQTNCLENBQVg7QUFFQSwyQ0FBZ0JzUCxFQUFoQixFQUFvQjtBQUNuQk4sa0JBQUFBLEdBQUcsRUFBRTNILE1BQUssQ0FBQ3dELFVBQU4sQ0FBaUJMLEdBREg7QUFFbkJ5RSxrQkFBQUEsS0FBSyxFQUFFNUgsTUFBSyxDQUFDNkgsV0FBTixDQUFrQjFFLEdBRk47QUFHbkIyRSxrQkFBQUEsR0FBRyxFQUFFOUgsTUFBSyxDQUFDK0YsV0FBTixDQUFrQjVDO0FBSEosaUJBQXBCLEVBSUc0RSxJQUpILENBSVEsaUJBQXFCO0FBQUEsc0JBQW5CMU4sS0FBbUIsU0FBbkJBLEtBQW1CO0FBQUEsc0JBQVpDLE1BQVksU0FBWkEsTUFBWTtBQUM1Qm1OLGtCQUFBQSxDQUFDLENBQUNwTixLQUFGLEdBQVVBLEtBQVY7QUFDQW9OLGtCQUFBQSxDQUFDLENBQUNuTixNQUFGLEdBQVdBLE1BQVg7QUFDQW1OLGtCQUFBQSxDQUFDLENBQUN6SixNQUFGLEdBQVcsSUFBWDtBQUNBaUssa0JBQUFBLEVBQUUsQ0FBQ3BQLGFBQUgsQ0FBaUIsTUFBakIsRUFBeUIsQ0FBekI7O0FBQ0Esa0JBQUEsTUFBSSxDQUFDYSxrQkFBTCxDQUF3QitELElBQXhCLENBQTZCZ0ssQ0FBN0I7O0FBQ0FOLGtCQUFBQSxhQUFhO0FBQ2J2TCxrQkFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVlzTCxhQUFaLEVBQTJCRCxPQUEzQjs7QUFDQSxzQkFBSUMsYUFBYSxJQUFJRCxPQUFyQixFQUE4QjtBQUM3QixvQkFBQSxNQUFJLENBQUNjLE9BQUw7QUFDQTtBQUNELGlCQWZELFdBZVMsWUFBTTtBQUNkYixrQkFBQUEsYUFBYTtBQUNidkwsa0JBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZc0wsYUFBWixFQUEyQkQsT0FBM0I7O0FBQ0Esc0JBQUlDLGFBQWEsSUFBSUQsT0FBckIsRUFBOEI7QUFDN0Isb0JBQUEsTUFBSSxDQUFDYyxPQUFMO0FBQ0E7QUFDRCxpQkFyQkQ7QUFzQkE7O0FBSUQsa0JBQUloSSxNQUFLLENBQUN1RCxJQUFOLElBQWMsR0FBbEIsRUFBdUI7QUFDdEIsb0JBQU0yRSxRQUFRLEdBQUc7QUFDaEI1UCxrQkFBQUEsSUFBSSxFQUFFbVAsQ0FEVTtBQUVoQjVLLGtCQUFBQSxTQUFTLEVBQUVtRCxNQUFLLENBQUNuRCxTQUZEO0FBR2hCVyxrQkFBQUEsSUFBSSxFQUFFO0FBQ0w0RSxvQkFBQUEsQ0FBQyxFQUFFcEMsTUFBSyxDQUFDeEMsSUFBTixDQUFXNEUsQ0FBWCxHQUFleUUsUUFBUSxDQUFDeE0sS0FEdEI7QUFFTGdJLG9CQUFBQSxDQUFDLEVBQUVyQyxNQUFLLENBQUN4QyxJQUFOLENBQVc2RSxDQUFYLEdBQWV3RSxRQUFRLENBQUN2TSxNQUZ0QjtBQUdMRCxvQkFBQUEsS0FBSyxFQUFFMkYsTUFBSyxDQUFDeEMsSUFBTixDQUFXbkQsS0FBWCxHQUFtQndNLFFBQVEsQ0FBQ3hNLEtBSDlCO0FBSUxDLG9CQUFBQSxNQUFNLEVBQUUwRixNQUFLLENBQUN4QyxJQUFOLENBQVdsRCxNQUFYLEdBQW9CdU0sUUFBUSxDQUFDdk07QUFKaEM7QUFIVSxpQkFBakI7O0FBVUEsZ0JBQUEsTUFBSSxDQUFDL0IscUJBQUwsQ0FBMkJrRixJQUEzQixDQUFnQ3lLLFFBQWhDOztBQUVBLG9CQUFJbEksTUFBSyxDQUFDbUksU0FBVixFQUFxQjtBQUNwQixzQkFBTTFILENBQUMsR0FBRyxDQUFDVCxNQUFLLENBQUNtSSxTQUFQLEdBQW1CLElBQTdCOztBQUNBLHNCQUFHLENBQUNDLEtBQUssQ0FBQzNILENBQUQsQ0FBVCxFQUFjO0FBQ2Isb0JBQUEsTUFBSSxDQUFDaEgsY0FBTCxDQUFvQmdFLElBQXBCLENBQXlCO0FBQ3hCbkYsc0JBQUFBLElBQUksRUFBRW1QLENBRGtCO0FBRXhCeEssc0JBQUFBLEtBQUssRUFBRXdEO0FBRmlCLHFCQUF6QjtBQUlBO0FBQ0Q7QUFDRDtBQTNGMEM7QUE0RjNDO0FBQ0Q7QUFDRCxPQXhIRCxFQU5pQixDQWdJakI7O0FBQ0E3RSxNQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSx5QkFBWixFQWpJaUIsQ0FtSXBCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUd4RSxNQUFBQSxFQUFFLENBQUNnUixLQUFILENBQVNDLGVBQVQsQ0FBeUIsS0FBekI7QUFDQSxLQXJKRDtBQXNKQSxHQXg1Qk87QUEyNUJSTixFQUFBQSxPQTM1QlEscUJBMjVCRTtBQUNULFFBQUk3TyxNQUFNLElBQUlBLE1BQU0sQ0FBQyxLQUFELENBQWhCLElBQTJCQSxNQUFNLENBQUMsS0FBRCxDQUFOLENBQWNvUCxtQkFBN0MsRUFBa0U7QUFDakVwUCxNQUFBQSxNQUFNLENBQUMsS0FBRCxDQUFOLENBQWNvUCxtQkFBZDtBQUNBOztBQUNELFNBQUtDLFFBQUwsR0FKUyxDQUtUO0FBQ0E7O0FBQ0EsU0FBS0MsTUFBTCxHQVBTLENBUVQ7O0FBQ0EsU0FBS3ZELGFBQUw7QUFDQSxTQUFLNUosa0JBQUw7QUFDQSxHQXQ2Qk87QUF3NkJSb04sRUFBQUEsU0FBUyxFQUFFLElBeDZCSDtBQXk2QlJGLEVBQUFBLFFBejZCUSxzQkF5NkJHO0FBQ1Y7QUFDQSxTQUFLRSxTQUFMLEdBQWlCLElBQWpCO0FBQ0EsR0E1NkJPO0FBODZCUjtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUFELEVBQUFBLE1BbjhCUSxvQkFtOEJDO0FBQ1IsUUFBTUUsTUFBTSxHQUFHdFIsRUFBRSxDQUFDd0wsSUFBSCxDQUFRLFdBQVIsQ0FBZjtBQUNBOEYsSUFBQUEsTUFBTSxDQUFDbkIsS0FBUCxHQUFlLEtBQUt4TixZQUFwQjtBQUNBNEIsSUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksbUJBQVosRUFBaUMsS0FBSzdCLFlBQXRDO0FBQ0EsR0F2OEJPOztBQTQ4QlI7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWFDO0FBcUJBakIsRUFBQUEsV0FBVyxFQUFFLElBaGhDTDtBQWloQ1JDLEVBQUFBLFlBQVksRUFBRSxJQWpoQ047QUFraENSO0FBQ0E0UCxFQUFBQSxTQW5oQ1EsdUJBbWhDSTtBQUNYaE4sSUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksZ0JBQVo7O0FBQ0EsU0FBSzlDLFdBQUwsQ0FBaUJnSCxPQUFqQixDQUF5QixVQUFBOUQsRUFBRSxFQUFJO0FBQzlCNE0sTUFBQUEsWUFBWSxDQUFDNU0sRUFBRCxDQUFaO0FBQ0EsS0FGRDs7QUFHQSxTQUFLakQsWUFBTCxDQUFrQitHLE9BQWxCLENBQTBCLFVBQUE5RCxFQUFFLEVBQUk7QUFDL0J5QixNQUFBQSxhQUFhLENBQUN6QixFQUFELENBQWI7QUFDQSxLQUZEOztBQUdBLFNBQUtvRixrQkFBTCxDQUF3QnlILFNBQXhCO0FBQ0EsU0FBS3pILGtCQUFMLENBQXdCMEgsSUFBeEI7O0FBQ0EsUUFBRzVQLE1BQU0sQ0FBQzZGLFVBQVAsSUFBcUI3RixNQUFNLENBQUM2RixVQUFQLENBQWtCcUIsbUJBQTFDLEVBQStEO0FBQzlELFVBQUksS0FBS25CLHNCQUFULEVBQWlDO0FBQ2hDL0YsUUFBQUEsTUFBTSxDQUFDNkYsVUFBUCxDQUFrQnFCLG1CQUFsQjtBQUNBO0FBQ0Q7QUFDRDtBQWxpQ08sQ0FBVCIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb25Ib21ld29ya0ZpbmlzaCwgUmFuZG9tSW50LCBwbGF5QXVkaW9CeVVybCwgbG9hZERyYWdvbkJvbmVzLCBnZXRTcHJpdGVGcmltZUJ5VXJsLCBsb2FkU3BpbmUgfSBmcm9tIFwiLi4vc2NyaXB0L3V0aWxcIjtcbmltcG9ydCB7IGRlZmF1bHREYXRhIH0gZnJvbSBcIi4uL3NjcmlwdC9kZWZhdWx0RGF0YVwiO1xuaW1wb3J0IHsgYXNzaWduLCBjcmVhdGVNYWNoaW5lLCBpbnRlcnByZXQsIGFjdGlvbnMsIGZvcndhcmRUbywgbWF0Y2hlc1N0YXRlICB9IGZyb20gXCIuLi9zY3JpcHQveHN0YXRlXCI7XG5jb25zdCB7IHB1cmUgLCBzZW5kLCByYWlzZSwgc2VuZFBhcmVudCAgfSA9IGFjdGlvbnM7XG5cblxuY2MuQ2xhc3Moe1xuXG5cdGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcblxuXHRwcm9wZXJ0aWVzOiB7XG5cdFx0LyphbnQ6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0YXBwbGU6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0YmlyZDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRjYXI6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0Y2F0OiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGNvdzoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRkdWNrOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGVnZzoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRmYXJtZXI6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0ZmlzaDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRnaXJsOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGhlbjoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRob3VzZToge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSwqL1xuXHRcdHJpZ2h0QXVkaW86IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5BdWRpb0NsaXAsXG5cdFx0fSxcblx0XHR3cm9uZ0F1ZGlvOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuQXVkaW9DbGlwLFxuXHRcdH0sXG5cdFx0bG9nb0NhdDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGVcblx0XHR9XG5cblx0fSxcblxuXHRwbGF5QW5pKGlkeCwgbmFtZSwgb3B0aW9ucykge1xuXHRcdGNvbnN0IHRpbWVzID0gKG9wdGlvbnMgJiYgb3B0aW9ucy50aW1lcykgfHwgMTtcblx0XHRjb25zdCBjYiA9IChvcHRpb25zICYmIG9wdGlvbnMuY2FsbGJhY2spIHx8IG51bGw7XG5cdFx0Ly8gY29uc3QgY2F0ID0gY2MuZmluZChgQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmQvJHtub2RlfWApO1xuXHRcdGNvbnN0IG5vZGUgPSB0aGlzLl9maWd1cmVQb2ludFJlY3RBcnJheVtpZHhdLm5vZGVcblx0XHR2YXIgZHJhZ29uRGlzcGxheSA9IG5vZGUuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cblx0XHRjb25zdCBzdGF0ZSA9IGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbihuYW1lLCB0aW1lcyk7XG5cdFx0Ly8gZHJhZ29uRGlzcGxheS5hZGRFdmVudExpc3RlbmVyKGRyYWdvbkJvbmVzLkV2ZW50T2JqZWN0LkNPTVBMRVRFLCAoZXZlbnQpID0+IHtcblx0XHQvLyBcdC8vVE9ETyDov5nph4zlhpnop6blj5Hkuovku7Zcblx0XHQvLyBcdC8vZXZlbnQubmFtZeS4uuS6i+S7tuWQjeensFxuXHRcdC8vIFx0Y29uc29sZS5sb2coZXZlbnQubmFtZSlcblx0XHQvLyB9LCB0aGlzKTtcblx0XHQvLyBhbmltYXRpb25EaXNwbGF5LmFkZEV2ZW50TGlzdGVuZXIoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIGNvbXBsZXRlQ2FsbGJhY2spO1xuXHRcdHJldHVybiBzdGF0ZTtcblx0fSxcblx0Ly8g55Sf5ZG95ZGo5pyfIG9uTG9hZFxuXHRvbkxvYWQoKSB7XG5cdFx0dGhpcy5fdGltZW91dElkcyA9IFtdO1xuXHRcdHRoaXMuX2ludGVydmFsSWRzID0gW107XG5cdFx0dGhpcy5pbml0U2NlbmVEYXRhKCk7XG5cdFx0dGhpcy5pbml0U2l6ZSgpO1xuXHRcdHdpbmRvdy5jY2MgPSB0aGlzO1xuXHR9LFxuXG5cdF9pbWFnZVJlc0xpc3Q6IG51bGwsXG5cdF9hdWRpb1Jlc0xpc3Q6IG51bGwsXG5cdF9hbmltYVJlc0xpc3Q6IG51bGwsXG5cblx0X2xhc3RGaW5nZXJQb3NpdGlvbjogbnVsbCxcblxuXHRfaGludHNOb2RlTGlzdCA6IG51bGwsXG5cdF9maWd1cmVQb2ludFJlY3RBcnJheTogbnVsbCxcblxuXHRfYWxsQW5pbWF0aW9uTm9kZXM6IG51bGwsXG5cblx0aW5pdFNjZW5lRGF0YSgpIHtcblx0XHR0aGlzLl9pbWFnZVJlc0xpc3QgPSBbXTtcblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QgPSBbXTtcblx0XHR0aGlzLl9hbmltYVJlc0xpc3QgPSBbXTtcblxuXHRcdHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzID0gW107XG5cdFx0dGhpcy5faGludHNOb2RlTGlzdCA9IFtdO1xuXHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbj0ge1xuXHRcdFx0cG9zOiBudWxsLFxuXHRcdFx0ZGlydHk6IGZhbHNlXG5cdFx0fTtcblx0XHR0aGlzLl9maWd1cmVQb2ludFJlY3RBcnJheSA9IFtdO1xuXHR9LFxuXG5cdF9kZXNpZ25TaXplOiBudWxsLCAgLy8g6K6+6K6h5YiG6L6o546HXG5cdF9mcmFtZVNpemU6IG51bGwsICAvLyDlsY/luZXliIbovqjnjodcblx0X21hcFNjYWxlTWluOiBudWxsLCAgLy8g5Zy65pmv5Lit5bi455So57yp5pS+77yI5Y+W5aSn5YC877yJXG5cdF9tYXBTY2FsZU1heDogbnVsbCwgIC8vIOWcuuaZr+S4reW4uOeUqOe8qeaUvu+8iOWPluWwj+WAvO+8iVxuXHRfY29jb3NTY2FsZTogbnVsbCwgIC8vIGNvY29zIOiHque8qeaUviDvvIjovoPlsJHnlKjliLDvvIlcblx0XG5cdGluaXRTaXplKCkge1xuXHRcdC8vIOazqOaEj2NjLndpblNpemXlj6rmnInlnKjpgILphY3lkI4o5L+u5pS5Zml0SGVpZ2h0L2ZpdFdpZHRo5ZCOKeaJjeiDveiOt+WPluWIsOato+ehrueahOWAvCzlm6DmraTkvb/nlKhjYy5nZXRGcmFtZVNpemUoKeadpeiOt+WPluWIneWni+eahOWxj+W5leWkp+Wwj1xuXHRcdGxldCBzY3JlZW5fc2l6ZSA9IGNjLnZpZXcuZ2V0RnJhbWVTaXplKCkud2lkdGggLyBjYy52aWV3LmdldEZyYW1lU2l6ZSgpLmhlaWdodFxuXHRcdGxldCBkZXNpZ25fc2l6ZSA9IGNjLkNhbnZhcy5pbnN0YW5jZS5kZXNpZ25SZXNvbHV0aW9uLndpZHRoIC8gY2MuQ2FudmFzLmluc3RhbmNlLmRlc2lnblJlc29sdXRpb24uaGVpZ2h0XG5cdFx0bGV0IGYgPSBzY3JlZW5fc2l6ZSA+PSBkZXNpZ25fc2l6ZVxuXHRcdGNjLkNhbnZhcy5pbnN0YW5jZS5maXRIZWlnaHQgPSBmXG5cdFx0Y2MuQ2FudmFzLmluc3RhbmNlLmZpdFdpZHRoID0gIWZcblxuXHRcdGNvbnN0IGZyYW1lU2l6ZSA9IGNjLnZpZXcuZ2V0RnJhbWVTaXplKCk7XG5cdFx0dGhpcy5fZnJhbWVTaXplID0gZnJhbWVTaXplO1xuXG5cdFx0dGhpcy5fZGVzaWduU2l6ZSA9IGNjLnZpZXcuZ2V0RGVzaWduUmVzb2x1dGlvblNpemUoKTtcblxuXHRcdGxldCBzeCA9IGNjLndpblNpemUud2lkdGggLyBmcmFtZVNpemUud2lkdGg7XG5cdFx0bGV0IHN5ID0gY2Mud2luU2l6ZS5oZWlnaHQgLyBmcmFtZVNpemUuaGVpZ2h0O1xuXHRcdHRoaXMuX2NvY29zU2NhbGUgPSBNYXRoLm1pbihzeCwgc3kpO1xuXG5cdFx0c3ggPSBmcmFtZVNpemUud2lkdGggLyB0aGlzLl9kZXNpZ25TaXplLndpZHRoO1xuXHRcdHN5ID0gZnJhbWVTaXplLmhlaWdodCAvIHRoaXMuX2Rlc2lnblNpemUuaGVpZ2h0O1xuXHRcdHRoaXMuX21hcFNjYWxlTWluID0gTWF0aC5taW4oc3gsIHN5KSAqIHRoaXMuX2NvY29zU2NhbGU7XG5cdFx0dGhpcy5fbWFwU2NhbGVNYXggPSBNYXRoLm1heChzeCwgc3kpICogdGhpcy5fY29jb3NTY2FsZTtcblx0fSxcblx0Y3JlYXRlU3RhdGVNYWNoaW5lKCl7XG5cdFx0Y29uc3QgY2hlY2sgPSAgW1xuXHRcdFx0XHRcdFx0XHR7IHRhcmdldDogJyNnYW1lLmVuZCcsIGNvbmQ6IChjdHgsIGV2dCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbYW5zd2VyIE5FWFRdIGNoZWNrIGlmIGVuZCcsIGN0eC5xdWVzdGlvbkluZGV4ID49IGN0eC5xdWVzdGlvbnNDb3VudCAtIDEpO1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBjdHgucXVlc3Rpb25JbmRleCA+PSBjdHgucXVlc3Rpb25zQ291bnQgLTFcblxuXHRcdFx0XHRcdFx0XHR9IH0sXG4gICAgICAgIFx0XHRcdFx0XHR7IHRhcmdldDogJ2hpbnQnIH0gLy8gcmVlbnRlciAnaGludCcgc3RhdGVcblx0XHRcdFx0XHRcdF1cblx0XHRjb25zdCBRdWVzdGlvblN0YXRlID0ge1xuXHRcdFx0aWQ6ICdxdWVzdGlvbicsXG5cdFx0XHRpbml0aWFsOiAnaGludCcsXG5cdFx0XHRzdGF0ZXM6IHtcblx0XHRcdFx0aGludDoge1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY3R4LCBldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhgW2hpbnRdIHBsYXkgcXVlc3Rpb24gJHtjdHgucXVlc3Rpb25JbmRleH06ICR7Y3R4LnF1ZXN0aW9uUGxheVRpbWVzIH0gYXVkaW9gKTtcblx0XHRcdFx0XHRcdFx0Y3R4LnF1ZXN0aW9uUGxheVRpbWVzICs9IDE7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybChjdHgucXVlc3Rpb25zW2N0eC5xdWVzdGlvbkluZGV4XS5hdWRpb191cmwsICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdoaW50IGZpbmlzaCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSgpXG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6ICdhbnN3ZXInLFxuXHRcdFx0XHRcdFx0b25FcnJvcjogJ2Fuc3dlcidcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGFuc3dlcjoge1xuXHRcdFx0XHRcdGFmdGVyOiB7XG5cdFx0XHRcdFx0XHQ4MDAwOiBbXG4gICAgICAgIFx0XHRcdFx0XHR7IFxuXHRcdFx0XHRcdFx0XHRcdHRhcmdldDogJ3dyb25nJyxcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0fSAvLyByZWVudGVyICdoaW50JyBzdGF0ZVxuXHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0c3JjOiAoY29udGV4dCwgZXZlbnQpID0+IChjYWxsYmFjaywgb25SZWNlaXZlKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnW2Fuc3dlcl0gdGhpbmtpbmcgYW5kIHBsYXlpbmcnKTtcblx0XHRcdFx0XHRcdFx0Ly8gY2hlY2sgZXZlcnkgc2Vjb25kXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGlkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGlmICghdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLmRpcnR5KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHJlZ2lvbiA9IGNvbnRleHQucXVlc3Rpb25zW2NvbnRleHQucXVlc3Rpb25JbmRleF07XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgcmVzdWx0ID0gdGhpcy5jaGVja0luUmVnaW9uKHJlZ2lvbi5yZWN0KTtcblx0XHRcdFx0XHRcdFx0XHRpZiAocmVzdWx0ID09PSBudWxsKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbR2VuaXNlIEpTXSBjaGVja0luUmVnaW9uJyArIHJlc3VsdClcblx0XHRcdFx0XHRcdFx0XHRpZiAocmVzdWx0KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjYWxsYmFjaygnUklHSFQnKVxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjYWxsYmFjaygnV1JPTkcnKVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSwgMzAwKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5faW50ZXJ2YWxJZHMucHVzaChpZCk7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdC8vIFBlcmZvcm0gY2xlYW51cFxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbChpZCk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRvbjoge1xuXHRcdFx0XHRcdFx0UklHSFQ6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAncmlnaHQnLFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFdST05HOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJ3dyb25nJyxcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdFxuXHRcdFx0XHRyaWdodDoge1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY29udGV4dCwgZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcyA9IG51bGw7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5kaXJ0eSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdhbnN3ZXIgcmlnaHQnKTtcblx0XHRcdFx0XHRcdFx0XHQvLyB0aGlzLnBsYXlBbmkoY29udGV4dC5xdWVzdGlvbkluZGV4LCAnbm9ybWFsJylcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBhbiA9IGNvbnRleHQucXVlc3Rpb25zW2NvbnRleHQucXVlc3Rpb25JbmRleF0ubm9kZTtcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnaW4gcmlnaHQgJyArICh0eXBlb2YgYW4pKVxuXHRcdFx0XHRcdFx0XHRcdGFuLmFjdGl2ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgZHJhZ29uRGlzcGxheSA9IGFuLmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgZGRMb2dvQ2F0ID0gdGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpXG5cdFx0XHRcdFx0XHRcdFx0ZGRMb2dvQ2F0LnBsYXlBbmltYXRpb24oJ3JpZ2h0JywgMSlcblx0XHRcdFx0XHRcdFx0XHRkZExvZ29DYXQub25jZShkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMClcblx0XHRcdFx0XHRcdFx0XHR9LCB0aGlzKVxuXG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwodGhpcy5yaWdodEF1ZGlvLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKClcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnI1F1ZXN0aW9uc0FycmF5Lm5leHQnLFxuXHRcdFx0XHRcdFx0XHRhY3Rpb25zOiByYWlzZSgnQ0hFQ0snKVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRXJyb3I6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnI1F1ZXN0aW9uc0FycmF5Lm5leHQnLFxuXHRcdFx0XHRcdFx0XHRhY3Rpb25zOiByYWlzZSgnQ0hFQ0snKVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0d3Jvbmc6e1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY29udGV4dCwgZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcyA9IG51bGw7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5kaXJ0eSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdhbnN3ZXIgd3JvbmcnLCBjb250ZXh0LnF1ZXN0aW9uSW5kZXgsIGNvbnRleHQucXVlc3Rpb25QbGF5VGltZXMgLCBjb250ZXh0Lm1heFF1ZXN0aW9uVHJ5VGltZXMpO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRkTG9nb0NhdCA9IHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KVxuXHRcdFx0XHRcdFx0XHRcdGRkTG9nb0NhdC5wbGF5QW5pbWF0aW9uKCd3cm9uZycsIDEpXG5cdFx0XHRcdFx0XHRcdFx0ZGRMb2dvQ2F0Lm9uY2UoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpLnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApXG5cdFx0XHRcdFx0XHRcdFx0fSwgdGhpcyk7XG5cdFx0XHRcdFx0XHRcdFx0bGV0IHdyb25nRWZmZWN0ID0gdGhpcy53cm9uZ0F1ZGlvO1xuXHRcdFx0XHRcdFx0XHRcdC8vIOesrOS4gOWSjOesrOS6jOmimOeahOaPkOekuumfs1xuXHRcdFx0XHRcdFx0XHRcdGlmIChbMCwgMV0uaW5jbHVkZXMoY29udGV4dC5xdWVzdGlvbkluZGV4KSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0d3JvbmdFZmZlY3QgPSB0aGlzLmRhdGFbYHdyb25nX2F1ZGlvJHtjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzfWBdXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdC8vIOmdnuesrOS4gOWSjOesrOS6jOmimO+8jOW5tuS4lOWBmuesrOS6jOmBjeeahOaPkOekuumfs1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGNvbnRleHQucXVlc3Rpb25QbGF5VGltZXMgPT0gMikge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR3cm9uZ0VmZmVjdCA9IHRoaXMuZGF0YVtgd3JvbmdfYXVkaW8ke2NvbnRleHQucXVlc3Rpb25QbGF5VGltZXN9YF1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cblxuXHRcdFx0XHRcdFx0XHRcdGlmIChjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzID49IGNvbnRleHQubWF4UXVlc3Rpb25UcnlUaW1lcykge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgYW4gPSBjb250ZXh0LnF1ZXN0aW9uc1tjb250ZXh0LnF1ZXN0aW9uSW5kZXhdLm5vZGU7XG5cdFx0XHRcdFx0XHRcdFx0XHRhbi5hY3RpdmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgZHJhZ29uRGlzcGxheSA9IGFuLmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdzaG93IGFuaW1hdGlvbicsIGFuLmFjdGl2ZSk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdHBsYXlBdWRpb0J5VXJsKHdyb25nRWZmZWN0LCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoY29udGV4dC5xdWVzdGlvblBsYXlUaW1lcyA+PSBjb250ZXh0Lm1heFF1ZXN0aW9uVHJ5VGltZXMpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY29uc3QgYW4gPSBjb250ZXh0LnF1ZXN0aW9uc1tjb250ZXh0LnF1ZXN0aW9uSW5kZXhdLm5vZGU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGFuLmFjdGl2ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGNvbnN0IGRyYWdvbkRpc3BsYXkgPSBhbi5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3Nob3cgYW5pbWF0aW9uJywgYW4uYWN0aXZlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVqZWN0KClcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoKVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRG9uZToge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICdoaW50Jyxcblx0XHRcdFx0XHRcdFx0Ly8gYWN0aW9uczogcmFpc2UoJ0NIRUNLJylcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkVycm9yOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJyNRdWVzdGlvbnNBcnJheS5uZXh0Jyxcblx0XHRcdFx0XHRcdFx0YWN0aW9uczogcmFpc2UoJ0NIRUNLJylcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHR9XG5cdFx0fVxuXHRcdGNvbnN0IFF1ZXN0aW9uc0FycmF5U3RhdHVzID0ge1xuXHRcdFx0aWQ6ICdRdWVzdGlvbnNBcnJheScsXG5cdFx0XHRpbml0aWFsOiAncGxheScsXG5cdFx0XHRzdGF0ZXM6IHtcblx0XHRcdFx0cGxheToge1xuXHRcdFx0XHRcdC4uLlF1ZXN0aW9uU3RhdGVcblx0XHRcdFx0fSxcblx0XHRcdFx0bmV4dDoge1xuXHRcdFx0XHRcdG9uOiB7XG5cdFx0XHRcdFx0XHRDSEVDSzogW1xuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnI2dhbWUuZW5kJyxcblx0XHRcdFx0XHRcdFx0XHRjb25kOiAoY3R4LCBldnQpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGN0eC5xdWVzdGlvbkluZGV4ICs9IDE7XG5cdFx0XHRcdFx0XHRcdFx0XHRjdHgucXVlc3Rpb25QbGF5VGltZXMgPSAwXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnI2dhbWUuZW5kJywgIGN0eC5xdWVzdGlvbkluZGV4ID49IGN0eC5xdWVzdGlvbnNDb3VudCApXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gY3R4LnF1ZXN0aW9uSW5kZXggPj0gY3R4LnF1ZXN0aW9uc0NvdW50XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHR7dGFyZ2V0OiAncGxheSd9XG5cdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0XG5cdFx0Y29uc3Qgc3RhdGUgPSB7XG5cdFx0XHRpZDogJ2dhbWUnLFxuXHRcdFx0aW5pdGlhbDogJ2JlZ2luJyxcblx0XHRcdGNvbnRleHQ6IHtcblx0XHRcdFx0cXVlc3Rpb25JbmRleDogMCxcblx0XHRcdFx0cXVlc3Rpb25QbGF5VGltZXM6IDAsXG5cdFx0XHRcdG1heFF1ZXN0aW9uVHJ5VGltZXM6IDIsXG5cdFx0XHRcdHF1ZXN0aW9uc0NvdW50OiB0aGlzLl9maWd1cmVQb2ludFJlY3RBcnJheS5sZW5ndGgsXG5cdFx0XHRcdHF1ZXN0aW9uczogdGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXksXG5cdFx0XHR9LFxuXHRcdFx0c3RhdGVzOiB7XG5cdFx0XHRcdGJlZ2luOiB7XG5cdFx0XHRcdFx0aW52b2tlOiB7XG5cdFx0XHRcdFx0XHRzcmM6IChjdHgpID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgYmVnaW4gMScpO1xuXHRcdFx0XHRcdFx0XHRpZih3aW5kb3cuY291cnNld2FyZSAmJiB3aW5kb3cuY291cnNld2FyZS5vcGVuT3Ntb0ZpbmdlclJlYWQpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmlzT3BlbmVkT3Ntb0ZpbmdlclJlYWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5jb3Vyc2V3YXJlLm9wZW5Pc21vRmluZ2VyUmVhZCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcInBhZ2VfaWRcIjogMjcsXG5cdFx0XHRcdFx0XHRcdFx0XHRcImJvb2tfaWRcIjogXCJvcHcxXCJcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHZhciBkcmFnb25EaXNwbGF5ID0gdGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignYmVnaW4nLCAwKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHBsYXlBdWRpb0J5VXJsKHRoaXMuZGF0YS5iZWdpbl9hdWRpbywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgYmVnaW4gYXVkaW8gZmluaXNoJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKClcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6ICAnZ3VpZGUnLFxuXHRcdFx0XHRcdFx0b25FcnJvcjogJ2d1aWRlJ1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0XG5cdFx0XHRcdGd1aWRlOntcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdHNyYzogKGN0eCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwodGhpcy5kYXRhLmd1aWRlX2F1ZGlvLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2FtZSBndWlkZSBhdWRpbyBmaW5pc2gnKTtcblx0XHRcdFx0XHRcdFx0XHRcdHJlamVjdCgpXG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25Eb25lOiAgJ3BsYXlpbmcnLFxuXHRcdFx0XHRcdFx0b25FcnJvcjogJ3BsYXlpbmcnXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcblx0XHRcdFx0fSxcblx0XHRcdFx0cGxheWluZzoge1xuXHRcdFx0XHRcdGVudHJ5OiAoY3R4KSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZW50cnkgcGxheSBzdGFnZScpO1xuXHRcdFx0XHRcdFx0dmFyIGRyYWdvbkRpc3BsYXkgPSB0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHRjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh0aGlzLmRhdGEucGxheWluZ19hdWRpbywgKGVyciwgYXVkaW9DbGlwKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNjLmF1ZGlvRW5naW5lLnBsYXlNdXNpYyhhdWRpb0NsaXAsIHRydWUsIDAuOCk7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdGN0eC5xdWVzdGlvbnMuZm9yRWFjaCgoYmxvY2spID0+IHtcblx0XHRcdFx0XHRcdFx0YmxvY2subm9kZS5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0ZXhpdDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2V4aXQgcGxheSBzdGFnZScpO1xuXHRcdFx0XHRcdFx0Y2MuYXVkaW9FbmdpbmUuc3RvcE11c2ljKCk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRvbjoge1xuXHRcdFx0XHRcdFx0TkVYVDogJ2VuZCdcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdC8vIC4uLlF1ZXN0aW9uc1N0YXRlc1xuXHRcdFx0XHRcdC4uLlF1ZXN0aW9uc0FycmF5U3RhdHVzXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGVuZDoge1xuXHRcdFx0XHRcdFx0ZW50cnk6IChjdHgsIGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnYW1lIGVuZCcpO1xuXHRcdFx0XHRcdFx0XHR2YXIgZHJhZ29uRGlzcGxheSA9IHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc3RhdGUgPSBkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ2ZpbmlzaCcsIDApO1xuXHRcdFx0XHRcdFx0XHRpZih3aW5kb3cuY291cnNld2FyZSAmJiB3aW5kb3cuY291cnNld2FyZS5jbG9zZU9zbW9GaW5nZXJSZWFkKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5pc09wZW5lZE9zbW9GaW5nZXJSZWFkID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdFx0d2luZG93LmNvdXJzZXdhcmUuY2xvc2VPc21vRmluZ2VyUmVhZCgpXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwodGhpcy5kYXRhLmVuZF9hdWRpbywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnYW1lIGZpbmlzaCcpO1xuXHRcdFx0XHRcdFx0XHRcdG9uSG9tZXdvcmtGaW5pc2goKTtcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0Ly8gcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHQvLyBcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHQvLyBcdFx0Y29uc29sZS5sb2coJ2hpbnQgZmluaXNoJyk7XG5cdFx0XHRcdFx0XHRcdC8vIFx0XHRyZXNvbHZlKClcblx0XHRcdFx0XHRcdFx0Ly8gXHR9LCAyMDAwKVxuXHRcdFx0XHRcdFx0XHQvLyB9KVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHR9LFxuXHRcdFx0fVxuXHRcdH07XG5cdFx0Y29uc3QgYWZ0ZXIgPSB7fTtcblx0XHRmb3IobGV0IGkgPSAwIDtpICA8IHRoaXMuX2hpbnRzTm9kZUxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IHQgPSB0aGlzLl9oaW50c05vZGVMaXN0W2ldLm5vZGU7XG5cdFx0XHRjb25zdCBrID0gdGhpcy5faGludHNOb2RlTGlzdFtpXS5hZnRlcjtcblx0XHRcdGFmdGVyW2tdPSB7XG5cdFx0XHRcdGFjdGlvbnM6ICgpID0+IHtcblxuXHRcdFx0XHRcdGlmICh0LmlzU3BpbmUpIHtcblxuXHRcdFx0XHRcdFx0Y29uc3Qgc2tlbGV0b24gPSB0LmdldENvbXBvbmVudChzcC5Ta2VsZXRvbik7XG5cdFx0XHRcdFx0XHRza2VsZXRvbi5wYXVzZSgpO1xuXHRcdFx0XHRcdFx0c2tlbGV0b24ubG9vcCA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0c2tlbGV0b24uYW5pbWF0aW9uID0gJ2VubGFyZ2UnO1xuXHRcdFx0XHRcdFx0Ly8gc2tlbGV0b24uYW5pbWF0aW9uID0gc2tlbGV0b24uYW5pbWF0aW9uTmFtZXNbMF07XG5cblx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRjb25zdCBkcmFnb25EaXNwbGF5ID0gdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignZW5sYXJnZScsIDEpO1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZHJhZ29uRGlzcGxheS5fYXJtYXR1cmVLZXksICdlbmxhcmdlJylcblx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkuYWRkRXZlbnRMaXN0ZW5lcihkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIFRPRE8g6L+Z6YeM5YaZ6Kem5Y+R5LqL5Lu2XG5cdFx0XHRcdFx0XHRcdC8vIGV2ZW50Lm5hbWXkuLrkuovku7blkI3np7Bcblx0XHRcdFx0XHRcdFx0Ly8gZXZlbnQuYXJtYXR1cmUuYW5pbWF0aW9uLnBsYXkoJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhldmVudC5hbmltYXRpb25TdGF0ZS5uYW1lLCBkcmFnb25EaXNwbGF5Ll9hcm1hdHVyZUtleSwgJ2VuZCcpXG5cdFx0XHRcdFx0XHR9LCB0aGlzKTtcblx0XHRcdFx0XHR9XG5cblxuXG5cdFx0XHRcdFx0Ly8gY29uc3QgZHJhZ29uRGlzcGxheSA9IHQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0Ly8gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdlbmxhcmdlJywgMSk7XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZHJhZ29uRGlzcGxheS5fYXJtYXR1cmVLZXksICdlbmxhcmdlJylcblx0XHRcdFx0XHQvLyBkcmFnb25EaXNwbGF5LmFkZEV2ZW50TGlzdGVuZXIoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIChldmVudCkgPT4ge1xuXHRcdFx0XHRcdC8vIFx0Ly9UT0RPIOi/memHjOWGmeinpuWPkeS6i+S7tlxuXHRcdFx0XHRcdC8vIFx0Ly9ldmVudC5uYW1l5Li65LqL5Lu25ZCN56ewXG5cdFx0XHRcdFx0Ly8gXHRldmVudC5hcm1hdHVyZS5hbmltYXRpb24ucGxheSgnbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0Ly8gXHRjb25zb2xlLmxvZyhldmVudC5hbmltYXRpb25TdGF0ZS5uYW1lLCBkcmFnb25EaXNwbGF5Ll9hcm1hdHVyZUtleSwgJ2VuZCcpXG5cdFx0XHRcdFx0Ly8gfSwgdGhpcyk7XG5cdFx0XHRcdH0gXG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICh0aGlzLmRhdGEuYmVnaW5fc2VwX3RpbWUpIHtcblx0XHRcdGNvbnN0IHQgPSArdGhpcy5kYXRhLmJlZ2luX3NlcF90aW1lICogMTAwMDtcblx0XHRcdGFmdGVyW3RdID0ge1xuXHRcdFx0XHRhY3Rpb25zOiAoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgYmVnaW4gMicpO1xuXG5cdFx0XHRcdFx0Zm9yKGxldCBpID0gMCA7aSAgPCB0aGlzLl9hbGxBbmltYXRpb25Ob2Rlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0Y29uc3QgdCA9IHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzW2ldO1xuXHRcdFx0XHRcdFx0aWYgKHQuaXNTcGluZSkge1xuXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gdC5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XHRza2VsZXRvbi5wYXVzZSgpO1xuXHRcdFx0XHRcdFx0XHRza2VsZXRvbi5sb29wID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0c2tlbGV0b24uYW5pbWF0aW9uID0gJ25vcm1hbCdcblx0XHRcdFx0XHRcdFx0Ly8gc2tlbGV0b24uYW5pbWF0aW9uID0gc2tlbGV0b24uYW5pbWF0aW9uTmFtZXNbMF07XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGRyYWdvbkRpc3BsYXkgPSB0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHRzdGF0ZS5zdGF0ZXMuYmVnaW4uYWZ0ZXIgPSBhZnRlcjtcblxuXG5cblx0XHRjb25zdCBnYW1lTWFjaGluZSA9IGNyZWF0ZU1hY2hpbmUoc3RhdGUpO1xuXHRcdHdpbmRvdy5nYW1lTWFjaGluZSA9IGdhbWVNYWNoaW5lO1xuXHRcdHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlID0gaW50ZXJwcmV0KGdhbWVNYWNoaW5lKS5vblRyYW5zaXRpb24oKHN0YXRlKSA9PiB7XG5cdFx0Ly8gY29uc29sZS5sb2coMSwgc3RhdGUudmFsdWUsIHN0YXRlLmNvbnRleHQpO1xuXHRcdH0pO1xuXHRcdHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXJ0KCk7XG5cdFx0aWYgKHdpbmRvdy5nYW1lTWFjaGluZVNlcnZpY2UpIHtcblx0XHRcdHdpbmRvdy5nYW1lTWFjaGluZVNlcnZpY2UgPSBnYW1lTWFjaGluZVNlcnZpY2U7XG5cdFx0fVxuXG5cblx0fSxcblxuXHQvLyDnlJ/lkb3lkajmnJ8gc3RhcnRcblx0c3RhcnQoKSB7XG5cdFx0bGV0IGdldERhdGEgPSB0aGlzLmdldERhdGEuYmluZCh0aGlzKTtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvdy5jb3Vyc2V3YXJlKSB7XG5cdFx0XHRnZXREYXRhID0gd2luZG93LmNvdXJzZXdhcmUuZ2V0RGF0YTtcblx0XHR9XG5cblx0XHRnZXREYXRhKChkYXRhKSA9PiB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnZGF0YTonLCBkYXRhKTtcblx0XHRcdHRoaXMuZGF0YSA9IGRhdGEgfHwgdGhpcy5nZXREZWZhdWx0RGF0YSgpO1xuXHRcdFx0dGhpcy5kYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEpKVxuXHRcdFx0XG5cdFx0XHR0aGlzLnByZWxvYWRJdGVtKClcblx0XHR9KTtcblx0XHR3aW5kb3cuYWlyID0gd2luZG93LmFpciB8fCB7fVxuXHRcdGlmICh3aW5kb3cuYWlyKSB7XG5cdFx0XHR3aW5kb3cuYWlyLm9zbW9GaW5nZXJSZWFkQ2FsbGJhY2sgPSAocmVzdWx0KSA9PiB7XG5cdFx0XHRcdGlmICghdGhpcy5nYW1lTWFjaGluZVNlcnZpY2UpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gY29uc3Qgc3QgPSB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lID09ICdPYmplY3QnIFxuXHRcdFx0XHQvLyAmJiB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZVsncGxheWluZyddXG5cdFx0XHRcdC8vICYmIHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXRlLnZhbHVlWydwbGF5aW5nJ10uY29uc3RydWN0b3IubmFtZSA9PSAnT2JqZWN0J1xuXHRcdFx0XHQvLyAmJiB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZVsncGxheWluZyddWydwbGF5J11cblx0XHRcdFx0Ly8gJiYgdGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RhdGUudmFsdWVbJ3BsYXlpbmcnXVsncGxheSddID09ICdhbnN3ZXInXG5cdFx0XHRcdC8vIGlmIChzdCkge1xuXHRcdFx0XHQvLyB9XG5cdFx0XHRcdGNvbnN0IHJlc3VsdE9iaiA9IEpTT04ucGFyc2UocmVzdWx0KTtcblx0XHRcdFx0Y29uc29sZS5sb2coJ1tHZW5pc2UgSlNdICcrIEpTT04uc3RyaW5naWZ5KHJlc3VsdE9iai5maW5nZXJfcG9zX2luX3BhZ2UpKVxuXHRcdFx0XHRjb25zdCBwID0gcmVzdWx0T2JqLmZpbmdlcl9wb3NfaW5fcGFnZTtcblx0XHRcdFx0aWYgKHAueCA9PSAtMSB8fCBwLnkgPT0gLTEpIHtcblx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24ucG9zID0gbnVsbDtcblx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24uZGlydHkgPSBmYWxzZTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uID0ge1xuXHRcdFx0XHRcdHBvczp7XG5cdFx0XHRcdFx0XHR4OiBwLngsXG5cdFx0XHRcdFx0XHR5OiBwLnlcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGRpcnR5OiB0cnVlXG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5kZWJ1Z1BvaW50ZXIocC54LCBwLnkpXG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMuaXNEZWJ1ZyA9IGZhbHNlO1xuXHRcdFxuXHR9LFxuXHRjaGVja0luUmVnaW9uKHIpIHtcblx0XHRpZiAoIXRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbiAmJiAhdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcykge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdGNvbnN0IHAgPSB0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24gPyB0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24ucG9zIHx8IHt4OjAsIHk6MH0gOiB7eDowLCB5OjB9O1xuXHRcdGNvbnN0IHcgPSBwLnggPiByLnggJiYgcC54IDwgKHIueCArIHIud2lkdGgpO1xuXHRcdGNvbnN0IGggPSBwLnkgPiByLnkgJiYgcC55IDwgKHIueSArIHIuaGVpZ2h0KTtcblx0XHRyZXR1cm4gdyAmJiBoO1xuXG5cdH0sXG5cblx0Z2V0RGF0YShmdW5jKSB7XG5cdFx0aWYgKHdpbmRvdyAmJiB3aW5kb3cuY291cnNld2FyZSkge1xuXHRcdFx0d2luZG93LmNvdXJzZXdhcmUuZ2V0RGF0YShmdW5jLCAnc2NlbmUnKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBtaWRkbGVMYXllciA9IGNjLmZpbmQoJ21pZGRsZUxheWVyJyk7XG5cdFx0aWYgKG1pZGRsZUxheWVyKSB7XG5cdFx0XHRjb25zdCBtaWRkbGVMYXllckNvbXBvbmVudCA9IG1pZGRsZUxheWVyLmdldENvbXBvbmVudCgnbWlkZGxlTGF5ZXInKTtcblx0XHRcdG1pZGRsZUxheWVyQ29tcG9uZW50LmdldERhdGEoZnVuYyk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0ZnVuYyh0aGlzLmdldERlZmF1bHREYXRhKCkpO1xuXHR9LFxuXG5cdGdldERlZmF1bHREYXRhKCkge1xuXHRcdHJldHVybiB7XCJiZWdpbl9hdWRpb1wiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcImJlZ2luX3NlcF90aW1lXCI6MSxcImd1aWRlX2F1ZGlvXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMzA3YTAyNjYzZTFjZDY2N2I3Yzk1MTM0MGVjOThiLm1wM1wiLFwicGxheWluZ19hdWRpb1wiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcInJpZ2h0X2F1ZGlvXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMzA3YTAyNjYzZTFjZDY2N2I3Yzk1MTM0MGVjOThiLm1wM1wiLFwid3JvbmdfYXVkaW9cIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJ3cm9uZ19hdWRpbzFcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJ3cm9uZ19hdWRpbzJcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJlbmRfYXVkaW9cIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJiZ0l0ZW1cIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vODRlYzZlZGMyMGJjZWFhYTlkYmU4MjQwOTJiNjg2MGQucG5nXCIsXCJyZWN0XCI6e1wieFwiOjU0OS41NSxcInlcIjowLFwid2lkdGhcIjo0NDkuOSxcImhlaWdodFwiOjU4Mn19LFwiaG90Wm9uZUl0ZW1BcnJcIjpbe1wiaWRcIjpcIjE2NTkzMzM2NDU1NzNcIixcImluZGV4XCI6MCxcImF1ZGlvX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81YTFhMjY3MDg0NWJmZTc2NjYyZTg2ZDlhM2E2OWY4MS5tcDNcIixcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjoxLjIxMDE1NjI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjoxLjIxMDE1NjI1LFwiZHJhZ0RvdFwiOntcInhcIjo3NzQuNSxcInlcIjoyODkuNTUwMTY4ODM3NDMzNjZ9LFwiZ0lkeFwiOlwiMVwiLFwibGFiZWxUZXh0XCI6XCIxXCIsXCJwb3NYXCI6ODg3LjUsXCJwb3NZXCI6MTY1LjUsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9kMWY4NTlkM2ZiYTg0YmQwMzU2NWU1NDNjOTg2ZmIyOC5qc29uXCIsXCJuYW1lXCI6XCI2XzRfc2tlLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS83MGY5NmUxY2M3ZjAxM2UyN2VkMTk1MmM1MDNmYjc1MC5qc29uXCIsXCJuYW1lXCI6XCI2XzRfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2IwNmY5YjkwMDE4YTZlYjAxNzVhMDFlMzU1YjljZWQ2LnBuZ1wiLFwibmFtZVwiOlwiNl80X3RleC5wbmdcIn0sXCJhbmltVHlwZVwiOlwiZHJhZ29uQm9uZVwiLFwicmVjdFwiOntcInhcIjozNi4wOCxcInlcIjo0OS4xOSxcIndpZHRoXCI6MTUzLjk1LFwiaGVpZ2h0XCI6MTUwLjE5fX0se1wiaWRcIjpcIjE2NTkzMzQwOTg5MzBcIixcImluZGV4XCI6MSxcImF1ZGlvX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xNmViMDZhNmJlYjllNGZhNzdjOWI1ZDJkNjQzYWIyOS5tcDNcIixcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjoxLjIxMDE1NjI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjoxLjIxMDE1NjI1LFwiZHJhZ0RvdFwiOntcInhcIjo3NzQuNSxcInlcIjoyODkuNTUwMTY4ODM3NDMzNjZ9LFwiZ0lkeFwiOlwiMFwiLFwibGFiZWxUZXh0XCI6XCIxXCIsXCJwb3NYXCI6MTIxMi41LFwicG9zWVwiOjY0My41LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vYmRiYWRiMDZlMGMxMTU3ZTcyN2NlY2QyOGYyOGQxMGUuanNvblwiLFwibmFtZVwiOlwic3BpbmVib3ktcHJvLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lMDk0NWI4MjY1ZWEzYjgwNTNhZmI4MTRjNmI4NDlkMy5hdGxhc1wiLFwibmFtZVwiOlwic3BpbmVib3ktcHJvLmF0bGFzXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81MTc1NTNmNTAyMjQ5MTUxNDhmOWVmYzViNzU1Njc5OC5wbmdcIixcIm5hbWVcIjpcInNwaW5lYm95LXByby5wbmdcIn0sXCJhbmltVHlwZVwiOlwic3BpbmVcIixcInJlY3RcIjp7XCJ4XCI6MjgyLjAzLFwieVwiOjQwOC4xNSxcIndpZHRoXCI6MTUwLjE5LFwiaGVpZ2h0XCI6MTUwLjE5fX1dfVxuXHRcdC8vIHJldHVybiBkZWZhdWx0RGF0YTtcblx0fSxcblxuXHRwcmVsb2FkSXRlbSgpIHtcblx0XHR0aGlzLmFkZFByZWxvYWRJbWFnZSgpO1xuXHRcdHRoaXMuYWRkUHJlbG9hZEF1ZGlvKCk7XG5cdFx0dGhpcy5hZGRQcmVsb2FkQW5pbWEoKTtcblx0XHR0aGlzLnByZWxvYWQoKTtcblx0fSxcblxuXG5cdGFkZFByZWxvYWRJbWFnZSgpIHtcblxuXHRcdHRoaXMuX2ltYWdlUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuYmdJdGVtLnVybH0pO1xuXG5cdFx0Zm9yIChjb25zdCBxIG9mIHRoaXMuZGF0YS5ob3Rab25lSXRlbUFycikge1xuXHRcdFx0aWYgKHEuZ0lkeCA9PScwJykge1xuXHRcdFx0XHR0aGlzLl9pbWFnZVJlc0xpc3QucHVzaCh7IHVybDogcS50ZXhQbmdEYXRhLnVybH0pO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAocS5nSWR4ID09JzEnKSB7XG5cdFx0XHRcdHRoaXMuX2ltYWdlUmVzTGlzdC5wdXNoKHsgdXJsOiBxLnRleFBuZ0RhdGEudXJsIH0pO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHEuZ0lkeCA9PScyJykge1xuXHRcdFx0XHR0aGlzLl9pbWFnZVJlc0xpc3QucHVzaCh7IHVybDogcS5waWNfdXJsfSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRwcmVwYXJlQXVkaW9DbGlwKHVybCwga2V5KSB7XG5cdFx0aWYgKHVybCkge1xuXHRcdFx0Y2MuYXNzZXRNYW5hZ2VyLmxvYWRSZW1vdGUodXJsLCAoZXJyLCBhdWRpb0NsaXApID0+IHtcblx0XHRcdFx0aWYgKGF1ZGlvQ2xpcCkge1xuXHRcdFx0XHRcdHRoaXNba2V5XSA9IGF1ZGlvQ2xpcDtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9LFxuXHRhZGRQcmVsb2FkQXVkaW8oKSB7XG5cblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLmJlZ2luX2F1ZGlvIH0pO1xuXHRcdC8vIHRoaXMucHJlcGFyZUF1ZGlvQ2xpcCh0aGlzLmRhdGEuYmVnaW5fYXVkaW8xLCAnYmVnaW5fYXVkaW8xJylcblx0XHQvLyB0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLmJlZ2luX2F1ZGlvMiB9KTtcblx0XHQvLyB0aGlzLnByZXBhcmVBdWRpb0NsaXAodGhpcy5kYXRhLmJlZ2luX2F1ZGlvMiwgJ2JlZ2luX2F1ZGlvMicpXG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5ndWlkZV9hdWRpbyB9KTtcblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLnBsYXlpbmdfYXVkaW8gfSk7XG5cdFx0aWYgKHRoaXMuZGF0YS53cm9uZ19hdWRpbykge1xuXHRcdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS53cm9uZ19hdWRpbyB9KTtcblx0XHRcdHRoaXMud3JvbmdBdWRpbyA9IHRoaXMuZGF0YS53cm9uZ19hdWRpb1xuXHRcdH1cblx0XHRpZiAodGhpcy5kYXRhLnJpZ2h0X2F1ZGlvKSB7XG5cdFx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLnJpZ2h0X2F1ZGlvIH0pO1xuXHRcdFx0dGhpcy5yaWdodEF1ZGlvID0gdGhpcy5kYXRhLnJpZ2h0X2F1ZGlvXG5cdFx0fVxuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEud3JvbmdfYXVkaW8xIH0pO1xuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEud3JvbmdfYXVkaW8yIH0pO1xuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuZW5kX2F1ZGlvIH0pO1xuXG5cblx0XHRmb3IgKGNvbnN0IHEgb2YgdGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyKSB7XG5cdFx0XHRpZiAocS5nSWR4ID09JzAnKSB7XG5cdFx0XHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiBxLmF1ZGlvX3VybCB9KTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGRlYnVnUG9pbnRlcigpIHtcblx0XHRjb25zdCBib3hEZWJ1Z2dlciA9IGNjLmZpbmQoJ0NhbnZhcy9ib3gtZGVidWdnZXInKTtcblx0XHRpZiAoIXRoaXMuaXNEZWJ1Zykge1xuXHRcdFx0Ym94RGVidWdnZXIuYWN0aXZlID0gZmFsc2U7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmICghdGhpcy5QT0lOVEVSX05PREUpIHtcblx0XHRcdHRoaXMuUE9JTlRFUl9OT0RFID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcdHRoaXMuUE9JTlRFUl9OT0RFLnBhcmVudCA9IGJveERlYnVnZ2VyO1xuXHRcdFx0dGhpcy5QT0lOVEVSX05PREUubmFtZSA9ICdQT0lOVEVSX05PREUnXG5cdFx0XHR0aGlzLlBPSU5URVJfTk9ERS5hZGRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdH1cblx0XHRjb25zdCBncmFwID0gdGhpcy5QT0lOVEVSX05PREUuZ2V0Q29tcG9uZW50KGNjLkdyYXBoaWNzKTtcblx0XHRncmFwLmNsZWFyKCk7XG5cdFx0Y29uc3QgZ3JvdW5kID0gY2MuZmluZCgnQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmQnKTtcblx0XHRjb25zdCB7d2lkdGg6IGJhc2VXLCBoZWlnaHQ6IGJhc2VIfSA9IGdyb3VuZDtcblx0XHRjb25zdCB7eDogcHgsIHk6IHB5fSA9IHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3M7XG5cdFx0bGV0IHggPSBiYXNlVyAqIHB4IC0gYmFzZVcgLyAyO1xuXHRcdGxldCB5ID0gYmFzZUggLSAoYmFzZUggKiBweSkgLSBiYXNlSCAvIDIgLSAxNjtcblx0XHRjb25zdCBwbiA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0XG5cdFx0Z3JhcC5maWxsQ29sb3I9Y2MuY29sb3IoMjU1LCAwLCAwKTtcblx0XHRncmFwLmNpcmNsZSh4LCB5LCAzMik7XG5cdFx0Z3JhcC5maWxsKCk7XG5cdFx0Z3JhcC5zdHJva2UoKTtcblx0fSxcblx0ZGVidWdHcmFwaGljcygpIHtcblx0XHRjb25zdCBib3hEZWJ1Z2dlciA9IGNjLmZpbmQoJ0NhbnZhcy9ib3gtZGVidWdnZXInKTtcblx0XHRpZiAoIXRoaXMuaXNEZWJ1Zykge1xuXHRcdFx0Ym94RGVidWdnZXIuYWN0aXZlID0gZmFsc2U7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGJveERlYnVnZ2VyLmFjdGl2ZSA9IHRydWU7XG5cdFx0Y29uc29sZS5sb2coJ3Nob3cgZGVidWcgZ3JhcGhpY3MnKTtcblx0XHRjb25zdCBncm91bmQgPSBjYy5maW5kKCdDYW52YXMvZnJhbWUtYm9yZGVyL2dyb3VuZCcpO1xuXHRcdGNvbnN0IGNhbnZhcyA9IGNjLmZpbmQoJ0NhbnZhcycpO1xuXHRcdGNvbnN0IHt3aWR0aDogYmFzZVcsIGhlaWdodDogYmFzZUh9ID0gZ3JvdW5kO1xuXHRcdGNvbnN0IHt3aWR0aDogYmdXLCBoZWlnaHQ6IGJnSH0gPSB0aGlzLmRhdGEuYmdJdGVtLnJlY3Rcblx0XHRjb25zdCBzY2FsZVggPSBiZ1cgLyBiYXNlVztcblx0XHRjb25zdCBzY2FsZVkgPSBiZ0ggLyBiYXNlSDtcblx0XHRsZXQgYWRkZWQgID1mYWxzZVxuXHRcdHRoaXMuZGF0YS5ob3Rab25lSXRlbUFyci5mb3JFYWNoKGFyZWEgPT4ge1xuXHRcdFx0XG5cdFx0XHRpZiAoYWRkZWQpIHtcblx0XHRcdFx0Ly8gcmV0dXJuXG5cdFx0XHR9XG5cdFx0XHRpZiAoYXJlYS5nSWR4ICE9ICcwJykge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRhZGRlZCA9IHRydWU7XG5cdFx0XHRjb25zdCBkbiA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0XHRjb25zdCBsYmxOb2RlID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcdGxibE5vZGUucGFyZW50ID0gZG5cblx0XHRcdGNvbnN0IGxibCA9IGxibE5vZGUuYWRkQ29tcG9uZW50KGNjLkxhYmVsKTtcblx0XHRcdGxibE5vZGUuY29sb3IgPSBjYy5jb2xvcigwLDAsMClcblx0XHRcdGxibC5zdHJpbmcgPSBhcmVhLnNrZUpzb25EYXRhLm5hbWUuc3Vic3RyaW5nKDAsIGFyZWEuc2tlSnNvbkRhdGEubmFtZS5sZW5ndGggLSA5KVxuXHRcdFx0ZG4ubmFtZSA9IGxibC5zdHJpbmc7XG5cdFx0XHRkbi5wYXJlbnQgPSBib3hEZWJ1Z2dlcjtcblx0XHRcdGRuLndpZHRoID0gYmFzZVc7XG5cdFx0XHRkbi5oZWlnaHQgPSBiYXNlSDtcblx0XHRcdFxuXHRcdFx0Y29uc3QgZ3JhcCA9IGRuLmFkZENvbXBvbmVudChjYy5HcmFwaGljcyk7XG5cdFx0XHRjb25zdCByID0gUmFuZG9tSW50KDEsMjU1KVxuXHRcdFx0Y29uc3QgZyA9IFJhbmRvbUludCgxLDI1NSlcblx0XHRcdGNvbnN0IGIgPSBSYW5kb21JbnQoMSwyNTUpXG5cdFx0XHRncmFwLmZpbGxDb2xvcj1jYy5jb2xvcihyLCBnLCBiLCAxMjcpO1xuXHRcdFx0Y29uc3Qge3g6IHJ4LCB5OiByeSwgd2lkdGg6IHJ3LCBoZWlnaHQ6IHJofSA9ICBhcmVhLnJlY3Q7XG5cdFx0XHRsZXQgdyA9IChydyAvIGJnVykgKiBiYXNlVztcblx0XHRcdGxldCBoID0gKHJoIC8gYmdIKSAqIGJhc2VIO1xuXHRcdFx0bGV0IHggPSAocnggLyBiZ1cpICogYmFzZVcgLSBiYXNlVyAvIDI7XG5cdFx0XHRsZXQgeSA9IGJhc2VIIC0gKChyeSAvIGJnSCkgKiBiYXNlSCkgLSBoIC0gYmFzZUggLyAyO1xuXHRcdFx0Ly8gdyAqPSBzY2FsZVhcblx0XHRcdC8vIGggKj0gc2NhbGVZXG5cdFx0XHQvLyB4ICo9IHNjYWxlWFxuXHRcdFx0Ly8geSAqPSBzY2FsZVlcbiAgICAgICAgICAgIC8vIGNvbnN0IHAgPSBib3hEZWJ1Z2dlci5jb252ZXJ0VG9Ob2RlU3BhY2VBUihjYy52Mih4LHkpKTtcblx0XHRcdC8vIHggPSBwLng7XG5cdFx0XHQvLyB5ID0gcC55O1xuXHRcdFx0bGJsTm9kZS54ID0geDtcblx0XHRcdGxibE5vZGUueSA9IHkgKyBoO1xuXHRcdFx0Ly8gZG4uc2NhbGVYID0gc2NhbGVYO1xuXHRcdFx0Ly8gZG4uc2NhbGVZID0gc2NhbGVZO1xuXHRcdFx0Ly8gZG4uc2NhbGUgPSBhcmVhLm1hcFNjYWxlOyAvLyBtaW5TY2FsZTsgLy8gdGhpcy5fbWFwU2NhbGVNYXggKiBhcmVhLm1hcFNjYWxlOyAvLyA7XG5cdFx0XHRjb25zb2xlLmxvZygnW2RlYnVnXScsIGFyZWEuc2tlSnNvbkRhdGEubmFtZSwgeCwgeSwgdywgaCk7XG5cdFx0XHRncmFwLmZpbGxSZWN0KHgsIHksIHcsIGgpO1xuXHRcdFx0Z3JhcC5zdHJva2UoKTtcblx0XHRcdFxuXHRcdH0pO1xuXG5cdH0sXG5cdGFkZFByZWxvYWRBbmltYSgpIHtcblxuXHR9LFxuXG5cdHByZWxvYWQoKSB7XG5cblx0XHRjb25zdCBwcmVsb2FkQXJyID0gdGhpcy5faW1hZ2VSZXNMaXN0LmNvbmNhdCh0aGlzLl9hdWRpb1Jlc0xpc3QpLmNvbmNhdCh0aGlzLl9hbmltYVJlc0xpc3QpO1xuXHRcdC8vIGNvbnNvbGUubG9nKHByZWxvYWRBcnIpO1xuXHRcdGNjLmFzc2V0TWFuYWdlci5sb2FkQW55KHByZWxvYWRBcnIsIG51bGwsIChmLCB0LCBpdGVtKSA9PiB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZyhmLCB0LCBpdGVtKVxuXHRcdH0sIChlcnIsIGRhdGEpID0+IHtcblx0XHRcdC8vIGNvbnNvbGUubG9nKGVyciwgZGF0YSk7XG5cdFx0XHRjb25zdCBncm91bmQgPSBjYy5maW5kKGBDYW52YXMvZnJhbWUtYm9yZGVyL2dyb3VuZGApO1xuXHRcdFx0Y29uc3QgZ3JvdW5kQmcgPSBjYy5maW5kKGBDYW52YXMvZnJhbWUtYm9yZGVyL2dyb3VuZC9iZ2ApO1xuXHRcdFx0Z3JvdW5kQmcuYWN0aXZlID0gZmFsc2U7XG5cdFx0XHRjb25zdCBiYXNlUmVjdCA9IHRoaXMuZGF0YS5iZ0l0ZW0ucmVjdDtcblx0XHRcdGdldFNwcml0ZUZyaW1lQnlVcmwodGhpcy5kYXRhLmJnSXRlbS51cmwsIChzZikgPT4ge1xuXHRcdFx0XHRjb25zdCBncyA9IGdyb3VuZEJnLmdldENvbXBvbmVudChjYy5TcHJpdGUpO1xuXHRcdFx0XHRncy5zcHJpdGVGcmFtZSA9IHNmO1xuXHRcdFx0XHRncm91bmRCZy5hY3RpdmUgPSB0cnVlO1xuXG5cdFx0XHRcdGxldCBkYkNvdW50ID0gMDtcblx0XHRcdFx0bGV0IGZpbmlzaERiQ291bnQgPSAwXG5cdFx0XHRcdGZvcihjb25zdCBibG9jayBvZiB0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIpIHtcblx0XHRcdFx0XHRpZiAoYmxvY2suZ0lkeCA9PSAnMCcgfHwgYmxvY2suZ0lkeCA9PSAnMScpIHtcblx0XHRcdFx0XHRcdGRiQ291bnQrKztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0Zm9yKGNvbnN0IGJsb2NrIG9mIHRoaXMuZGF0YS5ob3Rab25lSXRlbUFycikge1xuXG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0aWYgKGJsb2NrLmdJZHggPT0gJzInKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBzMSA9ICgoZ3JvdW5kLndpZHRoICAvIGJsb2NrLmltZ1NpemVXKSArIChncm91bmQuaGVpZ2h0ICAvIGJsb2NrLmltZ1NpemVIKSkgLyAyXG5cdFx0XHRcdFx0XHRjb25zdCBub2RlID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcdFx0XHRcdG5vZGUucGFyZW50ID0gZ3JvdW5kO1xuXHRcdFx0XHRcdFx0Y29uc3Qgc3ByID0gbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKTtcblx0XHRcdFx0XHRcdGdldFNwcml0ZUZyaW1lQnlVcmwoYmxvY2sucGljX3VybCwgKHNmKSA9PiB7XG5cdFx0XHRcdFx0XHRzcHIuc3ByaXRlRnJhbWUgPSBzZjtcblx0XHRcdFx0XHRcdG5vZGUuc2NhbGUgPSBzMTtcblx0XHRcdFx0XHRcdH0pXG5cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKGJsb2NrLmdJZHggPT0gJzAnIHx8IGJsb2NrLmdJZHggPT0gJzEnKSB7XG5cblx0XHRcdFx0XHRcdGNvbnN0IG4gPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0XHRcdFx0bi5zY2FsZSA9IDAuMjU7XG5cdFx0XHRcdFx0XHRuLnBhcmVudCA9IGdyb3VuZDtcblx0XHRcdFx0XHRcdG4uYWN0aXZlID0gZmFsc2U7XG5cblx0XHRcdFx0XHRcdGlmIChibG9jay5hbmltVHlwZSA9PSAnc3BpbmUnKSB7XG5cdFx0XHRcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc2tlbGV0b24gPSBuLmFkZENvbXBvbmVudChzcC5Ta2VsZXRvbik7XG5cdFx0XHRcdFx0XHRcdG4uaXNTcGluZSA9IHRydWU7XG5cblx0XHRcdFx0XHRcdFx0bG9hZFNwaW5lKHNrZWxldG9uLCBibG9jay50ZXhQbmdEYXRhLm5hbWUsIHtcblx0XHRcdFx0XHRcdFx0XHR0ZXg6IGJsb2NrLnRleFBuZ0RhdGEudXJsLCBcblx0XHRcdFx0XHRcdFx0XHRhdGxhczogYmxvY2sudGV4SnNvbkRhdGEudXJsLFxuXHRcdFx0XHRcdFx0XHRcdHNrZTogYmxvY2suc2tlSnNvbkRhdGEudXJsLFxuXHRcdFx0XHRcdFx0XHR9KS50aGVuKCh7d2lkdGgsIGhlaWdodH0pID0+IHtcblx0XHRcdFx0XHRcdFx0XHRuLndpZHRoID0gd2lkdGg7XG5cdFx0XHRcdFx0XHRcdFx0bi5oZWlnaHQgPSBoZWlnaHQ7XHRcblx0XHRcdFx0XHRcdFx0XHRuLmFjdGl2ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0Ly8gZGIucGxheUFuaW1hdGlvbignbnVsbCcsIDApO1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gc2tlbGV0b24ubG9vcCA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0Ly8gc2tlbGV0b24uYW5pbWF0aW9uID0gc2tlbGV0b24uYW5pbWF0aW9uTmFtZXNbMF1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHR0aGlzLl9hbGxBbmltYXRpb25Ob2Rlcy5wdXNoKG4pO1xuXHRcdFx0XHRcdFx0XHRcdGZpbmlzaERiQ291bnQrKztcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhmaW5pc2hEYkNvdW50LCBkYkNvdW50KVxuXHRcdFx0XHRcdFx0XHRcdGlmIChmaW5pc2hEYkNvdW50ID09IGRiQ291bnQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZEVuZCgpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSkuY2F0Y2goKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGZpbmlzaERiQ291bnQrKztcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhmaW5pc2hEYkNvdW50LCBkYkNvdW50KVxuXHRcdFx0XHRcdFx0XHRcdGlmIChmaW5pc2hEYkNvdW50ID09IGRiQ291bnQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZEVuZCgpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcblx0XHRcdFx0XHRcdFx0Y29uc3QgZGIgPSBuLmFkZENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXG5cdFx0XHRcdFx0XHRcdGxvYWREcmFnb25Cb25lcyhkYiwge1xuXHRcdFx0XHRcdFx0XHRcdHRleDogYmxvY2sudGV4UG5nRGF0YS51cmwsIFxuXHRcdFx0XHRcdFx0XHRcdGF0bGFzOiBibG9jay50ZXhKc29uRGF0YS51cmwsXG5cdFx0XHRcdFx0XHRcdFx0c2tlOiBibG9jay5za2VKc29uRGF0YS51cmwsXG5cdFx0XHRcdFx0XHRcdH0pLnRoZW4oKHt3aWR0aCwgaGVpZ2h0fSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdG4ud2lkdGggPSB3aWR0aDtcblx0XHRcdFx0XHRcdFx0XHRuLmhlaWdodCA9IGhlaWdodDtcdFxuXHRcdFx0XHRcdFx0XHRcdG4uYWN0aXZlID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHRkYi5wbGF5QW5pbWF0aW9uKCdudWxsJywgMCk7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fYWxsQW5pbWF0aW9uTm9kZXMucHVzaChuKTtcblx0XHRcdFx0XHRcdFx0XHRmaW5pc2hEYkNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmluaXNoRGJDb3VudCA9PSBkYkNvdW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pLmNhdGNoKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRmaW5pc2hEYkNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmluaXNoRGJDb3VudCA9PSBkYkNvdW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cblxuXHRcdFx0XHRcdFx0aWYgKGJsb2NrLmdJZHggPT0gJzAnKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHJlY3RJbmZvID0ge1xuXHRcdFx0XHRcdFx0XHRcdG5vZGU6IG4sXG5cdFx0XHRcdFx0XHRcdFx0YXVkaW9fdXJsOiBibG9jay5hdWRpb191cmwgLFxuXHRcdFx0XHRcdFx0XHRcdHJlY3Q6IHtcblx0XHRcdFx0XHRcdFx0XHRcdHg6IGJsb2NrLnJlY3QueCAvIGJhc2VSZWN0LndpZHRoLFxuXHRcdFx0XHRcdFx0XHRcdFx0eTogYmxvY2sucmVjdC55IC8gYmFzZVJlY3QuaGVpZ2h0LFxuXHRcdFx0XHRcdFx0XHRcdFx0d2lkdGg6IGJsb2NrLnJlY3Qud2lkdGggLyBiYXNlUmVjdC53aWR0aCxcblx0XHRcdFx0XHRcdFx0XHRcdGhlaWdodDogYmxvY2sucmVjdC5oZWlnaHQgLyBiYXNlUmVjdC5oZWlnaHQsXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9maWd1cmVQb2ludFJlY3RBcnJheS5wdXNoKHJlY3RJbmZvKTtcblx0XHRcblx0XHRcdFx0XHRcdFx0aWYgKGJsb2NrLmxhYmVsVGV4dCkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGsgPSArYmxvY2subGFiZWxUZXh0ICogMTAwMDtcblx0XHRcdFx0XHRcdFx0XHRpZighaXNOYU4oaykpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX2hpbnRzTm9kZUxpc3QucHVzaCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGU6IG4sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFmdGVyOiBrXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0XG5cdFx0XHQvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEpO1xuXHRcdFx0Y29uc29sZS5sb2coJ3Jlc291cmNlIHBlcmxvYWQgZmluaXNoJyk7XG5cbi8vIDw8PDw8PDwgSEVBRFxuLy8gPT09PT09PVxuLy8gXHRcdFx0aWYgKHdpbmRvdyAmJiB3aW5kb3dbXCJhaXJcIl0pIHtcbi8vIFx0XHRcdFx0Ly8gY2MuZmluZCgnQ2FudmFzJykub3BhY2l0eSA9IDA7XG4vLyBcdFx0XHRcdHdpbmRvdy5haXIub25Db3Vyc2VJblNjcmVlbiA9IChuZXh0KSA9PiB7XG4vLyBcdFx0XHRcdFx0Ly8gY2MuZmluZCgnQ2FudmFzJykub3BhY2l0eSA9IDI1NTtcbi8vIFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcbi8vIFx0XHRcdFx0XHRuZXh0KCk7XG4vLyBcdFx0XHRcdH1cbi8vIFx0XHRcdFx0d2luZG93LmFpci5oaWRlQWlyQ2xhc3NMb2FkaW5nKCk7XG4vLyBcdFx0XHR9IGVsc2Uge1xuLy8gXHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcbi8vIFx0XHRcdH1cbi8vID4+Pj4+Pj4gMmQ0NjFlMTkxMDU3MWJjZmM2YWQ0ZGM5M2MyY2VkYWZjMjA5MjNlYVxuXG5cdFx0XHRjYy5kZWJ1Zy5zZXREaXNwbGF5U3RhdHMoZmFsc2UpO1xuXHRcdH0pO1xuXHR9LFxuXG5cblx0bG9hZEVuZCgpIHtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvd1tcImFpclwiXSAmJiB3aW5kb3dbXCJhaXJcIl0uaGlkZUFpckNsYXNzTG9hZGluZykge1xuXHRcdFx0d2luZG93W1wiYWlyXCJdLmhpZGVBaXJDbGFzc0xvYWRpbmcoKTtcblx0XHR9XG5cdFx0dGhpcy5pbml0RGF0YSgpO1xuXHRcdC8vIHRoaXMuaW5pdEF1ZGlvKCk7XG5cdFx0Ly8gdGhpcy5pbml0VmlldygpO1xuXHRcdHRoaXMuaW5pdEJnKCk7XG5cdFx0Ly8gdGhpcy5pbml0TGlzdGVuZXIoKTtcblx0XHR0aGlzLmRlYnVnR3JhcGhpY3MoKTtcblx0XHR0aGlzLmNyZWF0ZVN0YXRlTWFjaGluZSgpO1xuXHR9LFxuXG5cdF9jYW50b3VjaDogbnVsbCxcblx0aW5pdERhdGEoKSB7XG5cdFx0Ly8g5omA5pyJ5YWo5bGA5Y+Y6YePIOm7mOiupOmDveaYr251bGwgXG5cdFx0dGhpcy5fY2FudG91Y2ggPSB0cnVlO1xuXHR9LFxuXG5cdC8vIGF1ZGlvQnRuOiBudWxsLFxuXHQvLyBpbml0QXVkaW8oKSB7XG5cdC8vIFx0Y29uc3QgYXVkaW9Ob2RlID0gY2MuZmluZCgnQ2FudmFzL3Jlcy9hdWRpbycpO1xuXG5cdC8vIFx0Y29uc3QgZ2V0QXVkaW9CeVJlc05hbWUgPSAocmVzTmFtZSkgPT4ge1xuXHQvLyBcdFx0cmV0dXJuIGF1ZGlvTm9kZS5nZXRDaGlsZEJ5TmFtZShyZXNOYW1lKS5nZXRDb21wb25lbnQoY2MuQXVkaW9Tb3VyY2UpO1xuXHQvLyBcdH1cblxuXHQvLyBcdHRoaXMuYXVkaW9CdG4gPSBnZXRBdWRpb0J5UmVzTmFtZSgnYnRuJyk7XG5cblx0Ly8gfSxcblxuXG5cdC8vIGluaXRWaWV3KCkge1xuXG5cdC8vIFx0Ly8gdGhpcy5pbml0QmcoKTtcblx0Ly8gXHQvLyB0aGlzLmluaXRQaWMoKTtcblx0Ly8gXHQvLyB0aGlzLmluaXRCdG4oKTtcblx0Ly8gXHR0aGlzLmluaXRJY29uKCk7XG5cdC8vIH0sXG5cblx0aW5pdEJnKCkge1xuXHRcdGNvbnN0IGJnTm9kZSA9IGNjLmZpbmQoJ0NhbnZhcy9iZycpO1xuXHRcdGJnTm9kZS5zY2FsZSA9IHRoaXMuX21hcFNjYWxlTWF4O1xuXHRcdGNvbnNvbGUubG9nKCd0aGlzLl9tYXBTY2FsZU1heCcsIHRoaXMuX21hcFNjYWxlTWF4KTtcblx0fSxcblxuXHRcblx0XG5cblx0Lyppbml0QnRuKCkge1xuXG5cdFx0dGhpcy5jdXJQYWdlID0gMDtcblx0XHRjb25zdCBib3R0b21QYXJ0ID0gY2MuZmluZCgnQ2FudmFzL2JvdHRvbVBhcnQnKTtcblx0XHRib3R0b21QYXJ0LnpJbmRleCA9IDU7IC8vIOaPkOmrmOWxgue6p1xuXG5cdFx0Ym90dG9tUGFydC54ID0gYm90dG9tUGFydC5wYXJlbnQud2lkdGggLyAyO1xuXHRcdGJvdHRvbVBhcnQueSA9IC1ib3R0b21QYXJ0LnBhcmVudC5oZWlnaHQgLyAyO1xuXG5cdFx0Y29uc3QgbGVmdEJ0bk5vZGUgPSBib3R0b21QYXJ0LmdldENoaWxkQnlOYW1lKCdidG5fbGVmdCcpO1xuXHRcdC8v6IqC54K55Lit5re75Yqg5LqGYnV0dG9u57uE5Lu2IOWImeWPr+S7pea3u+WKoGNsaWNr5LqL5Lu255uR5ZCsXG5cdFx0bGVmdEJ0bk5vZGUub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLl9jYW50b3VjaCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5jdXJQYWdlID09IDApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5jdXJQYWdlID0gMFxuXHRcdFx0dGhpcy5sZWZ0TW92ZSgpO1xuXG5cdFx0XHQvLyDmuLjmiI/nu5PmnZ/ml7bpnIDopoHosIPnlKjov5nkuKrmlrnms5XpgJrnn6Xns7vnu5/kvZzkuJrlrozmiJBcblx0XHRcdG9uSG9tZXdvcmtGaW5pc2goKTtcblxuXHRcdFx0Y2MuYXVkaW9FbmdpbmUucGxheSh0aGlzLmF1ZGlvQnRuLmNsaXAsIGZhbHNlLCAwLjgpXG5cdFx0fSlcblxuXHRcdGNvbnN0IHJpZ2h0QnRuTm9kZSA9IGJvdHRvbVBhcnQuZ2V0Q2hpbGRCeU5hbWUoJ2J0bl9yaWdodCcpO1xuXHRcdC8v6IqC54K55Lit5re75Yqg5LqGYnV0dG9u57uE5Lu2IOWImeWPr+S7pea3u+WKoGNsaWNr5LqL5Lu255uR5ZCsXG5cdFx0cmlnaHRCdG5Ob2RlLm9uKCdjbGljaycsICgpID0+IHtcblx0XHRcdGlmICghdGhpcy5fY2FudG91Y2gpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuY3VyUGFnZSA9PSAxKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5jdXJQYWdlID0gMVxuXHRcdFx0dGhpcy5yaWdodE1vdmUoKTtcblxuXHRcdFx0Y2MuYXVkaW9FbmdpbmUucGxheSh0aGlzLmF1ZGlvQnRuLmNsaXAsIGZhbHNlLCAwLjUpXG5cdFx0fSlcblx0fSwqL1xuXG5cblxuXG5cdC8vIHVwZGF0ZSAoZHQpIHt9LFxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblx0X3RpbWVvdXRJZHM6IG51bGwsXG5cdF9pbnRlcnZhbElkczogbnVsbCxcblx0Ly8g55Sf5ZG95ZGo5pyfXG5cdG9uRGVzdHJveSgpIHtcblx0XHRjb25zb2xlLmxvZygnb3AxNSBvbkRlc3Ryb3knKTtcblx0XHR0aGlzLl90aW1lb3V0SWRzLmZvckVhY2goaWQgPT4ge1xuXHRcdFx0Y2xlYXJUaW1lb3V0KGlkKTtcblx0XHR9KTtcblx0XHR0aGlzLl9pbnRlcnZhbElkcy5mb3JFYWNoKGlkID0+IHtcblx0XHRcdGNsZWFySW50ZXJ2YWwoaWQpO1xuXHRcdH0pO1xuXHRcdHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0b3BDaGlsZCgpO1xuXHRcdHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0b3AoKTtcblx0XHRpZih3aW5kb3cuY291cnNld2FyZSAmJiB3aW5kb3cuY291cnNld2FyZS5jbG9zZU9zbW9GaW5nZXJSZWFkKSB7XG5cdFx0XHRpZiAodGhpcy5pc09wZW5lZE9zbW9GaW5nZXJSZWFkKSB7XG5cdFx0XHRcdHdpbmRvdy5jb3Vyc2V3YXJlLmNsb3NlT3Ntb0ZpbmdlclJlYWQoKVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXG5cblxuXG59KTtcbiJdfQ==
//------QC-SOURCE-SPLIT------

                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/OP15/script/state.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, '6acefvFAO9O7qvqEFnz5PJj', 'state');
// OP15/script/state.js

"use strict";

exports.__esModule = true;
exports.assign = o;
exports.createMachine = s;
exports.interpret = v;
exports.InterpreterStatus = void 0;

/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function t(t, n) {
  var e = "function" == typeof Symbol && t[Symbol.iterator];
  if (!e) return t;
  var r,
      o,
      i = e.call(t),
      a = [];

  try {
    for (; (void 0 === n || n-- > 0) && !(r = i.next()).done;) {
      a.push(r.value);
    }
  } catch (t) {
    o = {
      error: t
    };
  } finally {
    try {
      r && !r.done && (e = i["return"]) && e.call(i);
    } finally {
      if (o) throw o.error;
    }
  }

  return a;
}

var n;
exports.InterpreterStatus = n;
!function (t) {
  t[t.NotStarted = 0] = "NotStarted", t[t.Running = 1] = "Running", t[t.Stopped = 2] = "Stopped";
}(n || (exports.InterpreterStatus = n = {}));
var e = {
  type: "xstate.init"
};

function r(t) {
  return void 0 === t ? [] : [].concat(t);
}

function o(t) {
  return {
    type: "xstate.assign",
    assignment: t
  };
}

function i(t, n) {
  return "string" == typeof (t = "string" == typeof t && n && n[t] ? n[t] : t) ? {
    type: t
  } : "function" == typeof t ? {
    type: t.name,
    exec: t
  } : t;
}

function a(t) {
  return function (n) {
    return t === n;
  };
}

function u(t) {
  return "string" == typeof t ? {
    type: t
  } : t;
}

function c(t, n) {
  return {
    value: t,
    context: n,
    actions: [],
    changed: !1,
    matches: a(t)
  };
}

function f(t, n, e) {
  var r = n,
      o = !1;
  return [t.filter(function (t) {
    if ("xstate.assign" === t.type) {
      o = !0;
      var n = Object.assign({}, r);
      return "function" == typeof t.assignment ? n = t.assignment(r, e) : Object.keys(t.assignment).forEach(function (o) {
        n[o] = "function" == typeof t.assignment[o] ? t.assignment[o](r, e) : t.assignment[o];
      }), r = n, !1;
    }

    return !0;
  }), r, o];
}

function s(n, o) {
  void 0 === o && (o = {});
  var s = t(f(r(n.states[n.initial].entry).map(function (t) {
    return i(t, o.actions);
  }), n.context, e), 2),
      l = s[0],
      v = s[1],
      y = {
    config: n,
    _options: o,
    initialState: {
      value: n.initial,
      actions: l,
      context: v,
      matches: a(n.initial)
    },
    transition: function transition(e, o) {
      var s,
          l,
          v = "string" == typeof e ? {
        value: e,
        context: n.context
      } : e,
          p = v.value,
          g = v.context,
          d = u(o),
          x = n.states[p];

      if (x.on) {
        var m = r(x.on[d.type]);

        try {
          for (var h = function (t) {
            var n = "function" == typeof Symbol && Symbol.iterator,
                e = n && t[n],
                r = 0;
            if (e) return e.call(t);
            if (t && "number" == typeof t.length) return {
              next: function next() {
                return t && r >= t.length && (t = void 0), {
                  value: t && t[r++],
                  done: !t
                };
              }
            };
            throw new TypeError(n ? "Object is not iterable." : "Symbol.iterator is not defined.");
          }(m), b = h.next(); !b.done; b = h.next()) {
            var S = b.value;
            if (void 0 === S) return c(p, g);

            var w = "string" == typeof S ? {
              target: S
            } : S,
                j = w.target,
                E = w.actions,
                R = void 0 === E ? [] : E,
                N = w.cond,
                O = void 0 === N ? function () {
              return !0;
            } : N,
                _ = void 0 === j,
                k = null != j ? j : p,
                T = n.states[k];

            if (O(g, d)) {
              var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter(function (t) {
                return t;
              })).map(function (t) {
                return i(t, y._options.actions);
              }), g, d), 3),
                  z = q[0],
                  A = q[1],
                  B = q[2],
                  C = null != j ? j : p;
              return {
                value: C,
                context: A,
                actions: z,
                changed: j !== p || z.length > 0 || B,
                matches: a(C)
              };
            }
          }
        } catch (t) {
          s = {
            error: t
          };
        } finally {
          try {
            b && !b.done && (l = h["return"]) && l.call(h);
          } finally {
            if (s) throw s.error;
          }
        }
      }

      return c(p, g);
    }
  };
  return y;
}

var l = function l(t, n) {
  return t.actions.forEach(function (e) {
    var r = e.exec;
    return r && r(t.context, n);
  });
};

function v(t) {
  var r = t.initialState,
      o = n.NotStarted,
      i = new Set(),
      c = {
    _machine: t,
    send: function send(e) {
      o === n.Running && (r = t.transition(r, e), l(r, u(e)), i.forEach(function (t) {
        return t(r);
      }));
    },
    subscribe: function subscribe(t) {
      return i.add(t), t(r), {
        unsubscribe: function unsubscribe() {
          return i["delete"](t);
        }
      };
    },
    start: function start(i) {
      if (i) {
        var u = "object" == typeof i ? i : {
          context: t.config.context,
          value: i
        };
        r = {
          value: u.value,
          actions: [],
          context: u.context,
          matches: a(u.value)
        };
      }

      return o = n.Running, l(r, e), c;
    },
    stop: function stop() {
      return o = n.Stopped, i.clear(), c;
    },

    get state() {
      return r;
    },

    get status() {
      return o;
    }

  };
  return c;
}

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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC9zdGF0ZS5qcyJdLCJuYW1lcyI6WyJ0IiwibiIsImUiLCJTeW1ib2wiLCJpdGVyYXRvciIsInIiLCJvIiwiaSIsImNhbGwiLCJhIiwibmV4dCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJlcnJvciIsIk5vdFN0YXJ0ZWQiLCJSdW5uaW5nIiwiU3RvcHBlZCIsInR5cGUiLCJjb25jYXQiLCJhc3NpZ25tZW50IiwibmFtZSIsImV4ZWMiLCJ1IiwiYyIsImNvbnRleHQiLCJhY3Rpb25zIiwiY2hhbmdlZCIsIm1hdGNoZXMiLCJmIiwiZmlsdGVyIiwiT2JqZWN0IiwiYXNzaWduIiwia2V5cyIsImZvckVhY2giLCJzIiwic3RhdGVzIiwiaW5pdGlhbCIsImVudHJ5IiwibWFwIiwibCIsInYiLCJ5IiwiY29uZmlnIiwiX29wdGlvbnMiLCJpbml0aWFsU3RhdGUiLCJ0cmFuc2l0aW9uIiwicCIsImciLCJkIiwieCIsIm9uIiwibSIsImgiLCJsZW5ndGgiLCJUeXBlRXJyb3IiLCJiIiwiUyIsInciLCJ0YXJnZXQiLCJqIiwiRSIsIlIiLCJOIiwiY29uZCIsIk8iLCJfIiwiayIsIlQiLCJxIiwiZXhpdCIsInoiLCJBIiwiQiIsIkMiLCJTZXQiLCJfbWFjaGluZSIsInNlbmQiLCJzdWJzY3JpYmUiLCJhZGQiLCJ1bnN1YnNjcmliZSIsInN0YXJ0Iiwic3RvcCIsImNsZWFyIiwic3RhdGUiLCJzdGF0dXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLENBQVQsQ0FBV0EsQ0FBWCxFQUFhQyxDQUFiLEVBQWU7QUFBQyxNQUFJQyxDQUFDLEdBQUMsY0FBWSxPQUFPQyxNQUFuQixJQUEyQkgsQ0FBQyxDQUFDRyxNQUFNLENBQUNDLFFBQVIsQ0FBbEM7QUFBb0QsTUFBRyxDQUFD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LFNBQTNCO0FBQThERixRQUFBQSxDQUFDLEdBQUM7QUFBQ1EsVUFBQUEsS0FBSyxFQUFDVSxDQUFDLENBQUNWLEtBQVQ7QUFBZWEsVUFBQUEsT0FBTyxFQUFDLEVBQXZCO0FBQTBCRCxVQUFBQSxPQUFPLEVBQUNGLENBQUMsQ0FBQ0UsT0FBcEM7QUFBNENHLFVBQUFBLE9BQU8sRUFBQ25CLENBQUMsQ0FBQ2MsQ0FBQyxDQUFDVixLQUFIO0FBQXJELFNBQUY7QUFBa0U7O0FBQUEsYUFBT1AsQ0FBQyxHQUFDTCxDQUFDLENBQUNlLE9BQUosRUFBWXdCLENBQUMsQ0FBQ25DLENBQUQsRUFBR0gsQ0FBSCxDQUFiLEVBQW1Cc0IsQ0FBMUI7QUFBNEIsS0FBaFk7QUFBaVkwRCxJQUFBQSxJQUFJLEVBQUMsZ0JBQVU7QUFBQyxhQUFPNUUsQ0FBQyxHQUFDTCxDQUFDLENBQUNnQixPQUFKLEVBQVlWLENBQUMsQ0FBQzRFLEtBQUYsRUFBWixFQUFzQjNELENBQTdCO0FBQStCLEtBQWhiOztBQUFpYixRQUFJNEQsS0FBSixHQUFXO0FBQUMsYUFBTy9FLENBQVA7QUFBUyxLQUF0Yzs7QUFBdWMsUUFBSWdGLE1BQUosR0FBWTtBQUFDLGFBQU8vRSxDQUFQO0FBQVM7O0FBQTdkLEdBQWhEO0FBQStnQixTQUFPa0IsQ0FBUDtBQUFTIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxuXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbmZ1bmN0aW9uIHQodCxuKXt2YXIgZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXTtpZighZSlyZXR1cm4gdDt2YXIgcixvLGk9ZS5jYWxsKHQpLGE9W107dHJ5e2Zvcig7KHZvaWQgMD09PW58fG4tLSA+MCkmJiEocj1pLm5leHQoKSkuZG9uZTspYS5wdXNoKHIudmFsdWUpfWNhdGNoKHQpe289e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3ImJiFyLmRvbmUmJihlPWkucmV0dXJuKSYmZS5jYWxsKGkpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1yZXR1cm4gYX12YXIgbjshZnVuY3Rpb24odCl7dFt0Lk5vdFN0YXJ0ZWQ9MF09XCJOb3RTdGFydGVkXCIsdFt0LlJ1bm5pbmc9MV09XCJSdW5uaW5nXCIsdFt0LlN0b3BwZWQ9Ml09XCJTdG9wcGVkXCJ9KG58fChuPXt9KSk7dmFyIGU9e3R5cGU6XCJ4c3RhdGUuaW5pdFwifTtmdW5jdGlvbiByKHQpe3JldHVybiB2b2lkIDA9PT10P1tdOltdLmNvbmNhdCh0KX1mdW5jdGlvbiBvKHQpe3JldHVybnt0eXBlOlwieHN0YXRlLmFzc2lnblwiLGFzc2lnbm1lbnQ6dH19ZnVuY3Rpb24gaSh0LG4pe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZih0PVwic3RyaW5nXCI9PXR5cGVvZiB0JiZuJiZuW3RdP25bdF06dCk/e3R5cGU6dH06XCJmdW5jdGlvblwiPT10eXBlb2YgdD97dHlwZTp0Lm5hbWUsZXhlYzp0fTp0fWZ1bmN0aW9uIGEodCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0PT09bn19ZnVuY3Rpb24gdSh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD97dHlwZTp0fTp0fWZ1bmN0aW9uIGModCxuKXtyZXR1cm57dmFsdWU6dCxjb250ZXh0Om4sYWN0aW9uczpbXSxjaGFuZ2VkOiExLG1hdGNoZXM6YSh0KX19ZnVuY3Rpb24gZih0LG4sZSl7dmFyIHI9bixvPSExO3JldHVyblt0LmZpbHRlcigoZnVuY3Rpb24odCl7aWYoXCJ4c3RhdGUuYXNzaWduXCI9PT10LnR5cGUpe289ITA7dmFyIG49T2JqZWN0LmFzc2lnbih7fSxyKTtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmFzc2lnbm1lbnQ/bj10LmFzc2lnbm1lbnQocixlKTpPYmplY3Qua2V5cyh0LmFzc2lnbm1lbnQpLmZvckVhY2goKGZ1bmN0aW9uKG8pe25bb109XCJmdW5jdGlvblwiPT10eXBlb2YgdC5hc3NpZ25tZW50W29dP3QuYXNzaWdubWVudFtvXShyLGUpOnQuYXNzaWdubWVudFtvXX0pKSxyPW4sITF9cmV0dXJuITB9KSkscixvXX1mdW5jdGlvbiBzKG4sbyl7dm9pZCAwPT09byYmKG89e30pO3ZhciBzPXQoZihyKG4uc3RhdGVzW24uaW5pdGlhbF0uZW50cnkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGkodCxvLmFjdGlvbnMpfSkpLG4uY29udGV4dCxlKSwyKSxsPXNbMF0sdj1zWzFdLHk9e2NvbmZpZzpuLF9vcHRpb25zOm8saW5pdGlhbFN0YXRlOnt2YWx1ZTpuLmluaXRpYWwsYWN0aW9uczpsLGNvbnRleHQ6dixtYXRjaGVzOmEobi5pbml0aWFsKX0sdHJhbnNpdGlvbjpmdW5jdGlvbihlLG8pe3ZhciBzLGwsdj1cInN0cmluZ1wiPT10eXBlb2YgZT97dmFsdWU6ZSxjb250ZXh0Om4uY29udGV4dH06ZSxwPXYudmFsdWUsZz12LmNvbnRleHQsZD11KG8pLHg9bi5zdGF0ZXNbcF07aWYoeC5vbil7dmFyIG09cih4Lm9uW2QudHlwZV0pO3RyeXtmb3IodmFyIGg9ZnVuY3Rpb24odCl7dmFyIG49XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3IsZT1uJiZ0W25dLHI9MDtpZihlKXJldHVybiBlLmNhbGwodCk7aWYodCYmXCJudW1iZXJcIj09dHlwZW9mIHQubGVuZ3RoKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJnI+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W3IrK10sZG9uZTohdH19fTt0aHJvdyBuZXcgVHlwZUVycm9yKG4/XCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiOlwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKX0obSksYj1oLm5leHQoKTshYi5kb25lO2I9aC5uZXh0KCkpe3ZhciBTPWIudmFsdWU7aWYodm9pZCAwPT09UylyZXR1cm4gYyhwLGcpO3ZhciB3PVwic3RyaW5nXCI9PXR5cGVvZiBTP3t0YXJnZXQ6U306UyxqPXcudGFyZ2V0LEU9dy5hY3Rpb25zLFI9dm9pZCAwPT09RT9bXTpFLE49dy5jb25kLE89dm9pZCAwPT09Tj9mdW5jdGlvbigpe3JldHVybiEwfTpOLF89dm9pZCAwPT09aixrPW51bGwhPWo/ajpwLFQ9bi5zdGF0ZXNba107aWYoTyhnLGQpKXt2YXIgcT10KGYoKF8/cihSKTpbXS5jb25jYXQoeC5leGl0LFIsVC5lbnRyeSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gaSh0LHkuX29wdGlvbnMuYWN0aW9ucyl9KSksZyxkKSwzKSx6PXFbMF0sQT1xWzFdLEI9cVsyXSxDPW51bGwhPWo/ajpwO3JldHVybnt2YWx1ZTpDLGNvbnRleHQ6QSxhY3Rpb25zOnosY2hhbmdlZDpqIT09cHx8ei5sZW5ndGg+MHx8QixtYXRjaGVzOmEoQyl9fX19Y2F0Y2godCl7cz17ZXJyb3I6dH19ZmluYWxseXt0cnl7YiYmIWIuZG9uZSYmKGw9aC5yZXR1cm4pJiZsLmNhbGwoaCl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fX1yZXR1cm4gYyhwLGcpfX07cmV0dXJuIHl9dmFyIGw9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5hY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPWUuZXhlYztyZXR1cm4gciYmcih0LmNvbnRleHQsbil9KSl9O2Z1bmN0aW9uIHYodCl7dmFyIHI9dC5pbml0aWFsU3RhdGUsbz1uLk5vdFN0YXJ0ZWQsaT1uZXcgU2V0LGM9e19tYWNoaW5lOnQsc2VuZDpmdW5jdGlvbihlKXtvPT09bi5SdW5uaW5nJiYocj10LnRyYW5zaXRpb24ocixlKSxsKHIsdShlKSksaS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdChyKX0pKSl9LHN1YnNjcmliZTpmdW5jdGlvbih0KXtyZXR1cm4gaS5hZGQodCksdChyKSx7dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXtyZXR1cm4gaS5kZWxldGUodCl9fX0sc3RhcnQ6ZnVuY3Rpb24oaSl7aWYoaSl7dmFyIHU9XCJvYmplY3RcIj09dHlwZW9mIGk/aTp7Y29udGV4dDp0LmNvbmZpZy5jb250ZXh0LHZhbHVlOml9O3I9e3ZhbHVlOnUudmFsdWUsYWN0aW9uczpbXSxjb250ZXh0OnUuY29udGV4dCxtYXRjaGVzOmEodS52YWx1ZSl9fXJldHVybiBvPW4uUnVubmluZyxsKHIsZSksY30sc3RvcDpmdW5jdGlvbigpe3JldHVybiBvPW4uU3RvcHBlZCxpLmNsZWFyKCksY30sZ2V0IHN0YXRlKCl7cmV0dXJuIHJ9LGdldCBzdGF0dXMoKXtyZXR1cm4gb319O3JldHVybiBjfWV4cG9ydHtuIGFzIEludGVycHJldGVyU3RhdHVzLG8gYXMgYXNzaWduLHMgYXMgY3JlYXRlTWFjaGluZSx2IGFzIGludGVycHJldH07XG4iXX0=
//------QC-SOURCE-SPLIT------

                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/OP15/script/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, 'ade7a9A1W1Ah7vGKIj+9VNT', 'util');
// OP15/script/util.js

"use strict";

exports.__esModule = true;
exports.getPosByAngle = getPosByAngle;
exports.getAngleByPos = getAngleByPos;
exports.exchangeNodePos = exchangeNodePos;
exports.RandomInt = RandomInt;
exports.randomSortByArr = randomSortByArr;
exports.setSprNodeMaxLen = setSprNodeMaxLen;
exports.localPosTolocalPos = localPosTolocalPos;
exports.worldPosToLocalPos = worldPosToLocalPos;
exports.getScaleRateBy2Node = getScaleRateBy2Node;
exports.getDistance = getDistance;
exports.playAudioByUrl = playAudioByUrl;
exports.btnClickAnima = btnClickAnima;
exports.getSpriteFrimeByUrl = getSpriteFrimeByUrl;
exports.getSprNode = getSprNode;
exports.getSprNodeByUrl = getSprNodeByUrl;
exports.playAudio = playAudio;
exports.asyncDelay = asyncDelay;
exports.showFireworks = showFireworks;
exports.asyncTweenTo = asyncTweenTo;
exports.asyncTweenBy = asyncTweenBy;
exports.showTrebleFirework = showTrebleFirework;
exports.onHomeworkFinish = onHomeworkFinish;
exports.loadDragonBones = loadDragonBones;
exports.loadSpine = loadSpine;
exports.FireworkSettings = void 0;

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }

function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }

function getPosByAngle(angle, len) {
  var radian = angle * Math.PI / 180;
  var x = Math.sin(radian) * len;
  var y = Math.cos(radian) * len;
  return {
    x: x,
    y: y
  };
}

function getAngleByPos(px, py, mx, my) {
  var x = Math.abs(px - mx);
  var y = Math.abs(py - my);
  var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
  var cos = y / z;
  var radina = Math.acos(cos); // 用反三角函数求弧度

  var angle = Math.floor(180 / (Math.PI / radina) * 100) / 100; // 将弧度转换成角度

  if (mx > px && my > py) {
    // 鼠标在第四象限
    angle = 180 - angle;
  }

  if (mx === px && my > py) {
    // 鼠标在y轴负方向上
    angle = 180;
  }

  if (mx > px && my === py) {
    // 鼠标在x轴正方向上
    angle = 90;
  }

  if (mx < px && my > py) {
    // 鼠标在第三象限
    angle = 180 + angle;
  }

  if (mx < px && my === py) {
    // 鼠标在x轴负方向
    angle = 270;
  }

  if (mx < px && my < py) {
    // 鼠标在第二象限
    angle = 360 - angle;
  } // console.log('angle: ', angle);


  return angle;
}

function exchangeNodePos(baseNode, targetNode) {
  return baseNode.convertToNodeSpaceAR(targetNode._parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y)));
}

function RandomInt(a, b) {
  if (b === void 0) {
    b = 0;
  }

  var max = Math.max(a, b);
  var min = Math.min(a, b);
  return Math.floor(Math.random() * (max - min) + min);
}

function randomSortByArr(arr) {
  var newArr = [];
  var tmpArr = arr.concat();

  while (tmpArr.length > 0) {
    var randomIndex = Math.floor(tmpArr.length * Math.random());
    newArr.push(tmpArr[randomIndex]);
    tmpArr.splice(randomIndex, 1);
  }

  return newArr;
}

function setSprNodeMaxLen(sprNode, maxW, maxH) {
  var sx = maxW / sprNode.width;
  var sy = maxH / sprNode.height;
  var s = Math.min(sx, sy);
  sprNode.scale = Math.round(s * 1000) / 1000;
}

function localPosTolocalPos(baseNode, targetNode) {
  var worldPos = targetNode.parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y));
  var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y));
  return localPos;
}

function worldPosToLocalPos(worldPos, baseNode) {
  var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y));
  return localPos;
}

function getScaleRateBy2Node(baseNode, targetNode, maxFlag) {
  if (maxFlag === void 0) {
    maxFlag = true;
  }

  var worldRect1 = targetNode.getBoundingBoxToWorld();
  var worldRect2 = baseNode.getBoundingBoxToWorld();
  var sx = worldRect1.width / worldRect2.width;
  var sy = worldRect1.height / worldRect2.height;

  if (maxFlag) {
    return Math.max(sx, sy);
  } else {
    return Math.min(sx, sy);
  }
}

function getDistance(start, end) {
  var pos = cc.v2(start.x - end.x, start.y - end.y);
  var dis = Math.sqrt(pos.x * pos.x + pos.y * pos.y);
  return dis;
}

function playAudioByUrl(audio_url, cb) {
  if (cb === void 0) {
    cb = null;
  }

  if (audio_url) {
    if (audio_url instanceof cc.AudioClip && audio_url.constructor.name == 'cc_AudioClip') {
      var audioId = cc.audioEngine.play(audio_url, false, 0.8);

      if (cb) {
        cc.audioEngine.setFinishCallback(audioId, function () {
          cb();
        });
      }
    } else {
      cc.assetManager.loadRemote(audio_url, function (err, audioClip) {
        var audioId = cc.audioEngine.play(audioClip, false, 0.8);

        if (cb) {
          cc.audioEngine.setFinishCallback(audioId, function () {
            cb();
          });
        }
      });
    }
  }
}

function btnClickAnima(btn, time, rate) {
  if (time === void 0) {
    time = 0.15;
  }

  if (rate === void 0) {
    rate = 1.05;
  }

  btn.tmpScale = btn.scale;
  btn.on(cc.Node.EventType.TOUCH_START, function () {
    cc.tween(btn).to(time / 2, {
      scale: btn.scale * rate
    }).start();
  });
  btn.on(cc.Node.EventType.TOUCH_CANCEL, function () {
    cc.tween(btn).to(time / 2, {
      scale: btn.tmpScale
    }).start();
  });
  btn.on(cc.Node.EventType.TOUCH_END, function () {
    cc.tween(btn).to(time / 2, {
      scale: btn.tmpScale
    }).start();
  });
}

function getSpriteFrimeByUrl(url, cb) {
  cc.loader.load({
    url: url
  }, function (err, img) {
    var spriteFrame = new cc.SpriteFrame(img);

    if (cb) {
      cb(spriteFrame);
    }
  });
}

function getSprNode(resName) {
  var sf = cc.find('Canvas/res/img/' + resName).getComponent(cc.Sprite).spriteFrame;
  var node = new cc.Node();
  node.addComponent(cc.Sprite).spriteFrame = sf;
  return node;
}

function getSprNodeByUrl(url, cb) {
  var node = new cc.Node();
  var spr = node.addComponent(cc.Sprite);
  getSpriteFrimeByUrl(url, function (sf) {
    spr.spriteFrame = sf;

    if (cb) {
      cb(spr);
    }
  });
}

function playAudio(audioClip, cb) {
  if (cb === void 0) {
    cb = null;
  }

  if (audioClip) {
    var audioId = cc.audioEngine.playEffect(audioClip, false, 0.8);

    if (cb) {
      cc.audioEngine.setFinishCallback(audioId, function () {
        cb();
      });
    }
  }
}

function asyncDelay(_x) {
  return _asyncDelay.apply(this, arguments);
}

function _asyncDelay() {
  _asyncDelay = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(time) {
    return regeneratorRuntime.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            return _context.abrupt("return", new Promise(function (resolve, reject) {
              try {
                setTimeout(function () {
                  resolve();
                }, time * 1000);
              } catch (e) {
                reject(e);
              }
            }));

          case 1:
          case "end":
            return _context.stop();
        }
      }
    }, _callee);
  }));
  return _asyncDelay.apply(this, arguments);
}

var FireworkSettings = /*#__PURE__*/function () {
  // 父节点
  // 火花节点的array
  // 发射点
  // 发射方向
  // 扩散范围
  // 发射数量
  // 缩放范围
  function FireworkSettings(baseNode, nodeList, pos, side, range, number, scalseRange) {
    if (pos === void 0) {
      pos = cc.v2(0, 0);
    }

    if (side === void 0) {
      side = cc.v2(0, 100);
    }

    if (range === void 0) {
      range = 50;
    }

    if (number === void 0) {
      number = 100;
    }

    if (scalseRange === void 0) {
      scalseRange = 0;
    }

    this.baseNode = void 0;
    this.nodeList = void 0;
    this.pos = void 0;
    this.side = void 0;
    this.range = void 0;
    this.number = void 0;
    this.scalseRange = void 0;
    this.baseNode = baseNode;
    this.nodeList = nodeList;
    this.pos = pos;
    this.side = side;
    this.range = range;
    this.number = number;
    this.scalseRange = scalseRange;
  }

  FireworkSettings.copy = function copy(firework) {
    return new FireworkSettings(firework.baseNode, firework.nodeList, firework.pos, firework.side, firework.range, firework.number);
  };

  return FireworkSettings;
}();

exports.FireworkSettings = FireworkSettings;

function showFireworks(_x2) {
  return _showFireworks.apply(this, arguments);
}

function _showFireworks() {
  _showFireworks = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(fireworkSettings) {
    var baseNode, nodeList, pos, side, range, number, scalseRange;
    return regeneratorRuntime.wrap(function _callee3$(_context3) {
      while (1) {
        switch (_context3.prev = _context3.next) {
          case 0:
            baseNode = fireworkSettings.baseNode, nodeList = fireworkSettings.nodeList, pos = fireworkSettings.pos, side = fireworkSettings.side, range = fireworkSettings.range, number = fireworkSettings.number, scalseRange = fireworkSettings.scalseRange;
            new Array(number).fill(' ').forEach( /*#__PURE__*/function () {
              var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_, i) {
                var rabbonNode, node, rate, angle;
                return regeneratorRuntime.wrap(function _callee2$(_context2) {
                  while (1) {
                    switch (_context2.prev = _context2.next) {
                      case 0:
                        rabbonNode = new cc.Node();
                        rabbonNode.parent = baseNode;
                        rabbonNode.x = pos.x;
                        rabbonNode.y = pos.y;
                        rabbonNode.angle = 60 * Math.random() - 30;
                        node = cc.instantiate(nodeList[RandomInt(nodeList.length)]);
                        node.parent = rabbonNode;
                        node.active = true;
                        node.x = 0;
                        node.y = 0;
                        node.angle = 0;
                        node.scale = (Math.random() - 0.5) * scalseRange + 1;
                        rate = Math.random();
                        angle = Math.PI * (Math.random() * 2 - 1);
                        _context2.next = 16;
                        return asyncTweenBy(rabbonNode, 0.3, {
                          x: side.x * rate + Math.cos(angle) * range * rate,
                          y: side.y * rate + Math.sin(angle) * range * rate
                        }, {
                          easing: 'quadIn'
                        });

                      case 16:
                        cc.tween(rabbonNode).by(8, {
                          y: -2000
                        }).start();
                        cc.tween(rabbonNode).to(5, {
                          scale: (Math.random() - 0.5) * scalseRange + 1
                        }).start();
                        rabbonFall(rabbonNode);
                        _context2.next = 21;
                        return asyncDelay(Math.random());

                      case 21:
                        cc.tween(node).by(0.15, {
                          x: -10,
                          angle: -10
                        }).by(0.3, {
                          x: 20,
                          angle: 20
                        }).by(0.15, {
                          x: -10,
                          angle: -10
                        }).union().repeatForever().start();
                        cc.tween(rabbonNode).delay(5).to(0.3, {
                          opacity: 0
                        }).call(function () {
                          node.stopAllActions();
                          node.active = false;
                          node.parent = null;
                          node = null;
                        }).start();

                      case 23:
                      case "end":
                        return _context2.stop();
                    }
                  }
                }, _callee2);
              }));

              return function (_x12, _x13) {
                return _ref3.apply(this, arguments);
              };
            }());

          case 2:
          case "end":
            return _context3.stop();
        }
      }
    }, _callee3);
  }));
  return _showFireworks.apply(this, arguments);
}

function rabbonFall(_x3) {
  return _rabbonFall.apply(this, arguments);
}

function _rabbonFall() {
  _rabbonFall = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(node) {
    var time, offsetX;
    return regeneratorRuntime.wrap(function _callee4$(_context4) {
      while (1) {
        switch (_context4.prev = _context4.next) {
          case 0:
            time = 1 + Math.random();
            offsetX = RandomInt(-200, 200) * time;
            _context4.next = 4;
            return asyncTweenBy(node, time, {
              x: offsetX,
              angle: offsetX * 60 / 200
            });

          case 4:
            rabbonFall(node);

          case 5:
          case "end":
            return _context4.stop();
        }
      }
    }, _callee4);
  }));
  return _rabbonFall.apply(this, arguments);
}

function asyncTweenTo(_x4, _x5, _x6, _x7) {
  return _asyncTweenTo.apply(this, arguments);
}

function _asyncTweenTo() {
  _asyncTweenTo = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(node, duration, obj, ease) {
    return regeneratorRuntime.wrap(function _callee5$(_context5) {
      while (1) {
        switch (_context5.prev = _context5.next) {
          case 0:
            if (ease === void 0) {
              ease = undefined;
            }

            return _context5.abrupt("return", new Promise(function (resolve, reject) {
              try {
                cc.tween(node).to(duration, obj, ease).call(function () {
                  resolve();
                }).start();
              } catch (e) {
                reject(e);
              }
            }));

          case 2:
          case "end":
            return _context5.stop();
        }
      }
    }, _callee5);
  }));
  return _asyncTweenTo.apply(this, arguments);
}

function asyncTweenBy(_x8, _x9, _x10, _x11) {
  return _asyncTweenBy.apply(this, arguments);
}

function _asyncTweenBy() {
  _asyncTweenBy = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(node, duration, obj, ease) {
    return regeneratorRuntime.wrap(function _callee6$(_context6) {
      while (1) {
        switch (_context6.prev = _context6.next) {
          case 0:
            if (ease === void 0) {
              ease = undefined;
            }

            return _context6.abrupt("return", new Promise(function (resolve, reject) {
              try {
                cc.tween(node).by(duration, obj, ease).call(function () {
                  resolve();
                }).start();
              } catch (e) {
                reject(e);
              }
            }));

          case 2:
          case "end":
            return _context6.stop();
        }
      }
    }, _callee6);
  }));
  return _asyncTweenBy.apply(this, arguments);
}

function showTrebleFirework(baseNode, rabbonList) {
  var middle = new FireworkSettings(baseNode, rabbonList);
  middle.pos = cc.v2(0, -400);
  middle.side = cc.v2(0, 1000);
  middle.range = 200;
  middle.number = 100;
  middle.scalseRange = 0.4;
  var left = FireworkSettings.copy(middle);
  left.pos = cc.v2(-600, -400);
  left.side = cc.v2(200, 1000);
  var right = FireworkSettings.copy(middle);
  right.pos = cc.v2(600, -400);
  right.side = cc.v2(-200, 1000);
  showFireworks(middle);
  showFireworks(left);
  showFireworks(right);
}

function onHomeworkFinish() {
  var middleLayer = cc.find('middleLayer');

  if (middleLayer) {
    var middleLayerComponent = middleLayer.getComponent('middleLayer');

    if (middleLayerComponent.role == 'student') {
      middleLayerComponent.onHomeworkFinish(function () {});
    }
  } else {
    console.log('onHomeworkFinish');
  }
}

function loadDragonBones(dragonDisplay, _ref) {
  var tex = _ref.tex,
      atlas = _ref.atlas,
      ske = _ref.ske;
  return new Promise(function (resolve, reject) {
    cc.loader.load({
      url: tex,
      type: 'png'
    }, function (error, texture) {
      if (error) {
        reject();
        return;
      }

      cc.loader.load({
        url: atlas,
        type: 'txt'
      }, function (error, atlasJson) {
        if (error) {
          reject();
          return;
        }

        cc.loader.load({
          url: ske,
          type: 'txt'
        }, function (error, dragonBonesJson) {
          if (error) {
            reject();
            return;
          }

          var atlasObj = new dragonBones.DragonBonesAtlasAsset();
          atlasObj.uuid = atlas;
          atlasObj.atlasJson = atlasJson;
          atlasObj.texture = texture;
          var asset = new dragonBones.DragonBonesAsset();
          asset.uuid = ske;
          asset.dragonBonesJson = dragonBonesJson;
          var armatureName = asset._dragonBonesJsonData.armature[0].name || 'default';
          dragonDisplay.armatureName = armatureName;
          dragonDisplay.dragonAtlasAsset = atlasObj;
          dragonDisplay.dragonAsset = asset;
          resolve(asset._dragonBonesJsonData.armature[0].aabb);
        });
      });
    });
  });
}

function loadSpine(skeleton, picName, _ref2) {
  var tex = _ref2.tex,
      atlas = _ref2.atlas,
      ske = _ref2.ske;
  return new Promise(function (resolve, reject) {
    // cc.loader.load({ url: tex, type: 'png' }, (error, texture) => {
    cc.assetManager.loadRemote(tex, function (error, texture) {
      if (error) {
        reject();
        return;
      } // cc.loader.load({ url: atlas, type: 'txt' }, (error, atlasJson) => {


      cc.assetManager.loadAny({
        url: atlas
      }, function (error, atlasJson) {
        if (error) {
          reject();
          return;
        } // cc.loader.load({ url: ske, type: 'txt' }, (error, dragonBonesJson) => {


        cc.assetManager.loadAny({
          url: ske
        }, function (error, dragonBonesJson) {
          if (error) {
            reject();
            return;
          }

          var asset = new sp.SkeletonData();
          asset._uuid = ske;
          asset.skeletonJson = JSON.stringify(dragonBonesJson);
          asset.atlasText = atlasJson;
          asset.textures = [texture];
          asset.textureNames = [picName];
          console.log('picName: ', picName);
          skeleton.skeletonData = asset;
          var jsonObj = dragonBonesJson; //JSON.parse( assets[1]);

          var animationNameObj = jsonObj.animations;
          var animationNames = [];

          for (var name in animationNameObj) {
            console.log('name~~:  ', name);
            animationNames.push(name);
          }

          console.log("skeleton.animation: ", skeleton.animation);
          skeleton.animationNames = animationNames;
          skeleton.loop = false;
          console.log("jsonObj['skeleton'] : ", jsonObj['skeleton']);
          resolve(jsonObj['skeleton']); // const atlasObj = new dragonBones.DragonBonesAtlasAsset()
          // atlasObj.uuid = atlas
          // atlasObj.atlasJson = atlasJson
          // atlasObj.texture = texture
          // const asset = new dragonBones.DragonBonesAsset()
          // asset.uuid = ske
          // asset.dragonBonesJson = dragonBonesJson;
          // const armatureName = asset._dragonBonesJsonData.armature[0].name || 'default';
          // dragonDisplay.armatureName = armatureName;
          // dragonDisplay.dragonAtlasAsset = atlasObj
          // dragonDisplay.dragonAsset = asset;
          // resolve(asset._dragonBonesJsonData.armature[0].aabb);
        });
      });
    });
  });
}

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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC91dGlsLmpzIl0sIm5hbWVzIjpbImdldFBvc0J5QW5nbGUiLCJhbmdsZSIsImxlbiIsInJhZGlhbiIsIk1hdGgiLCJQSSIsIngiLCJzaW4iLCJ5IiwiY29zIiwiZ2V0QW5nbGVCeVBvcyIsInB4IiwicHkiLCJteCIsIm15IiwiYWJzIiwieiIsInNxcnQiLCJwb3ciLCJyYWRpbmEiLCJhY29zIiwiZmxvb3IiLCJleGNoYW5nZU5vZGVQb3MiLCJiYXNlTm9kZSIsInRhcmdldE5vZGUiLCJjb252ZXJ0VG9Ob2RlU3BhY2VBUiIsIl9wYXJlbnQiLCJjb252ZXJ0VG9Xb3JsZFNwYWNlQVIiLCJjYyIsInYyIiwiUmFuZG9tSW50IiwiYSIsImIiLCJtYXgiLCJtaW4iLCJyYW5kb20iLCJyYW5kb21Tb3J0QnlBcnIiLCJhcnIiLCJuZXdBcnIiLCJ0bXBBcnIiLCJjb25jYXQiLCJsZW5ndGgiLCJyYW5kb21JbmRleCIsInB1c2giLCJzcGxpY2UiLCJzZXRTcHJOb2RlTWF4TGVuIiwic3ByTm9kZSIsIm1heFciLCJtYXhIIiwic3giLCJ3aWR0aCIsInN5IiwiaGVpZ2h0IiwicyIsInNjYWxlIiwicm91bmQiLCJsb2NhbFBvc1RvbG9jYWxQb3MiLCJ3b3JsZFBvcyIsInBhcmVudCIsImxvY2FsUG9zIiwid29ybGRQb3NUb0xvY2FsUG9zIiwiZ2V0U2NhbGVSYXRlQnkyTm9kZSIsIm1heEZsYWciLCJ3b3JsZFJlY3QxIiwiZ2V0Qm91bmRpbmdCb3hUb1dvcmxkIiwid29ybGRSZWN0MiIsImdldERpc3RhbmNlIiwic3RhcnQiLCJlbmQiLCJwb3MiLCJkaXMiLCJwbGF5QXVkaW9CeVVybCIsImF1ZGlvX3VybCIsImNiIiwiQXVkaW9DbGlwIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiYXVkaW9JZCIsImF1ZGlvRW5naW5lIiwicGxheSIsInNldEZpbmlzaENhbGxiYWNrIiwiYXNzZXRNYW5hZ2VyIiwibG9hZFJlbW90ZSIsImVyciIsImF1ZGlvQ2xpcCIsImJ0bkNsaWNrQW5pbWEiLCJidG4iLCJ0aW1lIiwicmF0ZSIsInRtcFNjYWxlIiwib24iLCJOb2RlIiwiRXZlbnRUeXBlIiwiVE9VQ0hfU1RBUlQiLCJ0d2VlbiIsInRvIiwiVE9VQ0hfQ0FOQ0VMIiwiVE9VQ0hfRU5EIiwiZ2V0U3ByaXRlRnJpbWVCeVVybCIsInVybCIsImxvYWRlciIsImxvYWQiLCJpbWciLCJzcHJpdGVGcmFtZSIsIlNwcml0ZUZyYW1lIiwiZ2V0U3ByTm9kZSIsInJlc05hbWUiLCJzZiIsImZpbmQiLCJnZXRDb21wb25lbnQiLCJTcHJpdGUiLCJub2RlIiwiYWRkQ29tcG9uZW50IiwiZ2V0U3ByTm9kZUJ5VXJsIiwic3ByIiwicGxheUF1ZGlvIiwicGxheUVmZmVjdCIsImFzeW5jRGVsYXkiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInNldFRpbWVvdXQiLCJlIiwiRmlyZXdvcmtTZXR0aW5ncyIsIm5vZGVMaXN0Iiwic2lkZSIsInJhbmdlIiwibnVtYmVyIiwic2NhbHNlUmFuZ2UiLCJjb3B5IiwiZmlyZXdvcmsiLCJzaG93RmlyZXdvcmtzIiwiZmlyZXdvcmtTZXR0aW5ncyIsIkFycmF5IiwiZmlsbCIsImZvckVhY2giLCJfIiwiaSIsInJhYmJvbk5vZGUiLCJpbnN0YW50aWF0ZSIsImFjdGl2ZSIsImFzeW5jVHdlZW5CeSIsImVhc2luZyIsImJ5IiwicmFiYm9uRmFsbCIsInVuaW9uIiwicmVwZWF0Rm9yZXZlciIsImRlbGF5Iiwib3BhY2l0eSIsImNhbGwiLCJzdG9wQWxsQWN0aW9ucyIsIm9mZnNldFgiLCJhc3luY1R3ZWVuVG8iLCJkdXJhdGlvbiIsIm9iaiIsImVhc2UiLCJ1bmRlZmluZWQiLCJzaG93VHJlYmxlRmlyZXdvcmsiLCJyYWJib25MaXN0IiwibWlkZGxlIiwibGVmdCIsInJpZ2h0Iiwib25Ib21ld29ya0ZpbmlzaCIsIm1pZGRsZUxheWVyIiwibWlkZGxlTGF5ZXJDb21wb25lbnQiLCJyb2xlIiwiY29uc29sZSIsImxvZyIsImxvYWREcmFnb25Cb25lcyIsImRyYWdvbkRpc3BsYXkiLCJ0ZXgiLCJhdGxhcyIsInNrZSIsInR5cGUiLCJlcnJvciIsInRleHR1cmUiLCJhdGxhc0pzb24iLCJkcmFnb25Cb25lc0pzb24iLCJhdGxhc09iaiIsImRyYWdvbkJvbmVzIiwiRHJhZ29uQm9uZXNBdGxhc0Fzc2V0IiwidXVpZCIsImFzc2V0IiwiRHJhZ29uQm9uZXNBc3NldCIsImFybWF0dXJlTmFtZSIsIl9kcmFnb25Cb25lc0pzb25EYXRhIiwiYXJtYXR1cmUiLCJkcmFnb25BdGxhc0Fzc2V0IiwiZHJhZ29uQXNzZXQiLCJhYWJiIiwibG9hZFNwaW5lIiwic2tlbGV0b24iLCJwaWNOYW1lIiwibG9hZEFueSIsInNwIiwiU2tlbGV0b25EYXRhIiwiX3V1aWQiLCJza2VsZXRvbkpzb24iLCJKU09OIiwic3RyaW5naWZ5IiwiYXRsYXNUZXh0IiwidGV4dHVyZXMiLCJ0ZXh0dXJlTmFtZXMiLCJza2VsZXRvbkRhdGEiLCJqc29uT2JqIiwiYW5pbWF0aW9uTmFtZU9iaiIsImFuaW1hdGlvbnMiLCJhbmltYXRpb25OYW1lcyIsImFuaW1hdGlvbiIsImxvb3AiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFPLFNBQVNBLGFBQVQsQ0FBdUJDLEtBQXZCLEVBQThCQyxHQUE5QixFQUFtQztBQUV4QyxNQUFNQyxNQUFNLEdBQUdGLEtBQUssR0FBR0csSUFBSSxDQUFDQyxFQUFiLEdBQWtCLEdBQWpDO0FBQ0EsTUFBTUMsQ0FBQyxHQUFHRixJQUFJLENBQUNHLEdBQUwsQ0FBU0osTUFBVCxJQUFtQkQsR0FBN0I7QUFDQSxNQUFNTSxDQUFDLEdBQUdKLElBQUksQ0FBQ0ssR0FBTCxDQUFTTixNQUFULElBQW1CRCxHQUE3QjtBQUVBLFNBQU87QUFBRUksSUFBQUEsQ0FBQyxFQUFEQSxDQUFGO0FBQUtFLElBQUFBLENBQUMsRUFBREE7QUFBTCxHQUFQO0FBRUQ7O0FBRU0sU0FBU0UsYUFBVCxD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VixPQUFELENBQXJCO0FBRUExQixVQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxXQUFaLEVBQXlCeUIsT0FBekI7QUFFSEQsVUFBQUEsUUFBUSxDQUFDWSxZQUFULEdBQXdCckIsS0FBeEI7QUFHRyxjQUFNc0IsT0FBTyxHQUFHM0IsZUFBaEIsQ0FuQmdFLENBbUJoQzs7QUFDaEMsY0FBTTRCLGdCQUFnQixHQUFHRCxPQUFPLENBQUNFLFVBQWpDO0FBQ0EsY0FBSUMsY0FBYyxHQUFHLEVBQXJCOztBQUNBLGVBQUssSUFBSW5JLElBQVQsSUFBaUJpSSxnQkFBakIsRUFBbUM7QUFDakN2QyxZQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxXQUFaLEVBQXlCM0YsSUFBekI7QUFDQW1JLFlBQUFBLGNBQWMsQ0FBQ3BLLElBQWYsQ0FBb0JpQyxJQUFwQjtBQUNEOztBQUNKMEYsVUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksc0JBQVosRUFBb0N3QixRQUFRLENBQUNpQixTQUE3QztBQUNHakIsVUFBQUEsUUFBUSxDQUFDZ0IsY0FBVCxHQUEwQkEsY0FBMUI7QUFDSGhCLFVBQUFBLFFBQVEsQ0FBQ2tCLElBQVQsR0FBZ0IsS0FBaEI7QUFFRzNDLFVBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLHdCQUFaLEVBQXNDcUMsT0FBTyxDQUFDLFVBQUQsQ0FBN0M7QUFFQXJGLFVBQUFBLE9BQU8sQ0FBQ3FGLE9BQU8sQ0FBQyxVQUFELENBQVIsQ0FBUCxDQWhDZ0UsQ0FtQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNELFNBbEREO0FBbURILE9BekREO0FBMERELEtBaEVEO0FBaUVELEdBbkVNLENBQVA7QUFxRUQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRQb3NCeUFuZ2xlKGFuZ2xlLCBsZW4pIHtcblxuICBjb25zdCByYWRpYW4gPSBhbmdsZSAqIE1hdGguUEkgLyAxODA7XG4gIGNvbnN0IHggPSBNYXRoLnNpbihyYWRpYW4pICogbGVuO1xuICBjb25zdCB5ID0gTWF0aC5jb3MocmFkaWFuKSAqIGxlbjtcblxuICByZXR1cm4geyB4LCB5IH07XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFuZ2xlQnlQb3MocHgsIHB5LCBteCwgbXkpIHtcblxuICBjb25zdCB4ID0gTWF0aC5hYnMocHggLSBteCk7XG4gIGNvbnN0IHkgPSBNYXRoLmFicyhweSAtIG15KTtcblxuICBjb25zdCB6ID0gTWF0aC5zcXJ0KE1hdGgucG93KHgsIDIpICsgTWF0aC5wb3coeSwgMikpO1xuICBjb25zdCBjb3MgPSB5IC8gejtcbiAgY29uc3QgcmFkaW5hID0gTWF0aC5hY29zKGNvcyk7IC8vIOeUqOWPjeS4ieinkuWHveaVsOaxguW8p+W6plxuICBsZXQgYW5nbGUgPSBNYXRoLmZsb29yKDE4MCAvIChNYXRoLlBJIC8gcmFkaW5hKSAqIDEwMCkgLyAxMDA7IC8vIOWwhuW8p+W6pui9rOaNouaIkOinkuW6plxuXG4gIGlmIChteCA+IHB4ICYmIG15ID4gcHkpIHsvLyDpvKDmoIflnKjnrKzlm5vosaHpmZBcbiAgICBhbmdsZSA9IDE4MCAtIGFuZ2xlO1xuICB9XG4gIGlmIChteCA9PT0gcHggJiYgbXkgPiBweSkgey8vIOm8oOagh+WcqHnovbTotJ/mlrnlkJHkuIpcbiAgICBhbmdsZSA9IDE4MDtcbiAgfVxuICBpZiAobXggPiBweCAmJiBteSA9PT0gcHkpIHsvLyDpvKDmoIflnKh46L205q2j5pa55ZCR5LiKXG4gICAgYW5nbGUgPSA5MDtcbiAgfVxuICBpZiAobXggPCBweCAmJiBteSA+IHB5KSB7Ly8g6byg5qCH5Zyo56ys5LiJ6LGh6ZmQXG4gICAgYW5nbGUgPSAxODAgKyBhbmdsZTtcbiAgfVxuICBpZiAobXggPCBweCAmJiBteSA9PT0gcHkpIHsvLyDpvKDmoIflnKh46L206LSf5pa55ZCRXG4gICAgYW5nbGUgPSAyNzA7XG4gIH1cbiAgaWYgKG14IDwgcHggJiYgbXkgPCBweSkgey8vIOm8oOagh+WcqOesrOS6jOixoemZkFxuICAgIGFuZ2xlID0gMzYwIC0gYW5nbGU7XG4gIH1cblxuICAvLyBjb25zb2xlLmxvZygnYW5nbGU6ICcsIGFuZ2xlKTtcbiAgcmV0dXJuIGFuZ2xlO1xuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGNoYW5nZU5vZGVQb3MoYmFzZU5vZGUsIHRhcmdldE5vZGUpIHtcbiAgcmV0dXJuIGJhc2VOb2RlLmNvbnZlcnRUb05vZGVTcGFjZUFSKHRhcmdldE5vZGUuX3BhcmVudC5jb252ZXJ0VG9Xb3JsZFNwYWNlQVIoY2MudjIodGFyZ2V0Tm9kZS54LCB0YXJnZXROb2RlLnkpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBSYW5kb21JbnQoYSwgYiA9IDApIHtcbiAgbGV0IG1heCA9IE1hdGgubWF4KGEsIGIpO1xuICBsZXQgbWluID0gTWF0aC5taW4oYSwgYik7XG4gIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByYW5kb21Tb3J0QnlBcnIoYXJyKSB7XG4gIGNvbnN0IG5ld0FyciA9IFtdO1xuICBjb25zdCB0bXBBcnIgPSBhcnIuY29uY2F0KCk7XG4gIHdoaWxlICh0bXBBcnIubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHJhbmRvbUluZGV4ID0gTWF0aC5mbG9vcih0bXBBcnIubGVuZ3RoICogTWF0aC5yYW5kb20oKSk7XG4gICAgbmV3QXJyLnB1c2godG1wQXJyW3JhbmRvbUluZGV4XSk7XG4gICAgdG1wQXJyLnNwbGljZShyYW5kb21JbmRleCwgMSk7XG4gIH1cbiAgcmV0dXJuIG5ld0Fycjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNwck5vZGVNYXhMZW4oc3ByTm9kZSwgbWF4VywgbWF4SCkge1xuICBjb25zdCBzeCA9IG1heFcgLyBzcHJOb2RlLndpZHRoO1xuICBjb25zdCBzeSA9IG1heEggLyBzcHJOb2RlLmhlaWdodDtcbiAgY29uc3QgcyA9IE1hdGgubWluKHN4LCBzeSk7XG4gIHNwck5vZGUuc2NhbGUgPSBNYXRoLnJvdW5kKHMgKiAxMDAwKSAvIDEwMDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFBvc1RvbG9jYWxQb3MoYmFzZU5vZGUsIHRhcmdldE5vZGUpIHtcblx0Y29uc3Qgd29ybGRQb3MgPSB0YXJnZXROb2RlLnBhcmVudC5jb252ZXJ0VG9Xb3JsZFNwYWNlQVIoY2MudjIodGFyZ2V0Tm9kZS54LCB0YXJnZXROb2RlLnkpKTtcblx0Y29uc3QgbG9jYWxQb3MgPSBiYXNlTm9kZS5wYXJlbnQuY29udmVydFRvTm9kZVNwYWNlQVIoY2MudjIod29ybGRQb3MueCwgd29ybGRQb3MueSkpO1xuXHRyZXR1cm4gbG9jYWxQb3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3b3JsZFBvc1RvTG9jYWxQb3Mod29ybGRQb3MsIGJhc2VOb2RlKSB7XG5cdGNvbnN0IGxvY2FsUG9zID0gYmFzZU5vZGUucGFyZW50LmNvbnZlcnRUb05vZGVTcGFjZUFSKGNjLnYyKHdvcmxkUG9zLngsIHdvcmxkUG9zLnkpKTtcblx0cmV0dXJuIGxvY2FsUG9zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NhbGVSYXRlQnkyTm9kZShiYXNlTm9kZSwgdGFyZ2V0Tm9kZSwgbWF4RmxhZyA9IHRydWUpIHtcblx0Y29uc3Qgd29ybGRSZWN0MSA9IHRhcmdldE5vZGUuZ2V0Qm91bmRpbmdCb3hUb1dvcmxkKCk7XG5cdGNvbnN0IHdvcmxkUmVjdDIgPSBiYXNlTm9kZS5nZXRCb3VuZGluZ0JveFRvV29ybGQoKTtcblxuXHRjb25zdCBzeCA9IHdvcmxkUmVjdDEud2lkdGggLyB3b3JsZFJlY3QyLndpZHRoO1xuXHRjb25zdCBzeSA9IHdvcmxkUmVjdDEuaGVpZ2h0IC8gd29ybGRSZWN0Mi5oZWlnaHQ7XG5cdGlmIChtYXhGbGFnKSB7XG5cdFx0cmV0dXJuIE1hdGgubWF4KHN4LCBzeSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIE1hdGgubWluKHN4LCBzeSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlIChzdGFydCwgZW5kKXtcbiAgICB2YXIgcG9zID0gY2MudjIoc3RhcnQueCAtIGVuZC54LCBzdGFydC55IC0gZW5kLnkpO1xuICAgIHZhciBkaXMgPSBNYXRoLnNxcnQocG9zLngqcG9zLnggKyBwb3MueSpwb3MueSk7XG4gICAgcmV0dXJuIGRpcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBsYXlBdWRpb0J5VXJsKGF1ZGlvX3VybCwgY2I9bnVsbCkge1xuXHRpZiAoYXVkaW9fdXJsKSB7XG4gICAgaWYgKChhdWRpb191cmwgaW5zdGFuY2VvZiBjYy5BdWRpb0NsaXApICYmYXVkaW9fdXJsLmNvbnN0cnVjdG9yLm5hbWUgPT0gJ2NjX0F1ZGlvQ2xpcCcpIHtcbiAgICAgIGNvbnN0IGF1ZGlvSWQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5KGF1ZGlvX3VybCwgZmFsc2UsIDAuOCk7XG4gICAgICBpZiAoY2IpIHtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RmluaXNoQ2FsbGJhY2soYXVkaW9JZCwgKCkgPT4ge1xuICAgICAgICAgIGNiKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZShhdWRpb191cmwsIChlcnIsIGF1ZGlvQ2xpcCkgPT4ge1xuICAgICAgICBjb25zdCBhdWRpb0lkID0gY2MuYXVkaW9FbmdpbmUucGxheShhdWRpb0NsaXAsIGZhbHNlLCAwLjgpO1xuICAgICAgICBpZiAoY2IpIHtcbiAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhhdWRpb0lkLCAoKSA9PiB7XG4gICAgICAgICAgICBjYigpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTsgICAgfVxuXHRcdFxuXHR9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGJ0bkNsaWNrQW5pbWEoYnRuLCB0aW1lPTAuMTUsIHJhdGU9MS4wNSkge1xuICBidG4udG1wU2NhbGUgPSBidG4uc2NhbGU7XG4gIGJ0bi5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9TVEFSVCwgKCkgPT4ge1xuICAgIGNjLnR3ZWVuKGJ0bilcbiAgICAgIC50byh0aW1lIC8gMiwge3NjYWxlOiBidG4uc2NhbGUgKiByYXRlfSlcbiAgICAgIC5zdGFydCgpXG4gIH0pXG4gIGJ0bi5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9DQU5DRUwsICgpID0+IHtcbiAgICBjYy50d2VlbihidG4pXG4gICAgICAudG8odGltZSAvIDIsIHtzY2FsZTogYnRuLnRtcFNjYWxlfSlcbiAgICAgIC5zdGFydCgpXG4gIH0pXG4gIGJ0bi5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9FTkQsICgpID0+IHtcbiAgICBjYy50d2VlbihidG4pXG4gICAgICAudG8odGltZSAvIDIsIHtzY2FsZTogYnRuLnRtcFNjYWxlfSlcbiAgICAgIC5zdGFydCgpXG4gIH0pXG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNwcml0ZUZyaW1lQnlVcmwodXJsLCBjYikge1xuICBjYy5sb2FkZXIubG9hZCh7IHVybCB9LCAoZXJyLCBpbWcpID0+IHtcbiAgICBjb25zdCBzcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZShpbWcpXG4gICAgaWYgKGNiKSB7XG4gICAgICBjYihzcHJpdGVGcmFtZSk7XG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3ByTm9kZShyZXNOYW1lKSB7XG4gIGNvbnN0IHNmID0gY2MuZmluZCgnQ2FudmFzL3Jlcy9pbWcvJyArIHJlc05hbWUpLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lO1xuICBjb25zdCBub2RlID0gbmV3IGNjLk5vZGUoKTtcbiAgbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHNmO1xuICByZXR1cm4gbm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNwck5vZGVCeVVybCh1cmwsIGNiKSB7XG4gIGNvbnN0IG5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuICBjb25zdCBzcHIgPSBub2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xuICBnZXRTcHJpdGVGcmltZUJ5VXJsKHVybCwgKHNmKSA9PiB7XG4gICAgc3ByLnNwcml0ZUZyYW1lID0gc2Y7XG4gICAgaWYgKGNiKSB7XG4gICAgICBjYihzcHIpO1xuICAgIH1cbiAgfSlcbn1cblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBwbGF5QXVkaW8oYXVkaW9DbGlwLCBjYiA9IG51bGwpIHtcbiAgaWYgKGF1ZGlvQ2xpcCkge1xuICAgIGNvbnN0IGF1ZGlvSWQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5RWZmZWN0KGF1ZGlvQ2xpcCwgZmFsc2UsIDAuOCk7XG4gICAgaWYgKGNiKSB7XG4gICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhhdWRpb0lkLCAoKSA9PiB7XG4gICAgICAgIGNiKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jRGVsYXkodGltZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSwgdGltZSAqIDEwMDApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9XG4gIH0pXG59XG5cbmV4cG9ydCBjbGFzcyBGaXJld29ya1NldHRpbmdzIHtcbiAgYmFzZU5vZGU7IC8vIOeItuiKgueCuVxuICBub2RlTGlzdDsgLy8g54Gr6Iqx6IqC54K555qEYXJyYXlcbiAgcG9zOyAvLyDlj5HlsITngrlcbiAgc2lkZTsgLy8g5Y+R5bCE5pa55ZCRXG4gIHJhbmdlOyAvLyDmianmlaPojIPlm7RcbiAgbnVtYmVyOyAvLyDlj5HlsITmlbDph49cbiAgc2NhbHNlUmFuZ2U7IC8vIOe8qeaUvuiMg+WbtFxuICBjb25zdHJ1Y3RvcihiYXNlTm9kZSwgbm9kZUxpc3QsXG4gICAgcG9zID0gY2MudjIoMCwgMCksXG4gICAgc2lkZSA9IGNjLnYyKDAsIDEwMCksXG4gICAgcmFuZ2UgPSA1MCxcbiAgICBudW1iZXIgPSAxMDAsXG4gICAgc2NhbHNlUmFuZ2UgPSAwXG4gICkge1xuICAgIHRoaXMuYmFzZU5vZGUgPSBiYXNlTm9kZTtcbiAgICB0aGlzLm5vZGVMaXN0ID0gbm9kZUxpc3Q7XG4gICAgdGhpcy5wb3MgPSBwb3M7XG4gICAgdGhpcy5zaWRlID0gc2lkZTtcbiAgICB0aGlzLnJhbmdlID0gcmFuZ2U7XG4gICAgdGhpcy5udW1iZXIgPSBudW1iZXI7XG4gICAgdGhpcy5zY2Fsc2VSYW5nZSA9IHNjYWxzZVJhbmdlO1xuICB9XG5cbiAgc3RhdGljIGNvcHkoZmlyZXdvcmspIHtcbiAgICByZXR1cm4gbmV3IEZpcmV3b3JrU2V0dGluZ3MoXG4gICAgICBmaXJld29yay5iYXNlTm9kZSxcbiAgICAgIGZpcmV3b3JrLm5vZGVMaXN0LFxuICAgICAgZmlyZXdvcmsucG9zLFxuICAgICAgZmlyZXdvcmsuc2lkZSxcbiAgICAgIGZpcmV3b3JrLnJhbmdlLFxuICAgICAgZmlyZXdvcmsubnVtYmVyLFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNob3dGaXJld29ya3MoZmlyZXdvcmtTZXR0aW5ncykge1xuICBjb25zdCB7IGJhc2VOb2RlLCBub2RlTGlzdCwgcG9zLCBzaWRlLCByYW5nZSwgbnVtYmVyLCBzY2Fsc2VSYW5nZSB9ID0gZmlyZXdvcmtTZXR0aW5ncztcbiAgbmV3IEFycmF5KG51bWJlcikuZmlsbCgnICcpLmZvckVhY2goYXN5bmMgKF8sIGkpID0+IHtcblxuICAgIGxldCByYWJib25Ob2RlID0gbmV3IGNjLk5vZGUoKTtcbiAgICByYWJib25Ob2RlLnBhcmVudCA9IGJhc2VOb2RlO1xuICAgIHJhYmJvbk5vZGUueCA9IHBvcy54O1xuICAgIHJhYmJvbk5vZGUueSA9IHBvcy55O1xuICAgIHJhYmJvbk5vZGUuYW5nbGUgPSA2MCAqIE1hdGgucmFuZG9tKCkgLSAzMDtcblxuICAgIGxldCBub2RlID0gY2MuaW5zdGFudGlhdGUobm9kZUxpc3RbUmFuZG9tSW50KG5vZGVMaXN0Lmxlbmd0aCldKTtcbiAgICBub2RlLnBhcmVudCA9IHJhYmJvbk5vZGU7XG4gICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xuICAgIG5vZGUueCA9IDA7XG4gICAgbm9kZS55ID0gMDtcbiAgICBub2RlLmFuZ2xlID0gMDtcbiAgICBub2RlLnNjYWxlID0gKE1hdGgucmFuZG9tKCkgLSAwLjUpICogc2NhbHNlUmFuZ2UgKyAxO1xuXG4gICAgY29uc3QgcmF0ZSA9IE1hdGgucmFuZG9tKCk7XG4gICAgY29uc3QgYW5nbGUgPSBNYXRoLlBJICogKE1hdGgucmFuZG9tKCkgKiAyIC0gMSk7XG5cbiAgICBhd2FpdCBhc3luY1R3ZWVuQnkocmFiYm9uTm9kZSwgMC4zLCB7XG4gICAgICB4OiBzaWRlLnggKiByYXRlICsgTWF0aC5jb3MoYW5nbGUpICogcmFuZ2UgKiByYXRlLFxuICAgICAgeTogc2lkZS55ICogcmF0ZSArIE1hdGguc2luKGFuZ2xlKSAqIHJhbmdlICogcmF0ZVxuICAgIH0sIHtcbiAgICAgIGVhc2luZzogJ3F1YWRJbidcbiAgICB9KTtcblxuICAgIGNjLnR3ZWVuKHJhYmJvbk5vZGUpXG4gICAgICAuYnkoOCwgeyB5OiAtMjAwMCB9KVxuICAgICAgLnN0YXJ0KCk7XG5cbiAgICBjYy50d2VlbihyYWJib25Ob2RlKVxuICAgICAgLnRvKDUsIHsgc2NhbGU6IChNYXRoLnJhbmRvbSgpIC0gMC41KSAqIHNjYWxzZVJhbmdlICsgMSB9KVxuICAgICAgLnN0YXJ0KCk7XG5cbiAgICByYWJib25GYWxsKHJhYmJvbk5vZGUpO1xuXG4gICAgYXdhaXQgYXN5bmNEZWxheShNYXRoLnJhbmRvbSgpKTtcbiAgICBjYy50d2Vlbihub2RlKVxuICAgICAgLmJ5KDAuMTUsIHsgeDogLTEwLCBhbmdsZTogLTEwIH0pXG4gICAgICAuYnkoMC4zLCB7IHg6IDIwLCBhbmdsZTogMjAgfSlcbiAgICAgIC5ieSgwLjE1LCB7IHg6IC0xMCwgYW5nbGU6IC0xMCB9KVxuICAgICAgLnVuaW9uKClcbiAgICAgIC5yZXBlYXRGb3JldmVyKClcbiAgICAgIC5zdGFydCgpO1xuXG4gICAgY2MudHdlZW4ocmFiYm9uTm9kZSlcbiAgICAgIC5kZWxheSg1KVxuICAgICAgLnRvKDAuMywgeyBvcGFjaXR5OiAwIH0pXG4gICAgICAuY2FsbCgoKSA9PiB7XG4gICAgICAgIG5vZGUuc3RvcEFsbEFjdGlvbnMoKTtcbiAgICAgICAgbm9kZS5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgbm9kZS5wYXJlbnQgPSBudWxsO1xuICAgICAgICBub2RlID0gbnVsbDtcbiAgICAgIH0pXG4gICAgICAuc3RhcnQoKTtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJhYmJvbkZhbGwobm9kZSkge1xuICBjb25zdCB0aW1lID0gMSArIE1hdGgucmFuZG9tKCk7XG4gIGNvbnN0IG9mZnNldFggPSBSYW5kb21JbnQoLTIwMCwgMjAwKSAqIHRpbWU7XG4gIGF3YWl0IGFzeW5jVHdlZW5CeShub2RlLCB0aW1lLCB7IHg6IG9mZnNldFgsIGFuZ2xlOiBvZmZzZXRYICogNjAgLyAyMDAgfSk7XG4gIHJhYmJvbkZhbGwobm9kZSk7XG59XG5cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jVHdlZW5Ubyhub2RlLCBkdXJhdGlvbiwgb2JqLCBlYXNlID0gdW5kZWZpbmVkKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNjLnR3ZWVuKG5vZGUpXG4gICAgICAgIC50byhkdXJhdGlvbiwgb2JqLCBlYXNlKVxuICAgICAgICAuY2FsbCgoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KVxuICAgICAgICAuc3RhcnQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZWplY3QoZSk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jVHdlZW5CeShub2RlLCBkdXJhdGlvbiwgb2JqLCBlYXNlID0gdW5kZWZpbmVkKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNjLnR3ZWVuKG5vZGUpXG4gICAgICAgIC5ieShkdXJhdGlvbiwgb2JqLCBlYXNlKVxuICAgICAgICAuY2FsbCgoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KVxuICAgICAgICAuc3RhcnQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZWplY3QoZSk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dUcmVibGVGaXJld29yayhiYXNlTm9kZSwgcmFiYm9uTGlzdCkge1xuICBjb25zdCBtaWRkbGUgPSBuZXcgRmlyZXdvcmtTZXR0aW5ncyhiYXNlTm9kZSwgcmFiYm9uTGlzdCk7XG4gIG1pZGRsZS5wb3MgPSBjYy52MigwLCAtNDAwKTtcbiAgbWlkZGxlLnNpZGUgPSBjYy52MigwLCAxMDAwKTtcbiAgbWlkZGxlLnJhbmdlID0gMjAwO1xuICBtaWRkbGUubnVtYmVyID0gMTAwO1xuICBtaWRkbGUuc2NhbHNlUmFuZ2UgPSAwLjQ7XG5cbiAgY29uc3QgbGVmdCA9IEZpcmV3b3JrU2V0dGluZ3MuY29weShtaWRkbGUpO1xuICBsZWZ0LnBvcyA9IGNjLnYyKC02MDAsIC00MDApO1xuICBsZWZ0LnNpZGUgPSBjYy52MigyMDAsIDEwMDApO1xuXG4gIGNvbnN0IHJpZ2h0ID0gRmlyZXdvcmtTZXR0aW5ncy5jb3B5KG1pZGRsZSk7XG4gIHJpZ2h0LnBvcyA9IGNjLnYyKDYwMCwgLTQwMCk7XG4gIHJpZ2h0LnNpZGUgPSBjYy52MigtMjAwLCAxMDAwKTtcblxuICBzaG93RmlyZXdvcmtzKG1pZGRsZSk7XG4gIHNob3dGaXJld29ya3MobGVmdCk7XG4gIHNob3dGaXJld29ya3MocmlnaHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb25Ib21ld29ya0ZpbmlzaCgpIHtcbiAgY29uc3QgbWlkZGxlTGF5ZXIgPSBjYy5maW5kKCdtaWRkbGVMYXllcicpO1xuICBpZiAobWlkZGxlTGF5ZXIpIHtcbiAgICBjb25zdCBtaWRkbGVMYXllckNvbXBvbmVudCA9IG1pZGRsZUxheWVyLmdldENvbXBvbmVudCgnbWlkZGxlTGF5ZXInKTtcbiAgICBpZiAobWlkZGxlTGF5ZXJDb21wb25lbnQucm9sZSA9PSAnc3R1ZGVudCcpIHtcbiAgICAgIG1pZGRsZUxheWVyQ29tcG9uZW50Lm9uSG9tZXdvcmtGaW5pc2goKCkgPT4geyB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coJ29uSG9tZXdvcmtGaW5pc2gnKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZERyYWdvbkJvbmVzKGRyYWdvbkRpc3BsYXkse3RleCwgYXRsYXMsIHNrZX0pIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjYy5sb2FkZXIubG9hZCh7IHVybDogdGV4LCB0eXBlOiAncG5nJyB9LCAoZXJyb3IsIHRleHR1cmUpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZWplY3QoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2MubG9hZGVyLmxvYWQoeyB1cmw6IGF0bGFzLCB0eXBlOiAndHh0JyB9LCAoZXJyb3IsIGF0bGFzSnNvbikgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgICBjYy5sb2FkZXIubG9hZCh7IHVybDogc2tlLCB0eXBlOiAndHh0JyB9LCAoZXJyb3IsIGRyYWdvbkJvbmVzSnNvbikgPT4ge1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhdGxhc09iaiA9IG5ldyBkcmFnb25Cb25lcy5EcmFnb25Cb25lc0F0bGFzQXNzZXQoKVxuICAgICAgICAgICAgYXRsYXNPYmoudXVpZCA9IGF0bGFzXG4gICAgICAgICAgICBhdGxhc09iai5hdGxhc0pzb24gPSBhdGxhc0pzb25cbiAgICAgICAgICAgIGF0bGFzT2JqLnRleHR1cmUgPSB0ZXh0dXJlXG4gIFxuICAgICAgICAgICAgY29uc3QgYXNzZXQgPSBuZXcgZHJhZ29uQm9uZXMuRHJhZ29uQm9uZXNBc3NldCgpXG4gICAgICAgICAgICBhc3NldC51dWlkID0gc2tlXG4gICAgICAgICAgICBhc3NldC5kcmFnb25Cb25lc0pzb24gPSBkcmFnb25Cb25lc0pzb247XG5cbiAgICAgICAgICAgIGNvbnN0IGFybWF0dXJlTmFtZSA9IGFzc2V0Ll9kcmFnb25Cb25lc0pzb25EYXRhLmFybWF0dXJlWzBdLm5hbWUgfHwgJ2RlZmF1bHQnO1xuICAgICAgICAgICAgZHJhZ29uRGlzcGxheS5hcm1hdHVyZU5hbWUgPSBhcm1hdHVyZU5hbWU7XG4gIFxuICAgICAgICAgICAgZHJhZ29uRGlzcGxheS5kcmFnb25BdGxhc0Fzc2V0ID0gYXRsYXNPYmpcbiAgICAgICAgICAgIGRyYWdvbkRpc3BsYXkuZHJhZ29uQXNzZXQgPSBhc3NldDtcbiAgICAgICAgICAgIHJlc29sdmUoYXNzZXQuX2RyYWdvbkJvbmVzSnNvbkRhdGEuYXJtYXR1cmVbMF0uYWFiYik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG4gIFxufVxuXG5cblxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZFNwaW5lKHNrZWxldG9uLCBwaWNOYW1lLCB7dGV4LCBhdGxhcywgc2tlfSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIC8vIGNjLmxvYWRlci5sb2FkKHsgdXJsOiB0ZXgsIHR5cGU6ICdwbmcnIH0sIChlcnJvciwgdGV4dHVyZSkgPT4ge1xuICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKHRleCwgKGVycm9yLCB0ZXh0dXJlKSA9PiB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIGNjLmxvYWRlci5sb2FkKHsgdXJsOiBhdGxhcywgdHlwZTogJ3R4dCcgfSwgKGVycm9yLCBhdGxhc0pzb24pID0+IHtcbiAgICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkQW55KHsgdXJsOiBhdGxhcyB9LCAoZXJyb3IsIGF0bGFzSnNvbikgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgICAvLyBjYy5sb2FkZXIubG9hZCh7IHVybDogc2tlLCB0eXBlOiAndHh0JyB9LCAoZXJyb3IsIGRyYWdvbkJvbmVzSnNvbikgPT4ge1xuICAgICAgICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkQW55KHsgdXJsOiBza2UgfSwgKGVycm9yLCBkcmFnb25Cb25lc0pzb24pID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIHZhciBhc3NldCA9IG5ldyBzcC5Ta2VsZXRvbkRhdGEoKTtcbiAgICAgICAgICAgIGFzc2V0Ll91dWlkID0gc2tlO1xuICAgICAgICAgICAgYXNzZXQuc2tlbGV0b25Kc29uID0gSlNPTi5zdHJpbmdpZnkoIGRyYWdvbkJvbmVzSnNvbiApO1xuICAgICAgICAgICAgYXNzZXQuYXRsYXNUZXh0ID0gYXRsYXNKc29uO1xuICAgICAgICAgICAgYXNzZXQudGV4dHVyZXMgPSBbdGV4dHVyZV07XG4gICAgICAgICAgICBhc3NldC50ZXh0dXJlTmFtZXMgPSBbcGljTmFtZV07XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdwaWNOYW1lOiAnLCBwaWNOYW1lKTtcblxuXHRcdFx0ICAgICAgc2tlbGV0b24uc2tlbGV0b25EYXRhID0gYXNzZXQ7XG5cdFxuXG4gICAgICAgICAgICBjb25zdCBqc29uT2JqID0gZHJhZ29uQm9uZXNKc29uIC8vSlNPTi5wYXJzZSggYXNzZXRzWzFdKTtcbiAgICAgICAgICAgIGNvbnN0IGFuaW1hdGlvbk5hbWVPYmogPSBqc29uT2JqLmFuaW1hdGlvbnM7XG4gICAgICAgICAgICBsZXQgYW5pbWF0aW9uTmFtZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IG5hbWUgaW4gYW5pbWF0aW9uTmFtZU9iaikge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbmFtZX5+OiAgJywgbmFtZSk7XG4gICAgICAgICAgICAgIGFuaW1hdGlvbk5hbWVzLnB1c2gobmFtZSk7XG4gICAgICAgICAgICB9XG5cdFx0XHQgICAgICBjb25zb2xlLmxvZyhcInNrZWxldG9uLmFuaW1hdGlvbjogXCIsIHNrZWxldG9uLmFuaW1hdGlvbik7XG4gICAgICAgICAgICBza2VsZXRvbi5hbmltYXRpb25OYW1lcyA9IGFuaW1hdGlvbk5hbWVzO1xuXHRcdFx0ICAgICAgc2tlbGV0b24ubG9vcCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImpzb25PYmpbJ3NrZWxldG9uJ10gOiBcIiwganNvbk9ialsnc2tlbGV0b24nXSlcblxuICAgICAgICAgICAgcmVzb2x2ZShqc29uT2JqWydza2VsZXRvbiddKTtcblxuXG4gICAgICAgICAgICAvLyBjb25zdCBhdGxhc09iaiA9IG5ldyBkcmFnb25Cb25lcy5EcmFnb25Cb25lc0F0bGFzQXNzZXQoKVxuICAgICAgICAgICAgLy8gYXRsYXNPYmoudXVpZCA9IGF0bGFzXG4gICAgICAgICAgICAvLyBhdGxhc09iai5hdGxhc0pzb24gPSBhdGxhc0pzb25cbiAgICAgICAgICAgIC8vIGF0bGFzT2JqLnRleHR1cmUgPSB0ZXh0dXJlXG4gIFxuICAgICAgICAgICAgLy8gY29uc3QgYXNzZXQgPSBuZXcgZHJhZ29uQm9uZXMuRHJhZ29uQm9uZXNBc3NldCgpXG4gICAgICAgICAgICAvLyBhc3NldC51dWlkID0gc2tlXG4gICAgICAgICAgICAvLyBhc3NldC5kcmFnb25Cb25lc0pzb24gPSBkcmFnb25Cb25lc0pzb247XG5cbiAgICAgICAgICAgIC8vIGNvbnN0IGFybWF0dXJlTmFtZSA9IGFzc2V0Ll9kcmFnb25Cb25lc0pzb25EYXRhLmFybWF0dXJlWzBdLm5hbWUgfHwgJ2RlZmF1bHQnO1xuICAgICAgICAgICAgLy8gZHJhZ29uRGlzcGxheS5hcm1hdHVyZU5hbWUgPSBhcm1hdHVyZU5hbWU7XG4gIFxuICAgICAgICAgICAgLy8gZHJhZ29uRGlzcGxheS5kcmFnb25BdGxhc0Fzc2V0ID0gYXRsYXNPYmpcbiAgICAgICAgICAgIC8vIGRyYWdvbkRpc3BsYXkuZHJhZ29uQXNzZXQgPSBhc3NldDtcbiAgICAgICAgICAgIC8vIHJlc29sdmUoYXNzZXQuX2RyYWdvbkJvbmVzSnNvbkRhdGEuYXJtYXR1cmVbMF0uYWFiYik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG4gIFxufVxuIl19
//------QC-SOURCE-SPLIT------

                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/OP15/script/xstate.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);}(function (global){
"use strict";
cc._RF.push(module, 'ccc6ebxJZFI24GNYY/uty5V', 'xstate');
// OP15/script/xstate.js

"use strict";

!function (t, e) {
  "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).XState = {});
}(void 0, function (t) {
  "use strict";
  /*! *****************************************************************************
      Copyright (c) Microsoft Corporation.
  
      Permission to use, copy, modify, and/or distribute this software for any
      purpose with or without fee is hereby granted.
  
      THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
      REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
      AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
      INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
      LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
      OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
      PERFORMANCE OF THIS SOFTWARE.
      ***************************************************************************** */

  var _e = function e() {
    return (_e = Object.assign || function (t) {
      for (var e, n = 1, r = arguments.length; n < r; n++) {
        for (var i in e = arguments[n]) {
          Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]);
        }
      }

      return t;
    }).apply(this, arguments);
  };

  function n(t, e) {
    var n = {};

    for (var r in t) {
      Object.prototype.hasOwnProperty.call(t, r) && e.indexOf(r) < 0 && (n[r] = t[r]);
    }

    if (null != t && "function" == typeof Object.getOwnPropertySymbols) {
      var i = 0;

      for (r = Object.getOwnPropertySymbols(t); i < r.length; i++) {
        e.indexOf(r[i]) < 0 && Object.prototype.propertyIsEnumerable.call(t, r[i]) && (n[r[i]] = t[r[i]]);
      }
    }

    return n;
  }

  function r(t) {
    var e = "function" == typeof Symbol && Symbol.iterator,
        n = e && t[e],
        r = 0;
    if (n) return n.call(t);
    if (t && "number" == typeof t.length) return {
      next: function next() {
        return t && r >= t.length && (t = void 0), {
          value: t && t[r++],
          done: !t
        };
      }
    };
    throw new TypeError(e ? "Object is not iterable." : "Symbol.iterator is not defined.");
  }

  function i(t, e) {
    var n = "function" == typeof Symbol && t[Symbol.iterator];
    if (!n) return t;
    var r,
        i,
        o = n.call(t),
        a = [];

    try {
      for (; (void 0 === e || e-- > 0) && !(r = o.next()).done;) {
        a.push(r.value);
      }
    } catch (t) {
      i = {
        error: t
      };
    } finally {
      try {
        r && !r.done && (n = o["return"]) && n.call(o);
      } finally {
        if (i) throw i.error;
      }
    }

    return a;
  }

  function o(t, e, n) {
    if (n || 2 === arguments.length) for (var r, i = 0, o = e.length; i < o; i++) {
      !r && i in e || (r || (r = Array.prototype.slice.call(e, 0, i)), r[i] = e[i]);
    }
    return t.concat(r || Array.prototype.slice.call(e));
  }

  var a = {};

  function s(t) {
    return Object.keys(t);
  }

  function c(t, e, n) {
    void 0 === n && (n = ".");
    var r = f(t, n),
        i = f(e, n);
    return A(i) ? !!A(r) && i === r : A(r) ? r in i : s(r).every(function (t) {
      return t in i && c(r[t], i[t]);
    });
  }

  function u(t) {
    try {
      return A(t) || "number" == typeof t ? "".concat(t) : t.type;
    } catch (t) {
      throw new Error("Events must be strings or objects with a string event.type property.");
    }
  }

  function h(t, e) {
    try {
      return T(t) ? t : t.toString().split(e);
    } catch (e) {
      throw new Error("'".concat(t, "' is not a valid state path."));
    }
  }

  function f(t, e) {
    return "object" == typeof (n = t) && "value" in n && "context" in n && "event" in n && "_event" in n ? t.value : T(t) ? l(t) : "string" != typeof t ? t : l(h(t, e));
    var n;
  }

  function l(t) {
    if (1 === t.length) return t[0];

    for (var e = {}, n = e, r = 0; r < t.length - 1; r++) {
      r === t.length - 2 ? n[t[r]] = t[r + 1] : (n[t[r]] = {}, n = n[t[r]]);
    }

    return e;
  }

  function d(t, e) {
    for (var n = {}, r = s(t), i = 0; i < r.length; i++) {
      var o = r[i];
      n[o] = e(t[o], o, t, i);
    }

    return n;
  }

  function p(t, e, n) {
    var i,
        o,
        a = {};

    try {
      for (var c = r(s(t)), u = c.next(); !u.done; u = c.next()) {
        var h = u.value,
            f = t[h];
        n(f) && (a[h] = e(f, h, t));
      }
    } catch (t) {
      i = {
        error: t
      };
    } finally {
      try {
        u && !u.done && (o = c["return"]) && o.call(c);
      } finally {
        if (i) throw i.error;
      }
    }

    return a;
  }

  var v = function v(t) {
    return function (e) {
      var n,
          i,
          o = e;

      try {
        for (var a = r(t), s = a.next(); !s.done; s = a.next()) {
          o = o[s.value];
        }
      } catch (t) {
        n = {
          error: t
        };
      } finally {
        try {
          s && !s.done && (i = a["return"]) && i.call(a);
        } finally {
          if (n) throw n.error;
        }
      }

      return o;
    };
  };

  function y(t) {
    return t ? A(t) ? [[t]] : g(s(t).map(function (e) {
      var n = t[e];
      return "string" == typeof n || n && Object.keys(n).length ? y(t[e]).map(function (t) {
        return [e].concat(t);
      }) : [[e]];
    })) : [[]];
  }

  function g(t) {
    var e;
    return (e = []).concat.apply(e, o([], i(t), !1));
  }

  function m(t) {
    return T(t) ? t : [t];
  }

  function S(t) {
    return void 0 === t ? [] : m(t);
  }

  function x(t, e, n) {
    var i, o;
    if (N(t)) return t(e, n.data);
    var a = {};

    try {
      for (var s = r(Object.keys(t)), c = s.next(); !c.done; c = s.next()) {
        var u = c.value,
            h = t[u];
        N(h) ? a[u] = h(e, n.data) : a[u] = h;
      }
    } catch (t) {
      i = {
        error: t
      };
    } finally {
      try {
        c && !c.done && (o = s["return"]) && o.call(s);
      } finally {
        if (i) throw i.error;
      }
    }

    return a;
  }

  function w(t) {
    return t instanceof Promise || !(null === t || !N(t) && "object" != typeof t || !N(t.then));
  }

  function b(t, e) {
    var n,
        o,
        a = i([[], []], 2),
        s = a[0],
        c = a[1];

    try {
      for (var u = r(t), h = u.next(); !h.done; h = u.next()) {
        var f = h.value;
        e(f) ? s.push(f) : c.push(f);
      }
    } catch (t) {
      n = {
        error: t
      };
    } finally {
      try {
        h && !h.done && (o = u["return"]) && o.call(u);
      } finally {
        if (n) throw n.error;
      }
    }

    return [s, c];
  }

  function _(t, e) {
    return d(t.states, function (t, n) {
      if (t) {
        var r = (A(e) ? void 0 : e[n]) || (t ? t.current : void 0);
        if (r) return {
          current: r,
          states: _(t, r)
        };
      }
    });
  }

  function E(t, e, n, i) {
    return t ? n.reduce(function (t, n) {
      var o,
          a,
          c = n.assignment,
          u = {
        state: i,
        action: n,
        _event: e
      },
          h = {};
      if (N(c)) h = c(t, e.data, u);else try {
        for (var f = r(s(c)), l = f.next(); !l.done; l = f.next()) {
          var d = l.value,
              p = c[d];
          h[d] = N(p) ? p(t, e.data, u) : p;
        }
      } catch (t) {
        o = {
          error: t
        };
      } finally {
        try {
          l && !l.done && (a = f["return"]) && a.call(f);
        } finally {
          if (o) throw o.error;
        }
      }
      return Object.assign({}, t, h);
    }, t) : t;
  }

  function T(t) {
    return Array.isArray(t);
  }

  function N(t) {
    return "function" == typeof t;
  }

  function A(t) {
    return "string" == typeof t;
  }

  function O(t, e) {
    if (t) return A(t) ? {
      type: "xstate.guard",
      name: t,
      predicate: e ? e[t] : void 0
    } : N(t) ? {
      type: "xstate.guard",
      name: t.name,
      predicate: t
    } : t;
  }

  var P = function () {
    return "function" == typeof Symbol && Symbol.observable || "@@observable";
  }();

  function k(t) {
    try {
      return "__xstatenode" in t;
    } catch (t) {
      return !1;
    }
  }

  var I,
      j,
      C = function () {
    var t = 0;
    return function () {
      return (++t).toString(16);
    };
  }();

  function V(t, n) {
    return A(t) || "number" == typeof t ? _e({
      type: t
    }, n) : t;
  }

  function L(t, n) {
    if (!A(t) && "$$type" in t && "scxml" === t.$$type) return t;
    var r = V(t);
    return _e({
      name: r.type,
      data: r,
      $$type: "scxml",
      type: "external"
    }, n);
  }

  function D(t, n) {
    return m(n).map(function (n) {
      return void 0 === n || "string" == typeof n || k(n) ? {
        target: n,
        event: t
      } : _e(_e({}, n), {
        event: t
      });
    });
  }

  function R(t, e, n, r, i) {
    var o = t.options.guards,
        a = {
      state: i,
      cond: e,
      _event: r
    };
    if ("xstate.guard" === e.type) return ((null == o ? void 0 : o[e.name]) || e.predicate)(n, r.data, a);
    var s = o[e.type];
    if (!s) throw new Error("Guard '".concat(e.type, "' is not implemented on machine '").concat(t.id, "'."));
    return s(n, r.data, a);
  }

  function M(t) {
    return "string" == typeof t ? {
      type: t
    } : t;
  }

  function z(t, e, n) {
    if ("object" == typeof t) return t;

    var r = function r() {};

    return {
      next: t,
      error: e || r,
      complete: n || r
    };
  }

  (I = t.ActionTypes || (t.ActionTypes = {})).Start = "xstate.start", I.Stop = "xstate.stop", I.Raise = "xstate.raise", I.Send = "xstate.send", I.Cancel = "xstate.cancel", I.NullEvent = "", I.Assign = "xstate.assign", I.After = "xstate.after", I.DoneState = "done.state", I.DoneInvoke = "done.invoke", I.Log = "xstate.log", I.Init = "xstate.init", I.Invoke = "xstate.invoke", I.ErrorExecution = "error.execution", I.ErrorCommunication = "error.communication", I.ErrorPlatform = "error.platform", I.ErrorCustom = "xstate.error", I.Update = "xstate.update", I.Pure = "xstate.pure", I.Choose = "xstate.choose", (j = t.SpecialTargets || (t.SpecialTargets = {})).Parent = "#_parent", j.Internal = "#_internal";

  var F = function F(t) {
    return "atomic" === t.type || "final" === t.type;
  };

  function U(t) {
    return s(t.states).map(function (e) {
      return t.states[e];
    });
  }

  function B(t) {
    var e = [t];
    return F(t) ? e : e.concat(g(U(t).map(B)));
  }

  function J(t, e) {
    var n,
        i,
        o,
        a,
        s,
        c,
        u,
        h,
        f = q(new Set(t)),
        l = new Set(e);

    try {
      for (var d = r(l), p = d.next(); !p.done; p = d.next()) {
        for (var v = (E = p.value).parent; v && !l.has(v);) {
          l.add(v), v = v.parent;
        }
      }
    } catch (t) {
      n = {
        error: t
      };
    } finally {
      try {
        p && !p.done && (i = d["return"]) && i.call(d);
      } finally {
        if (n) throw n.error;
      }
    }

    var y = q(l);

    try {
      for (var g = r(l), m = g.next(); !m.done; m = g.next()) {
        if ("compound" !== (E = m.value).type || y.get(E) && y.get(E).length) {
          if ("parallel" === E.type) try {
            for (var S = (s = void 0, r(U(E))), x = S.next(); !x.done; x = S.next()) {
              var w = x.value;
              "history" !== w.type && (l.has(w) || (l.add(w), f.get(w) ? f.get(w).forEach(function (t) {
                return l.add(t);
              }) : w.initialStateNodes.forEach(function (t) {
                return l.add(t);
              })));
            }
          } catch (t) {
            s = {
              error: t
            };
          } finally {
            try {
              x && !x.done && (c = S["return"]) && c.call(S);
            } finally {
              if (s) throw s.error;
            }
          }
        } else f.get(E) ? f.get(E).forEach(function (t) {
          return l.add(t);
        }) : E.initialStateNodes.forEach(function (t) {
          return l.add(t);
        });
      }
    } catch (t) {
      o = {
        error: t
      };
    } finally {
      try {
        m && !m.done && (a = g["return"]) && a.call(g);
      } finally {
        if (o) throw o.error;
      }
    }

    try {
      for (var b = r(l), _ = b.next(); !_.done; _ = b.next()) {
        var E;

        for (v = (E = _.value).parent; v && !l.has(v);) {
          l.add(v), v = v.parent;
        }
      }
    } catch (t) {
      u = {
        error: t
      };
    } finally {
      try {
        _ && !_.done && (h = b["return"]) && h.call(b);
      } finally {
        if (u) throw u.error;
      }
    }

    return l;
  }

  function q(t) {
    var e,
        n,
        i = new Map();

    try {
      for (var o = r(t), a = o.next(); !a.done; a = o.next()) {
        var s = a.value;
        i.has(s) || i.set(s, []), s.parent && (i.has(s.parent) || i.set(s.parent, []), i.get(s.parent).push(s));
      }
    } catch (t) {
      e = {
        error: t
      };
    } finally {
      try {
        a && !a.done && (n = o["return"]) && n.call(o);
      } finally {
        if (e) throw e.error;
      }
    }

    return i;
  }

  function $(t, e) {
    return function t(e, n) {
      var r = n.get(e);
      if (!r) return {};

      if ("compound" === e.type) {
        var i = r[0];
        if (!i) return {};
        if (F(i)) return i.key;
      }

      var o = {};
      return r.forEach(function (e) {
        o[e.key] = t(e, n);
      }), o;
    }(t, q(J([t], e)));
  }

  function X(t, e) {
    return Array.isArray(t) ? t.some(function (t) {
      return t === e;
    }) : t instanceof Set && t.has(e);
  }

  function H(t, e) {
    return "compound" === e.type ? U(e).some(function (e) {
      return "final" === e.type && X(t, e);
    }) : "parallel" === e.type && U(e).every(function (e) {
      return H(t, e);
    });
  }

  function G(t) {
    return new Set(g(t.map(function (t) {
      return t.tags;
    })));
  }

  var K = t.ActionTypes.Start,
      Q = t.ActionTypes.Stop,
      W = t.ActionTypes.Raise,
      Y = t.ActionTypes.Send,
      Z = t.ActionTypes.Cancel,
      tt = t.ActionTypes.NullEvent,
      et = t.ActionTypes.Assign,
      nt = (t.ActionTypes.After, t.ActionTypes.DoneState, t.ActionTypes.Log),
      rt = t.ActionTypes.Init,
      it = t.ActionTypes.Invoke,
      ot = (t.ActionTypes.ErrorExecution, t.ActionTypes.ErrorPlatform),
      at = t.ActionTypes.ErrorCustom,
      st = t.ActionTypes.Update,
      ct = t.ActionTypes.Choose,
      ut = t.ActionTypes.Pure,
      ht = L({
    type: rt
  });

  function ft(t, e) {
    return e && e[t] || void 0;
  }

  function lt(t, n) {
    var r;
    if (A(t) || "number" == typeof t) r = N(i = ft(t, n)) ? {
      type: t,
      exec: i
    } : i || {
      type: t,
      exec: void 0
    };else if (N(t)) r = {
      type: t.name || t.toString(),
      exec: t
    };else {
      var i;
      if (N(i = ft(t.type, n))) r = _e(_e({}, t), {
        exec: i
      });else if (i) {
        var o = i.type || t.type;
        r = _e(_e(_e({}, i), t), {
          type: o
        });
      } else r = t;
    }
    return r;
  }

  var dt = function dt(t, e) {
    return t ? (T(t) ? t : [t]).map(function (t) {
      return lt(t, e);
    }) : [];
  };

  function pt(t) {
    var n = lt(t);
    return _e(_e({
      id: A(t) ? t : n.id
    }, n), {
      type: n.type
    });
  }

  function vt(e) {
    return A(e) ? {
      type: W,
      event: e
    } : yt(e, {
      to: t.SpecialTargets.Internal
    });
  }

  function yt(t, e) {
    return {
      to: e ? e.to : void 0,
      type: Y,
      event: N(t) ? t : V(t),
      delay: e ? e.delay : void 0,
      id: e && void 0 !== e.id ? e.id : N(t) ? t.name : u(t)
    };
  }

  function gt(n, r) {
    return yt(n, _e(_e({}, r), {
      to: t.SpecialTargets.Parent
    }));
  }

  function mt() {
    return gt(st);
  }

  var St = function St(t, e) {
    return {
      context: t,
      event: e
    };
  };

  var xt = function xt(t) {
    return {
      type: Z,
      sendId: t
    };
  };

  function wt(e) {
    var n = pt(e);
    return {
      type: t.ActionTypes.Start,
      activity: n,
      exec: void 0
    };
  }

  function bt(e) {
    var n = N(e) ? e : pt(e);
    return {
      type: t.ActionTypes.Stop,
      activity: n,
      exec: void 0
    };
  }

  var _t = function _t(t) {
    return {
      type: et,
      assignment: t
    };
  };

  function Et(e, n) {
    var r = n ? "#".concat(n) : "";
    return "".concat(t.ActionTypes.After, "(").concat(e, ")").concat(r);
  }

  function Tt(e, n) {
    var r = "".concat(t.ActionTypes.DoneState, ".").concat(e),
        i = {
      type: r,
      data: n,
      toString: function toString() {
        return r;
      }
    };
    return i;
  }

  function Nt(e, n) {
    var r = "".concat(t.ActionTypes.DoneInvoke, ".").concat(e),
        i = {
      type: r,
      data: n,
      toString: function toString() {
        return r;
      }
    };
    return i;
  }

  function At(e, n) {
    var r = "".concat(t.ActionTypes.ErrorPlatform, ".").concat(e),
        i = {
      type: r,
      data: n,
      toString: function toString() {
        return r;
      }
    };
    return i;
  }

  function Ot(t, n) {
    return yt(function (t, e) {
      return e;
    }, _e(_e({}, n), {
      to: t
    }));
  }

  function Pt(n, r, a, s, c, u) {
    void 0 === u && (u = !1);
    var h = i(u ? [[], c] : b(c, function (t) {
      return t.type === et;
    }), 2),
        f = h[0],
        l = h[1],
        d = f.length ? E(a, s, f, r) : a,
        p = u ? [a] : void 0;
    return [g(l.map(function (a) {
      var c;

      switch (a.type) {
        case W:
          return {
            type: W,
            _event: L(a.event)
          };

        case Y:
          return function (t, n, r, i) {
            var o,
                a = {
              _event: r
            },
                s = L(N(t.event) ? t.event(n, r.data, a) : t.event);

            if (A(t.delay)) {
              var c = i && i[t.delay];
              o = N(c) ? c(n, r.data, a) : c;
            } else o = N(t.delay) ? t.delay(n, r.data, a) : t.delay;

            var u = N(t.to) ? t.to(n, r.data, a) : t.to;
            return _e(_e({}, t), {
              to: u,
              _event: s,
              event: s.data,
              delay: o
            });
          }(a, d, s, n.options.delays);

        case nt:
          return function (t, n, r) {
            return _e(_e({}, t), {
              value: A(t.expr) ? t.expr : t.expr(n, r.data, {
                _event: r
              })
            });
          }(a, d, s);

        case ct:
          if (!(v = null === (c = a.conds.find(function (t) {
            var e = O(t.cond, n.options.guards);
            return !e || R(n, e, d, s, r);
          })) || void 0 === c ? void 0 : c.actions)) return [];
          var h = i(Pt(n, r, d, s, dt(S(v), n.options.actions), u), 2),
              f = h[0],
              l = h[1];
          return d = l, null == p || p.push(d), f;

        case ut:
          var v;
          if (!(v = a.get(d, s.data))) return [];
          var y = i(Pt(n, r, d, s, dt(S(v), n.options.actions), u), 2),
              g = y[0],
              m = y[1];
          return d = m, null == p || p.push(d), g;

        case Q:
          return function (e, n, r) {
            var i = N(e.activity) ? e.activity(n, r.data) : e.activity,
                o = "string" == typeof i ? {
              id: i
            } : i;
            return {
              type: t.ActionTypes.Stop,
              activity: o
            };
          }(a, d, s);

        case et:
          d = E(d, s, [a], r), null == p || p.push(d);
          break;

        default:
          var x = lt(a, n.options.actions),
              w = x.exec;

          if (w && p) {
            var b = p.length - 1;
            x = _e(_e({}, x), {
              exec: function exec(t) {
                for (var e = [], n = 1; n < arguments.length; n++) {
                  e[n - 1] = arguments[n];
                }

                w.apply(void 0, o([p[b]], i(e), !1));
              }
            });
          }

          return x;
      }
    }).filter(function (t) {
      return !!t;
    })), d];
  }

  var kt = function () {
    function t(t) {
      var e,
          n,
          r = this;
      this.actions = [], this.activities = a, this.meta = {}, this.events = [], this.value = t.value, this.context = t.context, this._event = t._event, this._sessionid = t._sessionid, this.event = this._event.data, this.historyValue = t.historyValue, this.history = t.history, this.actions = t.actions || [], this.activities = t.activities || a, this.meta = (void 0 === (n = t.configuration) && (n = []), n.reduce(function (t, e) {
        return void 0 !== e.meta && (t[e.id] = e.meta), t;
      }, {})), this.events = t.events || [], this.matches = this.matches.bind(this), this.toStrings = this.toStrings.bind(this), this.configuration = t.configuration, this.transitions = t.transitions, this.children = t.children, this.done = !!t.done, this.tags = null !== (e = Array.isArray(t.tags) ? new Set(t.tags) : t.tags) && void 0 !== e ? e : new Set(), this.machine = t.machine, Object.defineProperty(this, "nextEvents", {
        get: function get() {
          return function (t) {
            return o([], i(new Set(g(o([], i(t.map(function (t) {
              return t.ownEvents;
            })), !1)))), !1);
          }(r.configuration);
        }
      });
    }

    return t.from = function (e, n) {
      return e instanceof t ? e.context !== n ? new t({
        value: e.value,
        context: n,
        _event: e._event,
        _sessionid: null,
        historyValue: e.historyValue,
        history: e.history,
        actions: [],
        activities: e.activities,
        meta: {},
        events: [],
        configuration: [],
        transitions: [],
        children: {}
      }) : e : new t({
        value: e,
        context: n,
        _event: ht,
        _sessionid: null,
        historyValue: void 0,
        history: void 0,
        actions: [],
        activities: void 0,
        meta: void 0,
        events: [],
        configuration: [],
        transitions: [],
        children: {}
      });
    }, t.create = function (e) {
      return new t(e);
    }, t.inert = function (e, n) {
      if (e instanceof t) {
        if (!e.actions.length) return e;
        var r = ht;
        return new t({
          value: e.value,
          context: n,
          _event: r,
          _sessionid: null,
          historyValue: e.historyValue,
          history: e.history,
          activities: e.activities,
          configuration: e.configuration,
          transitions: [],
          children: {}
        });
      }

      return t.from(e, n);
    }, t.prototype.toStrings = function (t, e) {
      var n = this;
      if (void 0 === t && (t = this.value), void 0 === e && (e = "."), A(t)) return [t];
      var r = s(t);
      return r.concat.apply(r, o([], i(r.map(function (r) {
        return n.toStrings(t[r], e).map(function (t) {
          return r + e + t;
        });
      })), !1));
    }, t.prototype.toJSON = function () {
      var t = this,
          r = (t.configuration, t.transitions, t.tags),
          i = (t.machine, n(t, ["configuration", "transitions", "tags", "machine"]));
      return _e(_e({}, i), {
        tags: Array.from(r)
      });
    }, t.prototype.matches = function (t) {
      return c(t, this.value);
    }, t.prototype.hasTag = function (t) {
      return this.tags.has(t);
    }, t.prototype.can = function (t) {
      var e;
      return this.machine, !!(null === (e = this.machine) || void 0 === e ? void 0 : e.transition(this, t).changed);
    }, t;
  }(),
      It = [],
      jt = function jt(t, e) {
    It.push(t);
    var n = e(t);
    return It.pop(), n;
  };

  function Ct(t) {
    return {
      id: t,
      send: function send() {},
      subscribe: function subscribe() {
        return {
          unsubscribe: function unsubscribe() {}
        };
      },
      getSnapshot: function getSnapshot() {},
      toJSON: function toJSON() {
        return {
          id: t
        };
      }
    };
  }

  function Vt(t, e, n) {
    var r = Ct(e);

    if (r.deferred = !0, k(t)) {
      var i = r.state = jt(void 0, function () {
        return (n ? t.withContext(n) : t).initialState;
      });

      r.getSnapshot = function () {
        return i;
      };
    }

    return r;
  }

  function Lt(t) {
    if ("string" == typeof t) {
      var e = {
        type: t,
        toString: function toString() {
          return t;
        }
      };
      return e;
    }

    return t;
  }

  function Dt(t) {
    return _e(_e({
      type: it
    }, t), {
      toJSON: function toJSON() {
        t.onDone, t.onError;
        var r = n(t, ["onDone", "onError"]);
        return _e(_e({}, r), {
          type: it,
          src: Lt(t.src)
        });
      }
    });
  }

  var Rt = {},
      Mt = function Mt(t) {
    return "#" === t[0];
  },
      zt = function () {
    function a(t, n, c) {
      var u,
          h = this;
      void 0 === c && (c = "context" in t ? t.context : void 0), this.config = t, this._context = c, this.order = -1, this.__xstatenode = !0, this.__cache = {
        events: void 0,
        relativeValue: new Map(),
        initialStateValue: void 0,
        initialState: void 0,
        on: void 0,
        transitions: void 0,
        candidates: {},
        delayedTransitions: void 0
      }, this.idMap = {}, this.tags = [], this.options = Object.assign({
        actions: {},
        guards: {},
        services: {},
        activities: {},
        delays: {}
      }, n), this.parent = this.options._parent, this.key = this.config.key || this.options._key || this.config.id || "(machine)", this.machine = this.parent ? this.parent.machine : this, this.path = this.parent ? this.parent.path.concat(this.key) : [], this.delimiter = this.config.delimiter || (this.parent ? this.parent.delimiter : "."), this.id = this.config.id || o([this.machine.key], i(this.path), !1).join(this.delimiter), this.version = this.parent ? this.parent.version : this.config.version, this.type = this.config.type || (this.config.parallel ? "parallel" : this.config.states && s(this.config.states).length ? "compound" : this.config.history ? "history" : "atomic"), this.schema = this.parent ? this.machine.schema : null !== (u = this.config.schema) && void 0 !== u ? u : {}, this.description = this.config.description, this.initial = this.config.initial, this.states = this.config.states ? d(this.config.states, function (t, n) {
        var r,
            i = new a(t, {
          _parent: h,
          _key: n
        });
        return Object.assign(h.idMap, _e(((r = {})[i.id] = i, r), i.idMap)), i;
      }) : Rt;
      var f = 0;
      !function t(e) {
        var n, i;
        e.order = f++;

        try {
          for (var o = r(U(e)), a = o.next(); !a.done; a = o.next()) {
            t(a.value);
          }
        } catch (t) {
          n = {
            error: t
          };
        } finally {
          try {
            a && !a.done && (i = o["return"]) && i.call(o);
          } finally {
            if (n) throw n.error;
          }
        }
      }(this), this.history = !0 === this.config.history ? "shallow" : this.config.history || !1, this._transient = !!this.config.always || !!this.config.on && (Array.isArray(this.config.on) ? this.config.on.some(function (t) {
        return "" === t.event;
      }) : "" in this.config.on), this.strict = !!this.config.strict, this.onEntry = S(this.config.entry || this.config.onEntry).map(function (t) {
        return lt(t);
      }), this.onExit = S(this.config.exit || this.config.onExit).map(function (t) {
        return lt(t);
      }), this.meta = this.config.meta, this.doneData = "final" === this.type ? this.config.data : void 0, this.invoke = S(this.config.invoke).map(function (t, n) {
        var r, i;
        if (k(t)) return h.machine.options.services = _e(((r = {})[t.id] = t, r), h.machine.options.services), Dt({
          src: t.id,
          id: t.id
        });
        if (A(t.src)) return Dt(_e(_e({}, t), {
          id: t.id || t.src,
          src: t.src
        }));

        if (k(t.src) || N(t.src)) {
          var o = "".concat(h.id, ":invocation[").concat(n, "]");
          return h.machine.options.services = _e(((i = {})[o] = t.src, i), h.machine.options.services), Dt(_e(_e({
            id: o
          }, t), {
            src: o
          }));
        }

        var a = t.src;
        return Dt(_e(_e({
          id: a.type
        }, t), {
          src: a
        }));
      }), this.activities = S(this.config.activities).concat(this.invoke).map(function (t) {
        return pt(t);
      }), this.transition = this.transition.bind(this), this.tags = S(this.config.tags);
    }

    return a.prototype._init = function () {
      this.__cache.transitions || B(this).forEach(function (t) {
        return t.on;
      });
    }, a.prototype.withConfig = function (t, n) {
      var r = this.options,
          i = r.actions,
          o = r.activities,
          s = r.guards,
          c = r.services,
          u = r.delays;
      return new a(this.config, {
        actions: _e(_e({}, i), t.actions),
        activities: _e(_e({}, o), t.activities),
        guards: _e(_e({}, s), t.guards),
        services: _e(_e({}, c), t.services),
        delays: _e(_e({}, u), t.delays)
      }, null != n ? n : this.context);
    }, a.prototype.withContext = function (t) {
      return new a(this.config, this.options, t);
    }, Object.defineProperty(a.prototype, "context", {
      get: function get() {
        return N(this._context) ? this._context() : this._context;
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(a.prototype, "definition", {
      get: function get() {
        return {
          id: this.id,
          key: this.key,
          version: this.version,
          context: this.context,
          type: this.type,
          initial: this.initial,
          history: this.history,
          states: d(this.states, function (t) {
            return t.definition;
          }),
          on: this.on,
          transitions: this.transitions,
          entry: this.onEntry,
          exit: this.onExit,
          activities: this.activities || [],
          meta: this.meta,
          order: this.order || -1,
          data: this.doneData,
          invoke: this.invoke,
          description: this.description,
          tags: this.tags
        };
      },
      enumerable: !1,
      configurable: !0
    }), a.prototype.toJSON = function () {
      return this.definition;
    }, Object.defineProperty(a.prototype, "on", {
      get: function get() {
        if (this.__cache.on) return this.__cache.on;
        var t = this.transitions;
        return this.__cache.on = t.reduce(function (t, e) {
          return t[e.eventType] = t[e.eventType] || [], t[e.eventType].push(e), t;
        }, {});
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(a.prototype, "after", {
      get: function get() {
        return this.__cache.delayedTransitions || (this.__cache.delayedTransitions = this.getDelayedTransitions(), this.__cache.delayedTransitions);
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(a.prototype, "transitions", {
      get: function get() {
        return this.__cache.transitions || (this.__cache.transitions = this.formatTransitions(), this.__cache.transitions);
      },
      enumerable: !1,
      configurable: !0
    }), a.prototype.getCandidates = function (t) {
      if (this.__cache.candidates[t]) return this.__cache.candidates[t];
      var e = "" === t,
          n = this.transitions.filter(function (n) {
        var r = n.eventType === t;
        return e ? r : r || "*" === n.eventType;
      });
      return this.__cache.candidates[t] = n, n;
    }, a.prototype.getDelayedTransitions = function () {
      var t = this,
          n = this.config.after;
      if (!n) return [];

      var r = function r(e, n) {
        var r = Et(N(e) ? "".concat(t.id, ":delay[").concat(n, "]") : e, t.id);
        return t.onEntry.push(yt(r, {
          delay: e
        })), t.onExit.push(xt(r)), r;
      };

      return (T(n) ? n.map(function (t, n) {
        var i = r(t.delay, n);
        return _e(_e({}, t), {
          event: i
        });
      }) : g(s(n).map(function (t, i) {
        var o = n[t],
            a = A(o) ? {
          target: o
        } : o,
            s = isNaN(+t) ? t : +t,
            c = r(s, i);
        return S(a).map(function (t) {
          return _e(_e({}, t), {
            event: c,
            delay: s
          });
        });
      }))).map(function (n) {
        var r = n.delay;
        return _e(_e({}, t.formatTransition(n)), {
          delay: r
        });
      });
    }, a.prototype.getStateNodes = function (t) {
      var e,
          n = this;
      if (!t) return [];
      var r = t instanceof kt ? t.value : f(t, this.delimiter);

      if (A(r)) {
        var i = this.getStateNode(r).initial;
        return void 0 !== i ? this.getStateNodes(((e = {})[r] = i, e)) : [this, this.states[r]];
      }

      var o = s(r),
          a = o.map(function (t) {
        return n.getStateNode(t);
      });
      return a.push(this), a.concat(o.reduce(function (t, e) {
        var i = n.getStateNode(e).getStateNodes(r[e]);
        return t.concat(i);
      }, []));
    }, a.prototype.handles = function (t) {
      var e = u(t);
      return this.events.includes(e);
    }, a.prototype.resolveState = function (t) {
      var n = Array.from(J([], this.getStateNodes(t.value)));
      return new kt(_e(_e({}, t), {
        value: this.resolve(t.value),
        configuration: n,
        done: H(n, this),
        tags: G(n)
      }));
    }, a.prototype.transitionLeafNode = function (t, e, n) {
      var r = this.getStateNode(t).next(e, n);
      return r && r.transitions.length ? r : this.next(e, n);
    }, a.prototype.transitionCompoundNode = function (t, e, n) {
      var r = s(t),
          i = this.getStateNode(r[0])._transition(t[r[0]], e, n);

      return i && i.transitions.length ? i : this.next(e, n);
    }, a.prototype.transitionParallelNode = function (t, e, n) {
      var i,
          o,
          a = {};

      try {
        for (var c = r(s(t)), u = c.next(); !u.done; u = c.next()) {
          var h = u.value,
              f = t[h];

          if (f) {
            var l = this.getStateNode(h)._transition(f, e, n);

            l && (a[h] = l);
          }
        }
      } catch (t) {
        i = {
          error: t
        };
      } finally {
        try {
          u && !u.done && (o = c["return"]) && o.call(c);
        } finally {
          if (i) throw i.error;
        }
      }

      var d = s(a).map(function (t) {
        return a[t];
      }),
          p = g(d.map(function (t) {
        return t.transitions;
      }));
      if (!d.some(function (t) {
        return t.transitions.length > 0;
      })) return this.next(e, n);
      var v = g(d.map(function (t) {
        return t.entrySet;
      })),
          y = g(s(a).map(function (t) {
        return a[t].configuration;
      }));
      return {
        transitions: p,
        entrySet: v,
        exitSet: g(d.map(function (t) {
          return t.exitSet;
        })),
        configuration: y,
        source: e,
        actions: g(s(a).map(function (t) {
          return a[t].actions;
        }))
      };
    }, a.prototype._transition = function (t, e, n) {
      return A(t) ? this.transitionLeafNode(t, e, n) : 1 === s(t).length ? this.transitionCompoundNode(t, e, n) : this.transitionParallelNode(t, e, n);
    }, a.prototype.next = function (t, e) {
      var n,
          a,
          s,
          u = this,
          h = e.name,
          l = [],
          d = [];

      try {
        for (var p = r(this.getCandidates(h)), y = p.next(); !y.done; y = p.next()) {
          var m = y.value,
              S = m.cond,
              x = m["in"],
              w = t.context,
              b = !x || (A(x) && Mt(x) ? t.matches(f(this.getStateNodeById(x).path, this.delimiter)) : c(f(x, this.delimiter), v(this.path.slice(0, -2))(t.value))),
              _ = !1;

          try {
            _ = !S || R(this.machine, S, w, e, t);
          } catch (t) {
            throw new Error("Unable to evaluate guard '".concat(S.name || S.type, "' in transition for event '").concat(h, "' in state node '").concat(this.id, "':\n").concat(t.message));
          }

          if (_ && b) {
            void 0 !== m.target && (d = m.target), l.push.apply(l, o([], i(m.actions), !1)), s = m;
            break;
          }
        }
      } catch (t) {
        n = {
          error: t
        };
      } finally {
        try {
          y && !y.done && (a = p["return"]) && a.call(p);
        } finally {
          if (n) throw n.error;
        }
      }

      if (s) {
        if (!d.length) return {
          transitions: [s],
          entrySet: [],
          exitSet: [],
          configuration: t.value ? [this] : [],
          source: t,
          actions: l
        };
        var E = g(d.map(function (e) {
          return u.getRelativeStateNodes(e, t.historyValue);
        })),
            T = !!s.internal;
        return {
          transitions: [s],
          entrySet: T ? [] : g(E.map(function (t) {
            return u.nodesFromChild(t);
          })),
          exitSet: T ? [] : [this],
          configuration: E,
          source: t,
          actions: l
        };
      }
    }, a.prototype.nodesFromChild = function (t) {
      if (t.escapes(this)) return [];

      for (var e = [], n = t; n && n !== this;) {
        e.push(n), n = n.parent;
      }

      return e.push(this), e;
    }, a.prototype.escapes = function (t) {
      if (this === t) return !1;

      for (var e = this.parent; e;) {
        if (e === t) return !1;
        e = e.parent;
      }

      return !0;
    }, a.prototype.getActions = function (t, e, n, a) {
      var s,
          c,
          u,
          h,
          f = J([], a ? this.getStateNodes(a.value) : [this]),
          l = t.configuration.length ? J(f, t.configuration) : f;

      try {
        for (var d = r(l), p = d.next(); !p.done; p = d.next()) {
          X(f, m = p.value) || t.entrySet.push(m);
        }
      } catch (t) {
        s = {
          error: t
        };
      } finally {
        try {
          p && !p.done && (c = d["return"]) && c.call(d);
        } finally {
          if (s) throw s.error;
        }
      }

      try {
        for (var v = r(f), y = v.next(); !y.done; y = v.next()) {
          var m;
          X(l, m = y.value) && !X(t.exitSet, m.parent) || t.exitSet.push(m);
        }
      } catch (t) {
        u = {
          error: t
        };
      } finally {
        try {
          y && !y.done && (h = v["return"]) && h.call(v);
        } finally {
          if (u) throw u.error;
        }
      }

      t.source || (t.exitSet = [], t.entrySet.push(this));
      var S = g(t.entrySet.map(function (r) {
        var i = [];
        if ("final" !== r.type) return i;
        var o = r.parent;
        if (!o.parent) return i;
        i.push(Tt(r.id, r.doneData), Tt(o.id, r.doneData ? x(r.doneData, e, n) : void 0));
        var a = o.parent;
        return "parallel" === a.type && U(a).every(function (e) {
          return H(t.configuration, e);
        }) && i.push(Tt(a.id)), i;
      }));
      t.exitSet.sort(function (t, e) {
        return e.order - t.order;
      }), t.entrySet.sort(function (t, e) {
        return t.order - e.order;
      });

      var w = new Set(t.entrySet),
          b = new Set(t.exitSet),
          _ = i([g(Array.from(w).map(function (t) {
        return o(o([], i(t.activities.map(function (t) {
          return wt(t);
        })), !1), i(t.onEntry), !1);
      })).concat(S.map(vt)), g(Array.from(b).map(function (t) {
        return o(o([], i(t.onExit), !1), i(t.activities.map(function (t) {
          return bt(t);
        })), !1);
      }))], 2),
          E = _[0],
          T = _[1];

      return dt(T.concat(t.actions).concat(E), this.machine.options.actions);
    }, a.prototype.transition = function (t, e, n) {
      void 0 === t && (t = this.initialState);
      var r,
          a,
          s = L(e);
      if (t instanceof kt) r = void 0 === n ? t : this.resolveState(kt.from(t, n));else {
        var c = A(t) ? this.resolve(l(this.getResolvedPath(t))) : this.resolve(t),
            u = null != n ? n : this.machine.context;
        r = this.resolveState(kt.from(c, u));
      }
      if (this.strict && !this.events.includes(s.name) && (a = s.name, !/^(done|error)\./.test(a))) throw new Error("Machine '".concat(this.id, "' does not accept event '").concat(s.name, "'"));
      var h = this._transition(r.value, r, s) || {
        transitions: [],
        configuration: [],
        entrySet: [],
        exitSet: [],
        source: r,
        actions: []
      },
          f = J([], this.getStateNodes(r.value)),
          d = h.configuration.length ? J(f, h.configuration) : f;
      return h.configuration = o([], i(d), !1), this.resolveTransition(h, r, s);
    }, a.prototype.resolveRaisedTransition = function (t, e, n) {
      var r,
          a = t.actions;
      return (t = this.transition(t, e))._event = n, t.event = n.data, (r = t.actions).unshift.apply(r, o([], i(a), !1)), t;
    }, a.prototype.resolveTransition = function (n, o, a, c) {
      var u,
          h,
          f = this;
      void 0 === a && (a = ht), void 0 === c && (c = this.machine.context);
      var l = n.configuration,
          d = !o || n.transitions.length > 0,
          p = d ? $(this.machine, l) : void 0,
          v = o ? o.historyValue ? o.historyValue : n.source ? this.machine.historyValue(o.value) : void 0 : void 0,
          y = o ? o.context : c,
          g = this.getActions(n, y, a, o),
          m = o ? _e({}, o.activities) : {};

      try {
        for (var S = r(g), w = S.next(); !w.done; w = S.next()) {
          var E = w.value;
          E.type === K ? m[E.activity.id || E.activity.type] = E : E.type === Q && (m[E.activity.id || E.activity.type] = !1);
        }
      } catch (t) {
        u = {
          error: t
        };
      } finally {
        try {
          w && !w.done && (h = S["return"]) && h.call(S);
        } finally {
          if (u) throw u.error;
        }
      }

      var T,
          N,
          O = i(Pt(this, o, y, a, g, this.machine.config.preserveActionOrder), 2),
          P = O[0],
          k = O[1],
          I = i(b(P, function (e) {
        return e.type === W || e.type === Y && e.to === t.SpecialTargets.Internal;
      }), 2),
          j = I[0],
          C = I[1],
          V = P.filter(function (t) {
        var e;
        return t.type === K && (null === (e = t.activity) || void 0 === e ? void 0 : e.type) === it;
      }).reduce(function (t, e) {
        return t[e.activity.id] = function (t, e, n, r) {
          var i,
              o = M(t.src),
              a = null === (i = null == e ? void 0 : e.options.services) || void 0 === i ? void 0 : i[o.type],
              s = t.data ? x(t.data, n, r) : void 0,
              c = a ? Vt(a, t.id, s) : Ct(t.id);
          return c.meta = t, c;
        }(e.activity, f.machine, k, a), t;
      }, o ? _e({}, o.children) : {}),
          L = p ? n.configuration : o ? o.configuration : [],
          D = H(L, this),
          R = new kt({
        value: p || o.value,
        context: k,
        _event: a,
        _sessionid: o ? o._sessionid : null,
        historyValue: p ? v ? (T = v, N = p, {
          current: N,
          states: _(T, N)
        }) : void 0 : o ? o.historyValue : void 0,
        history: !p || n.source ? o : void 0,
        actions: p ? C : [],
        activities: p ? m : o ? o.activities : {},
        events: [],
        configuration: L,
        transitions: n.transitions,
        children: V,
        done: D,
        tags: null == o ? void 0 : o.tags,
        machine: this
      }),
          z = y !== k;
      R.changed = a.name === st || z;
      var F = R.history;
      F && delete F.history;
      var U = !D && (this._transient || l.some(function (t) {
        return t._transient;
      }));
      if (!(d || U && "" !== a.name)) return R;
      var B = R;
      if (!D) for (U && (B = this.resolveRaisedTransition(B, {
        type: tt
      }, a)); j.length;) {
        var J = j.shift();
        B = this.resolveRaisedTransition(B, J._event, a);
      }
      var q = B.changed || (F ? !!B.actions.length || z || typeof F.value != typeof B.value || !function t(e, n) {
        if (e === n) return !0;
        if (void 0 === e || void 0 === n) return !1;
        if (A(e) || A(n)) return e === n;
        var r = s(e),
            i = s(n);
        return r.length === i.length && r.every(function (r) {
          return t(e[r], n[r]);
        });
      }(B.value, F.value) : void 0);
      return B.changed = q, B.history = F, B.tags = G(B.configuration), B;
    }, a.prototype.getStateNode = function (t) {
      if (Mt(t)) return this.machine.getStateNodeById(t);
      if (!this.states) throw new Error("Unable to retrieve child state '".concat(t, "' from '").concat(this.id, "'; no child states exist."));
      var e = this.states[t];
      if (!e) throw new Error("Child state '".concat(t, "' does not exist on '").concat(this.id, "'"));
      return e;
    }, a.prototype.getStateNodeById = function (t) {
      var e = Mt(t) ? t.slice("#".length) : t;
      if (e === this.id) return this;
      var n = this.machine.idMap[e];
      if (!n) throw new Error("Child state node '#".concat(e, "' does not exist on machine '").concat(this.id, "'"));
      return n;
    }, a.prototype.getStateNodeByPath = function (t) {
      if ("string" == typeof t && Mt(t)) try {
        return this.getStateNodeById(t.slice(1));
      } catch (t) {}

      for (var e = h(t, this.delimiter).slice(), n = this; e.length;) {
        var r = e.shift();
        if (!r.length) break;
        n = n.getStateNode(r);
      }

      return n;
    }, a.prototype.resolve = function (t) {
      var e,
          n = this;
      if (!t) return this.initialStateValue || Rt;

      switch (this.type) {
        case "parallel":
          return d(this.initialStateValue, function (e, r) {
            return e ? n.getStateNode(r).resolve(t[r] || e) : Rt;
          });

        case "compound":
          if (A(t)) {
            var r = this.getStateNode(t);
            return "parallel" === r.type || "compound" === r.type ? ((e = {})[t] = r.initialStateValue, e) : t;
          }

          return s(t).length ? d(t, function (t, e) {
            return t ? n.getStateNode(e).resolve(t) : Rt;
          }) : this.initialStateValue || {};

        default:
          return t || Rt;
      }
    }, a.prototype.getResolvedPath = function (t) {
      if (Mt(t)) {
        var e = this.machine.idMap[t.slice("#".length)];
        if (!e) throw new Error("Unable to find state node '".concat(t, "'"));
        return e.path;
      }

      return h(t, this.delimiter);
    }, Object.defineProperty(a.prototype, "initialStateValue", {
      get: function get() {
        var t, e;
        if (this.__cache.initialStateValue) return this.__cache.initialStateValue;
        if ("parallel" === this.type) e = p(this.states, function (t) {
          return t.initialStateValue || Rt;
        }, function (t) {
          return !("history" === t.type);
        });else if (void 0 !== this.initial) {
          if (!this.states[this.initial]) throw new Error("Initial state '".concat(this.initial, "' not found on '").concat(this.key, "'"));
          e = F(this.states[this.initial]) ? this.initial : ((t = {})[this.initial] = this.states[this.initial].initialStateValue, t);
        } else e = {};
        return this.__cache.initialStateValue = e, this.__cache.initialStateValue;
      },
      enumerable: !1,
      configurable: !0
    }), a.prototype.getInitialState = function (t, e) {
      var n = this.getStateNodes(t);
      return this.resolveTransition({
        configuration: n,
        entrySet: n,
        exitSet: [],
        transitions: [],
        source: void 0,
        actions: []
      }, void 0, void 0, e);
    }, Object.defineProperty(a.prototype, "initialState", {
      get: function get() {
        this._init();

        var t = this.initialStateValue;
        if (!t) throw new Error("Cannot retrieve initial state from simple state '".concat(this.id, "'."));
        return this.getInitialState(t);
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(a.prototype, "target", {
      get: function get() {
        var t;

        if ("history" === this.type) {
          var e = this.config;
          t = A(e.target) && Mt(e.target) ? l(this.machine.getStateNodeById(e.target).path.slice(this.path.length - 1)) : e.target;
        }

        return t;
      },
      enumerable: !1,
      configurable: !0
    }), a.prototype.getRelativeStateNodes = function (t, e, n) {
      return void 0 === n && (n = !0), n ? "history" === t.type ? t.resolveHistory(e) : t.initialStateNodes : [t];
    }, Object.defineProperty(a.prototype, "initialStateNodes", {
      get: function get() {
        var t = this;
        return F(this) ? [this] : "compound" !== this.type || this.initial ? g(y(this.initialStateValue).map(function (e) {
          return t.getFromRelativePath(e);
        })) : [this];
      },
      enumerable: !1,
      configurable: !0
    }), a.prototype.getFromRelativePath = function (t) {
      if (!t.length) return [this];
      var e = i(t),
          n = e[0],
          r = e.slice(1);
      if (!this.states) throw new Error("Cannot retrieve subPath '".concat(n, "' from node with no states"));
      var o = this.getStateNode(n);
      if ("history" === o.type) return o.resolveHistory();
      if (!this.states[n]) throw new Error("Child state '".concat(n, "' does not exist on '").concat(this.id, "'"));
      return this.states[n].getFromRelativePath(r);
    }, a.prototype.historyValue = function (t) {
      if (s(this.states).length) return {
        current: t || this.initialStateValue,
        states: p(this.states, function (e, n) {
          if (!t) return e.historyValue();
          var r = A(t) ? void 0 : t[n];
          return e.historyValue(r || e.initialStateValue);
        }, function (t) {
          return !t.history;
        })
      };
    }, a.prototype.resolveHistory = function (t) {
      var e = this;
      if ("history" !== this.type) return [this];
      var n = this.parent;

      if (!t) {
        var i = this.target;
        return i ? g(y(i).map(function (t) {
          return n.getFromRelativePath(t);
        })) : n.initialStateNodes;
      }

      var o,
          a,
          s = (o = n.path, a = "states", function (t) {
        var e,
            n,
            i = t;

        try {
          for (var s = r(o), c = s.next(); !c.done; c = s.next()) {
            var u = c.value;
            i = i[a][u];
          }
        } catch (t) {
          e = {
            error: t
          };
        } finally {
          try {
            c && !c.done && (n = s["return"]) && n.call(s);
          } finally {
            if (e) throw e.error;
          }
        }

        return i;
      })(t).current;
      return A(s) ? [n.getStateNode(s)] : g(y(s).map(function (t) {
        return "deep" === e.history ? n.getFromRelativePath(t) : [n.states[t[0]]];
      }));
    }, Object.defineProperty(a.prototype, "stateIds", {
      get: function get() {
        var t = this,
            e = g(s(this.states).map(function (e) {
          return t.states[e].stateIds;
        }));
        return [this.id].concat(e);
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(a.prototype, "events", {
      get: function get() {
        var t, e, n, i;
        if (this.__cache.events) return this.__cache.events;
        var o = this.states,
            a = new Set(this.ownEvents);
        if (o) try {
          for (var c = r(s(o)), u = c.next(); !u.done; u = c.next()) {
            var h = o[u.value];
            if (h.states) try {
              for (var f = (n = void 0, r(h.events)), l = f.next(); !l.done; l = f.next()) {
                var d = l.value;
                a.add("".concat(d));
              }
            } catch (t) {
              n = {
                error: t
              };
            } finally {
              try {
                l && !l.done && (i = f["return"]) && i.call(f);
              } finally {
                if (n) throw n.error;
              }
            }
          }
        } catch (e) {
          t = {
            error: e
          };
        } finally {
          try {
            u && !u.done && (e = c["return"]) && e.call(c);
          } finally {
            if (t) throw t.error;
          }
        }
        return this.__cache.events = Array.from(a);
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(a.prototype, "ownEvents", {
      get: function get() {
        var t = new Set(this.transitions.filter(function (t) {
          return !(!t.target && !t.actions.length && t.internal);
        }).map(function (t) {
          return t.eventType;
        }));
        return Array.from(t);
      },
      enumerable: !1,
      configurable: !0
    }), a.prototype.resolveTarget = function (t) {
      var e = this;
      if (void 0 !== t) return t.map(function (t) {
        if (!A(t)) return t;
        var n = t[0] === e.delimiter;
        if (n && !e.parent) return e.getStateNodeByPath(t.slice(1));
        var r = n ? e.key + t : t;
        if (!e.parent) return e.getStateNodeByPath(r);

        try {
          return e.parent.getStateNodeByPath(r);
        } catch (t) {
          throw new Error("Invalid transition definition for state node '".concat(e.id, "':\n").concat(t.message));
        }
      });
    }, a.prototype.formatTransition = function (t) {
      var n = this,
          r = function (t) {
        if (void 0 !== t && "" !== t) return S(t);
      }(t.target),
          i = "internal" in t ? t.internal : !r || r.some(function (t) {
        return A(t) && t[0] === n.delimiter;
      }),
          o = this.machine.options.guards,
          a = this.resolveTarget(r),
          s = _e(_e({}, t), {
        actions: dt(S(t.actions)),
        cond: O(t.cond, o),
        target: a,
        source: this,
        internal: i,
        eventType: t.event,
        toJSON: function toJSON() {
          return _e(_e({}, s), {
            target: s.target ? s.target.map(function (t) {
              return "#".concat(t.id);
            }) : void 0,
            source: "#".concat(n.id)
          });
        }
      });

      return s;
    }, a.prototype.formatTransitions = function () {
      var t,
          e,
          a,
          c = this;
      if (this.config.on) {
        if (Array.isArray(this.config.on)) a = this.config.on;else {
          var u = this.config.on,
              h = u["*"],
              f = void 0 === h ? [] : h,
              l = n(u, ["*"]);
          a = g(s(l).map(function (t) {
            return D(t, l[t]);
          }).concat(D("*", f)));
        }
      } else a = [];
      var d = this.config.always ? D("", this.config.always) : [],
          p = this.config.onDone ? D(String(Tt(this.id)), this.config.onDone) : [],
          v = g(this.invoke.map(function (t) {
        var e = [];
        return t.onDone && e.push.apply(e, o([], i(D(String(Nt(t.id)), t.onDone)), !1)), t.onError && e.push.apply(e, o([], i(D(String(At(t.id)), t.onError)), !1)), e;
      })),
          y = this.after,
          m = g(o(o(o(o([], i(p), !1), i(v), !1), i(a), !1), i(d), !1).map(function (t) {
        return S(t).map(function (t) {
          return c.formatTransition(t);
        });
      }));

      try {
        for (var x = r(y), w = x.next(); !w.done; w = x.next()) {
          var b = w.value;
          m.push(b);
        }
      } catch (e) {
        t = {
          error: e
        };
      } finally {
        try {
          w && !w.done && (e = x["return"]) && e.call(x);
        } finally {
          if (t) throw t.error;
        }
      }

      return m;
    }, a;
  }();

  var Ft = {
    deferEvents: !1
  },
      Ut = function () {
    function t(t) {
      this.processingEvent = !1, this.queue = [], this.initialized = !1, this.options = _e(_e({}, Ft), t);
    }

    return t.prototype.initialize = function (t) {
      if (this.initialized = !0, t) {
        if (!this.options.deferEvents) return void this.schedule(t);
        this.process(t);
      }

      this.flushEvents();
    }, t.prototype.schedule = function (t) {
      if (this.initialized && !this.processingEvent) {
        if (0 !== this.queue.length) throw new Error("Event queue should be empty when it is not processing events");
        this.process(t), this.flushEvents();
      } else this.queue.push(t);
    }, t.prototype.clear = function () {
      this.queue = [];
    }, t.prototype.flushEvents = function () {
      for (var t = this.queue.shift(); t;) {
        this.process(t), t = this.queue.shift();
      }
    }, t.prototype.process = function (t) {
      this.processingEvent = !0;

      try {
        t();
      } catch (t) {
        throw this.clear(), t;
      } finally {
        this.processingEvent = !1;
      }
    }, t;
  }(),
      Bt = new Map(),
      Jt = 0,
      qt = function qt() {
    return "x:".concat(Jt++);
  },
      $t = function $t(t, e) {
    return Bt.set(t, e), t;
  },
      Xt = function Xt(t) {
    return Bt.get(t);
  },
      Ht = function Ht(t) {
    Bt["delete"](t);
  };

  function Gt() {
    return "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0;
  }

  function Kt(t) {
    if (Gt()) {
      var e = function () {
        var t = Gt();
        if (t && "__xstate__" in t) return t.__xstate__;
      }();

      e && e.register(t);
    }
  }

  function Qt(t, n) {
    void 0 === n && (n = {});
    var r,
        i = t.initialState,
        o = new Set(),
        a = [],
        s = !1,
        c = (r = {
      id: n.id,
      send: function send(e) {
        a.push(e), function () {
          if (!s) {
            for (s = !0; a.length > 0;) {
              var e = a.shift();
              i = t.transition(i, e, u), o.forEach(function (t) {
                return t.next(i);
              });
            }

            s = !1;
          }
        }();
      },
      getSnapshot: function getSnapshot() {
        return i;
      },
      subscribe: function subscribe(t, e, n) {
        var r = z(t, e, n);
        return o.add(r), r.next(i), {
          unsubscribe: function unsubscribe() {
            o["delete"](r);
          }
        };
      }
    }, _e({
      subscribe: function subscribe() {
        return {
          unsubscribe: function unsubscribe() {}
        };
      },
      id: "anonymous",
      getSnapshot: function getSnapshot() {}
    }, r)),
        u = {
      parent: n.parent,
      self: c,
      id: n.id || "anonymous",
      observers: o
    };
    return i = t.start ? t.start(u) : i, c;
  }

  var Wt,
      Yt = {
    sync: !1,
    autoForward: !1
  };
  (Wt = t.InterpreterStatus || (t.InterpreterStatus = {}))[Wt.NotStarted = 0] = "NotStarted", Wt[Wt.Running = 1] = "Running", Wt[Wt.Stopped = 2] = "Stopped";

  var Zt = function () {
    function n(r, i) {
      var o = this;
      void 0 === i && (i = n.defaultOptions), this.machine = r, this.scheduler = new Ut(), this.delayedEventsMap = {}, this.listeners = new Set(), this.contextListeners = new Set(), this.stopListeners = new Set(), this.doneListeners = new Set(), this.eventListeners = new Set(), this.sendListeners = new Set(), this.initialized = !1, this.status = t.InterpreterStatus.NotStarted, this.children = new Map(), this.forwardTo = new Set(), this.init = this.start, this.send = function (e, n) {
        if (T(e)) return o.batch(e), o.state;
        var r = L(V(e, n));
        if (o.status === t.InterpreterStatus.Stopped) return o.state;
        if (o.status !== t.InterpreterStatus.Running && !o.options.deferEvents) throw new Error('Event "'.concat(r.name, '" was sent to uninitialized service "').concat(o.machine.id, '". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\nEvent: ').concat(JSON.stringify(r.data)));
        return o.scheduler.schedule(function () {
          o.forward(r);
          var t = o.nextState(r);
          o.update(t, r);
        }), o._state;
      }, this.sendTo = function (n, r) {
        var i,
            a = o.parent && (r === t.SpecialTargets.Parent || o.parent.id === r),
            s = a ? o.parent : A(r) ? o.children.get(r) || Xt(r) : (i = r) && "function" == typeof i.send ? r : void 0;
        if (s) "machine" in s ? s.send(_e(_e({}, n), {
          name: n.name === at ? "".concat(At(o.id)) : n.name,
          origin: o.sessionId
        })) : s.send(n.data);else if (!a) throw new Error("Unable to send event to child '".concat(r, "' from service '").concat(o.id, "'."));
      };

      var a = _e(_e({}, n.defaultOptions), i),
          s = a.clock,
          c = a.logger,
          u = a.parent,
          h = a.id,
          f = void 0 !== h ? h : r.id;

      this.id = f, this.logger = c, this.clock = s, this.parent = u, this.options = a, this.scheduler = new Ut({
        deferEvents: this.options.deferEvents
      }), this.sessionId = qt();
    }

    return Object.defineProperty(n.prototype, "initialState", {
      get: function get() {
        var t = this;
        return this._initialState ? this._initialState : jt(this, function () {
          return t._initialState = t.machine.initialState, t._initialState;
        });
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(n.prototype, "state", {
      get: function get() {
        return this._state;
      },
      enumerable: !1,
      configurable: !0
    }), n.prototype.execute = function (t, e) {
      var n, i;

      try {
        for (var o = r(t.actions), a = o.next(); !a.done; a = o.next()) {
          var s = a.value;
          this.exec(s, t, e);
        }
      } catch (t) {
        n = {
          error: t
        };
      } finally {
        try {
          a && !a.done && (i = o["return"]) && i.call(o);
        } finally {
          if (n) throw n.error;
        }
      }
    }, n.prototype.update = function (t, e) {
      var n,
          i,
          o,
          a,
          s,
          c,
          u,
          h,
          f = this;
      if (t._sessionid = this.sessionId, this._state = t, this.options.execute && this.execute(this.state), this.children.forEach(function (t) {
        f.state.children[t.id] = t;
      }), this.devTools && this.devTools.send(e.data, t), t.event) try {
        for (var l = r(this.eventListeners), d = l.next(); !d.done; d = l.next()) {
          (0, d.value)(t.event);
        }
      } catch (t) {
        n = {
          error: t
        };
      } finally {
        try {
          d && !d.done && (i = l["return"]) && i.call(l);
        } finally {
          if (n) throw n.error;
        }
      }

      try {
        for (var p = r(this.listeners), v = p.next(); !v.done; v = p.next()) {
          (0, v.value)(t, t.event);
        }
      } catch (t) {
        o = {
          error: t
        };
      } finally {
        try {
          v && !v.done && (a = p["return"]) && a.call(p);
        } finally {
          if (o) throw o.error;
        }
      }

      try {
        for (var y = r(this.contextListeners), g = y.next(); !g.done; g = y.next()) {
          (0, g.value)(this.state.context, this.state.history ? this.state.history.context : void 0);
        }
      } catch (t) {
        s = {
          error: t
        };
      } finally {
        try {
          g && !g.done && (c = y["return"]) && c.call(y);
        } finally {
          if (s) throw s.error;
        }
      }

      var m = H(t.configuration || [], this.machine);

      if (this.state.configuration && m) {
        var S = t.configuration.find(function (t) {
          return "final" === t.type && t.parent === f.machine;
        }),
            w = S && S.doneData ? x(S.doneData, t.context, e) : void 0;

        try {
          for (var b = r(this.doneListeners), _ = b.next(); !_.done; _ = b.next()) {
            (0, _.value)(Nt(this.id, w));
          }
        } catch (t) {
          u = {
            error: t
          };
        } finally {
          try {
            _ && !_.done && (h = b["return"]) && h.call(b);
          } finally {
            if (u) throw u.error;
          }
        }

        this.stop();
      }
    }, n.prototype.onTransition = function (e) {
      return this.listeners.add(e), this.status === t.InterpreterStatus.Running && e(this.state, this.state.event), this;
    }, n.prototype.subscribe = function (e, n, r) {
      var i,
          o = this;
      if (!e) return {
        unsubscribe: function unsubscribe() {}
      };
      var a = r;
      return "function" == typeof e ? i = e : (i = e.next.bind(e), a = e.complete.bind(e)), this.listeners.add(i), this.status === t.InterpreterStatus.Running && i(this.state), a && this.onDone(a), {
        unsubscribe: function unsubscribe() {
          i && o.listeners["delete"](i), a && o.doneListeners["delete"](a);
        }
      };
    }, n.prototype.onEvent = function (t) {
      return this.eventListeners.add(t), this;
    }, n.prototype.onSend = function (t) {
      return this.sendListeners.add(t), this;
    }, n.prototype.onChange = function (t) {
      return this.contextListeners.add(t), this;
    }, n.prototype.onStop = function (t) {
      return this.stopListeners.add(t), this;
    }, n.prototype.onDone = function (t) {
      return this.doneListeners.add(t), this;
    }, n.prototype.off = function (t) {
      return this.listeners["delete"](t), this.eventListeners["delete"](t), this.sendListeners["delete"](t), this.stopListeners["delete"](t), this.doneListeners["delete"](t), this.contextListeners["delete"](t), this;
    }, n.prototype.start = function (e) {
      var n = this;
      if (this.status === t.InterpreterStatus.Running) return this;
      $t(this.sessionId, this), this.initialized = !0, this.status = t.InterpreterStatus.Running;
      var r = void 0 === e ? this.initialState : jt(this, function () {
        return !A(t = e) && "value" in t && "history" in t ? n.machine.resolveState(e) : n.machine.resolveState(kt.from(e, n.machine.context));
        var t;
      });
      return this.options.devTools && this.attachDev(), this.scheduler.initialize(function () {
        n.update(r, ht);
      }), this;
    }, n.prototype.stop = function () {
      var e,
          n,
          i,
          o,
          a,
          c,
          u,
          h,
          f,
          l,
          d = this;

      try {
        for (var p = r(this.listeners), v = p.next(); !v.done; v = p.next()) {
          var y = v.value;
          this.listeners["delete"](y);
        }
      } catch (t) {
        e = {
          error: t
        };
      } finally {
        try {
          v && !v.done && (n = p["return"]) && n.call(p);
        } finally {
          if (e) throw e.error;
        }
      }

      try {
        for (var g = r(this.stopListeners), m = g.next(); !m.done; m = g.next()) {
          (y = m.value)(), this.stopListeners["delete"](y);
        }
      } catch (t) {
        i = {
          error: t
        };
      } finally {
        try {
          m && !m.done && (o = g["return"]) && o.call(g);
        } finally {
          if (i) throw i.error;
        }
      }

      try {
        for (var S = r(this.contextListeners), x = S.next(); !x.done; x = S.next()) {
          y = x.value;
          this.contextListeners["delete"](y);
        }
      } catch (t) {
        a = {
          error: t
        };
      } finally {
        try {
          x && !x.done && (c = S["return"]) && c.call(S);
        } finally {
          if (a) throw a.error;
        }
      }

      try {
        for (var w = r(this.doneListeners), b = w.next(); !b.done; b = w.next()) {
          y = b.value;
          this.doneListeners["delete"](y);
        }
      } catch (t) {
        u = {
          error: t
        };
      } finally {
        try {
          b && !b.done && (h = w["return"]) && h.call(w);
        } finally {
          if (u) throw u.error;
        }
      }

      if (!this.initialized) return this;
      this.state.configuration.forEach(function (t) {
        var e, n;

        try {
          for (var i = r(t.definition.exit), o = i.next(); !o.done; o = i.next()) {
            var a = o.value;
            d.exec(a, d.state);
          }
        } catch (t) {
          e = {
            error: t
          };
        } finally {
          try {
            o && !o.done && (n = i["return"]) && n.call(i);
          } finally {
            if (e) throw e.error;
          }
        }
      }), this.children.forEach(function (t) {
        N(t.stop) && t.stop();
      });

      try {
        for (var _ = r(s(this.delayedEventsMap)), E = _.next(); !E.done; E = _.next()) {
          var T = E.value;
          this.clock.clearTimeout(this.delayedEventsMap[T]);
        }
      } catch (t) {
        f = {
          error: t
        };
      } finally {
        try {
          E && !E.done && (l = _["return"]) && l.call(_);
        } finally {
          if (f) throw f.error;
        }
      }

      return this.scheduler.clear(), this.initialized = !1, this.status = t.InterpreterStatus.Stopped, Ht(this.sessionId), this;
    }, n.prototype.batch = function (n) {
      var a = this;
      if (this.status === t.InterpreterStatus.NotStarted && this.options.deferEvents) ;else if (this.status !== t.InterpreterStatus.Running) throw new Error("".concat(n.length, ' event(s) were sent to uninitialized service "').concat(this.machine.id, '". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.'));
      this.scheduler.schedule(function () {
        var t,
            s,
            c = a.state,
            u = !1,
            h = [],
            f = function f(t) {
          var n = L(t);
          a.forward(n), c = jt(a, function () {
            return a.machine.transition(c, n);
          }), h.push.apply(h, o([], i(c.actions.map(function (t) {
            return r = c, i = (n = t).exec, _e(_e({}, n), {
              exec: void 0 !== i ? function () {
                return i(r.context, r.event, {
                  action: n,
                  state: r,
                  _event: r._event
                });
              } : void 0
            });
            var n, r, i;
          })), !1)), u = u || !!c.changed;
        };

        try {
          for (var l = r(n), d = l.next(); !d.done; d = l.next()) {
            f(d.value);
          }
        } catch (e) {
          t = {
            error: e
          };
        } finally {
          try {
            d && !d.done && (s = l["return"]) && s.call(l);
          } finally {
            if (t) throw t.error;
          }
        }

        c.changed = u, c.actions = h, a.update(c, L(n[n.length - 1]));
      });
    }, n.prototype.sender = function (t) {
      return this.send.bind(this, t);
    }, n.prototype.nextState = function (t) {
      var e = this,
          n = L(t);
      if (0 === n.name.indexOf(ot) && !this.state.nextEvents.some(function (t) {
        return 0 === t.indexOf(ot);
      })) throw n.data.data;
      return jt(this, function () {
        return e.machine.transition(e.state, n);
      });
    }, n.prototype.forward = function (t) {
      var e, n;

      try {
        for (var i = r(this.forwardTo), o = i.next(); !o.done; o = i.next()) {
          var a = o.value,
              s = this.children.get(a);
          if (!s) throw new Error("Unable to forward event '".concat(t, "' from interpreter '").concat(this.id, "' to nonexistant child '").concat(a, "'."));
          s.send(t);
        }
      } catch (t) {
        e = {
          error: t
        };
      } finally {
        try {
          o && !o.done && (n = i["return"]) && n.call(i);
        } finally {
          if (e) throw e.error;
        }
      }
    }, n.prototype.defer = function (t) {
      var e = this;
      this.delayedEventsMap[t.id] = this.clock.setTimeout(function () {
        t.to ? e.sendTo(t._event, t.to) : e.send(t._event);
      }, t.delay);
    }, n.prototype.cancel = function (t) {
      this.clock.clearTimeout(this.delayedEventsMap[t]), delete this.delayedEventsMap[t];
    }, n.prototype.exec = function (e, n, r) {
      void 0 === r && (r = this.machine.options.actions);
      var i = n.context,
          o = n._event,
          a = e.exec || ft(e.type, r),
          s = N(a) ? a : a ? a.exec : e.exec;
      if (s) try {
        return s(i, o.data, {
          action: e,
          state: this.state,
          _event: o
        });
      } catch (t) {
        throw this.parent && this.parent.send({
          type: "xstate.error",
          data: t
        }), t;
      }

      switch (e.type) {
        case Y:
          var c = e;
          if ("number" == typeof c.delay) return void this.defer(c);
          c.to ? this.sendTo(c._event, c.to) : this.send(c._event);
          break;

        case Z:
          this.cancel(e.sendId);
          break;

        case K:
          var u = e.activity;
          if (!this.state.activities[u.id || u.type]) break;

          if (u.type === t.ActionTypes.Invoke) {
            var h = M(u.src),
                f = this.machine.options.services ? this.machine.options.services[h.type] : void 0,
                l = u.id,
                d = u.data,
                p = "autoForward" in u ? u.autoForward : !!u.forward;
            if (!f) return;
            var v = d ? x(d, i, o) : void 0;
            if ("string" == typeof f) return;
            var y = N(f) ? f(i, o.data, {
              data: v,
              src: h,
              meta: u.meta
            }) : f;
            if (!y) return;
            var g = void 0;
            k(y) && (y = v ? y.withContext(v) : y, g = {
              autoForward: p
            }), this.spawn(y, l, g);
          } else this.spawnActivity(u);

          break;

        case Q:
          this.stopChild(e.activity.id);
          break;

        case nt:
          var m = e.label,
              S = e.value;
          m ? this.logger(m, S) : this.logger(S);
      }
    }, n.prototype.removeChild = function (t) {
      var e;
      this.children["delete"](t), this.forwardTo["delete"](t), null === (e = this.state) || void 0 === e || delete e.children[t];
    }, n.prototype.stopChild = function (t) {
      var e = this.children.get(t);
      e && (this.removeChild(t), N(e.stop) && e.stop());
    }, n.prototype.spawn = function (t, n, r) {
      if (w(t)) return this.spawnPromise(Promise.resolve(t), n);
      if (N(t)) return this.spawnCallback(t, n);
      if (function (t) {
        try {
          return "function" == typeof t.send;
        } catch (t) {
          return !1;
        }
      }(o = t) && "id" in o) return this.spawnActor(t, n);
      if (function (t) {
        try {
          return "subscribe" in t && N(t.subscribe);
        } catch (t) {
          return !1;
        }
      }(t)) return this.spawnObservable(t, n);
      if (k(t)) return this.spawnMachine(t, _e(_e({}, r), {
        id: n
      }));
      if (null !== (i = t) && "object" == typeof i && "transition" in i && "function" == typeof i.transition) return this.spawnBehavior(t, n);
      throw new Error('Unable to spawn entity "'.concat(n, '" of type "').concat(typeof t, '".'));
      var i, o;
    }, n.prototype.spawnMachine = function (t, r) {
      var i = this;
      void 0 === r && (r = {});

      var o = new n(t, _e(_e({}, this.options), {
        parent: this,
        id: r.id || t.id
      })),
          a = _e(_e({}, Yt), r);

      a.sync && o.onTransition(function (t) {
        i.send(st, {
          state: t,
          id: o.id
        });
      });
      var s = o;
      return this.children.set(o.id, s), a.autoForward && this.forwardTo.add(o.id), o.onDone(function (t) {
        i.removeChild(o.id), i.send(L(t, {
          origin: o.id
        }));
      }).start(), s;
    }, n.prototype.spawnBehavior = function (t, e) {
      var n = Qt(t, {
        id: e,
        parent: this
      });
      return this.children.set(e, n), n;
    }, n.prototype.spawnPromise = function (t, e) {
      var n,
          r = this,
          i = !1;
      t.then(function (t) {
        i || (n = t, r.removeChild(e), r.send(L(Nt(e, t), {
          origin: e
        })));
      }, function (t) {
        if (!i) {
          r.removeChild(e);
          var n = At(e, t);

          try {
            r.send(L(n, {
              origin: e
            }));
          } catch (t) {
            r.devTools && r.devTools.send(n, r.state), r.machine.strict && r.stop();
          }
        }
      });
      var o = {
        id: e,
        send: function send() {},
        subscribe: function subscribe(e, n, r) {
          var i = z(e, n, r),
              o = !1;
          return t.then(function (t) {
            o || (i.next(t), o || i.complete());
          }, function (t) {
            o || i.error(t);
          }), {
            unsubscribe: function unsubscribe() {
              return o = !0;
            }
          };
        },
        stop: function stop() {
          i = !0;
        },
        toJSON: function toJSON() {
          return {
            id: e
          };
        },
        getSnapshot: function getSnapshot() {
          return n;
        }
      };
      return this.children.set(e, o), o;
    }, n.prototype.spawnCallback = function (t, e) {
      var n,
          r,
          i = this,
          o = !1,
          a = new Set(),
          s = new Set();

      try {
        r = t(function (t) {
          n = t, s.forEach(function (e) {
            return e(t);
          }), o || i.send(L(t, {
            origin: e
          }));
        }, function (t) {
          a.add(t);
        });
      } catch (t) {
        this.send(At(e, t));
      }

      if (w(r)) return this.spawnPromise(r, e);
      var c = {
        id: e,
        send: function send(t) {
          return a.forEach(function (e) {
            return e(t);
          });
        },
        subscribe: function subscribe(t) {
          return s.add(t), {
            unsubscribe: function unsubscribe() {
              s["delete"](t);
            }
          };
        },
        stop: function stop() {
          o = !0, N(r) && r();
        },
        toJSON: function toJSON() {
          return {
            id: e
          };
        },
        getSnapshot: function getSnapshot() {
          return n;
        }
      };
      return this.children.set(e, c), c;
    }, n.prototype.spawnObservable = function (t, e) {
      var n,
          r = this,
          i = t.subscribe(function (t) {
        n = t, r.send(L(t, {
          origin: e
        }));
      }, function (t) {
        r.removeChild(e), r.send(L(At(e, t), {
          origin: e
        }));
      }, function () {
        r.removeChild(e), r.send(L(Nt(e), {
          origin: e
        }));
      }),
          o = {
        id: e,
        send: function send() {},
        subscribe: function subscribe(e, n, r) {
          return t.subscribe(e, n, r);
        },
        stop: function stop() {
          return i.unsubscribe();
        },
        getSnapshot: function getSnapshot() {
          return n;
        },
        toJSON: function toJSON() {
          return {
            id: e
          };
        }
      };
      return this.children.set(e, o), o;
    }, n.prototype.spawnActor = function (t, e) {
      return this.children.set(e, t), t;
    }, n.prototype.spawnActivity = function (t) {
      var e = this.machine.options && this.machine.options.activities ? this.machine.options.activities[t.type] : void 0;

      if (e) {
        var n = e(this.state.context, t);
        this.spawnEffect(t.id, n);
      }
    }, n.prototype.spawnEffect = function (t, e) {
      this.children.set(t, {
        id: t,
        send: function send() {},
        subscribe: function subscribe() {
          return {
            unsubscribe: function unsubscribe() {}
          };
        },
        stop: e || void 0,
        getSnapshot: function getSnapshot() {},
        toJSON: function toJSON() {
          return {
            id: t
          };
        }
      });
    }, n.prototype.attachDev = function () {
      var t = Gt();

      if (this.options.devTools && t) {
        if (t.__REDUX_DEVTOOLS_EXTENSION__) {
          var n = "object" == typeof this.options.devTools ? this.options.devTools : void 0;
          this.devTools = t.__REDUX_DEVTOOLS_EXTENSION__.connect(_e(_e({
            name: this.id,
            autoPause: !0,
            stateSanitizer: function stateSanitizer(t) {
              return {
                value: t.value,
                context: t.context,
                actions: t.actions
              };
            }
          }, n), {
            features: _e({
              jump: !1,
              skip: !1
            }, n ? n.features : void 0)
          }), this.machine), this.devTools.init(this.state);
        }

        Kt(this);
      }
    }, n.prototype.toJSON = function () {
      return {
        id: this.id
      };
    }, n.prototype[P] = function () {
      return this;
    }, n.prototype.getSnapshot = function () {
      return this.status === t.InterpreterStatus.NotStarted ? this.initialState : this._state;
    }, n.defaultOptions = function (t) {
      return {
        execute: !0,
        deferEvents: !0,
        clock: {
          setTimeout: function (_setTimeout) {
            function setTimeout(_x, _x2) {
              return _setTimeout.apply(this, arguments);
            }

            setTimeout.toString = function () {
              return _setTimeout.toString();
            };

            return setTimeout;
          }(function (t, e) {
            return setTimeout(t, e);
          }),
          clearTimeout: function (_clearTimeout) {
            function clearTimeout(_x3) {
              return _clearTimeout.apply(this, arguments);
            }

            clearTimeout.toString = function () {
              return _clearTimeout.toString();
            };

            return clearTimeout;
          }(function (t) {
            return clearTimeout(t);
          })
        },
        logger: t.console.log.bind(console),
        devTools: !1
      };
    }("undefined" != typeof self ? self : global), n.interpret = te, n;
  }();

  function te(t, e) {
    return new Zt(t, e);
  }

  var ee = {
    raise: vt,
    send: yt,
    sendParent: gt,
    sendUpdate: mt,
    log: function log(t, e) {
      return void 0 === t && (t = St), {
        type: nt,
        label: e,
        expr: t
      };
    },
    cancel: xt,
    start: wt,
    stop: bt,
    assign: _t,
    after: Et,
    done: Tt,
    respond: function respond(t, n) {
      return yt(t, _e(_e({}, n), {
        to: function to(t, e, n) {
          return n._event.origin;
        }
      }));
    },
    forwardTo: Ot,
    escalate: function escalate(n, r) {
      return gt(function (t, e, r) {
        return {
          type: at,
          data: N(n) ? n(t, e, r) : n
        };
      }, _e(_e({}, r), {
        to: t.SpecialTargets.Parent
      }));
    },
    choose: function choose(e) {
      return {
        type: t.ActionTypes.Choose,
        conds: e
      };
    },
    pure: function pure(e) {
      return {
        type: t.ActionTypes.Pure,
        get: e
      };
    }
  };
  t.Interpreter = Zt, t.Machine = function (t, e, n) {
    return void 0 === n && (n = t.context), new zt(t, e, n);
  }, t.State = kt, t.StateNode = zt, t.actions = ee, t.assign = _t, t.createMachine = function (t, e) {
    return new zt(t, e);
  }, t.createSchema = function (t) {
    return t;
  }, t.doneInvoke = Nt, t.forwardTo = Ot, t.interpret = te, t.mapState = function (t, e) {
    var n, i, o;

    try {
      for (var a = r(s(t)), u = a.next(); !u.done; u = a.next()) {
        var h = u.value;
        c(h, e) && (!o || e.length > o.length) && (o = h);
      }
    } catch (t) {
      n = {
        error: t
      };
    } finally {
      try {
        u && !u.done && (i = a["return"]) && i.call(a);
      } finally {
        if (n) throw n.error;
      }
    }

    return t[o];
  }, t.matchState = function (t, e, n) {
    var o,
        a,
        s = kt.from(t, t instanceof kt ? t.context : void 0);

    try {
      for (var c = r(e), u = c.next(); !u.done; u = c.next()) {
        var h = i(u.value, 2),
            f = h[0],
            l = h[1];
        if (s.matches(f)) return l(s);
      }
    } catch (t) {
      o = {
        error: t
      };
    } finally {
      try {
        u && !u.done && (a = c["return"]) && a.call(c);
      } finally {
        if (o) throw o.error;
      }
    }

    return n(s);
  }, t.matchesState = c, t.send = yt, t.sendParent = gt, t.sendUpdate = mt, t.spawn = function (t, n) {
    var r = function (t) {
      return A(t) ? _e(_e({}, Yt), {
        name: t
      }) : _e(_e(_e({}, Yt), {
        name: C()
      }), t);
    }(n);

    return function (e) {
      return e ? e.spawn(t, r.name, r) : Vt(t, r.name);
    }(It[It.length - 1]);
  }, Object.defineProperty(t, "__esModule", {
    value: !0
  });
});

cc._RF.pop();

}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
                    }
                    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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hc3NldHMvT1AxNS9zY3JpcHQveHN0YXRlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLENBQUMsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsY0FBVSxPQUFPLE9BQWpCLElBQTBCLGVBQWEsT0FBTyxNQUE5QyxHQUFxRCxDQUFDLENBQUMsT0FBRCxDQUF0RCxHQUFnRSxjQUFZLE9BQU8sTUFBbkIsSUFBMkIsTUFBTSxDQUFDLEdBQWxDLEdBQXNDLE1BQU0sQ0FBQyxDQUFDLFNBQUQsQ0FBRCxFQUFhLENBQWIsQ0FBNUMsR0FBNEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLGVBQWEsT0FBTyxVQUFwQixHQUErQixVQUEvQixHQUEwQyxDQUFDLElBQUUsSUFBaEQsRUFBc0QsTUFBdEQsR0FBNkQsRUFBOUQsQ0FBN0g7QUFBK0wsQ0FBN00sU0FBb04sVUFBUyxDQUFULEVBQVc7QUFBQztBQUNqTztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUFvRixNQUFJLEVBQUMsR0FBQyxhQUFVO0FBQUMsV0FBTSxDQUFDLEVBQUMsR0FBQyxNQUFNLENBQUMsTUFBUCxJQUFlLFVBQVMsQ0FBVCxFQUFXO0FBQUMsV0FBSSxJQUFJLENBQUosRUFBTSxDQUFDLEdBQUMsQ0FBUixFQUFVLENBQUMsR0FBQyxTQUFTLENBQUMsTUFBMUIsRUFBaUMsQ0FBQyxHQUFDLENBQW5DLEVBQXFDLENBQUMsRUFBdEM7QUFBeUMsYUFBSSxJQUFJLENBQVIsSUFBYSxDQUFDLEdBQUMsU0FBUyxDQUFDLENBQUQsQ0FBeEI7QUFBNEIsVUFBQSxNQUFNLENBQUMsU0FBUCxDQUFpQixjQUFqQixDQUFnQyxJQUFoQyxDQUFxQyxDQUFyQyxFQUF1QyxDQUF2QyxNQUE0QyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBQyxDQUFDLENBQUQsQ0FBbEQ7QUFBNUI7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LEVBQUosQ0FBRixFQUFVO0FBQUMsUUFBQSxJQUFJLEVBQUM7QUFBTixPQUFWLENBQU4sR0FBMEIsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLEVBQUosQ0FBRixFQUFVO0FBQUMsUUFBQSxJQUFJLEVBQUMsQ0FBQztBQUFQLE9BQVYsQ0FBRixFQUF3QixDQUF4QixDQUFsQztBQUE2RCxLQUF6RSxDQUEwRSxDQUExRSxDQUFOOztBQUFtRixXQUFPLFVBQVMsQ0FBVCxFQUFXO0FBQUMsYUFBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUYsQ0FBUSxDQUFSLEVBQVUsQ0FBQyxDQUFDLElBQVosRUFBaUIsQ0FBakIsQ0FBRCxHQUFxQixFQUFFLENBQUMsQ0FBRCxFQUFHLENBQUMsQ0FBQyxJQUFMLENBQS9CO0FBQTBDLEtBQXRELENBQXVELEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBSCxHQUFVLENBQVgsQ0FBekQsQ0FBUDtBQUErRSxHQUFuakMsRUFBb2pDLE1BQU0sQ0FBQyxjQUFQLENBQXNCLENBQXRCLEVBQXdCLFlBQXhCLEVBQXFDO0FBQUMsSUFBQSxLQUFLLEVBQUMsQ0FBQztBQUFSLEdBQXJDLENBQXBqQztBQUFxbUMsQ0FkaGdwRCxDQUFEIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIhZnVuY3Rpb24odCxlKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9lKGV4cG9ydHMpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW1wiZXhwb3J0c1wiXSxlKTplKCh0PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6dHx8c2VsZikuWFN0YXRlPXt9KX0odGhpcywoZnVuY3Rpb24odCl7XCJ1c2Ugc3RyaWN0XCI7XG4vKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cblxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cblxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL3ZhciBlPWZ1bmN0aW9uKCl7cmV0dXJuKGU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pO3JldHVybiB0fSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBuKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZihudWxsIT10JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT0wO2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKX1yZXR1cm4gbn1mdW5jdGlvbiByKHQpe3ZhciBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yLG49ZSYmdFtlXSxyPTA7aWYobilyZXR1cm4gbi5jYWxsKHQpO2lmKHQmJlwibnVtYmVyXCI9PXR5cGVvZiB0Lmxlbmd0aClyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybiB0JiZyPj10Lmxlbmd0aCYmKHQ9dm9pZCAwKSx7dmFsdWU6dCYmdFtyKytdLGRvbmU6IXR9fX07dGhyb3cgbmV3IFR5cGVFcnJvcihlP1wiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIjpcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIil9ZnVuY3Rpb24gaSh0LGUpe3ZhciBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdO2lmKCFuKXJldHVybiB0O3ZhciByLGksbz1uLmNhbGwodCksYT1bXTt0cnl7Zm9yKDsodm9pZCAwPT09ZXx8ZS0tID4wKSYmIShyPW8ubmV4dCgpKS5kb25lOylhLnB1c2goci52YWx1ZSl9Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7ciYmIXIuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXJldHVybiBhfWZ1bmN0aW9uIG8odCxlLG4pe2lmKG58fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgcixpPTAsbz1lLmxlbmd0aDtpPG87aSsrKSFyJiZpIGluIGV8fChyfHwocj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAsaSkpLHJbaV09ZVtpXSk7cmV0dXJuIHQuY29uY2F0KHJ8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX12YXIgYT17fTtmdW5jdGlvbiBzKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KX1mdW5jdGlvbiBjKHQsZSxuKXt2b2lkIDA9PT1uJiYobj1cIi5cIik7dmFyIHI9Zih0LG4pLGk9ZihlLG4pO3JldHVybiBBKGkpPyEhQShyKSYmaT09PXI6QShyKT9yIGluIGk6cyhyKS5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW4gaSYmYyhyW3RdLGlbdF0pfSkpfWZ1bmN0aW9uIHUodCl7dHJ5e3JldHVybiBBKHQpfHxcIm51bWJlclwiPT10eXBlb2YgdD9cIlwiLmNvbmNhdCh0KTp0LnR5cGV9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiRXZlbnRzIG11c3QgYmUgc3RyaW5ncyBvciBvYmplY3RzIHdpdGggYSBzdHJpbmcgZXZlbnQudHlwZSBwcm9wZXJ0eS5cIil9fWZ1bmN0aW9uIGgodCxlKXt0cnl7cmV0dXJuIFQodCk/dDp0LnRvU3RyaW5nKCkuc3BsaXQoZSl9Y2F0Y2goZSl7dGhyb3cgbmV3IEVycm9yKFwiJ1wiLmNvbmNhdCh0LFwiJyBpcyBub3QgYSB2YWxpZCBzdGF0ZSBwYXRoLlwiKSl9fWZ1bmN0aW9uIGYodCxlKXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2Yobj10KSYmXCJ2YWx1ZVwiaW4gbiYmXCJjb250ZXh0XCJpbiBuJiZcImV2ZW50XCJpbiBuJiZcIl9ldmVudFwiaW4gbj90LnZhbHVlOlQodCk/bCh0KTpcInN0cmluZ1wiIT10eXBlb2YgdD90OmwoaCh0LGUpKTt2YXIgbn1mdW5jdGlvbiBsKHQpe2lmKDE9PT10Lmxlbmd0aClyZXR1cm4gdFswXTtmb3IodmFyIGU9e30sbj1lLHI9MDtyPHQubGVuZ3RoLTE7cisrKXI9PT10Lmxlbmd0aC0yP25bdFtyXV09dFtyKzFdOihuW3Rbcl1dPXt9LG49blt0W3JdXSk7cmV0dXJuIGV9ZnVuY3Rpb24gZCh0LGUpe2Zvcih2YXIgbj17fSxyPXModCksaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbz1yW2ldO25bb109ZSh0W29dLG8sdCxpKX1yZXR1cm4gbn1mdW5jdGlvbiBwKHQsZSxuKXt2YXIgaSxvLGE9e307dHJ5e2Zvcih2YXIgYz1yKHModCkpLHU9Yy5uZXh0KCk7IXUuZG9uZTt1PWMubmV4dCgpKXt2YXIgaD11LnZhbHVlLGY9dFtoXTtuKGYpJiYoYVtoXT1lKGYsaCx0KSl9fWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihvPWMucmV0dXJuKSYmby5jYWxsKGMpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gYX12YXIgdj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG4saSxvPWU7dHJ5e2Zvcih2YXIgYT1yKHQpLHM9YS5uZXh0KCk7IXMuZG9uZTtzPWEubmV4dCgpKXtvPW9bcy52YWx1ZV19fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3MmJiFzLmRvbmUmJihpPWEucmV0dXJuKSYmaS5jYWxsKGEpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX1yZXR1cm4gb319O2Z1bmN0aW9uIHkodCl7cmV0dXJuIHQ/QSh0KT9bW3RdXTpnKHModCkubWFwKChmdW5jdGlvbihlKXt2YXIgbj10W2VdO3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBufHxuJiZPYmplY3Qua2V5cyhuKS5sZW5ndGg/eSh0W2VdKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybltlXS5jb25jYXQodCl9KSk6W1tlXV19KSkpOltbXV19ZnVuY3Rpb24gZyh0KXt2YXIgZTtyZXR1cm4oZT1bXSkuY29uY2F0LmFwcGx5KGUsbyhbXSxpKHQpLCExKSl9ZnVuY3Rpb24gbSh0KXtyZXR1cm4gVCh0KT90Olt0XX1mdW5jdGlvbiBTKHQpe3JldHVybiB2b2lkIDA9PT10P1tdOm0odCl9ZnVuY3Rpb24geCh0LGUsbil7dmFyIGksbztpZihOKHQpKXJldHVybiB0KGUsbi5kYXRhKTt2YXIgYT17fTt0cnl7Zm9yKHZhciBzPXIoT2JqZWN0LmtleXModCkpLGM9cy5uZXh0KCk7IWMuZG9uZTtjPXMubmV4dCgpKXt2YXIgdT1jLnZhbHVlLGg9dFt1XTtOKGgpP2FbdV09aChlLG4uZGF0YSk6YVt1XT1ofX1jYXRjaCh0KXtpPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYobz1zLnJldHVybikmJm8uY2FsbChzKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19cmV0dXJuIGF9ZnVuY3Rpb24gdyh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFByb21pc2V8fCEobnVsbD09PXR8fCFOKHQpJiZcIm9iamVjdFwiIT10eXBlb2YgdHx8IU4odC50aGVuKSl9ZnVuY3Rpb24gYih0LGUpe3ZhciBuLG8sYT1pKFtbXSxbXV0sMikscz1hWzBdLGM9YVsxXTt0cnl7Zm9yKHZhciB1PXIodCksaD11Lm5leHQoKTshaC5kb25lO2g9dS5uZXh0KCkpe3ZhciBmPWgudmFsdWU7ZShmKT9zLnB1c2goZik6Yy5wdXNoKGYpfX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtoJiYhaC5kb25lJiYobz11LnJldHVybikmJm8uY2FsbCh1KX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19cmV0dXJuW3MsY119ZnVuY3Rpb24gXyh0LGUpe3JldHVybiBkKHQuc3RhdGVzLChmdW5jdGlvbih0LG4pe2lmKHQpe3ZhciByPShBKGUpP3ZvaWQgMDplW25dKXx8KHQ/dC5jdXJyZW50OnZvaWQgMCk7aWYocilyZXR1cm57Y3VycmVudDpyLHN0YXRlczpfKHQscil9fX0pKX1mdW5jdGlvbiBFKHQsZSxuLGkpe3JldHVybiB0P24ucmVkdWNlKChmdW5jdGlvbih0LG4pe3ZhciBvLGEsYz1uLmFzc2lnbm1lbnQsdT17c3RhdGU6aSxhY3Rpb246bixfZXZlbnQ6ZX0saD17fTtpZihOKGMpKWg9Yyh0LGUuZGF0YSx1KTtlbHNlIHRyeXtmb3IodmFyIGY9cihzKGMpKSxsPWYubmV4dCgpOyFsLmRvbmU7bD1mLm5leHQoKSl7dmFyIGQ9bC52YWx1ZSxwPWNbZF07aFtkXT1OKHApP3AodCxlLmRhdGEsdSk6cH19Y2F0Y2godCl7bz17ZXJyb3I6dH19ZmluYWxseXt0cnl7bCYmIWwuZG9uZSYmKGE9Zi5yZXR1cm4pJiZhLmNhbGwoZil9ZmluYWxseXtpZihvKXRocm93IG8uZXJyb3J9fXJldHVybiBPYmplY3QuYXNzaWduKHt9LHQsaCl9KSx0KTp0fWZ1bmN0aW9uIFQodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gTih0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0fWZ1bmN0aW9uIEEodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHR9ZnVuY3Rpb24gTyh0LGUpe2lmKHQpcmV0dXJuIEEodCk/e3R5cGU6XCJ4c3RhdGUuZ3VhcmRcIixuYW1lOnQscHJlZGljYXRlOmU/ZVt0XTp2b2lkIDB9Ok4odCk/e3R5cGU6XCJ4c3RhdGUuZ3VhcmRcIixuYW1lOnQubmFtZSxwcmVkaWNhdGU6dH06dH12YXIgUD1mdW5jdGlvbigpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLm9ic2VydmFibGV8fFwiQEBvYnNlcnZhYmxlXCJ9KCk7ZnVuY3Rpb24gayh0KXt0cnl7cmV0dXJuXCJfX3hzdGF0ZW5vZGVcImluIHR9Y2F0Y2godCl7cmV0dXJuITF9fXZhciBJLGosQz1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuKCsrdCkudG9TdHJpbmcoMTYpfX0oKTtmdW5jdGlvbiBWKHQsbil7cmV0dXJuIEEodCl8fFwibnVtYmVyXCI9PXR5cGVvZiB0P2Uoe3R5cGU6dH0sbik6dH1mdW5jdGlvbiBMKHQsbil7aWYoIUEodCkmJlwiJCR0eXBlXCJpbiB0JiZcInNjeG1sXCI9PT10LiQkdHlwZSlyZXR1cm4gdDt2YXIgcj1WKHQpO3JldHVybiBlKHtuYW1lOnIudHlwZSxkYXRhOnIsJCR0eXBlOlwic2N4bWxcIix0eXBlOlwiZXh0ZXJuYWxcIn0sbil9ZnVuY3Rpb24gRCh0LG4pe3JldHVybiBtKG4pLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIHZvaWQgMD09PW58fFwic3RyaW5nXCI9PXR5cGVvZiBufHxrKG4pP3t0YXJnZXQ6bixldmVudDp0fTplKGUoe30sbikse2V2ZW50OnR9KX0pKX1mdW5jdGlvbiBSKHQsZSxuLHIsaSl7dmFyIG89dC5vcHRpb25zLmd1YXJkcyxhPXtzdGF0ZTppLGNvbmQ6ZSxfZXZlbnQ6cn07aWYoXCJ4c3RhdGUuZ3VhcmRcIj09PWUudHlwZSlyZXR1cm4oKG51bGw9PW8/dm9pZCAwOm9bZS5uYW1lXSl8fGUucHJlZGljYXRlKShuLHIuZGF0YSxhKTt2YXIgcz1vW2UudHlwZV07aWYoIXMpdGhyb3cgbmV3IEVycm9yKFwiR3VhcmQgJ1wiLmNvbmNhdChlLnR5cGUsXCInIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiBtYWNoaW5lICdcIikuY29uY2F0KHQuaWQsXCInLlwiKSk7cmV0dXJuIHMobixyLmRhdGEsYSl9ZnVuY3Rpb24gTSh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD97dHlwZTp0fTp0fWZ1bmN0aW9uIHoodCxlLG4pe2lmKFwib2JqZWN0XCI9PXR5cGVvZiB0KXJldHVybiB0O3ZhciByPWZ1bmN0aW9uKCl7fTtyZXR1cm57bmV4dDp0LGVycm9yOmV8fHIsY29tcGxldGU6bnx8cn19KEk9dC5BY3Rpb25UeXBlc3x8KHQuQWN0aW9uVHlwZXM9e30pKS5TdGFydD1cInhzdGF0ZS5zdGFydFwiLEkuU3RvcD1cInhzdGF0ZS5zdG9wXCIsSS5SYWlzZT1cInhzdGF0ZS5yYWlzZVwiLEkuU2VuZD1cInhzdGF0ZS5zZW5kXCIsSS5DYW5jZWw9XCJ4c3RhdGUuY2FuY2VsXCIsSS5OdWxsRXZlbnQ9XCJcIixJLkFzc2lnbj1cInhzdGF0ZS5hc3NpZ25cIixJLkFmdGVyPVwieHN0YXRlLmFmdGVyXCIsSS5Eb25lU3RhdGU9XCJkb25lLnN0YXRlXCIsSS5Eb25lSW52b2tlPVwiZG9uZS5pbnZva2VcIixJLkxvZz1cInhzdGF0ZS5sb2dcIixJLkluaXQ9XCJ4c3RhdGUuaW5pdFwiLEkuSW52b2tlPVwieHN0YXRlLmludm9rZVwiLEkuRXJyb3JFeGVjdXRpb249XCJlcnJvci5leGVjdXRpb25cIixJLkVycm9yQ29tbXVuaWNhdGlvbj1cImVycm9yLmNvbW11bmljYXRpb25cIixJLkVycm9yUGxhdGZvcm09XCJlcnJvci5wbGF0Zm9ybVwiLEkuRXJyb3JDdXN0b209XCJ4c3RhdGUuZXJyb3JcIixJLlVwZGF0ZT1cInhzdGF0ZS51cGRhdGVcIixJLlB1cmU9XCJ4c3RhdGUucHVyZVwiLEkuQ2hvb3NlPVwieHN0YXRlLmNob29zZVwiLChqPXQuU3BlY2lhbFRhcmdldHN8fCh0LlNwZWNpYWxUYXJnZXRzPXt9KSkuUGFyZW50PVwiI19wYXJlbnRcIixqLkludGVybmFsPVwiI19pbnRlcm5hbFwiO3ZhciBGPWZ1bmN0aW9uKHQpe3JldHVyblwiYXRvbWljXCI9PT10LnR5cGV8fFwiZmluYWxcIj09PXQudHlwZX07ZnVuY3Rpb24gVSh0KXtyZXR1cm4gcyh0LnN0YXRlcykubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5zdGF0ZXNbZV19KSl9ZnVuY3Rpb24gQih0KXt2YXIgZT1bdF07cmV0dXJuIEYodCk/ZTplLmNvbmNhdChnKFUodCkubWFwKEIpKSl9ZnVuY3Rpb24gSih0LGUpe3ZhciBuLGksbyxhLHMsYyx1LGgsZj1xKG5ldyBTZXQodCkpLGw9bmV3IFNldChlKTt0cnl7Zm9yKHZhciBkPXIobCkscD1kLm5leHQoKTshcC5kb25lO3A9ZC5uZXh0KCkpZm9yKHZhciB2PShFPXAudmFsdWUpLnBhcmVudDt2JiYhbC5oYXModik7KWwuYWRkKHYpLHY9di5wYXJlbnR9Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7cCYmIXAuZG9uZSYmKGk9ZC5yZXR1cm4pJiZpLmNhbGwoZCl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXZhciB5PXEobCk7dHJ5e2Zvcih2YXIgZz1yKGwpLG09Zy5uZXh0KCk7IW0uZG9uZTttPWcubmV4dCgpKXtpZihcImNvbXBvdW5kXCIhPT0oRT1tLnZhbHVlKS50eXBlfHx5LmdldChFKSYmeS5nZXQoRSkubGVuZ3RoKXtpZihcInBhcmFsbGVsXCI9PT1FLnR5cGUpdHJ5e2Zvcih2YXIgUz0ocz12b2lkIDAscihVKEUpKSkseD1TLm5leHQoKTsheC5kb25lO3g9Uy5uZXh0KCkpe3ZhciB3PXgudmFsdWU7XCJoaXN0b3J5XCIhPT13LnR5cGUmJihsLmhhcyh3KXx8KGwuYWRkKHcpLGYuZ2V0KHcpP2YuZ2V0KHcpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBsLmFkZCh0KX0pKTp3LmluaXRpYWxTdGF0ZU5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBsLmFkZCh0KX0pKSkpfX1jYXRjaCh0KXtzPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt4JiYheC5kb25lJiYoYz1TLnJldHVybikmJmMuY2FsbChTKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19fWVsc2UgZi5nZXQoRSk/Zi5nZXQoRSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGwuYWRkKHQpfSkpOkUuaW5pdGlhbFN0YXRlTm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGwuYWRkKHQpfSkpfX1jYXRjaCh0KXtvPXtlcnJvcjp0fX1maW5hbGx5e3RyeXttJiYhbS5kb25lJiYoYT1nLnJldHVybikmJmEuY2FsbChnKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19dHJ5e2Zvcih2YXIgYj1yKGwpLF89Yi5uZXh0KCk7IV8uZG9uZTtfPWIubmV4dCgpKXt2YXIgRTtmb3Iodj0oRT1fLnZhbHVlKS5wYXJlbnQ7diYmIWwuaGFzKHYpOylsLmFkZCh2KSx2PXYucGFyZW50fX1jYXRjaCh0KXt1PXtlcnJvcjp0fX1maW5hbGx5e3RyeXtfJiYhXy5kb25lJiYoaD1iLnJldHVybikmJmguY2FsbChiKX1maW5hbGx5e2lmKHUpdGhyb3cgdS5lcnJvcn19cmV0dXJuIGx9ZnVuY3Rpb24gcSh0KXt2YXIgZSxuLGk9bmV3IE1hcDt0cnl7Zm9yKHZhciBvPXIodCksYT1vLm5leHQoKTshYS5kb25lO2E9by5uZXh0KCkpe3ZhciBzPWEudmFsdWU7aS5oYXMocyl8fGkuc2V0KHMsW10pLHMucGFyZW50JiYoaS5oYXMocy5wYXJlbnQpfHxpLnNldChzLnBhcmVudCxbXSksaS5nZXQocy5wYXJlbnQpLnB1c2gocykpfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXthJiYhYS5kb25lJiYobj1vLnJldHVybikmJm4uY2FsbChvKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJuIGl9ZnVuY3Rpb24gJCh0LGUpe3JldHVybiBmdW5jdGlvbiB0KGUsbil7dmFyIHI9bi5nZXQoZSk7aWYoIXIpcmV0dXJue307aWYoXCJjb21wb3VuZFwiPT09ZS50eXBlKXt2YXIgaT1yWzBdO2lmKCFpKXJldHVybnt9O2lmKEYoaSkpcmV0dXJuIGkua2V5fXZhciBvPXt9O3JldHVybiByLmZvckVhY2goKGZ1bmN0aW9uKGUpe29bZS5rZXldPXQoZSxuKX0pKSxvfSh0LHEoSihbdF0sZSkpKX1mdW5jdGlvbiBYKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdD09PWV9KSk6dCBpbnN0YW5jZW9mIFNldCYmdC5oYXMoZSl9ZnVuY3Rpb24gSCh0LGUpe3JldHVyblwiY29tcG91bmRcIj09PWUudHlwZT9VKGUpLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVyblwiZmluYWxcIj09PWUudHlwZSYmWCh0LGUpfSkpOlwicGFyYWxsZWxcIj09PWUudHlwZSYmVShlKS5ldmVyeSgoZnVuY3Rpb24oZSl7cmV0dXJuIEgodCxlKX0pKX1mdW5jdGlvbiBHKHQpe3JldHVybiBuZXcgU2V0KGcodC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhZ3N9KSkpKX12YXIgSz10LkFjdGlvblR5cGVzLlN0YXJ0LFE9dC5BY3Rpb25UeXBlcy5TdG9wLFc9dC5BY3Rpb25UeXBlcy5SYWlzZSxZPXQuQWN0aW9uVHlwZXMuU2VuZCxaPXQuQWN0aW9uVHlwZXMuQ2FuY2VsLHR0PXQuQWN0aW9uVHlwZXMuTnVsbEV2ZW50LGV0PXQuQWN0aW9uVHlwZXMuQXNzaWduLG50PSh0LkFjdGlvblR5cGVzLkFmdGVyLHQuQWN0aW9uVHlwZXMuRG9uZVN0YXRlLHQuQWN0aW9uVHlwZXMuTG9nKSxydD10LkFjdGlvblR5cGVzLkluaXQsaXQ9dC5BY3Rpb25UeXBlcy5JbnZva2Usb3Q9KHQuQWN0aW9uVHlwZXMuRXJyb3JFeGVjdXRpb24sdC5BY3Rpb25UeXBlcy5FcnJvclBsYXRmb3JtKSxhdD10LkFjdGlvblR5cGVzLkVycm9yQ3VzdG9tLHN0PXQuQWN0aW9uVHlwZXMuVXBkYXRlLGN0PXQuQWN0aW9uVHlwZXMuQ2hvb3NlLHV0PXQuQWN0aW9uVHlwZXMuUHVyZSxodD1MKHt0eXBlOnJ0fSk7ZnVuY3Rpb24gZnQodCxlKXtyZXR1cm4gZSYmZVt0XXx8dm9pZCAwfWZ1bmN0aW9uIGx0KHQsbil7dmFyIHI7aWYoQSh0KXx8XCJudW1iZXJcIj09dHlwZW9mIHQpcj1OKGk9ZnQodCxuKSk/e3R5cGU6dCxleGVjOml9Oml8fHt0eXBlOnQsZXhlYzp2b2lkIDB9O2Vsc2UgaWYoTih0KSlyPXt0eXBlOnQubmFtZXx8dC50b1N0cmluZygpLGV4ZWM6dH07ZWxzZXt2YXIgaTtpZihOKGk9ZnQodC50eXBlLG4pKSlyPWUoZSh7fSx0KSx7ZXhlYzppfSk7ZWxzZSBpZihpKXt2YXIgbz1pLnR5cGV8fHQudHlwZTtyPWUoZShlKHt9LGkpLHQpLHt0eXBlOm99KX1lbHNlIHI9dH1yZXR1cm4gcn12YXIgZHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD8oVCh0KT90Olt0XSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbHQodCxlKX0pKTpbXX07ZnVuY3Rpb24gcHQodCl7dmFyIG49bHQodCk7cmV0dXJuIGUoZSh7aWQ6QSh0KT90Om4uaWR9LG4pLHt0eXBlOm4udHlwZX0pfWZ1bmN0aW9uIHZ0KGUpe3JldHVybiBBKGUpP3t0eXBlOlcsZXZlbnQ6ZX06eXQoZSx7dG86dC5TcGVjaWFsVGFyZ2V0cy5JbnRlcm5hbH0pfWZ1bmN0aW9uIHl0KHQsZSl7cmV0dXJue3RvOmU/ZS50bzp2b2lkIDAsdHlwZTpZLGV2ZW50Ok4odCk/dDpWKHQpLGRlbGF5OmU/ZS5kZWxheTp2b2lkIDAsaWQ6ZSYmdm9pZCAwIT09ZS5pZD9lLmlkOk4odCk/dC5uYW1lOnUodCl9fWZ1bmN0aW9uIGd0KG4scil7cmV0dXJuIHl0KG4sZShlKHt9LHIpLHt0bzp0LlNwZWNpYWxUYXJnZXRzLlBhcmVudH0pKX1mdW5jdGlvbiBtdCgpe3JldHVybiBndChzdCl9dmFyIFN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJue2NvbnRleHQ6dCxldmVudDplfX07dmFyIHh0PWZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOlosc2VuZElkOnR9fTtmdW5jdGlvbiB3dChlKXt2YXIgbj1wdChlKTtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLlN0YXJ0LGFjdGl2aXR5Om4sZXhlYzp2b2lkIDB9fWZ1bmN0aW9uIGJ0KGUpe3ZhciBuPU4oZSk/ZTpwdChlKTtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLlN0b3AsYWN0aXZpdHk6bixleGVjOnZvaWQgMH19dmFyIF90PWZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOmV0LGFzc2lnbm1lbnQ6dH19O2Z1bmN0aW9uIEV0KGUsbil7dmFyIHI9bj9cIiNcIi5jb25jYXQobik6XCJcIjtyZXR1cm5cIlwiLmNvbmNhdCh0LkFjdGlvblR5cGVzLkFmdGVyLFwiKFwiKS5jb25jYXQoZSxcIilcIikuY29uY2F0KHIpfWZ1bmN0aW9uIFR0KGUsbil7dmFyIHI9XCJcIi5jb25jYXQodC5BY3Rpb25UeXBlcy5Eb25lU3RhdGUsXCIuXCIpLmNvbmNhdChlKSxpPXt0eXBlOnIsZGF0YTpuLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fTtyZXR1cm4gaX1mdW5jdGlvbiBOdChlLG4pe3ZhciByPVwiXCIuY29uY2F0KHQuQWN0aW9uVHlwZXMuRG9uZUludm9rZSxcIi5cIikuY29uY2F0KGUpLGk9e3R5cGU6cixkYXRhOm4sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gcn19O3JldHVybiBpfWZ1bmN0aW9uIEF0KGUsbil7dmFyIHI9XCJcIi5jb25jYXQodC5BY3Rpb25UeXBlcy5FcnJvclBsYXRmb3JtLFwiLlwiKS5jb25jYXQoZSksaT17dHlwZTpyLGRhdGE6bix0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiByfX07cmV0dXJuIGl9ZnVuY3Rpb24gT3QodCxuKXtyZXR1cm4geXQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSxlKGUoe30sbikse3RvOnR9KSl9ZnVuY3Rpb24gUHQobixyLGEscyxjLHUpe3ZvaWQgMD09PXUmJih1PSExKTt2YXIgaD1pKHU/W1tdLGNdOmIoYywoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZT09PWV0fSkpLDIpLGY9aFswXSxsPWhbMV0sZD1mLmxlbmd0aD9FKGEscyxmLHIpOmEscD11P1thXTp2b2lkIDA7cmV0dXJuW2cobC5tYXAoKGZ1bmN0aW9uKGEpe3ZhciBjO3N3aXRjaChhLnR5cGUpe2Nhc2UgVzpyZXR1cm57dHlwZTpXLF9ldmVudDpMKGEuZXZlbnQpfTtjYXNlIFk6cmV0dXJuIGZ1bmN0aW9uKHQsbixyLGkpe3ZhciBvLGE9e19ldmVudDpyfSxzPUwoTih0LmV2ZW50KT90LmV2ZW50KG4sci5kYXRhLGEpOnQuZXZlbnQpO2lmKEEodC5kZWxheSkpe3ZhciBjPWkmJmlbdC5kZWxheV07bz1OKGMpP2MobixyLmRhdGEsYSk6Y31lbHNlIG89Tih0LmRlbGF5KT90LmRlbGF5KG4sci5kYXRhLGEpOnQuZGVsYXk7dmFyIHU9Tih0LnRvKT90LnRvKG4sci5kYXRhLGEpOnQudG87cmV0dXJuIGUoZSh7fSx0KSx7dG86dSxfZXZlbnQ6cyxldmVudDpzLmRhdGEsZGVsYXk6b30pfShhLGQscyxuLm9wdGlvbnMuZGVsYXlzKTtjYXNlIG50OnJldHVybiBmdW5jdGlvbih0LG4scil7cmV0dXJuIGUoZSh7fSx0KSx7dmFsdWU6QSh0LmV4cHIpP3QuZXhwcjp0LmV4cHIobixyLmRhdGEse19ldmVudDpyfSl9KX0oYSxkLHMpO2Nhc2UgY3Q6aWYoISh2PW51bGw9PT0oYz1hLmNvbmRzLmZpbmQoKGZ1bmN0aW9uKHQpe3ZhciBlPU8odC5jb25kLG4ub3B0aW9ucy5ndWFyZHMpO3JldHVybiFlfHxSKG4sZSxkLHMscil9KSkpfHx2b2lkIDA9PT1jP3ZvaWQgMDpjLmFjdGlvbnMpKXJldHVybltdO3ZhciBoPWkoUHQobixyLGQscyxkdChTKHYpLG4ub3B0aW9ucy5hY3Rpb25zKSx1KSwyKSxmPWhbMF0sbD1oWzFdO3JldHVybiBkPWwsbnVsbD09cHx8cC5wdXNoKGQpLGY7Y2FzZSB1dDp2YXIgdjtpZighKHY9YS5nZXQoZCxzLmRhdGEpKSlyZXR1cm5bXTt2YXIgeT1pKFB0KG4scixkLHMsZHQoUyh2KSxuLm9wdGlvbnMuYWN0aW9ucyksdSksMiksZz15WzBdLG09eVsxXTtyZXR1cm4gZD1tLG51bGw9PXB8fHAucHVzaChkKSxnO2Nhc2UgUTpyZXR1cm4gZnVuY3Rpb24oZSxuLHIpe3ZhciBpPU4oZS5hY3Rpdml0eSk/ZS5hY3Rpdml0eShuLHIuZGF0YSk6ZS5hY3Rpdml0eSxvPVwic3RyaW5nXCI9PXR5cGVvZiBpP3tpZDppfTppO3JldHVybnt0eXBlOnQuQWN0aW9uVHlwZXMuU3RvcCxhY3Rpdml0eTpvfX0oYSxkLHMpO2Nhc2UgZXQ6ZD1FKGQscyxbYV0sciksbnVsbD09cHx8cC5wdXNoKGQpO2JyZWFrO2RlZmF1bHQ6dmFyIHg9bHQoYSxuLm9wdGlvbnMuYWN0aW9ucyksdz14LmV4ZWM7aWYodyYmcCl7dmFyIGI9cC5sZW5ndGgtMTt4PWUoZSh7fSx4KSx7ZXhlYzpmdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTt3LmFwcGx5KHZvaWQgMCxvKFtwW2JdXSxpKGUpLCExKSl9fSl9cmV0dXJuIHh9fSkpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuISF0fSkpKSxkXX12YXIga3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlLG4scj10aGlzO3RoaXMuYWN0aW9ucz1bXSx0aGlzLmFjdGl2aXRpZXM9YSx0aGlzLm1ldGE9e30sdGhpcy5ldmVudHM9W10sdGhpcy52YWx1ZT10LnZhbHVlLHRoaXMuY29udGV4dD10LmNvbnRleHQsdGhpcy5fZXZlbnQ9dC5fZXZlbnQsdGhpcy5fc2Vzc2lvbmlkPXQuX3Nlc3Npb25pZCx0aGlzLmV2ZW50PXRoaXMuX2V2ZW50LmRhdGEsdGhpcy5oaXN0b3J5VmFsdWU9dC5oaXN0b3J5VmFsdWUsdGhpcy5oaXN0b3J5PXQuaGlzdG9yeSx0aGlzLmFjdGlvbnM9dC5hY3Rpb25zfHxbXSx0aGlzLmFjdGl2aXRpZXM9dC5hY3Rpdml0aWVzfHxhLHRoaXMubWV0YT0odm9pZCAwPT09KG49dC5jb25maWd1cmF0aW9uKSYmKG49W10pLG4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDAhPT1lLm1ldGEmJih0W2UuaWRdPWUubWV0YSksdH0pLHt9KSksdGhpcy5ldmVudHM9dC5ldmVudHN8fFtdLHRoaXMubWF0Y2hlcz10aGlzLm1hdGNoZXMuYmluZCh0aGlzKSx0aGlzLnRvU3RyaW5ncz10aGlzLnRvU3RyaW5ncy5iaW5kKHRoaXMpLHRoaXMuY29uZmlndXJhdGlvbj10LmNvbmZpZ3VyYXRpb24sdGhpcy50cmFuc2l0aW9ucz10LnRyYW5zaXRpb25zLHRoaXMuY2hpbGRyZW49dC5jaGlsZHJlbix0aGlzLmRvbmU9ISF0LmRvbmUsdGhpcy50YWdzPW51bGwhPT0oZT1BcnJheS5pc0FycmF5KHQudGFncyk/bmV3IFNldCh0LnRhZ3MpOnQudGFncykmJnZvaWQgMCE9PWU/ZTpuZXcgU2V0LHRoaXMubWFjaGluZT10Lm1hY2hpbmUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJuZXh0RXZlbnRzXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbyhbXSxpKG5ldyBTZXQoZyhvKFtdLGkodC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm93bkV2ZW50c30pKSksITEpKSkpLCExKX0oci5jb25maWd1cmF0aW9uKX19KX1yZXR1cm4gdC5mcm9tPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGUgaW5zdGFuY2VvZiB0P2UuY29udGV4dCE9PW4/bmV3IHQoe3ZhbHVlOmUudmFsdWUsY29udGV4dDpuLF9ldmVudDplLl9ldmVudCxfc2Vzc2lvbmlkOm51bGwsaGlzdG9yeVZhbHVlOmUuaGlzdG9yeVZhbHVlLGhpc3Rvcnk6ZS5oaXN0b3J5LGFjdGlvbnM6W10sYWN0aXZpdGllczplLmFjdGl2aXRpZXMsbWV0YTp7fSxldmVudHM6W10sY29uZmlndXJhdGlvbjpbXSx0cmFuc2l0aW9uczpbXSxjaGlsZHJlbjp7fX0pOmU6bmV3IHQoe3ZhbHVlOmUsY29udGV4dDpuLF9ldmVudDpodCxfc2Vzc2lvbmlkOm51bGwsaGlzdG9yeVZhbHVlOnZvaWQgMCxoaXN0b3J5OnZvaWQgMCxhY3Rpb25zOltdLGFjdGl2aXRpZXM6dm9pZCAwLG1ldGE6dm9pZCAwLGV2ZW50czpbXSxjb25maWd1cmF0aW9uOltdLHRyYW5zaXRpb25zOltdLGNoaWxkcmVuOnt9fSl9LHQuY3JlYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdChlKX0sdC5pbmVydD1mdW5jdGlvbihlLG4pe2lmKGUgaW5zdGFuY2VvZiB0KXtpZighZS5hY3Rpb25zLmxlbmd0aClyZXR1cm4gZTt2YXIgcj1odDtyZXR1cm4gbmV3IHQoe3ZhbHVlOmUudmFsdWUsY29udGV4dDpuLF9ldmVudDpyLF9zZXNzaW9uaWQ6bnVsbCxoaXN0b3J5VmFsdWU6ZS5oaXN0b3J5VmFsdWUsaGlzdG9yeTplLmhpc3RvcnksYWN0aXZpdGllczplLmFjdGl2aXRpZXMsY29uZmlndXJhdGlvbjplLmNvbmZpZ3VyYXRpb24sdHJhbnNpdGlvbnM6W10sY2hpbGRyZW46e319KX1yZXR1cm4gdC5mcm9tKGUsbil9LHQucHJvdG90eXBlLnRvU3RyaW5ncz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7aWYodm9pZCAwPT09dCYmKHQ9dGhpcy52YWx1ZSksdm9pZCAwPT09ZSYmKGU9XCIuXCIpLEEodCkpcmV0dXJuW3RdO3ZhciByPXModCk7cmV0dXJuIHIuY29uY2F0LmFwcGx5KHIsbyhbXSxpKHIubWFwKChmdW5jdGlvbihyKXtyZXR1cm4gbi50b1N0cmluZ3ModFtyXSxlKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByK2UrdH0pKX0pKSksITEpKX0sdC5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxyPSh0LmNvbmZpZ3VyYXRpb24sdC50cmFuc2l0aW9ucyx0LnRhZ3MpLGk9KHQubWFjaGluZSxuKHQsW1wiY29uZmlndXJhdGlvblwiLFwidHJhbnNpdGlvbnNcIixcInRhZ3NcIixcIm1hY2hpbmVcIl0pKTtyZXR1cm4gZShlKHt9LGkpLHt0YWdzOkFycmF5LmZyb20ocil9KX0sdC5wcm90b3R5cGUubWF0Y2hlcz1mdW5jdGlvbih0KXtyZXR1cm4gYyh0LHRoaXMudmFsdWUpfSx0LnByb3RvdHlwZS5oYXNUYWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGFncy5oYXModCl9LHQucHJvdG90eXBlLmNhbj1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdGhpcy5tYWNoaW5lLCEhKG51bGw9PT0oZT10aGlzLm1hY2hpbmUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnRyYW5zaXRpb24odGhpcyx0KS5jaGFuZ2VkKX0sdH0oKSxJdD1bXSxqdD1mdW5jdGlvbih0LGUpe0l0LnB1c2godCk7dmFyIG49ZSh0KTtyZXR1cm4gSXQucG9wKCksbn07ZnVuY3Rpb24gQ3QodCl7cmV0dXJue2lkOnQsc2VuZDpmdW5jdGlvbigpe30sc3Vic2NyaWJlOmZ1bmN0aW9uKCl7cmV0dXJue3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7fX19LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7fSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57aWQ6dH19fX1mdW5jdGlvbiBWdCh0LGUsbil7dmFyIHI9Q3QoZSk7aWYoci5kZWZlcnJlZD0hMCxrKHQpKXt2YXIgaT1yLnN0YXRlPWp0KHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4obj90LndpdGhDb250ZXh0KG4pOnQpLmluaXRpYWxTdGF0ZX0pKTtyLmdldFNuYXBzaG90PWZ1bmN0aW9uKCl7cmV0dXJuIGl9fXJldHVybiByfWZ1bmN0aW9uIEx0KHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXt2YXIgZT17dHlwZTp0LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHR9fTtyZXR1cm4gZX1yZXR1cm4gdH1mdW5jdGlvbiBEdCh0KXtyZXR1cm4gZShlKHt0eXBlOml0fSx0KSx7dG9KU09OOmZ1bmN0aW9uKCl7dC5vbkRvbmUsdC5vbkVycm9yO3ZhciByPW4odCxbXCJvbkRvbmVcIixcIm9uRXJyb3JcIl0pO3JldHVybiBlKGUoe30scikse3R5cGU6aXQsc3JjOkx0KHQuc3JjKX0pfX0pfXZhciBSdD17fSxNdD1mdW5jdGlvbih0KXtyZXR1cm5cIiNcIj09PXRbMF19LHp0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh0LG4sYyl7dmFyIHUsaD10aGlzO3ZvaWQgMD09PWMmJihjPVwiY29udGV4dFwiaW4gdD90LmNvbnRleHQ6dm9pZCAwKSx0aGlzLmNvbmZpZz10LHRoaXMuX2NvbnRleHQ9Yyx0aGlzLm9yZGVyPS0xLHRoaXMuX194c3RhdGVub2RlPSEwLHRoaXMuX19jYWNoZT17ZXZlbnRzOnZvaWQgMCxyZWxhdGl2ZVZhbHVlOm5ldyBNYXAsaW5pdGlhbFN0YXRlVmFsdWU6dm9pZCAwLGluaXRpYWxTdGF0ZTp2b2lkIDAsb246dm9pZCAwLHRyYW5zaXRpb25zOnZvaWQgMCxjYW5kaWRhdGVzOnt9LGRlbGF5ZWRUcmFuc2l0aW9uczp2b2lkIDB9LHRoaXMuaWRNYXA9e30sdGhpcy50YWdzPVtdLHRoaXMub3B0aW9ucz1PYmplY3QuYXNzaWduKHthY3Rpb25zOnt9LGd1YXJkczp7fSxzZXJ2aWNlczp7fSxhY3Rpdml0aWVzOnt9LGRlbGF5czp7fX0sbiksdGhpcy5wYXJlbnQ9dGhpcy5vcHRpb25zLl9wYXJlbnQsdGhpcy5rZXk9dGhpcy5jb25maWcua2V5fHx0aGlzLm9wdGlvbnMuX2tleXx8dGhpcy5jb25maWcuaWR8fFwiKG1hY2hpbmUpXCIsdGhpcy5tYWNoaW5lPXRoaXMucGFyZW50P3RoaXMucGFyZW50Lm1hY2hpbmU6dGhpcyx0aGlzLnBhdGg9dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQucGF0aC5jb25jYXQodGhpcy5rZXkpOltdLHRoaXMuZGVsaW1pdGVyPXRoaXMuY29uZmlnLmRlbGltaXRlcnx8KHRoaXMucGFyZW50P3RoaXMucGFyZW50LmRlbGltaXRlcjpcIi5cIiksdGhpcy5pZD10aGlzLmNvbmZpZy5pZHx8byhbdGhpcy5tYWNoaW5lLmtleV0saSh0aGlzLnBhdGgpLCExKS5qb2luKHRoaXMuZGVsaW1pdGVyKSx0aGlzLnZlcnNpb249dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQudmVyc2lvbjp0aGlzLmNvbmZpZy52ZXJzaW9uLHRoaXMudHlwZT10aGlzLmNvbmZpZy50eXBlfHwodGhpcy5jb25maWcucGFyYWxsZWw/XCJwYXJhbGxlbFwiOnRoaXMuY29uZmlnLnN0YXRlcyYmcyh0aGlzLmNvbmZpZy5zdGF0ZXMpLmxlbmd0aD9cImNvbXBvdW5kXCI6dGhpcy5jb25maWcuaGlzdG9yeT9cImhpc3RvcnlcIjpcImF0b21pY1wiKSx0aGlzLnNjaGVtYT10aGlzLnBhcmVudD90aGlzLm1hY2hpbmUuc2NoZW1hOm51bGwhPT0odT10aGlzLmNvbmZpZy5zY2hlbWEpJiZ2b2lkIDAhPT11P3U6e30sdGhpcy5kZXNjcmlwdGlvbj10aGlzLmNvbmZpZy5kZXNjcmlwdGlvbix0aGlzLmluaXRpYWw9dGhpcy5jb25maWcuaW5pdGlhbCx0aGlzLnN0YXRlcz10aGlzLmNvbmZpZy5zdGF0ZXM/ZCh0aGlzLmNvbmZpZy5zdGF0ZXMsKGZ1bmN0aW9uKHQsbil7dmFyIHIsaT1uZXcgYSh0LHtfcGFyZW50OmgsX2tleTpufSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oaC5pZE1hcCxlKCgocj17fSlbaS5pZF09aSxyKSxpLmlkTWFwKSksaX0pKTpSdDt2YXIgZj0wOyFmdW5jdGlvbiB0KGUpe3ZhciBuLGk7ZS5vcmRlcj1mKys7dHJ5e2Zvcih2YXIgbz1yKFUoZSkpLGE9by5uZXh0KCk7IWEuZG9uZTthPW8ubmV4dCgpKXt0KGEudmFsdWUpfX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXthJiYhYS5kb25lJiYoaT1vLnJldHVybikmJmkuY2FsbChvKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19fSh0aGlzKSx0aGlzLmhpc3Rvcnk9ITA9PT10aGlzLmNvbmZpZy5oaXN0b3J5P1wic2hhbGxvd1wiOnRoaXMuY29uZmlnLmhpc3Rvcnl8fCExLHRoaXMuX3RyYW5zaWVudD0hIXRoaXMuY29uZmlnLmFsd2F5c3x8ISF0aGlzLmNvbmZpZy5vbiYmKEFycmF5LmlzQXJyYXkodGhpcy5jb25maWcub24pP3RoaXMuY29uZmlnLm9uLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVyblwiXCI9PT10LmV2ZW50fSkpOlwiXCJpbiB0aGlzLmNvbmZpZy5vbiksdGhpcy5zdHJpY3Q9ISF0aGlzLmNvbmZpZy5zdHJpY3QsdGhpcy5vbkVudHJ5PVModGhpcy5jb25maWcuZW50cnl8fHRoaXMuY29uZmlnLm9uRW50cnkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGx0KHQpfSkpLHRoaXMub25FeGl0PVModGhpcy5jb25maWcuZXhpdHx8dGhpcy5jb25maWcub25FeGl0KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBsdCh0KX0pKSx0aGlzLm1ldGE9dGhpcy5jb25maWcubWV0YSx0aGlzLmRvbmVEYXRhPVwiZmluYWxcIj09PXRoaXMudHlwZT90aGlzLmNvbmZpZy5kYXRhOnZvaWQgMCx0aGlzLmludm9rZT1TKHRoaXMuY29uZmlnLmludm9rZSkubWFwKChmdW5jdGlvbih0LG4pe3ZhciByLGk7aWYoayh0KSlyZXR1cm4gaC5tYWNoaW5lLm9wdGlvbnMuc2VydmljZXM9ZSgoKHI9e30pW3QuaWRdPXQsciksaC5tYWNoaW5lLm9wdGlvbnMuc2VydmljZXMpLER0KHtzcmM6dC5pZCxpZDp0LmlkfSk7aWYoQSh0LnNyYykpcmV0dXJuIER0KGUoZSh7fSx0KSx7aWQ6dC5pZHx8dC5zcmMsc3JjOnQuc3JjfSkpO2lmKGsodC5zcmMpfHxOKHQuc3JjKSl7dmFyIG89XCJcIi5jb25jYXQoaC5pZCxcIjppbnZvY2F0aW9uW1wiKS5jb25jYXQobixcIl1cIik7cmV0dXJuIGgubWFjaGluZS5vcHRpb25zLnNlcnZpY2VzPWUoKChpPXt9KVtvXT10LnNyYyxpKSxoLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlcyksRHQoZShlKHtpZDpvfSx0KSx7c3JjOm99KSl9dmFyIGE9dC5zcmM7cmV0dXJuIER0KGUoZSh7aWQ6YS50eXBlfSx0KSx7c3JjOmF9KSl9KSksdGhpcy5hY3Rpdml0aWVzPVModGhpcy5jb25maWcuYWN0aXZpdGllcykuY29uY2F0KHRoaXMuaW52b2tlKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBwdCh0KX0pKSx0aGlzLnRyYW5zaXRpb249dGhpcy50cmFuc2l0aW9uLmJpbmQodGhpcyksdGhpcy50YWdzPVModGhpcy5jb25maWcudGFncyl9cmV0dXJuIGEucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKCl7dGhpcy5fX2NhY2hlLnRyYW5zaXRpb25zfHxCKHRoaXMpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm9ufSkpfSxhLnByb3RvdHlwZS53aXRoQ29uZmlnPWZ1bmN0aW9uKHQsbil7dmFyIHI9dGhpcy5vcHRpb25zLGk9ci5hY3Rpb25zLG89ci5hY3Rpdml0aWVzLHM9ci5ndWFyZHMsYz1yLnNlcnZpY2VzLHU9ci5kZWxheXM7cmV0dXJuIG5ldyBhKHRoaXMuY29uZmlnLHthY3Rpb25zOmUoZSh7fSxpKSx0LmFjdGlvbnMpLGFjdGl2aXRpZXM6ZShlKHt9LG8pLHQuYWN0aXZpdGllcyksZ3VhcmRzOmUoZSh7fSxzKSx0Lmd1YXJkcyksc2VydmljZXM6ZShlKHt9LGMpLHQuc2VydmljZXMpLGRlbGF5czplKGUoe30sdSksdC5kZWxheXMpfSxudWxsIT1uP246dGhpcy5jb250ZXh0KX0sYS5wcm90b3R5cGUud2l0aENvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBhKHRoaXMuY29uZmlnLHRoaXMub3B0aW9ucyx0KX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwiY29udGV4dFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLl9jb250ZXh0KT90aGlzLl9jb250ZXh0KCk6dGhpcy5fY29udGV4dH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJkZWZpbml0aW9uXCIse2dldDpmdW5jdGlvbigpe3JldHVybntpZDp0aGlzLmlkLGtleTp0aGlzLmtleSx2ZXJzaW9uOnRoaXMudmVyc2lvbixjb250ZXh0OnRoaXMuY29udGV4dCx0eXBlOnRoaXMudHlwZSxpbml0aWFsOnRoaXMuaW5pdGlhbCxoaXN0b3J5OnRoaXMuaGlzdG9yeSxzdGF0ZXM6ZCh0aGlzLnN0YXRlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVmaW5pdGlvbn0pKSxvbjp0aGlzLm9uLHRyYW5zaXRpb25zOnRoaXMudHJhbnNpdGlvbnMsZW50cnk6dGhpcy5vbkVudHJ5LGV4aXQ6dGhpcy5vbkV4aXQsYWN0aXZpdGllczp0aGlzLmFjdGl2aXRpZXN8fFtdLG1ldGE6dGhpcy5tZXRhLG9yZGVyOnRoaXMub3JkZXJ8fC0xLGRhdGE6dGhpcy5kb25lRGF0YSxpbnZva2U6dGhpcy5pbnZva2UsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbix0YWdzOnRoaXMudGFnc319LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmaW5pdGlvbn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwib25cIix7Z2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5fX2NhY2hlLm9uKXJldHVybiB0aGlzLl9fY2FjaGUub247dmFyIHQ9dGhpcy50cmFuc2l0aW9ucztyZXR1cm4gdGhpcy5fX2NhY2hlLm9uPXQucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0W2UuZXZlbnRUeXBlXT10W2UuZXZlbnRUeXBlXXx8W10sdFtlLmV2ZW50VHlwZV0ucHVzaChlKSx0fSkse30pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImFmdGVyXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fY2FjaGUuZGVsYXllZFRyYW5zaXRpb25zfHwodGhpcy5fX2NhY2hlLmRlbGF5ZWRUcmFuc2l0aW9ucz10aGlzLmdldERlbGF5ZWRUcmFuc2l0aW9ucygpLHRoaXMuX19jYWNoZS5kZWxheWVkVHJhbnNpdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcInRyYW5zaXRpb25zXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fY2FjaGUudHJhbnNpdGlvbnN8fCh0aGlzLl9fY2FjaGUudHJhbnNpdGlvbnM9dGhpcy5mb3JtYXRUcmFuc2l0aW9ucygpLHRoaXMuX19jYWNoZS50cmFuc2l0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUuZ2V0Q2FuZGlkYXRlcz1mdW5jdGlvbih0KXtpZih0aGlzLl9fY2FjaGUuY2FuZGlkYXRlc1t0XSlyZXR1cm4gdGhpcy5fX2NhY2hlLmNhbmRpZGF0ZXNbdF07dmFyIGU9XCJcIj09PXQsbj10aGlzLnRyYW5zaXRpb25zLmZpbHRlcigoZnVuY3Rpb24obil7dmFyIHI9bi5ldmVudFR5cGU9PT10O3JldHVybiBlP3I6cnx8XCIqXCI9PT1uLmV2ZW50VHlwZX0pKTtyZXR1cm4gdGhpcy5fX2NhY2hlLmNhbmRpZGF0ZXNbdF09bixufSxhLnByb3RvdHlwZS5nZXREZWxheWVkVHJhbnNpdGlvbnM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49dGhpcy5jb25maWcuYWZ0ZXI7aWYoIW4pcmV0dXJuW107dmFyIHI9ZnVuY3Rpb24oZSxuKXt2YXIgcj1FdChOKGUpP1wiXCIuY29uY2F0KHQuaWQsXCI6ZGVsYXlbXCIpLmNvbmNhdChuLFwiXVwiKTplLHQuaWQpO3JldHVybiB0Lm9uRW50cnkucHVzaCh5dChyLHtkZWxheTplfSkpLHQub25FeGl0LnB1c2goeHQocikpLHJ9O3JldHVybihUKG4pP24ubWFwKChmdW5jdGlvbih0LG4pe3ZhciBpPXIodC5kZWxheSxuKTtyZXR1cm4gZShlKHt9LHQpLHtldmVudDppfSl9KSk6ZyhzKG4pLm1hcCgoZnVuY3Rpb24odCxpKXt2YXIgbz1uW3RdLGE9QShvKT97dGFyZ2V0Om99Om8scz1pc05hTigrdCk/dDordCxjPXIocyxpKTtyZXR1cm4gUyhhKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlKGUoe30sdCkse2V2ZW50OmMsZGVsYXk6c30pfSkpfSkpKSkubWFwKChmdW5jdGlvbihuKXt2YXIgcj1uLmRlbGF5O3JldHVybiBlKGUoe30sdC5mb3JtYXRUcmFuc2l0aW9uKG4pKSx7ZGVsYXk6cn0pfSkpfSxhLnByb3RvdHlwZS5nZXRTdGF0ZU5vZGVzPWZ1bmN0aW9uKHQpe3ZhciBlLG49dGhpcztpZighdClyZXR1cm5bXTt2YXIgcj10IGluc3RhbmNlb2Yga3Q/dC52YWx1ZTpmKHQsdGhpcy5kZWxpbWl0ZXIpO2lmKEEocikpe3ZhciBpPXRoaXMuZ2V0U3RhdGVOb2RlKHIpLmluaXRpYWw7cmV0dXJuIHZvaWQgMCE9PWk/dGhpcy5nZXRTdGF0ZU5vZGVzKCgoZT17fSlbcl09aSxlKSk6W3RoaXMsdGhpcy5zdGF0ZXNbcl1dfXZhciBvPXMociksYT1vLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG4uZ2V0U3RhdGVOb2RlKHQpfSkpO3JldHVybiBhLnB1c2godGhpcyksYS5jb25jYXQoby5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9bi5nZXRTdGF0ZU5vZGUoZSkuZ2V0U3RhdGVOb2RlcyhyW2VdKTtyZXR1cm4gdC5jb25jYXQoaSl9KSxbXSkpfSxhLnByb3RvdHlwZS5oYW5kbGVzPWZ1bmN0aW9uKHQpe3ZhciBlPXUodCk7cmV0dXJuIHRoaXMuZXZlbnRzLmluY2x1ZGVzKGUpfSxhLnByb3RvdHlwZS5yZXNvbHZlU3RhdGU9ZnVuY3Rpb24odCl7dmFyIG49QXJyYXkuZnJvbShKKFtdLHRoaXMuZ2V0U3RhdGVOb2Rlcyh0LnZhbHVlKSkpO3JldHVybiBuZXcga3QoZShlKHt9LHQpLHt2YWx1ZTp0aGlzLnJlc29sdmUodC52YWx1ZSksY29uZmlndXJhdGlvbjpuLGRvbmU6SChuLHRoaXMpLHRhZ3M6RyhuKX0pKX0sYS5wcm90b3R5cGUudHJhbnNpdGlvbkxlYWZOb2RlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLmdldFN0YXRlTm9kZSh0KS5uZXh0KGUsbik7cmV0dXJuIHImJnIudHJhbnNpdGlvbnMubGVuZ3RoP3I6dGhpcy5uZXh0KGUsbil9LGEucHJvdG90eXBlLnRyYW5zaXRpb25Db21wb3VuZE5vZGU9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXModCksaT10aGlzLmdldFN0YXRlTm9kZShyWzBdKS5fdHJhbnNpdGlvbih0W3JbMF1dLGUsbik7cmV0dXJuIGkmJmkudHJhbnNpdGlvbnMubGVuZ3RoP2k6dGhpcy5uZXh0KGUsbil9LGEucHJvdG90eXBlLnRyYW5zaXRpb25QYXJhbGxlbE5vZGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLG8sYT17fTt0cnl7Zm9yKHZhciBjPXIocyh0KSksdT1jLm5leHQoKTshdS5kb25lO3U9Yy5uZXh0KCkpe3ZhciBoPXUudmFsdWUsZj10W2hdO2lmKGYpe3ZhciBsPXRoaXMuZ2V0U3RhdGVOb2RlKGgpLl90cmFuc2l0aW9uKGYsZSxuKTtsJiYoYVtoXT1sKX19fWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihvPWMucmV0dXJuKSYmby5jYWxsKGMpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX12YXIgZD1zKGEpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGFbdF19KSkscD1nKGQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC50cmFuc2l0aW9uc30pKSk7aWYoIWQuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQudHJhbnNpdGlvbnMubGVuZ3RoPjB9KSkpcmV0dXJuIHRoaXMubmV4dChlLG4pO3ZhciB2PWcoZC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmVudHJ5U2V0fSkpKSx5PWcocyhhKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBhW3RdLmNvbmZpZ3VyYXRpb259KSkpO3JldHVybnt0cmFuc2l0aW9uczpwLGVudHJ5U2V0OnYsZXhpdFNldDpnKGQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5leGl0U2V0fSkpKSxjb25maWd1cmF0aW9uOnksc291cmNlOmUsYWN0aW9uczpnKHMoYSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gYVt0XS5hY3Rpb25zfSkpKX19LGEucHJvdG90eXBlLl90cmFuc2l0aW9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gQSh0KT90aGlzLnRyYW5zaXRpb25MZWFmTm9kZSh0LGUsbik6MT09PXModCkubGVuZ3RoP3RoaXMudHJhbnNpdGlvbkNvbXBvdW5kTm9kZSh0LGUsbik6dGhpcy50cmFuc2l0aW9uUGFyYWxsZWxOb2RlKHQsZSxuKX0sYS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0LGUpe3ZhciBuLGEscyx1PXRoaXMsaD1lLm5hbWUsbD1bXSxkPVtdO3RyeXtmb3IodmFyIHA9cih0aGlzLmdldENhbmRpZGF0ZXMoaCkpLHk9cC5uZXh0KCk7IXkuZG9uZTt5PXAubmV4dCgpKXt2YXIgbT15LnZhbHVlLFM9bS5jb25kLHg9bS5pbix3PXQuY29udGV4dCxiPSF4fHwoQSh4KSYmTXQoeCk/dC5tYXRjaGVzKGYodGhpcy5nZXRTdGF0ZU5vZGVCeUlkKHgpLnBhdGgsdGhpcy5kZWxpbWl0ZXIpKTpjKGYoeCx0aGlzLmRlbGltaXRlciksdih0aGlzLnBhdGguc2xpY2UoMCwtMikpKHQudmFsdWUpKSksXz0hMTt0cnl7Xz0hU3x8Uih0aGlzLm1hY2hpbmUsUyx3LGUsdCl9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGV2YWx1YXRlIGd1YXJkICdcIi5jb25jYXQoUy5uYW1lfHxTLnR5cGUsXCInIGluIHRyYW5zaXRpb24gZm9yIGV2ZW50ICdcIikuY29uY2F0KGgsXCInIGluIHN0YXRlIG5vZGUgJ1wiKS5jb25jYXQodGhpcy5pZCxcIic6XFxuXCIpLmNvbmNhdCh0Lm1lc3NhZ2UpKX1pZihfJiZiKXt2b2lkIDAhPT1tLnRhcmdldCYmKGQ9bS50YXJnZXQpLGwucHVzaC5hcHBseShsLG8oW10saShtLmFjdGlvbnMpLCExKSkscz1tO2JyZWFrfX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7eSYmIXkuZG9uZSYmKGE9cC5yZXR1cm4pJiZhLmNhbGwocCl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fWlmKHMpe2lmKCFkLmxlbmd0aClyZXR1cm57dHJhbnNpdGlvbnM6W3NdLGVudHJ5U2V0OltdLGV4aXRTZXQ6W10sY29uZmlndXJhdGlvbjp0LnZhbHVlP1t0aGlzXTpbXSxzb3VyY2U6dCxhY3Rpb25zOmx9O3ZhciBFPWcoZC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB1LmdldFJlbGF0aXZlU3RhdGVOb2RlcyhlLHQuaGlzdG9yeVZhbHVlKX0pKSksVD0hIXMuaW50ZXJuYWw7cmV0dXJue3RyYW5zaXRpb25zOltzXSxlbnRyeVNldDpUP1tdOmcoRS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB1Lm5vZGVzRnJvbUNoaWxkKHQpfSkpKSxleGl0U2V0OlQ/W106W3RoaXNdLGNvbmZpZ3VyYXRpb246RSxzb3VyY2U6dCxhY3Rpb25zOmx9fX0sYS5wcm90b3R5cGUubm9kZXNGcm9tQ2hpbGQ9ZnVuY3Rpb24odCl7aWYodC5lc2NhcGVzKHRoaXMpKXJldHVybltdO2Zvcih2YXIgZT1bXSxuPXQ7biYmbiE9PXRoaXM7KWUucHVzaChuKSxuPW4ucGFyZW50O3JldHVybiBlLnB1c2godGhpcyksZX0sYS5wcm90b3R5cGUuZXNjYXBlcz1mdW5jdGlvbih0KXtpZih0aGlzPT09dClyZXR1cm4hMTtmb3IodmFyIGU9dGhpcy5wYXJlbnQ7ZTspe2lmKGU9PT10KXJldHVybiExO2U9ZS5wYXJlbnR9cmV0dXJuITB9LGEucHJvdG90eXBlLmdldEFjdGlvbnM9ZnVuY3Rpb24odCxlLG4sYSl7dmFyIHMsYyx1LGgsZj1KKFtdLGE/dGhpcy5nZXRTdGF0ZU5vZGVzKGEudmFsdWUpOlt0aGlzXSksbD10LmNvbmZpZ3VyYXRpb24ubGVuZ3RoP0ooZix0LmNvbmZpZ3VyYXRpb24pOmY7dHJ5e2Zvcih2YXIgZD1yKGwpLHA9ZC5uZXh0KCk7IXAuZG9uZTtwPWQubmV4dCgpKXtYKGYsbT1wLnZhbHVlKXx8dC5lbnRyeVNldC5wdXNoKG0pfX1jYXRjaCh0KXtzPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtwJiYhcC5kb25lJiYoYz1kLnJldHVybikmJmMuY2FsbChkKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19dHJ5e2Zvcih2YXIgdj1yKGYpLHk9di5uZXh0KCk7IXkuZG9uZTt5PXYubmV4dCgpKXt2YXIgbTtYKGwsbT15LnZhbHVlKSYmIVgodC5leGl0U2V0LG0ucGFyZW50KXx8dC5leGl0U2V0LnB1c2gobSl9fWNhdGNoKHQpe3U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3kmJiF5LmRvbmUmJihoPXYucmV0dXJuKSYmaC5jYWxsKHYpfWZpbmFsbHl7aWYodSl0aHJvdyB1LmVycm9yfX10LnNvdXJjZXx8KHQuZXhpdFNldD1bXSx0LmVudHJ5U2V0LnB1c2godGhpcykpO3ZhciBTPWcodC5lbnRyeVNldC5tYXAoKGZ1bmN0aW9uKHIpe3ZhciBpPVtdO2lmKFwiZmluYWxcIiE9PXIudHlwZSlyZXR1cm4gaTt2YXIgbz1yLnBhcmVudDtpZighby5wYXJlbnQpcmV0dXJuIGk7aS5wdXNoKFR0KHIuaWQsci5kb25lRGF0YSksVHQoby5pZCxyLmRvbmVEYXRhP3goci5kb25lRGF0YSxlLG4pOnZvaWQgMCkpO3ZhciBhPW8ucGFyZW50O3JldHVyblwicGFyYWxsZWxcIj09PWEudHlwZSYmVShhKS5ldmVyeSgoZnVuY3Rpb24oZSl7cmV0dXJuIEgodC5jb25maWd1cmF0aW9uLGUpfSkpJiZpLnB1c2goVHQoYS5pZCkpLGl9KSkpO3QuZXhpdFNldC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLm9yZGVyLXQub3JkZXJ9KSksdC5lbnRyeVNldC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0Lm9yZGVyLWUub3JkZXJ9KSk7dmFyIHc9bmV3IFNldCh0LmVudHJ5U2V0KSxiPW5ldyBTZXQodC5leGl0U2V0KSxfPWkoW2coQXJyYXkuZnJvbSh3KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvKG8oW10saSh0LmFjdGl2aXRpZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gd3QodCl9KSkpLCExKSxpKHQub25FbnRyeSksITEpfSkpKS5jb25jYXQoUy5tYXAodnQpKSxnKEFycmF5LmZyb20oYikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbyhvKFtdLGkodC5vbkV4aXQpLCExKSxpKHQuYWN0aXZpdGllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBidCh0KX0pKSksITEpfSkpKV0sMiksRT1fWzBdLFQ9X1sxXTtyZXR1cm4gZHQoVC5jb25jYXQodC5hY3Rpb25zKS5jb25jYXQoRSksdGhpcy5tYWNoaW5lLm9wdGlvbnMuYWN0aW9ucyl9LGEucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PXQmJih0PXRoaXMuaW5pdGlhbFN0YXRlKTt2YXIgcixhLHM9TChlKTtpZih0IGluc3RhbmNlb2Yga3Qpcj12b2lkIDA9PT1uP3Q6dGhpcy5yZXNvbHZlU3RhdGUoa3QuZnJvbSh0LG4pKTtlbHNle3ZhciBjPUEodCk/dGhpcy5yZXNvbHZlKGwodGhpcy5nZXRSZXNvbHZlZFBhdGgodCkpKTp0aGlzLnJlc29sdmUodCksdT1udWxsIT1uP246dGhpcy5tYWNoaW5lLmNvbnRleHQ7cj10aGlzLnJlc29sdmVTdGF0ZShrdC5mcm9tKGMsdSkpfWlmKHRoaXMuc3RyaWN0JiYhdGhpcy5ldmVudHMuaW5jbHVkZXMocy5uYW1lKSYmKGE9cy5uYW1lLCEvXihkb25lfGVycm9yKVxcLi8udGVzdChhKSkpdGhyb3cgbmV3IEVycm9yKFwiTWFjaGluZSAnXCIuY29uY2F0KHRoaXMuaWQsXCInIGRvZXMgbm90IGFjY2VwdCBldmVudCAnXCIpLmNvbmNhdChzLm5hbWUsXCInXCIpKTt2YXIgaD10aGlzLl90cmFuc2l0aW9uKHIudmFsdWUscixzKXx8e3RyYW5zaXRpb25zOltdLGNvbmZpZ3VyYXRpb246W10sZW50cnlTZXQ6W10sZXhpdFNldDpbXSxzb3VyY2U6cixhY3Rpb25zOltdfSxmPUooW10sdGhpcy5nZXRTdGF0ZU5vZGVzKHIudmFsdWUpKSxkPWguY29uZmlndXJhdGlvbi5sZW5ndGg/SihmLGguY29uZmlndXJhdGlvbik6ZjtyZXR1cm4gaC5jb25maWd1cmF0aW9uPW8oW10saShkKSwhMSksdGhpcy5yZXNvbHZlVHJhbnNpdGlvbihoLHIscyl9LGEucHJvdG90eXBlLnJlc29sdmVSYWlzZWRUcmFuc2l0aW9uPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixhPXQuYWN0aW9ucztyZXR1cm4odD10aGlzLnRyYW5zaXRpb24odCxlKSkuX2V2ZW50PW4sdC5ldmVudD1uLmRhdGEsKHI9dC5hY3Rpb25zKS51bnNoaWZ0LmFwcGx5KHIsbyhbXSxpKGEpLCExKSksdH0sYS5wcm90b3R5cGUucmVzb2x2ZVRyYW5zaXRpb249ZnVuY3Rpb24obixvLGEsYyl7dmFyIHUsaCxmPXRoaXM7dm9pZCAwPT09YSYmKGE9aHQpLHZvaWQgMD09PWMmJihjPXRoaXMubWFjaGluZS5jb250ZXh0KTt2YXIgbD1uLmNvbmZpZ3VyYXRpb24sZD0hb3x8bi50cmFuc2l0aW9ucy5sZW5ndGg+MCxwPWQ/JCh0aGlzLm1hY2hpbmUsbCk6dm9pZCAwLHY9bz9vLmhpc3RvcnlWYWx1ZT9vLmhpc3RvcnlWYWx1ZTpuLnNvdXJjZT90aGlzLm1hY2hpbmUuaGlzdG9yeVZhbHVlKG8udmFsdWUpOnZvaWQgMDp2b2lkIDAseT1vP28uY29udGV4dDpjLGc9dGhpcy5nZXRBY3Rpb25zKG4seSxhLG8pLG09bz9lKHt9LG8uYWN0aXZpdGllcyk6e307dHJ5e2Zvcih2YXIgUz1yKGcpLHc9Uy5uZXh0KCk7IXcuZG9uZTt3PVMubmV4dCgpKXt2YXIgRT13LnZhbHVlO0UudHlwZT09PUs/bVtFLmFjdGl2aXR5LmlkfHxFLmFjdGl2aXR5LnR5cGVdPUU6RS50eXBlPT09USYmKG1bRS5hY3Rpdml0eS5pZHx8RS5hY3Rpdml0eS50eXBlXT0hMSl9fWNhdGNoKHQpe3U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3cmJiF3LmRvbmUmJihoPVMucmV0dXJuKSYmaC5jYWxsKFMpfWZpbmFsbHl7aWYodSl0aHJvdyB1LmVycm9yfX12YXIgVCxOLE89aShQdCh0aGlzLG8seSxhLGcsdGhpcy5tYWNoaW5lLmNvbmZpZy5wcmVzZXJ2ZUFjdGlvbk9yZGVyKSwyKSxQPU9bMF0saz1PWzFdLEk9aShiKFAsKGZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT1XfHxlLnR5cGU9PT1ZJiZlLnRvPT09dC5TcGVjaWFsVGFyZ2V0cy5JbnRlcm5hbH0pKSwyKSxqPUlbMF0sQz1JWzFdLFY9UC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0LnR5cGU9PT1LJiYobnVsbD09PShlPXQuYWN0aXZpdHkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnR5cGUpPT09aXR9KSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0W2UuYWN0aXZpdHkuaWRdPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpLG89TSh0LnNyYyksYT1udWxsPT09KGk9bnVsbD09ZT92b2lkIDA6ZS5vcHRpb25zLnNlcnZpY2VzKXx8dm9pZCAwPT09aT92b2lkIDA6aVtvLnR5cGVdLHM9dC5kYXRhP3godC5kYXRhLG4scik6dm9pZCAwLGM9YT9WdChhLHQuaWQscyk6Q3QodC5pZCk7cmV0dXJuIGMubWV0YT10LGN9KGUuYWN0aXZpdHksZi5tYWNoaW5lLGssYSksdH0pLG8/ZSh7fSxvLmNoaWxkcmVuKTp7fSksTD1wP24uY29uZmlndXJhdGlvbjpvP28uY29uZmlndXJhdGlvbjpbXSxEPUgoTCx0aGlzKSxSPW5ldyBrdCh7dmFsdWU6cHx8by52YWx1ZSxjb250ZXh0OmssX2V2ZW50OmEsX3Nlc3Npb25pZDpvP28uX3Nlc3Npb25pZDpudWxsLGhpc3RvcnlWYWx1ZTpwP3Y/KFQ9dixOPXAse2N1cnJlbnQ6TixzdGF0ZXM6XyhULE4pfSk6dm9pZCAwOm8/by5oaXN0b3J5VmFsdWU6dm9pZCAwLGhpc3Rvcnk6IXB8fG4uc291cmNlP286dm9pZCAwLGFjdGlvbnM6cD9DOltdLGFjdGl2aXRpZXM6cD9tOm8/by5hY3Rpdml0aWVzOnt9LGV2ZW50czpbXSxjb25maWd1cmF0aW9uOkwsdHJhbnNpdGlvbnM6bi50cmFuc2l0aW9ucyxjaGlsZHJlbjpWLGRvbmU6RCx0YWdzOm51bGw9PW8/dm9pZCAwOm8udGFncyxtYWNoaW5lOnRoaXN9KSx6PXkhPT1rO1IuY2hhbmdlZD1hLm5hbWU9PT1zdHx8ejt2YXIgRj1SLmhpc3Rvcnk7RiYmZGVsZXRlIEYuaGlzdG9yeTt2YXIgVT0hRCYmKHRoaXMuX3RyYW5zaWVudHx8bC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5fdHJhbnNpZW50fSkpKTtpZighKGR8fFUmJlwiXCIhPT1hLm5hbWUpKXJldHVybiBSO3ZhciBCPVI7aWYoIUQpZm9yKFUmJihCPXRoaXMucmVzb2x2ZVJhaXNlZFRyYW5zaXRpb24oQix7dHlwZTp0dH0sYSkpO2oubGVuZ3RoOyl7dmFyIEo9ai5zaGlmdCgpO0I9dGhpcy5yZXNvbHZlUmFpc2VkVHJhbnNpdGlvbihCLEouX2V2ZW50LGEpfXZhciBxPUIuY2hhbmdlZHx8KEY/ISFCLmFjdGlvbnMubGVuZ3RofHx6fHx0eXBlb2YgRi52YWx1ZSE9dHlwZW9mIEIudmFsdWV8fCFmdW5jdGlvbiB0KGUsbil7aWYoZT09PW4pcmV0dXJuITA7aWYodm9pZCAwPT09ZXx8dm9pZCAwPT09bilyZXR1cm4hMTtpZihBKGUpfHxBKG4pKXJldHVybiBlPT09bjt2YXIgcj1zKGUpLGk9cyhuKTtyZXR1cm4gci5sZW5ndGg9PT1pLmxlbmd0aCYmci5ldmVyeSgoZnVuY3Rpb24ocil7cmV0dXJuIHQoZVtyXSxuW3JdKX0pKX0oQi52YWx1ZSxGLnZhbHVlKTp2b2lkIDApO3JldHVybiBCLmNoYW5nZWQ9cSxCLmhpc3Rvcnk9RixCLnRhZ3M9RyhCLmNvbmZpZ3VyYXRpb24pLEJ9LGEucHJvdG90eXBlLmdldFN0YXRlTm9kZT1mdW5jdGlvbih0KXtpZihNdCh0KSlyZXR1cm4gdGhpcy5tYWNoaW5lLmdldFN0YXRlTm9kZUJ5SWQodCk7aWYoIXRoaXMuc3RhdGVzKXRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byByZXRyaWV2ZSBjaGlsZCBzdGF0ZSAnXCIuY29uY2F0KHQsXCInIGZyb20gJ1wiKS5jb25jYXQodGhpcy5pZCxcIic7IG5vIGNoaWxkIHN0YXRlcyBleGlzdC5cIikpO3ZhciBlPXRoaXMuc3RhdGVzW3RdO2lmKCFlKXRocm93IG5ldyBFcnJvcihcIkNoaWxkIHN0YXRlICdcIi5jb25jYXQodCxcIicgZG9lcyBub3QgZXhpc3Qgb24gJ1wiKS5jb25jYXQodGhpcy5pZCxcIidcIikpO3JldHVybiBlfSxhLnByb3RvdHlwZS5nZXRTdGF0ZU5vZGVCeUlkPWZ1bmN0aW9uKHQpe3ZhciBlPU10KHQpP3Quc2xpY2UoXCIjXCIubGVuZ3RoKTp0O2lmKGU9PT10aGlzLmlkKXJldHVybiB0aGlzO3ZhciBuPXRoaXMubWFjaGluZS5pZE1hcFtlXTtpZighbil0aHJvdyBuZXcgRXJyb3IoXCJDaGlsZCBzdGF0ZSBub2RlICcjXCIuY29uY2F0KGUsXCInIGRvZXMgbm90IGV4aXN0IG9uIG1hY2hpbmUgJ1wiKS5jb25jYXQodGhpcy5pZCxcIidcIikpO3JldHVybiBufSxhLnByb3RvdHlwZS5nZXRTdGF0ZU5vZGVCeVBhdGg9ZnVuY3Rpb24odCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJk10KHQpKXRyeXtyZXR1cm4gdGhpcy5nZXRTdGF0ZU5vZGVCeUlkKHQuc2xpY2UoMSkpfWNhdGNoKHQpe31mb3IodmFyIGU9aCh0LHRoaXMuZGVsaW1pdGVyKS5zbGljZSgpLG49dGhpcztlLmxlbmd0aDspe3ZhciByPWUuc2hpZnQoKTtpZighci5sZW5ndGgpYnJlYWs7bj1uLmdldFN0YXRlTm9kZShyKX1yZXR1cm4gbn0sYS5wcm90b3R5cGUucmVzb2x2ZT1mdW5jdGlvbih0KXt2YXIgZSxuPXRoaXM7aWYoIXQpcmV0dXJuIHRoaXMuaW5pdGlhbFN0YXRlVmFsdWV8fFJ0O3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2VcInBhcmFsbGVsXCI6cmV0dXJuIGQodGhpcy5pbml0aWFsU3RhdGVWYWx1ZSwoZnVuY3Rpb24oZSxyKXtyZXR1cm4gZT9uLmdldFN0YXRlTm9kZShyKS5yZXNvbHZlKHRbcl18fGUpOlJ0fSkpO2Nhc2VcImNvbXBvdW5kXCI6aWYoQSh0KSl7dmFyIHI9dGhpcy5nZXRTdGF0ZU5vZGUodCk7cmV0dXJuXCJwYXJhbGxlbFwiPT09ci50eXBlfHxcImNvbXBvdW5kXCI9PT1yLnR5cGU/KChlPXt9KVt0XT1yLmluaXRpYWxTdGF0ZVZhbHVlLGUpOnR9cmV0dXJuIHModCkubGVuZ3RoP2QodCwoZnVuY3Rpb24odCxlKXtyZXR1cm4gdD9uLmdldFN0YXRlTm9kZShlKS5yZXNvbHZlKHQpOlJ0fSkpOnRoaXMuaW5pdGlhbFN0YXRlVmFsdWV8fHt9O2RlZmF1bHQ6cmV0dXJuIHR8fFJ0fX0sYS5wcm90b3R5cGUuZ2V0UmVzb2x2ZWRQYXRoPWZ1bmN0aW9uKHQpe2lmKE10KHQpKXt2YXIgZT10aGlzLm1hY2hpbmUuaWRNYXBbdC5zbGljZShcIiNcIi5sZW5ndGgpXTtpZighZSl0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gZmluZCBzdGF0ZSBub2RlICdcIi5jb25jYXQodCxcIidcIikpO3JldHVybiBlLnBhdGh9cmV0dXJuIGgodCx0aGlzLmRlbGltaXRlcil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImluaXRpYWxTdGF0ZVZhbHVlXCIse2dldDpmdW5jdGlvbigpe3ZhciB0LGU7aWYodGhpcy5fX2NhY2hlLmluaXRpYWxTdGF0ZVZhbHVlKXJldHVybiB0aGlzLl9fY2FjaGUuaW5pdGlhbFN0YXRlVmFsdWU7aWYoXCJwYXJhbGxlbFwiPT09dGhpcy50eXBlKWU9cCh0aGlzLnN0YXRlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQuaW5pdGlhbFN0YXRlVmFsdWV8fFJ0fSksKGZ1bmN0aW9uKHQpe3JldHVybiEoXCJoaXN0b3J5XCI9PT10LnR5cGUpfSkpO2Vsc2UgaWYodm9pZCAwIT09dGhpcy5pbml0aWFsKXtpZighdGhpcy5zdGF0ZXNbdGhpcy5pbml0aWFsXSl0aHJvdyBuZXcgRXJyb3IoXCJJbml0aWFsIHN0YXRlICdcIi5jb25jYXQodGhpcy5pbml0aWFsLFwiJyBub3QgZm91bmQgb24gJ1wiKS5jb25jYXQodGhpcy5rZXksXCInXCIpKTtlPUYodGhpcy5zdGF0ZXNbdGhpcy5pbml0aWFsXSk/dGhpcy5pbml0aWFsOigodD17fSlbdGhpcy5pbml0aWFsXT10aGlzLnN0YXRlc1t0aGlzLmluaXRpYWxdLmluaXRpYWxTdGF0ZVZhbHVlLHQpfWVsc2UgZT17fTtyZXR1cm4gdGhpcy5fX2NhY2hlLmluaXRpYWxTdGF0ZVZhbHVlPWUsdGhpcy5fX2NhY2hlLmluaXRpYWxTdGF0ZVZhbHVlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGEucHJvdG90eXBlLmdldEluaXRpYWxTdGF0ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZ2V0U3RhdGVOb2Rlcyh0KTtyZXR1cm4gdGhpcy5yZXNvbHZlVHJhbnNpdGlvbih7Y29uZmlndXJhdGlvbjpuLGVudHJ5U2V0Om4sZXhpdFNldDpbXSx0cmFuc2l0aW9uczpbXSxzb3VyY2U6dm9pZCAwLGFjdGlvbnM6W119LHZvaWQgMCx2b2lkIDAsZSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImluaXRpYWxTdGF0ZVwiLHtnZXQ6ZnVuY3Rpb24oKXt0aGlzLl9pbml0KCk7dmFyIHQ9dGhpcy5pbml0aWFsU3RhdGVWYWx1ZTtpZighdCl0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgcmV0cmlldmUgaW5pdGlhbCBzdGF0ZSBmcm9tIHNpbXBsZSBzdGF0ZSAnXCIuY29uY2F0KHRoaXMuaWQsXCInLlwiKSk7cmV0dXJuIHRoaXMuZ2V0SW5pdGlhbFN0YXRlKHQpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcInRhcmdldFwiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdDtpZihcImhpc3RvcnlcIj09PXRoaXMudHlwZSl7dmFyIGU9dGhpcy5jb25maWc7dD1BKGUudGFyZ2V0KSYmTXQoZS50YXJnZXQpP2wodGhpcy5tYWNoaW5lLmdldFN0YXRlTm9kZUJ5SWQoZS50YXJnZXQpLnBhdGguc2xpY2UodGhpcy5wYXRoLmxlbmd0aC0xKSk6ZS50YXJnZXR9cmV0dXJuIHR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUuZ2V0UmVsYXRpdmVTdGF0ZU5vZGVzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49ITApLG4/XCJoaXN0b3J5XCI9PT10LnR5cGU/dC5yZXNvbHZlSGlzdG9yeShlKTp0LmluaXRpYWxTdGF0ZU5vZGVzOlt0XX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwiaW5pdGlhbFN0YXRlTm9kZXNcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gRih0aGlzKT9bdGhpc106XCJjb21wb3VuZFwiIT09dGhpcy50eXBlfHx0aGlzLmluaXRpYWw/Zyh5KHRoaXMuaW5pdGlhbFN0YXRlVmFsdWUpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0RnJvbVJlbGF0aXZlUGF0aChlKX0pKSk6W3RoaXNdfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGEucHJvdG90eXBlLmdldEZyb21SZWxhdGl2ZVBhdGg9ZnVuY3Rpb24odCl7aWYoIXQubGVuZ3RoKXJldHVyblt0aGlzXTt2YXIgZT1pKHQpLG49ZVswXSxyPWUuc2xpY2UoMSk7aWYoIXRoaXMuc3RhdGVzKXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCByZXRyaWV2ZSBzdWJQYXRoICdcIi5jb25jYXQobixcIicgZnJvbSBub2RlIHdpdGggbm8gc3RhdGVzXCIpKTt2YXIgbz10aGlzLmdldFN0YXRlTm9kZShuKTtpZihcImhpc3RvcnlcIj09PW8udHlwZSlyZXR1cm4gby5yZXNvbHZlSGlzdG9yeSgpO2lmKCF0aGlzLnN0YXRlc1tuXSl0aHJvdyBuZXcgRXJyb3IoXCJDaGlsZCBzdGF0ZSAnXCIuY29uY2F0KG4sXCInIGRvZXMgbm90IGV4aXN0IG9uICdcIikuY29uY2F0KHRoaXMuaWQsXCInXCIpKTtyZXR1cm4gdGhpcy5zdGF0ZXNbbl0uZ2V0RnJvbVJlbGF0aXZlUGF0aChyKX0sYS5wcm90b3R5cGUuaGlzdG9yeVZhbHVlPWZ1bmN0aW9uKHQpe2lmKHModGhpcy5zdGF0ZXMpLmxlbmd0aClyZXR1cm57Y3VycmVudDp0fHx0aGlzLmluaXRpYWxTdGF0ZVZhbHVlLHN0YXRlczpwKHRoaXMuc3RhdGVzLChmdW5jdGlvbihlLG4pe2lmKCF0KXJldHVybiBlLmhpc3RvcnlWYWx1ZSgpO3ZhciByPUEodCk/dm9pZCAwOnRbbl07cmV0dXJuIGUuaGlzdG9yeVZhbHVlKHJ8fGUuaW5pdGlhbFN0YXRlVmFsdWUpfSksKGZ1bmN0aW9uKHQpe3JldHVybiF0Lmhpc3Rvcnl9KSl9fSxhLnByb3RvdHlwZS5yZXNvbHZlSGlzdG9yeT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKFwiaGlzdG9yeVwiIT09dGhpcy50eXBlKXJldHVyblt0aGlzXTt2YXIgbj10aGlzLnBhcmVudDtpZighdCl7dmFyIGk9dGhpcy50YXJnZXQ7cmV0dXJuIGk/Zyh5KGkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG4uZ2V0RnJvbVJlbGF0aXZlUGF0aCh0KX0pKSk6bi5pbml0aWFsU3RhdGVOb2Rlc312YXIgbyxhLHM9KG89bi5wYXRoLGE9XCJzdGF0ZXNcIixmdW5jdGlvbih0KXt2YXIgZSxuLGk9dDt0cnl7Zm9yKHZhciBzPXIobyksYz1zLm5leHQoKTshYy5kb25lO2M9cy5uZXh0KCkpe3ZhciB1PWMudmFsdWU7aT1pW2FdW3VdfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYobj1zLnJldHVybikmJm4uY2FsbChzKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJuIGl9KSh0KS5jdXJyZW50O3JldHVybiBBKHMpP1tuLmdldFN0YXRlTm9kZShzKV06Zyh5KHMpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuXCJkZWVwXCI9PT1lLmhpc3Rvcnk/bi5nZXRGcm9tUmVsYXRpdmVQYXRoKHQpOltuLnN0YXRlc1t0WzBdXV19KSkpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJzdGF0ZUlkc1wiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9ZyhzKHRoaXMuc3RhdGVzKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0LnN0YXRlc1tlXS5zdGF0ZUlkc30pKSk7cmV0dXJuW3RoaXMuaWRdLmNvbmNhdChlKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJldmVudHNcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQsZSxuLGk7aWYodGhpcy5fX2NhY2hlLmV2ZW50cylyZXR1cm4gdGhpcy5fX2NhY2hlLmV2ZW50czt2YXIgbz10aGlzLnN0YXRlcyxhPW5ldyBTZXQodGhpcy5vd25FdmVudHMpO2lmKG8pdHJ5e2Zvcih2YXIgYz1yKHMobykpLHU9Yy5uZXh0KCk7IXUuZG9uZTt1PWMubmV4dCgpKXt2YXIgaD1vW3UudmFsdWVdO2lmKGguc3RhdGVzKXRyeXtmb3IodmFyIGY9KG49dm9pZCAwLHIoaC5ldmVudHMpKSxsPWYubmV4dCgpOyFsLmRvbmU7bD1mLm5leHQoKSl7dmFyIGQ9bC52YWx1ZTthLmFkZChcIlwiLmNvbmNhdChkKSl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2wmJiFsLmRvbmUmJihpPWYucmV0dXJuKSYmaS5jYWxsKGYpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19fWNhdGNoKGUpe3Q9e2Vycm9yOmV9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihlPWMucmV0dXJuKSYmZS5jYWxsKGMpfWZpbmFsbHl7aWYodCl0aHJvdyB0LmVycm9yfX1yZXR1cm4gdGhpcy5fX2NhY2hlLmV2ZW50cz1BcnJheS5mcm9tKGEpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcIm93bkV2ZW50c1wiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgU2V0KHRoaXMudHJhbnNpdGlvbnMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hKCF0LnRhcmdldCYmIXQuYWN0aW9ucy5sZW5ndGgmJnQuaW50ZXJuYWwpfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZXZlbnRUeXBlfSkpKTtyZXR1cm4gQXJyYXkuZnJvbSh0KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxhLnByb3RvdHlwZS5yZXNvbHZlVGFyZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodm9pZCAwIT09dClyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe2lmKCFBKHQpKXJldHVybiB0O3ZhciBuPXRbMF09PT1lLmRlbGltaXRlcjtpZihuJiYhZS5wYXJlbnQpcmV0dXJuIGUuZ2V0U3RhdGVOb2RlQnlQYXRoKHQuc2xpY2UoMSkpO3ZhciByPW4/ZS5rZXkrdDp0O2lmKCFlLnBhcmVudClyZXR1cm4gZS5nZXRTdGF0ZU5vZGVCeVBhdGgocik7dHJ5e3JldHVybiBlLnBhcmVudC5nZXRTdGF0ZU5vZGVCeVBhdGgocil9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCB0cmFuc2l0aW9uIGRlZmluaXRpb24gZm9yIHN0YXRlIG5vZGUgJ1wiLmNvbmNhdChlLmlkLFwiJzpcXG5cIikuY29uY2F0KHQubWVzc2FnZSkpfX0pKX0sYS5wcm90b3R5cGUuZm9ybWF0VHJhbnNpdGlvbj1mdW5jdGlvbih0KXt2YXIgbj10aGlzLHI9ZnVuY3Rpb24odCl7aWYodm9pZCAwIT09dCYmXCJcIiE9PXQpcmV0dXJuIFModCl9KHQudGFyZ2V0KSxpPVwiaW50ZXJuYWxcImluIHQ/dC5pbnRlcm5hbDohcnx8ci5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gQSh0KSYmdFswXT09PW4uZGVsaW1pdGVyfSkpLG89dGhpcy5tYWNoaW5lLm9wdGlvbnMuZ3VhcmRzLGE9dGhpcy5yZXNvbHZlVGFyZ2V0KHIpLHM9ZShlKHt9LHQpLHthY3Rpb25zOmR0KFModC5hY3Rpb25zKSksY29uZDpPKHQuY29uZCxvKSx0YXJnZXQ6YSxzb3VyY2U6dGhpcyxpbnRlcm5hbDppLGV2ZW50VHlwZTp0LmV2ZW50LHRvSlNPTjpmdW5jdGlvbigpe3JldHVybiBlKGUoe30scykse3RhcmdldDpzLnRhcmdldD9zLnRhcmdldC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVyblwiI1wiLmNvbmNhdCh0LmlkKX0pKTp2b2lkIDAsc291cmNlOlwiI1wiLmNvbmNhdChuLmlkKX0pfX0pO3JldHVybiBzfSxhLnByb3RvdHlwZS5mb3JtYXRUcmFuc2l0aW9ucz1mdW5jdGlvbigpe3ZhciB0LGUsYSxjPXRoaXM7aWYodGhpcy5jb25maWcub24paWYoQXJyYXkuaXNBcnJheSh0aGlzLmNvbmZpZy5vbikpYT10aGlzLmNvbmZpZy5vbjtlbHNle3ZhciB1PXRoaXMuY29uZmlnLm9uLGg9dVtcIipcIl0sZj12b2lkIDA9PT1oP1tdOmgsbD1uKHUsW1wiKlwiXSk7YT1nKHMobCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gRCh0LGxbdF0pfSkpLmNvbmNhdChEKFwiKlwiLGYpKSl9ZWxzZSBhPVtdO3ZhciBkPXRoaXMuY29uZmlnLmFsd2F5cz9EKFwiXCIsdGhpcy5jb25maWcuYWx3YXlzKTpbXSxwPXRoaXMuY29uZmlnLm9uRG9uZT9EKFN0cmluZyhUdCh0aGlzLmlkKSksdGhpcy5jb25maWcub25Eb25lKTpbXSx2PWcodGhpcy5pbnZva2UubWFwKChmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gdC5vbkRvbmUmJmUucHVzaC5hcHBseShlLG8oW10saShEKFN0cmluZyhOdCh0LmlkKSksdC5vbkRvbmUpKSwhMSkpLHQub25FcnJvciYmZS5wdXNoLmFwcGx5KGUsbyhbXSxpKEQoU3RyaW5nKEF0KHQuaWQpKSx0Lm9uRXJyb3IpKSwhMSkpLGV9KSkpLHk9dGhpcy5hZnRlcixtPWcobyhvKG8obyhbXSxpKHApLCExKSxpKHYpLCExKSxpKGEpLCExKSxpKGQpLCExKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBTKHQpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGMuZm9ybWF0VHJhbnNpdGlvbih0KX0pKX0pKSk7dHJ5e2Zvcih2YXIgeD1yKHkpLHc9eC5uZXh0KCk7IXcuZG9uZTt3PXgubmV4dCgpKXt2YXIgYj13LnZhbHVlO20ucHVzaChiKX19Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7dyYmIXcuZG9uZSYmKGU9eC5yZXR1cm4pJiZlLmNhbGwoeCl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fXJldHVybiBtfSxhfSgpO3ZhciBGdD17ZGVmZXJFdmVudHM6ITF9LFV0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLnByb2Nlc3NpbmdFdmVudD0hMSx0aGlzLnF1ZXVlPVtdLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5vcHRpb25zPWUoZSh7fSxGdCksdCl9cmV0dXJuIHQucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aWYodGhpcy5pbml0aWFsaXplZD0hMCx0KXtpZighdGhpcy5vcHRpb25zLmRlZmVyRXZlbnRzKXJldHVybiB2b2lkIHRoaXMuc2NoZWR1bGUodCk7dGhpcy5wcm9jZXNzKHQpfXRoaXMuZmx1c2hFdmVudHMoKX0sdC5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCl7aWYodGhpcy5pbml0aWFsaXplZCYmIXRoaXMucHJvY2Vzc2luZ0V2ZW50KXtpZigwIT09dGhpcy5xdWV1ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKFwiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5IHdoZW4gaXQgaXMgbm90IHByb2Nlc3NpbmcgZXZlbnRzXCIpO3RoaXMucHJvY2Vzcyh0KSx0aGlzLmZsdXNoRXZlbnRzKCl9ZWxzZSB0aGlzLnF1ZXVlLnB1c2godCl9LHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5xdWV1ZT1bXX0sdC5wcm90b3R5cGUuZmx1c2hFdmVudHM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5xdWV1ZS5zaGlmdCgpO3Q7KXRoaXMucHJvY2Vzcyh0KSx0PXRoaXMucXVldWUuc2hpZnQoKX0sdC5wcm90b3R5cGUucHJvY2Vzcz1mdW5jdGlvbih0KXt0aGlzLnByb2Nlc3NpbmdFdmVudD0hMDt0cnl7dCgpfWNhdGNoKHQpe3Rocm93IHRoaXMuY2xlYXIoKSx0fWZpbmFsbHl7dGhpcy5wcm9jZXNzaW5nRXZlbnQ9ITF9fSx0fSgpLEJ0PW5ldyBNYXAsSnQ9MCxxdD1mdW5jdGlvbigpe3JldHVyblwieDpcIi5jb25jYXQoSnQrKyl9LCR0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEJ0LnNldCh0LGUpLHR9LFh0PWZ1bmN0aW9uKHQpe3JldHVybiBCdC5nZXQodCl9LEh0PWZ1bmN0aW9uKHQpe0J0LmRlbGV0ZSh0KX07ZnVuY3Rpb24gR3QoKXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZWxmP3NlbGY6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6dm9pZCAwfWZ1bmN0aW9uIEt0KHQpe2lmKEd0KCkpe3ZhciBlPWZ1bmN0aW9uKCl7dmFyIHQ9R3QoKTtpZih0JiZcIl9feHN0YXRlX19cImluIHQpcmV0dXJuIHQuX194c3RhdGVfX30oKTtlJiZlLnJlZ2lzdGVyKHQpfX1mdW5jdGlvbiBRdCh0LG4pe3ZvaWQgMD09PW4mJihuPXt9KTt2YXIgcixpPXQuaW5pdGlhbFN0YXRlLG89bmV3IFNldCxhPVtdLHM9ITEsYz0ocj17aWQ6bi5pZCxzZW5kOmZ1bmN0aW9uKGUpe2EucHVzaChlKSxmdW5jdGlvbigpe2lmKCFzKXtmb3Iocz0hMDthLmxlbmd0aD4wOyl7dmFyIGU9YS5zaGlmdCgpO2k9dC50cmFuc2l0aW9uKGksZSx1KSxvLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5leHQoaSl9KSl9cz0hMX19KCl9LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHN1YnNjcmliZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9eih0LGUsbik7cmV0dXJuIG8uYWRkKHIpLHIubmV4dChpKSx7dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXtvLmRlbGV0ZShyKX19fX0sZSh7c3Vic2NyaWJlOmZ1bmN0aW9uKCl7cmV0dXJue3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7fX19LGlkOlwiYW5vbnltb3VzXCIsZ2V0U25hcHNob3Q6ZnVuY3Rpb24oKXt9fSxyKSksdT17cGFyZW50Om4ucGFyZW50LHNlbGY6YyxpZDpuLmlkfHxcImFub255bW91c1wiLG9ic2VydmVyczpvfTtyZXR1cm4gaT10LnN0YXJ0P3Quc3RhcnQodSk6aSxjfXZhciBXdCxZdD17c3luYzohMSxhdXRvRm9yd2FyZDohMX07KFd0PXQuSW50ZXJwcmV0ZXJTdGF0dXN8fCh0LkludGVycHJldGVyU3RhdHVzPXt9KSlbV3QuTm90U3RhcnRlZD0wXT1cIk5vdFN0YXJ0ZWRcIixXdFtXdC5SdW5uaW5nPTFdPVwiUnVubmluZ1wiLFd0W1d0LlN0b3BwZWQ9Ml09XCJTdG9wcGVkXCI7dmFyIFp0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihyLGkpe3ZhciBvPXRoaXM7dm9pZCAwPT09aSYmKGk9bi5kZWZhdWx0T3B0aW9ucyksdGhpcy5tYWNoaW5lPXIsdGhpcy5zY2hlZHVsZXI9bmV3IFV0LHRoaXMuZGVsYXllZEV2ZW50c01hcD17fSx0aGlzLmxpc3RlbmVycz1uZXcgU2V0LHRoaXMuY29udGV4dExpc3RlbmVycz1uZXcgU2V0LHRoaXMuc3RvcExpc3RlbmVycz1uZXcgU2V0LHRoaXMuZG9uZUxpc3RlbmVycz1uZXcgU2V0LHRoaXMuZXZlbnRMaXN0ZW5lcnM9bmV3IFNldCx0aGlzLnNlbmRMaXN0ZW5lcnM9bmV3IFNldCx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuc3RhdHVzPXQuSW50ZXJwcmV0ZXJTdGF0dXMuTm90U3RhcnRlZCx0aGlzLmNoaWxkcmVuPW5ldyBNYXAsdGhpcy5mb3J3YXJkVG89bmV3IFNldCx0aGlzLmluaXQ9dGhpcy5zdGFydCx0aGlzLnNlbmQ9ZnVuY3Rpb24oZSxuKXtpZihUKGUpKXJldHVybiBvLmJhdGNoKGUpLG8uc3RhdGU7dmFyIHI9TChWKGUsbikpO2lmKG8uc3RhdHVzPT09dC5JbnRlcnByZXRlclN0YXR1cy5TdG9wcGVkKXJldHVybiBvLnN0YXRlO2lmKG8uc3RhdHVzIT09dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nJiYhby5vcHRpb25zLmRlZmVyRXZlbnRzKXRocm93IG5ldyBFcnJvcignRXZlbnQgXCInLmNvbmNhdChyLm5hbWUsJ1wiIHdhcyBzZW50IHRvIHVuaW5pdGlhbGl6ZWQgc2VydmljZSBcIicpLmNvbmNhdChvLm1hY2hpbmUuaWQsJ1wiLiBNYWtlIHN1cmUgLnN0YXJ0KCkgaXMgY2FsbGVkIGZvciB0aGlzIHNlcnZpY2UsIG9yIHNldCB7IGRlZmVyRXZlbnRzOiB0cnVlIH0gaW4gdGhlIHNlcnZpY2Ugb3B0aW9ucy5cXG5FdmVudDogJykuY29uY2F0KEpTT04uc3RyaW5naWZ5KHIuZGF0YSkpKTtyZXR1cm4gby5zY2hlZHVsZXIuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7by5mb3J3YXJkKHIpO3ZhciB0PW8ubmV4dFN0YXRlKHIpO28udXBkYXRlKHQscil9KSksby5fc3RhdGV9LHRoaXMuc2VuZFRvPWZ1bmN0aW9uKG4scil7dmFyIGksYT1vLnBhcmVudCYmKHI9PT10LlNwZWNpYWxUYXJnZXRzLlBhcmVudHx8by5wYXJlbnQuaWQ9PT1yKSxzPWE/by5wYXJlbnQ6QShyKT9vLmNoaWxkcmVuLmdldChyKXx8WHQocik6KGk9cikmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGkuc2VuZD9yOnZvaWQgMDtpZihzKVwibWFjaGluZVwiaW4gcz9zLnNlbmQoZShlKHt9LG4pLHtuYW1lOm4ubmFtZT09PWF0P1wiXCIuY29uY2F0KEF0KG8uaWQpKTpuLm5hbWUsb3JpZ2luOm8uc2Vzc2lvbklkfSkpOnMuc2VuZChuLmRhdGEpO2Vsc2UgaWYoIWEpdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIHNlbmQgZXZlbnQgdG8gY2hpbGQgJ1wiLmNvbmNhdChyLFwiJyBmcm9tIHNlcnZpY2UgJ1wiKS5jb25jYXQoby5pZCxcIicuXCIpKX07dmFyIGE9ZShlKHt9LG4uZGVmYXVsdE9wdGlvbnMpLGkpLHM9YS5jbG9jayxjPWEubG9nZ2VyLHU9YS5wYXJlbnQsaD1hLmlkLGY9dm9pZCAwIT09aD9oOnIuaWQ7dGhpcy5pZD1mLHRoaXMubG9nZ2VyPWMsdGhpcy5jbG9jaz1zLHRoaXMucGFyZW50PXUsdGhpcy5vcHRpb25zPWEsdGhpcy5zY2hlZHVsZXI9bmV3IFV0KHtkZWZlckV2ZW50czp0aGlzLm9wdGlvbnMuZGVmZXJFdmVudHN9KSx0aGlzLnNlc3Npb25JZD1xdCgpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJpbml0aWFsU3RhdGVcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5faW5pdGlhbFN0YXRlP3RoaXMuX2luaXRpYWxTdGF0ZTpqdCh0aGlzLChmdW5jdGlvbigpe3JldHVybiB0Ll9pbml0aWFsU3RhdGU9dC5tYWNoaW5lLmluaXRpYWxTdGF0ZSx0Ll9pbml0aWFsU3RhdGV9KSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwic3RhdGVcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YXRlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG4ucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24odCxlKXt2YXIgbixpO3RyeXtmb3IodmFyIG89cih0LmFjdGlvbnMpLGE9by5uZXh0KCk7IWEuZG9uZTthPW8ubmV4dCgpKXt2YXIgcz1hLnZhbHVlO3RoaXMuZXhlYyhzLHQsZSl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2EmJiFhLmRvbmUmJihpPW8ucmV0dXJuKSYmaS5jYWxsKG8pfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19LG4ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUpe3ZhciBuLGksbyxhLHMsYyx1LGgsZj10aGlzO2lmKHQuX3Nlc3Npb25pZD10aGlzLnNlc3Npb25JZCx0aGlzLl9zdGF0ZT10LHRoaXMub3B0aW9ucy5leGVjdXRlJiZ0aGlzLmV4ZWN1dGUodGhpcy5zdGF0ZSksdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChmdW5jdGlvbih0KXtmLnN0YXRlLmNoaWxkcmVuW3QuaWRdPXR9KSksdGhpcy5kZXZUb29scyYmdGhpcy5kZXZUb29scy5zZW5kKGUuZGF0YSx0KSx0LmV2ZW50KXRyeXtmb3IodmFyIGw9cih0aGlzLmV2ZW50TGlzdGVuZXJzKSxkPWwubmV4dCgpOyFkLmRvbmU7ZD1sLm5leHQoKSl7KDAsZC52YWx1ZSkodC5ldmVudCl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2QmJiFkLmRvbmUmJihpPWwucmV0dXJuKSYmaS5jYWxsKGwpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX10cnl7Zm9yKHZhciBwPXIodGhpcy5saXN0ZW5lcnMpLHY9cC5uZXh0KCk7IXYuZG9uZTt2PXAubmV4dCgpKXsoMCx2LnZhbHVlKSh0LHQuZXZlbnQpfX1jYXRjaCh0KXtvPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt2JiYhdi5kb25lJiYoYT1wLnJldHVybikmJmEuY2FsbChwKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19dHJ5e2Zvcih2YXIgeT1yKHRoaXMuY29udGV4dExpc3RlbmVycyksZz15Lm5leHQoKTshZy5kb25lO2c9eS5uZXh0KCkpeygwLGcudmFsdWUpKHRoaXMuc3RhdGUuY29udGV4dCx0aGlzLnN0YXRlLmhpc3Rvcnk/dGhpcy5zdGF0ZS5oaXN0b3J5LmNvbnRleHQ6dm9pZCAwKX19Y2F0Y2godCl7cz17ZXJyb3I6dH19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKGM9eS5yZXR1cm4pJiZjLmNhbGwoeSl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fXZhciBtPUgodC5jb25maWd1cmF0aW9ufHxbXSx0aGlzLm1hY2hpbmUpO2lmKHRoaXMuc3RhdGUuY29uZmlndXJhdGlvbiYmbSl7dmFyIFM9dC5jb25maWd1cmF0aW9uLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVyblwiZmluYWxcIj09PXQudHlwZSYmdC5wYXJlbnQ9PT1mLm1hY2hpbmV9KSksdz1TJiZTLmRvbmVEYXRhP3goUy5kb25lRGF0YSx0LmNvbnRleHQsZSk6dm9pZCAwO3RyeXtmb3IodmFyIGI9cih0aGlzLmRvbmVMaXN0ZW5lcnMpLF89Yi5uZXh0KCk7IV8uZG9uZTtfPWIubmV4dCgpKXsoMCxfLnZhbHVlKShOdCh0aGlzLmlkLHcpKX19Y2F0Y2godCl7dT17ZXJyb3I6dH19ZmluYWxseXt0cnl7XyYmIV8uZG9uZSYmKGg9Yi5yZXR1cm4pJiZoLmNhbGwoYil9ZmluYWxseXtpZih1KXRocm93IHUuZXJyb3J9fXRoaXMuc3RvcCgpfX0sbi5wcm90b3R5cGUub25UcmFuc2l0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxpc3RlbmVycy5hZGQoZSksdGhpcy5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLlJ1bm5pbmcmJmUodGhpcy5zdGF0ZSx0aGlzLnN0YXRlLmV2ZW50KSx0aGlzfSxuLnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oZSxuLHIpe3ZhciBpLG89dGhpcztpZighZSlyZXR1cm57dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXt9fTt2YXIgYT1yO3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGU/aT1lOihpPWUubmV4dC5iaW5kKGUpLGE9ZS5jb21wbGV0ZS5iaW5kKGUpKSx0aGlzLmxpc3RlbmVycy5hZGQoaSksdGhpcy5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLlJ1bm5pbmcmJmkodGhpcy5zdGF0ZSksYSYmdGhpcy5vbkRvbmUoYSkse3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7aSYmby5saXN0ZW5lcnMuZGVsZXRlKGkpLGEmJm8uZG9uZUxpc3RlbmVycy5kZWxldGUoYSl9fX0sbi5wcm90b3R5cGUub25FdmVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ldmVudExpc3RlbmVycy5hZGQodCksdGhpc30sbi5wcm90b3R5cGUub25TZW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlbmRMaXN0ZW5lcnMuYWRkKHQpLHRoaXN9LG4ucHJvdG90eXBlLm9uQ2hhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNvbnRleHRMaXN0ZW5lcnMuYWRkKHQpLHRoaXN9LG4ucHJvdG90eXBlLm9uU3RvcD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdG9wTGlzdGVuZXJzLmFkZCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vbkRvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZG9uZUxpc3RlbmVycy5hZGQodCksdGhpc30sbi5wcm90b3R5cGUub2ZmPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxpc3RlbmVycy5kZWxldGUodCksdGhpcy5ldmVudExpc3RlbmVycy5kZWxldGUodCksdGhpcy5zZW5kTGlzdGVuZXJzLmRlbGV0ZSh0KSx0aGlzLnN0b3BMaXN0ZW5lcnMuZGVsZXRlKHQpLHRoaXMuZG9uZUxpc3RlbmVycy5kZWxldGUodCksdGhpcy5jb250ZXh0TGlzdGVuZXJzLmRlbGV0ZSh0KSx0aGlzfSxuLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbihlKXt2YXIgbj10aGlzO2lmKHRoaXMuc3RhdHVzPT09dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nKXJldHVybiB0aGlzOyR0KHRoaXMuc2Vzc2lvbklkLHRoaXMpLHRoaXMuaW5pdGlhbGl6ZWQ9ITAsdGhpcy5zdGF0dXM9dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nO3ZhciByPXZvaWQgMD09PWU/dGhpcy5pbml0aWFsU3RhdGU6anQodGhpcywoZnVuY3Rpb24oKXtyZXR1cm4hQSh0PWUpJiZcInZhbHVlXCJpbiB0JiZcImhpc3RvcnlcImluIHQ/bi5tYWNoaW5lLnJlc29sdmVTdGF0ZShlKTpuLm1hY2hpbmUucmVzb2x2ZVN0YXRlKGt0LmZyb20oZSxuLm1hY2hpbmUuY29udGV4dCkpO3ZhciB0fSkpO3JldHVybiB0aGlzLm9wdGlvbnMuZGV2VG9vbHMmJnRoaXMuYXR0YWNoRGV2KCksdGhpcy5zY2hlZHVsZXIuaW5pdGlhbGl6ZSgoZnVuY3Rpb24oKXtuLnVwZGF0ZShyLGh0KX0pKSx0aGlzfSxuLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7dmFyIGUsbixpLG8sYSxjLHUsaCxmLGwsZD10aGlzO3RyeXtmb3IodmFyIHA9cih0aGlzLmxpc3RlbmVycyksdj1wLm5leHQoKTshdi5kb25lO3Y9cC5uZXh0KCkpe3ZhciB5PXYudmFsdWU7dGhpcy5saXN0ZW5lcnMuZGVsZXRlKHkpfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt2JiYhdi5kb25lJiYobj1wLnJldHVybikmJm4uY2FsbChwKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19dHJ5e2Zvcih2YXIgZz1yKHRoaXMuc3RvcExpc3RlbmVycyksbT1nLm5leHQoKTshbS5kb25lO209Zy5uZXh0KCkpeyh5PW0udmFsdWUpKCksdGhpcy5zdG9wTGlzdGVuZXJzLmRlbGV0ZSh5KX19Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKG89Zy5yZXR1cm4pJiZvLmNhbGwoZyl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXRyeXtmb3IodmFyIFM9cih0aGlzLmNvbnRleHRMaXN0ZW5lcnMpLHg9Uy5uZXh0KCk7IXguZG9uZTt4PVMubmV4dCgpKXt5PXgudmFsdWU7dGhpcy5jb250ZXh0TGlzdGVuZXJzLmRlbGV0ZSh5KX19Y2F0Y2godCl7YT17ZXJyb3I6dH19ZmluYWxseXt0cnl7eCYmIXguZG9uZSYmKGM9Uy5yZXR1cm4pJiZjLmNhbGwoUyl9ZmluYWxseXtpZihhKXRocm93IGEuZXJyb3J9fXRyeXtmb3IodmFyIHc9cih0aGlzLmRvbmVMaXN0ZW5lcnMpLGI9dy5uZXh0KCk7IWIuZG9uZTtiPXcubmV4dCgpKXt5PWIudmFsdWU7dGhpcy5kb25lTGlzdGVuZXJzLmRlbGV0ZSh5KX19Y2F0Y2godCl7dT17ZXJyb3I6dH19ZmluYWxseXt0cnl7YiYmIWIuZG9uZSYmKGg9dy5yZXR1cm4pJiZoLmNhbGwodyl9ZmluYWxseXtpZih1KXRocm93IHUuZXJyb3J9fWlmKCF0aGlzLmluaXRpYWxpemVkKXJldHVybiB0aGlzO3RoaXMuc3RhdGUuY29uZmlndXJhdGlvbi5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZSxuO3RyeXtmb3IodmFyIGk9cih0LmRlZmluaXRpb24uZXhpdCksbz1pLm5leHQoKTshby5kb25lO289aS5uZXh0KCkpe3ZhciBhPW8udmFsdWU7ZC5leGVjKGEsZC5zdGF0ZSl9fWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihuPWkucmV0dXJuKSYmbi5jYWxsKGkpfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX19KSksdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChmdW5jdGlvbih0KXtOKHQuc3RvcCkmJnQuc3RvcCgpfSkpO3RyeXtmb3IodmFyIF89cihzKHRoaXMuZGVsYXllZEV2ZW50c01hcCkpLEU9Xy5uZXh0KCk7IUUuZG9uZTtFPV8ubmV4dCgpKXt2YXIgVD1FLnZhbHVlO3RoaXMuY2xvY2suY2xlYXJUaW1lb3V0KHRoaXMuZGVsYXllZEV2ZW50c01hcFtUXSl9fWNhdGNoKHQpe2Y9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e0UmJiFFLmRvbmUmJihsPV8ucmV0dXJuKSYmbC5jYWxsKF8pfWZpbmFsbHl7aWYoZil0aHJvdyBmLmVycm9yfX1yZXR1cm4gdGhpcy5zY2hlZHVsZXIuY2xlYXIoKSx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuc3RhdHVzPXQuSW50ZXJwcmV0ZXJTdGF0dXMuU3RvcHBlZCxIdCh0aGlzLnNlc3Npb25JZCksdGhpc30sbi5wcm90b3R5cGUuYmF0Y2g9ZnVuY3Rpb24obil7dmFyIGE9dGhpcztpZih0aGlzLnN0YXR1cz09PXQuSW50ZXJwcmV0ZXJTdGF0dXMuTm90U3RhcnRlZCYmdGhpcy5vcHRpb25zLmRlZmVyRXZlbnRzKTtlbHNlIGlmKHRoaXMuc3RhdHVzIT09dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nKXRocm93IG5ldyBFcnJvcihcIlwiLmNvbmNhdChuLmxlbmd0aCwnIGV2ZW50KHMpIHdlcmUgc2VudCB0byB1bmluaXRpYWxpemVkIHNlcnZpY2UgXCInKS5jb25jYXQodGhpcy5tYWNoaW5lLmlkLCdcIi4gTWFrZSBzdXJlIC5zdGFydCgpIGlzIGNhbGxlZCBmb3IgdGhpcyBzZXJ2aWNlLCBvciBzZXQgeyBkZWZlckV2ZW50czogdHJ1ZSB9IGluIHRoZSBzZXJ2aWNlIG9wdGlvbnMuJykpO3RoaXMuc2NoZWR1bGVyLnNjaGVkdWxlKChmdW5jdGlvbigpe3ZhciB0LHMsYz1hLnN0YXRlLHU9ITEsaD1bXSxmPWZ1bmN0aW9uKHQpe3ZhciBuPUwodCk7YS5mb3J3YXJkKG4pLGM9anQoYSwoZnVuY3Rpb24oKXtyZXR1cm4gYS5tYWNoaW5lLnRyYW5zaXRpb24oYyxuKX0pKSxoLnB1c2guYXBwbHkoaCxvKFtdLGkoYy5hY3Rpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHI9YyxpPShuPXQpLmV4ZWMsZShlKHt9LG4pLHtleGVjOnZvaWQgMCE9PWk/ZnVuY3Rpb24oKXtyZXR1cm4gaShyLmNvbnRleHQsci5ldmVudCx7YWN0aW9uOm4sc3RhdGU6cixfZXZlbnQ6ci5fZXZlbnR9KX06dm9pZCAwfSk7dmFyIG4scixpfSkpKSwhMSkpLHU9dXx8ISFjLmNoYW5nZWR9O3RyeXtmb3IodmFyIGw9cihuKSxkPWwubmV4dCgpOyFkLmRvbmU7ZD1sLm5leHQoKSl7ZihkLnZhbHVlKX19Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7ZCYmIWQuZG9uZSYmKHM9bC5yZXR1cm4pJiZzLmNhbGwobCl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fWMuY2hhbmdlZD11LGMuYWN0aW9ucz1oLGEudXBkYXRlKGMsTChuW24ubGVuZ3RoLTFdKSl9KSl9LG4ucHJvdG90eXBlLnNlbmRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zZW5kLmJpbmQodGhpcyx0KX0sbi5wcm90b3R5cGUubmV4dFN0YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1MKHQpO2lmKDA9PT1uLm5hbWUuaW5kZXhPZihvdCkmJiF0aGlzLnN0YXRlLm5leHRFdmVudHMuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10LmluZGV4T2Yob3QpfSkpKXRocm93IG4uZGF0YS5kYXRhO3JldHVybiBqdCh0aGlzLChmdW5jdGlvbigpe3JldHVybiBlLm1hY2hpbmUudHJhbnNpdGlvbihlLnN0YXRlLG4pfSkpfSxuLnByb3RvdHlwZS5mb3J3YXJkPWZ1bmN0aW9uKHQpe3ZhciBlLG47dHJ5e2Zvcih2YXIgaT1yKHRoaXMuZm9yd2FyZFRvKSxvPWkubmV4dCgpOyFvLmRvbmU7bz1pLm5leHQoKSl7dmFyIGE9by52YWx1ZSxzPXRoaXMuY2hpbGRyZW4uZ2V0KGEpO2lmKCFzKXRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byBmb3J3YXJkIGV2ZW50ICdcIi5jb25jYXQodCxcIicgZnJvbSBpbnRlcnByZXRlciAnXCIpLmNvbmNhdCh0aGlzLmlkLFwiJyB0byBub25leGlzdGFudCBjaGlsZCAnXCIpLmNvbmNhdChhLFwiJy5cIikpO3Muc2VuZCh0KX19Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKG49aS5yZXR1cm4pJiZuLmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fX0sbi5wcm90b3R5cGUuZGVmZXI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmRlbGF5ZWRFdmVudHNNYXBbdC5pZF09dGhpcy5jbG9jay5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3QudG8/ZS5zZW5kVG8odC5fZXZlbnQsdC50byk6ZS5zZW5kKHQuX2V2ZW50KX0pLHQuZGVsYXkpfSxuLnByb3RvdHlwZS5jYW5jZWw9ZnVuY3Rpb24odCl7dGhpcy5jbG9jay5jbGVhclRpbWVvdXQodGhpcy5kZWxheWVkRXZlbnRzTWFwW3RdKSxkZWxldGUgdGhpcy5kZWxheWVkRXZlbnRzTWFwW3RdfSxuLnByb3RvdHlwZS5leGVjPWZ1bmN0aW9uKGUsbixyKXt2b2lkIDA9PT1yJiYocj10aGlzLm1hY2hpbmUub3B0aW9ucy5hY3Rpb25zKTt2YXIgaT1uLmNvbnRleHQsbz1uLl9ldmVudCxhPWUuZXhlY3x8ZnQoZS50eXBlLHIpLHM9TihhKT9hOmE/YS5leGVjOmUuZXhlYztpZihzKXRyeXtyZXR1cm4gcyhpLG8uZGF0YSx7YWN0aW9uOmUsc3RhdGU6dGhpcy5zdGF0ZSxfZXZlbnQ6b30pfWNhdGNoKHQpe3Rocm93IHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5zZW5kKHt0eXBlOlwieHN0YXRlLmVycm9yXCIsZGF0YTp0fSksdH1zd2l0Y2goZS50eXBlKXtjYXNlIFk6dmFyIGM9ZTtpZihcIm51bWJlclwiPT10eXBlb2YgYy5kZWxheSlyZXR1cm4gdm9pZCB0aGlzLmRlZmVyKGMpO2MudG8/dGhpcy5zZW5kVG8oYy5fZXZlbnQsYy50byk6dGhpcy5zZW5kKGMuX2V2ZW50KTticmVhaztjYXNlIFo6dGhpcy5jYW5jZWwoZS5zZW5kSWQpO2JyZWFrO2Nhc2UgSzp2YXIgdT1lLmFjdGl2aXR5O2lmKCF0aGlzLnN0YXRlLmFjdGl2aXRpZXNbdS5pZHx8dS50eXBlXSlicmVhaztpZih1LnR5cGU9PT10LkFjdGlvblR5cGVzLkludm9rZSl7dmFyIGg9TSh1LnNyYyksZj10aGlzLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlcz90aGlzLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlc1toLnR5cGVdOnZvaWQgMCxsPXUuaWQsZD11LmRhdGEscD1cImF1dG9Gb3J3YXJkXCJpbiB1P3UuYXV0b0ZvcndhcmQ6ISF1LmZvcndhcmQ7aWYoIWYpcmV0dXJuO3ZhciB2PWQ/eChkLGksbyk6dm9pZCAwO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBmKXJldHVybjt2YXIgeT1OKGYpP2YoaSxvLmRhdGEse2RhdGE6dixzcmM6aCxtZXRhOnUubWV0YX0pOmY7aWYoIXkpcmV0dXJuO3ZhciBnPXZvaWQgMDtrKHkpJiYoeT12P3kud2l0aENvbnRleHQodik6eSxnPXthdXRvRm9yd2FyZDpwfSksdGhpcy5zcGF3bih5LGwsZyl9ZWxzZSB0aGlzLnNwYXduQWN0aXZpdHkodSk7YnJlYWs7Y2FzZSBROnRoaXMuc3RvcENoaWxkKGUuYWN0aXZpdHkuaWQpO2JyZWFrO2Nhc2UgbnQ6dmFyIG09ZS5sYWJlbCxTPWUudmFsdWU7bT90aGlzLmxvZ2dlcihtLFMpOnRoaXMubG9nZ2VyKFMpfX0sbi5wcm90b3R5cGUucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24odCl7dmFyIGU7dGhpcy5jaGlsZHJlbi5kZWxldGUodCksdGhpcy5mb3J3YXJkVG8uZGVsZXRlKHQpLG51bGw9PT0oZT10aGlzLnN0YXRlKXx8dm9pZCAwPT09ZXx8ZGVsZXRlIGUuY2hpbGRyZW5bdF19LG4ucHJvdG90eXBlLnN0b3BDaGlsZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNoaWxkcmVuLmdldCh0KTtlJiYodGhpcy5yZW1vdmVDaGlsZCh0KSxOKGUuc3RvcCkmJmUuc3RvcCgpKX0sbi5wcm90b3R5cGUuc3Bhd249ZnVuY3Rpb24odCxuLHIpe2lmKHcodCkpcmV0dXJuIHRoaXMuc3Bhd25Qcm9taXNlKFByb21pc2UucmVzb2x2ZSh0KSxuKTtpZihOKHQpKXJldHVybiB0aGlzLnNwYXduQ2FsbGJhY2sodCxuKTtpZihmdW5jdGlvbih0KXt0cnl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdC5zZW5kfWNhdGNoKHQpe3JldHVybiExfX0obz10KSYmXCJpZFwiaW4gbylyZXR1cm4gdGhpcy5zcGF3bkFjdG9yKHQsbik7aWYoZnVuY3Rpb24odCl7dHJ5e3JldHVyblwic3Vic2NyaWJlXCJpbiB0JiZOKHQuc3Vic2NyaWJlKX1jYXRjaCh0KXtyZXR1cm4hMX19KHQpKXJldHVybiB0aGlzLnNwYXduT2JzZXJ2YWJsZSh0LG4pO2lmKGsodCkpcmV0dXJuIHRoaXMuc3Bhd25NYWNoaW5lKHQsZShlKHt9LHIpLHtpZDpufSkpO2lmKG51bGwhPT0oaT10KSYmXCJvYmplY3RcIj09dHlwZW9mIGkmJlwidHJhbnNpdGlvblwiaW4gaSYmXCJmdW5jdGlvblwiPT10eXBlb2YgaS50cmFuc2l0aW9uKXJldHVybiB0aGlzLnNwYXduQmVoYXZpb3IodCxuKTt0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBzcGF3biBlbnRpdHkgXCInLmNvbmNhdChuLCdcIiBvZiB0eXBlIFwiJykuY29uY2F0KHR5cGVvZiB0LCdcIi4nKSk7dmFyIGksb30sbi5wcm90b3R5cGUuc3Bhd25NYWNoaW5lPWZ1bmN0aW9uKHQscil7dmFyIGk9dGhpczt2b2lkIDA9PT1yJiYocj17fSk7dmFyIG89bmV3IG4odCxlKGUoe30sdGhpcy5vcHRpb25zKSx7cGFyZW50OnRoaXMsaWQ6ci5pZHx8dC5pZH0pKSxhPWUoZSh7fSxZdCkscik7YS5zeW5jJiZvLm9uVHJhbnNpdGlvbigoZnVuY3Rpb24odCl7aS5zZW5kKHN0LHtzdGF0ZTp0LGlkOm8uaWR9KX0pKTt2YXIgcz1vO3JldHVybiB0aGlzLmNoaWxkcmVuLnNldChvLmlkLHMpLGEuYXV0b0ZvcndhcmQmJnRoaXMuZm9yd2FyZFRvLmFkZChvLmlkKSxvLm9uRG9uZSgoZnVuY3Rpb24odCl7aS5yZW1vdmVDaGlsZChvLmlkKSxpLnNlbmQoTCh0LHtvcmlnaW46by5pZH0pKX0pKS5zdGFydCgpLHN9LG4ucHJvdG90eXBlLnNwYXduQmVoYXZpb3I9ZnVuY3Rpb24odCxlKXt2YXIgbj1RdCh0LHtpZDplLHBhcmVudDp0aGlzfSk7cmV0dXJuIHRoaXMuY2hpbGRyZW4uc2V0KGUsbiksbn0sbi5wcm90b3R5cGUuc3Bhd25Qcm9taXNlPWZ1bmN0aW9uKHQsZSl7dmFyIG4scj10aGlzLGk9ITE7dC50aGVuKChmdW5jdGlvbih0KXtpfHwobj10LHIucmVtb3ZlQ2hpbGQoZSksci5zZW5kKEwoTnQoZSx0KSx7b3JpZ2luOmV9KSkpfSksKGZ1bmN0aW9uKHQpe2lmKCFpKXtyLnJlbW92ZUNoaWxkKGUpO3ZhciBuPUF0KGUsdCk7dHJ5e3Iuc2VuZChMKG4se29yaWdpbjplfSkpfWNhdGNoKHQpe3IuZGV2VG9vbHMmJnIuZGV2VG9vbHMuc2VuZChuLHIuc3RhdGUpLHIubWFjaGluZS5zdHJpY3QmJnIuc3RvcCgpfX19KSk7dmFyIG89e2lkOmUsc2VuZDpmdW5jdGlvbigpe30sc3Vic2NyaWJlOmZ1bmN0aW9uKGUsbixyKXt2YXIgaT16KGUsbixyKSxvPSExO3JldHVybiB0LnRoZW4oKGZ1bmN0aW9uKHQpe298fChpLm5leHQodCksb3x8aS5jb21wbGV0ZSgpKX0pLChmdW5jdGlvbih0KXtvfHxpLmVycm9yKHQpfSkpLHt1bnN1YnNjcmliZTpmdW5jdGlvbigpe3JldHVybiBvPSEwfX19LHN0b3A6ZnVuY3Rpb24oKXtpPSEwfSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57aWQ6ZX19LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIG59fTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5zZXQoZSxvKSxvfSxuLnByb3RvdHlwZS5zcGF3bkNhbGxiYWNrPWZ1bmN0aW9uKHQsZSl7dmFyIG4scixpPXRoaXMsbz0hMSxhPW5ldyBTZXQscz1uZXcgU2V0O3RyeXtyPXQoKGZ1bmN0aW9uKHQpe249dCxzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKHQpfSkpLG98fGkuc2VuZChMKHQse29yaWdpbjplfSkpfSksKGZ1bmN0aW9uKHQpe2EuYWRkKHQpfSkpfWNhdGNoKHQpe3RoaXMuc2VuZChBdChlLHQpKX1pZih3KHIpKXJldHVybiB0aGlzLnNwYXduUHJvbWlzZShyLGUpO3ZhciBjPXtpZDplLHNlbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIGEuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSl9LHN1YnNjcmliZTpmdW5jdGlvbih0KXtyZXR1cm4gcy5hZGQodCkse3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7cy5kZWxldGUodCl9fX0sc3RvcDpmdW5jdGlvbigpe289ITAsTihyKSYmcigpfSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57aWQ6ZX19LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIG59fTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5zZXQoZSxjKSxjfSxuLnByb3RvdHlwZS5zcGF3bk9ic2VydmFibGU9ZnVuY3Rpb24odCxlKXt2YXIgbixyPXRoaXMsaT10LnN1YnNjcmliZSgoZnVuY3Rpb24odCl7bj10LHIuc2VuZChMKHQse29yaWdpbjplfSkpfSksKGZ1bmN0aW9uKHQpe3IucmVtb3ZlQ2hpbGQoZSksci5zZW5kKEwoQXQoZSx0KSx7b3JpZ2luOmV9KSl9KSwoZnVuY3Rpb24oKXtyLnJlbW92ZUNoaWxkKGUpLHIuc2VuZChMKE50KGUpLHtvcmlnaW46ZX0pKX0pKSxvPXtpZDplLHNlbmQ6ZnVuY3Rpb24oKXt9LHN1YnNjcmliZTpmdW5jdGlvbihlLG4scil7cmV0dXJuIHQuc3Vic2NyaWJlKGUsbixyKX0sc3RvcDpmdW5jdGlvbigpe3JldHVybiBpLnVuc3Vic2NyaWJlKCl9LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIG59LHRvSlNPTjpmdW5jdGlvbigpe3JldHVybntpZDplfX19O3JldHVybiB0aGlzLmNoaWxkcmVuLnNldChlLG8pLG99LG4ucHJvdG90eXBlLnNwYXduQWN0b3I9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5zZXQoZSx0KSx0fSxuLnByb3RvdHlwZS5zcGF3bkFjdGl2aXR5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFjaGluZS5vcHRpb25zJiZ0aGlzLm1hY2hpbmUub3B0aW9ucy5hY3Rpdml0aWVzP3RoaXMubWFjaGluZS5vcHRpb25zLmFjdGl2aXRpZXNbdC50eXBlXTp2b2lkIDA7aWYoZSl7dmFyIG49ZSh0aGlzLnN0YXRlLmNvbnRleHQsdCk7dGhpcy5zcGF3bkVmZmVjdCh0LmlkLG4pfX0sbi5wcm90b3R5cGUuc3Bhd25FZmZlY3Q9ZnVuY3Rpb24odCxlKXt0aGlzLmNoaWxkcmVuLnNldCh0LHtpZDp0LHNlbmQ6ZnVuY3Rpb24oKXt9LHN1YnNjcmliZTpmdW5jdGlvbigpe3JldHVybnt1bnN1YnNjcmliZTpmdW5jdGlvbigpe319fSxzdG9wOmV8fHZvaWQgMCxnZXRTbmFwc2hvdDpmdW5jdGlvbigpe30sdG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue2lkOnR9fX0pfSxuLnByb3RvdHlwZS5hdHRhY2hEZXY9ZnVuY3Rpb24oKXt2YXIgdD1HdCgpO2lmKHRoaXMub3B0aW9ucy5kZXZUb29scyYmdCl7aWYodC5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fKXt2YXIgbj1cIm9iamVjdFwiPT10eXBlb2YgdGhpcy5vcHRpb25zLmRldlRvb2xzP3RoaXMub3B0aW9ucy5kZXZUb29sczp2b2lkIDA7dGhpcy5kZXZUb29scz10Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18uY29ubmVjdChlKGUoe25hbWU6dGhpcy5pZCxhdXRvUGF1c2U6ITAsc3RhdGVTYW5pdGl6ZXI6ZnVuY3Rpb24odCl7cmV0dXJue3ZhbHVlOnQudmFsdWUsY29udGV4dDp0LmNvbnRleHQsYWN0aW9uczp0LmFjdGlvbnN9fX0sbikse2ZlYXR1cmVzOmUoe2p1bXA6ITEsc2tpcDohMX0sbj9uLmZlYXR1cmVzOnZvaWQgMCl9KSx0aGlzLm1hY2hpbmUpLHRoaXMuZGV2VG9vbHMuaW5pdCh0aGlzLnN0YXRlKX1LdCh0aGlzKX19LG4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybntpZDp0aGlzLmlkfX0sbi5wcm90b3R5cGVbUF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sbi5wcm90b3R5cGUuZ2V0U25hcHNob3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLk5vdFN0YXJ0ZWQ/dGhpcy5pbml0aWFsU3RhdGU6dGhpcy5fc3RhdGV9LG4uZGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJue2V4ZWN1dGU6ITAsZGVmZXJFdmVudHM6ITAsY2xvY2s6e3NldFRpbWVvdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gc2V0VGltZW91dCh0LGUpfSxjbGVhclRpbWVvdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGNsZWFyVGltZW91dCh0KX19LGxvZ2dlcjp0LmNvbnNvbGUubG9nLmJpbmQoY29uc29sZSksZGV2VG9vbHM6ITF9fShcInVuZGVmaW5lZFwiIT10eXBlb2Ygc2VsZj9zZWxmOmdsb2JhbCksbi5pbnRlcnByZXQ9dGUsbn0oKTtmdW5jdGlvbiB0ZSh0LGUpe3JldHVybiBuZXcgWnQodCxlKX12YXIgZWU9e3JhaXNlOnZ0LHNlbmQ6eXQsc2VuZFBhcmVudDpndCxzZW5kVXBkYXRlOm10LGxvZzpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10JiYodD1TdCkse3R5cGU6bnQsbGFiZWw6ZSxleHByOnR9fSxjYW5jZWw6eHQsc3RhcnQ6d3Qsc3RvcDpidCxhc3NpZ246X3QsYWZ0ZXI6RXQsZG9uZTpUdCxyZXNwb25kOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHl0KHQsZShlKHt9LG4pLHt0bzpmdW5jdGlvbih0LGUsbil7cmV0dXJuIG4uX2V2ZW50Lm9yaWdpbn19KSl9LGZvcndhcmRUbzpPdCxlc2NhbGF0ZTpmdW5jdGlvbihuLHIpe3JldHVybiBndCgoZnVuY3Rpb24odCxlLHIpe3JldHVybnt0eXBlOmF0LGRhdGE6TihuKT9uKHQsZSxyKTpufX0pLGUoZSh7fSxyKSx7dG86dC5TcGVjaWFsVGFyZ2V0cy5QYXJlbnR9KSl9LGNob29zZTpmdW5jdGlvbihlKXtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLkNob29zZSxjb25kczplfX0scHVyZTpmdW5jdGlvbihlKXtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLlB1cmUsZ2V0OmV9fX07dC5JbnRlcnByZXRlcj1adCx0Lk1hY2hpbmU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj10LmNvbnRleHQpLG5ldyB6dCh0LGUsbil9LHQuU3RhdGU9a3QsdC5TdGF0ZU5vZGU9enQsdC5hY3Rpb25zPWVlLHQuYXNzaWduPV90LHQuY3JlYXRlTWFjaGluZT1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgenQodCxlKX0sdC5jcmVhdGVTY2hlbWE9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LHQuZG9uZUludm9rZT1OdCx0LmZvcndhcmRUbz1PdCx0LmludGVycHJldD10ZSx0Lm1hcFN0YXRlPWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxvO3RyeXtmb3IodmFyIGE9cihzKHQpKSx1PWEubmV4dCgpOyF1LmRvbmU7dT1hLm5leHQoKSl7dmFyIGg9dS52YWx1ZTtjKGgsZSkmJighb3x8ZS5sZW5ndGg+by5sZW5ndGgpJiYobz1oKX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7dSYmIXUuZG9uZSYmKGk9YS5yZXR1cm4pJiZpLmNhbGwoYSl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXJldHVybiB0W29dfSx0Lm1hdGNoU3RhdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBvLGEscz1rdC5mcm9tKHQsdCBpbnN0YW5jZW9mIGt0P3QuY29udGV4dDp2b2lkIDApO3RyeXtmb3IodmFyIGM9cihlKSx1PWMubmV4dCgpOyF1LmRvbmU7dT1jLm5leHQoKSl7dmFyIGg9aSh1LnZhbHVlLDIpLGY9aFswXSxsPWhbMV07aWYocy5tYXRjaGVzKGYpKXJldHVybiBsKHMpfX1jYXRjaCh0KXtvPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt1JiYhdS5kb25lJiYoYT1jLnJldHVybikmJmEuY2FsbChjKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIG4ocyl9LHQubWF0Y2hlc1N0YXRlPWMsdC5zZW5kPXl0LHQuc2VuZFBhcmVudD1ndCx0LnNlbmRVcGRhdGU9bXQsdC5zcGF3bj1mdW5jdGlvbih0LG4pe3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiBBKHQpP2UoZSh7fSxZdCkse25hbWU6dH0pOmUoZShlKHt9LFl0KSx7bmFtZTpDKCl9KSx0KX0obik7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlP2Uuc3Bhd24odCxyLm5hbWUscik6VnQodCxyLm5hbWUpfShJdFtJdC5sZW5ndGgtMV0pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0pKTtcbiJdfQ==
//------QC-SOURCE-SPLIT------