Sanakey
2021-07-09 3fc241d02fb8b671289de3d9d80bf848349c04d4
components/poster-creator/index.js
@@ -74,7 +74,8 @@
        sharePath: '',
        visible: false,
        qrCodeUrl: '',
        isLive: false
        isLive: false,
        isDetail: false
    },
    lifetimes: {
        ready: function () {
@@ -215,8 +216,205 @@
        getImgDraw: function () {
            var _a = this.data, detail = _a.detail, liveRoom = _a.liveRoom, sellerList = _a.sellerList, qrCodeUrl = _a.qrCodeUrl;
            var isLive = this.data.isLive;
            var isDetail = this.data.isDetail;
            var promotionsType = {
                710802: '秒杀价',
                710803: '报名价',
                710804: '团购价',
            };
            console.log(detail, liveRoom, sellerList, qrCodeUrl, isLive);
            var imgDraw = {
            var imgDraw = {};
            var imgDrawPromotions = {
                "width": "750rpx",
                "height": "1196rpx",
                "background": "#fff",
                "views": [
                    {
                        "type": "image",
                        "url": "/assets/images/promotions-poster-bg.jpg",
                        "css": {
                            "width": "750rpx",
                            "height": "1196rpx",
                            "top": "0px",
                            "left": "0px"
                        }
                    },
                    {
                        "type": "image",
                        "url": sellerList[0].sellerWeiXinAvatarUrl || '/assets/images/default-avatar.png',
                        "css": {
                            "width": "100rpx",
                            "height": "100rpx",
                            "top": "22rpx",
                            "left": "36rpx",
                            "borderRadius": "100rpx"
                        }
                    },
                    {
                        "type": "text",
                        "text": sellerList[0].sellerName || '昵称',
                        "css": {
                            "color": "#fff",
                            "top": "34rpx",
                            "left": "160rpx",
                            "fontSize": "32rpx",
                            "fontWeight": "bold",
                            "textAlign": "left"
                        }
                    },
                    {
                        "type": "text",
                        "text": "邀请您参与活动",
                        "css": {
                            "color": "#fff",
                            "top": "80rpx",
                            "left": "160rpx",
                            "fontSize": "28rpx",
                            "textAlign": "left"
                        }
                    },
                    {
                        "type": "image",
                        "url": detail.coverImageUrl[0] || '',
                        "css": {
                            "width": "600rpx",
                            "height": "600rpx",
                            "top": "182rpx",
                            "left": "76rpx",
                            "borderRadius": "10rpx",
                        }
                    },
                    {
                        "type": "text",
                        "text": "¥",
                        "css": {
                            "color": "#f23232",
                            "top": "820rpx",
                            "left": "76rpx",
                            "fontSize": "28rpx",
                            "textAlign": "left"
                        }
                    },
                    {
                        "type": "text",
                        "text": detail.salesPrice || 0,
                        "css": {
                            "color": "#f23232",
                            "top": "808rpx",
                            "left": "108rpx",
                            "fontSize": "44rpx",
                            "fontWeight": "bold",
                            "textAlign": "left"
                        }
                    },
                    {
                        "type": "text",
                        "text": promotionsType[detail.formId] || '',
                        "css": {
                            "color": "#f23232",
                            "background": "rgb(249, 230, 231)",
                            "width": "110rpx",
                            "height": "35rpx",
                            "top": "820rpx",
                            "left": 130 + (detail.salesPrice.toString().length * 25) + "rpx",
                            "borderRadius": "20rpx",
                            "padding": "5rpx",
                            "fontSize": "28rpx",
                            "lineHeight": "35rpx",
                            "textAlign": "center"
                        }
                    },
                    {
                        "type": "text",
                        "text": detail.formId == 710803 ? '' : '价格',
                        "css": {
                            "color": "#999",
                            "top": "884rpx",
                            "left": "84rpx",
                            "fontSize": "28rpx",
                            "textAlign": "left"
                        }
                    },
                    {
                        "type": "text",
                        "text": detail.formId == 710803 ? '' : "\uFFE5" + (detail.originalPrice || 0),
                        "css": {
                            "color": "#999",
                            "top": "885rpx",
                            "left": "150rpx",
                            "fontSize": "24rpx",
                            "textDecoration": "line-through",
                            "textAlign": "left"
                        }
                    },
                    {
                        "type": "text",
                        "text": "限时优惠",
                        "css": {
                            "color": "#f23232",
                            "width": "135rpx",
                            "height": "40rpx",
                            "top": detail.formId == 710803 ? '885rpx' : "946rpx",
                            "left": "88rpx",
                            "padding": "6rpx",
                            "borderRadius": "5rpx",
                            "borderWidth": "2rpx",
                            "borderColor": "#fde4e7",
                            "fontSize": "28rpx",
                            "lineHeight": "40rpx",
                            "textAlign": "center"
                        }
                    },
                    {
                        "type": "text",
                        "text": "\u5DF2\u552E " + (detail.orderTimes || 0),
                        "css": {
                            "color": "#999",
                            "width": "200rpx",
                            "top": "820rpx",
                            "left": "476rpx",
                            "fontSize": "28rpx",
                            "textAlign": "right"
                        }
                    },
                    {
                        "type": "text",
                        "text": "\u3010" + wx.globalData.settings.name + "\u3011" + detail.title || '活动标题',
                        "css": {
                            "color": "#333",
                            "width": "360rpx",
                            "top": detail.formId == 710803 ? '980rpx' : "1020rpx",
                            "left": "76rpx",
                            "fontSize": "36rpx",
                            "maxLines": "2",
                            "lineHeight": '50rpx',
                            "textAlign": "left"
                        }
                    },
                    {
                        "type": "image",
                        "url": qrCodeUrl,
                        "css": {
                            "width": "200rpx",
                            "height": "100px",
                            "top": "888rpx",
                            "left": "476rpx",
                        }
                    },
                    {
                        "type": "text",
                        "text": "长按扫码识别参与~",
                        "css": {
                            "color": "#666",
                            "top": "1105rpx",
                            "left": "476rpx",
                            "fontSize": "24rpx",
                            "textAlign": "left"
                        }
                    }
                ]
            };
            var imgDrawLive = {
                width: '750rpx',
                height: '1334rpx',
                background: '#f5f5f5',
@@ -234,21 +432,21 @@
                    },
                    {
                        type: 'image',
                        url: isLive ? liveRoom.ShareImgUnidUrl : detail.coverImageUrl[0],
                        url: liveRoom.ShareImgUnidUrl,
                        css: {
                            top: '10rpx',
                            left: '10rpx',
                            right: '10rpx',
                            width: '730rpx',
                            height: '480rpx',
                            height: '630rpx',
                            borderRadius: '16rpx'
                        },
                    },
                    {
                        type: 'image',
                        url: (isLive ? liveRoom.AnchorImgUnidUrl : sellerList[0].sellerHeadimgurl) || '/assets/images/default-avatar.png',
                        url: liveRoom.AnchorImgUnidUrl || '/assets/images/default-avatar.png',
                        css: {
                            top: '444rpx',
                            top: '594rpx',
                            left: '328rpx',
                            width: '96rpx',
                            height: '96rpx',
@@ -259,9 +457,9 @@
                    },
                    {
                        type: 'text',
                        text: (isLive ? liveRoom.AnchorName : sellerList[0].sellerName) || '昵称',
                        text: liveRoom.AnchorName || '昵称',
                        css: {
                            top: '572rpx',
                            top: '722rpx',
                            fontSize: '28rpx',
                            left: '375rpx',
                            align: 'center',
@@ -270,9 +468,9 @@
                    },
                    {
                        type: 'text',
                        text: "\u9080\u8BF7\u60A8\u53C2\u4E0E" + (isLive ? '直播' : '活动'),
                        text: "\u9080\u8BF7\u60A8\u53C2\u4E0E\u76F4\u64AD",
                        css: {
                            top: '616rpx',
                            top: '766rpx',
                            left: '375rpx',
                            align: 'center',
                            fontSize: '28rpx',
@@ -281,9 +479,9 @@
                    },
                    {
                        type: 'text',
                        text: ((isLive ? liveRoom.RoomName : detail.title) || '活动标题') + " ",
                        text: ((liveRoom.RoomName) || '活动标题') + " ",
                        css: {
                            top: '684rpx',
                            top: '820rpx',
                            left: '375rpx',
                            maxLines: 1,
                            align: 'center',
@@ -294,7 +492,7 @@
                    },
                    {
                        type: 'text',
                        text: "" + ((isLive ? '' : '¥' + detail.salesPrice) || ''),
                        text: "",
                        css: {
                            top: '765rpx',
                            left: '375rpx',
@@ -327,6 +525,12 @@
                    },
                ]
            };
            if (isLive) {
                imgDraw = imgDrawLive;
            }
            if (isDetail) {
                imgDraw = imgDrawPromotions;
            }
            return imgDraw;
        },
        onImgErr: function () {
@@ -392,4 +596,4 @@
        }
    }
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxTQUFTLENBQUM7SUFDUixPQUFPLEVBQUU7UUFDUCxjQUFjLEVBQUMsSUFBSTtRQUNuQixhQUFhLEVBQUUsSUFBSTtLQUNwQjtJQUNELFVBQVUsRUFBRTtRQUVWLFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLEVBQUU7WUFDVCxRQUFRLFlBQUMsTUFBTTtnQkFDYixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFDO29CQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDO3dCQUNYLE1BQU0sRUFBQyxJQUFJO3FCQUNaLENBQUMsQ0FBQTtpQkFDSDtZQUNILENBQUM7U0FDRjtRQUNELE1BQU0sRUFBQztZQUNMLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLEVBQUU7WUFDVCxRQUFRLFlBQUMsTUFBTTtnQkFDYixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFDO29CQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDO3dCQUNYLFFBQVEsRUFBRSxJQUFJO3FCQUNmLENBQUMsQ0FBQTtpQkFDSDtZQUNILENBQUM7U0FDRjtRQUNELFVBQVUsRUFBQztZQUNULElBQUksRUFBRSxLQUFLO1lBQ1gsS0FBSyxFQUFFLEVBQUU7U0FDVjtLQU1GO0lBQ0QsSUFBSSxFQUFFO1FBQ0osT0FBTyxFQUFFLEVBQUU7UUFDWCxTQUFTLEVBQUUsRUFBRTtRQUNiLE9BQU8sRUFBRSxLQUFL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QUFLO3lCQUNmLENBQUMsQ0FBQTt3QkFDRixLQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO29CQUM1QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7Z0JBQ1QsQ0FBQzthQUNGLENBQUMsQ0FBQTtRQUNKLENBQUM7S0FDRjtDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIkNvbXBvbmVudCh7XHJcbiAgb3B0aW9uczoge1xyXG4gICAgYWRkR2xvYmFsQ2xhc3M6dHJ1ZSxcclxuICAgIG11bHRpcGxlU2xvdHM6IHRydWUgLy8g5Zyo57uE5Lu25a6a5LmJ5pe255qE6YCJ6aG55Lit5ZCv55So5aSac2xvdOaUr+aMgVxyXG4gIH0sXHJcbiAgcHJvcGVydGllczoge1xyXG4gICAgLy/lsZ7mgKflgLzlj6/ku6XlnKjnu4Tku7bkvb/nlKjml7bmjIflrppcclxuICAgIGxpdmVSb29tOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgdmFsdWU6IHt9LFxyXG4gICAgICBvYnNlcnZlcihuZXdWYWwpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygn55uR5ZCsbGl2ZVJvb23nmoRuZXdWYWwnLG5ld1ZhbCk7XHJcbiAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KG5ld1ZhbCkgIT0gJ3t9Jyl7XHJcbiAgICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgICBpc0xpdmU6dHJ1ZVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBkZXRhaWw6e1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIHZhbHVlOiB7fSxcclxuICAgICAgb2JzZXJ2ZXIobmV3VmFsKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ+ebkeWQrGRldGFpbOeahG5ld1ZhbCcsbmV3VmFsKTtcclxuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkobmV3VmFsKSAhPSAne30nKXtcclxuICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICAgIGlzRGV0YWlsOiB0cnVlXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHNlbGxlckxpc3Q6e1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgdmFsdWU6IFtdXHJcbiAgICB9LFxyXG5cclxuICAgIC8vIHZpc2libGU6IHtcclxuICAgIC8vICAgdHlwZTogQm9vbGVhbixcclxuICAgIC8vICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgLy8gfVxyXG4gIH0sXHJcbiAgZGF0YToge1xyXG4gICAgaW1nRHJhdzoge30sIC8v57uY5Yi25Zu+54mH55qE5aSn5a+56LGhXHJcbiAgICBzaGFyZVBhdGg6ICcnLCAvL+eUn+aIkOeahOWIhuS6q+WbvlxyXG4gICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICBxckNvZGVVcmw6JycsXHJcbiAgICBpc0xpdmU6ZmFsc2UgLy/mmK/lkKbnm7Tmkq1cclxuICB9LFxyXG4gIGxpZmV0aW1lczp7XHJcbiAgICBhc3luYyByZWFkeSgpe1xyXG5cclxuICAgIH1cclxuICB9LFxyXG4gIHBhZ2VMaWZldGltZXM6IHtcclxuICAgIHNob3c6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAvLyDpobXpnaLooqvlsZXnpLpcclxuXHJcbiAgICB9LFxyXG4gICAgaGlkZSgpIHtcclxuXHJcbiAgICB9XHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBhc3luYyBnZXRMaXZlUm9vbVFyQ29kZSgpe1xyXG4gICAgICBsZXQgcm9vbWlkID0gdGhpcy5kYXRhLmxpdmVSb29tLlJvb21JZDtcclxuICAgICAgY29uc29sZS5sb2cocm9vbWlkKTtcclxuICAgICAgbGV0IFtlcnJvciwgcmVzdWx0XSA9IGF3YWl0IHd4LiR1dGlscy50byhcclxuICAgICAgICB3eC4kaHR0cC5yZXF1ZXN0KHtcclxuICAgICAgICAgIHVybDpgL3Nob3BwaW5nL2xpdmUvZ2V0U2hhcmVkQ29kZS5kb2AsXHJcbiAgICAgICAgICBkYXRhOntcclxuICAgICAgICAgICAgcm9vbWlkXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICBpZiAoZXJyb3J8fHJlc3VsdC5zdGF0ZSE9PSdzdWNjZXNzJyl7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgIHd4LnNob3dUb2FzdCh7XHJcbiAgICAgICAgICB0aXRsZTogJ+iOt+WPluS6jOe7tOeggeWksei0pe+8jOivt+eojeWQjuWGjeivlScsXHJcbiAgICAgICAgICBpY29uOidub25lJyxcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIHFyQ29kZVVybDpyZXN1bHQuY2RuVXJsXHJcbiAgICAgIH0pXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIGdldFFyQ29kZSgpe1xyXG4gICAgICBsZXQgW2Vycm9yLCByZXN1bHRdID0gYXdhaXQgd3guJHV0aWxzLnRvKFxyXG4gICAgICAgIHd4LiRodHRwLnJlcXVlc3Qoe1xyXG4gICAgICAgICAgdXJsOmAvc2hvcHBpbmcvcG9zdGVyL2dldFFyQ29kZUZvclBvc3Rlci5kb2AsXHJcbiAgICAgICAgICBkYXRhOntcclxuICAgICAgICAgICAgUXJDb2RlVHlwZTo4MCxcclxuICAgICAgICAgICAgZG9jY29kZTp0aGlzLmRhdGEuZGV0YWlsLmRvY2NvZGUsXHJcbiAgICAgICAgICAgIFNlbGxlck9wZW5JZDp3eC5nbG9iYWxEYXRhLkZyb21PcGVuSWRcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIGlmIChlcnJvcnx8cmVzdWx0LnN0YXRlIT09J3N1Y2Nlc3MnKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgICAgIHRpdGxlOiAn6I635Y+W5LqM57u056CB5aSx6LSl77yM6K+356iN5ZCO5YaN6K+VJyxcclxuICAgICAgICAgIGljb246J25vbmUnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgcXJDb2RlVXJsOnJlc3VsdC5RckNvZGVcclxuICAgICAgfSlcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9LFxyXG4gICAgaGFuZGxlQ2xvc2UoKSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgdmlzaWJsZTogZmFsc2VcclxuICAgICAgfSlcclxuICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoJ2Nsb3NlJylcclxuICAgIH0sXHJcbiAgICBjbGVhclBvc3RlcigpIHtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBzaGFyZVBhdGg6JydcclxuICAgICAgfSlcclxuICAgIH0sXHJcbiAgICBhc3luYyBkcmF3UGljKCkge1xyXG4gICAgICBpZiAodGhpcy5kYXRhLnNoYXJlUGF0aCkgeyAvL+WmguaenOW3sue7j+e7mOWItui/h+S6huacrOWcsOS/neWtmOacieWbvueJh+S4jemcgOimgemHjeaWsOe7mOWItlxyXG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICB2aXNpYmxlOiB0cnVlXHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLnRyaWdnZXJFdmVudCgnaW5pdERhdGEnKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRhdGEuaXNEZXRhaWwpe1xyXG4gICAgICAgIGlmICghYXdhaXQgdGhpcy5nZXRRckNvZGUoKSkgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRhdGEuaXNMaXZlKXtcclxuICAgICAgICBpZiAoIWF3YWl0IHRoaXMuZ2V0TGl2ZVJvb21RckNvZGUoKSkgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5kYXRhLnFyQ29kZVVybCkge1xyXG4gICAgICAgIHd4LnNob3dUb2FzdCh7XHJcbiAgICAgICAgICB0aXRsZTogJ+iOt+WPluS6jOe7tOeggeWksei0pe+8jOivt+eojeWQjuWGjeivlScsXHJcbiAgICAgICAgICBpY29uOidub25lJyxcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB3eC5zaG93TG9hZGluZyh7XHJcbiAgICAgICAgdGl0bGU6ICfnlJ/miJDkuK0nXHJcbiAgICAgIH0pXHJcblxyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIGltZ0RyYXc6IHRoaXMuZ2V0SW1nRHJhdygpXHJcbiAgICAgIH0pXHJcbiAgICB9LFxyXG4gICAgIGdldEltZ0RyYXcoKSB7XHJcbiAgICAgIGxldCB7ZGV0YWlsLGxpdmVSb29tLHNlbGxlckxpc3QscXJDb2RlVXJsfSA9IHRoaXMuZGF0YTtcclxuICAgICAgbGV0IGlzTGl2ZSA9IHRoaXMuZGF0YS5pc0xpdmU7XHJcbiAgICAgIGNvbnNvbGUubG9nKGRldGFpbCxsaXZlUm9vbSxzZWxsZXJMaXN0LHFyQ29kZVVybCxpc0xpdmUpO1xyXG4gICAgICBsZXQgaW1nRHJhdyA9IHtcclxuICAgICAgICB3aWR0aDogJzc1MHJweCcsXHJcbiAgICAgICAgaGVpZ2h0OiAnMTMzNHJweCcsXHJcbiAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxyXG4gICAgICAgIHZpZXdzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlXCIsXHJcbiAgICAgICAgICAgIFwidXJsXCI6IFwiL2Fzc2V0cy9pbWFnZXMvcG9zdGVyLWJnLnBuZ1wiLFxyXG4gICAgICAgICAgICBcImNzc1wiOiB7XHJcbiAgICAgICAgICAgICAgXCJ3aWR0aFwiOiBcIjc1MHJweFwiLFxyXG4gICAgICAgICAgICAgIFwiaGVpZ2h0XCI6IFwiMTMzNHJweFwiLFxyXG4gICAgICAgICAgICAgIFwidG9wXCI6IFwiMHB4XCIsXHJcbiAgICAgICAgICAgICAgXCJsZWZ0XCI6IFwiMHB4XCIsXHJcbiAgICAgICAgICAgICAgXCJyb3RhdGVcIjogXCIwXCIsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6ICdpbWFnZScsXHJcbiAgICAgICAgICAgIHVybDogaXNMaXZlP2xpdmVSb29tLlNoYXJlSW1nVW5pZFVybDpkZXRhaWwuY292ZXJJbWFnZVVybFswXSxcclxuICAgICAgICAgICAgY3NzOiB7XHJcbiAgICAgICAgICAgICAgdG9wOiAnMTBycHgnLFxyXG4gICAgICAgICAgICAgIGxlZnQ6ICcxMHJweCcsXHJcbiAgICAgICAgICAgICAgcmlnaHQ6ICcxMHJweCcsXHJcbiAgICAgICAgICAgICAgd2lkdGg6ICc3MzBycHgnLFxyXG4gICAgICAgICAgICAgIGhlaWdodDogJzQ4MHJweCcsXHJcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnMTZycHgnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiAnaW1hZ2UnLFxyXG4gICAgICAgICAgICB1cmw6IChpc0xpdmU/bGl2ZVJvb20uQW5jaG9ySW1nVW5pZFVybDpzZWxsZXJMaXN0WzBdLnNlbGxlckhlYWRpbWd1cmwpIHx8ICcvYXNzZXRzL2ltYWdlcy9kZWZhdWx0LWF2YXRhci5wbmcnLFxyXG4gICAgICAgICAgICBjc3M6IHtcclxuICAgICAgICAgICAgICB0b3A6ICc0NDRycHgnLFxyXG4gICAgICAgICAgICAgIGxlZnQ6ICczMjhycHgnLFxyXG4gICAgICAgICAgICAgIHdpZHRoOiAnOTZycHgnLFxyXG4gICAgICAgICAgICAgIGhlaWdodDogJzk2cnB4JyxcclxuICAgICAgICAgICAgICBib3JkZXJXaWR0aDogJzZycHgnLFxyXG4gICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI0ZGRicsXHJcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnOTZycHgnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgICAgICAgdGV4dDogKGlzTGl2ZT9saXZlUm9vbS5BbmNob3JOYW1lOiBzZWxsZXJMaXN0WzBdLnNlbGxlck5hbWUpIHx8ICfmmLXnp7AnLFxyXG4gICAgICAgICAgICBjc3M6IHtcclxuICAgICAgICAgICAgICB0b3A6ICc1NzJycHgnLFxyXG4gICAgICAgICAgICAgIGZvbnRTaXplOiAnMjhycHgnLFxyXG4gICAgICAgICAgICAgIGxlZnQ6ICczNzVycHgnLFxyXG4gICAgICAgICAgICAgIGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICBjb2xvcjogJyMzYzNjM2MnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgICAgICAgdGV4dDogYOmCgOivt+aCqOWPguS4jiR7KGlzTGl2ZT8n55u05pKtJzon5rS75YqoJyl9YCxcclxuICAgICAgICAgICAgY3NzOiB7XHJcbiAgICAgICAgICAgICAgdG9wOiAnNjE2cnB4JyxcclxuICAgICAgICAgICAgICBsZWZ0OiAnMzc1cnB4JyxcclxuICAgICAgICAgICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgZm9udFNpemU6ICcyOHJweCcsXHJcbiAgICAgICAgICAgICAgY29sb3I6ICcjM2MzYzNjJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXHJcbiAgICAgICAgICAgIHRleHQ6IGAkeyhpc0xpdmU/bGl2ZVJvb20uUm9vbU5hbWU6ZGV0YWlsLnRpdGxlKSB8fCAn5rS75Yqo5qCH6aKYJ30gYCxcclxuICAgICAgICAgICAgY3NzOiB7XHJcbiAgICAgICAgICAgICAgdG9wOiAnNjg0cnB4JyxcclxuICAgICAgICAgICAgICBsZWZ0OiAnMzc1cnB4JyxcclxuICAgICAgICAgICAgICBtYXhMaW5lczogMSxcclxuICAgICAgICAgICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxyXG4gICAgICAgICAgICAgIGZvbnRTaXplOiAnNDRycHgnLFxyXG4gICAgICAgICAgICAgIGNvbG9yOiAnIzNjM2MzYydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC8vIHtcclxuICAgICAgICAgIC8vICAgdHlwZTogJ3RleHQnLFxyXG4gICAgICAgICAgLy8gICB0ZXh0OiBg5rS75Yqo5Lu3IO+/pWAsXHJcbiAgICAgICAgICAvLyAgIGNzczoge1xyXG4gICAgICAgICAgLy8gICAgIHRvcDogJzc4MHJweCcsXHJcbiAgICAgICAgICAvLyAgICAgbGVmdDogJzI1MHJweCcsXHJcbiAgICAgICAgICAvLyAgICAgbWF4TGluZXM6IDEsXHJcbiAgICAgICAgICAvLyAgICAgYWxpZ246ICdjZW50ZXInLFxyXG4gICAgICAgICAgLy8gICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcclxuICAgICAgICAgIC8vICAgICBmb250U2l6ZTogJzI4cnB4JyxcclxuICAgICAgICAgIC8vICAgICBjb2xvcjogJyNmMjMyMzInXHJcbiAgICAgICAgICAvLyAgIH1cclxuICAgICAgICAgIC8vIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgICAgICAgdGV4dDogYCR7KGlzTGl2ZT8nJzon77+lJytkZXRhaWwuc2FsZXNQcmljZSkgfHwgJyd9YCxcclxuICAgICAgICAgICAgY3NzOiB7XHJcbiAgICAgICAgICAgICAgdG9wOiAnNzY1cnB4JyxcclxuICAgICAgICAgICAgICBsZWZ0OiAnMzc1cnB4JyxcclxuICAgICAgICAgICAgICBtYXhMaW5lczogMSxcclxuICAgICAgICAgICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxyXG4gICAgICAgICAgICAgIGZvbnRTaXplOiAnNDRycHgnLFxyXG4gICAgICAgICAgICAgIGNvbG9yOiAnI2YyMzIzMidcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogJ2ltYWdlJyxcclxuICAgICAgICAgICAgdXJsOiBxckNvZGVVcmwsXHJcbiAgICAgICAgICAgIGNzczoge1xyXG4gICAgICAgICAgICAgIHRvcDogJzk3MHJweCcsXHJcbiAgICAgICAgICAgICAgbGVmdDogJzM5MHJweCcsXHJcbiAgICAgICAgICAgICAgd2lkdGg6ICczMDBycHgnLFxyXG4gICAgICAgICAgICAgIGhlaWdodDogJzMwMHJweCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxyXG4gICAgICAgICAgICB0ZXh0OiBg6ZW/5oyJ5LqM57u056CB6K+G5Yir5Y+C5LiOYCxcclxuICAgICAgICAgICAgY3NzOiB7XHJcbiAgICAgICAgICAgICAgdG9wOiAnMTEwMHJweCcsXHJcbiAgICAgICAgICAgICAgbGVmdDogJzU1cnB4JyxcclxuICAgICAgICAgICAgICBmb250U2l6ZTogJzMycnB4JyxcclxuICAgICAgICAgICAgICBjb2xvcjogJyMzYzNjM2MnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXVxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gaW1nRHJhdztcclxuICAgIH0sXHJcbiAgICBvbkltZ0VycigpIHtcclxuICAgICAgd3guaGlkZUxvYWRpbmcoKVxyXG4gICAgICB3eC5zaG93VG9hc3Qoe1xyXG4gICAgICAgIHRpdGxlOiAn55Sf5oiQ5YiG5Lqr5Zu+5aSx6LSl77yM6K+35Yi35paw6aG16Z2i6YeN6K+VJ1xyXG4gICAgICB9KVxyXG4gICAgfSxcclxuICAgIG9uSW1nT0soZSkge1xyXG4gICAgICB3eC5oaWRlTG9hZGluZygpXHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgc2hhcmVQYXRoOiBlLmRldGFpbC5wYXRoLFxyXG4gICAgICAgIHZpc2libGU6IHRydWUsXHJcbiAgICAgIH0pXHJcbiAgICAgIC8v6YCa55+l5aSW6YOo57uY5Yi25a6M5oiQ77yM6YeN572uaXNDYW5EcmF35Li6ZmFsc2VcclxuICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoJ2luaXREYXRhJylcclxuICAgIH0sXHJcbiAgICBwcmV2ZW50RGVmYXVsdCgpIHsgfSxcclxuICAgIC8vIOS/neWtmOWbvueJh1xyXG4gICAgaGFuZGxlU2F2ZVBob3RvKCkge1xyXG4gICAgICB3eC5zaG93TG9hZGluZyh7XHJcbiAgICAgICAgdGl0bGU6ICfmraPlnKjkv53lrZguLi4nLFxyXG4gICAgICAgIG1hc2s6IHRydWVcclxuICAgICAgfSlcclxuICAgICAgd3guc2F2ZUltYWdlVG9QaG90b3NBbGJ1bSh7XHJcbiAgICAgICAgZmlsZVBhdGg6IHRoaXMuZGF0YS5zaGFyZVBhdGgsXHJcbiAgICAgICAgc3VjY2VzczogKCkgPT4ge1xyXG4gICAgICAgICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgdGl0bGU6ICfkv53lrZjmiJDlip8nXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICAgICAgdmlzaWJsZTogZmFsc2VcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoJ2Nsb3NlJylcclxuICAgICAgICAgIH0sIDMwMClcclxuICAgICAgICB9LFxyXG4gICAgICAgIGZhaWw6ICgpID0+IHtcclxuICAgICAgICAgIHd4LmdldFNldHRpbmcoe1xyXG4gICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBhdXRoU2V0dGluZyA9IHJlcy5hdXRoU2V0dGluZ1xyXG4gICAgICAgICAgICAgIGlmICghYXV0aFNldHRpbmdbJ3Njb3BlLndyaXRlUGhvdG9zQWxidW0nXSkge1xyXG4gICAgICAgICAgICAgICAgd3guc2hvd01vZGFsKHtcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6ICfmj5DnpLonLFxyXG4gICAgICAgICAgICAgICAgICBjb250ZW50OiAn5oKo5pyq5byA5ZCv5L+d5a2Y5Zu+54mH5Yiw55u45YaM55qE5p2D6ZmQ77yM6K+354K55Ye756Gu5a6a5Y675byA5ZCv5p2D6ZmQ77yBJyxcclxuICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmNvbmZpcm0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHd4Lm9wZW5TZXR0aW5nKClcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHd4LmhpZGVMb2FkaW5nKClcclxuICAgICAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgICAgICB2aXNpYmxlOiBmYWxzZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudCgnY2xvc2UnKVxyXG4gICAgICAgICAgfSwgMzAwKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcbn0pXHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxTQUFTLENBQUM7SUFDUixPQUFPLEVBQUU7UUFDUCxjQUFjLEVBQUMsSUFBSTtRQUNuQixhQUFhLEVBQUUsSUFBSTtLQUNwQjtJQUNELFVBQVUsRUFBRTtRQUVWLFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLEVBQUU7WUFDVCxRQUFRLFlBQUMsTUFBTTtnQkFDYixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFDO29CQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDO3dCQUNYLE1BQU0sRUFBQyxJQUFJO3FCQUNaLENBQUMsQ0FBQTtpQkFDSDtZQUNILENBQUM7U0FDRjtRQUNELE1BQU0sRUFBQztZQUNMLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLEVBQUU7WUFDVCxRQUFRLFlBQUMsTUFBTTtnQkFDYixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFDO29CQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDO3dCQUNYLFFBQVEsRUFBRSxJQUFJO3FCQUNmLENBQUMsQ0FBQTtpQkFDSDtZQUNILENBQUM7U0FDRjtRQUNELFVBQVUsRUFBQztZQUNULElBQUksRUFBRSxLQUFLO1lBQ1gsS0FBSyxFQUFFLEVBQUU7U0FDVjtLQU1GO0lBQ0QsSUFBSSxFQUFFO1FBQ0osT0FBTyxFQUFFLEVBQUU7UUFDWCxTQUFTLEVBQUUsRUFBRTtRQUNiLE9BQU8sRUFBRSxLQUFL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Q0FDZixFQUFFLENBQUMsV0FBVyxFQUFFLENBQUE7eUNBQ2pCO29DQUNILENBQUM7aUNBQ0YsQ0FBQyxDQUFBOzZCQUNIO3dCQUNILENBQUM7cUJBQ0YsQ0FBQyxDQUFBO29CQUNGLFVBQVUsQ0FBQzt3QkFDVCxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUE7d0JBQ2hCLEtBQUksQ0FBQyxPQUFPLENBQUM7NEJBQ1gsT0FBTyxFQUFFLEtBQUs7eUJBQ2YsQ0FBQyxDQUFBO3dCQUNGLEtBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUE7b0JBQzVCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFDVCxDQUFDO2FBQ0YsQ0FBQyxDQUFBO1FBQ0osQ0FBQztLQUNGO0NBQ0YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiQ29tcG9uZW50KHtcclxuICBvcHRpb25zOiB7XHJcbiAgICBhZGRHbG9iYWxDbGFzczp0cnVlLFxyXG4gICAgbXVsdGlwbGVTbG90czogdHJ1ZSAvLyDlnKjnu4Tku7blrprkuYnml7bnmoTpgInpobnkuK3lkK/nlKjlpJpzbG905pSv5oyBXHJcbiAgfSxcclxuICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAvL+WxnuaAp+WAvOWPr+S7peWcqOe7hOS7tuS9v+eUqOaXtuaMh+WumlxyXG4gICAgbGl2ZVJvb206IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICB2YWx1ZToge30sXHJcbiAgICAgIG9ic2VydmVyKG5ld1ZhbCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCfnm5HlkKxsaXZlUm9vbeeahG5ld1ZhbCcsbmV3VmFsKTtcclxuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkobmV3VmFsKSAhPSAne30nKXtcclxuICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICAgIGlzTGl2ZTp0cnVlXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGRldGFpbDp7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgdmFsdWU6IHt9LFxyXG4gICAgICBvYnNlcnZlcihuZXdWYWwpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygn55uR5ZCsZGV0YWls55qEbmV3VmFsJyxuZXdWYWwpO1xyXG4gICAgICAgIGlmIChKU09OLnN0cmluZ2lmeShuZXdWYWwpICE9ICd7fScpe1xyXG4gICAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgICAgaXNEZXRhaWw6IHRydWVcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2VsbGVyTGlzdDp7XHJcbiAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgICB2YWx1ZTogW11cclxuICAgIH0sXHJcblxyXG4gICAgLy8gdmlzaWJsZToge1xyXG4gICAgLy8gICB0eXBlOiBCb29sZWFuLFxyXG4gICAgLy8gICB2YWx1ZTogZmFsc2UsXHJcbiAgICAvLyB9XHJcbiAgfSxcclxuICBkYXRhOiB7XHJcbiAgICBpbWdEcmF3OiB7fSwgLy/nu5jliLblm77niYfnmoTlpKflr7nosaFcclxuICAgIHNoYXJlUGF0aDogJycsIC8v55Sf5oiQ55qE5YiG5Lqr5Zu+XHJcbiAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgIHFyQ29kZVVybDonJyxcclxuICAgIGlzTGl2ZTpmYWxzZSwgLy/mmK/lkKbnm7Tmkq1cclxuICAgIGlzRGV0YWlsOmZhbHNlIC8v5piv5ZCm55u05pKtXHJcbiAgfSxcclxuICBsaWZldGltZXM6e1xyXG4gICAgYXN5bmMgcmVhZHkoKXtcclxuXHJcbiAgICB9XHJcbiAgfSxcclxuICBwYWdlTGlmZXRpbWVzOiB7XHJcbiAgICBzaG93OiBmdW5jdGlvbigpIHtcclxuICAgICAgLy8g6aG16Z2i6KKr5bGV56S6XHJcblxyXG4gICAgfSxcclxuICAgIGhpZGUoKSB7XHJcblxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgYXN5bmMgZ2V0TGl2ZVJvb21RckNvZGUoKXtcclxuICAgICAgbGV0IHJvb21pZCA9IHRoaXMuZGF0YS5saXZlUm9vbS5Sb29tSWQ7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJvb21pZCk7XHJcbiAgICAgIGxldCBbZXJyb3IsIHJlc3VsdF0gPSBhd2FpdCB3eC4kdXRpbHMudG8oXHJcbiAgICAgICAgd3guJGh0dHAucmVxdWVzdCh7XHJcbiAgICAgICAgICB1cmw6YC9zaG9wcGluZy9saXZlL2dldFNoYXJlZENvZGUuZG9gLFxyXG4gICAgICAgICAgZGF0YTp7XHJcbiAgICAgICAgICAgIHJvb21pZFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgaWYgKGVycm9yfHxyZXN1bHQuc3RhdGUhPT0nc3VjY2Vzcycpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICB3eC5zaG93VG9hc3Qoe1xyXG4gICAgICAgICAgdGl0bGU6ICfojrflj5bkuoznu7TnoIHlpLHotKXvvIzor7fnqI3lkI7lho3or5UnLFxyXG4gICAgICAgICAgaWNvbjonbm9uZScsXHJcbiAgICAgICAgfSlcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBxckNvZGVVcmw6cmVzdWx0LmNkblVybFxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICBhc3luYyBnZXRRckNvZGUoKXtcclxuICAgICAgbGV0IFtlcnJvciwgcmVzdWx0XSA9IGF3YWl0IHd4LiR1dGlscy50byhcclxuICAgICAgICB3eC4kaHR0cC5yZXF1ZXN0KHtcclxuICAgICAgICAgIHVybDpgL3Nob3BwaW5nL3Bvc3Rlci9nZXRRckNvZGVGb3JQb3N0ZXIuZG9gLFxyXG4gICAgICAgICAgZGF0YTp7XHJcbiAgICAgICAgICAgIFFyQ29kZVR5cGU6ODAsXHJcbiAgICAgICAgICAgIGRvY2NvZGU6dGhpcy5kYXRhLmRldGFpbC5kb2Njb2RlLFxyXG4gICAgICAgICAgICBTZWxsZXJPcGVuSWQ6d3guZ2xvYmFsRGF0YS5Gcm9tT3BlbklkXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICBpZiAoZXJyb3J8fHJlc3VsdC5zdGF0ZSE9PSdzdWNjZXNzJyl7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgIHd4LnNob3dUb2FzdCh7XHJcbiAgICAgICAgICB0aXRsZTogJ+iOt+WPluS6jOe7tOeggeWksei0pe+8jOivt+eojeWQjuWGjeivlScsXHJcbiAgICAgICAgICBpY29uOidub25lJyxcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIHFyQ29kZVVybDpyZXN1bHQuUXJDb2RlXHJcbiAgICAgIH0pXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZUNsb3NlKCkge1xyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIHZpc2libGU6IGZhbHNlXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMudHJpZ2dlckV2ZW50KCdjbG9zZScpXHJcbiAgICB9LFxyXG4gICAgY2xlYXJQb3N0ZXIoKSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgc2hhcmVQYXRoOicnXHJcbiAgICAgIH0pXHJcbiAgICB9LFxyXG4gICAgYXN5bmMgZHJhd1BpYygpIHtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5zaGFyZVBhdGgpIHsgLy/lpoLmnpzlt7Lnu4/nu5jliLbov4fkuobmnKzlnLDkv53lrZjmnInlm77niYfkuI3pnIDopoHph43mlrDnu5jliLZcclxuICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgdmlzaWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoJ2luaXREYXRhJylcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kYXRhLmlzRGV0YWlsKXtcclxuICAgICAgICBpZiAoIWF3YWl0IHRoaXMuZ2V0UXJDb2RlKCkpIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kYXRhLmlzTGl2ZSl7XHJcbiAgICAgICAgaWYgKCFhd2FpdCB0aGlzLmdldExpdmVSb29tUXJDb2RlKCkpIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuZGF0YS5xckNvZGVVcmwpIHtcclxuICAgICAgICB3eC5zaG93VG9hc3Qoe1xyXG4gICAgICAgICAgdGl0bGU6ICfojrflj5bkuoznu7TnoIHlpLHotKXvvIzor7fnqI3lkI7lho3or5UnLFxyXG4gICAgICAgICAgaWNvbjonbm9uZScsXHJcbiAgICAgICAgfSlcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgd3guc2hvd0xvYWRpbmcoe1xyXG4gICAgICAgIHRpdGxlOiAn55Sf5oiQ5LitJ1xyXG4gICAgICB9KVxyXG5cclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBpbWdEcmF3OiB0aGlzLmdldEltZ0RyYXcoKVxyXG4gICAgICB9KVxyXG4gICAgfSxcclxuXHJcbiAgICAgZ2V0SW1nRHJhdygpIHtcclxuICAgICAgbGV0IHtkZXRhaWwsbGl2ZVJvb20sc2VsbGVyTGlzdCxxckNvZGVVcmx9ID0gdGhpcy5kYXRhO1xyXG4gICAgICBsZXQgaXNMaXZlID0gdGhpcy5kYXRhLmlzTGl2ZTtcclxuICAgICAgbGV0IGlzRGV0YWlsID0gdGhpcy5kYXRhLmlzRGV0YWlsO1xyXG4gICAgICBsZXQgcHJvbW90aW9uc1R5cGU6YW55ID0ge1xyXG4gICAgICAgIDcxMDgwMjogJ+enkuadgOS7tycsIC8v56eS5p2AXHJcbiAgICAgICAgNzEwODAzOiAn5oql5ZCN5Lu3JywgLy/miqXlkI1cclxuICAgICAgICA3MTA4MDQ6ICflm6LotK3ku7cnLCAvL+Wboui0rVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKGRldGFpbCxsaXZlUm9vbSxzZWxsZXJMaXN0LHFyQ29kZVVybCxpc0xpdmUpO1xyXG4gICAgICBsZXQgaW1nRHJhdyA9IHt9O1xyXG4gICAgICBsZXQgaW1nRHJhd1Byb21vdGlvbnMgPSB7XHJcbiAgICAgICAgXCJ3aWR0aFwiOiBcIjc1MHJweFwiLFxyXG4gICAgICAgIFwiaGVpZ2h0XCI6IFwiMTE5NnJweFwiLFxyXG4gICAgICAgIFwiYmFja2dyb3VuZFwiOiBcIiNmZmZcIixcclxuICAgICAgICBcInZpZXdzXCI6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2VcIixcclxuICAgICAgICAgICAgXCJ1cmxcIjogXCIvYXNzZXRzL2ltYWdlcy9wcm9tb3Rpb25zLXBvc3Rlci1iZy5qcGdcIixcclxuICAgICAgICAgICAgXCJjc3NcIjoge1xyXG4gICAgICAgICAgICAgIFwid2lkdGhcIjogXCI3NTBycHhcIixcclxuICAgICAgICAgICAgICBcImhlaWdodFwiOiBcIjExOTZycHhcIixcclxuICAgICAgICAgICAgICBcInRvcFwiOiBcIjBweFwiLFxyXG4gICAgICAgICAgICAgIFwibGVmdFwiOiBcIjBweFwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlXCIsXHJcbiAgICAgICAgICAgIFwidXJsXCI6IHNlbGxlckxpc3RbMF0uc2VsbGVyV2VpWGluQXZhdGFyVXJsfHwnL2Fzc2V0cy9pbWFnZXMvZGVmYXVsdC1hdmF0YXIucG5nJyxcclxuICAgICAgICAgICAgXCJjc3NcIjoge1xyXG4gICAgICAgICAgICAgIFwid2lkdGhcIjogXCIxMDBycHhcIixcclxuICAgICAgICAgICAgICBcImhlaWdodFwiOiBcIjEwMHJweFwiLFxyXG4gICAgICAgICAgICAgIFwidG9wXCI6IFwiMjJycHhcIixcclxuICAgICAgICAgICAgICBcImxlZnRcIjogXCIzNnJweFwiLFxyXG4gICAgICAgICAgICAgIFwiYm9yZGVyUmFkaXVzXCI6IFwiMTAwcnB4XCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGV4dFwiLFxyXG4gICAgICAgICAgICBcInRleHRcIjogc2VsbGVyTGlzdFswXS5zZWxsZXJOYW1lfHwn5pi156ewJyxcclxuICAgICAgICAgICAgXCJjc3NcIjoge1xyXG4gICAgICAgICAgICAgIFwiY29sb3JcIjogXCIjZmZmXCIsXHJcbiAgICAgICAgICAgICAgXCJ0b3BcIjogXCIzNHJweFwiLFxyXG4gICAgICAgICAgICAgIFwibGVmdFwiOiBcIjE2MHJweFwiLFxyXG4gICAgICAgICAgICAgIFwiZm9udFNpemVcIjogXCIzMnJweFwiLFxyXG4gICAgICAgICAgICAgIFwiZm9udFdlaWdodFwiOiBcImJvbGRcIixcclxuICAgICAgICAgICAgICBcInRleHRBbGlnblwiOiBcImxlZnRcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0ZXh0XCIsXHJcbiAgICAgICAgICAgIFwidGV4dFwiOiBcIumCgOivt+aCqOWPguS4jua0u+WKqFwiLFxyXG4gICAgICAgICAgICBcImNzc1wiOiB7XHJcbiAgICAgICAgICAgICAgXCJjb2xvclwiOiBcIiNmZmZcIixcclxuICAgICAgICAgICAgICBcInRvcFwiOiBcIjgwcnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJsZWZ0XCI6IFwiMTYwcnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJmb250U2l6ZVwiOiBcIjI4cnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJ0ZXh0QWxpZ25cIjogXCJsZWZ0XCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2VcIixcclxuICAgICAgICAgICAgXCJ1cmxcIjogZGV0YWlsLmNvdmVySW1hZ2VVcmxbMF18fCcnLFxyXG4gICAgICAgICAgICBcImNzc1wiOiB7XHJcbiAgICAgICAgICAgICAgXCJ3aWR0aFwiOiBcIjYwMHJweFwiLFxyXG4gICAgICAgICAgICAgIFwiaGVpZ2h0XCI6IFwiNjAwcnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJ0b3BcIjogXCIxODJycHhcIixcclxuICAgICAgICAgICAgICBcImxlZnRcIjogXCI3NnJweFwiLFxyXG4gICAgICAgICAgICAgIFwiYm9yZGVyUmFkaXVzXCI6IFwiMTBycHhcIixcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGV4dFwiLFxyXG4gICAgICAgICAgICBcInRleHRcIjogXCLvv6VcIixcclxuICAgICAgICAgICAgXCJjc3NcIjoge1xyXG4gICAgICAgICAgICAgIFwiY29sb3JcIjogXCIjZjIzMjMyXCIsXHJcbiAgICAgICAgICAgICAgXCJ0b3BcIjogXCI4MjBycHhcIixcclxuICAgICAgICAgICAgICBcImxlZnRcIjogXCI3NnJweFwiLFxyXG4gICAgICAgICAgICAgIFwiZm9udFNpemVcIjogXCIyOHJweFwiLFxyXG4gICAgICAgICAgICAgIFwidGV4dEFsaWduXCI6IFwibGVmdFwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRleHRcIixcclxuICAgICAgICAgICAgXCJ0ZXh0XCI6IGRldGFpbC5zYWxlc1ByaWNlfHwwLFxyXG4gICAgICAgICAgICBcImNzc1wiOiB7XHJcbiAgICAgICAgICAgICAgXCJjb2xvclwiOiBcIiNmMjMyMzJcIixcclxuICAgICAgICAgICAgICBcInRvcFwiOiBcIjgwOHJweFwiLFxyXG4gICAgICAgICAgICAgIFwibGVmdFwiOiBcIjEwOHJweFwiLFxyXG4gICAgICAgICAgICAgIFwiZm9udFNpemVcIjogXCI0NHJweFwiLFxyXG4gICAgICAgICAgICAgIFwiZm9udFdlaWdodFwiOiBcImJvbGRcIixcclxuICAgICAgICAgICAgICBcInRleHRBbGlnblwiOiBcImxlZnRcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0ZXh0XCIsXHJcbiAgICAgICAgICAgIFwidGV4dFwiOiBwcm9tb3Rpb25zVHlwZVtkZXRhaWwuZm9ybUlkXXx8JycsXHJcbiAgICAgICAgICAgIFwiY3NzXCI6IHtcclxuICAgICAgICAgICAgICBcImNvbG9yXCI6IFwiI2YyMzIzMlwiLFxyXG4gICAgICAgICAgICAgIFwiYmFja2dyb3VuZFwiOiBcInJnYigyNDksIDIzMCwgMjMxKVwiLFxyXG4gICAgICAgICAgICAgIFwid2lkdGhcIjogXCIxMTBycHhcIixcclxuICAgICAgICAgICAgICBcImhlaWdodFwiOiBcIjM1cnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJ0b3BcIjogXCI4MjBycHhcIixcclxuICAgICAgICAgICAgICBcImxlZnRcIjogYCR7MTMwICsgKGRldGFpbC5zYWxlc1ByaWNlLnRvU3RyaW5nKCkubGVuZ3RoKjI1KX1ycHhgLFxyXG4gICAgICAgICAgICAgIFwiYm9yZGVyUmFkaXVzXCI6IFwiMjBycHhcIixcclxuICAgICAgICAgICAgICBcInBhZGRpbmdcIjogXCI1cnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJmb250U2l6ZVwiOiBcIjI4cnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJsaW5lSGVpZ2h0XCI6IFwiMzVycHhcIixcclxuICAgICAgICAgICAgICBcInRleHRBbGlnblwiOiBcImNlbnRlclwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRleHRcIixcclxuICAgICAgICAgICAgXCJ0ZXh0XCI6IGRldGFpbC5mb3JtSWQ9PTcxMDgwMz8nJzon5Lu35qC8JyxcclxuICAgICAgICAgICAgXCJjc3NcIjoge1xyXG4gICAgICAgICAgICAgIFwiY29sb3JcIjogXCIjOTk5XCIsXHJcbiAgICAgICAgICAgICAgXCJ0b3BcIjogXCI4ODRycHhcIixcclxuICAgICAgICAgICAgICBcImxlZnRcIjogXCI4NHJweFwiLFxyXG4gICAgICAgICAgICAgIFwiZm9udFNpemVcIjogXCIyOHJweFwiLFxyXG4gICAgICAgICAgICAgIFwidGV4dEFsaWduXCI6IFwibGVmdFwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRleHRcIixcclxuICAgICAgICAgICAgXCJ0ZXh0XCI6IGRldGFpbC5mb3JtSWQ9PTcxMDgwMz8nJzpg77+lJHtkZXRhaWwub3JpZ2luYWxQcmljZXx8MH1gLFxyXG4gICAgICAgICAgICBcImNzc1wiOiB7XHJcbiAgICAgICAgICAgICAgXCJjb2xvclwiOiBcIiM5OTlcIixcclxuICAgICAgICAgICAgICBcInRvcFwiOiBcIjg4NXJweFwiLFxyXG4gICAgICAgICAgICAgIFwibGVmdFwiOiBcIjE1MHJweFwiLFxyXG4gICAgICAgICAgICAgIFwiZm9udFNpemVcIjogXCIyNHJweFwiLFxyXG4gICAgICAgICAgICAgIFwidGV4dERlY29yYXRpb25cIjogXCJsaW5lLXRocm91Z2hcIixcclxuICAgICAgICAgICAgICBcInRleHRBbGlnblwiOiBcImxlZnRcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0ZXh0XCIsXHJcbiAgICAgICAgICAgIFwidGV4dFwiOiBcIumZkOaXtuS8mOaDoFwiLFxyXG4gICAgICAgICAgICBcImNzc1wiOiB7XHJcbiAgICAgICAgICAgICAgXCJjb2xvclwiOiBcIiNmMjMyMzJcIixcclxuICAgICAgICAgICAgICBcIndpZHRoXCI6IFwiMTM1cnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJoZWlnaHRcIjogXCI0MHJweFwiLFxyXG4gICAgICAgICAgICAgIFwidG9wXCI6IGRldGFpbC5mb3JtSWQ9PTcxMDgwMz8nODg1cnB4JzpcIjk0NnJweFwiLFxyXG4gICAgICAgICAgICAgIFwibGVmdFwiOiBcIjg4cnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJwYWRkaW5nXCI6IFwiNnJweFwiLFxyXG4gICAgICAgICAgICAgIFwiYm9yZGVyUmFkaXVzXCI6IFwiNXJweFwiLFxyXG4gICAgICAgICAgICAgIFwiYm9yZGVyV2lkdGhcIjogXCIycnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJib3JkZXJDb2xvclwiOiBcIiNmZGU0ZTdcIixcclxuICAgICAgICAgICAgICBcImZvbnRTaXplXCI6IFwiMjhycHhcIixcclxuICAgICAgICAgICAgICBcImxpbmVIZWlnaHRcIjogXCI0MHJweFwiLFxyXG4gICAgICAgICAgICAgIFwidGV4dEFsaWduXCI6IFwiY2VudGVyXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGV4dFwiLFxyXG4gICAgICAgICAgICBcInRleHRcIjogYOW3suWUriAke2RldGFpbC5vcmRlclRpbWVzfHwwfWAsXHJcbiAgICAgICAgICAgIFwiY3NzXCI6IHtcclxuICAgICAgICAgICAgICBcImNvbG9yXCI6IFwiIzk5OVwiLFxyXG4gICAgICAgICAgICAgIFwid2lkdGhcIjogXCIyMDBycHhcIixcclxuICAgICAgICAgICAgICBcInRvcFwiOiBcIjgyMHJweFwiLFxyXG4gICAgICAgICAgICAgIFwibGVmdFwiOiBcIjQ3NnJweFwiLFxyXG4gICAgICAgICAgICAgIFwiZm9udFNpemVcIjogXCIyOHJweFwiLFxyXG4gICAgICAgICAgICAgIFwidGV4dEFsaWduXCI6IFwicmlnaHRcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0ZXh0XCIsXHJcbiAgICAgICAgICAgIFwidGV4dFwiOiBg44CQJHt3eC5nbG9iYWxEYXRhLnNldHRpbmdzLm5hbWV944CRJHtkZXRhaWwudGl0bGV9YHx8J+a0u+WKqOagh+mimCcsXHJcbiAgICAgICAgICAgIFwiY3NzXCI6IHtcclxuICAgICAgICAgICAgICBcImNvbG9yXCI6IFwiIzMzM1wiLFxyXG4gICAgICAgICAgICAgIFwid2lkdGhcIjogXCIzNjBycHhcIixcclxuICAgICAgICAgICAgICBcInRvcFwiOiBkZXRhaWwuZm9ybUlkPT03MTA4MDM/Jzk4MHJweCc6XCIxMDIwcnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJsZWZ0XCI6IFwiNzZycHhcIixcclxuICAgICAgICAgICAgICBcImZvbnRTaXplXCI6IFwiMzZycHhcIixcclxuICAgICAgICAgICAgICBcIm1heExpbmVzXCI6IFwiMlwiLFxyXG4gICAgICAgICAgICAgIFwibGluZUhlaWdodFwiOic1MHJweCcsXHJcbiAgICAgICAgICAgICAgXCJ0ZXh0QWxpZ25cIjogXCJsZWZ0XCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2VcIixcclxuICAgICAgICAgICAgXCJ1cmxcIjogcXJDb2RlVXJsLFxyXG4gICAgICAgICAgICBcImNzc1wiOiB7XHJcbiAgICAgICAgICAgICAgXCJ3aWR0aFwiOiBcIjIwMHJweFwiLFxyXG4gICAgICAgICAgICAgIFwiaGVpZ2h0XCI6IFwiMTAwcHhcIixcclxuICAgICAgICAgICAgICBcInRvcFwiOiBcIjg4OHJweFwiLFxyXG4gICAgICAgICAgICAgIFwibGVmdFwiOiBcIjQ3NnJweFwiLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0ZXh0XCIsXHJcbiAgICAgICAgICAgIFwidGV4dFwiOiBcIumVv+aMieaJq+eggeivhuWIq+WPguS4jn5cIixcclxuICAgICAgICAgICAgXCJjc3NcIjoge1xyXG4gICAgICAgICAgICAgIFwiY29sb3JcIjogXCIjNjY2XCIsXHJcbiAgICAgICAgICAgICAgXCJ0b3BcIjogXCIxMTA1cnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJsZWZ0XCI6IFwiNDc2cnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJmb250U2l6ZVwiOiBcIjI0cnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJ0ZXh0QWxpZ25cIjogXCJsZWZ0XCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICAgfTtcclxuICAgICAgbGV0IGltZ0RyYXdMaXZlID0ge1xyXG4gICAgICAgIHdpZHRoOiAnNzUwcnB4JyxcclxuICAgICAgICBoZWlnaHQ6ICcxMzM0cnB4JyxcclxuICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXHJcbiAgICAgICAgdmlld3M6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2VcIixcclxuICAgICAgICAgICAgXCJ1cmxcIjogXCIvYXNzZXRzL2ltYWdlcy9wb3N0ZXItYmcucG5nXCIsXHJcbiAgICAgICAgICAgIFwiY3NzXCI6IHtcclxuICAgICAgICAgICAgICBcIndpZHRoXCI6IFwiNzUwcnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJoZWlnaHRcIjogXCIxMzM0cnB4XCIsXHJcbiAgICAgICAgICAgICAgXCJ0b3BcIjogXCIwcHhcIixcclxuICAgICAgICAgICAgICBcImxlZnRcIjogXCIwcHhcIixcclxuICAgICAgICAgICAgICBcInJvdGF0ZVwiOiBcIjBcIixcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogJ2ltYWdlJyxcclxuICAgICAgICAgICAgdXJsOiBsaXZlUm9vbS5TaGFyZUltZ1VuaWRVcmwsXHJcbiAgICAgICAgICAgIGNzczoge1xyXG4gICAgICAgICAgICAgIHRvcDogJzEwcnB4JyxcclxuICAgICAgICAgICAgICBsZWZ0OiAnMTBycHgnLFxyXG4gICAgICAgICAgICAgIHJpZ2h0OiAnMTBycHgnLFxyXG4gICAgICAgICAgICAgIHdpZHRoOiAnNzMwcnB4JyxcclxuICAgICAgICAgICAgICBoZWlnaHQ6ICc2MzBycHgnLFxyXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzE2cnB4J1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogJ2ltYWdlJyxcclxuICAgICAgICAgICAgdXJsOiBsaXZlUm9vbS5BbmNob3JJbWdVbmlkVXJsIHx8ICcvYXNzZXRzL2ltYWdlcy9kZWZhdWx0LWF2YXRhci5wbmcnLFxyXG4gICAgICAgICAgICBjc3M6IHtcclxuICAgICAgICAgICAgICB0b3A6ICc1OTRycHgnLFxyXG4gICAgICAgICAgICAgIGxlZnQ6ICczMjhycHgnLFxyXG4gICAgICAgICAgICAgIHdpZHRoOiAnOTZycHgnLFxyXG4gICAgICAgICAgICAgIGhlaWdodDogJzk2cnB4JyxcclxuICAgICAgICAgICAgICBib3JkZXJXaWR0aDogJzZycHgnLFxyXG4gICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI0ZGRicsXHJcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnOTZycHgnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgICAgICAgdGV4dDogbGl2ZVJvb20uQW5jaG9yTmFtZSB8fCAn5pi156ewJyxcclxuICAgICAgICAgICAgY3NzOiB7XHJcbiAgICAgICAgICAgICAgdG9wOiAnNzIycnB4JyxcclxuICAgICAgICAgICAgICBmb250U2l6ZTogJzI4cnB4JyxcclxuICAgICAgICAgICAgICBsZWZ0OiAnMzc1cnB4JyxcclxuICAgICAgICAgICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgY29sb3I6ICcjM2MzYzNjJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXHJcbiAgICAgICAgICAgIHRleHQ6IGDpgoDor7fmgqjlj4LkuI7nm7Tmkq1gLFxyXG4gICAgICAgICAgICBjc3M6IHtcclxuICAgICAgICAgICAgICB0b3A6ICc3NjZycHgnLFxyXG4gICAgICAgICAgICAgIGxlZnQ6ICczNzVycHgnLFxyXG4gICAgICAgICAgICAgIGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICBmb250U2l6ZTogJzI4cnB4JyxcclxuICAgICAgICAgICAgICBjb2xvcjogJyMzYzNjM2MnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgICAgICAgdGV4dDogYCR7KGxpdmVSb29tLlJvb21OYW1lKSB8fCAn5rS75Yqo5qCH6aKYJ30gYCxcclxuICAgICAgICAgICAgY3NzOiB7XHJcbiAgICAgICAgICAgICAgdG9wOiAnODIwcnB4JyxcclxuICAgICAgICAgICAgICBsZWZ0OiAnMzc1cnB4JyxcclxuICAgICAgICAgICAgICBtYXhMaW5lczogMSxcclxuICAgICAgICAgICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxyXG4gICAgICAgICAgICAgIGZvbnRTaXplOiAnNDRycHgnLFxyXG4gICAgICAgICAgICAgIGNvbG9yOiAnIzNjM2MzYydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxyXG4gICAgICAgICAgICB0ZXh0OiBgYCxcclxuICAgICAgICAgICAgY3NzOiB7XHJcbiAgICAgICAgICAgICAgdG9wOiAnNzY1cnB4JyxcclxuICAgICAgICAgICAgICBsZWZ0OiAnMzc1cnB4JyxcclxuICAgICAgICAgICAgICBtYXhMaW5lczogMSxcclxuICAgICAgICAgICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxyXG4gICAgICAgICAgICAgIGZvbnRTaXplOiAnNDRycHgnLFxyXG4gICAgICAgICAgICAgIGNvbG9yOiAnI2YyMzIzMidcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogJ2ltYWdlJyxcclxuICAgICAgICAgICAgdXJsOiBxckNvZGVVcmwsXHJcbiAgICAgICAgICAgIGNzczoge1xyXG4gICAgICAgICAgICAgIHRvcDogJzk3MHJweCcsXHJcbiAgICAgICAgICAgICAgbGVmdDogJzM5MHJweCcsXHJcbiAgICAgICAgICAgICAgd2lkdGg6ICczMDBycHgnLFxyXG4gICAgICAgICAgICAgIGhlaWdodDogJzMwMHJweCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxyXG4gICAgICAgICAgICB0ZXh0OiBg6ZW/5oyJ5LqM57u056CB6K+G5Yir5Y+C5LiOYCxcclxuICAgICAgICAgICAgY3NzOiB7XHJcbiAgICAgICAgICAgICAgdG9wOiAnMTEwMHJweCcsXHJcbiAgICAgICAgICAgICAgbGVmdDogJzU1cnB4JyxcclxuICAgICAgICAgICAgICBmb250U2l6ZTogJzMycnB4JyxcclxuICAgICAgICAgICAgICBjb2xvcjogJyMzYzNjM2MnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXVxyXG4gICAgICB9O1xyXG4gICAgICBpZiAoaXNMaXZlKXtcclxuICAgICAgICBpbWdEcmF3ID0gaW1nRHJhd0xpdmU7XHJcbiAgICAgIH1cclxuICAgICAgaWYoaXNEZXRhaWwpIHtcclxuICAgICAgICBpbWdEcmF3ID0gaW1nRHJhd1Byb21vdGlvbnM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGltZ0RyYXc7XHJcbiAgICB9LFxyXG4gICAgb25JbWdFcnIoKSB7XHJcbiAgICAgIHd4LmhpZGVMb2FkaW5nKClcclxuICAgICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgICB0aXRsZTogJ+eUn+aIkOWIhuS6q+WbvuWksei0pe+8jOivt+WIt+aWsOmhtemdoumHjeivlSdcclxuICAgICAgfSlcclxuICAgIH0sXHJcbiAgICBvbkltZ09LKGUpIHtcclxuICAgICAgd3guaGlkZUxvYWRpbmcoKVxyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIHNoYXJlUGF0aDogZS5kZXRhaWwucGF0aCxcclxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgICB9KVxyXG4gICAgICAvL+mAmuefpeWklumDqOe7mOWItuWujOaIkO+8jOmHjee9rmlzQ2FuRHJhd+S4umZhbHNlXHJcbiAgICAgIHRoaXMudHJpZ2dlckV2ZW50KCdpbml0RGF0YScpXHJcbiAgICB9LFxyXG4gICAgcHJldmVudERlZmF1bHQoKSB7IH0sXHJcbiAgICAvLyDkv53lrZjlm77niYdcclxuICAgIGhhbmRsZVNhdmVQaG90bygpIHtcclxuICAgICAgd3guc2hvd0xvYWRpbmcoe1xyXG4gICAgICAgIHRpdGxlOiAn5q2j5Zyo5L+d5a2YLi4uJyxcclxuICAgICAgICBtYXNrOiB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIHd4LnNhdmVJbWFnZVRvUGhvdG9zQWxidW0oe1xyXG4gICAgICAgIGZpbGVQYXRoOiB0aGlzLmRhdGEuc2hhcmVQYXRoLFxyXG4gICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgIHd4LnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgIHRpdGxlOiAn5L+d5a2Y5oiQ5YqfJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgICAgIHZpc2libGU6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KCdjbG9zZScpXHJcbiAgICAgICAgICB9LCAzMDApXHJcbiAgICAgICAgfSxcclxuICAgICAgICBmYWlsOiAoKSA9PiB7XHJcbiAgICAgICAgICB3eC5nZXRTZXR0aW5nKHtcclxuICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICBsZXQgYXV0aFNldHRpbmcgPSByZXMuYXV0aFNldHRpbmdcclxuICAgICAgICAgICAgICBpZiAoIWF1dGhTZXR0aW5nWydzY29wZS53cml0ZVBob3Rvc0FsYnVtJ10pIHtcclxuICAgICAgICAgICAgICAgIHd4LnNob3dNb2RhbCh7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5o+Q56S6JyxcclxuICAgICAgICAgICAgICAgICAgY29udGVudDogJ+aCqOacquW8gOWQr+S/neWtmOWbvueJh+WIsOebuOWGjOeahOadg+mZkO+8jOivt+eCueWHu+ehruWumuWOu+W8gOWQr+adg+mZkO+8gScsXHJcbiAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5jb25maXJtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB3eC5vcGVuU2V0dGluZygpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB3eC5oaWRlTG9hZGluZygpXHJcbiAgICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICAgICAgdmlzaWJsZTogZmFsc2VcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoJ2Nsb3NlJylcclxuICAgICAgICAgIH0sIDMwMClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG59KVxyXG4iXX0=