{"remainingRequest":"/data/jenkins/workspace/badp-bcxin-web-5.x-dispatch-mobile/node_modules/vue-loader/lib/index.js??vue-loader-options!/data/jenkins/workspace/badp-bcxin-web-5.x-dispatch-mobile/src/components/timApp/trtc/calling-index.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-dispatch-mobile/src/components/timApp/trtc/calling-index.vue","mtime":1705482471713},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-dispatch-mobile/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-dispatch-mobile/node_modules/babel-loader/lib/index.js","mtime":456789000000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-dispatch-mobile/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-dispatch-mobile/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CmltcG9ydCB7IE5hdkJhciwgUG9wdXAsIFJhZGlvR3JvdXAsIFJhZGlvLCBJY29uLCBUb2FzdCB9IGZyb20gInZhbnQiOwppbXBvcnQgcnRjIGZyb20gIkAvY29tcG9uZW50cy9taXhpbnMvcnRjIjsKaW1wb3J0IHsgZ2V0Um9vbXMsIGxlYXZlIH0gZnJvbSAiQC9hcGkvcm9vbS1jb250cm9sbGVyIjsKaW1wb3J0IHtleGl0Um9vbSwgc2VuZFZpZGVvUm9vbU1zZ30gZnJvbSAiQC9hcGkvYmN4aW4vaWRlbnRpZnkiOwppbXBvcnQgQXZhdGFyIGZyb20gIkBjb21wb25lbnRzL2F2YXRhci52dWUiOwppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gInZ1ZXgiOwppbXBvcnQgZGF5anMgZnJvbSAiZGF5anMiOwppbXBvcnQgZHVyYXRpb24gZnJvbSAiZGF5anMvcGx1Z2luL2R1cmF0aW9uIjsKZGF5anMuZXh0ZW5kKGR1cmF0aW9uKTsKCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiQ2FsbExheWVyIiwKICBjb21wb25lbnRzOiB7CiAgICBBdmF0YXIsCiAgICBbUG9wdXAubmFtZV06IFBvcHVwLAogICAgW05hdkJhci5uYW1lXTogTmF2QmFyLAogICAgW1JhZGlvR3JvdXAubmFtZV06IFJhZGlvR3JvdXAsCiAgICBbUmFkaW8ubmFtZV06IFJhZGlvLAogICAgW0ljb24ubmFtZV06IEljb24sCiAgICBbVG9hc3QubmFtZV06IFRvYXN0LAogIH0sCiAgbWl4aW5zOiBbcnRjXSwKICBwcm9wczogewogICAgdmlzaWJsZTogQm9vbGVhbiwKICAgIGdyb3VwQ2FsbDogQm9vbGVhbiwgLy8g5piv5ZCm5aSa5Lq65qih5byPCiAgICBtZW1iZXJMaXN0OiB7CiAgICAgIHR5cGU6IEFycmF5LAogICAgICBkZWZhdWx0KCkgewogICAgICAgIHJldHVybiBbXTsKICAgICAgfSwKICAgIH0sCiAgICBhbGxNZW1iZXJzOiB7CiAgICAgIC8vIOmZpOiwg+W6puS6uuWkluaJgOacieWPr+mAieeahOWPguS4juiAhQogICAgICB0eXBlOiBBcnJheSwKICAgICAgZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4gW107CiAgICAgIH0sCiAgICB9LAogICAgdHlwZTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICJ2aWRlbyIsCiAgICAgIHZhbGlkYXRlOiAodmFsdWUpID0+IHsKICAgICAgICByZXR1cm4gWyJ2aWRlbyIsICJhdWRpbyJdLmluY2x1ZGVzKHZhbHVlKTsKICAgICAgfSwKICAgIH0sCiAgICBhdWRpbzogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlLAogICAgfSwKICAgIHZpZGVvOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUsCiAgICB9LAogICAgeWFyZG1hblR5cGU6IHsKICAgICAgLy8g6LCD5bqm57G75Z6L77yaMeinhumikeiwg+W6piAyIOinhumikeS4iuaLie+8mumZpOS6huinhumikeS4iuaLieS8oDLvvIzlhbbku5bpn7PpopHosIPluqbkuI7op4bpopHosIPluqbpg73kvKAxCiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIjEiLAogICAgfSwKICB9LAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBkaWFsbGluZzogZmFsc2UsIC8vIOaYr+WQpuaLqOaJk+eUteivneS4rQogICAgICBjYWxsaW5nOiBmYWxzZSwgLy8g5piv5ZCm6YCa6K+d5LitCiAgICAgIGlzRGlhbGxlZDogZmFsc2UsIC8vIOaYr+WQpuiiq+WRvOWPqwogICAgICBjdXJyZW50RGF0ZXRpbWU6ICIwMDowMCIsCiAgICAgIHN0YXJ0VGltZTogbnVsbCwKICAgICAgdGltZXI6IG51bGwsCiAgICAgIGxheW91dDogMywKICAgICAgc2hvd0xheW91dDogZmFsc2UsCiAgICAgIGRpYWxsaW5nVGltZTogMCwgLy8gMVYx5ouo5Y+35YCS6K6h5pe2CiAgICAgIGRpYWxsaW5nVGltZXI6IG51bGwsIC8vIDFWMeaLqOWPt+WAkuiuoeaXtuWumuaXtuWZqAogICAgICByb29tSWQ6ICIiLAogICAgICBhbGxNZW1iZXJzVGltZXI6IG51bGwsCiAgICB9OwogIH0sCiAgY29tcHV0ZWQ6IHsKICAgIC4uLm1hcFN0YXRlKHsKICAgICAgY3VycmVudFVzZXJQcm9maWxlOiAoc3RhdGUpID0+IHN0YXRlLnVzZXIuY3VycmVudFVzZXJQcm9maWxlLAogICAgICB1c2VySUQ6IChzdGF0ZSkgPT4gc3RhdGUudXNlci51c2VySUQsCiAgICAgIHVzZXJTaWc6IChzdGF0ZSkgPT4gc3RhdGUudXNlci51c2VyU2lnLAogICAgICBzZGtBcHBJRDogKHN0YXRlKSA9PiBzdGF0ZS51c2VyLnNka0FwcElELAogICAgfSksCiAgICB0aXRsZSgpIHsKICAgICAgcmV0dXJuICLntKfmgKXlkbzlj6vkuK0iOwogICAgfSwKICAgIHNob3dDYWxsaW5nOiB7CiAgICAgIGdldCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5kaWFsbGluZyB8fCB0aGlzLmNhbGxpbmcgfHwgdGhpcy5pc0RpYWxsZWQ7CiAgICAgIH0sCiAgICAgIHNldCh2YWx1ZSkgewogICAgICAgIHRoaXMuZGlhbGxpbmcgPSB2YWx1ZTsKICAgICAgICB0aGlzLmNhbGxpbmcgPSB2YWx1ZTsKICAgICAgICB0aGlzLmlzRGlhbGxlZCA9IHZhbHVlOwogICAgICB9LAogICAgfSwKICAgIG1lbWJlckxpc3RTb3J0KCkgewogICAgICByZXR1cm4gWy4uLnRoaXMubWVtYmVyTGlzdF0uc29ydCgoYSwgYikgPT4gewogICAgICAgIHJldHVybiBhPy5zdGF0ZT8ubG9jYWxlQ29tcGFyZShiPy5zdGF0ZSk7CiAgICAgIH0pOwogICAgfSwKICB9LAogIHdhdGNoOiB7CiAgICBtZW1iZXJMaXN0OiB7CiAgICAgIGhhbmRsZXIodmFsdWUpIHsKICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gMCkgewogICAgICAgICAgdGhpcy5sYXlvdXQgPSAzOwogICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+PSAzKSB7CiAgICAgICAgICAgIHRoaXMubGF5b3V0ID0gNjsKICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+PSA2KSB7CiAgICAgICAgICAgICAgdGhpcy5sYXlvdXQgPSA5OwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICAvKioKICAgICAgICAgICAqIOiwg+W6pumAmuiur+S4reS7peS4i+WHoOenjeaDheWGte+8jOiwg+W6pueql+WPo+ebtOaOpeWFs+mXre+8mgogICAgICAgICAgICog56ys5LiA44CB5YWo5ZGY5o6l5ZCs5ZCO6YO95oyC5patCiAgICAgICAgICAgKiDnrKzkuozjgIHlhajlkZjpg73ooqvnp7vpmaQKICAgICAgICAgICAqIOesrOS4ieOAgeWFqOWRmOWFqOmDqOi2heaXtuacquaOpeWQrAogICAgICAgICAgICog56ys5Zub44CB6LCD5bqm56qX5Y+j5Lit77yM5Y+q5Ymp6LCD5bqm5ZGY5LiA5LiqCiAgICAgICAgICAgKi8KICAgICAgICAgIGNvbnN0IG9mZmxpbmVNZW1iZXJzID0gWy4uLnZhbHVlXS5maWx0ZXIoKHgpID0+IHguc3RhdGUgPT09ICJESVNDT05ORUNURUQiKS5sZW5ndGg7CiAgICAgICAgICBjb25zb2xlLmxvZygib2ZmbGluZSBtZW1iZXJzIiwgb2ZmbGluZU1lbWJlcnMsIHZhbHVlLmxlbmd0aCk7CiAgICAgICAgICBpZiAob2ZmbGluZU1lbWJlcnMgPj0gdmFsdWUubGVuZ3RoICYmICh0aGlzLmNhbGxpbmcgfHwgdGhpcy5kaWFsbGluZykpIHsKICAgICAgICAgICAgdGhpcy5vbkNsb3NlKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LAogICAgICBkZWVwOiB0cnVlLAogICAgICBpbW1lZGlhdGU6IHRydWUsCiAgICB9LAogICAgLyoqCiAgICAgKiBA5LiA5a+55LiA6KKr6LCD5bqm5pa55rKh5pyJ5o6l55qE6K+dMeWIhumSn+WQjuiwg+W6puaWueebtOaOpee7k+adnwogICAgICogQHBhcmFtIHZhbHVlCiAgICAgKi8KICAgIGRpYWxsaW5nVGltZSh2YWx1ZSkgewogICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPj0gNjAgLyogJiYgcHJvY2Vzcy5lbnYuVlVFX0FQUF9FTlYgIT09ICJkZXZlbG9wbWVudCIgKi8pIHsKICAgICAgICB0aGlzLm9uQ2xvc2UoKTsKICAgICAgfQogICAgfSwKICB9LAogIG1ldGhvZHM6IHsKICAgIG9uT3BlbigpIHsKICAgICAgdGhpcy5zdGFydFRpbWUgPSBuZXcgRGF0ZSgpOwogICAgICB0aGlzLnNldFRpbWVyKCk7CiAgICB9LAogICAgb25DbG9zZSgpIHsKICAgICAgdGhpcy5zaG93Q2FsbGluZyA9IGZhbHNlOwogICAgfSwKICAgIGhhbmRsZUxlYXZlKCkgewogICAgICB0aGlzLmVuZERpYWxpbmdUaW1lQ291bnRpbmcoKTsKICAgICAgdGhpcy5lbmRNZW1iZXJUaW1lcigpOwogICAgICB0aGlzLmVuZEN1cnJlbnRUaW1lcigpOwogICAgICB0aGlzLmxlYXZlKCkudGhlbihhc3luYyAoKSA9PiB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGF3YWl0IGV4aXRSb29tKHsgcm9vbU5vOiB0aGlzLnJvb21JZCB9KTsKICAgICAgICAgIHRoaXMuY2xvc2UoKTsKICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgY29uc29sZS5lcnJvcigibGVhdmUgcm9vbSBlcnJvciIsIGVycm9yKTsKICAgICAgICAgIHRoaXMuYWRkRmFpbGVkTG9nKGBMZWF2ZSByb29tIGZhaWxlZC4gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gKTsKICAgICAgICAgIC8vIHRoaXMucmVwb3J0RmFpbGVkRXZlbnQoImxlYXZlUm9vbSIsIGVycm9yKTsKICAgICAgICAgIHRocm93IGVycm9yOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgY2xvc2UoKSB7CiAgICAgIGxlYXZlKHRoaXMucm9vbUlkKS50aGVuKChyZXMpID0+IHsKICAgICAgICBjb25zb2xlLmxvZyhyZXMpOwogICAgICAgIGNvbnN0IG1lbWJlckxpc3QgPSB0aGlzLm1lbWJlckxpc3QubWFwKCh4KSA9PiB7CiAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAuLi54LAogICAgICAgICAgICBzdGF0ZTogIkNPTk5FQ1RJTkciLAogICAgICAgICAgICBhY3Rpb246ICIiLAogICAgICAgICAgICB0aW1lcjogMCwKICAgICAgICAgICAgdGltZW91dDogZmFsc2UsCiAgICAgICAgICAgIGJlS2lja091dDogZmFsc2UsCiAgICAgICAgICAgIGhhbmd1cDogZmFsc2UsCiAgICAgICAgICB9OwogICAgICAgIH0pOwogICAgICAgIHRoaXMuJGVtaXQoInVwZGF0ZTptZW1iZXJMaXN0IiwgbWVtYmVyTGlzdCk7CiAgICAgICAgLy8gdGhpcy4kc3RvcmUuY29tbWl0KCJUT0dHTEVfRElTUEFUQ0hJTkciLCBmYWxzZSk7CiAgICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KCJTRVRfUk9PTV9JRCIsIG51bGwpOwogICAgICAgIHRoaXMuJGVtaXQoImNsb3NlIik7CiAgICAgIH0pOwogICAgfSwKICAgIHRpbWVGb3JtYXQoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpIHsKICAgICAgaWYgKGhvdXJzID4gMCkgewogICAgICAgIGlmIChob3VycyA8IDEwKSB7CiAgICAgICAgICBob3VycyA9ICIwIiArIGhvdXJzOwogICAgICAgIH0KICAgICAgICBpZiAobWludXRlcyA8IDEwKSB7CiAgICAgICAgICBtaW51dGVzID0gIjAiICsgbWludXRlczsKICAgICAgICB9CiAgICAgICAgaWYgKHNlY29uZHMgPCAxMCkgewogICAgICAgICAgc2Vjb25kcyA9ICIwIiArIHNlY29uZHM7CiAgICAgICAgfQogICAgICAgIHJldHVybiBob3VycyArICI6IiArIG1pbnV0ZXMgKyAiOiIgKyBzZWNvbmRzOwogICAgICB9IGVsc2UgewogICAgICAgIGlmIChtaW51dGVzID4gMCkgewogICAgICAgICAgaWYgKG1pbnV0ZXMgPCAxMCkgewogICAgICAgICAgICBtaW51dGVzID0gIjAiICsgbWludXRlczsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzZWNvbmRzIDwgMTApIHsKICAgICAgICAgICAgc2Vjb25kcyA9ICIwIiArIHNlY29uZHM7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gbWludXRlcyArICI6IiArIHNlY29uZHM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlmIChzZWNvbmRzIDwgMTApIHsKICAgICAgICAgICAgc2Vjb25kcyA9ICIwIiArIHNlY29uZHM7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gIjAwOiIgKyBzZWNvbmRzOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIHNldFRpbWVyKCkgewogICAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgY29uc3QgeCA9IGRheWpzKCk7CiAgICAgICAgY29uc3QgeSA9IGRheWpzKHRoaXMuc3RhcnRUaW1lKTsKICAgICAgICBjb25zdCBjdXJyZW50SG91ciA9IGRheWpzLmR1cmF0aW9uKHguZGlmZih5KSkuZ2V0KCJob3VycyIpOwogICAgICAgIGNvbnN0IGN1cnJlbnRNaW4gPSBkYXlqcy5kdXJhdGlvbih4LmRpZmYoeSkpLmdldCgibWludXRlcyIpOwogICAgICAgIGNvbnN0IGN1cnJlbnRTZWNvbmQgPSBkYXlqcy5kdXJhdGlvbih4LmRpZmYoeSkpLmdldCgic2Vjb25kcyIpOwogICAgICAgIHRoaXMuY3VycmVudERhdGV0aW1lID0gdGhpcy50aW1lRm9ybWF0KGN1cnJlbnRIb3VyLCBjdXJyZW50TWluLCBjdXJyZW50U2Vjb25kKTsKICAgICAgICB0aGlzLnNldFRpbWVyKCk7CiAgICAgIH0sIDEwMDApOwogICAgfSwKICAgIC8qKgogICAgICogQOWQjuWPsOaLqOWPt+aOpeWPowogICAgICogQHBhcmFtIHJvb21JZAogICAgICogQHBhcmFtIE1lbWJlckxpc3QKICAgICAqIEBwYXJhbSBVc2VMaXN0CiAgICAgKi8KICAgIHNlbmRSb29tTWVzc2FnZShyb29tSWQsIE1lbWJlckxpc3QsIFVzZUxpc3QpIHsKICAgICAgY29uc3QgdXNlckluZm8gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgidXNlckluZm8iKTsKICAgICAgaWYgKHVzZXJJbmZvKSB7CiAgICAgICAgY29uc3QgdXNlciA9IEpTT04ucGFyc2UodXNlckluZm8pOwogICAgICAgIGNvbnN0IHBhcmFtcyA9IHsKICAgICAgICAgIFJvb21Obzogcm9vbUlkLCAvL+aIv+mXtAogICAgICAgICAgdHlwZTogdGhpcy50eXBlLCAvL3ZpZGVvIG9yIGF1ZGlvCiAgICAgICAgICBNZW1iZXJMaXN0LAogICAgICAgICAgbmFtZTogdXNlci5uYW1lLCAvL+iwg+W6puiAheWQjeensAogICAgICAgICAgWWFyZG1hbl9OYW1lOiB1c2VyLnRlbmNlbnRVc2VySWQsIC8v6LCD5bqm6ICF5ZCN56ewCiAgICAgICAgICBZYXJkbWFuX1Rhc2tfTmFtZTogIuS4quS6uuiwg+W6piIsIC8v6LCD5bqm5Lu75Yqh5ZCN56ewCiAgICAgICAgICBZYXJkbWFuX1R5cGU6IHRoaXMueWFyZG1hblR5cGUsIC8v6LCD5bqm57G75Z6L77yaMeinhumikeiwg+W6piAyIOinhumikeS4iuaLie+8mumZpOS6huinhumikeS4iuaLieS8oDLvvIzlhbbku5bpn7PpopHosIPluqbkuI7op4bpopHosIPluqbpg73kvKAxCiAgICAgICAgICB5YXJkbWFuVHlwZTogdGhpcy55YXJkbWFuVHlwZSwgLy/osIPluqbnsbvlnovvvJox6KeG6aKR6LCD5bqmIDIg6KeG6aKR5LiK5ouJ77ya6Zmk5LqG6KeG6aKR5LiK5ouJ5LygMu+8jOWFtuS7lumfs+mikeiwg+W6puS4juinhumikeiwg+W6pumDveS8oDEKICAgICAgICAgIFlhcmRtYW5fVGFza19FeHBsYWluOiAi5Lu75Yqh6K+05piOIiwgLy/osIPluqbku7vliqHor7TmmI7vvIzpnZ7lv4XloasKICAgICAgICAgIC8vIFRyYW5zY3JpYmVyOiAiIiwgLy/lvZXliLbkurrlkZhjaWQs5aSa5Liq6YCX5Y+36ZqU5byA77yM6Z2e5b+F5aGrCiAgICAgICAgICBPcmlnaW5hdG9yOiB1c2VyLnRlbmNlbnRVc2VySWQgKyAiOyIgKyB1c2VyLnRlbmNlbnRVc2VySWQsIC8v5Y+R6LW35Lq6Y2lkO3VzZWlkCiAgICAgICAgICAvL+iiq+iwg+W6puinhumikeS6uuWRmCzot59NZW1iZXJMaXN05LiA5LiA5a+55bqUdWlkO2VtcGxveWVlaWQ7b3JnYW5pemF0aW9uSWQ7bmFtZTt0eXBlLC4uLgogICAgICAgICAgVXNlTGlzdCwKICAgICAgICAgIENvbUlkOiB1c2VyLm9yZ2FuaXphdGlvbklkLCAvL+iwg+W6puiAheWFrOWPuGlkCiAgICAgICAgfTsKICAgICAgICAvLyDlkI7nq6/ljrvnu5nooqvosIPluqbogIXnmoRhcHDmi6jlj7cKICAgICAgICBzZW5kVmlkZW9Sb29tTXNnKHBhcmFtcykudGhlbigocmVzKSA9PiB7CiAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpOwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBAMXYx5oiW6ICF6KeG6aKR5LiK5ouJ5pe277yM6K6h566X5ouo5Y+35pe26ZW/CiAgICAgKi8KICAgIHN0YXJ0RGlhbGluZ1RpbWVDb3VudGluZygpIHsKICAgICAgaWYgKHRoaXMueWFyZG1hblR5cGUgPT09ICIyIiB8fCB0aGlzLm1lbWJlckxpc3QubGVuZ3RoIDwgMikgewogICAgICAgIHRoaXMuZGlhbGxpbmdUaW1lciA9IHNldEludGVydmFsKCgpID0+IHsKICAgICAgICAgIHRoaXMuZGlhbGxpbmdUaW1lICs9IDE7CiAgICAgICAgfSwgMTAwMCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEDnu5PmnZ/mi6jlj7forqHml7YKICAgICAqLwogICAgZW5kRGlhbGluZ1RpbWVDb3VudGluZygpIHsKICAgICAgaWYgKHRoaXMuZGlhbGxpbmdUaW1lcikgewogICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5kaWFsbGluZ1RpbWVyKTsKICAgICAgICB0aGlzLmRpYWxsaW5nVGltZXIgPSBudWxsOwogICAgICAgIHRoaXMuZGlhbGxpbmdUaW1lID0gMDsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogQOe7k+adn+aIkOWRmOiuoeaXtgogICAgICovCiAgICBlbmRNZW1iZXJUaW1lcigpIHsKICAgICAgaWYgKHRoaXMuYWxsTWVtYmVyc1RpbWVyKSB7CiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmFsbE1lbWJlcnNUaW1lcik7CiAgICAgICAgdGhpcy5hbGxNZW1iZXJzVGltZXIgPSBudWxsOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBA57uT5p2f5pi+56S66K6h5pe2CiAgICAgKi8KICAgIGVuZEN1cnJlbnRUaW1lcigpIHsKICAgICAgdGhpcy5jdXJyZW50RGF0ZXRpbWUgPSAiMDA6MDAiOwogICAgICBpZiAodGhpcy50aW1lcikgewogICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTsKICAgICAgICB0aGlzLnRpbWVyID0gbnVsbDsKICAgICAgfQogICAgfSwKICAgIGFzeW5jIHZpZGVvQ2FsbGluZygpIHsKICAgICAgY29uc3QgdXNlckluZm8gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgidXNlckluZm8iKTsKICAgICAgbGV0IHJvb21Vc2VycyA9IFtdOwogICAgICBpZiAodXNlckluZm8pIHsKICAgICAgICBjb25zdCB1c2VyID0gSlNPTi5wYXJzZSh1c2VySW5mbyk7CiAgICAgICAgY29uc29sZS5sb2codXNlcik7CiAgICAgICAgcm9vbVVzZXJzLnB1c2goewogICAgICAgICAgZW1wbG95ZWVJZDogdXNlci5lbXBsb3llZUlkLAogICAgICAgICAgb3JnYW5pemF0aW9uSWQ6IHVzZXIub3JnYW5pemF0aW9uSWQsCiAgICAgICAgICB0ZW5jZW50VXNlcklkOiB1c2VyLnRlbmNlbnRVc2VySWQsCiAgICAgICAgICBzZWN1cml0eVN0YXRpb25JZDogIiIsCiAgICAgICAgICBzdXBlcnZpc2VEZXBhcnRJZDogIiIsCiAgICAgICAgICBzcG9uc29yOiB0cnVlLAogICAgICAgIH0pOwogICAgICAgIGdldFJvb21zKHsKICAgICAgICAgIHJvb21Vc2Vyczogcm9vbVVzZXJzLmNvbmNhdCgKICAgICAgICAgICAgdGhpcy5tZW1iZXJMaXN0Lm1hcCgoeCkgPT4gewogICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBlbXBsb3llZUlkOiB4LmlkLAogICAgICAgICAgICAgICAgb3JnYW5pemF0aW9uSWQ6IHgub3JnYW5pemF0aW9uSWQsCiAgICAgICAgICAgICAgICB0ZW5jZW50VXNlcklkOiB4LnRlbmNlbnRVc2VySWQsCiAgICAgICAgICAgICAgICBzZWN1cml0eVN0YXRpb25JZDogeC5zZWN1cml0eVN0YXRpb25JZCwKICAgICAgICAgICAgICAgIHN1cGVydmlzZURlcGFydElkOiB4LnN1cGVydmlzZURlcGFydElkLAogICAgICAgICAgICAgICAgc3BvbnNvcjogZmFsc2UsCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSkKICAgICAgICAgICksCiAgICAgICAgICBjb21tdW5pY2F0ZWRUeXBlOiB0aGlzLnR5cGUgPT09ICJ2aWRlbyIgPyAiVmlkZW8iIDogIkF1ZGlvIiwgLy/mlrDlop7kvKDlj4IKICAgICAgICAgIHlhcmRtYW5UeXBlOiB0aGlzLnlhcmRtYW5UeXBlLCAvL+iwg+W6puexu+Wei++8mjHop4bpopHosIPluqYgMiDop4bpopHkuIrmi4nvvJrpmaTkuobop4bpopHkuIrmi4nkvKAy77yM5YW25LuW6Z+z6aKR6LCD5bqm5LiO6KeG6aKR6LCD5bqm6YO95LygMQogICAgICAgIH0pCiAgICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHsgaWQsIHJvb21Vc2VycyB9ID0gcmVzOwogICAgICAgICAgICBjb25zb2xlLmxvZyhpZCk7CiAgICAgICAgICAgIGlmIChpZCA8PSAwKSB7CiAgICAgICAgICAgICAgdGhpcy5hZGRGYWlsZWRMb2coYOiiq+iwg+W6puS6uuaJgOWcqOS8geS4muiBlOWKqOWAvOS4jei2sywg5peg5rOV6L+b6KGM6LCD5bqm44CCYCk7CiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRoaXMuZGlhbGxpbmcgPSB0cnVlOyAvLyDmi6jlj7fkuK0KICAgICAgICAgICAgICAvLyAxdjHmiJbogIXop4bpopHkuIrmi4nml7bvvIzorqHnrpfmi6jlj7fml7bplb8KICAgICAgICAgICAgICB0aGlzLnN0YXJ0RGlhbGluZ1RpbWVDb3VudGluZygpOwogICAgICAgICAgICAgIC8vIOWIhuWIq+WvueaJgOacieWPguS8muS6uuiuoeaXtgogICAgICAgICAgICAgIHRoaXMuc2V0QWxsTWVtYmVyc1RpbWVyKCk7CiAgICAgICAgICAgICAgLy8g5Yid5aeL5YyW5a6i5oi356uvCiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5pbml0Q2xpZW50KCk7CiAgICAgICAgICAgICAgdGhpcy5yb29tSWQgPSBpZDsKICAgICAgICAgICAgICB0aGlzLiRzdG9yZS5jb21taXQoIlNFVF9ST09NX0lEIiwgdGhpcy5yb29tSWQpOwogICAgICAgICAgICAgIC8vIOWKoOWFpeaIv+mXtAogICAgICAgICAgICAgIGF3YWl0IHRoaXMuam9pbigpOwogICAgICAgICAgICAgIGF3YWl0IHRoaXMuaW5pdExvY2FsU3RyZWFtKHsKICAgICAgICAgICAgICAgIGF1ZGlvOiB0aGlzLmF1ZGlvLAogICAgICAgICAgICAgICAgdmlkZW86IHRoaXMudmlkZW8sCiAgICAgICAgICAgICAgfSk7IC8vIOWIneWni+ivneacrOWcsOa1gQogICAgICAgICAgICAgIGF3YWl0IHRoaXMucGxheUxvY2FsU3RyZWFtKCk7IC8vIOaSreaUvuacrOWcsOa1gQogICAgICAgICAgICAgIGF3YWl0IHRoaXMucHVibGlzaCgpOyAvLyDlj5HluIPmnKzlnLDmtYEKICAgICAgICAgICAgICAvLyBsZXQgdWlkTGlzdCA9IFtdLy/op4bpopHkurrlkZh1aWQKICAgICAgICAgICAgICAvLyBjb25zdCB7IG1vYmlsZVBob25lLCBpZCwgb3JnYW5pemF0aW9uSWQsIGRldmljZU51bWJlciwgdGVuY2VudFVzZXJJZCwgbmFtZSwgY2lkLCBzZWN1cml0eVN0YXRpb25JZCwgc3VwZXJ2aXNlRGVwYXJ0SWQgfSA9IGl0ZW07CiAgICAgICAgICAgICAgLy8gY29uc3QgaXRlbV9jaWQgPSBjaWQgfHwgdGVuY2VudFVzZXJJZAogICAgICAgICAgICAgIC8vIHVpZExpc3QucHVzaChgJHt0ZW5jZW50VXNlcklkfTske2lkfTske29yZ2FuaXphdGlvbklkfTske25hbWV9OyR7dHlwZX1gKQogICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJ+fn5+fnVzZXIiLCB1c2VyKTsKICAgICAgICAgICAgICBjb25zb2xlLmxvZygifn5+fn4iLCB0aGlzLm1lbWJlckxpc3QpOwogICAgICAgICAgICAgIGNvbnN0IG1lbWJlckxpc3QgPSByb29tVXNlcnMKICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2lkICYmIGl0ZW0uc3BvbnNvciA9PT0gZmFsc2UpCiAgICAgICAgICAgICAgICAubWFwKCh4KSA9PiB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB4LmNpZDsKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAuam9pbigiLCIpOwogICAgICAgICAgICAgIGNvbnN0IFVzZUxpc3QgPSB0aGlzLm1lbWJlckxpc3QKICAgICAgICAgICAgICAgIC5tYXAoKHgpID0+IHsKICAgICAgICAgICAgICAgICAgY29uc3QgeyBpZCwgb3JnYW5pemF0aW9uSWQsIHRlbmNlbnRVc2VySWQsIG5hbWUgfSA9IHg7CiAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IGl0ZW1fY2lkID0gY2lkIHx8IHRlbmNlbnRVc2VySWQKICAgICAgICAgICAgICAgICAgLy8gdWlkTGlzdC5wdXNoKGAke3RlbmNlbnRVc2VySWR9OyR7aWR9OyR7b3JnYW5pemF0aW9uSWR9OyR7bmFtZX07JHt0eXBlfWApCiAgICAgICAgICAgICAgICAgIHJldHVybiBgJHt0ZW5jZW50VXNlcklkfTske2lkfTske29yZ2FuaXphdGlvbklkfTske25hbWV9OyR7dGhpcy50eXBlfWA7CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmpvaW4oIiwiKTsKICAgICAgICAgICAgICB0aGlzLnNlbmRSb29tTWVzc2FnZSh0aGlzLnJvb21JZCwgbWVtYmVyTGlzdCwgVXNlTGlzdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pCiAgICAgICAgICAuY2F0Y2goKHsgcmVzcG9uc2UgfSkgPT4gewogICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7CiAgICAgICAgICAgIHRoaXMuYWRkRmFpbGVkTG9nKGAke3Jlc3BvbnNlLmRhdGEubWVzc2FnZX1gKTsKICAgICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgYXVkaW9DYWxsaW5nKCkge30sCiAgICAvKioKICAgICAqIEDmmL7npLrnlKjmiLflkI3nmoTmj5DnpLoKICAgICAqIEBwYXJhbSBpZAogICAgICogQHBhcmFtIG1lc3NhZ2UKICAgICAqIEBwYXJhbSBlcnIKICAgICAqLwogICAgdXNlckxvZyhpZCwgbWVzc2FnZSwgZXJyID0gZmFsc2UpIHsKICAgICAgY29uc3QgdXNlciA9IHRoaXMubWVtYmVyTGlzdC5maW5kKChtZW1iZXIpID0+IG1lbWJlci50ZW5jZW50VXNlcklkID09PSBpZCk7CiAgICAgIGlmICh1c2VyKSB7CiAgICAgICAgY29uc29sZS5sb2codXNlcik7CiAgICAgICAgaWYgKGVycikgewogICAgICAgICAgdGhpcy5hZGRGYWlsZWRMb2coYFske3VzZXIubmFtZX1dICR7bWVzc2FnZX1gKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5hZGRTdWNjZXNzTG9nKGBbJHt1c2VyLm5hbWV9XSAke21lc3NhZ2V9YCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgYWRkU3VjY2Vzc0xvZyhtZXNzYWdlKSB7CiAgICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UpOwogICAgICBUb2FzdC5zdWNjZXNzKG1lc3NhZ2UpOwogICAgICAvLyBOb3RpZnkoeyB0eXBlOiAnc3VjY2VzcycsIG1lc3NhZ2UgfSk7CiAgICB9LAogICAgYWRkRmFpbGVkTG9nKG1lc3NhZ2UpIHsKICAgICAgLy8gTm90aWZ5KHsgdHlwZTogImRhbmdlciIsIG1lc3NhZ2UgfSk7CiAgICAgIFRvYXN0LmZhaWwobWVzc2FnZSk7CiAgICB9LAogICAgaGFuZGxlTXV0ZUF1ZGlvKCkgewogICAgICBpZiAodGhpcy5pc011dGVkQXVkaW8pIHsKICAgICAgICB0aGlzLnVubXV0ZUF1ZGlvKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5tdXRlQXVkaW8oKTsKICAgICAgfQogICAgfSwKICAgIGhhbmRsZU11dGVWaWRlbygpIHsKICAgICAgaWYgKHRoaXMuaXNNdXRlZFZpZGVvKSB7CiAgICAgICAgdGhpcy51bm11dGVWaWRlbygpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMubXV0ZVZpZGVvKCk7CiAgICAgIH0KICAgIH0sCiAgICBzaG93TWVtYmVycygpIHsKICAgICAgLy8gdGhpcy5jbG9zZSgpOwogICAgICB0aGlzLiRlbWl0KCJzaG93TWVtYmVycyIpOwogICAgfSwKICAgIHNldEFsbE1lbWJlcnNUaW1lcigpIHsKICAgICAgdGhpcy5hbGxNZW1iZXJzVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICAgICAgdGhpcy5tZW1iZXJMaXN0LmZvckVhY2goKG1lbWJlcikgPT4gewogICAgICAgICAgY29uc3QgaGFzS2V5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1lbWJlciwgInRpbWVyIik7CiAgICAgICAgICBjb25zdCBiZUtpY2tPdXQgPSBtZW1iZXIuYmVLaWNrT3V0OwogICAgICAgICAgaWYgKCFoYXNLZXkgfHwgYmVLaWNrT3V0IHx8IG1lbWJlci5zdGF0ZSA9PT0gIkNPTk5FQ1RFRCIpIHsKICAgICAgICAgICAgbWVtYmVyLnRpbWVyID0gMDsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCLnjrDlnKjnmoTkurrlkZjnirbmgIHmmK/jgILjgIIiLCBtZW1iZXIuc3RhdGUpOwogICAgICAgICAgICBpZiAobWVtYmVyLnRpbWVyIDwgNjAgJiYgbWVtYmVyLnN0YXRlID09PSAiQ09OTkVDVElORyIpIHsKICAgICAgICAgICAgICBtZW1iZXIudGltZXIrKzsKICAgICAgICAgICAgICBtZW1iZXIudGltZW91dCA9IGZhbHNlOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGNvbnNvbGUubG9nKCLov5vlhaXkuobotoXml7bliKTmlq0iLCBtZW1iZXIuc3RhdGUpOwogICAgICAgICAgICAgIGlmIChtZW1iZXIuc3RhdGUgIT09ICJESVNDT05ORUNURUQiKSB7CiAgICAgICAgICAgICAgICBtZW1iZXIudGltZXIgPSAwOwogICAgICAgICAgICAgICAgbWVtYmVyLnRpbWVvdXQgPSB0cnVlOwogICAgICAgICAgICAgICAgbWVtYmVyLnN0YXRlID0gIkRJU0NPTk5FQ1RFRCI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy4kZW1pdCgidXBkYXRlOm1lbWJlckxpc3QiLCBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMubWVtYmVyTGlzdCkpKTsKICAgICAgICBjb25zb2xlLmxvZygiJWMgbWVtYmVyTGlzdCIsICJiYWNrZ3JvdW5kOiAjMDBjYzAwOyBjb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogM3B4O3BhZGRpbmc6MnB4IDVweCIsIHRoaXMubWVtYmVyTGlzdCk7CiAgICAgIH0sIDEwMDApOwogICAgfSwKICB9LAogIG1vdW50ZWQoKSB7CiAgICB0aGlzLiRidXMuJG9uKCJ2aWRlby1jYWxsIiwgdGhpcy52aWRlb0NhbGxpbmcpOyAvLyDlj5HotbfpgJror50KICAgIHRoaXMuJGJ1cy4kb24oImF1ZGlvLWNhbGwiLCB0aGlzLmF1ZGlvQ2FsbGluZyk7IC8vIOWPkei1t+mAmuivnQogIH0sCiAgYmVmb3JlRGVzdHJveSgpIHsKICAgIGlmICh0aGlzLnRpbWVyKSB7CiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTsKICAgICAgdGhpcy50aW1lciA9IG51bGw7CiAgICB9CiAgICB0aGlzLiRidXMuJG9mZigidmlkZW8tY2FsbCIsIHRoaXMudmlkZW9DYWxsaW5nKTsKICAgIHRoaXMuJGJ1cy4kb2ZmKCJhdWRpby1jYWxsIiwgdGhpcy5hdWRpb0NhbGxpbmcpOyAvLyDlj5HotbfpgJror50KICB9LAp9Owo="},null]}