UNPKG

overwatch-api-server

Version:
16 lines 86.1 kB
"use strict";function cov_1rkhlf6byj(){var path="C:\\Users\\Alf\\Source\\overwatch-api\\api\\src\\parser\\stats.js";var hash="ce1c97022c5e5b743dd01e382f6065b7bcb27bf4";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Users\\Alf\\Source\\overwatch-api\\api\\src\\parser\\stats.js",statementMap:{"0":{start:{line:3,column:0},end:{line:5,column:3}},"1":{start:{line:6,column:0},end:{line:6,column:30}},"2":{start:{line:8,column:12},end:{line:8,column:51}},"3":{start:{line:10,column:13},end:{line:10,column:53}},"4":{start:{line:12,column:15},end:{line:12,column:57}},"5":{start:{line:14,column:15},end:{line:14,column:57}},"6":{start:{line:16,column:13},end:{line:16,column:31}},"7":{start:{line:18,column:11},end:{line:18,column:27}},"8":{start:{line:20,column:39},end:{line:20,column:95}},"9":{start:{line:24,column:12},end:{line:24,column:205}},"10":{start:{line:25,column:16},end:{line:28,column:3}},"11":{start:{line:29,column:2},end:{line:31,column:5}},"12":{start:{line:30,column:4},end:{line:30,column:31}},"13":{start:{line:36,column:10},end:{line:36,column:51}},"14":{start:{line:39,column:16},end:{line:39,column:67}},"15":{start:{line:41,column:2},end:{line:43,column:3}},"16":{start:{line:42,column:4},end:{line:42,column:52}},"17":{start:{line:45,column:15},end:{line:57,column:3}},"18":{start:{line:59,column:2},end:{line:61,column:3}},"19":{start:{line:60,column:4},end:{line:60,column:108}},"20":{start:{line:63,column:2},end:{line:65,column:3}},"21":{start:{line:64,column:4},end:{line:64,column:96}},"22":{start:{line:67,column:2},end:{line:69,column:3}},"23":{start:{line:68,column:4},end:{line:68,column:83}},"24":{start:{line:71,column:14},end:{line:71,column:16}},"25":{start:{line:73,column:26},end:{line:91,column:3}},"26":{start:{line:93,column:2},end:{line:95,column:4}},"27":{start:{line:96,column:2},end:{line:107,column:5}},"28":{start:{line:97,column:23},end:{line:97,column:137}},"29":{start:{line:98,column:20},end:{line:98,column:22}},"30":{start:{line:99,column:4},end:{line:105,column:7}},"31":{start:{line:100,column:17},end:{line:100,column:19}},"32":{start:{line:101,column:6},end:{line:101,column:60}},"33":{start:{line:102,column:6},end:{line:102,column:64}},"34":{start:{line:103,column:6},end:{line:103,column:64}},"35":{start:{line:104,column:6},end:{line:104,column:27}},"36":{start:{line:106,column:4},end:{line:106,column:52}},"37":{start:{line:109,column:2},end:{line:109,column:42}},"38":{start:{line:110,column:2},end:{line:121,column:5}},"39":{start:{line:111,column:23},end:{line:111,column:141}},"40":{start:{line:112,column:20},end:{line:112,column:22}},"41":{start:{line:113,column:4},end:{line:119,column:7}},"42":{start:{line:114,column:17},end:{line:114,column:19}},"43":{start:{line:115,column:6},end:{line:115,column:60}},"44":{start:{line:116,column:6},end:{line:116,column:64}},"45":{start:{line:117,column:6},end:{line:117,column:64}},"46":{start:{line:118,column:6},end:{line:118,column:27}},"47":{start:{line:120,column:4},end:{line:120,column:54}},"48":{start:{line:125,column:23},end:{line:125,column:104}},"49":{start:{line:127,column:2},end:{line:141,column:5}},"50":{start:{line:128,column:14},end:{line:128,column:140}},"51":{start:{line:129,column:19},end:{line:129,column:21}},"52":{start:{line:130,column:4},end:{line:135,column:7}},"53":{start:{line:131,column:17},end:{line:131,column:19}},"54":{start:{line:132,column:6},end:{line:132,column:53}},"55":{start:{line:133,column:6},end:{line:133,column:52}},"56":{start:{line:134,column:6},end:{line:134,column:26}},"57":{start:{line:136,column:4},end:{line:136,column:48}},"58":{start:{line:137,column:4},end:{line:139,column:6}},"59":{start:{line:140,column:4},end:{line:140,column:40}},"60":{start:{line:143,column:2},end:{line:155,column:5}},"61":{start:{line:144,column:14},end:{line:144,column:142}},"62":{start:{line:145,column:19},end:{line:145,column:21}},"63":{start:{line:146,column:4},end:{line:151,column:7}},"64":{start:{line:147,column:17},end:{line:147,column:19}},"65":{start:{line:148,column:6},end:{line:148,column:53}},"66":{start:{line:149,column:6},end:{line:149,column:52}},"67":{start:{line:150,column:6},end:{line:150,column:26}},"68":{start:{line:152,column:4},end:{line:152,column:48}},"69":{start:{line:153,column:4},end:{line:153,column:36}},"70":{start:{line:154,column:4},end:{line:154,column:42}},"71":{start:{line:156,column:2},end:{line:159,column:5}},"72":{start:{line:164,column:18},end:{line:164,column:35}},"73":{start:{line:165,column:14},end:{line:165,column:29}},"74":{start:{line:166,column:15},end:{line:166,column:31}},"75":{start:{line:167,column:20},end:{line:182,column:3}},"76":{start:{line:183,column:2},end:{line:183,column:65}},"77":{start:{line:185,column:14},end:{line:185,column:26}},"78":{start:{line:187,column:2},end:{line:196,column:3}},"79":{start:{line:188,column:21},end:{line:188,column:86}},"80":{start:{line:190,column:20},end:{line:190,column:85}},"81":{start:{line:192,column:16},end:{line:192,column:73}},"82":{start:{line:193,column:15},end:{line:193,column:70}},"83":{start:{line:194,column:19},end:{line:194,column:51}},"84":{start:{line:195,column:4},end:{line:195,column:62}},"85":{start:{line:198,column:13},end:{line:205,column:3}},"86":{start:{line:206,column:2},end:{line:206,column:30}},"87":{start:{line:210,column:2},end:{line:220,column:5}},"88":{start:{line:215,column:4},end:{line:217,column:5}},"89":{start:{line:216,column:6},end:{line:216,column:27}},"90":{start:{line:219,column:4},end:{line:219,column:45}}},fnMap:{"0":{name:"_interopRequireDefault",decl:{start:{line:20,column:9},end:{line:20,column:31}},loc:{start:{line:20,column:37},end:{line:20,column:97}},line:20},"1":{name:"getHTML",decl:{start:{line:23,column:9},end:{line:23,column:16}},loc:{start:{line:23,column:50},end:{line:32,column:1}},line:23},"2":{name:"(anonymous_2)",decl:{start:{line:29,column:43},end:{line:29,column:44}},loc:{start:{line:29,column:69},end:{line:31,column:3}},line:29},"3":{name:"parseHTML",decl:{start:{line:35,column:9},end:{line:35,column:18}},loc:{start:{line:35,column:38},end:{line:160,column:1}},line:35},"4":{name:"(anonymous_4)",decl:{start:{line:96,column:51},end:{line:96,column:52}},loc:{start:{line:96,column:64},end:{line:107,column:3}},line:96},"5":{name:"(anonymous_5)",decl:{start:{line:99,column:22},end:{line:99,column:23}},loc:{start:{line:99,column:39},end:{line:105,column:5}},line:99},"6":{name:"(anonymous_6)",decl:{start:{line:110,column:53},end:{line:110,column:54}},loc:{start:{line:110,column:66},end:{line:121,column:3}},line:110},"7":{name:"(anonymous_7)",decl:{start:{line:113,column:22},end:{line:113,column:23}},loc:{start:{line:113,column:39},end:{line:119,column:5}},line:113},"8":{name:"(anonymous_8)",decl:{start:{line:127,column:25},end:{line:127,column:26}},loc:{start:{line:127,column:41},end:{line:141,column:3}},line:127},"9":{name:"(anonymous_9)",decl:{start:{line:130,column:13},end:{line:130,column:14}},loc:{start:{line:130,column:30},end:{line:135,column:5}},line:130},"10":{name:"(anonymous_10)",decl:{start:{line:143,column:25},end:{line:143,column:26}},loc:{start:{line:143,column:41},end:{line:155,column:3}},line:143},"11":{name:"(anonymous_11)",decl:{start:{line:146,column:13},end:{line:146,column:14}},loc:{start:{line:146,column:30},end:{line:151,column:5}},line:146},"12":{name:"transform",decl:{start:{line:163,column:9},end:{line:163,column:18}},loc:{start:{line:163,column:38},end:{line:207,column:1}},line:163},"13":{name:"_default",decl:{start:{line:209,column:9},end:{line:209,column:17}},loc:{start:{line:209,column:51},end:{line:221,column:1}},line:209},"14":{name:"(anonymous_14)",decl:{start:{line:214,column:5},end:{line:214,column:6}},loc:{start:{line:214,column:29},end:{line:220,column:3}},line:214}},branchMap:{"0":{loc:{start:{line:20,column:46},end:{line:20,column:94}},type:"cond-expr",locations:[{start:{line:20,column:70},end:{line:20,column:73}},{start:{line:20,column:76},end:{line:20,column:94}}],line:20},"1":{loc:{start:{line:20,column:46},end:{line:20,column:67}},type:"binary-expr",locations:[{start:{line:20,column:46},end:{line:20,column:49}},{start:{line:20,column:53},end:{line:20,column:67}}],line:20},"2":{loc:{start:{line:24,column:12},end:{line:24,column:205}},type:"cond-expr",locations:[{start:{line:24,column:32},end:{line:24,column:127}},{start:{line:24,column:130},end:{line:24,column:205}}],line:24},"3":{loc:{start:{line:41,column:2},end:{line:43,column:3}},type:"if",locations:[{start:{line:41,column:2},end:{line:43,column:3}},{start:{line:41,column:2},end:{line:43,column:3}}],line:41},"4":{loc:{start:{line:59,column:2},end:{line:61,column:3}},type:"if",locations:[{start:{line:59,column:2},end:{line:61,column:3}},{start:{line:59,column:2},end:{line:61,column:3}}],line:59},"5":{loc:{start:{line:63,column:2},end:{line:65,column:3}},type:"if",locations:[{start:{line:63,column:2},end:{line:65,column:3}},{start:{line:63,column:2},end:{line:65,column:3}}],line:63},"6":{loc:{start:{line:67,column:2},end:{line:69,column:3}},type:"if",locations:[{start:{line:67,column:2},end:{line:69,column:3}},{start:{line:67,column:2},end:{line:69,column:3}}],line:67},"7":{loc:{start:{line:187,column:2},end:{line:196,column:3}},type:"if",locations:[{start:{line:187,column:2},end:{line:196,column:3}},{start:{line:187,column:2},end:{line:196,column:3}}],line:187},"8":{loc:{start:{line:187,column:6},end:{line:187,column:32}},type:"binary-expr",locations:[{start:{line:187,column:6},end:{line:187,column:17}},{start:{line:187,column:21},end:{line:187,column:32}}],line:187},"9":{loc:{start:{line:192,column:16},end:{line:192,column:73}},type:"cond-expr",locations:[{start:{line:192,column:29},end:{line:192,column:69}},{start:{line:192,column:72},end:{line:192,column:73}}],line:192},"10":{loc:{start:{line:193,column:15},end:{line:193,column:70}},type:"cond-expr",locations:[{start:{line:193,column:27},end:{line:193,column:66}},{start:{line:193,column:69},end:{line:193,column:70}}],line:193},"11":{loc:{start:{line:215,column:4},end:{line:217,column:5}},type:"if",locations:[{start:{line:215,column:4},end:{line:217,column:5}},{start:{line:215,column:4},end:{line:217,column:5}}],line:215}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0]},inputSourceMap:{version:3,sources:["stats.js"],names:["getHTML","platform","region","tag","callback","url","options","uri","encodeURI","encoding","err","res","body","parseHTML","results","$","cheerio","load","isFound","text","Error","parsed","user","level","first","portrait","attr","permission","endorsementLevel","last","endorsementFrameEl","sportsmanshipValue","data","shotcallerValue","teammateValue","starEl","html","rankEl","endorsementFrame","slice","replace","star","rank","stats","topHeroCategories","quickplay","competitive","Object","keys","forEach","k","topHeroesEls","find","topHeroes","each","i","el","stat","hero","img","push","statCategories","item","els","closest","statsArr","title","value","next","toLowerCase","transform","endorsement","sportsmanship","rate","parseFloat","toFixed","shotcaller","teammate","parseInt","frame","icon","starsMatch","path","basename","split","rankMatch","stars","prestige","json","username","async","auto","apply"],mappings:"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",sourceRoot:"C:\\Users\\Alf\\Source\\overwatch-api\\api\\src\\parser\\",sourcesContent:["import path from 'path';\r\nimport async from 'async';\r\nimport cheerio from 'cheerio';\r\nimport request from 'request';\r\nimport { getPrestigeLevel, getPrestigeStars } from './utils';\r\nimport { createEndorsementSVG } from './svg';\r\n\r\n\r\n// Get HTML from playoverwatch career page.\r\nfunction getHTML(platform, region, tag, callback) {\r\n  const url = platform === 'pc'\r\n    ? `https://playoverwatch.com/en-us/career/${platform}/${region}/${tag}`\r\n    : `https://playoverwatch.com/en-us/career/${platform}/${tag}`;\r\n\r\n  const options = {\r\n    uri: encodeURI(url),\r\n    encoding: 'utf8'\r\n  }\r\n\r\n  return request(options, (err, res, body) => {\r\n    return callback(err, body);\r\n  });\r\n}\r\n\r\n// Begin html parsing.\r\nfunction parseHTML(results, callback) {\r\n  const $ = cheerio.load(results.getHTML);\r\n\r\n  // Check if profile exists.\r\n  const isFound = $('.content-box h1').text() !== 'Profile Not Found';\r\n  if (!isFound) {\r\n    return callback(new Error('Profile not found'));\r\n  }\r\n\r\n  const parsed = {\r\n    user: $('.header-masthead').text(),\r\n    level: $('.player-level div').first().text(),\r\n    portrait: $('.player-portrait').attr('src'),\r\n    permission: $('.masthead-permission-level-text').text(),\r\n    endorsementLevel: $('.masthead .endorsement-level div').last().text(),\r\n    endorsementFrameEl: $('.masthead .EndorsementIcon').attr('style'),\r\n    sportsmanshipValue: $('.masthead .EndorsementIcon-border--sportsmanship').data('value'),\r\n    shotcallerValue: $('.masthead .EndorsementIcon-border--shotcaller').data('value'),\r\n    teammateValue: $('.masthead .EndorsementIcon-border--teammate').data('value'),\r\n    starEl: $('.player-rank').html(),\r\n    rankEl: $('.player-level').html(),\r\n  }\r\n\r\n  if (parsed.endorsementFrameEl) {\r\n    parsed.endorsementFrame = $('.masthead .EndorsementIcon').attr('style').slice(21, -1).replace(/ /g, '');\r\n  }\r\n\r\n  if (parsed.starEl !== null) {\r\n    parsed.star = $('.player-level .player-rank').attr('style').slice(21, -1).replace(/ /g, '');\r\n  }\r\n\r\n  if (parsed.rankEl !== null) {\r\n    parsed.rank = $('.player-level').attr('style').slice(21, -1).replace(/ /g, '');\r\n  }\r\n\r\n  const stats = {};\r\n\r\n  // Top Heroes.\r\n  const topHeroCategories = {\r\n    quickplay: {\r\n      'played': '0x0860000000000021',\r\n      'games_won': '0x0860000000000039',\r\n      'weapon_accuracy': '0x086000000000002F',\r\n      'eliminations_per_life': '0x08600000000003D2',\r\n      'multikill_best': '0x0860000000000346',\r\n      'objective_kills_average': '0x086000000000039C',\r\n    },\r\n    competitive: {\r\n      'played': '0x0860000000000021',\r\n      'games_won': '0x0860000000000039',\r\n      'win_rate': '0x08600000000003D1',\r\n      'weapon_accuracy': '0x086000000000002F',\r\n      'eliminations_per_life': '0x08600000000003D2',\r\n      'multikill_best': '0x0860000000000346',\r\n      'objective_kills_average': '0x086000000000039C',\r\n    }\r\n  };\r\n\r\n  // Quickplay.\r\n  stats['top_heroes'] = { quickplay: {} };\r\n  Object.keys(topHeroCategories.quickplay).forEach((k) => {\r\n    const topHeroesEls = $(`#quickplay [data-category-id=\"${topHeroCategories.quickplay[k]}\"]`)\r\n      .find('.progress-category-item');\r\n    let topHeroes = [];\r\n    topHeroesEls.each(function(i, el) {\r\n      const stat = {};\r\n      stat.hero = $(this).find('.ProgressBar-title').text();\r\n      stat.img = $(this).find('.ProgressBar-thumb').attr('src');\r\n      stat[k] = $(this).find('.ProgressBar-description').text();\r\n      topHeroes.push(stat);\r\n    });\r\n    stats['top_heroes']['quickplay'][k] = topHeroes;\r\n  });\r\n\r\n  // Competitive.\r\n  stats['top_heroes']['competitive'] = {};\r\n  Object.keys(topHeroCategories.competitive).forEach((k) => {\r\n    const topHeroesEls = $(`#competitive [data-category-id=\"${topHeroCategories.competitive[k]}\"]`)\r\n      .find('.progress-category-item');\r\n    let topHeroes = [];\r\n    topHeroesEls.each(function(i, el) {\r\n      const stat = {};\r\n      stat.hero = $(this).find('.ProgressBar-title').text();\r\n      stat.img = $(this).find('.ProgressBar-thumb').attr('src');\r\n      stat[k] = $(this).find('.ProgressBar-description').text();\r\n      topHeroes.push(stat);\r\n    });\r\n    stats['top_heroes']['competitive'][k] = topHeroes;\r\n  });\r\n\r\n  //\r\n  // Career Stats\r\n  //\r\n  const statCategories = [\r\n    'Combat',\r\n    'Match Awards',\r\n    'Assists',\r\n    'Average',\r\n    'Miscellaneous',\r\n    'Best',\r\n    'Game'\r\n  ];\r\n\r\n  // Quickplay Stats.\r\n  statCategories.forEach(function(item) {\r\n    const els = $(`#quickplay [data-category-id=\"0x02E00000FFFFFFFF\"] h5:contains(\"${item}\")`).closest('table').find('tbody tr');\r\n    let statsArr = [];\r\n    els.each(function(i, el) {\r\n      let stat = {};\r\n      stat.title = $(this).find('td').first().text();\r\n      stat.value = $(this).find('td').next().text();\r\n      statsArr.push(stat);\r\n    });\r\n    item = item.replace(' ', '_').toLowerCase();\r\n    stats[item] = { quickplay: [] };\r\n    stats[item]['quickplay'] = statsArr;\r\n  });\r\n\r\n  // Competitive Stats.\r\n  statCategories.forEach(function(item) {\r\n    const els = $(`#competitive [data-category-id=\"0x02E00000FFFFFFFF\"] h5:contains(\"${item}\")`).closest('table').find('tbody tr');\r\n    let statsArr = [];\r\n    els.each(function(i, el) {\r\n      let stat = {};\r\n      stat.title = $(this).find('td').first().text();\r\n      stat.value = $(this).find('td').next().text();\r\n      statsArr.push(stat);\r\n    });\r\n    item = item.replace(' ', '_').toLowerCase();\r\n    stats[item]['competitive'] = [];\r\n    stats[item]['competitive'] = statsArr;\r\n  });\r\n\r\n  return callback(null, { stats, parsed });\r\n}\r\n\r\n// Transform the data into a json object we can serve.\r\nfunction transform(results, callback) {\r\n  const { parseHTML } = results;\r\n  const { stats, parsed } = parseHTML;\r\n\r\n  const endorsement = {\r\n    sportsmanship: { value: parsed.sportsmanshipValue, rate: parseFloat((parsed.sportsmanshipValue * 100).toFixed(2)) },\r\n    shotcaller: { value: parsed.shotcallerValue, rate: parseFloat((parsed.shotcallerValue * 100).toFixed(2)) },\r\n    teammate: { value: parsed.teammateValue, rate: parseFloat((parsed.teammateValue * 100).toFixed(2)) },\r\n    level: parseInt(parsed.endorsementLevel),\r\n    frame: parsed.endorsementFrame,\r\n  };\r\n  endorsement.icon = createEndorsementSVG(endorsement);\r\n\r\n  // Calculate the prestige level.\r\n  let level = parsed.level;\r\n  if (parsed.star && parsed.rank) {\r\n    const starsMatch = path.basename(parsed.star).split('.').slice(0, -1)[0];\r\n    const rankMatch = path.basename(parsed.rank).split('.').slice(0, -1)[0];\r\n    const stars = starsMatch ? getPrestigeStars(starsMatch) : 0;\r\n    const rank = rankMatch ? getPrestigeLevel(rankMatch) : 0;\r\n    const prestige = parseInt(stars) + parseInt(rank);\r\n    level = parseInt(parsed.level) + (parseInt(prestige) * 100);\r\n  }\r\n\r\n  const json = {\r\n    username: parsed.user,\r\n    level: parseInt(level),\r\n    portrait: parsed.portrait,\r\n    endorsement: endorsement,\r\n    private: parsed.permission === 'Private Profile',\r\n    stats: stats\r\n  }\r\n\r\n  return callback(null, json);\r\n}\r\n\r\nexport default function(platform, region, tag, callback) {\r\n  async.auto({\r\n    getHTML: async.apply(getHTML, platform, region, tag),\r\n    parseHTML: ['getHTML', async.apply(parseHTML)],\r\n    transform: ['getHTML', 'parseHTML', async.apply(transform)],\r\n  }, function(err, results) {\r\n    if (err) {\r\n      return callback(err);\r\n    }\r\n    return callback(null, results.transform);\r\n  });\r\n}"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"ce1c97022c5e5b743dd01e382f6065b7bcb27bf4"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
cov_1rkhlf6byj=function(){return actualCoverage;};}return actualCoverage;}cov_1rkhlf6byj();cov_1rkhlf6byj().s[0]++;Object.defineProperty(exports,"__esModule",{value:true});cov_1rkhlf6byj().s[1]++;exports["default"]=_default;var _path=(cov_1rkhlf6byj().s[2]++,_interopRequireDefault(require("path")));var _async=(cov_1rkhlf6byj().s[3]++,_interopRequireDefault(require("async")));var _cheerio=(cov_1rkhlf6byj().s[4]++,_interopRequireDefault(require("cheerio")));var _request=(cov_1rkhlf6byj().s[5]++,_interopRequireDefault(require("request")));var _utils=(cov_1rkhlf6byj().s[6]++,require("./utils"));var _svg=(cov_1rkhlf6byj().s[7]++,require("./svg"));function _interopRequireDefault(obj){cov_1rkhlf6byj().f[0]++;cov_1rkhlf6byj().s[8]++;return(cov_1rkhlf6byj().b[1][0]++,obj)&&(cov_1rkhlf6byj().b[1][1]++,obj.__esModule)?(cov_1rkhlf6byj().b[0][0]++,obj):(cov_1rkhlf6byj().b[0][1]++,{"default":obj});}// Get HTML from playoverwatch career page.
function getHTML(platform,region,tag,callback){cov_1rkhlf6byj().f[1]++;var url=(cov_1rkhlf6byj().s[9]++,platform==='pc'?(cov_1rkhlf6byj().b[2][0]++,"https://playoverwatch.com/en-us/career/".concat(platform,"/").concat(region,"/").concat(tag)):(cov_1rkhlf6byj().b[2][1]++,"https://playoverwatch.com/en-us/career/".concat(platform,"/").concat(tag)));var options=(cov_1rkhlf6byj().s[10]++,{uri:encodeURI(url),encoding:'utf8'});cov_1rkhlf6byj().s[11]++;return(0,_request["default"])(options,function(err,res,body){cov_1rkhlf6byj().f[2]++;cov_1rkhlf6byj().s[12]++;return callback(err,body);});}// Begin html parsing.
function parseHTML(results,callback){cov_1rkhlf6byj().f[3]++;var $=(cov_1rkhlf6byj().s[13]++,_cheerio["default"].load(results.getHTML));// Check if profile exists.
var isFound=(cov_1rkhlf6byj().s[14]++,$('.content-box h1').text()!=='Profile Not Found');cov_1rkhlf6byj().s[15]++;if(!isFound){cov_1rkhlf6byj().b[3][0]++;cov_1rkhlf6byj().s[16]++;return callback(new Error('Profile not found'));}else{cov_1rkhlf6byj().b[3][1]++;}var parsed=(cov_1rkhlf6byj().s[17]++,{user:$('.header-masthead').text(),level:$('.player-level div').first().text(),portrait:$('.player-portrait').attr('src'),permission:$('.masthead-permission-level-text').text(),endorsementLevel:$('.masthead .endorsement-level div').last().text(),endorsementFrameEl:$('.masthead .EndorsementIcon').attr('style'),sportsmanshipValue:$('.masthead .EndorsementIcon-border--sportsmanship').data('value'),shotcallerValue:$('.masthead .EndorsementIcon-border--shotcaller').data('value'),teammateValue:$('.masthead .EndorsementIcon-border--teammate').data('value'),starEl:$('.player-rank').html(),rankEl:$('.player-level').html()});cov_1rkhlf6byj().s[18]++;if(parsed.endorsementFrameEl){cov_1rkhlf6byj().b[4][0]++;cov_1rkhlf6byj().s[19]++;parsed.endorsementFrame=$('.masthead .EndorsementIcon').attr('style').slice(21,-1).replace(/ /g,'');}else{cov_1rkhlf6byj().b[4][1]++;}cov_1rkhlf6byj().s[20]++;if(parsed.starEl!==null){cov_1rkhlf6byj().b[5][0]++;cov_1rkhlf6byj().s[21]++;parsed.star=$('.player-level .player-rank').attr('style').slice(21,-1).replace(/ /g,'');}else{cov_1rkhlf6byj().b[5][1]++;}cov_1rkhlf6byj().s[22]++;if(parsed.rankEl!==null){cov_1rkhlf6byj().b[6][0]++;cov_1rkhlf6byj().s[23]++;parsed.rank=$('.player-level').attr('style').slice(21,-1).replace(/ /g,'');}else{cov_1rkhlf6byj().b[6][1]++;}var stats=(cov_1rkhlf6byj().s[24]++,{});// Top Heroes.
var topHeroCategories=(cov_1rkhlf6byj().s[25]++,{quickplay:{'played':'0x0860000000000021','games_won':'0x0860000000000039','weapon_accuracy':'0x086000000000002F','eliminations_per_life':'0x08600000000003D2','multikill_best':'0x0860000000000346','objective_kills_average':'0x086000000000039C'},competitive:{'played':'0x0860000000000021','games_won':'0x0860000000000039','win_rate':'0x08600000000003D1','weapon_accuracy':'0x086000000000002F','eliminations_per_life':'0x08600000000003D2','multikill_best':'0x0860000000000346','objective_kills_average':'0x086000000000039C'}});// Quickplay.
cov_1rkhlf6byj().s[26]++;stats['top_heroes']={quickplay:{}};cov_1rkhlf6byj().s[27]++;Object.keys(topHeroCategories.quickplay).forEach(function(k){cov_1rkhlf6byj().f[4]++;var topHeroesEls=(cov_1rkhlf6byj().s[28]++,$("#quickplay [data-category-id=\"".concat(topHeroCategories.quickplay[k],"\"]")).find('.progress-category-item'));var topHeroes=(cov_1rkhlf6byj().s[29]++,[]);cov_1rkhlf6byj().s[30]++;topHeroesEls.each(function(i,el){cov_1rkhlf6byj().f[5]++;var stat=(cov_1rkhlf6byj().s[31]++,{});cov_1rkhlf6byj().s[32]++;stat.hero=$(this).find('.ProgressBar-title').text();cov_1rkhlf6byj().s[33]++;stat.img=$(this).find('.ProgressBar-thumb').attr('src');cov_1rkhlf6byj().s[34]++;stat[k]=$(this).find('.ProgressBar-description').text();cov_1rkhlf6byj().s[35]++;topHeroes.push(stat);});cov_1rkhlf6byj().s[36]++;stats['top_heroes']['quickplay'][k]=topHeroes;});// Competitive.
cov_1rkhlf6byj().s[37]++;stats['top_heroes']['competitive']={};cov_1rkhlf6byj().s[38]++;Object.keys(topHeroCategories.competitive).forEach(function(k){cov_1rkhlf6byj().f[6]++;var topHeroesEls=(cov_1rkhlf6byj().s[39]++,$("#competitive [data-category-id=\"".concat(topHeroCategories.competitive[k],"\"]")).find('.progress-category-item'));var topHeroes=(cov_1rkhlf6byj().s[40]++,[]);cov_1rkhlf6byj().s[41]++;topHeroesEls.each(function(i,el){cov_1rkhlf6byj().f[7]++;var stat=(cov_1rkhlf6byj().s[42]++,{});cov_1rkhlf6byj().s[43]++;stat.hero=$(this).find('.ProgressBar-title').text();cov_1rkhlf6byj().s[44]++;stat.img=$(this).find('.ProgressBar-thumb').attr('src');cov_1rkhlf6byj().s[45]++;stat[k]=$(this).find('.ProgressBar-description').text();cov_1rkhlf6byj().s[46]++;topHeroes.push(stat);});cov_1rkhlf6byj().s[47]++;stats['top_heroes']['competitive'][k]=topHeroes;});//
// Career Stats
//
var statCategories=(cov_1rkhlf6byj().s[48]++,['Combat','Match Awards','Assists','Average','Miscellaneous','Best','Game']);// Quickplay Stats.
cov_1rkhlf6byj().s[49]++;statCategories.forEach(function(item){cov_1rkhlf6byj().f[8]++;var els=(cov_1rkhlf6byj().s[50]++,$("#quickplay [data-category-id=\"0x02E00000FFFFFFFF\"] h5:contains(\"".concat(item,"\")")).closest('table').find('tbody tr'));var statsArr=(cov_1rkhlf6byj().s[51]++,[]);cov_1rkhlf6byj().s[52]++;els.each(function(i,el){cov_1rkhlf6byj().f[9]++;var stat=(cov_1rkhlf6byj().s[53]++,{});cov_1rkhlf6byj().s[54]++;stat.title=$(this).find('td').first().text();cov_1rkhlf6byj().s[55]++;stat.value=$(this).find('td').next().text();cov_1rkhlf6byj().s[56]++;statsArr.push(stat);});cov_1rkhlf6byj().s[57]++;item=item.replace(' ','_').toLowerCase();cov_1rkhlf6byj().s[58]++;stats[item]={quickplay:[]};cov_1rkhlf6byj().s[59]++;stats[item]['quickplay']=statsArr;});// Competitive Stats.
cov_1rkhlf6byj().s[60]++;statCategories.forEach(function(item){cov_1rkhlf6byj().f[10]++;var els=(cov_1rkhlf6byj().s[61]++,$("#competitive [data-category-id=\"0x02E00000FFFFFFFF\"] h5:contains(\"".concat(item,"\")")).closest('table').find('tbody tr'));var statsArr=(cov_1rkhlf6byj().s[62]++,[]);cov_1rkhlf6byj().s[63]++;els.each(function(i,el){cov_1rkhlf6byj().f[11]++;var stat=(cov_1rkhlf6byj().s[64]++,{});cov_1rkhlf6byj().s[65]++;stat.title=$(this).find('td').first().text();cov_1rkhlf6byj().s[66]++;stat.value=$(this).find('td').next().text();cov_1rkhlf6byj().s[67]++;statsArr.push(stat);});cov_1rkhlf6byj().s[68]++;item=item.replace(' ','_').toLowerCase();cov_1rkhlf6byj().s[69]++;stats[item]['competitive']=[];cov_1rkhlf6byj().s[70]++;stats[item]['competitive']=statsArr;});cov_1rkhlf6byj().s[71]++;return callback(null,{stats:stats,parsed:parsed});}// Transform the data into a json object we can serve.
function transform(results,callback){cov_1rkhlf6byj().f[12]++;var parseHTML=(cov_1rkhlf6byj().s[72]++,results.parseHTML);var stats=(cov_1rkhlf6byj().s[73]++,parseHTML.stats),parsed=(cov_1rkhlf6byj().s[74]++,parseHTML.parsed);var endorsement=(cov_1rkhlf6byj().s[75]++,{sportsmanship:{value:parsed.sportsmanshipValue,rate:parseFloat((parsed.sportsmanshipValue*100).toFixed(2))},shotcaller:{value:parsed.shotcallerValue,rate:parseFloat((parsed.shotcallerValue*100).toFixed(2))},teammate:{value:parsed.teammateValue,rate:parseFloat((parsed.teammateValue*100).toFixed(2))},level:parseInt(parsed.endorsementLevel),frame:parsed.endorsementFrame});cov_1rkhlf6byj().s[76]++;endorsement.icon=(0,_svg.createEndorsementSVG)(endorsement);// Calculate the prestige level.
var level=(cov_1rkhlf6byj().s[77]++,parsed.level);cov_1rkhlf6byj().s[78]++;if((cov_1rkhlf6byj().b[8][0]++,parsed.star)&&(cov_1rkhlf6byj().b[8][1]++,parsed.rank)){cov_1rkhlf6byj().b[7][0]++;var starsMatch=(cov_1rkhlf6byj().s[79]++,_path["default"].basename(parsed.star).split('.').slice(0,-1)[0]);var rankMatch=(cov_1rkhlf6byj().s[80]++,_path["default"].basename(parsed.rank).split('.').slice(0,-1)[0]);var stars=(cov_1rkhlf6byj().s[81]++,starsMatch?(cov_1rkhlf6byj().b[9][0]++,(0,_utils.getPrestigeStars)(starsMatch)):(cov_1rkhlf6byj().b[9][1]++,0));var rank=(cov_1rkhlf6byj().s[82]++,rankMatch?(cov_1rkhlf6byj().b[10][0]++,(0,_utils.getPrestigeLevel)(rankMatch)):(cov_1rkhlf6byj().b[10][1]++,0));var prestige=(cov_1rkhlf6byj().s[83]++,parseInt(stars)+parseInt(rank));cov_1rkhlf6byj().s[84]++;level=parseInt(parsed.level)+parseInt(prestige)*100;}else{cov_1rkhlf6byj().b[7][1]++;}var json=(cov_1rkhlf6byj().s[85]++,{username:parsed.user,level:parseInt(level),portrait:parsed.portrait,endorsement:endorsement,"private":parsed.permission==='Private Profile',stats:stats});cov_1rkhlf6byj().s[86]++;return callback(null,json);}function _default(platform,region,tag,callback){cov_1rkhlf6byj().f[13]++;cov_1rkhlf6byj().s[87]++;_async["default"].auto({getHTML:_async["default"].apply(getHTML,platform,region,tag),parseHTML:['getHTML',_async["default"].apply(parseHTML)],transform:['getHTML','parseHTML',_async["default"].apply(transform)]},function(err,results){cov_1rkhlf6byj().f[14]++;cov_1rkhlf6byj().s[88]++;if(err){cov_1rkhlf6byj().b[11][0]++;cov_1rkhlf6byj().s[89]++;return callback(err);}else{cov_1rkhlf6byj().b[11][1]++;}cov_1rkhlf6byj().s[90]++;return callback(null,results.transform);});}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0YXRzLmpzIl0sIm5hbWVzIjpbImdldEhUTUwiLCJwbGF0Zm9ybSIsInJlZ2lvbiIsInRhZyIsImNhbGxiYWNrIiwidXJsIiwib3B0aW9ucyIsInVyaSIsImVuY29kZVVSSSIsImVuY29kaW5nIiwiZXJyIiwicmVzIiwiYm9keSIsInBhcnNlSFRNTCIsInJlc3VsdHMiLCIkIiwiY2hlZXJpbyIsImxvYWQiLCJpc0ZvdW5kIiwidGV4dCIsIkVycm9yIiwicGFyc2VkIiwidXNlciIsImxldmVsIiwiZmlyc3QiLCJwb3J0cmFpdCIsImF0dHIiLCJwZXJtaXNzaW9uIiwiZW5kb3JzZW1lbnRMZXZlbCIsImxhc3QiLCJlbmRvcnNlbWVudEZyYW1lRWwiLCJzcG9ydHNtYW5zaGlwVmFsdWUiLCJkYXRhIiwic2hvdGNhbGxlclZhbHVlIiwidGVhbW1hdGVWYWx1ZSIsInN0YXJFbCIsImh0bWwiLCJyYW5rRWwiLCJlbmRvcnNlbWVudEZyYW1lIiwic2xpY2UiLCJyZXBsYWNlIiwic3RhciIsInJhbmsiLCJzdGF0cyIsInRvcEhlcm9DYXRlZ29yaWVzIiwicXVpY2twbGF5IiwiY29tcGV0aXRpdmUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImsiLCJ0b3BIZXJvZXNFbHMiLCJmaW5kIiwidG9wSGVyb2VzIiwiZWFjaCIsImkiLCJlbCIsInN0YXQiLCJoZXJvIiwiaW1nIiwicHVzaCIsInN0YXRDYXRlZ29yaWVzIiwiaXRlbSIsImVscyIsImNsb3Nlc3QiLCJzdGF0c0FyciIsInRpdGxlIiwidmFsdWUiLCJuZXh0IiwidG9Mb3dlckNhc2UiLCJ0cmFuc2Zvcm0iLCJlbmRvcnNlbWVudCIsInNwb3J0c21hbnNoaXAiLCJyYXRlIiwicGFyc2VGbG9hdCIsInRvRml4ZWQiLCJzaG90Y2FsbGVyIiwidGVhbW1hdGUiLCJwYXJzZUludCIsImZyYW1lIiwiaWNvbiIsInN0YXJzTWF0Y2giLCJwYXRoIiwiYmFzZW5hbWUiLCJzcGxpdCIsInJhbmtNYXRjaCIsInN0YXJz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T0FBTyxFQUFFMEYsa0JBQU1FLEtBQU4sQ0FBWTVGLE9BQVosRUFBcUJDLFFBQXJCLEVBQStCQyxNQUEvQixFQUF1Q0MsR0FBdkMsQ0FEQTtBQUVUVSxJQUFBQSxTQUFTLEVBQUUsQ0FBQyxTQUFELEVBQVk2RSxrQkFBTUUsS0FBTixDQUFZL0UsU0FBWixDQUFaLENBRkY7QUFHVHlELElBQUFBLFNBQVMsRUFBRSxDQUFDLFNBQUQsRUFBWSxXQUFaLEVBQXlCb0Isa0JBQU1FLEtBQU4sQ0FBWXRCLFNBQVosQ0FBekI7QUFIRixHQUFYLEVBSUcsVUFBUzVELEdBQVQsRUFBY0ksT0FBZCxFQUF1QjtBQUN4QixRQUFJSixHQUFKLEVBQVM7QUFDUCxhQUFPTixRQUFRLENBQUNNLEdBQUQsQ0FBZjtBQUNEOztBQUNELFdBQU9OLFFBQVEsQ0FBQyxJQUFELEVBQU9VLE9BQU8sQ0FBQ3dELFNBQWYsQ0FBZjtBQUNELEdBVEQ7QUFVRCIsInNvdXJjZVJvb3QiOiJDOlxcVXNlcnNcXEFsZlxcU291cmNlXFxvdmVyd2F0Y2gtYXBpXFxhcGlcXHNyY1xccGFyc2VyXFwiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcclxuaW1wb3J0IGFzeW5jIGZyb20gJ2FzeW5jJztcclxuaW1wb3J0IGNoZWVyaW8gZnJvbSAnY2hlZXJpbyc7XHJcbmltcG9ydCByZXF1ZXN0IGZyb20gJ3JlcXVlc3QnO1xyXG5pbXBvcnQgeyBnZXRQcmVzdGlnZUxldmVsLCBnZXRQcmVzdGlnZVN0YXJzIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IGNyZWF0ZUVuZG9yc2VtZW50U1ZHIH0gZnJvbSAnLi9zdmcnO1xyXG5cclxuXHJcbi8vIEdldCBIVE1MIGZyb20gcGxheW92ZXJ3YXRjaCBjYXJlZXIgcGFnZS5cclxuZnVuY3Rpb24gZ2V0SFRNTChwbGF0Zm9ybSwgcmVnaW9uLCB0YWcsIGNhbGxiYWNrKSB7XHJcbiAgY29uc3QgdXJsID0gcGxhdGZvcm0gPT09ICdwYydcclxuICAgID8gYGh0dHBzOi8vcGxheW92ZXJ3YXRjaC5jb20vZW4tdXMvY2FyZWVyLyR7cGxhdGZvcm19LyR7cmVnaW9ufS8ke3RhZ31gXHJcbiAgICA6IGBodHRwczovL3BsYXlvdmVyd2F0Y2guY29tL2VuLXVzL2NhcmVlci8ke3BsYXRmb3JtfS8ke3RhZ31gO1xyXG5cclxuICBjb25zdCBvcHRpb25zID0ge1xyXG4gICAgdXJpOiBlbmNvZGVVUkkodXJsKSxcclxuICAgIGVuY29kaW5nOiAndXRmOCdcclxuICB9XHJcblxyXG4gIHJldHVybiByZXF1ZXN0KG9wdGlvbnMsIChlcnIsIHJlcywgYm9keSkgPT4ge1xyXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVyciwgYm9keSk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8vIEJlZ2luIGh0bWwgcGFyc2luZy5cclxuZnVuY3Rpb24gcGFyc2VIVE1MKHJlc3VsdHMsIGNhbGxiYWNrKSB7XHJcbiAgY29uc3QgJCA9IGNoZWVyaW8ubG9hZChyZXN1bHRzLmdldEhUTUwpO1xyXG5cclxuICAvLyBDaGVjayBpZiBwcm9maWxlIGV4aXN0cy5cclxuICBjb25zdCBpc0ZvdW5kID0gJCgnLmNvbnRlbnQtYm94IGgxJykudGV4dCgpICE9PSAnUHJvZmlsZSBOb3QgRm91bmQnO1xyXG4gIGlmICghaXNGb3VuZCkge1xyXG4gICAgcmV0dXJuIGNhbGxiYWNrKG5ldyBFcnJvcignUHJvZmlsZSBub3QgZm91bmQnKSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBwYXJzZWQgPSB7XHJcbiAgICB1c2VyOiAkKCcuaGVhZGVyLW1hc3RoZWFkJykudGV4dCgpLFxyXG4gICAgbGV2ZWw6ICQoJy5wbGF5ZXItbGV2ZWwgZGl2JykuZmlyc3QoKS50ZXh0KCksXHJcbiAgICBwb3J0cmFpdDogJCgnLnBsYXllci1wb3J0cmFpdCcpLmF0dHIoJ3NyYycpLFxyXG4gICAgcGVybWlzc2lvbjogJCgnLm1hc3RoZWFkLXBlcm1pc3Npb24tbGV2ZWwtdGV4dCcpLnRleHQoKSxcclxuICAgIGVuZG9yc2VtZW50TGV2ZWw6ICQoJy5tYXN0aGVhZCAuZW5kb3JzZW1lbnQtbGV2ZWwgZGl2JykubGFzdCgpLnRleHQoKSxcclxuICAgIGVuZG9yc2VtZW50RnJhbWVFbDogJCgnLm1hc3RoZWFkIC5FbmRvcnNlbWVudEljb24nKS5hdHRyKCdzdHlsZScpLFxyXG4gICAgc3BvcnRzbWFuc2hpcFZhbHVlOiAkKCcubWFzdGhlYWQgLkVuZG9yc2VtZW50SWNvbi1ib3JkZXItLXNwb3J0c21hbnNoaXAnKS5kYXRhKCd2YWx1ZScpLFxyXG4gICAgc2hvdGNhbGxlclZhbHVlOiAkKCcubWFzdGhlYWQgLkVuZG9yc2VtZW50SWNvbi1ib3JkZXItLXNob3RjYWxsZXInKS5kYXRhKCd2YWx1ZScpLFxyXG4gICAgdGVhbW1hdGVWYWx1ZTogJCgnLm1hc3RoZWFkIC5FbmRvcnNlbWVudEljb24tYm9yZGVyLS10ZWFtbWF0ZScpLmRhdGEoJ3ZhbHVlJyksXHJcbiAgICBzdGFyRWw6ICQoJy5wbGF5ZXItcmFuaycpLmh0bWwoKSxcclxuICAgIHJhbmtFbDogJCgnLnBsYXllci1sZXZlbCcpLmh0bWwoKSxcclxuICB9XHJcblxyXG4gIGlmIChwYXJzZWQuZW5kb3JzZW1lbnRGcmFtZUVsKSB7XHJcbiAgICBwYXJzZWQuZW5kb3JzZW1lbnRGcmFtZSA9ICQoJy5tYXN0aGVhZCAuRW5kb3JzZW1lbnRJY29uJykuYXR0cignc3R5bGUnKS5zbGljZSgyMSwgLTEpLnJlcGxhY2UoLyAvZywgJycpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHBhcnNlZC5zdGFyRWwgIT09IG51bGwpIHtcclxuICAgIHBhcnNlZC5zdGFyID0gJCgnLnBsYXllci1sZXZlbCAucGxheWVyLXJhbmsnKS5hdHRyKCdzdHlsZScpLnNsaWNlKDIxLCAtMSkucmVwbGFjZSgvIC9nLCAnJyk7XHJcbiAgfVxyXG5cclxuICBpZiAocGFyc2VkLnJhbmtFbCAhPT0gbnVsbCkge1xyXG4gICAgcGFyc2VkLnJhbmsgPSAkKCcucGxheWVyLWxldmVsJykuYXR0cignc3R5bGUnKS5zbGljZSgyMSwgLTEpLnJlcGxhY2UoLyAvZywgJycpO1xyXG4gIH1cclxuXHJcbiAgY29uc3Qgc3RhdHMgPSB7fTtcclxuXHJcbiAgLy8gVG9wIEhlcm9lcy5cclxuICBjb25zdCB0b3BIZXJvQ2F0ZWdvcmllcyA9IHtcclxuICAgIHF1aWNrcGxheToge1xyXG4gICAgICAncGxheWVkJzogJzB4MDg2MDAwMDAwMDAwMDAyMScsXHJcbiAgICAgICdnYW1lc193b24nOiAnMHgwODYwMDAwMDAwMDAwMDM5JyxcclxuICAgICAgJ3dlYXBvbl9hY2N1cmFjeSc6ICcweDA4NjAwMDAwMDAwMDAwMkYnLFxyXG4gICAgICAnZWxpbWluYXRpb25zX3Blcl9saWZlJzogJzB4MDg2MDAwMDAwMDAwMDNEMicsXHJcbiAgICAgICdtdWx0aWtpbGxfYmVzdCc6ICcweDA4NjAwMDAwMDAwMDAzNDYnLFxyXG4gICAgICAnb2JqZWN0aXZlX2tpbGxzX2F2ZXJhZ2UnOiAnMHgwODYwMDAwMDAwMDAwMzlDJyxcclxuICAgIH0sXHJcbiAgICBjb21wZXRpdGl2ZToge1xyXG4gICAgICAncGxheWVkJzogJzB4MDg2MDAwMDAwMDAwMDAyMScsXHJcbiAgICAgICdnYW1lc193b24nOiAnMHgwODYwMDAwMDAwMDAwMDM5JyxcclxuICAgICAgJ3dpbl9yYXRlJzogJzB4MDg2MDAwMDAwMDAwMDNEMScsXHJcbiAgICAgICd3ZWFwb25fYWNjdXJhY3knOiAnMHgwODYwMDAwMDAwMDAwMDJGJyxcclxuICAgICAgJ2VsaW1pbmF0aW9uc19wZXJfbGlmZSc6ICcweDA4NjAwMDAwMDAwMDAzRDInLFxyXG4gICAgICAnbXVsdGlraWxsX2Jlc3QnOiAnMHgwODYwMDAwMDAwMDAwMzQ2JyxcclxuICAgICAgJ29iamVjdGl2ZV9raWxsc19hdmVyYWdlJzogJzB4MDg2MDAwMDAwMDAwMDM5QycsXHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLy8gUXVpY2twbGF5LlxyXG4gIHN0YXRzWyd0b3BfaGVyb2VzJ10gPSB7IHF1aWNrcGxheToge30gfTtcclxuICBPYmplY3Qua2V5cyh0b3BIZXJvQ2F0ZWdvcmllcy5xdWlja3BsYXkpLmZvckVhY2goKGspID0+IHtcclxuICAgIGNvbnN0IHRvcEhlcm9lc0VscyA9ICQoYCNxdWlja3BsYXkgW2RhdGEtY2F0ZWdvcnktaWQ9XCIke3RvcEhlcm9DYXRlZ29yaWVzLnF1aWNrcGxheVtrXX1cIl1gKVxyXG4gICAgICAuZmluZCgnLnByb2dyZXNzLWNhdGVnb3J5LWl0ZW0nKTtcclxuICAgIGxldCB0b3BIZXJvZXMgPSBbXTtcclxuICAgIHRvcEhlcm9lc0Vscy5lYWNoKGZ1bmN0aW9uKGksIGVsKSB7XHJcbiAgICAgIGNvbnN0IHN0YXQgPSB7fTtcclxuICAgICAgc3RhdC5oZXJvID0gJCh0aGlzKS5maW5kKCcuUHJvZ3Jlc3NCYXItdGl0bGUnKS50ZXh0KCk7XHJcbiAgICAgIHN0YXQuaW1nID0gJCh0aGlzKS5maW5kKCcuUHJvZ3Jlc3NCYXItdGh1bWInKS5hdHRyKCdzcmMnKTtcclxuICAgICAgc3RhdFtrXSA9ICQodGhpcykuZmluZCgnLlByb2dyZXNzQmFyLWRlc2NyaXB0aW9uJykudGV4dCgpO1xyXG4gICAgICB0b3BIZXJvZXMucHVzaChzdGF0KTtcclxuICAgIH0pO1xyXG4gICAgc3RhdHNbJ3RvcF9oZXJvZXMnXVsncXVpY2twbGF5J11ba10gPSB0b3BIZXJvZXM7XHJcbiAgfSk7XHJcblxyXG4gIC8vIENvbXBldGl0aXZlLlxyXG4gIHN0YXRzWyd0b3BfaGVyb2VzJ11bJ2NvbXBldGl0aXZlJ10gPSB7fTtcclxuICBPYmplY3Qua2V5cyh0b3BIZXJvQ2F0ZWdvcmllcy5jb21wZXRpdGl2ZSkuZm9yRWFjaCgoaykgPT4ge1xyXG4gICAgY29uc3QgdG9wSGVyb2VzRWxzID0gJChgI2NvbXBldGl0aXZlIFtkYXRhLWNhdGVnb3J5LWlkPVwiJHt0b3BIZXJvQ2F0ZWdvcmllcy5jb21wZXRpdGl2ZVtrXX1cIl1gKVxyXG4gICAgICAuZmluZCgnLnByb2dyZXNzLWNhdGVnb3J5LWl0ZW0nKTtcclxuICAgIGxldCB0b3BIZXJvZXMgPSBbXTtcclxuICAgIHRvcEhlcm9lc0Vscy5lYWNoKGZ1bmN0aW9uKGksIGVsKSB7XHJcbiAgICAgIGNvbnN0IHN0YXQgPSB7fTtcclxuICAgICAgc3RhdC5oZXJvID0gJCh0aGlzKS5maW5kKCcuUHJvZ3Jlc3NCYXItdGl0bGUnKS50ZXh0KCk7XHJcbiAgICAgIHN0YXQuaW1nID0gJCh0aGlzKS5maW5kKCcuUHJvZ3Jlc3NCYXItdGh1bWInKS5hdHRyKCdzcmMnKTtcclxuICAgICAgc3RhdFtrXSA9ICQodGhpcykuZmluZCgnLlByb2dyZXNzQmFyLWRlc2NyaXB0aW9uJykudGV4dCgpO1xyXG4gICAgICB0b3BIZXJvZXMucHVzaChzdGF0KTtcclxuICAgIH0pO1xyXG4gICAgc3RhdHNbJ3RvcF9oZXJvZXMnXVsnY29tcGV0aXRpdmUnXVtrXSA9IHRvcEhlcm9lcztcclxuICB9KTtcclxuXHJcbiAgLy9cclxuICAvLyBDYXJlZXIgU3RhdHNcclxuICAvL1xyXG4gIGNvbnN0IHN0YXRDYXRlZ29yaWVzID0gW1xyXG4gICAgJ0NvbWJhdCcsXHJcbiAgICAnTWF0Y2ggQXdhcmRzJyxcclxuICAgICdBc3Npc3RzJyxcclxuICAgICdBdmVyYWdlJyxcclxuICAgICdNaXNjZWxsYW5lb3VzJyxcclxuICAgICdCZXN0JyxcclxuICAgICdHYW1lJ1xyXG4gIF07XHJcblxyXG4gIC8vIFF1aWNrcGxheSBTdGF0cy5cclxuICBzdGF0Q2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGNvbnN0IGVscyA9ICQoYCNxdWlja3BsYXkgW2RhdGEtY2F0ZWdvcnktaWQ9XCIweDAyRTAwMDAwRkZGRkZGRkZcIl0gaDU6Y29udGFpbnMoXCIke2l0ZW19XCIpYCkuY2xvc2VzdCgndGFibGUnKS5maW5kKCd0Ym9keSB0cicpO1xyXG4gICAgbGV0IHN0YXRzQXJyID0gW107XHJcbiAgICBlbHMuZWFjaChmdW5jdGlvbihpLCBlbCkge1xyXG4gICAgICBsZXQgc3RhdCA9IHt9O1xyXG4gICAgICBzdGF0LnRpdGxlID0gJCh0aGlzKS5maW5kKCd0ZCcpLmZpcnN0KCkudGV4dCgpO1xyXG4gICAgICBzdGF0LnZhbHVlID0gJCh0aGlzKS5maW5kKCd0ZCcpLm5leHQoKS50ZXh0KCk7XHJcbiAgICAgIHN0YXRzQXJyLnB1c2goc3RhdCk7XHJcbiAgICB9KTtcclxuICAgIGl0ZW0gPSBpdGVtLnJlcGxhY2UoJyAnLCAnXycpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBzdGF0c1tpdGVtXSA9IHsgcXVpY2twbGF5OiBbXSB9O1xyXG4gICAgc3RhdHNbaXRlbV1bJ3F1aWNrcGxheSddID0gc3RhdHNBcnI7XHJcbiAgfSk7XHJcblxyXG4gIC8vIENvbXBldGl0aXZlIFN0YXRzLlxyXG4gIHN0YXRDYXRlZ29yaWVzLmZvckVhY2goZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgY29uc3QgZWxzID0gJChgI2NvbXBldGl0aXZlIFtkYXRhLWNhdGVnb3J5LWlkPVwiMHgwMkUwMDAwMEZGRkZGRkZGXCJdIGg1OmNvbnRhaW5zKFwiJHtpdGVtfVwiKWApLmNsb3Nlc3QoJ3RhYmxlJykuZmluZCgndGJvZHkgdHInKTtcclxuICAgIGxldCBzdGF0c0FyciA9IFtdO1xyXG4gICAgZWxzLmVhY2goZnVuY3Rpb24oaSwgZWwpIHtcclxuICAgICAgbGV0IHN0YXQgPSB7fTtcclxuICAgICAgc3RhdC50aXRsZSA9ICQodGhpcykuZmluZCgndGQnKS5maXJzdCgpLnRleHQoKTtcclxuICAgICAgc3RhdC52YWx1ZSA9ICQodGhpcykuZmluZCgndGQnKS5uZXh0KCkudGV4dCgpO1xyXG4gICAgICBzdGF0c0Fyci5wdXNoKHN0YXQpO1xyXG4gICAgfSk7XHJcbiAgICBpdGVtID0gaXRlbS5yZXBsYWNlKCcgJywgJ18nKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgc3RhdHNbaXRlbV1bJ2NvbXBldGl0aXZlJ10gPSBbXTtcclxuICAgIHN0YXRzW2l0ZW1dWydjb21wZXRpdGl2ZSddID0gc3RhdHNBcnI7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBjYWxsYmFjayhudWxsLCB7IHN0YXRzLCBwYXJzZWQgfSk7XHJcbn1cclxuXHJcbi8vIFRyYW5zZm9ybSB0aGUgZGF0YSBpbnRvIGEganNvbiBvYmplY3Qgd2UgY2FuIHNlcnZlLlxyXG5mdW5jdGlvbiB0cmFuc2Zvcm0ocmVzdWx0cywgY2FsbGJhY2spIHtcclxuICBjb25zdCB7IHBhcnNlSFRNTCB9ID0gcmVzdWx0cztcclxuICBjb25zdCB7IHN0YXRzLCBwYXJzZWQgfSA9IHBhcnNlSFRNTDtcclxuXHJcbiAgY29uc3QgZW5kb3JzZW1lbnQgPSB7XHJcbiAgICBzcG9ydHNtYW5zaGlwOiB7IHZhbHVlOiBwYXJzZWQuc3BvcnRzbWFuc2hpcFZhbHVlLCByYXRlOiBwYXJzZUZsb2F0KChwYXJzZWQuc3BvcnRzbWFuc2hpcFZhbHVlICogMTAwKS50b0ZpeGVkKDIpKSB9LFxyXG4gICAgc2hvdGNhbGxlcjogeyB2YWx1ZTogcGFyc2VkLnNob3RjYWxsZXJWYWx1ZSwgcmF0ZTogcGFyc2VGbG9hdCgocGFyc2VkLnNob3RjYWxsZXJWYWx1ZSAqIDEwMCkudG9GaXhlZCgyKSkgfSxcclxuICAgIHRlYW1tYXRlOiB7IHZhbHVlOiBwYXJzZWQudGVhbW1hdGVWYWx1ZSwgcmF0ZTogcGFyc2VGbG9hdCgocGFyc2VkLnRlYW1tYXRlVmFsdWUgKiAxMDApLnRvRml4ZWQoMikpIH0sXHJcbiAgICBsZXZlbDogcGFyc2VJbnQocGFyc2VkLmVuZG9yc2VtZW50TGV2ZWwpLFxyXG4gICAgZnJhbWU6IHBhcnNlZC5lbmRvcnNlbWVudEZyYW1lLFxyXG4gIH07XHJcbiAgZW5kb3JzZW1lbnQuaWNvbiA9IGNyZWF0ZUVuZG9yc2VtZW50U1ZHKGVuZG9yc2VtZW50KTtcclxuXHJcbiAgLy8gQ2FsY3VsYXRlIHRoZSBwcmVzdGlnZSBsZXZlbC5cclxuICBsZXQgbGV2ZWwgPSBwYXJzZWQubGV2ZWw7XHJcbiAgaWYgKHBhcnNlZC5zdGFyICYmIHBhcnNlZC5yYW5rKSB7XHJcbiAgICBjb25zdCBzdGFyc01hdGNoID0gcGF0aC5iYXNlbmFtZShwYXJzZWQuc3Rhcikuc3BsaXQoJy4nKS5zbGljZSgwLCAtMSlbMF07XHJcbiAgICBjb25zdCByYW5rTWF0Y2ggPSBwYXRoLmJhc2VuYW1lKHBhcnNlZC5yYW5rKS5zcGxpdCgnLicpLnNsaWNlKDAsIC0xKVswXTtcclxuICAgIGNvbnN0IHN0YXJzID0gc3RhcnNNYXRjaCA/IGdldFByZXN0aWdlU3RhcnMoc3RhcnNNYXRjaCkgOiAwO1xyXG4gICAgY29uc3QgcmFuayA9IHJhbmtNYXRjaCA/IGdldFByZXN0aWdlTGV2ZWwocmFua01hdGNoKSA6IDA7XHJcbiAgICBjb25zdCBwcmVzdGlnZSA9IHBhcnNlSW50KHN0YXJzKSArIHBhcnNlSW50KHJhbmspO1xyXG4gICAgbGV2ZWwgPSBwYXJzZUludChwYXJzZWQubGV2ZWwpICsgKHBhcnNlSW50KHByZXN0aWdlKSAqIDEwMCk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBqc29uID0ge1xyXG4gICAgdXNlcm5hbWU6IHBhcnNlZC51c2VyLFxyXG4gICAgbGV2ZWw6IHBhcnNlSW50KGxldmVsKSxcclxuICAgIHBvcnRyYWl0OiBwYXJzZWQucG9ydHJhaXQsXHJcbiAgICBlbmRvcnNlbWVudDogZW5kb3JzZW1lbnQsXHJcbiAgICBwcml2YXRlOiBwYXJzZWQucGVybWlzc2lvbiA9PT0gJ1ByaXZhdGUgUHJvZmlsZScsXHJcbiAgICBzdGF0czogc3RhdHNcclxuICB9XHJcblxyXG4gIHJldHVybiBjYWxsYmFjayhudWxsLCBqc29uKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24ocGxhdGZvcm0sIHJlZ2lvbiwgdGFnLCBjYWxsYmFjaykge1xyXG4gIGFzeW5jLmF1dG8oe1xyXG4gICAgZ2V0SFRNTDogYXN5bmMuYXBwbHkoZ2V0SFRNTCwgcGxhdGZvcm0sIHJlZ2lvbiwgdGFnKSxcclxuICAgIHBhcnNlSFRNTDogWydnZXRIVE1MJywgYXN5bmMuYXBwbHkocGFyc2VIVE1MKV0sXHJcbiAgICB0cmFuc2Zvcm06IFsnZ2V0SFRNTCcsICdwYXJzZUhUTUwnLCBhc3luYy5hcHBseSh0cmFuc2Zvcm0pXSxcclxuICB9LCBmdW5jdGlvbihlcnIsIHJlc3VsdHMpIHtcclxuICAgIGlmIChlcnIpIHtcclxuICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgcmVzdWx0cy50cmFuc2Zvcm0pO1xyXG4gIH0pO1xyXG59Il19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0YXRzLmpzIl0sIm5hbWVzIjpbInVybCIsInBsYXRmb3JtIiwib3B0aW9ucyIsInVyaSIsImVuY29kZVVSSSIsImVuY29kaW5nIiwiY2FsbGJhY2siLCIkIiwiY2hlZXJpbyIsInJlc3VsdHMiLCJpc0ZvdW5kIiwicGFyc2VkIiwidXNlciIsImxldmVsIiwicG9ydHJhaXQiLCJwZXJtaXNzaW9uIiwiZW5kb3JzZW1lbnRMZXZlbCIsImVuZG9yc2VtZW50RnJhbWVFbCIsInNwb3J0c21hbnNoaXBWYWx1ZSIsInNob3RjYWxsZXJWYWx1ZSIsInRlYW1tYXRlVmFsdWUiLCJzdGFyRWwiLCJyYW5rRWwiLCJzdGF0cyIsInRvcEhlcm9DYXRlZ29yaWVzIiwicXVpY2twbGF5IiwiY29tcGV0aXRpdmUiLCJPYmplY3QiLCJ0b3BIZXJvZXNFbHMiLCJ0b3BIZXJvZXMiLCJzdGF0Iiwic3RhdENhdGVnb3JpZXMiLCJlbHMiLCJzdGF0c0FyciIsIml0ZW0iLCJwYXJzZUhUTUwiLCJlbmRvcnNlbWVudCIsInNwb3J0c21hbnNoaXAiLCJ2YWx1ZSIsInJhdGUiLCJwYXJzZUZsb2F0Iiwic2hvdGNhbGxlciIsInRlYW1tYXRlIiwicGFyc2VJbnQiLCJmcmFtZSIsImVuZG9yc2VtZW50RnJhbWUiLCJzdGFyc01hdGNoIiwicGF0aCIsInJhbmtNYXRjaCIsInN0YXJzIiwicmFuayIsInByZXN0aWdlIiwianNvbiIsInVzZXJuYW1lIiwiYXN5bmMiLCJnZXRIVE1MIiwidHJhbnNmb3JtIl0sIm1hcHBpbmdzIjoiNiszQkFJQTtnT0FKQSxHQUFBLENBQUEsS0FBQSwwQkFBQSxzQkFBQSxDQUFBLE9BQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxDQUFBLENBQ0EsR0FBQSxDQUFBLE1BQUEsMEJBQUEsc0JBQUEsQ0FBQSxPQUFBLENBQUEsT0FBQSxDQUFBLENBQUEsQ0FBQSxDQUNBLEdBQUEsQ0FBQSxRQUFBLDBCQUFBLHNCQUFBLENBQUEsT0FBQSxDQUFBLFNBQUEsQ0FBQSxDQUFB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LENBQVltQixNQUFBQSxDQUFBQSxTQUFBQSxDQUFBQSxDQUFBQSxLQUFBQSxDQUZkLFNBRWNBLENBQVosQ0FGRixDQUdURSxTQUFTLENBQUUsQ0FBQSxTQUFBLENBQUEsV0FBQSxDQUF5QkYsTUFBQUEsQ0FBQUEsU0FBQUEsQ0FBQUEsQ0FBQUEsS0FBQUEsQ0FBekIsU0FBeUJBLENBQXpCLENBSEYsQ0FBWEEsQ0FJRyxTQUFBLEdBQUEsQ0FBQSxPQUFBLENBQXVCLG1EQUN4QixHQUFBLEdBQUEsQ0FBUyxzREFDUCxNQUFPaEQsQ0FBQUEsUUFBUSxDQUFmLEdBQWUsQ0FBZixDQUNELENBRkQsa0NBRHdCLHlCQUl4QixNQUFPQSxDQUFBQSxRQUFRLENBQUEsSUFBQSxDQUFPRyxPQUFPLENBQTdCLFNBQWUsQ0FBZixDQVJGNkMsQ0FBQUEsRUFVRCxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XHJcbmltcG9ydCBhc3luYyBmcm9tICdhc3luYyc7XHJcbmltcG9ydCBjaGVlcmlvIGZyb20gJ2NoZWVyaW8nO1xyXG5pbXBvcnQgcmVxdWVzdCBmcm9tICdyZXF1ZXN0JztcclxuaW1wb3J0IHsgZ2V0UHJlc3RpZ2VMZXZlbCwgZ2V0UHJlc3RpZ2VTdGFycyB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBjcmVhdGVFbmRvcnNlbWVudFNWRyB9IGZyb20gJy4vc3ZnJztcclxuXHJcblxyXG4vLyBHZXQgSFRNTCBmcm9tIHBsYXlvdmVyd2F0Y2ggY2FyZWVyIHBhZ2UuXHJcbmZ1bmN0aW9uIGdldEhUTUwocGxhdGZvcm0sIHJlZ2lvbiwgdGFnLCBjYWxsYmFjaykge1xyXG4gIGNvbnN0IHVybCA9IHBsYXRmb3JtID09PSAncGMnXHJcbiAgICA/IGBodHRwczovL3BsYXlvdmVyd2F0Y2guY29tL2VuLXVzL2NhcmVlci8ke3BsYXRmb3JtfS8ke3JlZ2lvbn0vJHt0YWd9YFxyXG4gICAgOiBgaHR0cHM6Ly9wbGF5b3ZlcndhdGNoLmNvbS9lbi11cy9jYXJlZXIvJHtwbGF0Zm9ybX0vJHt0YWd9YDtcclxuXHJcbiAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgIHVyaTogZW5jb2RlVVJJKHVybCksXHJcbiAgICBlbmNvZGluZzogJ3V0ZjgnXHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVxdWVzdChvcHRpb25zLCAoZXJyLCByZXMsIGJvZHkpID0+IHtcclxuICAgIHJldHVybiBjYWxsYmFjayhlcnIsIGJvZHkpO1xyXG4gIH0pO1xyXG59XHJcblxyXG4vLyBCZWdpbiBodG1sIHBhcnNpbmcuXHJcbmZ1bmN0aW9uIHBhcnNlSFRNTChyZXN1bHRzLCBjYWxsYmFjaykge1xyXG4gIGNvbnN0ICQgPSBjaGVlcmlvLmxvYWQocmVzdWx0cy5nZXRIVE1MKTtcclxuXHJcbiAgLy8gQ2hlY2sgaWYgcHJvZmlsZSBleGlzdHMuXHJcbiAgY29uc3QgaXNGb3VuZCA9ICQoJy5jb250ZW50LWJveCBoMScpLnRleHQoKSAhPT0gJ1Byb2ZpbGUgTm90IEZvdW5kJztcclxuICBpZiAoIWlzRm91bmQpIHtcclxuICAgIHJldHVybiBjYWxsYmFjayhuZXcgRXJyb3IoJ1Byb2ZpbGUgbm90IGZvdW5kJykpO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcGFyc2VkID0ge1xyXG4gICAgdXNlcjogJCgnLmhlYWRlci1tYXN0aGVhZCcpLnRleHQoKSxcclxuICAgIGxldmVsOiAkKCcucGxheWVyLWxldmVsIGRpdicpLmZpcnN0KCkudGV4dCgpLFxyXG4gICAgcG9ydHJhaXQ6ICQoJy5wbGF5ZXItcG9ydHJhaXQnKS5hdHRyKCdzcmMnKSxcclxuICAgIHBlcm1pc3Npb246ICQoJy5tYXN0aGVhZC1wZXJtaXNzaW9uLWxldmVsLXRleHQnKS50ZXh0KCksXHJcbiAgICBlbmRvcnNlbWVudExldmVsOiAkKCcubWFzdGhlYWQgLmVuZG9yc2VtZW50LWxldmVsIGRpdicpLmxhc3QoKS50ZXh0KCksXHJcbiAgICBlbmRvcnNlbWVudEZyYW1lRWw6ICQoJy5tYXN0aGVhZCAuRW5kb3JzZW1lbnRJY29uJykuYXR0cignc3R5bGUnKSxcclxuICAgIHNwb3J0c21hbnNoaXBWYWx1ZTogJCgnLm1hc3RoZWFkIC5FbmRvcnNlbWVudEljb24tYm9yZGVyLS1zcG9ydHNtYW5zaGlwJykuZGF0YSgndmFsdWUnKSxcclxuICAgIHNob3RjYWxsZXJWYWx1ZTogJCgnLm1hc3RoZWFkIC5FbmRvcnNlbWVudEljb24tYm9yZGVyLS1zaG90Y2FsbGVyJykuZGF0YSgndmFsdWUnKSxcclxuICAgIHRlYW1tYXRlVmFsdWU6ICQoJy5tYXN0aGVhZCAuRW5kb3JzZW1lbnRJY29uLWJvcmRlci0tdGVhbW1hdGUnKS5kYXRhKCd2YWx1ZScpLFxyXG4gICAgc3RhckVsOiAkKCcucGxheWVyLXJhbmsnKS5odG1sKCksXHJcbiAgICByYW5rRWw6ICQoJy5wbGF5ZXItbGV2ZWwnKS5odG1sKCksXHJcbiAgfVxyXG5cclxuICBpZiAocGFyc2VkLmVuZG9yc2VtZW50RnJhbWVFbCkge1xyXG4gICAgcGFyc2VkLmVuZG9yc2VtZW50RnJhbWUgPSAkKCcubWFzdGhlYWQgLkVuZG9yc2VtZW50SWNvbicpLmF0dHIoJ3N0eWxlJykuc2xpY2UoMjEsIC0xKS5yZXBsYWNlKC8gL2csICcnKTtcclxuICB9XHJcblxyXG4gIGlmIChwYXJzZWQuc3RhckVsICE9PSBudWxsKSB7XHJcbiAgICBwYXJzZWQuc3RhciA9ICQoJy5wbGF5ZXItbGV2ZWwgLnBsYXllci1yYW5rJykuYXR0cignc3R5bGUnKS5zbGljZSgyMSwgLTEpLnJlcGxhY2UoLyAvZywgJycpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHBhcnNlZC5yYW5rRWwgIT09IG51bGwpIHtcclxuICAgIHBhcnNlZC5yYW5rID0gJCgnLnBsYXllci1sZXZlbCcpLmF0dHIoJ3N0eWxlJykuc2xpY2UoMjEsIC0xKS5yZXBsYWNlKC8gL2csICcnKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHN0YXRzID0ge307XHJcblxyXG4gIC8vIFRvcCBIZXJvZXMuXHJcbiAgY29uc3QgdG9wSGVyb0NhdGVnb3JpZXMgPSB7XHJcbiAgICBxdWlja3BsYXk6IHtcclxuICAgICAgJ3BsYXllZCc6ICcweDA4NjAwMDAwMDAwMDAwMjEnLFxyXG4gICAgICAnZ2FtZXNfd29uJzogJzB4MDg2MDAwMDAwMDAwMDAzOScsXHJcbiAgICAgICd3ZWFwb25fYWNjdXJhY3knOiAnMHgwODYwMDAwMDAwMDAwMDJGJyxcclxuICAgICAgJ2VsaW1pbmF0aW9uc19wZXJfbGlmZSc6ICcweDA4NjAwMDAwMDAwMDAzRDInLFxyXG4gICAgICAnbXVsdGlraWxsX2Jlc3QnOiAnMHgwODYwMDAwMDAwMDAwMzQ2JyxcclxuICAgICAgJ29iamVjdGl2ZV9raWxsc19hdmVyYWdlJzogJzB4MDg2MDAwMDAwMDAwMDM5QycsXHJcbiAgICB9LFxyXG4gICAgY29tcGV0aXRpdmU6IHtcclxuICAgICAgJ3BsYXllZCc6ICcweDA4NjAwMDAwMDAwMDAwMjEnLFxyXG4gICAgICAnZ2FtZXNfd29uJzogJzB4MDg2MDAwMDAwMDAwMDAzOScsXHJcbiAgICAgICd3aW5fcmF0ZSc6ICcweDA4NjAwMDAwMDAwMDAzRDEnLFxyXG4gICAgICAnd2VhcG9uX2FjY3VyYWN5JzogJzB4MDg2MDAwMDAwMDAwMDAyRicsXHJcbiAgICAgICdlbGltaW5hdGlvbnNfcGVyX2xpZmUnOiAnMHgwODYwMDAwMDAwMDAwM0QyJyxcclxuICAgICAgJ211bHRpa2lsbF9iZXN0JzogJzB4MDg2MDAwMDAwMDAwMDM0NicsXHJcbiAgICAgICdvYmplY3RpdmVfa2lsbHNfYXZlcmFnZSc6ICcweDA4NjAwMDAwMDAwMDAzOUMnLFxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8vIFF1aWNrcGxheS5cclxuICBzdGF0c1sndG9wX2hlcm9lcyddID0geyBxdWlja3BsYXk6IHt9IH07XHJcbiAgT2JqZWN0LmtleXModG9wSGVyb0NhdGVnb3JpZXMucXVpY2twbGF5KS5mb3JFYWNoKChrKSA9PiB7XHJcbiAgICBjb25zdCB0b3BIZXJvZXNFbHMgPSAkKGAjcXVpY2twbGF5IFtkYXRhLWNhdGVnb3J5LWlkPVwiJHt0b3BIZXJvQ2F0ZWdvcmllcy5xdWlja3BsYXlba119XCJdYClcclxuICAgICAgLmZpbmQoJy5wcm9ncmVzcy1jYXRlZ29yeS1pdGVtJyk7XHJcbiAgICBsZXQgdG9wSGVyb2VzID0gW107XHJcbiAgICB0b3BIZXJvZXNFbHMuZWFjaChmdW5jdGlvbihpLCBlbCkge1xyXG4gICAgICBjb25zdCBzdGF0ID0ge307XHJcbiAgICAgIHN0YXQuaGVybyA9ICQodGhpcykuZmluZCgnLlByb2dyZXNzQmFyLXRpdGxlJykudGV4dCgpO1xyXG4gICAgICBzdGF0LmltZyA9ICQodGhpcykuZmluZCgnLlByb2dyZXNzQmFyLXRodW1iJykuYXR0cignc3JjJyk7XHJcbiAgICAgIHN0YXRba10gPSAkKHRoaXMpLmZpbmQoJy5Qcm9ncmVzc0Jhci1kZXNjcmlwdGlvbicpLnRleHQoKTtcclxuICAgICAgdG9wSGVyb2VzLnB1c2goc3RhdCk7XHJcbiAgICB9KTtcclxuICAgIHN0YXRzWyd0b3BfaGVyb2VzJ11bJ3F1aWNrcGxheSddW2tdID0gdG9wSGVyb2VzO1xyXG4gIH0pO1xyXG5cclxuICAvLyBDb21wZXRpdGl2ZS5cclxuICBzdGF0c1sndG9wX2hlcm9lcyddWydjb21wZXRpdGl2ZSddID0ge307XHJcbiAgT2JqZWN0LmtleXModG9wSGVyb0NhdGVnb3JpZXMuY29tcGV0aXRpdmUpLmZvckVhY2goKGspID0+IHtcclxuICAgIGNvbnN0IHRvcEhlcm9lc0VscyA9ICQoYCNjb21wZXRpdGl2ZSBbZGF0YS1jYXRlZ29yeS1pZD1cIiR7dG9wSGVyb0NhdGVnb3JpZXMuY29tcGV0aXRpdmVba119XCJdYClcclxuICAgICAgLmZpbmQoJy5wcm9ncmVzcy1jYXRlZ29yeS1pdGVtJyk7XHJcbiAgICBsZXQgdG9wSGVyb2VzID0gW107XHJcbiAgICB0b3BIZXJvZXNFbHMuZWFjaChmdW5jdGlvbihpLCBlbCkge1xyXG4gICAgICBjb25zdCBzdGF0ID0ge307XHJcbiAgICAgIHN0YXQuaGVybyA9ICQodGhpcykuZmluZCgnLlByb2dyZXNzQmFyLXRpdGxlJykudGV4dCgpO1xyXG4gICAgICBzdGF0LmltZyA9ICQodGhpcykuZmluZCgnLlByb2dyZXNzQmFyLXRodW1iJykuYXR0cignc3JjJyk7XHJcbiAgICAgIHN0YXRba10gPSAkKHRoaXMpLmZpbmQoJy5Qcm9ncmVzc0Jhci1kZXNjcmlwdGlvbicpLnRleHQoKTtcclxuICAgICAgdG9wSGVyb2VzLnB1c2goc3RhdCk7XHJcbiAgICB9KTtcclxuICAgIHN0YXRzWyd0b3BfaGVyb2VzJ11bJ2NvbXBldGl0aXZlJ11ba10gPSB0b3BIZXJvZXM7XHJcbiAgfSk7XHJcblxyXG4gIC8vXHJcbiAgLy8gQ2FyZWVyIFN0YXRzXHJcbiAgLy9cclxuICBjb25zdCBzdGF0Q2F0ZWdvcmllcyA9IFtcclxuICAgICdDb21iYXQnLFxyXG4gICAgJ01hdGNoIEF3YXJkcycsXHJcbiAgICAnQXNzaXN0cycsXHJcbiAgICAnQXZlcmFnZScsXHJcbiAgICAnTWlzY2VsbGFuZW91cycsXHJcbiAgICAnQmVzdCcsXHJcbiAgICAnR2FtZSdcclxuICBdO1xyXG5cclxuICAvLyBRdWlja3BsYXkgU3RhdHMuXHJcbiAgc3RhdENhdGVnb3JpZXMuZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBjb25zdCBlbHMgPSAkKGAjcXVpY2twbGF5IFtkYXRhLWNhdGVnb3J5LWlkPVwiMHgwMkUwMDAwMEZGRkZGRkZGXCJdIGg1OmNvbnRhaW5zKFwiJHtpdGVtfVwiKWApLmNsb3Nlc3QoJ3RhYmxlJykuZmluZCgndGJvZHkgdHInKTtcclxuICAgIGxldCBzdGF0c0FyciA9IFtdO1xyXG4gICAgZWxzLmVhY2goZnVuY3Rpb24oaSwgZWwpIHtcclxuICAgICAgbGV0IHN0YXQgPSB7fTtcclxuICAgICAgc3RhdC50aXRsZSA9ICQodGhpcykuZmluZCgndGQnKS5maXJzdCgpLnRleHQoKTtcclxuICAgICAgc3RhdC52YWx1ZSA9ICQodGhpcykuZmluZCgndGQnKS5uZXh0KCkudGV4dCgpO1xyXG4gICAgICBzdGF0c0Fyci5wdXNoKHN0YXQpO1xyXG4gICAgfSk7XHJcbiAgICBpdGVtID0gaXRlbS5yZXBsYWNlKCcgJywgJ18nKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgc3RhdHNbaXRlbV0gPSB7IHF1aWNrcGxheTogW10gfTtcclxuICAgIHN0YXRzW2l0ZW1dWydxdWlja3BsYXknXSA9IHN0YXRzQXJyO1xyXG4gIH0pO1xyXG5cclxuICAvLyBDb21wZXRpdGl2ZSBTdGF0cy5cclxuICBzdGF0Q2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGNvbnN0IGVscyA9ICQoYCNjb21wZXRpdGl2ZSBbZGF0YS1jYXRlZ29yeS1pZD1cIjB4MDJFMDAwMDBGRkZGRkZGRlwiXSBoNTpjb250YWlucyhcIiR7aXRlbX1cIilgKS5jbG9zZXN0KCd0YWJsZScpLmZpbmQoJ3Rib2R5IHRyJyk7XHJcbiAgICBsZXQgc3RhdHNBcnIgPSBbXTtcclxuICAgIGVscy5lYWNoKGZ1bmN0aW9uKGksIGVsKSB7XHJcbiAgICAgIGxldCBzdGF0ID0ge307XHJcbiAgICAgIHN0YXQudGl0bGUgPSAkKHRoaXMpLmZpbmQoJ3RkJykuZmlyc3QoKS50ZXh0KCk7XHJcbiAgICAgIHN0YXQudmFsdWUgPSAkKHRoaXMpLmZpbmQoJ3RkJykubmV4dCgpLnRleHQoKTtcclxuICAgICAgc3RhdHNBcnIucHVzaChzdGF0KTtcclxuICAgIH0pO1xyXG4gICAgaXRlbSA9IGl0ZW0ucmVwbGFjZSgnICcsICdfJykudG9Mb3dlckNhc2UoKTtcclxuICAgIHN0YXRzW2l0ZW1dWydjb21wZXRpdGl2ZSddID0gW107XHJcbiAgICBzdGF0c1tpdGVtXVsnY29tcGV0aXRpdmUnXSA9IHN0YXRzQXJyO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gY2FsbGJhY2sobnVsbCwgeyBzdGF0cywgcGFyc2VkIH0pO1xyXG59XHJcblxyXG4vLyBUcmFuc2Zvcm0gdGhlIGRhdGEgaW50byBhIGpzb24gb2JqZWN0IHdlIGNhbiBzZXJ2ZS5cclxuZnVuY3Rpb24gdHJhbnNmb3JtKHJlc3VsdHMsIGNhbGxiYWNrKSB7XHJcbiAgY29uc3QgeyBwYXJzZUhUTUwgfSA9IHJlc3VsdHM7XHJcbiAgY29uc3QgeyBzdGF0cywgcGFyc2VkIH0gPSBwYXJzZUhUTUw7XHJcblxyXG4gIGNvbnN0IGVuZG9yc2VtZW50ID0ge1xyXG4gICAgc3BvcnRzbWFuc2hpcDogeyB2YWx1ZTogcGFyc2VkLnNwb3J0c21hbnNoaXBWYWx1ZSwgcmF0ZTogcGFyc2VGbG9hdCgocGFyc2VkLnNwb3J0c21hbnNoaXBWYWx1ZSAqIDEwMCkudG9GaXhlZCgyKSkgfSxcclxuICAgIHNob3RjYWxsZXI6IHsgdmFsdWU6IHBhcnNlZC5zaG90Y2FsbGVyVmFsdWUsIHJhdGU6IHBhcnNlRmxvYXQoKHBhcnNlZC5zaG90Y2FsbGVyVmFsdWUgKiAxMDApLnRvRml4ZWQoMikpIH0sXHJcbiAgICB0ZWFtbWF0ZTogeyB2YWx1ZTogcGFyc2VkLnRlYW1tYXRlVmFsdWUsIHJhdGU6IHBhcnNlRmxvYXQoKHBhcnNlZC50ZWFtbWF0ZVZhbHVlICogMTAwKS50b0ZpeGVkKDIpKSB9LFxyXG4gICAgbGV2ZWw6IHBhcnNlSW50KHBhcnNlZC5lbmRvcnNlbWVudExldmVsKSxcclxuICAgIGZyYW1lOiBwYXJzZWQuZW5kb3JzZW1lbnRGcmFtZSxcclxuICB9O1xyXG4gIGVuZG9yc2VtZW50Lmljb24gPSBjcmVhdGVFbmRvcnNlbWVudFNWRyhlbmRvcnNlbWVudCk7XHJcblxyXG4gIC8vIENhbGN1bGF0ZSB0aGUgcHJlc3RpZ2UgbGV2ZWwuXHJcbiAgbGV0IGxldmVsID0gcGFyc2VkLmxldmVsO1xyXG4gIGlmIChwYXJzZWQuc3RhciAmJiBwYXJzZWQucmFuaykge1xyXG4gICAgY29uc3Qgc3RhcnNNYXRjaCA9IHBhdGguYmFzZW5hbWUocGFyc2VkLnN0YXIpLnNwbGl0KCcuJykuc2xpY2UoMCwgLTEpWzBdO1xyXG4gICAgY29uc3QgcmFua01hdGNoID0gcGF0aC5iYXNlbmFtZShwYXJzZWQucmFuaykuc3BsaXQoJy4nKS5zbGljZSgwLCAtMSlbMF07XHJcbiAgICBjb25zdCBzdGFycyA9IHN0YXJzTWF0Y2ggPyBnZXRQcmVzdGlnZVN0YXJzKHN0YXJzTWF0Y2gpIDogMDtcclxuICAgIGNvbnN0IHJhbmsgPSByYW5rTWF0Y2ggPyBnZXRQcmVzdGlnZUxldmVsKHJhbmtNYXRjaCkgOiAwO1xyXG4gICAgY29uc3QgcHJlc3RpZ2UgPSBwYXJzZUludChzdGFycykgKyBwYXJzZUludChyYW5rKTtcclxuICAgIGxldmVsID0gcGFyc2VJbnQocGFyc2VkLmxldmVsKSArIChwYXJzZUludChwcmVzdGlnZSkgKiAxMDApO1xyXG4gIH1cclxuXHJcbiAgY29uc3QganNvbiA9IHtcclxuICAgIHVzZXJuYW1lOiBwYXJzZWQudXNlcixcclxuICAgIGxldmVsOiBwYXJzZUludChsZXZlbCksXHJcbiAgICBwb3J0cmFpdDogcGFyc2VkLnBvcnRyYWl0LFxyXG4gICAgZW5kb3JzZW1lbnQ6IGVuZG9yc2VtZW50LFxyXG4gICAgcHJpdmF0ZTogcGFyc2VkLnBlcm1pc3Npb24gPT09ICdQcml2YXRlIFByb2ZpbGUnLFxyXG4gICAgc3RhdHM6IHN0YXRzXHJcbiAgfVxyXG5cclxuICByZXR1cm4gY2FsbGJhY2sobnVsbCwganNvbik7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHBsYXRmb3JtLCByZWdpb24sIHRhZywgY2FsbGJhY2spIHtcclxuICBhc3luYy5hdXRvKHtcclxuICAgIGdldEhUTUw6IGFzeW5jLmFwcGx5KGdldEhUTUwsIHBsYXRmb3JtLCByZWdpb24sIHRhZyksXHJcbiAgICBwYXJzZUhUTUw6IFsnZ2V0SFRNTCcsIGFzeW5jLmFwcGx5KHBhcnNlSFRNTCldLFxyXG4gICAgdHJhbnNmb3JtOiBbJ2dldEhUTUwnLCAncGFyc2VIVE1MJywgYXN5bmMuYXBwbHkodHJhbnNmb3JtKV0sXHJcbiAgfSwgZnVuY3Rpb24oZXJyLCByZXN1bHRzKSB7XHJcbiAgICBpZiAoZXJyKSB7XHJcbiAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHJlc3VsdHMudHJhbnNmb3JtKTtcclxuICB9KTtcclxufSJdLCJzb3VyY2VSb290IjoiQzpcXFVzZXJzXFxBbGZcXFNvdXJjZVxcb3ZlcndhdGNoLWFwaVxcYXBpXFxzcmNcXHBhcnNlclxcIn0=