{
  "title": "Blacklight Inspection",
  "page_title": "Accueil - Loire — CIDFF",
  "uri_ins": "https://loire.cidff.info/",
  "uri_dest": "https://loire.cidff.info/",
  "uri_redirects": [],
  "secure_connection": {},
  "host": "loire.cidff.info",
  "config": {
    "emulateDevice": {
      "name": "iPhone 15 Pro",
      "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1",
      "viewport": {
        "width": 393,
        "height": 659,
        "deviceScaleFactor": 3,
        "isMobile": true,
        "hasTouch": true,
        "isLandscape": false
      }
    },
    "cleareCache": true,
    "captureHar": true,
    "captureLinks": false,
    "enableAdBlock": false,
    "saveBrowserProfile": false,
    "numPages": 2,
    "defaultTimeout": 35000,
    "defaultWaitUntil": "networkidle2",
    "headless": true,
    "headers": {},
    "extraChromiumArgs": [
      "--disable-features=TrackingProtection3pcd",
      "--website-analysis-scan=3dd8d746-36ec-48a4-a1f0-9fa7ffbd8244"
    ],
    "extraPuppeteerOptions": {}
  },
  "browser": {
    "name": "Chromium",
    "version": "Chrome/127.0.6533.88",
    "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/127.0.0.0 Safari/537.36",
    "platform": {
      "name": "Linux",
      "version": "6.12.101+deb13-amd64"
    }
  },
  "script": {
    "host": "35d8fd4bd11b",
    "version": {
      "npm": "3.11.0",
      "commit": "dev"
    },
    "node_version": "v24.19.0"
  },
  "start_time": "2026-08-24T04:42:24.737Z",
  "end_time": "2026-08-24T04:42:37.540Z",
  "browsing_history": [
    "https://loire.cidff.info/",
    "https://loire.cidff.info/adhesion-don/",
    "https://loire.cidff.info/services/lutte-contre-les-violences-sexistes/"
  ],
  "hosts": {
    "requests": {
      "first_party": [
        "loire.cidff.info"
      ],
      "third_party": [
        "unpkg.com",
        "cdnjs.cloudflare.com",
        "c.basemaps.cartocdn.com",
        "a.basemaps.cartocdn.com",
        "b.basemaps.cartocdn.com"
      ]
    }
  },
  "reports": {
    "behaviour_event_listeners": {
      "MOUSE": {
        "https://loire.cidff.info/wp-content/cache/autoptimize/autoptimize_single_fa03f187c5d2fdfce7632be6f0a06478.php?ver=1.9.4": [
          "scroll"
        ]
      },
      "KEYBOARD": {
        "data:text/javascript;base64,CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXBJZCA9ICJjaWRmZi1tYXAiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFwUmVmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobWFwSWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFwRGV0YWlsc1JlZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaWRmZi1zaXRlLWRldGFpbHMnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGRyZXNzUG9pbnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1vZGVsIDogWyBsYXQsIGxvbiwgdG9vbHRpcCwgc2l0ZURhdGEgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUuNTI2MjI5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMjY5Nzc1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBFc3BhY2UgRnJhbmNlIFNlcnZpY2VzIEFuZHLDqXppZXV4LUJvdXRow6lvbmAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjEyNiIsImNlbnRyZV9pZCI6IjgiLCJub20iOiJFc3BhY2UgRnJhbmNlIFNlcnZpY2VzIEFuZHJcdTAwZTl6aWV1eC1Cb3V0aFx1MDBlOW9uIiwibm9tX3NsdWciOiJlc3BhY2UtZnJhbmNlLXNlcnZpY2VzLWFuZHJlemlldXhib3V0aGVvbiIsImFkcmVzc2UiOiIxLCBydWUgTW9saVx1MDBlOHJlIiwiY3AiOiI0MjE2MCIsInZpbGxlIjoiQW5kclx1MDBlOXppZXV4LUJvdXRoXHUwMGU5b24iLCJ2aWxsZV9zbHVnIjoiYW5kcmV6aWV1eGJvdXRoZW9uIiwiY2l0eV9pZCI6IjE2MzkwIiwiZW1haWwiOiJjaWRmZjQyQGNpZGZmNDIuZnIiLCJ0ZWxlcGhvbmUiOiIwNCA3NyAwMSAzMyA1NSIsInFwdiI6IjEiLCJ6cnIiOiIwIiwiYWNjdWVpbCI6IkNlbnRyZSBTb2NpYWwgbGUgTmVsdW1ibyIsImFjY3VlaWxfcHJlY2lzaW9uIjoiRnJhbmNlIFNlcnZpY2VzIiwiaG9yYWlyZXMiOiJMZSB2ZW5kcmVkaSBtYXRpbiAoc2VtYWluZSBwYWlyZSkgZGUgOWgwMCBcdTAwZTAgMTJoMDAiLCJ2b2xfaHJfaGViZG8iOiI0NSBtaW4gZW4gbW95ZW5uZSIsImlpIjoiMSIsImljIjoiMSIsImUiOiIxIiwidiI6IjEiLCJwcmVjaXNpb24iOiIiLCJjYXJ0b2dyYXBoaWUiOiIxIiwiZGVsZXRlZCI6IjAiLCJjYWRyZTEiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJjYWRyZTIiOm51bGwsImNhZHJlMyI6bnVsbCwiY2FkcmU0IjpudWxsLCJjYWRyZTUiOm51bGwsImFjY2Vzc2liaWxpdGUxIjoiQXVkaXRpZiIsImFjY2Vzc2liaWxpdGUyIjoiTWVudGFsXC9Qc3ljaGlxdWUiLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjoiVmlzdWVsIiwiYWNjZXNzaWJpbGl0ZTUiOm51bGwsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6bnVsbCwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOiJGcmFuY2UgU2VydmljZSIsImRlcGFydGVtZW50IjoiTG9pcmUiLCJyZWdpb24iOiJBdXZlcmduZS1SaFx1MDBmNG5lLUFscGVzIiwiY29vcmRzIjp7ImxhdCI6NDUuNTI2MjI5LCJsb24iOjQuMjY5Nzc1LCJ1cmwiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5mclwvbWFwc1wvQDQ1LjUyNjIyOSw0LjI2OTc3NSwxNXoifSwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL3d3dy5jaWRmZjQyLmZyIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ2LjAzNTExNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjA2MzUyMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgUG9pbnQgQWNjdWVpbCBGZW1tZXMgRmFtaWxsZXMgSmV1bmVzIChSb2FubmUpYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMTI3IiwiY2VudHJlX2lkIjoiOCIsIm5vbSI6IlBvaW50IEFjY3VlaWwgRmVtbWVzIEZhbWlsbGVzIEpldW5lcyAoUm9hbm5lKSIsIm5vbV9zbHVnIjoicG9pbnQtYWNjdWVpbC1mZW1tZXMtZmFtaWxsZXMtamV1bmVzLShyb2FubmUpIiwiYWRyZXNzZSI6IjExIHJ1ZSBNb3VsaW4gUGFpbGxhc3NvbiIsImNwIjoiNDIzMDAiLCJ2aWxsZSI6IlJvYW5uZSIsInZpbGxlX3NsdWciOiJyb2FubmUiLCJjaXR5X2lkIjoiMTY1NjciLCJlbWFpbCI6ImNpZGZmNDJAY2lkZmY0Mi5mciIsInRlbGVwaG9uZSI6IjA0IDc3IDAxIDMzIDU1IiwicXB2IjoiMSIsInpyciI6IjAiLCJhY2N1ZWlsIjoiUG9pbnQgZCdBY2N1ZWlsIEZlbW1lcyBGYW1pbGxlcyBKZXVuZXMiLCJhY2N1ZWlsX3ByZWNpc2lvbiI6IkxvY2FsIGFzc29jaWF0aWYiLCJob3JhaXJlcyI6IkxlIGx1bmRpIGFwclx1MDBlOHMtbWlkaSBkZSAxM2gzMCBcdTAwZTAgMTdoMDAgKHNlbWFpbmUgcGFpcmUpIFwvXG5MZSBtZXJjcmVkaSBkZSA5aDAwIFx1MDBlMCAxMmgzMCBldCBkZSAxM2gzMCBcdTAwZTAgMTdoMzAgXC9cbkxlIHZlbmRyZWRpIGFwclx1MDBlOHMtbWlkaSBkZSAxM2gzMCBcdTAwZTAgMTdoMDAgKHNlbWFpbmUgaW1wYWlyZSkiLCJ2b2xfaHJfaGViZG8iOiIxNGgiLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMSIsInYiOiIxIiwicHJlY2lzaW9uIjoiQW50ZW5uZSAgKHBhcnRhZ1x1MDBlOWUgYXZlYyBkJ2F1dHJlcyBhc3NvY2lhdGlvbnMpIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOm51bGwsImNhZHJlNCI6bnVsbCwiY2FkcmU1IjpudWxsLCJhY2Nlc3NpYmlsaXRlMSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTIiOiJNZW50YWxcL1BzeWNoaXF1ZSIsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjoiVFx1MDBlOWxcdTAwZTlwaG9uaXF1ZSIsInR5cGUzIjpudWxsLCJ0eXBlNCI6bnVsbCwibWZzIjpudWxsLCJkZXBhcnRlbWVudCI6IkxvaXJlIiwicmVnaW9uIjoiQXV2ZXJnbmUtUmhcdTAwZjRuZS1BbHBlcyIsImNvb3JkcyI6eyJsYXQiOjQ2LjAzNTExNCwibG9uIjo0LjA2MzUyMywidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0Ni4wMzUxMTQsNC4wNjM1MjMsMTV6In0sInNpdGVfaW50ZXJuZXQiOiJodHRwOlwvXC93d3cuY2lkZmY0Mi5mciJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ni4wNTc3OTcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4wOTIwNDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYE1haXNvbiBGcmFuY2UgU2VydmljZXMgKFJvYW5uZSAvIFBhcmMpYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMTI4IiwiY2VudHJlX2lkIjoiOCIsIm5vbSI6Ik1haXNvbiBGcmFuY2UgU2VydmljZXMgKFJvYW5uZSBcLyBQYXJjKSIsIm5vbV9zbHVnIjoibWFpc29uLWZyYW5jZS1zZXJ2aWNlcy0ocm9hbm5lLVwvLXBhcmMpIiwiYWRyZXNzZSI6IjI1IHJ1ZSBDb25kb3JjZXRcbiIsImNwIjoiNDIzMDAiLCJ2aWxsZSI6IlJvYW5uZSIsInZpbGxlX3NsdWciOiJyb2FubmUiLCJjaXR5X2lkIjoiMTY1NjciLCJlbWFpbCI6ImZzcGFyY0B2aWxsZS1yb2FubmUuZnIiLCJ0ZWxlcGhvbmUiOiIwNCA3NyA0NCAwOSA2MCIsInFwdiI6IjEiLCJ6cnIiOiIwIiwiYWNjdWVpbCI6Ik1haXNvbiBkZXMgU2VydmljZXMgUHVibGljcyIsImFjY3VlaWxfcHJlY2lzaW9uIjoiRnJhbmNlIFNlcnZpY2VzIiwiaG9yYWlyZXMiOiJMZSB2ZW5kcmVkaSBtYXRpbiAoc2VtYWluZSBpbXBhaXJlKSBkZSA5aDAwIFx1MDBlMCAxMmgwMCIsInZvbF9ocl9oZWJkbyI6IjFoMzAiLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMSIsInYiOiIxIiwicHJlY2lzaW9uIjoiUG9zaXRpb25uZW1lbnQgZGVzIFJEViBkXHUwMGU5bFx1MDBlOWd1XHUwMGU5IiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOm51bGwsImNhZHJlNCI6bnVsbCwiY2FkcmU1IjpudWxsLCJhY2Nlc3NpYmlsaXRlMSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTIiOiJNZW50YWxcL1BzeWNoaXF1ZSIsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjpudWxsLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6IkZyYW5jZSBTZXJ2aWNlIiwiZGVwYXJ0ZW1lbnQiOiJMb2lyZSIsInJlZ2lvbiI6IkF1dmVyZ25lLVJoXHUwMGY0bmUtQWxwZXMiLCJjb29yZHMiOnsibGF0Ijo0Ni4wNTc3OTcsImxvbiI6NC4wOTIwNDUsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDYuMDU3Nzk3LDQuMDkyMDQ1LDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvd3d3LmNpZGZmNDIuZnIifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUuMzk0ODc3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMzI0MTIzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBQw7RsZSBkZSBTZXJ2aWNlcyAoTGUgQ2hhbWJvbi1GZXVnZXJvbGxlcylgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiaWQiOiIxMzAiLCJjZW50cmVfaWQiOiI4Iiwibm9tIjoiUFx1MDBmNGxlIGRlIFNlcnZpY2VzIChMZSBDaGFtYm9uLUZldWdlcm9sbGVzKSIsIm5vbV9zbHVnIjoicG9sZS1kZS1zZXJ2aWNlcy0obGUtY2hhbWJvbmZldWdlcm9sbGVzKSIsImFkcmVzc2UiOiIyIGJvdWxldmFyZCBEJ0F1dmVyZ25lIiwiY3AiOiI0MjUwMCIsInZpbGxlIjoiQ2hhbWJvbi1GZXVnZXJvbGxlcyAoTGUpIiwidmlsbGVfc2x1ZyI6ImNoYW1ib25mZXVnZXJvbGxlcy0obGUpIiwiY2l0eV9pZCI6IjE2NDI4IiwiZW1haWwiOiJjaWRmZjQyQGNpZGZmNDIuZnIiLCJ0ZWxlcGhvbmUiOiIwNCA3NyAwMSAzMyA1NSIsInFwdiI6IjEiLCJ6cnIiOiIwIiwiYWNjdWVpbCI6IlBcdTAwZjRsZSBkZSBTZXJ2aWNlcyIsImFjY3VlaWxfcHJlY2lzaW9uIjoiIiwiaG9yYWlyZXMiOiJMZSBsdW5kaSBhcHJcdTAwZThzLW1pZGkgKHNlbWFpbmUgcGFpcmUpIGRlIDEzaDMwIFx1MDBlMCAxNmgzMCIsInZvbF9ocl9oZWJkbyI6IjQ1IG1pbiBlbiBtb3llbm5lIiwiaWkiOiIxIiwiaWMiOiIxIiwiZSI6IjEiLCJ2IjoiMSIsInByZWNpc2lvbiI6IiIsImNhcnRvZ3JhcGhpZSI6IjEiLCJkZWxldGVkIjoiMCIsImNhZHJlMSI6IkwnYWNjXHUwMGU4cyBhdXggZHJvaXRzIHRvdXRlcyB0aFx1MDBlOW1hdGlxdWVzIGNvbmZvbmR1ZXMgKERcdTAwZTljcmV0IDIwMTUtMTc0NSBkdSAyMyBkXHUwMGU5Y2VtYnJlIDIwMTUgcmVsYXRpZiBcdTAwZTAgbCdhZ3JcdTAwZTltZW50KSIsImNhZHJlMiI6bnVsbCwiY2FkcmUzIjpudWxsLCJjYWRyZTQiOm51bGwsImNhZHJlNSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTEiOm51bGwsImFjY2Vzc2liaWxpdGUyIjoiTWVudGFsXC9Qc3ljaGlxdWUiLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjoiVmlzdWVsIiwiYWNjZXNzaWJpbGl0ZTUiOm51bGwsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6bnVsbCwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOm51bGwsImRlcGFydGVtZW50IjoiTG9pcmUiLCJyZWdpb24iOiJBdXZlcmduZS1SaFx1MDBmNG5lLUFscGVzIiwiY29vcmRzIjp7ImxhdCI6NDUuMzk0ODc3LCJsb24iOjQuMzI0MTIzLCJ1cmwiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5mclwvbWFwc1wvQDQ1LjM5NDg3Nyw0LjMyNDEyMywxNXoifSwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL3d3dy5jaWRmZjQyLmZyIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ2LjAyMzc0OCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjA1MTIzNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgTWFpc29uIEZyYW5jZSBTZXJ2aWNlcyAoUm9hbm5lIC8gU3QtQ2xhaXIpYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMTMxIiwiY2VudHJlX2lkIjoiOCIsIm5vbSI6Ik1haXNvbiBGcmFuY2UgU2VydmljZXMgKFJvYW5uZSBcLyBTdC1DbGFpcikiLCJub21fc2x1ZyI6Im1haXNvbi1mcmFuY2Utc2VydmljZXMtKHJvYW5uZS1cLy1zdGNsYWlyKSIsImFkcmVzc2UiOiIyOCBiaXMgcnVlIGR1IE1heW9sbGV0ICIsImNwIjoiNDIzMDAiLCJ2aWxsZSI6IlJvYW5uZSIsInZpbGxlX3NsdWciOiJyb2FubmUiLCJjaXR5X2lkIjoiMTY1NjciLCJlbWFpbCI6ImZzc2FpbnRjbGFpckB2aWxsZS1yb2FubmUuZnIiLCJ0ZWxlcGhvbmUiOiIwNCA3NyA0NCAyNyA4MCIsInFwdiI6IjEiLCJ6cnIiOiIwIiwiYWNjdWVpbCI6Ik1haXNvbiBkZXMgU2VydmljZXMgUHVibGljcyIsImFjY3VlaWxfcHJlY2lzaW9uIjoiTWFpc29uIEZyYW5jZSBzZXJ2aWNlcyIsImhvcmFpcmVzIjoiTGUgbHVuZGkgbWF0aW4gKHNlbWFpbmUgcGFpcmUpIGRlIDloMDAgXHUwMGUwIDEyaDAwXG4iLCJ2b2xfaHJfaGViZG8iOiIxaDMwIGVuIG1veWVubmUiLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMSIsInYiOiIxIiwicHJlY2lzaW9uIjoiUG9zaXRpb25uZW1lbnQgZGVzIFJEViBkXHUwMGU5bFx1MDBlOWd1XHUwMGU5IiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOm51bGwsImNhZHJlNCI6bnVsbCwiY2FkcmU1IjpudWxsLCJhY2Nlc3NpYmlsaXRlMSI6IkF1ZGl0aWYiLCJhY2Nlc3NpYmlsaXRlMiI6Ik1lbnRhbFwvUHN5Y2hpcXVlIiwiYWNjZXNzaWJpbGl0ZTMiOiJNb3RldXIiLCJhY2Nlc3NpYmlsaXRlNCI6IlZpc3VlbCIsImFjY2Vzc2liaWxpdGU1IjpudWxsLCJ0eXBlMSI6IlBoeXNpcXVlIiwidHlwZTIiOm51bGwsInR5cGUzIjpudWxsLCJ0eXBlNCI6bnVsbCwibWZzIjoiRnJhbmNlIFNlcnZpY2UiLCJkZXBhcnRlbWVudCI6IkxvaXJlIiwicmVnaW9uIjoiQXV2ZXJnbmUtUmhcdTAwZjRuZS1BbHBlcyIsImNvb3JkcyI6eyJsYXQiOjQ2LjAyMzc0OCwibG9uIjo0LjA1MTIzNiwidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0Ni4wMjM3NDgsNC4wNTEyMzYsMTV6In0sInNpdGVfaW50ZXJuZXQiOiJodHRwOlwvXC93d3cuY2lkZmY0Mi5mciJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NS40ODA5NzUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41MjYzNTcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYENlbnRyZSBzb2NpYWwgZGUgU3QtSnVsaWVuLWVuLUphcmV6IChTdC1DaGFtb25kKWAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjEzMiIsImNlbnRyZV9pZCI6IjgiLCJub20iOiJDZW50cmUgc29jaWFsIGRlIFN0LUp1bGllbi1lbi1KYXJleiAoU3QtQ2hhbW9uZCkiLCJub21fc2x1ZyI6ImNlbnRyZS1zb2NpYWwtZGUtc3RqdWxpZW5lbmphcmV6LShzdGNoYW1vbmQpIiwiYWRyZXNzZSI6IjQ0LCBHcmFuZGUgUnVlIiwiY3AiOiI0MjQwMCIsInZpbGxlIjoiU2FpbnQtQ2hhbW9uZCIsInZpbGxlX3NsdWciOiJzYWludGNoYW1vbmQiLCJjaXR5X2lkIjoiMTY1ODYiLCJlbWFpbCI6ImNpZGZmNDJAY2lkZmY0Mi5mciIsInRlbGVwaG9uZSI6IjA0IDc3IDAxIDMzIDU1IiwicXB2IjoiMSIsInpyciI6IjAiLCJhY2N1ZWlsIjoiQ2VudHJlIFNvY2lhbCBMYXZpZXUiLCJhY2N1ZWlsX3ByZWNpc2lvbiI6IkNlbnRyZSBzb2NpYWwiLCJob3JhaXJlcyI6IkxlIG1hcmRpIG1hdGluIChzZW1haW5lIHBhaXJlKSBkZSA5aDAwIFx1MDBlMCAxMmgwMFxuIiwidm9sX2hyX2hlYmRvIjoiNDUgbWluIiwiaWkiOiIxIiwiaWMiOiIxIiwiZSI6IjEiLCJ2IjoiMSIsInByZWNpc2lvbiI6IiIsImNhcnRvZ3JhcGhpZSI6IjEiLCJkZWxldGVkIjoiMCIsImNhZHJlMSI6IkwnYWNjXHUwMGU4cyBhdXggZHJvaXRzIHRvdXRlcyB0aFx1MDBlOW1hdGlxdWVzIGNvbmZvbmR1ZXMgKERcdTAwZTljcmV0IDIwMTUtMTc0NSBkdSAyMyBkXHUwMGU5Y2VtYnJlIDIwMTUgcmVsYXRpZiBcdTAwZTAgbCdhZ3JcdTAwZTltZW50KSIsImNhZHJlMiI6bnVsbCwiY2FkcmUzIjpudWxsLCJjYWRyZTQiOm51bGwsImNhZHJlNSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTEiOiJBdWRpdGlmIiwiYWNjZXNzaWJpbGl0ZTIiOiJNZW50YWxcL1BzeWNoaXF1ZSIsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjpudWxsLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6bnVsbCwiZGVwYXJ0ZW1lbnQiOiJMb2lyZSIsInJlZ2lvbiI6IkF1dmVyZ25lLVJoXHUwMGY0bmUtQWxwZXMiLCJjb29yZHMiOnsibGF0Ijo0NS40ODA5NzUsImxvbiI6NC41MjYzNTcsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDUuNDgwOTc1LDQuNTI2MzU3LDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvd3d3LmNpZGZmNDIuZnIifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUuNDM1MTU2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMzgxNjA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBDZW50cmUgc29jaWFsIGR1IEJhYmV0IChTdC1FdGllbm5lKWAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjEzNCIsImNlbnRyZV9pZCI6IjgiLCJub20iOiJDZW50cmUgc29jaWFsIGR1IEJhYmV0IChTdC1FdGllbm5lKSIsIm5vbV9zbHVnIjoiY2VudHJlLXNvY2lhbC1kdS1iYWJldC0oc3RldGllbm5lKSIsImFkcmVzc2UiOiIxMCBydWUgRlx1MDBlOWxpeCBQeWF0IiwiY3AiOiI0MjAwMCIsInZpbGxlIjoiU2FpbnQtXHUwMGM5dGllbm5lIiwidmlsbGVfc2x1ZyI6InNhaW50ZXRpZW5uZSIsImNpdHlfaWQiOiIxNjU5NyIsImVtYWlsIjoic2VjcmV0YXJpYXRAbGViYWJldC5mciIsInRlbGVwaG9uZSI6IjA0IDc3IDMzIDMzIDkyIiwicXB2IjoiMSIsInpyciI6IjAiLCJhY2N1ZWlsIjoiQ2VudHJlIHNvY2lhbCIsImFjY3VlaWxfcHJlY2lzaW9uIjoiQ2VudHJlIHNvY2lhbCIsImhvcmFpcmVzIjoiTGUgamV1ZGkgbWF0aW4gKDloLTEyaCkiLCJ2b2xfaHJfaGViZG8iOiIzaDQ1IiwiaWkiOiIxIiwiaWMiOiIxIiwiZSI6IjEiLCJ2IjoiMSIsInByZWNpc2lvbiI6IlBvc2l0aW9ubmVtZW50IGRlcyBSRFYgZFx1MDBlOWxcdTAwZTlndVx1MDBlOSIsImNhcnRvZ3JhcGhpZSI6IjEiLCJkZWxldGVkIjoiMCIsImNhZHJlMSI6IkwnYWNjXHUwMGU4cyBhdXggZHJvaXRzIHRvdXRlcyB0aFx1MDBlOW1hdGlxdWVzIGNvbmZvbmR1ZXMgKERcdTAwZTljcmV0IDIwMTUtMTc0NSBkdSAyMyBkXHUwMGU5Y2VtYnJlIDIwMTUgcmVsYXRpZiBcdTAwZTAgbCdhZ3JcdTAwZTltZW50KSIsImNhZHJlMiI6bnVsbCwiY2FkcmUzIjpudWxsLCJjYWRyZTQiOm51bGwsImNhZHJlNSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTEiOiJBdWRpdGlmIiwiYWNjZXNzaWJpbGl0ZTIiOiJNZW50YWxcL1BzeWNoaXF1ZSIsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjpudWxsLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6bnVsbCwiZGVwYXJ0ZW1lbnQiOiJMb2lyZSIsInJlZ2lvbiI6IkF1dmVyZ25lLVJoXHUwMGY0bmUtQWxwZXMiLCJjb29yZHMiOnsibGF0Ijo0NS40MzUxNTYsImxvbiI6NC4zODE2MDgsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDUuNDM1MTU2LDQuMzgxNjA4LDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvd3d3LmNpZGZmNDIuZnIifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUuNDIzMDg4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjczMjgzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBNYWlzb24gZGVzIHNlcnZpY2VzIGR1IFBpbGF0IFJob2RhbmllbiAoUMOpbHVzc2luKWAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjEzNSIsImNlbnRyZV9pZCI6IjgiLCJub20iOiJNYWlzb24gZGVzIHNlcnZpY2VzIGR1IFBpbGF0IFJob2RhbmllbiAoUFx1MDBlOWx1c3NpbikiLCJub21fc2x1ZyI6Im1haXNvbi1kZXMtc2VydmljZXMtZHUtcGlsYXQtcmhvZGFuaWVuLShwZWx1c3NpbikiLCJhZHJlc3NlIjoiNyBydWUgZGVzIFByYWlyaWVzIiwiY3AiOiI0MjQxMCIsInZpbGxlIjoiUFx1MDBlOWx1c3NpbiIsInZpbGxlX3NsdWciOiJwZWx1c3NpbiIsImNpdHlfaWQiOiIxNjU0OCIsImVtYWlsIjoibWRzQHBpbGF0cmhvZGFuaWVuLmZyIiwidGVsZXBob25lIjoiMDQgNzQgNTYgNzUgNjAiLCJxcHYiOiIwIiwienJyIjoiMSIsImFjY3VlaWwiOiJNYWlzb24gZGVzIHNlcnZpY2VzIGR1IFBpbGF0IFJob2RhbmllbiIsImFjY3VlaWxfcHJlY2lzaW9uIjoiTWFpc29uIEZyYW5jZSBTZXJ2aWNlcyIsImhvcmFpcmVzIjoiTGUgbWFyZGkgbWF0aW4gKHNlbWFpbmUgaW1wYWlyZSkgZGUgOWgwMCBcdTAwZTAgMTJoMDAgZW4gMjAyNCBcLyBMZSBtYXJkaSBhcHJcdTAwZThzLW1pZGkgKHNlbWFpbmUgcGFpcmUpIGRlIDE0aCBcdTAwZTAgMTdoIFx1MDBlMCBwYXJ0aXIgZHUgMDFcLzAxXC8yMDI1XG4iLCJ2b2xfaHJfaGViZG8iOiI0NSBtaW4iLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMSIsInYiOiIxIiwicHJlY2lzaW9uIjoiUG9zaXRpb25uZW1lbnQgZGVzIFJEViBkXHUwMGU5bFx1MDBlOWd1XHUwMGU5IiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOm51bGwsImNhZHJlNCI6bnVsbCwiY2FkcmU1IjpudWxsLCJhY2Nlc3NpYmlsaXRlMSI6IkF1ZGl0aWYiLCJhY2Nlc3NpYmlsaXRlMiI6Ik1lbnRhbFwvUHN5Y2hpcXVlIiwiYWNjZXNzaWJpbGl0ZTMiOiJNb3RldXIiLCJhY2Nlc3NpYmlsaXRlNCI6IlZpc3VlbCIsImFjY2Vzc2liaWxpdGU1IjpudWxsLCJ0eXBlMSI6IlBoeXNpcXVlIiwidHlwZTIiOm51bGwsInR5cGUzIjoiVmlzaW9jb25mXHUwMGU5cmVuY2UiLCJ0eXBlNCI6bnVsbCwibWZzIjoiRnJhbmNlIFNlcnZpY2UiLCJkZXBhcnRlbWVudCI6IkxvaXJlIiwicmVnaW9uIjoiQXV2ZXJnbmUtUmhcdTAwZjRuZS1BbHBlcyIsImNvb3JkcyI6eyJsYXQiOjQ1LjQyMzA4OCwibG9uIjo0LjY3MzI4MywidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0NS40MjMwODgsNC42NzMyODMsMTV6In0sInNpdGVfaW50ZXJuZXQiOiJodHRwOlwvXC93d3cuY2lkZmY0Mi5mciJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NS40MzczOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjM3OTE3NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgTWFpc29uIGRlIGxcJ0VtcGxvaWAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjE5OTMiLCJjZW50cmVfaWQiOiI4Iiwibm9tIjoiTWFpc29uIGRlIGwnRW1wbG9pIiwibm9tX3NsdWciOiJtYWlzb24tZGUtbGVtcGxvaSIsImFkcmVzc2UiOiIxOCBhdmVudWUgQXVndXN0aW4gRHVwclx1MDBlOSIsImNwIjoiNDIwMDAiLCJ2aWxsZSI6IlNhaW50LVx1MDBjOXRpZW5uZSIsInZpbGxlX3NsdWciOiJzYWludGV0aWVubmUiLCJjaXR5X2lkIjoiMTY1OTciLCJlbWFpbCI6ImNpZGZmNDJAY2lkZmY0Mi5mciIsInRlbGVwaG9uZSI6IjA0IDc3IDAxIDMzIDU1IiwicXB2IjoiMSIsInpyciI6IjAiLCJhY2N1ZWlsIjoiY2lkZmYgc2lcdTAwZThnZSIsImFjY3VlaWxfcHJlY2lzaW9uIjoiU2lcdTAwZThnZSBzb2NpYWwiLCJob3JhaXJlcyI6IkR1IGx1bmRpIGF1IHZlbmRyZWRpIChzYXVmIG1hcmRpIGEtbWlkaSlcbkRlIDloIFx1MDBlMCAxMmgzMCBldCBkZSAxM2gzMCBcdTAwZTAgMTdoIiwidm9sX2hyX2hlYmRvIjoiMzVoIiwiaWkiOiIxIiwiaWMiOiIxIiwiZSI6IjEiLCJ2IjoiMSIsInByZWNpc2lvbiI6IlNpXHUwMGU4Z2Ugc29jaWFsIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjoiTCdhY2NvbXBhZ25lbWVudCBlbXBsb2kiLCJjYWRyZTMiOm51bGwsImNhZHJlNCI6bnVsbCwiY2FkcmU1IjpudWxsLCJhY2Nlc3NpYmlsaXRlMSI6IkF1ZGl0aWYiLCJhY2Nlc3NpYmlsaXRlMiI6Ik1lbnRhbFwvUHN5Y2hpcXVlIiwiYWNjZXNzaWJpbGl0ZTMiOiJNb3RldXIiLCJhY2Nlc3NpYmlsaXRlNCI6IlZpc3VlbCIsImFjY2Vzc2liaWxpdGU1IjpudWxsLCJ0eXBlMSI6IlBoeXNpcXVlIiwidHlwZTIiOiJUXHUwMGU5bFx1MDBlOXBob25pcXVlIiwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOm51bGwsImRlcGFydGVtZW50IjoiTG9pcmUiLCJyZWdpb24iOiJBdXZlcmduZS1SaFx1MDBmNG5lLUFscGVzIiwiY29vcmRzIjp7ImxhdCI6NDUuNDM3MzksImxvbiI6NC4zNzkxNzQsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDUuNDM3MzksNC4zNzkxNzQsMTV6In0sInNpdGVfaW50ZXJuZXQiOiJodHRwOlwvXC93d3cuY2lkZmY0Mi5mciJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NS41MjgwMDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42MTMwMzUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYE1haXNvbiBGcmFuY2UgU2VydmljZXMgKFJpdmUtZGUtR2llcilgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiaWQiOiIzNTAyIiwiY2VudHJlX2lkIjoiOCIsIm5vbSI6Ik1haXNvbiBGcmFuY2UgU2VydmljZXMgKFJpdmUtZGUtR2llcikiLCJub21fc2x1ZyI6Im1haXNvbi1mcmFuY2Utc2VydmljZXMtKHJpdmVkZWdpZXIpIiwiYWRyZXNzZSI6IjE4LCBydWUgQ2xhdWRlLURyaXZvbiIsImNwIjoiNDI4MDAiLCJ2aWxsZSI6IlJpdmUtZGUtR2llciIsInZpbGxlX3NsdWciOiJyaXZlZGVnaWVyIiwiY2l0eV9pZCI6IjE2NTY2IiwiZW1haWwiOiJjaWRmZjQyQGNpZGZmNDIuZnIiLCJ0ZWxlcGhvbmUiOiIwNCA3NyAwMSAzMyA1NSIsInFwdiI6IjEiLCJ6cnIiOiIwIiwiYWNjdWVpbCI6IiIsImFjY3VlaWxfcHJlY2lzaW9uIjoiIiwiaG9yYWlyZXMiOiJMZSB2ZW5kcmVkaSBtYXRpbiAoc2VtYWluZSBpbXBhaXJlKSBkZSA5aDAwIFx1MDBlMCAxMmgwMCIsInZvbF9ocl9oZWJkbyI6IiIsImlpIjoiMSIsImljIjoiMSIsImUiOiIxIiwidiI6IjEiLCJwcmVjaXNpb24iOiJFdm9sdXRpb24gdmVycyB1biBwb3NpdGlvbm5lbWVudCBkZXMgUkRWIGRcdTAwZTlsXHUwMGU5Z3VcdTAwZTkgIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOm51bGwsImNhZHJlNCI6bnVsbCwiY2FkcmU1IjpudWxsLCJhY2Nlc3NpYmlsaXRlMSI6IkF1ZGl0aWYiLCJhY2Nlc3NpYmlsaXRlMiI6Ik1lbnRhbFwvUHN5Y2hpcXVlIiwiYWNjZXNzaWJpbGl0ZTMiOiJNb3RldXIiLCJhY2Nlc3NpYmlsaXRlNCI6bnVsbCwiYWNjZXNzaWJpbGl0ZTUiOm51bGwsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6bnVsbCwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOiJGcmFuY2UgU2VydmljZSIsImRlcGFydGVtZW50IjoiTG9pcmUiLCJyZWdpb24iOiJBdXZlcmduZS1SaFx1MDBmNG5lLUFscGVzIiwiY29vcmRzIjp7ImxhdCI6NDUuNTI4MDA1LCJsb24iOjQuNjEzMDM1LCJ1cmwiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5mclwvbWFwc1wvQDQ1LjUyODAwNSw0LjYxMzAzNSwxNXoifSwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL3d3dy5jaWRmZjQyLmZyIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ1LjM4Njk5NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI4OTA1MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgRnJhbmNlIFNlcnZpY2VzIExpZXUgUmVzc291cmNlcyAoRmlybWlueSlgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiaWQiOiIzNTQ3IiwiY2VudHJlX2lkIjoiOCIsIm5vbSI6IkZyYW5jZSBTZXJ2aWNlcyBMaWV1IFJlc3NvdXJjZXMgKEZpcm1pbnkpIiwibm9tX3NsdWciOiJmcmFuY2Utc2VydmljZXMtbGlldS1yZXNzb3VyY2VzLShmaXJtaW55KSIsImFkcmVzc2UiOiIyLCBydWUgTGFwcmF0IiwiY3AiOiI0MjcwMCIsInZpbGxlIjoiRmlybWlueSIsInZpbGxlX3NsdWciOiJmaXJtaW55IiwiY2l0eV9pZCI6IjE2NDc3IiwiZW1haWwiOiJmaXJtaW55QGZyYW5jZS1zZXJ2aWNlcy5nb3V2LmZyIiwidGVsZXBob25lIjoiMDQgNzcgMjAgNjUgOTciLCJxcHYiOiIwIiwienJyIjoiMCIsImFjY3VlaWwiOiIiLCJhY2N1ZWlsX3ByZWNpc2lvbiI6IiIsImhvcmFpcmVzIjoiTGUgbHVuZGkgYXByXHUwMGU4cy1taWRpIChzZW1haW5lIGltcGFpcmUpLCBkZSAxM2gzMCBcdTAwZTAgMTZoMzAiLCJ2b2xfaHJfaGViZG8iOiIiLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMSIsInYiOiIwIiwicHJlY2lzaW9uIjoiUG9zaXRpb25uZW1lbnQgZGVzIFJEViBkXHUwMGU5bFx1MDBlOWd1XHUwMGU5IiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOm51bGwsImNhZHJlNCI6bnVsbCwiY2FkcmU1IjpudWxsLCJhY2Nlc3NpYmlsaXRlMSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTIiOiJNZW50YWxcL1BzeWNoaXF1ZSIsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjpudWxsLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6IkZyYW5jZSBTZXJ2aWNlIiwiZGVwYXJ0ZW1lbnQiOiJMb2lyZSIsInJlZ2lvbiI6IkF1dmVyZ25lLVJoXHUwMGY0bmUtQWxwZXMiLCJjb29yZHMiOnsibGF0Ijo0NS4zODY5OTQsImxvbiI6NC4yODkwNTIsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDUuMzg2OTk0LDQuMjg5MDUyLDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvd3d3LmNpZGZmNDIuZnIifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUuNDA2ODcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4zNjM5NzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYExBIFJJQ0FNQVJJRSAtIELDonRpbWVudCBtdW5pY2lwYWwgKFVuIHRpc3NhZ2UgY29sb3LDqSlgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiaWQiOiIzNTc2IiwiY2VudHJlX2lkIjoiOCIsIm5vbSI6IkxBIFJJQ0FNQVJJRSAtIEJcdTAwZTJ0aW1lbnQgbXVuaWNpcGFsIChVbiB0aXNzYWdlIGNvbG9yXHUwMGU5KSIsIm5vbV9zbHVnIjoibGEtcmljYW1hcmllLS1iYXRpbWVudC1tdW5pY2lwYWwtKHVuLXRpc3NhZ2UtY29sb3JlKSIsImFkcmVzc2UiOiIzIHJ1ZSBDbGF1ZGUgVG91Y2hlIiwiY3AiOiI0MjE1MCIsInZpbGxlIjoiUmljYW1hcmllIChMYSkiLCJ2aWxsZV9zbHVnIjoicmljYW1hcmllLShsYSkiLCJjaXR5X2lkIjoiMTY1NjMiLCJlbWFpbCI6ImNpZGZmNDJAY2lkZmY0Mi5mciIsInRlbGVwaG9uZSI6IjA0IDc3IDAxIDMzIDU1IiwicXB2IjoiMSIsInpyciI6IjAiLCJhY2N1ZWlsIjoiIiwiYWNjdWVpbF9wcmVjaXNpb24iOiIiLCJob3JhaXJlcyI6IkxlIG1hcmRpIG1hdGluIChzZW1haW5lIGltcGFpcmUpIGRlIDloIFx1MDBlMCAxMmgiLCJ2b2xfaHJfaGViZG8iOiIiLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMCIsInYiOiIwIiwicHJlY2lzaW9uIjoiIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOm51bGwsImNhZHJlNCI6bnVsbCwiY2FkcmU1IjpudWxsLCJhY2Nlc3NpYmlsaXRlMSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTIiOm51bGwsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6IkNldHRlIHBlcm1hbmVuY2Ugblx1MjAxOWVzdCBwYXMgYWNjZXNzaWJsZSBhdXggcGVyc29ubmVzIGVuIHNpdHVhdGlvbiBkZSBoYW5kaWNhcCIsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6bnVsbCwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOm51bGwsImRlcGFydGVtZW50IjoiTG9pcmUiLCJyZWdpb24iOiJBdXZlcmduZS1SaFx1MDBmNG5lLUFscGVzIiwiY29vcmRzIjp7ImxhdCI6NDUuNDA2ODcsImxvbiI6NC4zNjM5NzIsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDUuNDA2ODcsNC4zNjM5NzIsMTV6In0sInNpdGVfaW50ZXJuZXQiOiJodHRwOlwvXC93d3cuY2lkZmY0Mi5mciJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NS40MzczOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjM3OTE3NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgTG9pcmUsIFNhaW50LUV0aWVubmVgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiaWQiOiI4Iiwibm9tIjoiTG9pcmUsIFNhaW50LUV0aWVubmUiLCJhZHJlc3NlIjoiTWFpc29uIGRlIGwnZW1wbG9pIGV0IGRlIGxhIGZvcm1hdGlvbiAtIDE4IGF2ZW51ZSBBdWd1c3Rpbi1EdXByXHUwMGU5IiwiY3AiOiI0MjAwMCIsInZpbGxlIjoiU2FpbnQtXHUwMGM5dGllbm5lIiwidGVsZXBob25lIjoiMDQgNzcgMDEgMzMgNTUiLCJtYWlsIjoiY2lkZmY0MkBjaWRmZjQyLmZyIiwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL3d3dy5jaWRmZjQyLmZyIiwiYWNjZXNfZHJvaXQiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJlbXBsb2kiOiJMJ2FjY29tcGFnbmVtZW50IGVtcGxvaSIsInZpb2xlbmNlcyI6bnVsbCwicGFyZW50YWxpdGUiOm51bGwsImF1dHJlIjpudWxsLCJzaWVnZSI6dHJ1ZSwiY29vcmRzIjp7ImxhdCI6NDUuNDM3MzksImxvbiI6NC4zNzkxNzQsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDUuNDM3MzksNC4zNzkxNzQsMTV6In0sInJlZ2lvbiI6IkF1dmVyZ25lLVJoXHUwMGY0bmUtQWxwZXMiLCJkZXBhcnRlbWVudCI6IkxvaXJlIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRab29tID0gNzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWZhdWx0Wm9vbU1vYmlsZSA9IDY7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWluWm9vbSA9IDY7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF4Wm9vbSA9IDIwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFwID0gbnVsbDsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBpbml0TWFwKHNlbGVjdGVkQ2F0ZWdvcmllcykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcCA9IG5ldyBMLm1hcChtYXBJZCwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogZmFsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEwuY29udHJvbC56b29tKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdib3R0b21yaWdodCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5hZGRUbyhtYXApOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwczovL3tzfS5iYXNlbWFwcy5jYXJ0b2Nkbi5jb20vbGlnaHRfYWxsL3t6fS97eH0ve3l9e3J9LnBuZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pblpvb20sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhab29tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmFkZFRvKG1hcCk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheWVyQ2F0ZWdvcnkxID0gW107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGF5ZXJDYXRlZ29yeTIgPSBbXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXllckNhdGVnb3J5MyA9IFtdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheWVyQ2F0ZWdvcnk0ID0gW107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGF5ZXJDYXRlZ29yeTUgPSBbXTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFya2VycyA9IG5ldyBMLm1hcmtlckNsdXN0ZXJHcm91cCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwaWRlckxlZ1BvbHlsaW5lT3B0aW9uczogeyB3ZWlnaHQ6IDYwMCwgY29sb3I6ICcjMjIyJywgb3BhY2l0eTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhDbHVzdGVyUmFkaXVzOiA0MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYWluTWFya2VycyA9IG5ldyBMLmxheWVyR3JvdXAoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhZGRyZXNzUG9pbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBhZGRyZXNzUG9pbnRzW2ldOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9IGFbMl07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhWzNdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb29yZHMgPSBuZXcgTC5MYXRMbmcoYVswXSwgYVsxXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFya2VyID0geyBkYXRhOiBuZXcgTC5tYXJrZXIoY29vcmRzLCB7IHRpdGxlIH0pLCBzaWVnZTogZGF0YS5zaWVnZSB9OwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBkYXRhWydjYWRyZTEnXSB8fCBkYXRhWydhY2Nlc19kcm9pdCddICkgbGF5ZXJDYXRlZ29yeTEucHVzaChtYXJrZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGRhdGFbJ2NhZHJlMiddIHx8IGRhdGFbJ3Zpb2xlbmNlcyddICkgbGF5ZXJDYXRlZ29yeTIucHVzaChtYXJrZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGRhdGFbJ2NhZHJlMyddIHx8IGRhdGFbJ2VtcGxvaSddICkgbGF5ZXJDYXRlZ29yeTMucHVzaChtYXJrZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGRhdGFbJ2NhZHJlNCddIHx8IGRhdGFbJ3BhcmVudGFsaXRlJ10gKSBsYXllckNhdGVnb3J5NC5wdXNoKG1hcmtlcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZGF0YVsnY2FkcmU1J10gfHwgZGF0YVsnYXV0cmUnXSApIGxheWVyQ2F0ZWdvcnk1LnB1c2gobWFya2VyKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtlci5kYXRhLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5wYW5Ubyhjb29yZHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwUmVmLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdvbi1tYXJrZXItaW50ZXJhY3QnLCB7IGRldGFpbDogZGF0YSB9KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuYWRkTGF5ZXIobWFpbk1hcmtlcnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5hZGRMYXllcihtYXJrZXJzKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGF5ZXJzVG9EaXNwbGF5ID0gW107CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZENhdGVnb3JpZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBzZWxlY3RlZENhdGVnb3JpZXMuaW5jbHVkZXMoMSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllcnNUb0Rpc3BsYXkucHVzaCguLi5sYXllckNhdGVnb3J5MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIHNlbGVjdGVkQ2F0ZWdvcmllcy5pbmNsdWRlcygyKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyc1RvRGlzcGxheS5wdXNoKC4uLmxheWVyQ2F0ZWdvcnkyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggc2VsZWN0ZWRDYXRlZ29yaWVzLmluY2x1ZGVzKDMpICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzVG9EaXNwbGF5LnB1c2goLi4ubGF5ZXJDYXRlZ29yeTMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBzZWxlY3RlZENhdGVnb3JpZXMuaW5jbHVkZXMoNCkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllcnNUb0Rpc3BsYXkucHVzaCguLi5sYXllckNhdGVnb3J5NCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIHNlbGVjdGVkQ2F0ZWdvcmllcy5pbmNsdWRlcyg1KSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyc1RvRGlzcGxheS5wdXNoKC4uLmxheWVyQ2F0ZWdvcnk1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzVG9EaXNwbGF5LnB1c2goLi4ubGF5ZXJDYXRlZ29yeTEsIC4uLmxheWVyQ2F0ZWdvcnkyLCAuLi5sYXllckNhdGVnb3J5MywgLi4ubGF5ZXJDYXRlZ29yeTQsIC4uLmxheWVyQ2F0ZWdvcnk1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFya2Vyc1RvU2hvdyA9IFsuLi5uZXcgU2V0KGxheWVyc1RvRGlzcGxheSldOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hcmtlcnNUb1Nob3cubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbSA9IG1hcmtlcnNUb1Nob3dbaV07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobS5zaWVnZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5kYXRhLmFkZFRvKG1haW5NYXJrZXJzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0uZGF0YS5zZXRaSW5kZXhPZmZzZXQoMTAwMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtLmRhdGEuc2V0SWNvbihjcmVhdGVNYWluTWFya2VyKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5kYXRhLmFkZFRvKG1hcmtlcnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5kYXRhLnNldEljb24oY3JlYXRlTWFya2VyKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIG1hcmtlcnMuZ2V0TGF5ZXJzKCkubGVuZ3RoID4gMCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5maXRCb3VuZHMobWFya2Vycy5nZXRCb3VuZHMoKSwgeyBwYWRkaW5nOiBbIDEwLCAxMCBdIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1haW5NYXJrZXJzLmdldExheWVycygpWzBdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuc2V0VmlldyhtYWluTWFya2Vycy5nZXRMYXllcnMoKVswXS5nZXRMYXRMbmcoKSwgNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5zZXRWaWV3KFs0Ni41LCAyLjM0NTQ5MjNdLCAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24gcnVsZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuc2Nyb2xsV2hlZWxab29tLmRpc2FibGUoKTsgLy8gRGlzYWJsZSBzY3JvbGwgaW50ZXJhY3Rpb24gYXQgZmlyc3QKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIChlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5zY3JvbGxXaGVlbFpvb20uZW5hYmxlKCk7IC8vIFJlZW5hYmxlIHNjcm9sbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5zY3JvbGxXaGVlbFpvb20uZGlzYWJsZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBSZWYuYWRkRXZlbnRMaXN0ZW5lcignb24tbWFya2VyLWludGVyYWN0JywgKGUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2l0ZURldGFpbHMoZS5kZXRhaWwpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRlRGV0YWlsc0V2ZW50cyA9IFsnY2xpY2snLCAnbW92ZXN0YXJ0J10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlRGV0YWlsc0V2ZW50cy5mb3JFYWNoKGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuYWRkRXZlbnRMaXN0ZW5lcihlLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlU2l0ZURldGFpbHMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAiRXNjYXBlIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZVNpdGVEZXRhaWxzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdE1hcCgpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZU1hcmtlcihjbGFzc05hbWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEwuaWNvbih7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Vcmw6ICdodHRwczovL2xvaXJlLmNpZGZmLmluZm8vd3AtY29udGVudC90aGVtZXMvY2lkZmYtd3AvYXNzZXRzL2ltYWdlcy93ZWJwL2ljb24tcGlucy1zZWNvbmRhcnktZmlsbGVkLndlYnAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZTogWzE4LCAyM10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvd1VybDogJ2h0dHBzOi8vbG9pcmUuY2lkZmYuaW5mby93cC1jb250ZW50L3RoZW1lcy9jaWRmZi13cC9hc3NldHMvaW1hZ2VzL3dlYnAvaWNvbi1waW5zLWZpbGxlZC1zaGFkb3cud2VicCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvd1NpemU6IFsyNSwgMjVdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3dBbmNob3I6IFs0LCAxNV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVNYWluTWFya2VyKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTC5pY29uKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblVybDogJ2h0dHBzOi8vbG9pcmUuY2lkZmYuaW5mby93cC1jb250ZW50L3RoZW1lcy9jaWRmZi13cC9hc3NldHMvaW1hZ2VzL3dlYnAvaWNvbi1waW5zLWZpbGxlZC53ZWJwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblNpemU6IFsyOCwgMzNdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3dVcmw6ICdodHRwczovL2xvaXJlLmNpZGZmLmluZm8vd3AtY29udGVudC90aGVtZXMvY2lkZmYtd3AvYXNzZXRzL2ltYWdlcy93ZWJwL2ljb24tcGlucy1maWxsZWQtc2hhZG93LndlYnAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3dTaXplOiBbMzAsIDMwXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93QW5jaG9yOiBbNCwgMTZdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gc2V0U2l0ZURldGFpbHMoZGF0YSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dTaXRlRGV0YWlscygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VlTW9yZUtleSA9IGRhdGEuc2llZ2UgPyBgJHtuZXcgU3RyaW5nKGRhdGEubm9tKS5yZXBsYWNlKC9cXHxcLHxccy9naSwgJy0nKS50b0xvd2VyQ2FzZSgpfS0ke2RhdGEuaWR9YCA6IGAke2RhdGEubm9tX3NsdWd9LSR7ZGF0YS5pZH1gCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBkYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLXRpdGxlJ10iKS5pbm5lckhUTUwgPSBkYXRhLm5vbTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtc2VlLW1vcmUnXSIpLmhyZWYgPSBgaHR0cHM6Ly9sb2lyZS5jaWRmZi5pbmZvL2xpc3RlLWRlcy1wZXJtYW5lbmNlcy8/ZGVwYXJ0ZW1lbnQ9JHtkYXRhLmRlcGFydGVtZW50fSZjZW50cmUtaWQ9JHtzZWVNb3JlS2V5fWA7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmhvcmFpcmVzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS1ob3Vycy13cmFwcGVyJ10iKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtaG91cnMnXSIpLmlubmVySFRNTCA9IGRhdGEuaG9yYWlyZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLWhvdXJzLXdyYXBwZXInXSIpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtbG9jYXRpb24nXSIpLmlubmVySFRNTCA9IGAke2RhdGEuYWRyZXNzZX0sICR7ZGF0YS5jcH0gJHtkYXRhLnZpbGxlfWA7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnRlbGVwaG9uZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtdGVsLXdyYXBwZXInXSIpLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS10ZWwnXSIpLmlubmVySFRNTCA9IGRhdGEudGVsZXBob25lOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS10ZWwtd3JhcHBlciddIikuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmNhZHJlMSB8fCBkYXRhLmFjY2VzX2Ryb2l0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS1jYWRyZS0xJ10iKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtY2FkcmUtMSddIikuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmNhZHJlMiB8fCBkYXRhLmVtcGxvaSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtY2FkcmUtMiddIikuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLWNhZHJlLTInXSIpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5jYWRyZTMgfHwgZGF0YS52aW9sZW5jZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLWNhZHJlLTMnXSIpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS1jYWRyZS0zJ10iKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuY2FkcmU0IHx8IGRhdGEucGFyZW50YWxpdGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLWNhZHJlLTQnXSIpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS1jYWRyZS00J10iKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBoaWRlU2l0ZURldGFpbHMoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNob3dTaXRlRGV0YWlscygpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gcmVzZXRNYXBMYXlvdXQoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZVNpdGVEZXRhaWxzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLm9mZigpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5yZW1vdmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib24tbWFwLXJlZnJlc2giLCAoZSkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0TWFwTGF5b3V0KCk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsYXN0Q2F0ZWdvcmllcyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYXN0LWZpbHRlci1jYXRlZ29yaWVzJyk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0Q2F0ZWdvcmllcykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0Q2F0ZWdvcmllcyA9IEpTT04ucGFyc2UobGFzdENhdGVnb3JpZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRNYXAobGFzdENhdGVnb3JpZXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0TWFwKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib24tY2F0ZWdvcnktZmlsdGVyLWNoYW5nZSIsIChlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRDYXRlZ29yaWVzID0gZS5kZXRhaWw7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVTaXRlRGV0YWlscygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5vZmYoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAucmVtb3ZlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdE1hcChzZWxlY3RlZENhdGVnb3JpZXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIA==": [
          "keydown"
        ]
      }
    },
    "canvas_fingerprinters": {
      "data_url": {},
      "fingerprinters": [],
      "styles": {},
      "texts": {}
    },
    "canvas_font_fingerprinters": {
      "canvas_font": {},
      "text_measure": {}
    },
    "cookies": [],
    "fb_pixel_events": [],
    "tiktok_pixel_events": [],
    "twitter_pixel_events": [],
    "google_analytics_events": [],
    "key_logging": {},
    "session_recorders": {},
    "third_party_trackers": []
  }
}