{"id":40110,"date":"2026-06-03T11:18:45","date_gmt":"2026-06-03T09:18:45","guid":{"rendered":"https:\/\/www.recharge.com\/blog\/fifa-world-cup-2026-schedule-groups-tickets"},"modified":"2026-06-11T20:09:42","modified_gmt":"2026-06-11T18:09:42","slug":"fifa-world-cup-2026-schedule-groups-tickets","status":"publish","type":"post","link":"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets","title":{"rendered":"FIFA World Cup 2026: Schedule, Groups &amp; Simulations"},"content":{"rendered":"\n<div style=\"background: url('https:\/\/worldcup-hub-tnyusrhpzq-ew.a.run.app\/img\/hero-banner.png') center\/cover no-repeat; border-radius: 16px; overflow: hidden; margin: 24px 0 32px; border: 2px solid #e1b151;\">\n<div style=\"background: rgba(0,0,0,0.7); padding: 32px 28px; text-align: center;\">\n<p style=\"font-size: 13px; color: #ff6b6b; font-weight: 700; margin: 0 0 8px; text-transform: uppercase; letter-spacing: 2px;\">\ud83d\udd25 Limited Time \u2014 Ends July 19th<\/p>\n<p style=\"font-size: 28px; font-weight: 800; color: #e1b151; margin: 0 0 10px;\">\u26bd Predict &amp; Score 2026<\/p>\n<p style=\"font-size: 15px; color: #fff; margin: 0 0 6px;\">Predict World Cup match results and win up to <strong>30% off<\/strong> your next purchase!<\/p>\n<p style=\"font-size: 14px; color: rgba(255,255,255,0.7); margin: 0 0 20px;\">Plus: every prediction = an entry to win a <strong>\u20ac100 gift card<\/strong> \ud83c\udf81<\/p>\n<a href=\"https:\/\/wc2026.recharge.com?utm_source=blog&#038;utm_medium=cta&#038;utm_campaign=wc2026_predict_score&#038;utm_content=fifa-world-cup-2026-schedule-groups-tickets\" style=\"display: inline-block; background: linear-gradient(135deg, #e1b151, #ffbf4d); color: #1a1a2e; padding: 16px 48px; border-radius: 50px; font-size: 17px; font-weight: 800; text-decoration: none; box-shadow: 0 4px 15px rgba(225,177,81,0.4);\">\ud83c\udfc6 Play Now \u2014 It&#8217;s Free!<\/a>\n<p style=\"font-size: 11px; color: rgba(255,255,255,0.4); margin: 14px 0 0;\">Free to play \u2022 No purchase necessary \u2022 18+<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-ultimate-guide-to-the-fifa-world-cup-2026-schedule-groups-and-simulations\">The Ultimate Guide to the FIFA World Cup 2026: Schedule, Groups, and Simulations<\/h2>\n\n\n\n<p>The FIFA World Cup 2026 is the upcoming international football championship starting in June 2026. In this guide, you will learn about the match schedule, host cities, groups, and ticket information. The tournament is organised by the International Association Football Federation (FIFA).<\/p>\n\n\n\n\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Syne:wght@400;500;600;700;800&#038;display=swap\">\n<style>\n.wc26-hub *,.wc26-hub *::before,.wc26-hub *::after{box-sizing:border-box;margin:0;padding:0}\n:root{\n--accent:#16a34a;--accent2:#22c55e;--accent-glow:rgba(22,163,74,.25);\n--gold:#fbbf24;--gold-glow:rgba(251,191,36,.2);\n--red:#ef4444;--yellow:#eab308;--blue:#3b82f6;--purple:#8b5cf6;--pink:#ec4899;--teal:#14b8a6;--orange:#f97316;\n--r:12px;--r2:16px;--r3:20px;--transition:.25s ease;\n\/* DEFAULT = LIGHT *\/\n--bg:#f8fafc;--bg2:#ffffff;--bg3:#f1f5f9;\n--card:rgba(255,255,255,.9);--card-solid:#ffffff;\n--t1:#0f172a;--t2:#475569;--t3:#94a3b8;\n--border:rgba(0,0,0,.08);--border2:rgba(0,0,0,.14);\n--glass:rgba(0,0,0,.03);--glass2:rgba(0,0,0,.05);\n--shadow:0 2px 16px rgba(0,0,0,.06);\n--nav-bg:rgba(248,250,252,.9);\n--input-bg:#ffffff;\n--row-q:rgba(22,163,74,.07);--row-3:rgba(234,179,8,.07);--row-e:rgba(239,68,68,.05);\n--champ-bg:linear-gradient(135deg,rgba(251,191,36,.1),rgba(251,191,36,.03));--champ-border:rgba(251,191,36,.25);\n}\n\/* DARK *\/\n.wc26-dark{\n--bg:#070b14;--bg2:#0d1321;--bg3:#111827;\n--card:rgba(17,24,39,.7);--card-solid:#111827;\n--t1:#f9fafb;--t2:#9ca3af;--t3:#6b7280;\n--border:rgba(255,255,255,.08);--border2:rgba(255,255,255,.14);\n--glass:rgba(255,255,255,.04);--glass2:rgba(255,255,255,.07);\n--shadow:0 4px 24px rgba(0,0,0,.5);\n--nav-bg:rgba(7,11,20,.85);\n--input-bg:#0d1321;\n--row-q:rgba(22,163,74,.12);--row-3:rgba(234,179,8,.1);--row-e:rgba(239,68,68,.08);\n--champ-bg:linear-gradient(135deg,rgba(251,191,36,.12),rgba(251,191,36,.03));--champ-border:rgba(251,191,36,.22);\n--accent-glow:rgba(22,163,74,.3);--gold-glow:rgba(251,191,36,.25);\n}\n\/* scroll-behavior inherited from WP *\/\n.wc26-hub{font-family:'Syne',sans-serif;background:var(--bg);color:var(--t1);line-height:1.6;overflow-x:hidden;transition:background var(--transition),color var(--transition)}\n.wc26-hub a{color:var(--accent2);text-decoration:none}\n.wc26-hub img{max-width:100%;display:block}\n\n\/* NAV *\/\n.wc-nav{position:sticky;top:0;z-index:100;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:var(--nav-bg);border-bottom:1px solid var(--border);transition:background var(--transition)}\n.wc-nav-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;padding:0 16px;height:52px;gap:6px}\n.wc-nav-logo{font-weight:800;font-size:16px;color:var(--gold);white-space:nowrap;margin-right:8px}\n.wc-nav-links{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;flex:1}\n.wc-nav-links::-webkit-scrollbar{display:none}\n.wc-nav-links a{padding:5px 12px;border-radius:8px;font-size:12px;font-weight:600;color:var(--t2);white-space:nowrap;transition:var(--transition)}\n.wc-nav-links a:hover{color:var(--t1);background:var(--glass2)}\n.wc-nav-links a.active{color:var(--accent);background:rgba(22,163,74,.1)}\n.wc-theme-btn{width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--glass);color:var(--t2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition);flex-shrink:0;font-family:inherit}\n.wc-theme-btn:hover{border-color:var(--accent);color:var(--accent)}\n\n\/* SECTIONS *\/\n.wc-section{padding:60px 16px 32px;max-width:1400px;margin:0 auto}\n.wc-section-head{text-align:center;margin-bottom:40px}\n.wc-section-head h2{font-size:clamp(24px,5vw,38px);font-weight:800;color:var(--t1)}\n.wc-section-head p{color:var(--t3);margin-top:6px;font-size:14px}\n.wc-divider{width:50px;height:3px;background:linear-gradient(90deg,var(--accent),var(--teal));margin:12px auto 0;border-radius:2px}\n\n\/* HERO *\/\n.wc-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 16px 40px;position:relative;overflow:hidden}\n.wc-hero::before{content:'';position:absolute;width:500px;height:500px;background:radial-gradient(circle,var(--accent-glow),transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);z-index:0;animation:wcPulse 4s ease-in-out infinite}\n@keyframes wcPulse{0%,100%{opacity:.2;transform:translate(-50%,-50%) scale(1)}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.1)}}\n.wc-hero-content{position:relative;z-index:1}\n.wc-hero h1{font-size:clamp(32px,7vw,64px);font-weight:800;line-height:1.1;margin-bottom:8px}\n.wc-hero h1 span{background:linear-gradient(135deg,var(--gold),#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}\n.wc-hero-sub{font-size:clamp(15px,3vw,20px);color:var(--t2);margin-bottom:32px}\n.wc-hero-flags{display:flex;gap:10px;justify-content:center;margin-bottom:32px;flex-wrap:wrap}\n.wc-hero-flag{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:99px;background:var(--glass2);border:1px solid var(--border);font-size:13px;color:var(--t2)}\n.wc-hero-flag img{width:22px;height:15px;border-radius:2px;object-fit:cover}\n\n\/* COUNTDOWN *\/\n.wc-countdown{display:flex;gap:10px;justify-content:center;margin-bottom:40px;flex-wrap:wrap}\n.wc-cd-box{background:var(--card);border:1px solid var(--border2);border-radius:var(--r);padding:14px 18px;min-width:72px;text-align:center;box-shadow:var(--shadow)}\n.wc-cd-num{font-size:clamp(24px,4vw,36px);font-weight:800;color:var(--accent2);line-height:1}\n.wc-cd-label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:1px;margin-top:3px}\n\n\/* STATS *\/\n.wc-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px}\n@media(max-width:600px){.wc-stats-row{grid-template-columns:repeat(2,1fr)}}\n.wc-stat{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:14px 6px;text-align:center;box-shadow:var(--shadow);transition:var(--transition);overflow:hidden;word-break:break-word}\n.wc-stat:hover{border-color:var(--accent);transform:translateY(-2px)}\n.wc-stat-num{font-size:clamp(16px,3.5vw,26px);font-weight:800;color:var(--accent2);line-height:1.2}\n.wc-stat-label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}\n\n\/* GROUPS *\/\n.wc-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}\n.wc-group{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;box-shadow:var(--shadow);transition:var(--transition)}\n.wc-group:hover{border-color:var(--border2);transform:translateY(-1px)}\n.wc-group-hdr{padding:10px 14px;font-weight:700;font-size:14px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border)}\n.wc-group-badge{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:#fff}\n.wc-gtable{width:100%;border-collapse:collapse;font-size:12px}\n.wc-gtable th{padding:6px 8px;text-align:left;color:var(--t3);font-weight:500;font-size:10px;text-transform:uppercase;border-bottom:1px solid var(--border)}\n.wc-gtable th:not(:first-child):not(:nth-child(2)){text-align:center}\n.wc-gtable td{padding:6px 8px;border-bottom:1px solid var(--border)}\n.wc-gtable td:not(:first-child):not(:nth-child(2)){text-align:center;color:var(--t2);font-size:11px}\n.wc-gtable tr:last-child td{border-bottom:none}\n.wc-gtable .tc{display:flex;align-items:center;gap:6px}\n.wc-gtable .tc img{width:22px;height:15px;border-radius:2px;object-fit:cover}\n.wc-gtable .rk{font-size:9px;color:var(--t3);background:var(--glass2);padding:1px 5px;border-radius:3px}\n.wc-pos{font-weight:700;width:24px;font-size:11px}\n.wc-rq{background:var(--row-q)}.wc-r3{background:var(--row-3)}.wc-re{background:var(--row-e)}\n.wc-gtable.pickmode tr{cursor:pointer;transition:background .15s}\n.wc-gtable.pickmode tr:hover{background:var(--glass2)}\n.wc-gtable.pickmode tr.wc-rq{cursor:default}\n.wc-gtable.pickmode tr.wc-r3{cursor:default}\n.wc-pick-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:9px;font-weight:800;color:#fff;margin-left:auto;flex-shrink:0}\n.wc-pick-1{background:var(--accent)}\n.wc-pick-2{background:var(--accent);opacity:.7}\n.wc-pick-3{background:var(--yellow)}\n\n\/* FILTERS *\/\n.wc-filters{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap;align-items:center}\n.wc-fbtn{padding:5px 14px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--t2);font-size:12px;font-family:inherit;cursor:pointer;transition:var(--transition);font-weight:600}\n.wc-fbtn:hover{border-color:var(--border2);color:var(--t1)}\n.wc-fbtn.on{background:var(--accent);border-color:var(--accent);color:#fff}\n.wc-fsel{padding:5px 10px;border-radius:8px;border:1px solid var(--border);background:var(--input-bg);color:var(--t1);font-size:12px;font-family:inherit;cursor:pointer}\n\n\/* SCHEDULE *\/\n.wc-date-hdr{font-size:13px;font-weight:600;color:var(--t2);margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border)}\n.wc-match{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;padding:10px 14px;background:var(--card);border:1px solid var(--border);border-radius:var(--r);margin-bottom:6px;box-shadow:var(--shadow);transition:var(--transition)}\n.wc-match:hover{border-color:var(--border2)}\n.wc-mteam{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500}\n.wc-mteam.away{justify-content:flex-end;text-align:right}\n.wc-mteam img{width:24px;height:16px;border-radius:2px;object-fit:cover}\n.wc-mvs{text-align:center;color:var(--t3);font-size:11px}\n.wc-mvs .tm{font-weight:700;font-size:13px;color:var(--t2)}\n.wc-mmeta{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--t3);margin-top:3px;grid-column:1\/-1}\n.wc-grp-tag{padding:2px 7px;border-radius:4px;font-weight:700;font-size:9px;color:#fff}\n\n\/* ===== BRACKET VERTICAL TREE ===== *\/\n.wc-bracket-actions{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;justify-content:center}\n.wc-vbracket{}\n.wc-vround{margin-bottom:4px}\n.wc-vround-hdr{display:flex;align-items:center;gap:6px;margin-bottom:4px;padding:0 2px}\n.wc-vround-hdr .wc-vr-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;color:var(--t3);white-space:nowrap}\n.wc-vround-hdr .wc-vr-line{flex:1;height:1px;background:var(--border)}\n.wc-vround-hdr.final-hdr .wc-vr-label{color:var(--gold);font-size:11px}\n\/* Row of matches - always one row, shrinks to fit *\/\n.wc-row{display:flex;gap:4px;justify-content:center;flex-wrap:nowrap}\n.wc-bmatch{background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden;flex:1;min-width:0;font-size:11px;transition:border-color .15s}\n.wc-bmatch:hover{border-color:var(--border2)}\n.wc-bmatch.final-match{border:2px solid var(--gold);box-shadow:0 0 12px var(--gold-glow)}\n.wc-bmatch.third-match{border:1px solid var(--teal)}\n.wc-bslot{display:flex;align-items:center;gap:4px;padding:4px 6px;border-bottom:1px solid var(--border);cursor:pointer;transition:all .1s;user-select:none;min-height:26px}\n.wc-bslot:last-of-type{border-bottom:none}\n.wc-bslot:hover{background:var(--glass2)}\n.wc-bslot.picked{background:var(--row-q)}\n.wc-bslot.lost{opacity:.3}\n.wc-bslot.empty{cursor:default;opacity:.4}\n.wc-bslot.picked,.wc-bslot.lost{cursor:default}\n.wc-bslot img{width:18px;height:12px;border-radius:1px;object-fit:cover;flex-shrink:0}\n.wc-bslot .seed-lbl{font-size:7px;color:var(--t3);min-width:14px;flex-shrink:0}\n.wc-bslot .nm{flex:1;font-size:10px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.wc-bslot .pick-icon{color:var(--accent2);font-size:9px;font-weight:700;display:none}\n.wc-bslot.picked .pick-icon{display:block}\n.wc-bmeta{padding:2px 4px;border-top:1px solid var(--border);font-size:7px;color:var(--t3);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n\/* Connector arrows between rounds *\/\n.wc-connectors{display:flex;justify-content:center;gap:4px;padding:2px 0}\n.wc-conn{flex:1;max-width:160px;text-align:center;font-size:8px;color:var(--accent);opacity:.6;line-height:1}\n.wc-conn-pair{display:flex;flex:2;max-width:320px}\n.wc-conn-pair span{flex:1;text-align:center;font-size:10px;color:var(--accent);opacity:.5}\n.wc-final-wrap{display:flex;gap:8px;justify-content:center;margin:6px 0}\n@media(max-width:480px){\n.wc-bslot{padding:3px 4px;gap:3px;min-height:22px}\n.wc-bslot img{width:14px;height:10px}\n.wc-bslot .nm{font-size:8px}\n.wc-bslot .seed-lbl{font-size:6px;min-width:10px}\n.wc-bmeta{font-size:6px;padding:1px 2px}\n.wc-bmatch{max-width:none;border-radius:6px}\n.wc-row{gap:2px}\n}\n\n\/* TEAMS *\/\n.wc-team-ctrls{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap;align-items:center}\n.wc-tsearch{padding:7px 14px;border-radius:8px;border:1px solid var(--border);background:var(--input-bg);color:var(--t1);font-size:13px;font-family:inherit;width:220px;flex-shrink:0}\n.wc-tsearch::placeholder{color:var(--t3)}\n.wc-teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}\n.wc-tcard{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:var(--shadow);transition:var(--transition)}\n.wc-tcard:hover{border-color:var(--accent);transform:translateY(-2px)}\n.wc-tflag{width:72px;height:48px;border-radius:4px;object-fit:cover;margin-bottom:8px;box-shadow:0 2px 6px rgba(0,0,0,.15)}\n.wc-tcard h3{font-size:14px;font-weight:700;margin-bottom:3px}\n.wc-trank{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--glass2);border:1px solid var(--border);font-size:11px;font-weight:700;color:var(--accent2);margin-bottom:5px}\n.wc-tmeta{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}\n.wc-tpill{padding:2px 8px;border-radius:99px;font-size:9px;font-weight:700;background:var(--glass);border:1px solid var(--border);color:var(--t2)}\n\n\/* VENUES *\/\n.wc-venues{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}\n.wc-vcard{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;box-shadow:var(--shadow);transition:var(--transition)}\n.wc-vcard:hover{border-color:var(--accent);transform:translateY(-2px)}\n.wc-vimg{width:100%;height:160px;object-fit:cover;background:var(--bg3)}\n.wc-vinfo{padding:14px}\n.wc-vinfo h3{font-size:15px;font-weight:700;margin-bottom:2px}\n.wc-vcity{font-size:12px;color:var(--t2);margin-bottom:6px;display:flex;align-items:center;gap:5px}\n.wc-vcity img{width:18px;height:12px;border-radius:1px}\n.wc-vstats{display:flex;gap:14px;font-size:11px;color:var(--t3)}\n\n\/* SIMULATOR *\/\n.wc-sim-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--r3);padding:28px;text-align:center;max-width:700px;margin:0 auto 24px;box-shadow:var(--shadow)}\n.wc-sim-btn{padding:12px 36px;border-radius:var(--r);border:none;background:linear-gradient(135deg,var(--accent),#15803d);color:#fff;font-size:16px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--transition);box-shadow:0 4px 16px var(--accent-glow)}\n.wc-sim-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px var(--accent-glow)}\n.wc-sim-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}\n.wc-sim-bar-bg{height:5px;background:var(--glass2);border-radius:3px;overflow:hidden;margin-top:16px}\n.wc-sim-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--teal));border-radius:3px;width:0;transition:width .3s}\n.wc-sim-label{font-size:11px;color:var(--t3);margin-top:5px}\n.wc-sim-results{margin-top:20px}\n.wc-champ{background:var(--champ-bg);border:1px solid var(--champ-border);border-radius:var(--r2);padding:28px;text-align:center;margin-bottom:20px;position:relative;overflow:hidden}\n.wc-champ img{width:88px;height:59px;border-radius:6px;object-fit:cover;margin:0 auto 10px;position:relative;z-index:1;box-shadow:0 4px 16px rgba(0,0,0,.2)}\n.wc-champ h3{font-size:24px;font-weight:800;color:var(--gold);position:relative;z-index:1}\n.wc-champ p{color:var(--t2);font-size:13px;position:relative;z-index:1;margin-top:3px}\n.wc-ko-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}\n.wc-ko-item{background:var(--glass2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;display:flex;align-items:center;gap:6px;font-size:12px}\n.wc-ko-item img{width:18px;height:12px;border-radius:1px;flex-shrink:0}\n.wc-ko-item .sc{font-weight:700;color:var(--accent2);margin:0 4px;flex-shrink:0}\n.wc-ko-item .rnd{font-size:9px;color:var(--t3);padding:2px 5px;background:var(--glass2);border-radius:3px;margin-left:auto;flex-shrink:0}\n\n\/* STATS *\/\n.wc-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}\n.wc-scard{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:18px;box-shadow:var(--shadow)}\n.wc-scard h3{font-size:14px;font-weight:700;margin-bottom:14px;color:var(--t2)}\n.wc-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}\n.wc-bar-row .lb{width:70px;font-size:11px;color:var(--t2);flex-shrink:0}\n.wc-bar-row .br{flex:1;height:20px;background:var(--glass2);border-radius:5px;overflow:hidden}\n.wc-bar-row .bi{height:100%;border-radius:5px;display:flex;align-items:center;padding-left:7px;font-size:9px;font-weight:700;color:#fff;min-width:fit-content;white-space:nowrap}\n.wc-god{background:linear-gradient(135deg,rgba(239,68,68,.07),rgba(239,68,68,.02));border:1px solid rgba(239,68,68,.12);border-radius:var(--r);padding:14px;margin-bottom:10px}\n.wc-god h4{color:var(--red);font-size:13px;font-weight:700;margin-bottom:6px}\n.wc-god-teams{display:flex;gap:6px;flex-wrap:wrap}\n.wc-god-t{display:flex;align-items:center;gap:5px;font-size:12px;background:var(--glass2);padding:3px 8px;border-radius:5px}\n.wc-god-t img{width:18px;height:12px;border-radius:1px}\n.wc-easy{background:linear-gradient(135deg,rgba(22,163,74,.07),rgba(22,163,74,.02));border:1px solid rgba(22,163,74,.12);border-radius:var(--r);padding:14px}\n.wc-easy h4{color:var(--accent2);font-size:13px;font-weight:700;margin-bottom:6px}\n\n.wc-footer{text-align:center;padding:32px 16px;color:var(--t3);font-size:11px;border-top:1px solid var(--border);margin-top:48px}\n\n\/* CONFETTI *\/\n.wc-confetti{position:fixed;width:8px;height:8px;z-index:9999;pointer-events:none;animation:wcFall linear forwards}\n@keyframes wcFall{0%{opacity:1;transform:translateY(-20px) rotate(0deg)}100%{opacity:0;transform:translateY(100vh) rotate(720deg)}}\n\n\/* RESPONSIVE *\/\n@media(max-width:640px){\n  .wc-groups,.wc-venues{grid-template-columns:1fr}\n  .wc-teams{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}\n  .wc-match{grid-template-columns:1fr;text-align:center;gap:3px}\n  .wc-mteam,.wc-mteam.away{justify-content:center;text-align:center}\n  .wc-stats-grid,.wc-ko-grid{grid-template-columns:1fr}\n  .wc-tsearch{width:100%}\n  .wc-hero h1{font-size:28px}\n}\n<\/style>\n<div class=\"wc26-hub\" id=\"wc26-hub\">\n\n<nav class=\"wc-nav\">\n<div class=\"wc-nav-inner\">\n<div class=\"wc-nav-logo\">WC26<\/div>\n<div class=\"wc-nav-links\">\n<a href=\"#wc-hero\">Home<\/a><a href=\"#wc-groups\">Groups<\/a><a href=\"#wc-schedule\">Schedule<\/a><a href=\"#wc-bracket\">Bracket<\/a><a href=\"#wc-teams\">Teams<\/a><a href=\"#wc-venues\">Venues<\/a><a href=\"#wc-stats\">Stats<\/a>\n<\/div>\n<button class=\"wc-theme-btn\" id=\"wc-theme-btn\" onclick=\"wc26ToggleTheme()\">&#9790;<\/button>\n<\/div>\n<\/nav>\n\n<div class=\"wc-section wc-hero\" id=\"wc-hero\">\n<div class=\"wc-hero-content\">\n<h1>FIFA World Cup <span>2026<\/span><\/h1>\n<p class=\"wc-hero-sub\">The Ultimate Tournament Hub<\/p>\n<div class=\"wc-hero-flags\">\n<div class=\"wc-hero-flag\"><img decoding=\"async\" src=\"https:\/\/flagcdn.com\/w40\/us.png\" alt=\"USA\"> United States<\/div>\n<div class=\"wc-hero-flag\"><img decoding=\"async\" src=\"https:\/\/flagcdn.com\/w40\/mx.png\" alt=\"MEX\"> Mexico<\/div>\n<div class=\"wc-hero-flag\"><img decoding=\"async\" src=\"https:\/\/flagcdn.com\/w40\/ca.png\" alt=\"CAN\"> Canada<\/div>\n<\/div>\n<div class=\"wc-countdown\" id=\"wc-countdown\"><\/div>\n<div class=\"wc-stats-row\" id=\"wc-hero-stats\"><\/div>\n<\/div>\n<\/div>\n\n<div class=\"wc-section\" id=\"wc-groups\"><div class=\"wc-section-head\"><h2>Group Stage<\/h2><p>12 Groups &middot; 48 Teams &middot; 72 Matches<\/p><div class=\"wc-divider\"><\/div><\/div><div class=\"wc-groups\" id=\"wc-groups-grid\"><\/div><\/div>\n\n<div class=\"wc-section\" id=\"wc-schedule\"><div class=\"wc-section-head\"><h2>Match Schedule<\/h2><p>June 11 &ndash; June 27, 2026<\/p><div class=\"wc-divider\"><\/div><\/div><div class=\"wc-filters\" id=\"wc-sch-filters\"><\/div><div id=\"wc-sch-list\"><\/div><\/div>\n\n<div class=\"wc-section\" id=\"wc-bracket\"><div class=\"wc-section-head\"><h2>Knockout Bracket<\/h2><p>Simulate groups, then click on a team to advance them<\/p><div class=\"wc-divider\"><\/div><\/div><div class=\"wc-bracket-actions\" id=\"wc-bracket-actions\"><\/div><div class=\"wc-vbracket\" id=\"wc-bracket-root\"><\/div><\/div>\n\n<div class=\"wc-section\" id=\"wc-teams\"><div class=\"wc-section-head\"><h2>All 48 Teams<\/h2><p>Explore every qualified nation<\/p><div class=\"wc-divider\"><\/div><\/div><div class=\"wc-team-ctrls\" id=\"wc-team-ctrls\"><\/div><div class=\"wc-teams\" id=\"wc-teams-grid\"><\/div><\/div>\n\n<div class=\"wc-section\" id=\"wc-venues\"><div class=\"wc-section-head\"><h2>Host Venues<\/h2><p>16 Stadiums across 3 Countries<\/p><div class=\"wc-divider\"><\/div><\/div><div class=\"wc-stats-row\" id=\"wc-venue-stats\"><\/div><div class=\"wc-filters\" id=\"wc-venue-filters\"><\/div><div class=\"wc-venues\" id=\"wc-venues-grid\"><\/div><\/div>\n\n<div class=\"wc-section\" id=\"wc-sim\"><div class=\"wc-section-head\"><h2>Your Prediction<\/h2><p>Champion result appears here after you complete the bracket above<\/p><div class=\"wc-divider\"><\/div><\/div><div id=\"wc-sim-results\" style=\"display:none\"><\/div><div class=\"wc-sim-panel\"><p style=\"color:var(--t2);font-size:13px\">Go to the <a href=\"#wc-bracket\" style=\"font-weight:700\">Knockout Bracket<\/a> section above.<br>Click &#8220;Simulate Group Stage&#8221; then click on teams to advance them through each round.<\/p><\/div><\/div>\n\n<div class=\"wc-section\" id=\"wc-stats\"><div class=\"wc-section-head\"><h2>Tournament Stats<\/h2><p>Data-driven insights<\/p><div class=\"wc-divider\"><\/div><\/div><div class=\"wc-stats-grid\" id=\"wc-stats-grid\"><\/div><\/div>\n\n<div class=\"wc-footer\">FIFA World Cup 2026 Hub &middot; Not affiliated with FIFA<\/div>\n<\/div>\n\n<textarea id=\"wc26-src\" style=\"display:none\">CihmdW5jdGlvbigpewovLyA9PT09PSBUSEVNRSA9PT09PQpmdW5jdGlvbiB3YzI2SW5pdFRoZW1lKCl7CiAgY29uc3Qgc2F2ZWQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndjMjYtdGhlbWUiKTsKICBpZihzYXZlZD09PSJkYXJrIilkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MyNi1odWIiKS5jbGFzc0xpc3QuYWRkKCJ3YzI2LWRhcmsiKTsKICB1cGRhdGVUaGVtZUljb24oKTsKfQp3aW5kb3cud2MyNlRvZ2dsZVRoZW1lPWZ1bmN0aW9uKCl7CiAgY29uc3QgaHViPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3YzI2LWh1YiIpOwogIGh1Yi5jbGFzc0xpc3QudG9nZ2xlKCJ3YzI2LWRhcmsiKTsKICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2MyNi10aGVtZSIsaHViLmNsYXNzTGlzdC5jb250YWlucygid2MyNi1kYXJrIik\/ImRhcmsiOiJsaWdodCIpOwogIHVwZGF0ZVRoZW1lSWNvbigpOwp9OwpmdW5jdGlvbiB1cGRhdGVUaGVtZUljb24oKXsKICBjb25zdCBidG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjLXRoZW1lLWJ0biIpOwogIGlmKGJ0bilidG4uaW5uZXJIVE1MPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3YzI2LWh1YiIpLmNsYXNzTGlzdC5jb250YWlucygid2MyNi1kYXJrIik\/IiYjOTc4ODsiOiImIzk3OTA7IjsKfQoKLy8gPT09PT0gREFUQSAocGxheW9mZnMgcmVzb2x2ZWQpID09PT09CmNvbnN0IFRFQU1TPVsKe246Ik1leGljbyIsYzoiTUVYIixyOjE1LHA6MTY3NS43NSxjZjoiQ09OQ0FDQUYifSx7bjoiU291dGggQWZyaWNhIixjOiJSU0EiLHI6MzYscDoxNDgwLjE5LGNmOiJDQUYifSx7bjoiU291dGggS29yZWEiLGM6IktPUiIscjoyMSxwOjE2MDMuMzksY2Y6IkFGQyJ9LHtuOiJDemVjaGlhIixjOiJDWkUiLHI6MzIscDoxNTY2LjAsY2Y6IlVFRkEifSwKe246IkNhbmFkYSIsYzoiQ0FOIixyOjMwLHA6MTU1Ny4wMyxjZjoiQ09OQ0FDQUYifSx7bjoiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIsYzoiQklIIixyOjQyLHA6MTUzMC4wLGNmOiJVRUZBIn0se246IlFhdGFyIixjOiJRQVQiLHI6MzkscDoxNTMyLjA2LGNmOiJBRkMifSx7bjoiU3dpdHplcmxhbmQiLGM6IlNVSSIscjoxMyxwOjE2NTQuNjksY2Y6IlVFRkEifSwKe246IkJyYXppbCIsYzoiQlJBIixyOjYscDoxNzYwLjQ2LGNmOiJDT05NRUJPTCJ9LHtuOiJNb3JvY2NvIixjOiJNQVIiLHI6MTQscDoxNzEzLjEyLGNmOiJDQUYifSx7bjoiSGFpdGkiLGM6IkhBSSIscjo3NSxwOjEzNTUuNDIsY2Y6IkNPTkNBQ0FGIn0se246IlNjb3RsYW5kIixjOiJTQ08iLHI6MjIscDoxNDkyLjQyLGNmOiJVRUZBIn0sCntuOiJVU0EiLGM6IlVTQSIscjoxNixwOjE2ODEuODgsY2Y6IkNPTkNBQ0FGIn0se246IlBhcmFndWF5IixjOiJQQVIiLHI6MzUscDoxNTA1LjAxLGNmOiJDT05NRUJPTCJ9LHtuOiJBdXN0cmFsaWEiLGM6IkFVUyIscjoyMyxwOjE2MTEuMDgsY2Y6IkFGQyJ9LHtuOiJUdXJrZXkiLGM6IlRVUiIscjoyNixwOjE1ODQuNDksY2Y6IlVFRkEifSwKe246Ikdlcm1hbnkiLGM6IkdFUiIscjo5LHA6MTcyNC4xNSxjZjoiVUVGQSJ9LHtuOiJDdXJhY2FvIixjOiJDVVciLHI6ODIscDoxMzQ0LjI5LGNmOiJDT05DQUNBRiJ9LHtuOiJJdm9yeSBDb2FzdCIsYzoiQ0lWIixyOjMzLHA6MTUzOC41MixjZjoiQ0FGIn0se246IkVjdWFkb3IiLGM6IkVDVSIscjoyNCxwOjE1NzQuNjMsY2Y6IkNPTk1FQk9MIn0sCntuOiJOZXRoZXJsYW5kcyIsYzoiTkVEIixyOjcscDoxNzU2LjI3LGNmOiJVRUZBIn0se246IkphcGFuIixjOiJKUE4iLHI6MTUscDoxNjUwLjEyLGNmOiJBRkMifSx7bjoiU3dlZGVuIixjOiJTV0UiLHI6MjgscDoxNTcwLjAsY2Y6IlVFRkEifSx7bjoiVHVuaXNpYSIsYzoiVFVOIixyOjM0LHA6MTU1NC41NixjZjoiQ0FGIn0sCntuOiJCZWxnaXVtIixjOiJCRUwiLHI6OCxwOjE3MzAuNzEsY2Y6IlVFRkEifSx7bjoiRWd5cHQiLGM6IkVHWSIscjoyOSxwOjE1NjQuMTQsY2Y6IkNBRiJ9LHtuOiJJcmFuIixjOiJJUk4iLHI6MTkscDoxNjE3LjAyLGNmOiJBRkMifSx7bjoiTmV3IFplYWxhbmQiLGM6Ik5aTCIscjo2OCxwOjEzMTIuMzcsY2Y6Ik9GQyJ9LAp7bjoiU3BhaW4iLGM6IkVTUCIscjoyLHA6MTg3Ni4wLGNmOiJVRUZBIn0se246IkNhcGUgVmVyZGUiLGM6IkNQViIscjo1MixwOjEzOTIuMzYsY2Y6IkNBRiJ9LHtuOiJTYXVkaSBBcmFiaWEiLGM6IktTQSIscjozOCxwOjE0NzUuMyxjZjoiQUZDIn0se246IlVydWd1YXkiLGM6IlVSVSIscjoxMixwOjE2NzIuNjIsY2Y6IkNPTk1FQk9MIn0sCntuOiJGcmFuY2UiLGM6IkZSQSIscjoxLHA6MTg3Ny4wLGNmOiJVRUZBIn0se246IlNlbmVnYWwiLGM6IlNFTiIscjoxOCxwOjE2NDguMDcsY2Y6IkNBRiJ9LHtuOiJJcmFxIixjOiJJUlEiLHI6NTYscDoxNDg4LjAxLGNmOiJBRkMifSx7bjoiTm9yd2F5IixjOiJOT1IiLHI6MjAscDoxNTA2LjY1LGNmOiJVRUZBIn0sCntuOiJBcmdlbnRpbmEiLGM6IkFSRyIscjozLHA6MTg3My4zMyxjZjoiQ09OTUVCT0wifSx7bjoiQWxnZXJpYSIsYzoiQUxHIixyOjMwLHA6MTU2Ni4yLGNmOiJDQUYifSx7bjoiQXVzdHJpYSIsYzoiQVVUIixyOjE3LHA6MTU4OS4xNixjZjoiVUVGQSJ9LHtuOiJKb3JkYW4iLGM6IkpPUiIscjo1MyxwOjE0MDkuMTEsY2Y6IkFGQyJ9LAp7bjoiUG9ydHVnYWwiLGM6IlBPUiIscjo1LHA6MTc2MC4zOCxjZjoiVUVGQSJ9LHtuOiJEUiBDb25nbyIsYzoiQ09EIixyOjU1LHA6MTQ5Ny4zNCxjZjoiQ0FGIn0se246IlV6YmVraXN0YW4iLGM6IlVaQiIscjo0NCxwOjE0NjUuNjIsY2Y6IkFGQyJ9LHtuOiJDb2xvbWJpYSIsYzoiQ09MIixyOjExLHA6MTcwMS4zLGNmOiJDT05NRUJPTCJ9LAp7bjoiRW5nbGFuZCIsYzoiRU5HIixyOjQscDoxODM0LjEyLGNmOiJVRUZBIn0se246IkNyb2F0aWEiLGM6IkNSTyIscjoxMCxwOjE3MTYuODgsY2Y6IlVFRkEifSx7bjoiR2hhbmEiLGM6IkdIQSIscjo0MCxwOjE0MTcuMzcsY2Y6IkNBRiJ9LHtuOiJQYW5hbWEiLGM6IlBBTiIscjo0MyxwOjE1MjAuMjUsY2Y6IkNPTkNBQ0FGIn0KXTsKCmNvbnN0IEdST1VQUz1bCntuOiJHcm91cCBBIixpZDoiQSIsdGM6WyJNRVgiLCJSU0EiLCJLT1IiLCJDWkUiXX0se246Ikdyb3VwIEIiLGlkOiJCIix0YzpbIkNBTiIsIkJJSCIsIlFBVCIsIlNVSSJdfSwKe246Ikdyb3VwIEMiLGlkOiJDIix0YzpbIkJSQSIsIk1BUiIsIkhBSSIsIlNDTyJdfSx7bjoiR3JvdXAgRCIsaWQ6IkQiLHRjOlsiVVNBIiwiUEFSIiwiQVVTIiwiVFVSIl19LAp7bjoiR3JvdXAgRSIsaWQ6IkUiLHRjOlsiR0VSIiwiQ1VXIiwiQ0lWIiwiRUNVIl19LHtuOiJHcm91cCBGIixpZDoiRiIsdGM6WyJORUQiLCJKUE4iLCJTV0UiLCJUVU4iXX0sCntuOiJHcm91cCBHIixpZDoiRyIsdGM6WyJCRUwiLCJFR1kiLCJJUk4iLCJOWkwiXX0se246Ikdyb3VwIEgiLGlkOiJIIix0YzpbIkVTUCIsIkNQViIsIktTQSIsIlVSVSJdfSwKe246Ikdyb3VwIEkiLGlkOiJJIix0YzpbIkZSQSIsIlNFTiIsIklSUSIsIk5PUiJdfSx7bjoiR3JvdXAgSiIsaWQ6IkoiLHRjOlsiQVJHIiwiQUxHIiwiQVVUIiwiSk9SIl19LAp7bjoiR3JvdXAgSyIsaWQ6IksiLHRjOlsiUE9SIiwiQ09EIiwiVVpCIiwiQ09MIl19LHtuOiJHcm91cCBMIixpZDoiTCIsdGM6WyJFTkciLCJDUk8iLCJHSEEiLCJQQU4iXX0KXTsKCmNvbnN0IFZFTlVFUz17Im1leGljby1jaXR5Ijp7aWQ6Im1leGljby1jaXR5IixjaToiTWV4aWNvIENpdHkiLHN0OiJDRE1YIixzZDoiRXN0YWRpbyBBenRlY2EiLGNvOiJNRVgiLGNhcDo4NzUwMH0sImd1YWRhbGFqYXJhIjp7aWQ6Imd1YWRhbGFqYXJhIixjaToiR3VhZGFsYWphcmEiLHN0OiJKYWxpc2NvIixzZDoiRXN0YWRpbyBBa3JvbiIsY286Ik1FWCIsY2FwOjQ0MzMwfSwibW9udGVycmV5Ijp7aWQ6Im1vbnRlcnJleSIsY2k6Ik1vbnRlcnJleSIsc3Q6Ik51ZXZvIExlXHUwMGYzbiIsc2Q6IkVzdGFkaW8gQkJWQSIsY286Ik1FWCIsY2FwOjUwMTEzfSwidG9yb250byI6e2lkOiJ0b3JvbnRvIixjaToiVG9yb250byIsc3Q6Ik9udGFyaW8iLHNkOiJCTU8gRmllbGQiLGNvOiJDQU4iLGNhcDo0NTczNn0sInZhbmNvdXZlciI6e2lkOiJ2YW5jb3V2ZXIiLGNpOiJWYW5jb3V2ZXIiLHN0OiJCcml0aXNoIENvbHVtYmlhIixzZDoiQkMgUGxhY2UiLGNvOiJDQU4iLGNhcDo1NDUwMH0sImxvcy1hbmdlbGVzIjp7aWQ6Imxvcy1hbmdlbGVzIixjaToiTG9zIEFuZ2VsZXMiLHN0OiJDYWxpZm9ybmlhIixzZDoiU29GaSBTdGFkaXVtIixjbzoiVVNBIixjYXA6NzAyNDB9LCJuZXcteW9yayI6e2lkOiJuZXcteW9yayIsY2k6Ik5ldyBZb3JrL05ldyBKZXJzZXkiLHN0OiJOZXcgSmVyc2V5IixzZDoiTWV0TGlmZSBTdGFkaXVtIixjbzoiVVNBIixjYXA6ODI1MDB9LCJib3N0b24iOntpZDoiYm9zdG9uIixjaToiQm9zdG9uIixzdDoiTWFzc2FjaHVzZXR0cyIsc2Q6IkdpbGxldHRlIFN0YWRpdW0iLGNvOiJVU0EiLGNhcDo2MzgxNX0sInNhbi1mcmFuY2lzY28iOntpZDoic2FuLWZyYW5jaXNjbyIsY2k6IlNhbiBGcmFuY2lzY28gQmF5IEFyZWEiLHN0OiJDYWxpZm9ybmlhIixzZDoiTGV2aSdzIFN0YWRpdW0iLGNvOiJVU0EiLGNhcDo2ODUwMH0sImhvdXN0b24iOntpZDoiaG91c3RvbiIsY2k6IkhvdXN0b24iLHN0OiJUZXhhcyIsc2Q6Ik5SRyBTdGFkaXVtIixjbzoiVVNBIixjYXA6NzIyMjB9LCJwaGlsYWRlbHBoaWEiOntpZDoicGhpbGFkZWxwaGlhIixjaToiUGhpbGFkZWxwaGlhIixzdDoiUGVubnN5bHZhbmlhIixzZDoiTGluY29sbiBGaW5hbmNpYWwgRmllbGQiLGNvOiJVU0EiLGNhcDo2NTgyN30sImRhbGxhcyI6e2lkOiJkYWxsYXMiLGNpOiJEYWxsYXMiLHN0OiJUZXhhcyIsc2Q6IkFUJlQgU3RhZGl1bSIsY286IlVTQSIsY2FwOjkyOTY3fSwiYXRsYW50YSI6e2lkOiJhdGxhbnRhIixjaToiQXRsYW50YSIsc3Q6Ikdlb3JnaWEiLHNkOiJNZXJjZWRlcy1CZW56IFN0YWRpdW0iLGNvOiJVU0EiLGNhcDo3MTAwMH0sIm1pYW1pIjp7aWQ6Im1pYW1pIixjaToiTWlhbWkiLHN0OiJGbG9yaWRhIixzZDoiSGFyZCBSb2NrIFN0YWRpdW0iLGNvOiJVU0EiLGNhcDo2NDA5MX0sInNlYXR0bGUiOntpZDoic2VhdHRsZSIsY2k6IlNlYXR0bGUiLHN0OiJXYXNoaW5ndG9uIixzZDoiTHVtZW4gRmllbGQiLGNvOiJVU0EiLGNhcDo2ODAwMH0sImthbnNhcy1jaXR5Ijp7aWQ6ImthbnNhcy1jaXR5IixjaToiS2Fuc2FzIENpdHkiLHN0OiJNaXNzb3VyaSIsc2Q6IkFycm93aGVhZCBTdGFkaXVtIixjbzoiVVNBIixjYXA6Njc1MTN9fTsKCmNvbnN0IE1BVENIRVM9W3tkOiIyMDI2LTA2LTExIix0OiIxNTowMCIsaDoiTUVYIixhOiJSU0EiLGc6IkEiLHY6Im1leGljby1jaXR5IixtZDoxfSx7ZDoiMjAyNi0wNi0xMSIsdDoiMTg6MDAiLGg6IktPUiIsYToiQ1pFIixnOiJBIix2OiJndWFkYWxhamFyYSIsbWQ6MX0se2Q6IjIwMjYtMDYtMTIiLHQ6IjE1OjAwIixoOiJDQU4iLGE6IkJJSCIsZzoiQiIsdjoidG9yb250byIsbWQ6MX0se2Q6IjIwMjYtMDYtMTIiLHQ6IjE4OjAwIixoOiJVU0EiLGE6IlBBUiIsZzoiRCIsdjoibG9zLWFuZ2VsZXMiLG1kOjF9LHtkOiIyMDI2LTA2LTEzIix0OiIxMjowMCIsaDoiQlJBIixhOiJNQVIiLGc6IkMiLHY6Im5ldy15b3JrIixtZDoxfSx7ZDoiMjAyNi0wNi0xMyIsdDoiMTU6MDAiLGg6IkFVUyIsYToiVFVSIixnOiJEIix2OiJ2YW5jb3V2ZXIiLG1kOjF9LHtkOiIyMDI2LTA2LTEzIix0OiIxODowMCIsaDoiSEFJIixhOiJTQ08iLGc6IkMiLHY6ImJvc3RvbiIsbWQ6MX0se2Q6IjIwMjYtMDYtMTMiLHQ6IjIxOjAwIixoOiJRQVQiLGE6IlNVSSIsZzoiQiIsdjoic2FuLWZyYW5jaXNjbyIsbWQ6MX0se2Q6IjIwMjYtMDYtMTQiLHQ6IjEyOjAwIixoOiJHRVIiLGE6IkNVVyIsZzoiRSIsdjoiaG91c3RvbiIsbWQ6MX0se2Q6IjIwMjYtMDYtMTQiLHQ6IjE1OjAwIixoOiJDSVYiLGE6IkVDVSIsZzoiRSIsdjoicGhpbGFkZWxwaGlhIixtZDoxfSx7ZDoiMjAyNi0wNi0xNCIsdDoiMTg6MDAiLGg6Ik5FRCIsYToiSlBOIixnOiJGIix2OiJkYWxsYXMiLG1kOjF9LHtkOiIyMDI2LTA2LTE0Iix0OiIyMTowMCIsaDoiU1dFIixhOiJUVU4iLGc6IkYiLHY6Im1vbnRlcnJleSIsbWQ6MX0se2Q6IjIwMjYtMDYtMTUiLHQ6IjEyOjAwIixoOiJFU1AiLGE6IkNQViIsZzoiSCIsdjoiYXRsYW50YSIsbWQ6MX0se2Q6IjIwMjYtMDYtMTUiLHQ6IjE1OjAwIixoOiJLU0EiLGE6IlVSVSIsZzoiSCIsdjoibWlhbWkiLG1kOjF9LHtkOiIyMDI2LTA2LTE1Iix0OiIxODowMCIsaDoiQkVMIixhOiJFR1kiLGc6IkciLHY6InNlYXR0bGUiLG1kOjF9LHtkOiIyMDI2LTA2LTE1Iix0OiIyMTowMCIsaDoiSVJOIixhOiJOWkwiLGc6IkciLHY6Imxvcy1hbmdlbGVzIixtZDoxfSx7ZDoiMjAyNi0wNi0xNiIsdDoiMTI6MDAiLGg6IkZSQSIsYToiU0VOIixnOiJJIix2OiJuZXcteW9yayIsbWQ6MX0se2Q6IjIwMjYtMDYtMTYiLHQ6IjE1OjAwIixoOiJJUlEiLGE6Ik5PUiIsZzoiSSIsdjoiYm9zdG9uIixtZDoxfSx7ZDoiMjAyNi0wNi0xNiIsdDoiMTg6MDAiLGg6IkFSRyIsYToiQUxHIixnOiJKIix2OiJrYW5zYXMtY2l0eSIsbWQ6MX0se2Q6IjIwMjYtMDYtMTYiLHQ6IjIxOjAwIixoOiJBVVQiLGE6IkpPUiIsZzoiSiIsdjoic2FuLWZyYW5jaXNjbyIsbWQ6MX0se2Q6IjIwMjYtMDYtMTciLHQ6IjEyOjAwIixoOiJFTkciLGE6IkNSTyIsZzoiTCIsdjoiZGFsbGFzIixtZDoxfSx7ZDoiMjAyNi0wNi0xNyIsdDoiMTU6MDAiLGg6IkdIQSIsYToiUEFOIixnOiJMIix2OiJ0b3JvbnRvIixtZDoxfSx7ZDoiMjAyNi0wNi0xNyIsdDoiMTg6MDAiLGg6IlBPUiIsYToiQ09EIixnOiJLIix2OiJob3VzdG9uIixtZDoxfSx7ZDoiMjAyNi0wNi0xNyIsdDoiMjE6MDAiLGg6IlVaQiIsYToiQ09MIixnOiJLIix2OiJtZXhpY28tY2l0eSIsbWQ6MX0se2Q6IjIwMjYtMDYtMTgiLHQ6IjEyOjAwIixoOiJDWkUiLGE6IlJTQSIsZzoiQSIsdjoiYXRsYW50YSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMTgiLHQ6IjE1OjAwIixoOiJTVUkiLGE6IkJJSCIsZzoiQiIsdjoibG9zLWFuZ2VsZXMiLG1kOjJ9LHtkOiIyMDI2LTA2LTE4Iix0OiIxODowMCIsaDoiQ0FOIixhOiJRQVQiLGc6IkIiLHY6InZhbmNvdXZlciIsbWQ6Mn0se2Q6IjIwMjYtMDYtMTgiLHQ6IjIxOjAwIixoOiJNRVgiLGE6IktPUiIsZzoiQSIsdjoiZ3VhZGFsYWphcmEiLG1kOjJ9LHtkOiIyMDI2LTA2LTE5Iix0OiIxMjowMCIsaDoiQlJBIixhOiJIQUkiLGc6IkMiLHY6InBoaWxhZGVscGhpYSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMTkiLHQ6IjE1OjAwIixoOiJTQ08iLGE6Ik1BUiIsZzoiQyIsdjoiYm9zdG9uIixtZDoyfSx7ZDoiMjAyNi0wNi0xOSIsdDoiMTg6MDAiLGg6IlRVUiIsYToiUEFSIixnOiJEIix2OiJzYW4tZnJhbmNpc2NvIixtZDoyfSx7ZDoiMjAyNi0wNi0xOSIsdDoiMjE6MDAiLGg6IlVTQSIsYToiQVVTIixnOiJEIix2OiJzZWF0dGxlIixtZDoyfSx7ZDoiMjAyNi0wNi0yMCIsdDoiMTI6MDAiLGg6IkdFUiIsYToiQ0lWIixnOiJFIix2OiJ0b3JvbnRvIixtZDoyfSx7ZDoiMjAyNi0wNi0yMCIsdDoiMTU6MDAiLGg6IkVDVSIsYToiQ1VXIixnOiJFIix2OiJrYW5zYXMtY2l0eSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjAiLHQ6IjE4OjAwIixoOiJORUQiLGE6IlNXRSIsZzoiRiIsdjoiaG91c3RvbiIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjAiLHQ6IjIxOjAwIixoOiJUVU4iLGE6IkpQTiIsZzoiRiIsdjoibW9udGVycmV5IixtZDoyfSx7ZDoiMjAyNi0wNi0yMSIsdDoiMTI6MDAiLGg6IkVTUCIsYToiS1NBIixnOiJIIix2OiJhdGxhbnRhIixtZDoyfSx7ZDoiMjAyNi0wNi0yMSIsdDoiMTU6MDAiLGg6IlVSVSIsYToiQ1BWIixnOiJIIix2OiJtaWFtaSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjEiLHQ6IjE4OjAwIixoOiJCRUwiLGE6IklSTiIsZzoiRyIsdjoibG9zLWFuZ2VsZXMiLG1kOjJ9LHtkOiIyMDI2LTA2LTIxIix0OiIyMTowMCIsaDoiTlpMIixhOiJFR1kiLGc6IkciLHY6InZhbmNvdXZlciIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjIiLHQ6IjEyOjAwIixoOiJGUkEiLGE6IklSUSIsZzoiSSIsdjoicGhpbGFkZWxwaGlhIixtZDoyfSx7ZDoiMjAyNi0wNi0yMiIsdDoiMTU6MDAiLGg6Ik5PUiIsYToiU0VOIixnOiJJIix2OiJuZXcteW9yayIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjIiLHQ6IjE4OjAwIixoOiJBUkciLGE6IkFVVCIsZzoiSiIsdjoiZGFsbGFzIixtZDoyfSx7ZDoiMjAyNi0wNi0yMiIsdDoiMjE6MDAiLGg6IkpPUiIsYToiQUxHIixnOiJKIix2OiJzYW4tZnJhbmNpc2NvIixtZDoyfSx7ZDoiMjAyNi0wNi0yMyIsdDoiMTI6MDAiLGg6IkVORyIsYToiR0hBIixnOiJMIix2OiJib3N0b24iLG1kOjJ9LHtkOiIyMDI2LTA2LTIzIix0OiIxNTowMCIsaDoiUEFOIixhOiJDUk8iLGc6IkwiLHY6InRvcm9udG8iLG1kOjJ9LHtkOiIyMDI2LTA2LTIzIix0OiIxODowMCIsaDoiUE9SIixhOiJVWkIiLGc6IksiLHY6ImhvdXN0b24iLG1kOjJ9LHtkOiIyMDI2LTA2LTIzIix0OiIyMTowMCIsaDoiQ09MIixhOiJDT0QiLGc6IksiLHY6Imd1YWRhbGFqYXJhIixtZDoyfSx7ZDoiMjAyNi0wNi0yNCIsdDoiMTI6MDAiLGg6IlNDTyIsYToiQlJBIixnOiJDIix2OiJtaWFtaSIsbWQ6M30se2Q6IjIwMjYtMDYtMjQiLHQ6IjE1OjAwIixoOiJNQVIiLGE6IkhBSSIsZzoiQyIsdjoiYXRsYW50YSIsbWQ6M30se2Q6IjIwMjYtMDYtMjQiLHQ6IjE4OjAwIixoOiJDQU4iLGE6IlNVSSIsZzoiQiIsdjoidmFuY291dmVyIixtZDozfSx7ZDoiMjAyNi0wNi0yNCIsdDoiMjE6MDAiLGg6IkJJSCIsYToiUUFUIixnOiJCIix2OiJzZWF0dGxlIixtZDozfSx7ZDoiMjAyNi0wNi0yNCIsdDoiMTk6MDAiLGg6Ik1FWCIsYToiQ1pFIixnOiJBIix2OiJtZXhpY28tY2l0eSIsbWQ6M30se2Q6IjIwMjYtMDYtMjQiLHQ6IjE5OjAwIixoOiJLT1IiLGE6IlJTQSIsZzoiQSIsdjoibW9udGVycmV5IixtZDozfSx7ZDoiMjAyNi0wNi0yNSIsdDoiMTI6MDAiLGg6IkVDVSIsYToiR0VSIixnOiJFIix2OiJuZXcteW9yayIsbWQ6M30se2Q6IjIwMjYtMDYtMjUiLHQ6IjE1OjAwIixoOiJDVVciLGE6IkNJViIsZzoiRSIsdjoicGhpbGFkZWxwaGlhIixtZDozfSx7ZDoiMjAyNi0wNi0yNSIsdDoiMTg6MDAiLGg6IlRVTiIsYToiTkVEIixnOiJGIix2OiJrYW5zYXMtY2l0eSIsbWQ6M30se2Q6IjIwMjYtMDYtMjUiLHQ6IjIxOjAwIixoOiJKUE4iLGE6IlNXRSIsZzoiRiIsdjoiZGFsbGFzIixtZDozfSx7ZDoiMjAyNi0wNi0yNSIsdDoiMTk6MDAiLGg6IlVTQSIsYToiVFVSIixnOiJEIix2OiJsb3MtYW5nZWxlcyIsbWQ6M30se2Q6IjIwMjYtMDYtMjUiLHQ6IjE5OjAwIixoOiJQQVIiLGE6IkFVUyIsZzoiRCIsdjoic2FuLWZyYW5jaXNjbyIsbWQ6M30se2Q6IjIwMjYtMDYtMjYiLHQ6IjEyOjAwIixoOiJOT1IiLGE6IkZSQSIsZzoiSSIsdjoiYm9zdG9uIixtZDozfSx7ZDoiMjAyNi0wNi0yNiIsdDoiMTU6MDAiLGg6IlNFTiIsYToiSVJRIixnOiJJIix2OiJ0b3JvbnRvIixtZDozfSx7ZDoiMjAyNi0wNi0yNiIsdDoiMTg6MDAiLGg6Ik5aTCIsYToiQkVMIixnOiJHIix2OiJ2YW5jb3V2ZXIiLG1kOjN9LHtkOiIyMDI2LTA2LTI2Iix0OiIyMTowMCIsaDoiRUdZIixhOiJJUk4iLGc6IkciLHY6InNlYXR0bGUiLG1kOjN9LHtkOiIyMDI2LTA2LTI2Iix0OiIxOTowMCIsaDoiVVJVIixhOiJFU1AiLGc6IkgiLHY6Imd1YWRhbGFqYXJhIixtZDozfSx7ZDoiMjAyNi0wNi0yNiIsdDoiMTk6MDAiLGg6IkNQViIsYToiS1NBIixnOiJIIix2OiJob3VzdG9uIixtZDozfSx7ZDoiMjAyNi0wNi0yNyIsdDoiMTI6MDAiLGg6IlBBTiIsYToiRU5HIixnOiJMIix2OiJuZXcteW9yayIsbWQ6M30se2Q6IjIwMjYtMDYtMjciLHQ6IjE1OjAwIixoOiJDUk8iLGE6IkdIQSIsZzoiTCIsdjoicGhpbGFkZWxwaGlhIixtZDozfSx7ZDoiMjAyNi0wNi0yNyIsdDoiMTg6MDAiLGg6IkpPUiIsYToiQVJHIixnOiJKIix2OiJkYWxsYXMiLG1kOjN9LHtkOiIyMDI2LTA2LTI3Iix0OiIyMTowMCIsaDoiQUxHIixhOiJBVVQiLGc6IkoiLHY6ImthbnNhcy1jaXR5IixtZDozfSx7ZDoiMjAyNi0wNi0yNyIsdDoiMTk6MDAiLGg6IkNPTCIsYToiUE9SIixnOiJLIix2OiJtaWFtaSIsbWQ6M30se2Q6IjIwMjYtMDYtMjciLHQ6IjE5OjAwIixoOiJDT0QiLGE6IlVaQiIsZzoiSyIsdjoiYXRsYW50YSIsbWQ6M31dOwoKY29uc3QgS089e1IzMjp7IlIzMi0xIjp7ZDoiMjAyNi0wNi0yOCIsdDoiMTM6MDAiLHY6Imxvcy1hbmdlbGVzIn0sIlIzMi0yIjp7ZDoiMjAyNi0wNi0yOSIsdDoiMTY6MDAiLHY6ImJvc3RvbiJ9LCJSMzItMyI6e2Q6IjIwMjYtMDYtMjkiLHQ6IjE5OjAwIix2OiJtb250ZXJyZXkifSwiUjMyLTQiOntkOiIyMDI2LTA2LTI5Iix0OiIyMDowMCIsdjoiaG91c3RvbiJ9LCJSMzItNSI6e2Q6IjIwMjYtMDYtMzAiLHQ6IjEzOjAwIix2OiJuZXcteW9yayJ9LCJSMzItNiI6e2Q6IjIwMjYtMDYtMzAiLHQ6IjE2OjAwIix2OiJkYWxsYXMifSwiUjMyLTciOntkOiIyMDI2LTA2LTMwIix0OiIxOTowMCIsdjoibWV4aWNvLWNpdHkifSwiUjMyLTgiOntkOiIyMDI2LTA3LTAxIix0OiIxMzowMCIsdjoiYXRsYW50YSJ9LCJSMzItOSI6e2Q6IjIwMjYtMDctMDEiLHQ6IjE2OjAwIix2OiJzYW4tZnJhbmNpc2NvIn0sIlIzMi0xMCI6e2Q6IjIwMjYtMDctMDEiLHQ6IjE5OjAwIix2OiJzZWF0dGxlIn0sIlIzMi0xMSI6e2Q6IjIwMjYtMDctMDIiLHQ6IjEzOjAwIix2OiJ0b3JvbnRvIn0sIlIzMi0xMiI6e2Q6IjIwMjYtMDctMDIiLHQ6IjE2OjAwIix2OiJsb3MtYW5nZWxlcyJ9LCJSMzItMTMiOntkOiIyMDI2LTA3LTAyIix0OiIxOTowMCIsdjoidmFuY291dmVyIn0sIlIzMi0xNCI6e2Q6IjIwMjYtMDctMDMiLHQ6IjEzOjAwIix2OiJtaWFtaSJ9LCJSMzItMTUiOntkOiIyMDI2LTA3LTAzIix0OiIxNjowMCIsdjoia2Fuc2FzLWNpdHkifSwiUjMyLTE2Ijp7ZDoiMjAyNi0wNy0wMyIsdDoiMTk6MDAiLHY6ImRhbGxhcyJ9fSxSMTY6eyJSMTYtMSI6e2Q6IjIwMjYtMDctMDQiLHQ6IjEzOjAwIix2OiJwaGlsYWRlbHBoaWEifSwiUjE2LTIiOntkOiIyMDI2LTA3LTA0Iix0OiIxNzowMCIsdjoiaG91c3RvbiJ9LCJSMTYtMyI6e2Q6IjIwMjYtMDctMDUiLHQ6IjEzOjAwIix2OiJuZXcteW9yayJ9LCJSMTYtNCI6e2Q6IjIwMjYtMDctMDUiLHQ6IjE3OjAwIix2OiJtZXhpY28tY2l0eSJ9LCJSMTYtNSI6e2Q6IjIwMjYtMDctMDYiLHQ6IjEzOjAwIix2OiJkYWxsYXMifSwiUjE2LTYiOntkOiIyMDI2LTA3LTA2Iix0OiIxNzowMCIsdjoic2VhdHRsZSJ9LCJSMTYtNyI6e2Q6IjIwMjYtMDctMDciLHQ6IjEzOjAwIix2OiJhdGxhbnRhIn0sIlIxNi04Ijp7ZDoiMjAyNi0wNy0wNyIsdDoiMTc6MDAiLHY6InZhbmNvdXZlciJ9fSxRRjp7IlFGLTEiOntkOiIyMDI2LTA3LTA5Iix0OiIxNTowMCIsdjoiYm9zdG9uIn0sIlFGLTIiOntkOiIyMDI2LTA3LTEwIix0OiIxODowMCIsdjoibG9zLWFuZ2VsZXMifSwiUUYtMyI6e2Q6IjIwMjYtMDctMTEiLHQ6IjE1OjAwIix2OiJtaWFtaSJ9LCJRRi00Ijp7ZDoiMjAyNi0wNy0xMSIsdDoiMTg6MDAiLHY6ImthbnNhcy1jaXR5In19LFNGOnsiU0YtMSI6e2Q6IjIwMjYtMDctMTQiLHQ6IjE5OjAwIix2OiJkYWxsYXMifSwiU0YtMiI6e2Q6IjIwMjYtMDctMTUiLHQ6IjE5OjAwIix2OiJhdGxhbnRhIn19LEY6eyIzUCI6e2Q6IjIwMjYtMDctMTgiLHQ6IjE1OjAwIix2OiJtaWFtaSJ9LCJGIjp7ZDoiMjAyNi0wNy0xOSIsdDoiMTU6MDAiLHY6Im5ldy15b3JrIn19fTsKCmNvbnN0IFNFRURTPVt7bToiUjMyLTEiLHMxOiIybmQgQSIsczI6IjJuZCBCIn0se206IlIzMi0yIixzMToiMXN0IEUiLHMyOiIzcmQgQUJDREYifSx7bToiUjMyLTMiLHMxOiIxc3QgRiIsczI6IjJuZCBDIn0se206IlIzMi00IixzMToiMXN0IEMiLHMyOiIybmQgRiJ9LHttOiJSMzItNSIsczE6IjFzdCBJIixzMjoiM3JkIENERkdIIn0se206IlIzMi02IixzMToiMm5kIEUiLHMyOiIybmQgSSJ9LHttOiJSMzItNyIsczE6IjFzdCBBIixzMjoiM3JkIENFRkhJIn0se206IlIzMi04IixzMToiMXN0IEwiLHMyOiIzcmQgRUhJSksifSx7bToiUjMyLTkiLHMxOiIxc3QgRCIsczI6IjNyZCBCRUZJSiJ9LHttOiJSMzItMTAiLHMxOiIxc3QgRyIsczI6IjNyZCBBRUhJSiJ9LHttOiJSMzItMTEiLHMxOiIybmQgSyIsczI6IjJuZCBMIn0se206IlIzMi0xMiIsczE6IjFzdCBIIixzMjoiMm5kIEoifSx7bToiUjMyLTEzIixzMToiMXN0IEIiLHMyOiIzcmQgRUZHSUoifSx7bToiUjMyLTE0IixzMToiMXN0IEoiLHMyOiIybmQgSCJ9LHttOiJSMzItMTUiLHMxOiIxc3QgSyIsczI6IjNyZCBERUlKTCJ9LHttOiJSMzItMTYiLHMxOiIybmQgRCIsczI6IjJuZCBHIn1dOwoKY29uc3QgQlA9eyJSMzItMSI6WyJSMTYtMiJdLCJSMzItMiI6WyJSMTYtMSJdLCJSMzItMyI6WyJSMTYtMiJdLCJSMzItNCI6WyJSMTYtMyJdLCJSMzItNSI6WyJSMTYtMSJdLCJSMzItNiI6WyJSMTYtMyJdLCJSMzItNyI6WyJSMTYtNCJdLCJSMzItOCI6WyJSMTYtNCJdLCJSMzItOSI6WyJSMTYtNiJdLCJSMzItMTAiOlsiUjE2LTYiXSwiUjMyLTExIjpbIlIxNi01Il0sIlIzMi0xMiI6WyJSMTYtNSJdLCJSMzItMTMiOlsiUjE2LTgiXSwiUjMyLTE0IjpbIlIxNi03Il0sIlIzMi0xNSI6WyJSMTYtOCJdLCJSMzItMTYiOlsiUjE2LTciXSwiUjE2LTEiOlsiUUYtMSJdLCJSMTYtMiI6WyJRRi0xIl0sIlIxNi0zIjpbIlFGLTMiXSwiUjE2LTQiOlsiUUYtMyJdLCJSMTYtNSI6WyJRRi0yIl0sIlIxNi02IjpbIlFGLTIiXSwiUjE2LTciOlsiUUYtNCJdLCJSMTYtOCI6WyJRRi00Il0sIlFGLTEiOlsiU0YtMSJdLCJRRi0yIjpbIlNGLTEiXSwiUUYtMyI6WyJTRi0yIl0sIlFGLTQiOlsiU0YtMiJdLCJTRi0xIjpbIkYiXSwiU0YtMiI6WyJGIl19OwoKY29uc3QgSVNPPXtNRVg6Im14IixSU0E6InphIixLT1I6ImtyIixDWkU6ImN6IixDQU46ImNhIixCSUg6ImJhIixRQVQ6InFhIixTVUk6ImNoIixCUkE6ImJyIixNQVI6Im1hIixIQUk6Imh0IixTQ086ImdiLXNjdCIsVVNBOiJ1cyIsUEFSOiJweSIsQVVTOiJhdSIsVFVSOiJ0ciIsR0VSOiJkZSIsQ1VXOiJjdyIsQ0lWOiJjaSIsRUNVOiJlYyIsTkVEOiJubCIsSlBOOiJqcCIsU1dFOiJzZSIsVFVOOiJ0biIsQkVMOiJiZSIsRUdZOiJlZyIsSVJOOiJpciIsTlpMOiJueiIsRVNQOiJlcyIsQ1BWOiJjdiIsS1NBOiJzYSIsVVJVOiJ1eSIsRlJBOiJmciIsU0VOOiJzbiIsSVJROiJpcSIsTk9SOiJubyIsQVJHOiJhciIsQUxHOiJkeiIsQVVUOiJhdCIsSk9SOiJqbyIsUE9SOiJwdCIsQ09EOiJjZCIsVVpCOiJ1eiIsQ09MOiJjbyIsRU5HOiJnYi1lbmciLENSTzoiaHIiLEdIQToiZ2giLFBBTjoicGEifTsKCmNvbnN0IFZJTUc9eyJrYW5zYXMtY2l0eSI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMyMDI0L3djMjYtdmVudWUta2Fuc2FzY2l0eS0xLnBuZyIsIm5ldy15b3JrIjoiaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvMzAxMzIwMTQvd2MyNi12ZW51ZS1uZXd5b3JrLTEuanBnIiwiYXRsYW50YSI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMxNDU1L3djMjYtdmVudWUtYXRsYW50YS0xLmpwZyIsInZhbmNvdXZlciI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMxNDM5L3djMjYtdmVudWUtdmFuY291dmVyLmpwZyIsInRvcm9udG8iOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTQzMi93YzI2LXZlbnVlLXRvcm9udG8uanBnIiwic2VhdHRsZSI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMxNDIxL3djMjYtdmVudWUtc2VhdHRsZS5qcGciLCJzYW4tZnJhbmNpc2NvIjoiaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvMzAxMzE0MTMvd2MyNi12ZW51ZS1zYW4tZnJhbmNpc2NvLmpwZyIsInBoaWxhZGVscGhpYSI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMxNDA1L3djMjYtdmVudWUtcGhpbGFkZWxwaGlhLmpwZyIsIm1vbnRlcnJleSI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMxMzU0L3djMjYtdmVudWUtbW9udGVycmV5LmpwZyIsIm1pYW1pIjoiaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvMzAxMzEzNDQvd2MyNi12ZW51ZS1taWFtaS5qcGciLCJtZXhpY28tY2l0eSI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMxMzMzL3djMjYtdmVudWUtbWV4aWNvLWNpdHkuanBnIiwibG9zLWFuZ2VsZXMiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTMyMS93YzI2LXZlbnVlLWxvcy1hbmdlbGVzLmpwZyIsImhvdXN0b24iOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTMxMi93YzI2LXZlbnVlLWhvdXN0b24uanBnIiwiZ3VhZGFsYWphcmEiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTI1OS93YzI2LXZlbnVlLWd1YWRhbGFqYXJhLmpwZyIsImRhbGxhcyI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMxMjQzL3djMjYtdmVudWUtZGFsbGFzLmpwZyIsImJvc3RvbiI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMxMjM2L3djMjYtdmVudWUtYm9zdG9uLmpwZyJ9Owpjb25zdCBHQz17QToiI2VmNDQ0NCIsQjoiI2Y5NzMxNiIsQzoiI2VhYjMwOCIsRDoiIzIyYzU1ZSIsRToiIzE0YjhhNiIsRjoiIzNiODJmNiIsRzoiIzYzNjZmMSIsSDoiIzhiNWNmNiIsSToiI2E4NTVmNyIsSjoiI2VjNDg5OSIsSzoiI2Y0M2Y1ZSIsTDoiIzA2YjZkNCJ9Owpjb25zdCBDQz17VUVGQToiIzNiODJmNiIsQ09OTUVCT0w6IiMyMmM1NWUiLENPTkNBQ0FGOiIjZjk3MzE2IixDQUY6IiNlYWIzMDgiLEFGQzoiI2VmNDQ0NCIsT0ZDOiIjMDZiNmQ0In07CgovLyBVdGlscwpjb25zdCBUTT1uZXcgTWFwKCk7VEVBTVMuZm9yRWFjaCh0PT5UTS5zZXQodC5jLHQpKTsKZnVuY3Rpb24gVChjKXtyZXR1cm4gVE0uZ2V0KGMpfHx7bjpjLGMscjo5OTkscDoxMzAwLGNmOiI\/In07fQpmdW5jdGlvbiBmbChjKXtjb25zdCBpPUlTT1tjXTtyZXR1cm4gaT8oImh0dHBzOi8vZmxhZ2Nkbi5jb20vdzgwLyIrKGkpKyIucG5nIik6IiI7fQpmdW5jdGlvbiBjZmwoYyl7cmV0dXJuKCJodHRwczovL2ZsYWdjZG4uY29tL3c0MC8iKyh7TUVYOiJteCIsQ0FOOiJjYSIsVVNBOiJ1cyJ9W2NdfHwidW4iKSsiLnBuZyIpO30KZnVuY3Rpb24gZmQoZCl7cmV0dXJuIG5ldyBEYXRlKGQrIlQxMjowMDowMCIpLnRvTG9jYWxlRGF0ZVN0cmluZygiZW4tVVMiLHt3ZWVrZGF5OiJzaG9ydCIsbW9udGg6InNob3J0IixkYXk6Im51bWVyaWMifSk7fQpmdW5jdGlvbiBmdCh0KXtjb25zdFtoLG1dPXQuc3BsaXQoIjoiKTtjb25zdCBocj0raDtyZXR1cm4oKGhyPjEyP2hyLTEyOmhyfHwxMikrIjoiKyhtKSsiICIrKGhyPj0xMj8iUE0iOiJBTSIpKTt9CmZ1bmN0aW9uIG5tKG4pe3JldHVybiBuLnRvTG9jYWxlU3RyaW5nKCk7fQpmdW5jdGlvbiB0ZyhjKXtjb25zdCBnPUdST1VQUy5maW5kKGc9PmcudGMuaW5jbHVkZXMoYykpO3JldHVybiBnP2cuaWQ6bnVsbDt9CgovLyBDb3VudGRvd24KZnVuY3Rpb24gaW5pdENEKCl7CiAgY29uc3QgdGFyZ2V0PW5ldyBEYXRlKCIyMDI2LTA2LTExVDIxOjAwOjAwWiIpLmdldFRpbWUoKTsKICBmdW5jdGlvbiB1cGQoKXsKICAgIGNvbnN0IGRpZmY9TWF0aC5tYXgoMCx0YXJnZXQtRGF0ZS5ub3coKSk7CiAgICBjb25zdCBkPU1hdGguZmxvb3IoZGlmZi84NjRlNSksaD1NYXRoLmZsb29yKGRpZmYlODY0ZTUvMzZlNSksbT1NYXRoLmZsb29yKGRpZmYlMzZlNS82ZTQpLHM9TWF0aC5mbG9vcihkaWZmJTZlNC8xZTMpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjLWNvdW50ZG93biIpLmlubmVySFRNTD1bWyJEYXlzIixkXSxbIkhvdXJzIixoXSxbIk1pbiIsbV0sWyJTZWMiLHNdXS5tYXAoKFtsLHZdKT0+KCI8ZGl2IGNsYXNzPVwid2MtY2QtYm94XCI+PGRpdiBjbGFzcz1cIndjLWNkLW51bVwiPiIrKHYpKyI8L2Rpdj48ZGl2IGNsYXNzPVwid2MtY2QtbGFiZWxcIj4iKyhsKSsiPC9kaXY+PC9kaXY+IikpLmpvaW4oIiIpOwogIH0KICB1cGQoKTtzZXRJbnRlcnZhbCh1cGQsMTAwMCk7Cn0KCi8vIEhlcm8gc3RhdHMKZnVuY3Rpb24gaW5pdEhlcm9TdGF0cygpewogIGNvbnN0IGNhcD1PYmplY3QudmFsdWVzKFZFTlVFUykucmVkdWNlKChhLHYpPT5hK3YuY2FwLDApOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1oZXJvLXN0YXRzIikuaW5uZXJIVE1MPVtbIjQ4IiwiVGVhbXMiXSxbIjE2IiwiVmVudWVzIl0sWyIxMDQiLCJNYXRjaGVzIl0sW25tKGNhcCksIlRvdGFsIENhcGFjaXR5Il1dLm1hcCgoW3YsbF0pPT4oIjxkaXYgY2xhc3M9XCJ3Yy1zdGF0XCI+PGRpdiBjbGFzcz1cIndjLXN0YXQtbnVtXCI+IisodikrIjwvZGl2PjxkaXYgY2xhc3M9XCJ3Yy1zdGF0LWxhYmVsXCI+IisobCkrIjwvZGl2PjwvZGl2PiIpKS5qb2luKCIiKTsKfQoKLy8gR3JvdXBzCmZ1bmN0aW9uIGluaXRHcm91cHMoKXsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MtZ3JvdXBzLWdyaWQiKS5pbm5lckhUTUw9R1JPVVBTLm1hcChnPT57CiAgICBjb25zdCB0ZWFtcz1nLnRjLm1hcChjPT5UKGMpKS5zb3J0KChhLGIpPT5hLnItYi5yKTsKICAgIGNvbnN0IHBtPW1hbnVhbE1vZGUmJiFncm91cHNTaW11bGF0ZWQ7CiAgICBjb25zdCB0YmxDbHM9cG0\/IndjLWd0YWJsZSBwaWNrbW9kZSI6IndjLWd0YWJsZSI7CiAgICBjb25zdCBwaWNrcz1tYW51YWxQaWNrc1tnLmlkXXx8W107CiAgICByZXR1cm4oIjxkaXYgY2xhc3M9XCJ3Yy1ncm91cFwiPjxkaXYgY2xhc3M9XCJ3Yy1ncm91cC1oZHJcIj48ZGl2IGNsYXNzPVwid2MtZ3JvdXAtYmFkZ2VcIiBzdHlsZT1cImJhY2tncm91bmQ6IisoR0NbZy5pZF0pKyJcIj4iKyhnLmlkKSsiPC9kaXY+IisoZy5uKSsocG0mJnBpY2tzLmxlbmd0aDw0PygiPHNwYW4gc3R5bGU9XCJtYXJnaW4tbGVmdDphdXRvO2ZvbnQtc2l6ZToxMHB4O2NvbG9yOnZhcigtLXQzKVwiPiIrKHBpY2tzLmxlbmd0aCkrIi80PC9zcGFuPiIpOiIiKSsiPC9kaXY+PHRhYmxlIGNsYXNzPVwiIisodGJsQ2xzKSsiXCI+PHRoZWFkPjx0cj48dGg+IzwvdGg+PHRoPlRlYW08L3RoPjx0aD5QdHM8L3RoPjx0aD5QPC90aD48dGg+VzwvdGg+PHRoPkQ8L3RoPjx0aD5MPC90aD48dGg+R0Q8L3RoPjwvdHI+PC90aGVhZD48dGJvZHk+IisodGVhbXMubWFwKCh0LGkpPT57CiAgICAgIGNvbnN0IHBpY2tJZHg9cGlja3MuaW5kZXhPZih0LmMpOwogICAgICBjb25zdCByYz1wbT8ocGlja0lkeCE9PS0xPyhwaWNrSWR4PDI\/IndjLXJxIjpwaWNrSWR4PT09Mj8id2MtcjMiOiJ3Yy1yZSIpOiIiKTooaTwyPyJ3Yy1ycSI6aT09PTI\/IndjLXIzIjoid2MtcmUiKTsKICAgICAgY29uc3QgcG9zPXBtPyhwaWNrSWR4IT09LTE\/cGlja0lkeCsxOiItIik6KGkrMSk7CiAgICAgIGNvbnN0IG9uY2xpY2s9cG0\/KCIgb25jbGljaz1cIndjMjZQaWNrR3JvdXAoJyIrKGcuaWQpKyInLCciKyh0LmMpKyInKVwiIHN0eWxlPVwiY3Vyc29yOnBvaW50ZXIiKyhwaWNrSWR4PT09LTEmJnBpY2tzLmxlbmd0aD4wPyI7b3BhY2l0eTouNSI6IiIpKyJcIiIpOiIiCiAgICAgIGNvbnN0IGJhZGdlPXBtJiZwaWNrSWR4IT09LTE\/KCI8c3BhbiBjbGFzcz1cIndjLXBpY2stYmFkZ2Ugd2MtcGljay0iKyhwaWNrSWR4KzEpKyJcIj4iKyhwaWNrSWR4PT09MD8iMXN0IjpwaWNrSWR4PT09MT8iMm5kIjpwaWNrSWR4PT09Mj8iM3JkIjoiNHRoIikrIjwvc3Bhbj4iKToiIjsKICAgICAgcmV0dXJuKCI8dHIgY2xhc3M9XCIiKyhyYykrIlwiIGRhdGEtZz1cIiIrKGcuaWQpKyJcIiBkYXRhLXRjPVwiIisodC5jKSsiXCIiKyhvbmNsaWNrKSsiPjx0ZCBjbGFzcz1cIndjLXBvc1wiPiIrKHBvcykrIjwvdGQ+PHRkPjxkaXYgY2xhc3M9XCJ0Y1wiPjxpbWcgc3JjPVwiIisoZmwodC5jKSkrIlwiIGFsdD1cIiIrKHQuYykrIlwiPiIrKHQubikrIjxzcGFuIGNsYXNzPVwicmtcIj4jIisodC5yKSsiPC9zcGFuPiIrKGJhZGdlKSsiPC9kaXY+PC90ZD48dGQ+PHN0cm9uZz4wPC9zdHJvbmc+PC90ZD48dGQ+MDwvdGQ+PHRkPjA8L3RkPjx0ZD4wPC90ZD48dGQ+MDwvdGQ+PHRkPjA8L3RkPjwvdHI+Iik7CiAgICB9KS5qb2luKCIiKSkrIjwvdGJvZHk+PC90YWJsZT48L2Rpdj4iKTsKICB9KS5qb2luKCIiKTsKfQoKLy8gU2NoZWR1bGUKbGV0IHNmPXtnOiJhbGwiLG1kOjB9OwpmdW5jdGlvbiBpbml0U2NoRmlsdGVycygpewogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1zY2gtZmlsdGVycyIpLmlubmVySFRNTD0iPGJ1dHRvbiBjbGFzcz1cIndjLWZidG4gb25cIiBvbmNsaWNrPVwid2MyNlNjaEYoJ21kJywwKVwiPkFsbDwvYnV0dG9uPiIrWzEsMiwzXS5tYXAobT0+KCI8YnV0dG9uIGNsYXNzPVwid2MtZmJ0blwiIG9uY2xpY2s9XCJ3YzI2U2NoRignbWQnLCIrKG0pKyIpXCI+TUQgIisobSkrIjwvYnV0dG9uPiIpKS5qb2luKCIiKSsoIjxzZWxlY3QgY2xhc3M9XCJ3Yy1mc2VsXCIgb25jaGFuZ2U9XCJ3YzI2U2NoRignZycsdGhpcy52YWx1ZSlcIj48b3B0aW9uIHZhbHVlPVwiYWxsXCI+QWxsIEdyb3Vwczwvb3B0aW9uPiIrKEdST1VQUy5tYXAoZz0+KCI8b3B0aW9uIHZhbHVlPVwiIisoZy5pZCkrIlwiPkdyb3VwICIrKGcuaWQpKyI8L29wdGlvbj4iKSkuam9pbigiIikpKyI8L3NlbGVjdD4iKTsKfQp3aW5kb3cud2MyNlNjaEY9ZnVuY3Rpb24oayx2KXtzZltrXT12O3JlbmRlclNjaCgpO2lmKGs9PT0ibWQiKWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN3Yy1zY2gtZmlsdGVycyAud2MtZmJ0biIpLmZvckVhY2goKGIsaSk9PmIuY2xhc3NMaXN0LnRvZ2dsZSgib24iLCh2PT09MCYmaT09PTApfHwodj09PWkpKSk7fTsKZnVuY3Rpb24gcmVuZGVyU2NoKCl7CiAgaW5pdFNjaEZpbHRlcnMoKTsKICBsZXQgbXM9TUFUQ0hFUy5maWx0ZXIobT0+KHNmLmc9PT0iYWxsInx8bS5nPT09c2YuZykmJighc2YubWR8fG0ubWQ9PT1zZi5tZCkpOwogIGNvbnN0IGJkPXt9O21zLmZvckVhY2gobT0+eyhiZFttLmRdPWJkW20uZF18fFtdKS5wdXNoKG0pO30pOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1zY2gtbGlzdCIpLmlubmVySFRNTD1PYmplY3QuZW50cmllcyhiZCkuc29ydCgoW2FdLFtiXSk9PmEubG9jYWxlQ29tcGFyZShiKSkubWFwKChbZCxtc10pPT4oIjxkaXYgY2xhc3M9XCJ3Yy1kYXRlLWhkclwiPiIrKGZkKGQpKSsiPC9kaXY+IikrbXMubWFwKG09PnsKICAgIGNvbnN0IGg9VChtLmgpLGE9VChtLmEpLHY9VkVOVUVTW20udl07CiAgICByZXR1cm4oIjxkaXYgY2xhc3M9XCJ3Yy1tYXRjaFwiPjxkaXYgY2xhc3M9XCJ3Yy1tdGVhbVwiPjxpbWcgc3JjPVwiIisoZmwobS5oKSkrIlwiPiIrKGgubikrIjwvZGl2PjxkaXYgY2xhc3M9XCJ3Yy1tdnNcIj48ZGl2IGNsYXNzPVwidG1cIj4iKyhmdChtLnQpKSsiPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz1cIndjLW10ZWFtIGF3YXlcIj4iKyhhLm4pKyI8aW1nIHNyYz1cIiIrKGZsKG0uYSkpKyJcIj48L2Rpdj48ZGl2IGNsYXNzPVwid2MtbW1ldGFcIj48c3BhbiBjbGFzcz1cIndjLWdycC10YWdcIiBzdHlsZT1cImJhY2tncm91bmQ6IisoR0NbbS5nXSkrIlwiPkdyb3VwICIrKG0uZykrIjwvc3Bhbj48c3Bhbj4iKyh2P3Yuc2Q6IiIpKyI8L3NwYW4+PC9kaXY+PC9kaXY+Iik7CiAgfSkuam9pbigiIikpLmpvaW4oIiIpOwp9CgovLyA9PT09PSBJTlRFUkFDVElWRSBUUkVFIEJSQUNLRVQgPT09PT0KY29uc3QgYnJhY2tldFN0YXRlPXt9OwpsZXQgZ3JvdXBzU2ltdWxhdGVkPWZhbHNlOwpsZXQgYWxsU3RhbmRpbmdzPW51bGw7CmxldCBtYW51YWxNb2RlPWZhbHNlOwpjb25zdCBtYW51YWxQaWNrcz17fTsvLyBncm91cElkIC0+IFtjb2RlMXN0LCBjb2RlMm5kLCBjb2RlM3JkLCBjb2RlNHRoXQpjb25zdCBMMzI9WyJSMzItMiIsIlIzMi01IiwiUjMyLTEiLCJSMzItMyIsIlIzMi00IiwiUjMyLTYiLCJSMzItNyIsIlIzMi04Il07CmNvbnN0IFIzMlg9WyJSMzItOSIsIlIzMi0xMCIsIlIzMi0xMSIsIlIzMi0xMiIsIlIzMi0xMyIsIlIzMi0xNCIsIlIzMi0xNSIsIlIzMi0xNiJdOwpjb25zdCBMMTY9WyJSMTYtMSIsIlIxNi0yIiwiUjE2LTMiLCJSMTYtNCJdLFIxNlg9WyJSMTYtNSIsIlIxNi02IiwiUjE2LTciLCJSMTYtOCJdOwpjb25zdCBMUUY9WyJRRi0xIiwiUUYtMyJdLFJRRj1bIlFGLTIiLCJRRi00Il07CgpmdW5jdGlvbiByZW5kZXJCcmFja2V0QWN0aW9ucygpewogIGNvbnN0IGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1icmFja2V0LWFjdGlvbnMiKTsKICBpZihncm91cHNTaW11bGF0ZWQpewogICAgZWwuaW5uZXJIVE1MPSI8YnV0dG9uIGNsYXNzPVwid2MtZmJ0biBvblwiIGRpc2FibGVkPlxcdTI3MDUgR3JvdXBzIERvbmU8L2J1dHRvbj4iKwogICAgICAiPGJ1dHRvbiBjbGFzcz1cIndjLWZidG5cIiBvbmNsaWNrPVwid2MyNlNpbUFsbEtPKClcIj5BdXRvLVNpbXVsYXRlIEtub2Nrb3V0czwvYnV0dG9uPiIrCiAgICAgICI8YnV0dG9uIGNsYXNzPVwid2MtZmJ0blwiIG9uY2xpY2s9XCJ3YzI2UmVzZXQoKVwiIHN0eWxlPVwiY29sb3I6dmFyKC0tcmVkKTtib3JkZXItY29sb3I6dmFyKC0tcmVkKVwiPlJlc2V0PC9idXR0b24+IjsKICB9ZWxzZSBpZihtYW51YWxNb2RlKXsKICAgIGNvbnN0IGFsbFBpY2tlZD1HUk9VUFMuZXZlcnkoZz0+bWFudWFsUGlja3NbZy5pZF0mJm1hbnVhbFBpY2tzW2cuaWRdLmxlbmd0aD09PTQpOwogICAgZWwuaW5uZXJIVE1MPSI8YnV0dG9uIGNsYXNzPVwid2MtZmJ0biBvblwiIGRpc2FibGVkPk1hbnVhbCBNb2RlOiBDbGljayB0ZWFtcyBpbiBlYWNoIGdyb3VwIHRvIHJhbmsgMXN0LTR0aDwvYnV0dG9uPiIrCiAgICAgIChhbGxQaWNrZWQ\/IjxidXR0b24gY2xhc3M9XCJ3Yy1mYnRuXCIgb25jbGljaz1cIndjMjZDb25maXJtTWFudWFsKClcIiBzdHlsZT1cImJhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmXCI+XFx1MjcwNSBDb25maXJtICZhbXA7IEZpbGwgQnJhY2tldDwvYnV0dG9uPiI6IiIpKwogICAgICAiPGJ1dHRvbiBjbGFzcz1cIndjLWZidG5cIiBvbmNsaWNrPVwid2MyNlJlc2V0KClcIiBzdHlsZT1cImNvbG9yOnZhcigtLXJlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLXJlZClcIj5DYW5jZWw8L2J1dHRvbj4iOwogIH1lbHNlewogICAgZWwuaW5uZXJIVE1MPSI8YnV0dG9uIGNsYXNzPVwid2MtZmJ0blwiIG9uY2xpY2s9XCJ3YzI2U2ltR3JvdXBzKClcIj5TaW11bGF0ZSBHcm91cHM8L2J1dHRvbj4iKwogICAgICAiPGJ1dHRvbiBjbGFzcz1cIndjLWZidG5cIiBvbmNsaWNrPVwid2MyNk1hbnVhbE1vZGUoKVwiPlBpY2sgTWFudWFsbHk8L2J1dHRvbj4iKwogICAgICAiPGJ1dHRvbiBjbGFzcz1cIndjLWZidG5cIiBvbmNsaWNrPVwid2MyNlJlc2V0KClcIiBzdHlsZT1cImNvbG9yOnZhcigtLXJlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLXJlZClcIj5SZXNldDwvYnV0dG9uPiI7CiAgfQp9CgovLyBNYW51YWwgbW9kZTogY2xpY2sgdGVhbXMgaW4gZ3JvdXAgdGFibGVzIHRvIHNldCAxc3QvMm5kLzNyZC80dGgKd2luZG93LndjMjZNYW51YWxNb2RlPWZ1bmN0aW9uKCl7CiAgbWFudWFsTW9kZT10cnVlOwogIEdST1VQUy5mb3JFYWNoKGc9PnttYW51YWxQaWNrc1tnLmlkXT1bXTt9KTsKICBpbml0R3JvdXBzKCk7Ly8gcmUtcmVuZGVyIHdpdGggY2xpY2sgaGFuZGxlcnMKICByZW5kZXJCcmFja2V0QWN0aW9ucygpOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1ncm91cHMiKS5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6InNtb290aCJ9KTsKfTsKCndpbmRvdy53YzI2UGlja0dyb3VwPWZ1bmN0aW9uKGdpZCxjb2RlKXsKICBpZighbWFudWFsTW9kZXx8Z3JvdXBzU2ltdWxhdGVkKXJldHVybjsKICBjb25zdCBwaWNrcz1tYW51YWxQaWNrc1tnaWRdOwogIC8vIElmIGFscmVhZHkgcGlja2VkLCByZW1vdmUgaXQgYW5kIGV2ZXJ5dGhpbmcgYWZ0ZXIKICBjb25zdCBpZHg9cGlja3MuaW5kZXhPZihjb2RlKTsKICBpZihpZHghPT0tMSl7cGlja3Muc3BsaWNlKGlkeCk7dXBkYXRlR3JvdXBVSShnaWQpO3JlbmRlckJyYWNrZXRBY3Rpb25zKCk7cmV0dXJuO30KICBpZihwaWNrcy5sZW5ndGg+PTQpcmV0dXJuOwogIHBpY2tzLnB1c2goY29kZSk7CiAgdXBkYXRlR3JvdXBVSShnaWQpOwogIHJlbmRlckJyYWNrZXRBY3Rpb25zKCk7Cn07CgpmdW5jdGlvbiB1cGRhdGVHcm91cFVJKGdpZCl7CiAgY29uc3QgcGlja3M9bWFudWFsUGlja3NbZ2lkXXx8W107CiAgY29uc3Qgcm93cz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCgiW2RhdGEtZz1cIiIrKGdpZCkrIlwiXSIpKTsKICByb3dzLmZvckVhY2gocm93PT57CiAgICBjb25zdCBjb2RlPXJvdy5nZXRBdHRyaWJ1dGUoImRhdGEtdGMiKTsKICAgIGNvbnN0IHBvcz1waWNrcy5pbmRleE9mKGNvZGUpOwogICAgY29uc3QgcG9zQ2VsbD1yb3cucXVlcnlTZWxlY3RvcigiLndjLXBvcyIpOwogICAgY29uc3QgZXhpc3RpbmdCYWRnZT1yb3cucXVlcnlTZWxlY3RvcigiLndjLXBpY2stYmFkZ2UiKTsKICAgIGlmKGV4aXN0aW5nQmFkZ2UpZXhpc3RpbmdCYWRnZS5yZW1vdmUoKTsKICAgIGlmKHBvcyE9PS0xKXsKICAgICAgcG9zQ2VsbC50ZXh0Q29udGVudD1wb3MrMTsKICAgICAgcm93LmNsYXNzTmFtZT1wb3M8Mj8id2MtcnEiOnBvcz09PTI\/IndjLXIzIjoid2MtcmUiOwogICAgICBjb25zdCBiYWRnZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgIGJhZGdlLmNsYXNzTmFtZT0id2MtcGljay1iYWRnZSB3Yy1waWNrLSIrKHBvcysxKTsKICAgICAgYmFkZ2UudGV4dENvbnRlbnQ9cG9zPT09MD8iMXN0Ijpwb3M9PT0xPyIybmQiOnBvcz09PTI\/IjNyZCI6IjR0aCI7CiAgICAgIHJvdy5xdWVyeVNlbGVjdG9yKCIudGMiKS5hcHBlbmRDaGlsZChiYWRnZSk7CiAgICB9ZWxzZXsKICAgICAgcG9zQ2VsbC50ZXh0Q29udGVudD0iLSI7CiAgICAgIHJvdy5jbGFzc05hbWU9IiI7CiAgICAgIHJvdy5zdHlsZS5vcGFjaXR5PXBpY2tzLmxlbmd0aD4wPyIwLjUiOiIxIjsKICAgIH0KICB9KTsKICAvLyBJZiBhbGwgNCBwaWNrZWQsIHNldCBmdWxsIG9wYWNpdHkKICBpZihwaWNrcy5sZW5ndGg9PT00KXJvd3MuZm9yRWFjaChyPT5yLnN0eWxlLm9wYWNpdHk9IjEiKTsKfQoKd2luZG93LndjMjZDb25maXJtTWFudWFsPWZ1bmN0aW9uKCl7CiAgaWYoIUdST1VQUy5ldmVyeShnPT5tYW51YWxQaWNrc1tnLmlkXT8ubGVuZ3RoPT09NCkpcmV0dXJuOwogIC8vIEJ1aWxkIGFsbFN0YW5kaW5ncyBmcm9tIG1hbnVhbCBwaWNrcwogIGFsbFN0YW5kaW5ncz17fTsKICBHUk9VUFMuZm9yRWFjaChnPT57CiAgICBhbGxTdGFuZGluZ3NbZy5pZF09bWFudWFsUGlja3NbZy5pZF0ubWFwKChjb2RlLGkpPT4oe2M6Y29kZSxwdHM6MyooMy1pKSxwOjMsdzozLWksZDowLGw6aSxnZjozLWksZ2E6aSxnZDozLTIqaX0pKTsKICB9KTsKICBncm91cHNTaW11bGF0ZWQ9dHJ1ZTttYW51YWxNb2RlPWZhbHNlOwogIHBvcHVsYXRlUjMyKCk7CiAgaW5pdEdyb3VwcygpOy8vIHJlLXJlbmRlciB3aXRob3V0IGNsaWNrIGhhbmRsZXJzCiAgcmVuZGVyQnJhY2tldCgpOwp9OwoKZnVuY3Rpb24gc2xvdEhUTUwoaWQsdGVhbUNvZGUsc2VlZExhYmVsKXsKICB2YXIgc3Q9YnJhY2tldFN0YXRlW2lkXTsKICBpZighdGVhbUNvZGUpcmV0dXJuKCI8ZGl2IGNsYXNzPVwid2MtYnNsb3QgZW1wdHlcIj48c3BhbiBjbGFzcz1cInNlZWQtbGJsXCI+Iisoc2VlZExhYmVsKSsiPC9zcGFuPjxzcGFuIGNsYXNzPVwibm1cIiBzdHlsZT1cImNvbG9yOnZhcigtLXQzKVwiPlRCRDwvc3Bhbj48L2Rpdj4iKTsKICB2YXIgdGVhbT1UKHRlYW1Db2RlKTsKICB2YXIgaXNQaWNrZWQ9c3QmJnN0Lndpbm5lcj09PXRlYW1Db2RlOwogIHZhciBpc0xvc3Q9c3QmJnN0Lndpbm5lciYmc3Qud2lubmVyIT09dGVhbUNvZGU7CiAgdmFyIGNscz1pc1BpY2tlZD8icGlja2VkIjppc0xvc3Q\/Imxvc3QiOiIiOwogIHJldHVybigiPGRpdiBjbGFzcz1cIndjLWJzbG90ICIrKGNscykrIlwiIG9uY2xpY2s9XCJ3YzI2UGljaygnIisoaWQpKyInLCciKyh0ZWFtQ29kZSkrIicpXCI+PGltZyBzcmM9XCIiKyhmbCh0ZWFtQ29kZSkpKyJcIj48c3BhbiBjbGFzcz1cIm5tXCI+IisodGVhbUNvZGUpKyI8L3NwYW4+PHNwYW4gY2xhc3M9XCJwaWNrLWljb25cIj5cXHUyNzEzPC9zcGFuPjwvZGl2PiIpOwp9CgpmdW5jdGlvbiBtYXRjaENhcmQoaWQsc2wxLHNsMil7CiAgY29uc3QgaW5mbz1LTy5SMzJbaWRdfHxLTy5SMTZbaWRdfHxLTy5RRltpZF18fEtPLlNGW2lkXXx8S08uRltpZF07CiAgaWYoIWluZm8pcmV0dXJuIiI7CiAgY29uc3Qgdj1WRU5VRVNbaW5mby52XTtjb25zdCBzdD1icmFja2V0U3RhdGVbaWRdOwogIGNvbnN0IHQxPXN0P3N0LnQxOm51bGwsdDI9c3Q\/c3QudDI6bnVsbDsKICBjb25zdCBjbHM9aWQ9PT0iRiI\/IiBmaW5hbC1tYXRjaCI6IiI7CiAgcmV0dXJuKCI8ZGl2IGNsYXNzPVwid2MtYm1hdGNoIisoY2xzKSsiXCIgaWQ9XCJ3Yy1ibS0iKyhpZCkrIlwiPiIrKHNsb3RIVE1MKGlkLHQxLHNsMSkpKyhzbG90SFRNTChpZCx0MixzbDIpKSsiPGRpdiBjbGFzcz1cIndjLWJtZXRhXCI+IisoZmQoaW5mby5kKSkrIiAmbWlkZG90OyAiKyh2P3YuY2k6IiIpKyI8L2Rpdj48L2Rpdj4iKTsKfQoKZnVuY3Rpb24gbWMoaWQsZXh0cmEpewogIHZhciBzZWVkTWFwPXt9O1NFRURTLmZvckVhY2goZnVuY3Rpb24ocyl7c2VlZE1hcFtzLm1dPXM7fSk7CiAgdmFyIHM9c2VlZE1hcFtpZF07CiAgdmFyIHMxPXM\/cy5zMTooaWQ9PT0iRiI\/IlcgU0YxIjppZD09PSIzUCI\/IkwgU0YxIjoiVEJEIik7CiAgdmFyIHMyPXM\/cy5zMjooaWQ9PT0iRiI\/IlcgU0YyIjppZD09PSIzUCI\/IkwgU0YyIjoiVEJEIik7CiAgcmV0dXJuIG1hdGNoQ2FyZChpZCxzMSxzMikucmVwbGFjZSgid2MtYm1hdGNoXCIiLCJ3Yy1ibWF0Y2giKyhleHRyYT8iICIrZXh0cmE6IiIpKyJcIiIpOwp9CgpmdW5jdGlvbiByb3coaWRzLGV4dHJhKXsKICB2YXIgaD0iPGRpdiBjbGFzcz1cIndjLXJvd1wiPiI7CiAgaWRzLmZvckVhY2goZnVuY3Rpb24oaWQpe2grPW1jKGlkLGV4dHJhfHwiIik7fSk7CiAgaCs9IjwvZGl2PiI7CiAgcmV0dXJuIGg7Cn0KCmZ1bmN0aW9uIGNvbm5Eb3duKG4pewogIHZhciBoPSI8ZGl2IGNsYXNzPVwid2MtY29ubmVjdG9yc1wiPiI7CiAgZm9yKHZhciBpPTA7aTxuO2krKyloKz0iPGRpdiBjbGFzcz1cIndjLWNvbm4tcGFpclwiPjxzcGFuPlx1MjU3MDwvc3Bhbj48c3Bhbj5cdTI1NkY8L3NwYW4+PC9kaXY+IjsKICBoKz0iPC9kaXY+IjsKICByZXR1cm4gaDsKfQpmdW5jdGlvbiBjb25uVXAobil7CiAgdmFyIGg9IjxkaXYgY2xhc3M9XCJ3Yy1jb25uZWN0b3JzXCI+IjsKICBmb3IodmFyIGk9MDtpPG47aSsrKWgrPSI8ZGl2IGNsYXNzPVwid2MtY29ubi1wYWlyXCI+PHNwYW4+XHUyNTZEPC9zcGFuPjxzcGFuPlx1MjU2RTwvc3Bhbj48L2Rpdj4iOwogIGgrPSI8L2Rpdj4iOwogIHJldHVybiBoOwp9CgpmdW5jdGlvbiByb3VuZEhkcih0aXRsZSxpc0ZpbmFsKXsKICB2YXIgY2xzPWlzRmluYWw\/IndjLXZyb3VuZC1oZHIgZmluYWwtaGRyIjoid2MtdnJvdW5kLWhkciI7CiAgcmV0dXJuICI8ZGl2IGNsYXNzPVwiIitjbHMrIlwiPjxzcGFuIGNsYXNzPVwid2MtdnItbGFiZWxcIj4iK3RpdGxlKyI8L3NwYW4+PHNwYW4gY2xhc3M9XCJ3Yy12ci1saW5lXCI+PC9zcGFuPjwvZGl2PiI7Cn0KCmZ1bmN0aW9uIHJlbmRlckJyYWNrZXQoKXsKICB2YXIgaD0iIjsKCiAgLy8gVVBQRVIgSEFMRiAtIHRvcCBkb3duCiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy12cm91bmRcIj4iK3JvdW5kSGRyKCJSb3VuZCBvZiAzMiAmbWRhc2g7IFVwcGVyIik7CiAgaCs9cm93KFsiUjMyLTIiLCJSMzItNSIsIlIzMi0xIiwiUjMyLTMiLCJSMzItNCIsIlIzMi02IiwiUjMyLTciLCJSMzItOCJdKTsKICBoKz0iPC9kaXY+IjsKICBoKz1jb25uRG93big0KTsKCiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy12cm91bmRcIj4iK3JvdW5kSGRyKCJSb3VuZCBvZiAxNiIpOwogIGgrPXJvdyhbIlIxNi0xIiwiUjE2LTIiLCJSMTYtMyIsIlIxNi00Il0pOwogIGgrPSI8L2Rpdj4iOwogIGgrPWNvbm5Eb3duKDIpOwoKICBoKz0iPGRpdiBjbGFzcz1cIndjLXZyb3VuZFwiPiIrcm91bmRIZHIoIlF1YXJ0ZXItRmluYWxzIik7CiAgaCs9cm93KFsiUUYtMSIsIlFGLTMiXSk7CiAgaCs9IjwvZGl2PiI7CiAgaCs9Y29ubkRvd24oMSk7CgogIGgrPSI8ZGl2IGNsYXNzPVwid2MtdnJvdW5kXCI+Iityb3VuZEhkcigiU2VtaS1GaW5hbCAxIik7CiAgaCs9cm93KFsiU0YtMSJdKTsKICBoKz0iPC9kaXY+IjsKICBoKz1jb25uRG93bigxKTsKCiAgLy8gRklOQUwgKyAzUkQgUExBQ0UKICBoKz0iPGRpdiBjbGFzcz1cIndjLXZyb3VuZFwiPiIrcm91bmRIZHIoIkZJTkFMIix0cnVlKTsKICBoKz0iPGRpdiBjbGFzcz1cIndjLWZpbmFsLXdyYXBcIj4iK21jKCJGIiwiZmluYWwtbWF0Y2giKSttYygiM1AiLCJ0aGlyZC1tYXRjaCIpKyI8L2Rpdj4iOwogIGgrPSI8L2Rpdj4iOwoKICBoKz1jb25uVXAoMSk7CgogIC8vIExPV0VSIEhBTEYgLSBib3R0b20gdXAKICBoKz0iPGRpdiBjbGFzcz1cIndjLXZyb3VuZFwiPiIrcm91bmRIZHIoIlNlbWktRmluYWwgMiIpOwogIGgrPXJvdyhbIlNGLTIiXSk7CiAgaCs9IjwvZGl2PiI7CiAgaCs9Y29ublVwKDEpOwoKICBoKz0iPGRpdiBjbGFzcz1cIndjLXZyb3VuZFwiPiIrcm91bmRIZHIoIlF1YXJ0ZXItRmluYWxzIik7CiAgaCs9cm93KFsiUUYtMiIsIlFGLTQiXSk7CiAgaCs9IjwvZGl2PiI7CiAgaCs9Y29ublVwKDIpOwoKICBoKz0iPGRpdiBjbGFzcz1cIndjLXZyb3VuZFwiPiIrcm91bmRIZHIoIlJvdW5kIG9mIDE2Iik7CiAgaCs9cm93KFsiUjE2LTUiLCJSMTYtNiIsIlIxNi03IiwiUjE2LTgiXSk7CiAgaCs9IjwvZGl2PiI7CiAgaCs9Y29ublVwKDQpOwoKICBoKz0iPGRpdiBjbGFzcz1cIndjLXZyb3VuZFwiPiIrcm91bmRIZHIoIlJvdW5kIG9mIDMyICZtZGFzaDsgTG93ZXIiKTsKICBoKz1yb3coWyJSMzItOSIsIlIzMi0xMCIsIlIzMi0xMSIsIlIzMi0xMiIsIlIzMi0xMyIsIlIzMi0xNCIsIlIzMi0xNSIsIlIzMi0xNiJdKTsKICBoKz0iPC9kaXY+IjsKCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjLWJyYWNrZXQtcm9vdCIpLmlubmVySFRNTD1oOwogIHJlbmRlckJyYWNrZXRBY3Rpb25zKCk7Cn0KCi8vIFBpY2sgd2lubmVyCndpbmRvdy53YzI2UGljaz1mdW5jdGlvbihtYXRjaElkLHRlYW1Db2RlKXsKICBjb25zdCBzdD1icmFja2V0U3RhdGVbbWF0Y2hJZF07CiAgaWYoIXN0fHwhc3QudDF8fCFzdC50MilyZXR1cm47CiAgaWYoc3Qud2lubmVyPT09dGVhbUNvZGUpcmV0dXJuOwogIGlmKHN0Lndpbm5lciYmc3Qud2lubmVyIT09dGVhbUNvZGUpY2xlYXJEb3duKG1hdGNoSWQpOwogIHN0Lndpbm5lcj10ZWFtQ29kZTsKICAvLyBBZHZhbmNlCiAgY29uc3Qgbng9QlBbbWF0Y2hJZF07CiAgaWYobngpbnguZm9yRWFjaChuaWQ9PnsKICAgIGlmKCFicmFja2V0U3RhdGVbbmlkXSlicmFja2V0U3RhdGVbbmlkXT17dDE6bnVsbCx0MjpudWxsLHdpbm5lcjpudWxsfTsKICAgIGNvbnN0IG5leHQ9YnJhY2tldFN0YXRlW25pZF07CiAgICBjb25zdCBmZWVkZXJzPU9iamVjdC5lbnRyaWVzKEJQKS5maWx0ZXIoKFtrLHZdKT0+di5pbmNsdWRlcyhuaWQpKS5tYXAoKFtrXSk9PmspOwogICAgY29uc3QgZmk9ZmVlZGVycy5pbmRleE9mKG1hdGNoSWQpOwogICAgaWYoZmk9PT0wfHwoIW5leHQudDEmJm5leHQudDIhPT10ZWFtQ29kZSkpbmV4dC50MT10ZWFtQ29kZTtlbHNlIG5leHQudDI9dGVhbUNvZGU7CiAgfSk7CiAgLy8gM3JkIHBsYWNlCiAgaWYobWF0Y2hJZD09PSJTRi0xInx8bWF0Y2hJZD09PSJTRi0yIil7CiAgICBjb25zdCBzMT1icmFja2V0U3RhdGVbIlNGLTEiXSxzMj1icmFja2V0U3RhdGVbIlNGLTIiXTsKICAgIGlmKHMxPy53aW5uZXImJnMyPy53aW5uZXIpewogICAgICBicmFja2V0U3RhdGVbIjNQIl09e3QxOnMxLndpbm5lcj09PXMxLnQxP3MxLnQyOnMxLnQxLHQyOnMyLndpbm5lcj09PXMyLnQxP3MyLnQyOnMyLnQxLHdpbm5lcjpudWxsfTsKICAgIH0KICB9CiAgcmVuZGVyQnJhY2tldCgpOwogIGlmKG1hdGNoSWQ9PT0iRiImJmJyYWNrZXRTdGF0ZVsiRiJdPy53aW5uZXIpewogICAgY29uc3QgY2g9VChicmFja2V0U3RhdGVbIkYiXS53aW5uZXIpO2xhdW5jaENvbmZldHRpKCk7CiAgICBzZXRUaW1lb3V0KCgpPT57Y29uc3Qgcj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2Mtc2ltLXJlc3VsdHMiKTtyLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtyLmlubmVySFRNTD0oIjxkaXYgY2xhc3M9XCJ3Yy1jaGFtcFwiPjxpbWcgc3JjPVwiIisoZmwoY2guYykpKyJcIj48aDM+IisoY2gubikrIjwvaDM+PHA+WW91ciBwcmVkaWN0ZWQgV29ybGQgQ3VwIDIwMjYgQ2hhbXBpb24hPC9wPjwvZGl2PiIpO30sMzAwKTsKICB9Cn07CmZ1bmN0aW9uIGNsZWFyRG93bihtaWQpewogIGNvbnN0IG54PUJQW21pZF07aWYoIW54KXJldHVybjsKICBueC5mb3JFYWNoKG5pZD0+e2lmKGJyYWNrZXRTdGF0ZVtuaWRdKXtjb25zdCBmPU9iamVjdC5lbnRyaWVzKEJQKS5maWx0ZXIoKFtrLHZdKT0+di5pbmNsdWRlcyhuaWQpKS5tYXAoKFtrXSk9PmspO2NvbnN0IGZpPWYuaW5kZXhPZihtaWQpO2lmKGZpPT09MClicmFja2V0U3RhdGVbbmlkXS50MT1udWxsO2Vsc2UgYnJhY2tldFN0YXRlW25pZF0udDI9bnVsbDticmFja2V0U3RhdGVbbmlkXS53aW5uZXI9bnVsbDtjbGVhckRvd24obmlkKTt9fSk7CiAgaWYobWlkLnN0YXJ0c1dpdGgoIlNGIikpYnJhY2tldFN0YXRlWyIzUCJdPXt0MTpudWxsLHQyOm51bGwsd2lubmVyOm51bGx9Owp9CgovLyBQb3B1bGF0ZSBSMzIgZnJvbSBhbGxTdGFuZGluZ3MKZnVuY3Rpb24gcG9wdWxhdGVSMzIoKXsKICBjb25zdCB0aGlyZHM9W107T2JqZWN0LmVudHJpZXMoYWxsU3RhbmRpbmdzKS5mb3JFYWNoKChbZ2lkLHN0XSk9PntpZihzdFsyXSl0aGlyZHMucHVzaCh7Li4uc3RbMl0sZ2lkfSk7fSk7CiAgdGhpcmRzLnNvcnQoKGEsYik9PihiLnB0c3x8MCktKGEucHRzfHwwKXx8KGIuZ2R8fDApLShhLmdkfHwwKXx8KGIuZ2Z8fDApLShhLmdmfHwwKSk7CiAgY29uc3QgdGhNYXA9e307dGhpcmRzLnNsaWNlKDAsOCkuZm9yRWFjaCh0PT50aE1hcFt0LmdpZF09dC5jKTsKICBjb25zdCBnVD0oZ2lkLHBvcyk9Pntjb25zdCBzPWFsbFN0YW5kaW5nc1tnaWRdO3JldHVybiBzJiZzW3Bvc10\/c1twb3NdLmM6bnVsbDt9OwogIFNFRURTLmZvckVhY2gocz0+ewogICAgbGV0IHQxPW51bGwsdDI9bnVsbDsKICAgIGlmKHMuczEuc3RhcnRzV2l0aCgiMXN0ICIpKXQxPWdUKHMuczEuc2xpY2UoNCksMCk7ZWxzZSBpZihzLnMxLnN0YXJ0c1dpdGgoIjJuZCAiKSl0MT1nVChzLnMxLnNsaWNlKDQpLDEpOwogICAgaWYocy5zMi5zdGFydHNXaXRoKCIxc3QgIikpdDI9Z1Qocy5zMi5zbGljZSg0KSwwKTtlbHNlIGlmKHMuczIuc3RhcnRzV2l0aCgiMm5kICIpKXQyPWdUKHMuczIuc2xpY2UoNCksMSk7CiAgICBlbHNlIGlmKHMuczIuc3RhcnRzV2l0aCgiM3JkICIpKXtjb25zdCBncz1zLnMyLnNsaWNlKDQpLnNwbGl0KCIiKS5maWx0ZXIoZz0+dGhNYXBbZ10pO2lmKGdzLmxlbmd0aCl7Y29uc3QgcD1nc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqZ3MubGVuZ3RoKV07dDI9dGhNYXBbcF07ZGVsZXRlIHRoTWFwW3BdO319CiAgICBicmFja2V0U3RhdGVbcy5tXT17dDEsdDIsd2lubmVyOm51bGx9OwogIH0pOwp9CgovLyBTaW11bGF0ZSBncm91cHMKd2luZG93LndjMjZTaW1Hcm91cHM9ZnVuY3Rpb24oKXsKICBjb25zdCBncj1bXTtNQVRDSEVTLmZvckVhY2gobT0+e2NvbnN0IHI9c2ltTShUKG0uaCksVChtLmEpKTtnci5wdXNoKHtoOm0uaCxhOm0uYSxoZzpyLmhnLGFnOnIuYWcsZzptLmd9KTt9KTsKICBhbGxTdGFuZGluZ3M9e307R1JPVVBTLmZvckVhY2goZz0+e2FsbFN0YW5kaW5nc1tnLmlkXT1jYWxjU3QoZy5pZCxncik7fSk7CiAgR1JPVVBTLmZvckVhY2goZz0+e2NvbnN0IHJvd3M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgoIltkYXRhLWc9XCIiKyhnLmlkKSsiXCJdIikpO2FsbFN0YW5kaW5nc1tnLmlkXS5mb3JFYWNoKChzLGkpPT57aWYoIXJvd3NbaV0pcmV0dXJuO2NvbnN0IGM9cm93c1tpXS5xdWVyeVNlbGVjdG9yQWxsKCJ0ZCIpO2NbMF0udGV4dENvbnRlbnQ9aSsxO3Jvd3NbaV0uY2xhc3NOYW1lPWk8Mj8id2MtcnEiOmk9PT0yPyJ3Yy1yMyI6IndjLXJlIjtjWzJdLmlubmVySFRNTD0oIjxzdHJvbmc+Iisocy5wdHMpKyI8L3N0cm9uZz4iKTtjWzNdLnRleHRDb250ZW50PXMucDtjWzRdLnRleHRDb250ZW50PXMudztjWzVdLnRleHRDb250ZW50PXMuZDtjWzZdLnRleHRDb250ZW50PXMubDtjWzddLnRleHRDb250ZW50PXMuZ2Q+MD8iKyIrcy5nZDpzLmdkO30pO30pOwogIGdyb3Vwc1NpbXVsYXRlZD10cnVlO21hbnVhbE1vZGU9ZmFsc2U7CiAgcG9wdWxhdGVSMzIoKTsKICByZW5kZXJCcmFja2V0KCk7Cn07CgovLyBBdXRvIHNpbSBrbm9ja291dHMKd2luZG93LndjMjZTaW1BbGxLTz1mdW5jdGlvbigpewogIGlmKCFncm91cHNTaW11bGF0ZWQpcmV0dXJuOwogIGZ1bmN0aW9uIHNpbVJvdW5kKGlkcyl7aWRzLmZvckVhY2goaWQ9Pntjb25zdCBzdD1icmFja2V0U3RhdGVbaWRdO2lmKCFzdD8udDF8fCFzdD8udDJ8fHN0Lndpbm5lcilyZXR1cm47Y29uc3Qgcj1zaW1NKFQoc3QudDEpLFQoc3QudDIpLHRydWUpO3djMjZQaWNrKGlkLHIudy5jKTt9KTt9CiAgc2ltUm91bmQoT2JqZWN0LmtleXMoS08uUjMyKSk7CiAgc2V0VGltZW91dCgoKT0+e3NpbVJvdW5kKE9iamVjdC5rZXlzKEtPLlIxNikpOwogIHNldFRpbWVvdXQoKCk9PntzaW1Sb3VuZChPYmplY3Qua2V5cyhLTy5RRikpOwogIHNldFRpbWVvdXQoKCk9PntzaW1Sb3VuZChPYmplY3Qua2V5cyhLTy5TRikpOwogIHNldFRpbWVvdXQoKCk9PntzaW1Sb3VuZChbIjNQIiwiRiJdKTt9LDE1MCk7fSwxNTApO30sMTUwKTt9LDE1MCk7Cn07Cgp3aW5kb3cud2MyNlJlc2V0PWZ1bmN0aW9uKCl7CiAgZ3JvdXBzU2ltdWxhdGVkPWZhbHNlO2FsbFN0YW5kaW5ncz1udWxsO21hbnVhbE1vZGU9ZmFsc2U7CiAgT2JqZWN0LmtleXMoYnJhY2tldFN0YXRlKS5mb3JFYWNoKGs9PmRlbGV0ZSBicmFja2V0U3RhdGVba10pOwogIE9iamVjdC5rZXlzKG1hbnVhbFBpY2tzKS5mb3JFYWNoKGs9PmRlbGV0ZSBtYW51YWxQaWNrc1trXSk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjLXNpbS1yZXN1bHRzIikuc3R5bGUuZGlzcGxheT0ibm9uZSI7CiAgaW5pdEdyb3VwcygpO3JlbmRlckJyYWNrZXQoKTsKfTsKCi8vIFRlYW1zCmxldCB0Zj17czoiIixjZjoiYWxsIixzb3J0OiJyYW5raW5nIn07CmZ1bmN0aW9uIGluaXRUZWFtQ3RybHMoKXsKICBjb25zdCBjZnM9WyJhbGwiLCJVRUZBIiwiQ09OTUVCT0wiLCJDT05DQUNBRiIsIkNBRiIsIkFGQyIsIk9GQyJdOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy10ZWFtLWN0cmxzIikuaW5uZXJIVE1MPSI8aW5wdXQgY2xhc3M9XCJ3Yy10c2VhcmNoXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggdGVhbXMuLi5cIiBvbmlucHV0PVwid2MyNlRGKCdzJyx0aGlzLnZhbHVlLnRvTG93ZXJDYXNlKCkpXCI+IitjZnMubWFwKGM9PigiPGJ1dHRvbiBjbGFzcz1cIndjLWZidG4iKyhjPT09ImFsbCI\/IiBvbiI6IiIpKyJcIiBvbmNsaWNrPVwid2MyNlRGQygnIisoYykrIicsdGhpcylcIj4iKyhjPT09ImFsbCI\/IkFsbCI6YykrIjwvYnV0dG9uPiIpKS5qb2luKCIiKSsiPHNlbGVjdCBjbGFzcz1cIndjLWZzZWxcIiBvbmNoYW5nZT1cIndjMjZURignc29ydCcsdGhpcy52YWx1ZSlcIj48b3B0aW9uIHZhbHVlPVwicmFua2luZ1wiPkJ5IFJhbmtpbmc8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwibmFtZVwiPkJ5IE5hbWU8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiZ3JvdXBcIj5CeSBHcm91cDwvb3B0aW9uPjwvc2VsZWN0PiI7Cn0Kd2luZG93LndjMjZURj1mdW5jdGlvbihrLHYpe3RmW2tdPXY7cmVuZGVyVGVhbXMoKTt9Owp3aW5kb3cud2MyNlRGQz1mdW5jdGlvbihjLGJ0bil7dGYuY2Y9YztyZW5kZXJUZWFtcygpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN3Yy10ZWFtLWN0cmxzIC53Yy1mYnRuIikuZm9yRWFjaChiPT5iLmNsYXNzTGlzdC5yZW1vdmUoIm9uIikpO2J0bi5jbGFzc0xpc3QuYWRkKCJvbiIpO307CmZ1bmN0aW9uIHJlbmRlclRlYW1zKCl7CiAgbGV0IGxpc3Q9Wy4uLlRFQU1TXTsKICBpZih0Zi5zKWxpc3Q9bGlzdC5maWx0ZXIodD0+dC5uLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGYucykpOwogIGlmKHRmLmNmIT09ImFsbCIpbGlzdD1saXN0LmZpbHRlcih0PT50LmNmPT09dGYuY2YpOwogIGlmKHRmLnNvcnQ9PT0icmFua2luZyIpbGlzdC5zb3J0KChhLGIpPT5hLnItYi5yKTsKICBlbHNlIGlmKHRmLnNvcnQ9PT0ibmFtZSIpbGlzdC5zb3J0KChhLGIpPT5hLm4ubG9jYWxlQ29tcGFyZShiLm4pKTsKICBlbHNlIGxpc3Quc29ydCgoYSxiKT0+KHRnKGEuYyl8fCJaIikubG9jYWxlQ29tcGFyZSh0ZyhiLmMpfHwiWiIpKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MtdGVhbXMtZ3JpZCIpLmlubmVySFRNTD1saXN0Lm1hcCh0PT57CiAgICBjb25zdCBnPXRnKHQuYyk7CiAgICByZXR1cm4oIjxkaXYgY2xhc3M9XCJ3Yy10Y2FyZFwiPjxpbWcgY2xhc3M9XCJ3Yy10ZmxhZ1wiIHNyYz1cIiIrKGZsKHQuYykpKyJcIiBhbHQ9XCIiKyh0Lm4pKyJcIiBvbmVycm9yPVwidGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJ1wiPjxkaXYgY2xhc3M9XCJ3Yy10cmFua1wiPiIrKHQucikrIjwvZGl2PjxoMz4iKyh0Lm4pKyI8L2gzPjxkaXYgY2xhc3M9XCJ3Yy10bWV0YVwiPjxzcGFuIGNsYXNzPVwid2MtdHBpbGxcIiBzdHlsZT1cImJvcmRlci1jb2xvcjoiKyhDQ1t0LmNmXXx8InZhcigtLWJvcmRlcikiKSsiO2NvbG9yOiIrKENDW3QuY2ZdfHwidmFyKC0tdDIpIikrIlwiPiIrKHQuY2YpKyI8L3NwYW4+IisoZz8oIjxzcGFuIGNsYXNzPVwid2MtdHBpbGxcIiBzdHlsZT1cImJvcmRlci1jb2xvcjoiKyhHQ1tnXSkrIjtjb2xvcjoiKyhHQ1tnXSkrIlwiPkdycCAiKyhnKSsiPC9zcGFuPiIpOiIiKSsiPHNwYW4gY2xhc3M9XCJ3Yy10cGlsbFwiPiIrKE1hdGgucm91bmQodC5wKSkrIiBwdHM8L3NwYW4+PC9kaXY+PC9kaXY+Iik7CiAgfSkuam9pbigiIik7Cn0KCi8vIFZlbnVlcwpsZXQgdmY9ImFsbCI7CmZ1bmN0aW9uIGluaXRWZW51ZXMoKXsKICBjb25zdCBjYXA9T2JqZWN0LnZhbHVlcyhWRU5VRVMpLnJlZHVjZSgoYSx2KT0+YSt2LmNhcCwwKTsKICBjb25zdCBiYz17VVNBOjAsTUVYOjAsQ0FOOjB9O09iamVjdC52YWx1ZXMoVkVOVUVTKS5mb3JFYWNoKHY9PmJjW3YuY29dKyspOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy12ZW51ZS1zdGF0cyIpLmlubmVySFRNTD1bCiAgICBbbm0oY2FwKSwiVG90YWwgQ2FwYWNpdHkiXSxbYmMuVVNBLCJVU0EgVmVudWVzIl0sW2JjLk1FWCwiTWV4aWNvIFZlbnVlcyJdLFtiYy5DQU4sIkNhbmFkYSBWZW51ZXMiXQogIF0ubWFwKChbdixsXSk9PigiPGRpdiBjbGFzcz1cIndjLXN0YXRcIj48ZGl2IGNsYXNzPVwid2Mtc3RhdC1udW1cIj4iKyh2KSsiPC9kaXY+PGRpdiBjbGFzcz1cIndjLXN0YXQtbGFiZWxcIj4iKyhsKSsiPC9kaXY+PC9kaXY+IikpLmpvaW4oIiIpOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy12ZW51ZS1maWx0ZXJzIikuaW5uZXJIVE1MPVsiYWxsIiwiVVNBIiwiTUVYIiwiQ0FOIl0ubWFwKGM9PigiPGJ1dHRvbiBjbGFzcz1cIndjLWZidG4iKyhjPT09dmY\/IiBvbiI6IiIpKyJcIiBvbmNsaWNrPVwid2MyNlZGKCciKyhjKSsiJyx0aGlzKVwiPiIrKGM9PT0iYWxsIj8iQWxsIjpjPT09Ik1FWCI\/Ik1leGljbyI6Yz09PSJDQU4iPyJDYW5hZGEiOmMpKyI8L2J1dHRvbj4iKSkuam9pbigiIik7CiAgcmVuZGVyVmVudWVzKCk7Cn0Kd2luZG93LndjMjZWRj1mdW5jdGlvbihjLGJ0bil7dmY9Yztkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjd2MtdmVudWUtZmlsdGVycyAud2MtZmJ0biIpLmZvckVhY2goYj0+Yi5jbGFzc0xpc3QucmVtb3ZlKCJvbiIpKTtidG4uY2xhc3NMaXN0LmFkZCgib24iKTtyZW5kZXJWZW51ZXMoKTt9OwpmdW5jdGlvbiByZW5kZXJWZW51ZXMoKXsKICBsZXQgdnM9T2JqZWN0LnZhbHVlcyhWRU5VRVMpO2lmKHZmIT09ImFsbCIpdnM9dnMuZmlsdGVyKHY9PnYuY289PT12Zik7CiAgdnMuc29ydCgoYSxiKT0+Yi5jYXAtYS5jYXApOwogIGNvbnN0IG1jPXt9O01BVENIRVMuZm9yRWFjaChtPT57bWNbbS52XT0obWNbbS52XXx8MCkrMTt9KTsKICBPYmplY3QudmFsdWVzKEtPKS5mb3JFYWNoKHI9PntPYmplY3QudmFsdWVzKHIpLmZvckVhY2gobT0+e2lmKG0udiltY1ttLnZdPShtY1ttLnZdfHwwKSsxO30pO30pOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy12ZW51ZXMtZ3JpZCIpLmlubmVySFRNTD12cy5tYXAodj0+KCI8ZGl2IGNsYXNzPVwid2MtdmNhcmRcIj48aW1nIGNsYXNzPVwid2MtdmltZ1wiIHNyYz1cIiIrKFZJTUdbdi5pZF18fCIiKSsiXCIgYWx0PVwiIisodi5zZCkrIlwiIG9uZXJyb3I9XCJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9J2xpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tYmcyKSx2YXIoLS1iZzMpKSdcIj48ZGl2IGNsYXNzPVwid2MtdmluZm9cIj48aDM+Iisodi5zZCkrIjwvaDM+PGRpdiBjbGFzcz1cIndjLXZjaXR5XCI+PGltZyBzcmM9XCIiKyhjZmwodi5jbykpKyJcIj4iKyh2LmNpKSsiLCAiKyh2LnN0KSsiPC9kaXY+PGRpdiBjbGFzcz1cIndjLXZzdGF0c1wiPjxzcGFuPkNhcGFjaXR5OiA8c3Ryb25nIHN0eWxlPVwiY29sb3I6dmFyKC0tdDEpXCI+Iisobm0odi5jYXApKSsiPC9zdHJvbmc+PC9zcGFuPjxzcGFuPk1hdGNoZXM6IDxzdHJvbmcgc3R5bGU9XCJjb2xvcjp2YXIoLS10MSlcIj4iKyhtY1t2LmlkXXx8MCkrIjwvc3Ryb25nPjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj4iKSkuam9pbigiIik7Cn0KCi8vIFNpbXVsYXRvcgpmdW5jdGlvbiBwb2lzc29uKGwpe2xldCBMPU1hdGguZXhwKC1sKSxrPTAscD0xO2Rve2srKztwKj1NYXRoLnJhbmRvbSgpO313aGlsZShwPkwpO3JldHVybiBrLTE7fQpmdW5jdGlvbiBleHBTYyhhLGIpe3JldHVybiAxLygxK01hdGgucG93KDEwLChiLWEpLzQwMCkpO30KZnVuY3Rpb24gc2ltTShhLGIsa28pewogIGNvbnN0IGU9ZXhwU2MoYS5wKzMwLGIucCk7CiAgbGV0IGhnPXBvaXNzb24oLjQrZSoyLjIpLGFnPXBvaXNzb24oLjQrKDEtZSkqMi4yKTsKICBpZihrbyYmaGc9PT1hZyl7aGcrPXBvaXNzb24oZXhwU2MoYS5wLGIucCkqLjYpO2FnKz1wb2lzc29uKCgxLWV4cFNjKGEucCxiLnApKSouNik7aWYoaGc9PT1hZyl7TWF0aC5yYW5kb20oKTxlP2hnKys6YWcrKzt9fQogIHJldHVybntoZyxhZyx3OmhnPmFnP2E6YWc+aGc\/YjpudWxsfTsKfQpmdW5jdGlvbiBjYWxjU3QoZ2lkLHJlcyl7CiAgY29uc3QgZz1HUk9VUFMuZmluZChnPT5nLmlkPT09Z2lkKTtjb25zdCBzdD17fTsKICBnLnRjLmZvckVhY2goYz0+e3N0W2NdPXtjLHA6MCx3OjAsZDowLGw6MCxnZjowLGdhOjAsZ2Q6MCxwdHM6MH07fSk7CiAgcmVzLmZpbHRlcihyPT5yLmc9PT1naWQpLmZvckVhY2gocj0+ewogICAgY29uc3QgaD1zdFtyLmhdLGE9c3Rbci5hXTtpZighaHx8IWEpcmV0dXJuOwogICAgaC5wKys7YS5wKys7aC5nZis9ci5oZztoLmdhKz1yLmFnO2EuZ2YrPXIuYWc7YS5nYSs9ci5oZzsKICAgIGlmKHIuaGc+ci5hZyl7aC53Kys7aC5wdHMrPTM7YS5sKys7fWVsc2UgaWYoci5oZzxyLmFnKXthLncrKzthLnB0cys9MztoLmwrKzt9ZWxzZXtoLmQrKzthLmQrKztoLnB0cysrO2EucHRzKys7fQogICAgaC5nZD1oLmdmLWguZ2E7YS5nZD1hLmdmLWEuZ2E7CiAgfSk7CiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoc3QpLnNvcnQoKGEsYik9PmIucHRzLWEucHRzfHxiLmdkLWEuZ2R8fGIuZ2YtYS5nZnx8TWF0aC5yYW5kb20oKS0uNSk7Cn0KCi8vIE9sZCBhdXRvLXNpbSByZW1vdmVkIC0gYnJhY2tldCBpcyBub3cgaW50ZXJhY3RpdmUKCmZ1bmN0aW9uIGxhdW5jaENvbmZldHRpKCl7CiAgY29uc3QgY3M9WyIjZWY0NDQ0IiwiI2Y5NzMxNiIsIiNlYWIzMDgiLCIjMjJjNTVlIiwiIzNiODJmNiIsIiM4YjVjZjYiLCIjZWM0ODk5IiwiI2ZiYmYyNCJdOwogIGZvcihsZXQgaT0wO2k8NjA7aSsrKXsKICAgIGNvbnN0IGVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2VsLmNsYXNzTmFtZT0id2MtY29uZmV0dGkiOwogICAgZWwuc3R5bGUubGVmdD1NYXRoLnJhbmRvbSgpKjEwMCsidnciO2VsLnN0eWxlLnRvcD0iLTEwcHgiOwogICAgZWwuc3R5bGUuYmFja2dyb3VuZD1jc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqY3MubGVuZ3RoKV07CiAgICBlbC5zdHlsZS5hbmltYXRpb25EdXJhdGlvbj0oMitNYXRoLnJhbmRvbSgpKjMpKyJzIjsKICAgIGVsLnN0eWxlLmFuaW1hdGlvbkRlbGF5PU1hdGgucmFuZG9tKCkqMS41KyJzIjsKICAgIGVsLnN0eWxlLndpZHRoPSg0K01hdGgucmFuZG9tKCkqOCkrInB4IjtlbC5zdHlsZS5oZWlnaHQ9KDQrTWF0aC5yYW5kb20oKSo4KSsicHgiOwogICAgZWwuc3R5bGUuYm9yZGVyUmFkaXVzPU1hdGgucmFuZG9tKCk+LjU\/IjUwJSI6IjJweCI7CiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsKTtzZXRUaW1lb3V0KCgpPT5lbC5yZW1vdmUoKSw1MDAwKTsKICB9Cn0KCi8vIFN0YXRzCmZ1bmN0aW9uIGluaXRTdGF0cygpewogIGNvbnN0IGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1zdGF0cy1ncmlkIik7CiAgY29uc3QgcXQ9VEVBTVM7Y29uc3QgY2ZjPXt9O3F0LmZvckVhY2godD0+e2NmY1t0LmNmXT0oY2ZjW3QuY2ZdfHwwKSsxO30pO2NvbnN0IG1jPU1hdGgubWF4KC4uLk9iamVjdC52YWx1ZXMoY2ZjKSk7CiAgY29uc3QgZ3M9e307R1JPVVBTLmZvckVhY2goZz0+e2NvbnN0IHB0cz1nLnRjLm1hcChjPT5UKGMpLnApO2dzW2cuaWRdPXthdmc6cHRzLnJlZHVjZSgoYSxiKT0+YStiLDApL3B0cy5sZW5ndGgsdHM6Zy50Yy5tYXAoYz0+VChjKSl9O30pOwogIGNvbnN0IHNnPU9iamVjdC5lbnRyaWVzKGdzKS5zb3J0KChbLGFdLFssYl0pPT5iLmF2Zy1hLmF2Zyk7Y29uc3QgZ29kPXNnWzBdLGVhc3k9c2dbc2cubGVuZ3RoLTFdO2NvbnN0IG1hPU1hdGgubWF4KC4uLk9iamVjdC52YWx1ZXMoZ3MpLm1hcChnPT5nLmF2ZykpOwogIGxldCBoPSIiOwogIGgrPSI8ZGl2IGNsYXNzPVwid2Mtc2NhcmRcIj48aDM+VGVhbXMgYnkgQ29uZmVkZXJhdGlvbjwvaDM+IjsKICBPYmplY3QuZW50cmllcyhjZmMpLnNvcnQoKFssYV0sWyxiXSk9PmItYSkuZm9yRWFjaCgoW2NmLGN0XSk9PntoKz0oIjxkaXYgY2xhc3M9XCJ3Yy1iYXItcm93XCI+PGRpdiBjbGFzcz1cImxiXCI+IisoY2YpKyI8L2Rpdj48ZGl2IGNsYXNzPVwiYnJcIj48ZGl2IGNsYXNzPVwiYmlcIiBzdHlsZT1cIndpZHRoOiIrKGN0L21jKjEwMCkrIiU7YmFja2dyb3VuZDoiKyhDQ1tjZl18fCJ2YXIoLS1hY2NlbnQpIikrIlwiPiIrKGN0KSsiPC9kaXY+PC9kaXY+PC9kaXY+Iik7fSk7CiAgaCs9IjwvZGl2PiI7CiAgaCs9KCI8ZGl2IGNsYXNzPVwid2Mtc2NhcmRcIj48aDM+R3JvdXAgRGlmZmljdWx0eTwvaDM+PGRpdiBjbGFzcz1cIndjLWdvZFwiPjxoND5Hcm91cCBvZiBEZWF0aDogR3JvdXAgIisoZ29kWzBdKSsiPC9oND48ZGl2IGNsYXNzPVwid2MtZ29kLXRlYW1zXCI+IisoZ29kWzFdLnRzLm1hcCh0PT4oIjxzcGFuIGNsYXNzPVwid2MtZ29kLXRcIj48aW1nIHNyYz1cIiIrKGZsKHQuYykpKyJcIj4iKyh0Lm4pKyI8L3NwYW4+IikpLmpvaW4oIiIpKSsiPC9kaXY+PHAgc3R5bGU9XCJmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10Myk7bWFyZ2luLXRvcDo0cHhcIj5Bdmc6ICIrKE1hdGgucm91bmQoZ29kWzFdLmF2ZykpKyIgcHRzPC9wPjwvZGl2PjxkaXYgY2xhc3M9XCJ3Yy1lYXN5XCI+PGg0Pk1vc3QgT3BlbjogR3JvdXAgIisoZWFzeVswXSkrIjwvaDQ+PGRpdiBjbGFzcz1cIndjLWdvZC10ZWFtc1wiPiIrKGVhc3lbMV0udHMubWFwKHQ9PigiPHNwYW4gY2xhc3M9XCJ3Yy1nb2QtdFwiPjxpbWcgc3JjPVwiIisoZmwodC5jKSkrIlwiPiIrKHQubikrIjwvc3Bhbj4iKSkuam9pbigiIikpKyI8L2Rpdj48cCBzdHlsZT1cImZvbnQtc2l6ZToxMXB4O2NvbG9yOnZhcigtLXQzKTttYXJnaW4tdG9wOjRweFwiPkF2ZzogIisoTWF0aC5yb3VuZChlYXN5WzFdLmF2ZykpKyIgcHRzPC9wPjwvZGl2PjwvZGl2PiIpOwogIGgrPSI8ZGl2IGNsYXNzPVwid2Mtc2NhcmRcIj48aDM+QXZnIFN0cmVuZ3RoIGJ5IEdyb3VwPC9oMz4iOwogIHNnLmZvckVhY2goKFtnaWQsZ10pPT57aCs9KCI8ZGl2IGNsYXNzPVwid2MtYmFyLXJvd1wiPjxkaXYgY2xhc3M9XCJsYlwiIHN0eWxlPVwid2lkdGg6NTBweFwiPjxzcGFuIHN0eWxlPVwiZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOiIrKEdDW2dpZF0pKyI7bWFyZ2luLXJpZ2h0OjRweFwiPjwvc3Bhbj4iKyhnaWQpKyI8L2Rpdj48ZGl2IGNsYXNzPVwiYnJcIj48ZGl2IGNsYXNzPVwiYmlcIiBzdHlsZT1cIndpZHRoOiIrKGcuYXZnL21hKjEwMCkrIiU7YmFja2dyb3VuZDoiKyhHQ1tnaWRdKSsiXCI+IisoTWF0aC5yb3VuZChnLmF2ZykpKyI8L2Rpdj48L2Rpdj48L2Rpdj4iKTt9KTsKICBoKz0iPC9kaXY+IjsKICBoKz0iPGRpdiBjbGFzcz1cIndjLXNjYXJkXCI+PGgzPlRvcCAxMCBSYW5rZWQ8L2gzPiI7CiAgWy4uLnF0XS5zb3J0KChhLGIpPT5hLnItYi5yKS5zbGljZSgwLDEwKS5mb3JFYWNoKCh0LGkpPT57Y29uc3QgZz10Zyh0LmMpO2grPSgiPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtwYWRkaW5nOjVweCAwOyIrKGk8OT8iYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyKSI6IiIpKyJcIj48c3BhbiBzdHlsZT1cIndpZHRoOjIycHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWFjY2VudDIpO2ZvbnQtc2l6ZToxMnB4XCI+IisodC5yKSsiPC9zcGFuPjxpbWcgc3JjPVwiIisoZmwodC5jKSkrIlwiIHN0eWxlPVwid2lkdGg6MjRweDtoZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjJweFwiPjxzcGFuIHN0eWxlPVwiZmxleDoxO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMFwiPiIrKHQubikrIjwvc3Bhbj4iKyhnPygiPHNwYW4gY2xhc3M9XCJ3Yy10cGlsbFwiIHN0eWxlPVwiYm9yZGVyLWNvbG9yOiIrKEdDW2ddKSsiO2NvbG9yOiIrKEdDW2ddKSsiXCI+R3JwICIrKGcpKyI8L3NwYW4+Iik6IiIpKyI8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB4O2NvbG9yOnZhcigtLXQzKVwiPiIrKE1hdGgucm91bmQodC5wKSkrIjwvc3Bhbj48L2Rpdj4iKTt9KTsKICBoKz0iPC9kaXY+IjsKICBoKz0iPGRpdiBjbGFzcz1cIndjLXNjYXJkXCI+PGgzPkxhcmdlc3QgU3RhZGl1bXM8L2gzPiI7CiAgY29uc3Qgc3Y9T2JqZWN0LnZhbHVlcyhWRU5VRVMpLnNvcnQoKGEsYik9PmIuY2FwLWEuY2FwKTtjb25zdCBteGM9c3ZbMF0uY2FwOwogIHN2LnNsaWNlKDAsOCkuZm9yRWFjaCh2PT57aCs9KCI8ZGl2IGNsYXNzPVwid2MtYmFyLXJvd1wiPjxkaXYgY2xhc3M9XCJsYlwiIHN0eWxlPVwid2lkdGg6OTBweDtmb250LXNpemU6MTBweFwiPiIrKHYuY2kpKyI8L2Rpdj48ZGl2IGNsYXNzPVwiYnJcIj48ZGl2IGNsYXNzPVwiYmlcIiBzdHlsZT1cIndpZHRoOiIrKHYuY2FwL214YyoxMDApKyIlO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KVwiPiIrKG5tKHYuY2FwKSkrIjwvZGl2PjwvZGl2PjwvZGl2PiIpO30pOwogIGgrPSI8L2Rpdj4iOwogIGgrPSI8ZGl2IGNsYXNzPVwid2Mtc2NhcmRcIj48aDM+VG91cm5hbWVudCBUaW1lbGluZTwvaDM+IjsKICBbe2w6Ikdyb3VwIFN0YWdlIixkOiJKdW4gMTEtMjciLG06NzIsYzoidmFyKC0tYWNjZW50KSJ9LHtsOiJSb3VuZCBvZiAzMiIsZDoiSnVuIDI4LUp1bCAzIixtOjE2LGM6InZhcigtLWJsdWUpIn0se2w6IlJvdW5kIG9mIDE2IixkOiJKdWwgNC03IixtOjgsYzoidmFyKC0tcHVycGxlKSJ9LHtsOiJRdWFydGVyLUZpbmFscyIsZDoiSnVsIDktMTEiLG06NCxjOiJ2YXIoLS1waW5rKSJ9LHtsOiJTZW1pLUZpbmFscyIsZDoiSnVsIDE0LTE1IixtOjIsYzoidmFyKC0tb3JhbmdlKSJ9LHtsOiIzcmQgUGxhY2UiLGQ6Ikp1bCAxOCIsbToxLGM6InZhcigtLXRlYWwpIn0se2w6IkZpbmFsIixkOiJKdWwgMTkiLG06MSxjOiJ2YXIoLS1nb2xkKSJ9XS5mb3JFYWNoKHQ9PntoKz0oIjxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo2cHggMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpXCI+PGRpdiBzdHlsZT1cIndpZHRoOjhweDtoZWlnaHQ6OHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IisodC5jKSsiO2ZsZXgtc2hyaW5rOjBcIj48L2Rpdj48ZGl2IHN0eWxlPVwiZmxleDoxXCI+PGRpdiBzdHlsZT1cImZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMFwiPiIrKHQubCkrIjwvZGl2PjxkaXYgc3R5bGU9XCJmb250LXNpemU6MTBweDtjb2xvcjp2YXIoLS10MylcIj4iKyh0LmQpKyI8L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPVwiZm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwXCI+IisodC5tKSsiPC9kaXY+PC9kaXY+Iik7fSk7CiAgaCs9IjwvZGl2PiI7CiAgZWwuaW5uZXJIVE1MPWg7Cn0KCi8vIE5hdiBvYnNlcnZlcgpmdW5jdGlvbiBpbml0TmF2KCl7CiAgY29uc3Qgc2VjdHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lkXj0nd2MtJ10iKTsKICBjb25zdCBsaW5rcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIud2MtbmF2LWxpbmtzIGEiKTsKICBjb25zdCBvYnM9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGVzPT57ZXMuZm9yRWFjaChlPT57aWYoZS5pc0ludGVyc2VjdGluZyl7bGlua3MuZm9yRWFjaChsPT5sLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpKTtjb25zdCBsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoKCIud2MtbmF2LWxpbmtzIGFbaHJlZj1cIiMiKyhlLnRhcmdldC5pZCkrIlwiXSIpKTtpZihsKWwuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik7fX0pO30se3Jvb3RNYXJnaW46Ii0zMCUgMHB4IC0zMCUgMHB4In0pOwogIFsid2MtaGVybyIsIndjLWdyb3VwcyIsIndjLXNjaGVkdWxlIiwid2MtYnJhY2tldCIsIndjLXRlYW1zIiwid2MtdmVudWVzIiwid2Mtc2ltIiwid2Mtc3RhdHMiXS5mb3JFYWNoKGlkPT57Y29uc3QgZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO2lmKGVsKW9icy5vYnNlcnZlKGVsKTt9KTsKfQoKLy8gSU5JVCAtIHdhaXQgZm9yIERPTQpmdW5jdGlvbiB3YzI2Qm9vdCgpewogIGlmKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MyNi1odWIiKSl7c2V0VGltZW91dCh3YzI2Qm9vdCw1MCk7cmV0dXJuO30KICB0cnl7CiAgICB3YzI2SW5pdFRoZW1lKCk7aW5pdENEKCk7aW5pdEhlcm9TdGF0cygpO2luaXRHcm91cHMoKTtyZW5kZXJTY2goKTtyZW5kZXJCcmFja2V0KCk7aW5pdFRlYW1DdHJscygpO3JlbmRlclRlYW1zKCk7aW5pdFZlbnVlcygpO2luaXRTdGF0cygpO2luaXROYXYoKTsKICB9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcigiV0MyNiBpbml0IGVycm9yOiIsZSk7fQp9CmlmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT0ibG9hZGluZyIpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLHdjMjZCb290KTt9ZWxzZXt3YzI2Qm9vdCgpO30KfSkoKTsK<\/textarea><svg style=\"display:none\" onload=\"var t=document.getElementById(&quot;wc26-src&quot;);if(t){var s=document.createElement(&quot;script&quot;);s.textContent=atob(t.value);document.body.appendChild(s);t.remove();this.remove();}\"><\/svg>\n\n\n\n<div style=\"background-color: #f9f9f9; padding: 20px; border-radius: 8px; margin-bottom: 20px;\">\n<h3>Summary<\/h3>\n<p>In this guide, you will find everything you need to know about the 2026 World Cup. You can check the match schedule, see which cities are hosting, and learn how to get your tickets before the tournament kicks off.<\/p>\n<\/div>\n\n\n\n<div style=\"background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 20px; margin-bottom: 20px;\">\n<h3>TLDR<\/h3>\n<ul>\n<li>You will see 48 teams competing in 104 matches across 39 days.<\/li>\n<li>You can watch the games in 16 host cities across the USA, Mexico, and Canada.<\/li>\n<li>You need to grab your tickets through the official FIFA website starting 1 April 2026.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div style=\"background: linear-gradient(135deg, #07F288 0%, #7BF8BE 100%); color: #0a3d2e; padding: 25px; border-radius: 12px; margin-bottom: 30px;\">\n<h3>\ud83d\udccb Here is what you will learn in this guide:<\/h3>\n<ul style=\"list-style-type: none; padding-left: 0;\">\n<li style=\"margin-bottom: 10px;\">\ud83d\udc49 <a style=\"color: #0a3d2e; text-decoration: none; font-weight: bold;\" href=\"#what-is\">What is the FIFA World Cup 2026?<\/a><\/li>\n<li style=\"margin-bottom: 10px;\">\ud83d\udc49 <a style=\"color: #0a3d2e; text-decoration: none; font-weight: bold;\" href=\"#schedule\">World Cup 2026 Schedule and Dates<\/a><\/li>\n<li style=\"margin-bottom: 10px;\">\ud83d\udc49 <a style=\"color: #0a3d2e; text-decoration: none; font-weight: bold;\" href=\"#locations\">Where will the World Cup 2026 be held?<\/a><\/li>\n<li style=\"margin-bottom: 10px;\">\ud83d\udc49 <a style=\"color: #0a3d2e; text-decoration: none; font-weight: bold;\" href=\"#format\">How the World Cup 2026 Format Works<\/a><\/li>\n<li style=\"margin-bottom: 10px;\">\ud83d\udc49 <a style=\"color: #0a3d2e; text-decoration: none; font-weight: bold;\" href=\"#groups\">World Cup 2026 Groups and Teams<\/a><\/li>\n<li style=\"margin-bottom: 10px;\">\ud83d\udc49 <a style=\"color: #0a3d2e; text-decoration: none; font-weight: bold;\" href=\"#tickets\">How to Buy World Cup 2026 Tickets<\/a><\/li>\n<li style=\"margin-bottom: 10px;\">\ud83d\udc49 <a style=\"color: #0a3d2e; text-decoration: none; font-weight: bold;\" href=\"#html-block\">[HTML BLOCK PLACEHOLDER]<\/a><\/li>\n<li style=\"margin-bottom: 10px;\">\ud83d\udc49 <a style=\"color: #0a3d2e; text-decoration: none; font-weight: bold;\" href=\"#faq\">Frequently Asked Questions (FAQ)<\/a><\/li>\n<li style=\"margin-bottom: 10px;\">\ud83d\udc49 <a style=\"color: #0a3d2e; text-decoration: none; font-weight: bold;\" href=\"#recharge\">Get Ready for the World Cup with Recharge<\/a><\/li>\n<\/ul>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is\">What is the FIFA World Cup 2026?<\/h2>\n\n\n\n<p>The FIFA World Cup 2026 is the 23rd edition of the men&#8217;s international football tournament. It&#8217;s the largest edition in history, featuring 48 teams for the first time. This is also the first time three countries \u2013 the USA, Mexico, and Canada \u2013 are co-hosting the event.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schedule\">World Cup 2026 Schedule and Dates<\/h2>\n\n\n\n<p>The tournament lasts 39 days, featuring a record 104 matches. You can catch all the action starting this summer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-when-does-the-world-cup-2026-start\">When does the World Cup 2026 start?<\/h3>\n\n\n\n<p>The opening match is on 11 June 2026. The first game features Mexico playing against South Africa at the Estadio Azteca in Mexico City.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-when-is-the-world-cup-2026-final\">When is the World Cup 2026 final?<\/h3>\n\n\n\n<p>The final takes place on 19 July 2026. You can watch the ultimate match at MetLife Stadium in East Rutherford, New Jersey.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"locations\">Where will the World Cup 2026 be held?<\/h2>\n\n\n\n<p>The games will take place across three host countries: the USA, Mexico, and Canada. There are 16 host cities in total preparing for the massive crowds.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-cities-and-stadiums-will-host-the-games\">What cities and stadiums will host the games?<\/h3>\n\n\n\n<div style=\"flex-wrap: wrap; gap: 20px; margin-top: 15px; margin-bottom: 25px;\">\n<div style=\"flex: 1; min-width: 250px; background-color: #f0f4f8; padding: 20px; border-radius: 12px; border-top: 4px solid #005f9e;\"><strong>\ud83c\uddfa\ud83c\uddf8 USA (11 cities):<\/strong>\n<ul style=\"margin-top: 10px;\">\n<li>New York\/New Jersey (MetLife Stadium)<\/li>\n<li>Dallas (AT&amp;T Stadium)<\/li>\n<li>Atlanta (Mercedes-Benz Stadium)<\/li>\n<li>Los Angeles (SoFi Stadium)<\/li>\n<li>Houston, Boston, Miami, Kansas City, Philadelphia, Seattle, and the San Francisco Bay Area<\/li>\n<\/ul>\n<\/div>\n<div style=\"flex: 1; min-width: 250px; background-color: #f0f4f8; padding: 20px; border-radius: 12px; border-top: 4px solid #006847;\"><strong>\ud83c\uddf2\ud83c\uddfd Mexico (3 cities):<\/strong>\n<ul style=\"margin-top: 10px;\">\n<li>Mexico City (Estadio Azteca)<\/li>\n<li>Monterrey<\/li>\n<li>Guadalajara<\/li>\n<\/ul>\n<p><strong style=\"margin-top: 15px;\">\ud83c\udde8\ud83c\udde6 Canada (2 cities):<\/strong><\/p>\n<ul style=\"margin-top: 10px;\">\n<li>Vancouver<\/li>\n<li>Toronto<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"format\">How the World Cup 2026 Format Works<\/h2>\n\n\n\n<p>To understand how the World Cup 2026 works, you need to know about the new 48-team format. The teams are divided into 12 groups of four.<\/p>\n\n\n\n<div style=\"background-color: #e8f4fd; padding: 15px 20px; border-left: 4px solid #007bff; border-radius: 4px; margin: 20px 0;\">\ud83d\udca1 <strong>Format Tip:<\/strong> The top two teams from each group, plus the eight best third-place teams, will move on to a brand-new Round of 32. The teams will then play knockout matches until the final.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"groups\">World Cup 2026 Groups and Teams<\/h2>\n\n\n\n<p>All 48 teams have qualified as of March 2026. There are massive storylines to follow, like Lionel Messi and Cristiano Ronaldo playing in their record 6th World Cup. You&#8217;ll also see debut nations like Cape Verde, Cura\u00e7ao, and Uzbekistan.<\/p>\n\n\n\n<div style=\"background-color: #fdf8e4; padding: 20px; border-radius: 8px; margin: 20px 0;\">\n<p style=\"margin-top: 0; font-weight: bold;\">Here is a quick look at the most important groups:<\/p>\n<dl style=\"margin-bottom: 0;\">\n<dt><strong>Group A:<\/strong><\/dt>\n<dd style=\"margin-bottom: 10px;\">Includes host Mexico.<\/dd>\n<dt><strong>Group B &amp; Group D:<\/strong><\/dt>\n<dd style=\"margin-bottom: 10px;\">Includes hosts Canada and the USA.<\/dd>\n<dt><strong>Group I:<\/strong><\/dt>\n<dd>Known as the &#8220;Group of Death&#8221;, featuring France, Senegal, Norway, and Iraq.<\/dd>\n<\/dl>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"tickets\">How to Buy World Cup 2026 Tickets<\/h2>\n\n\n\n<p>In order to buy World Cup 2026 tickets, you need to visit the official FIFA website. The Last-Minute Sales phase starts on 1 April 2026.<\/p>\n\n\n\n<p>Group stage tickets start at $120, but high-demand matches and the final can cost thousands. Be careful with the unrestricted resale market and dynamic pricing, so always buy safely.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"faq\">Frequently Asked Questions (FAQ)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-is-the-world-cup-2026-cancelled\">Is the World Cup 2026 cancelled?<\/h3>\n\n\n\n<p>No, the World Cup 2026 is not cancelled. It&#8217;s happening as planned. There have been political tensions and travel visa debates, but the games are fully scheduled.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-why-are-three-countries-hosting-the-world-cup-2026\">Why are three countries hosting the World Cup 2026?<\/h3>\n\n\n\n<p>Expanding the tournament to 48 teams and 104 matches requires more stadiums and resources. Splitting the games across the USA, Mexico, and Canada makes it easier to manage.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-where-will-the-world-cup-2026-cricket-matches-be-held\">Where will the World Cup 2026 cricket matches be held?<\/h3>\n\n\n\n<p>The FIFA World Cup is for football. The ICC Men&#8217;s T20 Cricket World Cup 2026 is a completely separate event that will be hosted by India and Sri Lanka in early 2026.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-will-ronaldo-play-in-the-world-cup-2026\">Will Ronaldo play in the World Cup 2026?<\/h3>\n\n\n\n<p>Yes, Cristiano Ronaldo is confirmed to play for Portugal. This makes it his 6th World Cup appearance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-can-world-cup-2026-tickets-be-resold\">Can World Cup 2026 tickets be resold?<\/h3>\n\n\n\n<p>Yes, for the first time, FIFA is allowing an unrestricted resale market. However, prices on resale platforms can be very expensive.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"recharge\">Get Ready for the World Cup with Recharge<\/h2>\n\n\n\n<p>If you&#8217;re traveling to the games, remember to buy a prepaid mobile top-up or local SIM credit before landing in the USA, Canada, or Mexico. This helps you navigate host cities easily without huge roaming fees.<\/p>\n\n\n\n<p>Watching from home? You can buy digital gift cards to pay for streaming services and watch the matches without linking a credit card. If you&#8217;re a gaming fan, grab a gaming gift card to play the latest football video games while waiting for the next real-life match.<\/p>\n\n\n\n<div style=\"text-align: center; margin-top: 30px; margin-bottom: 20px;\"><a style=\"background-color: #000; color: #fff; padding: 15px 30px; text-decoration: none; border-radius: 25px; font-weight: bold;\" href=\"https:\/\/www.recharge.com\">Shop Prepaid Cards on Recharge<\/a><\/div>\n\n\n\n<div style=\"background: url('https:\/\/worldcup-hub-tnyusrhpzq-ew.a.run.app\/img\/hero-banner.png') center\/cover no-repeat; border-radius: 16px; overflow: hidden; margin: 24px 0 32px; border: 2px solid #e1b151;\">\n<div style=\"background: rgba(0,0,0,0.7); padding: 32px 28px; text-align: center;\">\n<p style=\"font-size: 13px; color: #ff6b6b; font-weight: 700; margin: 0 0 8px; text-transform: uppercase; letter-spacing: 2px;\">\ud83d\udd25 Limited Time \u2014 Ends July 19th<\/p>\n<p style=\"font-size: 28px; font-weight: 800; color: #e1b151; margin: 0 0 10px;\">\u26bd Predict &amp; Score 2026<\/p>\n<p style=\"font-size: 15px; color: #fff; margin: 0 0 6px;\">Predict World Cup match results and win up to <strong>30% off<\/strong> your next purchase!<\/p>\n<p style=\"font-size: 14px; color: rgba(255,255,255,0.7); margin: 0 0 20px;\">Plus: every prediction = an entry to win a <strong>\u20ac100 gift card<\/strong> \ud83c\udf81<\/p>\n<a href=\"https:\/\/wc2026.recharge.com?utm_source=blog&#038;utm_medium=cta&#038;utm_campaign=wc2026_predict_score&#038;utm_content=fifa-world-cup-2026-schedule-groups-tickets\" style=\"display: inline-block; background: linear-gradient(135deg, #e1b151, #ffbf4d); color: #1a1a2e; padding: 16px 48px; border-radius: 50px; font-size: 17px; font-weight: 800; text-decoration: none; box-shadow: 0 4px 15px rgba(225,177,81,0.4);\">\ud83c\udfc6 Play Now \u2014 It&#8217;s Free!<\/a>\n<p style=\"font-size: 11px; color: rgba(255,255,255,0.4); margin: 14px 0 0;\">Free to play \u2022 No purchase necessary \u2022 18+<\/p>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Discover everything you need to know about the FIFA World Cup 2026. Find the match schedule, host cities, groups, and how to buy your tickets safely.<\/p>\n","protected":false},"author":49,"featured_media":40142,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"cos_headline_score":0,"cos_seo_score":0,"cos_headline_text":"FIFA World Cup 2026: Schedule, Groups &amp; Simulations","cos_headline_has_been_analyzed":false,"cos_last_analyzed_headline":[],"_hreflang_tags":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[23],"tags":[],"class_list":["post-40110","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digital-lifestyle-old"],"jetpack_publicize_connections":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.4 (Yoast SEO v21.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>FIFA World Cup 2026: Schedule, Groups &amp; Simulations<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"FIFA World Cup 2026: Schedule, Groups &amp; Simulations\" \/>\n<meta property=\"og:description\" content=\"Discover everything you need to know about the FIFA World Cup 2026. Find the match schedule, host cities, groups, and how to buy your tickets safely.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets\" \/>\n<meta property=\"og:site_name\" content=\"Recharge Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-03T09:18:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-11T18:09:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/04\/30163448\/hero-image-en-27.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"669\" \/>\n\t<meta property=\"og:image:height\" content=\"373\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Conor Byrne\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets\",\"url\":\"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets\",\"name\":\"FIFA World Cup 2026: Schedule, Groups &amp; Simulations\",\"isPartOf\":{\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#website\"},\"datePublished\":\"2026-06-03T09:18:45+00:00\",\"dateModified\":\"2026-06-11T18:09:42+00:00\",\"author\":{\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/857508b94164c3cdc1f206b5c30d31a6\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.recharge.com\/blog\/en-gb\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"FIFA World Cup 2026: Schedule, Groups &amp; Simulations\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#website\",\"url\":\"https:\/\/www.recharge.com\/blog\/en-gb\/\",\"name\":\"Recharge Blog\",\"description\":\"Everything about online safety, smart spending &amp; your digital lifestyle.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.recharge.com\/blog\/en-gb\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/857508b94164c3cdc1f206b5c30d31a6\",\"name\":\"Conor Byrne\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/624bd2d0a75e67e81c16920493bcda346cb5cfd0f77cfdff3a72413de0254eeb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/624bd2d0a75e67e81c16920493bcda346cb5cfd0f77cfdff3a72413de0254eeb?s=96&d=mm&r=g\",\"caption\":\"Conor Byrne\"},\"description\":\"My passion for the e-commerce and fintech space started years ago with my first gaming console, giving me firsthand experience with the world of digital credit and top-ups. As a blog copywriter here at Recharge.com, I now get to use that insight to create clear, helpful content that makes navigating gift cards and online payments a breeze for our community.\",\"url\":\"https:\/\/www.recharge.com\/blog\/en-gb\/author\/conor-byrne\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"FIFA World Cup 2026: Schedule, Groups &amp; Simulations","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets","og_locale":"en_GB","og_type":"article","og_title":"FIFA World Cup 2026: Schedule, Groups &amp; Simulations","og_description":"Discover everything you need to know about the FIFA World Cup 2026. Find the match schedule, host cities, groups, and how to buy your tickets safely.","og_url":"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets","og_site_name":"Recharge Blog","article_published_time":"2026-06-03T09:18:45+00:00","article_modified_time":"2026-06-11T18:09:42+00:00","og_image":[{"width":669,"height":373,"url":"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/04\/30163448\/hero-image-en-27.jpg","type":"image\/jpeg"}],"author":"Conor Byrne","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets","url":"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets","name":"FIFA World Cup 2026: Schedule, Groups &amp; Simulations","isPartOf":{"@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#website"},"datePublished":"2026-06-03T09:18:45+00:00","dateModified":"2026-06-11T18:09:42+00:00","author":{"@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/857508b94164c3cdc1f206b5c30d31a6"},"breadcrumb":{"@id":"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/fifa-world-cup-2026-schedule-groups-tickets#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.recharge.com\/blog\/en-gb"},{"@type":"ListItem","position":2,"name":"FIFA World Cup 2026: Schedule, Groups &amp; Simulations"}]},{"@type":"WebSite","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#website","url":"https:\/\/www.recharge.com\/blog\/en-gb\/","name":"Recharge Blog","description":"Everything about online safety, smart spending &amp; your digital lifestyle.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.recharge.com\/blog\/en-gb\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/857508b94164c3cdc1f206b5c30d31a6","name":"Conor Byrne","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/624bd2d0a75e67e81c16920493bcda346cb5cfd0f77cfdff3a72413de0254eeb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/624bd2d0a75e67e81c16920493bcda346cb5cfd0f77cfdff3a72413de0254eeb?s=96&d=mm&r=g","caption":"Conor Byrne"},"description":"My passion for the e-commerce and fintech space started years ago with my first gaming console, giving me firsthand experience with the world of digital credit and top-ups. As a blog copywriter here at Recharge.com, I now get to use that insight to create clear, helpful content that makes navigating gift cards and online payments a breeze for our community.","url":"https:\/\/www.recharge.com\/blog\/en-gb\/author\/conor-byrne"}]}},"jetpack_featured_media_url":"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/04\/30163448\/hero-image-en-27.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts\/40110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/users\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/comments?post=40110"}],"version-history":[{"count":10,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts\/40110\/revisions"}],"predecessor-version":[{"id":42419,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts\/40110\/revisions\/42419"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/media\/40142"}],"wp:attachment":[{"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/media?parent=40110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/categories?post=40110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/tags?post=40110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}