{"id":40110,"date":"2026-04-30T16:11:24","date_gmt":"2026-04-30T14:11:24","guid":{"rendered":"https:\/\/www.recharge.com\/blog\/fifa-world-cup-2026-schedule-groups-tickets"},"modified":"2026-04-30T16:36:45","modified_gmt":"2026-04-30T14:36:45","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<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<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\/IiYjOTc4ODsiOiImIzk3OTA7IjsKfQoKLy8gPT09PT0gREFUQSAocGxheW9mZnMgcmVzb2x2ZWQpID09PT09CmNvbnN0IFRFQU1TPVsKe246Ik1leGljbyIsYzoiTUVYIixyOjE1LHA6MTY3NS43NSxjZjoiQ09OQ0FDQUYifSx7bjoiU291dGggQWZyaWNhIixjOiJSU0EiLHI6NTcscDoxNDgwLjE5LGNmOiJDQUYifSx7bjoiU291dGggS29yZWEiLGM6IktPUiIscjoyMyxwOjE2MDMuMzksY2Y6IkFGQyJ9LHtuOiJEZW5tYXJrIixjOiJERU4iLHI6MjEscDoxNjE0LjQzLGNmOiJVRUZBIn0sCntuOiJDYW5hZGEiLGM6IkNBTiIscjozNixwOjE1NTcuMDMsY2Y6IkNPTkNBQ0FGIn0se246Ikl0YWx5IixjOiJJVEEiLHI6MTIscDoxNzAyLjA2LGNmOiJVRUZBIn0se246IlFhdGFyIixjOiJRQVQiLHI6NDAscDoxNTMyLjA2LGNmOiJBRkMifSx7bjoiU3dpdHplcmxhbmQiLGM6IlNVSSIscjoxNyxwOjE2NTQuNjksY2Y6IlVFRkEifSwKe246IkJyYXppbCIsYzoiQlJBIixyOjUscDoxNzYwLjQ2LGNmOiJDT05NRUJPTCJ9LHtuOiJNb3JvY2NvIixjOiJNQVIiLHI6MTEscDoxNzEzLjEyLGNmOiJDQUYifSx7bjoiSGFpdGkiLGM6IkhBSSIscjo4MSxwOjEzNTUuNDIsY2Y6IkNPTkNBQ0FGIn0se246IlNjb3RsYW5kIixjOiJTQ08iLHI6NTQscDoxNDkyLjQyLGNmOiJVRUZBIn0sCntuOiJVU0EiLGM6IlVTQSIscjoxNCxwOjE2ODEuODgsY2Y6IkNPTkNBQ0FGIn0se246IlBhcmFndWF5IixjOiJQQVIiLHI6NDcscDoxNTA1LjAxLGNmOiJDT05NRUJPTCJ9LHtuOiJBdXN0cmFsaWEiLGM6IkFVUyIscjoyMixwOjE2MTEuMDgsY2Y6IkFGQyJ9LHtuOiJUdXJrZXkiLGM6IlRVUiIscjoyNixwOjE1ODQuNDksY2Y6IlVFRkEifSwKe246Ikdlcm1hbnkiLGM6IkdFUiIscjo5LHA6MTcyNC4xNSxjZjoiVUVGQSJ9LHtuOiJDdXJhY2FvIixjOiJDVVciLHI6ODQscDoxMzQ0LjI5LGNmOiJDT05DQUNBRiJ9LHtuOiJJdm9yeSBDb2FzdCIsYzoiQ0lWIixyOjM5LHA6MTUzOC41MixjZjoiQ0FGIn0se246IkVjdWFkb3IiLGM6IkVDVSIscjozMCxwOjE1NzQuNjMsY2Y6IkNPTk1FQk9MIn0sCntuOiJOZXRoZXJsYW5kcyIsYzoiTkVEIixyOjcscDoxNzU2LjI3LGNmOiJVRUZBIn0se246IkphcGFuIixjOiJKUE4iLHI6MTgscDoxNjUwLjEyLGNmOiJBRkMifSx7bjoiVWtyYWluZSIsYzoiVUtSIixyOjI0LHA6MTU5Ny40MyxjZjoiVUVGQSJ9LHtuOiJUdW5pc2lhIixjOiJUVU4iLHI6MzcscDoxNTU0LjU2LGNmOiJDQUYifSwKe246IkJlbGdpdW0iLGM6IkJFTCIscjo4LHA6MTczMC43MSxjZjoiVUVGQSJ9LHtuOiJFZ3lwdCIsYzoiRUdZIixyOjMzLHA6MTU2NC4xNCxjZjoiQ0FGIn0se246IklyYW4iLGM6IklSTiIscjoyMCxwOjE2MTcuMDIsY2Y6IkFGQyJ9LHtuOiJOZXcgWmVhbGFuZCIsYzoiTlpMIixyOjkzLHA6MTMxMi4zNyxjZjoiT0ZDIn0sCntuOiJTcGFpbiIsYzoiRVNQIixyOjEscDoxODc3LjE4LGNmOiJVRUZBIn0se246IkNhcGUgVmVyZGUiLGM6IkNQViIscjo3MixwOjEzOTIuMzYsY2Y6IkNBRiJ9LHtuOiJTYXVkaSBBcmFiaWEiLGM6IktTQSIscjo2MCxwOjE0NzUuMyxjZjoiQUZDIn0se246IlVydWd1YXkiLGM6IlVSVSIscjoxNixwOjE2NzIuNjIsY2Y6IkNPTk1FQk9MIn0sCntuOiJGcmFuY2UiLGM6IkZSQSIscjozLHA6MTg3MCxjZjoiVUVGQSJ9LHtuOiJTZW5lZ2FsIixjOiJTRU4iLHI6MTkscDoxNjQ4LjA3LGNmOiJDQUYifSx7bjoiSXJhcSIsYzoiSVJRIixyOjU1LHA6MTQ4OC4wMSxjZjoiQUZDIn0se246Ik5vcndheSIsYzoiTk9SIixyOjQ2LHA6MTUwNi42NSxjZjoiVUVGQSJ9LAp7bjoiQXJnZW50aW5hIixjOiJBUkciLHI6MixwOjE4NzMuMzMsY2Y6IkNPTk1FQk9MIn0se246IkFsZ2VyaWEiLGM6IkFMRyIscjozMixwOjE1NjYuMixjZjoiQ0FGIn0se246IkF1c3RyaWEiLGM6IkFVVCIscjoyNSxwOjE1ODkuMTYsY2Y6IlVFRkEifSx7bjoiSm9yZGFuIixjOiJKT1IiLHI6NjgscDoxNDA5LjExLGNmOiJBRkMifSwKe246IlBvcnR1Z2FsIixjOiJQT1IiLHI6NixwOjE3NjAuMzgsY2Y6IlVFRkEifSx7bjoiRFIgQ29uZ28iLGM6IkNPRCIscjo1MCxwOjE0OTcuMzQsY2Y6IkNBRiJ9LHtuOiJVemJla2lzdGFuIixjOiJVWkIiLHI6NjIscDoxNDY1LjYyLGNmOiJBRkMifSx7bjoiQ29sb21iaWEiLGM6IkNPTCIscjoxMyxwOjE3MDEuMyxjZjoiQ09OTUVCT0wifSwKe246IkVuZ2xhbmQiLGM6IkVORyIscjo0LHA6MTgzNC4xMixjZjoiVUVGQSJ9LHtuOiJDcm9hdGlhIixjOiJDUk8iLHI6MTAscDoxNzE2Ljg4LGNmOiJVRUZBIn0se246IkdoYW5hIixjOiJHSEEiLHI6NjcscDoxNDE3LjM3LGNmOiJDQUYifSx7bjoiUGFuYW1hIixjOiJQQU4iLHI6NDMscDoxNTIwLjI1LGNmOiJDT05DQUNBRiJ9Cl07Cgpjb25zdCBHUk9VUFM9Wwp7bjoiR3JvdXAgQSIsaWQ6IkEiLHRjOlsiTUVYIiwiUlNBIiwiS09SIiwiREVOIl19LHtuOiJHcm91cCBCIixpZDoiQiIsdGM6WyJDQU4iLCJJVEEiLCJRQVQiLCJTVUkiXX0sCntuOiJHcm91cCBDIixpZDoiQyIsdGM6WyJCUkEiLCJNQVIiLCJIQUkiLCJTQ08iXX0se246Ikdyb3VwIEQiLGlkOiJEIix0YzpbIlVTQSIsIlBBUiIsIkFVUyIsIlRVUiJdfSwKe246Ikdyb3VwIEUiLGlkOiJFIix0YzpbIkdFUiIsIkNVVyIsIkNJViIsIkVDVSJdfSx7bjoiR3JvdXAgRiIsaWQ6IkYiLHRjOlsiTkVEIiwiSlBOIiwiVUtSIiwiVFVOIl19LAp7bjoiR3JvdXAgRyIsaWQ6IkciLHRjOlsiQkVMIiwiRUdZIiwiSVJOIiwiTlpMIl19LHtuOiJHcm91cCBIIixpZDoiSCIsdGM6WyJFU1AiLCJDUFYiLCJLU0EiLCJVUlUiXX0sCntuOiJHcm91cCBJIixpZDoiSSIsdGM6WyJGUkEiLCJTRU4iLCJJUlEiLCJOT1IiXX0se246Ikdyb3VwIEoiLGlkOiJKIix0YzpbIkFSRyIsIkFMRyIsIkFVVCIsIkpPUiJdfSwKe246Ikdyb3VwIEsiLGlkOiJLIix0YzpbIlBPUiIsIkNPRCIsIlVaQiIsIkNPTCJdfSx7bjoiR3JvdXAgTCIsaWQ6IkwiLHRjOlsiRU5HIiwiQ1JPIiwiR0hBIiwiUEFOIl19Cl07Cgpjb25zdCBWRU5VRVM9eyJtZXhpY28tY2l0eSI6e2lkOiJtZXhpY28tY2l0eSIsY2k6Ik1leGljbyBDaXR5IixzdDoiQ0RNWCIsc2Q6IkVzdGFkaW8gQXp0ZWNhIixjbzoiTUVYIixjYXA6ODc1MjN9LCJndWFkYWxhamFyYSI6e2lkOiJndWFkYWxhamFyYSIsY2k6Ikd1YWRhbGFqYXJhIixzdDoiSmFsaXNjbyIsc2Q6IkVzdGFkaW8gQWtyb24iLGNvOiJNRVgiLGNhcDo0OTg1MH0sIm1vbnRlcnJleSI6e2lkOiJtb250ZXJyZXkiLGNpOiJNb250ZXJyZXkiLHN0OiJOdWV2byBMZVx1MDBmM24iLHNkOiJFc3RhZGlvIEJCVkEiLGNvOiJNRVgiLGNhcDo1MzUwMH0sInRvcm9udG8iOntpZDoidG9yb250byIsY2k6IlRvcm9udG8iLHN0OiJPbnRhcmlvIixzZDoiQk1PIEZpZWxkIixjbzoiQ0FOIixjYXA6MzAwMDB9LCJ2YW5jb3V2ZXIiOntpZDoidmFuY291dmVyIixjaToiVmFuY291dmVyIixzdDoiQnJpdGlzaCBDb2x1bWJpYSIsc2Q6IkJDIFBsYWNlIixjbzoiQ0FOIixjYXA6NTQ1MDB9LCJsb3MtYW5nZWxlcyI6e2lkOiJsb3MtYW5nZWxlcyIsY2k6IkxvcyBBbmdlbGVzIixzdDoiQ2FsaWZvcm5pYSIsc2Q6IlNvRmkgU3RhZGl1bSIsY286IlVTQSIsY2FwOjcwMjQwfSwibmV3LXlvcmsiOntpZDoibmV3LXlvcmsiLGNpOiJOZXcgWW9yay9OZXcgSmVyc2V5IixzdDoiTmV3IEplcnNleSIsc2Q6Ik1ldExpZmUgU3RhZGl1bSIsY286IlVTQSIsY2FwOjgyNTAwfSwiYm9zdG9uIjp7aWQ6ImJvc3RvbiIsY2k6IkJvc3RvbiIsc3Q6Ik1hc3NhY2h1c2V0dHMiLHNkOiJHaWxsZXR0ZSBTdGFkaXVtIixjbzoiVVNBIixjYXA6NjU4Nzh9LCJzYW4tZnJhbmNpc2NvIjp7aWQ6InNhbi1mcmFuY2lzY28iLGNpOiJTYW4gRnJhbmNpc2NvIEJheSBBcmVhIixzdDoiQ2FsaWZvcm5pYSIsc2Q6IkxldmkncyBTdGFkaXVtIixjbzoiVVNBIixjYXA6Njg1MDB9LCJob3VzdG9uIjp7aWQ6ImhvdXN0b24iLGNpOiJIb3VzdG9uIixzdDoiVGV4YXMiLHNkOiJOUkcgU3RhZGl1bSIsY286IlVTQSIsY2FwOjcyMjIwfSwicGhpbGFkZWxwaGlhIjp7aWQ6InBoaWxhZGVscGhpYSIsY2k6IlBoaWxhZGVscGhpYSIsc3Q6IlBlbm5zeWx2YW5pYSIsc2Q6IkxpbmNvbG4gRmluYW5jaWFsIEZpZWxkIixjbzoiVVNBIixjYXA6Njk3OTZ9LCJkYWxsYXMiOntpZDoiZGFsbGFzIixjaToiRGFsbGFzIixzdDoiVGV4YXMiLHNkOiJBVCZUIFN0YWRpdW0iLGNvOiJVU0EiLGNhcDo4MDAwMH0sImF0bGFudGEiOntpZDoiYXRsYW50YSIsY2k6IkF0bGFudGEiLHN0OiJHZW9yZ2lhIixzZDoiTWVyY2VkZXMtQmVueiBTdGFkaXVtIixjbzoiVVNBIixjYXA6NzEwMDB9LCJtaWFtaSI6e2lkOiJtaWFtaSIsY2k6Ik1pYW1pIixzdDoiRmxvcmlkYSIsc2Q6IkhhcmQgUm9jayBTdGFkaXVtIixjbzoiVVNBIixjYXA6NjUzMjZ9LCJzZWF0dGxlIjp7aWQ6InNlYXR0bGUiLGNpOiJTZWF0dGxlIixzdDoiV2FzaGluZ3RvbiIsc2Q6Ikx1bWVuIEZpZWxkIixjbzoiVVNBIixjYXA6NjkwMDB9LCJrYW5zYXMtY2l0eSI6e2lkOiJrYW5zYXMtY2l0eSIsY2k6IkthbnNhcyBDaXR5IixzdDoiTWlzc291cmkiLHNkOiJBcnJvd2hlYWQgU3RhZGl1bSIsY286IlVTQSIsY2FwOjc2NDE2fX07Cgpjb25zdCBNQVRDSEVTPVt7ZDoiMjAyNi0wNi0xMSIsdDoiMTU6MDAiLGg6Ik1FWCIsYToiUlNBIixnOiJBIix2OiJtZXhpY28tY2l0eSIsbWQ6MX0se2Q6IjIwMjYtMDYtMTEiLHQ6IjE4OjAwIixoOiJLT1IiLGE6IkRFTiIsZzoiQSIsdjoiZ3VhZGFsYWphcmEiLG1kOjF9LHtkOiIyMDI2LTA2LTEyIix0OiIxNTowMCIsaDoiQ0FOIixhOiJJVEEiLGc6IkIiLHY6InRvcm9udG8iLG1kOjF9LHtkOiIyMDI2LTA2LTEyIix0OiIxODowMCIsaDoiVVNBIixhOiJQQVIiLGc6IkQiLHY6Imxvcy1hbmdlbGVzIixtZDoxfSx7ZDoiMjAyNi0wNi0xMyIsdDoiMTI6MDAiLGg6IkJSQSIsYToiTUFSIixnOiJDIix2OiJuZXcteW9yayIsbWQ6MX0se2Q6IjIwMjYtMDYtMTMiLHQ6IjE1OjAwIixoOiJBVVMiLGE6IlRVUiIsZzoiRCIsdjoidmFuY291dmVyIixtZDoxfSx7ZDoiMjAyNi0wNi0xMyIsdDoiMTg6MDAiLGg6IkhBSSIsYToiU0NPIixnOiJDIix2OiJib3N0b24iLG1kOjF9LHtkOiIyMDI2LTA2LTEzIix0OiIyMTowMCIsaDoiUUFUIixhOiJTVUkiLGc6IkIiLHY6InNhbi1mcmFuY2lzY28iLG1kOjF9LHtkOiIyMDI2LTA2LTE0Iix0OiIxMjowMCIsaDoiR0VSIixhOiJDVVciLGc6IkUiLHY6ImhvdXN0b24iLG1kOjF9LHtkOiIyMDI2LTA2LTE0Iix0OiIxNTowMCIsaDoiQ0lWIixhOiJFQ1UiLGc6IkUiLHY6InBoaWxhZGVscGhpYSIsbWQ6MX0se2Q6IjIwMjYtMDYtMTQiLHQ6IjE4OjAwIixoOiJORUQiLGE6IkpQTiIsZzoiRiIsdjoiZGFsbGFzIixtZDoxfSx7ZDoiMjAyNi0wNi0xNCIsdDoiMjE6MDAiLGg6IlVLUiIsYToiVFVOIixnOiJGIix2OiJtb250ZXJyZXkiLG1kOjF9LHtkOiIyMDI2LTA2LTE1Iix0OiIxMjowMCIsaDoiRVNQIixhOiJDUFYiLGc6IkgiLHY6ImF0bGFudGEiLG1kOjF9LHtkOiIyMDI2LTA2LTE1Iix0OiIxNTowMCIsaDoiS1NBIixhOiJVUlUiLGc6IkgiLHY6Im1pYW1pIixtZDoxfSx7ZDoiMjAyNi0wNi0xNSIsdDoiMTg6MDAiLGg6IkJFTCIsYToiRUdZIixnOiJHIix2OiJzZWF0dGxlIixtZDoxfSx7ZDoiMjAyNi0wNi0xNSIsdDoiMjE6MDAiLGg6IklSTiIsYToiTlpMIixnOiJHIix2OiJsb3MtYW5nZWxlcyIsbWQ6MX0se2Q6IjIwMjYtMDYtMTYiLHQ6IjEyOjAwIixoOiJGUkEiLGE6IlNFTiIsZzoiSSIsdjoibmV3LXlvcmsiLG1kOjF9LHtkOiIyMDI2LTA2LTE2Iix0OiIxNTowMCIsaDoiSVJRIixhOiJOT1IiLGc6IkkiLHY6ImJvc3RvbiIsbWQ6MX0se2Q6IjIwMjYtMDYtMTYiLHQ6IjE4OjAwIixoOiJBUkciLGE6IkFMRyIsZzoiSiIsdjoia2Fuc2FzLWNpdHkiLG1kOjF9LHtkOiIyMDI2LTA2LTE2Iix0OiIyMTowMCIsaDoiQVVUIixhOiJKT1IiLGc6IkoiLHY6InNhbi1mcmFuY2lzY28iLG1kOjF9LHtkOiIyMDI2LTA2LTE3Iix0OiIxMjowMCIsaDoiRU5HIixhOiJDUk8iLGc6IkwiLHY6ImRhbGxhcyIsbWQ6MX0se2Q6IjIwMjYtMDYtMTciLHQ6IjE1OjAwIixoOiJHSEEiLGE6IlBBTiIsZzoiTCIsdjoidG9yb250byIsbWQ6MX0se2Q6IjIwMjYtMDYtMTciLHQ6IjE4OjAwIixoOiJQT1IiLGE6IkNPRCIsZzoiSyIsdjoiaG91c3RvbiIsbWQ6MX0se2Q6IjIwMjYtMDYtMTciLHQ6IjIxOjAwIixoOiJVWkIiLGE6IkNPTCIsZzoiSyIsdjoibWV4aWNvLWNpdHkiLG1kOjF9LHtkOiIyMDI2LTA2LTE4Iix0OiIxMjowMCIsaDoiREVOIixhOiJSU0EiLGc6IkEiLHY6ImF0bGFudGEiLG1kOjJ9LHtkOiIyMDI2LTA2LTE4Iix0OiIxNTowMCIsaDoiU1VJIixhOiJJVEEiLGc6IkIiLHY6Imxvcy1hbmdlbGVzIixtZDoyfSx7ZDoiMjAyNi0wNi0xOCIsdDoiMTg6MDAiLGg6IkNBTiIsYToiUUFUIixnOiJCIix2OiJ2YW5jb3V2ZXIiLG1kOjJ9LHtkOiIyMDI2LTA2LTE4Iix0OiIyMTowMCIsaDoiTUVYIixhOiJLT1IiLGc6IkEiLHY6Imd1YWRhbGFqYXJhIixtZDoyfSx7ZDoiMjAyNi0wNi0xOSIsdDoiMTI6MDAiLGg6IkJSQSIsYToiSEFJIixnOiJDIix2OiJwaGlsYWRlbHBoaWEiLG1kOjJ9LHtkOiIyMDI2LTA2LTE5Iix0OiIxNTowMCIsaDoiU0NPIixhOiJNQVIiLGc6IkMiLHY6ImJvc3RvbiIsbWQ6Mn0se2Q6IjIwMjYtMDYtMTkiLHQ6IjE4OjAwIixoOiJUVVIiLGE6IlBBUiIsZzoiRCIsdjoic2FuLWZyYW5jaXNjbyIsbWQ6Mn0se2Q6IjIwMjYtMDYtMTkiLHQ6IjIxOjAwIixoOiJVU0EiLGE6IkFVUyIsZzoiRCIsdjoic2VhdHRsZSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjAiLHQ6IjEyOjAwIixoOiJHRVIiLGE6IkNJViIsZzoiRSIsdjoidG9yb250byIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjAiLHQ6IjE1OjAwIixoOiJFQ1UiLGE6IkNVVyIsZzoiRSIsdjoia2Fuc2FzLWNpdHkiLG1kOjJ9LHtkOiIyMDI2LTA2LTIwIix0OiIxODowMCIsaDoiTkVEIixhOiJVS1IiLGc6IkYiLHY6ImhvdXN0b24iLG1kOjJ9LHtkOiIyMDI2LTA2LTIwIix0OiIyMTowMCIsaDoiVFVOIixhOiJKUE4iLGc6IkYiLHY6Im1vbnRlcnJleSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjEiLHQ6IjEyOjAwIixoOiJFU1AiLGE6IktTQSIsZzoiSCIsdjoiYXRsYW50YSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjEiLHQ6IjE1OjAwIixoOiJVUlUiLGE6IkNQViIsZzoiSCIsdjoibWlhbWkiLG1kOjJ9LHtkOiIyMDI2LTA2LTIxIix0OiIxODowMCIsaDoiQkVMIixhOiJJUk4iLGc6IkciLHY6Imxvcy1hbmdlbGVzIixtZDoyfSx7ZDoiMjAyNi0wNi0yMSIsdDoiMjE6MDAiLGg6Ik5aTCIsYToiRUdZIixnOiJHIix2OiJ2YW5jb3V2ZXIiLG1kOjJ9LHtkOiIyMDI2LTA2LTIyIix0OiIxMjowMCIsaDoiRlJBIixhOiJJUlEiLGc6IkkiLHY6InBoaWxhZGVscGhpYSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjIiLHQ6IjE1OjAwIixoOiJOT1IiLGE6IlNFTiIsZzoiSSIsdjoibmV3LXlvcmsiLG1kOjJ9LHtkOiIyMDI2LTA2LTIyIix0OiIxODowMCIsaDoiQVJHIixhOiJBVVQiLGc6IkoiLHY6ImRhbGxhcyIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjIiLHQ6IjIxOjAwIixoOiJKT1IiLGE6IkFMRyIsZzoiSiIsdjoic2FuLWZyYW5jaXNjbyIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjMiLHQ6IjEyOjAwIixoOiJFTkciLGE6IkdIQSIsZzoiTCIsdjoiYm9zdG9uIixtZDoyfSx7ZDoiMjAyNi0wNi0yMyIsdDoiMTU6MDAiLGg6IlBBTiIsYToiQ1JPIixnOiJMIix2OiJ0b3JvbnRvIixtZDoyfSx7ZDoiMjAyNi0wNi0yMyIsdDoiMTg6MDAiLGg6IlBPUiIsYToiVVpCIixnOiJLIix2OiJob3VzdG9uIixtZDoyfSx7ZDoiMjAyNi0wNi0yMyIsdDoiMjE6MDAiLGg6IkNPTCIsYToiQ09EIixnOiJLIix2OiJndWFkYWxhamFyYSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjQiLHQ6IjEyOjAwIixoOiJTQ08iLGE6IkJSQSIsZzoiQyIsdjoibWlhbWkiLG1kOjN9LHtkOiIyMDI2LTA2LTI0Iix0OiIxNTowMCIsaDoiTUFSIixhOiJIQUkiLGc6IkMiLHY6ImF0bGFudGEiLG1kOjN9LHtkOiIyMDI2LTA2LTI0Iix0OiIxODowMCIsaDoiQ0FOIixhOiJTVUkiLGc6IkIiLHY6InZhbmNvdXZlciIsbWQ6M30se2Q6IjIwMjYtMDYtMjQiLHQ6IjIxOjAwIixoOiJJVEEiLGE6IlFBVCIsZzoiQiIsdjoic2VhdHRsZSIsbWQ6M30se2Q6IjIwMjYtMDYtMjQiLHQ6IjE5OjAwIixoOiJNRVgiLGE6IkRFTiIsZzoiQSIsdjoibWV4aWNvLWNpdHkiLG1kOjN9LHtkOiIyMDI2LTA2LTI0Iix0OiIxOTowMCIsaDoiS09SIixhOiJSU0EiLGc6IkEiLHY6Im1vbnRlcnJleSIsbWQ6M30se2Q6IjIwMjYtMDYtMjUiLHQ6IjEyOjAwIixoOiJFQ1UiLGE6IkdFUiIsZzoiRSIsdjoibmV3LXlvcmsiLG1kOjN9LHtkOiIyMDI2LTA2LTI1Iix0OiIxNTowMCIsaDoiQ1VXIixhOiJDSVYiLGc6IkUiLHY6InBoaWxhZGVscGhpYSIsbWQ6M30se2Q6IjIwMjYtMDYtMjUiLHQ6IjE4OjAwIixoOiJUVU4iLGE6Ik5FRCIsZzoiRiIsdjoia2Fuc2FzLWNpdHkiLG1kOjN9LHtkOiIyMDI2LTA2LTI1Iix0OiIyMTowMCIsaDoiSlBOIixhOiJVS1IiLGc6IkYiLHY6ImRhbGxhcyIsbWQ6M30se2Q6IjIwMjYtMDYtMjUiLHQ6IjE5OjAwIixoOiJVU0EiLGE6IlRVUiIsZzoiRCIsdjoibG9zLWFuZ2VsZXMiLG1kOjN9LHtkOiIyMDI2LTA2LTI1Iix0OiIxOTowMCIsaDoiUEFSIixhOiJBVVMiLGc6IkQiLHY6InNhbi1mcmFuY2lzY28iLG1kOjN9LHtkOiIyMDI2LTA2LTI2Iix0OiIxMjowMCIsaDoiTk9SIixhOiJGUkEiLGc6IkkiLHY6ImJvc3RvbiIsbWQ6M30se2Q6IjIwMjYtMDYtMjYiLHQ6IjE1OjAwIixoOiJTRU4iLGE6IklSUSIsZzoiSSIsdjoidG9yb250byIsbWQ6M30se2Q6IjIwMjYtMDYtMjYiLHQ6IjE4OjAwIixoOiJOWkwiLGE6IkJFTCIsZzoiRyIsdjoidmFuY291dmVyIixtZDozfSx7ZDoiMjAyNi0wNi0yNiIsdDoiMjE6MDAiLGg6IkVHWSIsYToiSVJOIixnOiJHIix2OiJzZWF0dGxlIixtZDozfSx7ZDoiMjAyNi0wNi0yNiIsdDoiMTk6MDAiLGg6IlVSVSIsYToiRVNQIixnOiJIIix2OiJndWFkYWxhamFyYSIsbWQ6M30se2Q6IjIwMjYtMDYtMjYiLHQ6IjE5OjAwIixoOiJDUFYiLGE6IktTQSIsZzoiSCIsdjoiaG91c3RvbiIsbWQ6M30se2Q6IjIwMjYtMDYtMjciLHQ6IjEyOjAwIixoOiJQQU4iLGE6IkVORyIsZzoiTCIsdjoibmV3LXlvcmsiLG1kOjN9LHtkOiIyMDI2LTA2LTI3Iix0OiIxNTowMCIsaDoiQ1JPIixhOiJHSEEiLGc6IkwiLHY6InBoaWxhZGVscGhpYSIsbWQ6M30se2Q6IjIwMjYtMDYtMjciLHQ6IjE4OjAwIixoOiJKT1IiLGE6IkFSRyIsZzoiSiIsdjoiZGFsbGFzIixtZDozfSx7ZDoiMjAyNi0wNi0yNyIsdDoiMjE6MDAiLGg6IkFMRyIsYToiQVVUIixnOiJKIix2OiJrYW5zYXMtY2l0eSIsbWQ6M30se2Q6IjIwMjYtMDYtMjciLHQ6IjE5OjAwIixoOiJDT0wiLGE6IlBPUiIsZzoiSyIsdjoibWlhbWkiLG1kOjN9LHtkOiIyMDI2LTA2LTI3Iix0OiIxOTowMCIsaDoiQ09EIixhOiJVWkIiLGc6IksiLHY6ImF0bGFudGEiLG1kOjN9XTsKCmNvbnN0IEtPPXtSMzI6eyJSMzItMSI6e2Q6IjIwMjYtMDYtMjgiLHQ6IjEzOjAwIix2OiJsb3MtYW5nZWxlcyJ9LCJSMzItMiI6e2Q6IjIwMjYtMDYtMjkiLHQ6IjE2OjAwIix2OiJib3N0b24ifSwiUjMyLTMiOntkOiIyMDI2LTA2LTI5Iix0OiIxOTowMCIsdjoibW9udGVycmV5In0sIlIzMi00Ijp7ZDoiMjAyNi0wNi0yOSIsdDoiMjA6MDAiLHY6ImhvdXN0b24ifSwiUjMyLTUiOntkOiIyMDI2LTA2LTMwIix0OiIxMzowMCIsdjoibmV3LXlvcmsifSwiUjMyLTYiOntkOiIyMDI2LTA2LTMwIix0OiIxNjowMCIsdjoiZGFsbGFzIn0sIlIzMi03Ijp7ZDoiMjAyNi0wNi0zMCIsdDoiMTk6MDAiLHY6Im1leGljby1jaXR5In0sIlIzMi04Ijp7ZDoiMjAyNi0wNy0wMSIsdDoiMTM6MDAiLHY6ImF0bGFudGEifSwiUjMyLTkiOntkOiIyMDI2LTA3LTAxIix0OiIxNjowMCIsdjoic2FuLWZyYW5jaXNjbyJ9LCJSMzItMTAiOntkOiIyMDI2LTA3LTAxIix0OiIxOTowMCIsdjoic2VhdHRsZSJ9LCJSMzItMTEiOntkOiIyMDI2LTA3LTAyIix0OiIxMzowMCIsdjoidG9yb250byJ9LCJSMzItMTIiOntkOiIyMDI2LTA3LTAyIix0OiIxNjowMCIsdjoibG9zLWFuZ2VsZXMifSwiUjMyLTEzIjp7ZDoiMjAyNi0wNy0wMiIsdDoiMTk6MDAiLHY6InZhbmNvdXZlciJ9LCJSMzItMTQiOntkOiIyMDI2LTA3LTAzIix0OiIxMzowMCIsdjoibWlhbWkifSwiUjMyLTE1Ijp7ZDoiMjAyNi0wNy0wMyIsdDoiMTY6MDAiLHY6ImthbnNhcy1jaXR5In0sIlIzMi0xNiI6e2Q6IjIwMjYtMDctMDMiLHQ6IjE5OjAwIix2OiJkYWxsYXMifX0sUjE2OnsiUjE2LTEiOntkOiIyMDI2LTA3LTA0Iix0OiIxMzowMCIsdjoicGhpbGFkZWxwaGlhIn0sIlIxNi0yIjp7ZDoiMjAyNi0wNy0wNCIsdDoiMTc6MDAiLHY6ImhvdXN0b24ifSwiUjE2LTMiOntkOiIyMDI2LTA3LTA1Iix0OiIxMzowMCIsdjoibmV3LXlvcmsifSwiUjE2LTQiOntkOiIyMDI2LTA3LTA1Iix0OiIxNzowMCIsdjoibWV4aWNvLWNpdHkifSwiUjE2LTUiOntkOiIyMDI2LTA3LTA2Iix0OiIxMzowMCIsdjoiZGFsbGFzIn0sIlIxNi02Ijp7ZDoiMjAyNi0wNy0wNiIsdDoiMTc6MDAiLHY6InNlYXR0bGUifSwiUjE2LTciOntkOiIyMDI2LTA3LTA3Iix0OiIxMzowMCIsdjoiYXRsYW50YSJ9LCJSMTYtOCI6e2Q6IjIwMjYtMDctMDciLHQ6IjE3OjAwIix2OiJ2YW5jb3V2ZXIifX0sUUY6eyJRRi0xIjp7ZDoiMjAyNi0wNy0wOSIsdDoiMTU6MDAiLHY6ImJvc3RvbiJ9LCJRRi0yIjp7ZDoiMjAyNi0wNy0xMCIsdDoiMTg6MDAiLHY6Imxvcy1hbmdlbGVzIn0sIlFGLTMiOntkOiIyMDI2LTA3LTExIix0OiIxNTowMCIsdjoibWlhbWkifSwiUUYtNCI6e2Q6IjIwMjYtMDctMTEiLHQ6IjE4OjAwIix2OiJrYW5zYXMtY2l0eSJ9fSxTRjp7IlNGLTEiOntkOiIyMDI2LTA3LTE0Iix0OiIxOTowMCIsdjoiZGFsbGFzIn0sIlNGLTIiOntkOiIyMDI2LTA3LTE1Iix0OiIxOTowMCIsdjoiYXRsYW50YSJ9fSxGOnsiM1AiOntkOiIyMDI2LTA3LTE4Iix0OiIxNTowMCIsdjoibWlhbWkifSwiRiI6e2Q6IjIwMjYtMDctMTkiLHQ6IjE1OjAwIix2OiJuZXcteW9yayJ9fX07Cgpjb25zdCBTRUVEUz1be206IlIzMi0xIixzMToiMm5kIEEiLHMyOiIybmQgQiJ9LHttOiJSMzItMiIsczE6IjFzdCBFIixzMjoiM3JkIEFCQ0RGIn0se206IlIzMi0zIixzMToiMXN0IEYiLHMyOiIybmQgQyJ9LHttOiJSMzItNCIsczE6IjFzdCBDIixzMjoiMm5kIEYifSx7bToiUjMyLTUiLHMxOiIxc3QgSSIsczI6IjNyZCBDREZHSCJ9LHttOiJSMzItNiIsczE6IjJuZCBFIixzMjoiMm5kIEkifSx7bToiUjMyLTciLHMxOiIxc3QgQSIsczI6IjNyZCBDRUZISSJ9LHttOiJSMzItOCIsczE6IjFzdCBMIixzMjoiM3JkIEVISUpLIn0se206IlIzMi05IixzMToiMXN0IEQiLHMyOiIzcmQgQkVGSUoifSx7bToiUjMyLTEwIixzMToiMXN0IEciLHMyOiIzcmQgQUVISUoifSx7bToiUjMyLTExIixzMToiMm5kIEsiLHMyOiIybmQgTCJ9LHttOiJSMzItMTIiLHMxOiIxc3QgSCIsczI6IjJuZCBKIn0se206IlIzMi0xMyIsczE6IjFzdCBCIixzMjoiM3JkIEVGR0lKIn0se206IlIzMi0xNCIsczE6IjFzdCBKIixzMjoiMm5kIEgifSx7bToiUjMyLTE1IixzMToiMXN0IEsiLHMyOiIzcmQgREVJSkwifSx7bToiUjMyLTE2IixzMToiMm5kIEQiLHMyOiIybmQgRyJ9XTsKCmNvbnN0IEJQPXsiUjMyLTEiOlsiUjE2LTIiXSwiUjMyLTIiOlsiUjE2LTEiXSwiUjMyLTMiOlsiUjE2LTIiXSwiUjMyLTQiOlsiUjE2LTMiXSwiUjMyLTUiOlsiUjE2LTEiXSwiUjMyLTYiOlsiUjE2LTMiXSwiUjMyLTciOlsiUjE2LTQiXSwiUjMyLTgiOlsiUjE2LTQiXSwiUjMyLTkiOlsiUjE2LTYiXSwiUjMyLTEwIjpbIlIxNi02Il0sIlIzMi0xMSI6WyJSMTYtNSJdLCJSMzItMTIiOlsiUjE2LTUiXSwiUjMyLTEzIjpbIlIxNi04Il0sIlIzMi0xNCI6WyJSMTYtNyJdLCJSMzItMTUiOlsiUjE2LTgiXSwiUjMyLTE2IjpbIlIxNi03Il0sIlIxNi0xIjpbIlFGLTEiXSwiUjE2LTIiOlsiUUYtMSJdLCJSMTYtMyI6WyJRRi0zIl0sIlIxNi00IjpbIlFGLTMiXSwiUjE2LTUiOlsiUUYtMiJdLCJSMTYtNiI6WyJRRi0yIl0sIlIxNi03IjpbIlFGLTQiXSwiUjE2LTgiOlsiUUYtNCJdLCJRRi0xIjpbIlNGLTEiXSwiUUYtMiI6WyJTRi0xIl0sIlFGLTMiOlsiU0YtMiJdLCJRRi00IjpbIlNGLTIiXSwiU0YtMSI6WyJGIl0sIlNGLTIiOlsiRiJdfTsKCmNvbnN0IElTTz17TUVYOiJteCIsUlNBOiJ6YSIsS09SOiJrciIsREVOOiJkayIsQ0FOOiJjYSIsSVRBOiJpdCIsUUFUOiJxYSIsU1VJOiJjaCIsQlJBOiJiciIsTUFSOiJtYSIsSEFJOiJodCIsU0NPOiJnYi1zY3QiLFVTQToidXMiLFBBUjoicHkiLEFVUzoiYXUiLFRVUjoidHIiLEdFUjoiZGUiLENVVzoiY3ciLENJVjoiY2kiLEVDVToiZWMiLE5FRDoibmwiLEpQTjoianAiLFVLUjoidWEiLFRVTjoidG4iLEJFTDoiYmUiLEVHWToiZWciLElSTjoiaXIiLE5aTDoibnoiLEVTUDoiZXMiLENQVjoiY3YiLEtTQToic2EiLFVSVToidXkiLEZSQToiZnIiLFNFTjoic24iLElSUToiaXEiLE5PUjoibm8iLEFSRzoiYXIiLEFMRzoiZHoiLEFVVDoiYXQiLEpPUjoiam8iLFBPUjoicHQiLENPRDoiY2QiLFVaQjoidXoiLENPTDoiY28iLEVORzoiZ2ItZW5nIixDUk86ImhyIixHSEE6ImdoIixQQU46InBhIn07Cgpjb25zdCBWSU1HPXsia2Fuc2FzLWNpdHkiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMjAyNC93YzI2LXZlbnVlLWthbnNhc2NpdHktMS5wbmciLCJuZXcteW9yayI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMyMDE0L3djMjYtdmVudWUtbmV3eW9yay0xLmpwZyIsImF0bGFudGEiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTQ1NS93YzI2LXZlbnVlLWF0bGFudGEtMS5qcGciLCJ2YW5jb3V2ZXIiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTQzOS93YzI2LXZlbnVlLXZhbmNvdXZlci5qcGciLCJ0b3JvbnRvIjoiaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvMzAxMzE0MzIvd2MyNi12ZW51ZS10b3JvbnRvLmpwZyIsInNlYXR0bGUiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTQyMS93YzI2LXZlbnVlLXNlYXR0bGUuanBnIiwic2FuLWZyYW5jaXNjbyI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMxNDEzL3djMjYtdmVudWUtc2FuLWZyYW5jaXNjby5qcGciLCJwaGlsYWRlbHBoaWEiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTQwNS93YzI2LXZlbnVlLXBoaWxhZGVscGhpYS5qcGciLCJtb250ZXJyZXkiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTM1NC93YzI2LXZlbnVlLW1vbnRlcnJleS5qcGciLCJtaWFtaSI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMxMzQ0L3djMjYtdmVudWUtbWlhbWkuanBnIiwibWV4aWNvLWNpdHkiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTMzMy93YzI2LXZlbnVlLW1leGljby1jaXR5LmpwZyIsImxvcy1hbmdlbGVzIjoiaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvMzAxMzEzMjEvd2MyNi12ZW51ZS1sb3MtYW5nZWxlcy5qcGciLCJob3VzdG9uIjoiaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvMzAxMzEzMTIvd2MyNi12ZW51ZS1ob3VzdG9uLmpwZyIsImd1YWRhbGFqYXJhIjoiaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvMzAxMzEyNTkvd2MyNi12ZW51ZS1ndWFkYWxhamFyYS5qcGciLCJkYWxsYXMiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTI0My93YzI2LXZlbnVlLWRhbGxhcy5qcGciLCJib3N0b24iOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTIzNi93YzI2LXZlbnVlLWJvc3Rvbi5qcGcifTsKY29uc3QgR0M9e0E6IiNlZjQ0NDQiLEI6IiNmOTczMTYiLEM6IiNlYWIzMDgiLEQ6IiMyMmM1NWUiLEU6IiMxNGI4YTYiLEY6IiMzYjgyZjYiLEc6IiM2MzY2ZjEiLEg6IiM4YjVjZjYiLEk6IiNhODU1ZjciLEo6IiNlYzQ4OTkiLEs6IiNmNDNmNWUiLEw6IiMwNmI2ZDQifTsKY29uc3QgQ0M9e1VFRkE6IiMzYjgyZjYiLENPTk1FQk9MOiIjMjJjNTVlIixDT05DQUNBRjoiI2Y5NzMxNiIsQ0FGOiIjZWFiMzA4IixBRkM6IiNlZjQ0NDQiLE9GQzoiIzA2YjZkNCJ9OwoKLy8gVXRpbHMKY29uc3QgVE09bmV3IE1hcCgpO1RFQU1TLmZvckVhY2godD0+VE0uc2V0KHQuYyx0KSk7CmZ1bmN0aW9uIFQoYyl7cmV0dXJuIFRNLmdldChjKXx8e246YyxjLHI6OTk5LHA6MTMwMCxjZjoiPyJ9O30KZnVuY3Rpb24gZmwoYyl7Y29uc3QgaT1JU09bY107cmV0dXJuIGk\/KCJodHRwczovL2ZsYWdjZG4uY29tL3c4MC8iKyhpKSsiLnBuZyIpOiIiO30KZnVuY3Rpb24gY2ZsKGMpe3JldHVybigiaHR0cHM6Ly9mbGFnY2RuLmNvbS93NDAvIisoe01FWDoibXgiLENBTjoiY2EiLFVTQToidXMifVtjXXx8InVuIikrIi5wbmciKTt9CmZ1bmN0aW9uIGZkKGQpe3JldHVybiBuZXcgRGF0ZShkKyJUMTI6MDA6MDAiKS50b0xvY2FsZURhdGVTdHJpbmcoImVuLVVTIix7d2Vla2RheToic2hvcnQiLG1vbnRoOiJzaG9ydCIsZGF5OiJudW1lcmljIn0pO30KZnVuY3Rpb24gZnQodCl7Y29uc3RbaCxtXT10LnNwbGl0KCI6Iik7Y29uc3QgaHI9K2g7cmV0dXJuKChocj4xMj9oci0xMjpocnx8MTIpKyI6IisobSkrIiAiKyhocj49MTI\/IlBNIjoiQU0iKSk7fQpmdW5jdGlvbiBubShuKXtyZXR1cm4gbi50b0xvY2FsZVN0cmluZygpO30KZnVuY3Rpb24gdGcoYyl7Y29uc3QgZz1HUk9VUFMuZmluZChnPT5nLnRjLmluY2x1ZGVzKGMpKTtyZXR1cm4gZz9nLmlkOm51bGw7fQoKLy8gQ291bnRkb3duCmZ1bmN0aW9uIGluaXRDRCgpewogIGNvbnN0IHRhcmdldD1uZXcgRGF0ZSgiMjAyNi0wNi0xMVQyMTowMDowMFoiKS5nZXRUaW1lKCk7CiAgZnVuY3Rpb24gdXBkKCl7CiAgICBjb25zdCBkaWZmPU1hdGgubWF4KDAsdGFyZ2V0LURhdGUubm93KCkpOwogICAgY29uc3QgZD1NYXRoLmZsb29yKGRpZmYvODY0ZTUpLGg9TWF0aC5mbG9vcihkaWZmJTg2NGU1LzM2ZTUpLG09TWF0aC5mbG9vcihkaWZmJTM2ZTUvNmU0KSxzPU1hdGguZmxvb3IoZGlmZiU2ZTQvMWUzKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1jb3VudGRvd24iKS5pbm5lckhUTUw9W1siRGF5cyIsZF0sWyJIb3VycyIsaF0sWyJNaW4iLG1dLFsiU2VjIixzXV0ubWFwKChbbCx2XSk9PigiPGRpdiBjbGFzcz1cIndjLWNkLWJveFwiPjxkaXYgY2xhc3M9XCJ3Yy1jZC1udW1cIj4iKyh2KSsiPC9kaXY+PGRpdiBjbGFzcz1cIndjLWNkLWxhYmVsXCI+IisobCkrIjwvZGl2PjwvZGl2PiIpKS5qb2luKCIiKTsKICB9CiAgdXBkKCk7c2V0SW50ZXJ2YWwodXBkLDEwMDApOwp9CgovLyBIZXJvIHN0YXRzCmZ1bmN0aW9uIGluaXRIZXJvU3RhdHMoKXsKICBjb25zdCBjYXA9T2JqZWN0LnZhbHVlcyhWRU5VRVMpLnJlZHVjZSgoYSx2KT0+YSt2LmNhcCwwKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MtaGVyby1zdGF0cyIpLmlubmVySFRNTD1bWyI0OCIsIlRlYW1zIl0sWyIxNiIsIlZlbnVlcyJdLFsiMTA0IiwiTWF0Y2hlcyJdLFtubShjYXApLCJUb3RhbCBDYXBhY2l0eSJdXS5tYXAoKFt2LGxdKT0+KCI8ZGl2IGNsYXNzPVwid2Mtc3RhdFwiPjxkaXYgY2xhc3M9XCJ3Yy1zdGF0LW51bVwiPiIrKHYpKyI8L2Rpdj48ZGl2IGNsYXNzPVwid2Mtc3RhdC1sYWJlbFwiPiIrKGwpKyI8L2Rpdj48L2Rpdj4iKSkuam9pbigiIik7Cn0KCi8vIEdyb3VwcwpmdW5jdGlvbiBpbml0R3JvdXBzKCl7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjLWdyb3Vwcy1ncmlkIikuaW5uZXJIVE1MPUdST1VQUy5tYXAoZz0+ewogICAgY29uc3QgdGVhbXM9Zy50Yy5tYXAoYz0+VChjKSkuc29ydCgoYSxiKT0+YS5yLWIucik7CiAgICBjb25zdCBwbT1tYW51YWxNb2RlJiYhZ3JvdXBzU2ltdWxhdGVkOwogICAgY29uc3QgdGJsQ2xzPXBtPyJ3Yy1ndGFibGUgcGlja21vZGUiOiJ3Yy1ndGFibGUiOwogICAgY29uc3QgcGlja3M9bWFudWFsUGlja3NbZy5pZF18fFtdOwogICAgcmV0dXJuKCI8ZGl2IGNsYXNzPVwid2MtZ3JvdXBcIj48ZGl2IGNsYXNzPVwid2MtZ3JvdXAtaGRyXCI+PGRpdiBjbGFzcz1cIndjLWdyb3VwLWJhZGdlXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiIrKEdDW2cuaWRdKSsiXCI+IisoZy5pZCkrIjwvZGl2PiIrKGcubikrKHBtJiZwaWNrcy5sZW5ndGg8ND8oIjxzcGFuIHN0eWxlPVwibWFyZ2luLWxlZnQ6YXV0bztmb250LXNpemU6MTBweDtjb2xvcjp2YXIoLS10MylcIj4iKyhwaWNrcy5sZW5ndGgpKyIvNDwvc3Bhbj4iKToiIikrIjwvZGl2Pjx0YWJsZSBjbGFzcz1cIiIrKHRibENscykrIlwiPjx0aGVhZD48dHI+PHRoPiM8L3RoPjx0aD5UZWFtPC90aD48dGg+UHRzPC90aD48dGg+UDwvdGg+PHRoPlc8L3RoPjx0aD5EPC90aD48dGg+TDwvdGg+PHRoPkdEPC90aD48L3RyPjwvdGhlYWQ+PHRib2R5PiIrKHRlYW1zLm1hcCgodCxpKT0+ewogICAgICBjb25zdCBwaWNrSWR4PXBpY2tzLmluZGV4T2YodC5jKTsKICAgICAgY29uc3QgcmM9cG0\/KHBpY2tJZHghPT0tMT8ocGlja0lkeDwyPyJ3Yy1ycSI6cGlja0lkeD09PTI\/IndjLXIzIjoid2MtcmUiKToiIik6KGk8Mj8id2MtcnEiOmk9PT0yPyJ3Yy1yMyI6IndjLXJlIik7CiAgICAgIGNvbnN0IHBvcz1wbT8ocGlja0lkeCE9PS0xP3BpY2tJZHgrMToiLSIpOihpKzEpOwogICAgICBjb25zdCBvbmNsaWNrPXBtPygiIG9uY2xpY2s9XCJ3YzI2UGlja0dyb3VwKCciKyhnLmlkKSsiJywnIisodC5jKSsiJylcIiBzdHlsZT1cImN1cnNvcjpwb2ludGVyIisocGlja0lkeD09PS0xJiZwaWNrcy5sZW5ndGg+MD8iO29wYWNpdHk6LjUiOiIiKSsiXCIiKToiIgogICAgICBjb25zdCBiYWRnZT1wbSYmcGlja0lkeCE9PS0xPygiPHNwYW4gY2xhc3M9XCJ3Yy1waWNrLWJhZGdlIHdjLXBpY2stIisocGlja0lkeCsxKSsiXCI+IisocGlja0lkeD09PTA\/IjFzdCI6cGlja0lkeD09PTE\/IjJuZCI6cGlja0lkeD09PTI\/IjNyZCI6IjR0aCIpKyI8L3NwYW4+Iik6IiI7CiAgICAgIHJldHVybigiPHRyIGNsYXNzPVwiIisocmMpKyJcIiBkYXRhLWc9XCIiKyhnLmlkKSsiXCIgZGF0YS10Yz1cIiIrKHQuYykrIlwiIisob25jbGljaykrIj48dGQgY2xhc3M9XCJ3Yy1wb3NcIj4iKyhwb3MpKyI8L3RkPjx0ZD48ZGl2IGNsYXNzPVwidGNcIj48aW1nIHNyYz1cIiIrKGZsKHQuYykpKyJcIiBhbHQ9XCIiKyh0LmMpKyJcIj4iKyh0Lm4pKyI8c3BhbiBjbGFzcz1cInJrXCI+IyIrKHQucikrIjwvc3Bhbj4iKyhiYWRnZSkrIjwvZGl2PjwvdGQ+PHRkPjxzdHJvbmc+MDwvc3Ryb25nPjwvdGQ+PHRkPjA8L3RkPjx0ZD4wPC90ZD48dGQ+MDwvdGQ+PHRkPjA8L3RkPjx0ZD4wPC90ZD48L3RyPiIpOwogICAgfSkuam9pbigiIikpKyI8L3Rib2R5PjwvdGFibGU+PC9kaXY+Iik7CiAgfSkuam9pbigiIik7Cn0KCi8vIFNjaGVkdWxlCmxldCBzZj17ZzoiYWxsIixtZDowfTsKZnVuY3Rpb24gaW5pdFNjaEZpbHRlcnMoKXsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2Mtc2NoLWZpbHRlcnMiKS5pbm5lckhUTUw9IjxidXR0b24gY2xhc3M9XCJ3Yy1mYnRuIG9uXCIgb25jbGljaz1cIndjMjZTY2hGKCdtZCcsMClcIj5BbGw8L2J1dHRvbj4iK1sxLDIsM10ubWFwKG09PigiPGJ1dHRvbiBjbGFzcz1cIndjLWZidG5cIiBvbmNsaWNrPVwid2MyNlNjaEYoJ21kJywiKyhtKSsiKVwiPk1EICIrKG0pKyI8L2J1dHRvbj4iKSkuam9pbigiIikrKCI8c2VsZWN0IGNsYXNzPVwid2MtZnNlbFwiIG9uY2hhbmdlPVwid2MyNlNjaEYoJ2cnLHRoaXMudmFsdWUpXCI+PG9wdGlvbiB2YWx1ZT1cImFsbFwiPkFsbCBHcm91cHM8L29wdGlvbj4iKyhHUk9VUFMubWFwKGc9PigiPG9wdGlvbiB2YWx1ZT1cIiIrKGcuaWQpKyJcIj5Hcm91cCAiKyhnLmlkKSsiPC9vcHRpb24+IikpLmpvaW4oIiIpKSsiPC9zZWxlY3Q+Iik7Cn0Kd2luZG93LndjMjZTY2hGPWZ1bmN0aW9uKGssdil7c2Zba109djtyZW5kZXJTY2goKTtpZihrPT09Im1kIilkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjd2Mtc2NoLWZpbHRlcnMgLndjLWZidG4iKS5mb3JFYWNoKChiLGkpPT5iLmNsYXNzTGlzdC50b2dnbGUoIm9uIiwodj09PTAmJmk9PT0wKXx8KHY9PT1pKSkpO307CmZ1bmN0aW9uIHJlbmRlclNjaCgpewogIGluaXRTY2hGaWx0ZXJzKCk7CiAgbGV0IG1zPU1BVENIRVMuZmlsdGVyKG09PihzZi5nPT09ImFsbCJ8fG0uZz09PXNmLmcpJiYoIXNmLm1kfHxtLm1kPT09c2YubWQpKTsKICBjb25zdCBiZD17fTttcy5mb3JFYWNoKG09PnsoYmRbbS5kXT1iZFttLmRdfHxbXSkucHVzaChtKTt9KTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2Mtc2NoLWxpc3QiKS5pbm5lckhUTUw9T2JqZWN0LmVudHJpZXMoYmQpLnNvcnQoKFthXSxbYl0pPT5hLmxvY2FsZUNvbXBhcmUoYikpLm1hcCgoW2QsbXNdKT0+KCI8ZGl2IGNsYXNzPVwid2MtZGF0ZS1oZHJcIj4iKyhmZChkKSkrIjwvZGl2PiIpK21zLm1hcChtPT57CiAgICBjb25zdCBoPVQobS5oKSxhPVQobS5hKSx2PVZFTlVFU1ttLnZdOwogICAgcmV0dXJuKCI8ZGl2IGNsYXNzPVwid2MtbWF0Y2hcIj48ZGl2IGNsYXNzPVwid2MtbXRlYW1cIj48aW1nIHNyYz1cIiIrKGZsKG0uaCkpKyJcIj4iKyhoLm4pKyI8L2Rpdj48ZGl2IGNsYXNzPVwid2MtbXZzXCI+PGRpdiBjbGFzcz1cInRtXCI+IisoZnQobS50KSkrIjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9XCJ3Yy1tdGVhbSBhd2F5XCI+IisoYS5uKSsiPGltZyBzcmM9XCIiKyhmbChtLmEpKSsiXCI+PC9kaXY+PGRpdiBjbGFzcz1cIndjLW1tZXRhXCI+PHNwYW4gY2xhc3M9XCJ3Yy1ncnAtdGFnXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiIrKEdDW20uZ10pKyJcIj5Hcm91cCAiKyhtLmcpKyI8L3NwYW4+PHNwYW4+Iisodj92LnNkOiIiKSsiPC9zcGFuPjwvZGl2PjwvZGl2PiIpOwogIH0pLmpvaW4oIiIpKS5qb2luKCIiKTsKfQoKLy8gPT09PT0gSU5URVJBQ1RJVkUgVFJFRSBCUkFDS0VUID09PT09CmNvbnN0IGJyYWNrZXRTdGF0ZT17fTsKbGV0IGdyb3Vwc1NpbXVsYXRlZD1mYWxzZTsKbGV0IGFsbFN0YW5kaW5ncz1udWxsOwpsZXQgbWFudWFsTW9kZT1mYWxzZTsKY29uc3QgbWFudWFsUGlja3M9e307Ly8gZ3JvdXBJZCAtPiBbY29kZTFzdCwgY29kZTJuZCwgY29kZTNyZCwgY29kZTR0aF0KY29uc3QgTDMyPVsiUjMyLTIiLCJSMzItNSIsIlIzMi0xIiwiUjMyLTMiLCJSMzItNCIsIlIzMi02IiwiUjMyLTciLCJSMzItOCJdOwpjb25zdCBSMzJYPVsiUjMyLTkiLCJSMzItMTAiLCJSMzItMTEiLCJSMzItMTIiLCJSMzItMTMiLCJSMzItMTQiLCJSMzItMTUiLCJSMzItMTYiXTsKY29uc3QgTDE2PVsiUjE2LTEiLCJSMTYtMiIsIlIxNi0zIiwiUjE2LTQiXSxSMTZYPVsiUjE2LTUiLCJSMTYtNiIsIlIxNi03IiwiUjE2LTgiXTsKY29uc3QgTFFGPVsiUUYtMSIsIlFGLTMiXSxSUUY9WyJRRi0yIiwiUUYtNCJdOwoKZnVuY3Rpb24gcmVuZGVyQnJhY2tldEFjdGlvbnMoKXsKICBjb25zdCBlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MtYnJhY2tldC1hY3Rpb25zIik7CiAgaWYoZ3JvdXBzU2ltdWxhdGVkKXsKICAgIGVsLmlubmVySFRNTD0iPGJ1dHRvbiBjbGFzcz1cIndjLWZidG4gb25cIiBkaXNhYmxlZD5cXHUyNzA1IEdyb3VwcyBEb25lPC9idXR0b24+IisKICAgICAgIjxidXR0b24gY2xhc3M9XCJ3Yy1mYnRuXCIgb25jbGljaz1cIndjMjZTaW1BbGxLTygpXCI+QXV0by1TaW11bGF0ZSBLbm9ja291dHM8L2J1dHRvbj4iKwogICAgICAiPGJ1dHRvbiBjbGFzcz1cIndjLWZidG5cIiBvbmNsaWNrPVwid2MyNlJlc2V0KClcIiBzdHlsZT1cImNvbG9yOnZhcigtLXJlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLXJlZClcIj5SZXNldDwvYnV0dG9uPiI7CiAgfWVsc2UgaWYobWFudWFsTW9kZSl7CiAgICBjb25zdCBhbGxQaWNrZWQ9R1JPVVBTLmV2ZXJ5KGc9Pm1hbnVhbFBpY2tzW2cuaWRdJiZtYW51YWxQaWNrc1tnLmlkXS5sZW5ndGg9PT00KTsKICAgIGVsLmlubmVySFRNTD0iPGJ1dHRvbiBjbGFzcz1cIndjLWZidG4gb25cIiBkaXNhYmxlZD5NYW51YWwgTW9kZTogQ2xpY2sgdGVhbXMgaW4gZWFjaCBncm91cCB0byByYW5rIDFzdC00dGg8L2J1dHRvbj4iKwogICAgICAoYWxsUGlja2VkPyI8YnV0dG9uIGNsYXNzPVwid2MtZmJ0blwiIG9uY2xpY2s9XCJ3YzI2Q29uZmlybU1hbnVhbCgpXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6I2ZmZlwiPlxcdTI3MDUgQ29uZmlybSAmYW1wOyBGaWxsIEJyYWNrZXQ8L2J1dHRvbj4iOiIiKSsKICAgICAgIjxidXR0b24gY2xhc3M9XCJ3Yy1mYnRuXCIgb25jbGljaz1cIndjMjZSZXNldCgpXCIgc3R5bGU9XCJjb2xvcjp2YXIoLS1yZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1yZWQpXCI+Q2FuY2VsPC9idXR0b24+IjsKICB9ZWxzZXsKICAgIGVsLmlubmVySFRNTD0iPGJ1dHRvbiBjbGFzcz1cIndjLWZidG5cIiBvbmNsaWNrPVwid2MyNlNpbUdyb3VwcygpXCI+U2ltdWxhdGUgR3JvdXBzPC9idXR0b24+IisKICAgICAgIjxidXR0b24gY2xhc3M9XCJ3Yy1mYnRuXCIgb25jbGljaz1cIndjMjZNYW51YWxNb2RlKClcIj5QaWNrIE1hbnVhbGx5PC9idXR0b24+IisKICAgICAgIjxidXR0b24gY2xhc3M9XCJ3Yy1mYnRuXCIgb25jbGljaz1cIndjMjZSZXNldCgpXCIgc3R5bGU9XCJjb2xvcjp2YXIoLS1yZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1yZWQpXCI+UmVzZXQ8L2J1dHRvbj4iOwogIH0KfQoKLy8gTWFudWFsIG1vZGU6IGNsaWNrIHRlYW1zIGluIGdyb3VwIHRhYmxlcyB0byBzZXQgMXN0LzJuZC8zcmQvNHRoCndpbmRvdy53YzI2TWFudWFsTW9kZT1mdW5jdGlvbigpewogIG1hbnVhbE1vZGU9dHJ1ZTsKICBHUk9VUFMuZm9yRWFjaChnPT57bWFudWFsUGlja3NbZy5pZF09W107fSk7CiAgaW5pdEdyb3VwcygpOy8vIHJlLXJlbmRlciB3aXRoIGNsaWNrIGhhbmRsZXJzCiAgcmVuZGVyQnJhY2tldEFjdGlvbnMoKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MtZ3JvdXBzIikuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgifSk7Cn07Cgp3aW5kb3cud2MyNlBpY2tHcm91cD1mdW5jdGlvbihnaWQsY29kZSl7CiAgaWYoIW1hbnVhbE1vZGV8fGdyb3Vwc1NpbXVsYXRlZClyZXR1cm47CiAgY29uc3QgcGlja3M9bWFudWFsUGlja3NbZ2lkXTsKICAvLyBJZiBhbHJlYWR5IHBpY2tlZCwgcmVtb3ZlIGl0IGFuZCBldmVyeXRoaW5nIGFmdGVyCiAgY29uc3QgaWR4PXBpY2tzLmluZGV4T2YoY29kZSk7CiAgaWYoaWR4IT09LTEpe3BpY2tzLnNwbGljZShpZHgpO3VwZGF0ZUdyb3VwVUkoZ2lkKTtyZW5kZXJCcmFja2V0QWN0aW9ucygpO3JldHVybjt9CiAgaWYocGlja3MubGVuZ3RoPj00KXJldHVybjsKICBwaWNrcy5wdXNoKGNvZGUpOwogIHVwZGF0ZUdyb3VwVUkoZ2lkKTsKICByZW5kZXJCcmFja2V0QWN0aW9ucygpOwp9OwoKZnVuY3Rpb24gdXBkYXRlR3JvdXBVSShnaWQpewogIGNvbnN0IHBpY2tzPW1hbnVhbFBpY2tzW2dpZF18fFtdOwogIGNvbnN0IHJvd3M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgoIltkYXRhLWc9XCIiKyhnaWQpKyJcIl0iKSk7CiAgcm93cy5mb3JFYWNoKHJvdz0+ewogICAgY29uc3QgY29kZT1yb3cuZ2V0QXR0cmlidXRlKCJkYXRhLXRjIik7CiAgICBjb25zdCBwb3M9cGlja3MuaW5kZXhPZihjb2RlKTsKICAgIGNvbnN0IHBvc0NlbGw9cm93LnF1ZXJ5U2VsZWN0b3IoIi53Yy1wb3MiKTsKICAgIGNvbnN0IGV4aXN0aW5nQmFkZ2U9cm93LnF1ZXJ5U2VsZWN0b3IoIi53Yy1waWNrLWJhZGdlIik7CiAgICBpZihleGlzdGluZ0JhZGdlKWV4aXN0aW5nQmFkZ2UucmVtb3ZlKCk7CiAgICBpZihwb3MhPT0tMSl7CiAgICAgIHBvc0NlbGwudGV4dENvbnRlbnQ9cG9zKzE7CiAgICAgIHJvdy5jbGFzc05hbWU9cG9zPDI\/IndjLXJxIjpwb3M9PT0yPyJ3Yy1yMyI6IndjLXJlIjsKICAgICAgY29uc3QgYmFkZ2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICBiYWRnZS5jbGFzc05hbWU9IndjLXBpY2stYmFkZ2Ugd2MtcGljay0iKyhwb3MrMSk7CiAgICAgIGJhZGdlLnRleHRDb250ZW50PXBvcz09PTA\/IjFzdCI6cG9zPT09MT8iMm5kIjpwb3M9PT0yPyIzcmQiOiI0dGgiOwogICAgICByb3cucXVlcnlTZWxlY3RvcigiLnRjIikuYXBwZW5kQ2hpbGQoYmFkZ2UpOwogICAgfWVsc2V7CiAgICAgIHBvc0NlbGwudGV4dENvbnRlbnQ9Ii0iOwogICAgICByb3cuY2xhc3NOYW1lPSIiOwogICAgICByb3cuc3R5bGUub3BhY2l0eT1waWNrcy5sZW5ndGg+MD8iMC41IjoiMSI7CiAgICB9CiAgfSk7CiAgLy8gSWYgYWxsIDQgcGlja2VkLCBzZXQgZnVsbCBvcGFjaXR5CiAgaWYocGlja3MubGVuZ3RoPT09NClyb3dzLmZvckVhY2gocj0+ci5zdHlsZS5vcGFjaXR5PSIxIik7Cn0KCndpbmRvdy53YzI2Q29uZmlybU1hbnVhbD1mdW5jdGlvbigpewogIGlmKCFHUk9VUFMuZXZlcnkoZz0+bWFudWFsUGlja3NbZy5pZF0\/Lmxlbmd0aD09PTQpKXJldHVybjsKICAvLyBCdWlsZCBhbGxTdGFuZGluZ3MgZnJvbSBtYW51YWwgcGlja3MKICBhbGxTdGFuZGluZ3M9e307CiAgR1JPVVBTLmZvckVhY2goZz0+ewogICAgYWxsU3RhbmRpbmdzW2cuaWRdPW1hbnVhbFBpY2tzW2cuaWRdLm1hcCgoY29kZSxpKT0+KHtjOmNvZGUscHRzOjMqKDMtaSkscDozLHc6My1pLGQ6MCxsOmksZ2Y6My1pLGdhOmksZ2Q6My0yKml9KSk7CiAgfSk7CiAgZ3JvdXBzU2ltdWxhdGVkPXRydWU7bWFudWFsTW9kZT1mYWxzZTsKICBwb3B1bGF0ZVIzMigpOwogIGluaXRHcm91cHMoKTsvLyByZS1yZW5kZXIgd2l0aG91dCBjbGljayBoYW5kbGVycwogIHJlbmRlckJyYWNrZXQoKTsKfTsKCmZ1bmN0aW9uIHNsb3RIVE1MKGlkLHRlYW1Db2RlLHNlZWRMYWJlbCl7CiAgdmFyIHN0PWJyYWNrZXRTdGF0ZVtpZF07CiAgaWYoIXRlYW1Db2RlKXJldHVybigiPGRpdiBjbGFzcz1cIndjLWJzbG90IGVtcHR5XCI+PHNwYW4gY2xhc3M9XCJzZWVkLWxibFwiPiIrKHNlZWRMYWJlbCkrIjwvc3Bhbj48c3BhbiBjbGFzcz1cIm5tXCIgc3R5bGU9XCJjb2xvcjp2YXIoLS10MylcIj5UQkQ8L3NwYW4+PC9kaXY+Iik7CiAgdmFyIHRlYW09VCh0ZWFtQ29kZSk7CiAgdmFyIGlzUGlja2VkPXN0JiZzdC53aW5uZXI9PT10ZWFtQ29kZTsKICB2YXIgaXNMb3N0PXN0JiZzdC53aW5uZXImJnN0Lndpbm5lciE9PXRlYW1Db2RlOwogIHZhciBjbHM9aXNQaWNrZWQ\/InBpY2tlZCI6aXNMb3N0PyJsb3N0IjoiIjsKICByZXR1cm4oIjxkaXYgY2xhc3M9XCJ3Yy1ic2xvdCAiKyhjbHMpKyJcIiBvbmNsaWNrPVwid2MyNlBpY2soJyIrKGlkKSsiJywnIisodGVhbUNvZGUpKyInKVwiPjxpbWcgc3JjPVwiIisoZmwodGVhbUNvZGUpKSsiXCI+PHNwYW4gY2xhc3M9XCJubVwiPiIrKHRlYW1Db2RlKSsiPC9zcGFuPjxzcGFuIGNsYXNzPVwicGljay1pY29uXCI+XFx1MjcxMzwvc3Bhbj48L2Rpdj4iKTsKfQoKZnVuY3Rpb24gbWF0Y2hDYXJkKGlkLHNsMSxzbDIpewogIGNvbnN0IGluZm89S08uUjMyW2lkXXx8S08uUjE2W2lkXXx8S08uUUZbaWRdfHxLTy5TRltpZF18fEtPLkZbaWRdOwogIGlmKCFpbmZvKXJldHVybiIiOwogIGNvbnN0IHY9VkVOVUVTW2luZm8udl07Y29uc3Qgc3Q9YnJhY2tldFN0YXRlW2lkXTsKICBjb25zdCB0MT1zdD9zdC50MTpudWxsLHQyPXN0P3N0LnQyOm51bGw7CiAgY29uc3QgY2xzPWlkPT09IkYiPyIgZmluYWwtbWF0Y2giOiIiOwogIHJldHVybigiPGRpdiBjbGFzcz1cIndjLWJtYXRjaCIrKGNscykrIlwiIGlkPVwid2MtYm0tIisoaWQpKyJcIj4iKyhzbG90SFRNTChpZCx0MSxzbDEpKSsoc2xvdEhUTUwoaWQsdDIsc2wyKSkrIjxkaXYgY2xhc3M9XCJ3Yy1ibWV0YVwiPiIrKGZkKGluZm8uZCkpKyIgJm1pZGRvdDsgIisodj92LmNpOiIiKSsiPC9kaXY+PC9kaXY+Iik7Cn0KCmZ1bmN0aW9uIG1jKGlkLGV4dHJhKXsKICB2YXIgc2VlZE1hcD17fTtTRUVEUy5mb3JFYWNoKGZ1bmN0aW9uKHMpe3NlZWRNYXBbcy5tXT1zO30pOwogIHZhciBzPXNlZWRNYXBbaWRdOwogIHZhciBzMT1zP3MuczE6KGlkPT09IkYiPyJXIFNGMSI6aWQ9PT0iM1AiPyJMIFNGMSI6IlRCRCIpOwogIHZhciBzMj1zP3MuczI6KGlkPT09IkYiPyJXIFNGMiI6aWQ9PT0iM1AiPyJMIFNGMiI6IlRCRCIpOwogIHJldHVybiBtYXRjaENhcmQoaWQsczEsczIpLnJlcGxhY2UoIndjLWJtYXRjaFwiIiwid2MtYm1hdGNoIisoZXh0cmE\/IiAiK2V4dHJhOiIiKSsiXCIiKTsKfQoKZnVuY3Rpb24gcm93KGlkcyxleHRyYSl7CiAgdmFyIGg9IjxkaXYgY2xhc3M9XCJ3Yy1yb3dcIj4iOwogIGlkcy5mb3JFYWNoKGZ1bmN0aW9uKGlkKXtoKz1tYyhpZCxleHRyYXx8IiIpO30pOwogIGgrPSI8L2Rpdj4iOwogIHJldHVybiBoOwp9CgpmdW5jdGlvbiBjb25uRG93bihuKXsKICB2YXIgaD0iPGRpdiBjbGFzcz1cIndjLWNvbm5lY3RvcnNcIj4iOwogIGZvcih2YXIgaT0wO2k8bjtpKyspaCs9IjxkaXYgY2xhc3M9XCJ3Yy1jb25uLXBhaXJcIj48c3Bhbj5cdTI1NzA8L3NwYW4+PHNwYW4+XHUyNTZGPC9zcGFuPjwvZGl2PiI7CiAgaCs9IjwvZGl2PiI7CiAgcmV0dXJuIGg7Cn0KZnVuY3Rpb24gY29ublVwKG4pewogIHZhciBoPSI8ZGl2IGNsYXNzPVwid2MtY29ubmVjdG9yc1wiPiI7CiAgZm9yKHZhciBpPTA7aTxuO2krKyloKz0iPGRpdiBjbGFzcz1cIndjLWNvbm4tcGFpclwiPjxzcGFuPlx1MjU2RDwvc3Bhbj48c3Bhbj5cdTI1NkU8L3NwYW4+PC9kaXY+IjsKICBoKz0iPC9kaXY+IjsKICByZXR1cm4gaDsKfQoKZnVuY3Rpb24gcm91bmRIZHIodGl0bGUsaXNGaW5hbCl7CiAgdmFyIGNscz1pc0ZpbmFsPyJ3Yy12cm91bmQtaGRyIGZpbmFsLWhkciI6IndjLXZyb3VuZC1oZHIiOwogIHJldHVybiAiPGRpdiBjbGFzcz1cIiIrY2xzKyJcIj48c3BhbiBjbGFzcz1cIndjLXZyLWxhYmVsXCI+Iit0aXRsZSsiPC9zcGFuPjxzcGFuIGNsYXNzPVwid2MtdnItbGluZVwiPjwvc3Bhbj48L2Rpdj4iOwp9CgpmdW5jdGlvbiByZW5kZXJCcmFja2V0KCl7CiAgdmFyIGg9IiI7CgogIC8vIFVQUEVSIEhBTEYgLSB0b3AgZG93bgogIGgrPSI8ZGl2IGNsYXNzPVwid2MtdnJvdW5kXCI+Iityb3VuZEhkcigiUm91bmQgb2YgMzIgJm1kYXNoOyBVcHBlciIpOwogIGgrPXJvdyhbIlIzMi0yIiwiUjMyLTUiLCJSMzItMSIsIlIzMi0zIiwiUjMyLTQiLCJSMzItNiIsIlIzMi03IiwiUjMyLTgiXSk7CiAgaCs9IjwvZGl2PiI7CiAgaCs9Y29ubkRvd24oNCk7CgogIGgrPSI8ZGl2IGNsYXNzPVwid2MtdnJvdW5kXCI+Iityb3VuZEhkcigiUm91bmQgb2YgMTYiKTsKICBoKz1yb3coWyJSMTYtMSIsIlIxNi0yIiwiUjE2LTMiLCJSMTYtNCJdKTsKICBoKz0iPC9kaXY+IjsKICBoKz1jb25uRG93bigyKTsKCiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy12cm91bmRcIj4iK3JvdW5kSGRyKCJRdWFydGVyLUZpbmFscyIpOwogIGgrPXJvdyhbIlFGLTEiLCJRRi0zIl0pOwogIGgrPSI8L2Rpdj4iOwogIGgrPWNvbm5Eb3duKDEpOwoKICBoKz0iPGRpdiBjbGFzcz1cIndjLXZyb3VuZFwiPiIrcm91bmRIZHIoIlNlbWktRmluYWwgMSIpOwogIGgrPXJvdyhbIlNGLTEiXSk7CiAgaCs9IjwvZGl2PiI7CiAgaCs9Y29ubkRvd24oMSk7CgogIC8vIEZJTkFMICsgM1JEIFBMQUNFCiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy12cm91bmRcIj4iK3JvdW5kSGRyKCJGSU5BTCIsdHJ1ZSk7CiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy1maW5hbC13cmFwXCI+IittYygiRiIsImZpbmFsLW1hdGNoIikrbWMoIjNQIiwidGhpcmQtbWF0Y2giKSsiPC9kaXY+IjsKICBoKz0iPC9kaXY+IjsKCiAgaCs9Y29ublVwKDEpOwoKICAvLyBMT1dFUiBIQUxGIC0gYm90dG9tIHVwCiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy12cm91bmRcIj4iK3JvdW5kSGRyKCJTZW1pLUZpbmFsIDIiKTsKICBoKz1yb3coWyJTRi0yIl0pOwogIGgrPSI8L2Rpdj4iOwogIGgrPWNvbm5VcCgxKTsKCiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy12cm91bmRcIj4iK3JvdW5kSGRyKCJRdWFydGVyLUZpbmFscyIpOwogIGgrPXJvdyhbIlFGLTIiLCJRRi00Il0pOwogIGgrPSI8L2Rpdj4iOwogIGgrPWNvbm5VcCgyKTsKCiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy12cm91bmRcIj4iK3JvdW5kSGRyKCJSb3VuZCBvZiAxNiIpOwogIGgrPXJvdyhbIlIxNi01IiwiUjE2LTYiLCJSMTYtNyIsIlIxNi04Il0pOwogIGgrPSI8L2Rpdj4iOwogIGgrPWNvbm5VcCg0KTsKCiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy12cm91bmRcIj4iK3JvdW5kSGRyKCJSb3VuZCBvZiAzMiAmbWRhc2g7IExvd2VyIik7CiAgaCs9cm93KFsiUjMyLTkiLCJSMzItMTAiLCJSMzItMTEiLCJSMzItMTIiLCJSMzItMTMiLCJSMzItMTQiLCJSMzItMTUiLCJSMzItMTYiXSk7CiAgaCs9IjwvZGl2PiI7CgogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1icmFja2V0LXJvb3QiKS5pbm5lckhUTUw9aDsKICByZW5kZXJCcmFja2V0QWN0aW9ucygpOwp9CgovLyBQaWNrIHdpbm5lcgp3aW5kb3cud2MyNlBpY2s9ZnVuY3Rpb24obWF0Y2hJZCx0ZWFtQ29kZSl7CiAgY29uc3Qgc3Q9YnJhY2tldFN0YXRlW21hdGNoSWRdOwogIGlmKCFzdHx8IXN0LnQxfHwhc3QudDIpcmV0dXJuOwogIGlmKHN0Lndpbm5lcj09PXRlYW1Db2RlKXJldHVybjsKICBpZihzdC53aW5uZXImJnN0Lndpbm5lciE9PXRlYW1Db2RlKWNsZWFyRG93bihtYXRjaElkKTsKICBzdC53aW5uZXI9dGVhbUNvZGU7CiAgLy8gQWR2YW5jZQogIGNvbnN0IG54PUJQW21hdGNoSWRdOwogIGlmKG54KW54LmZvckVhY2gobmlkPT57CiAgICBpZighYnJhY2tldFN0YXRlW25pZF0pYnJhY2tldFN0YXRlW25pZF09e3QxOm51bGwsdDI6bnVsbCx3aW5uZXI6bnVsbH07CiAgICBjb25zdCBuZXh0PWJyYWNrZXRTdGF0ZVtuaWRdOwogICAgY29uc3QgZmVlZGVycz1PYmplY3QuZW50cmllcyhCUCkuZmlsdGVyKChbayx2XSk9PnYuaW5jbHVkZXMobmlkKSkubWFwKChba10pPT5rKTsKICAgIGNvbnN0IGZpPWZlZWRlcnMuaW5kZXhPZihtYXRjaElkKTsKICAgIGlmKGZpPT09MHx8KCFuZXh0LnQxJiZuZXh0LnQyIT09dGVhbUNvZGUpKW5leHQudDE9dGVhbUNvZGU7ZWxzZSBuZXh0LnQyPXRlYW1Db2RlOwogIH0pOwogIC8vIDNyZCBwbGFjZQogIGlmKG1hdGNoSWQ9PT0iU0YtMSJ8fG1hdGNoSWQ9PT0iU0YtMiIpewogICAgY29uc3QgczE9YnJhY2tldFN0YXRlWyJTRi0xIl0sczI9YnJhY2tldFN0YXRlWyJTRi0yIl07CiAgICBpZihzMT8ud2lubmVyJiZzMj8ud2lubmVyKXsKICAgICAgYnJhY2tldFN0YXRlWyIzUCJdPXt0MTpzMS53aW5uZXI9PT1zMS50MT9zMS50MjpzMS50MSx0MjpzMi53aW5uZXI9PT1zMi50MT9zMi50MjpzMi50MSx3aW5uZXI6bnVsbH07CiAgICB9CiAgfQogIHJlbmRlckJyYWNrZXQoKTsKICBpZihtYXRjaElkPT09IkYiJiZicmFja2V0U3RhdGVbIkYiXT8ud2lubmVyKXsKICAgIGNvbnN0IGNoPVQoYnJhY2tldFN0YXRlWyJGIl0ud2lubmVyKTtsYXVuY2hDb25mZXR0aSgpOwogICAgc2V0VGltZW91dCgoKT0+e2NvbnN0IHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjLXNpbS1yZXN1bHRzIik7ci5zdHlsZS5kaXNwbGF5PSJibG9jayI7ci5pbm5lckhUTUw9KCI8ZGl2IGNsYXNzPVwid2MtY2hhbXBcIj48aW1nIHNyYz1cIiIrKGZsKGNoLmMpKSsiXCI+PGgzPiIrKGNoLm4pKyI8L2gzPjxwPllvdXIgcHJlZGljdGVkIFdvcmxkIEN1cCAyMDI2IENoYW1waW9uITwvcD48L2Rpdj4iKTt9LDMwMCk7CiAgfQp9OwpmdW5jdGlvbiBjbGVhckRvd24obWlkKXsKICBjb25zdCBueD1CUFttaWRdO2lmKCFueClyZXR1cm47CiAgbnguZm9yRWFjaChuaWQ9PntpZihicmFja2V0U3RhdGVbbmlkXSl7Y29uc3QgZj1PYmplY3QuZW50cmllcyhCUCkuZmlsdGVyKChbayx2XSk9PnYuaW5jbHVkZXMobmlkKSkubWFwKChba10pPT5rKTtjb25zdCBmaT1mLmluZGV4T2YobWlkKTtpZihmaT09PTApYnJhY2tldFN0YXRlW25pZF0udDE9bnVsbDtlbHNlIGJyYWNrZXRTdGF0ZVtuaWRdLnQyPW51bGw7YnJhY2tldFN0YXRlW25pZF0ud2lubmVyPW51bGw7Y2xlYXJEb3duKG5pZCk7fX0pOwogIGlmKG1pZC5zdGFydHNXaXRoKCJTRiIpKWJyYWNrZXRTdGF0ZVsiM1AiXT17dDE6bnVsbCx0MjpudWxsLHdpbm5lcjpudWxsfTsKfQoKLy8gUG9wdWxhdGUgUjMyIGZyb20gYWxsU3RhbmRpbmdzCmZ1bmN0aW9uIHBvcHVsYXRlUjMyKCl7CiAgY29uc3QgdGhpcmRzPVtdO09iamVjdC5lbnRyaWVzKGFsbFN0YW5kaW5ncykuZm9yRWFjaCgoW2dpZCxzdF0pPT57aWYoc3RbMl0pdGhpcmRzLnB1c2goey4uLnN0WzJdLGdpZH0pO30pOwogIHRoaXJkcy5zb3J0KChhLGIpPT4oYi5wdHN8fDApLShhLnB0c3x8MCl8fChiLmdkfHwwKS0oYS5nZHx8MCl8fChiLmdmfHwwKS0oYS5nZnx8MCkpOwogIGNvbnN0IHRoTWFwPXt9O3RoaXJkcy5zbGljZSgwLDgpLmZvckVhY2godD0+dGhNYXBbdC5naWRdPXQuYyk7CiAgY29uc3QgZ1Q9KGdpZCxwb3MpPT57Y29uc3Qgcz1hbGxTdGFuZGluZ3NbZ2lkXTtyZXR1cm4gcyYmc1twb3NdP3NbcG9zXS5jOm51bGw7fTsKICBTRUVEUy5mb3JFYWNoKHM9PnsKICAgIGxldCB0MT1udWxsLHQyPW51bGw7CiAgICBpZihzLnMxLnN0YXJ0c1dpdGgoIjFzdCAiKSl0MT1nVChzLnMxLnNsaWNlKDQpLDApO2Vsc2UgaWYocy5zMS5zdGFydHNXaXRoKCIybmQgIikpdDE9Z1Qocy5zMS5zbGljZSg0KSwxKTsKICAgIGlmKHMuczIuc3RhcnRzV2l0aCgiMXN0ICIpKXQyPWdUKHMuczIuc2xpY2UoNCksMCk7ZWxzZSBpZihzLnMyLnN0YXJ0c1dpdGgoIjJuZCAiKSl0Mj1nVChzLnMyLnNsaWNlKDQpLDEpOwogICAgZWxzZSBpZihzLnMyLnN0YXJ0c1dpdGgoIjNyZCAiKSl7Y29uc3QgZ3M9cy5zMi5zbGljZSg0KS5zcGxpdCgiIikuZmlsdGVyKGc9PnRoTWFwW2ddKTtpZihncy5sZW5ndGgpe2NvbnN0IHA9Z3NbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmdzLmxlbmd0aCldO3QyPXRoTWFwW3BdO2RlbGV0ZSB0aE1hcFtwXTt9fQogICAgYnJhY2tldFN0YXRlW3MubV09e3QxLHQyLHdpbm5lcjpudWxsfTsKICB9KTsKfQoKLy8gU2ltdWxhdGUgZ3JvdXBzCndpbmRvdy53YzI2U2ltR3JvdXBzPWZ1bmN0aW9uKCl7CiAgY29uc3QgZ3I9W107TUFUQ0hFUy5mb3JFYWNoKG09Pntjb25zdCByPXNpbU0oVChtLmgpLFQobS5hKSk7Z3IucHVzaCh7aDptLmgsYTptLmEsaGc6ci5oZyxhZzpyLmFnLGc6bS5nfSk7fSk7CiAgYWxsU3RhbmRpbmdzPXt9O0dST1VQUy5mb3JFYWNoKGc9PnthbGxTdGFuZGluZ3NbZy5pZF09Y2FsY1N0KGcuaWQsZ3IpO30pOwogIEdST1VQUy5mb3JFYWNoKGc9Pntjb25zdCByb3dzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoKCJbZGF0YS1nPVwiIisoZy5pZCkrIlwiXSIpKTthbGxTdGFuZGluZ3NbZy5pZF0uZm9yRWFjaCgocyxpKT0+e2lmKCFyb3dzW2ldKXJldHVybjtjb25zdCBjPXJvd3NbaV0ucXVlcnlTZWxlY3RvckFsbCgidGQiKTtjWzBdLnRleHRDb250ZW50PWkrMTtyb3dzW2ldLmNsYXNzTmFtZT1pPDI\/IndjLXJxIjppPT09Mj8id2MtcjMiOiJ3Yy1yZSI7Y1syXS5pbm5lckhUTUw9KCI8c3Ryb25nPiIrKHMucHRzKSsiPC9zdHJvbmc+Iik7Y1szXS50ZXh0Q29udGVudD1zLnA7Y1s0XS50ZXh0Q29udGVudD1zLnc7Y1s1XS50ZXh0Q29udGVudD1zLmQ7Y1s2XS50ZXh0Q29udGVudD1zLmw7Y1s3XS50ZXh0Q29udGVudD1zLmdkPjA\/IisiK3MuZ2Q6cy5nZDt9KTt9KTsKICBncm91cHNTaW11bGF0ZWQ9dHJ1ZTttYW51YWxNb2RlPWZhbHNlOwogIHBvcHVsYXRlUjMyKCk7CiAgcmVuZGVyQnJhY2tldCgpOwp9OwoKLy8gQXV0byBzaW0ga25vY2tvdXRzCndpbmRvdy53YzI2U2ltQWxsS089ZnVuY3Rpb24oKXsKICBpZighZ3JvdXBzU2ltdWxhdGVkKXJldHVybjsKICBmdW5jdGlvbiBzaW1Sb3VuZChpZHMpe2lkcy5mb3JFYWNoKGlkPT57Y29uc3Qgc3Q9YnJhY2tldFN0YXRlW2lkXTtpZighc3Q\/LnQxfHwhc3Q\/LnQyfHxzdC53aW5uZXIpcmV0dXJuO2NvbnN0IHI9c2ltTShUKHN0LnQxKSxUKHN0LnQyKSx0cnVlKTt3YzI2UGljayhpZCxyLncuYyk7fSk7fQogIHNpbVJvdW5kKE9iamVjdC5rZXlzKEtPLlIzMikpOwogIHNldFRpbWVvdXQoKCk9PntzaW1Sb3VuZChPYmplY3Qua2V5cyhLTy5SMTYpKTsKICBzZXRUaW1lb3V0KCgpPT57c2ltUm91bmQoT2JqZWN0LmtleXMoS08uUUYpKTsKICBzZXRUaW1lb3V0KCgpPT57c2ltUm91bmQoT2JqZWN0LmtleXMoS08uU0YpKTsKICBzZXRUaW1lb3V0KCgpPT57c2ltUm91bmQoWyIzUCIsIkYiXSk7fSwxNTApO30sMTUwKTt9LDE1MCk7fSwxNTApOwp9OwoKd2luZG93LndjMjZSZXNldD1mdW5jdGlvbigpewogIGdyb3Vwc1NpbXVsYXRlZD1mYWxzZTthbGxTdGFuZGluZ3M9bnVsbDttYW51YWxNb2RlPWZhbHNlOwogIE9iamVjdC5rZXlzKGJyYWNrZXRTdGF0ZSkuZm9yRWFjaChrPT5kZWxldGUgYnJhY2tldFN0YXRlW2tdKTsKICBPYmplY3Qua2V5cyhtYW51YWxQaWNrcykuZm9yRWFjaChrPT5kZWxldGUgbWFudWFsUGlja3Nba10pOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1zaW0tcmVzdWx0cyIpLnN0eWxlLmRpc3BsYXk9Im5vbmUiOwogIGluaXRHcm91cHMoKTtyZW5kZXJCcmFja2V0KCk7Cn07CgovLyBUZWFtcwpsZXQgdGY9e3M6IiIsY2Y6ImFsbCIsc29ydDoicmFua2luZyJ9OwpmdW5jdGlvbiBpbml0VGVhbUN0cmxzKCl7CiAgY29uc3QgY2ZzPVsiYWxsIiwiVUVGQSIsIkNPTk1FQk9MIiwiQ09OQ0FDQUYiLCJDQUYiLCJBRkMiLCJPRkMiXTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MtdGVhbS1jdHJscyIpLmlubmVySFRNTD0iPGlucHV0IGNsYXNzPVwid2MtdHNlYXJjaFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIHRlYW1zLi4uXCIgb25pbnB1dD1cIndjMjZURigncycsdGhpcy52YWx1ZS50b0xvd2VyQ2FzZSgpKVwiPiIrY2ZzLm1hcChjPT4oIjxidXR0b24gY2xhc3M9XCJ3Yy1mYnRuIisoYz09PSJhbGwiPyIgb24iOiIiKSsiXCIgb25jbGljaz1cIndjMjZURkMoJyIrKGMpKyInLHRoaXMpXCI+IisoYz09PSJhbGwiPyJBbGwiOmMpKyI8L2J1dHRvbj4iKSkuam9pbigiIikrIjxzZWxlY3QgY2xhc3M9XCJ3Yy1mc2VsXCIgb25jaGFuZ2U9XCJ3YzI2VEYoJ3NvcnQnLHRoaXMudmFsdWUpXCI+PG9wdGlvbiB2YWx1ZT1cInJhbmtpbmdcIj5CeSBSYW5raW5nPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIm5hbWVcIj5CeSBOYW1lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cImdyb3VwXCI+QnkgR3JvdXA8L29wdGlvbj48L3NlbGVjdD4iOwp9CndpbmRvdy53YzI2VEY9ZnVuY3Rpb24oayx2KXt0ZltrXT12O3JlbmRlclRlYW1zKCk7fTsKd2luZG93LndjMjZURkM9ZnVuY3Rpb24oYyxidG4pe3RmLmNmPWM7cmVuZGVyVGVhbXMoKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjd2MtdGVhbS1jdHJscyAud2MtZmJ0biIpLmZvckVhY2goYj0+Yi5jbGFzc0xpc3QucmVtb3ZlKCJvbiIpKTtidG4uY2xhc3NMaXN0LmFkZCgib24iKTt9OwpmdW5jdGlvbiByZW5kZXJUZWFtcygpewogIGxldCBsaXN0PVsuLi5URUFNU107CiAgaWYodGYucylsaXN0PWxpc3QuZmlsdGVyKHQ9PnQubi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRmLnMpKTsKICBpZih0Zi5jZiE9PSJhbGwiKWxpc3Q9bGlzdC5maWx0ZXIodD0+dC5jZj09PXRmLmNmKTsKICBpZih0Zi5zb3J0PT09InJhbmtpbmciKWxpc3Quc29ydCgoYSxiKT0+YS5yLWIucik7CiAgZWxzZSBpZih0Zi5zb3J0PT09Im5hbWUiKWxpc3Quc29ydCgoYSxiKT0+YS5uLmxvY2FsZUNvbXBhcmUoYi5uKSk7CiAgZWxzZSBsaXN0LnNvcnQoKGEsYik9Pih0ZyhhLmMpfHwiWiIpLmxvY2FsZUNvbXBhcmUodGcoYi5jKXx8IloiKSk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjLXRlYW1zLWdyaWQiKS5pbm5lckhUTUw9bGlzdC5tYXAodD0+ewogICAgY29uc3QgZz10Zyh0LmMpOwogICAgcmV0dXJuKCI8ZGl2IGNsYXNzPVwid2MtdGNhcmRcIj48aW1nIGNsYXNzPVwid2MtdGZsYWdcIiBzcmM9XCIiKyhmbCh0LmMpKSsiXCIgYWx0PVwiIisodC5uKSsiXCIgb25lcnJvcj1cInRoaXMuc3R5bGUuZGlzcGxheT0nbm9uZSdcIj48ZGl2IGNsYXNzPVwid2MtdHJhbmtcIj4iKyh0LnIpKyI8L2Rpdj48aDM+IisodC5uKSsiPC9oMz48ZGl2IGNsYXNzPVwid2MtdG1ldGFcIj48c3BhbiBjbGFzcz1cIndjLXRwaWxsXCIgc3R5bGU9XCJib3JkZXItY29sb3I6IisoQ0NbdC5jZl18fCJ2YXIoLS1ib3JkZXIpIikrIjtjb2xvcjoiKyhDQ1t0LmNmXXx8InZhcigtLXQyKSIpKyJcIj4iKyh0LmNmKSsiPC9zcGFuPiIrKGc\/KCI8c3BhbiBjbGFzcz1cIndjLXRwaWxsXCIgc3R5bGU9XCJib3JkZXItY29sb3I6IisoR0NbZ10pKyI7Y29sb3I6IisoR0NbZ10pKyJcIj5HcnAgIisoZykrIjwvc3Bhbj4iKToiIikrIjxzcGFuIGNsYXNzPVwid2MtdHBpbGxcIj4iKyhNYXRoLnJvdW5kKHQucCkpKyIgcHRzPC9zcGFuPjwvZGl2PjwvZGl2PiIpOwogIH0pLmpvaW4oIiIpOwp9CgovLyBWZW51ZXMKbGV0IHZmPSJhbGwiOwpmdW5jdGlvbiBpbml0VmVudWVzKCl7CiAgY29uc3QgY2FwPU9iamVjdC52YWx1ZXMoVkVOVUVTKS5yZWR1Y2UoKGEsdik9PmErdi5jYXAsMCk7CiAgY29uc3QgYmM9e1VTQTowLE1FWDowLENBTjowfTtPYmplY3QudmFsdWVzKFZFTlVFUykuZm9yRWFjaCh2PT5iY1t2LmNvXSsrKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MtdmVudWUtc3RhdHMiKS5pbm5lckhUTUw9WwogICAgW25tKGNhcCksIlRvdGFsIENhcGFjaXR5Il0sW2JjLlVTQSwiVVNBIFZlbnVlcyJdLFtiYy5NRVgsIk1leGljbyBWZW51ZXMiXSxbYmMuQ0FOLCJDYW5hZGEgVmVudWVzIl0KICBdLm1hcCgoW3YsbF0pPT4oIjxkaXYgY2xhc3M9XCJ3Yy1zdGF0XCI+PGRpdiBjbGFzcz1cIndjLXN0YXQtbnVtXCI+IisodikrIjwvZGl2PjxkaXYgY2xhc3M9XCJ3Yy1zdGF0LWxhYmVsXCI+IisobCkrIjwvZGl2PjwvZGl2PiIpKS5qb2luKCIiKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MtdmVudWUtZmlsdGVycyIpLmlubmVySFRNTD1bImFsbCIsIlVTQSIsIk1FWCIsIkNBTiJdLm1hcChjPT4oIjxidXR0b24gY2xhc3M9XCJ3Yy1mYnRuIisoYz09PXZmPyIgb24iOiIiKSsiXCIgb25jbGljaz1cIndjMjZWRignIisoYykrIicsdGhpcylcIj4iKyhjPT09ImFsbCI\/IkFsbCI6Yz09PSJNRVgiPyJNZXhpY28iOmM9PT0iQ0FOIj8iQ2FuYWRhIjpjKSsiPC9idXR0b24+IikpLmpvaW4oIiIpOwogIHJlbmRlclZlbnVlcygpOwp9CndpbmRvdy53YzI2VkY9ZnVuY3Rpb24oYyxidG4pe3ZmPWM7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3djLXZlbnVlLWZpbHRlcnMgLndjLWZidG4iKS5mb3JFYWNoKGI9PmIuY2xhc3NMaXN0LnJlbW92ZSgib24iKSk7YnRuLmNsYXNzTGlzdC5hZGQoIm9uIik7cmVuZGVyVmVudWVzKCk7fTsKZnVuY3Rpb24gcmVuZGVyVmVudWVzKCl7CiAgbGV0IHZzPU9iamVjdC52YWx1ZXMoVkVOVUVTKTtpZih2ZiE9PSJhbGwiKXZzPXZzLmZpbHRlcih2PT52LmNvPT09dmYpOwogIHZzLnNvcnQoKGEsYik9PmIuY2FwLWEuY2FwKTsKICBjb25zdCBtYz17fTtNQVRDSEVTLmZvckVhY2gobT0+e21jW20udl09KG1jW20udl18fDApKzE7fSk7CiAgT2JqZWN0LnZhbHVlcyhLTykuZm9yRWFjaChyPT57T2JqZWN0LnZhbHVlcyhyKS5mb3JFYWNoKG09PntpZihtLnYpbWNbbS52XT0obWNbbS52XXx8MCkrMTt9KTt9KTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MtdmVudWVzLWdyaWQiKS5pbm5lckhUTUw9dnMubWFwKHY9PigiPGRpdiBjbGFzcz1cIndjLXZjYXJkXCI+PGltZyBjbGFzcz1cIndjLXZpbWdcIiBzcmM9XCIiKyhWSU1HW3YuaWRdfHwiIikrIlwiIGFsdD1cIiIrKHYuc2QpKyJcIiBvbmVycm9yPVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPSdsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWJnMiksdmFyKC0tYmczKSknXCI+PGRpdiBjbGFzcz1cIndjLXZpbmZvXCI+PGgzPiIrKHYuc2QpKyI8L2gzPjxkaXYgY2xhc3M9XCJ3Yy12Y2l0eVwiPjxpbWcgc3JjPVwiIisoY2ZsKHYuY28pKSsiXCI+Iisodi5jaSkrIiwgIisodi5zdCkrIjwvZGl2PjxkaXYgY2xhc3M9XCJ3Yy12c3RhdHNcIj48c3Bhbj5DYXBhY2l0eTogPHN0cm9uZyBzdHlsZT1cImNvbG9yOnZhcigtLXQxKVwiPiIrKG5tKHYuY2FwKSkrIjwvc3Ryb25nPjwvc3Bhbj48c3Bhbj5NYXRjaGVzOiA8c3Ryb25nIHN0eWxlPVwiY29sb3I6dmFyKC0tdDEpXCI+IisobWNbdi5pZF18fDApKyI8L3N0cm9uZz48L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+IikpLmpvaW4oIiIpOwp9CgovLyBTaW11bGF0b3IKZnVuY3Rpb24gcG9pc3NvbihsKXtsZXQgTD1NYXRoLmV4cCgtbCksaz0wLHA9MTtkb3trKys7cCo9TWF0aC5yYW5kb20oKTt9d2hpbGUocD5MKTtyZXR1cm4gay0xO30KZnVuY3Rpb24gZXhwU2MoYSxiKXtyZXR1cm4gMS8oMStNYXRoLnBvdygxMCwoYi1hKS80MDApKTt9CmZ1bmN0aW9uIHNpbU0oYSxiLGtvKXsKICBjb25zdCBlPWV4cFNjKGEucCszMCxiLnApOwogIGxldCBoZz1wb2lzc29uKC40K2UqMi4yKSxhZz1wb2lzc29uKC40KygxLWUpKjIuMik7CiAgaWYoa28mJmhnPT09YWcpe2hnKz1wb2lzc29uKGV4cFNjKGEucCxiLnApKi42KTthZys9cG9pc3NvbigoMS1leHBTYyhhLnAsYi5wKSkqLjYpO2lmKGhnPT09YWcpe01hdGgucmFuZG9tKCk8ZT9oZysrOmFnKys7fX0KICByZXR1cm57aGcsYWcsdzpoZz5hZz9hOmFnPmhnP2I6bnVsbH07Cn0KZnVuY3Rpb24gY2FsY1N0KGdpZCxyZXMpewogIGNvbnN0IGc9R1JPVVBTLmZpbmQoZz0+Zy5pZD09PWdpZCk7Y29uc3Qgc3Q9e307CiAgZy50Yy5mb3JFYWNoKGM9PntzdFtjXT17YyxwOjAsdzowLGQ6MCxsOjAsZ2Y6MCxnYTowLGdkOjAscHRzOjB9O30pOwogIHJlcy5maWx0ZXIocj0+ci5nPT09Z2lkKS5mb3JFYWNoKHI9PnsKICAgIGNvbnN0IGg9c3Rbci5oXSxhPXN0W3IuYV07aWYoIWh8fCFhKXJldHVybjsKICAgIGgucCsrO2EucCsrO2guZ2YrPXIuaGc7aC5nYSs9ci5hZzthLmdmKz1yLmFnO2EuZ2ErPXIuaGc7CiAgICBpZihyLmhnPnIuYWcpe2gudysrO2gucHRzKz0zO2EubCsrO31lbHNlIGlmKHIuaGc8ci5hZyl7YS53Kys7YS5wdHMrPTM7aC5sKys7fWVsc2V7aC5kKys7YS5kKys7aC5wdHMrKzthLnB0cysrO30KICAgIGguZ2Q9aC5nZi1oLmdhO2EuZ2Q9YS5nZi1hLmdhOwogIH0pOwogIHJldHVybiBPYmplY3QudmFsdWVzKHN0KS5zb3J0KChhLGIpPT5iLnB0cy1hLnB0c3x8Yi5nZC1hLmdkfHxiLmdmLWEuZ2Z8fE1hdGgucmFuZG9tKCktLjUpOwp9CgovLyBPbGQgYXV0by1zaW0gcmVtb3ZlZCAtIGJyYWNrZXQgaXMgbm93IGludGVyYWN0aXZlCgpmdW5jdGlvbiBsYXVuY2hDb25mZXR0aSgpewogIGNvbnN0IGNzPVsiI2VmNDQ0NCIsIiNmOTczMTYiLCIjZWFiMzA4IiwiIzIyYzU1ZSIsIiMzYjgyZjYiLCIjOGI1Y2Y2IiwiI2VjNDg5OSIsIiNmYmJmMjQiXTsKICBmb3IobGV0IGk9MDtpPDYwO2krKyl7CiAgICBjb25zdCBlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlbC5jbGFzc05hbWU9IndjLWNvbmZldHRpIjsKICAgIGVsLnN0eWxlLmxlZnQ9TWF0aC5yYW5kb20oKSoxMDArInZ3IjtlbC5zdHlsZS50b3A9Ii0xMHB4IjsKICAgIGVsLnN0eWxlLmJhY2tncm91bmQ9Y3NbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmNzLmxlbmd0aCldOwogICAgZWwuc3R5bGUuYW5pbWF0aW9uRHVyYXRpb249KDIrTWF0aC5yYW5kb20oKSozKSsicyI7CiAgICBlbC5zdHlsZS5hbmltYXRpb25EZWxheT1NYXRoLnJhbmRvbSgpKjEuNSsicyI7CiAgICBlbC5zdHlsZS53aWR0aD0oNCtNYXRoLnJhbmRvbSgpKjgpKyJweCI7ZWwuc3R5bGUuaGVpZ2h0PSg0K01hdGgucmFuZG9tKCkqOCkrInB4IjsKICAgIGVsLnN0eWxlLmJvcmRlclJhZGl1cz1NYXRoLnJhbmRvbSgpPi41PyI1MCUiOiIycHgiOwogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbCk7c2V0VGltZW91dCgoKT0+ZWwucmVtb3ZlKCksNTAwMCk7CiAgfQp9CgovLyBTdGF0cwpmdW5jdGlvbiBpbml0U3RhdHMoKXsKICBjb25zdCBlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2Mtc3RhdHMtZ3JpZCIpOwogIGNvbnN0IHF0PVRFQU1TO2NvbnN0IGNmYz17fTtxdC5mb3JFYWNoKHQ9PntjZmNbdC5jZl09KGNmY1t0LmNmXXx8MCkrMTt9KTtjb25zdCBtYz1NYXRoLm1heCguLi5PYmplY3QudmFsdWVzKGNmYykpOwogIGNvbnN0IGdzPXt9O0dST1VQUy5mb3JFYWNoKGc9Pntjb25zdCBwdHM9Zy50Yy5tYXAoYz0+VChjKS5wKTtnc1tnLmlkXT17YXZnOnB0cy5yZWR1Y2UoKGEsYik9PmErYiwwKS9wdHMubGVuZ3RoLHRzOmcudGMubWFwKGM9PlQoYykpfTt9KTsKICBjb25zdCBzZz1PYmplY3QuZW50cmllcyhncykuc29ydCgoWyxhXSxbLGJdKT0+Yi5hdmctYS5hdmcpO2NvbnN0IGdvZD1zZ1swXSxlYXN5PXNnW3NnLmxlbmd0aC0xXTtjb25zdCBtYT1NYXRoLm1heCguLi5PYmplY3QudmFsdWVzKGdzKS5tYXAoZz0+Zy5hdmcpKTsKICBsZXQgaD0iIjsKICBoKz0iPGRpdiBjbGFzcz1cIndjLXNjYXJkXCI+PGgzPlRlYW1zIGJ5IENvbmZlZGVyYXRpb248L2gzPiI7CiAgT2JqZWN0LmVudHJpZXMoY2ZjKS5zb3J0KChbLGFdLFssYl0pPT5iLWEpLmZvckVhY2goKFtjZixjdF0pPT57aCs9KCI8ZGl2IGNsYXNzPVwid2MtYmFyLXJvd1wiPjxkaXYgY2xhc3M9XCJsYlwiPiIrKGNmKSsiPC9kaXY+PGRpdiBjbGFzcz1cImJyXCI+PGRpdiBjbGFzcz1cImJpXCIgc3R5bGU9XCJ3aWR0aDoiKyhjdC9tYyoxMDApKyIlO2JhY2tncm91bmQ6IisoQ0NbY2ZdfHwidmFyKC0tYWNjZW50KSIpKyJcIj4iKyhjdCkrIjwvZGl2PjwvZGl2PjwvZGl2PiIpO30pOwogIGgrPSI8L2Rpdj4iOwogIGgrPSgiPGRpdiBjbGFzcz1cIndjLXNjYXJkXCI+PGgzPkdyb3VwIERpZmZpY3VsdHk8L2gzPjxkaXYgY2xhc3M9XCJ3Yy1nb2RcIj48aDQ+R3JvdXAgb2YgRGVhdGg6IEdyb3VwICIrKGdvZFswXSkrIjwvaDQ+PGRpdiBjbGFzcz1cIndjLWdvZC10ZWFtc1wiPiIrKGdvZFsxXS50cy5tYXAodD0+KCI8c3BhbiBjbGFzcz1cIndjLWdvZC10XCI+PGltZyBzcmM9XCIiKyhmbCh0LmMpKSsiXCI+IisodC5uKSsiPC9zcGFuPiIpKS5qb2luKCIiKSkrIjwvZGl2PjxwIHN0eWxlPVwiZm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tdDMpO21hcmdpbi10b3A6NHB4XCI+QXZnOiAiKyhNYXRoLnJvdW5kKGdvZFsxXS5hdmcpKSsiIHB0czwvcD48L2Rpdj48ZGl2IGNsYXNzPVwid2MtZWFzeVwiPjxoND5Nb3N0IE9wZW46IEdyb3VwICIrKGVhc3lbMF0pKyI8L2g0PjxkaXYgY2xhc3M9XCJ3Yy1nb2QtdGVhbXNcIj4iKyhlYXN5WzFdLnRzLm1hcCh0PT4oIjxzcGFuIGNsYXNzPVwid2MtZ29kLXRcIj48aW1nIHNyYz1cIiIrKGZsKHQuYykpKyJcIj4iKyh0Lm4pKyI8L3NwYW4+IikpLmpvaW4oIiIpKSsiPC9kaXY+PHAgc3R5bGU9XCJmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10Myk7bWFyZ2luLXRvcDo0cHhcIj5Bdmc6ICIrKE1hdGgucm91bmQoZWFzeVsxXS5hdmcpKSsiIHB0czwvcD48L2Rpdj48L2Rpdj4iKTsKICBoKz0iPGRpdiBjbGFzcz1cIndjLXNjYXJkXCI+PGgzPkF2ZyBTdHJlbmd0aCBieSBHcm91cDwvaDM+IjsKICBzZy5mb3JFYWNoKChbZ2lkLGddKT0+e2grPSgiPGRpdiBjbGFzcz1cIndjLWJhci1yb3dcIj48ZGl2IGNsYXNzPVwibGJcIiBzdHlsZT1cIndpZHRoOjUwcHhcIj48c3BhbiBzdHlsZT1cImRpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7Ym9yZGVyLXJhZGl1czozcHg7YmFja2dyb3VuZDoiKyhHQ1tnaWRdKSsiO21hcmdpbi1yaWdodDo0cHhcIj48L3NwYW4+IisoZ2lkKSsiPC9kaXY+PGRpdiBjbGFzcz1cImJyXCI+PGRpdiBjbGFzcz1cImJpXCIgc3R5bGU9XCJ3aWR0aDoiKyhnLmF2Zy9tYSoxMDApKyIlO2JhY2tncm91bmQ6IisoR0NbZ2lkXSkrIlwiPiIrKE1hdGgucm91bmQoZy5hdmcpKSsiPC9kaXY+PC9kaXY+PC9kaXY+Iik7fSk7CiAgaCs9IjwvZGl2PiI7CiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy1zY2FyZFwiPjxoMz5Ub3AgMTAgUmFua2VkPC9oMz4iOwogIFsuLi5xdF0uc29ydCgoYSxiKT0+YS5yLWIucikuc2xpY2UoMCwxMCkuZm9yRWFjaCgodCxpKT0+e2NvbnN0IGc9dGcodC5jKTtoKz0oIjxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo1cHggMDsiKyhpPDk\/ImJvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlcikiOiIiKSsiXCI+PHNwYW4gc3R5bGU9XCJ3aWR0aDoyMnB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1hY2NlbnQyKTtmb250LXNpemU6MTJweFwiPiIrKHQucikrIjwvc3Bhbj48aW1nIHNyYz1cIiIrKGZsKHQuYykpKyJcIiBzdHlsZT1cIndpZHRoOjI0cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czoycHhcIj48c3BhbiBzdHlsZT1cImZsZXg6MTtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDBcIj4iKyh0Lm4pKyI8L3NwYW4+IisoZz8oIjxzcGFuIGNsYXNzPVwid2MtdHBpbGxcIiBzdHlsZT1cImJvcmRlci1jb2xvcjoiKyhHQ1tnXSkrIjtjb2xvcjoiKyhHQ1tnXSkrIlwiPkdycCAiKyhnKSsiPC9zcGFuPiIpOiIiKSsiPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10MylcIj4iKyhNYXRoLnJvdW5kKHQucCkpKyI8L3NwYW4+PC9kaXY+Iik7fSk7CiAgaCs9IjwvZGl2PiI7CiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy1zY2FyZFwiPjxoMz5MYXJnZXN0IFN0YWRpdW1zPC9oMz4iOwogIGNvbnN0IHN2PU9iamVjdC52YWx1ZXMoVkVOVUVTKS5zb3J0KChhLGIpPT5iLmNhcC1hLmNhcCk7Y29uc3QgbXhjPXN2WzBdLmNhcDsKICBzdi5zbGljZSgwLDgpLmZvckVhY2godj0+e2grPSgiPGRpdiBjbGFzcz1cIndjLWJhci1yb3dcIj48ZGl2IGNsYXNzPVwibGJcIiBzdHlsZT1cIndpZHRoOjkwcHg7Zm9udC1zaXplOjEwcHhcIj4iKyh2LmNpKSsiPC9kaXY+PGRpdiBjbGFzcz1cImJyXCI+PGRpdiBjbGFzcz1cImJpXCIgc3R5bGU9XCJ3aWR0aDoiKyh2LmNhcC9teGMqMTAwKSsiJTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudClcIj4iKyhubSh2LmNhcCkpKyI8L2Rpdj48L2Rpdj48L2Rpdj4iKTt9KTsKICBoKz0iPC9kaXY+IjsKICBoKz0iPGRpdiBjbGFzcz1cIndjLXNjYXJkXCI+PGgzPlRvdXJuYW1lbnQgVGltZWxpbmU8L2gzPiI7CiAgW3tsOiJHcm91cCBTdGFnZSIsZDoiSnVuIDExLTI3IixtOjcyLGM6InZhcigtLWFjY2VudCkifSx7bDoiUm91bmQgb2YgMzIiLGQ6Ikp1biAyOC1KdWwgMyIsbToxNixjOiJ2YXIoLS1ibHVlKSJ9LHtsOiJSb3VuZCBvZiAxNiIsZDoiSnVsIDQtNyIsbTo4LGM6InZhcigtLXB1cnBsZSkifSx7bDoiUXVhcnRlci1GaW5hbHMiLGQ6Ikp1bCA5LTExIixtOjQsYzoidmFyKC0tcGluaykifSx7bDoiU2VtaS1GaW5hbHMiLGQ6Ikp1bCAxNC0xNSIsbToyLGM6InZhcigtLW9yYW5nZSkifSx7bDoiM3JkIFBsYWNlIixkOiJKdWwgMTgiLG06MSxjOiJ2YXIoLS10ZWFsKSJ9LHtsOiJGaW5hbCIsZDoiSnVsIDE5IixtOjEsYzoidmFyKC0tZ29sZCkifV0uZm9yRWFjaCh0PT57aCs9KCI8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6NnB4IDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyKVwiPjxkaXYgc3R5bGU9XCJ3aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiIrKHQuYykrIjtmbGV4LXNocmluazowXCI+PC9kaXY+PGRpdiBzdHlsZT1cImZsZXg6MVwiPjxkaXYgc3R5bGU9XCJmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDBcIj4iKyh0LmwpKyI8L2Rpdj48ZGl2IHN0eWxlPVwiZm9udC1zaXplOjEwcHg7Y29sb3I6dmFyKC0tdDMpXCI+IisodC5kKSsiPC9kaXY+PC9kaXY+PGRpdiBzdHlsZT1cImZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMFwiPiIrKHQubSkrIjwvZGl2PjwvZGl2PiIpO30pOwogIGgrPSI8L2Rpdj4iOwogIGVsLmlubmVySFRNTD1oOwp9CgovLyBOYXYgb2JzZXJ2ZXIKZnVuY3Rpb24gaW5pdE5hdigpewogIGNvbnN0IHNlY3RzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZF49J3djLSddIik7CiAgY29uc3QgbGlua3M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLndjLW5hdi1saW5rcyBhIik7CiAgY29uc3Qgb2JzPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihlcz0+e2VzLmZvckVhY2goZT0+e2lmKGUuaXNJbnRlcnNlY3Rpbmcpe2xpbmtzLmZvckVhY2gobD0+bC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSk7Y29uc3QgbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCgiLndjLW5hdi1saW5rcyBhW2hyZWY9XCIjIisoZS50YXJnZXQuaWQpKyJcIl0iKSk7aWYobClsLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpO319KTt9LHtyb290TWFyZ2luOiItMzAlIDBweCAtMzAlIDBweCJ9KTsKICBbIndjLWhlcm8iLCJ3Yy1ncm91cHMiLCJ3Yy1zY2hlZHVsZSIsIndjLWJyYWNrZXQiLCJ3Yy10ZWFtcyIsIndjLXZlbnVlcyIsIndjLXNpbSIsIndjLXN0YXRzIl0uZm9yRWFjaChpZD0+e2NvbnN0IGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtpZihlbClvYnMub2JzZXJ2ZShlbCk7fSk7Cn0KCi8vIElOSVQgLSB3YWl0IGZvciBET00KZnVuY3Rpb24gd2MyNkJvb3QoKXsKICBpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjMjYtaHViIikpe3NldFRpbWVvdXQod2MyNkJvb3QsNTApO3JldHVybjt9CiAgdHJ5ewogICAgd2MyNkluaXRUaGVtZSgpO2luaXRDRCgpO2luaXRIZXJvU3RhdHMoKTtpbml0R3JvdXBzKCk7cmVuZGVyU2NoKCk7cmVuZGVyQnJhY2tldCgpO2luaXRUZWFtQ3RybHMoKTtyZW5kZXJUZWFtcygpO2luaXRWZW51ZXMoKTtpbml0U3RhdHMoKTtpbml0TmF2KCk7CiAgfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoIldDMjYgaW5pdCBlcnJvcjoiLGUpO30KfQppZihkb2N1bWVudC5yZWFkeVN0YXRlPT09ImxvYWRpbmciKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix3YzI2Qm9vdCk7fWVsc2V7d2MyNkJvb3QoKTt9Cn0pKCk7Cg==<\/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","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-04-30T14:11:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-30T14:36:45+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-04-30T14:11:24+00:00\",\"dateModified\":\"2026-04-30T14:36:45+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-04-30T14:11:24+00:00","article_modified_time":"2026-04-30T14:36:45+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-04-30T14:11:24+00:00","dateModified":"2026-04-30T14:36:45+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":2,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts\/40110\/revisions"}],"predecessor-version":[{"id":40155,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts\/40110\/revisions\/40155"}],"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}]}}