"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); var echarts = require("../../../../../../components/ec-canvas/echarts.js"); var echarts_1 = require("../../../../utils/echarts"); var partyInteract_1 = require("../../../../../../api/partyInteract"); Component({ properties: { deptid: { type: String } }, data: { ecA: { lazyLoad: true }, showTimePicker: false, someMonthsType: 1, timeList: [ { time: '最近一个月', id: 1 }, { time: '最近三个月', id: 2 }, { time: '最近六个月', id: 3 }, { time: '最近一年', id: 4 } ], visible: false, data1: [], data2: [], data3: [], data4: [], xData: [], data1Total: [], data2Total: [], data3Total: [], data4Total: [], xDataTotal: [] }, lifetimes: { attached: function () { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: this.ecComponentA = this.selectComponent('#mychart-participation'); return [4, this.getPartyDynamicTrend()]; case 1: _a.sent(); this.initA(); return [2]; } }); }); } }, observers: { deptid: function (newValue, oldvalue) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: console.log('newValue', newValue); console.log('oldvalue', oldvalue); if (!(newValue.length !== 0)) return [3, 3]; return [4, this.getPartyDynamicTrend()]; case 1: _a.sent(); if (this.data.someMonthsType == 2) { this.setData({ data1: this.data.data1Total.slice(0, 4), data2: this.data.data2Total.slice(0, 4), data3: this.data.data3Total.slice(0, 4), data4: this.data.data4Total.slice(0, 4), xData: this.data.xDataTotal.slice(0, 4) }); } else if (this.data.someMonthsType == 3) { this.setData({ data1: this.data.data1Total.slice(0, 3), data2: this.data.data2Total.slice(0, 3), data3: this.data.data3Total.slice(0, 3), data4: this.data.data4Total.slice(0, 3), xData: this.data.xDataTotal.slice(0, 3) }); } else if (this.data.someMonthsType == 4) { this.setData({ data1: this.data.data1Total.slice(0, 4), data2: this.data.data2Total.slice(0, 4), data3: this.data.data3Total.slice(0, 4), data4: this.data.data4Total.slice(0, 4), xData: this.data.xDataTotal.slice(0, 4) }); } return [4, this.initA()]; case 2: _a.sent(); _a.label = 3; case 3: return [2]; } }); }); }, }, methods: { chooseTimePicker: function () { this.setData({ showTimePicker: !this.data.showTimePicker }); }, onTimeChange: function (e) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: this.setData({ someMonthsType: e.currentTarget.dataset.time, showTimePicker: false, }); return [4, this.getPartyDynamicTrend()]; case 1: _a.sent(); if (e.currentTarget.dataset.time == 2) { this.setData({ data1: this.data.data1Total.slice(0, 4), data2: this.data.data2Total.slice(0, 4), data3: this.data.data3Total.slice(0, 4), data4: this.data.data4Total.slice(0, 4), xData: this.data.xDataTotal.slice(0, 4) }); } else if (e.currentTarget.dataset.time == 3) { this.setData({ data1: this.data.data1Total.slice(0, 3), data2: this.data.data2Total.slice(0, 3), data3: this.data.data3Total.slice(0, 3), data4: this.data.data4Total.slice(0, 3), xData: this.data.xDataTotal.slice(0, 3) }); } else if (e.currentTarget.dataset.time == 4) { this.setData({ data1: this.data.data1Total.slice(0, 4), data2: this.data.data2Total.slice(0, 4), data3: this.data.data3Total.slice(0, 4), data4: this.data.data4Total.slice(0, 4), xData: this.data.xDataTotal.slice(0, 4) }); } return [4, this.initA()]; case 2: _a.sent(); return [2]; } }); }); }, initA: function () { var _this = this; this.ecComponentA.init(function (canvas, width, height) { var chart = echarts.init(canvas, null, { width: width, height: height }); echarts_1.getparticipation(chart, _this.data.data1, _this.data.data2, _this.data.data3, _this.data.data4, _this.data.xData); return chart; }); }, hide: function () { this.setData({ visible: false, }); }, onChange: function (e) { this.setData({ visible: e.detail.visible, }); }, getPartyDynamicTrend: function () { return __awaiter(this, void 0, void 0, function () { var obj, res, data1_1, data2_1, data3_1, data4_1, xData_1, err_1; return __generator(this, function (_a) { switch (_a.label) { case 0: obj = { deptId: this.properties.deptid, someMonthsType: this.data.someMonthsType }; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4, partyInteract_1.getPartyDynamicTrend(obj)]; case 2: res = _a.sent(); data1_1 = []; data2_1 = []; data3_1 = []; data4_1 = []; xData_1 = []; res.data.list.forEach(function (element) { data1_1.unshift(element.partyTotal); data2_1.unshift(element.partyDynamicTotal); data3_1.unshift(element.residentTotal); data4_1.unshift(element.residentDynamicTotal); xData_1.unshift(element.timeName); }); this.setData({ data1: data1_1, data2: data2_1, data3: data3_1, data4: data4_1, xData: xData_1, }); this.setData({ data1Total: data1_1, data2Total: data2_1, data3Total: data3_1, data4Total: data4_1, xDataTotal: xData_1 }); return [3, 4]; case 3: err_1 = _a.sent(); console.log(err_1); return [3, 4]; case 4: return [2]; } }); }); }, toLeft: function () { if (this.data.someMonthsType == 2) { if (this.data.xData[0] == '第5周') { this.setData({ data1: this.data.data1Total.slice(0, 4), data2: this.data.data2Total.slice(0, 4), data3: this.data.data3Total.slice(0, 4), data4: this.data.data4Total.slice(0, 4), xData: this.data.xDataTotal.slice(0, 4) }); } else if (this.data.xData[0] == '第9周') { this.setData({ data1: this.data.data1Total.slice(4, 8), data2: this.data.data2Total.slice(4, 8), data3: this.data.data3Total.slice(4, 8), data4: this.data.data4Total.slice(4, 8), xData: this.data.xDataTotal.slice(4, 8) }); } } else if (this.data.someMonthsType == 3) { if (this.data.xData[0] == '第4个月') { this.setData({ data1: this.data.data1Total.slice(0, 3), data2: this.data.data2Total.slice(0, 3), data3: this.data.data3Total.slice(0, 3), data4: this.data.data4Total.slice(0, 3), xData: this.data.xDataTotal.slice(0, 3) }); } } else if (this.data.someMonthsType == 4) { if (this.data.xData[0] == '第5个月') { this.setData({ data1: this.data.data1Total.slice(0, 4), data2: this.data.data2Total.slice(0, 4), data3: this.data.data3Total.slice(0, 4), data4: this.data.data4Total.slice(0, 4), xData: this.data.xDataTotal.slice(0, 4) }); } else if (this.data.xData[0] == '第9个月') { this.setData({ data1: this.data.data1Total.slice(4, 8), data2: this.data.data2Total.slice(4, 8), data3: this.data.data3Total.slice(4, 8), data4: this.data.data4Total.slice(4, 8), xData: this.data.xDataTotal.slice(4, 8) }); } } this.initA(); }, toRight: function () { if (this.data.someMonthsType == 2) { if (this.data.xData[0] == '第1周') { this.setData({ data1: this.data.data1Total.slice(4, 8), data2: this.data.data2Total.slice(4, 8), data3: this.data.data3Total.slice(4, 8), data4: this.data.data4Total.slice(4, 8), xData: this.data.xDataTotal.slice(4, 8) }); } else if (this.data.xData[0] == '第5周') { this.setData({ data1: this.data.data1Total.slice(8, 12), data2: this.data.data2Total.slice(8, 12), data3: this.data.data3Total.slice(8, 12), data4: this.data.data4Total.slice(8, 12), xData: this.data.xDataTotal.slice(8, 12) }); } } else if (this.data.someMonthsType == 3) { if (this.data.xData[0] == '第1个月') { this.setData({ data1: this.data.data1Total.slice(3, 6), data2: this.data.data2Total.slice(3, 6), data3: this.data.data3Total.slice(3, 6), data4: this.data.data4Total.slice(3, 6), xData: this.data.xDataTotal.slice(3, 6) }); } } else if (this.data.someMonthsType == 4) { if (this.data.xData[0] == '第1个月') { this.setData({ data1: this.data.data1Total.slice(4, 8), data2: this.data.data2Total.slice(4, 8), data3: this.data.data3Total.slice(4, 8), data4: this.data.data4Total.slice(4, 8), xData: this.data.xDataTotal.slice(4, 8) }); } else if (this.data.xData[0] == '第5个月') { this.setData({ data1: this.data.data1Total.slice(8, 12), data2: this.data.data2Total.slice(8, 12), data3: this.data.data3Total.slice(8, 12), data4: this.data.data4Total.slice(8, 12), xData: this.data.xDataTotal.slice(8, 12) }); } } this.initA(); }, } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljaXBhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBhcnRpY2lwYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSwyRUFBNEU7QUFDNUUscURBQTREO0FBQzVELHFFQUEwRTtBQUMxRSxTQUFTLENBQUM7SUFDUixVQUFVLEVBQUU7UUFDVixNQUFNLEVBQUU7WUFDTixJQUFJLEVBQUUsTUFBTTtTQUNiO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixHQUFHLEVBQUU7WUFDSCxRQUFRLEVBQUUsSUFBSTtTQUNmO1FBQ0QsY0FBYyxFQUFFLEtBQUs7UUFDckIsY0FBYyxFQUFFLENBQUM7UUFDakIsUUFBUSxFQUFFO1lBQ1IsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDeEIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDeEIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDeEIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7U0FBQztRQUMxQixPQUFPLEVBQUUsS0FBSztRQUNkLEtBQUssRUFBRSxFQUFFO1FBQ1QsS0FBSyxFQUFFLEVBQUU7UUFDVCxLQUFLLEVBQUUsRUFBRTtRQUNULEtBQUssRUFBRSxFQUFFO1FBQ1QsS0FBSyxFQUFFLEVBQUU7UUFDVCxVQUFVLEVBQUUsRUFBRTtRQUNkLFVBQVUsRUFBRSxFQUFFO1FBQ2QsVUFBVSxFQUFFLEVBQUU7UUFDZCxVQUFVLEVBQUUsRUFBRTtRQUNkLFVBQVUsRUFBRSxFQUFFO0tBQ2Y7SUFDRCxTQUFTLEVBQUU7UUFDSCxRQUFROzs7Ozs0QkFFWixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsQ0FBQTs0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Q3hDLENBQUMsQ0FBQTs2QkFDSDtpQ0FBTSxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUU7Z0NBRTVDLElBQUksQ0FBQyxPQUFPLENBQUM7b0NBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29DQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0NBQ3ZDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQ0FDdkMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29DQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7aUNBQ3hDLENBQUMsQ0FBQTs2QkFDSDtpQ0FBTSxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUU7Z0NBRTVDLElBQUksQ0FBQyxPQUFPLENBQUM7b0NBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29DQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0NBQ3ZDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQ0FDdkMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUs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SyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3ZDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDdkMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQ3hDLENBQUMsQ0FBQTtpQkFDSDtxQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sRUFBRTtvQkFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQzt3QkFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3ZDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDdkMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3ZDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDeEMsQ0FBQyxDQUFBO2lCQUNIO2FB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LE9BQU8sQ0FBQzt3QkFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3ZDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDdkMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3ZDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDeEMsQ0FBQyxDQUFBO2lCQUNIO3FCQUFNLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxFQUFFO29CQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDO3dCQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQzt3QkFDeEMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO3dCQUN4QyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7d0JBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQzt3QkFDeEMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO3FCQUN6QyxDQUFDLENBQUE7aUJBQ0g7YUFDRjtZQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNkLENBQUM7S0FDRjtDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHN1YnBhZ2VzL3BhcnR5SW50ZXJhY3QvcGFnZXMvcGFydHlJbnRlcmFjdEluZGV4L2NvbXBvbmVudHMvcGFydGljaXBhdGlvblN0YXR1cy9wYXJ0aWNpcGF0aW9uU3RhdHVzLmpzXHJcbi8vIEB0cy1pZ25vcmVcclxuaW1wb3J0ICogYXMgZWNoYXJ0cyBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL2VjLWNhbnZhcy9lY2hhcnRzLmpzJ1xyXG5pbXBvcnQgeyBnZXRwYXJ0aWNpcGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvZWNoYXJ0cydcclxuaW1wb3J0IHsgZ2V0UGFydHlEeW5hbWljVHJlbmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9hcGkvcGFydHlJbnRlcmFjdCdcclxuQ29tcG9uZW50KHtcclxuICBwcm9wZXJ0aWVzOiB7XHJcbiAgICBkZXB0aWQ6IHtcclxuICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9XHJcbiAgfSxcclxuICBkYXRhOiB7XHJcbiAgICBlY0E6IHtcclxuICAgICAgbGF6eUxvYWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBzaG93VGltZVBpY2tlcjogZmFsc2UsXHJcbiAgICBzb21lTW9udGhzVHlwZTogMSxcclxuICAgIHRpbWVMaXN0OiBbXHJcbiAgICAgIHsgdGltZTogJ+acgOi/keS4gOS4quaciCcsIGlkOiAxIH0sXHJcbiAgICAgIHsgdGltZTogJ+acgOi/keS4ieS4quaciCcsIGlkOiAyIH0sXHJcbiAgICAgIHsgdGltZTogJ+acgOi/keWFreS4quaciCcsIGlkOiAzIH0sXHJcbiAgICAgIHsgdGltZTogJ+acgOi/keS4gOW5tCcsIGlkOiA0IH1dLFxyXG4gICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICBkYXRhMTogW10sLy/lhZrlkZgwLCAwLCAwLCAxMDBcclxuICAgIGRhdGEyOiBbXSwvL+WFmuWRmOWPguS4jjksIDMwLCA5LCA0MFxyXG4gICAgZGF0YTM6IFtdLC8v5bGF5rCRMjAsIDMwLCAyMCwgMzBcclxuICAgIGRhdGE0OiBbXSwvL+WxheawkeWPguS4jjksIDMwLCA5LCA0MFxyXG4gICAgeERhdGE6IFtdLC8vJ+esrOS4gOWRqCcsICfnrKzkuozlkagnLCAn56ys5LiJ5ZGoJywgJ+esrOWbm+WRqCdcclxuICAgIGRhdGExVG90YWw6IFtdLFxyXG4gICAgZGF0YTJUb3RhbDogW10sXHJcbiAgICBkYXRhM1RvdGFsOiBbXSxcclxuICAgIGRhdGE0VG90YWw6IFtdLFxyXG4gICAgeERhdGFUb3RhbDogW11cclxuICB9LFxyXG4gIGxpZmV0aW1lczoge1xyXG4gICAgYXN5bmMgYXR0YWNoZWQoKSB7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgdGhpcy5lY0NvbXBvbmVudEEgPSB0aGlzLnNlbGVjdENvbXBvbmVudCgnI215Y2hhcnQtcGFydGljaXBhdGlvbicpXHJcbiAgICAgIGF3YWl0IHRoaXMuZ2V0UGFydHlEeW5hbWljVHJlbmQoKVxyXG4gICAgICB0aGlzLmluaXRBKClcclxuICAgIH1cclxuICB9LFxyXG4gIG9ic2VydmVyczoge1xyXG4gICAgYXN5bmMgZGVwdGlkKG5ld1ZhbHVlLCBvbGR2YWx1ZSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnbmV3VmFsdWUnLG5ld1ZhbHVlKVxyXG4gICAgICBjb25zb2xlLmxvZygnb2xkdmFsdWUnLG9sZHZhbHVlKVxyXG4gICAgICBpZiAobmV3VmFsdWUubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRQYXJ0eUR5bmFtaWNUcmVuZCgpXHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YS5zb21lTW9udGhzVHlwZSA9PSAyKSB7XHJcbiAgICAgICAgICAvLyAvLyDmnIDov5HkuInkuKrmnIhcclxuICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICAgIGRhdGExOiB0aGlzLmRhdGEuZGF0YTFUb3RhbC5zbGljZSgwLCA0KSxcclxuICAgICAgICAgICAgZGF0YTI6IHRoaXMuZGF0YS5kYXRhMlRvdGFsLnNsaWNlKDAsIDQpLFxyXG4gICAgICAgICAgICBkYXRhMzogdGhpcy5kYXRhLmRhdGEzVG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICAgIGRhdGE0OiB0aGlzLmRhdGEuZGF0YTRUb3RhbC5zbGljZSgwLCA0KSxcclxuICAgICAgICAgICAgeERhdGE6IHRoaXMuZGF0YS54RGF0YVRvdGFsLnNsaWNlKDAsIDQpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLnNvbWVNb250aHNUeXBlID09IDMpIHtcclxuICAgICAgICAgIC8vIOacgOi/keWFreS4quaciFxyXG4gICAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgICAgZGF0YTE6IHRoaXMuZGF0YS5kYXRhMVRvdGFsLnNsaWNlKDAsIDMpLFxyXG4gICAgICAgICAgICBkYXRhMjogdGhpcy5kYXRhLmRhdGEyVG90YWwuc2xpY2UoMCwgMyksXHJcbiAgICAgICAgICAgIGRhdGEzOiB0aGlzLmRhdGEuZGF0YTNUb3RhbC5zbGljZSgwLCAzKSxcclxuICAgICAgICAgICAgZGF0YTQ6IHRoaXMuZGF0YS5kYXRhNFRvdGFsLnNsaWNlKDAsIDMpLFxyXG4gICAgICAgICAgICB4RGF0YTogdGhpcy5kYXRhLnhEYXRhVG90YWwuc2xpY2UoMCwgMylcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGEuc29tZU1vbnRoc1R5cGUgPT0gNCkge1xyXG4gICAgICAgICAgLy8g5pyA6L+R5LiA5bm0XHJcbiAgICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgICBkYXRhMTogdGhpcy5kYXRhLmRhdGExVG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICAgIGRhdGEyOiB0aGlzLmRhdGEuZGF0YTJUb3RhbC5zbGljZSgwLCA0KSxcclxuICAgICAgICAgICAgZGF0YTM6IHRoaXMuZGF0YS5kYXRhM1RvdGFsLnNsaWNlKDAsIDQpLFxyXG4gICAgICAgICAgICBkYXRhNDogdGhpcy5kYXRhLmRhdGE0VG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICAgIHhEYXRhOiB0aGlzLmRhdGEueERhdGFUb3RhbC5zbGljZSgwLCA0KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0QSgpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgLy8g5pi+56S66ZqQ6JeP5pe26Ze06YCJ5oup5qGGXHJcbiAgICBjaG9vc2VUaW1lUGlja2VyKCkge1xyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIHNob3dUaW1lUGlja2VyOiAhdGhpcy5kYXRhLnNob3dUaW1lUGlja2VyXHJcbiAgICAgIH0pXHJcbiAgICB9LFxyXG4gICAgLy8g6YCJ5oup5pe26Ze0XHJcbiAgICBhc3luYyBvblRpbWVDaGFuZ2UoZTogYW55KSB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdzb21lTW9udGhzVHlwZScsIGUuY3VycmVudFRhcmdldC5kYXRhc2V0LnRpbWUpXHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgc29tZU1vbnRoc1R5cGU6IGUuY3VycmVudFRhcmdldC5kYXRhc2V0LnRpbWUsXHJcbiAgICAgICAgc2hvd1RpbWVQaWNrZXI6IGZhbHNlLFxyXG4gICAgICB9KVxyXG4gICAgICBhd2FpdCB0aGlzLmdldFBhcnR5RHluYW1pY1RyZW5kKClcclxuICAgICAgaWYgKGUuY3VycmVudFRhcmdldC5kYXRhc2V0LnRpbWUgPT0gMikge1xyXG4gICAgICAgIC8vIC8vIOacgOi/keS4ieS4quaciFxyXG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICBkYXRhMTogdGhpcy5kYXRhLmRhdGExVG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICBkYXRhMjogdGhpcy5kYXRhLmRhdGEyVG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICBkYXRhMzogdGhpcy5kYXRhLmRhdGEzVG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICBkYXRhNDogdGhpcy5kYXRhLmRhdGE0VG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICB4RGF0YTogdGhpcy5kYXRhLnhEYXRhVG90YWwuc2xpY2UoMCwgNClcclxuICAgICAgICB9KVxyXG4gICAgICB9IGVsc2UgaWYgKGUuY3VycmVudFRhcmdldC5kYXRhc2V0LnRpbWUgPT0gMykge1xyXG4gICAgICAgIC8vIOacgOi/keWFreS4quaciFxyXG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICBkYXRhMTogdGhpcy5kYXRhLmRhdGExVG90YWwuc2xpY2UoMCwgMyksXHJcbiAgICAgICAgICBkYXRhMjogdGhpcy5kYXRhLmRhdGEyVG90YWwuc2xpY2UoMCwgMyksXHJcbiAgICAgICAgICBkYXRhMzogdGhpcy5kYXRhLmRhdGEzVG90YWwuc2xpY2UoMCwgMyksXHJcbiAgICAgICAgICBkYXRhNDogdGhpcy5kYXRhLmRhdGE0VG90YWwuc2xpY2UoMCwgMyksXHJcbiAgICAgICAgICB4RGF0YTogdGhpcy5kYXRhLnhEYXRhVG90YWwuc2xpY2UoMCwgMylcclxuICAgICAgICB9KVxyXG4gICAgICB9IGVsc2UgaWYgKGUuY3VycmVudFRhcmdldC5kYXRhc2V0LnRpbWUgPT0gNCkge1xyXG4gICAgICAgIC8vIOacgOi/keS4gOW5tFxyXG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICBkYXRhMTogdGhpcy5kYXRhLmRhdGExVG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICBkYXRhMjogdGhpcy5kYXRhLmRhdGEyVG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICBkYXRhMzogdGhpcy5kYXRhLmRhdGEzVG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICBkYXRhNDogdGhpcy5kYXRhLmRhdGE0VG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICB4RGF0YTogdGhpcy5kYXRhLnhEYXRhVG90YWwuc2xpY2UoMCwgNClcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcblxyXG4gICAgICBhd2FpdCB0aGlzLmluaXRBKClcclxuXHJcbiAgICB9LFxyXG4gICAgaW5pdEEoKSB7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgdGhpcy5lY0NvbXBvbmVudEEuaW5pdCgoY2FudmFzOiBhbnksIHdpZHRoOiBhbnksIGhlaWdodDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2hhcnQgPSBlY2hhcnRzLmluaXQoY2FudmFzLCBudWxsLCB7XHJcbiAgICAgICAgICB3aWR0aDogd2lkdGgsXHJcbiAgICAgICAgICBoZWlnaHQ6IGhlaWdodFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgZ2V0cGFydGljaXBhdGlvbihjaGFydCwgdGhpcy5kYXRhLmRhdGExLCB0aGlzLmRhdGEuZGF0YTIsIHRoaXMuZGF0YS5kYXRhMywgdGhpcy5kYXRhLmRhdGE0LCB0aGlzLmRhdGEueERhdGEpXHJcbiAgICAgICAgcmV0dXJuIGNoYXJ0XHJcbiAgICAgIH0pXHJcbiAgICB9LFxyXG4gICAgaGlkZSgpIHtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgICAgfSlcclxuICAgIH0sXHJcbiAgICBvbkNoYW5nZShlOiBhbnkpIHtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICB2aXNpYmxlOiBlLmRldGFpbC52aXNpYmxlLFxyXG4gICAgICB9KVxyXG4gICAgfSxcclxuICAgIGFzeW5jIGdldFBhcnR5RHluYW1pY1RyZW5kKCkge1xyXG4gICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgIGRlcHRJZDogdGhpcy5wcm9wZXJ0aWVzLmRlcHRpZCxcclxuICAgICAgICBzb21lTW9udGhzVHlwZTogdGhpcy5kYXRhLnNvbWVNb250aHNUeXBlXHJcbiAgICAgIH1cclxuICAgICAgdHJ5IHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgbGV0IHJlczogYW55ID0gYXdhaXQgZ2V0UGFydHlEeW5hbWljVHJlbmQob2JqKVxyXG4gICAgICAgIGxldCBkYXRhMTogYW55ID0gW11cclxuICAgICAgICBsZXQgZGF0YTI6IGFueSA9IFtdXHJcbiAgICAgICAgbGV0IGRhdGEzOiBhbnkgPSBbXVxyXG4gICAgICAgIGxldCBkYXRhNDogYW55ID0gW11cclxuICAgICAgICBsZXQgeERhdGE6IGFueSA9IFtdXHJcbiAgICAgICAgcmVzLmRhdGEubGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIGRhdGExLnVuc2hpZnQoZWxlbWVudC5wYXJ0eVRvdGFsKVxyXG4gICAgICAgICAgZGF0YTIudW5zaGlmdChlbGVtZW50LnBhcnR5RHluYW1pY1RvdGFsKVxyXG4gICAgICAgICAgZGF0YTMudW5zaGlmdChlbGVtZW50LnJlc2lkZW50VG90YWwpXHJcbiAgICAgICAgICBkYXRhNC51bnNoaWZ0KGVsZW1lbnQucmVzaWRlbnREeW5hbWljVG90YWwpXHJcbiAgICAgICAgICB4RGF0YS51bnNoaWZ0KGVsZW1lbnQudGltZU5hbWUpXHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgZGF0YTE6IGRhdGExLFxyXG4gICAgICAgICAgZGF0YTI6IGRhdGEyLFxyXG4gICAgICAgICAgZGF0YTM6IGRhdGEzLFxyXG4gICAgICAgICAgZGF0YTQ6IGRhdGE0LFxyXG4gICAgICAgICAgeERhdGE6IHhEYXRhLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgIGRhdGExVG90YWw6IGRhdGExLFxyXG4gICAgICAgICAgZGF0YTJUb3RhbDogZGF0YTIsXHJcbiAgICAgICAgICBkYXRhM1RvdGFsOiBkYXRhMyxcclxuICAgICAgICAgIGRhdGE0VG90YWw6IGRhdGE0LFxyXG4gICAgICAgICAgeERhdGFUb3RhbDogeERhdGFcclxuICAgICAgICB9KVxyXG4gICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpXHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfSxcclxuICAgIHRvTGVmdCgpIHtcclxuICAgICAgLy8gM+S4quaciFxyXG4gICAgICBpZiAodGhpcy5kYXRhLnNvbWVNb250aHNUeXBlID09IDIpIHtcclxuICAgICAgICBpZiAodGhpcy5kYXRhLnhEYXRhWzBdID09ICfnrKw15ZGoJykge1xyXG4gICAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgICAgZGF0YTE6IHRoaXMuZGF0YS5kYXRhMVRvdGFsLnNsaWNlKDAsIDQpLFxyXG4gICAgICAgICAgICBkYXRhMjogdGhpcy5kYXRhLmRhdGEyVG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICAgIGRhdGEzOiB0aGlzLmRhdGEuZGF0YTNUb3RhbC5zbGljZSgwLCA0KSxcclxuICAgICAgICAgICAgZGF0YTQ6IHRoaXMuZGF0YS5kYXRhNFRvdGFsLnNsaWNlKDAsIDQpLFxyXG4gICAgICAgICAgICB4RGF0YTogdGhpcy5kYXRhLnhEYXRhVG90YWwuc2xpY2UoMCwgNClcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGEueERhdGFbMF0gPT0gJ+esrDnlkagnKSB7XHJcbiAgICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgICBkYXRhMTogdGhpcy5kYXRhLmRhdGExVG90YWwuc2xpY2UoNCwgOCksXHJcbiAgICAgICAgICAgIGRhdGEyOiB0aGlzLmRhdGEuZGF0YTJUb3RhbC5zbGljZSg0LCA4KSxcclxuICAgICAgICAgICAgZGF0YTM6IHRoaXMuZGF0YS5kYXRhM1RvdGFsLnNsaWNlKDQsIDgpLFxyXG4gICAgICAgICAgICBkYXRhNDogdGhpcy5kYXRhLmRhdGE0VG90YWwuc2xpY2UoNCwgOCksXHJcbiAgICAgICAgICAgIHhEYXRhOiB0aGlzLmRhdGEueERhdGFUb3RhbC5zbGljZSg0LCA4KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLnNvbWVNb250aHNUeXBlID09IDMpIHtcclxuICAgICAgICAvLyDmnIDov5E25Liq5pyIXHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YS54RGF0YVswXSA9PSAn56ysNOS4quaciCcpIHtcclxuICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICAgIGRhdGExOiB0aGlzLmRhdGEuZGF0YTFUb3RhbC5zbGljZSgwLCAzKSxcclxuICAgICAgICAgICAgZGF0YTI6IHRoaXMuZGF0YS5kYXRhMlRvdGFsLnNsaWNlKDAsIDMpLFxyXG4gICAgICAgICAgICBkYXRhMzogdGhpcy5kYXRhLmRhdGEzVG90YWwuc2xpY2UoMCwgMyksXHJcbiAgICAgICAgICAgIGRhdGE0OiB0aGlzLmRhdGEuZGF0YTRUb3RhbC5zbGljZSgwLCAzKSxcclxuICAgICAgICAgICAgeERhdGE6IHRoaXMuZGF0YS54RGF0YVRvdGFsLnNsaWNlKDAsIDMpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGEuc29tZU1vbnRoc1R5cGUgPT0gNCkge1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGEueERhdGFbMF0gPT0gJ+esrDXkuKrmnIgnKSB7XHJcbiAgICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgICBkYXRhMTogdGhpcy5kYXRhLmRhdGExVG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICAgIGRhdGEyOiB0aGlzLmRhdGEuZGF0YTJUb3RhbC5zbGljZSgwLCA0KSxcclxuICAgICAgICAgICAgZGF0YTM6IHRoaXMuZGF0YS5kYXRhM1RvdGFsLnNsaWNlKDAsIDQpLFxyXG4gICAgICAgICAgICBkYXRhNDogdGhpcy5kYXRhLmRhdGE0VG90YWwuc2xpY2UoMCwgNCksXHJcbiAgICAgICAgICAgIHhEYXRhOiB0aGlzLmRhdGEueERhdGFUb3RhbC5zbGljZSgwLCA0KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YS54RGF0YVswXSA9PSAn56ysOeS4quaciCcpIHtcclxuICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICAgIGRhdGExOiB0aGlzLmRhdGEuZGF0YTFUb3RhbC5zbGljZSg0LCA4KSxcclxuICAgICAgICAgICAgZGF0YTI6IHRoaXMuZGF0YS5kYXRhMlRvdGFsLnNsaWNlKDQsIDgpLFxyXG4gICAgICAgICAgICBkYXRhMzogdGhpcy5kYXRhLmRhdGEzVG90YWwuc2xpY2UoNCwgOCksXHJcbiAgICAgICAgICAgIGRhdGE0OiB0aGlzLmRhdGEuZGF0YTRUb3RhbC5zbGljZSg0LCA4KSxcclxuICAgICAgICAgICAgeERhdGE6IHRoaXMuZGF0YS54RGF0YVRvdGFsLnNsaWNlKDQsIDgpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5pbml0QSgpXHJcbiAgICB9LFxyXG4gICAgdG9SaWdodCgpIHtcclxuICAgICAgLy8gM+S4quaciFxyXG4gICAgICBpZiAodGhpcy5kYXRhLnNvbWVNb250aHNUeXBlID09IDIpIHtcclxuICAgICAgICBpZiAodGhpcy5kYXRhLnhEYXRhWzBdID09ICfnrKwx5ZGoJykge1xyXG4gICAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgICAgZGF0YTE6IHRoaXMuZGF0YS5kYXRhMVRvdGFsLnNsaWNlKDQsIDgpLFxyXG4gICAgICAgICAgICBkYXRhMjogdGhpcy5kYXRhLmRhdGEyVG90YWwuc2xpY2UoNCwgOCksXHJcbiAgICAgICAgICAgIGRhdGEzOiB0aGlzLmRhdGEuZGF0YTNUb3RhbC5zbGljZSg0LCA4KSxcclxuICAgICAgICAgICAgZGF0YTQ6IHRoaXMuZGF0YS5kYXRhNFRvdGFsLnNsaWNlKDQsIDgpLFxyXG4gICAgICAgICAgICB4RGF0YTogdGhpcy5kYXRhLnhEYXRhVG90YWwuc2xpY2UoNCwgOClcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGEueERhdGFbMF0gPT0gJ+esrDXlkagnKSB7XHJcbiAgICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgICBkYXRhMTogdGhpcy5kYXRhLmRhdGExVG90YWwuc2xpY2UoOCwgMTIpLFxyXG4gICAgICAgICAgICBkYXRhMjogdGhpcy5kYXRhLmRhdGEyVG90YWwuc2xpY2UoOCwgMTIpLFxyXG4gICAgICAgICAgICBkYXRhMzogdGhpcy5kYXRhLmRhdGEzVG90YWwuc2xpY2UoOCwgMTIpLFxyXG4gICAgICAgICAgICBkYXRhNDogdGhpcy5kYXRhLmRhdGE0VG90YWwuc2xpY2UoOCwgMTIpLFxyXG4gICAgICAgICAgICB4RGF0YTogdGhpcy5kYXRhLnhEYXRhVG90YWwuc2xpY2UoOCwgMTIpXHJcbiAgICAgICAgICB9KVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLnNvbWVNb250aHNUeXBlID09IDMpIHtcclxuICAgICAgICAvLyDmnIDov5E25Liq5pyIXHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YS54RGF0YVswXSA9PSAn56ysMeS4quaciCcpIHtcclxuICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICAgIGRhdGExOiB0aGlzLmRhdGEuZGF0YTFUb3RhbC5zbGljZSgzLCA2KSxcclxuICAgICAgICAgICAgZGF0YTI6IHRoaXMuZGF0YS5kYXRhMlRvdGFsLnNsaWNlKDMsIDYpLFxyXG4gICAgICAgICAgICBkYXRhMzogdGhpcy5kYXRhLmRhdGEzVG90YWwuc2xpY2UoMywgNiksXHJcbiAgICAgICAgICAgIGRhdGE0OiB0aGlzLmRhdGEuZGF0YTRUb3RhbC5zbGljZSgzLCA2KSxcclxuICAgICAgICAgICAgeERhdGE6IHRoaXMuZGF0YS54RGF0YVRvdGFsLnNsaWNlKDMsIDYpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGEuc29tZU1vbnRoc1R5cGUgPT0gNCkge1xyXG4gICAgICAgIC8vIDHlubRcclxuICAgICAgICBpZiAodGhpcy5kYXRhLnhEYXRhWzBdID09ICfnrKwx5Liq5pyIJykge1xyXG4gICAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgICAgZGF0YTE6IHRoaXMuZGF0YS5kYXRhMVRvdGFsLnNsaWNlKDQsIDgpLFxyXG4gICAgICAgICAgICBkYXRhMjogdGhpcy5kYXRhLmRhdGEyVG90YWwuc2xpY2UoNCwgOCksXHJcbiAgICAgICAgICAgIGRhdGEzOiB0aGlzLmRhdGEuZGF0YTNUb3RhbC5zbGljZSg0LCA4KSxcclxuICAgICAgICAgICAgZGF0YTQ6IHRoaXMuZGF0YS5kYXRhNFRvdGFsLnNsaWNlKDQsIDgpLFxyXG4gICAgICAgICAgICB4RGF0YTogdGhpcy5kYXRhLnhEYXRhVG90YWwuc2xpY2UoNCwgOClcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGEueERhdGFbMF0gPT0gJ+esrDXkuKrmnIgnKSB7XHJcbiAgICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgICBkYXRhMTogdGhpcy5kYXRhLmRhdGExVG90YWwuc2xpY2UoOCwgMTIpLFxyXG4gICAgICAgICAgICBkYXRhMjogdGhpcy5kYXRhLmRhdGEyVG90YWwuc2xpY2UoOCwgMTIpLFxyXG4gICAgICAgICAgICBkYXRhMzogdGhpcy5kYXRhLmRhdGEzVG90YWwuc2xpY2UoOCwgMTIpLFxyXG4gICAgICAgICAgICBkYXRhNDogdGhpcy5kYXRhLmRhdGE0VG90YWwuc2xpY2UoOCwgMTIpLFxyXG4gICAgICAgICAgICB4RGF0YTogdGhpcy5kYXRhLnhEYXRhVG90YWwuc2xpY2UoOCwgMTIpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmluaXRBKClcclxuICAgIH0sXHJcbiAgfVxyXG59KSJdfQ==