{"id":1475,"date":"2026-06-04T14:25:09","date_gmt":"2026-06-04T14:25:09","guid":{"rendered":"https:\/\/vacapital.ca\/?page_id=1475"},"modified":"2026-06-08T17:55:09","modified_gmt":"2026-06-08T17:55:09","slug":"calculator","status":"publish","type":"page","link":"https:\/\/vacapital.ca\/fr\/calculator\/","title":{"rendered":"Calculatrice"},"content":{"rendered":"\n<div style=\"position: absolute; left: -9999px; top: -9999px; width: 1px; height: 1px; overflow: hidden;\" aria-hidden=\"true\">\n  <script src=\"https:\/\/www.thefinancials.com\/Widget.aspx?pid=VACAP&amp;wid=0387908207&amp;style=Ribbon_Stacked&amp;mode=js\"><\/script>\n<\/div>\n\n\n\n<style>\n#mortgage-calc-app {\n    --bg: #1a1a1a;\n    --bg-card: #2f3636;\n    --bg-card-soft: #3a4141;\n    --ink: #f5f1ea;\n    --ink-strong: #ffffff;\n    --ink-soft: #aab1b0;\n    --ink-muted: #8a9090;\n    --line: #404848;\n    --line-soft: #353c3c;\n    --accent: #00874e;\n    --accent-deep: #0f411e;\n    --accent-soft: rgba(0,135,78,0.18);\n    --accent-bright: #5dd8a3;\n    --shadow: 0 1px 0 rgba(0,0,0,0.4), 0 12px 40px -12px rgba(0,0,0,0.5);\n    --font-sans: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    --font-serif: 'Libre Baskerville', Georgia, 'Times New Roman', serif;\n    font-family: var(--font-sans);\n    font-weight: 400;\n    background: var(--bg);\n    color: var(--ink);\n    font-size: 16px;\n    line-height: 1.55;\n    padding: 32px 24px 48px;\n    border-radius: 8px;\n    background-image:\n      radial-gradient(circle at 15% 10%, rgba(0,135,78,0.08), transparent 45%),\n      radial-gradient(circle at 85% 80%, rgba(0,135,78,0.05), transparent 55%);\n  }\n  #mortgage-calc-app *, #mortgage-calc-app *::before, #mortgage-calc-app *::after { box-sizing: border-box; }\n  #mortgage-calc-app .shell { max-width: 1180px; margin: 0 auto; }\n\n  #mortgage-calc-app header.top { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 28px; flex-wrap: wrap; }\n  #mortgage-calc-app .brand-mark { display: flex; align-items: center; gap: 14px; }\n  #mortgage-calc-app .brand-mark .dot { width: 14px; height: 14px; border-radius: 50%; background: var(--accent-bright); box-shadow: 0 0 0 4px var(--accent-soft); }\n  #mortgage-calc-app .brand-mark .label { font-family: 'Courier New', monospace; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-muted); }\n  #mortgage-calc-app h1 {\n    font-family: var(--font-serif);\n    font-weight: 400;\n    font-size: 40px;\n    line-height: 1.1;\n    margin: 10px 0 6px;\n    letter-spacing: -0.01em;\n    color: var(--ink-strong);\n  }\n  #mortgage-calc-app .sub { color: var(--ink-soft); font-size: 16px; max-width: 620px; margin: 0; font-weight: 400; }\n\n  #mortgage-calc-app .tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin-bottom: 28px; flex-wrap: wrap; padding: 0; }\n  #mortgage-calc-app .tab {\n    background: none; border: none; padding: 14px 18px;\n    font-family: var(--font-sans); font-size: 15px; font-weight: 500;\n    color: var(--ink-muted); cursor: pointer; position: relative;\n    transition: color .2s;\n    border-radius: 0;\n    text-transform: none;\n    letter-spacing: 0.01em;\n  }\n  #mortgage-calc-app .tab:hover { color: var(--ink); background: none; }\n  #mortgage-calc-app .tab.active { color: var(--ink-strong); font-weight: 600; }\n  #mortgage-calc-app .tab.active::after {\n    content: ''; position: absolute; left: 16px; right: 16px; bottom: -1px;\n    height: 2px; background: var(--accent-bright);\n  }\n  #mortgage-calc-app .tab .num {\n    font-family: 'Courier New', monospace; font-size: 11px;\n    margin-right: 8px; color: var(--ink-muted); letter-spacing: 0.05em;\n    font-weight: 400;\n  }\n  #mortgage-calc-app .tab.active .num { color: var(--accent-bright); }\n\n  #mortgage-calc-app .panel { display: none; }\n  #mortgage-calc-app .panel.active {\n    display: flex;\n    flex-direction: column;\n    gap: 22px;\n    max-width: 760px;\n    margin: 0 auto;\n  }\n\n  #mortgage-calc-app .card {\n    background: var(--bg-card);\n    border: 1px solid var(--line);\n    border-radius: 6px;\n    padding: 26px;\n    box-shadow: var(--shadow);\n    color: var(--ink);\n  }\n  #mortgage-calc-app .card h2 {\n    font-family: var(--font-serif); font-weight: 400; font-size: 22px;\n    margin: 0 0 4px; letter-spacing: -0.005em; color: var(--ink-strong);\n  }\n  #mortgage-calc-app .card .desc { color: var(--ink-soft); font-size: 15px; margin-bottom: 22px; line-height: 1.55; font-weight: 400; }\n\n  #mortgage-calc-app .field { margin-bottom: 14px; }\n  #mortgage-calc-app .field label {\n    display: block; font-size: 13px; font-weight: 600;\n    color: var(--ink); margin-bottom: 6px;\n    text-transform: uppercase; letter-spacing: 0.06em;\n    font-family: var(--font-sans);\n  }\n  #mortgage-calc-app .field .hint { font-size: 13px; color: var(--ink-muted); font-weight: 400; text-transform: none; letter-spacing: 0; margin-top: 4px; font-family: var(--font-sans); }\n  #mortgage-calc-app .input-wrap { position: relative; }\n  #mortgage-calc-app .input-wrap .prefix, #mortgage-calc-app .input-wrap .suffix {\n    position: absolute; top: 50%; transform: translateY(-50%);\n    font-family: 'Courier New', monospace; font-size: 14px; color: var(--ink-muted);\n    pointer-events: none;\n  }\n  #mortgage-calc-app .input-wrap .prefix { left: 12px; }\n  #mortgage-calc-app .input-wrap .suffix { right: 12px; }\n  #mortgage-calc-app .panel input[type=\"number\"], #mortgage-calc-app .panel input[type=\"text\"], #mortgage-calc-app .panel select {\n    width: 100%; padding: 12px 14px; font-family: var(--font-sans);\n    font-size: 16px; font-weight: 500; border: 1px solid var(--line); border-radius: 4px;\n    background: #1f2424; color: var(--ink-strong); transition: border .15s, background .15s;\n    line-height: 1.4;\n    margin: 0;\n  }\n  #mortgage-calc-app .panel select {\n    appearance: none; -webkit-appearance: none; -moz-appearance: none;\n    background-image: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%23aab1b0' d='M0 0l5 6 5-6z'\/><\/svg>\");\n    background-repeat: no-repeat;\n    background-position: right 12px center;\n    padding-right: 30px;\n  }\n  #mortgage-calc-app .panel select option { background: #1f2424; color: var(--ink-strong); }\n  #mortgage-calc-app .input-wrap.has-prefix input { padding-left: 26px; }\n  #mortgage-calc-app .input-wrap.has-suffix input { padding-right: 32px; }\n  #mortgage-calc-app .panel input:focus, #mortgage-calc-app .panel select:focus { outline: none; border-color: var(--accent-bright); background: #252b2b; }\n  #mortgage-calc-app .panel input[type=\"checkbox\"] { accent-color: var(--accent-bright); width: 14px; height: 14px; cursor: pointer; margin: 0; }\n  #mortgage-calc-app .panel input[readonly] { background: #1a1f1f !important; color: var(--ink-soft); cursor: default; }\n\n  #mortgage-calc-app .row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }\n\n  #mortgage-calc-app .check-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 15px; color: var(--ink); }\n  #mortgage-calc-app .check-row label { text-transform: none; letter-spacing: 0; font-weight: 400; margin: 0; cursor: pointer; display: inline; color: var(--ink); }\n\n  #mortgage-calc-app .divider { height: 1px; background: var(--line-soft); margin: 18px 0; }\n\n  #mortgage-calc-app details { border: 1px solid var(--line-soft); border-radius: 4px; margin-bottom: 10px; background: #252b2b; }\n  #mortgage-calc-app details summary {\n    cursor: pointer; padding: 12px 14px; font-size: 15px; font-weight: 500;\n    background: transparent; border-radius: 4px;\n    list-style: none; display: flex; justify-content: space-between; align-items: center;\n    font-family: var(--font-sans);\n    color: var(--ink);\n  }\n  #mortgage-calc-app details summary::-webkit-details-marker { display: none; }\n  #mortgage-calc-app details summary::after { content: '+'; font-family: 'Courier New', monospace; color: var(--ink-muted); font-size: 18px; }\n  #mortgage-calc-app details[open] summary::after { content: '\\2212'; color: var(--accent-bright); }\n  #mortgage-calc-app details[open] summary { background: var(--accent-soft); border-bottom: 1px solid var(--line-soft); border-radius: 4px 4px 0 0; color: var(--ink-strong); }\n  #mortgage-calc-app details > div { padding: 14px; }\n\n  \/* Calculate button *\/\n  #mortgage-calc-app .calc-btn {\n    display: block; width: 100%;\n    padding: 14px 18px;\n    margin-top: 18px;\n    background: var(--accent);\n    color: white;\n    border: none;\n    border-radius: 4px;\n    font-family: var(--font-sans);\n    font-size: 15px;\n    font-weight: 600;\n    text-transform: uppercase;\n    letter-spacing: 0.08em;\n    cursor: pointer;\n    transition: background .15s, transform .05s;\n  }\n  #mortgage-calc-app .calc-btn:hover { background: var(--accent-deep); }\n  #mortgage-calc-app .calc-btn:active { transform: translateY(1px); }\n  #mortgage-calc-app .calc-btn:focus { outline: 2px solid var(--accent-bright); outline-offset: 2px; }\n\n  \/* Result card stays black *\/\n  #mortgage-calc-app .result-card { background: #1a1a1a; color: #ede8de; border-color: #1a1a1a; }\n  #mortgage-calc-app .result-card h2 { color: white; }\n  #mortgage-calc-app .result-card .desc { color: rgba(255,255,255,0.55); }\n  #mortgage-calc-app .result-card .divider { background: rgba(255,255,255,0.12); }\n\n  #mortgage-calc-app .stat {\n    display: flex; justify-content: space-between; align-items: baseline;\n    padding: 10px 0; border-bottom: 1px dashed rgba(255,255,255,0.12);\n  }\n  #mortgage-calc-app .stat:last-child { border-bottom: none; }\n  #mortgage-calc-app .stat .key { font-size: 15px; color: rgba(255,255,255,0.65); font-family: var(--font-sans); font-weight: 400; }\n  #mortgage-calc-app .stat .val {\n    font-family: 'Courier New', monospace; font-size: 16px;\n    color: white; font-variant-numeric: tabular-nums;\n  }\n  #mortgage-calc-app .stat.hero { padding: 16px 0; }\n  #mortgage-calc-app .stat.hero .key { font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255,255,255,0.5); font-weight: 600; }\n  #mortgage-calc-app .stat.hero .val {\n    font-family: var(--font-serif); font-size: 28px; font-weight: 400;\n    color: white; letter-spacing: -0.005em;\n  }\n  #mortgage-calc-app .stat.hero .val.accent { color: var(--accent-bright); }\n  #mortgage-calc-app .stat-section-title {\n    font-family: 'Courier New', monospace;\n    font-size: 12px; text-transform: uppercase; letter-spacing: 0.15em;\n    color: rgba(255,255,255,0.55);\n    margin: 18px 0 6px; padding-top: 12px;\n    border-top: 1px solid rgba(255,255,255,0.08);\n  }\n  #mortgage-calc-app .stat-section-title:first-child { border-top: none; padding-top: 0; margin-top: 0; }\n\n  #mortgage-calc-app .badge {\n    display: inline-block; font-family: 'Courier New', monospace;\n    font-size: 10px; padding: 2px 8px; border-radius: 99px;\n    background: rgba(255,255,255,0.1); color: rgba(255,255,255,0.85);\n    letter-spacing: 0.04em;\n  }\n\n  #mortgage-calc-app footer.foot {\n    margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--line);\n    color: var(--ink-muted); font-size: 13px; line-height: 1.65;\n    font-family: var(--font-sans); font-weight: 400;\n  }\n  #mortgage-calc-app footer.foot strong { color: var(--ink-strong); font-weight: 600; }\n\n  \/* CMB live rate strip - refined ticker style (unchanged) *\/\n  #mortgage-calc-app .cmb-strip {\n    background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 100%);\n    border: 1px solid #2f2f2f;\n    border-radius: 8px;\n    padding: 16px 18px;\n    margin-bottom: 18px;\n    color: #ede8de;\n    position: relative;\n    overflow: hidden;\n  }\n  #mortgage-calc-app .cmb-strip::before {\n    content: '';\n    position: absolute;\n    top: 0; left: 0; right: 0;\n    height: 1px;\n    background: linear-gradient(90deg, transparent, rgba(93,216,163,0.6), transparent);\n  }\n  #mortgage-calc-app .cmb-strip-rows {\n    display: flex;\n    align-items: center;\n    gap: 36px;\n    flex-wrap: wrap;\n  }\n  #mortgage-calc-app .cmb-rate {\n    display: flex; flex-direction: column; gap: 4px;\n    flex-shrink: 0;\n  }\n  #mortgage-calc-app .cmb-label {\n    font-family: 'Courier New', monospace;\n    font-size: 11px; color: rgba(255,255,255,0.55); font-weight: 500;\n    text-transform: uppercase; letter-spacing: 0.1em;\n  }\n  #mortgage-calc-app .cmb-value {\n    font-family: var(--font-serif);\n    font-size: 26px; font-weight: 400;\n    color: white; letter-spacing: -0.01em;\n    font-variant-numeric: tabular-nums;\n    line-height: 1.1;\n  }\n  #mortgage-calc-app .cmb-meta {\n    display: flex; flex-direction: column;\n    align-items: flex-start; gap: 4px;\n    min-width: 0;\n  }\n  #mortgage-calc-app .cmb-meta-row {\n    display: flex; align-items: center;\n    gap: 10px;\n  }\n  #mortgage-calc-app .cmb-source-tag {\n    font-family: 'Courier New', monospace;\n    font-size: 11px;\n    color: rgba(255,255,255,0.6);\n    letter-spacing: 0.06em;\n    text-transform: uppercase;\n    padding-left: 10px;\n    border-left: 1px solid rgba(255,255,255,0.15);\n    line-height: 1;\n  }\n  #mortgage-calc-app .cmb-strip-live {\n    display: flex; align-items: center; gap: 6px;\n    font-family: 'Courier New', monospace;\n    font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em;\n    color: #5dd8a3;\n    font-weight: 500;\n  }\n  #mortgage-calc-app .cmb-stamp {\n    font-family: 'Courier New', monospace;\n    font-size: 10px;\n    color: rgba(255,255,255,0.4);\n    letter-spacing: 0.04em;\n    text-transform: uppercase;\n    white-space: nowrap;\n  }\n  #mortgage-calc-app .cmb-dot {\n    width: 7px; height: 7px; border-radius: 50%;\n    background: #5dd8a3;\n    animation: cmb-pulse 2s ease-in-out infinite;\n    box-shadow: 0 0 0 0 rgba(93,216,163,0.6);\n  }\n  @keyframes cmb-pulse {\n    0%, 100% { box-shadow: 0 0 0 0 rgba(93,216,163,0.5); }\n    50% { box-shadow: 0 0 0 6px rgba(93,216,163,0); }\n  }\n  @media (max-width: 480px) {\n    #mortgage-calc-app .cmb-strip-rows {\n      gap: 16px;\n    }\n    #mortgage-calc-app .cmb-meta {\n      flex-direction: row;\n      gap: 12px;\n      width: 100%;\n      justify-content: flex-start;\n      align-items: center;\n      padding-top: 10px;\n      border-top: 1px solid rgba(255,255,255,0.08);\n    }\n    #mortgage-calc-app .cmb-value { font-size: 22px; }\n  }\n\n  \/* Single-result hero *\/\n  #mortgage-calc-app .single-result {\n    padding: 28px 0;\n    text-align: center;\n    border-bottom: 1px solid rgba(255,255,255,0.1);\n  }\n  #mortgage-calc-app .single-result-card .single-result { border-bottom: none; padding: 36px 0 24px; }\n  #mortgage-calc-app .single-result-label {\n    font-family: 'Courier New', monospace;\n    font-size: 13px;\n    text-transform: uppercase;\n    letter-spacing: 0.14em;\n    color: rgba(255,255,255,0.65);\n    margin-bottom: 14px;\n  }\n  #mortgage-calc-app .single-result-val {\n    font-family: var(--font-serif);\n    font-size: 64px;\n    font-weight: 400;\n    color: var(--accent-bright);\n    letter-spacing: -0.02em;\n    line-height: 1;\n    font-variant-numeric: tabular-nums;\n    margin-bottom: 12px;\n  }\n  #mortgage-calc-app .single-result-sub {\n    font-family: var(--font-sans);\n    font-size: 12px;\n    color: rgba(255,255,255,0.55);\n    text-transform: uppercase;\n    letter-spacing: 0.08em;\n    font-weight: 500;\n  }\n  @media (max-width: 520px) {\n    #mortgage-calc-app .single-result-val { font-size: 44px; }\n  }\n\n  #mortgage-calc-app .cmb-source {\n    margin-top: 6px;\n    padding-top: 8px;\n    border-top: 1px solid rgba(255,255,255,0.06);\n    font-family: 'Courier New', monospace;\n    font-size: 9px;\n    color: rgba(255,255,255,0.35);\n    letter-spacing: 0.04em;\n    text-transform: uppercase;\n  }\n\n  \/* Note-style hint *\/\n  #mortgage-calc-app .hint-note {\n    margin-top: 16px;\n    padding: 12px 14px;\n    background: #252b2b;\n    border-left: 2px solid var(--accent-bright);\n    border-radius: 0 4px 4px 0;\n    font-size: 13px;\n    line-height: 1.55;\n    color: var(--ink-soft);\n    font-family: var(--font-sans);\n  }\n\n  \/* CMB dot states *\/\n  #mortgage-calc-app .cmb-dot.loading {\n    background: #e0b85c;\n    animation: cmb-pulse-loading 1s ease-in-out infinite;\n    box-shadow: none;\n  }\n  @keyframes cmb-pulse-loading {\n    0%, 100% { opacity: 0.4; }\n    50% { opacity: 1; }\n  }\n  #mortgage-calc-app .cmb-dot.error {\n    background: #ff8866;\n    animation: none;\n    box-shadow: none;\n  }\n  #mortgage-calc-app .cmb-strip-live.is-loading { color: #e0b85c; }\n  #mortgage-calc-app .cmb-strip-live.is-error { color: #ff8866; }\n\n  \/* Modal - stays light *\/\n  #mortgage-calc-app .mc-modal {\n    position: fixed;\n    inset: 0;\n    z-index: 99999;\n    display: none;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n  }\n  #mortgage-calc-app .mc-modal.is-open {\n    display: flex;\n    animation: mc-modal-fade-in 0.25s ease-out;\n  }\n  @keyframes mc-modal-fade-in {\n    from { opacity: 0; }\n    to { opacity: 1; }\n  }\n  #mortgage-calc-app .mc-modal-overlay {\n    position: absolute;\n    inset: 0;\n    background: rgba(0, 0, 0, 0.7);\n    backdrop-filter: blur(4px);\n    -webkit-backdrop-filter: blur(4px);\n    cursor: pointer;\n  }\n  #mortgage-calc-app .mc-modal-dialog {\n    position: relative;\n    background: #ffffff;\n    border: 1px solid #d9d3c8;\n    border-radius: 8px;\n    width: 100%;\n    max-width: 480px;\n    max-height: calc(100vh - 40px);\n    overflow-y: auto;\n    padding: 36px 32px 32px;\n    box-shadow: 0 24px 60px -16px rgba(0,0,0,0.5);\n    animation: mc-modal-slide-up 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n    color: #1a1a1a;\n  }\n  @keyframes mc-modal-slide-up {\n    from { transform: translateY(20px); opacity: 0; }\n    to { transform: translateY(0); opacity: 1; }\n  }\n  #mortgage-calc-app .mc-modal-close {\n    position: absolute;\n    top: 12px;\n    right: 14px;\n    background: none;\n    border: none;\n    font-size: 28px;\n    line-height: 1;\n    color: #585858;\n    cursor: pointer;\n    padding: 4px 8px;\n    border-radius: 4px;\n    transition: color .15s, background .15s;\n    font-family: var(--font-sans);\n    font-weight: 300;\n  }\n  #mortgage-calc-app .mc-modal-close:hover { color: #1a1a1a; background: #ebe6dc; }\n  #mortgage-calc-app .mc-modal-header {\n    margin-bottom: 22px;\n  }\n  #mortgage-calc-app .mc-modal-eyebrow {\n    font-family: 'Courier New', monospace;\n    font-size: 10px;\n    letter-spacing: 0.16em;\n    text-transform: uppercase;\n    color: var(--accent);\n    margin-bottom: 8px;\n    font-weight: 600;\n  }\n  #mortgage-calc-app .mc-modal-dialog h3 {\n    font-family: var(--font-serif);\n    font-weight: 400;\n    font-size: 26px;\n    line-height: 1.15;\n    margin: 0 0 8px;\n    color: #1a1a1a;\n    letter-spacing: -0.005em;\n  }\n  #mortgage-calc-app .mc-modal-sub {\n    font-family: var(--font-sans);\n    font-size: 15px;\n    color: #585858;\n    line-height: 1.55;\n    margin: 0;\n    font-weight: 400;\n  }\n  #mortgage-calc-app .mc-modal-body {\n    font-family: var(--font-sans);\n    font-size: 15px;\n    color: #1a1a1a;\n  }\n  #mortgage-calc-app .mc-modal-placeholder {\n    padding: 24px;\n    background: #faf7f0;\n    border: 1px dashed #d9d3c8;\n    border-radius: 4px;\n    color: #585858;\n    font-size: 12px;\n    text-align: center;\n    margin: 0;\n    font-style: italic;\n  }\n\n  \/* Demo form inside modal *\/\n  #mortgage-calc-app .mc-form-field {\n    margin-bottom: 14px;\n  }\n  #mortgage-calc-app .mc-form-field label {\n    display: block;\n    font-family: var(--font-sans);\n    font-size: 11px;\n    font-weight: 600;\n    text-transform: uppercase;\n    letter-spacing: 0.06em;\n    color: #1a1a1a;\n    margin-bottom: 6px;\n  }\n  #mortgage-calc-app .mc-form-field input,\n  #mortgage-calc-app .mc-form-field textarea {\n    width: 100%;\n    padding: 10px 12px;\n    font-family: var(--font-sans);\n    font-size: 14px;\n    font-weight: 400;\n    border: 1px solid #d9d3c8;\n    border-radius: 4px;\n    background: #faf7f0;\n    color: #1a1a1a;\n    line-height: 1.4;\n    transition: border .15s, background .15s;\n    box-sizing: border-box;\n  }\n  #mortgage-calc-app .mc-form-field textarea {\n    resize: vertical;\n    min-height: 90px;\n    font-family: var(--font-sans);\n  }\n  #mortgage-calc-app .mc-form-field input:focus,\n  #mortgage-calc-app .mc-form-field textarea:focus {\n    outline: none;\n    border-color: var(--accent);\n    background: white;\n  }\n  #mortgage-calc-app .mc-form-submit {\n    display: block;\n    width: 100%;\n    padding: 12px 18px;\n    margin-top: 6px;\n    background: var(--accent);\n    color: white;\n    border: none;\n    border-radius: 4px;\n    font-family: var(--font-sans);\n    font-size: 13px;\n    font-weight: 600;\n    text-transform: uppercase;\n    letter-spacing: 0.08em;\n    cursor: pointer;\n    transition: background .15s, transform .05s;\n  }\n  #mortgage-calc-app .mc-form-submit:hover { background: var(--accent-deep); }\n  #mortgage-calc-app .mc-form-submit:active { transform: translateY(1px); }\n  #mortgage-calc-app .mc-form-submit:focus { outline: 2px solid var(--accent); outline-offset: 2px; }\n  #mortgage-calc-app .mc-form-note {\n    margin: 10px 0 0;\n    font-family: 'Courier New', monospace;\n    font-size: 10px;\n    letter-spacing: 0.05em;\n    text-transform: uppercase;\n    color: #8a9090;\n    text-align: center;\n  }\n  #mortgage-calc-app .mc-form-thanks {\n    padding: 20px 0 8px;\n    text-align: center;\n  }\n  #mortgage-calc-app .mc-form-thanks-mark {\n    width: 56px;\n    height: 56px;\n    border-radius: 50%;\n    background: var(--accent-soft);\n    color: var(--accent);\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 26px;\n    font-weight: 700;\n    margin-bottom: 14px;\n  }\n  #mortgage-calc-app .mc-form-thanks h4 {\n    font-family: var(--font-serif);\n    font-weight: 400;\n    font-size: 20px;\n    margin: 0 0 8px;\n    color: #1a1a1a;\n    letter-spacing: -0.005em;\n  }\n  #mortgage-calc-app .mc-form-thanks p {\n    font-family: var(--font-sans);\n    font-size: 13px;\n    color: #585858;\n    margin: 0;\n    line-height: 1.5;\n  }\n\n  body.mc-modal-open { overflow: hidden; }\n<\/style>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&amp;family=Montserrat:wght@400;500;600;700&amp;display=swap\" rel=\"stylesheet\">\n\n<div id=\"mortgage-calc-app\">\n<div class=\"shell\">\n\n  <header class=\"top\">\n    <div>\n      <div class=\"brand-mark\">\n        <span class=\"dot\"><\/span>\n        <span class=\"label\">Outils de financement immobilier commercial<\/span>\n      <\/div>\n      <h1>Calculatrice VA<\/h1>\n      <p class=\"sub\">Trois outils connect\u00e9s pour la souscription immobili\u00e8re commerciale canadienne \u2014 bonification de taux, tableau d&rsquo;amortissement et primes d&rsquo;assurance SCHL.<\/p>\n    <\/div>\n  <\/header>\n\n  <nav class=\"tabs\" role=\"tablist\">\n    <button type=\"button\" class=\"tab active\" data-target=\"mc-buydown-live\"><span class=\"num\">01<\/span>Bonification de taux<\/button>\n    <button type=\"button\" class=\"tab\" data-target=\"mc-amort\"><span class=\"num\">02<\/span>Tableau d&rsquo;amortissement<\/button>\n    <button type=\"button\" class=\"tab\" data-target=\"mc-cmhc\"><span class=\"num\">03<\/span>Primes SCHL<\/button>\n  <\/nav>\n\n\n  <section class=\"panel active\" id=\"mc-buydown-live\">\n    <div class=\"card\">\n      <h2>Bonification de taux<\/h2>\n      <p class=\"desc\">Lit les rendements des Obligations hypoth\u00e9caires du Canada (OHC) en direct depuis le widget theFinancials.com sur cette page. Ajoutez votre \u00e9cart de pr\u00eateur pour obtenir le taux tout-inclus et calculez la bonification jusqu&rsquo;\u00e0 votre plafond COI.<\/p>\n\n      <div class=\"cmb-strip cmb-strip-live\">\n        <div class=\"cmb-strip-rows\">\n          <div class=\"cmb-rate\"><span class=\"cmb-label\">OHC 5 ans<\/span><span class=\"cmb-value\" id=\"bdl_cmb_5yr\">\u2014<\/span><\/div>\n          <div class=\"cmb-rate\"><span class=\"cmb-label\">OHC 10 ans<\/span><span class=\"cmb-value\" id=\"bdl_cmb_10yr\">\u2014<\/span><\/div>\n          <div class=\"cmb-meta\">\n            <div class=\"cmb-meta-row\">\n              <span class=\"cmb-strip-live\"><span class=\"cmb-dot\" id=\"bdl_dot\"><\/span><span id=\"bdl_status\">Chargement<\/span><\/span>\n              <span class=\"cmb-source-tag\">theFinancials<\/span>\n            <\/div>\n            <span class=\"cmb-stamp\" id=\"bdl_updated\">\u2014<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"row\">\n        <div class=\"field\">\n          <div class=\"check-row\" style=\"padding: 0; margin-bottom: 6px;\">\n            <input type=\"checkbox\" id=\"bdl_manual_toggle\">\n            <label for=\"bdl_manual_toggle\">Remplacer l&rsquo;OHC par un taux manuel<\/label>\n          <\/div>\n        <\/div>\n        <div class=\"field\" id=\"bdl_manual_wrap\" style=\"display:none;\">\n          <label>Taux OHC manuel<\/label>\n          <div class=\"input-wrap has-suffix\"><span class=\"suffix\">%<\/span>\n            <input type=\"number\" id=\"bdl_manual_cmb\" value=\"3.500\" step=\"0.001\">\n          <\/div>\n          <div class=\"hint\">Utilis\u00e9 \u00e0 la place du flux en direct pour les termes de 5 et 10 ans.<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"field\">\n        <label>Montant du pr\u00eat<\/label>\n        <div class=\"input-wrap has-prefix\"><span class=\"prefix\">$<\/span>\n          <input type=\"text\" inputmode=\"numeric\" id=\"bdl_amount\" data-comma=\"true\" value=\"1,252,925\">\n        <\/div>\n      <\/div>\n\n      <div class=\"row\">\n        <div class=\"field\">\n          <label>Terme<\/label>\n          <select id=\"bdl_term_select\">\n            <option value=\"5\" selected=\"\">5 ans<\/option>\n            <option value=\"10\">10 ans<\/option>\n          <\/select>\n          <div class=\"hint\">OHC <span id=\"bdl_term_label\">5 ans<\/span> : <span id=\"bdl_benchmark\">\u2014<\/span><\/div>\n        <\/div>\n        <div class=\"field\">\n          <label>\u00c9cart de pr\u00eateur<\/label>\n          <div class=\"input-wrap has-suffix\"><span class=\"suffix\">%<\/span>\n            <input type=\"number\" id=\"bdl_spread\" value=\"0.840\" step=\"0.01\">\n          <\/div>\n          <div class=\"hint\">Taux tout-inclus : <span id=\"bdl_allin\">\u2014<\/span><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"row\">\n        <div class=\"field\">\n          <label>Taux plafond COI<\/label>\n          <div class=\"input-wrap has-suffix\"><span class=\"suffix\">%<\/span>\n            <input type=\"number\" id=\"bdl_target\" value=\"4.070\" step=\"0.01\">\n          <\/div>\n          <div class=\"hint\">Bonification implicite : <span id=\"bdl_discount_display\">\u2014<\/span><\/div>\n        <\/div>\n        <div class=\"field\">\n          <label>Amortissement (ann\u00e9es)<\/label>\n          <input type=\"number\" id=\"bdl_amort\" value=\"50\" step=\"1\" min=\"1\">\n        <\/div>\n      <\/div>\n\n      <button type=\"button\" class=\"calc-btn\" data-calc=\"buydown\">Calculer la bonification<\/button>\n\n      <div class=\"hint hint-note\">Les taux OHC en direct sont lus depuis le widget theFinancials.com int\u00e9gr\u00e9 \u00e0 cette page. Si le widget est absent ou n&rsquo;a pas encore charg\u00e9, la calculatrice utilise les valeurs manuelles. Les paiements sont compos\u00e9s semestriellement sur un calendrier mensuel (convention bancaire canadienne).<\/div>\n    <\/div>\n\n    <div class=\"card result-card single-result-card\">\n      <h2>Co\u00fbt de la bonification<\/h2>\n      <p class=\"desc\">Valeur actuelle du co\u00fbt pour ramener votre taux tout-inclus au plafond COI.<\/p>\n\n      <div class=\"single-result\">\n        <div class=\"single-result-label\">Co\u00fbt de la bonification (VA)<\/div>\n        <div class=\"single-result-val\" id=\"bdl_cost\">\u2014<\/div>\n        <div class=\"single-result-sub\">Frais initiaux, pay\u00e9s \u00e0 la cl\u00f4ture<\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"panel\" id=\"mc-amort\">\n    <div class=\"card\">\n      <h2>Tableau d&rsquo;amortissement<\/h2>\n      <p class=\"desc\">Saisissez les conditions de votre pr\u00eat pour estimer votre paiement hypoth\u00e9caire mensuel. Utilise la convention canadienne de composition semestrielle.<\/p>\n\n      <div class=\"field\">\n        <label>Montant du pr\u00eat<\/label>\n        <div class=\"input-wrap has-prefix\"><span class=\"prefix\">$<\/span>\n          <input type=\"text\" inputmode=\"numeric\" id=\"am_amount\" data-comma=\"true\" value=\"1,000,000\">\n        <\/div>\n      <\/div>\n\n      <div class=\"row\">\n        <div class=\"field\">\n          <label>Amortissement (ann\u00e9es)<\/label>\n          <input type=\"number\" id=\"am_amort\" value=\"25\" step=\"1\" min=\"1\" max=\"50\">\n        <\/div>\n        <div class=\"field\">\n          <label>Terme (ann\u00e9es)<\/label>\n          <input type=\"number\" id=\"am_term\" value=\"5\" step=\"1\" min=\"1\" max=\"30\">\n        <\/div>\n      <\/div>\n\n      <div class=\"field\">\n        <label>Taux d&rsquo;int\u00e9r\u00eat<\/label>\n        <div class=\"input-wrap has-suffix\"><span class=\"suffix\">%<\/span>\n          <input type=\"number\" id=\"am_rate\" value=\"5.20\" step=\"0.01\">\n        <\/div>\n      <\/div>\n\n      <button type=\"button\" class=\"calc-btn\" data-calc=\"amort\">Calculer le paiement<\/button>\n    <\/div>\n\n    <div class=\"card result-card\">\n      <h2>Sommaire des paiements<\/h2>\n      <p class=\"desc\">Votre paiement mensuel estim\u00e9 et les principales m\u00e9triques du terme.<\/p>\n\n      <div class=\"single-result\">\n        <div class=\"single-result-label\">Paiement mensuel<\/div>\n        <div class=\"single-result-val\" id=\"am_pmt\">\u2014<\/div>\n        <div class=\"single-result-sub\">Capital et int\u00e9r\u00eats, mensuel<\/div>\n      <\/div>\n\n      <div class=\"stat-section-title\">Sur le terme<\/div>\n      <div class=\"stat\"><span class=\"key\">Total des int\u00e9r\u00eats sur le terme<\/span><span class=\"val\" id=\"am_total_int\">\u2014<\/span><\/div>\n      <div class=\"stat\"><span class=\"key\">Solde \u00e0 la fin du terme<\/span><span class=\"val\" id=\"am_end_balance\">\u2014<\/span><\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"panel\" id=\"mc-cmhc\">\n    <div class=\"card\">\n      <h2>Calculatrice de primes SCHL<\/h2>\n      <p class=\"desc\">Calculatrice de primes et frais de demande pour les immeubles r\u00e9sidentiels multifamiliaux. Couvre le logement locatif standard et les autres mod\u00e8les d&rsquo;h\u00e9bergement, sous MLI March\u00e9 et MLI S\u00e9lect.<\/p>\n\n      <div class=\"row\">\n        <div class=\"field\">\n          <label>Type de propri\u00e9t\u00e9<\/label>\n          <select id=\"ch_shelter\">\n            <option value=\"standard\" selected=\"\">Logement locatif standard<\/option>\n            <option value=\"other\">Autres mod\u00e8les d&rsquo;h\u00e9bergement<\/option>\n          <\/select>\n          <div class=\"hint\">Les autres mod\u00e8les d&rsquo;h\u00e9bergement comprennent le logement avec services de soutien, les chambres avec services et d&rsquo;autres types r\u00e9sidentiels non standards.<\/div>\n        <\/div>\n        <div class=\"field\">\n          <label>Produit<\/label>\n          <select id=\"ch_product\">\n            <option value=\"market\">MLI March\u00e9<\/option>\n            <option value=\"select\" selected=\"\">MLI S\u00e9lect<\/option>\n          <\/select>\n        <\/div>\n      <\/div>\n\n      <div class=\"field\">\n        <label>Objet du pr\u00eat<\/label>\n        <select id=\"ch_purpose\">\n          <option value=\"existing-purchase\" selected=\"\">Existant \u2014 Achat<\/option>\n          <option value=\"existing-refinance\">Existant \u2014 Refinancement<\/option>\n          <option value=\"construction-financing\">Financement de construction<\/option>\n          <option value=\"construction-takeout\">Prise en charge de construction<\/option>\n        <\/select>\n      <\/div>\n\n      <div class=\"field\">\n        <label>Montant du pr\u00eat<\/label>\n        <div class=\"input-wrap has-prefix\"><span class=\"prefix\">$<\/span>\n          <input type=\"text\" inputmode=\"numeric\" id=\"ch_loan\" data-comma=\"true\" value=\"10,000,000\">\n        <\/div>\n      <\/div>\n\n      <div class=\"row\">\n        <div class=\"field\">\n          <label>Valeur de la propri\u00e9t\u00e9<\/label>\n          <div class=\"input-wrap has-prefix\"><span class=\"prefix\">$<\/span>\n            <input type=\"text\" inputmode=\"numeric\" id=\"ch_value\" data-comma=\"true\" value=\"13,500,000\">\n          <\/div>\n        <\/div>\n        <div class=\"field\">\n          <label>Nombre d&rsquo;unit\u00e9s<\/label>\n          <input type=\"number\" id=\"ch_units\" value=\"120\" step=\"1\" min=\"1\">\n        <\/div>\n      <\/div>\n\n      <div class=\"field\">\n        <label>Ratio pr\u00eat-valeur<\/label>\n        <div class=\"input-wrap has-suffix\"><span class=\"suffix\">%<\/span>\n          <input type=\"text\" id=\"ch_ltv_display\" readonly=\"\">\n        <\/div>\n      <\/div>\n\n      <details id=\"ch_points_wrap\">\n        <summary>Points MLI S\u00e9lect (engagement)<\/summary>\n        <div>\n          <div class=\"field\">\n            <label>Total des points d&rsquo;engagement<\/label>\n            <select id=\"ch_points\">\n              <option value=\"0\">Sans engagement (standard)<\/option>\n              <option value=\"50\">50 points (rabais de prime de 10 %)<\/option>\n              <option value=\"70\" selected=\"\">70 points (rabais de prime de 20 %)<\/option>\n              <option value=\"100\">100 points (rabais de prime de 30 %)<\/option>\n            <\/select>\n            <div class=\"hint\">Les points proviennent d&rsquo;engagements en mati\u00e8re d&rsquo;abordabilit\u00e9, d&rsquo;efficacit\u00e9 \u00e9nerg\u00e9tique et d&rsquo;accessibilit\u00e9.<\/div>\n          <\/div>\n        <\/div>\n      <\/details>\n\n      <details id=\"ch_refi_wrap\" style=\"display:none;\">\n        <summary>Cr\u00e9dit de prime de refinancement<\/summary>\n        <div>\n          <div class=\"check-row\">\n            <input type=\"checkbox\" id=\"ch_refi_insured\">\n            <label for=\"ch_refi_insured\">Ce refinancement remplace un pr\u00eat pr\u00e9c\u00e9demment assur\u00e9 par la SCHL<\/label>\n          <\/div>\n          <div class=\"field\" id=\"ch_refi_years_field\" style=\"display:none; margin-left: 22px;\">\n            <label>Ann\u00e9es \u00e9coul\u00e9es depuis la transaction SCHL pr\u00e9c\u00e9dente<\/label>\n            <input type=\"number\" id=\"ch_refi_years\" value=\"1\" step=\"1\" min=\"0\" max=\"7\">\n            <div class=\"hint\">Cr\u00e9dit : 75 % (\u2264 1 an), 70 % (\u2264 2 ans), 60 % (\u2264 3 ans), 50 % (\u2264 4 ans), 40 % (\u2264 5 ans), 30 % (\u2264 6 ans), 20 % (\u2264 7 ans). Au-del\u00e0 de 7 ans : aucun cr\u00e9dit.<\/div>\n          <\/div>\n        <\/div>\n      <\/details>\n\n      <details>\n        <summary>Majorations<\/summary>\n        <div>\n          <div class=\"field\">\n            <label>Amortissement (ann\u00e9es)<\/label>\n            <input type=\"number\" id=\"ch_amort\" value=\"40\" step=\"1\" min=\"25\" max=\"50\">\n            <div class=\"hint\">+0,25 % de majoration par tranche de 5 ans au-del\u00e0 de la base de 25 ans.<\/div>\n          <\/div>\n          <div class=\"check-row\">\n            <input type=\"checkbox\" id=\"ch_nonres\">\n            <label for=\"ch_nonres\">Portion non r\u00e9sidentielle dans la propri\u00e9t\u00e9<\/label>\n          <\/div>\n          <div class=\"field\" id=\"ch_nonres_field\" style=\"display:none; margin-left: 22px;\">\n            <label>Portion du pr\u00eat non r\u00e9sidentielle<\/label>\n            <div class=\"input-wrap has-prefix\"><span class=\"prefix\">$<\/span>\n              <input type=\"text\" inputmode=\"numeric\" id=\"ch_nonres_amt\" data-comma=\"true\" value=\"0\">\n            <\/div>\n            <div class=\"hint\">Majoration de +1,00 % applicable sur cette portion.<\/div>\n          <\/div>\n          <div class=\"check-row\">\n            <input type=\"checkbox\" id=\"ch_2nd\">\n            <label for=\"ch_2nd\">Deuxi\u00e8me hypoth\u00e8que en cours (+0,50 %)<\/label>\n          <\/div>\n          <div class=\"check-row\">\n            <input type=\"checkbox\" id=\"ch_egi\">\n            <label for=\"ch_egi\">RBE non atteint (+0,25 %)<\/label>\n          <\/div>\n        <\/div>\n      <\/details>\n\n      <details>\n        <summary>Frais de demande<\/summary>\n        <div>\n          <div class=\"field\">\n            <label>Nombre de d\u00e9blocages<\/label>\n            <select id=\"ch_advances\">\n              <option value=\"single\" selected=\"\">D\u00e9blocage unique \/ jusqu&rsquo;\u00e0 2 d\u00e9blocages<\/option>\n              <option value=\"multi\">3 d\u00e9blocages ou plus<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"field\">\n            <label>D\u00e9blocages suppl\u00e9mentaires approuv\u00e9s par la SCHL (au-del\u00e0 de 2)<\/label>\n            <input type=\"number\" id=\"ch_extra_adv\" value=\"0\" step=\"1\" min=\"0\">\n            <div class=\"hint\">+350 $ par d\u00e9blocage \u00e0 partir du 3e (d\u00e9blocages multiples seulement).<\/div>\n          <\/div>\n        <\/div>\n      <\/details>\n\n      <button type=\"button\" class=\"calc-btn\" data-calc=\"cmhc\">Calculer les primes<\/button>\n    <\/div>\n\n    <div class=\"card result-card single-result-card\">\n      <h2>Prime nette<\/h2>\n      <p class=\"desc\">Prime d&rsquo;assurance SCHL sur ce pr\u00eat.<\/p>\n\n      <div class=\"single-result\">\n        <div class=\"single-result-label\">Prime nette<\/div>\n        <div class=\"single-result-val\" id=\"ch_premium\">\u2014<\/div>\n        <div class=\"single-result-sub\">Capitalis\u00e9e dans le pr\u00eat<\/div>\n      <\/div>\n\n      <div class=\"stat-section-title\">Frais<\/div>\n      <div class=\"stat\"><span class=\"key\">Frais de demande<\/span><span class=\"val\" id=\"ch_app_fees\">\u2014<\/span><\/div>\n      <div class=\"stat\"><span class=\"key\">Cr\u00e9dit de refi appliqu\u00e9<\/span><span class=\"val\" id=\"ch_refi_credit_display\">$0<\/span><\/div>\n    <\/div>\n  <\/section>\n\n  <footer class=\"foot\">\n    <strong>Notes m\u00e9thodologiques.<\/strong> La bonification de taux actualise les \u00e9conomies d&rsquo;int\u00e9r\u00eats en valeur actuelle au taux p\u00e9riodique sur le terme. L&rsquo;amortissement utilise par d\u00e9faut la composition semestrielle canadienne. Les bar\u00e8mes de primes SCHL refl\u00e8tent les grilles 2024\u20132025 ; v\u00e9rifiez les taux publi\u00e9s en vigueur aupr\u00e8s de la SCHL avant de vous fier aux r\u00e9sultats pour des transactions r\u00e9elles. \u00c0 titre informatif seulement ; ne constitue pas un conseil financier ou un conseil en pr\u00eat hypoth\u00e9caire.\n  <\/footer>\n\n<\/div>\n\n<div class=\"mc-modal\" id=\"mc_modal\" aria-hidden=\"true\">\n  <div class=\"mc-modal-overlay\" data-mc-close=\"\"><\/div>\n  <div class=\"mc-modal-dialog\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"mc_modal_title\">\n    <button type=\"button\" class=\"mc-modal-close\" data-mc-close=\"\" aria-label=\"Fermer\">\u00d7<\/button>\n    <div class=\"mc-modal-header\">\n      <h3 id=\"mc_modal_title\">Besoin d&rsquo;aide pour votre financement ?<\/h3>\n    <\/div>\n    <div class=\"mc-modal-body\" id=\"mc_modal_form_slot\">\n      <div class=\"frm_forms  with_frm_style frm_style_formidable-style\" id=\"frm_form_1_container\" >\n<form enctype=\"multipart\/form-data\" method=\"post\" class=\"frm-show-form \" id=\"form_contact-form\" >\n<div class=\"frm_form_fields \">\n<fieldset>\n<legend class=\"frm_screen_reader\">Contact Us<\/legend>\r\n\r\n<div class=\"frm_fields_container\">\n<input type=\"hidden\" name=\"frm_action\" value=\"create\" \/>\n<input type=\"hidden\" name=\"form_id\" value=\"1\" \/>\n<input type=\"hidden\" name=\"frm_hide_fields_1\" id=\"frm_hide_fields_1\" value=\"\" \/>\n<input type=\"hidden\" name=\"form_key\" value=\"contact-form\" \/>\n<input type=\"hidden\" name=\"item_meta[0]\" value=\"\" \/>\n<input type=\"hidden\" id=\"frm_submit_entry_1\" name=\"frm_submit_entry_1\" value=\"577b0afd4f\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/fr\/wp-json\/wp\/v2\/pages\/1475\" \/><div id=\"frm_field_1_container\" class=\"frm_form_field form-field  frm_required_field frm_top_container frm6 frm_first\">\r\n    <label for=\"field_qh4icy\" id=\"field_qh4icy_label\" class=\"frm_primary_label\">\r\n        <span class=\"frm_required\" aria-hidden=\"true\">*<\/span>\r\n    <\/label>\r\n    <input type=\"text\" id=\"field_qh4icy\" name=\"item_meta[1]\" value=\"\"  placeholder=\"Name *\" data-reqmsg=\"This field cannot be blank.\" aria-required=\"true\" data-invmsg=\"Name is invalid\" aria-invalid=\"false\"  \/>\r\n    \r\n    \r\n<\/div>\n<div id=\"frm_field_6_container\" class=\"frm_form_field form-field  frm_required_field frm_top_container frm6\">\r\n    <label for=\"field_lxnqu\" id=\"field_lxnqu_label\" class=\"frm_primary_label\">\r\n        <span class=\"frm_required\" aria-hidden=\"true\">*<\/span>\r\n    <\/label>\r\n    <input type=\"text\" id=\"field_lxnqu\" name=\"item_meta[6]\" value=\"\"  placeholder=\"Company *\" data-reqmsg=\"Ce champ cannot be blank.\" aria-required=\"true\" data-invmsg=\"Text is invalid\" aria-invalid=\"false\"  \/>\r\n    \r\n    \r\n<\/div>\n<div id=\"frm_field_3_container\" class=\"frm_form_field form-field  frm_required_field frm_top_container frm12 frm6 frm_first\">\r\n    <label for=\"field_29yf4d\" id=\"field_29yf4d_label\" class=\"frm_primary_label\">\r\n        <span class=\"frm_required\" aria-hidden=\"true\">*<\/span>\r\n    <\/label>\r\n    <input type=\"email\" id=\"field_29yf4d\" name=\"item_meta[3]\" value=\"\"  placeholder=\"Email *\" data-reqmsg=\"This field cannot be blank.\" aria-required=\"true\" data-invmsg=\"Please enter a valid email address\" aria-invalid=\"false\"  \/>\r\n    \r\n    \r\n<\/div>\n<div id=\"frm_field_9_container\" class=\"frm_form_field form-field  frm_required_field frm_top_container frm6\">\r\n    <label for=\"field_3dl6t\" id=\"field_3dl6t_label\" class=\"frm_primary_label\">\r\n        <span class=\"frm_required\" aria-hidden=\"true\">*<\/span>\r\n    <\/label>\r\n    <input type=\"text\" id=\"field_3dl6t\" name=\"item_meta[9]\" value=\"\"  placeholder=\"Phone Number *\" data-reqmsg=\"Ce champ cannot be blank.\" aria-required=\"true\" data-invmsg=\"Text is invalid\" aria-invalid=\"false\"  \/>\r\n    \r\n    \r\n<\/div>\n<div id=\"frm_field_5_container\" class=\"frm_form_field form-field  frm_required_field frm_top_container frm_full\">\r\n    <label for=\"field_9jv0r1\" id=\"field_9jv0r1_label\" class=\"frm_primary_label\">\r\n        <span class=\"frm_required\" aria-hidden=\"true\">*<\/span>\r\n    <\/label>\r\n    <textarea name=\"item_meta[5]\" id=\"field_9jv0r1\" rows=\"5\"  placeholder=\"Details *\" data-reqmsg=\"This field cannot be blank.\" aria-required=\"true\" data-invmsg=\"Ce champ est non valide\" aria-invalid=\"false\"   aria-describedby=\"frm_desc_field_9jv0r1\"><\/textarea>\r\n    <div class=\"frm_description\" id=\"frm_desc_field_9jv0r1\">* Required<\/div>\r\n    \r\n<\/div>\n<div id=\"frm_field_17_container\" class=\"frm_form_field form-field  frm_none_container\">\r\n    <label for=\"g-recaptcha-response\" id=\"field_eozpt_label\" class=\"frm_primary_label\">Captcha\r\n        <span class=\"frm_required\" aria-hidden=\"true\"><\/span>\r\n    <\/label>\r\n    <div  id=\"field_eozpt\" class=\"frm-g-recaptcha\" data-sitekey=\"6LdfVzApAAAAACjQbivfqyLGB6kS-ZAa_PRQPNSZ\" data-size=\"invisible\" data-theme=\"light\"><\/div>\r\n    \r\n    \r\n<\/div>\n<div id=\"frm_field_20_container\" class=\"frm_form_field form-field \">\r\n\t<div class=\"frm_submit\">\r\n\r\n<button class=\"frm_button_submit\" type=\"submit\"  >SEND<\/button>\r\n\r\n\r\n<\/div>\r\n<\/div>\n\t<input type=\"hidden\" name=\"item_key\" value=\"\" \/>\n\t\t\t<div id=\"frm_field_21_container\">\n\t\t\t<label for=\"field_g490n\" >\n\t\t\t\tSi vous \u00eates un humain, ne remplissez pas ce champ.\t\t\t<\/label>\n\t\t\t<input  id=\"field_g490n\" type=\"text\" class=\"frm_form_field form-field frm_verify\" name=\"item_meta[21]\" value=\"\"  \/>\n\t\t<\/div>\n\t\t<input name=\"frm_state\" type=\"hidden\" value=\"NyA3M34OHn4w47T6r+uB0c5rynSWaS2lecl7qA\/Opwg=\" \/><\/div>\n<\/fieldset>\n<\/div>\n\n<\/form>\n<\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<\/div>\n\n<script>\n\nvar __mcSrc = \"KGZ1bmN0aW9uKCkgewogIC8vID09PT0gUGVyLXRhYiBtb2RhbCBoZWFkbGluZXMgPT09PQogIHZhciBNT0RBTF9IRUFETElORVMgPSB7CiAgICBidXlkb3duOiAnRGlzY3VzcyByYXRlIGJ1eWRvd24gc3RyYXRlZ3kgd2l0aCBvdXIgcHJvZmVzc2lvbmFscy4nLAogICAgYW1vcnQ6ICAgJ0Rpc2N1c3MgeW91ciBhbW9ydGl6YXRpb24gb3B0aW9ucyB3aXRoIG91ciBwcm9mZXNzaW9uYWxzLicsCiAgICBjbWhjOiAgICAnRGlzY3VzcyBDTUhDIHByb2R1Y3RzIHdpdGggb3VyIHByb2Zlc3Npb25hbHMuJwogIH07CgogIC8vID09PT0gQ01IQyBQUkVNSVVNIFRBQkxFUyAoZnJvbSBDTUhDIE11bHRpLXVuaXQgRmVlcyBhbmQgUHJlbWl1bXMsIDIwMjUpID09PT0KICAvLyBUd28gc2hlbHRlciB0eXBlcyAoInN0YW5kYXJkIiA9IFN0YW5kYXJkIFJlbnRhbCBIb3VzaW5nLCAib3RoZXIiID0gQWxsIE90aGVyIFNoZWx0ZXIgTW9kZWxzKS4KICAvLyBXaXRoaW4gZWFjaDogdHdvIHByb2R1Y3QgdmFyaWFudHMgKCJtYXJrZXQiID0gTUxJIE1hcmtldCwgInNlbGVjdCIgPSBNTEkgU2VsZWN0KS4KICAvLyBDb25zdHJ1Y3Rpb24gcmF0ZSB2cyBhbGwtb3RoZXItcHVycG9zZXMgcmF0ZSBwZXIgTFRWIGJhbmQuCiAgLy8gUm93cyBtYXJrZWQgc2VsZWN0T25seT10cnVlIGFyZSBub3QgYXZhaWxhYmxlIHRvIE1MSSBNYXJrZXQgcHJvZHVjdC4KICB2YXIgQ01IQ19UQUJMRVMgPSB7CiAgICBzdGFuZGFyZDogWwogICAgICB7IGx0djogNjUsICBjb25zdHJ1Y3Rpb246IDAuMDMyNSwgb3RoZXI6IDAuMDI2MCwgc2VsZWN0T25seTogZmFsc2UgfSwKICAgICAgeyBsdHY6IDcwLCAgY29uc3RydWN0aW9uOiAwLjAzNzUsIG90aGVyOiAwLjAyODUsIHNlbGVjdE9ubHk6IGZhbHNlIH0sCiAgICAgIHsgbHR2OiA3NSwgIGNvbnN0cnVjdGlvbjogMC4wNDI1LCBvdGhlcjogMC4wMzM1LCBzZWxlY3RPbmx5OiBmYWxzZSB9LAogICAgICB7IGx0djogODAsICBjb25zdHJ1Y3Rpb246IDAuMDUwMCwgb3RoZXI6IDAuMDQzNSwgc2VsZWN0T25seTogZmFsc2UgfSwKICAgICAgeyBsdHY6IDg1LCAgY29uc3RydWN0aW9uOiAwLjA2MDAsIG90aGVyOiAwLjA1MzUsIHNlbGVjdE9ubHk6IGZhbHNlIH0sCiAgICAgIHsgbHR2OiA5MCwgIGNvbnN0cnVjdGlvbjogMC4wNjc1LCBvdGhlcjogMC4wNTkwLCBzZWxlY3RPbmx5OiB0cnVlICB9LAogICAgICB7IGx0djogOTk5LCBjb25zdHJ1Y3Rpb246IDAuMDcwMCwgb3RoZXI6IDAuMDYxNSwgc2VsZWN0T25seTogdHJ1ZSAgfQogICAgXSwKICAgIG90aGVyOiBbCiAgICAgIHsgbHR2OiA2NSwgIGNvbnN0cnVjdGlvbjogMC4wNjU1LCBvdGhlcjogMC4wNjMwLCBzZWxlY3RPbmx5OiBmYWxzZSB9LAogICAgICB7IGx0djogNzAsICBjb25zdHJ1Y3Rpb246IDAuMDY4NSwgb3RoZXI6IDAuMDY2MCwgc2VsZWN0T25seTogZmFsc2UgfSwKICAgICAgeyBsdHY6IDc1LCAgY29uc3RydWN0aW9uOiAwLjA3MTUsIG90aGVyOiAwLjA2OTAsIHNlbGVjdE9ubHk6IGZhbHNlIH0sCiAgICAgIHsgbHR2OiA4MCwgIGNvbnN0cnVjdGlvbjogMC4wNzMwLCBvdGhlcjogMC4wNzA1LCBzZWxlY3RPbmx5OiBmYWxzZSB9LAogICAgICB7IGx0djogODUsICBjb25zdHJ1Y3Rpb246IDAuMDgwMCwgb3RoZXI6IDAuMDc3NSwgc2VsZWN0T25seTogZmFsc2UgfSwKICAgICAgeyBsdHY6IDkwLCAgY29uc3RydWN0aW9uOiAwLjA4MjUsIG90aGVyOiAwLjA4MDAsIHNlbGVjdE9ubHk6IHRydWUgIH0sCiAgICAgIHsgbHR2OiA5OTksIGNvbnN0cnVjdGlvbjogMC4wOTAwLCBvdGhlcjogMC4wODc1LCBzZWxlY3RPbmx5OiB0cnVlICB9CiAgICBdCiAgfTsKCiAgLy8gUmVmaW5hbmNlIHByZW1pdW0gY3JlZGl0IGZvciBwcmV2aW91c2x5IENNSEMtaW5zdXJlZCBsb2FucywgYnkgeWVhcnMgc2luY2UgY2xvc2luZy4KICAvLyBVcCB0byBhbmQgaW5jbHVkaW5nIE4geWVhcnMgPT4gY3JlZGl0ICUuCiAgdmFyIFJFRklfQ1JFRElUX1RBQkxFID0gWwogICAgeyB5cnM6IDEsIGNyZWRpdDogMC43NSB9LAogICAgeyB5cnM6IDIsIGNyZWRpdDogMC43MCB9LAogICAgeyB5cnM6IDMsIGNyZWRpdDogMC42MCB9LAogICAgeyB5cnM6IDQsIGNyZWRpdDogMC41MCB9LAogICAgeyB5cnM6IDUsIGNyZWRpdDogMC40MCB9LAogICAgeyB5cnM6IDYsIGNyZWRpdDogMC4zMCB9LAogICAgeyB5cnM6IDcsIGNyZWRpdDogMC4yMCB9CiAgXTsKCiAgZnVuY3Rpb24gaW5pdCgpIHsKICAgIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vcnRnYWdlLWNhbGMtYXBwJyk7CiAgICBpZiAoIXJvb3QpIHJldHVybjsKICAgIHZhciAkID0gZnVuY3Rpb24oaWQpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsgfTsKCiAgICBmdW5jdGlvbiBmbXQwKG4pIHsgcmV0dXJuIGlzRmluaXRlKG4pID8gJyQnICsgTWF0aC5yb3VuZChuKS50b0xvY2FsZVN0cmluZygnZW4tQ0EnKSA6ICdcdTIwMTQnOyB9CiAgICBmdW5jdGlvbiBmbXRQY3QobiwgZCkgeyBkID0gZCB8fCAyOyByZXR1cm4gaXNGaW5pdGUobikgPyAobioxMDApLnRvRml4ZWQoZCkgKyAnJScgOiAnXHUyMDE0JzsgfQoKICAgIGZ1bmN0aW9uIG51bVZhbChpZCkgewogICAgICB2YXIgZWwgPSAkKGlkKTsgaWYgKCFlbCkgcmV0dXJuIDA7CiAgICAgIHZhciByYXcgPSBTdHJpbmcoZWwudmFsdWUpLnJlcGxhY2UoLywvZywgJycpLnJlcGxhY2UoL1teXGQuXC1dL2csICcnKTsKICAgICAgdmFyIG4gPSBwYXJzZUZsb2F0KHJhdyk7CiAgICAgIHJldHVybiBpc0Zpbml0ZShuKSA\/IG4gOiAwOwogICAgfQoKICAgIC8vID09PT09IENvbW1hIGZvcm1hdHRpbmcgb24gdGV4dCBpbnB1dHMgPT09PT0KICAgIGZ1bmN0aW9uIGZvcm1hdFdpdGhDb21tYXModmFsdWUpIHsKICAgICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gJy0nKSByZXR1cm4gdmFsdWU7CiAgICAgIHZhciBuZWdhdGl2ZSA9IHZhbHVlLmNoYXJBdCgwKSA9PT0gJy0nOwogICAgICBpZiAobmVnYXRpdmUpIHZhbHVlID0gdmFsdWUuc2xpY2UoMSk7CiAgICAgIHZhciBwYXJ0cyA9IHZhbHVlLnNwbGl0KCcuJyk7CiAgICAgIHZhciBpbnRQYXJ0ID0gcGFydHNbMF0ucmVwbGFjZSgvXEQvZywgJycpOwogICAgICBpbnRQYXJ0ID0gaW50UGFydC5yZXBsYWNlKC9eMCsoXGQpLywgJyQxJyk7CiAgICAgIGlmIChpbnRQYXJ0ID09PSAnJykgaW50UGFydCA9ICcwJzsKICAgICAgaW50UGFydCA9IGludFBhcnQucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg\/IVxkKSkvZywgJywnKTsKICAgICAgdmFyIHJlc3VsdCA9IGludFBhcnQ7CiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPiAxKSByZXN1bHQgKz0gJy4nICsgcGFydHNbMV0ucmVwbGFjZSgvXEQvZywgJycpOwogICAgICBpZiAobmVnYXRpdmUpIHJlc3VsdCA9ICctJyArIHJlc3VsdDsKICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KCiAgICB2YXIgY29tbWFJbnB1dHMgPSByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W2RhdGEtY29tbWE9InRydWUiXScpOwogICAgY29tbWFJbnB1dHMuZm9yRWFjaChmdW5jdGlvbihpbnB1dCkgewogICAgICBpbnB1dC52YWx1ZSA9IGZvcm1hdFdpdGhDb21tYXMoaW5wdXQudmFsdWUpOwogICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKGUpIHsKICAgICAgICB2YXIgZWwgPSBlLnRhcmdldDsKICAgICAgICB2YXIgY3Vyc29yUG9zID0gZWwuc2VsZWN0aW9uU3RhcnQ7CiAgICAgICAgdmFyIG9sZExlbiA9IGVsLnZhbHVlLmxlbmd0aDsKICAgICAgICB2YXIgZm9ybWF0dGVkID0gZm9ybWF0V2l0aENvbW1hcyhlbC52YWx1ZSk7CiAgICAgICAgZWwudmFsdWUgPSBmb3JtYXR0ZWQ7CiAgICAgICAgdmFyIG5ld0xlbiA9IGZvcm1hdHRlZC5sZW5ndGg7CiAgICAgICAgdmFyIG5ld1BvcyA9IGN1cnNvclBvcyArIChuZXdMZW4gLSBvbGRMZW4pOwogICAgICAgIGlmIChuZXdQb3MgPCAwKSBuZXdQb3MgPSAwOwogICAgICAgIGlmIChuZXdQb3MgPiBuZXdMZW4pIG5ld1BvcyA9IG5ld0xlbjsKICAgICAgICB0cnkgeyBlbC5zZXRTZWxlY3Rpb25SYW5nZShuZXdQb3MsIG5ld1Bvcyk7IH0gY2F0Y2ggKGVycikge30KICAgICAgfSk7CiAgICB9KTsKCiAgICBmdW5jdGlvbiBQTVQocmF0ZSwgbnBlciwgcHYpIHsKICAgICAgaWYgKHJhdGUgPT09IDApIHJldHVybiAtcHYgLyBucGVyOwogICAgICByZXR1cm4gLShwdiAqIHJhdGUpIC8gKDEgLSBNYXRoLnBvdygxICsgcmF0ZSwgLW5wZXIpKTsKICAgIH0KCiAgICBmdW5jdGlvbiBzZW1pQW5udWFsVG9QZXJpb2Qobm9taW5hbEFubnVhbCwgcG10c1BlclllYXIpIHsKICAgICAgcmV0dXJuIE1hdGgucG93KDEgKyBub21pbmFsQW5udWFsIC8gMiwgMiAvIHBtdHNQZXJZZWFyKSAtIDE7CiAgICB9CgogICAgLy8gPT09PT0gVGFicyA9PT09PQogICAgdmFyIHRhYnMgPSByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy50YWInKTsKICAgIHZhciBwYW5lbHMgPSByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wYW5lbCcpOwogICAgdGFicy5mb3JFYWNoKGZ1bmN0aW9uKHQpIHsKICAgICAgdC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIHRhYnMuZm9yRWFjaChmdW5jdGlvbih4KSB7IHguY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7IH0pOwogICAgICAgIHBhbmVscy5mb3JFYWNoKGZ1bmN0aW9uKHgpIHsgeC5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsgfSk7CiAgICAgICAgdC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGFyZ2V0JykpOwogICAgICAgIGlmICh0YXJnZXQpIHRhcmdldC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyA9PT09PSBNb2RhbCA9PT09PQogICAgLy8gU2hvd3MgMi41cyBhZnRlciBldmVyeSBDYWxjdWxhdGUgY2xpY2suIElmIHVzZXIgY2xpY2tzIENhbGN1bGF0ZSBhZ2FpbgogICAgLy8gYmVmb3JlIHRoZSB0aW1lciBmaXJlcywgdGhlIHRpbWVyIHJlc2V0cyAoc28gdGhleSBnZXQgb25lIG1vZGFsIDIuNXMKICAgIC8vIGFmdGVyIHRoZWlyIGxhc3QgY2xpY2ssIG5vdCBhIHN0YWNrIG9mIG1vZGFscykuCiAgICB2YXIgTU9EQUxfU1RBVEUgPSB7IHBlbmRpbmdUaW1lcjogbnVsbCB9OwoKICAgIGZ1bmN0aW9uIG9wZW5Nb2RhbCgpIHsKICAgICAgdmFyIG1vZGFsID0gJCgnbWNfbW9kYWwnKTsKICAgICAgaWYgKCFtb2RhbCkgcmV0dXJuOwogICAgICBtb2RhbC5jbGFzc0xpc3QuYWRkKCdpcy1vcGVuJyk7CiAgICAgIG1vZGFsLnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAnZmFsc2UnKTsKICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdtYy1tb2RhbC1vcGVuJyk7CiAgICB9CiAgICBmdW5jdGlvbiBjbG9zZU1vZGFsKCkgewogICAgICB2YXIgbW9kYWwgPSAkKCdtY19tb2RhbCcpOwogICAgICBpZiAoIW1vZGFsKSByZXR1cm47CiAgICAgIG1vZGFsLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLW9wZW4nKTsKICAgICAgbW9kYWwuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7CiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnbWMtbW9kYWwtb3BlbicpOwogICAgfQogICAgZnVuY3Rpb24gc2NoZWR1bGVNb2RhbCgpIHsKICAgICAgLy8gUmVzZXQgYW55IHBlbmRpbmcgdGltZXIg4oCUIGRvbid0IHN0YWNrIG1vZGFscyBvbiByYXBpZCByZS1jbGlja3MuCiAgICAgIGlmIChNT0RBTF9TVEFURS5wZW5kaW5nVGltZXIpIHsKICAgICAgICBjbGVhclRpbWVvdXQoTU9EQUxfU1RBVEUucGVuZGluZ1RpbWVyKTsKICAgICAgICBNT0RBTF9TVEFURS5wZW5kaW5nVGltZXIgPSBudWxsOwogICAgICB9CiAgICAgIE1PREFMX1NUQVRFLnBlbmRpbmdUaW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgTU9EQUxfU1RBVEUucGVuZGluZ1RpbWVyID0gbnVsbDsKICAgICAgICBvcGVuTW9kYWwoKTsKICAgICAgfSwgMjUwMCk7CiAgICB9CgogICAgdmFyIG1vZGFsRWwgPSAkKCdtY19tb2RhbCcpOwogICAgaWYgKG1vZGFsRWwpIHsKICAgICAgbW9kYWxFbC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1tYy1jbG9zZV0nKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZU1vZGFsKTsKICAgICAgfSk7CiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJyAmJiBtb2RhbEVsLmNsYXNzTGlzdC5jb250YWlucygnaXMtb3BlbicpKSBjbG9zZU1vZGFsKCk7CiAgICAgIH0pOwogICAgfQoKICAgIC8vID09PT09IExpdmUgQ01CIGZyb20gdGhlRmluYW5jaWFscyB3aWRnZXQgPT09PT0KICAgIHZhciBDTUJfTElWRSA9IHsgY21iXzV5cjogbnVsbCwgY21iXzEweXI6IG51bGwsIG9ic2VydmVkX2RhdGU6IG51bGwsIHN0YXR1czogJ2xvYWRpbmcnIH07CgogICAgZnVuY3Rpb24gc2V0Q21iU3RhdHVzKHN0YXR1cywgbXNnKSB7CiAgICAgIENNQl9MSVZFLnN0YXR1cyA9IHN0YXR1czsKICAgICAgdmFyIGRvdCA9ICQoJ2JkbF9kb3QnKTsKICAgICAgdmFyIHN0YXR1c0VsID0gJCgnYmRsX3N0YXR1cycpOwogICAgICB2YXIgd3JhcCA9IHN0YXR1c0VsID8gc3RhdHVzRWwucGFyZW50RWxlbWVudCA6IG51bGw7CiAgICAgIGlmICghZG90IHx8ICFzdGF0dXNFbCkgcmV0dXJuOwogICAgICBkb3QuY2xhc3NOYW1lID0gJ2NtYi1kb3QnOwogICAgICBpZiAod3JhcCkgd3JhcC5jbGFzc05hbWUgPSAnY21iLXN0cmlwLWxpdmUnOwogICAgICBpZiAoc3RhdHVzID09PSAnbG9hZGluZycpIHsKICAgICAgICBkb3QuY2xhc3NMaXN0LmFkZCgnbG9hZGluZycpOwogICAgICAgIGlmICh3cmFwKSB3cmFwLmNsYXNzTGlzdC5hZGQoJ2lzLWxvYWRpbmcnKTsKICAgICAgICBzdGF0dXNFbC50ZXh0Q29udGVudCA9IG1zZyB8fCAnV2FpdGluZyc7CiAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSAnbGl2ZScpIHsKICAgICAgICBzdGF0dXNFbC50ZXh0Q29udGVudCA9IG1zZyB8fCAnTGl2ZSc7CiAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSAnZXJyb3InKSB7CiAgICAgICAgZG90LmNsYXNzTGlzdC5hZGQoJ2Vycm9yJyk7CiAgICAgICAgaWYgKHdyYXApIHdyYXAuY2xhc3NMaXN0LmFkZCgnaXMtZXJyb3InKTsKICAgICAgICBzdGF0dXNFbC50ZXh0Q29udGVudCA9IG1zZyB8fCAnTm8gd2lkZ2V0JzsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIHBhcnNlUmF0ZVRleHQodHh0KSB7CiAgICAgIGlmICghdHh0KSByZXR1cm4gTmFOOwogICAgICB2YXIgbWF0Y2ggPSBTdHJpbmcodHh0KS5yZXBsYWNlKC9ccysvZywgJycpLm1hdGNoKC8oLT9cZCtcLj9cZCopLyk7CiAgICAgIHJldHVybiBtYXRjaCA\/IHBhcnNlRmxvYXQobWF0Y2hbMV0pIDogTmFOOwogICAgfQoKICAgIGZ1bmN0aW9uIHJlYWRDbWJGcm9tV2lkZ2V0KCkgewogICAgICB2YXIgZml2ZSA9IE5hTiwgdGVuID0gTmFOOwogICAgICB0cnkgewogICAgICAgIHZhciBmaXZlRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcm93MSAud2lkZ2V0VGFibGVDZWxsLmZpZWxkMS5jb2wxIGEsICNyb3cxIC53aWRnZXRUYWJsZUNlbGwuZmllbGQxLmNvbDEnKTsKICAgICAgICB2YXIgdGVuRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcm93MiAud2lkZ2V0VGFibGVDZWxsLmZpZWxkMS5jb2wxIGEsICNyb3cyIC53aWRnZXRUYWJsZUNlbGwuZmllbGQxLmNvbDEnKTsKICAgICAgICBpZiAoZml2ZUVsKSBmaXZlID0gcGFyc2VSYXRlVGV4dChmaXZlRWwudGV4dENvbnRlbnQpOwogICAgICAgIGlmICh0ZW5FbCkgdGVuID0gcGFyc2VSYXRlVGV4dCh0ZW5FbC50ZXh0Q29udGVudCk7CiAgICAgIH0gY2F0Y2ggKGUpIHt9CgogICAgICBpZiAoIWlzRmluaXRlKGZpdmUpIHx8ICFpc0Zpbml0ZSh0ZW4pKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHZhciBhbGxSb3dzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLlRhYmxlUm93LCBbY2xhc3MqPSJyb3dkb3duIl0nKTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsUm93cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgcm93ID0gYWxsUm93c1tpXTsKICAgICAgICAgICAgdmFyIHJvd1RleHQgPSAocm93LmdldEF0dHJpYnV0ZSgnb25jbGljaycpIHx8ICcnKSArICcgJyArIChyb3cudGV4dENvbnRlbnQgfHwgJycpOwogICAgICAgICAgICB2YXIgdmFsRWwgPSByb3cucXVlcnlTZWxlY3RvcignLndpZGdldFRhYmxlQ2VsbC5maWVsZDEgYSwgLndpZGdldFRhYmxlQ2VsbC5maWVsZDEnKTsKICAgICAgICAgICAgaWYgKCF2YWxFbCkgY29udGludWU7CiAgICAgICAgICAgIHZhciB2ID0gcGFyc2VSYXRlVGV4dCh2YWxFbC50ZXh0Q29udGVudCk7CiAgICAgICAgICAgIGlmICghaXNGaW5pdGUodikpIGNvbnRpbnVlOwogICAgICAgICAgICBpZiAocm93VGV4dC5pbmRleE9mKCc1LVllYXInKSAhPT0gLTEgfHwgcm93VGV4dC5pbmRleE9mKCc1IFllYXInKSAhPT0gLTEpIHsKICAgICAgICAgICAgICBpZiAoIWlzRmluaXRlKGZpdmUpKSBmaXZlID0gdjsKICAgICAgICAgICAgfSBlbHNlIGlmIChyb3dUZXh0LmluZGV4T2YoJzEwLVllYXInKSAhPT0gLTEgfHwgcm93VGV4dC5pbmRleE9mKCcxMCBZZWFyJykgIT09IC0xKSB7CiAgICAgICAgICAgICAgaWYgKCFpc0Zpbml0ZSh0ZW4pKSB0ZW4gPSB2OwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZSkge30KICAgICAgfQoKICAgICAgaWYgKGlzRmluaXRlKGZpdmUpICYmIGlzRmluaXRlKHRlbikpIHJldHVybiB7IGZpdmU6IGZpdmUsIHRlbjogdGVuIH07CiAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIGZ1bmN0aW9uIGZldGNoQ21iRnJvbVdpZGdldCgpIHsKICAgICAgc2V0Q21iU3RhdHVzKCdsb2FkaW5nJywgJ1dhaXRpbmcnKTsKICAgICAgdmFyIGF0dGVtcHRzID0gMDsKICAgICAgdmFyIG1heEF0dGVtcHRzID0gMzA7CiAgICAgIHZhciBpbnRlcnZhbDsKCiAgICAgIGZ1bmN0aW9uIHRyeVJlYWQoKSB7CiAgICAgICAgYXR0ZW1wdHMrKzsKICAgICAgICB2YXIgcmVzdWx0ID0gcmVhZENtYkZyb21XaWRnZXQoKTsKICAgICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTsKICAgICAgICAgIENNQl9MSVZFLmNtYl81eXIgPSByZXN1bHQuZml2ZTsKICAgICAgICAgIENNQl9MSVZFLmNtYl8xMHlyID0gcmVzdWx0LnRlbjsKICAgICAgICAgIENNQl9MSVZFLm9ic2VydmVkX2RhdGUgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tQ0EnKTsKICAgICAgICAgICQoJ2JkbF9jbWJfNXlyJykudGV4dENvbnRlbnQgPSByZXN1bHQuZml2ZS50b0ZpeGVkKDMpICsgJyUnOwogICAgICAgICAgJCgnYmRsX2NtYl8xMHlyJykudGV4dENvbnRlbnQgPSByZXN1bHQudGVuLnRvRml4ZWQoMykgKyAnJSc7CiAgICAgICAgICAkKCdiZGxfdXBkYXRlZCcpLnRleHRDb250ZW50ID0gQ01CX0xJVkUub2JzZXJ2ZWRfZGF0ZTsKICAgICAgICAgIHNldENtYlN0YXR1cygnbGl2ZScsICdMaXZlJyk7CiAgICAgICAgICB1cGRhdGVCdXlkb3duUmF0ZURpc3BsYXkoKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKGF0dGVtcHRzID49IG1heEF0dGVtcHRzKSB7CiAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTsKICAgICAgICAgIENNQl9MSVZFLmNtYl81eXIgPSAzLjQ1OwogICAgICAgICAgQ01CX0xJVkUuY21iXzEweXIgPSAzLjcyOwogICAgICAgICAgQ01CX0xJVkUub2JzZXJ2ZWRfZGF0ZSA9ICdmYWxsYmFjayc7CiAgICAgICAgICAkKCdiZGxfY21iXzV5cicpLnRleHRDb250ZW50ID0gJzMuNDUwJSc7CiAgICAgICAgICAkKCdiZGxfY21iXzEweXInKS50ZXh0Q29udGVudCA9ICczLjcyMCUnOwogICAgICAgICAgJCgnYmRsX3VwZGF0ZWQnKS50ZXh0Q29udGVudCA9ICdmYWxsYmFjayc7CiAgICAgICAgICBzZXRDbWJTdGF0dXMoJ2Vycm9yJywgJ05vIHdpZGdldCcpOwogICAgICAgICAgY29uc29sZS53YXJuKCdMaXZlIENNQjogdGhlRmluYW5jaWFscyB3aWRnZXQgbm90IGZvdW5kLicpOwogICAgICAgICAgdXBkYXRlQnV5ZG93blJhdGVEaXNwbGF5KCk7CiAgICAgICAgfQogICAgICB9CgogICAgICB0cnlSZWFkKCk7CiAgICAgIGlmIChDTUJfTElWRS5zdGF0dXMgPT09ICdsb2FkaW5nJykgewogICAgICAgIGludGVydmFsID0gc2V0SW50ZXJ2YWwodHJ5UmVhZCwgNTAwKTsKICAgICAgfQogICAgfQoKICAgIC8vIFJlc29sdmVzIHRoZSBhY3RpdmUgQ01CIHJhdGUgYmFzZWQgb24gdGhlIG1hbnVhbC1vdmVycmlkZSB0b2dnbGUuCiAgICAvLyBSZXR1cm5zIG51bGwgaWYgdGhlcmUncyBubyByYXRlIGF2YWlsYWJsZSAod2lkZ2V0IHN0aWxsIGxvYWRpbmcgYW5kIG92ZXJyaWRlIG9mZikuCiAgICBmdW5jdGlvbiByZXNvbHZlQ21iKHRlcm1ZZWFycykgewogICAgICB2YXIgbWFudWFsVG9nZ2xlID0gJCgnYmRsX21hbnVhbF90b2dnbGUnKTsKICAgICAgdmFyIG1hbnVhbFdyYXAgPSAkKCdiZGxfbWFudWFsX3dyYXAnKTsKICAgICAgdmFyIG1hbnVhbE9uID0gbWFudWFsVG9nZ2xlICYmIG1hbnVhbFRvZ2dsZS5jaGVja2VkOwogICAgICBpZiAobWFudWFsV3JhcCkgbWFudWFsV3JhcC5zdHlsZS5kaXNwbGF5ID0gbWFudWFsT24gPyAnJyA6ICdub25lJzsKICAgICAgaWYgKG1hbnVhbE9uKSB7CiAgICAgICAgdmFyIHYgPSArJCgnYmRsX21hbnVhbF9jbWInKS52YWx1ZTsKICAgICAgICByZXR1cm4gaXNGaW5pdGUodikgPyB2IDogbnVsbDsKICAgICAgfQogICAgICByZXR1cm4gdGVybVllYXJzID09PSAxMCA\/IENNQl9MSVZFLmNtYl8xMHlyIDogQ01CX0xJVkUuY21iXzV5cjsKICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVCdXlkb3duUmF0ZURpc3BsYXkoKSB7CiAgICAgIHZhciB0ZXJtWWVhcnMgPSBwYXJzZUludCgkKCdiZGxfdGVybV9zZWxlY3QnKS52YWx1ZSwgMTApOwogICAgICB2YXIgY21iID0gcmVzb2x2ZUNtYih0ZXJtWWVhcnMpOwogICAgICAkKCdiZGxfdGVybV9sYWJlbCcpLnRleHRDb250ZW50ID0gdGVybVllYXJzICsgJ3lyJzsKICAgICAgaWYgKGNtYiA9PT0gbnVsbCkgewogICAgICAgICQoJ2JkbF9iZW5jaG1hcmsnKS50ZXh0Q29udGVudCA9ICdcdTIwMTQnOwogICAgICAgICQoJ2JkbF9hbGxpbicpLnRleHRDb250ZW50ID0gJ1x1MjAxNCc7CiAgICAgICAgJCgnYmRsX2Rpc2NvdW50X2Rpc3BsYXknKS50ZXh0Q29udGVudCA9ICdcdTIwMTQnOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB2YXIgbGVuZGVyU3ByZWFkID0gKyQoJ2JkbF9zcHJlYWQnKS52YWx1ZSB8fCAwOwogICAgICB2YXIgYWxsSW5QY3QgPSBjbWIgKyBsZW5kZXJTcHJlYWQ7CiAgICAgIHZhciB0YXJnZXRQY3QgPSArJCgnYmRsX3RhcmdldCcpLnZhbHVlIHx8IDA7CiAgICAgICQoJ2JkbF9iZW5jaG1hcmsnKS50ZXh0Q29udGVudCA9IGNtYi50b0ZpeGVkKDMpICsgJyUnOwogICAgICAkKCdiZGxfYWxsaW4nKS50ZXh0Q29udGVudCA9IGFsbEluUGN0LnRvRml4ZWQoMykgKyAnJSc7CiAgICAgICQoJ2JkbF9kaXNjb3VudF9kaXNwbGF5JykudGV4dENvbnRlbnQgPSAoYWxsSW5QY3QgLSB0YXJnZXRQY3QpLnRvRml4ZWQoMykgKyAnJSc7CiAgICB9CgogICAgZnVuY3Rpb24gY2FsY0J1eWRvd24oKSB7CiAgICAgIHZhciBhbW91bnQgPSBudW1WYWwoJ2JkbF9hbW91bnQnKTsKICAgICAgdmFyIHRlcm1ZZWFycyA9IHBhcnNlSW50KCQoJ2JkbF90ZXJtX3NlbGVjdCcpLnZhbHVlLCAxMCk7CiAgICAgIHZhciBjbWIgPSByZXNvbHZlQ21iKHRlcm1ZZWFycyk7CiAgICAgIGlmIChjbWIgPT09IG51bGwpIHJldHVybjsKCiAgICAgIHZhciBsZW5kZXJTcHJlYWQgPSArJCgnYmRsX3NwcmVhZCcpLnZhbHVlIHx8IDA7CiAgICAgIHZhciBhbGxJbk5vbSA9IChjbWIgKyBsZW5kZXJTcHJlYWQpIC8gMTAwOwogICAgICB2YXIgdGFyZ2V0Tm9tID0gKCskKCdiZGxfdGFyZ2V0JykudmFsdWUgfHwgMCkgLyAxMDA7CiAgICAgIHZhciBhbW9ydFllYXJzID0gKyQoJ2JkbF9hbW9ydCcpLnZhbHVlIHx8IDE7CiAgICAgIHZhciBwbXRzUGVyWWVhciA9IDEyOwogICAgICB2YXIgdGVybU1vbnRocyA9IHRlcm1ZZWFycyAqIDEyOwoKICAgICAgdXBkYXRlQnV5ZG93blJhdGVEaXNwbGF5KCk7CgogICAgICB2YXIgZGlzY291bnQgPSBhbGxJbk5vbSAtIHRhcmdldE5vbTsKICAgICAgaWYgKGRpc2NvdW50IDwgMCkgewogICAgICAgICQoJ2JkbF9jb3N0JykudGV4dENvbnRlbnQgPSAnXHUyMDE0JzsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHZhciByQWxsaW5NID0gc2VtaUFubnVhbFRvUGVyaW9kKGFsbEluTm9tLCBwbXRzUGVyWWVhcik7CiAgICAgIHZhciByVGFyZ2V0TSA9IHNlbWlBbm51YWxUb1BlcmlvZCh0YXJnZXROb20sIHBtdHNQZXJZZWFyKTsKICAgICAgdmFyIHRvdGFsUG10cyA9IE1hdGgucm91bmQoYW1vcnRZZWFycyAqIHBtdHNQZXJZZWFyKTsKICAgICAgdmFyIHRlcm1QZXJpb2RzID0gTWF0aC5yb3VuZCh0ZXJtTW9udGhzIC8gMTIgKiBwbXRzUGVyWWVhcik7CiAgICAgIHZhciBwbXRBbGxpbiA9IC1QTVQockFsbGluTSwgdG90YWxQbXRzLCBhbW91bnQpOwoKICAgICAgZnVuY3Rpb24gZmFjZVJhdGVCYWxhbmNlcyhyYXRlLCBwbXQsIG4sIHB2KSB7CiAgICAgICAgdmFyIGJhbCA9IHB2OwogICAgICAgIHZhciBiYWxhbmNlcyA9IFtdOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICB2YXIgaXAgPSBiYWwgKiByYXRlOwogICAgICAgICAgYmFsIC09IChwbXQgLSBpcCk7CiAgICAgICAgICBiYWxhbmNlcy5wdXNoKGJhbCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBiYWxhbmNlczsKICAgICAgfQogICAgICB2YXIgYmFsYW5jZXMgPSBmYWNlUmF0ZUJhbGFuY2VzKHJBbGxpbk0sIHBtdEFsbGluLCB0ZXJtUGVyaW9kcywgYW1vdW50KTsKCiAgICAgIHZhciBucHYgPSAwOwogICAgICBmb3IgKHZhciBrID0gMTsgayA8PSB0ZXJtUGVyaW9kczsgaysrKSB7CiAgICAgICAgdmFyIGNmID0gcG10QWxsaW47CiAgICAgICAgaWYgKGsgPT09IHRlcm1QZXJpb2RzKSBjZiArPSBiYWxhbmNlc1trIC0gMV07CiAgICAgICAgbnB2ICs9IGNmIC8gTWF0aC5wb3coMSArIHJUYXJnZXRNLCBrKTsKICAgICAgfQogICAgICB2YXIgY29zdCA9IG5wdiAtIGFtb3VudDsKICAgICAgJCgnYmRsX2Nvc3QnKS50ZXh0Q29udGVudCA9IGZtdDAoY29zdCk7CiAgICB9CgogICAgZnVuY3Rpb24gY2FsY0Ftb3J0KCkgewogICAgICB2YXIgYW1vdW50ID0gbnVtVmFsKCdhbV9hbW91bnQnKTsKICAgICAgdmFyIGFtb3J0WWVhcnMgPSArJCgnYW1fYW1vcnQnKS52YWx1ZSB8fCAxOwogICAgICB2YXIgdGVybVllYXJzID0gKyQoJ2FtX3Rlcm0nKS52YWx1ZSB8fCAxOwogICAgICB2YXIgcmF0ZVBjdCA9ICskKCdhbV9yYXRlJykudmFsdWUgfHwgMDsKICAgICAgdmFyIHJhdGVOb20gPSByYXRlUGN0IC8gMTAwOwoKICAgICAgdmFyIHBtdHNQZXJZZWFyID0gMTI7CiAgICAgIHZhciByTW9udGhseSA9IHNlbWlBbm51YWxUb1BlcmlvZChyYXRlTm9tLCBwbXRzUGVyWWVhcik7CiAgICAgIHZhciB0b3RhbFBtdHMgPSBNYXRoLnJvdW5kKGFtb3J0WWVhcnMgKiBwbXRzUGVyWWVhcik7CiAgICAgIHZhciB0ZXJtUG10cyA9IE1hdGgucm91bmQodGVybVllYXJzICogcG10c1BlclllYXIpOwoKICAgICAgaWYgKGFtb3VudCA8PSAwIHx8IHRvdGFsUG10cyA8PSAwKSB7CiAgICAgICAgJCgnYW1fcG10JykudGV4dENvbnRlbnQgPSAnXHUyMDE0JzsKICAgICAgICAkKCdhbV90b3RhbF9pbnQnKS50ZXh0Q29udGVudCA9ICdcdTIwMTQnOwogICAgICAgICQoJ2FtX2VuZF9iYWxhbmNlJykudGV4dENvbnRlbnQgPSAnXHUyMDE0JzsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHZhciBtb250aGx5UG10ID0gLVBNVChyTW9udGhseSwgdG90YWxQbXRzLCBhbW91bnQpOwogICAgICB2YXIgYmFsID0gYW1vdW50OwogICAgICB2YXIgdG90YWxJbnRlcmVzdCA9IDA7CiAgICAgIHZhciBwZXJpb2RzVG9XYWxrID0gTWF0aC5taW4odGVybVBtdHMsIHRvdGFsUG10cyk7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGVyaW9kc1RvV2FsazsgaSsrKSB7CiAgICAgICAgdmFyIGlwID0gYmFsICogck1vbnRobHk7CiAgICAgICAgdG90YWxJbnRlcmVzdCArPSBpcDsKICAgICAgICBiYWwgLT0gKG1vbnRobHlQbXQgLSBpcCk7CiAgICAgIH0KCiAgICAgICQoJ2FtX3BtdCcpLnRleHRDb250ZW50ID0gZm10MChtb250aGx5UG10KTsKICAgICAgJCgnYW1fdG90YWxfaW50JykudGV4dENvbnRlbnQgPSBmbXQwKHRvdGFsSW50ZXJlc3QpOwogICAgICAkKCdhbV9lbmRfYmFsYW5jZScpLnRleHRDb250ZW50ID0gZm10MChNYXRoLm1heCgwLCBiYWwpKTsKICAgIH0KCiAgICAvLyA9PT09PSBDTUhDID09PT09CiAgICAvLyBNYXBzIHRoZSA0LW9wdGlvbiBsb2FuIHB1cnBvc2UgZHJvcGRvd24gdG8gd2hpY2ggcmF0ZSBjb2x1bW4gdG8gdXNlLgogICAgLy8gUGVyIENNSEMgTXVsdGktdW5pdCBzY2hlZHVsZSwgb25seSAiQ29uc3RydWN0aW9uIEZpbmFuY2luZyIgdXNlcyB0aGUgY29uc3RydWN0aW9uCiAgICAvLyBjb2x1bW47IHRha2VvdXQvcHVyY2hhc2UvcmVmaSBhbGwgdXNlIHRoZSAiQWxsIE90aGVyIExvYW4gUHVycG9zZXMiIGNvbHVtbi4KICAgIGZ1bmN0aW9uIHB1cnBvc2VUb1JhdGVDb2x1bW4ocHVycG9zZSkgewogICAgICByZXR1cm4gcHVycG9zZSA9PT0gJ2NvbnN0cnVjdGlvbi1maW5hbmNpbmcnID8gJ2NvbnN0cnVjdGlvbicgOiAnb3RoZXInOwogICAgfQoKICAgIGZ1bmN0aW9uIGdldEJhc2VSYXRlKGx0dlBjdCwgc2hlbHRlclR5cGUsIHByb2R1Y3QsIHB1cnBvc2UpIHsKICAgICAgdmFyIHRhYmxlID0gQ01IQ19UQUJMRVNbc2hlbHRlclR5cGVdIHx8IENNSENfVEFCTEVTLnN0YW5kYXJkOwogICAgICB2YXIgY29sID0gcHVycG9zZVRvUmF0ZUNvbHVtbihwdXJwb3NlKTsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YWJsZS5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciByID0gdGFibGVbaV07CiAgICAgICAgaWYgKGx0dlBjdCA8PSByLmx0dikgewogICAgICAgICAgaWYgKHIuc2VsZWN0T25seSAmJiBwcm9kdWN0ICE9PSAnc2VsZWN0JykgcmV0dXJuIG51bGw7CiAgICAgICAgICByZXR1cm4gcltjb2xdOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmdW5jdGlvbiBnZXRSZWZpQ3JlZGl0KHllYXJzKSB7CiAgICAgIC8vIFVwIHRvIGFuZCBpbmNsdWRpbmcgTiA9PiBjcmVkaXQuIFllYXJzIGFib3ZlIDcgPT4gbm8gY3JlZGl0LgogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IFJFRklfQ1JFRElUX1RBQkxFLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHllYXJzIDw9IFJFRklfQ1JFRElUX1RBQkxFW2ldLnlycykgcmV0dXJuIFJFRklfQ1JFRElUX1RBQkxFW2ldLmNyZWRpdDsKICAgICAgfQogICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVDbWhjSW5saW5lKCkgewogICAgICB2YXIgcHJvZHVjdCA9ICQoJ2NoX3Byb2R1Y3QnKS52YWx1ZTsKICAgICAgdmFyIHB1cnBvc2UgPSAkKCdjaF9wdXJwb3NlJykudmFsdWU7CiAgICAgIHZhciBsb2FuID0gbnVtVmFsKCdjaF9sb2FuJyk7CiAgICAgIHZhciB2YWx1ZSA9IG51bVZhbCgnY2hfdmFsdWUnKSB8fCAxOwogICAgICB2YXIgbHR2UGN0ID0gKGxvYW4gLyB2YWx1ZSkgKiAxMDA7CiAgICAgICQoJ2NoX2x0dl9kaXNwbGF5JykudmFsdWUgPSBsdHZQY3QudG9GaXhlZCgyKTsKICAgICAgJCgnY2hfbm9ucmVzX2ZpZWxkJykuc3R5bGUuZGlzcGxheSA9ICQoJ2NoX25vbnJlcycpLmNoZWNrZWQgPyAnYmxvY2snIDogJ25vbmUnOwogICAgICAkKCdjaF9wb2ludHNfd3JhcCcpLnN0eWxlLmRpc3BsYXkgPSBwcm9kdWN0ID09PSAnc2VsZWN0JyA\/ICcnIDogJ25vbmUnOwogICAgICAvLyBSZWZpIGNyZWRpdCBmaWVsZHMgb25seSBzaG93IHdoZW4gcHVycG9zZSBpcyBleGlzdGluZy1yZWZpbmFuY2UKICAgICAgdmFyIHJlZmlXcmFwID0gJCgnY2hfcmVmaV93cmFwJyk7CiAgICAgIGlmIChyZWZpV3JhcCkgcmVmaVdyYXAuc3R5bGUuZGlzcGxheSA9IHB1cnBvc2UgPT09ICdleGlzdGluZy1yZWZpbmFuY2UnID8gJycgOiAnbm9uZSc7CiAgICAgIHZhciByZWZpWWVhcnNGaWVsZCA9ICQoJ2NoX3JlZmlfeWVhcnNfZmllbGQnKTsKICAgICAgaWYgKHJlZmlZZWFyc0ZpZWxkKSByZWZpWWVhcnNGaWVsZC5zdHlsZS5kaXNwbGF5ID0gKCQoJ2NoX3JlZmlfaW5zdXJlZCcpICYmICQoJ2NoX3JlZmlfaW5zdXJlZCcpLmNoZWNrZWQpID8gJycgOiAnbm9uZSc7CiAgICB9CgogICAgZnVuY3Rpb24gY2FsY0NNSEMoKSB7CiAgICAgIHZhciBwcm9kdWN0ID0gJCgnY2hfcHJvZHVjdCcpLnZhbHVlOyAgICAgICAgICAvLyAnbWFya2V0JyB8ICdzZWxlY3QnCiAgICAgIHZhciBzaGVsdGVyVHlwZSA9ICQoJ2NoX3NoZWx0ZXInKS52YWx1ZTsgICAgICAgLy8gJ3N0YW5kYXJkJyB8ICdvdGhlcicKICAgICAgdmFyIHB1cnBvc2UgPSAkKCdjaF9wdXJwb3NlJykudmFsdWU7ICAgICAgICAgICAvLyAnZXhpc3RpbmctcHVyY2hhc2UnIHwgJ2V4aXN0aW5nLXJlZmluYW5jZScgfCAnY29uc3RydWN0aW9uLWZpbmFuY2luZycgfCAnY29uc3RydWN0aW9uLXRha2VvdXQnCiAgICAgIHZhciBsb2FuID0gbnVtVmFsKCdjaF9sb2FuJyk7CiAgICAgIHZhciB2YWx1ZSA9IG51bVZhbCgnY2hfdmFsdWUnKSB8fCAxOwogICAgICB2YXIgdW5pdHMgPSArJCgnY2hfdW5pdHMnKS52YWx1ZSB8fCAxOwogICAgICB2YXIgbHR2UGN0ID0gKGxvYW4gLyB2YWx1ZSkgKiAxMDA7CiAgICAgICQoJ2NoX2x0dl9kaXNwbGF5JykudmFsdWUgPSBsdHZQY3QudG9GaXhlZCgyKTsKCiAgICAgIHZhciBwb2ludHMgPSBwcm9kdWN0ID09PSAnc2VsZWN0JyA\/ICskKCdjaF9wb2ludHMnKS52YWx1ZSA6IDA7CiAgICAgIHZhciBhbW9ydCA9ICskKCdjaF9hbW9ydCcpLnZhbHVlIHx8IDI1OwogICAgICB2YXIgaGFzTm9uUmVzID0gJCgnY2hfbm9ucmVzJykuY2hlY2tlZDsKICAgICAgdmFyIG5vblJlc0FtdCA9IGhhc05vblJlcyA\/IG51bVZhbCgnY2hfbm9ucmVzX2FtdCcpIDogMDsKICAgICAgJCgnY2hfbm9ucmVzX2ZpZWxkJykuc3R5bGUuZGlzcGxheSA9IGhhc05vblJlcyA\/ICdibG9jaycgOiAnbm9uZSc7CiAgICAgIHZhciBoYXMybmQgPSAkKCdjaF8ybmQnKS5jaGVja2VkOwogICAgICB2YXIgaGFzRWdpID0gJCgnY2hfZWdpJykuY2hlY2tlZDsKICAgICAgJCgnY2hfcG9pbnRzX3dyYXAnKS5zdHlsZS5kaXNwbGF5ID0gcHJvZHVjdCA9PT0gJ3NlbGVjdCcgPyAnJyA6ICdub25lJzsKCiAgICAgIC8vIFJlZmkgY3JlZGl0IChvbmx5IGFwcGxpZXMgdG8gZXhpc3RpbmctcmVmaW5hbmNlIHB1cnBvc2UpCiAgICAgIHZhciByZWZpSW5zdXJlZCA9ICgkKCdjaF9yZWZpX2luc3VyZWQnKSAmJiAkKCdjaF9yZWZpX2luc3VyZWQnKS5jaGVja2VkKSAmJiBwdXJwb3NlID09PSAnZXhpc3RpbmctcmVmaW5hbmNlJzsKICAgICAgdmFyIHJlZmlZZWFycyA9IHJlZmlJbnN1cmVkID8gKCskKCdjaF9yZWZpX3llYXJzJykudmFsdWUgfHwgMCkgOiAwOwogICAgICB2YXIgcmVmaUNyZWRpdFBjdCA9IHJlZmlJbnN1cmVkID8gZ2V0UmVmaUNyZWRpdChyZWZpWWVhcnMpIDogMDsKICAgICAgdmFyIHJlZmlXcmFwID0gJCgnY2hfcmVmaV93cmFwJyk7CiAgICAgIGlmIChyZWZpV3JhcCkgcmVmaVdyYXAuc3R5bGUuZGlzcGxheSA9IHB1cnBvc2UgPT09ICdleGlzdGluZy1yZWZpbmFuY2UnID8gJycgOiAnbm9uZSc7CiAgICAgIHZhciByZWZpWWVhcnNGaWVsZCA9ICQoJ2NoX3JlZmlfeWVhcnNfZmllbGQnKTsKICAgICAgaWYgKHJlZmlZZWFyc0ZpZWxkKSByZWZpWWVhcnNGaWVsZC5zdHlsZS5kaXNwbGF5ID0gcmVmaUluc3VyZWQgPyAnJyA6ICdub25lJzsKCiAgICAgIHZhciBiYXNlUmF0ZSA9IGdldEJhc2VSYXRlKGx0dlBjdCwgc2hlbHRlclR5cGUsIHByb2R1Y3QsIHB1cnBvc2UpOwogICAgICBpZiAoYmFzZVJhdGUgPT09IG51bGwpIHsKICAgICAgICAkKCdjaF9wcmVtaXVtJykudGV4dENvbnRlbnQgPSAnXHUyMDE0JzsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIC8vIEVHSSBzdXJjaGFyZ2UgZG9lcyBub3QgYXBwbHkgZHVyaW5nIGNvbnN0cnVjdGlvbiBmaW5hbmNpbmcgKHBlciBDTUhDIHNoZWV0KS4KICAgICAgdmFyIGlzQ29uc3RydWN0aW9uRmluYW5jaW5nID0gcHVycG9zZSA9PT0gJ2NvbnN0cnVjdGlvbi1maW5hbmNpbmcnOwoKICAgICAgdmFyIGV4dHJhQW1vcnQgPSBNYXRoLm1heCgwLCBhbW9ydCAtIDI1KTsKICAgICAgdmFyIGFtb3J0U3VyY2hhcmdlID0gTWF0aC5mbG9vcihleHRyYUFtb3J0IC8gNSkgKiAwLjAwMjU7CiAgICAgIHZhciBvdGhlclN1cmNoYXJnZSA9IDA7CiAgICAgIGlmIChoYXMybmQpIG90aGVyU3VyY2hhcmdlICs9IDAuMDA1OwogICAgICBpZiAoaGFzRWdpICYmICFpc0NvbnN0cnVjdGlvbkZpbmFuY2luZykgb3RoZXJTdXJjaGFyZ2UgKz0gMC4wMDI1OwogICAgICB2YXIgZ3Jvc3NSYXRlID0gYmFzZVJhdGUgKyBhbW9ydFN1cmNoYXJnZSArIG90aGVyU3VyY2hhcmdlOwoKICAgICAgdmFyIHNlbGVjdERpc2NvdW50ID0gMDsKICAgICAgaWYgKHByb2R1Y3QgPT09ICdzZWxlY3QnKSB7CiAgICAgICAgaWYgKHBvaW50cyA+PSAxMDApIHNlbGVjdERpc2NvdW50ID0gMC4zMDsKICAgICAgICBlbHNlIGlmIChwb2ludHMgPj0gNzApIHNlbGVjdERpc2NvdW50ID0gMC4yMDsKICAgICAgICBlbHNlIGlmIChwb2ludHMgPj0gNTApIHNlbGVjdERpc2NvdW50ID0gMC4xMDsKICAgICAgfQogICAgICB2YXIgZWZmUmF0ZSA9IGdyb3NzUmF0ZSAqICgxIC0gc2VsZWN0RGlzY291bnQpOwoKICAgICAgdmFyIHJlc0xvYW4gPSBsb2FuIC0gbm9uUmVzQW10OwogICAgICB2YXIgcmVzaWRlbnRpYWxQcmVtaXVtID0gTWF0aC5tYXgoMCwgcmVzTG9hbikgKiBlZmZSYXRlOwogICAgICB2YXIgbm9uUmVzUHJlbWl1bSA9IG5vblJlc0FtdCAqIDAuMDE7CiAgICAgIHZhciBncm9zc1ByZW1pdW0gPSByZXNpZGVudGlhbFByZW1pdW0gKyBub25SZXNQcmVtaXVtOwoKICAgICAgLy8gUmVmaSBjcmVkaXQgYXBwbGllcyB0byBiYXNlIHByZW1pdW0gKyBhcHBsaWNhYmxlIHN1cmNoYXJnZXMsIGJ1dCBOT1QgdG8gdGhlCiAgICAgIC8vIHNlY29uZCBtb3J0Z2FnZSBzdXJjaGFyZ2UgKHBlciBDTUhDIHNoZWV0KS4gV2UgYXBwcm94aW1hdGUgYnkgY29tcHV0aW5nCiAgICAgIC8vIHRoZSBjcmVkaXQgb24gdGhlIGdyb3NzIHByZW1pdW0gbWludXMgdGhlIDJuZC1tb3J0Z2FnZSBjb21wb25lbnQsIHRoZW4KICAgICAgLy8gYWRkaW5nIHRoZSAybmQtbW9ydGdhZ2UgY29tcG9uZW50IGJhY2sgdW5jcmVkaXRlZC4KICAgICAgdmFyIGNyZWRpdEFtb3VudCA9IDA7CiAgICAgIGlmIChyZWZpQ3JlZGl0UGN0ID4gMCkgewogICAgICAgIC8vIFBvcnRpb24gb2YgZWZmUmF0ZSBhdHRyaWJ1dGFibGUgdG8gMm5kLW1vcnRnYWdlIHN1cmNoYXJnZSAodW5jcmVkaXRlZCkKICAgICAgICB2YXIgc2Vjb25kTW9ydGdhZ2VSYXRlID0gaGFzMm5kID8gMC4wMDUgKiAoMSAtIHNlbGVjdERpc2NvdW50KSA6IDA7CiAgICAgICAgdmFyIHNlY29uZE1vcnRnYWdlUHJlbWl1bSA9IE1hdGgubWF4KDAsIHJlc0xvYW4pICogc2Vjb25kTW9ydGdhZ2VSYXRlOwogICAgICAgIHZhciBjcmVkaXRhYmxlQmFzZSA9IGdyb3NzUHJlbWl1bSAtIHNlY29uZE1vcnRnYWdlUHJlbWl1bTsKICAgICAgICBjcmVkaXRBbW91bnQgPSBNYXRoLm1heCgwLCBjcmVkaXRhYmxlQmFzZSkgKiByZWZpQ3JlZGl0UGN0OwogICAgICB9CiAgICAgIHZhciBuZXRQcmVtaXVtID0gTWF0aC5tYXgoMCwgZ3Jvc3NQcmVtaXVtIC0gY3JlZGl0QW1vdW50KTsKCiAgICAgIC8vID09PT09IEFwcGxpY2F0aW9uIGZlZXMgPT09PT0KICAgICAgdmFyIGFkdlR5cGUgPSAkKCdjaF9hZHZhbmNlcycpLnZhbHVlOyAgICAgICAgICAvLyAnc2luZ2xlJyB8ICdtdWx0aScKICAgICAgdmFyIGV4dHJhQWR2ID0gYWR2VHlwZSA9PT0gJ211bHRpJyA\/ICgrJCgnY2hfZXh0cmFfYWR2JykudmFsdWUgfHwgMCkgOiAwOwogICAgICB2YXIgZmlyc3RSYXRlLCBiZXlvbmRSYXRlLCBjYXA7CiAgICAgIGlmIChhZHZUeXBlID09PSAnbXVsdGknKSB7IGZpcnN0UmF0ZSA9IDIwMDsgYmV5b25kUmF0ZSA9IDEwMDsgY2FwID0gNTUwMDA7IH0KICAgICAgZWxzZSB7IGZpcnN0UmF0ZSA9IDE1MDsgYmV5b25kUmF0ZSA9IDEwMDsgY2FwID0gNTAwMDA7IH0KICAgICAgdmFyIGZpcnN0VW5pdHMgPSBNYXRoLm1pbih1bml0cywgMTAwKTsKICAgICAgdmFyIGJleW9uZFVuaXRzID0gTWF0aC5tYXgoMCwgdW5pdHMgLSAxMDApOwogICAgICB2YXIgcGVyVW5pdEZlZSA9IE1hdGgubWluKGZpcnN0VW5pdHMgKiBmaXJzdFJhdGUgKyBiZXlvbmRVbml0cyAqIGJleW9uZFJhdGUsIGNhcCk7CiAgICAgIHZhciBhZHZGZWVzID0gYWR2VHlwZSA9PT0gJ211bHRpJyA\/IGV4dHJhQWR2ICogMzUwIDogMDsKICAgICAgLy8gMC4zMCUgbm9uLXJlc2lkZW50aWFsIGFwcGxpY2F0aW9uIGZlZSB3aGVuIG5vbi1yZXMgbG9hbiBhbW91bnQgPiAkMTAwawogICAgICB2YXIgbm9uUmVzQXBwRmVlID0gKGhhc05vblJlcyAmJiBub25SZXNBbXQgPiAxMDAwMDApID8gbm9uUmVzQW10ICogMC4wMDMgOiAwOwogICAgICB2YXIgdG90YWxGZWVzID0gcGVyVW5pdEZlZSArIGFkdkZlZXMgKyBub25SZXNBcHBGZWU7CgogICAgICAkKCdjaF9wcmVtaXVtJykudGV4dENvbnRlbnQgPSBmbXQwKG5ldFByZW1pdW0pOwogICAgICB2YXIgZmVlc0VsID0gJCgnY2hfYXBwX2ZlZXMnKTsKICAgICAgaWYgKGZlZXNFbCkgZmVlc0VsLnRleHRDb250ZW50ID0gZm10MCh0b3RhbEZlZXMpOwogICAgICB2YXIgY3JlZGl0RWwgPSAkKCdjaF9yZWZpX2NyZWRpdF9kaXNwbGF5Jyk7CiAgICAgIGlmIChjcmVkaXRFbCkgY3JlZGl0RWwudGV4dENvbnRlbnQgPSBjcmVkaXRBbW91bnQgPiAwID8gJ1x1MjIxMicgKyBmbXQwKGNyZWRpdEFtb3VudCkucmVwbGFjZSgnJCcsJyQnKSA6ICckMCc7CiAgICB9CgogICAgLy8gPT09PT0gV2lyZSBjYWxjdWxhdGUgYnV0dG9ucyA9PT09PQogICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuY2FsYy1idG4nKS5mb3JFYWNoKGZ1bmN0aW9uKGJ0bikgewogICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgd2hpY2ggPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWNhbGMnKTsKICAgICAgICBpZiAod2hpY2ggPT09ICdidXlkb3duJykgY2FsY0J1eWRvd24oKTsKICAgICAgICBlbHNlIGlmICh3aGljaCA9PT0gJ2Ftb3J0JykgY2FsY0Ftb3J0KCk7CiAgICAgICAgZWxzZSBpZiAod2hpY2ggPT09ICdjbWhjJykgY2FsY0NNSEMoKTsKCiAgICAgICAgLy8gU2V0IG1vZGFsIGhlYWRsaW5lIGJhc2VkIG9uIGNhbGMgY2xpY2tlZAogICAgICAgIHZhciB0aXRsZUVsID0gJCgnbWNfbW9kYWxfdGl0bGUnKTsKICAgICAgICBpZiAodGl0bGVFbCAmJiBNT0RBTF9IRUFETElORVNbd2hpY2hdKSB0aXRsZUVsLnRleHRDb250ZW50ID0gTU9EQUxfSEVBRExJTkVTW3doaWNoXTsKCiAgICAgICAgc2NoZWR1bGVNb2RhbCgpOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vID09PT09IExpZ2h0IGlubGluZSB1cGRhdGVzID09PT09CiAgICBbJ2JkbF90ZXJtX3NlbGVjdCcsJ2JkbF9zcHJlYWQnLCdiZGxfdGFyZ2V0JywnYmRsX21hbnVhbF90b2dnbGUnLCdiZGxfbWFudWFsX2NtYiddLmZvckVhY2goZnVuY3Rpb24oaWQpIHsKICAgICAgdmFyIGVsID0gJChpZCk7CiAgICAgIGlmICghZWwpIHJldHVybjsKICAgICAgWydpbnB1dCcsJ2NoYW5nZSddLmZvckVhY2goZnVuY3Rpb24oZSkgeyBlbC5hZGRFdmVudExpc3RlbmVyKGUsIHVwZGF0ZUJ1eWRvd25SYXRlRGlzcGxheSk7IH0pOwogICAgfSk7CiAgICBbJ2NoX2xvYW4nLCdjaF92YWx1ZScsJ2NoX3Byb2R1Y3QnLCdjaF9zaGVsdGVyJywnY2hfcHVycG9zZScsJ2NoX25vbnJlcycsJ2NoX3JlZmlfaW5zdXJlZCddLmZvckVhY2goZnVuY3Rpb24oaWQpIHsKICAgICAgdmFyIGVsID0gJChpZCk7CiAgICAgIGlmICghZWwpIHJldHVybjsKICAgICAgWydpbnB1dCcsJ2NoYW5nZSddLmZvckVhY2goZnVuY3Rpb24oZSkgeyBlbC5hZGRFdmVudExpc3RlbmVyKGUsIHVwZGF0ZUNtaGNJbmxpbmUpOyB9KTsKICAgIH0pOwoKICAgIHVwZGF0ZUNtaGNJbmxpbmUoKTsKICAgIGZldGNoQ21iRnJvbVdpZGdldCgpOwogIH0KCiAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdsb2FkaW5nJykgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGluaXQpOwogIH0gZWxzZSB7CiAgICBpbml0KCk7CiAgfQp9KSgpOwo=\";\nvar __mcDecoded = atob(__mcSrc);\n(new Function(__mcDecoded))();\n\n<\/script>\n<script>\n(function() {\n  function patchFrench() {\n    var statusEl = document.getElementById('bdl_status');\n    if (statusEl) {\n      var statusMap = { 'Waiting': 'En attente', 'Loading': 'Chargement', 'Live': 'En direct', 'No widget': 'Widget absent', 'fallback': 'Valeur de secours' };\n      new MutationObserver(function() {\n        var t = statusEl.textContent;\n        if (statusMap[t]) statusEl.textContent = statusMap[t];\n      }).observe(statusEl, { childList: true, characterData: true, subtree: true });\n    }\n    var termLabel = document.getElementById('bdl_term_label');\n    if (termLabel) {\n      new MutationObserver(function() {\n        termLabel.textContent = termLabel.textContent.replace(\/(\\d+)yr\/, '$1 ans');\n      }).observe(termLabel, { childList: true, characterData: true, subtree: true });\n    }\n    var titleEl = document.getElementById('mc_modal_title');\n    if (titleEl) {\n      var headlineMap = {\n        'Discuss rate buydown strategy with our professionals.': 'Discutez de votre strat\\u00e9gie de bonification de taux avec nos professionnels.',\n        'Discuss your amortization options with our professionals.': 'Discutez de vos options d\\u2019amortissement avec nos professionnels.',\n        'Discuss CMHC products with our professionals.': 'Discutez des produits SCHL avec nos professionnels.'\n      };\n      new MutationObserver(function() {\n        var t = titleEl.textContent;\n        if (headlineMap[t]) titleEl.textContent = headlineMap[t];\n      }).observe(titleEl, { childList: true, characterData: true, subtree: true });\n    }\n    var updatedEl = document.getElementById('bdl_updated');\n    if (updatedEl) {\n      new MutationObserver(function() {\n        if (updatedEl.textContent === 'fallback') updatedEl.textContent = 'valeur de secours';\n      }).observe(updatedEl, { childList: true, characterData: true, subtree: true });\n    }\n  }\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', patchFrench);\n  } else {\n    patchFrench();\n  }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Outils de financement immobilier commercial Calculatrice VA Trois outils connect\u00e9s pour la souscription immobili\u00e8re commerciale canadienne \u2014 bonification de taux, tableau d&rsquo;amortissement et primes d&rsquo;assurance SCHL. 01Bonification de taux 02Tableau d&rsquo;amortissement 03Primes SCHL Bonification de taux Lit les rendements des Obligations hypoth\u00e9caires du Canada (OHC) en direct depuis le widget theFinancials.com sur cette page. Ajoutez [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-1475","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/vacapital.ca\/fr\/wp-json\/wp\/v2\/pages\/1475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vacapital.ca\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vacapital.ca\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vacapital.ca\/fr\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/vacapital.ca\/fr\/wp-json\/wp\/v2\/comments?post=1475"}],"version-history":[{"count":4,"href":"https:\/\/vacapital.ca\/fr\/wp-json\/wp\/v2\/pages\/1475\/revisions"}],"predecessor-version":[{"id":1486,"href":"https:\/\/vacapital.ca\/fr\/wp-json\/wp\/v2\/pages\/1475\/revisions\/1486"}],"wp:attachment":[{"href":"https:\/\/vacapital.ca\/fr\/wp-json\/wp\/v2\/media?parent=1475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}