{"id":4429,"date":"2026-06-21T22:12:59","date_gmt":"2026-06-21T22:12:59","guid":{"rendered":"https:\/\/allenglish4u.com\/cambridge-ket-6-test-2-listening\/"},"modified":"2026-07-05T02:44:07","modified_gmt":"2026-07-05T02:44:07","slug":"cambridge-ket-6-test-2-listening","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/cambridge-ket-6-test-2-listening\/","title":{"rendered":"KET 6 Test 2 Listening"},"content":{"rendered":"<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400%3B500%3B600%3B700%3B800&family=Fraunces:opsz,wght@9..144,700&display=swap');\n\n.entry-content,.wp-block-post-content,.is-layout-constrained{max-width:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;padding-left:0 !important;padding-right:0 !important;}\n.wp-block-post-title{display:none !important;}\n\n:root{\n  --accent-1:#F97316;\n  --accent-2:#F43F5E;\n  --purple:#8B5CF6;\n  --gold:#F9C74F;\n  --green:#10B981;\n  --red:#EF4444;\n  --light-1:#FFF7ED;\n  --light-2:#FFFBF5;\n  --white:#FFFFFF;\n  --text:#0F172A;\n  --muted:#475569;\n  --subtle:#64748B;\n  --border:#E2E8F0;\n  --dark-1:#1B0F02;\n  --r-10:10px; --r-16:16px; --r-22:22px;\n  --sh-card:0 2px 8px rgba(0,0,0,.06);\n  --sh-lg:0 12px 40px rgba(0,0,0,.12);\n}\n*{margin:0;padding:0;box-sizing:border-box}\nhtml{scroll-behavior:smooth}\nbody{font-family:'Plus Jakarta Sans',system-ui,sans-serif !important;color:var(--text);background:var(--light-2);-webkit-font-smoothing:antialiased;overflow-x:hidden}\n.serif{font-family:'Fraunces',Georgia,serif !important;font-weight:700;letter-spacing:-.01em}\n.wrap{max-width:1080px;margin:0 auto;padding:0 24px}\na{color:inherit;text-decoration:none}\nbutton{font-family:inherit !important;cursor:pointer;border:none;background:none}\n\n\/* HEADER *\/\n.header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .28s ease;border-bottom:1px solid transparent}\n.header.solid{background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--border)}\n.header-inner{display:flex;align-items:center;gap:28px;height:72px;max-width:1200px;margin:0 auto;padding:0 24px}\n.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}\n.brand img{width:40px;height:40px;border-radius:11px;object-fit:cover;box-shadow:var(--sh-card)}\n.brand-name{font-weight:800;font-size:18px;color:#fff;transition:color .28s ease}\n.header.solid .brand-name{color:var(--text)}\n.nav{display:flex;align-items:center;gap:4px;margin-left:8px}\n.nav a{padding:9px 13px;font-size:14.5px;font-weight:600;color:rgba(255,255,255,.82);border-radius:var(--r-10);transition:all .16s ease}\n.nav a:hover{color:#fff;background:rgba(255,255,255,.08)}\n.header.solid .nav a{color:var(--muted)}\n.header.solid .nav a:hover{color:var(--text);background:var(--light-1)}\n.header-right{margin-left:auto;display:flex;align-items:center;gap:10px}\n.btn-back{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;font-weight:700;font-size:14px;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.22)}\n.header.solid .btn-back{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;border-color:transparent}\n.hamburger{display:none;width:40px;height:40px;border-radius:50%;color:#fff;align-items:center;justify-content:center}\n.header.solid .hamburger{color:var(--text)}\n\n\/* HERO *\/\n.hero{position:relative;min-height:300px;padding:110px 0 40px;background:linear-gradient(135deg,#8B5CF6 0%,#F43F5E 55%,#7C2D12 100%);color:#fff;overflow:hidden}\n.hero::before{content:\"\";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.15) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.10) 0%,transparent 50%);pointer-events:none}\n.hero .wrap{position:relative;z-index:1}\n.kicker{display:inline-block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;opacity:.92;margin-bottom:14px}\n.hero h1{font-size:clamp(32px,5vw,48px);line-height:1.05;margin-bottom:14px}\n.hero h1 span{font-style:italic;color:var(--gold)}\n.hero p.sub{font-size:16px;line-height:1.6;max-width:680px;opacity:.95;margin-bottom:18px}\n.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}\n.meta-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.24);font-size:13px;font-weight:600}\n.meta-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}\n\n\/* PLAYER STICKY *\/\n.player-bar{position:sticky;top:72px;z-index:50;background:#0F172A;color:#fff;box-shadow:0 4px 16px rgba(0,0,0,.2)}\n.player-inner{display:grid;grid-template-columns:340px 1fr;gap:20px;align-items:center;padding:14px 24px;max-width:1200px;margin:0 auto}\n.player-vid{aspect-ratio:16\/9;background:#000;border-radius:10px;overflow:hidden;width:340px;min-height:191px}\n.player-vid iframe{width:100%;height:100%;border:0;display:block}\n.player-controls h4{font-family:'Fraunces',serif !important;font-size:18px;margin-bottom:4px}\n.player-controls .pc-sub{font-size:13px;opacity:.75;margin-bottom:12px}\n.part-jumps{display:flex;flex-wrap:wrap;gap:8px}\n.jump-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.1);color:#fff;font-weight:600;font-size:13px;border:1px solid rgba(255,255,255,.2);transition:all .15s ease;cursor:pointer}\n.jump-btn:hover{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));border-color:transparent;transform:translateY(-1px)}\n.jump-btn .jt{font-weight:800;color:var(--gold);font-size:12px}\n.jump-btn.active{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));border-color:transparent}\n.player-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}\n.player-actions .ctrl-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border-radius:8px;background:rgba(255,255,255,.08);color:#fff;font-size:12px;font-weight:600;border:1px solid rgba(255,255,255,.14);cursor:pointer;transition:background .15s ease}\n.player-actions .ctrl-btn:hover{background:rgba(255,255,255,.18)}\n\n\/* SCORE BAR *\/\n.score-bar{background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:14px 0;position:sticky;top:262px;z-index:40}\n.sb-inner{display:flex;align-items:center;gap:16px;flex-wrap:wrap}\n.sb-prog{flex:1;min-width:200px}\n.sb-prog-bar{height:8px;background:var(--light-1);border-radius:999px;overflow:hidden}\n.sb-prog-fill{height:100%;background:linear-gradient(90deg,var(--accent-1),var(--accent-2));border-radius:999px;transition:width .3s ease;width:0}\n.sb-prog-label{font-size:12px;color:var(--muted);margin-top:5px;font-weight:600}\n.sb-score{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14.5px;color:var(--text)}\n.sb-score b{font-size:18px;color:var(--accent-1)}\n.btn-submit{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:999px;background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:700;font-size:14px;box-shadow:0 6px 18px rgba(249,115,22,.32);cursor:pointer}\n.btn-reset{padding:10px 16px;border-radius:999px;background:#fff;color:var(--muted);font-weight:600;font-size:13px;border:1px solid var(--border);cursor:pointer}\n.btn-reset:hover{background:var(--light-1);color:var(--text)}\n\n\/* PARTS *\/\n.part-section{padding:48px 0;border-bottom:1px solid var(--border)}\n.part-section:nth-of-type(even){background:#fff}\n.part-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:24px}\n.part-num{flex-shrink:0;width:60px;height:60px;border-radius:18px;background:linear-gradient(135deg,var(--accent-1),var(--accent-2));color:#fff;display:grid;place-items:center;font-family:'Fraunces',serif !important;font-weight:700;font-size:26px;box-shadow:0 8px 22px rgba(249,115,22,.3)}\n.part-head-text h2{font-size:26px;line-height:1.15;margin-bottom:6px}\n.part-head-text .qrange{display:inline-block;font-size:12.5px;font-weight:700;color:var(--accent-1);background:var(--light-1);padding:4px 10px;border-radius:999px;letter-spacing:.04em;margin-bottom:8px}\n.part-head-text p{color:var(--muted);font-size:15px;line-height:1.55;max-width:740px}\n.part-actions{display:flex;gap:10px;margin:0 0 16px 78px;flex-wrap:wrap}\n.act-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:#fff;border:1.5px solid var(--border);font-weight:600;font-size:13px;color:var(--text);cursor:pointer;transition:all .15s ease}\n.act-pill:hover{border-color:var(--accent-1);color:var(--accent-1)}\n.act-pill.active{background:var(--light-1);border-color:var(--accent-1);color:var(--accent-1)}\n.act-pill svg{flex-shrink:0}\n\n\/* Q items *\/\n.q-list{display:flex;flex-direction:column;gap:14px;margin-top:8px}\n.q-item{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 20px;display:flex;flex-direction:column;gap:12px;transition:border-color .2s ease,box-shadow .2s ease;scroll-margin-top:300px}\n.q-item.correct{border-color:var(--green);box-shadow:0 0 0 3px rgba(16,185,129,.12)}\n.q-item.wrong{border-color:var(--red);box-shadow:0 0 0 3px rgba(239,68,68,.12)}\n.q-text{font-size:15.5px;line-height:1.55;color:var(--text);display:flex;gap:10px;align-items:flex-start}\n.q-text b.qn{color:var(--accent-1);font-weight:800;min-width:30px}\n.q-opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}\n.opt{display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border-radius:12px;background:#F8FAFF;border:1.5px solid var(--border);font-weight:600;font-size:14px;color:var(--text);cursor:pointer;transition:all .15s ease;user-select:none;min-width:0}\n.opt:hover{background:var(--light-1);border-color:var(--accent-1)}\n.opt input{display:none}\n.opt .opt-letter{font-weight:800;color:var(--accent-1);background:#fff;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:12.5px;border:1px solid var(--border);flex-shrink:0}\n.opt.selected{background:linear-gradient(100deg,rgba(249,115,22,.12),rgba(244,63,94,.12));border-color:var(--accent-1)}\n.opt.selected .opt-letter{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;border-color:transparent}\n.opt.correct-opt{background:rgba(16,185,129,.12) !important;border-color:var(--green) !important}\n.opt.correct-opt .opt-letter{background:var(--green) !important;color:#fff !important;border-color:transparent !important}\n.opt.wrong-opt{background:rgba(239,68,68,.10) !important;border-color:var(--red) !important}\n.opt.wrong-opt .opt-letter{background:var(--red) !important;color:#fff !important;border-color:transparent !important}\n.feedback{font-size:13px;font-weight:600;display:none;padding:8px 12px;border-radius:8px;margin-top:4px}\n.q-item.answered .feedback{display:block}\n.q-item.correct .feedback{background:rgba(16,185,129,.12);color:#065F46}\n.q-item.wrong .feedback{background:rgba(239,68,68,.10);color:#991B1B}\n\n\/* Part 2 matching *\/\n.match-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:18px 0}\n.match-letter{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fff;border:1.5px solid var(--border);border-radius:12px;font-size:14px;font-weight:600;color:var(--text)}\n.match-letter b{color:var(--accent-1);background:var(--light-1);width:26px;height:26px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;font-weight:800}\n\n\/* input blanks *\/\n.input-blank{display:inline-block;min-width:140px;border:none;border-bottom:2px dashed var(--accent-1);background:transparent;font-family:inherit !important;font-size:15.5px;color:var(--text);font-weight:600;padding:2px 8px;margin:0 4px;text-align:center;outline:none}\n.input-blank:focus{border-bottom-style:solid;background:var(--light-1)}\n.input-blank.correct{border-bottom-color:var(--green);color:#065F46;background:rgba(16,185,129,.10)}\n.input-blank.wrong{border-bottom-color:var(--red);color:#991B1B;background:rgba(239,68,68,.08)}\n\n\/* Notes form *\/\n.form-card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;margin-top:14px;max-width:640px}\n.form-card h4{font-family:'Fraunces',serif !important;font-size:18px;color:var(--accent-2);margin-bottom:6px;border-bottom:2px solid var(--accent-1);padding-bottom:8px;display:inline-block;width:100%}\n.form-row{display:flex;gap:12px;align-items:center;margin-top:12px;flex-wrap:wrap}\n.form-row label{flex:0 0 220px;font-weight:600;color:var(--text);font-size:14.5px}\n.form-row .input-blank{flex:1;min-width:200px;text-align:left;font-size:14.5px}\n\n\/* transcript *\/\n.transcript-card{margin-top:18px;background:#FAFBFC;border:1.5px solid var(--border);border-radius:14px;padding:0;overflow:hidden;max-width:840px}\n.transcript-card.collapsed .ts-body{display:none}\n.transcript-card .ts-head{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;background:#fff;cursor:pointer;font-weight:700;font-size:14px;color:var(--accent-2);border-bottom:1px solid var(--border)}\n.transcript-card.collapsed .ts-head{border-bottom:none}\n.transcript-card .ts-head .chev{transition:transform .2s ease}\n.transcript-card.collapsed .ts-head .chev{transform:rotate(-90deg)}\n.transcript-card .ts-body{padding:16px 22px;font-size:14.5px;line-height:1.75;color:var(--text);max-height:380px;overflow-y:auto;background:#FAFBFC;font-family:'Courier New',monospace}\n.transcript-card .ts-body b{color:var(--accent-2);font-family:'Plus Jakarta Sans',sans-serif}\n.transcript-card .ts-body i{color:var(--muted);font-size:12.5px}\n\n\/* notes pad *\/\n.notes-pad{background:#FEF9E7;border:1.5px solid var(--gold);border-radius:14px;padding:14px 18px;margin-top:14px;max-width:640px}\n.notes-pad label{display:block;font-weight:700;font-size:13px;color:#7B5B00;margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}\n.notes-pad textarea{width:100%;min-height:80px;padding:10px;font-family:inherit !important;font-size:14px;line-height:1.5;border:1px solid #E8D88E;border-radius:8px;background:rgba(255,255,255,.7);color:var(--text);outline:none;resize:vertical}\n.notes-pad textarea:focus{border-color:var(--accent-1);background:#fff}\n\n\/* RESULTS *\/\n.results-banner{display:none;margin:32px auto;padding:30px;border-radius:22px;background:linear-gradient(135deg,#8B5CF6,#F43F5E);color:#fff;text-align:center;max-width:720px;box-shadow:0 16px 50px rgba(139,92,246,.3)}\n.results-banner.show{display:block}\n.results-banner h3{font-size:28px;font-family:'Fraunces',serif !important;margin-bottom:8px}\n.results-banner .score-big{font-size:60px;font-weight:800;line-height:1;margin:14px 0;font-family:'Fraunces',serif}\n.results-banner p{opacity:.95;font-size:15px}\n.score-parts{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:16px;background:rgba(0,0,0,.2);padding:12px;border-radius:12px}\n.score-parts .sp-item{text-align:center;font-size:12px;font-weight:600;opacity:.95}\n.score-parts .sp-item b{display:block;font-size:18px;font-family:'Fraunces',serif !important;margin-bottom:2px}\n\n\/* FOOTER *\/\n.footer{background:var(--dark-1);color:#9CA3AF;padding:36px 0;text-align:center;font-size:13.5px}\n.footer a{color:var(--gold);font-weight:600}\n\n\/* MOBILE *\/\n@media (max-width:880px){\n  .nav{display:none}\n  .hamburger{display:flex}\n  .player-inner{grid-template-columns:1fr;padding:12px 18px}\n  .player-vid{width:100%;min-height:0}\n  .hero{padding:110px 0 30px}\n  .part-actions{margin-left:0}\n  .form-row label{flex:1 1 100%}\n  .form-row .input-blank{width:100%}\n  .score-bar{top:auto;position:relative}\n  .part-head{flex-direction:column;gap:10px}\n  .part-num{width:50px;height:50px;font-size:22px}\n  .score-parts{grid-template-columns:repeat(5,1fr);font-size:10px}\n  .score-parts .sp-item b{font-size:14px}\n}\n\n.drawer{position:fixed;inset:0;background:rgba(15,23,42,.65);z-index:200;display:none;align-items:flex-start;justify-content:flex-end}\n.drawer.open{display:flex}\n.drawer-panel{width:280px;background:#fff;height:100%;padding:24px;display:flex;flex-direction:column;gap:8px}\n.drawer-panel a{padding:12px 14px;border-radius:10px;font-weight:600;color:var(--text)}\n.drawer-panel a:hover{background:var(--light-1)}\n.drawer-close{align-self:flex-end;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}\n<\/style>\n\n<!-- HEADER -->\n<header class=\"header\" id=\"hdr\">\n  <div class=\"header-inner\">\n    <a href=\"https:\/\/allenglish4u.com\/vi\/\" class=\"brand\">\n      <img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/04\/Transparent-background-MacBook-Pro-cua-Hang.png\" alt=\"AE4U\">\n      <span class=\"brand-name\">All English 4U<\/span>\n    <\/a>\n    <nav class=\"nav\">\n      <a href=\"https:\/\/allenglish4u.com\/vi\/grammar\/\">Ng\u1eef ph\u00e1p<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/vi\/ielts\/\">IELTS<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/vi\/toefl\/\">TOEFL<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/vi\/cambridge\/\" class=\"active\">Cambridge<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/vi\/celpip\/\">CELPIP<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/vi\/dictation\/\">Ch\u00ednh t\u1ea3 nghe<\/a>\n      <\/nav>\n    <div class=\"header-right\">\n      <a href=\"https:\/\/allenglish4u.com\/vi\/cambridge\/\" class=\"btn-back\">\n        <svg width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M19 12H5M11 18l-6-6 6-6\"\/><\/svg>\n        Back\n      <\/a>\n      <button class=\"hamburger\" id=\"hamb\" aria-label=\"Menu\">\n        <svg width=\"22\" height=\"22\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\"><path d=\"M3 6h18M3 12h18M3 18h18\"\/><\/svg>\n      <\/button>\n    <\/div>\n  <\/div>\n<\/header>\n\n<div class=\"drawer\" id=\"drawer\">\n  <div class=\"drawer-panel\">\n    <button class=\"drawer-close\" id=\"drawerClose\" aria-label=\"Close\">\n      <svg width=\"22\" height=\"22\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\"><path d=\"M18 6L6 18M6 6l12 12\"\/><\/svg>\n    <\/button>\n    <a href=\"https:\/\/allenglish4u.com\/vi\/grammar\/\">Ng\u1eef ph\u00e1p<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/vi\/ielts\/\">IELTS<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/vi\/toefl\/\">TOEFL<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/vi\/cambridge\/\">Cambridge<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/vi\/celpip\/\">CELPIP<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/vi\/dictation\/\">Ch\u00ednh t\u1ea3 nghe<\/a>\n    <\/div>\n<\/div>\n\n<!-- HERO -->\n<section class=\"hero\">\n  <div class=\"wrap\">\n    <span class=\"kicker\">Cambridge English &#183; Key (KET) 6<\/span>\n    <h1 class=\"serif\">KET 6 &mdash; Test 2 <span>Listening<\/span><\/h1>\n    <p class=\"sub\">Listen to 5 parts with 25 questions. Use the YouTube audio above, jump to each part, take notes, and get instant auto-grading.<\/p>\n    <div class=\"hero-meta\">\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>~30 minutes<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>5 Parts &#183; 25 Questions<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>Auto-grade<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>Transcript &amp; Notes<\/span>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- STICKY PLAYER -->\n<div class=\"player-bar\" id=\"playerBar\">\n  <div class=\"player-inner\">\n    <div class=\"player-vid\">\n      <iframe id=\"ytPlayer\" src=\"https:\/\/www.youtube.com\/embed\/PLACEHOLDER_T2?enablejsapi=1&#038;rel=0\" title=\"KET 6 Test 2 Listening\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n    <\/div>\n    <div class=\"player-controls\">\n      <h4>&#127911; Audio &mdash; KET 6 Listening Test 2<\/h4>\n      <div class=\"pc-sub\">Click a part below to jump to that section. Use YouTube&#8217;s speed control (gear icon) to slow down.<\/div>\n      <div class=\"part-jumps\">\n        <button class=\"jump-btn\" data-time=\"7\" data-part=\"intro\"><span class=\"jt\">0:07<\/span> Intro<\/button>\n        <button class=\"jump-btn\" data-time=\"23\" data-part=\"1\"><span class=\"jt\">0:23<\/span> Part 1<\/button>\n        <button class=\"jump-btn\" data-time=\"355\" data-part=\"2\"><span class=\"jt\">5:55<\/span> Part 2<\/button>\n        <button class=\"jump-btn\" data-time=\"571\" data-part=\"3\"><span class=\"jt\">9:31<\/span> Part 3<\/button>\n        <button class=\"jump-btn\" data-time=\"803\" data-part=\"4\"><span class=\"jt\">13:23<\/span> Part 4<\/button>\n        <button class=\"jump-btn\" data-time=\"1023\" data-part=\"5\"><span class=\"jt\">17:03<\/span> Part 5<\/button>\n      <\/div>\n      <div class=\"player-actions\">\n        <button class=\"ctrl-btn\" id=\"btnPause\">&#9208; Pause<\/button>\n        <button class=\"ctrl-btn\" id=\"btnPlay\">&#9654; Play<\/button>\n        <button class=\"ctrl-btn\" id=\"btnRewind\">&#9194; -10s<\/button>\n        <button class=\"ctrl-btn\" id=\"btnSlower\">&#128034; Slower<\/button>\n        <button class=\"ctrl-btn\" id=\"btnNormal\">&#9889; Normal<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- SCORE BAR -->\n<div class=\"score-bar\" id=\"scoreBar\">\n  <div class=\"wrap sb-inner\">\n    <div class=\"sb-score\">Score <b><span id=\"scoreNow\">0<\/span>\/25<\/b><\/div>\n    <div class=\"sb-prog\">\n      <div class=\"sb-prog-bar\"><div class=\"sb-prog-fill\" id=\"progFill\"><\/div><\/div>\n      <div class=\"sb-prog-label\"><span id=\"answeredCount\">0<\/span> of 25 answered<\/div>\n    <\/div>\n    <button class=\"btn-submit\" id=\"submitBtn\">\n      <svg width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg>\n      Submit &amp; Grade\n    <\/button>\n    <button class=\"btn-reset\" id=\"resetBtn\">Reset<\/button>\n  <\/div>\n<\/div>\n\n<!-- PART 1 -->\n<section class=\"part-section\" id=\"part1\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">1<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 1&#8211;5 &#183; 0:23 in audio<\/span>\n        <h2 class=\"serif\">Five short conversations<\/h2>\n        <p>You will hear five short conversations. You will hear each conversation twice. There is one question for each conversation. For questions 1&#8211;5, choose the right answer (A, B or C).<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"part-actions\">\n      <button class=\"act-pill\" data-time=\"23\" data-jump=\"1\">\n        <svg width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\"><polygon points=\"5 3 19 12 5 21 5 3\"\/><\/svg>\n        Replay Part 1 from start\n      <\/button>\n      <button class=\"act-pill ts-toggle\" data-target=\"ts1\">&#128220; Show transcript<\/button>\n    <\/div>\n    <div class=\"q-list\" id=\"part1List\"><\/div>\n\n    <div class=\"transcript-card collapsed\" id=\"ts1\">\n      <div class=\"ts-head\" data-toggle=\"ts1\"><span>&#128220; Part 1 transcript (for self-study after answering)<\/span><span class=\"chev\">&#9662;<\/span><\/div>\n      <div class=\"ts-body\">\n<p><i>Transcript for KET 6 will be added after audio is confirmed. The conversation structure follows standard KET Listening format.<\/i><\/p>\n<p><i>The answer is an example. Now we are ready to start. Look at question one.<\/i><\/p>\n<p><b>Q1 &#8212; What will they eat for dinner this evening?<\/b><\/p>\n<p><b>Mother:<\/b> What do you want for dinner this evening, Maria? We could have pizza &#8230; or chicken.<br>\n<b>Maria:<\/b> Mm, what about fish? I had a pizza last night.<br>\n<b>Mother:<\/b> OK. That&#8217;s easy to cook.<br>\n<b>Maria:<\/b> Good.<\/p>\n\n<p><b>Q2 &#8212; What time is it?<\/b><\/p>\n<p><b>Man:<\/b> Have you got the right time? I think my watch is wrong.<br>\n<b>Woman:<\/b> Er &#8212; it&#8217;s half past two.<br>\n<b>Man:<\/b> Ah &#8212; my watch keeps twenty past.<br>\n<b>Woman:<\/b> Well, it&#8217;s ten minutes slow then.<\/p>\n\n<p><b>Q3 &#8212; What&#8217;s Michelle going to read?<\/b><\/p>\n<p><b>Man:<\/b> Can I read your newspaper, Michelle?<br>\n<b>Michelle:<\/b> Didn&#8217;t you bring a book with you?<br>\n<b>Man:<\/b> Yes, but it&#8217;s not very interesting.<br>\n<b>Michelle:<\/b> Oh, here you are. I&#8217;ll read this letter from John.<\/p>\n\n<p><b>Q4 &#8212; How much did the tickets cost?<\/b><\/p>\n<p><b>Woman:<\/b> Oh hi &#8212; did you have a good time at the theatre last night?<br>\n<b>Man:<\/b> Well, the play was excellent but the tickets cost ninety dollars each.<br>\n<b>Woman:<\/b> That&#8217;s not too bad if the play was good.<br>\n<b>Man:<\/b> No, perhaps you&#8217;re right.<\/p>\n\n<p><b>Q5 &#8212; Where is the chemist&#8217;s?<\/b><\/p>\n<p><b>Man:<\/b> Excuse me, can you tell me where the chemist&#8217;s is, please?<br>\n<b>Woman:<\/b> Mm, just a moment. Oh yes! It&#8217;s past the post office, next to a big supermarket.<br>\n<b>Man:<\/b> Is it far from here?<br>\n<b>Woman:<\/b> No, just two minutes&#8217; walk.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- PART 2 -->\n<section class=\"part-section\" id=\"part2\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">2<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 6&#8211;10 &#183; 5:55 in audio<\/span>\n        <h2 class=\"serif\">Places to eat &#8212; what problem does each place have?<\/h2>\n        <p>You will hear a conversation about places to eat in town. What problem does each place have? For questions 6&#8211;10, write a letter A&#8211;H. You will hear the conversation twice.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"part-actions\">\n      <button class=\"act-pill\" data-time=\"355\" data-jump=\"2\"><svg width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\"><polygon points=\"5 3 19 12 5 21 5 3\"\/><\/svg> Replay Part 2 from start<\/button>\n      <button class=\"act-pill ts-toggle\" data-target=\"ts2\">&#128220; Show transcript<\/button>\n    <\/div>\n\n    <div class=\"match-grid\">\n      <div class=\"match-letter\"><b>A<\/b> closed<\/div>\n      <div class=\"match-letter\"><b>B<\/b> cold<\/div>\n      <div class=\"match-letter\"><b>C<\/b> dark<\/div>\n      <div class=\"match-letter\"><b>D<\/b> dirty<\/div>\n      <div class=\"match-letter\"><b>E<\/b> expensive<\/div>\n      <div class=\"match-letter\"><b>F<\/b> full<\/div>\n      <div class=\"match-letter\"><b>G<\/b> old<\/div>\n      <div class=\"match-letter\"><b>H<\/b> small<\/div>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part2List\"><\/div>\n\n    <div class=\"transcript-card collapsed\" id=\"ts2\">\n      <div class=\"ts-head\" data-toggle=\"ts2\"><span>&#128220; Part 2 transcript<\/span><span class=\"chev\">&#9662;<\/span><\/div>\n      <div class=\"ts-body\">\n<p><b>Emma:<\/b> Hi, Kate. What about a game of tennis some time?<br>\n<b>Kate:<\/b> I&#8217;d like to Emma, but not today. I&#8217;m really busy.<br>\n<b>Emma:<\/b> What are you doing?<br>\n<b>Kate:<\/b> <b>Sam<\/b>&#8216;s got toothache so I&#8217;m going to take him to the dentist this morning.<br>\n<b>Emma:<\/b> Oh dear!<br>\n<b>Kate:<\/b> &#8230; and then <b>mother<\/b>&#8216;s going to the hairdresser this afternoon and I said I would drive her home afterwards. Then after school Tanya wants me to help her buy some new shoes. She doesn&#8217;t like shopping alone.<br>\n<b>Emma:<\/b> My <b>daughter<\/b> doesn&#8217;t either. You&#8217;re going to the concert this evening, aren&#8217;t you?<br>\n<b>Kate:<\/b> I&#8217;m afraid not. But Len loves classical music, so he&#8217;ll go.<br>\n<b>Emma:<\/b> Oh good. By the way, has <b>Tom<\/b> started driving yet?<br>\n<b>Kate:<\/b> He&#8217;s having his first lesson today. He&#8217;s going to the driving school at lunchtime. He&#8217;s really excited about it.<br>\n<b>Emma:<\/b> I&#8217;m sure he is. How&#8217;s <b>Lara<\/b>? Does he still play golf?<br>\n<b>Kate:<\/b> No, not any more, but he&#8217;s started learning Spanish. Actually, he&#8217;s got a class this evening!<br>\n<b>Emma:<\/b> Good for him. Well, perhaps we can go to the tennis club tomorrow?<br>\n<b>Kate:<\/b> Yes, OK!<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- PART 3 -->\n<section class=\"part-section\" id=\"part3\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">3<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 11&#8211;15 &#183; 9:31 in audio<\/span>\n        <h2 class=\"serif\">French language course<\/h2>\n        <p>Listen to Joe talking to a friend about a French language course. For questions 11&#8211;15, choose A, B or C.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"part-actions\">\n      <button class=\"act-pill\" data-time=\"571\" data-jump=\"3\"><svg width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\"><polygon points=\"5 3 19 12 5 21 5 3\"\/><\/svg> Replay Part 3 from start<\/button>\n      <button class=\"act-pill ts-toggle\" data-target=\"ts3\">&#128220; Show transcript<\/button>\n    <\/div>\n    <div class=\"q-list\" id=\"part3List\"><\/div>\n\n    <div class=\"transcript-card collapsed\" id=\"ts3\">\n      <div class=\"ts-head\" data-toggle=\"ts3\"><span>&#128220; Part 3 transcript<\/span><span class=\"chev\">&#9662;<\/span><\/div>\n      <div class=\"ts-body\">\n<p><b>Policeman:<\/b> Good morning, madam. Can I help you?<br>\n<b>Woman:<\/b> Yes, I&#8217;ve lost my bag.<br>\n<b>Policeman:<\/b> Oh, I am sorry. Now, where did you lose it?<br>\n<b>Woman:<\/b> In the town centre. I had it when I got off the bus.<br>\n<b>Policeman:<\/b> Was there much money in the bag?<br>\n<b>Woman:<\/b> No, there wasn&#8217;t. I usually have forty or fifty pounds in it, but today I think there was only about twenty.<br>\n<b>Policeman:<\/b> What else was in the bag?<br>\n<b>Woman:<\/b> Just my gloves. I left my credit card and driving licence at home.<br>\n<b>Policeman:<\/b> Was the bag expensive?<br>\n<b>Woman:<\/b> No, it was an old one. It wasn&#8217;t big enough really.<br>\n<b>Policeman:<\/b> Now, what time did you lose it?<br>\n<b>Woman:<\/b> Well, I left home about three thirty and the bus takes half an hour, so I lost it about four o&#8217;clock.<br>\n<b>Policeman:<\/b> Right. Well, I&#8217;ll phone you tomorrow to tell you if we find it. Are you at home in the afternoon?<br>\n<b>Woman:<\/b> Sorry, I&#8217;m going out until the evening. Could you phone before ten in the morning?<br>\n<b>Policeman:<\/b> Certainly. I&#8217;ll call then.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- PART 4 -->\n<section class=\"part-section\" id=\"part4\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">4<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 16&#8211;20 &#183; 13:23 in audio<\/span>\n        <h2 class=\"serif\">Bus to Kendal<\/h2>\n        <p>You will hear a girl asking for information about going to Kendal by bus. Listen and complete questions 16&#8211;20. You will hear the conversation twice.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"part-actions\">\n      <button class=\"act-pill\" data-time=\"803\" data-jump=\"4\"><svg width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\"><polygon points=\"5 3 19 12 5 21 5 3\"\/><\/svg> Replay Part 4 from start<\/button>\n      <button class=\"act-pill ts-toggle\" data-target=\"ts4\">&#128220; Show transcript<\/button>\n    <\/div>\n\n    <div class=\"form-card\">\n      <h4>&#128203; Bus to Kendal<\/h4>\n      <div class=\"form-row\"><label><b>First bus leaves at:<\/b><\/label><span style=\"font-weight:600\">6.45 am<\/span><\/div>\n      <div class=\"form-row\"><label><b>16.<\/b> Cost of single ticket:<\/label>&#163; <input class=\"input-blank\" data-q=\"16\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label><b>17.<\/b> Buy ticket from:<\/label><input class=\"input-blank\" data-q=\"17\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label><b>18.<\/b> Address of bus station:<\/label><input class=\"input-blank\" data-q=\"18\" type=\"text\">  Street<\/div>\n      <div class=\"form-row\"><label><b>19.<\/b> Next to:<\/label><input class=\"input-blank\" data-q=\"19\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label><b>20.<\/b> At bus station, you can buy:<\/label><input class=\"input-blank\" data-q=\"20\" type=\"text\">  and newspapers<\/div>\n\n    <\/div>\n\n    <div class=\"notes-pad\">\n      <label>&#9999;&#65039; My notes for Part 4 (not graded)<\/label>\n      <textarea placeholder=\"Take notes while listening...\"><\/textarea>\n    <\/div>\n\n    <div class=\"transcript-card collapsed\" id=\"ts4\">\n      <div class=\"ts-head\" data-toggle=\"ts4\"><span>&#128220; Part 4 transcript<\/span><span class=\"chev\">&#9662;<\/span><\/div>\n      <div class=\"ts-body\">\n<p><b>Woman:<\/b> Brown&#8217;s Builders, good afternoon.<br>\n<b>Man:<\/b> Good afternoon. I&#8217;d like to speak to Miss Dixon, please.<br>\n<b>Woman:<\/b> I&#8217;m afraid she&#8217;s not in the office at the moment.<br>\n<b>Man:<\/b> Can you give her a message for me?<br>\n<b>Woman:<\/b> Yes, certainly. Who&#8217;s calling please?<br>\n<b>Man:<\/b> My name is <b>Hyde<\/b>.<br>\n<b>Woman:<\/b> Can you spell that, please?<br>\n<b>Man:<\/b> That&#8217;s H-Y-D-E.<br>\n<b>Woman:<\/b> Right, Mr Hyde.<br>\n<b>Man:<\/b> Could you tell her that the time of the meeting has changed?<br>\n<b>Woman:<\/b> Is that the meeting about the new houses?<br>\n<b>Man:<\/b> No, about the new <b>factory<\/b>.<br>\n<b>Woman:<\/b> I see. And when is it?<br>\n<b>Man:<\/b> It&#8217;s on Wednesday at <b>half past eleven<\/b>.<br>\n<b>Woman:<\/b> Does Miss Dixon know where the meeting is?<br>\n<b>Man:<\/b> I think so. It&#8217;s in our main office. Ask her to go to <b>Room 21<\/b>.<br>\n<b>Man:<\/b> And could you ask her to bring the <b>photographs<\/b> with her?<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- PART 5 -->\n<section class=\"part-section\" id=\"part5\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">5<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 21&#8211;25 &#183; 17:03 in audio<\/span>\n        <h2 class=\"serif\">Telephone message<\/h2>\n        <p>You will hear a telephone message about a trip to the theatre. Listen and complete questions 21&#8211;25. You will hear the information twice.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"part-actions\">\n      <button class=\"act-pill\" data-time=\"1023\" data-jump=\"5\"><svg width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\"><polygon points=\"5 3 19 12 5 21 5 3\"\/><\/svg> Replay Part 5 from start<\/button>\n      <button class=\"act-pill ts-toggle\" data-target=\"ts5\">&#128220; Show transcript<\/button>\n    <\/div>\n\n    <div class=\"form-card\">\n      <h4>&#128203; Telephone message<\/h4>\n      <div class=\"form-row\"><label><b>To:<\/b><\/label><span style=\"font-weight:600\">Jamie<\/span><\/div>\n      <div class=\"form-row\"><label><b>From:<\/b><\/label><span style=\"font-weight:600\">Michael<\/span><\/div>\n      <div class=\"form-row\"><label><b>21.<\/b> Name of play:<\/label>The  <input class=\"input-blank\" data-q=\"21\" type=\"text\">  Party<\/div>\n      <div class=\"form-row\"><label><b>22.<\/b> Date:<\/label><input class=\"input-blank\" data-q=\"22\" type=\"text\">  August<\/div>\n      <div class=\"form-row\"><label><b>23.<\/b> The theatre is opposite:<\/label>the  <input class=\"input-blank\" data-q=\"23\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label><b>24.<\/b> Meet Michael at:<\/label><input class=\"input-blank\" data-q=\"24\" type=\"text\">  pm<\/div>\n      <div class=\"form-row\"><label><b>25.<\/b> Mobile number:<\/label><input class=\"input-blank\" data-q=\"25\" type=\"text\"><\/div>\n\n    <\/div>\n\n    <div class=\"notes-pad\">\n      <label>&#9999;&#65039; My notes for Part 5 (not graded)<\/label>\n      <textarea placeholder=\"Take notes while listening...\"><\/textarea>\n    <\/div>\n\n    <div class=\"transcript-card collapsed\" id=\"ts5\">\n      <div class=\"ts-head\" data-toggle=\"ts5\"><span>&#128220; Part 5 transcript<\/span><span class=\"chev\">&#9662;<\/span><\/div>\n      <div class=\"ts-body\">\n<p><b>Tour guide:<\/b> Ladies and gentlemen. Here&#8217;s some information about our trip to Loch Ness tomorrow. It&#8217;s a long journey, about three hours each way, so we have to start early. That means we&#8217;ll have breakfast at <b>half past seven<\/b>. Don&#8217;t be late, please, as the bus has to leave at half past eight. When you finish breakfast, go to the <b>car park<\/b>. That&#8217;s where we&#8217;ll get on the bus. That&#8217;s the big car park behind the hotel. Remember to bring your <b>pink<\/b> tickets for lunch. We&#8217;ll have lunch at a restaurant near Loch Ness and you must show your pink ticket or you won&#8217;t get any lunch! If you haven&#8217;t got a pink ticket yet, you can get one from the <b>office<\/b>.<br>\nOh, one more thing. I know it&#8217;s summer but it can get quite cold in the mountains even in July, so bring a <b>jacket<\/b> with you. You&#8217;ll need one in the evening.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- RESULTS -->\n<div class=\"wrap\">\n  <div class=\"results-banner\" id=\"resultsBanner\">\n    <h3>&#127911; Your KET 6 Listening &#8212; Test 2 score<\/h3>\n    <div class=\"score-big\"><span id=\"finalScore\">0<\/span>\/25<\/div>\n    <p id=\"resultsMsg\">Great work! Scroll up to review each question.<\/p>\n    <div class=\"score-parts\" id=\"scoreParts\"><\/div>\n    <div style=\"margin-top:16px\">\n      <button class=\"btn-submit\" onclick=\"window.scrollTo({top:0,behavior:'smooth'})\" style=\"background:#fff;color:var(--accent-2)\">&#11014; Back to top<\/button>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- FOOTER -->\n<footer class=\"footer\">\n  <div class=\"wrap\">\n    <p>&#169; 2026 All English 4U &#183; <a href=\"https:\/\/allenglish4u.com\/vi\/cambridge\/\">All Cambridge Tests<\/a> &#183; <a href=\"https:\/\/allenglish4u.com\/vi\/cambridge-ket-6-test-2-rw\/\">KET 6 Test 2 Reading &amp; Writing<\/a> &#183; <a href=\"https:\/\/allenglish4u.com\/vi\/contact\/\">Li\u00ean h\u1ec7<\/a><\/p>\n  <\/div>\n<\/footer>\n\n<script>eval(atob('CihmdW5jdGlvbigpewp2YXIgaGRyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoZHInKTsKZnVuY3Rpb24gc2V0U29saWQoKXtpZih3aW5kb3cuc2Nyb2xsWT40MCloZHIuY2xhc3NMaXN0LmFkZCgnc29saWQnKTtlbHNlIGhkci5jbGFzc0xpc3QucmVtb3ZlKCdzb2xpZCcpfQp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJyxzZXRTb2xpZCx7cGFzc2l2ZTp0cnVlfSk7c2V0U29saWQoKTsKCnZhciBoYW1iPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoYW1iJyksZHJhd2VyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkcmF3ZXInKSxkQ2xvc2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RyYXdlckNsb3NlJyk7CmlmKGhhbWIpaGFtYi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtkcmF3ZXIuY2xhc3NMaXN0LmFkZCgnb3BlbicpfSk7CmlmKGRDbG9zZSlkQ2xvc2UuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7ZHJhd2VyLmNsYXNzTGlzdC5yZW1vdmUoJ29wZW4nKX0pOwppZihkcmF3ZXIpZHJhd2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbihlKXtpZihlLnRhcmdldD09PWRyYXdlcilkcmF3ZXIuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpfSk7CgovLyA9PT09PSBZb3VUdWJlIElGcmFtZSBBUEkgPT09PT0KdmFyIHl0UmVhZHk9ZmFsc2UsIHl0UGxheWVyPW51bGw7CnZhciB0YWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7IHRhZy5zcmM9J2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGknOwpkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRhZyk7CndpbmRvdy5vbllvdVR1YmVJZnJhbWVBUElSZWFkeT1mdW5jdGlvbigpewogIHl0UGxheWVyPW5ldyBZVC5QbGF5ZXIoJ3l0UGxheWVyJyx7ZXZlbnRzOntvblJlYWR5OmZ1bmN0aW9uKCl7eXRSZWFkeT10cnVlfX19KTsKfTsKZnVuY3Rpb24geXRTZWVrKHNlYyl7CiAgaWYoeXRSZWFkeSl7IHl0UGxheWVyLnNlZWtUbyhzZWMsIHRydWUpOyB5dFBsYXllci5wbGF5VmlkZW8oKTsgfQogIGVsc2V7IHZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd5dFBsYXllcicpOyBmLnNyYz1mLnNyYy5zcGxpdCgnPycpWzBdKyc\/ZW5hYmxlanNhcGk9MSZyZWw9MCZhdXRvcGxheT0xJnN0YXJ0PScrc2VjOyB9Cn0KZnVuY3Rpb24geXRQYXVzZSgpeyBpZih5dFJlYWR5KXl0UGxheWVyLnBhdXNlVmlkZW8oKTsgfQpmdW5jdGlvbiB5dFBsYXkoKXsgaWYoeXRSZWFkeSl5dFBsYXllci5wbGF5VmlkZW8oKTsgfQpmdW5jdGlvbiB5dFJld2luZCgpeyBpZih5dFJlYWR5KXsgdmFyIHQ9eXRQbGF5ZXIuZ2V0Q3VycmVudFRpbWUoKTsgeXRQbGF5ZXIuc2Vla1RvKE1hdGgubWF4KDAsdC0xMCksdHJ1ZSk7IH0gfQpmdW5jdGlvbiB5dFJhdGUocil7IGlmKHl0UmVhZHkpeXRQbGF5ZXIuc2V0UGxheWJhY2tSYXRlKHIpOyB9CgovLyBqdW1wIGJ1dHRvbnMKZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmp1bXAtYnRuJykuZm9yRWFjaChmdW5jdGlvbihiKXsKICBiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpewogICAgdmFyIHQ9cGFyc2VJbnQoYi5kYXRhc2V0LnRpbWUpOwogICAgeXRTZWVrKHQpOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmp1bXAtYnRuJykuZm9yRWFjaChmdW5jdGlvbih4KXt4LmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpfSk7CiAgICBiLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgaWYoYi5kYXRhc2V0LnBhcnQpaWYoYi5kYXRhc2V0LnBhcnQhPT0naW50cm8nKXsKICAgICAgdmFyIHNlYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFydCcrYi5kYXRhc2V0LnBhcnQpOwogICAgICBpZihzZWMpc2VjLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7CiAgICB9CiAgfSk7Cn0pOwpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYWN0LXBpbGxbZGF0YS10aW1lXScpLmZvckVhY2goZnVuY3Rpb24oYil7CiAgYi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsgeXRTZWVrKHBhcnNlSW50KGIuZGF0YXNldC50aW1lKSk7IH0pOwp9KTsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0blBhdXNlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLHl0UGF1c2UpOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuUGxheScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyx5dFBsYXkpOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuUmV3aW5kJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLHl0UmV3aW5kKTsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0blNsb3dlcicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe3l0UmF0ZSgwLjc1KX0pOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuTm9ybWFsJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7eXRSYXRlKDEpfSk7CgovLyB0cmFuc2NyaXB0IHRvZ2dsZQpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudHMtdG9nZ2xlLCAudHMtaGVhZCcpLmZvckVhY2goZnVuY3Rpb24oYil7CiAgYi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICAgIHZhciB0YXJnZXQ9Yi5kYXRhc2V0LnRhcmdldHx8Yi5kYXRhc2V0LnRvZ2dsZTsKICAgIGlmKCF0YXJnZXQpeyB2YXIgY2FyZD1iLmNsb3Nlc3QoJy50cmFuc2NyaXB0LWNhcmQnKTsgaWYoY2FyZCl0YXJnZXQ9Y2FyZC5pZDsgfQogICAgdmFyIGNhcmQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGFyZ2V0KTsKICAgIGlmKGNhcmQpY2FyZC5jbGFzc0xpc3QudG9nZ2xlKCdjb2xsYXBzZWQnKTsKICB9KTsKfSk7CgovLyA9PT09PSBRVUVTVElPTlMgREFUQSA9PT09PQp2YXIgUDEgPSBbCiAge246MSx0ZXh0OidXaGljaCBkYXkgaXMgdGhlIG1hblwncyBhcHBvaW50bWVudD8nLG9wdHM6W1snQScsJ1RodXJzZGF5J10sWydCJywnRnJpZGF5J10sWydDJywnTW9uZGF5J11dLGFuczonQyd9LAogIHtuOjIsdGV4dDonV2hhdCBpcyB0aGUgd29tYW4gZ29pbmcgdG8gZWF0Pycsb3B0czpbWydBJywnU291cCddLFsnQicsJ1Bhc3RhIC8gcGl6emEnXSxbJ0MnLCdTYWxhZCddXSxhbnM6J0InfSwKICB7bjozLHRleHQ6J1doaWNoIHRyYWluIHdpbGwgdGhlIHdvbWFuIHRha2U\/JyxvcHRzOltbJ0EnLCcxMS4zMCddLFsnQicsJzEyLjQ1J10sWydDJywnMi4xNSddXSxhbnM6J0InfSwKICB7bjo0LHRleHQ6J0hvdyBtdWNoIGRpZCB0aGUgbWFuIHBheSBmb3IgdGhlIGNhbWVyYT8nLG9wdHM6W1snQScsJ1x1MDBBMzE1MCddLFsnQicsJ1x1MDBBMzE2MCddLFsnQycsJ1x1MDBBMzE3NSddXSxhbnM6J0MnfSwKICB7bjo1LHRleHQ6J1doaWNoIHJhY2UgZGlkIHRoZSBnaXJsIHdpbj8nLG9wdHM6W1snQScsJ0N5Y2xpbmcgcmFjZSddLFsnQicsJ1N3aW1taW5nIHJhY2UnXSxbJ0MnLCdSdW5uaW5nIHJhY2UnXV0sYW5zOidBJ30sCl07Cgp2YXIgUDIgPSBbCiAge246NixwZXJzb246J0Jyb3duXCdzIENhZlx1MDBFOScsYW5zOidBJ30sCiAge246NyxwZXJzb246J1JpdmVycyBIb3RlbCcsYW5zOidEJ30sCiAge246OCxwZXJzb246J0JyaWRnZSBSZXN0YXVyYW50JyxhbnM6J0MnfSwKICB7bjo5LHBlcnNvbjonR2FyZGVuIEhvdXNlJyxhbnM6J0gnfSwKICB7bjoxMCxwZXJzb246J09wZXJhIENhZlx1MDBFOScsYW5zOidFJ30sCl07Cgp2YXIgUDMgPSBbCiAge246MTEsdGV4dDonSm9lXCdzIGNsYXNzIGJlZ2lucyBhdCcsb3B0czpbWydBJywnNi4zMCddLFsnQicsJzcuMTUnXSxbJ0MnLCc4LjMwJ11dLGFuczonQyd9LAogIHtuOjEyLHRleHQ6J0hvdyBtYW55IHN0dWRlbnRzIGFyZSBpbiB0aGUgY2xhc3M\/JyxvcHRzOltbJ0EnLCc5J10sWydCJywnMTQnXSxbJ0MnLCcxNiddXSxhbnM6J0EnfSwKICB7bjoxMyx0ZXh0OidXaGF0IG11c3Qgc3R1ZGVudHMgYnJpbmcgdG8gY2xhc3M\/JyxvcHRzOltbJ0EnLCdBIGRpY3Rpb25hcnknXSxbJ0InLCdBIGNvdXJzZWJvb2snXSxbJ0MnLCdBIG5vdGVib29rJ11dLGFuczonQid9LAogIHtuOjE0LHRleHQ6J0pvZSB3aWxsIHBheScsb3B0czpbWydBJywnXHUwMEEzMjUnXSxbJ0InLCdcdTAwQTMxNDAnXSxbJ0MnLCdcdTAwQTMxNzAnXV0sYW5zOidBJ30sCiAge246MTUsdGV4dDonVGhlIHRlYWNoZXJcJ3MgZmlyc3QgbGFuZ3VhZ2UgaXMnLG9wdHM6W1snQScsJ0VuZ2xpc2gnXSxbJ0InLCdGcmVuY2gnXSxbJ0MnLCdTcGFuaXNoJ11dLGFuczonQid9LApdOwoKdmFyIFA0QW5zID0gewogIDE2OlsnNi4yNScsJ1x1MDBBMzYuMjUnLCdzaXggcG91bmRzIHR3ZW50eS1maXZlJywnNjI1J10sCiAgMTc6Wydkcml2ZXInLCd0aGUgZHJpdmVyJywnZnJvbSB0aGUgZHJpdmVyJ10sCiAgMTg6WydnYXRsZXknLCdnYXRsZXkgc3RyZWV0JywnZ2FzJywnZ2FzIHN0cmVldCddLAogIDE5OlsnbWFya2V0JywndGhlIG1hcmtldCcsJ3Bvc3Qgb2ZmaWNlJywndGhlIHBvc3Qgb2ZmaWNlJ10sCiAgMjA6WydzYW5kd2ljaGVzJywnc2FuZHdpY2gnLCdkcmlua3MnLCdzbmFja3MnXSwKfTsKdmFyIFA1QW5zID0gewogIDIxOlsnZGlubmVyJywndGhlIGRpbm5lciddLAogIDIyOlsnNnRoJywnc2l4dGgnLCc2J10sCiAgMjM6WydtdXNldW0nLCd0aGUgbXVzZXVtJywnbGlicmFyeScsJ3RoZSBsaWJyYXJ5J10sCiAgMjQ6WyczLjMwJywnMzozMCcsJ2hhbGYgcGFzdCB0aHJlZScsJ3RocmVlIHRoaXJ0eSddLAogIDI1OlsnMDcxMjIgMzIxOCcsJzA3MTIyMzIxOCcsJzA3MTIyLTMyMTgnLCcwNzEyIDIzMjE4J10sCn07CgovLyA9PT09PSBSZW5kZXIgPT09PT0KZnVuY3Rpb24gZXNjYXBlSHRtbChzKXtyZXR1cm4gU3RyaW5nKHMpLnJlcGxhY2UoL1smPD4iJ10vZyxmdW5jdGlvbihjKXtyZXR1cm57JyYnOicmYW1wOycsJzwnOicmbHQ7JywnPic6JyZndDsnLCciJzonJnF1b3Q7JywiJyI6JyYjMzk7J31bY119KX0KZnVuY3Rpb24gcmVuZGVyTUNRKGxpc3RFbCwgZGF0YSl7CiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHEpewogICAgdmFyIGRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgZGl2LmNsYXNzTmFtZT0ncS1pdGVtJzsgZGl2LmlkPSdxJytxLm47IGRpdi5kYXRhc2V0LnFpZD1xLm47CiAgICB2YXIgb3B0c0hUTUw9Jyc7CiAgICBxLm9wdHMuZm9yRWFjaChmdW5jdGlvbihvKXsKICAgICAgb3B0c0hUTUwgKz0gJzxsYWJlbCBjbGFzcz0ib3B0IiBkYXRhLWxldHRlcj0iJytvWzBdKyciPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icScrcS5uKyciIHZhbHVlPSInK29bMF0rJyI+PHNwYW4gY2xhc3M9Im9wdC1sZXR0ZXIiPicrb1swXSsnPC9zcGFuPiAnK2VzY2FwZUh0bWwob1sxXSkrJzwvbGFiZWw+JzsKICAgIH0pOwogICAgZGl2LmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJxLXRleHQiPjxiIGNsYXNzPSJxbiI+JytxLm4rJy48L2I+PHNwYW4+Jytlc2NhcGVIdG1sKHEudGV4dCkrJzwvc3Bhbj48L2Rpdj4nKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJxLW9wdHMiPicrb3B0c0hUTUwrJzwvZGl2PicrCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZlZWRiYWNrIj48L2Rpdj4nOwogICAgbGlzdEVsLmFwcGVuZENoaWxkKGRpdik7CiAgfSk7Cn0KLy8gUGFydCAyIG1hdGNoaW5nOiBlYWNoIHBlcnNvbiBcdTIxOTIgY2hvb3NlIEEtSApmdW5jdGlvbiByZW5kZXJNYXRjaGluZyhsaXN0RWwsIGRhdGEpewogIGRhdGEuZm9yRWFjaChmdW5jdGlvbihxKXsKICAgIHZhciBkaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IGRpdi5jbGFzc05hbWU9J3EtaXRlbSc7IGRpdi5pZD0ncScrcS5uOyBkaXYuZGF0YXNldC5xaWQ9cS5uOwogICAgdmFyIG9wdHNIVE1MPScnOwogICAgWydBJywnQicsJ0MnLCdEJywnRScsJ0YnLCdHJywnSCddLmZvckVhY2goZnVuY3Rpb24oTCl7CiAgICAgIG9wdHNIVE1MICs9ICc8bGFiZWwgY2xhc3M9Im9wdCIgZGF0YS1sZXR0ZXI9IicrTCsnIj48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InEnK3EubisnIiB2YWx1ZT0iJytMKyciPjxzcGFuIGNsYXNzPSJvcHQtbGV0dGVyIj4nK0wrJzwvc3Bhbj48L2xhYmVsPic7CiAgICB9KTsKICAgIGRpdi5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icS10ZXh0Ij48YiBjbGFzcz0icW4iPicrcS5uKycuPC9iPjxzcGFuPicrZXNjYXBlSHRtbChxLnBlcnNvbikrJzwvc3Bhbj48L2Rpdj4nKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJxLW9wdHMiPicrb3B0c0hUTUwrJzwvZGl2PicrCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZlZWRiYWNrIj48L2Rpdj4nOwogICAgbGlzdEVsLmFwcGVuZENoaWxkKGRpdik7CiAgfSk7Cn0KCnJlbmRlck1DUShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFydDFMaXN0JyksUDEpOwpyZW5kZXJNYXRjaGluZyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFydDJMaXN0JyksUDIpOwpyZW5kZXJNQ1EoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcnQzTGlzdCcpLFAzKTsKCi8vID09PT09IFdpcmUgY2xpY2tzID09PT09CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHQnKS5mb3JFYWNoKGZ1bmN0aW9uKG9wdCl7CiAgb3B0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbihlKXsKICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgIHZhciBpbnB1dD1vcHQucXVlcnlTZWxlY3RvcignaW5wdXQnKTsKICAgIHZhciBncm91cD1vcHQucGFyZW50RWxlbWVudDsKICAgIGdyb3VwLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHQnKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe28uY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0ZWQnKX0pOwogICAgb3B0LmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7CiAgICBpbnB1dC5jaGVja2VkPXRydWU7CiAgICB1cGRhdGVQcm9ncmVzcygpOwogIH0pOwp9KTsKZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmlucHV0LWJsYW5rJykuZm9yRWFjaChmdW5jdGlvbihlbCl7CiAgZWwuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLHVwZGF0ZVByb2dyZXNzKTsKfSk7CgpmdW5jdGlvbiBnZXRNY3EocWlkKXt2YXIgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJxJytxaWQrJyJdOmNoZWNrZWQnKTsgcmV0dXJuIHM\/cy52YWx1ZTpudWxsfQpmdW5jdGlvbiBnZXRJbnAocWlkKXt2YXIgZWw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmlucHV0LWJsYW5rW2RhdGEtcT0iJytxaWQrJyJdJyk7IHJldHVybiBlbD9lbC52YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLixdJC8sJycpOicnfQpmdW5jdGlvbiBhbnN3ZXJlZCgpewogIHZhciBuPTA7CiAgZm9yKHZhciBpPTE7aTw9MTU7aSsrKWlmKGdldE1jcShpKSluKys7CiAgZm9yKHZhciBqPTE2O2o8PTI1O2orKylpZihnZXRJbnAoaikpbisrOwogIHJldHVybiBuOwp9CmZ1bmN0aW9uIHVwZGF0ZVByb2dyZXNzKCl7CiAgdmFyIGE9YW5zd2VyZWQoKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYW5zd2VyZWRDb3VudCcpLnRleHRDb250ZW50PWE7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2dGaWxsJykuc3R5bGUud2lkdGg9KGEvMjUqMTAwKSsnJSc7Cn0KCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJtaXRCdG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICB2YXIgc2NvcmU9MCwgcGFydFNjb3Jlcz17MTowLDI6MCwzOjAsNDowLDU6MH07CiAgLy8gTUNRIHBhcnRzIDEsIDMKICBbUDEsUDNdLmZvckVhY2goZnVuY3Rpb24ocGFydCl7CiAgICBwYXJ0LmZvckVhY2goZnVuY3Rpb24ocSl7CiAgICAgIHZhciB2PWdldE1jcShxLm4pLCBpdGVtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdxJytxLm4pOwogICAgICBpZighaXRlbSlyZXR1cm47CiAgICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgnYW5zd2VyZWQnKTsKICAgICAgaXRlbS5xdWVyeVNlbGVjdG9yQWxsKCcub3B0JykuZm9yRWFjaChmdW5jdGlvbihvKXsKICAgICAgICB2YXIgTD1vLmRhdGFzZXQubGV0dGVyOwogICAgICAgIGlmKEw9PT1xLmFucylvLmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3Qtb3B0Jyk7CiAgICAgICAgaWYodj09PUwpaWYoTCE9PXEuYW5zKW8uY2xhc3NMaXN0LmFkZCgnd3Jvbmctb3B0Jyk7CiAgICAgIH0pOwogICAgICB2YXIgZmI9aXRlbS5xdWVyeVNlbGVjdG9yKCcuZmVlZGJhY2snKTsKICAgICAgaWYodj09PXEuYW5zKXtzY29yZSsrOyBpdGVtLmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3QnKTsgZmIudGV4dENvbnRlbnQ9J1x1MjcxNCBDb3JyZWN0IFx1MjAxNCAnK3EuYW5zOyBpZihxLm48PTUpcGFydFNjb3Jlc1sxXSsrOyBlbHNlIHBhcnRTY29yZXNbM10rKzt9CiAgICAgIGVsc2V7aXRlbS5jbGFzc0xpc3QuYWRkKCd3cm9uZycpOyBmYi50ZXh0Q29udGVudD0nXHUyNzE4IFdyb25nIFx1MjAxNCBjb3JyZWN0IGFuc3dlcjogJytxLmFucysodj8nICh5b3UgY2hvc2UgJyt2KycpJzonIChubyBhbnN3ZXIpJyl9CiAgICB9KTsKICB9KTsKICAvLyBQYXJ0IDIgbWF0Y2hpbmcKICBQMi5mb3JFYWNoKGZ1bmN0aW9uKHEpewogICAgdmFyIHY9Z2V0TWNxKHEubiksIGl0ZW09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3EnK3Eubik7CiAgICBpZighaXRlbSlyZXR1cm47CiAgICBpdGVtLmNsYXNzTGlzdC5hZGQoJ2Fuc3dlcmVkJyk7CiAgICBpdGVtLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHQnKS5mb3JFYWNoKGZ1bmN0aW9uKG8pewogICAgICB2YXIgTD1vLmRhdGFzZXQubGV0dGVyOwogICAgICBpZihMPT09cS5hbnMpby5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0LW9wdCcpOwogICAgICBpZih2PT09TClpZihMIT09cS5hbnMpby5jbGFzc0xpc3QuYWRkKCd3cm9uZy1vcHQnKTsKICAgIH0pOwogICAgdmFyIGZiPWl0ZW0ucXVlcnlTZWxlY3RvcignLmZlZWRiYWNrJyk7CiAgICBpZih2PT09cS5hbnMpe3Njb3JlKys7IHBhcnRTY29yZXNbMl0rKzsgaXRlbS5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0Jyk7IGZiLnRleHRDb250ZW50PSdcdTI3MTQgQ29ycmVjdCBcdTIwMTQgJytxLmFuczt9CiAgICBlbHNle2l0ZW0uY2xhc3NMaXN0LmFkZCgnd3JvbmcnKTsgZmIudGV4dENvbnRlbnQ9J1x1MjcxOCBXcm9uZyBcdTIwMTQgY29ycmVjdCBhbnN3ZXI6ICcrcS5hbnMrKHY\/JyAoeW91IGNob3NlICcrdisnKSc6JyAobm8gYW5zd2VyKScpfQogIH0pOwogIC8vIFBhcnQgNCBpbnB1dHMKICBPYmplY3Qua2V5cyhQNEFucykuZm9yRWFjaChmdW5jdGlvbihxaWQpewogICAgdmFyIHY9Z2V0SW5wKHFpZCksIGVsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5pbnB1dC1ibGFua1tkYXRhLXE9IicrcWlkKyciXScpLCBhY2NlcHRlZD1QNEFuc1txaWRdOwogICAgaWYoIWVsKXJldHVybjsKICAgIHZhciBvaz1hY2NlcHRlZC5pbmRleE9mKHYpPj0wOwogICAgaWYob2spe3Njb3JlKys7IHBhcnRTY29yZXNbNF0rKzsgZWwuY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpfSBlbHNlIHtlbC5jbGFzc0xpc3QuYWRkKCd3cm9uZycpOyBlbC50aXRsZT0nQ29ycmVjdDogJythY2NlcHRlZC5zbGljZSgwLDMpLmpvaW4oJyAvICcpfQogIH0pOwogIC8vIFBhcnQgNSBpbnB1dHMKICBPYmplY3Qua2V5cyhQNUFucykuZm9yRWFjaChmdW5jdGlvbihxaWQpewogICAgdmFyIHY9Z2V0SW5wKHFpZCksIGVsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5pbnB1dC1ibGFua1tkYXRhLXE9IicrcWlkKyciXScpLCBhY2NlcHRlZD1QNUFuc1txaWRdOwogICAgaWYoIWVsKXJldHVybjsKICAgIHZhciBvaz1hY2NlcHRlZC5pbmRleE9mKHYpPj0wOwogICAgaWYob2spe3Njb3JlKys7IHBhcnRTY29yZXNbNV0rKzsgZWwuY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpfSBlbHNlIHtlbC5jbGFzc0xpc3QuYWRkKCd3cm9uZycpOyBlbC50aXRsZT0nQ29ycmVjdDogJythY2NlcHRlZC5zbGljZSgwLDMpLmpvaW4oJyAvICcpfQogIH0pOwoKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NvcmVOb3cnKS50ZXh0Q29udGVudD1zY29yZTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmluYWxTY29yZScpLnRleHRDb250ZW50PXNjb3JlOwogIHZhciBwY3Q9TWF0aC5yb3VuZChzY29yZS8yNSoxMDApOwogIHZhciBtc2cgPSBwY3Q+PTg1ID8gJ1x1ezFGM0M2fSBFeGNlbGxlbnQhIFlvdXIgbGlzdGVuaW5nIGlzIHN0cm9uZyBcdTIwMTQgeW91IHVuZGVyc3RhbmQgdGhlIGF1ZGlvIHZlcnkgd2VsbC4nCiAgICAgICAgICA6IHBjdD49NzAgPyAnXHV7MUY0NER9IEdvb2Qgam9iISBUcnkgdGhlIGhhcmRlciBwYXJ0cyAoNC01KSBvbmNlIG1vcmUgdG8gZ2V0IGV2ZW4gYmV0dGVyLicKICAgICAgICAgIDogcGN0Pj01MCA\/ICdcdXsxRjREQX0gS2VlcCBwcmFjdGlzaW5nIFx1MjAxNCByZS1saXN0ZW4gdG8gdGhlIHBhcnRzIHdoZXJlIHlvdSBtaXNzZWQgYW5zd2Vycy4nCiAgICAgICAgICA6ICdcdXsxRjRBQX0gRG9uXHUyMDE5dCB3b3JyeS4gVHJ5IHNsb3dpbmcgdGhlIGF1ZGlvIChcdXsxRjQyMn0gYnV0dG9uKSBhbmQgdXNlIHRoZSB0cmFuc2NyaXB0IHRvIHN0dWR5Lic7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHNNc2cnKS50ZXh0Q29udGVudD1tc2c7CiAgdmFyIHNwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njb3JlUGFydHMnKTsKICBzcC5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0ic3AtaXRlbSI+PGI+JytwYXJ0U2NvcmVzWzFdKycvNTwvYj5QYXJ0IDE8L2Rpdj4nKwogICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJzcC1pdGVtIj48Yj4nK3BhcnRTY29yZXNbMl0rJy81PC9iPlBhcnQgMjwvZGl2PicrCiAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InNwLWl0ZW0iPjxiPicrcGFydFNjb3Jlc1szXSsnLzU8L2I+UGFydCAzPC9kaXY+JysKICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0ic3AtaXRlbSI+PGI+JytwYXJ0U2NvcmVzWzRdKycvNTwvYj5QYXJ0IDQ8L2Rpdj4nKwogICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJzcC1pdGVtIj48Yj4nK3BhcnRTY29yZXNbNV0rJy81PC9iPlBhcnQgNTwvZGl2Pic7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHNCYW5uZXInKS5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7CiAgc2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzQmFubmVyJykuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidjZW50ZXInfSl9LDEyMCk7Cn0pOwoKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0QnRuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7CiAgaWYoIWNvbmZpcm0oJ1Jlc2V0IGFsbCBhbnN3ZXJzPyBZb3VyIG5vdGVzIHdpbGwgYWxzbyBiZSBjbGVhcmVkLicpKXJldHVybjsKICBsb2NhdGlvbi5yZWxvYWQoKTsKfSk7Cn0pKCk7Cg=='));<\/script>","protected":false},"excerpt":{"rendered":"<p>All English 4U Grammar IELTS TOEFL Cambridge CELPIP Dictation Back Grammar IELTS TOEFL Cambridge CELPIP Dictation Cambridge English &#183; Key (KET) 6 KET 6 &mdash; Test 2 Listening Listen to 5 parts with 25 questions. Use the YouTube audio above, jump to each part, take notes, and get instant auto-grading. ~30 minutes 5 Parts &#183; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-title","meta":{"footnotes":""},"class_list":["post-4429","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/4429","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/comments?post=4429"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/4429\/revisions"}],"predecessor-version":[{"id":5886,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/4429\/revisions\/5886"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=4429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}